{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sf-calendar",
"title": "SF Calendar",
"description": "Lazy-loaded date calendar with react-day-picker. Import via next/dynamic only — NOT in sf/index.ts barrel.",
"dependencies": [
"react-day-picker",
"date-fns"
],
"registryDependencies": [
"calendar",
"button"
],
"files": [
{
"path": "components/sf/sf-calendar.tsx",
"content": "\"use client\";\n\n/**\n * SFCalendar -- FRAME layer date picker with zero border-radius.\n *\n * P3 lazy component: import via sf-calendar-lazy.tsx, NOT from sf/index.ts.\n *\n * Wraps the shadcn Calendar (react-day-picker) with DU/TDR industrial styling:\n * sharp corners on every sub-element, 2px border, no decorative rounding.\n *\n * @example\n * ```tsx\n * import { SFCalendarLazy } from \"@/components/sf/sf-calendar-lazy\";\n *\n * \n * ```\n */\n\nimport { Calendar } from \"@/components/ui/calendar\";\nimport { cn } from \"@/lib/utils\";\n\ntype SFCalendarProps = React.ComponentProps;\n\nfunction SFCalendar({ className, classNames, ...props }: SFCalendarProps) {\n return (\n \n );\n}\n\nexport { SFCalendar };\nexport type { SFCalendarProps };\n",
"type": "registry:ui"
},
{
"path": "components/sf/sf-calendar-lazy.tsx",
"content": "\"use client\";\n\n/**\n * Lazy loader for SFCalendar -- loads react-day-picker only when rendered.\n *\n * P3 component: never exported from sf/index.ts barrel.\n * Import this file directly when you need a calendar.\n *\n * @example\n * ```tsx\n * import { SFCalendarLazy } from \"@/components/sf/sf-calendar-lazy\";\n *\n * \n * ```\n */\n\nimport dynamic from \"next/dynamic\";\nimport { SFSkeleton } from \"@/components/sf\";\n\nconst SFCalendarDynamic = dynamic(\n () =>\n import(\"@/components/sf/sf-calendar\").then((m) => ({\n default: m.SFCalendar,\n })),\n {\n ssr: false,\n loading: () => ,\n }\n);\n\nexport function SFCalendarLazy(\n props: React.ComponentProps\n) {\n return ;\n}\n",
"type": "registry:ui"
}
],
"meta": {
"layer": "frame",
"pattern": "B",
"heavy": true
},
"type": "registry:ui"
}