{"version":3,"file":"types.cjs","sources":["../../../../src/components/button/types.ts"],"sourcesContent":["import type { PolymorphicPropsWithRef } from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport const buttonVariants = [\n    \"primary\",\n    \"secondary\",\n    \"tertiary\",\n    \"ghost\",\n] as const;\nexport type ButtonVariant = (typeof buttonVariants)[number];\nexport type IconPosition = \"left\" | \"right\";\n\nexport type IconOptions =\n    // Hvis ikke knappen har ikon, MÅ den ha children:\n    | {\n          iconPosition?: never;\n          icon?: never;\n          children: React.ReactNode;\n      }\n    | {\n          /**\n           * Plasseringen av ikonet\n           * @default \"left\"\n           */\n          iconPosition?: IconPosition;\n          /**\n           * Hvilket ikon som skal vises i knappen\n           */\n          icon: React.ReactElement;\n      };\n\ntype Props = {\n    /**\n     * Hvilken variant av knappen skal vises. Tertiary er planlagt fjernet fordi den ligner for mye på en lenke.\n     * @default \"secondary\"\n     */\n    variant?: ButtonVariant;\n    className?: string;\n    loader?: {\n        showLoader: boolean;\n        textDescription: string;\n    };\n    /**\n     * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"left\"`\n     */\n    iconLeft?: React.ReactNode;\n    /**\n     * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"right\"`\n     */\n    iconRight?: React.ReactNode;\n} & IconOptions;\n\nexport type ButtonProps<ElementType extends React.ElementType> =\n    PolymorphicPropsWithRef<ElementType, Props> & Props;\n\nexport type ButtonComponent = <\n    ElementType extends React.ElementType = \"button\",\n>(\n    props: ButtonProps<ElementType>,\n) => React.ReactElement | null;\n"],"names":[],"mappings":"uGAE8B,CAC1B,UACA,YACA,WACA"}