{"version":3,"sources":["../../../src/lib/status.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport * as React from \"react\";\nimport { MarginProps } from \"@radix-ui/themes/props\";\nimport { Spinner, Text } from \"@radix-ui/themes\";\n\nexport const getStatusColor = (\n  state: \"success\" | \"waiting\" | \"error\",\n): \"green\" | \"gray\" | \"red\" => {\n  switch (state) {\n    case \"success\":\n      return \"green\";\n    case \"waiting\":\n      return \"gray\";\n    case \"error\":\n      return \"red\";\n  }\n};\n\nexport interface StatusProps\n  extends Omit<React.ComponentPropsWithoutRef<\"span\">, \"color\">, MarginProps {\n  children?: React.ReactNode;\n  state: \"success\" | \"waiting\" | \"error\";\n}\n\nconst Status = React.forwardRef<HTMLSpanElement, StatusProps>(\n  ({ className, ...props }, forwardedRef) => (\n    <Text\n      ref={forwardedRef}\n      className={clsx(className, \"woswidgets-status\")}\n      data-state={props.state}\n      {...props}\n      size=\"2\"\n      color={getStatusColor(props.state)}\n    >\n      {props.state === \"waiting\" && <Spinner />}\n      {props.children}\n    </Text>\n  ),\n);\n\nStatus.displayName = \"Status\";\n\nexport { Status };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BI;AA1BJ,kBAAiB;AACjB,YAAuB;AAEvB,oBAA8B;AAEvB,MAAM,iBAAiB,CAC5B,UAC6B;AAC7B,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,EACX;AACF;AAQA,MAAM,SAAS,MAAM;AAAA,EACnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,iBACxB;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,eAAW,YAAAA,SAAK,WAAW,mBAAmB;AAAA,MAC9C,cAAY,MAAM;AAAA,MACjB,GAAG;AAAA,MACJ,MAAK;AAAA,MACL,OAAO,eAAe,MAAM,KAAK;AAAA,MAEhC;AAAA,cAAM,UAAU,aAAa,4CAAC,yBAAQ;AAAA,QACtC,MAAM;AAAA;AAAA;AAAA,EACT;AAEJ;AAEA,OAAO,cAAc;","names":["clsx"]}