@yamada-ui/status
Version:
Yamada UI status component
1 lines • 3.57 kB
Source Map (JSON)
{"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":[]}