@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 3.88 kB
Source Map (JSON)
{"version":3,"file":"Descriptions.mjs","names":[],"sources":["../../../src/base-ui/Descriptions/Descriptions.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Fragment, memo } from 'react';\n\nimport { styles } from './style';\nimport type { DescriptionsProps } from './type';\n\nconst Descriptions = memo<DescriptionsProps>(\n ({\n bordered = false,\n className,\n classNames,\n colon = true,\n column = 1,\n extra,\n items,\n ref,\n styles: customStyles,\n title,\n ...rest\n }) => {\n const columnCount = Math.max(1, Math.floor(column));\n\n let cursor = 0;\n const placements = items.map((item) => {\n const span = Math.min(Math.max(Math.floor(item.span ?? 1), 1), columnCount);\n if (cursor + span > columnCount) cursor = 0;\n const start = cursor;\n cursor = (cursor + span) % columnCount;\n return { span, start };\n });\n\n return (\n <div className={cx(styles.root, className)} ref={ref} {...rest}>\n {(title != null || extra != null) && (\n <div className={styles.header}>\n <div className={styles.title}>{title}</div>\n {extra != null && <div className={styles.extra}>{extra}</div>}\n </div>\n )}\n <dl\n className={cx(styles.list, bordered && styles.bordered)}\n style={{ gridTemplateColumns: `repeat(${columnCount}, auto minmax(0, 1fr))` }}\n >\n {items.map((item, index) => {\n const { span, start } = placements[index];\n const contentStart = String(start * 2 + 2);\n\n return (\n <Fragment key={item.key ?? index}>\n <dt\n className={cx(styles.label, classNames?.label)}\n style={{ gridColumn: String(start * 2 + 1), ...customStyles?.label }}\n >\n {item.label}\n {colon && item.label != null ? ':' : null}\n </dt>\n <dd\n className={cx(styles.content, classNames?.content)}\n style={{\n gridColumn: span > 1 ? `${contentStart} / span ${span * 2 - 1}` : contentStart,\n ...customStyles?.content,\n }}\n >\n {item.children}\n </dd>\n </Fragment>\n );\n })}\n </dl>\n </div>\n );\n },\n);\n\nDescriptions.displayName = 'Descriptions';\n\nexport default Descriptions;\n"],"mappings":";;;;;;AAQA,MAAM,eAAe,MAClB,EACC,WAAW,OACX,WACA,YACA,QAAQ,MACR,SAAS,GACT,OACA,OACA,KACA,QAAQ,cACR,OACA,GAAG,WACC;CACJ,MAAM,cAAc,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC;CAElD,IAAI,SAAS;CACb,MAAM,aAAa,MAAM,KAAK,SAAS;EACrC,MAAM,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW;EAC1E,IAAI,SAAS,OAAO,aAAa,SAAS;EAC1C,MAAM,QAAQ;EACd,UAAU,SAAS,QAAQ;EAC3B,OAAO;GAAE;GAAM;EAAM;CACvB,CAAC;CAED,OACE,qBAAC,OAAD;EAAK,WAAW,GAAG,OAAO,MAAM,SAAS;EAAQ;EAAK,GAAI;EAA1D,UAAA,EACI,SAAS,QAAQ,SAAS,SAC1B,qBAAC,OAAD;GAAK,WAAW,OAAO;GAAvB,UAAA,CACE,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAQ,UAAA;GAAW,CAAA,GACzC,SAAS,QAAQ,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAQ,UAAA;GAAW,CAAA,CACzD;EAEP,CAAA,GAAA,oBAAC,MAAD;GACE,WAAW,GAAG,OAAO,MAAM,YAAY,OAAO,QAAQ;GACtD,OAAO,EAAE,qBAAqB,UAAU,YAAY,wBAAwB;GAE3E,UAAA,MAAM,KAAK,MAAM,UAAU;IAC1B,MAAM,EAAE,MAAM,UAAU,WAAW;IACnC,MAAM,eAAe,OAAO,QAAQ,IAAI,CAAC;IAEzC,OACE,qBAAC,UAAD,EAAA,UAAA,CACE,qBAAC,MAAD;KACE,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;KAC7C,OAAO;MAAE,YAAY,OAAO,QAAQ,IAAI,CAAC;MAAG,GAAG,cAAc;KAAM;KAFrE,UAAA,CAIG,KAAK,OACL,SAAS,KAAK,SAAS,OAAO,MAAM,IACnC;IACJ,CAAA,GAAA,oBAAC,MAAD;KACE,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;KACjD,OAAO;MACL,YAAY,OAAO,IAAI,GAAG,aAAa,UAAU,OAAO,IAAI,MAAM;MAClE,GAAG,cAAc;KACnB;KAEC,UAAA,KAAK;IACJ,CAAA,CACI,EAAA,GAjBK,KAAK,OAAO,KAiBjB;GAEd,CAAC;EACC,CAAA,CACD;;AAET,CACF;AAEA,aAAa,cAAc"}