UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 4.02 kB
{"version":3,"file":"LoadingDots.mjs","names":["LoadingDots: FC<LoadingDotsProps>","vars: Record<string, string>"],"sources":["../../../src/chat/LoadingDots/LoadingDots.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type FC, useMemo } from 'react';\n\nimport { styles } from './style';\nimport type { LoadingDotsProps } from './type';\n\nconst LoadingDots: FC<LoadingDotsProps> = ({\n size = 8,\n color,\n variant = 'dots',\n className,\n style,\n}) => {\n // Convert props to CSS variables\n const cssVariables = useMemo<Record<string, string>>(() => {\n const vars: Record<string, string> = {\n '--loading-dots-size': `${size}px`,\n };\n if (color) {\n vars['--loading-dots-color'] = color;\n }\n return vars;\n }, [color, size]);\n\n const renderDots = () => {\n switch (variant) {\n case 'pulse': {\n return <div className={styles.pulseDot} style={{ animationDelay: '0s' }} />;\n }\n\n case 'wave': {\n return (\n <>\n <div className={styles.waveDot} style={{ animationDelay: '0s' }} />\n <div className={styles.waveDot} style={{ animationDelay: '0.12s' }} />\n <div className={styles.waveDot} style={{ animationDelay: '0.24s' }} />\n </>\n );\n }\n\n case 'orbit': {\n return (\n <div className={styles.orbitContainer}>\n <div className={styles.orbitDot} style={{ animationDelay: '0s' }} />\n <div className={styles.orbitDot} style={{ animationDelay: '-0.4s' }} />\n <div className={styles.orbitDot} style={{ animationDelay: '-0.8s' }} />\n </div>\n );\n }\n\n case 'typing': {\n return (\n <>\n <div className={styles.typingDot} style={{ animationDelay: '0s' }} />\n <div className={styles.typingDot} style={{ animationDelay: '0.15s' }} />\n <div className={styles.typingDot} style={{ animationDelay: '0.3s' }} />\n </>\n );\n }\n\n default: {\n return (\n <>\n <div className={styles.defaultDot} style={{ animationDelay: '0s' }} />\n <div className={styles.defaultDot} style={{ animationDelay: '0.15s' }} />\n <div className={styles.defaultDot} style={{ animationDelay: '0.3s' }} />\n </>\n );\n }\n }\n };\n\n return (\n <div\n className={cx(variant === 'orbit' ? styles.orbitWrapper : styles.container, className)}\n style={{\n ...cssVariables,\n ...style,\n }}\n >\n {renderDots()}\n </div>\n );\n};\n\nLoadingDots.displayName = 'LoadingDots';\n\nexport default LoadingDots;\n"],"mappings":";;;;;;;;AAQA,MAAMA,eAAqC,EACzC,OAAO,GACP,OACA,UAAU,QACV,WACA,YACI;CAEJ,MAAM,eAAe,cAAsC;EACzD,MAAMC,OAA+B,EACnC,uBAAuB,GAAG,KAAK,KAChC;AACD,MAAI,MACF,MAAK,0BAA0B;AAEjC,SAAO;IACN,CAAC,OAAO,KAAK,CAAC;CAEjB,MAAM,mBAAmB;AACvB,UAAQ,SAAR;GACE,KAAK,QACH,QAAO,oBAAC;IAAI,WAAW,OAAO;IAAU,OAAO,EAAE,gBAAgB,MAAM;KAAI;GAG7E,KAAK,OACH,QACE;IACE,oBAAC;KAAI,WAAW,OAAO;KAAS,OAAO,EAAE,gBAAgB,MAAM;MAAI;IACnE,oBAAC;KAAI,WAAW,OAAO;KAAS,OAAO,EAAE,gBAAgB,SAAS;MAAI;IACtE,oBAAC;KAAI,WAAW,OAAO;KAAS,OAAO,EAAE,gBAAgB,SAAS;MAAI;OACrE;GAIP,KAAK,QACH,QACE,qBAAC;IAAI,WAAW,OAAO;;KACrB,oBAAC;MAAI,WAAW,OAAO;MAAU,OAAO,EAAE,gBAAgB,MAAM;OAAI;KACpE,oBAAC;MAAI,WAAW,OAAO;MAAU,OAAO,EAAE,gBAAgB,SAAS;OAAI;KACvE,oBAAC;MAAI,WAAW,OAAO;MAAU,OAAO,EAAE,gBAAgB,SAAS;OAAI;;KACnE;GAIV,KAAK,SACH,QACE;IACE,oBAAC;KAAI,WAAW,OAAO;KAAW,OAAO,EAAE,gBAAgB,MAAM;MAAI;IACrE,oBAAC;KAAI,WAAW,OAAO;KAAW,OAAO,EAAE,gBAAgB,SAAS;MAAI;IACxE,oBAAC;KAAI,WAAW,OAAO;KAAW,OAAO,EAAE,gBAAgB,QAAQ;MAAI;OACtE;GAIP,QACE,QACE;IACE,oBAAC;KAAI,WAAW,OAAO;KAAY,OAAO,EAAE,gBAAgB,MAAM;MAAI;IACtE,oBAAC;KAAI,WAAW,OAAO;KAAY,OAAO,EAAE,gBAAgB,SAAS;MAAI;IACzE,oBAAC;KAAI,WAAW,OAAO;KAAY,OAAO,EAAE,gBAAgB,QAAQ;MAAI;OACvE;;;AAMX,QACE,oBAAC;EACC,WAAW,GAAG,YAAY,UAAU,OAAO,eAAe,OAAO,WAAW,UAAU;EACtF,OAAO;GACL,GAAG;GACH,GAAG;GACJ;YAEA,YAAY;GACT;;AAIV,YAAY,cAAc;AAE1B,0BAAe"}