feat: add UI components and utilities

- Introduced Skeleton component for loading states.
- Added Slider component with customizable properties.
- Implemented Sonner for toast notifications with icons.
- Created Spinner component for loading indicators.
- Developed Switch component for toggle functionality.
- Added Table component with subcomponents for structured data display.
- Implemented Tabs component for tabbed navigation.
- Created Textarea component for multi-line text input.
- Developed ToggleGroup and Toggle components for grouped toggle functionality.
- Added Tooltip component for contextual hints.
- Implemented useIsMobile hook for responsive design.
- Updated global styles with Tailwind CSS and custom properties.
- Added utility functions for class name management.
- Configured TypeScript paths for easier imports.
- Updated Vite configuration to include Tailwind CSS and path aliases.
This commit is contained in:
2025-11-15 23:44:58 +01:00
parent cbb59584c4
commit f7a839b11a
64 changed files with 6720 additions and 145 deletions

View File

@@ -0,0 +1,19 @@
import * as React from "react"
const MOBILE_BREAKPOINT = 768
export function useIsMobile() {
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
const onChange = () => {
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
}
mql.addEventListener("change", onChange)
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
return () => mql.removeEventListener("change", onChange)
}, [])
return !!isMobile
}