From 6ac010d85f70ec0fc7394b4c5b086847d9204d8d Mon Sep 17 00:00:00 2001 From: Makisuo Date: Fri, 20 Feb 2026 01:26:05 +0100 Subject: [PATCH 1/5] feat: move ui in separate pakcgae --- apps/landing/package.json | 2 + .../src/components/FeatureDetailGrid.astro | 16 ++ apps/landing/src/components/FeatureHero.astro | 49 ++++ .../src/components/FeatureSpotlights.astro | 8 +- apps/landing/src/components/Footer.astro | 29 ++- apps/landing/src/components/Nav.astro | 39 +++- .../src/components/RelatedFeatures.astro | 34 +++ apps/landing/src/components/SeoHead.astro | 31 +++ .../src/components/TraceVisualization.tsx | 6 +- .../src/components/UseCaseShowcase.astro | 210 +++++++++++++++++ apps/landing/src/components/ui/button.tsx | 40 ---- apps/landing/src/components/ui/tooltip.tsx | 56 ----- apps/landing/src/lib/colors.ts | 82 ------- .../pages/features/ai-mcp-integration.astro | 118 ++++++++++ .../pages/features/distributed-tracing.astro | 151 ++++++++++++ .../src/pages/features/error-tracking.astro | 145 ++++++++++++ .../src/pages/features/log-management.astro | 130 +++++++++++ .../pages/features/metrics-dashboards.astro | 172 ++++++++++++++ .../src/pages/features/service-catalog.astro | 153 ++++++++++++ apps/landing/src/pages/index.astro | 2 + .../src/pages/use-cases/api-performance.astro | 216 +++++++++++++++++ .../use-cases/ecommerce-observability.astro | 206 ++++++++++++++++ .../use-cases/microservices-debugging.astro | 220 ++++++++++++++++++ apps/web/package.json | 1 + apps/web/src/components/component-example.tsx | 20 +- .../dashboard-builder/config/chart-picker.tsx | 4 +- .../config/widget-query-builder-page.tsx | 12 +- .../config/widget-query-builder-sheet.tsx | 16 +- .../dashboard-builder/list/dashboard-list.tsx | 4 +- .../toolbar/dashboard-toolbar.tsx | 5 +- .../widgets/chart-preview.tsx | 2 +- .../widgets/chart-widget.tsx | 4 +- .../dashboard-builder/widgets/stat-widget.tsx | 2 +- .../widgets/table-widget.tsx | 4 +- .../widgets/widget-edit-panel.tsx | 4 +- .../widgets/widget-shell.tsx | 6 +- .../src/components/dashboard/app-sidebar.tsx | 6 +- .../src/components/dashboard/metrics-grid.tsx | 8 +- .../src/components/dashboard/org-switcher.tsx | 10 +- .../dashboard/service-usage-cards.tsx | 4 +- .../errors/errors-by-type-table.tsx | 6 +- .../errors/errors-filter-sidebar.tsx | 2 +- .../errors/errors-summary-cards.tsx | 4 +- apps/web/src/components/example.tsx | 2 +- .../src/components/filters/filter-section.tsx | 8 +- .../src/components/filters/filter-sidebar.tsx | 8 +- .../components/layout/dashboard-layout.tsx | 6 +- .../src/components/logs/log-detail-sheet.tsx | 10 +- .../components/logs/logs-filter-sidebar.tsx | 2 +- apps/web/src/components/logs/logs-table.tsx | 4 +- .../src/components/logs/severity-badge.tsx | 4 +- .../components/metrics/metric-type-badge.tsx | 2 +- .../components/metrics/metrics-overview.tsx | 2 +- .../metrics/metrics-summary-cards.tsx | 4 +- .../src/components/metrics/metrics-table.tsx | 6 +- .../metrics/metrics-volume-chart.tsx | 6 +- .../query-builder/query-builder-lab.tsx | 22 +- .../query-builder/where-clause-editor.tsx | 4 +- .../src/components/quick-start/code-block.tsx | 2 +- .../package-manager-code-block.tsx | 2 +- apps/web/src/components/route-error.tsx | 4 +- .../service-map/service-map-edge.tsx | 2 +- .../service-map/service-map-node.tsx | 6 +- .../service-map/service-map-view.tsx | 2 +- .../services/services-filter-sidebar.tsx | 2 +- .../components/services/services-table.tsx | 10 +- .../components/settings/api-keys-section.tsx | 20 +- .../components/settings/billing-section.tsx | 4 +- .../components/settings/members-section.tsx | 26 +-- .../src/components/settings/pricing-cards.tsx | 16 +- .../settings/scrape-targets-section.tsx | 18 +- .../src/components/settings/usage-meters.tsx | 4 +- .../time-range-picker/custom-range-picker.tsx | 6 +- .../time-range-picker/preset-list.tsx | 2 +- .../time-range-picker/quick-select-grid.tsx | 2 +- .../time-range-picker/recently-used.tsx | 2 +- .../time-range-picker/shorthand-input.tsx | 2 +- .../time-range-picker/time-range-picker.tsx | 8 +- .../traces/duration-range-filter.tsx | 8 +- .../components/traces/flamegraph-minimap.tsx | 2 +- .../components/traces/flamegraph-tooltip.tsx | 2 +- apps/web/src/components/traces/flamegraph.tsx | 8 +- apps/web/src/components/traces/flow-node.tsx | 4 +- apps/web/src/components/traces/flow-view.tsx | 4 +- .../components/traces/span-detail-panel.tsx | 16 +- apps/web/src/components/traces/span-row.tsx | 6 +- .../src/components/traces/trace-view-tabs.tsx | 2 +- .../traces/traces-filter-sidebar.tsx | 2 +- .../src/components/traces/traces-table.tsx | 6 +- apps/web/src/lib/utils.ts | 6 - apps/web/src/routes/__root.tsx | 2 +- apps/web/src/routes/index.tsx | 4 +- apps/web/src/routes/quick-start.tsx | 8 +- apps/web/src/routes/services/$serviceName.tsx | 2 +- apps/web/src/routes/settings.tsx | 12 +- apps/web/src/routes/sign-in.tsx | 4 +- apps/web/src/routes/traces/$traceId.tsx | 6 +- apps/web/src/styles.css | 2 + apps/web/tsconfig.json | 4 +- bun.lock | 34 +++ packages/ui/package.json | 41 ++++ .../charts/_shared/build-chart-config.ts | 2 +- .../components/charts/_shared/chart-types.ts | 0 .../components/charts/_shared/sample-data.ts | 0 .../components/charts/_shared/svg-filters.tsx | 0 .../charts/_shared/svg-patterns.tsx | 0 .../charts/_shared/use-dynamic-dasharray.ts | 0 .../charts/area/apdex-area-chart.tsx | 10 +- .../charts/area/bar-pattern-area-chart.tsx | 8 +- .../charts/area/dotted-pattern-area-chart.tsx | 8 +- .../charts/area/error-rate-area-chart.tsx | 10 +- .../charts/area/gradient-area-chart.tsx | 8 +- .../area/gradient-rounded-area-chart.tsx | 8 +- .../charts/area/query-builder-area-chart.tsx | 6 +- .../charts/area/throughput-area-chart.tsx | 10 +- .../charts/bar/default-bar-chart.tsx | 8 +- .../charts/bar/default-multiple-bar-chart.tsx | 8 +- .../charts/bar/duotone-bar-chart.tsx | 6 +- .../charts/bar/glowing-bar-chart.tsx | 8 +- .../charts/bar/gradient-bar-chart.tsx | 6 +- .../charts/bar/hatched-bar-chart.tsx | 8 +- .../charts/bar/highlighted-bar-chart.tsx | 6 +- .../charts/bar/query-builder-bar-chart.tsx | 6 +- .../ui}/src/components/charts/index.ts | 0 .../charts/line/dotted-line-chart.tsx | 6 +- .../charts/line/dotted-multi-line-chart.tsx | 6 +- .../charts/line/glowing-line-chart.tsx | 8 +- .../charts/line/latency-line-chart.tsx | 8 +- .../charts/line/number-dot-line-chart.tsx | 6 +- .../charts/line/partial-line-chart.tsx | 8 +- .../charts/line/pinging-dot-chart.tsx | 6 +- .../charts/line/query-builder-line-chart.tsx | 6 +- .../line/rainbow-glow-gradient-line-chart.tsx | 8 +- .../charts/pie/default-radial-chart.tsx | 8 +- .../charts/pie/glowing-radial-chart.tsx | 10 +- .../charts/pie/increase-size-pie-chart.tsx | 8 +- .../charts/pie/rounded-pie-chart.tsx | 8 +- .../glowing-multiple-stroke-radar-chart.tsx | 8 +- .../radar/glowing-stroke-radar-chart.tsx | 8 +- .../radar/stroke-multiple-radar-chart.tsx | 6 +- .../charts/radar/stroke-radar-chart.tsx | 6 +- .../ui}/src/components/charts/registry.ts | 0 .../ui/src/components/icons/alert-warning.tsx | 12 + .../ui/src/components/icons/arrow-down.tsx | 12 + .../ui/src/components/icons/arrow-left.tsx | 12 + .../ui/src/components/icons/arrow-right.tsx | 12 + packages/ui/src/components/icons/check.tsx | 11 + .../ui/src/components/icons/chevron-down.tsx | 11 + .../src/components/icons/chevron-expand-y.tsx | 12 + .../ui/src/components/icons/chevron-left.tsx | 11 + .../ui/src/components/icons/chevron-right.tsx | 11 + .../ui/src/components/icons/chevron-up.tsx | 11 + .../ui/src/components/icons/circle-check.tsx | 12 + .../ui/src/components/icons/circle-info.tsx | 13 ++ .../ui/src/components/icons/circle-xmark.tsx | 13 ++ packages/ui/src/components/icons/code.tsx | 12 + packages/ui/src/components/icons/dots.tsx | 13 ++ packages/ui/src/components/icons/eye.tsx | 12 + packages/ui/src/components/icons/icon.tsx | 7 + packages/ui/src/components/icons/index.ts | 26 +++ packages/ui/src/components/icons/loader.tsx | 18 ++ .../ui/src/components/icons/magnifier.tsx | 12 + packages/ui/src/components/icons/minus.tsx | 11 + .../ui/src/components/icons/network-nodes.tsx | 19 ++ packages/ui/src/components/icons/pulse.tsx | 11 + .../ui/src/components/icons/radio-checked.tsx | 12 + .../ui/src/components/icons/sidebar-left.tsx | 12 + packages/ui/src/components/icons/xmark.tsx | 12 + .../components/traces/flamegraph-minimap.tsx | 0 .../components/traces/flamegraph-tooltip.tsx | 0 .../ui}/src/components/traces/flamegraph.tsx | 0 .../ui}/src/components/traces/flow-node.tsx | 0 .../ui}/src/components/traces/flow-utils.ts | 0 .../ui}/src/components/traces/flow-view.tsx | 0 .../ui}/src/components/ui/accordion.tsx | 4 +- .../ui}/src/components/ui/alert-dialog.tsx | 4 +- .../ui}/src/components/ui/alert.tsx | 2 +- .../ui}/src/components/ui/aspect-ratio.tsx | 2 +- .../ui}/src/components/ui/avatar.tsx | 2 +- .../ui}/src/components/ui/badge.tsx | 2 +- .../ui}/src/components/ui/breadcrumb.tsx | 4 +- .../ui}/src/components/ui/button-group.tsx | 4 +- .../ui}/src/components/ui/button.tsx | 2 +- .../ui}/src/components/ui/calendar.tsx | 6 +- .../ui}/src/components/ui/card.tsx | 2 +- .../ui}/src/components/ui/carousel.tsx | 6 +- .../ui}/src/components/ui/chart.tsx | 2 +- .../ui}/src/components/ui/checkbox.tsx | 4 +- .../ui}/src/components/ui/collapsible.tsx | 0 .../ui}/src/components/ui/combobox.tsx | 8 +- .../ui}/src/components/ui/command.tsx | 8 +- .../ui}/src/components/ui/context-menu.tsx | 4 +- .../ui}/src/components/ui/dialog.tsx | 6 +- .../ui}/src/components/ui/direction.tsx | 0 .../ui}/src/components/ui/drawer.tsx | 2 +- .../ui}/src/components/ui/dropdown-menu.tsx | 4 +- .../ui}/src/components/ui/empty.tsx | 2 +- .../ui}/src/components/ui/field.tsx | 6 +- .../ui}/src/components/ui/gradient-chart.tsx | 2 +- .../ui}/src/components/ui/hover-card.tsx | 2 +- .../ui}/src/components/ui/input-group.tsx | 8 +- .../ui}/src/components/ui/input-otp.tsx | 4 +- .../ui}/src/components/ui/input.tsx | 2 +- .../ui}/src/components/ui/item.tsx | 4 +- .../ui}/src/components/ui/kbd.tsx | 2 +- .../ui}/src/components/ui/label.tsx | 2 +- .../ui}/src/components/ui/menubar.tsx | 6 +- .../ui}/src/components/ui/native-select.tsx | 4 +- .../ui}/src/components/ui/navigation-menu.tsx | 4 +- .../ui}/src/components/ui/pagination.tsx | 6 +- .../ui}/src/components/ui/popover.tsx | 2 +- .../ui}/src/components/ui/progress.tsx | 2 +- .../ui}/src/components/ui/radio-group.tsx | 4 +- .../ui}/src/components/ui/resizable.tsx | 2 +- .../ui}/src/components/ui/scroll-area.tsx | 2 +- .../ui}/src/components/ui/select.tsx | 4 +- .../ui}/src/components/ui/separator.tsx | 2 +- .../ui}/src/components/ui/sheet.tsx | 6 +- .../ui}/src/components/ui/sidebar.tsx | 18 +- .../ui}/src/components/ui/skeleton.tsx | 2 +- .../ui}/src/components/ui/slider.tsx | 2 +- .../ui}/src/components/ui/sonner.tsx | 2 +- .../ui}/src/components/ui/spinner.tsx | 4 +- .../ui}/src/components/ui/switch.tsx | 2 +- .../ui}/src/components/ui/table.tsx | 2 +- .../ui}/src/components/ui/tabs.tsx | 2 +- .../ui}/src/components/ui/textarea.tsx | 2 +- .../ui}/src/components/ui/toggle-group.tsx | 4 +- .../ui}/src/components/ui/toggle.tsx | 2 +- .../ui}/src/components/ui/tooltip.tsx | 2 +- packages/ui/src/env.d.ts | 4 + packages/ui/src/hooks/use-mobile.tsx | 19 ++ {apps/web => packages/ui}/src/lib/colors.ts | 0 packages/ui/src/lib/format.ts | 165 +++++++++++++ .../landing => packages/ui}/src/lib/types.ts | 0 .../landing => packages/ui}/src/lib/utils.ts | 0 packages/ui/tsconfig.json | 17 ++ 237 files changed, 2987 insertions(+), 652 deletions(-) create mode 100644 apps/landing/src/components/FeatureDetailGrid.astro create mode 100644 apps/landing/src/components/FeatureHero.astro create mode 100644 apps/landing/src/components/RelatedFeatures.astro create mode 100644 apps/landing/src/components/SeoHead.astro create mode 100644 apps/landing/src/components/UseCaseShowcase.astro delete mode 100644 apps/landing/src/components/ui/button.tsx delete mode 100644 apps/landing/src/components/ui/tooltip.tsx delete mode 100644 apps/landing/src/lib/colors.ts create mode 100644 apps/landing/src/pages/features/ai-mcp-integration.astro create mode 100644 apps/landing/src/pages/features/distributed-tracing.astro create mode 100644 apps/landing/src/pages/features/error-tracking.astro create mode 100644 apps/landing/src/pages/features/log-management.astro create mode 100644 apps/landing/src/pages/features/metrics-dashboards.astro create mode 100644 apps/landing/src/pages/features/service-catalog.astro create mode 100644 apps/landing/src/pages/use-cases/api-performance.astro create mode 100644 apps/landing/src/pages/use-cases/ecommerce-observability.astro create mode 100644 apps/landing/src/pages/use-cases/microservices-debugging.astro delete mode 100644 apps/web/src/lib/utils.ts create mode 100644 packages/ui/package.json rename {apps/web => packages/ui}/src/components/charts/_shared/build-chart-config.ts (92%) rename {apps/web => packages/ui}/src/components/charts/_shared/chart-types.ts (100%) rename {apps/web => packages/ui}/src/components/charts/_shared/sample-data.ts (100%) rename {apps/web => packages/ui}/src/components/charts/_shared/svg-filters.tsx (100%) rename {apps/web => packages/ui}/src/components/charts/_shared/svg-patterns.tsx (100%) rename {apps/web => packages/ui}/src/components/charts/_shared/use-dynamic-dasharray.ts (100%) rename {apps/web => packages/ui}/src/components/charts/area/apdex-area-chart.tsx (89%) rename {apps/web => packages/ui}/src/components/charts/area/bar-pattern-area-chart.tsx (82%) rename {apps/web => packages/ui}/src/components/charts/area/dotted-pattern-area-chart.tsx (82%) rename {apps/web => packages/ui}/src/components/charts/area/error-rate-area-chart.tsx (89%) rename {apps/web => packages/ui}/src/components/charts/area/gradient-area-chart.tsx (83%) rename {apps/web => packages/ui}/src/components/charts/area/gradient-rounded-area-chart.tsx (83%) rename {apps/web => packages/ui}/src/components/charts/area/query-builder-area-chart.tsx (97%) rename {apps/web => packages/ui}/src/components/charts/area/throughput-area-chart.tsx (90%) rename {apps/web => packages/ui}/src/components/charts/bar/default-bar-chart.tsx (74%) rename {apps/web => packages/ui}/src/components/charts/bar/default-multiple-bar-chart.tsx (81%) rename {apps/web => packages/ui}/src/components/charts/bar/duotone-bar-chart.tsx (83%) rename {apps/web => packages/ui}/src/components/charts/bar/glowing-bar-chart.tsx (80%) rename {apps/web => packages/ui}/src/components/charts/bar/gradient-bar-chart.tsx (87%) rename {apps/web => packages/ui}/src/components/charts/bar/hatched-bar-chart.tsx (74%) rename {apps/web => packages/ui}/src/components/charts/bar/highlighted-bar-chart.tsx (83%) rename {apps/web => packages/ui}/src/components/charts/bar/query-builder-bar-chart.tsx (96%) rename {apps/web => packages/ui}/src/components/charts/index.ts (100%) rename {apps/web => packages/ui}/src/components/charts/line/dotted-line-chart.tsx (76%) rename {apps/web => packages/ui}/src/components/charts/line/dotted-multi-line-chart.tsx (81%) rename {apps/web => packages/ui}/src/components/charts/line/glowing-line-chart.tsx (75%) rename {apps/web => packages/ui}/src/components/charts/line/latency-line-chart.tsx (92%) rename {apps/web => packages/ui}/src/components/charts/line/number-dot-line-chart.tsx (83%) rename {apps/web => packages/ui}/src/components/charts/line/partial-line-chart.tsx (81%) rename {apps/web => packages/ui}/src/components/charts/line/pinging-dot-chart.tsx (87%) rename {apps/web => packages/ui}/src/components/charts/line/query-builder-line-chart.tsx (97%) rename {apps/web => packages/ui}/src/components/charts/line/rainbow-glow-gradient-line-chart.tsx (76%) rename {apps/web => packages/ui}/src/components/charts/pie/default-radial-chart.tsx (69%) rename {apps/web => packages/ui}/src/components/charts/pie/glowing-radial-chart.tsx (79%) rename {apps/web => packages/ui}/src/components/charts/pie/increase-size-pie-chart.tsx (77%) rename {apps/web => packages/ui}/src/components/charts/pie/rounded-pie-chart.tsx (71%) rename {apps/web => packages/ui}/src/components/charts/radar/glowing-multiple-stroke-radar-chart.tsx (80%) rename {apps/web => packages/ui}/src/components/charts/radar/glowing-stroke-radar-chart.tsx (75%) rename {apps/web => packages/ui}/src/components/charts/radar/stroke-multiple-radar-chart.tsx (81%) rename {apps/web => packages/ui}/src/components/charts/radar/stroke-radar-chart.tsx (76%) rename {apps/web => packages/ui}/src/components/charts/registry.ts (100%) create mode 100644 packages/ui/src/components/icons/alert-warning.tsx create mode 100644 packages/ui/src/components/icons/arrow-down.tsx create mode 100644 packages/ui/src/components/icons/arrow-left.tsx create mode 100644 packages/ui/src/components/icons/arrow-right.tsx create mode 100644 packages/ui/src/components/icons/check.tsx create mode 100644 packages/ui/src/components/icons/chevron-down.tsx create mode 100644 packages/ui/src/components/icons/chevron-expand-y.tsx create mode 100644 packages/ui/src/components/icons/chevron-left.tsx create mode 100644 packages/ui/src/components/icons/chevron-right.tsx create mode 100644 packages/ui/src/components/icons/chevron-up.tsx create mode 100644 packages/ui/src/components/icons/circle-check.tsx create mode 100644 packages/ui/src/components/icons/circle-info.tsx create mode 100644 packages/ui/src/components/icons/circle-xmark.tsx create mode 100644 packages/ui/src/components/icons/code.tsx create mode 100644 packages/ui/src/components/icons/dots.tsx create mode 100644 packages/ui/src/components/icons/eye.tsx create mode 100644 packages/ui/src/components/icons/icon.tsx create mode 100644 packages/ui/src/components/icons/index.ts create mode 100644 packages/ui/src/components/icons/loader.tsx create mode 100644 packages/ui/src/components/icons/magnifier.tsx create mode 100644 packages/ui/src/components/icons/minus.tsx create mode 100644 packages/ui/src/components/icons/network-nodes.tsx create mode 100644 packages/ui/src/components/icons/pulse.tsx create mode 100644 packages/ui/src/components/icons/radio-checked.tsx create mode 100644 packages/ui/src/components/icons/sidebar-left.tsx create mode 100644 packages/ui/src/components/icons/xmark.tsx rename {apps/landing => packages/ui}/src/components/traces/flamegraph-minimap.tsx (100%) rename {apps/landing => packages/ui}/src/components/traces/flamegraph-tooltip.tsx (100%) rename {apps/landing => packages/ui}/src/components/traces/flamegraph.tsx (100%) rename {apps/landing => packages/ui}/src/components/traces/flow-node.tsx (100%) rename {apps/landing => packages/ui}/src/components/traces/flow-utils.ts (100%) rename {apps/landing => packages/ui}/src/components/traces/flow-view.tsx (100%) rename {apps/web => packages/ui}/src/components/ui/accordion.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/alert-dialog.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/alert.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/aspect-ratio.tsx (90%) rename {apps/web => packages/ui}/src/components/ui/avatar.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/badge.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/breadcrumb.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/button-group.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/button.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/calendar.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/card.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/carousel.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/chart.tsx (99%) rename {apps/web => packages/ui}/src/components/ui/checkbox.tsx (94%) rename {apps/web => packages/ui}/src/components/ui/collapsible.tsx (100%) rename {apps/web => packages/ui}/src/components/ui/combobox.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/command.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/context-menu.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/dialog.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/direction.tsx (100%) rename {apps/web => packages/ui}/src/components/ui/drawer.tsx (99%) rename {apps/web => packages/ui}/src/components/ui/dropdown-menu.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/empty.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/field.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/gradient-chart.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/hover-card.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/input-group.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/input-otp.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/input.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/item.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/kbd.tsx (95%) rename {apps/web => packages/ui}/src/components/ui/label.tsx (92%) rename {apps/web => packages/ui}/src/components/ui/menubar.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/native-select.tsx (95%) rename {apps/web => packages/ui}/src/components/ui/navigation-menu.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/pagination.tsx (94%) rename {apps/web => packages/ui}/src/components/ui/popover.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/progress.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/radio-group.tsx (94%) rename {apps/web => packages/ui}/src/components/ui/resizable.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/scroll-area.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/select.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/separator.tsx (93%) rename {apps/web => packages/ui}/src/components/ui/sheet.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/sidebar.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/skeleton.tsx (86%) rename {apps/web => packages/ui}/src/components/ui/slider.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/sonner.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/spinner.tsx (80%) rename {apps/web => packages/ui}/src/components/ui/switch.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/table.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/tabs.tsx (98%) rename {apps/web => packages/ui}/src/components/ui/textarea.tsx (96%) rename {apps/web => packages/ui}/src/components/ui/toggle-group.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/toggle.tsx (97%) rename {apps/web => packages/ui}/src/components/ui/tooltip.tsx (98%) create mode 100644 packages/ui/src/env.d.ts create mode 100644 packages/ui/src/hooks/use-mobile.tsx rename {apps/web => packages/ui}/src/lib/colors.ts (100%) create mode 100644 packages/ui/src/lib/format.ts rename {apps/landing => packages/ui}/src/lib/types.ts (100%) rename {apps/landing => packages/ui}/src/lib/utils.ts (100%) create mode 100644 packages/ui/tsconfig.json diff --git a/apps/landing/package.json b/apps/landing/package.json index a1fc673..5664213 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -13,6 +13,7 @@ "dependencies": { "@astrojs/react": "^4.4.2", "@maple/infra": "workspace:*", + "@maple/ui": "workspace:*", "alchemy": "https://pkg.pr.new/Makisuo/alchemy@e3f48848", "@base-ui/react": "^1.1.0", "@clerk/clerk-react": "^5.60.0", @@ -24,6 +25,7 @@ "astro": "^5.17.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "recharts": "2.15.4", "react": "^19.2.4", "react-dom": "^19.2.4", "tailwind-merge": "^3.4.0", diff --git a/apps/landing/src/components/FeatureDetailGrid.astro b/apps/landing/src/components/FeatureDetailGrid.astro new file mode 100644 index 0000000..14eb46e --- /dev/null +++ b/apps/landing/src/components/FeatureDetailGrid.astro @@ -0,0 +1,16 @@ +--- +interface Props { + items: Array<{ title: string; description: string }>; +} + +const { items } = Astro.props; +--- + +
+ {items.map(item => ( +
+

{item.title}

+

{item.description}

+
+ ))} +
diff --git a/apps/landing/src/components/FeatureHero.astro b/apps/landing/src/components/FeatureHero.astro new file mode 100644 index 0000000..d31f759 --- /dev/null +++ b/apps/landing/src/components/FeatureHero.astro @@ -0,0 +1,49 @@ +--- +interface Props { + label: string; + title: string; + subtitle: string; +} + +const { label, title, subtitle } = Astro.props; +--- + +
+ +
+ +
+ +
+ + {label} + +
+ + +

+ {title} +

+ + +

+ {subtitle} +

+ + + +
+
diff --git a/apps/landing/src/components/FeatureSpotlights.astro b/apps/landing/src/components/FeatureSpotlights.astro index de0a8b1..f9490bf 100644 --- a/apps/landing/src/components/FeatureSpotlights.astro +++ b/apps/landing/src/components/FeatureSpotlights.astro @@ -18,7 +18,7 @@ Visualize request flows across services with flamegraph and waterfall views. Drill into any span to see attributes, events, and timing.

- Learn more → + Learn more →
@@ -96,7 +96,7 @@

Search and filter logs with full-text search. Correlated with traces for seamless debugging across your stack.

- Learn more → + Learn more →
@@ -108,7 +108,7 @@

Track request rates, error rates, and latency percentiles. Build custom charts from any metric your services emit.

- Learn more → + Learn more →
@@ -183,7 +183,7 @@

See all your services at a glance with latency percentiles, throughput, error rates, and environment badges.

- Learn more → + Learn more →
diff --git a/apps/landing/src/components/Footer.astro b/apps/landing/src/components/Footer.astro index 31b2620..61a8ba7 100644 --- a/apps/landing/src/components/Footer.astro +++ b/apps/landing/src/components/Footer.astro @@ -4,7 +4,7 @@