- Add package.json for the root with workspace configuration and scripts - Create @gruperly/config package with TypeScript configuration - Establish shared package @gruperly/shared with Zod schemas for validation - Implement group, student, and payment schemas using Zod - Set up TypeScript configuration for shared package - Document stack architecture and technical specifications in stack.md - Configure Turborepo with build, dev, lint, and typecheck tasks
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { forwardRef, type SVGProps } from 'react'
|
|
import { cn } from '../../lib/utils'
|
|
|
|
export type LogoIconProps = SVGProps<SVGSVGElement> & {
|
|
className?: string
|
|
}
|
|
|
|
export const LogoIcon = forwardRef<SVGSVGElement, LogoIconProps>(
|
|
({ className, ...props }, ref) => {
|
|
return (
|
|
<svg
|
|
ref={ref}
|
|
viewBox="0 0 40 40"
|
|
fill="none"
|
|
role="img"
|
|
aria-label="Gruperly"
|
|
className={cn('size-8', className)}
|
|
{...props}
|
|
>
|
|
<rect
|
|
width="40"
|
|
height="40"
|
|
rx="10"
|
|
className="fill-accent-soft"
|
|
/>
|
|
<path
|
|
d="M17 14.5c0-1.4 3-1.4 3 0V27.5c0 3-2.5 6-6.5 6-3.6 0-6-2.1-6-5 0-1.4 3-1.4 3 0 0 1 .6 2 3 2 2 0 3-1.2 3-3V17z"
|
|
className="fill-accent"
|
|
/>
|
|
<path
|
|
d="M20 15.5c0-1.4 3-1.4 3 0v6c0 3 2 5 5.5 5 1.4 0 3-1.2 3-3 0-1.4 3-1.4 3 0 0 3-2.6 4.6-6.5 4.6-4 0-5-3-5-6.6v-6z"
|
|
className="fill-accent"
|
|
/>
|
|
</svg>
|
|
)
|
|
},
|
|
)
|
|
|
|
LogoIcon.displayName = 'LogoIcon'
|