import type { CSSProperties } from "~/types"; const tokenTypes = [ "color", "space", "font", "font-size", "font-weight", "border-radius", ] as const; type TokenType = (typeof tokenTypes)[number]; export const shorthand = { marginX: (value: T) => [ { key: "marginLeft", value, }, { key: "marginRight", value, }, ], marginY: (value: T) => [ { key: "marginTop", value, }, { key: "marginBottom", value, }, ], mX: (value: T) => [ { key: "marginLeft", value, }, { key: "marginRight", value, }, ], mY: (value: T) => [ { key: "marginTop", value, }, { key: "marginBottom", value, }, ], paddingX: (value: T) => [ { key: "paddingLeft", value, }, { key: "paddingRight", value, }, ], paddingY: (value: T) => [ { key: "paddingTop", value, }, { key: "paddingBottom", value, }, ], pX: (value: T) => [ { key: "paddingLeft", value, }, { key: "paddingRight", value, }, ], pY: (value: T) => [ { key: "paddingTop", value, }, { key: "paddingBottom", value, }, ], maxW: (value: T) => [ { key: "maxWidth", value, }, ], maxH: (value: T) => [ { key: "maxHeight", value, }, ], minW: (value: T) => [ { key: "minWidth", value, }, ], minH: (value: T) => [ { key: "minHeight", value, }, ], }; export const categoryMap = { color: "color", backgroundColor: "color", borderColor: "color", margin: "space", marginTop: "space", marginBottom: "space", marginLeft: "space", marginRight: "space", marginX: "space", marginY: "space", padding: "space", paddingTop: "space", paddingBottom: "space", paddingLeft: "space", paddingRight: "space", paddingX: "space", paddingY: "space", gap: "space", height: "space", width: "space", maxHeight: "space", maxWidth: "space", minHeight: "space", minWidth: "space", fontFamily: "font", fontSize: "font-size", fontWeight: "font-weight", borderRadius: "border-radius", } as const satisfies Partial>; export const getCategory = (value: string) => { return value in categoryMap ? categoryMap[value as keyof typeof categoryMap] + "-" : ""; };