From a0cfbcdab16768db2d43616e838dcd5aeb21b2a9 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Fri, 31 Jul 2026 12:17:07 +0700 Subject: [PATCH] chore(web): prune unused ReUI demo blocks and remove legacy Svelte MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Оставлен только settings-7 (используется settings tabs). Удалён web-legacy-svelte; обновлены AGENTS.md и WEB-22. Co-authored-by: Cursor --- .cursor/rules/web-shadcn.mdc | 3 +- AGENTS.md | 2 +- .../app-shell-7/components/app-header.tsx | 220 -- .../app-shell-7/components/app-shell.tsx | 43 - .../app-shell-7/components/app-sidebar.tsx | 51 - .../blocks/app-shell-7/components/data.tsx | 385 -- .../blocks/app-shell-7/components/logo.tsx | 29 - .../app-shell-7/components/nav-main.tsx | 122 - .../app-shell-7/components/nav-user.tsx | 202 -- .../app-shell-7/components/search-form.tsx | 78 - .../app-shell-7/components/sidebar-news.tsx | 281 -- .../components/sidebar-rail-toggle.tsx | 61 - .../app-shell-7/components/system-stats.tsx | 441 --- .../components/blocks/app-shell-7/page.tsx | 5 - .../card-17/components/card-dot-field.tsx | 99 - .../blocks/card-17/components/card-grid.tsx | 17 - .../blocks/card-17/components/card-item.tsx | 44 - .../blocks/card-17/components/data.tsx | 53 - .../src/components/blocks/card-17/page.tsx | 9 - .../blocks/card-18/components/card-grid.tsx | 15 - .../blocks/card-18/components/card-item.tsx | 34 - .../blocks/card-18/components/data.tsx | 39 - .../src/components/blocks/card-18/page.tsx | 9 - .../blocks/chart-12/components/chart.tsx | 240 -- .../blocks/chart-12/components/data.tsx | 147 - .../src/components/blocks/chart-12/page.tsx | 9 - .../blocks/chart-13/components/chart.tsx | 262 -- .../blocks/chart-13/components/data.ts | 141 - .../src/components/blocks/chart-13/page.tsx | 9 - .../blocks/chart-15/components/chart.tsx | 154 - .../blocks/chart-15/components/data.tsx | 70 - .../src/components/blocks/chart-15/page.tsx | 9 - .../blocks/chart-27/components/chart.tsx | 158 - .../blocks/chart-27/components/data.ts | 51 - .../src/components/blocks/chart-27/page.tsx | 9 - .../dashboard-1/components/capacity-chart.tsx | 416 --- .../dashboard-1/components/chart-cards.tsx | 64 - .../dashboard-1/components/commander-card.tsx | 155 - .../dashboard-1/components/dashboard.tsx | 33 - .../blocks/dashboard-1/components/data.tsx | 676 ---- .../components/exception-columns.tsx | 520 --- .../dashboard-1/components/exception-grid.tsx | 369 -- .../dashboard-1/components/navbar-actions.tsx | 246 -- .../components/navbar-breadcrumb.tsx | 34 - .../components/navbar-presence.tsx | 80 - .../blocks/dashboard-1/components/navbar.tsx | 17 - .../components/blocks/dashboard-1/page.tsx | 9 - .../blocks/dashboard-2/components/chart.tsx | 141 - .../blocks/dashboard-2/components/columns.tsx | 338 -- .../dashboard-2/components/dashboard.tsx | 33 - .../dashboard-2/components/data-grid-view.tsx | 380 -- .../blocks/dashboard-2/components/data.tsx | 490 --- .../dashboard-2/components/navbar-actions.tsx | 67 - .../components/navbar-breadcrumb.tsx | 35 - .../components/navbar-presence.tsx | 77 - .../blocks/dashboard-2/components/navbar.tsx | 20 - .../components/blocks/dashboard-2/page.tsx | 5 - .../dashboard-5/components/card-dot-field.tsx | 90 - .../dashboard-5/components/chart-tooltip.tsx | 51 - .../blocks/dashboard-5/components/data.tsx | 200 -- .../dashboard-5/components/load-panels.tsx | 182 - .../dashboard-5/components/metric-tile.tsx | 83 - .../dashboard-5/components/navbar-actions.tsx | 248 -- .../components/navbar-breadcrumb.tsx | 32 - .../blocks/dashboard-5/components/navbar.tsx | 15 - .../dashboard-5/components/network-panels.tsx | 305 -- .../dashboard-5/components/panel-heading.tsx | 29 - .../components/security-dashboard.tsx | 47 - .../dashboard-5/components/tone-styles.ts | 37 - .../components/blocks/dashboard-5/page.tsx | 12 - .../data-grid-base-6/components/columns.tsx | 241 -- .../components/data-grid-view.tsx | 426 --- .../data-grid-base-6/components/data.tsx | 154 - .../blocks/data-grid-base-6/page.tsx | 15 - .../components/columns.tsx | 512 --- .../components/data-grid-view.tsx | 691 ---- .../data-grid-expansion-3/components/data.tsx | 1110 ------ .../components/release-check-rail.tsx | 212 -- .../components/release-review-card.tsx | 60 - .../blocks/data-grid-expansion-3/page.tsx | 15 - .../components/columns.tsx | 426 --- .../components/data-grid-view.tsx | 597 ---- .../data-grid-filtering-1/components/data.tsx | 263 -- .../blocks/data-grid-filtering-1/page.tsx | 15 - .../components/columns.tsx | 408 --- .../components/data-grid-view.tsx | 660 ---- .../data-grid-filtering-2/components/data.tsx | 384 -- .../blocks/data-grid-filtering-2/page.tsx | 15 - .../components/columns.tsx | 685 ---- .../components/data-grid-view.tsx | 766 ---- .../data-grid-filtering-3/components/data.tsx | 738 ---- .../components/renewal-selection-bar.tsx | 108 - .../components/renewals-command-card.tsx | 63 - .../blocks/data-grid-filtering-3/page.tsx | 33 - .../empty-state-11/components/empty-state.tsx | 58 - .../components/blocks/empty-state-11/page.tsx | 15 - .../empty-state-3/components/empty-state.tsx | 55 - .../projects-empty-illustration.tsx | 325 -- .../components/quick-start-templates.tsx | 54 - .../components/blocks/empty-state-3/page.tsx | 9 - .../blocks/schedule-1/components/data.ts | 380 -- .../schedule-1/components/event-card.tsx | 79 - .../schedule-1/components/events-list.tsx | 135 - .../components/schedule-calendar.tsx | 190 - .../blocks/schedule-1/components/schedule.tsx | 45 - .../src/components/blocks/schedule-1/page.tsx | 9 - .../components/api-integrations-grid.tsx | 151 - .../blocks/settings-14/components/columns.tsx | 222 -- .../blocks/settings-14/components/data.tsx | 345 -- .../components/blocks/settings-14/page.tsx | 9 - .../settings-3/components/color-picker.tsx | 42 - .../blocks/settings-3/components/data.tsx | 107 - .../components/editor-preferences.tsx | 59 - .../components/general-settings.tsx | 265 -- .../settings-3/components/setting-field.tsx | 71 - .../src/components/blocks/settings-3/page.tsx | 9 - .../blocks/stats-12/components/data.tsx | 45 - .../blocks/stats-12/components/stats.tsx | 45 - .../src/components/blocks/stats-12/page.tsx | 9 - .../blocks/stats-4/components/data.ts | 16 - .../blocks/stats-4/components/stats.tsx | 131 - .../src/components/blocks/stats-4/page.tsx | 9 - .../blocks/stats-6/components/data.ts | 35 - .../blocks/stats-6/components/stats.tsx | 186 - .../src/components/blocks/stats-6/page.tsx | 9 - .../blocks/timeline-3/components/data.ts | 131 - .../components/finance-activity-timeline.tsx | 218 -- .../src/components/blocks/timeline-3/page.tsx | 9 - apps/web/src/routes/_auth/directories.tsx | 4 + web-legacy-svelte/.gitignore | 24 - web-legacy-svelte/.npmrc | 1 - web-legacy-svelte/.prettierignore | 9 - web-legacy-svelte/.prettierrc | 16 - web-legacy-svelte/.vscode/extensions.json | 3 - web-legacy-svelte/.vscode/settings.json | 5 - web-legacy-svelte/README.md | 43 - web-legacy-svelte/components.json | 16 - web-legacy-svelte/package-lock.json | 3158 ----------------- web-legacy-svelte/package.json | 45 - web-legacy-svelte/src/app.d.ts | 13 - web-legacy-svelte/src/app.html | 24 - web-legacy-svelte/src/lib/api/client.ts | 185 - web-legacy-svelte/src/lib/api/types.ts | 340 -- web-legacy-svelte/src/lib/api/version-info.ts | 49 - web-legacy-svelte/src/lib/assets/favicon.svg | 1 - .../access/AccessApiKeysCard.svelte | 279 -- .../components/app/scroll-pre-block.svelte | 29 - .../DirectoriesCommunitiesCard.svelte | 188 - .../DirectoriesDohProfilesCard.svelte | 178 - .../modules/ModuleAsEntriesCard.svelte | 342 -- .../modules/ModuleAsEntryDialog.svelte | 137 - .../modules/ModuleCdnSourceDialog.svelte | 270 -- .../modules/ModuleCdnSourcesCard.svelte | 237 -- .../modules/ModuleCreateDialog.svelte | 144 - .../modules/ModuleDetailHeader.svelte | 57 - .../modules/ModuleDomainEntriesCard.svelte | 302 -- .../modules/ModuleDomainEntryDialog.svelte | 120 - .../modules/ModuleEditDialog.svelte | 294 -- .../modules/ModuleIpRangeEntryDialog.svelte | 115 - .../modules/ModuleIpRangesCard.svelte | 310 -- .../components/modules/ModuleKpiCards.svelte | 155 - .../modules/ModuleSummaryCard.svelte | 115 - .../lib/components/modules/module-helpers.ts | 60 - .../monitoring/MaintenancePoliciesTab.svelte | 687 ---- .../monitoring/MonitoringPostgresTab.svelte | 436 --- .../monitoring/RuntimeLogsTab.svelte | 451 --- .../network/NetworkAutoRefreshToggle.svelte | 30 - .../NetworkBirdSettingsSummaryCard.svelte | 80 - .../network/NetworkOverviewTab.svelte | 240 -- .../network/NetworkPeersCard.svelte | 342 -- .../network/NetworkSpeakerDetailSheet.svelte | 203 -- .../network/NetworkSpeakerStatusCard.svelte | 85 - .../network/NetworkSpeakersCard.svelte | 526 --- .../operations/OperationsDiffTab.svelte | 213 -- .../operations/OperationsJobsFilters.svelte | 163 - .../operations/OperationsJobsTab.svelte | 463 --- .../operations/OperationsQuickActions.svelte | 174 - .../operations/OperationsRevisionsTab.svelte | 120 - .../operations/job-report-columns.ts | 42 - .../operations/job-report-table-block.svelte | 107 - .../src/lib/components/operations/types.ts | 30 - .../overview/OverviewNetworkStatusCard.svelte | 120 - .../overview/OverviewRecentJobsCard.svelte | 94 - .../OverviewRecentRevisionsCard.svelte | 89 - .../TenantAdditionalSettingsCard.svelte | 149 - .../TenantBirdSettingsCard.svelte | 212 -- .../TenantRevisionSettingsCard.svelte | 277 -- .../TenantRuntimeLogsSettingsCard.svelte | 340 -- .../tenant-settings/TenantSettingsPage.svelte | 90 - .../lib/components/ui/alert-dialog/index.ts | 1 - .../src/lib/components/ui/alert/index.ts | 1 - .../src/lib/components/ui/badge/index.ts | 1 - .../src/lib/components/ui/button/index.ts | 1 - .../src/lib/components/ui/card/index.ts | 1 - .../src/lib/components/ui/checkbox/index.ts | 1 - .../src/lib/components/ui/data-table/index.ts | 1 - .../src/lib/components/ui/dialog/index.ts | 1 - .../lib/components/ui/dropdown-menu/index.ts | 1 - .../src/lib/components/ui/form/index.ts | 1 - .../src/lib/components/ui/input/index.ts | 1 - .../src/lib/components/ui/label/index.ts | 1 - .../src/lib/components/ui/popover/index.ts | 1 - .../lib/components/ui/scroll-area/index.ts | 1 - .../src/lib/components/ui/select/index.ts | 1 - .../src/lib/components/ui/separator/index.ts | 1 - .../src/lib/components/ui/sheet/index.ts | 1 - .../src/lib/components/ui/skeleton/index.ts | 1 - .../src/lib/components/ui/switch/index.ts | 1 - .../src/lib/components/ui/table/index.ts | 1 - .../src/lib/components/ui/tabs/index.ts | 1 - .../src/lib/components/ui/textarea/index.ts | 1 - .../src/lib/components/ui/tooltip/index.ts | 1 - web-legacy-svelte/src/lib/dialog-layout.ts | 21 - web-legacy-svelte/src/lib/index.ts | 1 - .../src/lib/maintenance/policy-api.ts | 68 - .../src/lib/maintenance/policy-presets.ts | 148 - .../src/lib/maintenance/policy-schedule.ts | 181 - .../src/lib/maintenance/policy.schema.ts | 58 - web-legacy-svelte/src/lib/modules/display.ts | 43 - .../src/lib/monitoring/postgres.ts | 118 - .../src/lib/monitoring/status.ts | 169 - .../src/lib/network/network-metrics.ts | 295 -- .../src/lib/operations/job-kind-label.ts | 43 - .../src/lib/runtime-logs/runtime-logs-api.ts | 90 - .../lib/runtime-logs/runtime-logs-auto-api.ts | 37 - .../src/lib/settings/bird-settings.schema.ts | 24 - .../src/lib/settings/ip-validation.ts | 47 - .../src/lib/settings/revision-prune-api.ts | 30 - .../lib/settings/revision-settings.schema.ts | 34 - .../settings/runtime-logs-settings.schema.ts | 66 - .../src/lib/settings/settings-api.ts | 117 - .../src/lib/settings/settings-known-keys.ts | 36 - .../src/lib/settings/settings-known.schema.ts | 15 - web-legacy-svelte/src/lib/sort-prefixes.ts | 115 - .../src/lib/theme-preferences.svelte.ts | 28 - web-legacy-svelte/src/lib/theme.ts | 25 - web-legacy-svelte/src/lib/ui-labels.ts | 105 - .../src/lib/ui/app/layout/app-layout.svelte | 33 - .../lib/ui/app/layout/app-mobile-nav.svelte | 45 - .../lib/ui/app/layout/app-nav-links.svelte | 96 - .../src/lib/ui/app/layout/app-sidebar.svelte | 59 - .../src/lib/ui/app/layout/app-topbar.svelte | 38 - .../src/lib/ui/app/layout/app-version.svelte | 22 - .../src/lib/ui/app/layout/nav.ts | 32 - .../src/lib/ui/app/layout/theme-menu.svelte | 54 - .../lib/ui/app/page-header/page-header.svelte | 40 - web-legacy-svelte/src/lib/ui/app/toast.ts | 20 - web-legacy-svelte/src/lib/ui/app/tokens.md | 22 - .../alert-dialog/alert-dialog-action.svelte | 27 - .../alert-dialog/alert-dialog-cancel.svelte | 27 - .../alert-dialog/alert-dialog-content.svelte | 32 - .../alert-dialog-description.svelte | 20 - .../alert-dialog/alert-dialog-footer.svelte | 23 - .../alert-dialog/alert-dialog-header.svelte | 23 - .../alert-dialog/alert-dialog-media.svelte | 23 - .../alert-dialog/alert-dialog-overlay.svelte | 20 - .../alert-dialog/alert-dialog-portal.svelte | 7 - .../alert-dialog/alert-dialog-title.svelte | 20 - .../alert-dialog/alert-dialog-trigger.svelte | 7 - .../ui/core/alert-dialog/alert-dialog.svelte | 7 - .../src/lib/ui/core/alert-dialog/index.ts | 40 - .../src/lib/ui/core/alert/alert-action.svelte | 20 - .../ui/core/alert/alert-description.svelte | 23 - .../src/lib/ui/core/alert/alert-title.svelte | 23 - .../src/lib/ui/core/alert/alert.svelte | 44 - .../src/lib/ui/core/alert/index.ts | 17 - .../src/lib/ui/core/badge/badge.svelte | 50 - .../src/lib/ui/core/badge/index.ts | 2 - .../src/lib/ui/core/button/button.svelte | 89 - .../src/lib/ui/core/button/index.ts | 17 - .../src/lib/ui/core/card/card-action.svelte | 23 - .../src/lib/ui/core/card/card-content.svelte | 20 - .../lib/ui/core/card/card-description.svelte | 20 - .../src/lib/ui/core/card/card-footer.svelte | 23 - .../src/lib/ui/core/card/card-header.svelte | 23 - .../src/lib/ui/core/card/card-title.svelte | 20 - .../src/lib/ui/core/card/card.svelte | 25 - .../src/lib/ui/core/card/index.ts | 25 - .../src/lib/ui/core/checkbox/checkbox.svelte | 39 - .../src/lib/ui/core/checkbox/index.ts | 6 - .../ui/core/data-table/data-table.svelte.ts | 142 - .../lib/ui/core/data-table/flex-render.svelte | 40 - .../src/lib/ui/core/data-table/index.ts | 3 - .../lib/ui/core/data-table/render-helpers.ts | 111 - .../lib/ui/core/dialog/dialog-close.svelte | 11 - .../lib/ui/core/dialog/dialog-content.svelte | 48 - .../ui/core/dialog/dialog-description.svelte | 20 - .../lib/ui/core/dialog/dialog-footer.svelte | 35 - .../lib/ui/core/dialog/dialog-header.svelte | 20 - .../lib/ui/core/dialog/dialog-overlay.svelte | 20 - .../lib/ui/core/dialog/dialog-portal.svelte | 7 - .../lib/ui/core/dialog/dialog-title.svelte | 17 - .../lib/ui/core/dialog/dialog-trigger.svelte | 11 - .../src/lib/ui/core/dialog/dialog.svelte | 7 - .../src/lib/ui/core/dialog/index.ts | 34 - .../dropdown-menu-checkbox-group.svelte | 16 - .../dropdown-menu-checkbox-item.svelte | 44 - .../dropdown-menu-content.svelte | 31 - .../dropdown-menu-group-heading.svelte | 22 - .../dropdown-menu/dropdown-menu-group.svelte | 7 - .../dropdown-menu/dropdown-menu-item.svelte | 27 - .../dropdown-menu/dropdown-menu-label.svelte | 27 - .../dropdown-menu/dropdown-menu-portal.svelte | 7 - .../dropdown-menu-radio-group.svelte | 16 - .../dropdown-menu-radio-item.svelte | 34 - .../dropdown-menu-separator.svelte | 17 - .../dropdown-menu-shortcut.svelte | 23 - .../dropdown-menu-sub-content.svelte | 20 - .../dropdown-menu-sub-trigger.svelte | 29 - .../dropdown-menu/dropdown-menu-sub.svelte | 7 - .../dropdown-menu-trigger.svelte | 7 - .../core/dropdown-menu/dropdown-menu.svelte | 7 - .../src/lib/ui/core/dropdown-menu/index.ts | 54 - .../src/lib/ui/core/form/form-button.svelte | 7 - .../lib/ui/core/form/form-description.svelte | 17 - .../ui/core/form/form-element-field.svelte | 24 - .../lib/ui/core/form/form-field-errors.svelte | 30 - .../src/lib/ui/core/form/form-field.svelte | 24 - .../src/lib/ui/core/form/form-fieldset.svelte | 15 - .../src/lib/ui/core/form/form-label.svelte | 24 - .../src/lib/ui/core/form/form-legend.svelte | 16 - .../src/lib/ui/core/form/index.ts | 33 - .../src/lib/ui/core/input/index.ts | 7 - .../src/lib/ui/core/input/input.svelte | 48 - .../src/lib/ui/core/label/index.ts | 7 - .../src/lib/ui/core/label/label.svelte | 20 - .../src/lib/ui/core/popover/index.ts | 28 - .../lib/ui/core/popover/popover-close.svelte | 7 - .../ui/core/popover/popover-content.svelte | 31 - .../core/popover/popover-description.svelte | 20 - .../lib/ui/core/popover/popover-header.svelte | 20 - .../lib/ui/core/popover/popover-portal.svelte | 7 - .../lib/ui/core/popover/popover-title.svelte | 15 - .../ui/core/popover/popover-trigger.svelte | 17 - .../src/lib/ui/core/popover/popover.svelte | 7 - .../src/lib/ui/core/scroll-area/index.ts | 10 - .../scroll-area/scroll-area-scrollbar.svelte | 30 - .../ui/core/scroll-area/scroll-area.svelte | 43 - .../src/lib/ui/core/select/index.ts | 37 - .../lib/ui/core/select/select-content.svelte | 45 - .../core/select/select-group-heading.svelte | 21 - .../lib/ui/core/select/select-group.svelte | 17 - .../src/lib/ui/core/select/select-item.svelte | 38 - .../lib/ui/core/select/select-label.svelte | 20 - .../lib/ui/core/select/select-portal.svelte | 7 - .../select/select-scroll-down-button.svelte | 23 - .../select/select-scroll-up-button.svelte | 23 - .../ui/core/select/select-separator.svelte | 18 - .../lib/ui/core/select/select-trigger.svelte | 29 - .../src/lib/ui/core/select/select.svelte | 11 - .../src/lib/ui/core/separator/index.ts | 7 - .../lib/ui/core/separator/separator.svelte | 23 - .../src/lib/ui/core/sheet/index.ts | 34 - .../src/lib/ui/core/sheet/sheet-close.svelte | 7 - .../lib/ui/core/sheet/sheet-content.svelte | 55 - .../ui/core/sheet/sheet-description.svelte | 17 - .../src/lib/ui/core/sheet/sheet-footer.svelte | 20 - .../src/lib/ui/core/sheet/sheet-header.svelte | 20 - .../lib/ui/core/sheet/sheet-overlay.svelte | 17 - .../src/lib/ui/core/sheet/sheet-portal.svelte | 7 - .../src/lib/ui/core/sheet/sheet-title.svelte | 17 - .../lib/ui/core/sheet/sheet-trigger.svelte | 7 - .../src/lib/ui/core/sheet/sheet.svelte | 7 - .../src/lib/ui/core/skeleton/index.ts | 7 - .../src/lib/ui/core/skeleton/skeleton.svelte | 17 - .../src/lib/ui/core/switch/index.ts | 7 - .../src/lib/ui/core/switch/switch.svelte | 46 - .../src/lib/ui/core/table/index.ts | 28 - .../src/lib/ui/core/table/table-body.svelte | 20 - .../lib/ui/core/table/table-caption.svelte | 20 - .../src/lib/ui/core/table/table-cell.svelte | 20 - .../src/lib/ui/core/table/table-footer.svelte | 20 - .../src/lib/ui/core/table/table-head.svelte | 23 - .../src/lib/ui/core/table/table-header.svelte | 20 - .../src/lib/ui/core/table/table-row.svelte | 23 - .../src/lib/ui/core/table/table.svelte | 22 - .../src/lib/ui/core/tabs/index.ts | 18 - .../src/lib/ui/core/tabs/tabs-content.svelte | 17 - .../src/lib/ui/core/tabs/tabs-list.svelte | 40 - .../src/lib/ui/core/tabs/tabs-trigger.svelte | 23 - .../src/lib/ui/core/tabs/tabs.svelte | 19 - .../src/lib/ui/core/textarea/index.ts | 7 - .../src/lib/ui/core/textarea/textarea.svelte | 23 - .../src/lib/ui/core/tooltip/index.ts | 19 - .../ui/core/tooltip/tooltip-content.svelte | 52 - .../lib/ui/core/tooltip/tooltip-portal.svelte | 7 - .../ui/core/tooltip/tooltip-provider.svelte | 7 - .../ui/core/tooltip/tooltip-trigger.svelte | 7 - .../src/lib/ui/core/tooltip/tooltip.svelte | 10 - .../ui/patterns/confirm/confirm-dialog.svelte | 55 - .../patterns/confirm/confirm-state.svelte.ts | 42 - .../patterns/data-table/app-data-table.svelte | 147 - .../src/lib/ui/patterns/data-table/types.ts | 8 - .../patterns/empty-state/empty-state.svelte | 31 - .../ui/patterns/feedback/card-skeleton.svelte | 15 - .../patterns/feedback/table-skeleton.svelte | 27 - .../src/lib/ui/patterns/form/app-input.svelte | 19 - .../lib/ui/patterns/form/app-textarea.svelte | 17 - .../lib/ui/patterns/form/form-field.svelte | 38 - .../ui/patterns/kpi/kpi-metrics-grid.svelte | 112 - .../virtual-list/virtual-prefix-list.svelte | 38 - web-legacy-svelte/src/lib/utils.ts | 13 - web-legacy-svelte/src/routes/+layout.svelte | 40 - web-legacy-svelte/src/routes/+layout.ts | 2 - web-legacy-svelte/src/routes/+page.svelte | 383 -- .../src/routes/access/+page.svelte | 113 - .../src/routes/directories/+page.svelte | 206 -- web-legacy-svelte/src/routes/layout.css | 135 - .../src/routes/modules/+page.svelte | 309 -- .../routes/modules/[moduleId]/+page.svelte | 262 -- .../src/routes/modules/[moduleId]/+page.ts | 1 - .../src/routes/monitoring/+page.svelte | 722 ---- .../src/routes/network/+page.svelte | 251 -- .../src/routes/operations/+page.svelte | 1178 ------ .../src/routes/peers/+page.svelte | 5 - .../src/routes/revisions/+page.svelte | 6 - .../src/routes/schedule/+page.svelte | 358 -- .../src/routes/settings/+page.svelte | 112 - .../src/routes/tenant-settings/+page.svelte | 5 - web-legacy-svelte/static/robots.txt | 3 - web-legacy-svelte/svelte.config.js | 24 - web-legacy-svelte/tsconfig.json | 20 - web-legacy-svelte/vite.config.ts | 13 - 423 files changed, 7 insertions(+), 44505 deletions(-) delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/app-header.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/app-shell.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/app-sidebar.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/data.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/logo.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/nav-main.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/nav-user.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/search-form.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/sidebar-news.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/sidebar-rail-toggle.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/components/system-stats.tsx delete mode 100644 apps/web/src/components/blocks/app-shell-7/page.tsx delete mode 100644 apps/web/src/components/blocks/card-17/components/card-dot-field.tsx delete mode 100644 apps/web/src/components/blocks/card-17/components/card-grid.tsx delete mode 100644 apps/web/src/components/blocks/card-17/components/card-item.tsx delete mode 100644 apps/web/src/components/blocks/card-17/components/data.tsx delete mode 100644 apps/web/src/components/blocks/card-17/page.tsx delete mode 100644 apps/web/src/components/blocks/card-18/components/card-grid.tsx delete mode 100644 apps/web/src/components/blocks/card-18/components/card-item.tsx delete mode 100644 apps/web/src/components/blocks/card-18/components/data.tsx delete mode 100644 apps/web/src/components/blocks/card-18/page.tsx delete mode 100644 apps/web/src/components/blocks/chart-12/components/chart.tsx delete mode 100644 apps/web/src/components/blocks/chart-12/components/data.tsx delete mode 100644 apps/web/src/components/blocks/chart-12/page.tsx delete mode 100644 apps/web/src/components/blocks/chart-13/components/chart.tsx delete mode 100644 apps/web/src/components/blocks/chart-13/components/data.ts delete mode 100644 apps/web/src/components/blocks/chart-13/page.tsx delete mode 100644 apps/web/src/components/blocks/chart-15/components/chart.tsx delete mode 100644 apps/web/src/components/blocks/chart-15/components/data.tsx delete mode 100644 apps/web/src/components/blocks/chart-15/page.tsx delete mode 100644 apps/web/src/components/blocks/chart-27/components/chart.tsx delete mode 100644 apps/web/src/components/blocks/chart-27/components/data.ts delete mode 100644 apps/web/src/components/blocks/chart-27/page.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/capacity-chart.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/chart-cards.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/commander-card.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/dashboard.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/data.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/exception-columns.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/exception-grid.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/navbar-actions.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/navbar-breadcrumb.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/navbar-presence.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/components/navbar.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-1/page.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/chart.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/dashboard.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/data.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/navbar-actions.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/navbar-breadcrumb.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/navbar-presence.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/components/navbar.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-2/page.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/card-dot-field.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/chart-tooltip.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/data.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/load-panels.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/metric-tile.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/navbar-actions.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/navbar-breadcrumb.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/navbar.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/network-panels.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/panel-heading.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/security-dashboard.tsx delete mode 100644 apps/web/src/components/blocks/dashboard-5/components/tone-styles.ts delete mode 100644 apps/web/src/components/blocks/dashboard-5/page.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-base-6/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-base-6/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-base-6/components/data.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-base-6/page.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/components/data.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/components/release-check-rail.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/components/release-review-card.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-expansion-3/page.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-1/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-1/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-1/components/data.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-1/page.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-2/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-2/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-2/components/data.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-2/page.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/components/data-grid-view.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/components/data.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/components/renewal-selection-bar.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/components/renewals-command-card.tsx delete mode 100644 apps/web/src/components/blocks/data-grid-filtering-3/page.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-11/components/empty-state.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-11/page.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-3/components/empty-state.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-3/components/projects-empty-illustration.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-3/components/quick-start-templates.tsx delete mode 100644 apps/web/src/components/blocks/empty-state-3/page.tsx delete mode 100644 apps/web/src/components/blocks/schedule-1/components/data.ts delete mode 100644 apps/web/src/components/blocks/schedule-1/components/event-card.tsx delete mode 100644 apps/web/src/components/blocks/schedule-1/components/events-list.tsx delete mode 100644 apps/web/src/components/blocks/schedule-1/components/schedule-calendar.tsx delete mode 100644 apps/web/src/components/blocks/schedule-1/components/schedule.tsx delete mode 100644 apps/web/src/components/blocks/schedule-1/page.tsx delete mode 100644 apps/web/src/components/blocks/settings-14/components/api-integrations-grid.tsx delete mode 100644 apps/web/src/components/blocks/settings-14/components/columns.tsx delete mode 100644 apps/web/src/components/blocks/settings-14/components/data.tsx delete mode 100644 apps/web/src/components/blocks/settings-14/page.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/components/color-picker.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/components/data.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/components/editor-preferences.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/components/general-settings.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/components/setting-field.tsx delete mode 100644 apps/web/src/components/blocks/settings-3/page.tsx delete mode 100644 apps/web/src/components/blocks/stats-12/components/data.tsx delete mode 100644 apps/web/src/components/blocks/stats-12/components/stats.tsx delete mode 100644 apps/web/src/components/blocks/stats-12/page.tsx delete mode 100644 apps/web/src/components/blocks/stats-4/components/data.ts delete mode 100644 apps/web/src/components/blocks/stats-4/components/stats.tsx delete mode 100644 apps/web/src/components/blocks/stats-4/page.tsx delete mode 100644 apps/web/src/components/blocks/stats-6/components/data.ts delete mode 100644 apps/web/src/components/blocks/stats-6/components/stats.tsx delete mode 100644 apps/web/src/components/blocks/stats-6/page.tsx delete mode 100644 apps/web/src/components/blocks/timeline-3/components/data.ts delete mode 100644 apps/web/src/components/blocks/timeline-3/components/finance-activity-timeline.tsx delete mode 100644 apps/web/src/components/blocks/timeline-3/page.tsx delete mode 100644 web-legacy-svelte/.gitignore delete mode 100644 web-legacy-svelte/.npmrc delete mode 100644 web-legacy-svelte/.prettierignore delete mode 100644 web-legacy-svelte/.prettierrc delete mode 100644 web-legacy-svelte/.vscode/extensions.json delete mode 100644 web-legacy-svelte/.vscode/settings.json delete mode 100644 web-legacy-svelte/README.md delete mode 100644 web-legacy-svelte/components.json delete mode 100644 web-legacy-svelte/package-lock.json delete mode 100644 web-legacy-svelte/package.json delete mode 100644 web-legacy-svelte/src/app.d.ts delete mode 100644 web-legacy-svelte/src/app.html delete mode 100644 web-legacy-svelte/src/lib/api/client.ts delete mode 100644 web-legacy-svelte/src/lib/api/types.ts delete mode 100644 web-legacy-svelte/src/lib/api/version-info.ts delete mode 100644 web-legacy-svelte/src/lib/assets/favicon.svg delete mode 100644 web-legacy-svelte/src/lib/components/access/AccessApiKeysCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/app/scroll-pre-block.svelte delete mode 100644 web-legacy-svelte/src/lib/components/directories/DirectoriesCommunitiesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/directories/DirectoriesDohProfilesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleAsEntriesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleAsEntryDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleCdnSourceDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleCdnSourcesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleCreateDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleDetailHeader.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleDomainEntriesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleDomainEntryDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleEditDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleIpRangeEntryDialog.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleIpRangesCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleKpiCards.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/ModuleSummaryCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/modules/module-helpers.ts delete mode 100644 web-legacy-svelte/src/lib/components/monitoring/MaintenancePoliciesTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/monitoring/MonitoringPostgresTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/monitoring/RuntimeLogsTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkAutoRefreshToggle.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkBirdSettingsSummaryCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkOverviewTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkPeersCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkSpeakerDetailSheet.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkSpeakerStatusCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/network/NetworkSpeakersCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/OperationsDiffTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/OperationsJobsFilters.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/OperationsJobsTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/OperationsQuickActions.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/OperationsRevisionsTab.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/job-report-columns.ts delete mode 100644 web-legacy-svelte/src/lib/components/operations/job-report-table-block.svelte delete mode 100644 web-legacy-svelte/src/lib/components/operations/types.ts delete mode 100644 web-legacy-svelte/src/lib/components/overview/OverviewNetworkStatusCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/overview/OverviewRecentJobsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/overview/OverviewRecentRevisionsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/tenant-settings/TenantAdditionalSettingsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/tenant-settings/TenantBirdSettingsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/tenant-settings/TenantRevisionSettingsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/tenant-settings/TenantRuntimeLogsSettingsCard.svelte delete mode 100644 web-legacy-svelte/src/lib/components/tenant-settings/TenantSettingsPage.svelte delete mode 100644 web-legacy-svelte/src/lib/components/ui/alert-dialog/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/alert/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/badge/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/button/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/card/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/checkbox/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/data-table/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/dialog/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/dropdown-menu/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/form/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/input/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/label/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/popover/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/scroll-area/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/select/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/separator/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/sheet/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/skeleton/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/switch/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/table/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/tabs/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/textarea/index.ts delete mode 100644 web-legacy-svelte/src/lib/components/ui/tooltip/index.ts delete mode 100644 web-legacy-svelte/src/lib/dialog-layout.ts delete mode 100644 web-legacy-svelte/src/lib/index.ts delete mode 100644 web-legacy-svelte/src/lib/maintenance/policy-api.ts delete mode 100644 web-legacy-svelte/src/lib/maintenance/policy-presets.ts delete mode 100644 web-legacy-svelte/src/lib/maintenance/policy-schedule.ts delete mode 100644 web-legacy-svelte/src/lib/maintenance/policy.schema.ts delete mode 100644 web-legacy-svelte/src/lib/modules/display.ts delete mode 100644 web-legacy-svelte/src/lib/monitoring/postgres.ts delete mode 100644 web-legacy-svelte/src/lib/monitoring/status.ts delete mode 100644 web-legacy-svelte/src/lib/network/network-metrics.ts delete mode 100644 web-legacy-svelte/src/lib/operations/job-kind-label.ts delete mode 100644 web-legacy-svelte/src/lib/runtime-logs/runtime-logs-api.ts delete mode 100644 web-legacy-svelte/src/lib/runtime-logs/runtime-logs-auto-api.ts delete mode 100644 web-legacy-svelte/src/lib/settings/bird-settings.schema.ts delete mode 100644 web-legacy-svelte/src/lib/settings/ip-validation.ts delete mode 100644 web-legacy-svelte/src/lib/settings/revision-prune-api.ts delete mode 100644 web-legacy-svelte/src/lib/settings/revision-settings.schema.ts delete mode 100644 web-legacy-svelte/src/lib/settings/runtime-logs-settings.schema.ts delete mode 100644 web-legacy-svelte/src/lib/settings/settings-api.ts delete mode 100644 web-legacy-svelte/src/lib/settings/settings-known-keys.ts delete mode 100644 web-legacy-svelte/src/lib/settings/settings-known.schema.ts delete mode 100644 web-legacy-svelte/src/lib/sort-prefixes.ts delete mode 100644 web-legacy-svelte/src/lib/theme-preferences.svelte.ts delete mode 100644 web-legacy-svelte/src/lib/theme.ts delete mode 100644 web-legacy-svelte/src/lib/ui-labels.ts delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-layout.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-mobile-nav.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-nav-links.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-sidebar.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-topbar.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/app-version.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/nav.ts delete mode 100644 web-legacy-svelte/src/lib/ui/app/layout/theme-menu.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/page-header/page-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/app/toast.ts delete mode 100644 web-legacy-svelte/src/lib/ui/app/tokens.md delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-action.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-cancel.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-footer.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-media.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-overlay.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/alert-dialog.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert-dialog/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert/alert-action.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert/alert-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert/alert-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert/alert.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/alert/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/badge/badge.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/badge/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/button/button.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/button/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-action.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-footer.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/card.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/card/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/checkbox/checkbox.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/checkbox/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/data-table/data-table.svelte.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/data-table/flex-render.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/data-table/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/data-table/render-helpers.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-close.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-footer.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-overlay.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/dialog.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dialog/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-checkbox-group.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-checkbox-item.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-group-heading.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-group.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-item.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-label.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-radio-group.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-radio-item.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-separator.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-shortcut.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-sub-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-sub-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-sub.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/dropdown-menu.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/dropdown-menu/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-button.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-element-field.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-field-errors.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-field.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-fieldset.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-label.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/form-legend.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/form/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/input/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/input/input.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/label/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/label/label.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-close.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/popover/popover.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/scroll-area/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/scroll-area/scroll-area-scrollbar.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/scroll-area/scroll-area.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-group-heading.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-group.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-item.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-label.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-scroll-down-button.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-scroll-up-button.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-separator.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/select/select.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/separator/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/separator/separator.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-close.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-description.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-footer.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-overlay.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-title.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/sheet/sheet.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/skeleton/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/skeleton/skeleton.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/switch/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/switch/switch.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-body.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-caption.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-cell.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-footer.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-head.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-header.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table-row.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/table/table.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tabs/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/tabs/tabs-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tabs/tabs-list.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tabs/tabs-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tabs/tabs.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/textarea/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/textarea/textarea.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/index.ts delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/tooltip-content.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/tooltip-portal.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/tooltip-provider.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/tooltip-trigger.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/core/tooltip/tooltip.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/confirm/confirm-dialog.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/confirm/confirm-state.svelte.ts delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/data-table/app-data-table.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/data-table/types.ts delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/empty-state/empty-state.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/feedback/card-skeleton.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/feedback/table-skeleton.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/form/app-input.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/form/app-textarea.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/form/form-field.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/kpi/kpi-metrics-grid.svelte delete mode 100644 web-legacy-svelte/src/lib/ui/patterns/virtual-list/virtual-prefix-list.svelte delete mode 100644 web-legacy-svelte/src/lib/utils.ts delete mode 100644 web-legacy-svelte/src/routes/+layout.svelte delete mode 100644 web-legacy-svelte/src/routes/+layout.ts delete mode 100644 web-legacy-svelte/src/routes/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/access/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/directories/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/layout.css delete mode 100644 web-legacy-svelte/src/routes/modules/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/modules/[moduleId]/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/modules/[moduleId]/+page.ts delete mode 100644 web-legacy-svelte/src/routes/monitoring/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/network/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/operations/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/peers/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/revisions/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/schedule/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/settings/+page.svelte delete mode 100644 web-legacy-svelte/src/routes/tenant-settings/+page.svelte delete mode 100644 web-legacy-svelte/static/robots.txt delete mode 100644 web-legacy-svelte/svelte.config.js delete mode 100644 web-legacy-svelte/tsconfig.json delete mode 100644 web-legacy-svelte/vite.config.ts diff --git a/.cursor/rules/web-shadcn.mdc b/.cursor/rules/web-shadcn.mdc index 5453f98..800ab69 100644 --- a/.cursor/rules/web-shadcn.mdc +++ b/.cursor/rules/web-shadcn.mdc @@ -98,7 +98,8 @@ pnpm --filter @evobgp/web run build **WEB-21** | MUST | Data fetching — TanStack Query (`useQuery`, `useMutation`, `queryOptions`); query-key factories в `apps/web/src/queries/`. Mutations invalidate keys, не refetch вручную. *Проверка:* review `queries/*.ts`. -**WEB-22** | MUST | Legacy Svelte — в `web-legacy-svelte/` (archive). Не использовать импорты оттуда в новом коде; только как референс при миграции роутов. +**WEB-22** | NEVER | Legacy Svelte UI удалён. Не восстанавливать `web-legacy-svelte/` и не копировать Svelte-паттерны в React-код. +*Проверка:* отсутствие каталога `web-legacy-svelte/`; `pnpm --filter @evobgp/web run typecheck`. --- diff --git a/AGENTS.md b/AGENTS.md index cc9961e..f738bba 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -69,7 +69,7 @@ pnpm --filter @evobgp/web run build Все три команды должны exit 0. CI job `web` не пропускает без этого. -Стек: React 19, TanStack Router/Query, shadcn/ui (base-nova, registry `@shadcn` + `@reui`), Tailwind v4, lucide-react. Legacy Svelte — в `web-legacy-svelte/` (архив, только референс при миграции). +Стек: React 19, TanStack Router/Query, shadcn/ui (base-nova, registry `@shadcn` + `@reui`), Tailwind v4, lucide-react. Legacy Svelte UI удалён (миграция завершена). **UI design contract:** [`docs/ui-design-contract.md`](docs/ui-design-contract.md) — surface `frame`, kit `apps/web/src/components/reui-kit/`. diff --git a/apps/web/src/components/blocks/app-shell-7/components/app-header.tsx b/apps/web/src/components/blocks/app-shell-7/components/app-header.tsx deleted file mode 100644 index 3d2d858..0000000 --- a/apps/web/src/components/blocks/app-shell-7/components/app-header.tsx +++ /dev/null @@ -1,220 +0,0 @@ -"use client" - -import { useState } from "react" - -import { cn } from "@evobgp/ui/lib/utils" -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbList, - BreadcrumbSeparator, -} from "@evobgp/ui/components/breadcrumb" -import { Button } from "@evobgp/ui/components/button" -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuTrigger, -} from "@evobgp/ui/components/dropdown-menu" -import { SidebarTrigger } from "@evobgp/ui/components/sidebar" -import { APPS, ENVIRONMENTS, WORKSPACES } from "./data" -import { Logo } from "./logo" -import { SystemStats } from "./system-stats" -import { ChevronsUpDownIcon, CheckIcon, PlusIcon } from "lucide-react" - -// ── Org Switcher ── - -function OrgSwitcher() { - const [activeOrg, setActiveOrg] = useState(WORKSPACES[0]) - - return ( - - - } - > - - {activeOrg.name} - - - - - Organizations - - {WORKSPACES.map((ws) => ( - setActiveOrg(ws)} - className={cn(activeOrg.id === ws.id && "bg-accent")} - > - -
- {ws.name} - - {ws.tier} - -
- {activeOrg.id === ws.id && ( -
- ))} -
- - - -
-
-
- ) -} - -// ── App Switcher ── - -function AppSwitcher() { - const [activeApp, setActiveApp] = useState( - APPS.find((a) => a.isActive) ?? APPS[0] - ) - - return ( - - - } - > - {activeApp.name} - {activeApp.name.split(" ")[0]} - - - - - Applications - - {APPS.map((app) => ( - setActiveApp(app)} - className={cn(activeApp.id === app.id && "bg-accent")} - > - {app.icon} - {app.name} - {activeApp.id === app.id && ( - - ))} - - - - - - - - ) -} - -// ── Environment Switcher ── - -function EnvironmentSwitcher() { - const [activeEnv, setActiveEnv] = useState( - ENVIRONMENTS.find((e) => e.isActive) ?? ENVIRONMENTS[0] - ) - - return ( - - - } - > - {activeEnv.name} - - - - - Environments - - {ENVIRONMENTS.map((env) => ( - setActiveEnv(env)} - className={cn(activeEnv.id === env.id && "bg-accent")} - > - {env.icon} - {env.name} - {activeEnv.id === env.id && ( - - ))} - - - - - ) -} - -// ── Site Header ── - -export function AppHeader() { - return ( -
-
- {/* Mobile sidebar trigger */} - - - {/* Logo */} -
- -
- - - - - - - - / - - - - - - / - - - - - - - - {/* Right side */} -
- -
-
-
- ) -} \ No newline at end of file diff --git a/apps/web/src/components/blocks/app-shell-7/components/app-shell.tsx b/apps/web/src/components/blocks/app-shell-7/components/app-shell.tsx deleted file mode 100644 index 672e1ac..0000000 --- a/apps/web/src/components/blocks/app-shell-7/components/app-shell.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { type CSSProperties } from "react" - -import { cn } from "@evobgp/ui/lib/utils" -import { SidebarInset, SidebarProvider } from "@evobgp/ui/components/sidebar" - -import { AppHeader } from "./app-header" -import { AppSidebar } from "./app-sidebar" - -export function AppShell() { - return ( - - {/* Header */} - -
- - -
-
-
-
-
-
-
-
- -
- - ) -} \ No newline at end of file diff --git a/apps/web/src/components/blocks/app-shell-7/components/app-sidebar.tsx b/apps/web/src/components/blocks/app-shell-7/components/app-sidebar.tsx deleted file mode 100644 index 13ef614..0000000 --- a/apps/web/src/components/blocks/app-shell-7/components/app-sidebar.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { - Sidebar, - SidebarContent, - SidebarFooter, - SidebarHeader, - useSidebar, -} from "@evobgp/ui/components/sidebar" - -import { NEWS_ARTICLES } from "./data" -import { NavMain } from "./nav-main" -import { NavUser } from "./nav-user" -import { SearchForm } from "./search-form" -import { SidebarNews } from "./sidebar-news" -import { SidebarRailToggle } from "./sidebar-rail-toggle" - -// ── App Sidebar ── - -export function AppSidebar() { - const { isMobile } = useSidebar() - - return ( - - {/* Header */} - -
- -
-
- - {/* Sidebar */} - - - -
- -
-
- - {/* Footer */} - {/* customize: mt-2 keeps a fixed gap above the footer so the news card never butts against it when the viewport shrinks and the content scrolls */} - - - - - {!isMobile && } -
- ) -} \ No newline at end of file diff --git a/apps/web/src/components/blocks/app-shell-7/components/data.tsx b/apps/web/src/components/blocks/app-shell-7/components/data.tsx deleted file mode 100644 index f6b9990..0000000 --- a/apps/web/src/components/blocks/app-shell-7/components/data.tsx +++ /dev/null @@ -1,385 +0,0 @@ -import { type ComponentType, type ReactNode } from "react" -import { GlobeIcon, ShieldIcon, SmartphoneIcon, RocketIcon, FlaskConicalIcon, CodeIcon, LayoutDashboardIcon, UsersIcon, Building2Icon, ShieldCheckIcon, WebhookIcon, KeyRoundIcon, CpuIcon, MonitorIcon, MemoryStickIcon, WifiIcon } from "lucide-react" - -// ── Types ── - -export type NavChild = { - id: string - label: string - isActive?: boolean -} - -export type NavItem = { - id: string - label: string - icon: ReactNode - badge?: string | number - isActive?: boolean - children?: NavChild[] -} - -export type Workspace = { - id: string - name: string - tier: string - Logo: ComponentType<{ className?: string }> -} - -export type App = { - id: string - name: string - icon: ReactNode - isActive?: boolean -} - -export type Environment = { - id: string - name: string - icon: ReactNode - isActive?: boolean -} - -export type NewsArticle = { - href: string - title: string - summary: string - image: string -} - -export type ResourceMetric = { - id: string - label: string - unit: string - icon: ReactNode - seedRange: [number, number] - color: string - spikeThreshold: number -} - -export type Agent = { - id: string - name: string - memoryMb: number - color: string -} - -// ── Logos ── - -// Acme: indigo → violet → fuchsia diagonal sweep -function AcmeLogo({ className }: { className?: string }) { - return ( - - ) -} - -// Starter: rose → orange → amber → lime horizontal sweep -function StarterLogo({ className }: { className?: string }) { - return ( - - ) -} - -// Enterprise: sky → blue → indigo vertical sweep -function EnterpriseLogo({ className }: { className?: string }) { - return ( - - ) -} - -// ── Data ── - -export const USER = { - name: "Nick Bold", - email: "nick@reui.io", - initials: "NB", - avatar: - "https://images.unsplash.com/photo-1543299750-19d1d6297053?w=96&h=96&dpr=2&q=80", -} as const - -export const WORKSPACES: Workspace[] = [ - { id: "acme", name: "Acme Inc", tier: "Pro", Logo: AcmeLogo }, - { id: "starter", name: "Starter Kit", tier: "Free", Logo: StarterLogo }, - { - id: "enterprise", - name: "Enterprise", - tier: "Enterprise", - Logo: EnterpriseLogo, - }, -] - -export const APPS: App[] = [ - { - id: "web-app", - name: "Web App", - isActive: true, - icon: ( -