{"version":3,"file":"DarkThemeToggle.cjs","sources":["../../../../src/components/DarkThemeToggle/DarkThemeToggle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps, FC } from \"react\";\nimport type { IconBaseProps } from \"react-icons\";\nimport { HiMoon, HiSun } from \"react-icons/hi\";\nimport { twMerge } from \"tailwind-merge\";\nimport { mergeDeep } from \"../../helpers/merge-deep\";\nimport { useIsMounted } from \"../../hooks/use-is-mounted\";\nimport { useThemeMode } from \"../../hooks/use-theme-mode\";\nimport { getTheme } from \"../../theme-store\";\nimport type { DeepPartial } from \"../../types\";\n\nexport interface FlowbiteDarkThemeToggleTheme {\n  root: FlowbiteDarkThemeToggleRootTheme;\n}\n\nexport interface FlowbiteDarkThemeToggleRootTheme {\n  base: string;\n  icon: string;\n}\n\nexport interface DarkThemeToggleProps extends ComponentProps<\"button\"> {\n  iconDark?: FC<IconBaseProps>;\n  iconLight?: FC<IconBaseProps>;\n  theme?: DeepPartial<FlowbiteDarkThemeToggleTheme>;\n}\n\nexport const DarkThemeToggle: FC<DarkThemeToggleProps> = ({\n  className,\n  theme: customTheme = {},\n  iconDark: IconDark = HiSun,\n  iconLight: IconLight = HiMoon,\n  ...props\n}) => {\n  const isMounted = useIsMounted();\n  const { computedMode, toggleMode } = useThemeMode();\n\n  const theme = mergeDeep(getTheme().darkThemeToggle, customTheme);\n\n  return (\n    <button\n      type=\"button\"\n      aria-label=\"Toggle dark mode\"\n      data-testid=\"dark-theme-toggle\"\n      className={twMerge(theme.root.base, className)}\n      onClick={toggleMode}\n      {...props}\n    >\n      <IconDark\n        aria-label=\"Currently dark mode\"\n        data-active={isMounted && computedMode === \"dark\"}\n        className={twMerge(theme.root.icon, \"hidden dark:block\")}\n      />\n      <IconLight\n        aria-label=\"Currently light mode\"\n        data-active={isMounted && computedMode === \"light\"}\n        className={twMerge(theme.root.icon, \"dark:hidden\")}\n      />\n    </button>\n  );\n};\n\nDarkThemeToggle.displayName = \"DarkThemeToggle\";\n"],"names":["HiSun","HiMoon","useIsMounted","useThemeMode","mergeDeep","getTheme","jsxs","twMerge","jsx"],"mappings":";;;;;;;;;;AASY,MAAC,eAAe,GAAG,CAAC;AAChC,EAAE,SAAS;AACX,EAAE,KAAK,EAAE,WAAW,GAAG,EAAE;AACzB,EAAE,QAAQ,EAAE,QAAQ,GAAGA,QAAK;AAC5B,EAAE,SAAS,EAAE,SAAS,GAAGC,SAAM;AAC/B,EAAE,GAAG,KAAK;AACV,CAAC,KAAK;AACN,EAAE,MAAM,SAAS,GAAGC,yBAAY,EAAE,CAAC;AACnC,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAGC,yBAAY,EAAE,CAAC;AACtD,EAAE,MAAM,KAAK,GAAGC,mBAAS,CAACC,cAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACnE,EAAE,uBAAuBC,eAAI;AAC7B,IAAI,QAAQ;AACZ,IAAI;AACJ,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,YAAY,EAAE,kBAAkB;AACtC,MAAM,aAAa,EAAE,mBAAmB;AACxC,MAAM,SAAS,EAAEC,qBAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AACpD,MAAM,OAAO,EAAE,UAAU;AACzB,MAAM,GAAG,KAAK;AACd,MAAM,QAAQ,EAAE;AAChB,wBAAwBC,cAAG;AAC3B,UAAU,QAAQ;AAClB,UAAU;AACV,YAAY,YAAY,EAAE,qBAAqB;AAC/C,YAAY,aAAa,EAAE,SAAS,IAAI,YAAY,KAAK,MAAM;AAC/D,YAAY,SAAS,EAAED,qBAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC;AACpE,WAAW;AACX,SAAS;AACT,wBAAwBC,cAAG;AAC3B,UAAU,SAAS;AACnB,UAAU;AACV,YAAY,YAAY,EAAE,sBAAsB;AAChD,YAAY,aAAa,EAAE,SAAS,IAAI,YAAY,KAAK,OAAO;AAChE,YAAY,SAAS,EAAED,qBAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;AAC9D,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE;AACF,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}