@weapp-vite/dashboard 7.1.4 → 7.2.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.
- package/README.md +49 -1
- package/dist/assets/AppEmptyState.js +1 -1
- package/dist/assets/AppMetricTile.js +1 -1
- package/dist/assets/AppRuntimeBadge.js +1 -1
- package/dist/assets/ChunkGraphPanel.js +1 -0
- package/dist/assets/activity.js +4 -4
- package/dist/assets/analyze.css +1 -0
- package/dist/assets/analyze.js +30 -30
- package/dist/assets/d3.js +1 -0
- package/dist/assets/index.css +1 -1
- package/dist/assets/index.js +2 -2
- package/dist/assets/pages.js +1 -2
- package/dist/assets/tokens.js +1 -1
- package/dist/assets/vendor.js +3 -1
- package/dist/assets/vue.js +2 -2
- package/package.json +5 -2
- package/dist/assets/AppInsetPanel.js +0 -1
- package/dist/assets/AppSectionHeading.js +0 -1
package/dist/assets/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./monaco.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{A as e,C as t,G as n,H as r,J as i,L as a,M as o,N as s,P as c,R as l,S as u,T as d,U as f,_ as p,a as ee,c as m,g as h,h as g,i as _,j as v,k as y,n as b,p as x,r as te,s as S,t as C,v as w,x as T,y as E,z as D}from"./vue.js";import{n as ne,t as O}from"./vendor.js";import{s as k}from"./monaco.js";function re(e,t){if(e){if(Array.isArray(e)){for(let n of e)re(n,t);return}if(typeof e==`object`){for(let[n,r]of Object.entries(e))r&&t.push(n);return}t.push(String(e))}}function ie(...e){let t=[];for(let n of e)re(n,t);return ne(t.join(` `))}var A=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},ae=t({__name:`DashboardIcon`,props:{name:{}},setup(e,{expose:t}){t();let n=e,r={"theme-system":`icon-[mdi--theme-light-dark]`,"theme-light":`icon-[mdi--white-balance-sunny]`,"theme-dark":`icon-[mdi--moon-waning-crescent]`,"nav-menu":`icon-[mdi--menu]`,"nav-home":`icon-[mdi--view-grid-outline]`,"nav-analyze":`icon-[mdi--chart-box-outline]`,"nav-activity":`icon-[mdi--timeline-text-outline]`,"nav-tokens":`icon-[mdi--palette-outline]`,"tab-overview":`icon-[mdi--view-dashboard-outline]`,"tab-packages":`icon-[mdi--package-variant-closed]`,"tab-modules":`icon-[mdi--vector-link]`,"tab-source":`icon-[mdi--source-branch]`,"status-dark":`icon-[mdi--circle-slice-8]`,"status-light":`icon-[mdi--checkbox-blank-circle]`,"status-live":`icon-[mdi--motion-play-outline]`,"metric-packages":`icon-[mdi--package-variant]`,"metric-subpackages":`icon-[mdi--layers-triple-outline]`,"metric-chunks":`icon-[mdi--chart-tree]`,"metric-assets":`icon-[mdi--file-document-multiple-outline]`,"metric-size-outline":`icon-[mdi--database-outline]`,"metric-modules":`icon-[mdi--cube-outline]`,"metric-duplicates":`icon-[mdi--vector-link]`,"metric-sources":`icon-[mdi--source-branch]`,"metric-copy":`icon-[mdi--content-copy]`,"metric-time":`icon-[mdi--clock-outline]`,"metric-entries":`icon-[mdi--export-variant]`,"metric-size":`icon-[mdi--database]`,treemap:`icon-[mdi--chart-box-outline]`,"top-files":`icon-[mdi--file-star-outline]`,subpackages:`icon-[mdi--layers-triple-outline]`,"duplicate-modules":`icon-[mdi--vector-link]`,"module-sources":`icon-[mdi--source-branch]`,"file-samples":`icon-[mdi--file-document-outline]`,"hero-workspace":`icon-[mdi--view-quilt-outline]`,"hero-commands":`icon-[mdi--console-line]`,"hero-system":`icon-[mdi--shape-outline]`,"metric-ready":`icon-[mdi--rocket-launch-outline]`,"metric-health":`icon-[mdi--heart-pulse]`,"metric-latency":`icon-[mdi--timer-sand]`,"metric-quality":`icon-[mdi--shield-check-outline]`,"metric-search":`icon-[mdi--magnify]`,"metric-history":`icon-[mdi--history]`,"metric-bookmark":`icon-[mdi--bookmark-check-outline]`,"metric-link":`icon-[mdi--link-variant]`,"metric-reset":`icon-[mdi--restore]`,"metric-drag":`icon-[mdi--drag-horizontal-variant]`,"token-color":`icon-[mdi--palette-outline]`,"token-surface":`icon-[mdi--card-bulleted-outline]`,"token-type":`icon-[mdi--format-letter-spacing]`},i={props:n,ICON_CLASS_MAP:r,iconClassName:g(()=>r[n.name]??`icon-[mdi--file-document-multiple-outline]`)};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}});function oe(e,t,r,i,a,o){return v(),E(`span`,{class:n([`h-full w-full`,i.iconClassName])},null,2)}var j=A(ae,[[`render`,oe]]),se=t({__name:`AppNavigationList`,props:{currentAnalyzeTab:{},currentPath:{},items:{},mobile:{type:Boolean,default:!1}},emits:[`navigate`],setup(e,{expose:t,emit:n}){t();let r=e,i=n;function a(e){return e===`/`?r.currentPath===`/`:r.currentPath===e||r.currentPath.startsWith(`${e}/`)}function o(e){let t=e.indexOf(`?`);return t===-1?`overview`:new URLSearchParams(e.slice(t+1)).get(`tab`)??`overview`}function s(e){return e.startsWith(`/analyze`)?r.currentPath===`/analyze`&&o(e)===r.currentAnalyzeTab:a(e)}function c(e){return a(e.to)||!!e.children?.some(e=>s(e.to))}let l={props:r,emit:i,isActive:a,getAnalyzeTabFromPath:o,isNavigationItemActive:s,isNavigationSectionActive:c,get RouterLink(){return C},get cn(){return ie},DashboardIcon:j};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),ce={class:`grid gap-2 overflow-y-auto pr-1`},le={class:`flex items-start gap-3`},ue={class:`h-5 w-5`},de={class:`min-w-0`},fe={class:`font-medium text-(--dashboard-text)`},pe={key:0,class:`ml-5 grid gap-1 border-l border-(--dashboard-border) pl-3`},me={class:`h-4 w-4 shrink-0`},he={class:`min-w-0 truncate`};function ge(e,t,r,a,o,c){return v(),E(`nav`,ce,[(v(!0),E(x,null,s(r.items,e=>(v(),E(`div`,{key:e.to,class:`grid gap-1`},[u(a.RouterLink,{to:e.to,class:n(a.cn(`group rounded-md border px-3 py-3 transition`,a.isNavigationSectionActive(e)?`border-(--dashboard-border-strong) bg-(--dashboard-panel-strong) shadow-(--dashboard-shadow)`:`border-(--dashboard-border) bg-(--dashboard-panel-muted) hover:border-(--dashboard-border-strong) hover:bg-(--dashboard-panel)`)),onClick:t[0]||=e=>a.emit(`navigate`)},{default:D(()=>[h(`div`,le,[h(`span`,{class:n(a.cn(`flex h-10 w-10 shrink-0 items-center justify-center rounded-md`,a.isNavigationSectionActive(e)?`bg-(--dashboard-accent-soft) text-(--dashboard-accent)`:`bg-(--dashboard-panel) text-(--dashboard-text-soft) group-hover:text-(--dashboard-accent)`))},[h(`span`,ue,[u(a.DashboardIcon,{name:e.iconName},null,8,[`name`])])],2),h(`div`,de,[h(`p`,fe,i(e.label),1),h(`p`,{class:n([`text-xs leading-5 text-(--dashboard-text-soft)`,r.mobile?`mt-1`:`mt-0.5 truncate`])},i(e.caption),3)])])]),_:2},1032,[`to`,`class`]),e.children?.length&&a.isNavigationSectionActive(e)?(v(),E(`div`,pe,[(v(!0),E(x,null,s(e.children,e=>(v(),p(a.RouterLink,{key:e.to,to:e.to,class:n(a.cn(`group flex min-w-0 items-center gap-2 rounded-md px-2.5 py-2 text-sm transition`,a.isNavigationItemActive(e.to)?`bg-(--dashboard-accent-soft) text-(--dashboard-accent)`:`text-(--dashboard-text-soft) hover:bg-(--dashboard-panel-muted) hover:text-(--dashboard-text)`)),onClick:t[1]||=e=>a.emit(`navigate`)},{default:D(()=>[h(`span`,me,[u(a.DashboardIcon,{name:e.iconName},null,8,[`name`])]),h(`span`,he,i(e.label),1)]),_:2},1032,[`to`,`class`]))),128))])):w(``,!0)]))),128))])}var _e=A(se,[[`render`,ge]]),ve=t({__name:`AppInfoPill`,props:{label:{},iconName:{},uppercase:{type:Boolean}},setup(e,{expose:t}){t();let n={DashboardIcon:j};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),ye={key:0,class:`mr-1.5 h-4 w-4 text-(--dashboard-accent)`};function be(e,t,r,a,o,s){return v(),E(`span`,{class:n([`inline-flex items-center rounded-full border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2.5 py-1 text-xs font-medium text-(--dashboard-text-soft)`,r.uppercase?`tracking-[0.18em] uppercase`:void 0])},[r.iconName?(v(),E(`span`,ye,[u(a.DashboardIcon,{name:r.iconName},null,8,[`name`])])):w(``,!0),T(` `+i(r.label),1)],2)}var M=A(ve,[[`render`,be]]),xe=t({__name:`AppShellHeader`,props:{title:{},description:{},themeOptions:{},themePreference:{}},emits:[`menu`,`setTheme`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,a=g(()=>r.themeOptions.find(e=>e.value===r.themePreference)?.iconName??`theme-system`),o=g(()=>r.themeOptions.length>0);function s(e){i(`setTheme`,e.target.value)}let c={props:r,emit:i,currentThemeIconName:a,hasThemeOptions:o,handleThemeChange:s,AppInfoPill:M,DashboardIcon:j};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),Se={class:`flex flex-col gap-3 rounded-lg border border-(--dashboard-border-strong) bg-(--dashboard-panel-strong) px-4 py-3 shadow-(--dashboard-shadow) md:px-5`},Ce={class:`flex items-start justify-between gap-3`},we={class:`flex items-start gap-3`},Te={class:`h-5 w-5`},Ee={class:`min-w-0 md:flex md:flex-wrap md:items-baseline md:gap-x-3`},De={class:`mt-1 text-2xl font-semibold tracking-tight md:mt-0 md:text-[1.8rem]`},Oe={key:0,class:`mt-1 w-full max-w-3xl text-sm leading-6 text-(--dashboard-text-muted)`},ke={key:0,class:`hidden items-center gap-2 rounded-full border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 py-2 text-xs font-medium text-(--dashboard-text-soft) md:inline-flex`,for:`dashboard-global-theme`},Ae={class:`h-4 w-4 text-(--dashboard-accent)`},je=[`value`],Me=[`value`],Ne={class:`flex flex-wrap items-center gap-2 md:hidden`},Pe={key:0,class:`inline-flex items-center gap-2 rounded-full border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 py-2 text-xs font-medium text-(--dashboard-text-soft)`,for:`dashboard-mobile-theme`},Fe={class:`h-4 w-4 text-(--dashboard-accent)`},Ie=[`value`],Le=[`value`];function Re(e,t,n,r,a,o){return v(),E(`header`,Se,[h(`div`,Ce,[h(`div`,we,[h(`button`,{class:`inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text) md:hidden`,type:`button`,onClick:t[0]||=e=>r.emit(`menu`)},[h(`span`,Te,[u(r.DashboardIcon,{name:`nav-menu`})])]),h(`div`,Ee,[t[1]||=h(`p`,{class:`text-[11px] uppercase tracking-[0.28em] text-(--dashboard-accent)`},` weapp-vite dashboard `,-1),h(`h1`,De,i(n.title),1),n.description?(v(),E(`p`,Oe,i(n.description),1)):w(``,!0)])]),r.hasThemeOptions?(v(),E(`label`,ke,[h(`span`,Ae,[u(r.DashboardIcon,{name:r.currentThemeIconName},null,8,[`name`])]),h(`select`,{id:`dashboard-global-theme`,class:`min-w-32 bg-transparent text-(--dashboard-text) outline-none`,value:n.themePreference,onChange:r.handleThemeChange},[(v(!0),E(x,null,s(n.themeOptions,e=>(v(),E(`option`,{key:e.value,value:e.value},i(e.label),9,Me))),128))],40,je)])):w(``,!0)]),h(`div`,Ne,[r.hasThemeOptions?(v(),E(`label`,Pe,[h(`span`,Fe,[u(r.DashboardIcon,{name:r.currentThemeIconName},null,8,[`name`])]),h(`select`,{id:`dashboard-mobile-theme`,class:`min-w-32 bg-transparent text-(--dashboard-text) outline-none`,value:n.themePreference,onChange:r.handleThemeChange},[(v(!0),E(x,null,s(n.themeOptions,e=>(v(),E(`option`,{key:e.value,value:e.value},i(e.label),9,Le))),128))],40,Ie)])):w(``,!0),r.hasThemeOptions?(v(),p(r.AppInfoPill,{key:1,"icon-name":`status-live`,label:`shell ready`,uppercase:``})):w(``,!0)])])}var ze=A(xe,[[`render`,Re]]),N=O({base:`flex flex-col rounded-lg border shadow-(--dashboard-shadow)`,variants:{tone:{default:`border-(--dashboard-border) bg-(--dashboard-panel)`,strong:`border-(--dashboard-border-strong) bg-(--dashboard-panel-strong)`,muted:`border-(--dashboard-border) bg-(--dashboard-panel-muted)`},padding:{none:``,sm:`p-3`,md:`p-4`,header:`px-4 py-4 md:px-5`}},defaultVariants:{tone:`default`,padding:`md`}}),P=O({base:`flex items-center justify-center rounded-md bg-(--dashboard-accent-soft) text-(--dashboard-accent)`,variants:{size:{sm:`h-8 w-8`,md:`h-9 w-9`,lg:`h-10 w-10`}},defaultVariants:{size:`md`}}),Be=O({base:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted)`,variants:{padding:{sm:`px-4 py-3`,md:`p-4`},interactive:{true:`transition hover:border-(--dashboard-border-strong) hover:bg-(--dashboard-panel)`,false:``}},defaultVariants:{padding:`md`,interactive:!1}}),Ve=O({base:`inline-flex items-center gap-2 rounded-full border transition`,variants:{kind:{nav:`px-3.5 py-1.5 text-sm`,theme:`px-3 py-1.5 text-xs font-medium`,badge:`px-2.5 py-1 text-[11px] uppercase tracking-[0.18em]`},active:{true:`border-(--dashboard-accent) bg-(--dashboard-accent-soft) text-(--dashboard-text)`,false:`border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text-soft) hover:border-(--dashboard-border-strong) hover:text-(--dashboard-text)`}},defaultVariants:{kind:`nav`,active:!1}}),He=O({base:`rounded-full border px-2.5 py-1 text-[11px] font-medium uppercase tracking-[0.16em]`,variants:{tone:{neutral:`border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text-soft)`,info:`border-(--dashboard-border-strong) bg-(--dashboard-accent-soft) text-(--dashboard-accent)`,success:`border-emerald-200 bg-emerald-100 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/12 dark:text-emerald-300`,warning:`border-amber-200 bg-amber-100 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/12 dark:text-amber-300`,error:`border-rose-200 bg-rose-100 text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/12 dark:text-rose-300`}},defaultVariants:{tone:`neutral`}});O({base:`rounded-lg border border-(--dashboard-border) bg-(--dashboard-panel) px-4 py-3 text-[11px] uppercase tracking-[0.24em] text-(--dashboard-text-soft) shadow-(--dashboard-shadow)`});var Ue=t({__name:`AppSurfaceCard`,props:{title:{default:void 0},description:{default:void 0},eyebrow:{default:void 0},iconName:{default:void 0},tone:{default:`default`},padding:{default:`md`},contentClass:{default:``}},setup(e,{expose:t}){t();let n=e,r=a(),i={props:n,slots:r,hasHeader:!!(n.title||n.description||r.header),get cn(){return ie},get iconFrameStyles(){return P},get surfaceStyles(){return N},DashboardIcon:j};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),We={key:0,class:`flex items-start justify-between gap-4`},Ge={class:`flex min-w-0 items-start gap-3`},Ke={class:`h-5 w-5`},qe={class:`min-w-0 sm:flex sm:flex-wrap sm:items-baseline sm:gap-x-2.5`},Je={key:0,class:`text-[11px] uppercase tracking-[0.24em] text-(--dashboard-accent)`},Ye={key:1,class:`text-lg font-semibold tracking-tight sm:whitespace-nowrap`},Xe={key:2,class:`mt-1 w-full text-sm leading-6 text-(--dashboard-text-muted)`};function Ze(e,t,r,a,o,s){return v(),E(`section`,{class:n(a.cn(a.surfaceStyles({tone:r.tone,padding:r.padding}),r.contentClass))},[a.hasHeader?(v(),E(`header`,We,[h(`div`,Ge,[r.iconName?(v(),E(`span`,{key:0,class:n([a.iconFrameStyles({size:`md`}),`shrink-0`])},[h(`span`,Ke,[u(a.DashboardIcon,{name:r.iconName},null,8,[`name`])])],2)):w(``,!0),h(`div`,qe,[r.eyebrow?(v(),E(`p`,Je,i(r.eyebrow),1)):w(``,!0),r.title?(v(),E(`h2`,Ye,i(r.title),1)):w(``,!0),r.description?(v(),E(`p`,Xe,i(r.description),1)):w(``,!0)])]),c(e.$slots,`header`)])):w(``,!0),h(`div`,{class:n(a.cn(`min-h-0 flex-1`,a.hasHeader?`mt-4`:``))},[c(e.$slots,`default`)],2)],2)}var F=A(Ue,[[`render`,Ze]]),I=`weapp-vite-dashboard-theme`;function Qe(){if(typeof window>`u`)return`system`;let e=window.localStorage.getItem(I);return e===`light`||e===`dark`||e===`system`?e:`system`}function $e(e,t){return e===`light`||e===`dark`?e:t?.matches?`dark`:`light`}function L(){let t=r(Qe()),n=typeof window<`u`?window.matchMedia(`(prefers-color-scheme: dark)`):null,i=g(()=>$e(t.value,n)),a=e=>{typeof document<`u`&&(document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=e)},o=e=>{typeof window<`u`&&window.localStorage.setItem(I,e)},s=()=>{a(i.value)};return l(t,e=>{o(e),a(i.value)},{immediate:!0}),e(()=>{n?.addEventListener(`change`,s),a(i.value)}),y(()=>{n?.removeEventListener(`change`,s)}),{themePreference:t,resolvedTheme:i,setThemePreference(e){t.value=e}}}var R=Symbol(`dashboard-theme`);function et(e){o(R,e)}function tt(){return d(R,null)||L()}var z=`weapp-vite-dashboard:analyze-result-history`;function nt(e){return e.toLocaleString(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function B(e){return e?JSON.stringify({packages:e.packages,modules:e.modules,subPackages:e.subPackages,budgets:e.metadata?.budgets}):``}function V(e,t){return B(e)===B(t)}function H(e){return e.packages.flatMap(e=>e.files).reduce((e,t)=>e+(t.size??0),0)}function rt(e){return e.packages.flatMap(e=>e.files).reduce((e,t)=>e+(t.brotliSize??t.gzipSize??Math.round((t.size??0)*.32)),0)}function it(e,t){let n=H(e);return`${Date.parse(t).toString(36)}-${n.toString(36)}-${e.modules.length.toString(36)}`}function U(e,t=new Date().toISOString()){let n=e.modules.filter(e=>e.packages.length>1).length;return{id:it(e,t),capturedAt:t,label:nt(new Date(t)),result:e,totalBytes:H(e),compressedBytes:rt(e),packageCount:e.packages.length,moduleCount:e.modules.length,duplicateCount:n}}function W(e){let t=[...e.snapshots??[]];e.previous&&t.push(U(e.previous)),t.push(U(e.current));let n=new Map;for(let e of t){let t=B(e.result);n.has(t)||n.set(t,e)}return[...n.values()].sort((e,t)=>Date.parse(t.capturedAt)-Date.parse(e.capturedAt)).slice(0,12)}function G(){try{let e=window.localStorage.getItem(z);if(!e)return null;let t=JSON.parse(e);return!t?.current?.packages||!Array.isArray(t.current.packages)?null:{current:t.current,previous:t.previous?.packages?t.previous:null,snapshots:Array.isArray(t.snapshots)?t.snapshots.filter(e=>e?.result?.packages&&Array.isArray(e.result.packages)):void 0,baselineSnapshotId:typeof t.baselineSnapshotId==`string`?t.baselineSnapshotId:null,comparisonMode:t.comparisonMode===`baseline`?`baseline`:`previous`}}catch{return null}}function K(e){try{window.localStorage.setItem(z,JSON.stringify(e))}catch{}}function at(e,t,n){return t||(e&&n?.current&&!V(e,n.current)?n.current:n?.previous??null)}var ot=[{value:`system`,label:`跟随系统`,iconName:`theme-system`},{value:`light`,label:`亮色`,iconName:`theme-light`},{value:`dark`,label:`暗色`,iconName:`theme-dark`}],st=[{key:`overview`,label:`总览`,iconName:`tab-overview`},{key:`diagnostics`,label:`诊断`,iconName:`metric-health`},{key:`review`,label:`评审清单`,iconName:`metric-bookmark`},{key:`treemap`,label:`体积地图`,iconName:`treemap`},{key:`files`,label:`文件详情`,iconName:`top-files`},{key:`source`,label:`源码对比`,iconName:`tab-source`},{key:`packages`,label:`包与产物`,iconName:`tab-packages`},{key:`modules`,label:`模块与复用`,iconName:`tab-modules`}],ct=[{value:`all`,label:`全部`},{value:`growth`,label:`增长`},{value:`duplicates`,label:`重复`},{value:`node_modules`,label:`依赖`},{value:`source`,label:`业务`},{value:`selected-package`,label:`当前包`}],lt=[{to:`/`,label:`工作台`,caption:`应用入口与状态总览`,iconName:`nav-home`},{to:`/analyze`,label:`分析视图`,caption:`包体、模块与分包结构`,iconName:`nav-analyze`,children:st.map(e=>({to:e.key===`overview`?`/analyze`:`/analyze?tab=${e.key}`,label:e.label,caption:e.key===`overview`?`全局摘要和建议动作`:e.key===`diagnostics`?`预算、增量和历史基线`:e.key===`review`?`PR 风险和评审清单`:e.key===`treemap`?`产物体积地图`:e.key===`files`?`文件、预算和模块明细`:e.key===`source`?`源码与产物 Diff`:e.key===`packages`?`包体和产物列表`:`模块复用与来源`,iconName:e.iconName}))},{to:`/activity`,label:`活动流`,caption:`命令、诊断与运行事件`,iconName:`nav-activity`},{to:`/tokens`,label:`设计令牌`,caption:`主题、表面与组件状态`,iconName:`nav-tokens`}],ut=[{label:`启动开发`,command:`pnpm --filter @weapp-vite/dashboard dev`,note:`本地预览完整 UI 壳子`,category:`dev`},{label:`生产构建`,command:`pnpm --filter @weapp-vite/dashboard build`,note:`验证静态产物可发布`,category:`build`},{label:`主包联调`,command:`weapp-vite build --ui`,note:`从 CLI 注入真实分析数据`,category:`analyze`}],dt=["`analyze` payload 契约保持兼容,CLI 注入无需迁移。",`工作台可在无 payload 状态下展示稳定空态和示例事件。`,`主题偏好在应用级共享,页面之间状态一致。`],ft=[{time:`09:12`,title:`analyze payload synced`,summary:`CLI 已把最新构建结果注入 dashboard,全局状态已完成一次同步。`,tone:`live`},{time:`09:26`,title:`workspace shell extended`,summary:`工作台、活动流、设计令牌已经拆成独立页面。`,tone:`default`},{time:`10:03`,title:`theme system unified`,summary:`主题偏好收敛到应用根部,所有页面共享同一套明暗模式。`,tone:`default`}],pt=[{label:`CLI 注入链路`,detail:"保留 `window.__WEAPP_VITE_ANALYZE_RESULT__` 兼容层。",status:`兼容`},{label:`路由拓展性`,detail:`页面采用文件路由,主路由表保持稳定。`,status:`可扩展`},{label:`组件复用`,detail:`通用卡片与区块标题已独立,避免页面继续拷贝结构。`,status:`已落地`},{label:`视觉令牌`,detail:`颜色、表面、排版预览集中在 tokens 页面统一检查。`,status:`可验证`}],mt=[{id:`evt-command-build-ui`,kind:`command`,level:`success`,title:`build --ui completed`,detail:`示例事件: dashboard 已经准备好承接来自 CLI 的真实命令生命周期事件。`,timestamp:`10:18:12`,source:`cli`,durationMs:842,tags:[`build`,`ui`]},{id:`evt-hmr-shell`,kind:`hmr`,level:`info`,title:`workspace shell hot updated`,detail:`工作台页面已完成一次热更新并记录到事件流。`,timestamp:`10:19:44`,source:`vite-hmr`,tags:[`hmr`,`shell`]},{id:`evt-diagnostic-payload`,kind:`diagnostic`,level:`warning`,title:`analyze payload pending`,detail:`当前页面支持在没有 payload 时进入空态。`,timestamp:`10:20:07`,source:`dashboard`,tags:[`diagnostic`]}],ht=[{title:`Accent`,iconName:`token-color`,tokens:[{name:`--dashboard-accent`,sample:`var(--dashboard-accent)`},{name:`--dashboard-accent-soft`,sample:`var(--dashboard-accent-soft)`},{name:`--dashboard-border-strong`,sample:`var(--dashboard-border-strong)`}]},{title:`Surfaces`,iconName:`token-surface`,tokens:[{name:`--dashboard-panel`,sample:`var(--dashboard-panel)`},{name:`--dashboard-panel-strong`,sample:`var(--dashboard-panel-strong)`},{name:`--dashboard-panel-muted`,sample:`var(--dashboard-panel-muted)`}]},{title:`Typography`,iconName:`token-type`,tokens:[{name:`--dashboard-text`,sample:`var(--dashboard-text)`},{name:`--dashboard-text-muted`,sample:`var(--dashboard-text-muted)`},{name:`--dashboard-text-soft`,sample:`var(--dashboard-text-soft)`}]}];function q(e){if(!e||Number.isNaN(e))return`—`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=e,i=0;for(;r>=t&&i<n.length-1;)r/=t,i++;return`${r.toFixed(r>=100||i===0?0:2)} ${n[i]}`}function gt(e,t=``,n=``){if(!e||Number.isNaN(e)||e<=0)return 0;let r=t.toLowerCase().split(`.`).pop()??``,i=new Set([`cjs`,`css`,`html`,`js`,`json`,`map`,`mjs`,`svg`,`txt`,`wxml`,`wxss`,`xml`]),a=new Set([`avif`,`br`,`gif`,`gz`,`jpeg`,`jpg`,`mp3`,`mp4`,`ogg`,`otf`,`png`,`webp`,`woff`,`woff2`,`zip`]);return i.has(r)?Math.max(1,Math.round(e*.34)):a.has(r)?Math.max(1,Math.round(e*.92)):n===`chunk`?Math.max(1,Math.round(e*.38)):Math.max(1,Math.round(e*.72))}function _t(e){switch(e){case`main`:return`主包`;case`subPackage`:return`分包`;case`independent`:return`独立分包`;case`virtual`:return`虚拟包`;default:return e}}function vt(e){return e===`independent`?`独立构建`:`主构建`}function yt(e){switch(e){case`src`:return`业务源码`;case`workspace`:return`工作区包`;case`plugin`:return`插件`;case`node_modules`:return`依赖`;default:return e}}function bt(e){switch(e){case`command`:return`命令`;case`build`:return`构建`;case`diagnostic`:return`诊断`;case`hmr`:return`HMR`;case`system`:return`系统`;default:return e}}function xt(e){switch(e){case`info`:return`信息`;case`success`:return`成功`;case`warning`:return`警告`;case`error`:return`错误`;default:return e}}function St(e){return e??`dashboard`}function Ct(e){return e}function wt(e){return{label:xt(e.level),tone:Ct(e.level)}}function Tt(e){return e>0?`error`:`info`}function Et(e){return{label:e.latestTimestamp?`${e.count} 条`:`错误 ${e.errorCount}`,tone:Tt(e.errorCount)}}function J(e){return typeof e!=`number`||Number.isNaN(e)||e<0?`未记录`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?1:2)} s`:`${e} ms`}function Dt(e){let t=[bt(e.kind),St(e.source),e.timestamp];return typeof e.durationMs==`number`&&Number.isFinite(e.durationMs)&&e.durationMs>=0&&t.push(J(e.durationMs)),t.join(` · `)}function Y(e,t){return{label:e,value:t}}function Ot(){return new Date().toLocaleTimeString(`zh-CN`,{hour12:!1})}function kt(e){if(!e)return{packageCount:0,moduleCount:0,duplicateCount:0,totalBytes:0};let t=e.packages.flatMap(e=>e.files);return{packageCount:e.packages.length,moduleCount:e.modules.length,duplicateCount:e.modules.filter(e=>e.packages.length>1).length,totalBytes:t.reduce((e,t)=>e+(t.size??0),0)}}function At(e){let t=e.filter(e=>e.level===`error`).length,n=e.filter(e=>e.level===`warning`).length,r=e.filter(e=>e.kind===`command`).length,i=e.filter(e=>typeof e.durationMs==`number`),a=i.length>0?Math.round(i.reduce((e,t)=>e+(t.durationMs??0),0)/i.length):void 0;return[Y(`总事件数`,String(e.length)),Y(`命令事件`,String(r)),Y(`已记录耗时`,String(i.length)),Y(`平均耗时`,J(a)),Y(`警告事件`,String(n)),Y(`错误事件`,String(t))]}function jt(e){return[{label:`页面骨架`,value:`4 个`,iconName:`metric-ready`},{label:`连接状态`,value:e.result?`已接入 payload`:`等待注入`,iconName:e.result?`status-live`:`metric-health`},{label:`数据同步`,value:`${e.updateCount} 次`,iconName:`metric-latency`},{label:`产物体积`,value:e.result?q(e.summary.totalBytes):`未载入`,iconName:`metric-quality`},{label:`运行事件`,value:`${e.runtimeEventCount} 条`,iconName:e.latestRuntimeEvent?.level===`error`?`metric-health`:`metric-time`}]}function Mt(e){return e.result?[{label:`重新分析当前工程`,command:`weapp-vite analyze`,note:`最近同步于 ${e.lastUpdatedAt},当前可读取 ${e.summary.packageCount} 个包。`,category:`analyze`},{label:`进入构建联调`,command:`weapp-vite build --ui`,note:`当前产物总体积 ${q(e.summary.totalBytes)},适合继续核对 chunk 结构。`,category:`build`},{label:`观察开发态更新`,command:`weapp-vite dev --ui`,note:`已记录 ${e.updateCount} 次 payload 同步,后续可继续接入更细粒度事件。`,category:`dev`}]:ut}function Nt(e){let t=[...ft];for(let n of e.runtimeEvents.slice(0,4))t.unshift({time:n.timestamp,title:n.title,summary:n.detail,tone:n.level===`error`||n.level===`warning`?`default`:`live`});return e.result&&t.unshift({time:e.lastUpdatedAt,title:`workspace payload received`,summary:`已收到一份真实 analyze 结果,包含 ${e.summary.packageCount} 个包和 ${e.summary.moduleCount} 个模块。`,tone:`live`}),t}function Pt(e){let t=[...pt];return e.latestRuntimeEvent&&t.unshift({label:`最新运行事件`,detail:`${e.latestRuntimeEvent.title} · ${e.latestRuntimeEvent.detail}`,status:e.latestRuntimeEvent.level}),e.result?[{label:`实时分析状态`,detail:`已接入 payload,当前记录 ${e.summary.duplicateCount} 个跨包复用模块。`,status:`在线`},{label:`产物规模`,detail:`总产物体积 ${q(e.summary.totalBytes)},可继续进入分析页查看 treemap 与最大文件。`,status:`可分析`},...t]:[{label:`CLI 注入链路`,detail:`尚未接收到 analyze payload,当前页面以空态方式工作。`,status:`待接入`},...t]}var Ft=Symbol(`dashboard-workspace`),It=[`command`,`build`,`diagnostic`,`hmr`,`system`],Lt=[`info`,`success`,`warning`,`error`];function Rt(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function zt(e){return typeof e==`string`&&It.includes(e)?e:`system`}function Bt(e){return typeof e==`string`&&Lt.includes(e)?e:`info`}function X(e,t){return typeof e==`string`&&e.trim()?e:t}function Z(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:void 0}function Vt(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`&&e.trim()).map(e=>String(e));return t.length>0?t:void 0}function Ht(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`&&e.trim()).map(e=>String(e));return t.length>0?t:void 0}function Ut(e){if(!Rt(e))return;let t={timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,totalMs:Z(e.totalMs),eventId:typeof e.eventId==`string`?e.eventId:void 0,event:typeof e.event==`string`?e.event:void 0,file:typeof e.file==`string`?e.file:void 0,relativeFile:typeof e.relativeFile==`string`?e.relativeFile:void 0,sourceRootFile:typeof e.sourceRootFile==`string`?e.sourceRootFile:void 0,buildCoreMs:Z(e.buildCoreMs),transformMs:Z(e.transformMs),writeMs:Z(e.writeMs),watchToDirtyMs:Z(e.watchToDirtyMs),emitMs:Z(e.emitMs),sharedChunkResolveMs:Z(e.sharedChunkResolveMs),dirtyCount:Z(e.dirtyCount),pendingCount:Z(e.pendingCount),emittedCount:Z(e.emittedCount),dirtyReasonSummary:Ht(e.dirtyReasonSummary),pendingReasonSummary:Ht(e.pendingReasonSummary)};return Object.values(t).some(e=>e!==void 0)?t:void 0}function Wt(e,t){return{id:X(e.id,`dashboard-runtime-event-${t}`),kind:zt(e.kind),level:Bt(e.level),title:X(e.title,`untitled event`),detail:X(e.detail,`no event detail`),timestamp:X(e.timestamp,`—`),source:X(e.source,`dashboard`),durationMs:Z(e.durationMs),tags:Vt(e.tags),profile:Ut(e.profile)}}function Gt(e){return{count:1,errorCount:+(e.level===`error`),latestTimestamp:e.timestamp,durationTotal:e.durationMs??0,timedCount:+(typeof e.durationMs==`number`)}}function Kt(e,t){return{count:e.count+1,errorCount:e.errorCount+ +(t.level===`error`),latestTimestamp:e.latestTimestamp,durationTotal:e.durationTotal+(t.durationMs??0),timedCount:e.timedCount+ +(typeof t.durationMs==`number`)}}function qt(e,t){return{source:e,count:t.count,errorCount:t.errorCount,latestTimestamp:t.latestTimestamp,averageDurationMs:t.timedCount>0?Math.round(t.durationTotal/t.timedCount):void 0}}function Jt(e){return{...e,averageDuration:J(e.averageDurationMs)}}function Yt(e,t){return Rt(e)?Wt(e,t):null}function Q(e){let t=(Array.isArray(e)?e:[e]).map((e,t)=>Yt(e,t)).filter(e=>!!e),n=new Map;for(let e of t)n.set(e.id,e);return[...n.values()]}function $(e){let t=new Map;for(let n of e){let e=n.source??`dashboard`,r=t.get(e);if(!r){t.set(e,Gt(n));continue}t.set(e,Kt(r,n))}return Array.from(t,([e,t])=>qt(e,t)).sort((e,t)=>t.count-e.count||e.source.localeCompare(t.source,`zh-CN`))}function Xt(e){return e.map(e=>Jt(e))}function Zt(){return window.__WEAPP_VITE_DASHBOARD_EVENTS__?.length?Q(window.__WEAPP_VITE_DASHBOARD_EVENTS__):Q(mt)}function Qt(t){let n=g(()=>t.value[0]??null),r=g(()=>At(t.value)),i=g(()=>$(t.value)),a=e=>{let n=Q(e);if(n.length===0)return;let r=[...n,...t.value],i=new Map;for(let e of r)i.set(e.id,e);t.value=[...i.values()].slice(0,24),window.__WEAPP_VITE_DASHBOARD_EVENTS__=[...t.value]},o=e=>{let t=e instanceof CustomEvent?e.detail:null;a(Array.isArray(t)?t:t?[t]:null)};return e(()=>{window.addEventListener(`weapp-dashboard:event`,o),a(window.__WEAPP_VITE_DASHBOARD_EVENTS__)}),y(()=>{window.removeEventListener(`weapp-dashboard:event`,o)}),{eventSummary:r,latestRuntimeEvent:n,runtimeSourceSummary:i}}function $t(){let t=window.__WEAPP_VITE_ANALYZE_RESULT__??null,n=window.__WEAPP_VITE_PREVIOUS_ANALYZE_RESULT__??null,r=G(),i=f(t),a=f(at(t,n,r)),o=f(r?W(r):t?[U(t)]:[]),s=f(r?.baselineSnapshotId&&o.value.some(e=>e.id===r.baselineSnapshotId)?r.baselineSnapshotId:null),c=f(r?.comparisonMode===`baseline`&&s.value?`baseline`:`previous`),l=f(Zt()),u=f(0),d=f(i.value?Ot():`—`);t&&K({current:t,previous:a.value,snapshots:o.value,baselineSnapshotId:s.value,comparisonMode:c.value});let p=g(()=>kt(i.value)),{eventSummary:ee,latestRuntimeEvent:m,runtimeSourceSummary:h}=Qt(l),_=g(()=>i.value?`payload ready`:`awaiting payload`),v=g(()=>i.value?`${p.value.packageCount} 个包 · ${p.value.moduleCount} 个模块`:`尚未接收到 CLI analyze 数据`),b=g(()=>o.value.find(e=>e.id===s.value)??null),x=g(()=>c.value===`baseline`?b.value?.result??a.value:a.value),te=g(()=>jt({result:i.value,updateCount:u.value,summary:p.value,runtimeEventCount:l.value.length,latestRuntimeEvent:m.value})),S=g(()=>Mt({result:i.value,lastUpdatedAt:d.value,summary:p.value,updateCount:u.value})),C=g(()=>Nt({runtimeEvents:l.value,result:i.value,lastUpdatedAt:d.value,summary:p.value})),w=g(()=>Pt({result:i.value,latestRuntimeEvent:m.value,summary:p.value})),T=()=>{let e=window.__WEAPP_VITE_ANALYZE_RESULT__;if(!e)return;let t=window.__WEAPP_VITE_PREVIOUS_ANALYZE_RESULT__??null,n=G(),r=n?.previous??a.value;n?.current&&!V(e,n.current)&&(r=n.current),i.value&&!V(e,i.value)&&(r=i.value),t&&!V(e,t)&&(r=t),a.value=V(e,r)?null:r,i.value=e;let l=U(e),f=W({current:e,previous:a.value,snapshots:[l,...o.value]});o.value=f,s.value&&!f.some(e=>e.id===s.value)&&(s.value=f[f.length-1]?.id??null),c.value===`baseline`&&!s.value&&(c.value=`previous`),K({current:e,previous:a.value,snapshots:o.value,baselineSnapshotId:s.value,comparisonMode:c.value}),u.value+=1,d.value=Ot()},E=()=>{i.value&&K({current:i.value,previous:a.value,snapshots:o.value,baselineSnapshotId:s.value,comparisonMode:c.value})};return e(()=>{window.addEventListener(`weapp-analyze:update`,T),T()}),y(()=>{window.removeEventListener(`weapp-analyze:update`,T)}),{resultRef:i,previousResultRef:a,comparisonResultRef:x,historySnapshots:o,baselineSnapshotId:s,comparisonMode:c,updateCount:u,lastUpdatedAt:d,statusLabel:_,statusSummary:v,commandItems:S,activityItems:C,diagnostics:w,signals:te,runtimeEvents:l,latestRuntimeEvent:m,eventSummary:ee,runtimeSourceSummary:h,setBaselineSnapshot:e=>{o.value.some(t=>t.id===e)&&(s.value=e,c.value=`baseline`,E())},setComparisonMode:e=>{c.value=e===`baseline`&&!s.value?`previous`:e,E()}}}function en(e){o(Ft,e)}function tn(){let e=d(Ft,null);if(!e)throw Error(`[dashboard] workspace context is not available`);return e}var nn=t({__name:`App`,setup(e,{expose:t}){t();let n=ee(),i=r(!1),{themePreference:a,resolvedTheme:o,setThemePreference:s}=L(),c=$t(),u=g(()=>!!c.resultRef.value),d=g(()=>typeof n.query.tab==`string`?n.query.tab:`overview`);et({themePreference:a,resolvedTheme:o,setThemePreference:s}),en(c);let f=g(()=>n.path.startsWith(`/analyze`)?{title:`Analyze Workspace`}:n.path.startsWith(`/activity`)?{title:`Activity Stream`}:n.path.startsWith(`/tokens`)?{title:`Design Tokens`}:{title:`Workspace Console`});l(()=>n.fullPath,()=>{i.value=!1});let p={route:n,mobileNavOpen:i,themePreference:a,resolvedTheme:o,setThemePreference:s,workspace:c,hasPayload:u,currentAnalyzeTab:d,pageMeta:f,get RouterView(){return b},AppNavigationList:_e,AppShellHeader:ze,AppSurfaceCard:F,get workspaceNavigation(){return lt},get themeOptions(){return ot}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),rn={class:`min-h-dvh overflow-x-hidden px-3 py-3 text-(--dashboard-text) md:px-4 md:py-4 lg:px-5`},an={class:`mx-auto grid max-w-480 items-start gap-3 lg:grid-cols-[16rem_minmax(0,1fr)]`},on={class:`hidden min-h-0 lg:sticky lg:top-4 lg:block lg:h-[calc(100dvh-2rem)]`},sn={class:`grid h-full grid-rows-[minmax(0,1fr)_auto] gap-3`},cn={class:`grid min-h-0 min-w-0 gap-3`},ln={class:`min-h-[calc(100dvh-8rem)] min-w-0`},un={key:0,class:`fixed inset-y-3 left-3 z-50 w-[min(22rem,calc(100vw-1.5rem))] lg:hidden`};function dn(e,t,n,r,i,a){return v(),E(`div`,rn,[h(`div`,an,[h(`aside`,on,[h(`div`,sn,[u(r.AppSurfaceCard,{eyebrow:`Shell`,title:`weapp-vite dashboard`,"icon-name":`hero-system`,tone:`strong`,"content-class":`min-h-0 overflow-hidden`},{default:D(()=>[u(r.AppNavigationList,{"current-analyze-tab":r.currentAnalyzeTab,"current-path":r.route.path,items:r.workspaceNavigation},null,8,[`current-analyze-tab`,`current-path`,`items`])]),_:1}),u(r.AppSurfaceCard,{eyebrow:`Status`,title:r.workspace.statusLabel.value,description:r.workspace.statusSummary.value,"icon-name":r.hasPayload?`status-live`:r.resolvedTheme===`dark`?`theme-dark`:`theme-light`,padding:`sm`},null,8,[`title`,`description`,`icon-name`])])]),h(`div`,cn,[u(r.AppShellHeader,{title:r.pageMeta.title,description:r.pageMeta.description,"theme-options":r.themeOptions,"theme-preference":r.themePreference,onMenu:t[0]||=e=>r.mobileNavOpen=!0,onSetTheme:r.setThemePreference},null,8,[`title`,`description`,`theme-options`,`theme-preference`,`onSetTheme`]),h(`div`,ln,[u(r.RouterView)])])]),u(S,{"enter-active-class":`transition duration-200 ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-150 ease-in`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:D(()=>[r.mobileNavOpen?(v(),E(`div`,{key:0,class:`fixed inset-0 z-40 bg-slate-950/35 backdrop-blur-sm lg:hidden`,onClick:t[1]||=e=>r.mobileNavOpen=!1})):w(``,!0)]),_:1}),u(S,{"enter-active-class":`transition duration-200 ease-out`,"enter-from-class":`-translate-x-6 opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transition duration-150 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`-translate-x-6 opacity-0`},{default:D(()=>[r.mobileNavOpen?(v(),E(`aside`,un,[u(r.AppSurfaceCard,{eyebrow:`Navigation`,title:`Workspace Modules`,description:`选择要查看的工作区。`,"icon-name":`nav-menu`,tone:`strong`,"content-class":`h-full`},{default:D(()=>[u(r.AppNavigationList,{mobile:``,"current-analyze-tab":r.currentAnalyzeTab,"current-path":r.route.path,items:r.workspaceNavigation,onNavigate:t[2]||=e=>r.mobileNavOpen=!1},null,8,[`current-analyze-tab`,`current-path`,`items`])]),_:1})])):w(``,!0)]),_:1})])}var fn=A(nn,[[`render`,dn]]),pn=te({history:_(),routes:[{path:`/`,name:`/`,component:()=>k(()=>import(`./pages.js`),[],import.meta.url)},{path:`/activity`,name:`/activity`,component:()=>k(()=>import(`./activity.js`),[],import.meta.url)},{path:`/analyze`,name:`/analyze`,component:()=>k(()=>import(`./analyze.js`),__vite__mapDeps([0]),import.meta.url)},{path:`/tokens`,name:`/tokens`,component:()=>k(()=>import(`./tokens.js`),[],import.meta.url)}]});function mn(){let e=m(fn);e.config.errorHandler=(e,t,n)=>{},e.use(pn),e.mount(`#app`)}try{mn()}catch{}export{Be as C,M as D,N as E,j as O,P as S,He as T,lt as _,Et as a,tt as b,q as c,bt as d,xt as f,ht as g,dt as h,wt as i,A as k,J as l,yt as m,Xt as n,gt as o,Dt as p,$ as r,vt as s,tn as t,_t as u,ot as v,Ve as w,F as x,ct as y};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./monaco.css","./analyze.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as e,B as t,C as n,I as r,K as i,M as a,N as o,O as s,T as c,U as l,W as u,X as d,Y as f,_ as p,a as m,b as h,c as g,f as _,g as v,h as y,i as b,j as x,k as S,m as C,n as w,p as T,q as E,r as D,s as O,t as ee,v as k,x as A,y as j,z as M}from"./vue.js";import{i as N,n as te,r as ne}from"./vendor.js";import{s as P}from"./monaco.js";function re(e,t){if(e){if(Array.isArray(e)){for(let n of e)re(n,t);return}if(typeof e==`object`){for(let[n,r]of Object.entries(e))r&&t.push(n);return}t.push(String(e))}}function ie(...e){let t=[];for(let n of e)re(n,t);return N(t.join(` `))}var F=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},ae=n({__name:`DashboardIcon`,props:{name:{}},setup(e,{expose:t}){t();let n=e,r={"theme-system":`icon-[mdi--theme-light-dark]`,"theme-light":`icon-[mdi--white-balance-sunny]`,"theme-dark":`icon-[mdi--moon-waning-crescent]`,"nav-menu":`icon-[mdi--menu]`,"nav-home":`icon-[mdi--view-grid-outline]`,"nav-analyze":`icon-[mdi--chart-box-outline]`,"nav-activity":`icon-[mdi--timeline-text-outline]`,"nav-tokens":`icon-[mdi--palette-outline]`,"tab-overview":`icon-[mdi--view-dashboard-outline]`,"tab-packages":`icon-[mdi--package-variant-closed]`,"tab-modules":`icon-[mdi--vector-link]`,"tab-source":`icon-[mdi--source-branch]`,"status-dark":`icon-[mdi--circle-slice-8]`,"status-light":`icon-[mdi--checkbox-blank-circle]`,"status-live":`icon-[mdi--motion-play-outline]`,"metric-packages":`icon-[mdi--package-variant]`,"metric-subpackages":`icon-[mdi--layers-triple-outline]`,"metric-chunks":`icon-[mdi--chart-tree]`,"metric-assets":`icon-[mdi--file-document-multiple-outline]`,"metric-size-outline":`icon-[mdi--database-outline]`,"metric-modules":`icon-[mdi--cube-outline]`,"metric-duplicates":`icon-[mdi--vector-link]`,"metric-sources":`icon-[mdi--source-branch]`,"metric-copy":`icon-[mdi--content-copy]`,"metric-time":`icon-[mdi--clock-outline]`,"metric-entries":`icon-[mdi--export-variant]`,"metric-size":`icon-[mdi--database]`,treemap:`icon-[mdi--chart-box-outline]`,"top-files":`icon-[mdi--file-star-outline]`,subpackages:`icon-[mdi--layers-triple-outline]`,"duplicate-modules":`icon-[mdi--vector-link]`,"module-sources":`icon-[mdi--source-branch]`,"file-samples":`icon-[mdi--file-document-outline]`,"hero-workspace":`icon-[mdi--view-quilt-outline]`,"hero-commands":`icon-[mdi--console-line]`,"hero-system":`icon-[mdi--shape-outline]`,"metric-ready":`icon-[mdi--rocket-launch-outline]`,"metric-health":`icon-[mdi--heart-pulse]`,"metric-latency":`icon-[mdi--timer-sand]`,"metric-quality":`icon-[mdi--shield-check-outline]`,"metric-search":`icon-[mdi--magnify]`,"metric-history":`icon-[mdi--history]`,"metric-bookmark":`icon-[mdi--bookmark-check-outline]`,"metric-link":`icon-[mdi--link-variant]`,"metric-reset":`icon-[mdi--restore]`,"metric-drag":`icon-[mdi--drag-horizontal-variant]`,"token-color":`icon-[mdi--palette-outline]`,"token-surface":`icon-[mdi--card-bulleted-outline]`,"token-type":`icon-[mdi--format-letter-spacing]`},i={props:n,ICON_CLASS_MAP:r,iconClassName:y(()=>r[n.name]??`icon-[mdi--file-document-multiple-outline]`)};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}});function oe(e,t,n,r,i,a){return x(),j(`span`,{class:E([`h-full w-full`,r.iconClassName])},null,2)}var I=F(ae,[[`render`,oe]]),se=n({__name:`AppNavigationList`,props:{currentAnalyzeTab:{},currentPath:{},items:{},mobile:{type:Boolean,default:!1}},emits:[`navigate`],setup(e,{expose:t,emit:n}){t();let r=e,i=n;function a(e){return e===`/`?r.currentPath===`/`:r.currentPath===e||r.currentPath.startsWith(`${e}/`)}function o(e){let t=e.indexOf(`?`);return t===-1?`overview`:new URLSearchParams(e.slice(t+1)).get(`tab`)??`overview`}function s(e){return e.startsWith(`/analyze`)?r.currentPath===`/analyze`&&o(e)===r.currentAnalyzeTab:a(e)}function c(e){return a(e.to)||!!e.children?.some(e=>s(e.to))}let l={props:r,emit:i,isActive:a,getAnalyzeTabFromPath:o,isNavigationItemActive:s,isNavigationSectionActive:c,get RouterLink(){return ee},get cn(){return ie},DashboardIcon:I};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),ce={class:`grid gap-0.5 overflow-y-auto px-2 py-2`,"aria-label":`DevTools modules`},le={key:0,class:`absolute inset-y-1 left-0 w-0.5 rounded-full bg-(--dashboard-accent)`},ue={class:`min-w-0 flex-1 truncate`},de={key:0,class:`px-8 pb-1 text-[10px] leading-4 text-(--dashboard-text-soft)`},fe={key:1,class:`ml-4 grid gap-0.5 border-l border-(--dashboard-border) pl-2`},pe={class:`h-3.5 w-3.5 shrink-0`},me={class:`min-w-0 truncate`};function he(e,n,r,i,a,s){return x(),j(`nav`,ce,[(x(!0),j(T,null,o(r.items,e=>(x(),j(`div`,{key:e.to,class:`grid gap-0.5`},[A(i.RouterLink,{to:e.to,class:E(i.cn(`group relative flex min-h-9 items-center gap-2 rounded px-2.5 py-2 text-[13px] transition-colors`,i.isNavigationSectionActive(e)?`bg-(--dashboard-accent-soft) font-medium text-(--dashboard-text)`:`text-(--dashboard-text-muted) hover:bg-(--dashboard-panel-muted) hover:text-(--dashboard-text)`)),onClick:n[0]||=e=>i.emit(`navigate`)},{default:t(()=>[i.isNavigationSectionActive(e)?(x(),j(`span`,le)):k(``,!0),v(`span`,{class:E(i.cn(`h-4 w-4 shrink-0`,i.isNavigationSectionActive(e)?`text-(--dashboard-accent)`:`text-(--dashboard-text-soft)`))},[A(i.DashboardIcon,{name:e.iconName},null,8,[`name`])],2),v(`span`,ue,d(e.label),1)]),_:2},1032,[`to`,`class`]),r.mobile||i.isNavigationSectionActive(e)?(x(),j(`p`,de,d(e.caption),1)):k(``,!0),e.children?.length&&i.isNavigationSectionActive(e)?(x(),j(`div`,fe,[(x(!0),j(T,null,o(e.children,e=>(x(),p(i.RouterLink,{key:e.to,to:e.to,class:E(i.cn(`flex min-h-8 min-w-0 items-center gap-2 rounded px-2 py-1.5 text-xs transition-colors`,i.isNavigationItemActive(e.to)?`bg-(--dashboard-panel-muted) font-medium text-(--dashboard-accent)`:`text-(--dashboard-text-soft) hover:bg-(--dashboard-panel-muted) hover:text-(--dashboard-text)`)),onClick:n[1]||=e=>i.emit(`navigate`)},{default:t(()=>[v(`span`,pe,[A(i.DashboardIcon,{name:e.iconName},null,8,[`name`])]),v(`span`,me,d(e.label),1)]),_:2},1032,[`to`,`class`]))),128))])):k(``,!0)]))),128))])}var ge=F(se,[[`render`,he]]),_e=[{value:`system`,label:`跟随系统`,iconName:`theme-system`},{value:`light`,label:`亮色`,iconName:`theme-light`},{value:`dark`,label:`暗色`,iconName:`theme-dark`}],ve=[{key:`overview`,label:`总览`,iconName:`tab-overview`},{key:`diagnostics`,label:`诊断`,iconName:`metric-health`},{key:`review`,label:`评审清单`,iconName:`metric-bookmark`},{key:`graph`,label:`依赖图`,iconName:`tab-modules`},{key:`treemap`,label:`体积地图`,iconName:`treemap`},{key:`files`,label:`文件详情`,iconName:`top-files`},{key:`source`,label:`源码对比`,iconName:`tab-source`},{key:`packages`,label:`包与产物`,iconName:`tab-packages`},{key:`modules`,label:`模块与复用`,iconName:`tab-modules`}],ye=[{value:`all`,label:`全部`},{value:`growth`,label:`增长`},{value:`duplicates`,label:`重复`},{value:`node_modules`,label:`依赖`},{value:`source`,label:`业务`},{value:`selected-package`,label:`当前包`}],be=`weapp-vite DevTools`,xe=[{to:`/`,label:`概览`,caption:`当前构建与运行会话`,iconName:`nav-home`},{to:`/analyze`,label:`构建分析`,caption:`包、模块、文件和分包`,iconName:`nav-analyze`,children:ve.map(e=>({to:e.key===`overview`?`/analyze`:`/analyze?tab=${e.key}`,label:e.label,caption:e.key===`overview`?`全局摘要和建议动作`:e.key===`diagnostics`?`预算、增量和历史基线`:e.key===`review`?`PR 风险和评审清单`:e.key===`graph`?`Chunk 静态与动态依赖`:e.key===`treemap`?`产物体积地图`:e.key===`files`?`文件、预算和模块明细`:e.key===`source`?`源码与产物 Diff`:e.key===`packages`?`包体和产物列表`:`模块复用与来源`,iconName:e.iconName}))},{to:`/activity`,label:`运行事件`,caption:`Build、HMR、命令和错误`,iconName:`nav-activity`},{to:`/tokens`,label:`界面令牌`,caption:`主题、表面和组件状态`,iconName:`nav-tokens`}],Se=[{label:`启动开发`,command:`pnpm --filter @weapp-vite/dashboard dev`,note:`本地预览完整 UI 壳子`,category:`dev`},{label:`生产构建`,command:`pnpm --filter @weapp-vite/dashboard build`,note:`验证静态产物可发布`,category:`build`},{label:`主包联调`,command:`weapp-vite build --ui`,note:`从 CLI 注入真实分析数据`,category:`analyze`}],Ce=[{time:`09:12`,title:`analyze payload synced`,summary:`CLI 已把最新构建结果注入 dashboard,全局状态已完成一次同步。`,tone:`live`},{time:`09:26`,title:`workspace shell extended`,summary:`工作台、活动流、设计令牌已经拆成独立页面。`,tone:`default`},{time:`10:03`,title:`theme system unified`,summary:`主题偏好收敛到应用根部,所有页面共享同一套明暗模式。`,tone:`default`}],we=[{label:`Devframe 协议链路`,detail:`Analyze 查询、运行事件和文件读取统一通过 Devframe 传输。`,status:`已落地`},{label:`路由拓展性`,detail:`页面采用文件路由,主路由表保持稳定。`,status:`可扩展`},{label:`组件复用`,detail:`通用卡片与区块标题已独立,避免页面继续拷贝结构。`,status:`已落地`},{label:`视觉令牌`,detail:`颜色、表面、排版预览集中在 tokens 页面统一检查。`,status:`可验证`}],Te=[{title:`Accent`,iconName:`token-color`,tokens:[{name:`--dashboard-accent`,sample:`var(--dashboard-accent)`},{name:`--dashboard-accent-soft`,sample:`var(--dashboard-accent-soft)`},{name:`--dashboard-border-strong`,sample:`var(--dashboard-border-strong)`}]},{title:`Surfaces`,iconName:`token-surface`,tokens:[{name:`--dashboard-panel`,sample:`var(--dashboard-panel)`},{name:`--dashboard-panel-strong`,sample:`var(--dashboard-panel-strong)`},{name:`--dashboard-panel-muted`,sample:`var(--dashboard-panel-muted)`}]},{title:`Typography`,iconName:`token-type`,tokens:[{name:`--dashboard-text`,sample:`var(--dashboard-text)`},{name:`--dashboard-text-muted`,sample:`var(--dashboard-text-muted)`},{name:`--dashboard-text-soft`,sample:`var(--dashboard-text-soft)`}]}];function Ee(e,t,n){let r=null,i=null;for(let a of e)if(!a.disabled){if(r??=a.value,a.value===t)return a.value;a.value===n&&(i=a.value)}return i??r}function L(e){let t=Number.parseFloat(e);return Number.isFinite(t)?t:0}function De(e,t){let n=getComputedStyle(e),r=Array.from(e.children).reduce((e,n)=>n===t?e:e+n.getBoundingClientRect().width,0),i=Math.max(0,e.children.length-1);return r+L(n.paddingLeft)+L(n.paddingRight)+L(n.borderLeftWidth)+L(n.borderRightWidth)+L(n.columnGap)*i}function Oe(e){let t=e.querySelector(`[role="option"]`),n=t?.querySelector(`[data-option-label]`);if(!t||!n)return e.offsetWidth;let r=e.offsetWidth-e.clientWidth,i=e.clientWidth-t.offsetWidth,a=De(t,n),o=0;for(let t of e.querySelectorAll(`[data-option-label]`)){let e=t.style.whiteSpace;t.style.whiteSpace=`nowrap`,o=Math.max(o,t.scrollWidth),t.style.whiteSpace=e}return o+a+i+r}function ke(e,t){let n=e.getBoundingClientRect(),r=window.visualViewport,i=r?.offsetLeft??0,a=r?.offsetTop??0,o=r?.width??window.innerWidth,s=r?.height??window.innerHeight,c=i+o,l=a+s,u=Math.max(0,o-16),d=Math.min(Math.max(n.width,Oe(t)),u);t.style.width=`${Math.round(d)}px`;let f=l-n.bottom-6-8,p=n.top-a-6-8,m=Math.min(t.scrollHeight+t.offsetHeight-t.clientHeight,288),h=f<Math.min(m,160)&&p>f,g=Math.max(0,h?p:f),_=Math.min(m,g),v=Math.min(Math.max(n.left,i+8),c-d-8),y=h?Math.max(a+8,n.top-6-_):Math.min(n.bottom+6,l-_-8);return{placement:h?`top`:`bottom`,style:{left:`${Math.round(v)}px`,maxHeight:`${Math.floor(g)}px`,top:`${Math.round(y)}px`,width:`${Math.round(d)}px`}}}function Ae(e,t){let n=u(null),i=u(null),a=l(!1),o=u(null),c=l(`bottom`),d=l({}),f=`dashboard-select-${r()}`,p=`${f}-label`,m=`${f}-listbox`,h=`${f}-value`,g=y(()=>e.options.findIndex(t=>t.value===e.modelValue)),_=y(()=>e.options[g.value]),v=y(()=>o.value===null?-1:e.options.findIndex(e=>e.value===o.value)),b=y(()=>a.value&&v.value>=0?`${m}-option-${v.value}`:void 0);function x(t,n){if(!e.options.length)return-1;for(let r=0;r<e.options.length;r++){let i=(t+n*r+e.options.length)%e.options.length;if(!e.options[i]?.disabled)return i}return-1}function C(t){o.value=e.options[t]?.value??null}function w(){i.value?.querySelector(`[data-option-index="${v.value}"]`)?.scrollIntoView({block:`nearest`})}function T(){if(!a.value||!n.value||!i.value)return;let e=ke(n.value,i.value);c.value=e.placement,d.value=e.style}async function E(t=1){if(e.disabled||!e.options.length)return;let n=x(g.value>=0?g.value:t===1?0:e.options.length-1,t);n<0||(C(n),a.value=!0,await s(),T(),w())}function D(){a.value=!1}function O(){if(a.value){D();return}E()}function ee(e){e.disabled||(t(e.value),D(),s(()=>n.value?.focus({preventScroll:!0})))}function k(t){C(x(v.value>=0?v.value+t:t===1?0:e.options.length-1,t)),s(w)}function A(t){if(t.key===`ArrowDown`||t.key===`ArrowUp`){t.preventDefault();let e=t.key===`ArrowDown`?1:-1;if(!a.value){E(e);return}k(e);return}if(t.key===`Home`&&a.value){t.preventDefault(),C(x(0,1)),s(w);return}if(t.key===`End`&&a.value){t.preventDefault(),C(x(e.options.length-1,-1)),s(w);return}if((t.key===`Enter`||t.key===` `)&&a.value){t.preventDefault();let n=e.options[v.value];n&&ee(n);return}if(t.key===`Enter`||t.key===` `){t.preventDefault(),E();return}if(t.key===`Escape`&&a.value){t.preventDefault(),D();return}t.key===`Tab`&&D()}function j(e){let t=e.target;t instanceof Node&&(n.value?.contains(t)||i.value?.contains(t)||D())}function N(e){(e?.type!==`scroll`||e.target!==i.value)&&T()}async function te(){if(!a.value)return;if(e.disabled||!e.options.length){D();return}let t=Ee(e.options,o.value,e.modelValue);if(t===null){D();return}o.value=t,await s(),a.value&&(T(),w())}function ne(){document.addEventListener(`pointerdown`,j,!0),document.addEventListener(`scroll`,N,!0),window.addEventListener(`resize`,N),window.visualViewport?.addEventListener(`resize`,N),window.visualViewport?.addEventListener(`scroll`,N)}function P(){document.removeEventListener(`pointerdown`,j,!0),document.removeEventListener(`scroll`,N,!0),window.removeEventListener(`resize`,N),window.visualViewport?.removeEventListener(`resize`,N),window.visualViewport?.removeEventListener(`scroll`,N)}return M(()=>e.modelValue,t=>{if(!a.value)return;let n=Ee(e.options,null,t);if(n===null){D();return}o.value=n,s(w)}),M(()=>e.options,()=>{te()},{deep:!0}),M(()=>e.disabled,e=>{e&&D()}),M(a,e=>{if(e){ne();return}P()}),S(P),{activeDescendant:b,activeValue:o,closeMenu:D,handleTriggerKeydown:A,isOpen:a,labelId:p,listboxId:m,menuRef:i,menuStyle:d,placement:c,selectedOption:_,selectOption:ee,setActiveIndex:C,triggerRef:n,toggleMenu:O,valueId:h}}var je=n({__name:`AppSelect`,props:{label:{},disabled:{type:Boolean,default:!1},modelValue:{},options:{},size:{default:`md`}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){t();let r=e,i=n,{activeDescendant:a,activeValue:o,handleTriggerKeydown:s,isOpen:c,labelId:l,listboxId:u,menuRef:d,menuStyle:f,placement:p,selectedOption:m,selectOption:h,setActiveIndex:g,toggleMenu:_,triggerRef:v,valueId:y}=Ae(r,e=>i(`update:modelValue`,e)),b={props:r,emit:i,activeDescendant:a,activeValue:o,handleTriggerKeydown:s,isOpen:c,labelId:l,listboxId:u,menuRef:d,menuStyle:f,placement:p,selectedOption:m,selectOption:h,setActiveIndex:g,toggleMenu:_,triggerRef:v,valueId:y};return Object.defineProperty(b,"__isScriptSetup",{enumerable:!1,value:!0}),b}}),Me={class:`min-w-0`},Ne=[`id`],Pe=[`aria-activedescendant`,`aria-controls`,`aria-labelledby`,`aria-expanded`,`disabled`,`title`],Fe=[`id`],Ie=[`id`,`aria-labelledby`],Le=[`id`,`aria-selected`,`data-option-index`,`disabled`,`title`,`onClick`,`onMouseenter`],Re={class:`flex h-4 w-4 shrink-0 items-center justify-center`,"aria-hidden":`true`},ze={key:0,class:`h-1.5 w-1.5 rounded-full bg-(--dashboard-accent)`},Be={"data-option-label":``,class:`min-w-0 break-all`};function Ve(e,n,r,i,a,s){return x(),j(`div`,Me,[v(`span`,{id:i.labelId,class:`sr-only`},d(r.label),9,Ne),v(`button`,{ref:`triggerRef`,type:`button`,role:`combobox`,class:E([`group flex w-full min-w-0 items-center justify-between gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) text-left text-(--dashboard-text) outline-none transition-colors hover:border-(--dashboard-border-strong) hover:bg-(--dashboard-panel) focus-visible:border-(--dashboard-accent) focus-visible:ring-2 focus-visible:ring-(--dashboard-accent-soft) disabled:cursor-not-allowed disabled:opacity-55`,r.size===`sm`?`h-8 px-2 text-xs`:`h-9 px-2.5 text-sm`]),"aria-activedescendant":i.activeDescendant,"aria-controls":i.isOpen?i.listboxId:void 0,"aria-labelledby":`${i.labelId} ${i.valueId}`,"aria-expanded":i.isOpen,"aria-haspopup":`listbox`,disabled:r.disabled,title:i.selectedOption?.label,onClick:n[0]||=(...e)=>i.toggleMenu&&i.toggleMenu(...e),onKeydown:n[1]||=(...e)=>i.handleTriggerKeydown&&i.handleTriggerKeydown(...e)},[v(`span`,{id:i.valueId,class:`min-w-0 truncate`},d(i.selectedOption?.label??`请选择`),9,Fe),v(`span`,{"aria-hidden":`true`,class:E([`mr-0.5 h-1.5 w-1.5 shrink-0 rotate-45 border-b border-r border-current text-(--dashboard-text-soft) transition-transform duration-150 group-hover:text-(--dashboard-text)`,i.isOpen?`-translate-y-px rotate-225 text-(--dashboard-accent)`:void 0])},null,2)],42,Pe),(x(),p(C,{to:`body`},[A(O,{"enter-active-class":`transition duration-100 ease-out`,"enter-from-class":`opacity-0 scale-[0.98]`,"enter-to-class":`opacity-100 scale-100`,"leave-active-class":`transition duration-75 ease-in`,"leave-from-class":`opacity-100 scale-100`,"leave-to-class":`opacity-0 scale-[0.98]`},{default:t(()=>[i.isOpen?(x(),j(`div`,{key:0,id:i.listboxId,ref:`menuRef`,role:`listbox`,class:E([`fixed z-[120] overflow-y-auto rounded-lg border border-(--dashboard-border-strong) bg-(--dashboard-panel) p-1 shadow-2xl shadow-black/20 outline-none`,i.placement===`top`?`origin-bottom`:`origin-top`]),style:f(i.menuStyle),"aria-labelledby":i.labelId},[(x(!0),j(T,null,o(r.options,(e,t)=>(x(),j(`button`,{id:`${i.listboxId}-option-${t}`,key:e.value,type:`button`,role:`option`,tabindex:`-1`,class:E([`flex min-h-8 w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-left outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-45`,[r.size===`sm`?`text-xs`:`text-sm`,e.value===r.modelValue?`bg-(--dashboard-accent-soft) text-(--dashboard-accent)`:i.activeValue===e.value?`bg-(--dashboard-panel-muted) text-(--dashboard-text)`:`text-(--dashboard-text-muted)`]]),"aria-selected":e.value===r.modelValue,"data-option-index":t,disabled:e.disabled,title:e.label,onClick:t=>i.selectOption(e),onMouseenter:e=>i.setActiveIndex(t),onMousedown:n[2]||=_(()=>{},[`prevent`])},[v(`span`,Re,[e.value===r.modelValue?(x(),j(`span`,ze)):k(``,!0)]),v(`span`,Be,d(e.label),1)],42,Le))),128))],14,Ie)):k(``,!0)]),_:1})]))])}var He=F(je,[[`render`,Ve]]),Ue=n({__name:`AppShellHeader`,props:{connectionStatus:{},hasPayload:{type:Boolean},packageCount:{},title:{},description:{},themeOptions:{},themePreference:{}},emits:[`menu`,`setTheme`],setup(e,{expose:t,emit:n}){t();let r=e,i={props:r,emit:n,currentThemeIconName:y(()=>r.themeOptions.find(e=>e.value===r.themePreference)?.iconName??`theme-system`),connectionLabel:y(()=>r.connectionStatus===`connected`?`${be} connected`:r.connectionStatus===`unauthorized`?`Authorization required`:r.connectionStatus),get cn(){return ie},AppSelect:He,DashboardIcon:I};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),We={class:`flex min-h-13 items-center justify-between gap-3 border-b border-(--dashboard-border) bg-(--dashboard-panel) px-3 lg:px-4`},Ge={class:`flex min-w-0 items-center gap-2.5`},Ke={class:`h-4 w-4`},qe={class:`min-w-0`},Je={class:`flex min-w-0 items-center gap-2`},Ye={class:`truncate text-sm font-semibold text-(--dashboard-text)`},Xe={key:0,class:`hidden truncate text-[11px] text-(--dashboard-text-soft) md:block`},Ze={class:`flex shrink-0 items-center gap-1.5`},Qe={class:`hidden items-center gap-1.5 rounded border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-2 py-1 text-[11px] text-(--dashboard-text-muted) sm:inline-flex`},$e={class:`hidden rounded border border-(--dashboard-border) px-2 py-1 font-mono text-[10px] text-(--dashboard-text-soft) md:inline-flex`},et={class:`inline-flex items-center gap-1.5 text-[11px] text-(--dashboard-text-muted)`},tt={class:`h-3.5 w-3.5 text-(--dashboard-text-soft)`};function nt(e,t,n,r,i,a){return x(),j(`header`,We,[v(`div`,Ge,[v(`button`,{class:`inline-flex h-8 w-8 shrink-0 items-center justify-center rounded border border-(--dashboard-border) bg-(--dashboard-panel-muted) text-(--dashboard-text) lg:hidden`,type:`button`,"aria-label":`打开 DevTools 导航`,onClick:t[0]||=e=>r.emit(`menu`)},[v(`span`,Ke,[A(r.DashboardIcon,{name:`nav-menu`})])]),v(`div`,qe,[v(`div`,Je,[v(`h1`,Ye,d(n.title),1),n.description?(x(),j(`span`,Xe,d(n.description),1)):k(``,!0)])])]),v(`div`,Ze,[v(`span`,Qe,[v(`span`,{class:E(r.cn(`h-1.5 w-1.5 rounded-full`,n.connectionStatus===`connected`?`bg-emerald-500`:n.connectionStatus===`error`?`bg-red-500`:`bg-amber-500`))},null,2),h(` `+d(r.connectionLabel),1)]),v(`span`,$e,d(n.hasPayload?`${n.packageCount} packages`:`no payload`),1),v(`div`,et,[v(`span`,tt,[A(r.DashboardIcon,{name:r.currentThemeIconName},null,8,[`name`])]),A(r.AppSelect,{class:`w-24`,label:`主题`,"model-value":n.themePreference,options:n.themeOptions,size:`sm`,"onUpdate:modelValue":t[1]||=e=>r.emit(`setTheme`,e)},null,8,[`model-value`,`options`])])])])}var rt=F(Ue,[[`render`,nt]]),it=`weapp-vite-dashboard-theme`;function at(){if(typeof window>`u`)return`system`;let e=window.localStorage.getItem(it);return e===`light`||e===`dark`||e===`system`?e:`system`}function ot(e,t){return e===`light`||e===`dark`?e:t?.matches?`dark`:`light`}function st(){let t=l(at()),n=typeof window<`u`?window.matchMedia(`(prefers-color-scheme: dark)`):null,r=y(()=>ot(t.value,n)),i=e=>{typeof document<`u`&&(document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=e)},a=e=>{typeof window<`u`&&window.localStorage.setItem(it,e)},o=()=>{i(r.value)};return M(t,e=>{a(e),i(r.value)},{immediate:!0}),e(()=>{n?.addEventListener(`change`,o),i(r.value)}),S(()=>{n?.removeEventListener(`change`,o)}),{themePreference:t,resolvedTheme:r,setThemePreference(e){t.value=e}}}var ct=Symbol(`dashboard-theme`);function lt(e){a(ct,e)}function ut(){return c(ct,null)||st()}var dt=`weapp-vite-dashboard:analyze-result-history`;function ft(e){return e.toLocaleString(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}function pt(e){return e?JSON.stringify({projectName:e.metadata?.projectName,packages:e.packages,modules:e.modules,subPackages:e.subPackages,budgets:e.metadata?.budgets}):``}function R(e,t){let n=e?.metadata?.projectName,r=t?.metadata?.projectName;return!!(n&&r&&n===r)}function mt(e,t){if(!t)return null;if(R(e,t))return t;let n=e.metadata?.projectName;return!n||t.metadata?.projectName||!t.metadata?null:{...t,metadata:{...t.metadata,projectName:n}}}function z(e,t){return pt(e)===pt(t)}function ht(e){return e.packages.flatMap(e=>e.files).reduce((e,t)=>e+(t.size??0),0)}function gt(e){return e.packages.flatMap(e=>e.files).reduce((e,t)=>e+(t.brotliSize??t.gzipSize??Math.round((t.size??0)*.32)),0)}function _t(e,t){let n=ht(e);return`${Date.parse(t).toString(36)}-${n.toString(36)}-${e.modules.length.toString(36)}`}function B(e,t=new Date().toISOString()){let n=e.modules.filter(e=>e.packages.length>1).length;return{id:_t(e,t),capturedAt:t,label:ft(new Date(t)),result:e,totalBytes:ht(e),compressedBytes:gt(e),packageCount:e.packages.length,moduleCount:e.modules.length,duplicateCount:n}}function vt(e){let t=(e.snapshots??[]).filter(t=>R(e.current,t.result));e.previous&&R(e.current,e.previous)&&t.push(B(e.previous)),t.push(B(e.current));let n=new Map;for(let e of t){let t=pt(e.result);n.has(t)||n.set(t,e)}return[...n.values()].sort((e,t)=>Date.parse(t.capturedAt)-Date.parse(e.capturedAt)).slice(0,12)}function yt(){try{let e=window.localStorage.getItem(dt);if(!e)return null;let t=JSON.parse(e);return!t?.current?.packages||!Array.isArray(t.current.packages)?null:{current:t.current,previous:t.previous?.packages?t.previous:null,snapshots:Array.isArray(t.snapshots)?t.snapshots.filter(e=>e?.result?.packages&&Array.isArray(e.result.packages)):void 0,baselineSnapshotId:typeof t.baselineSnapshotId==`string`?t.baselineSnapshotId:null,comparisonMode:t.comparisonMode===`baseline`?`baseline`:`previous`}}catch{return null}}function bt(e){try{window.localStorage.setItem(dt,JSON.stringify(e))}catch{}}function xt(e,t,n){return e?mt(e,t)||(n?.current&&!R(e,n.current)?null:n?.current&&!z(e,n.current)?n.current:n?.previous&&R(e,n.previous)?n.previous:null):null}function V(e){if(!e||Number.isNaN(e))return`—`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=e,i=0;for(;r>=t&&i<n.length-1;)r/=t,i++;return`${r.toFixed(r>=100||i===0?0:2)} ${n[i]}`}function St(e,t=``,n=``){if(!e||Number.isNaN(e)||e<=0)return 0;let r=t.toLowerCase().split(`.`).pop()??``,i=new Set([`cjs`,`css`,`html`,`js`,`json`,`map`,`mjs`,`svg`,`txt`,`wxml`,`wxss`,`xml`]),a=new Set([`avif`,`br`,`gif`,`gz`,`jpeg`,`jpg`,`mp3`,`mp4`,`ogg`,`otf`,`png`,`webp`,`woff`,`woff2`,`zip`]);return i.has(r)?Math.max(1,Math.round(e*.34)):a.has(r)?Math.max(1,Math.round(e*.92)):n===`chunk`?Math.max(1,Math.round(e*.38)):Math.max(1,Math.round(e*.72))}function Ct(e){switch(e){case`main`:return`主包`;case`subPackage`:return`分包`;case`independent`:return`独立分包`;case`virtual`:return`虚拟包`;default:return e}}function wt(e){return e===`independent`?`独立构建`:`主构建`}function Tt(e){let t=e.indexOf(`?`),n=(t===-1?e:e.slice(0,t)).replaceAll(`\\`,`/`).replace(/^\0/,``),r=n.lastIndexOf(`/node_modules/`);if(r>=0)return n.slice(r+14);if(n.startsWith(`node_modules/`))return n.slice(13);let i=n.lastIndexOf(`/packages-runtime/wevu/`);if(i>=0)return`wevu/${n.slice(i+23)}`;let a=n.match(/\/(@[^/]+\/[^/]+)\/(dist\/.*)$/);if(a)return`${a[1]}/${a[2]}`;let o=n.lastIndexOf(`/src/`);return o>=0?n.slice(o+5):n.replace(/^(?:\.\.\/)+/,``)}function Et(e){switch(e){case`src`:return`业务源码`;case`workspace`:return`工作区包`;case`plugin`:return`插件`;case`node_modules`:return`依赖`;default:return e}}function Dt(e){switch(e){case`command`:return`命令`;case`build`:return`构建`;case`diagnostic`:return`诊断`;case`hmr`:return`HMR`;case`system`:return`系统`;default:return e}}function Ot(e){switch(e){case`info`:return`信息`;case`success`:return`成功`;case`warning`:return`警告`;case`error`:return`错误`;default:return e}}function kt(e){return e??`dashboard`}function At(e){return e}function jt(e){return{label:Ot(e.level),tone:At(e.level)}}function Mt(e){return e>0?`error`:`info`}function Nt(e){return{label:e.latestTimestamp?`${e.count} 条`:`错误 ${e.errorCount}`,tone:Mt(e.errorCount)}}function H(e){return typeof e!=`number`||Number.isNaN(e)||e<0?`未记录`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?1:2)} s`:`${e} ms`}function Pt(e){let t=[Dt(e.kind),kt(e.source),e.timestamp];return typeof e.durationMs==`number`&&Number.isFinite(e.durationMs)&&e.durationMs>=0&&t.push(H(e.durationMs)),t.join(` · `)}var Ft=[`command`,`build`,`diagnostic`,`hmr`,`system`],It=[`info`,`success`,`warning`,`error`];function Lt(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function Rt(e){return typeof e==`string`&&Ft.includes(e)?e:`system`}function zt(e){return typeof e==`string`&&It.includes(e)?e:`info`}function U(e,t){return typeof e==`string`&&e.trim()?e:t}function W(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:void 0}function Bt(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`&&e.trim()).map(e=>String(e));return t.length>0?t:void 0}function Vt(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`&&e.trim()).map(e=>String(e));return t.length>0?t:void 0}function Ht(e){if(!Lt(e))return;let t={timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,totalMs:W(e.totalMs),eventId:typeof e.eventId==`string`?e.eventId:void 0,event:typeof e.event==`string`?e.event:void 0,file:typeof e.file==`string`?e.file:void 0,relativeFile:typeof e.relativeFile==`string`?e.relativeFile:void 0,sourceRootFile:typeof e.sourceRootFile==`string`?e.sourceRootFile:void 0,buildCoreMs:W(e.buildCoreMs),transformMs:W(e.transformMs),writeMs:W(e.writeMs),watchToDirtyMs:W(e.watchToDirtyMs),emitMs:W(e.emitMs),sharedChunkResolveMs:W(e.sharedChunkResolveMs),dirtyCount:W(e.dirtyCount),pendingCount:W(e.pendingCount),emittedCount:W(e.emittedCount),dirtyReasonSummary:Vt(e.dirtyReasonSummary),pendingReasonSummary:Vt(e.pendingReasonSummary)};return Object.values(t).some(e=>e!==void 0)?t:void 0}function Ut(e,t){return{id:U(e.id,`dashboard-runtime-event-${t}`),kind:Rt(e.kind),level:zt(e.level),title:U(e.title,`untitled event`),detail:U(e.detail,`no event detail`),timestamp:U(e.timestamp,`—`),source:U(e.source,`dashboard`),durationMs:W(e.durationMs),tags:Bt(e.tags),profile:Ht(e.profile)}}function Wt(e){return{count:1,errorCount:+(e.level===`error`),latestTimestamp:e.timestamp,durationTotal:e.durationMs??0,timedCount:+(typeof e.durationMs==`number`)}}function Gt(e,t){return{count:e.count+1,errorCount:e.errorCount+ +(t.level===`error`),latestTimestamp:e.latestTimestamp,durationTotal:e.durationTotal+(t.durationMs??0),timedCount:e.timedCount+ +(typeof t.durationMs==`number`)}}function Kt(e,t){return{source:e,count:t.count,errorCount:t.errorCount,latestTimestamp:t.latestTimestamp,averageDurationMs:t.timedCount>0?Math.round(t.durationTotal/t.timedCount):void 0}}function qt(e){return{...e,averageDuration:H(e.averageDurationMs)}}function Jt(e,t){return Lt(e)?Ut(e,t):null}function Yt(e){let t=(Array.isArray(e)?e:[e]).map((e,t)=>Jt(e,t)).filter(e=>!!e),n=new Map;for(let e of t)n.set(e.id,e);return[...n.values()]}function Xt(e){let t=new Map;for(let n of e){let e=n.source??`dashboard`,r=t.get(e);if(!r){t.set(e,Wt(n));continue}t.set(e,Gt(r,n))}return Array.from(t,([e,t])=>Kt(e,t)).sort((e,t)=>t.count-e.count||e.source.localeCompare(t.source,`zh-CN`))}function Zt(e){return e.map(e=>qt(e))}var G=new Map,Qt=2;function $t(e,t){return e.characters===t.characters&&e.hash===t.hash&&e.pages===t.pages}function en(e,t){for(G.delete(e.hash),G.set(e.hash,t);G.size>Qt;){let e=G.keys().next().value;if(typeof e!=`string`)break;G.delete(e)}}function tn(e){let t=JSON.parse(e);if(!Array.isArray(t?.packages)||!Array.isArray(t.modules)||!Array.isArray(t.subPackages))throw TypeError(`Devframe 返回了无效的 Analyze 数据。`);return t}async function nn(e,t,n,r){let i=G.get(t.hash);if(i)return en(t,i),i;let a=[],o=0;for(let i=0;i<t.pages;i++){let s=await e.call(`get-analyze-page`,{index:i,revision:r,target:n});if(s.index!==i||s.revision!==r||s.target!==n||!$t(s.descriptor,t))throw Error(`Devframe 返回了不一致的 Analyze 分页。`);a.push(s.content),o+=s.content.length}if(o!==t.characters)throw Error(`Devframe 返回了不完整的 Analyze 分页。`);let s=tn(a.join(``));return en(t,s),s}async function rn(e,t,n){let r=t.previous?await nn(e,t.previous,`previous`,n):null;return{current:await nn(e,t.current,`current`,n),previous:r}}var an=`weapp-vite`,on=`/__weapp-vite/`,sn=[250,500,1e3,2e3,5e3],cn=/Analyze revision|revision.*Dashboard 状态/i,ln=class extends Error{name=`DashboardAuthorizationError`},K=u(null),q=u(null),J=u(null),Y=u(`connecting`),un=u([]),X,Z,dn=0,Q,fn;function pn(e){Y.value=e.status,J.value=e.connectionError}function mn(){Q&&=(clearTimeout(Q),void 0)}function hn(e,t){e.disposed||(e.disposed=!0,e.dispose(),X===e&&(X=void 0),t&&e.client.close?.())}function gn(){if(Q||X)return;let e=sn[Math.min(dn,sn.length-1)];dn+=1,Q=setTimeout(()=>{if(Q=void 0,Y.value=`connecting`,!fn){Y.value=`error`,J.value=Error(`Devframe Dashboard 重连状态机尚未初始化。`);return}fn().catch(()=>{})},e)}function _n(e,t){if(X!==e||e.disposed)return;let n=e.client.status;pn(e.client),t&&(J.value=t instanceof Error?t:Error(String(t))),(n===`disconnected`||n===`error`||n===`unauthorized`)&&(hn(e,!0),n!==`unauthorized`&&gn())}function vn(e,t){X!==e||e.disposed||(Y.value=`error`,J.value=t instanceof Error?t:Error(String(t)),hn(e,!0),gn())}function yn(e){return e instanceof Error&&cn.test(e.message)}async function bn(e,t){if(!e.disposed){if(e.refreshPromise)return e.pendingState=t,await e.refreshPromise;e.pendingState=t,e.refreshPromise=(async()=>{do{let t=e.pendingState;if(e.pendingState=void 0,t??=await e.dashboard.rpc.call(`get-dashboard-state`),un.value=Yt(t.runtimeEvents),t.revision===e.revision&&K.value)continue;let n;try{n=await rn(e.dashboard.rpc,t.analyze,t.revision)}catch(t){if(!yn(t))throw t;e.pendingState=await e.dashboard.rpc.call(`get-dashboard-state`);continue}if(e.disposed)return;if(e.pendingState)continue;e.revision=t.revision;let r=q.value;K.value=n,q.value=t.revision,r===t.revision&&i(q)}while(e.pendingState)})();try{await e.refreshPromise}finally{e.refreshPromise=void 0}}}function xn(e){let t=e.scope(an),n={client:e,dashboard:t,dispose:()=>{},disposed:!1,revision:-1};t.rpc.register({name:`dashboard-state-updated`,type:`event`,handler:e=>{n.disposed||bn(n,e).catch(e=>{vn(n,e)})}});let r=e.events.on(`connection:status`,()=>{if(e.status===`connected`){dn=0,pn(e);return}_n(n,e.connectionError)}),i=e.events.on(`connection:error`,e=>{_n(n,e)});return n.dispose=()=>{r(),i()},n}async function Sn(){let e=await te({baseURL:on,callTimeout:3e4}),t;try{if(!await e.ensureTrusted())throw new ln(`Devframe 未授权当前 Dashboard 连接。`);if(t=xn(e),X=t,pn(e),await bn(t),t.disposed)throw Error(`Devframe Dashboard 连接在初始化期间断开。`);ne(),dn=0}catch(n){let r=e.status===`unauthorized`;throw t?hn(t,!0):e.close?.(),r&&!(n instanceof ln)?new ln(`Devframe 未授权当前 Dashboard 连接。`,{cause:n}):n}}async function Cn(){if(X?.client.status!==`connected`||X.disposed){if(Z)return await Z;mn(),Y.value=`connecting`,Z=Sn();try{await Z}catch(e){let t=e instanceof ln;throw Y.value=t?`unauthorized`:`error`,J.value=e instanceof Error?e:Error(String(e)),t||gn(),J.value}finally{Z=void 0}}}fn=Cn;async function wn(e,t,n){await Cn();let r=X;if(!r||r.disposed||r.client.status!==`connected`)throw Error(`Devframe Dashboard 当前未连接。`);if(r.revision!==n||q.value!==n)throw Error(`Analyze revision 已变化,请刷新当前 Dashboard 状态。`);let i=await r.dashboard.rpc.call(`read-dashboard-file`,{kind:e,path:t,revision:n});if(X!==r||r.disposed||r.client.status!==`connected`)throw Error(`Devframe Dashboard 文件读取期间连接已变化。`);if(r.revision!==n||q.value!==n)throw Error(`Analyze revision 已变化,请刷新当前 Dashboard 状态。`);return i}function $(e,t){return{label:e,value:t}}function Tn(){return new Date().toLocaleTimeString(`zh-CN`,{hour12:!1})}function En(e){if(!e)return{packageCount:0,moduleCount:0,duplicateCount:0,totalBytes:0};let t=e.packages.flatMap(e=>e.files);return{packageCount:e.packages.length,moduleCount:e.modules.length,duplicateCount:e.modules.filter(e=>e.packages.length>1).length,totalBytes:t.reduce((e,t)=>e+(t.size??0),0)}}function Dn(e){let t=e.filter(e=>e.level===`error`).length,n=e.filter(e=>e.level===`warning`).length,r=e.filter(e=>e.kind===`command`).length,i=e.filter(e=>typeof e.durationMs==`number`),a=i.length>0?Math.round(i.reduce((e,t)=>e+(t.durationMs??0),0)/i.length):void 0;return[$(`总事件数`,String(e.length)),$(`命令事件`,String(r)),$(`已记录耗时`,String(i.length)),$(`平均耗时`,H(a)),$(`警告事件`,String(n)),$(`错误事件`,String(t))]}function On(e){return[{label:`页面骨架`,value:`4 个`,iconName:`metric-ready`},{label:`连接状态`,value:e.result?`已接入 payload`:`等待注入`,iconName:e.result?`status-live`:`metric-health`},{label:`数据同步`,value:`${e.updateCount} 次`,iconName:`metric-latency`},{label:`产物体积`,value:e.result?V(e.summary.totalBytes):`未载入`,iconName:`metric-quality`},{label:`运行事件`,value:`${e.runtimeEventCount} 条`,iconName:e.latestRuntimeEvent?.level===`error`?`metric-health`:`metric-time`}]}function kn(e){return e.result?[{label:`重新分析当前工程`,command:`weapp-vite analyze`,note:`最近同步于 ${e.lastUpdatedAt},当前可读取 ${e.summary.packageCount} 个包。`,category:`analyze`},{label:`进入构建联调`,command:`weapp-vite build --ui`,note:`当前产物总体积 ${V(e.summary.totalBytes)},适合继续核对 chunk 结构。`,category:`build`},{label:`观察开发态更新`,command:`weapp-vite dev --ui`,note:`已记录 ${e.updateCount} 次 payload 同步,后续可继续接入更细粒度事件。`,category:`dev`}]:Se}function An(e){let t=[...Ce];for(let n of e.runtimeEvents.slice(0,4))t.unshift({time:n.timestamp,title:n.title,summary:n.detail,tone:n.level===`error`||n.level===`warning`?`default`:`live`});return e.result&&t.unshift({time:e.lastUpdatedAt,title:`workspace payload received`,summary:`已收到一份真实 analyze 结果,包含 ${e.summary.packageCount} 个包和 ${e.summary.moduleCount} 个模块。`,tone:`live`}),t}function jn(e){let t=[...we];return e.latestRuntimeEvent&&t.unshift({label:`最新运行事件`,detail:`${e.latestRuntimeEvent.title} · ${e.latestRuntimeEvent.detail}`,status:e.latestRuntimeEvent.level}),e.result?[{label:`实时分析状态`,detail:`已接入 payload,当前记录 ${e.summary.duplicateCount} 个跨包复用模块。`,status:`在线`},{label:`产物规模`,detail:`总产物体积 ${V(e.summary.totalBytes)},可继续进入分析页查看 treemap 与最大文件。`,status:`可分析`},...t]:[{label:`CLI 注入链路`,detail:`尚未接收到 analyze payload,当前页面以空态方式工作。`,status:`待接入`},...t]}var Mn=Symbol(`dashboard-workspace`);function Nn(){return Yt(un.value)}function Pn(e){let t=y(()=>e.value[0]??null),n=y(()=>Dn(e.value)),r=y(()=>Xt(e.value)),i=M(un,t=>{let n=Yt(t);n.length>0&&(e.value=n.slice(0,24))},{immediate:!0});return S(i),{eventSummary:n,latestRuntimeEvent:t,runtimeSourceSummary:r}}function Fn(){let e=K.value?.current??null,t=K.value?.previous??null,n=yt(),r=u(e),i=u(xt(e,t,n)),a=u(n?vt(n):e?[B(e)]:[]),o=u(n?.baselineSnapshotId&&a.value.some(e=>e.id===n.baselineSnapshotId)?n.baselineSnapshotId:null),s=u(n?.comparisonMode===`baseline`&&o.value?`baseline`:`previous`),c=u(Nn()),l=u(0),d=u(r.value?Tn():`—`);e&&bt({current:e,previous:i.value,snapshots:a.value,baselineSnapshotId:o.value,comparisonMode:s.value});let f=y(()=>En(r.value)),{eventSummary:p,latestRuntimeEvent:m,runtimeSourceSummary:h}=Pn(c),g=y(()=>r.value?`payload ready`:`awaiting payload`),_=y(()=>r.value?`${f.value.packageCount} 个包 · ${f.value.moduleCount} 个模块`:`尚未接收到 CLI analyze 数据`),v=y(()=>a.value.find(e=>e.id===o.value)??null),b=y(()=>s.value===`baseline`?v.value?.result??i.value:i.value),x=y(()=>On({result:r.value,updateCount:l.value,summary:f.value,runtimeEventCount:c.value.length,latestRuntimeEvent:m.value})),C=y(()=>kn({result:r.value,lastUpdatedAt:d.value,summary:f.value,updateCount:l.value})),w=y(()=>An({runtimeEvents:c.value,result:r.value,lastUpdatedAt:d.value,summary:f.value})),T=y(()=>jn({result:r.value,latestRuntimeEvent:m.value,summary:f.value})),E=e=>{let t=e?.current;if(!t)return;let n=mt(t,e.previous),c=!(!r.value||R(t,r.value));c&&(i.value=null,a.value=[],o.value=null,s.value=`previous`);let u=yt(),f=!!(u?.current&&R(t,u.current)),p=f&&u?.previous&&R(t,u.previous)?u.previous:null;f&&u?.current&&!z(t,u.current)&&(p=u.current),!c&&r.value&&R(t,r.value)&&!z(t,r.value)&&(p=r.value),n&&!z(t,n)&&(p=n),i.value=p&&!z(t,p)?p:null,r.value=t;let m=B(t),h=vt({current:t,previous:i.value,snapshots:[m,...a.value.filter(e=>R(t,e.result))]});a.value=h,o.value&&!h.some(e=>e.id===o.value)&&(o.value=null),s.value===`baseline`&&!o.value&&(s.value=`previous`),bt({current:t,previous:i.value,snapshots:a.value,baselineSnapshotId:o.value,comparisonMode:s.value}),l.value+=1,d.value=Tn()},D=()=>{r.value&&bt({current:r.value,previous:i.value,snapshots:a.value,baselineSnapshotId:o.value,comparisonMode:s.value})},O=e=>{a.value.some(t=>t.id===e)&&(o.value=e,s.value=`baseline`,D())},ee=e=>{s.value=e===`baseline`&&!o.value?`previous`:e,D()},k=M(K,E,{immediate:!0});return S(k),{resultRef:r,previousResultRef:i,comparisonResultRef:b,historySnapshots:a,baselineSnapshotId:o,comparisonMode:s,updateCount:l,lastUpdatedAt:d,statusLabel:g,statusSummary:_,commandItems:C,activityItems:w,diagnostics:T,signals:x,runtimeEvents:c,latestRuntimeEvent:m,eventSummary:p,runtimeSourceSummary:h,setBaselineSnapshot:O,setComparisonMode:ee}}function In(e){a(Mn,e)}function Ln(){let e=c(Mn,null);if(!e)throw Error(`[dashboard] workspace context is not available`);return e}var Rn=n({__name:`App`,setup(t,{expose:n}){n();let r=m(),i=l(!1),{themePreference:a,resolvedTheme:o,setThemePreference:s}=st(),c=Fn(),u=y(()=>!!c.resultRef.value),d=y(()=>c.resultRef.value?.metadata?.projectName??`未命名小程序`),f=y(()=>typeof r.query.tab==`string`?r.query.tab:`overview`);lt({themePreference:a,resolvedTheme:o,setThemePreference:s}),In(c);let p=y(()=>r.path.startsWith(`/analyze`)?{title:`构建分析`,description:`包、模块、文件与构建诊断`}:r.path.startsWith(`/activity`)?{title:`运行事件`,description:`Build、HMR、命令和错误`}:r.path.startsWith(`/tokens`)?{title:`设计令牌`,description:`Dashboard 主题与组件状态`}:{title:`概览`,description:`当前构建与运行会话`});M(()=>r.fullPath,()=>{i.value=!1});function h(e){e.key===`Escape`&&(i.value=!1)}e(()=>window.addEventListener(`keydown`,h)),S(()=>window.removeEventListener(`keydown`,h));let g={route:r,mobileNavOpen:i,themePreference:a,resolvedTheme:o,setThemePreference:s,workspace:c,hasPayload:u,projectName:d,currentAnalyzeTab:f,pageMeta:p,closeMobileNavigation:h,get RouterView(){return w},AppNavigationList:ge,AppShellHeader:rt,DashboardIcon:I,get dashboardDevtoolsName(){return be},get workspaceNavigation(){return xe},get themeOptions(){return _e},get dashboardConnectionStatus(){return Y}};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}}),zn={class:`h-dvh overflow-hidden bg-(--dashboard-bg) text-(--dashboard-text)`},Bn={class:`grid h-full min-w-0 lg:grid-cols-[15rem_minmax(0,1fr)]`},Vn={class:`hidden min-h-0 border-r border-(--dashboard-border) bg-(--dashboard-panel) lg:flex lg:flex-col`},Hn={class:`flex h-13 shrink-0 items-center gap-2.5 border-b border-(--dashboard-border) px-3`},Un={class:`flex h-7 w-7 items-center justify-center rounded bg-(--dashboard-accent-soft) text-(--dashboard-accent)`},Wn={class:`h-4 w-4`},Gn={class:`min-w-0`},Kn={class:`block truncate text-[13px] font-semibold`},qn={class:`block truncate font-mono text-[10px] text-(--dashboard-text-soft)`},Jn={class:`min-h-0 flex-1 overflow-y-auto`},Yn={class:`shrink-0 border-t border-(--dashboard-border) px-3 py-2.5`},Xn={class:`flex items-center gap-2 text-[11px]`},Zn={class:`truncate text-(--dashboard-text-muted)`},Qn={class:`mt-1 truncate font-mono text-[10px] text-(--dashboard-text-soft)`},$n={class:`flex min-h-0 min-w-0 flex-col`},er={class:`min-h-0 min-w-0 flex-1 overflow-y-auto p-3 lg:p-4`},tr={key:0,class:`fixed inset-y-0 left-0 z-50 flex w-[min(17rem,88vw)] flex-col border-r border-(--dashboard-border) bg-(--dashboard-panel) shadow-xl lg:hidden`},nr={class:`flex h-13 items-center justify-between border-b border-(--dashboard-border) px-3`},rr={class:`min-w-0`},ir={class:`block truncate text-sm`},ar={class:`block truncate font-mono text-[10px] text-(--dashboard-text-soft)`};function or(e,n,r,i,a,o){return x(),j(`div`,zn,[v(`div`,Bn,[v(`aside`,Vn,[v(`div`,Hn,[v(`span`,Un,[v(`span`,Wn,[A(i.DashboardIcon,{name:`hero-system`})])]),v(`span`,Gn,[v(`strong`,Kn,d(i.dashboardDevtoolsName),1),v(`span`,qn,d(i.projectName),1)])]),v(`div`,Jn,[A(i.AppNavigationList,{"current-analyze-tab":i.currentAnalyzeTab,"current-path":i.route.path,items:i.workspaceNavigation},null,8,[`current-analyze-tab`,`current-path`,`items`])]),v(`div`,Yn,[v(`div`,Xn,[v(`span`,{class:E([`h-1.5 w-1.5 rounded-full`,i.dashboardConnectionStatus===`connected`?`bg-emerald-500`:i.dashboardConnectionStatus===`error`?`bg-red-500`:`bg-amber-500`])},null,2),v(`span`,Zn,d(i.dashboardConnectionStatus===`connected`?`${i.dashboardDevtoolsName} connected`:i.dashboardConnectionStatus),1)]),v(`p`,Qn,d(i.workspace.statusSummary.value),1)])]),v(`main`,$n,[A(i.AppShellHeader,{"connection-status":i.dashboardConnectionStatus,"has-payload":i.hasPayload,"package-count":i.workspace.resultRef.value?.packages.length??0,title:i.pageMeta.title,description:i.pageMeta.description,"theme-options":i.themeOptions,"theme-preference":i.themePreference,onMenu:n[0]||=e=>i.mobileNavOpen=!0,onSetTheme:i.setThemePreference},null,8,[`connection-status`,`has-payload`,`package-count`,`title`,`description`,`theme-options`,`theme-preference`,`onSetTheme`]),v(`div`,er,[A(i.RouterView)])])]),A(O,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0`,"enter-to-class":`opacity-100`,"leave-active-class":`transition duration-100 ease-in`,"leave-from-class":`opacity-100`,"leave-to-class":`opacity-0`},{default:t(()=>[i.mobileNavOpen?(x(),j(`div`,{key:0,class:`fixed inset-0 z-40 bg-slate-950/45 lg:hidden`,onClick:n[1]||=e=>i.mobileNavOpen=!1})):k(``,!0)]),_:1}),A(O,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`-translate-x-4`,"enter-to-class":`translate-x-0`,"leave-active-class":`transition duration-100 ease-in`,"leave-from-class":`translate-x-0`,"leave-to-class":`-translate-x-4`},{default:t(()=>[i.mobileNavOpen?(x(),j(`aside`,tr,[v(`div`,nr,[v(`span`,rr,[v(`strong`,ir,d(i.dashboardDevtoolsName),1),v(`span`,ar,d(i.projectName),1)]),v(`button`,{class:`h-8 w-8 rounded border border-(--dashboard-border)`,type:`button`,"aria-label":`关闭导航`,onClick:n[2]||=e=>i.mobileNavOpen=!1},` × `)]),A(i.AppNavigationList,{mobile:``,"current-analyze-tab":i.currentAnalyzeTab,"current-path":i.route.path,items:i.workspaceNavigation,onNavigate:n[3]||=e=>i.mobileNavOpen=!1},null,8,[`current-analyze-tab`,`current-path`,`items`])])):k(``,!0)]),_:1})])}var sr=F(Rn,[[`render`,or]]),cr=D({history:b(new URL(`.`,document.baseURI).pathname),routes:[{path:`/`,name:`/`,component:()=>P(()=>import(`./pages.js`),[],import.meta.url)},{path:`/activity`,name:`/activity`,component:()=>P(()=>import(`./activity.js`),__vite__mapDeps([0]),import.meta.url)},{path:`/analyze`,name:`/analyze`,component:()=>P(()=>import(`./analyze.js`),__vite__mapDeps([0,1]),import.meta.url)},{path:`/tokens`,name:`/tokens`,component:()=>P(()=>import(`./tokens.js`),__vite__mapDeps([0]),import.meta.url)}]});async function lr(){let e=g(sr);e.config.errorHandler=(e,t,n)=>{},e.use(cr),await cr.isReady(),e.mount(`#app`);try{await Cn()}catch{}}lr().catch(e=>{});export{_e as C,ie as D,F as E,Te as S,I as T,Ot as _,wn as a,ut as b,jt as c,wt as d,V as f,Dt as g,Ct as h,Y as i,Nt as l,Tt as m,q as n,Zt as o,H as p,J as r,Xt as s,Ln as t,St as u,Pt as v,ye as w,He as x,Et as y};
|
package/dist/assets/pages.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{B as e,C as t,G as n,H as r,J as i,N as a,R as o,S as s,_ as c,g as l,h as u,j as d,k as f,l as p,p as m,t as h,u as g,v as _,x as v,y,z as b}from"./vue.js";import{O as x,_ as S,c as ee,f as te,h as C,k as w,t as ne,x as T}from"./index.js";import{n as E,t as D}from"./AppEmptyState.js";import{t as O}from"./AppRuntimeBadge.js";import{t as k}from"./AppMetricTile.js";import{t as A}from"./AppInsetPanel.js";import{n as j,t as M}from"./AppSectionHeading.js";var N=t({__name:`WorkspaceActivityTimeline`,props:{items:{},checklist:{}},setup(e,{expose:t}){t();let n=e,i=r(``),a=r(`all`),o=[{value:`all`,label:`全部动态`},{value:`live`,label:`实时`},{value:`default`,label:`记录`}],s=u(()=>{let e=i.value.trim().toLowerCase();return n.items.filter(t=>a.value!==`all`&&t.tone!==a.value?!1:!e||[t.time,t.title,t.summary,t.tone].join(` `).toLowerCase().includes(e))}),c={props:n,searchQuery:i,toneFilter:a,toneOptions:o,filteredItems:s,activitySummary:u(()=>{let e=a.value===`all`?`全部`:a.value===`live`?`实时`:`记录`;return`匹配 ${s.value.length} / ${n.items.length} 条 · ${e}`}),AppEmptyState:D,AppRuntimeBadge:O};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),P={class:`grid h-full min-h-0 gap-3 lg:grid-cols-[minmax(0,1fr)_minmax(13rem,0.58fr)]`},F={class:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden`},I={class:`grid gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},L={class:`grid gap-2 md:grid-cols-[minmax(0,1fr)_9.5rem]`},R={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},z={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},B=[`value`],V={class:`text-xs text-(--dashboard-text-soft)`},H={key:1,class:`grid min-h-0 gap-2 overflow-y-auto pr-1`},U={class:`flex items-start justify-between gap-3`},W={class:`min-w-0`},G={class:`text-[11px] uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},K={class:`mt-1 truncate font-medium`},q={class:`mt-2 text-sm leading-6 text-(--dashboard-text-muted)`},J={class:`grid min-h-0 content-start gap-2 overflow-y-auto rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},Y={class:`grid gap-2 text-sm leading-6 text-(--dashboard-text-muted)`};function X(t,n,r,o,u,f){return d(),y(`div`,P,[l(`div`,F,[l(`div`,I,[l(`div`,L,[l(`label`,R,[n[2]||=v(` 搜索动态 `,-1),e(l(`input`,{"onUpdate:modelValue":n[0]||=e=>o.searchQuery=e,type:`text`,placeholder:`搜索标题、摘要或时间`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},null,512),[[g,o.searchQuery]])]),l(`label`,z,[n[3]||=v(` 状态 `,-1),e(l(`select`,{"onUpdate:modelValue":n[1]||=e=>o.toneFilter=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-2.5 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},[(d(),y(m,null,a(o.toneOptions,e=>l(`option`,{key:e.value,value:e.value},i(e.label),9,B)),64))],512),[[p,o.toneFilter]])])]),l(`p`,V,i(o.activitySummary),1)]),o.filteredItems.length===0?(d(),c(o.AppEmptyState,{key:0,compact:``},{default:b(()=>[...n[4]||=[v(` 当前筛选条件下没有匹配动态。 `,-1)]]),_:1})):(d(),y(`ol`,H,[(d(!0),y(m,null,a(o.filteredItems,e=>(d(),y(`li`,{key:`${e.time}-${e.title}`,class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},[l(`div`,U,[l(`div`,W,[l(`p`,G,i(e.time),1),l(`h3`,K,i(e.title),1)]),s(o.AppRuntimeBadge,{label:e.tone===`live`?`实时`:`记录`,tone:e.tone===`live`?`success`:`neutral`},null,8,[`label`,`tone`])]),l(`p`,q,i(e.summary),1)]))),128))]))]),l(`aside`,J,[n[5]||=l(`div`,null,[l(`p`,{class:`text-[11px] uppercase tracking-[0.2em] text-(--dashboard-accent)`},` Checklist `),l(`h3`,{class:`mt-1 font-semibold`},` 发布检查 `)],-1),l(`ul`,Y,[(d(!0),y(m,null,a(r.checklist,e=>(d(),y(`li`,{key:e,class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 py-2`},i(e),1))),128))])])])}var Z=w(N,[[`render`,X]]),Q={dev:`开发`,build:`构建`,analyze:`分析`},re={dev:`info`,build:`success`,analyze:`warning`},ie=[{value:`all`,label:`全部命令`},{value:`dev`,label:Q.dev},{value:`build`,label:Q.build},{value:`analyze`,label:Q.analyze}];function ae(e){let t=r(``),n=r(`all`),i=r(null),a=r(null),s=r(null),c=null,l=u(()=>{let r=t.value.trim().toLowerCase();return e.commands.filter(e=>n.value!==`all`&&e.category!==n.value?!1:!r||[e.label,e.command,e.note,Q[e.category]].join(` `).toLowerCase().includes(r))}),d=u(()=>l.value.find(e=>e.command===i.value)??l.value[0]??null),p=u(()=>{let t=e.commands.length;return`匹配 ${l.value.length} / ${t} 条 · ${n.value===`all`?`全部`:Q[n.value]}`});function m(){a.value=null,s.value=null}function h(){c&&clearTimeout(c),c=setTimeout(()=>{m(),c=null},1800)}async function g(e){try{await E(e),a.value=e,s.value=null}catch{a.value=null,s.value=e}h()}return o(l,e=>{e.some(e=>e.command===i.value)||(i.value=e[0]?.command??null)},{immediate:!0}),f(()=>{c&&clearTimeout(c)}),{categoryFilter:n,categoryLabels:Q,categoryOptions:ie,categoryTones:re,commandSummary:p,copiedCommand:a,copyCommand:g,failedCommand:s,filteredCommands:l,searchQuery:t,selectedCommand:d,selectedCommandValue:i}}var oe=t({__name:`WorkspaceCommandCenter`,props:{commands:{}},setup(e,{expose:t}){t();let n=e,{categoryFilter:r,categoryLabels:i,categoryOptions:a,categoryTones:o,commandSummary:s,copiedCommand:c,copyCommand:l,failedCommand:u,filteredCommands:d,searchQuery:f,selectedCommand:p,selectedCommandValue:m}=ae(n),h={props:n,categoryFilter:r,categoryLabels:i,categoryOptions:a,categoryTones:o,commandSummary:s,copiedCommand:c,copyCommand:l,failedCommand:u,filteredCommands:d,searchQuery:f,selectedCommand:p,selectedCommandValue:m,AppEmptyState:D,AppRuntimeBadge:O,DashboardIcon:x};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),se={class:`grid h-full min-h-0 gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(15rem,0.72fr)]`},ce={class:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden`},le={class:`grid gap-3 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},ue={class:`grid gap-2 md:grid-cols-[minmax(0,1fr)_11rem]`},de={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},fe={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},pe=[`value`],me={class:`text-xs text-(--dashboard-text-soft)`},he={key:1,class:`grid min-h-0 gap-2 overflow-y-auto pr-1`},ge={class:`flex flex-col gap-3 md:flex-row md:items-center md:justify-between`},_e=[`onClick`],ve={class:`flex flex-wrap items-center gap-2`},ye={class:`font-medium text-(--dashboard-text)`},be={class:`mt-1 block text-sm leading-6 text-(--dashboard-text-muted)`},xe=[`aria-label`,`title`,`onClick`],Se={class:`h-4.5 w-4.5`},Ce={class:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-4`},we={class:`flex items-start justify-between gap-3`},Te={key:1,class:`grid min-h-0 content-start gap-3 overflow-y-auto`},Ee={class:`font-medium`},De={class:`mt-1 text-sm leading-6 text-(--dashboard-text-muted)`},Oe={class:`block overflow-x-auto rounded-md bg-slate-950 px-3 py-3 font-mono text-xs leading-6 text-slate-100 dark:bg-slate-900`},ke={class:`h-4.5 w-4.5`};function Ae(t,r,o,u,f,h){return d(),y(`div`,se,[l(`div`,ce,[l(`div`,le,[l(`div`,ue,[l(`label`,de,[r[3]||=v(` 搜索命令 `,-1),e(l(`input`,{"onUpdate:modelValue":r[0]||=e=>u.searchQuery=e,type:`text`,placeholder:`搜索名称、命令或说明`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},null,512),[[g,u.searchQuery]])]),l(`label`,fe,[r[4]||=v(` 分类 `,-1),e(l(`select`,{"onUpdate:modelValue":r[1]||=e=>u.categoryFilter=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-2.5 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},[(d(!0),y(m,null,a(u.categoryOptions,e=>(d(),y(`option`,{key:e.value,value:e.value},i(e.label),9,pe))),128))],512),[[p,u.categoryFilter]])])]),l(`p`,me,i(u.commandSummary),1)]),u.filteredCommands.length===0?(d(),c(u.AppEmptyState,{key:0,compact:``},{default:b(()=>[...r[5]||=[v(` 当前筛选条件下没有匹配命令。 `,-1)]]),_:1})):(d(),y(`div`,he,[(d(!0),y(m,null,a(u.filteredCommands,e=>(d(),y(`article`,{key:e.command,class:n([`rounded-md border bg-(--dashboard-panel-muted) p-3 transition`,u.selectedCommand?.command===e.command?`border-(--dashboard-border-strong) bg-(--dashboard-panel)`:`border-(--dashboard-border)`])},[l(`div`,ge,[l(`button`,{type:`button`,class:`min-w-0 text-left focus:outline-none`,onClick:t=>u.selectedCommandValue=e.command},[l(`span`,ve,[l(`span`,ye,i(e.label),1),s(u.AppRuntimeBadge,{label:u.categoryLabels[e.category],tone:u.categoryTones[e.category]},null,8,[`label`,`tone`])]),l(`span`,be,i(e.note),1)],8,_e),l(`button`,{class:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,type:`button`,"aria-label":`复制命令 ${e.command}`,title:u.copiedCommand===e.command?`已复制`:u.failedCommand===e.command?`复制失败`:`复制命令`,onClick:t=>u.copyCommand(e.command)},[l(`span`,Se,[s(u.DashboardIcon,{name:`metric-copy`})])],8,xe)])],2))),128))]))]),l(`aside`,Ce,[l(`div`,we,[r[6]||=l(`div`,null,[l(`p`,{class:`text-[11px] uppercase tracking-[0.2em] text-(--dashboard-accent)`},` Selected `),l(`h3`,{class:`mt-1 text-base font-semibold`},` 当前命令 `)],-1),u.selectedCommand?(d(),c(u.AppRuntimeBadge,{key:0,label:u.categoryLabels[u.selectedCommand.category],tone:u.categoryTones[u.selectedCommand.category]},null,8,[`label`,`tone`])):_(``,!0)]),u.selectedCommand?(d(),y(`div`,Te,[l(`div`,null,[l(`h4`,Ee,i(u.selectedCommand.label),1),l(`p`,De,i(u.selectedCommand.note),1)]),l(`code`,Oe,i(u.selectedCommand.command),1),l(`button`,{type:`button`,class:`inline-flex h-9 w-full items-center justify-center gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm font-medium text-(--dashboard-text) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:r[2]||=e=>u.copyCommand(u.selectedCommand.command)},[l(`span`,ke,[s(u.DashboardIcon,{name:`metric-copy`})]),v(` `+i(u.copiedCommand===u.selectedCommand.command?`已复制`:u.failedCommand===u.selectedCommand.command?`复制失败`:`复制命令`),1)])])):(d(),c(u.AppEmptyState,{key:0,compact:``},{default:b(()=>[...r[7]||=[v(` 选择左侧命令后查看复制内容。 `,-1)]]),_:1}))])])}var je=w(oe,[[`render`,Ae]]),Me=t({__name:`WorkspaceReadinessPanel`,props:{summary:{}},setup(e,{expose:t}){t();let n=e,i=r(``),a=null,o=u(()=>n.summary.status===`attention`?`warning`:n.summary.status===`pending`?`info`:`success`);function s(e){return e===`attention`?`border-amber-400/60 bg-(--dashboard-panel-muted)`:e===`pending`?`border-(--dashboard-border-strong) bg-(--dashboard-panel-muted)`:`border-emerald-400/60 bg-(--dashboard-panel-muted)`}function c(e){i.value=e,a&&clearTimeout(a),a=setTimeout(()=>{i.value=``,a=null},1800)}async function l(){try{await E(n.summary.report),c(`摘要已复制`)}catch{c(`复制失败`)}}f(()=>{a&&clearTimeout(a)});let d={props:n,copyStatus:i,get copyStatusTimer(){return a},set copyStatusTimer(e){a=e},badgeTone:o,getStatusClassName:s,setCopyStatus:c,copyReadinessReport:l,get RouterLink(){return h},AppMetricTile:k,AppRuntimeBadge:O,AppSurfaceCard:T,DashboardIcon:x};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),Ne={class:`flex shrink-0 items-center gap-2`},Pe={key:0,class:`text-xs font-medium text-(--dashboard-accent)`},Fe={class:`h-3.5 w-3.5`},Ie={class:`grid gap-3`},Le={class:`flex items-start justify-between gap-3`},Re={class:`min-w-0`},ze={class:`text-sm font-semibold text-(--dashboard-text)`},Be={class:`mt-1 text-xs leading-5 text-(--dashboard-text-muted)`},Ve={class:`grid grid-cols-2 gap-2 2xl:grid-cols-3`},He={class:`grid gap-2 sm:grid-cols-2`},Ue={class:`flex items-start justify-between gap-3`},We={class:`min-w-0`},Ge={class:`text-sm font-medium text-(--dashboard-text)`},Ke={class:`mt-1 line-clamp-2 text-xs leading-5 text-(--dashboard-text-muted)`},qe={class:`shrink-0 text-xs font-semibold text-(--dashboard-accent)`},Je={key:0,class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 py-2.5`},Ye={class:`mt-2 flex items-start justify-between gap-3`},Xe={class:`min-w-0`},Ze={class:`truncate text-sm font-medium text-(--dashboard-text)`},Qe={class:`mt-1 truncate text-xs text-(--dashboard-text-soft)`},$e={class:`h-4 w-4 shrink-0 text-(--dashboard-accent)`};function et(e,t,r,o,u,f){return d(),c(o.AppSurfaceCard,{eyebrow:`Readiness`,title:`工作区摘要`,"icon-name":`metric-ready`},{header:b(()=>[l(`div`,Ne,[o.copyStatus?(d(),y(`span`,Pe,i(o.copyStatus),1)):_(``,!0),l(`button`,{type:`button`,class:`inline-flex h-8 items-center gap-1.5 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 text-xs text-(--dashboard-text-soft) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:o.copyReadinessReport},[l(`span`,Fe,[s(o.DashboardIcon,{name:`metric-copy`})]),t[0]||=v(` 复制 `,-1)])])]),default:b(()=>[l(`div`,Ie,[l(`div`,{class:n([`rounded-md border px-3 py-2.5`,o.getStatusClassName(r.summary.status)])},[l(`div`,Le,[l(`div`,Re,[l(`p`,ze,i(r.summary.statusLabel),1),l(`p`,Be,i(r.summary.statusDetail),1)]),s(o.AppRuntimeBadge,{label:r.summary.statusLabel,tone:o.badgeTone},null,8,[`label`,`tone`])])],2),l(`div`,Ve,[(d(!0),y(m,null,a(r.summary.metrics,e=>(d(),c(o.AppMetricTile,{key:e.label,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),l(`div`,He,[(d(!0),y(m,null,a(r.summary.actions,e=>(d(),c(o.RouterLink,{key:e.id,to:e.to,class:`rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) px-3 py-2.5 transition hover:border-(--dashboard-border-strong) hover:bg-(--dashboard-panel)`},{default:b(()=>[l(`div`,Ue,[l(`div`,We,[l(`p`,Ge,i(e.title),1),l(`p`,Ke,i(e.detail),1)]),l(`span`,qe,i(e.label),1)])]),_:2},1032,[`to`]))),128))]),r.summary.latestEvent?(d(),y(`div`,Je,[t[1]||=l(`p`,{class:`text-[11px] uppercase tracking-[0.2em] text-(--dashboard-accent)`},` Latest Event `,-1),l(`div`,Ye,[l(`div`,Xe,[l(`p`,Ze,i(r.summary.latestEvent.title),1),l(`p`,Qe,i(r.summary.latestEvent.timestamp)+` · `+i(r.summary.latestEvent.levelLabel),1)]),l(`span`,$e,[s(o.DashboardIcon,{name:`metric-time`})])])])):_(``,!0)])]),_:1})}var tt=w(Me,[[`render`,et]]);function nt(e){return e?.packages.flatMap(e=>e.files).reduce((e,t)=>e+(t.size??0),0)??0}function rt(e){return e?.modules.filter(e=>e.packages.length>1).length??0}function it(e){return e.filter(e=>e.level===`warning`).length}function at(e){return e.filter(e=>e.level===`error`).length}function ot(e){return e.result?e.errorCount>0||e.warningCount>0?`attention`:`ready`:`pending`}function st(e){return e===`pending`?`等待分析数据`:e===`attention`?`需要跟进`:`可以继续分析`}function ct(e){return e.status===`pending`?`当前还没有 CLI 注入的 analyze payload,可以先运行分析命令。`:e.status===`attention`?`已载入 ${e.packageCount} 个包,事件流包含 ${e.errorCount} 个错误和 ${e.warningCount} 个警告。`:`已载入 ${e.packageCount} 个包与 ${e.moduleCount} 个模块,当前事件流没有错误或警告。`}function lt(e){return e===`pending`?[{id:`run-analyze`,title:`先运行分析命令`,detail:`从右侧命令中心复制 analyze 命令,获取真实包体数据。`,to:`/`,label:`查看命令`},{id:`inspect-activity`,title:`检查事件链路`,detail:`确认 CLI 注入和 runtime event 是否按预期进入 dashboard。`,to:`/activity`,label:`活动流`}]:e===`attention`?[{id:`open-activity`,title:`先处理异常事件`,detail:`进入活动流查看错误、警告和慢事件摘要。`,to:`/activity`,label:`看事件`},{id:`open-review`,title:`整理 PR 风险`,detail:`进入评审页复制风险清单,和代码改动一起处理。`,to:`/analyze?tab=review`,label:`评审清单`}]:[{id:`open-overview`,title:`查看全局摘要`,detail:`进入分析视图核对包体、预算和历史趋势。`,to:`/analyze`,label:`分析视图`},{id:`open-source`,title:`对比源码产物`,detail:`继续检查源码模块与最终产物之间的体积差异。`,to:`/analyze?tab=source`,label:`源码对比`}]}function ut(e){let t=e[0];if(t)return{title:t.title,detail:t.detail,levelLabel:te(t.level),timestamp:t.timestamp}}function dt(e){return[`# dashboard 工作区摘要`,``,`状态:${e.statusLabel}`,`说明:${e.statusDetail}`,``,`## 指标`,...e.metrics.map(e=>`- ${e.label}:${e.value}`),``,`## 建议动作`,...e.actions.map(e=>`- ${e.title}:${e.detail}`),``,`## 最新事件`,e.latestEvent?`- [${e.latestEvent.levelLabel}] ${e.latestEvent.title}(${e.latestEvent.timestamp}):${e.latestEvent.detail}`:`- 暂无运行事件`,``].join(`
|
|
2
|
-
`)}function ft(e){let t=e.result?.packages.length??0,n=e.result?.modules.length??0,r=rt(e.result),i=nt(e.result),a=it(e.runtimeEvents),o=at(e.runtimeEvents),s=ot({result:e.result,errorCount:o,warningCount:a}),c={status:s,statusLabel:st(s),statusDetail:ct({status:s,packageCount:t,moduleCount:n,errorCount:o,warningCount:a}),metrics:[{label:`包数量`,value:t},{label:`模块数`,value:n},{label:`重复模块`,value:r},{label:`产物体积`,value:e.result?ee(i):`未载入`},{label:`同步次数`,value:e.updateCount},{label:`诊断项`,value:e.diagnostics.length}],actions:lt(s),latestEvent:ut(e.runtimeEvents)};return{...c,report:dt(c)}}var $=t({__name:`index`,setup(e,{expose:t}){t();let{activityItems:n,commandItems:r,diagnostics:i,lastUpdatedAt:a,resultRef:o,runtimeEvents:s,signals:c,updateCount:l}=ne(),d={activityItems:n,commandItems:r,diagnostics:i,lastUpdatedAt:a,resultRef:o,runtimeEvents:s,signals:c,updateCount:l,readinessSummary:u(()=>ft({result:o.value,runtimeEvents:s.value,diagnostics:i.value,updateCount:l.value,lastUpdatedAt:a.value})),get RouterLink(){return h},AppIconFeatureCard:j,AppInsetPanel:A,AppSectionHeading:M,AppSurfaceCard:T,DashboardIcon:x,WorkspaceActivityTimeline:Z,WorkspaceCommandCenter:je,WorkspaceReadinessPanel:tt,get releaseChecklist(){return C},get workspaceNavigation(){return S}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),pt={class:`grid min-h-[calc(100dvh-8rem)] items-start gap-3 xl:grid-cols-[minmax(0,1.12fr)_minmax(24rem,0.72fr)] xl:items-stretch`},mt={class:`grid h-full min-h-0 grid-rows-[auto_auto_minmax(0,1fr)] gap-3 overflow-hidden`},ht={class:`grid gap-2 text-sm md:grid-cols-2`},gt={class:`inline-flex min-w-0 items-center gap-2`},_t={class:`h-4.5 w-4.5 shrink-0 text-(--dashboard-accent)`},vt={class:`truncate`},yt={class:`shrink-0 text-(--dashboard-text)`},bt={class:`grid gap-3 sm:grid-cols-2 2xl:grid-cols-4`},xt={class:`grid min-h-[46rem] grid-rows-[auto_minmax(34rem,1fr)] gap-3`},St={class:`mt-4 h-full min-h-0`};function Ct(e,t,n,r,o,u){return d(),y(`div`,pt,[s(r.AppSurfaceCard,{eyebrow:`Status`,title:`当前工作区`,"icon-name":`status-live`,tone:`strong`,padding:`md`,"content-class":`min-h-[46rem]`},{default:b(()=>[l(`div`,mt,[s(r.AppInsetPanel,null,{default:b(()=>[l(`ul`,ht,[(d(!0),y(m,null,a(r.signals,e=>(d(),y(`li`,{key:e.label,class:`flex items-center justify-between gap-3 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 py-3`},[l(`span`,gt,[l(`span`,_t,[s(r.DashboardIcon,{name:e.iconName},null,8,[`name`])]),l(`span`,vt,i(e.label),1)]),l(`strong`,yt,i(e.value),1)]))),128))])]),_:1}),l(`div`,bt,[(d(!0),y(m,null,a(r.workspaceNavigation,e=>(d(),c(r.RouterLink,{key:e.to,to:e.to},{default:b(()=>[s(r.AppIconFeatureCard,{"icon-name":e.iconName,title:e.label,interactive:``},null,8,[`icon-name`,`title`])]),_:2},1032,[`to`]))),128))]),s(r.WorkspaceActivityTimeline,{items:r.activityItems,checklist:r.releaseChecklist},null,8,[`items`,`checklist`])])]),_:1}),l(`section`,xt,[s(r.WorkspaceReadinessPanel,{summary:r.readinessSummary},null,8,[`summary`]),s(r.AppSurfaceCard,{tone:`default`,padding:`md`,"content-class":`min-h-0 overflow-hidden`},{default:b(()=>[s(r.AppSectionHeading,{eyebrow:`Commands`,title:`常用操作`}),l(`div`,St,[s(r.WorkspaceCommandCenter,{commands:r.commandItems},null,8,[`commands`])])]),_:1})])])}var wt=w($,[[`render`,Ct]]);export{wt as default};
|
|
1
|
+
import{B as e,C as t,N as n,X as r,_ as i,b as a,g as o,h as s,j as c,p as l,q as u,t as d,v as f,x as p,y as m}from"./vue.js";import{D as ee,E as h,f as g,i as _,r as v,t as y}from"./index.js";var b=t({__name:`DevtoolsMetricStrip`,props:{items:{}},setup(e,{expose:t}){t();let n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),x={class:`grid overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) sm:grid-cols-2 xl:grid-cols-4`},S={class:`text-[11px] font-medium uppercase tracking-[0.12em] text-(--dashboard-text-soft)`},C={class:`mt-1 truncate font-mono text-lg font-semibold tracking-tight text-(--dashboard-text)`},w={class:`mt-0.5 truncate text-xs text-(--dashboard-text-muted)`};function T(e,t,i,a,s,d){return c(),m(`dl`,x,[(c(!0),m(l,null,n(i.items,(e,t)=>(c(),m(`div`,{key:e.label,class:u([`min-w-0 px-4 py-3`,t>0?`border-t border-(--dashboard-border) sm:border-t-0 sm:border-l`:``])},[o(`dt`,S,r(e.label),1),o(`dd`,C,r(e.value),1),o(`p`,w,r(e.detail),1)],2))),128))])}var E=h(b,[[`render`,T]]),D=t({__name:`DevtoolsPackageList`,props:{rows:{}},setup(e,{expose:t}){t();let n={get RouterLink(){return d}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),O={class:`min-w-0 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel)`},k={class:`flex min-h-11 min-w-0 items-center justify-between gap-2 border-b border-(--dashboard-border) px-3.5 py-2`},A={class:`flex shrink-0 items-center gap-3`},j={key:0,class:`divide-y divide-(--dashboard-border)`},M={class:`min-w-0`},N={class:`block truncate font-medium text-(--dashboard-text)`},P={class:`mt-0.5 block truncate font-mono text-[11px] text-(--dashboard-text-soft)`},F={class:`text-right font-mono text-xs text-(--dashboard-text)`},I={class:`hidden text-right text-xs text-(--dashboard-text-soft) sm:block`},L={key:1,class:`px-4 py-10 text-center`};function R(t,s,u,d,f,ee){return c(),m(`section`,O,[o(`header`,k,[s[2]||=o(`div`,{class:`min-w-0`},[o(`h2`,{class:`text-sm font-semibold text-(--dashboard-text)`},` Packages `),o(`p`,{class:`truncate text-[11px] text-(--dashboard-text-soft)`},` 当前构建产物按体积排序 `)],-1),o(`div`,A,[p(d.RouterLink,{class:`text-xs font-medium text-(--dashboard-accent) hover:underline`,to:`/analyze?tab=graph`},{default:e(()=>[...s[0]||=[a(` 依赖图 `,-1)]]),_:1}),p(d.RouterLink,{class:`text-xs font-medium text-(--dashboard-accent) hover:underline`,to:`/analyze?tab=packages`},{default:e(()=>[...s[1]||=[a(` 查看全部 `,-1)]]),_:1})])]),u.rows.length?(c(),m(`div`,j,[(c(!0),m(l,null,n(u.rows,t=>(c(),i(d.RouterLink,{key:t.id,class:`grid grid-cols-[minmax(0,1fr)_5rem] items-center gap-2 px-3.5 py-2.5 text-sm transition hover:bg-(--dashboard-panel-muted) sm:grid-cols-[minmax(0,1fr)_5.5rem_4rem] sm:gap-3`,to:`/analyze?tab=packages`},{default:e(()=>[o(`span`,M,[o(`span`,N,r(t.label),1),o(`span`,P,r(t.id)+` · `+r(t.type),1)]),o(`span`,F,r(t.size),1),o(`span`,I,r(t.fileCount)+` files`,1)]),_:2},1024))),128))])):(c(),m(`div`,L,[...s[3]||=[o(`p`,{class:`text-sm font-medium text-(--dashboard-text)`},` 等待构建数据 `,-1),o(`p`,{class:`mt-1 text-xs text-(--dashboard-text-soft)`},` Devframe 连接后将在这里显示主包和分包。 `,-1)]]))])}var z=h(D,[[`render`,R]]),B=t({__name:`DevtoolsRuntimeFeed`,props:{events:{}},setup(e,{expose:t}){t();let n=e;function r(e){return e===`error`?`bg-red-500`:e===`warning`?`bg-amber-500`:e===`success`?`bg-emerald-500`:`bg-sky-500`}let i={props:n,resolveEventTone:r,get RouterLink(){return d},get cn(){return ee}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),V={class:`min-w-0 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel)`},te={class:`flex min-h-11 min-w-0 items-center justify-between gap-2 border-b border-(--dashboard-border) px-3.5 py-2`},H={key:0,class:`divide-y divide-(--dashboard-border)`},U={class:`min-w-0`},W={class:`block truncate text-xs font-medium text-(--dashboard-text)`},G={class:`mt-0.5 block truncate text-[11px] text-(--dashboard-text-soft)`},K={class:`font-mono text-[10px] text-(--dashboard-text-soft)`},q={key:1,class:`px-4 py-10 text-center`};function J(t,i,s,d,f,ee){return c(),m(`section`,V,[o(`header`,te,[i[1]||=o(`div`,{class:`min-w-0`},[o(`h2`,{class:`text-sm font-semibold text-(--dashboard-text)`},` Runtime events `),o(`p`,{class:`truncate text-[11px] text-(--dashboard-text-soft)`},` Build、HMR 与诊断的最新状态 `)],-1),p(d.RouterLink,{class:`shrink-0 text-xs font-medium text-(--dashboard-accent) hover:underline`,to:`/activity`},{default:e(()=>[...i[0]||=[a(` 打开事件流 `,-1)]]),_:1})]),d.props.events.length?(c(),m(`ol`,H,[(c(!0),m(l,null,n(d.props.events.slice(0,8),e=>(c(),m(`li`,{key:e.id,class:`grid grid-cols-[0.5rem_minmax(0,1fr)_auto] items-start gap-2.5 px-3.5 py-2.5`},[o(`span`,{class:u(d.cn(`mt-1.5 h-1.5 w-1.5 rounded-full`,d.resolveEventTone(e.level)))},null,2),o(`span`,U,[o(`span`,W,r(e.title),1),o(`span`,G,r(e.detail),1)]),o(`span`,K,r(e.timestamp),1)]))),128))])):(c(),m(`div`,q,[...i[2]||=[o(`p`,{class:`text-sm font-medium text-(--dashboard-text)`},` 暂无运行事件 `,-1),o(`p`,{class:`mt-1 text-xs text-(--dashboard-text-soft)`},` 构建、HMR 和诊断事件会实时出现在这里。 `,-1)]]))])}var Y=h(B,[[`render`,J]]),X=t({__name:`index`,setup(e,{expose:t}){t();let{lastUpdatedAt:n,resultRef:r,runtimeEvents:i,updateCount:a}=y(),o=s(()=>r.value?.packages.reduce((e,t)=>e+t.files.reduce((e,t)=>e+(t.size??0),0),0)??0),c={lastUpdatedAt:n,resultRef:r,runtimeEvents:i,updateCount:a,totalBytes:o,metricItems:s(()=>[{label:`Session`,value:_.value===`connected`?`Connected`:_.value,detail:r.value?`Analyze payload 已同步`:`等待 Devframe 数据`},{label:`Output`,value:g(o.value),detail:`${r.value?.packages.length??0} packages`},{label:`Modules`,value:String(r.value?.modules.length??0),detail:`${r.value?.subPackages.length??0} subpackages`},{label:`Last update`,value:n.value,detail:`${a.value} syncs`}]),packageRows:s(()=>(r.value?.packages??[]).map(e=>({id:e.id,label:e.label,type:e.type,fileCount:e.files.length,bytes:e.files.reduce((e,t)=>e+(t.size??0),0)})).sort((e,t)=>t.bytes-e.bytes).map(e=>({...e,size:g(e.bytes)}))),blockingEvents:s(()=>i.value.filter(e=>e.level===`error`||e.level===`warning`).slice(0,5)),get RouterLink(){return d},DevtoolsMetricStrip:E,DevtoolsPackageList:z,DevtoolsRuntimeFeed:Y,get dashboardConnectionError(){return v}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),Z={class:`grid gap-3`},Q={class:`grid min-h-0 gap-3 xl:grid-cols-[minmax(0,1.15fr)_minmax(21rem,0.85fr)]`},ne={class:`grid min-h-0 gap-3`},re={class:`overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel)`},ie={class:`flex min-h-11 min-w-0 items-center justify-between gap-2 border-b border-(--dashboard-border) px-3.5 py-2`},ae={key:0,class:`border-b border-(--dashboard-border) bg-red-500/8 px-3.5 py-3`},oe={class:`mt-1 break-words font-mono text-[11px] leading-5 text-(--dashboard-text-muted)`},$={key:1,class:`divide-y divide-(--dashboard-border)`},se={class:`flex items-center justify-between gap-3`},ce={class:`truncate text-xs font-medium text-(--dashboard-text)`},le={class:`font-mono text-[10px] uppercase text-(--dashboard-text-soft)`},ue={class:`mt-1 line-clamp-2 text-[11px] leading-5 text-(--dashboard-text-muted)`},de={key:2,class:`flex items-center gap-2.5 px-3.5 py-5`};function fe(t,i,s,u,d,ee){return c(),m(`div`,Z,[p(u.DevtoolsMetricStrip,{items:u.metricItems},null,8,[`items`]),o(`div`,Q,[o(`div`,ne,[p(u.DevtoolsPackageList,{rows:u.packageRows},null,8,[`rows`]),o(`section`,re,[o(`header`,ie,[i[1]||=o(`div`,{class:`min-w-0`},[o(`h2`,{class:`text-sm font-semibold text-(--dashboard-text)`},` Diagnostics `),o(`p`,{class:`truncate text-[11px] text-(--dashboard-text-soft)`},` 当前会话的阻塞项和恢复入口 `)],-1),p(u.RouterLink,{class:`shrink-0 text-xs font-medium text-(--dashboard-accent) hover:underline`,to:`/analyze?tab=diagnostics`},{default:e(()=>[...i[0]||=[a(` 打开诊断 `,-1)]]),_:1})]),u.dashboardConnectionError?(c(),m(`div`,ae,[i[2]||=o(`p`,{class:`text-xs font-semibold text-red-600 dark:text-red-300`},` Devframe connection error `,-1),o(`p`,oe,r(u.dashboardConnectionError.message),1)])):f(``,!0),u.blockingEvents.length?(c(),m(`ul`,$,[(c(!0),m(l,null,n(u.blockingEvents,e=>(c(),m(`li`,{key:e.id,class:`px-3.5 py-2.5`},[o(`div`,se,[o(`p`,ce,r(e.title),1),o(`span`,le,r(e.level),1)]),o(`p`,ue,r(e.detail),1)]))),128))])):u.dashboardConnectionError?f(``,!0):(c(),m(`div`,de,[...i[3]||=[o(`span`,{class:`h-2 w-2 rounded-full bg-emerald-500`},null,-1),o(`span`,null,[o(`span`,{class:`block text-xs font-medium text-(--dashboard-text)`},`No blocking diagnostics`),o(`span`,{class:`mt-0.5 block text-[11px] text-(--dashboard-text-soft)`},`当前连接、构建和运行事件没有错误或警告。`)],-1)]]))])]),p(u.DevtoolsRuntimeFeed,{events:u.runtimeEvents},null,8,[`events`])])])}var pe=h(X,[[`render`,fe]]);export{pe as default};
|
package/dist/assets/tokens.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,D as n,G as r,H as i,J as a,N as o,R as s,S as c,_ as l,g as u,h as d,j as f,k as p,l as m,p as h,q as g,u as _,v,x as y,y as b,z as x}from"./vue.js";import{O as S,g as ee,k as C,v as w,x as T}from"./index.js";import{n as E,t as D}from"./AppEmptyState.js";import{t as O}from"./AppRuntimeBadge.js";import{n as k,t as A}from"./AppSectionHeading.js";var j=t({__name:`AppSurfaceSampleCard`,props:{label:{},tone:{}},setup(e,{expose:t}){t();function n(e){switch(e){case`strong`:return`border border-(--dashboard-border-strong) bg-(--dashboard-panel-strong) shadow-(--dashboard-shadow)`;case`muted`:return`border border-(--dashboard-border) bg-(--dashboard-panel-muted)`;default:return`border border-(--dashboard-border) bg-(--dashboard-panel)`}}let r={getSurfaceToneClassName:n};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}});function M(e,t,n,i,o,s){return f(),b(`div`,{class:r([`rounded-4.5 p-4`,i.getSurfaceToneClassName(n.tone)])},a(n.label),3)}var N=C(j,[[`render`,M]]);function P(e){let t=i(``),n=i(`all`),r=i(null),a=i(null),o=i(null),c=null,l=d(()=>e.groups.flatMap(e=>e.tokens.map(t=>({...t,key:`${e.title}:${t.name}`,groupTitle:e.title,groupIconName:e.iconName})))),u=d(()=>[{value:`all`,label:`全部分组`},...e.groups.map(e=>({value:e.title,label:e.title}))]),f=d(()=>{let e=t.value.trim().toLowerCase();return l.value.filter(t=>n.value!==`all`&&t.groupTitle!==n.value?!1:!e||[t.name,t.sample,t.groupTitle].join(` `).toLowerCase().includes(e))}),m=d(()=>f.value.find(e=>e.key===r.value)??f.value[0]??null),h=d(()=>{let e=n.value===`all`?`全部`:n.value;return`匹配 ${f.value.length} / ${l.value.length} 个令牌 · ${e}`}),g=d(()=>({background:m.value?.sample??`transparent`}));function _(){a.value=null,o.value=null}function v(){c&&clearTimeout(c),c=setTimeout(()=>{_(),c=null},1800)}async function y(e){try{await E(e),a.value=e,o.value=null}catch{a.value=null,o.value=e}v()}return s(f,e=>{e.some(e=>e.key===r.value)||(r.value=e[0]?.key??null)},{immediate:!0}),p(()=>{c&&clearTimeout(c)}),{copiedToken:a,copyToken:y,failedToken:o,filteredTokens:f,groupFilter:n,groupOptions:u,searchQuery:t,selectedSampleStyle:g,selectedToken:m,selectedTokenKey:r,tokenSummary:h}}var F=t({__name:`TokenInspector`,props:{groups:{}},setup(e,{expose:t}){t();let n=e,{copiedToken:r,copyToken:i,failedToken:a,filteredTokens:o,groupFilter:s,groupOptions:c,searchQuery:l,selectedSampleStyle:u,selectedToken:d,selectedTokenKey:f,tokenSummary:p}=P(n),m={props:n,copiedToken:r,copyToken:i,failedToken:a,filteredTokens:o,groupFilter:s,groupOptions:c,searchQuery:l,selectedSampleStyle:u,selectedToken:d,selectedTokenKey:f,tokenSummary:p,AppEmptyState:D,AppRuntimeBadge:O,DashboardIcon:S};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),I={class:`grid h-full min-h-0 gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(16rem,0.62fr)]`},L={class:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden`},R={class:`grid gap-3 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},z={class:`grid gap-2 md:grid-cols-[minmax(0,1fr)_11rem]`},B={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},V={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},H=[`value`],te={class:`text-xs text-(--dashboard-text-soft)`},U={key:1,class:`grid min-h-0 gap-2 overflow-y-auto pr-1`},W=[`onClick`],G={class:`flex items-center justify-between gap-3`},K={class:`flex min-w-0 items-center gap-2`},q={class:`h-4.5 w-4.5 shrink-0 text-(--dashboard-accent)`},J={class:`truncate text-xs text-(--dashboard-text-soft)`},Y={class:`mt-2 flex items-center justify-between gap-3`},X={class:`truncate text-xs text-(--dashboard-text-muted)`},Z={class:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-hidden rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-4`},Q={class:`flex items-start justify-between gap-3`},ne={key:1,class:`grid min-h-0 content-start gap-3 overflow-y-auto`},re={class:`grid gap-2`},ie={class:`rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-6 text-slate-100 dark:bg-slate-900`},ae={class:`rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-6 text-slate-100 dark:bg-slate-900`},oe={class:`grid gap-2 sm:grid-cols-2 xl:grid-cols-1 2xl:grid-cols-2`};function $(t,n,i,s,d,p){return f(),b(`div`,I,[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,B,[n[4]||=y(` 搜索令牌 `,-1),e(u(`input`,{"onUpdate:modelValue":n[0]||=e=>s.searchQuery=e,type:`text`,placeholder:`搜索变量名、分组或 CSS 值`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},null,512),[[_,s.searchQuery]])]),u(`label`,V,[n[5]||=y(` 分组 `,-1),e(u(`select`,{"onUpdate:modelValue":n[1]||=e=>s.groupFilter=e,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-2.5 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},[(f(!0),b(h,null,o(s.groupOptions,e=>(f(),b(`option`,{key:e.value,value:e.value},a(e.label),9,H))),128))],512),[[m,s.groupFilter]])])]),u(`p`,te,a(s.tokenSummary),1)]),s.filteredTokens.length===0?(f(),l(s.AppEmptyState,{key:0,compact:``},{default:x(()=>[...n[6]||=[y(` 当前筛选条件下没有匹配令牌。 `,-1)]]),_:1})):(f(),b(`div`,U,[(f(!0),b(h,null,o(s.filteredTokens,e=>(f(),b(`button`,{key:e.key,type:`button`,class:r([`rounded-md border bg-(--dashboard-panel-muted) p-3 text-left transition focus:outline-none`,s.selectedToken?.key===e.key?`border-(--dashboard-border-strong) bg-(--dashboard-panel)`:`border-(--dashboard-border)`]),onClick:t=>s.selectedTokenKey=e.key},[u(`span`,G,[u(`span`,K,[u(`span`,q,[c(s.DashboardIcon,{name:e.groupIconName},null,8,[`name`])]),u(`code`,J,a(e.name),1)]),u(`span`,{class:`h-8 w-14 shrink-0 rounded-md border border-(--dashboard-border)`,style:g({background:e.sample})},null,4)]),u(`span`,Y,[c(s.AppRuntimeBadge,{label:e.groupTitle,tone:`info`},null,8,[`label`]),u(`span`,X,a(e.sample),1)])],10,W))),128))]))]),u(`aside`,Z,[u(`div`,Q,[n[7]||=u(`div`,null,[u(`p`,{class:`text-[11px] uppercase tracking-[0.2em] text-(--dashboard-accent)`},` Selected `),u(`h3`,{class:`mt-1 text-base font-semibold`},` 当前令牌 `)],-1),s.selectedToken?(f(),l(s.AppRuntimeBadge,{key:0,label:s.selectedToken.groupTitle,tone:`info`},null,8,[`label`])):v(``,!0)]),s.selectedToken?(f(),b(`div`,ne,[u(`div`,{class:`min-h-28 rounded-md border border-(--dashboard-border) shadow-inner`,style:g(s.selectedSampleStyle)},null,4),u(`div`,re,[u(`code`,ie,a(s.selectedToken.name),1),u(`code`,ae,a(s.selectedToken.sample),1)]),u(`div`,oe,[u(`button`,{type:`button`,class:`inline-flex h-9 items-center justify-center gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm font-medium text-(--dashboard-text) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:n[2]||=e=>s.copyToken(s.selectedToken.name)},` 复制变量名 `),u(`button`,{type:`button`,class:`inline-flex h-9 items-center justify-center gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm font-medium text-(--dashboard-text) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:n[3]||=e=>s.copyToken(s.selectedToken.sample)},a(s.copiedToken===s.selectedToken.sample?`已复制`:s.failedToken===s.selectedToken.sample?`复制失败`:`复制 CSS 值`),1)])])):(f(),l(s.AppEmptyState,{key:0,compact:``},{default:x(()=>[...n[8]||=[y(` 选择左侧令牌后查看 CSS 变量详情。 `,-1)]]),_:1}))])])}var se=C(F,[[`render`,$]]),ce=t({__name:`tokens`,setup(e,{expose:t}){t();let n={surfaceSamples:[{label:`Default surface`,tone:`default`},{label:`Strong surface`,tone:`strong`},{label:`Muted surface`,tone:`muted`}],themeFeatureItems:w.map(e=>({iconName:e.iconName,title:e.label,meta:e.value})),AppIconFeatureCard:k,AppSectionHeading:A,AppSurfaceCard:T,AppSurfaceSampleCard:N,TokenInspector:se,get tokenGroups(){return ee}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),le={class:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)_auto] gap-3 overflow-hidden`},ue={class:`mt-4 grid gap-3 lg:grid-cols-3`},de={class:`grid min-h-0 overflow-hidden`},fe={class:`grid gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]`},pe={class:`grid gap-3 md:grid-cols-3`};function me(e,t,r,i,a,s){return f(),b(`div`,le,[c(i.AppSurfaceCard,{tone:`strong`,padding:`md`},{default:x(()=>[c(i.AppSectionHeading,{eyebrow:`System`,title:`设计令牌`}),u(`div`,ue,[(f(!0),b(h,null,o(i.themeFeatureItems,e=>(f(),l(i.AppIconFeatureCard,n({key:e.meta},{ref_for:!0},e),null,16))),128))])]),_:1}),u(`section`,de,[c(i.AppSurfaceCard,{eyebrow:`Tokens`,title:`令牌检查器`,"icon-name":`token-color`,padding:`md`,"content-class":`min-h-0 overflow-hidden`},{default:x(()=>[c(i.TokenInspector,{groups:i.tokenGroups},null,8,[`groups`])]),_:1})]),u(`section`,fe,[c(i.AppSurfaceCard,{eyebrow:`Components`,title:`标准表面`,"icon-name":`token-surface`},{default:x(()=>[u(`div`,pe,[(f(),b(h,null,o(i.surfaceSamples,e=>c(i.AppSurfaceSampleCard,n({key:e.label},{ref_for:!0},e),null,16)),64))])]),_:1}),c(i.AppSurfaceCard,{eyebrow:`Typography`,title:`文本层级`,"icon-name":`token-type`},{default:x(()=>[...t[0]||=[u(`div`,{class:`space-y-3`},[u(`p`,{class:`text-2xl font-semibold tracking-tight`},` IBM Plex Sans Console `),u(`p`,{class:`text-sm uppercase tracking-[0.24em] text-(--dashboard-text-soft)`},` uppercased meta labels for control surfaces `)],-1)]]),_:1})])])}var he=C(ce,[[`render`,me]]);export{he as default};
|
|
1
|
+
import{B as e,C as t,D as n,N as r,P as i,U as a,V as o,X as s,Y as c,_ as l,b as u,g as d,h as f,j as p,k as m,p as h,q as g,u as _,v,x as y,y as b,z as ee}from"./vue.js";import{C as x,E as S,S as C,T as w,x as T}from"./index.js";import{c as E,i as D,n as O,t as k}from"./AppEmptyState.js";import{t as A}from"./AppRuntimeBadge.js";var j=t({__name:`AppIconFeatureCard`,props:{iconName:{},title:{},description:{},eyebrow:{},interactive:{type:Boolean},meta:{}},setup(e,{expose:t}){t();let n={get mutedPanelStyles(){return D},DashboardIcon:w};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),M={key:0,class:`text-[11px] uppercase tracking-[0.22em] text-(--dashboard-accent)`},N={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-(--dashboard-accent-soft) text-(--dashboard-accent)`},P={class:`h-5 w-5`},F={class:`min-w-0`},I={class:`font-semibold tracking-tight`},L={key:0,class:`mt-1 text-xs uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},R={key:1,class:`mt-2 text-sm leading-6 text-(--dashboard-text-muted)`};function z(e,t,n,r,i,a){return p(),b(`div`,{class:g(r.mutedPanelStyles({interactive:n.interactive}))},[n.eyebrow?(p(),b(`p`,M,s(n.eyebrow),1)):v(``,!0),d(`div`,{class:g(n.eyebrow?`mt-3 flex items-start gap-3`:`flex items-start gap-3`)},[d(`span`,N,[d(`span`,P,[y(r.DashboardIcon,{name:n.iconName},null,8,[`name`])])]),d(`div`,F,[d(`h3`,I,s(n.title),1),n.meta?(p(),b(`p`,L,s(n.meta),1)):v(``,!0),n.description?(p(),b(`p`,R,s(n.description),1)):v(``,!0)])],2)],2)}var B=S(j,[[`render`,z]]),V=t({__name:`AppSectionHeading`,props:{eyebrow:{default:void 0},title:{},description:{default:void 0}},setup(e,{expose:t}){t();let n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),H={class:`flex flex-col gap-2 md:flex-row md:items-end md:justify-between`},U={class:`min-w-0 sm:flex sm:flex-wrap sm:items-baseline sm:gap-x-2.5`},W={key:0,class:`text-[11px] uppercase tracking-[0.28em] text-(--dashboard-accent)`},G={class:`text-xl font-semibold tracking-tight md:text-2xl`},K={key:1,class:`mt-1 w-full text-sm leading-6 text-(--dashboard-text-muted)`};function q(e,t,n,r,a,o){return p(),b(`div`,null,[d(`div`,H,[d(`div`,U,[n.eyebrow?(p(),b(`p`,W,s(n.eyebrow),1)):v(``,!0),d(`h2`,G,s(n.title),1),n.description?(p(),b(`p`,K,s(n.description),1)):v(``,!0)]),i(e.$slots,`aside`)])])}var J=S(V,[[`render`,q]]),Y=t({__name:`AppSurfaceSampleCard`,props:{label:{},tone:{}},setup(e,{expose:t}){t();function n(e){switch(e){case`strong`:return`border border-(--dashboard-border-strong) bg-(--dashboard-panel-strong) shadow-(--dashboard-shadow)`;case`muted`:return`border border-(--dashboard-border) bg-(--dashboard-panel-muted)`;default:return`border border-(--dashboard-border) bg-(--dashboard-panel)`}}let r={getSurfaceToneClassName:n};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}});function X(e,t,n,r,i,a){return p(),b(`div`,{class:g([`rounded-4.5 p-4`,r.getSurfaceToneClassName(n.tone)])},s(n.label),3)}var te=S(Y,[[`render`,X]]);function Z(e){let t=a(``),n=a(`all`),r=a(null),i=a(null),o=a(null),s=null,c=f(()=>e.groups.flatMap(e=>e.tokens.map(t=>({...t,key:`${e.title}:${t.name}`,groupTitle:e.title,groupIconName:e.iconName})))),l=f(()=>[{value:`all`,label:`全部分组`},...e.groups.map(e=>({value:e.title,label:e.title}))]),u=f(()=>{let e=t.value.trim().toLowerCase();return c.value.filter(t=>n.value!==`all`&&t.groupTitle!==n.value?!1:!e||[t.name,t.sample,t.groupTitle].join(` `).toLowerCase().includes(e))}),d=f(()=>u.value.find(e=>e.key===r.value)??u.value[0]??null),p=f(()=>{let e=n.value===`all`?`全部`:n.value;return`匹配 ${u.value.length} / ${c.value.length} 个令牌 · ${e}`}),h=f(()=>({background:d.value?.sample??`transparent`}));function g(){i.value=null,o.value=null}function _(){s&&clearTimeout(s),s=setTimeout(()=>{g(),s=null},1800)}async function v(e){try{await E(e),i.value=e,o.value=null}catch{i.value=null,o.value=e}_()}return ee(u,e=>{e.some(e=>e.key===r.value)||(r.value=e[0]?.key??null)},{immediate:!0}),m(()=>{s&&clearTimeout(s)}),{copiedToken:i,copyToken:v,failedToken:o,filteredTokens:u,groupFilter:n,groupOptions:l,searchQuery:t,selectedSampleStyle:h,selectedToken:d,selectedTokenKey:r,tokenSummary:p}}var Q=t({__name:`TokenInspector`,props:{groups:{}},setup(e,{expose:t}){t();let n=e,{copiedToken:r,copyToken:i,failedToken:a,filteredTokens:o,groupFilter:s,groupOptions:c,searchQuery:l,selectedSampleStyle:u,selectedToken:d,selectedTokenKey:f,tokenSummary:p}=Z(n),m={props:n,copiedToken:r,copyToken:i,failedToken:a,filteredTokens:o,groupFilter:s,groupOptions:c,searchQuery:l,selectedSampleStyle:u,selectedToken:d,selectedTokenKey:f,tokenSummary:p,AppEmptyState:k,AppRuntimeBadge:A,AppSelect:T,DashboardIcon:w};return Object.defineProperty(m,"__isScriptSetup",{enumerable:!1,value:!0}),m}}),ne={class:`grid min-w-0 gap-3 xl:h-[40rem] xl:min-h-0 xl:grid-cols-[minmax(0,1fr)_minmax(16rem,0.62fr)]`},re={class:`grid min-w-0 gap-3 overflow-visible xl:min-h-0 xl:grid-rows-[auto_minmax(0,1fr)] xl:overflow-hidden`},ie={class:`grid gap-3 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-3`},ae={class:`grid gap-2 md:grid-cols-[minmax(0,1fr)_11rem]`},oe={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},se={class:`grid gap-1.5 text-xs font-medium uppercase tracking-[0.16em] text-(--dashboard-text-soft)`},ce={class:`text-xs text-(--dashboard-text-soft)`},le={key:1,class:`grid max-h-96 min-w-0 gap-2 overflow-y-auto pr-1 xl:max-h-none xl:min-h-0`},ue=[`onClick`],de={class:`flex items-center justify-between gap-3`},fe={class:`flex min-w-0 items-center gap-2`},pe={class:`h-4.5 w-4.5 shrink-0 text-(--dashboard-accent)`},me={class:`truncate text-xs text-(--dashboard-text-soft)`},he={class:`mt-2 flex items-center justify-between gap-3`},ge={class:`truncate text-xs text-(--dashboard-text-muted)`},_e={class:`grid min-w-0 grid-rows-[auto_minmax(0,1fr)] gap-3 overflow-visible rounded-md border border-(--dashboard-border) bg-(--dashboard-panel-muted) p-4 xl:min-h-0 xl:overflow-hidden`},ve={class:`flex items-start justify-between gap-3`},ye={key:1,class:`grid min-h-0 content-start gap-3 overflow-y-auto`},be={class:`grid gap-2`},$={class:`block max-w-full overflow-x-auto whitespace-nowrap rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-6 text-slate-100 dark:bg-slate-900`},xe={class:`block max-w-full overflow-x-auto whitespace-nowrap rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-6 text-slate-100 dark:bg-slate-900`},Se={class:`grid gap-2 sm:grid-cols-2 xl:grid-cols-1 2xl:grid-cols-2`};function Ce(t,n,i,a,f,m){return p(),b(`div`,ne,[d(`div`,re,[d(`div`,ie,[d(`div`,ae,[d(`label`,oe,[n[4]||=u(` 搜索令牌 `,-1),o(d(`input`,{"onUpdate:modelValue":n[0]||=e=>a.searchQuery=e,type:`text`,placeholder:`搜索变量名、分组或 CSS 值`,class:`h-9 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm normal-case tracking-normal text-(--dashboard-text) outline-none transition focus:border-(--dashboard-border-strong)`},null,512),[[_,a.searchQuery]])]),d(`label`,se,[n[5]||=u(` 分组 `,-1),y(a.AppSelect,{modelValue:a.groupFilter,"onUpdate:modelValue":n[1]||=e=>a.groupFilter=e,label:`筛选令牌分组`,options:a.groupOptions},null,8,[`modelValue`,`options`])])]),d(`p`,ce,s(a.tokenSummary),1)]),a.filteredTokens.length===0?(p(),l(a.AppEmptyState,{key:0,compact:``},{default:e(()=>[...n[6]||=[u(` 当前筛选条件下没有匹配令牌。 `,-1)]]),_:1})):(p(),b(`div`,le,[(p(!0),b(h,null,r(a.filteredTokens,e=>(p(),b(`button`,{key:e.key,type:`button`,class:g([`rounded-md border bg-(--dashboard-panel-muted) p-3 text-left transition focus:outline-none`,a.selectedToken?.key===e.key?`border-(--dashboard-border-strong) bg-(--dashboard-panel)`:`border-(--dashboard-border)`]),onClick:t=>a.selectedTokenKey=e.key},[d(`span`,de,[d(`span`,fe,[d(`span`,pe,[y(a.DashboardIcon,{name:e.groupIconName},null,8,[`name`])]),d(`code`,me,s(e.name),1)]),d(`span`,{class:`h-8 w-14 shrink-0 rounded-md border border-(--dashboard-border)`,style:c({background:e.sample})},null,4)]),d(`span`,he,[y(a.AppRuntimeBadge,{label:e.groupTitle,tone:`info`},null,8,[`label`]),d(`span`,ge,s(e.sample),1)])],10,ue))),128))]))]),d(`aside`,_e,[d(`div`,ve,[n[7]||=d(`div`,null,[d(`p`,{class:`text-[11px] uppercase tracking-[0.2em] text-(--dashboard-accent)`},` Selected `),d(`h3`,{class:`mt-1 text-base font-semibold`},` 当前令牌 `)],-1),a.selectedToken?(p(),l(a.AppRuntimeBadge,{key:0,label:a.selectedToken.groupTitle,tone:`info`},null,8,[`label`])):v(``,!0)]),a.selectedToken?(p(),b(`div`,ye,[d(`div`,{class:`min-h-28 rounded-md border border-(--dashboard-border) shadow-inner`,style:c(a.selectedSampleStyle)},null,4),d(`div`,be,[d(`code`,$,s(a.selectedToken.name),1),d(`code`,xe,s(a.selectedToken.sample),1)]),d(`div`,Se,[d(`button`,{type:`button`,class:`inline-flex h-9 items-center justify-center gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm font-medium text-(--dashboard-text) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:n[2]||=e=>a.copyToken(a.selectedToken.name)},` 复制变量名 `),d(`button`,{type:`button`,class:`inline-flex h-9 items-center justify-center gap-2 rounded-md border border-(--dashboard-border) bg-(--dashboard-panel) px-3 text-sm font-medium text-(--dashboard-text) transition hover:border-(--dashboard-border-strong) hover:text-(--dashboard-accent) focus:border-(--dashboard-border-strong) focus:outline-none`,onClick:n[3]||=e=>a.copyToken(a.selectedToken.sample)},s(a.copiedToken===a.selectedToken.sample?`已复制`:a.failedToken===a.selectedToken.sample?`复制失败`:`复制 CSS 值`),1)])])):(p(),l(a.AppEmptyState,{key:0,compact:``},{default:e(()=>[...n[8]||=[u(` 选择左侧令牌后查看 CSS 变量详情。 `,-1)]]),_:1}))])])}var we=S(Q,[[`render`,Ce]]),Te=t({__name:`tokens`,setup(e,{expose:t}){t();let n={surfaceSamples:[{label:`Default surface`,tone:`default`},{label:`Strong surface`,tone:`strong`},{label:`Muted surface`,tone:`muted`}],themeFeatureItems:x.map(e=>({iconName:e.iconName,title:e.label,meta:e.value})),AppIconFeatureCard:B,AppSectionHeading:J,AppSurfaceCard:O,AppSurfaceSampleCard:te,TokenInspector:we,get tokenGroups(){return C}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Ee={class:`grid min-w-0 gap-3`},De={class:`mt-4 grid gap-3 lg:grid-cols-3`},Oe={class:`grid min-w-0`},ke={class:`grid gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]`},Ae={class:`grid gap-3 md:grid-cols-3`};function je(t,i,a,o,s,c){return p(),b(`div`,Ee,[y(o.AppSurfaceCard,{tone:`strong`,padding:`md`},{default:e(()=>[y(o.AppSectionHeading,{eyebrow:`System`,title:`设计令牌`}),d(`div`,De,[(p(!0),b(h,null,r(o.themeFeatureItems,e=>(p(),l(o.AppIconFeatureCard,n({key:e.meta},{ref_for:!0},e),null,16))),128))])]),_:1}),d(`section`,Oe,[y(o.AppSurfaceCard,{eyebrow:`Tokens`,title:`令牌检查器`,"icon-name":`token-color`,padding:`md`,"content-class":`min-h-0 min-w-0`},{default:e(()=>[y(o.TokenInspector,{groups:o.tokenGroups},null,8,[`groups`])]),_:1})]),d(`section`,ke,[y(o.AppSurfaceCard,{eyebrow:`Components`,title:`标准表面`,"icon-name":`token-surface`},{default:e(()=>[d(`div`,Ae,[(p(),b(h,null,r(o.surfaceSamples,e=>y(o.AppSurfaceSampleCard,n({key:e.label},{ref_for:!0},e),null,16)),64))])]),_:1}),y(o.AppSurfaceCard,{eyebrow:`Typography`,title:`文本层级`,"icon-name":`token-type`},{default:e(()=>[...i[0]||=[d(`div`,{class:`space-y-3`},[d(`p`,{class:`text-2xl font-semibold tracking-tight`},` IBM Plex Sans Console `),d(`p`,{class:`text-sm uppercase tracking-[0.24em] text-(--dashboard-text-soft)`},` uppercased meta labels for control surfaces `)],-1)]]),_:1})])])}var Me=S(Te,[[`render`,je]]);export{Me as default};
|