@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 2.7 kB
Source Map (JSON)
{"version":3,"file":"CodeShowcase.mjs","names":[],"sources":["../../../src/awesome/CodeShowcase/CodeShowcase.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type CSSProperties, memo, useState } from 'react';\n\nimport Segmented from '@/base-ui/Segmented';\nimport Highlighter from '@/Highlighter';\n\nimport { styles } from './style';\nimport type { CodeShowcaseProps } from './type';\n\nconst CodeShowcase = memo<CodeShowcaseProps>(\n ({\n activeKey: controlledKey,\n className,\n defaultActiveKey,\n items,\n minHeight,\n onChange,\n style,\n ...rest\n }) => {\n const [innerKey, setInnerKey] = useState(defaultActiveKey ?? items[0]?.key);\n const activeKey = controlledKey ?? innerKey;\n const active = items.find((item) => item.key === activeKey) ?? items[0];\n\n if (!active) return null;\n\n return (\n <div\n className={cx(styles.root, className)}\n style={{ '--code-showcase-min-height': `${minHeight}px`, ...style } as CSSProperties}\n {...rest}\n >\n {items.length > 1 && (\n <Segmented\n className={styles.tabs}\n options={items.map(({ key, label }) => ({ label, value: key }))}\n value={active.key}\n variant={'outlined'}\n onChange={(key) => {\n setInnerKey(key);\n onChange?.(key);\n }}\n />\n )}\n <div className={styles.panes}>\n <Highlighter\n className={styles.code}\n language={active.language ?? 'tsx'}\n variant={'outlined'}\n >\n {active.code}\n </Highlighter>\n <div className={styles.preview}>{active.preview}</div>\n </div>\n </div>\n );\n },\n);\n\nCodeShowcase.displayName = 'CodeShowcase';\n\nexport default CodeShowcase;\n"],"mappings":";;;;;;;;AAWA,MAAM,eAAe,MAClB,EACC,WAAW,eACX,WACA,kBACA,OACA,WACA,UACA,OACA,GAAG,WACC;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,oBAAoB,MAAM,EAAE,EAAE,GAAG;CAC1E,MAAM,YAAY,iBAAiB;CACnC,MAAM,SAAS,MAAM,MAAM,SAAS,KAAK,QAAQ,SAAS,KAAK,MAAM;CAErE,IAAI,CAAC,QAAQ,OAAO;CAEpB,OACE,qBAAC,OAAD;EACE,WAAW,GAAG,OAAO,MAAM,SAAS;EACpC,OAAO;GAAE,8BAA8B,GAAG,UAAU;GAAK,GAAG;EAAM;EAClE,GAAI;EAHN,UAAA,CAKG,MAAM,SAAS,KACd,oBAAC,WAAD;GACE,WAAW,OAAO;GAClB,SAAS,MAAM,KAAK,EAAE,KAAK,aAAa;IAAE;IAAO,OAAO;GAAI,EAAE;GAC9D,OAAO,OAAO;GACd,SAAS;GACT,WAAW,QAAQ;IACjB,YAAY,GAAG;IACf,WAAW,GAAG;GAChB;EACD,CAAA,GAEH,qBAAC,OAAD;GAAK,WAAW,OAAO;GAAvB,UAAA,CACE,oBAAC,aAAD;IACE,WAAW,OAAO;IAClB,UAAU,OAAO,YAAY;IAC7B,SAAS;IAER,UAAA,OAAO;GACG,CAAA,GACb,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAU,UAAA,OAAO;GAAa,CAAA,CAClD;EACF,CAAA,CAAA;;AAET,CACF;AAEA,aAAa,cAAc"}