UNPKG

@atiqisrak/shadcn-weekly-calendar

Version:

A beautiful weekly calendar component for shadcn/ui with zoom functionality and event management

66 lines (58 loc) 1.53 kB
const fs = require('fs'); const path = require('path'); interface Schema { name: string; type: 'registry:ui'; registryDependencies: string[]; dependencies: string[]; devDependencies: string[]; tailwind?: { config?: Record<string, any>; }; cssVars?: { light?: Record<string, string>; dark?: Record<string, string>; }; files: Array<{ name: string; content: string; type: 'registry:ui'; target: string; }>; } const components = [ { name: 'weekly-calendar', path: path.join(__dirname, '../components/ui/weekly-calendar.tsx'), registryDependencies: ['avatar', 'button', 'hover-card', 'scroll-area'], dependencies: ['lucide-react'], devDependencies: [], }, ]; const registry = path.join(__dirname, '../public'); if (!fs.existsSync(registry)) { fs.mkdirSync(registry, { recursive: true }); } for (const component of components) { const content = fs.readFileSync(component.path, 'utf8'); const schema: Schema = { name: component.name, type: 'registry:ui', registryDependencies: component.registryDependencies, dependencies: component.dependencies, devDependencies: component.devDependencies, files: [ { name: 'weekly-calendar.tsx', content, type: 'registry:ui', target: 'components/ui/weekly-calendar.tsx', }, ], }; fs.writeFileSync( path.join(registry, `${component.name}.json`), JSON.stringify(schema, null, 2) ); } console.log('Registry generated successfully!');