@next-bricks/ai-portal 0.53.0 → 0.54.0

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.
Files changed (40) hide show
  1. package/dist/bricks.json +32 -31
  2. package/dist/chunks/1889.b7766f77.js +2 -0
  3. package/dist/chunks/1889.b7766f77.js.map +1 -0
  4. package/dist/chunks/6201.610c66e3.js +2 -0
  5. package/dist/chunks/6201.610c66e3.js.map +1 -0
  6. package/dist/chunks/7713.278cfb8b.js +2 -0
  7. package/dist/chunks/7713.278cfb8b.js.map +1 -0
  8. package/dist/chunks/chat-box.279647b5.js +2 -0
  9. package/dist/chunks/chat-box.279647b5.js.map +1 -0
  10. package/dist/chunks/main.72d51c8f.js +2 -0
  11. package/dist/chunks/{main.2188a2bf.js.map → main.72d51c8f.js.map} +1 -1
  12. package/dist/chunks/set-chat-command.367b9c88.js +2 -0
  13. package/dist/chunks/set-chat-command.367b9c88.js.map +1 -0
  14. package/dist/chunks/stage-flow.1ece0479.js +2 -0
  15. package/dist/chunks/stage-flow.1ece0479.js.map +1 -0
  16. package/dist/examples.json +19 -19
  17. package/dist/index.6e1371ec.js +2 -0
  18. package/dist/index.6e1371ec.js.map +1 -0
  19. package/dist/manifest.json +241 -238
  20. package/dist/types.json +1075 -659
  21. package/dist-types/bootstrap.d.ts +1 -0
  22. package/dist-types/chat-box/index.d.ts +3 -1
  23. package/dist-types/data-providers/set-chat-command.d.ts +7 -0
  24. package/dist-types/data-providers/set-chat-command.spec.d.ts +1 -0
  25. package/dist-types/shared/interfaces.d.ts +9 -0
  26. package/dist-types/stage-flow/i18n.d.ts +3 -1
  27. package/package.json +2 -2
  28. package/dist/chunks/1889.0cd5c088.js +0 -2
  29. package/dist/chunks/1889.0cd5c088.js.map +0 -1
  30. package/dist/chunks/2893.c26f0be9.js +0 -2
  31. package/dist/chunks/2893.c26f0be9.js.map +0 -1
  32. package/dist/chunks/6201.58eeb93e.js +0 -2
  33. package/dist/chunks/6201.58eeb93e.js.map +0 -1
  34. package/dist/chunks/chat-box.59ab1b62.js +0 -2
  35. package/dist/chunks/chat-box.59ab1b62.js.map +0 -1
  36. package/dist/chunks/main.2188a2bf.js +0 -2
  37. package/dist/chunks/stage-flow.7cfa123d.js +0 -2
  38. package/dist/chunks/stage-flow.7cfa123d.js.map +0 -1
  39. package/dist/index.7d776211.js +0 -2
  40. package/dist/index.7d776211.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/2893.c26f0be9.js","mappings":"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","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/goal-card-list/styles.shadow.css","webpack:///./src/action-buttons/styles.shadow.css","webpack:///./src/activity-timeline/styles.shadow.css","webpack:///./src/elevo-card/styles.shadow.css","webpack:///./src/blank-state/styles.shadow.css","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/project-knowledges/styles.shadow.css","webpack:///./src/flow-tabs/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/dropdown-select/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///../../../src/utils/getMirroredStyle.ts","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectInTextarea.ts","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/page-container/index.tsx","webpack:///./src/tab-list/index.tsx","webpack:///./src/dropdown-select/i18n.ts","webpack:///./src/dropdown-select/index.tsx","webpack:///./src/preview-container/i18n.ts","webpack:///./src/preview-container/styles.module.css?836e","webpack:///./src/preview-container/index.tsx","webpack:///./src/action-buttons/i18n.ts","webpack:///./src/action-buttons/index.tsx","webpack:///./src/goal-card-list/i18n.ts","webpack:///./src/shared/getContentEditable.ts","webpack:///./src/goal-card-list/CardItem/CardItem.tsx","webpack:///./src/goal-card-list/index.tsx","webpack:///./src/project-conversations/i18n.ts","webpack:///./src/project-conversations/index.tsx","webpack:///./src/project-knowledges/index.tsx","webpack:///./src/activity-timeline/i18n.ts","webpack:///./src/activity-timeline/index.tsx","webpack:///./src/chat-input/i18n.ts","webpack:///./src/chat-input/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/show-case/i18n.ts","webpack:///./src/show-case/index.tsx","webpack:///./src/data-providers/call-tool.ts","webpack:///./src/blank-state/index.tsx","webpack:///./src/sticky-container/index.tsx","webpack:///./src/elevo-card/index.tsx","webpack:///./src/flow-tabs/drawBg.ts","webpack:///./src/flow-tabs/index.tsx","webpack:///./src/stage-flow/i18n.ts","webpack:///./src/stage-flow/index.tsx","webpack:///./src/show-case/styles.shadow.css","webpack:///./src/goal-card-list/CardItem/CardItem.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/page-container/styles.shadow.css","webpack:///./src/preview-container/styles.module.css","webpack:///./src/stage-flow/styles.shadow.css","webpack:///./src/project-conversations/styles.shadow.css","webpack:///./src/sticky-container/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/chat-input/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.goal-container{display:flex;flex-direction:column;gap:3px}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.button-container{display:flex;gap:6px}.action{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.action::part(button){height:28px;font-size:13px;padding:5px 10px}.action.active::part(button){color:var(--elevo-color-brand);background-color:rgba(var(--elevo-color-brand-rgb-channel),0.04);border-color:#c9d7ff}.icon{font-size:16px;margin-right:4px}.remove{padding:1px;font-size:14px;margin-left:10px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;color:#262626}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.activity{position:relative;padding-left:27px}.activity + .activity{margin-top:20px}.main{display:flex;align-items:flex-start}.action{flex:1;min-width:0;display:flex;align-items:center;margin-left:6px;word-break:break-word}.time{color:#8c8c8c;margin-left:12px}.action,\n.time{padding:1px 0}.guide-line{position:absolute;left:8px;top:0;bottom:-20px;width:0;background-color:#d8d8d8}.guide-line::before{content:\"\";position:absolute;top:0;bottom:0;left:3.5px;width:1px;background-color:#d8d8d8}.guide-line::after{content:\"\";position:absolute;top:8px;left:0;width:8px;height:8px;border-radius:8px;background-color:#d8d8d8}.activity:first-child .guide-line::before{top:12px}.activity:last-child .guide-line::before{height:12px;bottom:auto}.activity:first-child:last-child .guide-line::before{height:0}.comment{position:relative;font-size:13px;color:#595959;background-color:#f3f3f3;border-radius:8px;padding:8px 12px;margin-top:10px}.comment::before{content:\"\";position:absolute;top:-6px;left:36px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f3f3f3}.conversation{margin:0 7px 0 10px}.conversation::part(link){background:#f9f0ff;border-radius:3px;font-weight:500;font-size:12px;color:#aa64f5;display:flex;align-items:center;height:24px;padding:0 8px}.external-link-icon{color:#8c8c8c}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.card{display:block}.card::part(link){display:flex;flex-direction:column;gap:12px;background:rgba(255,255,255,0.6);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.04);border-radius:12px;border:1px solid #fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px;color:#262626}.card:not(.clickable)::part(link){cursor:auto}.card::part(link):hover{background:#fff}.header,\n.body,\n.footer{width:100%}.header{display:flex;gap:12px}.heading{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.avatar{width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,0,0,0.15);font-size:24px;display:flex;align-items:center;justify-content:center}.title{font-weight:500;font-size:16px;color:#262626;line-height:22px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{margin:-8px -8px 0 0}.body{font-size:12px;color:rgba(0,0,0,0.45);line-height:17px;height:51px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.footer{display:flex;align-items:center;justify-content:flex-end;gap:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;gap:26px}:host([hidden]){display:none}p{color:rgba(0,0,0,0.45);margin:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.tabs{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:32px;row-gap:10px;font-size:16px}.tabs a{color:rgba(38,38,38,0.65);cursor:pointer;padding:0 0 4px;display:block;position:relative}.tabs .active a{color:#262626;font-weight:500}.tabs .active a::after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:4px;background-color:currentColor;border-radius:2px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.item:not(:last-child){margin-bottom:4px}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.icon{font-size:20px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment{color:#1a7aff;margin-left:8px}.header{display:flex;align-items:center}.description{color:#595959;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);margin:0 16px}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:center;width:32px;height:32px}.link.actions-active .avatar,\n.link:hover .avatar,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative}.bg{position:absolute;top:0;left:0;z-index:-1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header{display:flex;align-items:center;justify-content:space-between}.tabs{list-style:none;padding:0;margin:0;display:flex}.tabs .tab{padding:0 18px}.tabs a{display:block;padding:9px 10px;color:rgba(0,0,0,0.55);line-height:20px;cursor:pointer}.tabs .active a{font-weight:500;color:#262626}.body{padding:23px 27px;overflow-x:auto}.toolbar{display:flex;align-items:center;gap:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}img{vertical-align:middle}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}h2{font-weight:500;margin:0;font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:17px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sticky-tabs{margin:0 -24px;padding:0 24px 10px}.non-sticky-tabs{padding:0 0 10px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*{box-sizing:border-box}.trigger{display:flex;align-items:center;font-size:14px;cursor:pointer;position:relative;padding:4px 12px;border-radius:15px;color:var(--elevo-color-brand)}.trigger:hover{background-color:rgba(37,64,255,0.06)}.trigger::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:linear-gradient(145deg,rgba(37,64,255,1),rgba(180,95,248,1));border-radius:15px;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:xor;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}.trigger .label{margin-right:0}.label{max-width:650px;margin-right:0.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown{max-width:500px;border-radius:4px;background:var(--antd-dropdown-menu-bg);box-shadow:var(--antd-box-shadow-base)}.dropdown-inner{padding:9px 4px}.search-container{padding:3px;border-bottom:1px solid rgba(0,0,0,0.08)}.search::part(affix-wrapper){box-shadow:none;border:none}eo-menu{border:0;padding:0;background:none;border-radius:0}eo-menu-item::part(menu-item){padding:5px 8px;line-height:22px;border-radius:var(--medius-border-radius)}eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}.active::part(menu-item){font-weight:600;background-color:var(--left-sidebar-item-hover-bg)}.empty{display:flex;justify-content:center;align-items:center;color:var(--color-secondary-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1020px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.tips{color:rgba(0,0,0,0.45);margin-bottom:27px}.cases{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { FeedbackDetail } from \"./interfaces.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n} from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n previewUrlTemplate?: string;\n showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n separateInstructions?: boolean;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor showCases: ShowCaseType[] | undefined;\n\n @property({ attribute: false })\n accessor exampleProjects: ExampleProject[] | undefined;\n\n @property()\n accessor tryItOutUrl: string | undefined;\n\n @property({ type: Boolean })\n accessor separateInstructions: boolean | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ForwardedCruiseCanvasComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n previewUrlTemplate={this.previewUrlTemplate}\n showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n separateInstructions={this.separateInstructions}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n ref={this.#ref}\n />\n );\n }\n}\n","const HIDDEN_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n left: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\n/**\n * 创建一个镜像元素,用于计算光标位置或文本尺寸。\n */\nexport function getMirroredStyle(element: HTMLElement) {\n const uiTextNodeStyle = window.getComputedStyle(element);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n return `${sizingStyle};${HIDDEN_STYLE}`;\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getCaretPositionInTextarea(\n textarea: HTMLTextAreaElement,\n index: number\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n hiddenElement.textContent = textarea.value.slice(0, index);\n\n const span = document.createElement(\"span\");\n span.textContent = \"\\u200b\"; // 占位符\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return rect;\n}\n","// istanbul ignore file\nimport type React from \"react\";\nimport { getMirroredStyle } from \"./getMirroredStyle.js\";\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n // equal style\n hiddenTextarea.setAttribute(\"style\", getMirroredStyle(uiTextNode));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n desiredSelectionRef?: React.MutableRefObject<{\n start: number;\n end: number;\n } | null>;\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * The handler can return false to prevent default behavior (submit)\n */\n onKeyDown?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void | false;\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n element: HTMLTextAreaElement | null;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n desiredSelectionRef,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n element: textareaRef.current,\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (onKeyDown?.(e) === false) {\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n useLayoutEffect(() => {\n const desiredSelection = desiredSelectionRef?.current;\n const textarea = textareaRef.current;\n if (desiredSelection && textarea) {\n const { start, end } = desiredSelection;\n desiredSelectionRef.current = null;\n textarea.setSelectionRange(start, end);\n }\n }, [desiredSelectionRef, value]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n SimpleAction,\n SubMenuAction,\n} from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedActions = wrapBrick<\n EoActions,\n ActionsProps & { activeKeys?: (string | number)[] },\n ActionsEvents,\n ActionsEventsMapping\n>(\"eo-actions\", {\n onActionClick: \"action.click\",\n onItemDragEnd: \"item.drag.end\",\n onItemDragStart: \"item.drag.start\",\n});\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n commands?: Command[];\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n focusOnInput: () => void;\n}\n\nexport interface Command {\n label: string;\n value: string;\n options?: Command[];\n}\n\ntype ActionWithAncestors = SimpleAction & {\n key: string | number;\n ancestors?: Command[];\n items?: ActionWithAncestors[];\n};\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @property({ attribute: false })\n accessor commands: Command[] | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"ai-employee.mention\" })\n accessor #employeeMention!: EventEmitter<AIEmployee | null>;\n\n #handleEmployeeMention = (employee: AIEmployee | null) => {\n this.#employeeMention.emit(employee);\n };\n\n @event({ type: \"command.select\" })\n accessor #commandSelect!: EventEmitter<string | null>;\n\n #handleCommandSelect = (command: string | null) => {\n this.#commandSelect.emit(command);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n commands={this.commands}\n onSubmit={this.#handleMessageSubmit}\n onEmployeeMention={this.#handleEmployeeMention}\n onCommandSelect={this.#handleCommandSelect}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onSubmit: (value: string) => void;\n onEmployeeMention: (employee: AIEmployee | null) => void;\n onCommandSelect: (command: string | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n style: React.CSSProperties;\n range: {\n start: number;\n end: number;\n };\n actions: ActionWithAncestors[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n commands,\n onSubmit,\n onEmployeeMention,\n onCommandSelect,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const [activeActionIndexes, setActiveActionIndexes] = useState<number[]>([0]);\n const [commandPopover, setCommandPopover] = useState<MentionPopover | null>(\n null\n );\n const [commandText, setCommandText] = useState(\"\");\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const submitWithoutCommand = useCallback(\n (value: string) => {\n onSubmit(value.slice(commandText?.length ?? 0));\n },\n [commandText?.length, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n submitWithoutCommand(e.currentTarget.value);\n }\n },\n [submitWithoutCommand]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (\n !mentionedText &&\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n aiEmployees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n const mentionIndex = previousContent.lastIndexOf(\"@\");\n if (mentionIndex >= 0) {\n const mentionText = previousContent\n .slice(mentionIndex + 1)\n .toLowerCase();\n const matchedEmployees = aiEmployees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, 10);\n if (matchedEmployees.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setMentionPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: mentionIndex, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return;\n }\n }\n }\n setMentionPopover(null);\n\n if (\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n commands?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n if (previousContent.startsWith(\"/\")) {\n const commandText = previousContent.slice(1).toLowerCase();\n const matchedCommands = commands\n .filter((command) =>\n command.label.toLowerCase().includes(commandText)\n )\n .slice(0, 10);\n if (matchedCommands.length > 0) {\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const textareaRect = e.currentTarget.getBoundingClientRect();\n setCommandPopover({\n style: {\n left: position.left + 10 + textareaRect.left,\n top: position.top + 22 + textareaRect.top,\n position: \"absolute\",\n zIndex: 1,\n },\n range: { start: 0, end: selectionStart },\n actions: matchedCommands.map((command) => ({\n key: command.value,\n text: command.label,\n data: command,\n ancestors: [],\n items: getCommandSubMenu(command, []),\n })),\n });\n setActiveActionIndexes([0]);\n return;\n }\n }\n }\n setCommandPopover(null);\n },\n [aiEmployees, commands, mentionedText]\n );\n\n useEffect(() => {\n if (mentionedText && !value.includes(mentionedText)) {\n setMentionedText(\"\");\n onEmployeeMention(null);\n }\n }, [mentionedText, onEmployeeMention, value]);\n\n useEffect(() => {\n if (commandText && !value.includes(commandText)) {\n setCommandText(\"\");\n onCommandSelect(null);\n }\n }, [commandText, onCommandSelect, value]);\n\n const handleSubmitClick = useCallback(() => {\n submitWithoutCommand(valueRef.current);\n }, [submitWithoutCommand]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const mentionPrefix = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return \"\";\n }\n const index = value.indexOf(mentionedText);\n if (index < 0) {\n return \"\";\n }\n return value.slice(0, index);\n }, [mentionedText, value]);\n\n const mentionOverlay = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return null;\n }\n const rect = getContentRectInTextarea(\n element,\n mentionPrefix,\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n return {\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n };\n }, [mentionedText, mentionPrefix]);\n\n const commandOverlay = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!commandText || !element) {\n return null;\n }\n const rect = getContentRectInTextarea(\n element,\n \"\",\n // Ignore the last space\n commandText.slice(0, -1)\n );\n return {\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n };\n }, [commandText]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n onEmployeeMention((action as { data?: AIEmployee }).data!);\n textareaRef.current?.focus();\n },\n [mentionPopover, onEmployeeMention]\n );\n\n const handleSelectCommand = useCallback(\n (action: ActionWithAncestors) => {\n const command = `/${[...action.ancestors!.map((an) => an.label), action.text].join(\": \")} `;\n const prefix = `${valueRef.current.slice(0, commandPopover!.range.start)}${command}`;\n const newValue = `${prefix}${valueRef.current.slice(commandPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setCommandText(command);\n setCommandPopover(null);\n onCommandSelect(action.text);\n textareaRef.current?.focus();\n },\n [commandPopover, onCommandSelect]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n setCommandPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover && !commandPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n if (mentionPopover) {\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = mentionPopover.actions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n } else {\n setActiveActionIndexes((prev) => {\n let cursor = 0;\n let { actions } = commandPopover!;\n const list: number[] = [];\n while (cursor < prev.length - 1) {\n const action = actions[prev[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n list.push(prev[cursor]);\n cursor += 1;\n }\n const nextIndex = prev[cursor] + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = actions.length;\n const next = (total + nextIndex) % total;\n list.push(next);\n return list;\n });\n }\n return false;\n }\n case \"Enter\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n if (mentionPopover) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n handleMention(mentionPopover.actions[activeActionIndex]);\n return false;\n }\n } else if (commandPopover) {\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n\n if (e.key === \"ArrowLeft\") {\n if (activeActionIndexes.length > 1) {\n setActiveActionIndexes((prev) => prev.slice(0, -1));\n }\n return false;\n }\n\n let cursor = 0;\n let { actions } = commandPopover!;\n let action: ActionWithAncestors | undefined;\n while (cursor < activeActionIndexes.length) {\n action = actions[activeActionIndexes[cursor]];\n if (isSubMenuAction(action)) {\n actions = action.items;\n } else {\n break;\n }\n cursor += 1;\n }\n if (action) {\n if (isSubMenuAction(action)) {\n setActiveActionIndexes((prev) => [...prev, 0]);\n } else if (e.key === \"Enter\") {\n handleSelectCommand(action);\n }\n }\n return false;\n }\n break;\n case \"Delete\":\n case \"Backspace\": {\n const popovers = [\n {\n textLength: mentionedText?.length,\n prefixLength: mentionPrefix.length,\n },\n {\n textLength: commandText?.length,\n prefixLength: 0,\n },\n ];\n\n for (const { textLength, prefixLength } of popovers) {\n if (textLength) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = prefixLength;\n const currentEnd = currentStart + textLength;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n activeActionIndexes,\n commandPopover,\n commandText?.length,\n handleMention,\n handleSelectCommand,\n mentionPopover,\n mentionPrefix.length,\n mentionedText?.length,\n ]\n );\n\n const commandCheckedKeys = useMemo(() => {\n if (!commandPopover) {\n return [];\n }\n let actions = commandPopover.actions;\n const checkedKeys: (string | number)[] = [];\n for (let i = 0; i < activeActionIndexes.length; i += 1) {\n const index = activeActionIndexes[i];\n const action = actions[index];\n if (action) {\n if (isSubMenuAction(action)) {\n checkedKeys.push(action.key!);\n actions = action.items;\n } else {\n checkedKeys.push(action.key!);\n break;\n }\n } else {\n break;\n }\n }\n return checkedKeys;\n }, [activeActionIndexes, commandPopover]);\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {mentionOverlay && (\n <div className=\"mention-overlay\" style={mentionOverlay} />\n )}\n {commandOverlay && (\n <div className=\"mention-overlay\" style={commandOverlay} />\n )}\n {mentionPopover &&\n createPortal(\n <WrappedActions\n actions={mentionPopover.actions}\n style={mentionPopover.style}\n activeKeys={[mentionPopover.actions[activeActionIndex].key!]}\n onActionClick={(e) => handleMention(e.detail)}\n />,\n document.body\n )}\n {commandPopover &&\n createPortal(\n <WrappedActions\n actions={commandPopover.actions}\n style={commandPopover.style}\n activeKeys={commandCheckedKeys}\n onActionClick={(e) =>\n handleSelectCommand(e.detail as ActionWithAncestors)\n }\n />,\n document.body\n )}\n </div>\n </div>\n );\n}\n\nfunction getCommandSubMenu(\n command: Command,\n ancestors: Command[]\n): ActionWithAncestors[] | undefined {\n return command.options?.map((subCommand) => {\n const nextAncestors = [...ancestors, command];\n return {\n key: subCommand.value,\n text: subCommand.label,\n data: subCommand,\n ancestors: nextAncestors,\n items: getCommandSubMenu(subCommand, nextAncestors),\n };\n });\n}\n\nfunction isSubMenuAction(\n action: SimpleAction | SubMenuAction\n): action is SubMenuAction {\n return !!(action as SubMenuAction).items?.length;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n @property({ type: Boolean, render: false })\n accessor sticky: boolean | undefined;\n\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n type Project,\n type ProjectActionClickDetail,\n} from \"./ChatHistory.js\";\nimport { NavLink } from \"./NavLink.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst WrappedElevoLogo = wrapBrick(\"ai-portal.elevo-logo\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n logoUrl?: string;\n newChatUrl?: string;\n newChatLinkWhenCollapsed?: boolean;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n links?: SidebarLink[];\n canAddProject?: boolean;\n myLinks?: SidebarLink[];\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon?: GeneralIconProps;\n activeIncludes?: string[];\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n open: () => void;\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property({ type: Boolean })\n accessor newChatLinkWhenCollapsed: boolean | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property()\n accessor projectUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor projectActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @property({ type: Boolean })\n accessor canAddProject: boolean | undefined = true;\n\n @property({ attribute: false })\n accessor myLinks: SidebarLink[] | undefined;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"project.action.click\" })\n accessor #projectActionClick!: EventEmitter<ProjectActionClickDetail>;\n\n #handleProjectActionClick = (detail: ProjectActionClickDetail) => {\n this.#projectActionClick.emit(detail);\n };\n\n @event({ type: \"add.project\" })\n accessor #addProject!: EventEmitter<void>;\n\n #handleAddProject = () => {\n this.#addProject.emit();\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n open() {\n this.#ref.current?.open();\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n @method()\n removeProject(projectId: string) {\n this.#ref.current?.removeProject?.(projectId);\n }\n\n @method()\n addProject(project: Project) {\n this.#ref.current?.addProject?.(project);\n }\n\n @method()\n moveConversation(conversationId: string) {\n this.#ref.current?.moveConversation?.(conversationId);\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n newChatLinkWhenCollapsed={this.newChatLinkWhenCollapsed}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n links={this.links}\n canAddProject={this.canAddProject}\n myLinks={this.myLinks}\n onLogout={this.#handleLogout}\n onActionClick={this.#handleActionClick}\n onProjectActionClick={this.#handleProjectActionClick}\n onAddProject={this.#handleAddProject}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyUrlTemplate,\n historyActions,\n projectUrlTemplate,\n projectActions,\n links,\n canAddProject,\n myLinks,\n onLogout,\n onActionClick,\n onProjectActionClick,\n onAddProject,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n removeProject: (projectId: string) => {\n historyRef.current?.removeProject?.(projectId);\n },\n addProject: (project: Project) => {\n historyRef.current?.addProject?.(project);\n },\n moveConversation: (conversationId: string) => {\n historyRef.current?.moveConversation?.(conversationId);\n },\n open: () => {\n setCollapsed(false);\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n {newChatLinkWhenCollapsed && (\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n )}\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <WrappedElevoLogo />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <NavLink\n key={index}\n url={link.url}\n activeIncludes={link.activeIncludes}\n render={({ active }) => (\n <WrappedLink\n key={index}\n className={classNames(\"link\", { active })}\n url={link.url}\n >\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n )}\n />\n ))}\n </div>\n ) : null}\n <ChatHistory\n ref={historyRef}\n canAddProject={canAddProject}\n historyUrlTemplate={historyUrlTemplate}\n historyActions={historyActions}\n projectUrlTemplate={projectUrlTemplate}\n projectActions={projectActions}\n myLinks={myLinks}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n onProjectActionClick={onProjectActionClick}\n onAddProject={onAddProject}\n />\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n tooltipHoist?: boolean;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant =\n | \"default\"\n | \"light\"\n | \"mini\"\n | \"mini-light\"\n | \"bordered\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor tooltipHoist: boolean | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n tooltipHoist={this.tooltipHoist}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({\n icon,\n tooltip,\n tooltipHoist,\n disabled,\n}: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return (\n <WrappedTooltip content={tooltip} hoist={tooltipHoist}>\n {btn}\n </WrappedTooltip>\n );\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n EXPLORE_EXCELLENT_CASES = \"EXPLORE_EXCELLENT_CASES\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n [K.EXPLORE_EXCELLENT_CASES]: \"Explore excellent cases\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n [K.EXPLORE_EXCELLENT_CASES]: \"探索优秀案例\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\nimport type { ShowCase, ShowCaseProps } from \"../show-case/index.js\";\nimport type { ShowCaseType } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedShowCase = wrapBrick<ShowCase, ShowCaseProps>(\n \"ai-portal.show-case\"\n);\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCaseType[];\n limit?: number;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCaseType[] | undefined;\n\n @property({ type: Number })\n accessor limit: number | undefined;\n\n render() {\n return <ShowCasesComponent list={this.list} limit={this.limit} />;\n }\n}\n\nfunction ShowCasesComponent({ list, limit }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<string[]>(() => {\n return [\"\", ...new Set(list?.map((item) => item.scenario).filter(Boolean))];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState(\"\");\n\n const filteredList = useMemo(() => {\n if (!list) {\n return;\n }\n let filtered = list;\n if (activeGroup) {\n filtered = filtered.filter((item) => item.scenario === activeGroup);\n }\n if (limit) {\n filtered = filtered.slice(0, limit);\n }\n return filtered;\n }, [activeGroup, list, limit]);\n\n const tabs = useMemo<Tab[]>(() => {\n return groups.map((group) => ({\n id: group,\n label: group === \"\" ? t(K.ALL) : group,\n }));\n }, [groups]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <div className=\"tips\">{`${t(K.EXPLORE_EXCELLENT_CASES)} ↓`}</div>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeGroup}\n onTabClick={(event) => setActiveGroup(event.detail.id)}\n />\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.conversationId}>\n <WrappedShowCase\n caseTitle={item.title}\n summary={item.summary}\n url={item.url}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\nimport type {\n StickyContainer,\n StickyContainerProps,\n} from \"../sticky-container/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\nconst WrappedStickyContainer = wrapBrick<StickyContainer, StickyContainerProps>(\n \"ai-portal.sticky-container\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n stickyTop?: number;\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n @property({ type: Number })\n accessor stickyTop: number | undefined;\n\n render() {\n return <McpToolsComponent list={this.list} stickyTop={this.stickyTop} />;\n }\n}\n\nfunction McpToolsComponent({ list, stickyTop }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [\"\", ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState(\"\");\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (!activePlatform) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n const tabs = useMemo<Tab[]>(() => {\n return platforms.map((platform) => ({\n id: platform,\n label: platform === \"\" ? t(K.ALL) : platform,\n }));\n }, [platforms]);\n\n const tabsNode = (\n <WrappedTabList\n tabs={tabs}\n activeTab={activePlatform}\n onTabClick={(event) => setActivePlatform(event.detail.id)}\n />\n );\n\n return (\n <>\n {stickyTop == null ? (\n <div className=\"non-sticky-tabs\">{tabsNode}</div>\n ) : (\n <WrappedStickyContainer\n className=\"sticky-tabs\"\n style={{ top: stickyTop }}\n >\n {tabsNode}\n </WrappedStickyContainer>\n )}\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n}\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { ChatStreamComponent } from \"./ChatStream.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n} from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n previewUrlTemplate?: string;\n showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedChatStreamComponent = forwardRef(ChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor showCases: ShowCaseType[] | undefined;\n\n @property({ attribute: false })\n accessor exampleProjects: ExampleProject[] | undefined;\n\n @property()\n accessor tryItOutUrl: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ForwardedChatStreamComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n previewUrlTemplate={this.previewUrlTemplate}\n showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n />\n );\n }\n}\n\nexport interface ChatStreamRef {\n resumed?: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n UNTITLED: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n avatar?: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIEmployeesComponent\n list={this.list}\n industries={this.industries}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n urlTemplate,\n withContainer,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return industries.map((industry) => ({\n id: industry,\n label: industry || t(K.UNTITLED),\n }));\n }, [industries]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeIndustry}\n onTabClick={(event) => setActiveIndustry(event.detail.id)}\n />\n <ul className=\"groups\">\n {groups.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"avatar\">\n {item.avatar ? (\n <img src={item.avatar} />\n ) : (\n <WrappedIcon lib=\"antd\" icon=\"user\" />\n )}\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n {node}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIAgentsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIAgentsComponent({\n list,\n urlTemplate,\n withContainer,\n}: AIAgentsProps) {\n const node = (\n <>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n {node}\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\n);\n","import React, { useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n StickyContainer,\n StickyContainerProps,\n} from \"../sticky-container/index.js\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedStickyContainer = wrapBrick<StickyContainer, StickyContainerProps>(\n \"ai-portal.sticky-container\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PageContainerProps {\n pageTitle?: string;\n breadcrumbs?: Breadcrumb[];\n size?: \"medium\" | \"small\" | \"full\";\n variant?: \"default\" | \"form\";\n sticky?: boolean;\n}\n\nexport interface Breadcrumb {\n text: string;\n url: string;\n}\n\n/**\n * 构件 `ai-portal.page-container`\n *\n * @slot - 内容\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.page-container\", {\n styleTexts: [styleText],\n})\nclass PageContainer extends ReactNextElement implements PageContainerProps {\n @property()\n accessor pageTitle: string | undefined;\n\n @property({ attribute: false })\n accessor breadcrumbs: Breadcrumb[] | undefined;\n\n @property({ render: false })\n accessor size: \"medium\" | \"small\" | \"full\" | undefined;\n\n @property({ render: false })\n accessor variant: \"default\" | \"form\" | undefined;\n\n @property({ type: Boolean })\n accessor sticky: boolean | undefined;\n\n render() {\n return (\n <PageContainerComponent\n pageTitle={this.pageTitle}\n breadcrumbs={this.breadcrumbs}\n sticky={this.sticky}\n />\n );\n }\n}\n\nfunction PageContainerComponent({\n breadcrumbs,\n pageTitle,\n sticky,\n}: PageContainerProps) {\n useEffect(() => {\n if (typeof pageTitle === \"string\") {\n getRuntime().applyPageTitle(pageTitle);\n }\n }, [pageTitle]);\n\n const header =\n pageTitle || breadcrumbs?.length ? (\n <div className=\"header\">\n <nav>\n {breadcrumbs?.length ? (\n <ul className=\"breadcrumbs\">\n {breadcrumbs.map((item, index) => (\n <li key={index}>\n <WrappedLink url={item.url}>{item.text}</WrappedLink>\n </li>\n ))}\n </ul>\n ) : null}\n {pageTitle ? <h1>{pageTitle}</h1> : null}\n </nav>\n <slot name=\"toolbar\" />\n </div>\n ) : null;\n\n return (\n <div className=\"container\">\n {header && sticky ? (\n <WrappedStickyContainer className=\"sticky-header\">\n {header}\n </WrappedStickyContainer>\n ) : (\n <div className=\"non-sticky-header\">{header}</div>\n )}\n <slot />\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface TabListProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\nexport interface TabListEvents {\n \"tab.click\": CustomEvent<Tab>;\n}\n\nexport interface TabListMapping {\n onTabClick: \"tab.click\";\n}\n\n/**\n * 构件 `ai-portal.tab-list`\n *\n * @part tabs - The tab list container\n * @part tab - The individual tab\n */\nexport\n@defineElement(\"ai-portal.tab-list\", {\n styleTexts: [styleText],\n})\nclass TabList extends ReactNextElement implements TabListProps {\n @property({ attribute: false })\n accessor tabs: Tab[] | undefined;\n\n @property({ attribute: false })\n accessor activeTab: string | undefined;\n\n @event({ type: \"tab.click\" })\n accessor #tabClick!: EventEmitter<Tab>;\n\n #handleTabClick = (tab: Tab) => {\n this.activeTab = tab.id;\n this.#tabClick.emit(tab);\n };\n\n render() {\n return (\n <TabListComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface TabListComponentProps extends TabListProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction TabListComponent({\n tabs,\n activeTab,\n onTabClick,\n}: TabListComponentProps) {\n return (\n <ul className=\"tabs\" part=\"tabs\">\n {tabs?.map((tab) => (\n <li\n key={tab.id}\n part=\"tab\"\n className={classNames(\"tab\", { active: tab.id === activeTab })}\n >\n <a onClick={() => onTabClick(tab)}>{tab.label}</a>\n </li>\n ))}\n </ul>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PLEASE_SELECT = \"PLEASE_SELECT\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n SEARCH_NO_DATA = \"SEARCH_NO_DATA\",\n}\n\nconst en: Locale = {\n PLEASE_SELECT: \"Please Select\",\n SEARCH_PLACEHOLDER: \"Search\",\n SEARCH_NO_DATA: \"No Data\",\n};\n\nconst zh: Locale = {\n PLEASE_SELECT: \"请选择\",\n SEARCH_PLACEHOLDER: \"搜索\",\n SEARCH_NO_DATA: \"暂无结果\",\n};\n\nexport const NS = \"bricks/ai-portal/dropdown-select\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { debounce } from \"lodash\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport { Menu } from \"@next-bricks/basic/menu\";\nimport { MenuItem, MenuComponentProps } from \"@next-bricks/basic/menu-item\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport {\n LoadingContainer,\n LoadingContainerProps,\n} from \"@next-bricks/basic/loading-container\";\nimport { Input, InputEvents, InputProps } from \"@next-bricks/form/input\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLoadingContainer = wrapBrick<\n LoadingContainer,\n LoadingContainerProps\n>(\"eo-loading-container\");\n\nconst WrappedMenu = wrapBrick<Menu, unknown>(\"eo-menu\");\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onValueChange: \"change\",\n }\n);\n\nexport interface DropdownSelectProps {\n value?: string;\n options?: DropdownOptions[];\n labelMaxWidth?: string | number;\n dropdownMaxWidth?: string | number;\n dropdownContentStyle?: React.CSSProperties;\n showSearch?: boolean;\n searchPlaceholder?: string;\n loading?: boolean;\n}\n\ninterface DropdownOptions {\n label: string;\n value: string;\n disabled?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * 构件 `ai-portal.dropdown-select`\n */\nexport\n@defineElement(\"ai-portal.dropdown-select\", {\n styleTexts: [styleText],\n})\nclass DropdownSelect extends ReactNextElement implements DropdownSelectProps {\n @property()\n accessor value: string | undefined;\n\n @property({ attribute: false })\n accessor options: DropdownOptions[] | undefined;\n\n @property({ attribute: false })\n accessor labelMaxWidth: string | number | undefined;\n\n @property({ type: Boolean })\n accessor loading: boolean | undefined;\n\n @property({ attribute: false })\n accessor searchPlaceholder: string | undefined;\n\n @property({ attribute: false })\n accessor dropdownContentStyle: React.CSSProperties | undefined;\n\n /**\n * @default \"500px\"\n */\n @property({ attribute: false })\n accessor dropdownMaxWidth: string | number | undefined;\n\n /** 是否展示搜索框 */\n @property({ type: Boolean })\n accessor showSearch: boolean | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DropdownOptions>;\n\n #handleChange = (option: DropdownOptions) => {\n this.#changeEvent.emit(option);\n };\n\n render() {\n return (\n <DropdownSelectComponent\n value={this.value}\n options={this.options}\n onChange={this.#handleChange}\n loading={this.loading}\n labelMaxWidth={this.labelMaxWidth}\n dropdownMaxWidth={this.dropdownMaxWidth}\n showSearch={this.showSearch}\n searchPlaceholder={this.searchPlaceholder}\n dropdownContentStyle={this.dropdownContentStyle}\n />\n );\n }\n}\n\ninterface DropdownSelectComponentProps extends DropdownSelectProps {\n onChange: (option: DropdownOptions) => void;\n}\n\nfunction DropdownSelectComponent({\n value: _value,\n options: _options,\n labelMaxWidth,\n dropdownMaxWidth,\n showSearch,\n loading,\n searchPlaceholder,\n dropdownContentStyle,\n onChange,\n}: DropdownSelectComponentProps) {\n const [open, setOpen] = useState(false);\n const [value, setValue] = useState(_value);\n const [q, setQ] = useState(\"\");\n const [options, setOptions] = useState<DropdownOptions[] | undefined>(\n _options\n );\n\n useEffect(() => {\n setOptions(_options);\n }, [_options]);\n\n const activeOption = useMemo(() => {\n return options?.find((opt) => opt.value === value);\n }, [options, value]);\n\n const filteredOptions = useMemo(() => {\n if (!q || !options) {\n return options;\n }\n return options?.filter((ops) =>\n ops.label.toLowerCase().includes(q.toLowerCase())\n );\n }, [options, q]);\n\n const handleBeforeVisibleChange = useCallback((e: CustomEvent<boolean>) => {\n setOpen(e.detail);\n if (!e.detail) {\n setQ(\"\");\n }\n }, []);\n\n const handleSearchChange = useMemo(\n () =>\n debounce((evt: CustomEvent<string>) => {\n setQ(evt.detail);\n }, 300),\n []\n );\n\n return (\n <WrappedPopover\n placement=\"bottom-start\"\n trigger=\"click\"\n active={open}\n arrow={false}\n distance={5}\n onBeforeVisibleChange={handleBeforeVisibleChange}\n >\n <span slot=\"anchor\" className=\"trigger\">\n <span className=\"label\" style={{ maxWidth: labelMaxWidth }}>\n {activeOption ? activeOption?.label : t(K.PLEASE_SELECT)}\n </span>\n <WrappedIcon lib=\"lucide\" icon={open ? \"chevron-up\" : \"chevron-down\"} />\n </span>\n <div className=\"dropdown\" style={{ maxWidth: dropdownMaxWidth }}>\n {showSearch && (\n <div className=\"search-container\">\n <WrappedInput\n className=\"search\"\n value={q}\n placeholder={searchPlaceholder || t(K.SEARCH_PLACEHOLDER)}\n onValueChange={handleSearchChange}\n >\n <WrappedIcon slot=\"prefix\" lib=\"antd\" icon=\"search\" />\n </WrappedInput>\n </div>\n )}\n <WrappedLoadingContainer\n loading={loading}\n delay={500}\n style={{ width: \"100%\" }}\n >\n <div className=\"dropdown-inner\" style={dropdownContentStyle}>\n <slot name=\"prefix\" />\n {!!filteredOptions?.length && (\n <WrappedMenu>\n {filteredOptions?.map((opt) => (\n <WrappedMenuItem\n key={opt.value}\n disabled={opt.disabled}\n className={value === opt.value ? \"active\" : undefined}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setOpen(false);\n if (value !== opt.value) {\n setValue(opt.value);\n onChange(opt);\n }\n }}\n >\n {opt.label}\n </WrappedMenuItem>\n ))}\n </WrappedMenu>\n )}\n {!filteredOptions?.length && (\n <div className=\"empty\">{t(K.SEARCH_NO_DATA)}</div>\n )}\n </div>\n </WrappedLoadingContainer>\n </div>\n </WrappedPopover>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n UNTITLED: \"无标题\",\n};\n\nexport const NS = \"bricks/ai-portal/preview-container\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { Suspense, use, useEffect, useMemo, useRef } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { unstable_createRoot } from \"@next-core/runtime\";\nimport type { ModulePartOfComponent, ParsedApp } from \"@next-shared/tsx-parser\";\nimport { convertView, type ConvertResult } from \"@next-shared/tsx-converter\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoPageTitle,\n PageTitleProps,\n} from \"@next-bricks/basic/page-title\";\nimport type {\n EoMainView,\n MainViewProps,\n} from \"@next-bricks/containers/main-view\";\nimport type {\n EoNarrowView,\n NarrowViewProps,\n} from \"@next-bricks/containers/narrow-view\";\nimport { uniqueId } from \"lodash\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styles from \"./styles.module.css\";\nimport { getRemoteTsxParserWorker } from \"../shared/workers/tsxParser.js\";\nimport { createPortal } from \"../cruise-canvas/utils/createPortal.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedPageTitle = wrapBrick<EoPageTitle, PageTitleProps>(\n \"eo-page-title\"\n);\nconst WrappedMainView = wrapBrick<EoMainView, MainViewProps>(\"eo-main-view\");\nconst WrappedNarrowView = wrapBrick<EoNarrowView, NarrowViewProps>(\n \"eo-narrow-view\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PreviewContainerProps {\n source?: string;\n url?: string;\n}\n\n/**\n * 构件 `ai-portal.preview-container`\n */\nexport\n@defineElement(\"ai-portal.preview-container\", {\n shadowOptions: false,\n})\nclass PreviewContainer\n extends ReactNextElement\n implements PreviewContainerProps\n{\n @property({ attribute: false })\n accessor source: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n #rootId = uniqueId();\n\n render() {\n return (\n <Suspense\n fallback={\n <WrappedIcon\n lib=\"antd\"\n icon=\"loading-3-quarters\"\n spinning\n className={styles.loading}\n />\n }\n >\n <PreviewContainerComponent\n rootId={this.#rootId}\n source={this.source}\n url={this.url}\n />\n </Suspense>\n );\n }\n}\n\ninterface PreviewContainerComponentProps extends PreviewContainerProps {\n rootId: string;\n}\n\nfunction PreviewContainerComponent({\n rootId,\n source,\n url,\n}: PreviewContainerComponentProps) {\n const parsedResultPromise = useMemo(() => {\n if (!source) {\n return Promise.resolve(null);\n }\n return parse(source).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to parse view:\", error);\n return null;\n });\n }, [source]);\n\n const parsedResult = use(parsedResultPromise);\n\n const convertedResultPromise = useMemo(() => {\n if (!parsedResult) {\n return Promise.resolve(null);\n }\n return convertView(parsedResult, {\n rootId,\n expanded: true,\n }).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to convert view:\", error);\n return null;\n });\n }, [parsedResult, rootId]);\n\n const convertedResult = use(convertedResultPromise);\n\n const viewTitle = useMemo(\n () => (parsedResult?.entry?.defaultExport as ModulePartOfComponent)?.title,\n [parsedResult]\n );\n\n return (\n <RenderComponent\n rootId={rootId}\n pageTitle={viewTitle}\n convertedResult={convertedResult}\n url={url}\n />\n );\n}\n\ninterface RenderComponentProps {\n rootId: string;\n pageTitle?: string;\n convertedResult: ConvertResult | null;\n url?: string;\n}\n\nfunction RenderComponent({\n rootId,\n pageTitle,\n convertedResult,\n url,\n}: RenderComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Awaited<\n ReturnType<typeof unstable_createRoot>\n > | null>(null);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n const portal = createPortal(rootId);\n const root = unstable_createRoot(container, {\n portal,\n supportsUseChildren: true,\n } as any);\n rootRef.current = root;\n return () => {\n root.unmount();\n portal.remove();\n rootRef.current = null;\n };\n }, [rootId]);\n\n useEffect(() => {\n if (!convertedResult) {\n return;\n }\n const { brick, context, functions, templates } = convertedResult;\n rootRef.current?.render(brick, { context, functions, templates, url });\n }, [convertedResult, url]);\n\n return (\n <WrappedNarrowView size=\"large\" className={styles.container}>\n <WrappedMainView>\n <WrappedPageTitle\n slot=\"pageTitle\"\n pageTitle={pageTitle || t(K.UNTITLED)}\n />\n <div className={styles.main} ref={containerRef} data-root-id={rootId} />\n </WrappedMainView>\n </WrappedNarrowView>\n );\n}\n\nasync function parse(source: string): Promise<ParsedApp> {\n const worker = await getRemoteTsxParserWorker();\n const result = await worker.parseView(source);\n return result;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n // HELLO: \"Hello\",\n};\n\nconst zh: Locale = {\n // HELLO: \"你好\",\n};\n\nexport const NS = \"bricks/ai-portal/action-buttons\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrapperIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrapperButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst { defineElement, property, event } = createDecorators();\n\ninterface ActionItem {\n text: string;\n key: string;\n icon?: GeneralIconProps;\n hidden?: boolean;\n}\n\nexport interface ActionButtonsProps {\n items?: ActionItem[];\n activeKey?: string | null;\n}\n\n/**\n * 构件 `ai-portal.action-buttons`\n */\nexport\n@defineElement(\"ai-portal.action-buttons\", {\n styleTexts: [styleText],\n})\nclass ActionButtons extends ReactNextElement implements ActionButtonsProps {\n @property({\n attribute: false,\n })\n accessor items: ActionItem[] | undefined;\n\n @property()\n accessor activeKey: string | null | undefined;\n\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ActionItem | null>;\n\n #handleChange = (action: ActionItem | null) => {\n this.activeKey = action ? action.key : null;\n this.#change.emit(action);\n };\n\n render() {\n return (\n <ActionButtonsComponent\n items={this.items}\n activeKey={this.activeKey}\n onChange={this.#handleChange}\n />\n );\n }\n}\n\ninterface ActionButtonsComponentProps extends ActionButtonsProps {\n onChange: (action: ActionItem | null) => void;\n}\n\nfunction ActionButtonsComponent({\n items,\n activeKey: propActiveKey,\n onChange,\n}: ActionButtonsComponentProps) {\n const [activeKey, setActiveKey] = useState<string | null>(\n propActiveKey ?? null\n );\n const initializedRef = useRef(false);\n\n useEffect(() => {\n setActiveKey(propActiveKey ?? null);\n }, [propActiveKey]);\n\n useEffect(() => {\n if (!initializedRef.current) {\n initializedRef.current = true;\n return;\n }\n onChange(\n activeKey\n ? (items?.find((item) => !item.hidden && item.key === activeKey) ??\n null)\n : null\n );\n }, [activeKey, items, onChange]);\n\n const filteredItems = useMemo(() => {\n return items?.filter(\n (item) => (!item.hidden && !activeKey) || item.key === activeKey\n );\n }, [items, activeKey]);\n\n return (\n <div className=\"button-container\">\n {filteredItems?.map((item) => {\n const { text, icon, key } = item;\n return (\n <WrapperButton\n key={key}\n className={`action${activeKey ? \" active\" : \"\"}`}\n themeVariant=\"elevo\"\n type=\"neutral\"\n onClick={() => {\n if (!activeKey) {\n setActiveKey(key);\n }\n }}\n >\n {icon ? <WrapperIcon className=\"icon\" {...icon} /> : null}\n {text}\n {activeKey ? (\n <WrapperIcon\n className=\"remove\"\n lib=\"lucide\"\n icon=\"x\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n setActiveKey(null);\n }}\n />\n ) : null}\n </WrapperButton>\n );\n })}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UN_START_STATUS = \"UN_START_STATUS\",\n RUNNING_STATUS = \"RUNNING_STATUS\",\n COMPLETED_STATUS = \"COMPLETED_STATUS\",\n NEW_CHAT = \"NEW_CHAT\",\n}\n\nconst en: Locale = {\n UN_START_STATUS: \"Not Start\",\n RUNNING_STATUS: \"Running\",\n COMPLETED_STATUS: \"Completed\",\n NEW_CHAT: \"New chat\",\n};\n\nconst zh: Locale = {\n UN_START_STATUS: \"未开始\",\n RUNNING_STATUS: \"运行中\",\n COMPLETED_STATUS: \"已完成\",\n NEW_CHAT: \"新对话\",\n};\n\nexport const NS = \"bricks/ai-portal/goal-card-list\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// istanbul ignore file: compatibility workaround\nimport type { HTMLAttributes } from \"react\";\n\nlet _supports: boolean | undefined;\n\nfunction supportsContentEditablePlaintextOnly(): boolean {\n if (typeof _supports !== \"boolean\") {\n const div = document.createElement(\"div\");\n div.setAttribute(\"contenteditable\", \"PLAINTEXT-ONLY\");\n _supports = div.contentEditable === \"plaintext-only\";\n }\n return _supports;\n}\n\nexport function getContentEditable(\n editable: boolean\n): HTMLAttributes<HTMLDivElement>[\"contentEditable\"] {\n return editable\n ? supportsContentEditablePlaintextOnly()\n ? \"plaintext-only\"\n : \"true\"\n : \"false\";\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Action, SimpleAction } from \"@next-bricks/basic/actions\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"../i18n.js\";\nimport { getContentEditable } from \"../../shared/getContentEditable.js\";\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nconst WrappedEasyopsAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nexport type GoalState = \"ready\" | \"working\" | \"completed\";\n\ninterface GoalMember {\n instanceId: string;\n}\n\nexport interface GoalItem {\n title: string;\n description?: string;\n state: GoalState;\n id: number;\n conversations?: number;\n owner?: GoalMember;\n users?: GoalMember[];\n instanceId: string;\n level: number;\n pending?: boolean;\n pendingParentId?: string;\n}\n\ninterface GoalCardItemProps {\n goalItem: GoalItem;\n idWidth?: number;\n cardStyle?: React.CSSProperties;\n isActive?: boolean;\n onTitleChange?: (newTitle: string) => void;\n onStatusChange?: (newStatus: GoalState) => void;\n onNewChat?: () => void;\n onClick?: () => void;\n onAppendChild?: () => void;\n onRevokeAppendChild?: () => void;\n}\n\nconst iconMap = {\n ready: \"uncheck-status\",\n working: \"active-status\",\n completed: \"check-status\",\n};\n\nconst iconActions: Action[] = [\n {\n key: \"ready\",\n icon: {\n icon: \"uncheck-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.UN_START_STATUS),\n },\n {\n key: \"working\",\n icon: {\n icon: \"active-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.RUNNING_STATUS),\n },\n {\n key: \"completed\",\n icon: {\n icon: \"check-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.COMPLETED_STATUS),\n },\n];\n\nexport function GoalCardItem({\n goalItem,\n idWidth,\n cardStyle,\n onStatusChange,\n onTitleChange,\n onClick,\n onNewChat,\n onAppendChild,\n onRevokeAppendChild,\n isActive,\n}: GoalCardItemProps) {\n const {\n state,\n id: serialNumber,\n title,\n conversations,\n owner,\n pending,\n } = goalItem;\n\n const handleStatusChange = (action: SimpleAction) => {\n onStatusChange?.(action.key as GoalState);\n };\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(() => {\n compositionRef.current = true;\n }, []);\n\n const handleCompositionEnd = useCallback(() => {\n compositionRef.current = false;\n }, []);\n\n const [editing, setEditing] = useState(false);\n\n const handleFocus = useCallback(() => {\n setEditing(true);\n }, []);\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLSpanElement>) => {\n setEditing(false);\n const value = e.currentTarget.textContent;\n\n if (pending && !value?.trim()) {\n onRevokeAppendChild?.();\n return;\n }\n\n if (value !== null && title !== value) {\n onTitleChange?.(value);\n }\n },\n [pending, title, onRevokeAppendChild, onTitleChange]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.currentTarget.blur();\n }\n },\n []\n );\n\n const titleRef = useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (pending) {\n titleRef.current?.focus();\n }\n }, [pending]);\n\n return (\n <div\n className={classNames(\n \"goal-item\",\n goalItem.state,\n { editing },\n { active: isActive }\n )}\n style={{\n paddingLeft: `${(goalItem.level + 1) * 24}px`,\n ...cardStyle,\n }}\n onClick={pending ? undefined : onClick}\n >\n <div className=\"start\">\n <WrappedDropdownActions\n actions={iconActions}\n disabled={pending}\n onActionClick={(e) => {\n handleStatusChange(e.detail);\n }}\n >\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"colored-common\"\n icon={iconMap[state]}\n onClick={(e) => e.stopPropagation()}\n />\n </WrappedDropdownActions>\n\n <span className=\"serial-number\" style={{ width: idWidth }}>\n #{pending ? \"\" : serialNumber}\n </span>\n <span\n className=\"title\"\n ref={titleRef}\n onClick={(e) => e.stopPropagation()}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n contentEditable={getContentEditable(true)}\n suppressContentEditableWarning\n >\n {title}\n </span>\n </div>\n <div className=\"end\">\n <div className=\"info\">\n <div className=\"message\">\n <WrappedIcon lib=\"easyops\" category=\"common\" icon=\"message\" />\n <span className=\"count\">{conversations || 0}</span>\n </div>\n <WrappedEasyopsAvatar\n nameOrInstanceId={owner?.instanceId}\n size=\"small\"\n />\n </div>\n <div className=\"operation\" onClick={(e) => e.stopPropagation()}>\n {goalItem.level === 0 && (\n <WrappedButton\n className=\"append-child\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onAppendChild}\n >\n <WrappedIcon lib=\"lucide\" icon=\"plus\" />\n </WrappedButton>\n )}\n {!pending && (\n <WrappedButton\n className=\"new-chat\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onNewChat}\n >\n {t(K.NEW_CHAT)}\n </WrappedButton>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React, {\n useState,\n useEffect,\n forwardRef,\n createRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport CardItemStyleText from \"./CardItem/CardItem.shadow.css\";\nimport styleText from \"./styles.shadow.css\";\nimport { GoalCardItem, GoalItem, GoalState } from \"./CardItem/CardItem.js\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { uniqueId } from \"lodash\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface GoalCardListProps {\n goalList?: GoalItem[];\n cardStyle?: React.CSSProperties;\n activeKey?: string;\n}\n\nconst GoalCardListComponent = forwardRef(LegacyGoalCardListComponent);\n\n/**\n * 构件 `ai-portal.goal-card-list`\n */\nexport\n@defineElement(\"ai-portal.goal-card-list\", {\n styleTexts: [styleText, CardItemStyleText],\n})\nclass GoalCardList extends ReactNextElement implements GoalCardListProps {\n @property({\n attribute: false,\n })\n accessor goalList: GoalItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor cardStyle: React.CSSProperties | undefined;\n\n @property()\n accessor activeKey: string | undefined;\n\n @event({ type: \"item.click\" })\n accessor #itemClickEvent!: EventEmitter<GoalItem>;\n #handleItemClick = (item: GoalItem) => {\n this.#itemClickEvent.emit(item);\n };\n\n @event({ type: \"item.status.change\" })\n accessor #itemStatusChangeEvent!: EventEmitter<GoalItem>;\n #handleItemStatusChange = (item: GoalItem) => {\n this.#itemStatusChangeEvent.emit(item);\n };\n\n @event({ type: \"item.title.change\" })\n accessor #itemTitleChangeEvent!: EventEmitter<GoalItem>;\n #handleTitleChange = (item: GoalItem) => {\n this.#itemTitleChangeEvent.emit(item);\n };\n\n @event({ type: \"item.new.chat\" })\n accessor #itemNewChatEvent!: EventEmitter<GoalItem>;\n #handleNewChat = (item: GoalItem) => {\n this.#itemNewChatEvent.emit(item);\n };\n\n #ref = createRef<GoalListRef>();\n\n @method()\n appendChildDone(pendingId: string, newItem: GoalItem) {\n this.#ref.current?.appendChildDone(pendingId, newItem);\n }\n\n render() {\n return (\n <GoalCardListComponent\n ref={this.#ref}\n goalList={this.goalList}\n cardStyle={this.cardStyle}\n onTitleChange={this.#handleTitleChange}\n onStatusChange={this.#handleItemStatusChange}\n onItemClick={this.#handleItemClick}\n onNewChat={this.#handleNewChat}\n activeKey={this.activeKey}\n />\n );\n }\n}\n\ninterface GoalCardListComponentProps extends GoalCardListProps {\n onTitleChange?: (item: GoalItem) => void;\n onStatusChange?: (item: GoalItem) => void;\n onItemClick?: (item: GoalItem) => void;\n onNewChat?: (item: GoalItem) => void;\n}\n\ninterface GoalListRef {\n appendChildDone: (pendingId: string, newItem: GoalItem) => void;\n}\n\nfunction LegacyGoalCardListComponent(\n {\n goalList: _goalList,\n cardStyle,\n onTitleChange,\n onStatusChange,\n onItemClick,\n onNewChat,\n activeKey,\n }: GoalCardListComponentProps,\n ref: React.Ref<GoalListRef>\n) {\n const [goalList, setGoalList] = useState(_goalList);\n\n useEffect(() => {\n setGoalList(_goalList);\n }, [_goalList]);\n\n const updateGoalItem = <T extends keyof GoalItem>(\n item: GoalItem,\n field: T,\n value: GoalItem[T],\n callback?: (updatedItem: GoalItem) => void\n ) => {\n const updatedItem = {\n ...item,\n [field]: value,\n };\n\n setGoalList(\n goalList?.map((goalItem) =>\n goalItem.instanceId === updatedItem.instanceId ? updatedItem : goalItem\n )\n );\n\n callback?.(updatedItem);\n };\n\n const handleTitleChange = (newTitle: string, item: GoalItem) => {\n updateGoalItem(item, \"title\", newTitle, onTitleChange);\n };\n\n const handleStatusChange = (newStatus: GoalState, item: GoalItem) => {\n updateGoalItem(item, \"state\", newStatus, onStatusChange);\n };\n\n const handleAppendChild = (item: GoalItem) => {\n const newChild: GoalItem = {\n instanceId:\n process.env.NODE_ENV === \"test\"\n ? \"test-pending-id\"\n : uniqueId(\"pending-\"),\n pending: true,\n id: 0,\n title: \"\",\n state: \"ready\",\n level: 1,\n pendingParentId: item.instanceId,\n };\n setGoalList((prevList) => {\n const index =\n prevList?.findIndex((goal) => goal.instanceId === item.instanceId) ??\n -1;\n if (index === -1) return prevList;\n const offsetIndex =\n prevList!.slice(index + 1).findIndex((goal) => goal.level === 0) + 1;\n if (offsetIndex === 0) {\n return [...prevList!, newChild];\n }\n return [\n ...prevList!.slice(0, index + offsetIndex),\n newChild,\n ...prevList!.slice(index + offsetIndex),\n ];\n });\n };\n\n useImperativeHandle(\n ref,\n () => ({\n appendChildDone: (pendingId: string, newItem: GoalItem) => {\n setGoalList((prevList) =>\n prevList?.map((goal) =>\n goal.instanceId === pendingId\n ? { ...newItem, level: goal.level }\n : goal\n )\n );\n },\n }),\n []\n );\n\n const idWidth = useMemo(() => {\n const maxId =\n goalList?.reduce((max, item) => Math.max(max, item.id), 0) ?? 0;\n return 10 * (maxId.toString().length + 1);\n }, [goalList]);\n\n if (!goalList) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <div className=\"goal-container\">\n {goalList?.map((item) => (\n <GoalCardItem\n key={item.instanceId}\n isActive={activeKey === item.instanceId}\n goalItem={item}\n idWidth={idWidth}\n cardStyle={cardStyle}\n onTitleChange={(v) => handleTitleChange(v, item)}\n onStatusChange={(v) => handleStatusChange(v, item)}\n onNewChat={() => onNewChat?.(item)}\n onClick={() => onItemClick?.(item)}\n onAppendChild={() => handleAppendChild(item)}\n onRevokeAppendChild={() => {\n setGoalList((prevList) =>\n prevList?.filter((goal) => goal.instanceId !== item.instanceId)\n );\n }}\n />\n ))}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PROJECT_OVERALL = \"PROJECT_OVERALL\",\n}\n\nconst en: Locale = {\n PROJECT_OVERALL: \"Project overall\",\n};\n\nconst zh: Locale = {\n PROJECT_OVERALL: \"项目整体\",\n};\n\nexport const NS = \"bricks/ai-portal/project-conversations\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n, i18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectConversationsProps {\n list?: Conversation[];\n urlTemplate?: string;\n actions?: ActionType[];\n goals?: Goal[];\n}\n\nexport interface Conversation {\n conversationId: string;\n title: string;\n startTime: number;\n description?: string;\n goalInstanceId?: string;\n username?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Conversation;\n}\n\nexport interface Goal {\n instanceId: string;\n title: string;\n}\n\n/**\n * 构件 `ai-portal.project-conversations`\n */\nexport\n@defineElement(\"ai-portal.project-conversations\", {\n styleTexts: [styleText],\n})\nclass ProjectConversations\n extends ReactNextElement\n implements ProjectConversationsProps\n{\n @property({ attribute: false })\n accessor list: Conversation[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor goals: Goal[] | undefined;\n\n @event({ type: \"goal.click\" })\n accessor #goalClick!: EventEmitter<Conversation>;\n\n #handleGoalClick = (conversation: Conversation) => {\n this.#goalClick.emit(conversation);\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n render() {\n return (\n <ProjectConversationsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n goals={this.goals}\n onGoalClick={this.#handleGoalClick}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ProjectConversationsComponentProps extends ProjectConversationsProps {\n onGoalClick: (conversation: Conversation) => void;\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction ProjectConversationsComponent({\n list,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ProjectConversationsComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((item) => (\n <li className=\"item\" key={item.conversationId}>\n <ConversationLink\n conversation={item}\n urlTemplate={urlTemplate}\n actions={actions}\n goals={goals}\n onGoalClick={onGoalClick}\n onActionClick={onActionClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface ConversationLinkProps\n extends Pick<\n ProjectConversationsComponentProps,\n \"urlTemplate\" | \"actions\" | \"goals\" | \"onGoalClick\" | \"onActionClick\"\n > {\n conversation: Conversation;\n}\n\nfunction ConversationLink({\n conversation,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ConversationLinkProps) {\n const goalRef = useRef<HTMLDivElement>(null);\n const language = i18n.language.split(\"-\")[0];\n\n // <eo-link> handles click manually,\n // so we need to stop propagation and prevent default manually.\n useEffect(() => {\n const el = goalRef.current;\n if (!el) return;\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onGoalClick(conversation);\n };\n el.addEventListener(\"click\", handleClick);\n return () => {\n el.removeEventListener(\"click\", handleClick);\n };\n }, [conversation, onGoalClick]);\n\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, conversation)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"common\"\n icon=\"clock\"\n />\n <div className=\"title\">{conversation.title}</div>\n </div>\n {conversation.description && (\n <div className=\"description\">{conversation.description}</div>\n )}\n </div>\n {goals && (\n <div\n className={classNames(\"goal\", {\n global: !conversation.goalInstanceId,\n })}\n ref={goalRef}\n >\n {conversation.goalInstanceId\n ? goals.find((g) => g.instanceId === conversation.goalInstanceId)\n ?.title\n : t(K.PROJECT_OVERALL)}\n </div>\n )}\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={conversation.username}\n />\n <div className={`operations lang-${language}`}>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: conversation });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <div\n className=\"time\"\n title={\n humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.full\n )!\n }\n >\n {humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.relative\n )}\n </div>\n </div>\n </WrappedLink>\n );\n}\n","import React, { useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\n// import { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\n// import { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\n\n// initializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectKnowledgesProps {\n list?: Knowledge[];\n urlTemplate?: string;\n actions?: ActionType[];\n}\n\nexport interface Knowledge {\n instanceId: string;\n name: string;\n description?: string;\n time: number;\n user?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Knowledge;\n}\n\n/**\n * 构件 `ai-portal.project-knowledges`\n */\nexport\n@defineElement(\"ai-portal.project-knowledges\", {\n styleTexts: [styleText],\n})\nclass ProjectKnowledges\n extends ReactNextElement\n implements ProjectKnowledgesProps\n{\n @property({ attribute: false })\n accessor list: Knowledge[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n @event({ type: \"item.click\" })\n accessor #itemClick!: EventEmitter<Knowledge>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleItemClick = (item: Knowledge) => {\n this.#itemClick.emit(item);\n };\n\n render() {\n return (\n <ProjectKnowledgesComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n onActionClick={this.#handleActionClick}\n onItemClick={this.#handleItemClick}\n />\n );\n }\n}\n\ninterface ProjectKnowledgesComponentProps extends ProjectKnowledgesProps {\n onActionClick: (detail: ActionClickDetail) => void;\n onItemClick?: (item: Knowledge) => void;\n}\n\nfunction ProjectKnowledgesComponent({\n list,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: ProjectKnowledgesComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list?.map((item) => (\n <li className=\"item\" key={item.instanceId}>\n <KnowledgeLink\n knowledge={item}\n urlTemplate={urlTemplate}\n actions={actions}\n onActionClick={onActionClick}\n onItemClick={onItemClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface KnowledgeLinkProps\n extends Pick<\n ProjectKnowledgesComponentProps,\n \"urlTemplate\" | \"actions\" | \"onActionClick\" | \"onItemClick\"\n > {\n knowledge: Knowledge;\n}\n\nfunction KnowledgeLink({\n knowledge,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: KnowledgeLinkProps) {\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, knowledge)}\n onClick={() => onItemClick?.(knowledge)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n icon=\"lightbulb\"\n category=\"common\"\n />\n <span className=\"title\">{knowledge.name}</span>\n <WrappedIcon className=\"attachment\" lib=\"lucide\" icon=\"paperclip\" />\n </div>\n {knowledge.description && (\n <div className=\"description\">{knowledge.description}</div>\n )}\n </div>\n <div className=\"time\">\n {humanizeTime(knowledge.time * 1000, HumanizeTimeFormat.relative)}\n </div>\n <div className=\"operations\">\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: knowledge });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={knowledge.user}\n />\n </div>\n </WrappedLink>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n STARTED_A_CHAT = \"STARTED_A_CHAT\",\n CREATED_THIS_GOAL = \"CREATED_THIS_GOAL\",\n CHANGED_THE_GOAL_TITLE = \"CHANGED_THE_GOAL_TITLE\",\n CHANGED_THE_GOAL_DESCRIPTION = \"CHANGED_THE_GOAL_DESCRIPTION\",\n CHANGED_THE_GOAL = \"CHANGED_THE_GOAL\",\n DELETED_THIS_GOAL = \"DELETED_THIS_GOAL\",\n DECOMPOSED_THIS_GOAL = \"DECOMPOSED_THIS_GOAL\",\n SET_OWNER = \"SET_OWNER\",\n REMOVED_GOAL_PARTICIPANTS = \"REMOVED_GOAL_PARTICIPANTS\",\n ADDED_GOAL_PARTICIPANTS = \"ADDED_GOAL_PARTICIPANTS\",\n COMMENTED = \"COMMENTED\",\n COMMA = \"COMMA\",\n SEMICOLON = \"SEMICOLON\",\n}\n\nconst en: Locale = {\n STARTED_A_CHAT: \"started a chat\",\n CREATED_THIS_GOAL: \"created this goal\",\n CHANGED_THE_GOAL_TITLE: 'changed the goal title to \"{{ title }}\"',\n CHANGED_THE_GOAL_DESCRIPTION:\n 'changed the goal description to \"{{ description }}\"',\n CHANGED_THE_GOAL: \"changed the goal\",\n DELETED_THIS_GOAL: \"deleted this goal\",\n DECOMPOSED_THIS_GOAL: \"decomposed this goal to {{ count }} sub-goal: \",\n DECOMPOSED_THIS_GOAL_plural:\n \"decomposed this goal to {{ count }} sub-goals: \",\n SET_OWNER: \"set {{ user }} as the owner\",\n REMOVED_GOAL_PARTICIPANTS: \"removed a goal participant: \",\n REMOVED_GOAL_PARTICIPANTS_plural: \"removed {{ count }} goal participants: \",\n ADDED_GOAL_PARTICIPANTS: \"added a goal participant: \",\n ADDED_GOAL_PARTICIPANTS_plural: \"added {{ count }} goal participants: \",\n COMMENTED: \"commented\",\n COMMA: \", \",\n SEMICOLON: \"; \",\n};\n\nconst zh: Locale = {\n STARTED_A_CHAT: \"发起了对话\",\n CREATED_THIS_GOAL: \"创建了此目标\",\n CHANGED_THE_GOAL_TITLE: \"修改目标标题为 “{{ title }}”\",\n CHANGED_THE_GOAL_DESCRIPTION: \"修改目标描述为 “{{ description }}”\",\n CHANGED_THE_GOAL: \"修改了此目标\",\n DELETED_THIS_GOAL: \"删除了此目标\",\n DECOMPOSED_THIS_GOAL: \"将此目标分解为 {{ count }} 个子目标:\",\n DECOMPOSED_THIS_GOAL_plural: \"将此目标分解为 {{ count }} 个子目标:\",\n SET_OWNER: \"设定负责人为 {{ user }}\",\n REMOVED_GOAL_PARTICIPANTS: \"移除了目标参与成员:\",\n ADDED_GOAL_PARTICIPANTS: \"添加了目标参与成员:\",\n COMMENTED: \"评论\",\n COMMA: \",\",\n SEMICOLON: \";\",\n};\n\nexport const NS = \"bricks/ai-portal/activity-timeline\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { Activity, ActivityOfAlterUser } from \"./interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst { defineElement, property } = createDecorators();\n\nexport interface ActivityTimelineProps {\n list?: Activity[];\n chatUrlTemplate?: string;\n}\n\n/**\n * 构件 `ai-portal.activity-timeline`\n */\nexport\n@defineElement(\"ai-portal.activity-timeline\", {\n styleTexts: [styleText],\n})\nclass ActivityTimeline\n extends ReactNextElement\n implements ActivityTimelineProps\n{\n @property({ attribute: false })\n accessor list: Activity[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ActivityTimelineComponent\n list={this.list}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ActivityTimelineComponent({\n list,\n chatUrlTemplate,\n}: ActivityTimelineProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((activity, index) => (\n <li className=\"activity\" key={index}>\n <div className=\"guide-line\" />\n <div className=\"main\">\n <WrappedAvatar\n className=\"avatar\"\n nameOrInstanceId={activity.user_id}\n size=\"xs\"\n />\n <span className=\"action\">\n {activity.user_name}\n &nbsp;\n {activity.action_type === \"start_conversation\" ? (\n <>\n <span>{t(K.STARTED_A_CHAT)}</span>\n <WrappedLink\n className=\"conversation\"\n url={parseTemplate(chatUrlTemplate, activity)}\n target=\"_blank\"\n >\n {activity.metadata?.conversation_title}\n </WrappedLink>\n <WrappedIcon\n className=\"external-link-icon\"\n lib=\"lucide\"\n icon=\"external-link\"\n />\n </>\n ) : activity.action_type === \"create_goal\" ? (\n t(K.CREATED_THIS_GOAL)\n ) : activity.action_type === \"edit_goal\" ? (\n activity.metadata.after.title ? (\n t(K.CHANGED_THE_GOAL_TITLE, activity.metadata.after)\n ) : activity.metadata.after.description ? (\n t(K.CHANGED_THE_GOAL_DESCRIPTION, activity.metadata.after)\n ) : (\n t(K.CHANGED_THE_GOAL)\n )\n ) : activity.action_type === \"delete_goal\" ? (\n t(K.DELETED_THIS_GOAL)\n ) : activity.action_type === \"decompose_goals\" ? (\n `${t(K.DECOMPOSED_THIS_GOAL, {\n count: activity.metadata.sub_goals_count,\n })}${activity.metadata.sub_goals\n .map((g) => g.title)\n .join(t(K.COMMA))}`\n ) : activity.action_type === \"alter_owner\" ? (\n t(K.SET_OWNER, {\n user: activity.metadata.after.owner.user_name,\n })\n ) : activity.action_type === \"alter_user\" ? (\n getAlterPARTICIPANTsActivityDescription(activity)\n ) : activity.action_type === \"add_comment\" ? (\n t(K.COMMENTED)\n ) : (\n // Defense for future action types\n (activity as { action_type: string }).action_type\n )}\n </span>\n <span\n className=\"time\"\n title={humanizeTime(activity.time, HumanizeTimeFormat.full)!}\n >\n {humanizeTime(activity.time, HumanizeTimeFormat.relative)}\n </span>\n </div>\n {activity.action_type === \"add_comment\" && (\n <div className=\"comment\">{activity.metadata?.comment_content}</div>\n )}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction getAlterPARTICIPANTsActivityDescription(\n activity: ActivityOfAlterUser\n) {\n const removed: string[] = [];\n const added: string[] = [];\n const beforeUserIds = new Set(\n activity.metadata.before.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.after.users) {\n if (!beforeUserIds.has(user.user_name)) {\n added.push(user.user_name);\n }\n }\n const afterUserIds = new Set(\n activity.metadata.after.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.before.users) {\n if (!afterUserIds.has(user.user_name)) {\n removed.push(user.user_name);\n }\n }\n\n const descriptions: string[] = [];\n if (removed.length > 0) {\n descriptions.push(\n t(K.REMOVED_GOAL_PARTICIPANTS, { count: removed.length }) +\n removed.join(t(K.COMMA))\n );\n }\n if (added.length > 0) {\n descriptions.push(\n t(K.ADDED_GOAL_PARTICIPANTS, { count: added.length }) +\n added.join(t(K.COMMA))\n );\n }\n\n return descriptions.join(t(K.SEMICOLON));\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-input\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n\nconst ICON_STOP: GeneralIconProps = {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n}\n\nexport interface ChatInputEvents {\n \"message.submit\": CustomEvent<string>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onMessageSubmit: \"message.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatInput extends ReactNextElement implements ChatInputProps {\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ type: Boolean })\n accessor submitDisabled: boolean | undefined;\n\n @property({ type: Boolean })\n accessor supportsTerminate: boolean | undefined;\n\n @property({ type: Boolean })\n accessor terminating: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"terminate\" })\n accessor #terminate!: EventEmitter<void>;\n\n #handleTerminate = () => {\n this.#terminate.emit();\n };\n\n render() {\n return (\n <ChatInputComponent\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n submitDisabled={this.submitDisabled}\n supportsTerminate={this.supportsTerminate}\n terminating={this.terminating}\n onSubmit={this.#handleMessageSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onSubmit: (value: string) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n onSubmit,\n onTerminate,\n}: ChatInputComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [wrap, setWrap] = useState(false);\n\n useEffect(() => {\n if (autoFocus && !submitDisabled) {\n textareaRef.current?.focus();\n }\n }, [autoFocus, submitDisabled]);\n\n const onBeforeSubmit = useCallback(\n (value: string) => {\n if (submitDisabled || !value) {\n return;\n }\n\n onSubmit(value);\n valueRef.current = \"\";\n setValue(\"\");\n },\n [submitDisabled, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onBeforeSubmit(e.currentTarget.value);\n },\n [onBeforeSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onBeforeSubmit(valueRef.current);\n }, [onBeforeSubmit]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container) {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n const currentBlockSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (currentBlockSize > 52) {\n setWrap(true);\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (!value) {\n setWrap(false);\n }\n }, [value]);\n\n const handleContainerClick = useCallback((e: React.MouseEvent) => {\n for (const item of e.nativeEvent.composedPath()) {\n if (\n item instanceof HTMLTextAreaElement ||\n item instanceof HTMLButtonElement\n ) {\n return;\n }\n }\n textareaRef.current?.focus();\n }, []);\n\n return (\n <div className=\"container\" onClick={handleContainerClick}>\n <div className={classNames(\"box\", { wrap })}>\n <div className=\"input\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={1}\n maxRows={4}\n borderSize={0}\n paddingSize={16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n </div>\n <div className=\"toolbar\">\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" icon=\"arrow-up\" />\n </button>\n ) : (\n <>\n {terminating ? (\n <WrappedIconButton icon={ICON_LOADING} disabled />\n ) : (\n <WrappedIconButton\n icon={ICON_STOP}\n tooltip={t(K.TERMINATE_THE_TASK)}\n onClick={onTerminate}\n />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport Logo from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.elevo-logo`\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return (\n <img className=\"logo\" alt=\"Elevo\" src={Logo} width={95} height={28} />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WATCH_REPLAY = \"WATCH_REPLAY\",\n}\n\nconst en: Locale = {\n [K.WATCH_REPLAY]: \"Watch replay\",\n};\n\nconst zh: Locale = {\n [K.WATCH_REPLAY]: \"查看回放\",\n};\n\nexport const NS = \"bricks/ai-portal/show-case\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst bgClasses = [\"purple\", \"green\", \"pink\"];\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCaseProps {\n caseTitle?: string;\n summary?: string;\n url?: string;\n}\n\n/**\n * 构件 `ai-portal.show-case`\n */\nexport\n@defineElement(\"ai-portal.show-case\", {\n styleTexts: [styleText],\n})\nclass ShowCase extends ReactNextElement implements ShowCaseProps {\n @property()\n accessor caseTitle: string | undefined;\n\n @property()\n accessor summary: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n render() {\n return (\n <ShowCaseComponent\n caseTitle={this.caseTitle}\n summary={this.summary}\n url={this.url}\n />\n );\n }\n}\n\nfunction ShowCaseComponent({ caseTitle, summary, url }: ShowCaseProps) {\n const bgClass = useMemo(() => {\n // Get a deterministic class based on the caseTitle\n if (!caseTitle) return bgClasses[0];\n let hash = 0;\n for (let i = 0; i < caseTitle.length; i++) {\n hash = caseTitle.charCodeAt(i) + ((hash << 5) - hash);\n }\n const index = Math.abs(hash) % bgClasses.length;\n return bgClasses[index];\n }, [caseTitle]);\n\n return (\n <WrappedLink className={`link ${bgClass}`} url={url}>\n <span className=\"title\">{caseTitle}</span>\n <span className=\"description\">{summary}</span>\n <span className=\"mask\" />\n <span className=\"button\">\n <WrappedIcon lib=\"easyops\" icon=\"replay\" />\n {t(K.WATCH_REPLAY)}\n </span>\n </WrappedLink>\n );\n}\n","import { http } from \"@next-core/http\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport type { ToolInfo } from \"@next-shared/tsx-parser\";\n\nexport async function callTool(\n tool: ToolInfo,\n params: Record<string, unknown>\n): Promise<unknown> {\n const response = await http.post<{ data: unknown }>(\n `api/gateway/logic.llm.aiops_service/api/v1/elevo/conversation/${\n tool.conversationId\n }/step/${tool.stepId}/view`,\n {\n params,\n }\n );\n\n return response.data;\n}\n\ncustomElements.define(\"ai-portal.call-tool\", createProviderClass(callTool));\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport imageGoals from \"./images/goals@2x.png\";\nimport imageActivities from \"./images/activities@2x.png\";\nimport imageSpaces from \"./images/spaces@2x.png\";\nimport imageServiceflows from \"./images/serviceflows@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface BlankStateProps {\n illustration?: BlankStateIllustration;\n description?: string;\n}\n\nexport type BlankStateIllustration =\n | \"goals\"\n | \"activities\"\n | \"collaboration-spaces\"\n | \"serviceflows\";\n\n/**\n * 构件 `ai-portal.blank-state`\n */\nexport\n@defineElement(\"ai-portal.blank-state\", {\n styleTexts: [styleText],\n})\nclass BlankState extends ReactNextElement implements BlankStateProps {\n @property()\n accessor illustration: BlankStateIllustration | undefined;\n\n @property()\n accessor description: string | undefined;\n\n render() {\n return (\n <BlankStateComponent\n illustration={this.illustration}\n description={this.description}\n />\n );\n }\n}\n\nfunction BlankStateComponent({ illustration, description }: BlankStateProps) {\n return (\n <>\n <img src={getIllustrationSrc(illustration)} width={184} height={138} />\n <p>{description}</p>\n </>\n );\n}\n\nfunction getIllustrationSrc(illustration?: BlankStateIllustration) {\n switch (illustration) {\n case \"goals\":\n return imageGoals;\n case \"collaboration-spaces\":\n return imageSpaces;\n case \"serviceflows\":\n return imageServiceflows;\n default:\n return imageActivities;\n }\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StickyContainerProps {\n variant?: StickyContainerVariant;\n}\n\nexport type StickyContainerVariant = \"default\" | \"home\";\n\n/**\n * 构件 `ai-portal.sticky-container`\n *\n * @slot - 内容\n * @slot header - 头部\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.sticky-container\", {\n styleTexts: [styleText],\n})\nclass StickyContainer extends ReactNextElement implements StickyContainerProps {\n /**\n * @default \"default\"\n */\n @property({ render: false })\n accessor variant: StickyContainerVariant | undefined;\n\n render() {\n return <StickyContainerComponent />;\n }\n}\n\nfunction StickyContainerComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ElevoCardProps {\n cardTitle?: string;\n description?: string;\n url?: string;\n avatar?: string | IconWithColor;\n avatarType?: \"icon\" | \"image\";\n}\n\nexport type IconWithColor = GeneralIconProps & {\n color?: string;\n};\n\n/**\n * 构件 `ai-portal.elevo-card`\n */\nexport\n@defineElement(\"ai-portal.elevo-card\", {\n styleTexts: [styleText],\n})\nclass ElevoCard extends ReactNextElement implements ElevoCardProps {\n @property()\n accessor cardTitle: string | undefined;\n\n @property()\n accessor description: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n @property({ attribute: false })\n accessor avatar: string | GeneralIconProps | undefined;\n\n @property()\n accessor avatarType: \"icon\" | \"image\" | undefined;\n\n render() {\n return (\n <ElevoCardComponent\n cardTitle={this.cardTitle}\n description={this.description}\n url={this.url}\n avatar={this.avatar}\n avatarType={this.avatarType}\n />\n );\n }\n}\n\nfunction ElevoCardComponent({\n cardTitle,\n description,\n url,\n avatar,\n avatarType,\n}: ElevoCardProps) {\n return (\n <WrappedLink className={classNames(\"card\", { clickable: !!url })} url={url}>\n <div className=\"header\">\n <div className=\"heading\">\n {avatarType !== \"image\" && avatar ? (\n <IconAvatar {...(avatar as IconWithColor)} />\n ) : (\n <div className=\"avatar\" />\n )}\n <div className=\"title\">{cardTitle}</div>\n </div>\n <div className=\"actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n <div className=\"body\">{description}</div>\n <div className=\"footer\">\n <slot name=\"footer\" />\n </div>\n </WrappedLink>\n );\n}\n\nfunction IconAvatar({ color, ...iconProps }: IconWithColor) {\n return (\n <div\n className=\"avatar\"\n style={\n color\n ? {\n borderColor: `rgba(var(--theme-${color}-color-rgb-channel), 0.15)`,\n color: `var(--theme-${color}-color)`,\n }\n : undefined\n }\n >\n <WrappedIcon {...iconProps} />\n </div>\n );\n}\n","const dpr = window.devicePixelRatio || 1;\n\nconst TAB_HEIGHT = 40;\nconst BORDER_RADIUS = 12;\nconst slopeAngle = (Math.PI * 36) / 180; // 36度角\nconst deltaY = BORDER_RADIUS * (1 - Math.sin(slopeAngle));\nconst deltaX = BORDER_RADIUS * Math.cos(slopeAngle);\nconst slopeHeight = TAB_HEIGHT - deltaY * 2;\nconst slopeWidth = slopeHeight * Math.tan(slopeAngle);\nconst offsetX = deltaX + slopeWidth / 2;\n\nexport default function drawBg(\n canvas: HTMLCanvasElement,\n ctx: CanvasRenderingContext2D,\n width: number,\n height: number,\n isFirstTab: boolean,\n tabOffset: number,\n tabWidth: number\n) {\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n\n ctx.scale(dpr, dpr);\n\n ctx.clearRect(0, 0, width, height);\n\n ctx.fillStyle = \"rgba(255,255,255,0.5)\";\n\n // 创建渐变边框\n const borderGradient = ctx.createLinearGradient(0, 0, 0, height);\n borderGradient.addColorStop(0, \"rgba(255,255,255,0.9)\");\n borderGradient.addColorStop(1, \"rgba(255,255,255,0.4)\");\n\n ctx.lineWidth = 1;\n ctx.strokeStyle = borderGradient;\n\n const actualWidth = width - 1;\n const actualHeight = height - 1;\n\n ctx.translate(0.5, 0.5);\n ctx.beginPath();\n\n if (isFirstTab) {\n ctx.moveTo(0, BORDER_RADIUS);\n ctx.arcTo(0, 0, BORDER_RADIUS, 0, BORDER_RADIUS);\n } else {\n ctx.moveTo(0, BORDER_RADIUS + TAB_HEIGHT);\n ctx.arcTo(0, TAB_HEIGHT, BORDER_RADIUS, TAB_HEIGHT, BORDER_RADIUS);\n\n const upStartX = tabOffset - offsetX;\n ctx.lineTo(upStartX, TAB_HEIGHT);\n ctx.arc(\n upStartX,\n TAB_HEIGHT - BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI / 2,\n slopeAngle,\n true\n );\n\n ctx.lineTo(upStartX + deltaX + slopeWidth, deltaY);\n ctx.arc(\n upStartX + offsetX * 2,\n BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI + slopeAngle,\n Math.PI * 1.5,\n false\n );\n }\n\n const downStartX = tabOffset + tabWidth - offsetX;\n ctx.lineTo(downStartX, 0);\n ctx.arc(\n downStartX,\n BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI * 1.5,\n Math.PI * 2 - slopeAngle,\n false\n );\n\n ctx.lineTo(downStartX + deltaX + slopeWidth, TAB_HEIGHT - deltaY);\n ctx.arc(\n downStartX + offsetX * 2,\n TAB_HEIGHT - BORDER_RADIUS,\n BORDER_RADIUS,\n Math.PI - slopeAngle,\n Math.PI / 2,\n true\n );\n\n ctx.lineTo(actualWidth - BORDER_RADIUS, TAB_HEIGHT);\n ctx.arcTo(\n actualWidth,\n TAB_HEIGHT,\n actualWidth,\n TAB_HEIGHT + BORDER_RADIUS,\n BORDER_RADIUS\n );\n\n ctx.lineTo(actualWidth, actualHeight - BORDER_RADIUS);\n ctx.arcTo(\n actualWidth,\n actualHeight,\n actualWidth - BORDER_RADIUS,\n actualHeight,\n BORDER_RADIUS\n );\n\n ctx.lineTo(BORDER_RADIUS, actualHeight);\n ctx.arcTo(0, actualHeight, 0, actualHeight - BORDER_RADIUS, BORDER_RADIUS);\n\n ctx.closePath();\n\n ctx.fill();\n ctx.stroke();\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport drawBg from \"./drawBg\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface FlowTabsProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\ntype SizeTuple = [width: number, height: number];\n\n/**\n * 构件 `ai-portal.flow-tabs`\n */\nexport\n@defineElement(\"ai-portal.flow-tabs\", {\n styleTexts: [styleText],\n})\nclass FlowTabs extends ReactNextElement implements FlowTabsProps {\n @property({ attribute: false })\n accessor tabs: Tab[] | undefined;\n\n @property({ attribute: false })\n accessor activeTab: string | undefined;\n\n @event({ type: \"tab.click\" })\n accessor #tabClick!: EventEmitter<Tab>;\n\n #handleTabClick = (tab: Tab) => {\n this.activeTab = tab.id;\n this.#tabClick.emit(tab);\n };\n\n render() {\n return (\n <FlowTabsComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface FlowTabsComponentProps extends FlowTabsProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction FlowTabsComponent({\n tabs,\n activeTab,\n onTabClick,\n}: FlowTabsComponentProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const bgRef = useRef<HTMLCanvasElement>(null);\n const tabsRef = useRef<HTMLUListElement>(null);\n\n useEffect(() => {\n const root = rootRef.current;\n const canvas = bgRef.current;\n const nav = tabsRef.current;\n if (!root || !canvas || !nav || !tabs?.length) return;\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n let rootSize: SizeTuple | undefined;\n\n let requestId: number | undefined;\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const width = getContentBoxSize(entry, \"width\");\n const height = getContentBoxSize(entry, \"height\");\n rootSize = [width, height];\n }\n }\n\n const tabElements = Array.from(nav.querySelectorAll(\".tab\"));\n const activeTabElement = tabElements.find((tab) =>\n tab.classList.contains(\"active\")\n );\n if (!activeTabElement) return;\n\n const tabWidth = activeTabElement.getBoundingClientRect().width;\n const activeTabIndex = tabElements.indexOf(activeTabElement);\n const isFirstTab = activeTabIndex === 0;\n let tabOffset = 0;\n if (!isFirstTab) {\n const tabsOffset = nav.getBoundingClientRect().left;\n const activeTabOffset = activeTabElement!.getBoundingClientRect().left;\n tabOffset = activeTabOffset - tabsOffset;\n }\n\n if (requestId) {\n cancelAnimationFrame(requestId);\n }\n requestId = requestAnimationFrame(() => {\n if (rootSize) {\n drawBg(\n canvas,\n ctx,\n rootSize[0],\n rootSize[1],\n isFirstTab,\n tabOffset,\n tabWidth\n );\n }\n });\n });\n observer.observe(root);\n observer.observe(nav);\n return () => {\n observer.disconnect();\n if (requestId) {\n cancelAnimationFrame(requestId);\n }\n };\n }, [tabs, activeTab]);\n\n return (\n <div className=\"container\" ref={rootRef}>\n <canvas className=\"bg\" ref={bgRef} />\n <div className=\"header\">\n <ul className=\"tabs\" ref={tabsRef}>\n {tabs?.map((tab) => (\n <li\n key={tab.id}\n part=\"tab\"\n className={classNames(\"tab\", { active: tab.id === activeTab })}\n >\n <a onClick={() => onTabClick(tab)}>{tab.label}</a>\n </li>\n ))}\n </ul>\n <div className=\"toolbar\">\n <slot name=\"toolbar\" />\n </div>\n </div>\n <div className=\"body\">\n <slot />\n </div>\n </div>\n );\n}\n\n// istanbul ignore next: compatibility code\nfunction getContentBoxSize(\n entry: ResizeObserverEntry,\n type: \"width\" | \"height\"\n): number {\n const boxSizeType = type === \"height\" ? \"blockSize\" : \"inlineSize\";\n const size = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0][boxSizeType]\n : (entry.contentBoxSize as unknown as ResizeObserverSize)[boxSizeType]\n : entry.contentRect[type];\n return size;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ADD_STAGE = \"ADD_STAGE\",\n PLEASE_ENTER_NAME = \"PLEASE_ENTER_NAME\",\n UNASSIGNED = \"UNASSIGNED\",\n DELETE_STAGE = \"DELETE_STAGE\",\n DELETE_STAGE_TIPS = \"DELETE_STAGE_TIPS\",\n DELETE = \"DELETE\",\n ADD_ACTIVITY = \"ADD_ACTIVITY\",\n}\n\nconst en: Locale = {\n [K.ADD_STAGE]: \"Add stage\",\n [K.PLEASE_ENTER_NAME]: \"Please enter name\",\n [K.UNASSIGNED]: \"Unassigned\",\n [K.DELETE_STAGE]: \"Delete stage\",\n [K.DELETE_STAGE_TIPS]: 'Are you sure you want to delete stage \"{{ name }}\"?',\n [K.DELETE]: \"Delete\",\n [K.ADD_ACTIVITY]: \"Add activity\",\n};\n\nconst zh: Locale = {\n [K.ADD_STAGE]: \"添加阶段\",\n [K.PLEASE_ENTER_NAME]: \"请输入名称\",\n [K.UNASSIGNED]: \"未设置\",\n [K.DELETE_STAGE]: \"删除阶段\",\n [K.DELETE_STAGE_TIPS]: \"您确定要删除阶段 “{{ name }}” 吗?\",\n [K.DELETE]: \"删除\",\n [K.ADD_ACTIVITY]: \"添加活动\",\n};\n\nexport const NS = \"bricks/ai-portal/stage-flow\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport {\n GeneralIcon,\n type GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Popover,\n PopoverEvents,\n PopoverEventsMapping,\n PopoverProps,\n} from \"@next-bricks/basic/popover\";\nimport type {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"@next-bricks/form/input\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps & {\n themeVariant?: \"default\" | \"elevo\";\n },\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface StageFlowProps {\n spec?: Stage[];\n aiEmployees?: AIEmployee[];\n}\n\nexport interface Stage {\n name: string;\n serviceFlowActivities?: FlowActivity[];\n}\n\nexport interface FlowActivity {\n name: string;\n description?: string;\n aiEmployeeId?: string;\n hilRules?: string;\n hilUser?: string;\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface EditActivityDetail {\n stage: Stage;\n activity: FlowActivity;\n activityIndex: number;\n}\n\nconst StageFlowComponent = forwardRef(LegacyStageFlowComponent);\n\n/**\n * 构件 `ai-portal.stage-flow`\n */\nexport\n@defineElement(\"ai-portal.stage-flow\", {\n styleTexts: [styleText],\n})\nclass StageFlow extends ReactNextElement implements StageFlowProps {\n @property({ attribute: false })\n accessor spec: Stage[] | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<Stage[]>;\n\n #handleChange = (spec: Stage[]) => {\n this.#change.emit(spec);\n };\n\n @event({ type: \"add.activity\" })\n accessor #addActivity!: EventEmitter<{ stage: Stage }>;\n\n #handleAddActivity = (stage: Stage) => {\n this.#addActivity.emit({ stage });\n };\n\n @event({ type: \"edit.activity\" })\n accessor #editActivity!: EventEmitter<EditActivityDetail>;\n\n #handleEditActivity = (detail: EditActivityDetail) => {\n this.#editActivity.emit(detail);\n };\n\n #ref = createRef<StageFlowRef>();\n\n @method()\n addActivity(stage: Stage, activity: FlowActivity) {\n this.#ref.current?.addActivity(stage, activity);\n }\n\n @method()\n editActivity(stage: Stage, activity: FlowActivity, activityIndex: number) {\n this.#ref.current?.editActivity(stage, activity, activityIndex);\n }\n\n @method()\n deleteActivity(stage: Stage, activityIndex: number) {\n this.#ref.current?.deleteActivity(stage, activityIndex);\n }\n\n render() {\n return (\n <StageFlowComponent\n ref={this.#ref}\n spec={this.spec}\n aiEmployees={this.aiEmployees}\n onChange={this.#handleChange}\n onAddActivity={this.#handleAddActivity}\n onEditActivity={this.#handleEditActivity}\n />\n );\n }\n}\n\ninterface StageFlowRef {\n addActivity(stage: Stage, activity: FlowActivity): void;\n editActivity(\n stage: Stage,\n activity: FlowActivity,\n activityIndex: number\n ): void;\n deleteActivity(stage: Stage, activityIndex: number): void;\n}\n\ninterface StageFlowComponentProps extends StageFlowProps {\n onChange: (spec: Stage[]) => void;\n onAddActivity: (stage: Stage) => void;\n onEditActivity(detail: EditActivityDetail): void;\n}\n\nfunction LegacyStageFlowComponent(\n {\n spec,\n aiEmployees,\n onChange,\n onAddActivity,\n onEditActivity,\n }: StageFlowComponentProps,\n ref: Ref<StageFlowRef>\n) {\n const [stages, setStages] = useState(spec);\n const [addingStage, setAddingStage] = useState(false);\n const initialRef = useRef(true);\n\n useEffect(() => {\n setStages(spec);\n }, [spec]);\n\n useEffect(() => {\n if (initialRef.current) {\n initialRef.current = false;\n return;\n }\n if (stages) {\n onChange(stages);\n }\n }, [stages, onChange]);\n\n const getAIEmployeeName = useCallback(\n (employeeId: string | undefined) => {\n if (!employeeId) {\n return t(K.UNASSIGNED);\n }\n const employee = aiEmployees?.find((e) => e.employeeId === employeeId);\n return employee ? employee.name : employeeId;\n },\n [aiEmployees]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n addActivity(stage: Stage, activity: FlowActivity) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const updatedActivities = [\n ...(updatedStage.serviceFlowActivities ?? []),\n activity,\n ];\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n editActivity(\n stage: Stage,\n activity: FlowActivity,\n activityIndex: number\n ) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const updatedActivities = [\n ...(updatedStage.serviceFlowActivities ?? []),\n ];\n if (activityIndex < 0 || activityIndex >= updatedActivities.length) {\n // Activity index out of bounds, return previous state\n return prevList;\n }\n updatedActivities[activityIndex] = activity;\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n deleteActivity(stage: Stage, activityIndex: number) {\n setStages((prev) => {\n const prevList = prev ?? [];\n const stageIndex = prevList.findIndex((s) => s.name === stage.name);\n if (stageIndex === -1) {\n // Stage not found, return previous state\n return prevList;\n }\n const updatedStage = { ...prevList[stageIndex] };\n const updatedActivities = [\n ...(updatedStage.serviceFlowActivities ?? []),\n ];\n if (activityIndex < 0 || activityIndex >= updatedActivities.length) {\n // Activity index out of bounds, return previous state\n return prevList;\n }\n updatedActivities.splice(activityIndex, 1);\n updatedStage.serviceFlowActivities = updatedActivities;\n const newStages = [...prevList];\n newStages[stageIndex] = updatedStage;\n return newStages;\n });\n },\n }),\n []\n );\n\n return (\n <div className=\"container\">\n <ul className=\"nav\">\n {stages?.map((stage, index) => (\n <StageNavItem\n key={index}\n stage={stage}\n onNameChange={(newName) => {\n setStages((prev) => {\n const prevList = prev ?? [];\n const updatedStages = [...prevList];\n updatedStages[index] = {\n ...stage,\n name: newName,\n };\n return updatedStages;\n });\n }}\n onDelete={() => {\n setStages((prev) => {\n const prevList = prev ?? [];\n const updatedStages = prevList.filter((_, i) => i !== index);\n return updatedStages;\n });\n }}\n />\n ))}\n {addingStage && (\n <li className=\"nav-item pending\">\n <StageNameInput\n onDone={(stageName) => {\n setAddingStage(false);\n if (stageName) {\n setStages((prev) => {\n const prevList = prev ?? [];\n if (prevList.find((s) => s.name === stageName)) {\n // Stage with the same name already exists\n return prevList;\n }\n return [...prevList, { name: stageName }];\n });\n }\n }}\n />\n </li>\n )}\n <li className=\"nav-add\">\n <button\n className=\"btn-add-stage\"\n onClick={() => setAddingStage(true)}\n >\n <WrappedIcon lib=\"antd\" icon=\"plus\" className=\"plus\" />\n {t(K.ADD_STAGE)}\n </button>\n </li>\n </ul>\n <div className=\"lanes\">\n {stages?.map((stage, index) => (\n <ul className=\"lane\" key={index}>\n {stage.serviceFlowActivities?.map((activity, activityIndex) => (\n <li key={activityIndex}>\n <div\n className=\"activity\"\n onClick={() => {\n onEditActivity({ stage, activity, activityIndex });\n }}\n >\n <div className=\"title\">{activity.name}</div>\n <div className=\"assignee\">\n <WrappedIcon\n lib=\"antd\"\n icon=\"user\"\n className=\"assignee-icon\"\n />\n {getAIEmployeeName(activity.aiEmployeeId)}\n </div>\n </div>\n </li>\n ))}\n <li>\n <button\n className=\"btn-add-activity\"\n onClick={() => onAddActivity(stage)}\n >\n <WrappedIcon lib=\"antd\" icon=\"plus\" />\n {t(K.ADD_ACTIVITY)}\n </button>\n </li>\n </ul>\n ))}\n </div>\n </div>\n );\n}\n\ninterface StageNameInputProps {\n onDone: (name: string) => void;\n}\n\nfunction StageNameInput({ onDone }: StageNameInputProps) {\n const compositionRef = useRef(false);\n\n return (\n <input\n className=\"input-new-stage\"\n type=\"text\"\n placeholder={t(K.PLEASE_ENTER_NAME)}\n autoFocus\n onCompositionStart={() => {\n compositionRef.current = true;\n }}\n onCompositionEnd={() => {\n compositionRef.current = false;\n }}\n onKeyDown={(e) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n const stageName = (e.target as HTMLInputElement).value.trim();\n onDone(stageName);\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n onDone(\"\");\n }\n }}\n onBlur={(e) => {\n const stageName = e.target.value.trim();\n onDone(stageName);\n }}\n />\n );\n}\n\ninterface StageNavItemProps {\n stage: Stage;\n onNameChange: (name: string) => void;\n onDelete: (stage: Stage) => void;\n}\n\nfunction StageNavItem({ stage, onNameChange, onDelete }: StageNavItemProps) {\n const compositionRef = useRef(false);\n const popoverRef = useRef<Popover>(null);\n\n return (\n <li className=\"nav-item\">\n <WrappedPopover\n trigger=\"click\"\n placement=\"bottom\"\n sync=\"width\"\n arrow={false}\n distance={8}\n themeVariant=\"elevo\"\n ref={popoverRef}\n >\n <button className=\"nav-link\" slot=\"anchor\">\n <span>{stage.name}</span>\n </button>\n <div className=\"stage-settings\">\n <WrappedInput\n value={stage.name}\n themeVariant=\"elevo\"\n onCompositionStart={() => {\n compositionRef.current = true;\n }}\n onCompositionEnd={() => {\n compositionRef.current = false;\n }}\n onBlur={(e) => {\n const newValue = (e.currentTarget as Input).value?.trim();\n if (newValue && newValue !== stage.name) {\n onNameChange(newValue);\n } else if (!newValue) {\n (e.currentTarget as Input).value = stage.name;\n }\n }}\n onKeyDown={(e) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n const stageName = (e.target as HTMLInputElement).value.trim();\n if (stageName && stageName !== stage.name) {\n onNameChange(stageName);\n } else if (!stageName) {\n (e.target as HTMLInputElement).value = stage.name;\n }\n popoverRef.current!.active = false;\n }\n }}\n />\n <div className=\"divider\" />\n <button\n onClick={async () => {\n popoverRef.current!.active = false;\n await showDialog({\n type: \"delete\",\n title: t(K.DELETE_STAGE),\n content: t(K.DELETE_STAGE_TIPS, { name: stage.name }),\n });\n onDelete(stage);\n }}\n >\n {t(K.DELETE)}\n </button>\n </div>\n </WrappedPopover>\n </li>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/purple@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/green@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./images/pink@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.link{display:block;background:rgba(255,255,255,0.6);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;background-repeat:no-repeat;background-clip:padding-box;overflow:hidden}.purple{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.green{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.pink{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___})}.link::part(link){display:flex;flex-direction:column;gap:0;box-sizing:border-box;height:128px;padding:20px;position:relative}.title{width:100%;margin-bottom:8px;color:#262626;font-weight:500;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{width:100%;height:60px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;color:#18212f;line-height:20px}.link::part(link):hover{box-shadow:0px 4px 12px 0px rgba(96,96,138,0.15),0px 2px 4px 0px rgba(96,96,138,0.06)}.button{display:none;position:absolute;bottom:12px;left:20px;right:20px;height:32px;background:rgba(0,0,0,0.04);border-radius:8px;align-items:center;justify-content:center;gap:4px;color:#262626}.button:hover{background:rgba(0,0,0,0.08)}.link:hover .button{display:flex}.link:hover .description{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 60%;mask-size:100% 60%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.goal-item{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:12px 24px;background-color:rgba(255,255,255,0.6);border-radius:8px;-webkit-user-select:none;user-select:none;border:1px solid transparent}.goal-item:hover,.goal-item:has(.title:focus){background-color:rgba(0,0,0,0.05)}.goal-item:has(.title:focus) .end .operation{display:flex}.goal-item:hover:not(.does-not-exist) .end .operation{display:flex}.goal-item:has(.title:focus) .end .info{display:none}.goal-item:hover:not(.does-not-exist) .end .info{display:none}.goal-item.completed .serial-number,.goal-item.completed .title{color:#bfbfbf}.goal-item.active{background:rgba(37,64,255,0.1);border:1px solid #2540ff}.goal-item > *{-webkit-user-select:auto;user-select:auto}.goal-item .start,.goal-item .end{display:flex;align-items:center}.goal-item .start{flex:1;min-width:0;column-gap:16px;min-width:0}.goal-item .end{flex-shrink:0;column-gap:30px}.goal-item .end .operation{display:none;align-items:center;gap:8px}.goal-item .end .operation eo-button::part(button){height:28px}.goal-item .end .operation .new-chat::part(button){padding:5px 10px;font-size:13px}.goal-item .end .operation .append-child::part(button){padding:5px 8px;font-size:14px}.goal-item .end .info{display:inline-flex;align-items:center;column-gap:24px}.goal-item .serial-number{font-weight:400;color:var(--palette-gray-7);font-size:16px;overflow:visible}.goal-item .title{font-weight:500;padding:2px 4px;font-size:16px;color:var(--palette-gray-10);border:1px solid transparent;border-radius:8px;cursor:pointer;min-width:80px}.goal-item .title:hover{background-color:rgba(255,255,255,0.6);border:1px solid var(--palette-gray-5);cursor:text}.goal-item .title:focus{outline:none;background-color:rgba(255,255,255,0.6);border:1px solid var(--elevo-color-brand)}.goal-item .icon{border-radius:8px;padding:6px;position:relative;top:2px}.goal-item .icon:hover{background-color:rgba(0,0,0,0.04)}.goal-item .message{color:var(--palette-gray-7);display:inline-flex;align-items:center;column-gap:6px}.goal-item .message .count{font-weight:500;color:var(--palette-gray-10)}.goal-item:not(.editing) .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px;margin:0 -12px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:6px}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}:host([variant=\"mini-light\"]) button{color:#8c8c8c;width:20px;height:20px;font-size:14px;border-radius:4px}:host([variant=\"bordered\"]) button{background:#ffffff;border-radius:8px;border:1px solid rgba(0,0,0,0.1);color:#595959;width:32px;height:32px;font-size:18px}:host([variant=\"bordered\"]) button:not(:disabled):hover{background:rgba(0,0,0,0.04)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;position:relative;width:100%;height:100%;color:#262626;padding:0 54px 48px;overflow:hidden;overflow-y:auto}:host::before{content:\"\";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}:host([hidden]){display:none}:host([variant=\"form\"])::before{background:#fff}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}:host([size=\"small\"]) .container{max-width:1000px}:host([size=\"full\"]) .container{max-width:100%}.sticky-header{margin:0 -24px;padding:17px 24px 30px}.non-sticky-header{padding:17px 0 30px}.header{display:flex;justify-content:space-between;align-items:center}nav{font-weight:500;font-size:20px;line-height:28px;display:flex;min-width:0;white-space:nowrap;flex-wrap:wrap}h1{margin:0;font-size:inherit;line-height:inherit}.breadcrumbs{list-style:none;padding:0;margin:0;color:#bfbfbf}.breadcrumbs eo-link::part(link){color:inherit}.breadcrumbs eo-link::part(link):hover{color:#595959}.breadcrumbs li::after{content:\"/\";margin:0 8px}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}nav{margin-left:40px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.preview-container{display:block;background:rgba(247,248,250,1)}.loading--uD2jY9vX{position:absolute;top:50%;left:50%;font-size:48px;color:var(--palette-gray-5);margin:0 -24px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"loading\": `loading--uD2jY9vX`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/add-stage.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/add-stage-hover.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--stage-flow-lane-width:268px}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}button{background:none;border:none;cursor:pointer;padding:0}.button:focus{outline:none}.nav,\n.lanes{display:flex;gap:40px}.nav-item,\n.nav-add,\n.lane{width:var(--stage-flow-lane-width);flex-shrink:0}.nav-item{position:relative;background-color:var(--stage-flow-nav-bg);--stage-flow-nav-bg:rgba(37,64,255,0.1)}.nav-item:first-child{border-top-left-radius:20px;border-bottom-left-radius:20px}.nav-item.pending{--stage-flow-nav-bg:rgba(0,0,0,0.04)}.nav-item::after{content:\"\";position:absolute;top:0;right:-20px;border-color:transparent;border-style:solid;border-width:20px 0 20px 20px;border-left-color:var(--stage-flow-nav-bg)}.nav-item:not(:first-child)::before{content:\"\";position:absolute;top:0;left:-30px;width:30px;height:40px;background-color:var(--stage-flow-nav-bg);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%,20px 50%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,20px 50%)}.nav-link,\n.btn-add-stage{width:100%;display:flex;align-items:center;justify-content:center;height:40px;font-size:16px}.nav-item.pending:first-child .input-new-stage{padding-left:20px}.nav-link{font-weight:600;color:#000}.nav-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-add-stage{font-weight:500;color:rgba(0,0,0,0.65);gap:8px;position:relative}.btn-add-stage .plus{margin-right:8px;font-size:14px}.nav-add:first-child .btn-add-stage{border-radius:20px;border:1px dashed rgba(0,0,0,0.1)}.nav-add:first-child .btn-add-stage:hover{background:rgba(0,0,0,0.04)}.nav-add:not(:first-child) .btn-add-stage::before{content:\"\";position:absolute;top:0;bottom:0;left:-30px;right:-20px;pointer-events:none;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) center center no-repeat}.nav-add:not(:first-child) .btn-add-stage:hover::before{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.input-new-stage{width:100%;border:none;background:none;display:flex;align-items:center;height:40px;font-weight:600;font-size:16px;color:#000}.input-new-stage::placeholder{color:#8c8c8c;font-weight:400}.input-new-stage:focus{outline:none}.lanes{margin-top:16px}.lane{display:flex;flex-direction:column;gap:8px}.activity{background:#ffffff;box-shadow:0px 1px 2px 0px rgba(0,0,0,0.1);border-radius:8px;padding:12px 14px 10px;cursor:pointer}.activity .title{font-weight:600;color:#000000;line-height:20px;text-shadow:0px 1px 2px rgba(0,0,0,0.1)}.assignee{display:flex;align-items:center;gap:4px;font-size:12px;color:#000000;line-height:17px;margin-top:10px}.assignee-icon{font-size:14px;color:rgba(0,0,0,0.45)}.btn-add-activity{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;height:34px;border:1px dashed rgba(0,0,0,0.1);border-radius:8px;color:rgba(0,0,0,0.45)}.btn-add-activity:hover{background:rgba(0,0,0,0.04);color:rgba(0,0,0,0.65)}.stage-settings{padding:4px;display:flex;flex-direction:column;align-items:stretch;gap:4px}.stage-settings eo-input{margin-bottom:5px}.stage-settings .divider{height:1px;background-color:rgba(0,0,0,0.1)}.stage-settings button{color:var(--color-error);border-radius:6px;padding:5px 8px;font-size:14px;line-height:22px;text-align:left}.stage-settings button:hover{background-color:var(--left-sidebar-item-hover-bg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;gap:16px;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.item:not(:last-child){margin-bottom:4px}.icon{font-size:18px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal{background:#f0fff8;border-radius:4px;font-weight:500;font-size:12px;color:#1dc897;line-height:20px;padding:2px 8px;white-space:nowrap}.goal.global{background:#e6f4ff;color:#1a7aff}.header{display:flex;align-items:center}.description{color:#595959;margin-top:6px;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);white-space:nowrap}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:right;width:100px}.operations.lang-zh{width:64px}.link.actions-active .time,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;position:sticky;top:0}:host([hidden]){display:none}:host::before{content:\"\";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed;pointer-events:none}:host([variant=\"home\"])::before{background-color:#f1f1f1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;padding:24px 54px 72px}:host([sticky]){padding-top:0}:host([hidden]){display:none}:host::before{content:\"\";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-color:#f1f1f1;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px;margin-bottom:17px}.list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font:inherit;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:5px 0 5px 8px;margin-left:auto;display:flex;align-items:center;gap:2px}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../home-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto;margin-bottom:17px}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6;display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden}.avatar img{width:100%;height:100%}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedCruiseCanvasComponent","forwardRef","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_CruiseCanvas_brand","WeakSet","_onShare","_T","_onTerminate","_U","_onSubmitFeedback","_V","_onFeedbackOnView","_W","_onSwitchToChat","_X","_onDetailChange","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showHumanActions","_init_extra_showHumanActions","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackAfterFailed","_init_extra_showFeedbackAfterFailed","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_previewUrlTemplate","_init_extra_previewUrlTemplate","_init_showCases","_init_extra_showCases","_init_exampleProjects","_init_extra_exampleProjects","_init_tryItOutUrl","_init_extra_tryItOutUrl","_init_separateInstructions","_init_extra_separateInstructions","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","_init_detailChange","_init_extra_detailChange","_get_detailChange","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","replay","replayDelay","supports","showHiddenJobs","showHumanActions","showFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","separateInstructions","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","onDetailChange","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","_set_detailChange","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","SIZING_STYLE","getMirroredStyle","element","uiTextNodeStyle","window","getComputedStyle","map","name","getPropertyValue","join","hiddenElement","getCaretPositionInTextarea","textarea","index","document","createElement","setAttribute","body","appendChild","textContent","value","slice","span","rect","getBoundingClientRect","remove","top","left","getContentRectInTextarea","prefix","measureContent","hiddenTextarea","modKey","test","navigator","platform","TextareaAutoResize","LegacyTextareaAutoResize","autoResize","_autoResize","minRows","maxRows","borderSize","paddingSize","containerRef","propValue","style","submitWhen","desiredSelectionRef","onChange","onSubmit","onKeyDown","onCompositionStart","onCompositionEnd","props","setValue","useState","textareaRef","useRef","autoStyle","setAutoStyle","useImperativeHandle","focus","_textarea$value","valueLength","length","setSelectionRange","doAutoResize","useCallback","uiTextNode","options","minHeight","maxHeight","overflowY","placeholder","height","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","useEffect","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","key","shiftKey","preventDefault","stopPropagation","useLayoutEffect","desiredSelection","start","end","container","previousInlineSize","observer","ResizeObserver","entries","entry","target","currentInlineSize","contentBoxSize","inlineSize","contentRect","width","undefined","isInitial","requestAnimationFrame","observe","disconnect","_extends","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","ChatBoxComponent","LegacyChatBoxComponent","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_handleEmployeeMention","_handleCommandSelect","ChatBox","_defineProperty","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_commands","_init_extra_commands","_init_messageSubmit","_init_extra_messageSubmit","_get_messageSubmit","_init_employeeMention","_init_extra_employeeMention","employee","_get_employeeMention","_init_commandSelect","_init_extra_commandSelect","command","_get_commandSelect","disabled","autoFocus","aiEmployees","commands","_this$ref$current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","onEmployeeMention","onCommandSelect","valueRef","mentionPopover","setMentionPopover","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","activeActionIndexes","setActiveActionIndexes","commandPopover","setCommandPopover","commandText","setCommandText","selectionRef","store","__elevo_try_it_out","content","_textareaRef$current","submitWithoutCommand","_commandText$length","handleSubmit","currentTarget","handleChange","selectionStart","selectionEnd","previousContent","mentionIndex","lastIndexOf","mentionText","toLowerCase","matchedEmployees","filter","employeeId","includes","position","textareaRect","zIndex","range","actions","text","data","startsWith","matchedCommands","label","ancestors","items","getCommandSubMenu","handleSubmitClick","Promise","resolve","then","_textareaRef$current2","mentionPrefix","useMemo","_textareaRef$current3","indexOf","mentionOverlay","_textareaRef$current4","commandOverlay","_textareaRef$current5","handleMention","action","_textareaRef$current6","mention","newValue","handleSelectCommand","_textareaRef$current7","an","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","cursor","list","isSubMenuAction","next","popovers","textLength","prefixLength","currentStart","currentEnd","commandCheckedKeys","checkedKeys","i","className","onClick","lib","icon","createPortal","activeKeys","_command$options","subCommand","nextAncestors","_items","_ChatBox2","_set_messageSubmit","_set_employeeMention","_set_commandSelect","styleTexts","styleText","delegatesFocus","_HomeContainer","HomeContainer","_init_sticky","_init_extra_sticky","sticky","HomeContainerComponent","_HomeContainer2","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","size","lineColor","showArea","xField","yField","StatWithMiniChartComponent","chartProps","lineWidth","_StatWithMiniChart2","SIDEBAR_ICON","WrappedElevoLogo","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleActionClick","_handleProjectActionClick","_handleAddProject","ElevoSidebar","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_newChatLinkWhenCollapsed","_init_extra_newChatLinkWhenCollapsed","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_links","_init_extra_links","_init_canAddProject","_init_extra_canAddProject","_init_myLinks","_init_extra_myLinks","_init_logout","_init_extra_logout","_get_logout","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_projectActionClick","_init_extra_projectActionClick","_get_projectActionClick","_init_addProject","_init_extra_addProject","_get_addProject","userInstanceId","behavior","logoUrl","newChatUrl","newChatLinkWhenCollapsed","historyUrlTemplate","historyActions","projectUrlTemplate","projectActions","links","canAddProject","myLinks","pullHistory","delay","setTimeout","pull","open","close","removeProject","projectId","addProject","project","_classPrivateFieldGet7","_classPrivateFieldGet8","moveConversation","_classPrivateFieldGet9","_classPrivateFieldGet0","onLogout","onProjectActionClick","onAddProject","_ref2","collapsed","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","LOGOUT","SWITCH_LANGUAGE","historyRef","_historyRef$current","_historyRef$current2","_historyRef$current2$","_historyRef$current3","_historyRef$current3$","_historyRef$current4","_historyRef$current4$","classNames","WrappedIconButton","variant","WrappedLink","url","NEW_CHAT","link","NavLink","activeIncludes","_ref3","active","title","ChatHistory","onHistoryClick","WrappedDropdownActions","async","changeLanguage","language","split","getHistory","reload","WrappedEasyopsAvatar","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_actionClick","_set_projectActionClick","_set_addProject","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_tooltipHoist","_init_extra_tooltipHoist","_init_variant","_init_extra_variant","tooltip","tooltipHoist","IconButtonComponent","btn","hoist","_IconButton2","ALL","EXPLORE_EXCELLENT_CASES","WrappedShowCase","WrappedTabList","onTabClick","_ShowCases","ShowCases","_init_list","_init_extra_list","_init_limit","_init_extra_limit","limit","ShowCasesComponent","groups","Set","item","scenario","activeGroup","setActiveGroup","filteredList","filtered","tabs","group","activeTab","caseTitle","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","Map","servers","WrappedStickyContainer","_McpTools","McpTools","_init_stickyTop","_init_extra_stickyTop","stickyTop","McpToolsComponent","groupMap","platformMap","forEach","groupName","server","replaceAll","get","set","find","_name","platformName","orderedNames","sort","_ref4","nameA","nameB","indexA","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","tabsNode","_ref6","_item$icon","fallback","description","_McpTools2","ForwardedChatStreamComponent","ChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_ChatStream2","AI_EMPLOYEES","UNTITLED","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","_init_urlTemplate","_init_extra_urlTemplate","_init_withContainer","_init_extra_withContainer","industries","urlTemplate","withContainer","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","role","node","clickable","parseTemplate","avatar","src","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","customElements","define","createProviderClass","_PageContainer","PageContainer","_init_pageTitle","_init_extra_pageTitle","_init_breadcrumbs","_init_extra_breadcrumbs","pageTitle","breadcrumbs","PageContainerComponent","getRuntime","applyPageTitle","header","_PageContainer2","_TabList","_TabList_brand","_handleTabClick","TabList","_init_tabs","_init_extra_tabs","_init_activeTab","_init_extra_activeTab","_init_tabClick","_init_extra_tabClick","tab","_get_tabClick","TabListComponent","part","_TabList2","_set_tabClick","PLEASE_SELECT","SEARCH_PLACEHOLDER","SEARCH_NO_DATA","WrappedPopover","onVisibleChange","onBeforeVisibleChange","WrappedLoadingContainer","WrappedMenu","WrappedMenuItem","WrappedInput","onValueChange","_DropdownSelect","_DropdownSelect_brand","_handleChange","DropdownSelect","_init_options","_init_extra_options","_init_labelMaxWidth","_init_extra_labelMaxWidth","_init_loading","_init_extra_loading","_init_searchPlaceholder","_init_extra_searchPlaceholder","_init_dropdownContentStyle","_init_extra_dropdownContentStyle","_init_dropdownMaxWidth","_init_extra_dropdownMaxWidth","_init_showSearch","_init_extra_showSearch","_init_changeEvent","_init_extra_changeEvent","option","_get_changeEvent","labelMaxWidth","loading","searchPlaceholder","dropdownContentStyle","dropdownMaxWidth","showSearch","DropdownSelectComponent","_value","_options","setOpen","q","setQ","setOptions","activeOption","opt","filteredOptions","ops","handleBeforeVisibleChange","handleSearchChange","debounce","evt","placement","trigger","arrow","distance","slot","maxWidth","_DropdownSelect2","_set_changeEvent","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedPageTitle","WrappedMainView","WrappedNarrowView","_PreviewContainer","_rootId","PreviewContainer","_init_source","_init_extra_source","_init_url","_init_extra_url","uniqueId","source","Suspense","spinning","styles","PreviewContainerComponent","rootId","parsedResultPromise","worker","getRemoteTsxParserWorker","parseView","parse","catch","error","console","parsedResult","use","convertedResultPromise","convertView","expanded","convertedResult","viewTitle","_parsedResult$entry","defaultExport","RenderComponent","rootRef","portal","root","unstable_createRoot","supportsUseChildren","unmount","_rootRef$current","brick","context","functions","templates","main","_PreviewContainer2","WrapperIcon","WrapperButton","_ActionButtons","_ActionButtons_brand","ActionButtons","_init_items","_init_extra_items","_init_activeKey","_init_extra_activeKey","_init_change","_init_extra_change","activeKey","_get_change","ActionButtonsComponent","propActiveKey","setActiveKey","initializedRef","_items$find","hidden","filteredItems","themeVariant","_ActionButtons2","_set_change","UN_START_STATUS","RUNNING_STATUS","COMPLETED_STATUS","_supports","WrappedButton","iconMap","ready","working","completed","iconActions","category","GoalCardItem","goalItem","idWidth","cardStyle","onStatusChange","onTitleChange","onNewChat","onAppendChild","onRevokeAppendChild","isActive","state","serialNumber","conversations","owner","pending","editing","setEditing","handleFocus","handleBlur","trim","blur","titleRef","_titleRef$current","paddingLeft","level","onFocus","onBlur","contentEditable","editable","div","supportsContentEditablePlaintextOnly","suppressContentEditableWarning","instanceId","GoalCardListComponent","LegacyGoalCardListComponent","_GoalCardList","_GoalCardList_brand","_handleItemClick","_handleItemStatusChange","_handleTitleChange","_handleNewChat","GoalCardList","_init_goalList","_init_extra_goalList","_init_cardStyle","_init_extra_cardStyle","_init_itemClickEvent","_init_extra_itemClickEvent","_get_itemClickEvent","_init_itemStatusChangeEvent","_init_extra_itemStatusChangeEvent","_get_itemStatusChangeEvent","_init_itemTitleChangeEvent","_init_extra_itemTitleChangeEvent","_get_itemTitleChangeEvent","_init_itemNewChatEvent","_init_extra_itemNewChatEvent","_get_itemNewChatEvent","goalList","appendChildDone","pendingId","newItem","onItemClick","_goalList","setGoalList","updateGoalItem","field","callback","updatedItem","prevList","goal","_goalList$reduce","reduce","handleTitleChange","newTitle","handleStatusChange","newStatus","newChild","pendingParentId","_prevList$findIndex","findIndex","offsetIndex","handleAppendChild","_GoalCardList2","_set_itemClickEvent","_set_itemStatusChangeEvent","_set_itemTitleChangeEvent","_set_itemNewChatEvent","CardItemStyleText","PROJECT_OVERALL","WrappedAvatar","WrappedMiniActions","_ProjectConversations","_ProjectConversations_brand","_handleGoalClick","ProjectConversations","_init_actions","_init_extra_actions","_init_goals","_init_extra_goals","_init_goalClick","_init_extra_goalClick","conversation","_get_goalClick","goals","ProjectConversationsComponent","onGoalClick","ConversationLink","_goals$find","goalRef","el","handleClick","addEventListener","removeEventListener","actionsVisible","setActionsVisible","global","goalInstanceId","g","username","humanizeTime","startTime","HumanizeTimeFormat","full","relative","_ProjectConversations2","_set_goalClick","_ProjectKnowledges","_ProjectKnowledges_brand","ProjectKnowledges","_init_itemClick","_init_extra_itemClick","_get_itemClick","ProjectKnowledgesComponent","KnowledgeLink","knowledge","time","user","_ProjectKnowledges2","_set_itemClick","STARTED_A_CHAT","CREATED_THIS_GOAL","CHANGED_THE_GOAL_TITLE","CHANGED_THE_GOAL_DESCRIPTION","CHANGED_THE_GOAL","DELETED_THIS_GOAL","DECOMPOSED_THIS_GOAL","DECOMPOSED_THIS_GOAL_plural","SET_OWNER","REMOVED_GOAL_PARTICIPANTS","REMOVED_GOAL_PARTICIPANTS_plural","ADDED_GOAL_PARTICIPANTS","ADDED_GOAL_PARTICIPANTS_plural","COMMENTED","COMMA","SEMICOLON","_ActivityTimeline","ActivityTimeline","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","chatUrlTemplate","ActivityTimelineComponent","activity","_activity$metadata","_activity$metadata2","user_id","user_name","action_type","metadata","conversation_title","after","count","sub_goals_count","sub_goals","removed","added","beforeUserIds","before","users","afterUserIds","descriptions","getAlterPARTICIPANTsActivityDescription","comment_content","_ActivityTimeline2","TERMINATE_THE_TASK","ICON_LOADING","ICON_STOP","_ChatInput","_ChatInput_brand","_handleTerminate","ChatInput","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_terminate","_init_extra_terminate","_get_terminate","submitDisabled","supportsTerminate","terminating","ChatInputComponent","wrap","setWrap","onBeforeSubmit","blockSize","handleContainerClick","composedPath","HTMLTextAreaElement","HTMLButtonElement","_ChatInput2","_set_terminate","_ElevoLogo","ElevoLogo","alt","Logo","_ElevoLogo2","WATCH_REPLAY","bgClasses","_ShowCase","ShowCase","_init_caseTitle","_init_extra_caseTitle","_init_summary","_init_extra_summary","ShowCaseComponent","bgClass","hash","charCodeAt","abs","_ShowCase2","tool","params","http","post","stepId","_BlankState","BlankState","_init_illustration","_init_extra_illustration","_init_description","_init_extra_description","illustration","BlankStateComponent","getIllustrationSrc","imageGoals","imageSpaces","imageServiceflows","imageActivities","_BlankState2","_StickyContainer","StickyContainer","StickyContainerComponent","_StickyContainer2","_ElevoCard","ElevoCard","_init_cardTitle","_init_extra_cardTitle","_init_avatar","_init_extra_avatar","_init_avatarType","_init_extra_avatarType","cardTitle","avatarType","ElevoCardComponent","IconAvatar","color","iconProps","borderColor","_ElevoCard2","dpr","devicePixelRatio","TAB_HEIGHT","BORDER_RADIUS","slopeAngle","PI","deltaY","sin","deltaX","cos","slopeWidth","tan","offsetX","_FlowTabs","_FlowTabs_brand","FlowTabs","FlowTabsComponent","bgRef","tabsRef","canvas","nav","ctx","getContext","rootSize","requestId","getContentBoxSize","tabElements","Array","from","querySelectorAll","activeTabElement","classList","contains","tabWidth","isFirstTab","tabOffset","tabsOffset","activeTabOffset","cancelAnimationFrame","scale","clearRect","fillStyle","borderGradient","createLinearGradient","addColorStop","strokeStyle","actualWidth","actualHeight","translate","beginPath","moveTo","arcTo","upStartX","lineTo","arc","downStartX","closePath","fill","stroke","drawBg","boxSizeType","_FlowTabs2","ADD_STAGE","PLEASE_ENTER_NAME","UNASSIGNED","DELETE_STAGE","DELETE_STAGE_TIPS","DELETE","ADD_ACTIVITY","showDialog","unwrapProvider","StageFlowComponent","LegacyStageFlowComponent","_StageFlow","_StageFlow_brand","_handleAddActivity","_handleEditActivity","StageFlow","_init_spec","_init_extra_spec","spec","_init_addActivity","_init_extra_addActivity","stage","_get_addActivity","_init_editActivity","_init_extra_editActivity","_get_editActivity","addActivity","editActivity","activityIndex","deleteActivity","onAddActivity","onEditActivity","stages","setStages","addingStage","setAddingStage","initialRef","getAIEmployeeName","_updatedStage$service","stageIndex","s","updatedStage","updatedActivities","serviceFlowActivities","newStages","_updatedStage$service2","_updatedStage$service3","splice","StageNavItem","onNameChange","newName","updatedStages","onDelete","StageNameInput","onDone","stageName","_stage$serviceFlowAct","aiEmployeeId","popoverRef","sync","_StageFlow2","_set_addActivity","_set_editActivity","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___"],"sourceRoot":""}