diff --git a/ui/.gitignore b/ui/.gitignore
index 11f5d71..3f61775 100644
--- a/ui/.gitignore
+++ b/ui/.gitignore
@@ -20,3 +20,4 @@ pnpm-debug.log*
*.njsproj
*.sln
*.sw?
+stats.html
\ No newline at end of file
diff --git a/ui/package.json b/ui/package.json
index a39e907..303400a 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -18,6 +18,7 @@
"@fontsource/public-sans": "^5.0.18",
"@fontsource/roboto": "^5.0.13",
"@mdi/font": "7.4.47",
+ "@tabler/icons-vue": "^3.19.0",
"@vue/apollo-composable": "^4.0.2",
"@vueuse/core": "^10.11.0",
"ant-design-vue": "^4.2.3",
@@ -31,7 +32,6 @@
"vue": "^3.5.6",
"vue-codemirror": "^6.1.1",
"vue-i18n": "9",
- "vue-tabler-icons": "^2.21.0",
"vue3-apexcharts": "^1.5.3",
"vue3-easy-data-table": "^1.5.47",
"vue3-perfect-scrollbar": "^2.0.0",
@@ -57,6 +57,7 @@
"eslint-plugin-promise": "^6.4.0",
"eslint-plugin-vue": "^9.27.0",
"pinia": "^2.1.7",
+ "rollup-plugin-visualizer": "^5.12.0",
"sass": "1.77.6",
"typescript": "^5.5.4",
"unplugin-fonts": "^1.1.1",
diff --git a/ui/src/layouts/header/FullScreen.vue b/ui/src/layouts/header/FullScreen.vue
index a6b5e03..6112df8 100644
--- a/ui/src/layouts/header/FullScreen.vue
+++ b/ui/src/layouts/header/FullScreen.vue
@@ -1,7 +1,7 @@
@@ -24,7 +25,7 @@ const authStore = useAuthStore()
variant="text"
@click="authStore.logout"
>
-
+
diff --git a/ui/src/layouts/horizontal-sidebar/horizontalItems.ts b/ui/src/layouts/horizontal-sidebar/horizontalItems.ts
index ff74d60..6c50f15 100644
--- a/ui/src/layouts/horizontal-sidebar/horizontalItems.ts
+++ b/ui/src/layouts/horizontal-sidebar/horizontalItems.ts
@@ -1,11 +1,11 @@
import {
- BoxIcon,
- ChartHistogramIcon,
- DatabaseIcon,
- HomeIcon,
- ServerIcon, SettingsIcon, UsersIcon,
- VectorIcon,
-} from 'vue-tabler-icons'
+ IconBox,
+ IconChartHistogram,
+ IconDatabase,
+ IconHome,
+ IconServer, IconSettings, IconUsers,
+ IconVector,
+} from '@tabler/icons-vue'
export interface menu {
header?: string;
@@ -28,61 +28,61 @@ export interface menu {
const horizontalItems: menu[] = [
{
title: 'Dashboard',
- icon: HomeIcon,
+ icon: IconHome,
to: '#',
children: [
{
title: 'Overview',
- icon: HomeIcon,
+ icon: IconHome,
to: '/app/overview',
},
{
title: 'Analytics',
- icon: ChartHistogramIcon,
+ icon: IconChartHistogram,
to: '/app/analytics',
},
],
},
{
title: 'Sealing',
- icon: VectorIcon,
+ icon: IconVector,
to: '#',
children: [
{
title: 'Miners',
- icon: UsersIcon,
+ icon: IconUsers,
to: '/app/miners',
},
{
title: 'PoRep',
- icon: VectorIcon,
+ icon: IconVector,
to: '/app/porep',
},
{
title: 'Sectors',
- icon: BoxIcon,
+ icon: IconBox,
to: '/app/sectors',
},
],
},
{
title: 'Cluster',
- icon: ServerIcon,
+ icon: IconServer,
to: '#',
children: [
{
title: 'Machines',
- icon: ServerIcon,
+ icon: IconServer,
to: '/app/machines',
},
{
title: 'Storages',
- icon: DatabaseIcon,
+ icon: IconDatabase,
to: '/app/storages',
},
{
title: 'Configurations',
- icon: SettingsIcon,
+ icon: IconSettings,
to: '/app/configurations',
},
],
diff --git a/ui/src/layouts/vertical-sidebar/sidebarItem.ts b/ui/src/layouts/vertical-sidebar/sidebarItem.ts
index 724de91..343e12a 100644
--- a/ui/src/layouts/vertical-sidebar/sidebarItem.ts
+++ b/ui/src/layouts/vertical-sidebar/sidebarItem.ts
@@ -1,13 +1,13 @@
import {
- BoxIcon,
- ChartHistogramIcon,
- DatabaseIcon,
- HomeIcon,
- ServerIcon,
- SettingsIcon,
- UsersIcon,
- VectorIcon,
-} from 'vue-tabler-icons'
+ IconBox,
+ IconChartHistogram,
+ IconDatabase,
+ IconHome,
+ IconServer,
+ IconSettings,
+ IconUsers,
+ IconVector,
+} from '@tabler/icons-vue'
export interface menu {
header?: string;
@@ -30,44 +30,44 @@ const sidebarItem: menu[] = [
{ header: 'Dashboard' },
{
title: 'Overview',
- icon: HomeIcon,
+ icon: IconHome,
to: '/app/overview',
},
{
title: 'Analytics',
- icon: ChartHistogramIcon,
+ icon: IconChartHistogram,
to: '/app/analytics',
},
{ header: 'Sealing' },
{
title: 'Miners',
- icon: UsersIcon,
+ icon: IconUsers,
to: '/app/miners',
},
{
title: 'PoRep',
- icon: VectorIcon,
+ icon: IconVector,
to: '/app/porep',
},
{
title: 'Sectors',
- icon: BoxIcon,
+ icon: IconBox,
to: '/app/sectors',
},
{ header: 'Cluster' },
{
title: 'Machines',
- icon: ServerIcon,
+ icon: IconServer,
to: '/app/machines',
},
{
title: 'Storages',
- icon: DatabaseIcon,
+ icon: IconDatabase,
to: '/app/storages',
},
{
title: 'Configurations',
- icon: SettingsIcon,
+ icon: IconSettings,
to: '/app/configurations',
},
]
diff --git a/ui/src/main.ts b/ui/src/main.ts
index 9ce004e..c25f741 100644
--- a/ui/src/main.ts
+++ b/ui/src/main.ts
@@ -14,25 +14,6 @@ import App from './App.vue'
import { createApp } from 'vue'
import '@/scss/style.scss'
import 'ant-design-vue/dist/reset.css'
-import '@fontsource/roboto/400.css'
-import '@fontsource/roboto/500.css'
-import '@fontsource/roboto/300.css'
-import '@fontsource/roboto/700.css'
-
-import '@fontsource/inter/400.css'
-import '@fontsource/inter/500.css'
-import '@fontsource/inter/600.css'
-import '@fontsource/inter/700.css'
-
-import '@fontsource/poppins/400.css'
-import '@fontsource/poppins/500.css'
-import '@fontsource/poppins/600.css'
-import '@fontsource/poppins/700.css'
-
-import '@fontsource/public-sans/400.css'
-import '@fontsource/public-sans/500.css'
-import '@fontsource/public-sans/600.css'
-import '@fontsource/public-sans/700.css'
const app = createApp(App)
diff --git a/ui/src/plugins/index.ts b/ui/src/plugins/index.ts
index 6614864..584b0ff 100644
--- a/ui/src/plugins/index.ts
+++ b/ui/src/plugins/index.ts
@@ -10,7 +10,6 @@ import pinia from '../stores'
import router from '../router'
import { PerfectScrollbarPlugin } from 'vue3-perfect-scrollbar'
import Vue3EasyDataTable from 'vue3-easy-data-table'
-import VueTablerIcons from 'vue-tabler-icons'
import Antd from 'ant-design-vue'
import { vMaska } from 'maska/vue'
@@ -28,7 +27,6 @@ export function registerPlugins (app: App) {
.use(router)
.use(pinia)
.use(i18n)
- .use(VueTablerIcons)
.use(PerfectScrollbarPlugin)
.use(Antd)
.use(VueApexCharts)
diff --git a/ui/src/views/configurations/ConfigurationList.vue b/ui/src/views/configurations/ConfigurationList.vue
index 5534135..403b507 100644
--- a/ui/src/views/configurations/ConfigurationList.vue
+++ b/ui/src/views/configurations/ConfigurationList.vue
@@ -5,6 +5,7 @@ import { computed, ComputedRef, ref } from 'vue'
import { Config } from '@/typed-graph'
import { GetConfigs } from '@/views/query/config'
import { Item } from 'vue3-easy-data-table'
+import { IconPlus, IconReload, IconSearch } from '@tabler/icons-vue'
import ConfigRemoveDialog from '@/views/configurations/ConfigRemoveDialog.vue'
const { result, loading, refetch, error } = useQuery(GetConfigs, null, () => ({
@@ -42,7 +43,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))')
variant="outlined"
>
-
+
@@ -50,7 +51,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))')
-
+
Create
@@ -61,7 +62,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))')
variant="text"
@click="refetch"
>
-
+
diff --git a/ui/src/views/machines/MachineList.vue b/ui/src/views/machines/MachineList.vue
index 592b300..38dfd6a 100644
--- a/ui/src/views/machines/MachineList.vue
+++ b/ui/src/views/machines/MachineList.vue
@@ -2,7 +2,8 @@
import { computed, ComputedRef, ref, watch } from 'vue'
import moment from 'moment'
import type { Header, Item } from 'vue3-easy-data-table'
-import { EyeOutlined, ReloadOutlined, SearchOutlined } from '@ant-design/icons-vue'
+import { EyeOutlined, SearchOutlined } from '@ant-design/icons-vue'
+import { IconReload } from '@tabler/icons-vue'
import { useQuery } from '@vue/apollo-composable'
import { GetMachines } from '@/views/query/machine'
import { Machine } from '@/typed-graph'
@@ -90,7 +91,7 @@ const itemsSelected = ref- ([])
-
+
diff --git a/ui/src/views/machines/MachineMetrics.vue b/ui/src/views/machines/MachineMetrics.vue
index c138152..c87a494 100644
--- a/ui/src/views/machines/MachineMetrics.vue
+++ b/ui/src/views/machines/MachineMetrics.vue
@@ -5,6 +5,7 @@ import UiChildCard from '@/components/shared/UiChildCard.vue'
import { computed } from 'vue'
import moment from 'moment'
import { formatBytes } from '@/utils/helpers/formatBytes'
+import { IconReload } from '@tabler/icons-vue'
const props = defineProps({
id: {
@@ -59,7 +60,7 @@ const details = computed(() => {
-
+
diff --git a/ui/src/views/machines/MachineStorages.vue b/ui/src/views/machines/MachineStorages.vue
index 11581b8..916a444 100644
--- a/ui/src/views/machines/MachineStorages.vue
+++ b/ui/src/views/machines/MachineStorages.vue
@@ -5,6 +5,7 @@ import { useQuery } from '@vue/apollo-composable'
import { computed, ComputedRef } from 'vue'
import { StoragePath } from '@/typed-graph'
import { GetMachineStorages } from '@/views/query/machine'
+import { IconReload } from '@tabler/icons-vue'
const props = defineProps({
id: {
@@ -27,7 +28,7 @@ const paths: ComputedRef<[StoragePath]> = computed(() => result.value?.machine.s
-
+
diff --git a/ui/src/views/machines/MachineSummaryCharts.vue b/ui/src/views/machines/MachineSummaryCharts.vue
index 4d5d79e..e9d9594 100644
--- a/ui/src/views/machines/MachineSummaryCharts.vue
+++ b/ui/src/views/machines/MachineSummaryCharts.vue
@@ -5,8 +5,7 @@ import { GetMachinesSummary } from '@/views/query/machine'
import { MachineSummary } from '@/typed-graph'
import { formatBytes } from '@/utils/helpers/formatBytes'
import moment from 'moment'
-import { mdiExpansionCard } from '@mdi/js'
-import { BrandSpeedtestIcon, CpuIcon, ServerIcon } from 'vue-tabler-icons'
+import { IconBrandSpeedtest, IconCpu, IconServer } from '@tabler/icons-vue'
const { result } = useQuery(GetMachinesSummary, null, () => ({
fetchPolicy: 'cache-first',
@@ -16,10 +15,10 @@ const { result } = useQuery(GetMachinesSummary, null, () => ({
const stats: ComputedRef = computed(() => result.value?.machineSummary)
const cards = computed(() => [
- { value: stats.value?.total || 0, text: 'Machine', icon: ServerIcon, color: 'primary', duedate: moment().calendar() },
- { value: stats.value?.totalCpu || 0, text: 'CPU', icon: CpuIcon, color: 'info', duedate: moment().calendar() },
- { value: stats.value?.totalGpu || 0, text: 'GPU', icon: mdiExpansionCard, color: 'success', duedate: moment().calendar() },
- { value: formatBytes(stats.value?.totalRam || 0).combined, text: 'RAM', icon: BrandSpeedtestIcon, color: 'warning', duedate: moment().calendar() },
+ { value: stats.value?.total || 0, text: 'Machine', icon: IconServer, color: 'primary', duedate: moment().calendar() },
+ { value: stats.value?.totalCpu || 0, text: 'CPU', icon: IconCpu, color: 'info', duedate: moment().calendar() },
+ { value: stats.value?.totalGpu || 0, text: 'GPU', icon: IconCpu, color: 'success', duedate: moment().calendar() },
+ { value: formatBytes(stats.value?.totalRam || 0).combined, text: 'RAM', icon: IconBrandSpeedtest, color: 'warning', duedate: moment().calendar() },
])
diff --git a/ui/src/views/machines/MachineTasks.vue b/ui/src/views/machines/MachineTasks.vue
index 75ad2c9..ab77d77 100644
--- a/ui/src/views/machines/MachineTasks.vue
+++ b/ui/src/views/machines/MachineTasks.vue
@@ -6,6 +6,7 @@ import { computed, ComputedRef } from 'vue'
import { Task } from '@/typed-graph'
import type { Header } from 'vue3-easy-data-table'
import { GetMachineTasks } from '@/views/query/machine'
+import { IconReload } from '@tabler/icons-vue'
const props = defineProps({
id: {
@@ -36,7 +37,7 @@ const headers :Header[] = [
-
+
{
-
+
diff --git a/ui/src/views/miners/MinerList.vue b/ui/src/views/miners/MinerList.vue
index 623d429..59e8970 100644
--- a/ui/src/views/miners/MinerList.vue
+++ b/ui/src/views/miners/MinerList.vue
@@ -1,6 +1,6 @@