diff --git a/frontends/nextjs/src/components/atoms/feedback/ErrorBoundary.tsx b/frontends/nextjs/src/components/atoms/feedback/ErrorBoundary.tsx index 77efb2dcb..7e2fe9fbc 100644 --- a/frontends/nextjs/src/components/atoms/feedback/ErrorBoundary.tsx +++ b/frontends/nextjs/src/components/atoms/feedback/ErrorBoundary.tsx @@ -1,6 +1,6 @@ 'use client' -import { Alert, Box, Button, Typography } from '@mui/material' +import { Alert, Button, Typography } from '@/fakemui' import React, { Component, ReactNode } from 'react' import { logError, LogLevel } from '@/lib/errors/log-error' @@ -58,19 +58,19 @@ export class ErrorBoundary extends Component { // Default error UI return ( - - - +
+ + Something went wrong - + {this.state.error?.message || 'An unexpected error occurred'} - - +
) } diff --git a/frontends/nextjs/src/components/atoms/inputs/Select.tsx b/frontends/nextjs/src/components/atoms/inputs/Select.tsx index 8f51d5bd4..7886d2720 100644 --- a/frontends/nextjs/src/components/atoms/inputs/Select.tsx +++ b/frontends/nextjs/src/components/atoms/inputs/Select.tsx @@ -1,11 +1,6 @@ 'use client' -import { - FormControl, - MenuItem, - Select as MuiSelect, - SelectProps as MuiSelectProps, -} from '@mui/material' +import { Select as FakemuiSelect } from '@/fakemui' import { forwardRef } from 'react' export interface SelectOption { @@ -14,46 +9,48 @@ export interface SelectOption { disabled?: boolean } -export interface SelectProps extends Omit { +/** + * Props for the Select component + * Wrapper around fakemui Select to maintain API compatibility + */ +export interface SelectProps extends Omit, 'children'> { + /** Array of select options */ options: SelectOption[] + /** Placeholder text */ placeholder?: string + /** Error state */ + error?: boolean + /** Full width */ + fullWidth?: boolean + /** MUI sx prop - converted to className for compatibility */ + sx?: any + /** MUI displayEmpty prop (ignored for compatibility) */ + displayEmpty?: boolean } -const Select = forwardRef( - ({ options, error, fullWidth = true, placeholder, ...props }, ref) => { +const Select = forwardRef( + ({ options, error, fullWidth = true, placeholder, sx, className, displayEmpty, ...props }, ref) => { + // Combine className with any sx-based classes + const combinedClassName = [className, sx?.className, error ? 'select--error' : ''].filter(Boolean).join(' ') + return ( - - - {placeholder && ( - - {placeholder} - - )} - {options.map(option => ( - - {option.label} - - ))} - - + + {placeholder && ( + + )} + {options.map(option => ( + + ))} + ) } ) diff --git a/packages/stats_grid/seed/scripts/config.json b/packages/stats_grid/seed/scripts/config.json new file mode 100644 index 000000000..b3b154e05 --- /dev/null +++ b/packages/stats_grid/seed/scripts/config.json @@ -0,0 +1,14 @@ +{ + "defaultGridClass": "grid gap-4 md:grid-cols-3 lg:grid-cols-6", + "defaultCardClass": "bg-black/40 border-white/10", + "colorClasses": { + "white": "text-white", + "red": "text-red-400", + "yellow": "text-yellow-400", + "blue": "text-blue-400", + "green": "text-green-400", + "orange": "text-orange-400", + "purple": "text-purple-400", + "gray": "text-gray-400" + } +} diff --git a/packages/stats_grid/seed/scripts/stats/types.lua b/packages/stats_grid/seed/scripts/stats/types.lua new file mode 100644 index 000000000..aaf844e6f --- /dev/null +++ b/packages/stats_grid/seed/scripts/stats/types.lua @@ -0,0 +1,33 @@ +-- Type definitions for stats grid + +---@alias StatColor "white"|"red"|"yellow"|"blue"|"green"|"orange"|"purple"|"gray" + +---@class StatItem +---@field key string +---@field label string +---@field value number +---@field color StatColor + +---@class StatsData +---@field [string] number + +---@class StatConfig +---@field key string +---@field label string +---@field color StatColor + +---@class StatsGridProps +---@field stats StatsData +---@field config? StatConfig[] +---@field gridClass? string +---@field cardClass? string + +---@class GridConfig +---@field defaultGridClass string +---@field defaultCardClass string +---@field colorClasses table + +---@class UIComponent +---@field type string +---@field props? table +---@field children? UIComponent[]