{"version":3,"file":"pages.cjs","names":["ThemeContext","validateProps","normalizeThemes","getTheme","getSystemTheme","disableAnimation","setMetaColorSchemeValue","MEDIA_SCHEME_THEME","defaultMetaColorSchemeValue","initialScriptTheme","ContainerThemePagesDir"],"sources":["../../src/themes/internals/container/ProviderPagesDir.tsx","../../src/themes/providers/RzlThemePagesProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n  type Dispatch,\n  memo,\n  type SetStateAction,\n  useCallback,\n  useContext,\n  useEffect,\n  useMemo,\n  useState\n} from \"react\";\n\nimport { useRouter } from \"next/router\";\n\nimport { isProdEnv } from \"@rzl-zone/core/env/node\";\nimport { logWarnOnce } from \"@rzl-zone/core/logging/once\";\nimport { minifyInnerHTMLScript } from \"@rzl-zone/core/minifier/minify-script-inline\";\n\nimport { isReactNode } from \"@rzl-zone/core-react/utils/react-node\";\n\nimport { assertIsPlainObject } from \"@rzl-zone/utils-js/assertions\";\nimport { safeStableStringify } from \"@rzl-zone/utils-js/conversions\";\nimport { isFunction, isNonEmptyString } from \"@rzl-zone/utils-js/predicates\";\n\nimport type { RzlThemeProviderProps, ThemeCtx } from \"../../types\";\n\nimport {\n  disableAnimation,\n  getSystemTheme,\n  getTheme,\n  handlingApplyTheme,\n  normalizeThemes,\n  saveToLS,\n  setMetaColorSchemeValue,\n  updateMetaThemeColor\n} from \"../../utils/internal\";\nimport { ThemeContext } from \"../../contexts/ThemeContext\";\nimport { defaultMetaColorSchemeValue, MEDIA_SCHEME_THEME } from \"../../configs\";\n\nimport { initialScriptTheme } from \"../initial-script-theme\";\n// import { validateProps } from \"../helper\";\nimport { validateProps } from \"../helper\";\n\nexport const ContainerPagesDirTheme = <EnablingSystem extends boolean = true>(\n  props: RzlThemeProviderProps<EnablingSystem>\n) => {\n  assertIsPlainObject(props, {\n    message({ currentType, validType }) {\n      return `Props 'RzlThemePagesProvider' must be of type \\`${validType}\\`, but received: \\`${currentType}\\`.`;\n    }\n  });\n\n  const { children, ..._restProps } = props;\n\n  if (!isReactNode(children)) {\n    logWarnOnce(\n      \"Props children at `RzlThemePagesProvider` is required as ReactNode type!!!\"\n    );\n  }\n\n  const context = useContext(ThemeContext.Context);\n\n  // Ignore nested context providers, just passthrough children\n  if (context) return children;\n\n  return (\n    <InternalPagesDirTheme<EnablingSystem> {..._restProps}>\n      {children}\n    </InternalPagesDirTheme>\n  );\n};\n\nconst InternalPagesDirTheme = <EnablingSystem extends boolean = true>(\n  props: RzlThemeProviderProps<EnablingSystem>\n) => {\n  const {\n    forcedTheme,\n    disableTransitionOnChange,\n    enableSystem,\n    enableColorScheme,\n    enableMetaColorScheme,\n    storageKey,\n    themes: _themes,\n    defaultTheme: _defaultTheme,\n    attribute,\n    value,\n    children,\n    nonce,\n    scriptProps,\n    metaColorSchemeValue\n  } = validateProps({ ...props, dir: \"pages\" });\n\n  const themes = normalizeThemes(_themes, enableSystem);\n\n  // Set Default Props Values;\n  const defaultTheme =\n    _defaultTheme && themes.includes(_defaultTheme)\n      ? _defaultTheme\n      : enableSystem\n        ? \"system\"\n        : \"light\";\n\n  const [themeState, setThemeState] = useState<ThemeCtx[\"theme\"]>(() =>\n    getTheme(storageKey, themes, defaultTheme)\n  );\n\n  const [resolvedTheme, setResolvedTheme] = useState<\n    Exclude<ThemeCtx[\"theme\"], \"system\">\n  >(() => (themeState === \"system\" ? getSystemTheme() : themeState));\n\n  const attrs = useMemo(\n    () => (!value ? themes : Object.values(value)),\n    [value, themes]\n  );\n\n  const applyTheme = useCallback(\n    (theme?: string) => {\n      let resolved = theme;\n      if (!resolved) return;\n\n      // If theme is system, resolve it before setting theme\n      if (theme === \"system\") {\n        resolved = enableSystem ? getSystemTheme() : defaultTheme;\n      }\n\n      const name = value && value[resolved] ? value[resolved] : resolved;\n      const disablingAnimation = disableTransitionOnChange\n        ? disableAnimation(nonce)\n        : null;\n\n      handlingApplyTheme({\n        theme: themeState,\n        attribute,\n        attributes: attrs,\n        defaultTheme:\n          defaultTheme === \"system\" ? getSystemTheme() : defaultTheme,\n        enableColorScheme,\n        name,\n        resolved\n      });\n\n      updateMetaThemeColor({\n        theme,\n        enableMetaColorScheme,\n        metaColorSchemeValue: setMetaColorSchemeValue(metaColorSchemeValue)\n      });\n      disablingAnimation?.();\n    },\n    [\n      nonce,\n      attrs,\n      value,\n      attribute,\n      themeState,\n      defaultTheme,\n      enableSystem,\n      enableColorScheme,\n      metaColorSchemeValue,\n      enableMetaColorScheme,\n      disableTransitionOnChange\n    ]\n  );\n\n  const setTheme = useCallback(\n    (value: SetStateAction<NonNullable<ThemeCtx[\"theme\"]>>) => {\n      if (isFunction(value)) {\n        setThemeState((prevTheme) => {\n          const prev = isNonEmptyString(prevTheme) ? prevTheme : defaultTheme;\n          const candidate = value(prev);\n\n          if (!isNonEmptyString(candidate) || !themes.includes(candidate)) {\n            // invalid value -> keep previous theme\n            return prevTheme;\n          }\n          const newTheme = candidate;\n          saveToLS(storageKey, newTheme);\n          return newTheme;\n        });\n      } else if (isNonEmptyString(value)) {\n        const validValue = themes.includes(value) ? value : defaultTheme;\n        setThemeState(validValue);\n        saveToLS(storageKey, validValue);\n      }\n    },\n    [themes, storageKey, defaultTheme]\n  );\n\n  const resolvingTheme = (resolved: ReturnType<typeof getSystemTheme>) => {\n    setResolvedTheme(resolved);\n  };\n\n  const handleMediaQuery = useCallback(\n    (e: MediaQueryListEvent | MediaQueryList) => {\n      const resolved = getSystemTheme(e);\n\n      resolvingTheme(resolved);\n\n      if (themeState === \"system\" && enableSystem && !forcedTheme) {\n        applyTheme(\"system\");\n      }\n    },\n    [themeState, forcedTheme, applyTheme, enableSystem, resolvedTheme]\n  );\n\n  // Always listen to System preference\n  useEffect(() => {\n    const media = window.matchMedia(MEDIA_SCHEME_THEME);\n\n    if (isFunction(media.addEventListener)) {\n      media.addEventListener(\"change\", handleMediaQuery);\n    } else {\n      // Intentionally use deprecated listener methods to support iOS & old browsers\n      media.addListener(handleMediaQuery);\n    }\n\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    handleMediaQuery(media);\n\n    return () => {\n      if (isFunction(media.removeEventListener)) {\n        media.removeEventListener(\"change\", handleMediaQuery);\n      } else {\n        media.removeListener(handleMediaQuery);\n      }\n    };\n  }, [handleMediaQuery]);\n\n  // localStorage event handling\n  useEffect(() => {\n    const handleStorage = (e: StorageEvent) => {\n      if (e.key !== storageKey) {\n        return;\n      }\n\n      // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n      if (!e.newValue) {\n        setTheme(defaultTheme);\n        return;\n      }\n\n      // validate stored theme is allowed\n      if (themes.includes(e.newValue)) {\n        // update directly to avoid saving again to localStorage loop\n        setThemeState(e.newValue);\n      } else {\n        // fallback to default\n        setTheme(defaultTheme);\n      }\n    };\n\n    window.addEventListener(\"storage\", handleStorage);\n    return () => window.removeEventListener(\"storage\", handleStorage);\n  }, [storageKey, themes, setTheme, defaultTheme]);\n\n  // Whenever theme or forcedTheme changes, apply it\n  useEffect(() => {\n    applyTheme(forcedTheme ?? themeState);\n  }, [forcedTheme, themeState, applyTheme]);\n\n  const providerValue: ThemeCtx = useMemo(\n    () => ({\n      theme: themeState,\n      themes,\n      setTheme,\n      forcedTheme,\n      systemTheme: enableSystem ? resolvedTheme : undefined,\n      resolvedTheme: themeState === \"system\" ? resolvedTheme : themeState\n    }),\n    [themeState, setTheme, forcedTheme, resolvedTheme, enableSystem, themes]\n  );\n\n  return (\n    <ThemeContext.Provider value={providerValue}>\n      <ThemeScriptPagesDir\n        {...{\n          forcedTheme,\n          storageKey,\n          attribute,\n          enableSystem,\n          enableColorScheme,\n          enableMetaColorScheme,\n          defaultTheme,\n          value,\n          themes,\n          nonce,\n          scriptProps,\n          metaColorSchemeValue: setMetaColorSchemeValue(metaColorSchemeValue)\n        }}\n      />\n\n      <LsRefresherThemePagesDir\n        storageKey={storageKey}\n        defaultTheme={defaultTheme}\n        enableSystem={enableSystem}\n        theme={providerValue.theme}\n        themes={providerValue.themes}\n        setTheme={providerValue.setTheme}\n      />\n\n      {children}\n    </ThemeContext.Provider>\n  );\n};\n\nconst ThemeScriptPagesDir = memo(\n  <EnablingSystem extends boolean = true>({\n    forcedTheme,\n    storageKey,\n    attribute,\n    enableSystem,\n    enableColorScheme,\n    defaultTheme,\n    value,\n    themes,\n    nonce,\n    scriptProps,\n    enableMetaColorScheme,\n    metaColorSchemeValue = defaultMetaColorSchemeValue\n  }: Omit<\n    RzlThemeProviderProps<EnablingSystem>,\n    \"children\" | \"metaColorSchemeValue\"\n  > &\n    Required<\n      NonNullable<Pick<RzlThemeProviderProps, \"metaColorSchemeValue\">>\n    >) => {\n    const scriptArgs = useMemo(() => {\n      return safeStableStringify([\n        storageKey,\n        attribute,\n        defaultTheme,\n        forcedTheme,\n        themes,\n        value,\n        enableSystem,\n        setMetaColorSchemeValue(metaColorSchemeValue),\n        enableColorScheme,\n        enableMetaColorScheme\n      ]).slice(1, -1);\n    }, [\n      storageKey,\n      attribute,\n      defaultTheme,\n      forcedTheme,\n      themes,\n      value,\n      enableSystem,\n      metaColorSchemeValue,\n      enableColorScheme,\n      enableMetaColorScheme\n    ]);\n\n    const inlineScript = useMemo(() => {\n      const raw = `(${initialScriptTheme.toString()})(${scriptArgs})`;\n\n      const minified = minifyInnerHTMLScript(raw, { mangle: false });\n\n      return minified || raw;\n    }, [scriptArgs]);\n\n    return (\n      <script\n        {...scriptProps}\n        {...(nonce ? { nonce } : {})}\n        data-script=\"rzlzone-themes\"\n        suppressHydrationWarning\n        dangerouslySetInnerHTML={{\n          __html: inlineScript\n          // __html: `(${minifyInnerHTMLScriptInternalOnly(initialScriptTheme)})(${scriptArgs})`\n        }}\n      />\n    );\n  }\n);\n\nThemeScriptPagesDir.displayName = isProdEnv()\n  ? undefined\n  : \"ThemeScriptPagesDir(RzlzoneThemes)\";\n\nconst LsRefresherThemePagesDir = ({\n  theme,\n  themes,\n  setTheme,\n  defaultTheme,\n  enableSystem = true,\n  storageKey = \"rzl-theme\"\n}: {\n  storageKey: string | undefined;\n  defaultTheme: NonNullable<ThemeCtx[\"theme\"]>;\n  enableSystem: boolean | undefined;\n  themes: string[];\n  setTheme: Dispatch<SetStateAction<NonNullable<ThemeCtx[\"theme\"]>>>;\n  theme: string | undefined;\n}) => {\n  const router = useRouter();\n\n  const storageRefresher = useCallback(() => {\n    const getCurrentStorageTheme = (): ThemeCtx[\"theme\"] | null => {\n      return localStorage.getItem(storageKey);\n    };\n\n    const LocalStorageTheme = getCurrentStorageTheme();\n\n    if (!theme) {\n      if (LocalStorageTheme?.trim() === \"\") {\n        return localStorage.removeItem(storageKey);\n      }\n      return;\n    }\n\n    const validValTheme = themes.includes(theme) ? theme : defaultTheme;\n\n    if (!enableSystem && LocalStorageTheme === \"system\") {\n      localStorage.setItem(\n        storageKey,\n        theme === \"system\" ? defaultTheme : validValTheme\n      );\n      return setTheme(theme === \"system\" ? defaultTheme : validValTheme);\n    }\n\n    if (\n      !LocalStorageTheme ||\n      LocalStorageTheme !== theme ||\n      !themes?.includes(LocalStorageTheme)\n    ) {\n      localStorage.setItem(storageKey, validValTheme);\n      return setTheme(validValTheme);\n    }\n  }, [themes, theme, defaultTheme, setTheme, storageKey, enableSystem]);\n\n  useEffect(() => {\n    storageRefresher();\n  }, [router.pathname]);\n\n  return null;\n};\n\nexport default ContainerPagesDirTheme;\n","import type { RzlThemeProviderProps } from \"../types\";\nimport ContainerThemePagesDir from \"../internals/container/ProviderPagesDir\";\n\n/** ------------------------------------------------------------\n * * ***Provider wrapper for configuring and supplying the theme system (Pages Router).***\n * ------------------------------------------------------------\n * **Usage example in your `pages/_app.tsx`:**\n *\n * ```tsx\n * import type { AppProps } from \"next/app\";\n * import { RzlThemePagesProvider } from \"@rzl-zone/next-kit/themes/pages\";\n *\n * export default function MyApp({ Component, pageProps }: AppProps) {\n *   return (\n *     <>\n *       <RzlThemePagesProvider disableTransitionOnChange>\n *         <Component {...pageProps} />\n *       </RzlThemePagesProvider>\n *     </>\n *   );\n * };\n * ```\n * ---\n * - **ℹ️ Tip ***(Recommended)***:**\n *    - If you pass custom themes (e.g. `themes={[\"pink\",\"blue\"]}`) to provider,\n *      remember to add a corresponding override for type-safety:\n *      ```ts\n *\n *      import \"@rzl-zone/next-kit/themes\";\n *\n *      declare module \"@rzl-zone/next-kit/themes\" {\n *        interface ThemeOverrideConfig {\n *          themes: [\"pink\", \"blue\"]; // or themes?: [...];\n *        }\n *      }\n *      ```\n * @param props - Property options of `RzlThemePagesProvider`.\n * @throws Will throw an error if `children` is not provided.\n * @returns A `<RzlThemePagesProvider>` wrapping the passed children.\n */\nexport const RzlThemePagesProvider = <EnablingSystem extends boolean = true>(\n  props: RzlThemeProviderProps<EnablingSystem>\n) => {\n  return (\n    <ContainerThemePagesDir<EnablingSystem> {...props}>\n      {props.children}\n    </ContainerThemePagesDir>\n  );\n};\n"],"mappings":"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"}
