diff --git a/package-lock.json b/package-lock.json index 8d0bd97..c188793 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@hibas123/theme-preact", - "version": "1.0.0", + "version": "1.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6f561bf..51b0740 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hibas123/theme-preact", - "version": "1.0.5", + "version": "1.0.6", "description": "", "main": "out/index.js", "dependencies": { diff --git a/src/Theme.tsx b/src/Theme.tsx index b49caf4..a3ad900 100644 --- a/src/Theme.tsx +++ b/src/Theme.tsx @@ -1,4 +1,4 @@ -import { h } from "preact"; +import { h, createContext } from "preact"; import { useEffect, useState, useMemo } from "preact/hooks"; export enum ThemeModes { @@ -21,6 +21,12 @@ export interface IThemeProps { onSuccess?: string; } +export interface IThemeContext { + mode: ThemeModes.DARK | ThemeModes.LIGHT; +} + +export const ThemeContext = createContext({}); + const modeMediaQuery = window.matchMedia("prefers-color-scheme: dark"); export default function Theme({ mode, children, ...colors }: IThemeProps) { @@ -99,8 +105,12 @@ export default function Theme({ mode, children, ...colors }: IThemeProps) { ]); return ( -
- {children} -
+ +
+ {children} +
+
); } diff --git a/src/index.ts b/src/index.ts index b11347e..4919a68 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,15 +1,18 @@ import "@hibas123/theme/out/prefix.css"; - -import Theme, { IThemeProps, ThemeModes } from "./Theme"; -import Container from "./Container"; import Button, { ButtonFormats, IButtonProps } from "./Button"; -import Fab from "./Fab"; import Card from "./Card"; +import Container from "./Container"; +import Fab from "./Fab"; import Header from "./Header"; import IconButton from "./IconButton"; import List from "./List"; -export { Modal, ModalActions, ModalContent, ModalTitle } from "./Modal"; import Table from "./Table"; +import Theme, { + IThemeContext, + IThemeProps, + ThemeContext, + ThemeModes, +} from "./Theme"; export { IInputCheckboxProps, @@ -21,7 +24,7 @@ export { InputSelect, TextArea, } from "./Input"; - +export { Modal, ModalActions, ModalContent, ModalTitle } from "./Modal"; export { Theme, IThemeProps, @@ -36,4 +39,6 @@ export { Header, List, Table, + IThemeContext, + ThemeContext, };