import React from "react"; import { DeepPartial } from "./@types/DeepPartial"; export interface CustomTheme { } export interface Theme { palette: { intentions: { primary: { light: string; main: string; dark: string; contrastText: string; }; secondary: { light: string; main: string; dark: string; contrastText: string; }; accent: { light: string; main: string; dark: string; contrastText: string; }; success: { light: string; main: string; dark: string; contrastText: string; }; info: { light: string; main: string; dark: string; contrastText: string; }; warning: { light: string; main: string; dark: string; contrastText: string; }; error: { light: string; main: string; dark: string; contrastText: string; }; }; gray: { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; }; text: { primary: string; secondary: string; disabled: string; hint: string; }; background: { paper: string; overlay: string; default: string; }; action: { active: string; hover: string; hoverOpacity: number; selected: string; disabled: string; disabledBackground: string; readOnly: string; readOnlyBackground: string; }; }; spacing: number; breakpoints: { xs: number; sm: number; md: number; lg: number; xl: number; }; typography: { h1: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h2: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h3: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h4: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h5: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; body: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; body2: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; button: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; caption: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; /** * カレンダーの日付のフォント設定 * Themeの移行に伴い導入したものであり、ユーザーが利用することは想定していない。 */ INTERNALS_DO_NOT_USE_calendarDay: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; /** * カレンダーが日付に子要素を持っている場合のフォント設定 * Themeの移行に伴い導入したものであり、ユーザーが利用することは想定していない。 */ INTERNALS_DO_NOT_USE_calendarDay_hasChildren: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; }; transitions: { easing: { easeInOut: string; easeOut: string; easeIn: string; sharp: string; }; duration: { shortest: string; shorter: string; short: string; standard: string; complex: string; enteringScreen: string; leavingScreen: string; }; }; shadows: string[]; zIndex: { mobileStepper: number; speedDial: number; appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number; }; } export declare const defaultTheme: Theme; /** * 将来的に移行予定のテーマ */ export declare const futureTheme: { typography: { h1: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h2: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h3: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h4: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; h5: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; body: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontKeerning: string; fontSmoothing: string; }; body2: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontKeerning: string; fontSmoothing: string; }; button: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; caption: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; INTERNALS_DO_NOT_USE_calendarDay: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; INTERNALS_DO_NOT_USE_calendarDay_hasChildren: { fontFamily: string; fontWeight: number; fontSize: number; lineHeight: number; letterSpacing: string; fontSmoothing: string; }; }; }; type PickInternsionsKey = B extends { palette: { intentions: infer D; }; } ? keyof D : never; export type Color = keyof Theme["palette"]["intentions"] | PickInternsionsKey; type PickTypographyKey = B extends { typography: infer D; } ? keyof D : never; export type TypographyVariant = keyof Theme["typography"] | PickTypographyKey; export interface PartialColorProps { /** * 色を指定します。 * * @default default */ color?: Color | "default"; } export interface ThemeProviderProps { theme: DeepPartial; children?: React.ReactNode; } export declare const ThemeProvider: ({ theme, children }: ThemeProviderProps) => import("@emotion/react/jsx-runtime").JSX.Element; export declare const useTheme: () => Theme & CustomTheme; export {};