diff --git a/packages/devtools/src/app/components/assets/Treemap.vue b/packages/devtools/src/app/components/assets/Treemap.vue new file mode 100644 index 00000000..5047ac78 --- /dev/null +++ b/packages/devtools/src/app/components/assets/Treemap.vue @@ -0,0 +1,249 @@ + + + diff --git a/packages/devtools/src/app/components/chart/AssetNavBreadcrumb.vue b/packages/devtools/src/app/components/chart/AssetNavBreadcrumb.vue new file mode 100644 index 00000000..24951dc2 --- /dev/null +++ b/packages/devtools/src/app/components/chart/AssetNavBreadcrumb.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/devtools/src/app/components/chart/AssetTreemap.vue b/packages/devtools/src/app/components/chart/AssetTreemap.vue new file mode 100644 index 00000000..129e193d --- /dev/null +++ b/packages/devtools/src/app/components/chart/AssetTreemap.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/devtools/src/app/pages/session/[session]/assets.vue b/packages/devtools/src/app/pages/session/[session]/assets.vue index 49654ab5..2c0ac940 100644 --- a/packages/devtools/src/app/pages/session/[session]/assets.vue +++ b/packages/devtools/src/app/pages/session/[session]/assets.vue @@ -21,9 +21,9 @@ const assetViewTpyes = [ icon: 'i-ph-folder-duotone', }, { - label: 'Flamechart', - value: 'flamechart', - icon: 'i-ph-chart-donut-duotone', + label: 'Treemap', + value: 'treemap', + icon: 'i-ph-checkerboard-duotone', }, ] as const const rpc = useRpc() @@ -62,8 +62,8 @@ function toggleDisplay(type: ClientSettings['assetViewType']) { - diff --git a/packages/devtools/src/app/state/settings.ts b/packages/devtools/src/app/state/settings.ts index 7d27ab6e..4fbd5dce 100644 --- a/packages/devtools/src/app/state/settings.ts +++ b/packages/devtools/src/app/state/settings.ts @@ -13,7 +13,8 @@ export interface ClientSettings { flowExpandAssets: boolean flowShowAllTransforms: boolean flowShowAllLoads: boolean - assetViewType: 'list' | 'folder' | 'flamechart' + assetViewType: 'list' | 'folder' | 'treemap' + chartAnimation: boolean } export const settings = useLocalStorage( @@ -30,6 +31,7 @@ export const settings = useLocalStorage( flowShowAllTransforms: false, flowShowAllLoads: false, assetViewType: 'list', + chartAnimation: true, }, { mergeDefaults: true, diff --git a/packages/devtools/src/app/types/assets.ts b/packages/devtools/src/app/types/assets.ts new file mode 100644 index 00000000..d3e20c58 --- /dev/null +++ b/packages/devtools/src/app/types/assets.ts @@ -0,0 +1,8 @@ +import type { Asset as AssetInfo } from '@rolldown/debug' +import type { TreeNode } from 'nanovis' + +export type AssetChartInfo = AssetInfo & { + path: string + type: 'folder' | 'file' +} +export type AssetChartNode = TreeNode