{"version":3,"file":"provider.cjs","sources":["../../src/theme/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { deepmerge } from \"deepmerge-ts\";\nimport { createContext, useContext, useMemo, type PropsWithChildren } from \"react\";\nimport { deepMergeStrings } from \"../helpers/deep-merge\";\nimport { twMerge } from \"../helpers/tailwind-merge\";\nimport type { FlowbiteProps, FlowbiteTheme, ThemingProps } from \"../types\";\n\nexport interface ThemeProviderValue extends ThemingProps<FlowbiteTheme> {\n  props?: Partial<FlowbiteProps>;\n}\n\nexport interface ThemeProviderProps extends ThemeProviderValue, PropsWithChildren {\n  /**\n   * Prevent merging with parent context value.\n   *\n   * @type {boolean}\n   * @default false\n   */\n  root?: boolean;\n}\n\nconst ThemeProviderContext = createContext<ThemeProviderValue | undefined>(undefined);\n\nexport function ThemeProvider({ children, root, props, theme, clearTheme, applyTheme }: ThemeProviderProps) {\n  const parentProvider = useContext(ThemeProviderContext);\n  const value = useMemo(\n    () => ({\n      props: !root && parentProvider?.props ? deepmerge(parentProvider?.props, props) : props,\n      theme: !root && parentProvider?.theme ? deepMergeStrings(twMerge)(parentProvider.theme, theme) : theme,\n      clearTheme: !root && parentProvider?.clearTheme ? deepmerge(parentProvider.clearTheme, clearTheme) : clearTheme,\n      applyTheme: !root && parentProvider?.applyTheme ? deepmerge(parentProvider?.applyTheme, applyTheme) : applyTheme,\n    }),\n    [\n      root,\n      props,\n      theme,\n      clearTheme,\n      applyTheme,\n      parentProvider?.props,\n      parentProvider?.theme,\n      parentProvider?.clearTheme,\n      parentProvider?.applyTheme,\n    ],\n  );\n\n  return <ThemeProviderContext.Provider value={value}>{children}</ThemeProviderContext.Provider>;\n}\n\nThemeProvider.displayName = \"ThemeProvider\";\n\nexport function useThemeProvider() {\n  return useContext(ThemeProviderContext) ?? {};\n}\n"],"names":["createContext","useContext","useMemo","deepmerge","deepMergeStrings","twMerge","jsx"],"mappings":";;;;;;;;AAOA,MAAM,oBAAoB,GAAGA,mBAAa,CAAC,MAAM,CAAC;AAC3C,SAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;AACxF,EAAE,MAAM,cAAc,GAAGC,gBAAU,CAAC,oBAAoB,CAAC;AACzD,EAAE,MAAM,KAAK,GAAGC,aAAO;AACvB,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,CAAC,IAAI,IAAI,cAAc,EAAE,KAAK,GAAGC,qBAAS,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK;AAC7F,MAAM,KAAK,EAAE,CAAC,IAAI,IAAI,cAAc,EAAE,KAAK,GAAGC,0BAAgB,CAACC,qBAAO,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK;AAC5G,MAAM,UAAU,EAAE,CAAC,IAAI,IAAI,cAAc,EAAE,UAAU,GAAGF,qBAAS,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,UAAU;AACrH,MAAM,UAAU,EAAE,CAAC,IAAI,IAAI,cAAc,EAAE,UAAU,GAAGA,qBAAS,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG;AAC5G,KAAK,CAAC;AACN,IAAI;AACJ,MAAM,IAAI;AACV,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,MAAM,cAAc,EAAE,KAAK;AAC3B,MAAM,cAAc,EAAE,KAAK;AAC3B,MAAM,cAAc,EAAE,UAAU;AAChC,MAAM,cAAc,EAAE;AACtB;AACA,GAAG;AACH,EAAE,uBAAuBG,cAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAChF;AACA,aAAa,CAAC,WAAW,GAAG,eAAe;AACpC,SAAS,gBAAgB,GAAG;AACnC,EAAE,OAAOL,gBAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAC/C;;;;;"}