{"version":3,"sources":["../src/status.tsx"],"sourcesContent":["import type {\n  HTMLUIProps,\n  Statuses,\n  StatusValue,\n  ThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n  forwardRef,\n  omitThemeProps,\n  ui,\n  useComponentMultiStyle,\n  useTheme,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nconst defaultStatuses = {\n  error: { colorScheme: \"danger\" },\n  info: { colorScheme: \"info\" },\n  success: { colorScheme: \"success\" },\n  warning: { colorScheme: \"warning\" },\n} as const satisfies Statuses\n\nexport const getStatusColorScheme = (\n  status: StatusValue,\n  statuses?: Statuses,\n): string =>\n  statuses?.[status]?.colorScheme ?? defaultStatuses[status].colorScheme\n\ninterface StatusOptions {\n  /**\n   * The type of the status\n   *\n   * @default 'info'\n   * */\n  value?: StatusValue\n  /**\n   * The props for the status indicator component\n   */\n  indicatorProps?: HTMLUIProps\n  /**\n   * The props for the status label component\n   */\n  labelProps?: HTMLUIProps\n}\n\nexport interface StatusProps\n  extends HTMLUIProps,\n    ThemeProps<\"Status\">,\n    StatusOptions {}\n\n/**\n * `Status` is component that indicate the status of a process or state.\n *\n * @see Docs https://yamada-ui.com/components/data-display/status\n */\nexport const Status = forwardRef<StatusProps, \"div\">(\n  (\n    { colorScheme, value = \"info\", indicatorProps, labelProps, ...props },\n    ref,\n  ) => {\n    const { theme } = useTheme()\n    const statuses = theme.__config?.status?.statuses ?? {}\n\n    colorScheme ??= getStatusColorScheme(value, statuses)\n\n    const [styles, mergedProps] = useComponentMultiStyle(\"Status\", {\n      ...props,\n      colorScheme,\n    })\n    const { className, children, ...rest } = omitThemeProps(mergedProps)\n\n    return (\n      <ui.div\n        className={cx(\"ui-status\", className)}\n        __css={{ ...styles.container }}\n        {...rest}\n      >\n        <ui.div\n          ref={ref}\n          className=\"ui-status__indicator\"\n          __css={{ ...styles.indicator }}\n          {...indicatorProps}\n        />\n\n        <ui.p\n          className=\"ui-status__label\"\n          __css={{ ...styles.label }}\n          {...labelProps}\n        >\n          {children}\n        </ui.p>\n      </ui.div>\n    )\n  },\n)\n\nStatus.displayName = \"Status\"\nStatus.__ui__ = \"Status\"\n"],"mappings":";;;AAMA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,UAAU;AA2Db,SAKE,KALF;AAzDN,IAAM,kBAAkB;AAAA,EACtB,OAAO,EAAE,aAAa,SAAS;AAAA,EAC/B,MAAM,EAAE,aAAa,OAAO;AAAA,EAC5B,SAAS,EAAE,aAAa,UAAU;AAAA,EAClC,SAAS,EAAE,aAAa,UAAU;AACpC;AAEO,IAAM,uBAAuB,CAClC,QACA,aACQ;AAzBV;AA0BE,0DAAW,YAAX,mBAAoB,gBAApB,YAAmC,gBAAgB,MAAM,EAAE;AAAA;AA6BtD,IAAM,SAAS;AAAA,EACpB,CACE,EAAE,aAAa,QAAQ,QAAQ,gBAAgB,YAAY,GAAG,MAAM,GACpE,QACG;AA3DP;AA4DI,UAAM,EAAE,MAAM,IAAI,SAAS;AAC3B,UAAM,YAAW,uBAAM,aAAN,mBAAgB,WAAhB,mBAAwB,aAAxB,YAAoC,CAAC;AAEtD,sDAAgB,qBAAqB,OAAO,QAAQ;AAEpD,UAAM,CAAC,QAAQ,WAAW,IAAI,uBAAuB,UAAU;AAAA,MAC7D,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AACD,UAAM,EAAE,WAAW,UAAU,GAAG,KAAK,IAAI,eAAe,WAAW;AAEnE,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC,WAAW,GAAG,aAAa,SAAS;AAAA,QACpC,OAAO,EAAE,GAAG,OAAO,UAAU;AAAA,QAC5B,GAAG;AAAA,QAEJ;AAAA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC;AAAA,cACA,WAAU;AAAA,cACV,OAAO,EAAE,GAAG,OAAO,UAAU;AAAA,cAC5B,GAAG;AAAA;AAAA,UACN;AAAA,UAEA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,GAAG,OAAO,MAAM;AAAA,cACxB,GAAG;AAAA,cAEH;AAAA;AAAA,UACH;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;AACrB,OAAO,SAAS;","names":[]}