import { ReactNode } from 'react'; import { default as tokens } from '../tokens.js'; export interface DataTestAutoId { "data-testautoid"?: string; } export declare const BRANDS: readonly []; export type Brand = (typeof BRANDS)[number]; export type Size = "small" | "medium" | "large"; export type ColorScheme = "light" | "dark"; /** * Eksplisitte typer for modusene som brukes i Jøkul, slik at de kan brukes aktivt i komponentene * @example type Props = { myProp: string } & JokulModes; * @example interface Props extends JokulModes { myProp: string }; */ export interface JokulModes { "data-brand"?: Brand; "data-size"?: Size; "data-theme"?: ColorScheme; } export type Easing = keyof typeof tokens.motion.easing; export type Timing = keyof typeof tokens.motion.timing; /** * Etter React 18 er ikke children lenger en _implicit type_. Tanken er at * TypeScript skal kunne oppdage når komponenten forventer children og ikke * får det, eller at komponenten blir _gitt_ children men ikke forventer det. * * Om komponenten din ikke tar i mot children er det i prinsippet ikke noe du * trenger å gjøre. Om den derimot tar i mot children bør du spesifisere det. * Dersom de er valgfrie (for eksempel om du har en standardverdi) bruker du * WithOptionalChildren. * * @see WithOptionalChildren * @see https://solverfox.dev/writing/no-implicit-children/ */ export interface WithChildren { children: ReactNode | ReactNode[]; } /** * Etter React 18 er ikke children lenger en _implicit type_. Tanken er at * TypeScript skal kunne oppdage når komponenten forventer children og ikke * får det, eller at komponenten blir _gitt_ children men ikke forventer det. * * Om komponenten din ikke tar i mot children er det i prinsippet ikke noe du * trenger å gjøre. Om den derimot tar i mot children bør du spesifisere det. * * Om du alltid forventer å få children, bruk WithChildren. * * @see WithChildren * @see https://solverfox.dev/writing/no-implicit-children/ */ export interface WithOptionalChildren { children?: ReactNode | ReactNode[]; }