{
  "version": 3,
  "sources": ["../../../src/client-only.ts"],
  "sourcesContent": ["import type { Component, JSX } from 'solid-js';\nimport {\n  Show,\n  createComponent,\n  createMemo,\n  createSignal,\n  lazy,\n  onMount,\n  sharedConfig,\n} from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\nexport const createClientSignal = isServer\n  ? (): (() => boolean) => () => false\n  : (): (() => boolean) => {\n      const [flag, setFlag] = createSignal(false);\n\n      onMount(() => {\n        setFlag(true);\n      });\n\n      return flag;\n    };\n\nexport interface ClientOnlyProps {\n  fallback?: JSX.Element;\n  children?: JSX.Element;\n}\n\nexport const ClientOnly = (props: ClientOnlyProps): JSX.Element => {\n  const isClient = createClientSignal();\n\n  return Show({\n    keyed: false,\n    get when() {\n      return isClient();\n    },\n    get fallback() {\n      return props.fallback;\n    },\n    get children() {\n      return props.children;\n    },\n  });\n};\n\nexport function clientOnly<T extends Component<any>>(\n  fn: () => Promise<{ default: T }>,\n): T {\n  const Lazy = lazy(fn);\n  return ((props: any) => {\n    if (sharedConfig.context) {\n      const isClient = createClientSignal();\n\n      return createMemo(() => {\n        if (isClient()) {\n          return createComponent(Lazy, props);\n        }\n        return undefined;\n      });\n    }\n    return createComponent(Lazy, props);\n  }) as unknown as T;\n}\n\nexport function clientComponent<T extends Component<any>>(Comp: T): T {\n  return ((props: any) => {\n    const isClient = createClientSignal();\n\n    return createMemo(() => {\n      if (isClient()) {\n        return createComponent(Comp, props);\n      }\n      return undefined;\n    });\n  }) as unknown as T;\n}\n"],
  "mappings": ";AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AAElB,IAAM,qBAAqB,WAC9B,MAAuB,MAAM,QAC7B,MAAuB;AACrB,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAE1C,UAAQ,MAAM;AACZ,YAAQ,IAAI;AAAA,EACd,CAAC;AAED,SAAO;AACT;AAOG,IAAM,aAAa,CAAC,UAAwC;AACjE,QAAM,WAAW,mBAAmB;AAEpC,SAAO,KAAK;AAAA,IACV,OAAO;AAAA,IACP,IAAI,OAAO;AACT,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,IAAI,WAAW;AACb,aAAO,MAAM;AAAA,IACf;AAAA,IACA,IAAI,WAAW;AACb,aAAO,MAAM;AAAA,IACf;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WACd,IACG;AACH,QAAM,OAAO,KAAK,EAAE;AACpB,SAAQ,CAAC,UAAe;AACtB,QAAI,aAAa,SAAS;AACxB,YAAM,WAAW,mBAAmB;AAEpC,aAAO,WAAW,MAAM;AACtB,YAAI,SAAS,GAAG;AACd,iBAAO,gBAAgB,MAAM,KAAK;AAAA,QACpC;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO,gBAAgB,MAAM,KAAK;AAAA,EACpC;AACF;AAEO,SAAS,gBAA0C,MAAY;AACpE,SAAQ,CAAC,UAAe;AACtB,UAAM,WAAW,mBAAmB;AAEpC,WAAO,WAAW,MAAM;AACtB,UAAI,SAAS,GAAG;AACd,eAAO,gBAAgB,MAAM,KAAK;AAAA,MACpC;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;",
  "names": []
}
