{"version":3,"file":"Button.jsx","names":["stylex","memo","Link","controlColor","color","font","fontSize","radius","size","timingFunction","transition","a11y","interaction","reset","useRippleEffect","styles","create","button","position","fontFamily","main","body","textAlign","borderStyle","cursor","default","display","gap","rem3","justifyContent","alignItems","a11yOutline","themeBackground","themeColor","opacity","fast","lowercase","textTransform","fontWeightNormal","fontWeight","fontWeightBold","fontWeightLight","fontWeightMedium","inline","icon","hasBadge","content","aspectRatio","borderWidth","borderColor","white900","backgroundColor","buttonPrimaryBackground","borderRadius","circle","top","n_px2","right","width","px4","height","noPadding","padding","buttonSizes","tiny","rem1","rem2","small","rem4","sub","medium","rem6","large","rem8","h4","huge","flexDirection","rem10","CAN_HOVER","buttonVariants","primary","background","buttonPrimaryHoverBackground","buttonPrimaryActiveBackground","buttonPrimaryDisabledBackground","buttonPrimaryColor","buttonPrimaryHoverColor","buttonPrimaryActiveColor","buttonPrimaryDisabledColor","secondary","subscription","mustard150","tertiary","buttonTertiaryBackground","buttonTertiaryHoverBackground","buttonTertiaryActiveBackground","buttonTertiaryDisabledBackground","buttonTertiaryColor","buttonTertiaryHoverColor","buttonTertiaryActiveColor","buttonTertiaryDisabledColor","quaternary","link","linkColor","linkHoverColor","linkActiveColor","margin","Button","props","$","_c","t0","getFontWeightStyle","t1","badge","variant","disableTapHighlight","buttonStyle","defaultOutline","elementProps","rippleRef","disabled","refForAnimatedButtons","undefined","onClick","component","t2","e","preventDefault","t3","t4","children","role","title","to","form","type"],"sources":["../src/Button.tsx"],"sourcesContent":["import * as stylex from \"@stylexjs/stylex\";\nimport {\n\ttype MouseEvent,\n\ttype PropsWithChildren,\n\ttype ReactElement,\n\tmemo,\n} from \"react\";\nimport { Link, type To } from \"react-router\";\n\nimport { controlColor } from \"./theme.stylex\";\nimport {\n\tcolor,\n\tfont,\n\tfontSize,\n\tradius,\n\tsize,\n\ttimingFunction,\n\ttransition,\n} from \"./tokens.stylex\";\n\nimport { a11y, interaction, reset } from \"./mixins\";\nimport useRippleEffect from \"./useRippleEffect\";\n\nconst styles = stylex.create({\n\tbutton: {\n\t\tposition: \"relative\", // needed for ripple effect + badge\n\n\t\tfontFamily: font.main,\n\t\tfontSize: fontSize.body,\n\n\t\ttextAlign: \"center\",\n\n\t\tborderStyle: \"none\",\n\t\tcursor: {\n\t\t\tdefault: \"pointer\",\n\t\t\t\":disabled\": \"not-allowed\",\n\t\t},\n\n\t\tdisplay: \"flex\",\n\n\t\tgap: size.rem3,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\n\t\ttransition: `${transition.a11yOutline}, ${transition.themeBackground}, ${transition.themeColor}`,\n\n\t\t// used for badge\n\t\t\"::after\": {\n\t\t\topacity: 0,\n\t\t\ttransition: `opacity ${timingFunction.fast} ease-out`,\n\t\t},\n\t},\n\n\t// Neuer Stil für lowercase Text\n\tlowercase: {\n\t\ttextTransform: \"lowercase\",\n\t},\n\n\t// Stile für verschiedene Schriftgewichte\n\tfontWeightNormal: {\n\t\tfontWeight: \"normal\",\n\t},\n\n\tfontWeightBold: {\n\t\tfontWeight: \"bold\",\n\t},\n\n\tfontWeightLight: {\n\t\tfontWeight: 300,\n\t},\n\n\tfontWeightMedium: {\n\t\tfontWeight: 500,\n\t},\n\n\tinline: {\n\t\tdisplay: \"inline-flex\",\n\t},\n\n\ticon: {\n\t\tfontSize: \"120%\", // TODO: ASK-UX proportional icon size?\n\t\tdisplay: \"flex\",\n\t},\n\n\thasBadge: {\n\t\t\"::after\": {\n\t\t\tposition: \"absolute\",\n\n\t\t\tcontent: \"''\",\n\t\t\taspectRatio: \"1/1\",\n\n\t\t\topacity: 1,\n\n\t\t\t// not using ds-unit because the border could not be made with that\n\t\t\tborderWidth: \"3px\",\n\t\t\tborderStyle: \"solid\",\n\t\t\tborderColor: color.white900,\n\n\t\t\tbackgroundColor: controlColor.buttonPrimaryBackground,\n\n\t\t\tborderRadius: radius.circle,\n\n\t\t\ttop: size.n_px2,\n\t\t\tright: size.n_px2,\n\t\t\twidth: size.px4,\n\t\t\theight: size.px4,\n\t\t},\n\t},\n\n\tnoPadding: {\n\t\tpadding: 0,\n\t},\n});\n\nconst buttonSizes = stylex.create({\n\ttiny: {\n\t\tgap: size.rem1,\n\t\tpadding: `${size.rem1} ${size.rem2}`,\n\t\tfontSize: fontSize.tiny,\n\t},\n\tsmall: {\n\t\tpadding: `${size.rem2} ${size.rem4}`,\n\t\tfontSize: fontSize.sub,\n\t},\n\tmedium: {\n\t\tpadding: `${size.rem3} ${size.rem6}`,\n\t\tfontSize: fontSize.body,\n\t},\n\tlarge: {\n\t\tpadding: `${size.rem4} ${size.rem8}`,\n\t\tfontSize: fontSize.h4,\n\t},\n\thuge: {\n\t\tflexDirection: \"column\",\n\t\tgap: size.rem2,\n\t\tpadding: `${size.rem4} ${size.rem10}`,\n\t\tfontSize: fontSize.h4,\n\t},\n});\n\nconst CAN_HOVER = \"@media (hover: hover)\";\n\nconst buttonVariants = stylex.create({\n\tprimary: {\n\t\tbackground: {\n\t\t\tdefault: controlColor.buttonPrimaryBackground,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryHoverBackground,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveBackground,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledBackground,\n\t\t},\n\n\t\tcolor: {\n\t\t\tdefault: controlColor.buttonPrimaryColor,\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryHoverColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveColor,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledColor,\n\t\t},\n\t},\n\n\tsecondary: {\n\t\tbackground: {\n\t\t\tdefault: controlColor.buttonPrimaryColor,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryBackground,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveBackground,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledBackground,\n\t\t},\n\n\t\tcolor: {\n\t\t\tdefault: controlColor.buttonPrimaryBackground,\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveColor,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledColor,\n\t\t},\n\t},\n\n\tsubscription: {\n\t\tbackground: {\n\t\t\tdefault: color.mustard150,\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryHoverBackground,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveBackground,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledBackground,\n\t\t},\n\n\t\tcolor: {\n\t\t\tdefault: controlColor.buttonPrimaryColor,\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonPrimaryHoverColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonPrimaryActiveColor,\n\t\t\t\":disabled\": controlColor.buttonPrimaryDisabledColor,\n\t\t},\n\t},\n\n\ttertiary: {\n\t\tbackground: {\n\t\t\tdefault: controlColor.buttonTertiaryBackground,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonTertiaryHoverBackground,\n\t\t\t},\n\t\t\t// TODO: ASK-UX Active style?\n\t\t\t\":active\": controlColor.buttonTertiaryActiveBackground,\n\t\t\t\":disabled\": controlColor.buttonTertiaryDisabledBackground,\n\t\t},\n\n\t\tcolor: {\n\t\t\tdefault: controlColor.buttonTertiaryColor,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonTertiaryHoverColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonTertiaryActiveColor,\n\t\t\t\":disabled\": controlColor.buttonTertiaryDisabledColor,\n\t\t},\n\t},\n\n\t// Quaternary variant: Inverted colors of tertiary\n\tquaternary: {\n\t\tbackground: {\n\t\t\tdefault: controlColor.buttonTertiaryHoverBackground,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonTertiaryBackground,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonTertiaryActiveBackground,\n\t\t\t\":disabled\": controlColor.buttonTertiaryDisabledBackground,\n\t\t},\n\n\t\tcolor: {\n\t\t\tdefault: controlColor.buttonTertiaryHoverColor,\n\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.buttonTertiaryColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.buttonTertiaryActiveColor,\n\t\t\t\":disabled\": controlColor.buttonTertiaryDisabledColor,\n\t\t},\n\t},\n\n\tlink: {\n\t\tcolor: {\n\t\t\tdefault: controlColor.linkColor,\n\t\t\t[CAN_HOVER]: {\n\t\t\t\t\":hover\": controlColor.linkHoverColor,\n\t\t\t},\n\t\t\t\":active\": controlColor.linkActiveColor,\n\n\t\t\t// Nothing here yet?\n\t\t\t// \":disabled\": ,\n\t\t},\n\n\t\tfontWeight: \"normal\",\n\t\tfontSize: \"unset\",\n\t\tbackground: \"none\",\n\t\tpadding: 0,\n\t\tmargin: 0,\n\t},\n});\n\ntype NativeButtonProps = React.DetailedHTMLProps<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\tHTMLButtonElement\n>;\n\nexport interface ButtonBaseProps extends PropsWithChildren {\n\t/**\n\t * See aria roles: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles\n\t */\n\trole?: NativeButtonProps[\"role\"];\n\ttitle?: string;\n\tform?: NativeButtonProps[\"form\"];\n\n\tvariant?:\n\t\t| \"primary\"\n\t\t| \"tertiary\"\n\t\t| \"link\"\n\t\t| \"subscription\"\n\t\t| \"secondary\"\n\t\t| \"quaternary\";\n\tsize?: \"tiny\" | \"small\" | \"medium\" | \"large\" | \"huge\";\n\n\ticon?: ReactElement<unknown>;\n\tnoPadding?: boolean;\n\tinline?: boolean;\n\n\t/**\n\t * Wenn `true`, wird der Text in Kleinbuchstaben angezeigt.\n\t * @default false\n\t */\n\tlowercase?: boolean;\n\n\t/**\n\t * Legt das Schriftgewicht des Buttons fest.\n\t * @default \"normal\"\n\t */\n\tfontWeight?: \"normal\" | \"bold\" | \"light\" | \"medium\";\n\n\t/**\n\t * If `true`, shows a dot indicating that there is something new.\n\t *\n\t * Refs: https://setproduct.com/blog/badge-ui-design\n\t */\n\tbadge?: boolean;\n}\n\n// Properties and some behavior of this button is based on the Button of MUI:\n// https://mui.com/material-ui/react-button/\nexport interface ButtonButtonProps extends ButtonBaseProps {\n\tcomponent?: \"button\" | undefined;\n\n\t// Commonly used button props\n\tonClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n\n\t/** Mandatory because the default type is \"submit\", which is not ideal. */\n\ttype: NativeButtonProps[\"type\"];\n\n\tdisabled?: boolean;\n}\n\nexport interface LinkButtonProps extends ButtonBaseProps {\n\tcomponent: \"link\";\n\tdisabled?: boolean;\n\tto: To;\n\n\t/**\n\t * Also available on the link, so we can implement a share button that links to a URL and can trigger a share functionality.\n\t * @remarks If you want to use this, really think it through. Maybe you want to use a `component=\"button\"` instead.\n\t */\n\tonClick?: () => void;\n}\n\nexport type ButtonProps = ButtonButtonProps | LinkButtonProps;\n\n// TODO: Refactor this to a link button\n\nexport default memo(function Button(props: ButtonProps) {\n\t// Bestimme den fontWeight-Stil basierend auf der Prop oder verwende den Standard \"normal\"\n\tconst getFontWeightStyle = () => {\n\t\tswitch (props.fontWeight) {\n\t\t\tcase \"bold\":\n\t\t\t\treturn styles.fontWeightBold;\n\t\t\tcase \"light\":\n\t\t\t\treturn styles.fontWeightLight;\n\t\t\tcase \"medium\":\n\t\t\t\treturn styles.fontWeightMedium;\n\t\t\tdefault:\n\t\t\t\treturn styles.fontWeightNormal;\n\t\t}\n\t};\n\n\tconst elementProps = stylex.props(\n\t\tinteraction.disableTapHighlight,\n\t\treset.buttonStyle,\n\t\ta11y.defaultOutline,\n\t\tstyles.button,\n\t\tbuttonSizes[props.size ?? \"small\"],\n\t\tbuttonVariants[props.variant ?? \"primary\"],\n\t\tprops.inline && styles.inline,\n\t\tprops.noPadding && styles.noPadding,\n\t\tprops.badge === true && styles.hasBadge,\n\t\tprops.lowercase && styles.lowercase,\n\t\tgetFontWeightStyle(),\n\t);\n\n\tconst rippleRef = useRippleEffect(props.disabled);\n\tconst refForAnimatedButtons =\n\t\tprops.noPadding ||\n\t\tprops.variant === \"link\" ||\n\t\tprops.variant === \"subscription\"\n\t\t\t? undefined\n\t\t\t: rippleRef;\n\n\tconst onClick = props.onClick;\n\n\tif (props.component === \"link\") {\n\t\treturn (\n\t\t\t<Link\n\t\t\t\tref={refForAnimatedButtons}\n\t\t\t\t{...elementProps}\n\t\t\t\trole={props.role}\n\t\t\t\ttitle={props.title}\n\t\t\t\tto={props.to}\n\t\t\t\tonClick={\n\t\t\t\t\tonClick && !props.disabled\n\t\t\t\t\t\t? (e) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t(onClick as () => void)();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{props.icon && (\n\t\t\t\t\t<span {...stylex.props(styles.icon)}>{props.icon}</span>\n\t\t\t\t)}\n\t\t\t\t{props.children}\n\t\t\t</Link>\n\t\t);\n\t}\n\treturn (\n\t\t<button\n\t\t\tref={refForAnimatedButtons}\n\t\t\t{...elementProps}\n\t\t\ttype={props.type}\n\t\t\trole={props.role}\n\t\t\tform={props.form}\n\t\t\tonClick={onClick}\n\t\t\tdisabled={props.disabled}\n\t\t\ttitle={props.title}\n\t\t>\n\t\t\t{props.icon && (\n\t\t\t\t<span {...stylex.props(styles.icon)}>{props.icon}</span>\n\t\t\t)}\n\t\t\t{props.children}\n\t\t</button>\n\t);\n});\n"],"mappings":"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","ignoreList":[]}