{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "lib-context",
  "type": "registry:lib",
  "title": "lib/context",
  "description": "compound component 용 Context 생성 헬퍼.",
  "files": [
    {
      "path": "poc/design-system/implement/src/lib/context.ts",
      "content": "import { createContext, useContext } from \"react\";\n\n/**\n * compound component 용 Context 생성 헬퍼.\n * 하위 컴포넌트를 Root 밖에서 쓰면 바로 에러를 던져 잘못된 조합을 알려줍니다.\n */\nexport function createStrictContext<T>(componentName: string) {\n  const Ctx = createContext<T | null>(null);\n  Ctx.displayName = `${componentName}Context`;\n\n  function useStrict(partName: string): T {\n    const value = useContext(Ctx);\n    if (value === null) {\n      throw new Error(`<${partName}> 는 <${componentName}> 안에서 사용해야 합니다.`);\n    }\n    return value;\n  }\n\n  function useOptional(): T | null {\n    return useContext(Ctx);\n  }\n\n  return [Ctx, useStrict, useOptional] as const;\n}\n",
      "type": "registry:lib",
      "target": "components/lib/context.ts"
    }
  ],
  "categories": [
    "internal"
  ],
  "meta": {
    "version": "0.1.0"
  }
}
