
* feat: ✨ add empty packages/ui * feat: ⚗️ move taxes app-grid to packages/ui * build: ⬆️ upgrade macaw-ui in packages/ui * build: ⬆️ upgrade macaw even harder * add app sdk * Fix app-sdk version * Add SemanticChip * update lock --------- Co-authored-by: Adrian Pilarczyk <adrianpilarczyk314@gmail.com>
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { BoxProps, Chip, ChipProps, Text, TextProps } from "@saleor/macaw-ui/next";
|
|
|
|
const colorPropsBorderMapping: Record<ChipProps["variant"], BoxProps["borderColor"]> = {
|
|
default: "neutralSubdued",
|
|
warning: "criticalDefault",
|
|
error: "criticalDefault",
|
|
success: "neutralDefault",
|
|
};
|
|
|
|
const colorPropsTextMapping: Record<ChipProps["variant"], BoxProps["color"]> = {
|
|
default: "textNeutralPlain",
|
|
warning: "textCriticalDefault",
|
|
error: "textCriticalDefault",
|
|
success: "text2Decorative",
|
|
};
|
|
|
|
const colorPropsBgMapping: Record<ChipProps["variant"], BoxProps["backgroundColor"]> = {
|
|
default: "surfaceNeutralHighlight",
|
|
warning: "surfaceNeutralHighlight",
|
|
error: "surfaceCriticalSubdued",
|
|
success: "decorativeSurfaceSubdued2",
|
|
};
|
|
|
|
interface ChipTextProps extends ChipProps {
|
|
variant?: "default" | "warning" | "error" | "success";
|
|
innerTextProps?: TextProps;
|
|
}
|
|
|
|
export const SemanticChip = ({
|
|
variant = "default",
|
|
children,
|
|
size,
|
|
innerTextProps,
|
|
...props
|
|
}: ChipTextProps) => {
|
|
return (
|
|
<Chip
|
|
backgroundColor={colorPropsBgMapping[variant]}
|
|
borderColor={colorPropsBorderMapping[variant]}
|
|
size={size}
|
|
{...props}
|
|
>
|
|
<Text
|
|
color={colorPropsTextMapping[variant]}
|
|
size={size}
|
|
variant={"caption"}
|
|
{...innerTextProps}
|
|
>
|
|
{children}
|
|
</Text>
|
|
</Chip>
|
|
);
|
|
};
|