{"version":3,"file":"vanilla.cjs","sources":["../src/vanilla.ts"],"sourcesContent":["// Vanilla JavaScript entry point\nimport { createElement } from \"react\";\nimport type { Root } from \"react-dom/client\";\nimport { createRoot } from \"react-dom/client\";\nimport { Widget } from \"./components/widget\";\nimport \"./global.css\";\nimport { initFeedget } from \"./lib/api\";\n\nexport interface FeedgetConfig {\n  apiKey: string;\n  apiUrl?: string;\n  orientation?: \"left\" | \"right\";\n  metadata?: {\n    userId?: string;\n    version?: string;\n    custom?: Record<string, any>;\n  };\n}\n\nclass FeedgetWidget {\n  private root: Root | null = null;\n  private container: HTMLDivElement | null = null;\n  private config: FeedgetConfig;\n\n  constructor(config: FeedgetConfig) {\n    this.config = config;\n    initFeedget(config);\n  }\n\n  init(): void {\n    // Check if already initialized\n    if (this.container) {\n      console.warn(\"Feedget Widget already initialized\");\n      return;\n    }\n\n    // Create container\n    this.container = document.createElement(\"div\");\n    this.container.id = \"feedget-widget-root\";\n    document.body.appendChild(this.container);\n\n    // Create React root and render widget\n    this.root = createRoot(this.container);\n    this.root.render(\n      createElement(Widget, {\n        apiKey: this.config.apiKey,\n        apiUrl: this.config.apiUrl,\n        orientation: this.config.orientation,\n        metadata: this.config.metadata,\n      })\n    );\n  }\n\n  destroy(): void {\n    if (this.root) {\n      this.root.unmount();\n      this.root = null;\n    }\n    if (this.container) {\n      document.body.removeChild(this.container);\n      this.container = null;\n    }\n  }\n\n  updateConfig(newConfig: Partial<FeedgetConfig>): void {\n    this.config = { ...this.config, ...newConfig };\n    initFeedget(this.config);\n\n    if (this.root) {\n      this.root.render(\n        createElement(Widget, {\n          apiKey: this.config.apiKey,\n          apiUrl: this.config.apiUrl,\n          orientation: this.config.orientation,\n          metadata: this.config.metadata,\n        })\n      );\n    }\n  }\n}\n\n// Global instance\nlet feedgetInstance: FeedgetWidget | null = null;\n\n// Global API\nexport const Feedget = {\n  init(config: FeedgetConfig): void {\n    if (feedgetInstance) {\n      console.warn(\n        \"Feedget already initialized. Use Feedget.updateConfig() to update configuration.\"\n      );\n      return;\n    }\n\n    feedgetInstance = new FeedgetWidget(config);\n    feedgetInstance.init();\n  },\n\n  destroy(): void {\n    if (feedgetInstance) {\n      feedgetInstance.destroy();\n      feedgetInstance = null;\n    }\n  },\n\n  updateConfig(config: Partial<FeedgetConfig>): void {\n    if (feedgetInstance) {\n      feedgetInstance.updateConfig(config);\n    } else {\n      console.error(\"Feedget not initialized. Call Feedget.init() first.\");\n    }\n  },\n};\n\n// Make it available globally for vanilla JavaScript\nif (typeof window !== \"undefined\") {\n  (window as any).Feedget = Feedget;\n}\n"],"names":["FeedgetWidget","config","initFeedget","createRoot","createElement","Widget","newConfig","feedgetInstance","Feedget"],"mappings":"+KAmBA,MAAMA,CAAc,CACV,KAAoB,KACpB,UAAmC,KACnC,OAER,YAAYC,EAAuB,CACjC,KAAK,OAASA,EACdC,EAAAA,YAAYD,CAAM,CACpB,CAEA,MAAa,CAEX,GAAI,KAAK,UAAW,CAClB,QAAQ,KAAK,oCAAoC,EACjD,MACF,CAGA,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,UAAU,GAAK,sBACpB,SAAS,KAAK,YAAY,KAAK,SAAS,EAGxC,KAAK,KAAOE,2BAAW,KAAK,SAAS,EACrC,KAAK,KAAK,OACRC,EAAAA,cAAcC,EAAAA,OAAQ,CACpB,OAAQ,KAAK,OAAO,OACpB,OAAQ,KAAK,OAAO,OACpB,YAAa,KAAK,OAAO,YACzB,SAAU,KAAK,OAAO,QAAA,CACvB,CAAA,CAEL,CAEA,SAAgB,CACV,KAAK,OACP,KAAK,KAAK,QAAA,EACV,KAAK,KAAO,MAEV,KAAK,YACP,SAAS,KAAK,YAAY,KAAK,SAAS,EACxC,KAAK,UAAY,KAErB,CAEA,aAAaC,EAAyC,CACpD,KAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,GAAGA,CAAA,EACnCJ,EAAAA,YAAY,KAAK,MAAM,EAEnB,KAAK,MACP,KAAK,KAAK,OACRE,EAAAA,cAAcC,EAAAA,OAAQ,CACpB,OAAQ,KAAK,OAAO,OACpB,OAAQ,KAAK,OAAO,OACpB,YAAa,KAAK,OAAO,YACzB,SAAU,KAAK,OAAO,QAAA,CACvB,CAAA,CAGP,CACF,CAGA,IAAIE,EAAwC,KAGrC,MAAMC,EAAU,CACrB,KAAKP,EAA6B,CAChC,GAAIM,EAAiB,CACnB,QAAQ,KACN,kFAAA,EAEF,MACF,CAEAA,EAAkB,IAAIP,EAAcC,CAAM,EAC1CM,EAAgB,KAAA,CAClB,EAEA,SAAgB,CACVA,IACFA,EAAgB,QAAA,EAChBA,EAAkB,KAEtB,EAEA,aAAaN,EAAsC,CAC7CM,EACFA,EAAgB,aAAaN,CAAM,EAEnC,QAAQ,MAAM,qDAAqD,CAEvE,CACF,EAGI,OAAO,OAAW,MACnB,OAAe,QAAUO"}