diff --git a/webapp/src/components/icons/IconRegistry.vue b/webapp/src/components/icons/IconRegistry.vue
new file mode 100644
index 0000000..d3269ae
--- /dev/null
+++ b/webapp/src/components/icons/IconRegistry.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/vite.config.ts b/webapp/vite.config.ts
index 7e3bf6f..b86a09f 100644
--- a/webapp/vite.config.ts
+++ b/webapp/vite.config.ts
@@ -16,5 +16,31 @@ export default defineConfig({
server: {
host: '0.0.0.0',
port: 5173,
+ },
+ build: {
+ rollupOptions: {
+ output: {
+ manualChunks(id) {
+ // Group all iconify imports into a separate chunk
+ if (id.includes('@iconify-vue/mdi') || id.includes('@iconify-vue/ic')) {
+ return 'iconify-icons'
+ }
+ // Group Vue and router into vendor chunk
+ if (id.includes('vue') || id.includes('vue-router') || id.includes('pinia')) {
+ return 'vue-vendor'
+ }
+ // Group Vuetify into its own chunk since it's large
+ if (id.includes('vuetify')) {
+ return 'vuetify'
+ }
+ // Group Leaflet mapping into its own chunk
+ if (id.includes('leaflet')) {
+ return 'leaflet'
+ }
+ }
+ }
+ },
+ // Increase the chunk size warning limit since we're dealing with icons
+ chunkSizeWarningLimit: 1000
}
})