const size = [
  "xs",
  "sm",
  "md",
  "lg"
] as const

const color = [
  "default",
  "danger",
  "success",
  "warning",
  "primary",
  "secondary",
  "collab",
  "ai"
] as const

const tagColor = [
  "default",
  "danger",
  "success",
  "warning",
  "primary",
  "secondary",
  "collab",
  "ai"
] as const

const orientation = [
  "horizontal",
  "vertical"
] as const

export default {
  "slots": {
    "root": "isolate relative inline-flex items-center",
    "base": "w-full py-0 border-0 focus:outline-none disabled:cursor-not-allowed disabled:opacity-75 placeholder:text-base-400 dark:placeholder:text-base-300 appearance-none transition duration-300 ease-linear ring ring-inset ring-base-300 dark:ring-base-800 text-base-master bg-white placeholder:text-base-400 hover:text-base-900 focus:text-base-900 active:text-base-900 dark:text-base-150 dark:bg-transparent dark:placeholder:text-base-300 dark:hover:text-base-350 dark:focus:text-base-350 dark:active:text-base-350 font-b24-primary font-regular text-md leading-none align-middle text-ellipsis whitespace-nowrap",
    "increment": "absolute flex items-center",
    "decrement": "absolute flex items-center",
    "tag": "pointer-events-none select-none absolute z-10 -top-1.5 right-3 h-sm px-1.5 flex flex-col justify-center items-center font-b24-primary font-bold text-6xs leading-none uppercase rounded-full"
  },
  "variants": {
    "size": {
      "xs": "px-2 h-xl2 gap-1",
      "sm": "px-2.5 h-8 gap-1.5",
      "md": "px-2.5 h-10 gap-1.5",
      "lg": "px-3 h-12 gap-2"
    },
    "color": {
      "default": "",
      "danger": "",
      "success": "",
      "warning": "",
      "primary": "",
      "secondary": "",
      "collab": "",
      "ai": ""
    },
    "tagColor": {
      "default": {
        "tag": "text-white bg-base-900 dark:text-base-150 dark:bg-base-900"
      },
      "danger": {
        "tag": "text-white bg-red-500 dark:text-red-250 dark:bg-red-600"
      },
      "success": {
        "tag": "text-white bg-green-500 dark:text-green-250 dark:bg-green-600"
      },
      "warning": {
        "tag": "text-white bg-orange-500 dark:text-orange-250 dark:bg-orange-600"
      },
      "primary": {
        "tag": "text-white bg-blue-500 dark:text-blue-250 dark:bg-blue-600"
      },
      "secondary": {
        "tag": "text-white bg-cyan-350 dark:text-base-150 dark:bg-cyan-500"
      },
      "collab": {
        "tag": "text-white bg-collab-500 dark:text-collab-200 dark:bg-collab-800"
      },
      "ai": {
        "tag": "text-white bg-ai-500 dark:text-ai-200 dark:bg-ai-800"
      }
    },
    "rounded": {
      "true": "rounded-3xl",
      "false": "rounded-2xs"
    },
    "noPadding": {
      "true": {
        "base": "px-0"
      }
    },
    "noBorder": {
      "true": "ring-0 focus-visible:ring-0"
    },
    "underline": {
      "true": "ring-0 focus-visible:ring-0 border-b border-b-base-300 rounded-none"
    },
    "disabled": {
      "true": {
        "increment": "opacity-75 cursor-not-allowed",
        "decrement": "opacity-75 cursor-not-allowed"
      }
    },
    "orientation": {
      "horizontal": {
        "base": "text-center",
        "increment": "inset-y-0 end-0 py-0 pe-0 [&>button]:p-1",
        "decrement": "inset-y-0 start-0 py-0 ps-0 [&>button]:p-1"
      },
      "vertical": {
        "increment": "top-1 end-0 pe-1 [&>button]:p-0",
        "decrement": "bottom-1 end-0 pe-1 [&>button]:p-0"
      }
    },
    "highlight": {
      "true": ""
    }
  },
  "compoundVariants": [
    {
      "color": "default" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-base-900 dark:focus-visible:ring-base-350"
    },
    {
      "color": "default" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset ring-base-900 dark:ring-base-350"
    },
    {
      "color": "default" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-base-900 dark:focus-visible:border-b-base-350"
    },
    {
      "color": "default" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-base-900 dark:border-b-base-350"
    },
    {
      "color": "danger" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-red-500 dark:focus-visible:ring-red-600"
    },
    {
      "color": "danger" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-red-500 dark:ring-red-600"
    },
    {
      "color": "danger" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-red-500 dark:focus-visible:border-b-red-600"
    },
    {
      "color": "danger" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-red-500 dark:border-b-red-600"
    },
    {
      "color": "success" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-green-500 dark:focus-visible:ring-green-600"
    },
    {
      "color": "success" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-green-500 dark:ring-green-600"
    },
    {
      "color": "success" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-green-500 dark:focus-visible:border-b-green-600"
    },
    {
      "color": "success" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-green-500 dark:border-b-green-600"
    },
    {
      "color": "warning" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-orange-500 dark:focus-visible:ring-orange-600"
    },
    {
      "color": "warning" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-orange-500 dark:ring-orange-600"
    },
    {
      "color": "warning" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-orange-500 dark:focus-visible:border-b-orange-600"
    },
    {
      "color": "warning" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-orange-500 dark:border-b-orange-600"
    },
    {
      "color": "primary" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-blue-500 dark:focus-visible:ring-blue-600"
    },
    {
      "color": "primary" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-blue-500 dark:ring-blue-600"
    },
    {
      "color": "primary" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-blue-500 dark:focus-visible:border-b-blue-600"
    },
    {
      "color": "primary" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-blue-500 dark:border-b-blue-600"
    },
    {
      "color": "secondary" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-cyan-500 dark:focus-visible:ring-cyan-600"
    },
    {
      "color": "secondary" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-cyan-500 dark:ring-cyan-600"
    },
    {
      "color": "secondary" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-cyan-500 dark:focus-visible:border-b-cyan-600"
    },
    {
      "color": "secondary" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-cyan-500 dark:border-b-cyan-600"
    },
    {
      "color": "collab" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-collab-500 dark:focus-visible:ring-collab-600"
    },
    {
      "color": "collab" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-collab-500 dark:ring-collab-600"
    },
    {
      "color": "collab" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-collab-500 dark:focus-visible:border-b-collab-600"
    },
    {
      "color": "collab" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-collab-500 dark:border-b-collab-600"
    },
    {
      "color": "ai" as typeof color[number],
      "noBorder": false,
      "underline": false,
      "class": "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ai-500 dark:focus-visible:ring-ai-600"
    },
    {
      "color": "ai" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": false,
      "class": "ring ring-inset  ring-ai-500 dark:ring-ai-600"
    },
    {
      "color": "ai" as typeof color[number],
      "noBorder": false,
      "underline": true,
      "class": "focus-visible:border-b-ai-500 dark:focus-visible:border-b-ai-600"
    },
    {
      "color": "ai" as typeof color[number],
      "highlight": true,
      "noBorder": false,
      "underline": true,
      "class": "border-b-ai-500 dark:border-b-ai-600"
    },
    {
      "orientation": "horizontal" as typeof orientation[number],
      "rounded": true,
      "class": {
        "increment": "[&>button]:rounded-3xl",
        "decrement": "[&>button]:rounded-3xl"
      }
    },
    {
      "orientation": "horizontal" as typeof orientation[number],
      "size": "xs" as typeof size[number],
      "class": {
        "base": "px-[1.3rem]",
        "increment": "[&>button]:h-[24px] scale-80",
        "decrement": "[&>button]:h-[24px] scale-80"
      }
    },
    {
      "orientation": "horizontal" as typeof orientation[number],
      "size": "sm" as typeof size[number],
      "class": {
        "base": "px-[2.1rem]",
        "increment": "scale-80",
        "decrement": "scale-80"
      }
    },
    {
      "orientation": "horizontal" as typeof orientation[number],
      "size": "md" as typeof size[number],
      "class": {
        "base": "px-[2.45rem]",
        "increment": "[&>button]:p-1.5 scale-80",
        "decrement": "[&>button]:p-1.5 scale-80"
      }
    },
    {
      "orientation": "horizontal" as typeof orientation[number],
      "size": "lg" as typeof size[number],
      "class": {
        "base": "px-[2.95rem]",
        "increment": "pe-1 [&>button]:p-1.5 [&>button]:h-[42px] scale-95",
        "decrement": "ps-1 [&>button]:p-1.5 [&>button]:h-[42px] scale-95"
      }
    },
    {
      "orientation": "vertical" as typeof orientation[number],
      "size": "xs" as typeof size[number],
      "class": {
        "base": "pe-7",
        "increment": "top-0 pe-0 [&>button]:h-[13px]",
        "decrement": "bottom-0 pe-0 [&>button]:h-[13px]"
      }
    },
    {
      "orientation": "vertical" as typeof orientation[number],
      "size": "sm" as typeof size[number],
      "class": {
        "base": "pe-8",
        "increment": "[&>button]:h-[13px] scale-80",
        "decrement": "[&>button]:h-[13px] scale-80"
      }
    },
    {
      "orientation": "vertical" as typeof orientation[number],
      "size": "md" as typeof size[number],
      "class": {
        "base": "pe-9",
        "increment": "[&>button]:h-[19px] scale-80",
        "decrement": "[&>button]:h-[19px] scale-80"
      }
    },
    {
      "orientation": "vertical" as typeof orientation[number],
      "size": "lg" as typeof size[number],
      "class": {
        "base": "pe-9",
        "increment": "[&>button]:h-[22px] scale-80",
        "decrement": "[&>button]:h-[22px] scale-80"
      }
    }
  ],
  "defaultVariants": {
    "size": "md" as typeof size[number],
    "color": "primary" as typeof color[number],
    "tagColor": "primary" as typeof tagColor[number]
  }
}