{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "smj-ui", "homepage": "https://github.com/smjhhhh/smj-ui", "items": [ { "name": "smj-styles", "type": "registry:style", "title": "SMJ cyberpunk styles", "description": "Keyframes (slideFrameSpin, neonPulse, holoSpin, chromaticFlash, scanBeam, meshShift, etc.) and utility classes (.neon-line, .holo-card, .glass, .grid-overlay, .scrollbar-hide, .glow-cyan, .glow-violet, etc.) shared across all components.", "files": [ { "path": "registry/styles/cyber.css", "type": "registry:style", "target": "app/cyber.css" } ] }, { "name": "smj-utils", "type": "registry:lib", "title": "cn() class merge helper", "description": "shadcn-standard cn() utility built on clsx + tailwind-merge.", "dependencies": ["clsx", "tailwind-merge"], "files": [ { "path": "registry/lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" } ] }, { "name": "smj-i18n-optional", "type": "registry:lib", "title": "Optional i18n context", "description": "Components fall back to identity strings if no provider is mounted; pass labels prop or wrap with provider.", "files": [ { "path": "registry/lib/use-i18n-optional.ts", "type": "registry:lib", "target": "lib/use-i18n-optional.tsx" } ] }, { "name": "smj-theme-optional", "type": "registry:lib", "title": "Optional theme context", "description": "Defaults to cyber skin + dark mode if no provider mounted.", "files": [ { "path": "registry/lib/use-theme-optional.ts", "type": "registry:lib", "target": "lib/use-theme-optional.tsx" } ] } ] }