UNPKG

@carbon/react

Version:

React components for the Carbon Design System

67 lines (65 loc) 2.71 kB
/** * Copyright IBM Corp. 2016, 2026 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import { usePrefix } from "../../internal/usePrefix.js"; import SkeletonText_default from "../SkeletonText/index.js"; import classNames from "classnames"; import "react"; import PropTypes from "prop-types"; import { jsx, jsxs } from "react/jsx-runtime"; import { ChevronRight } from "@carbon/icons-react"; //#region src/components/Accordion/Accordion.Skeleton.tsx /** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ function AccordionSkeleton({ align = "end", className, count = 4, isFlush, open = true, ordered = false, ...rest }) { const prefix = usePrefix(); const classes = classNames(`${prefix}--accordion`, `${prefix}--skeleton`, className, { [`${prefix}--accordion--${align}`]: align, [`${prefix}--accordion--flush`]: isFlush && align !== "start" }); const numSkeletonItems = open ? count - 1 : count; return /* @__PURE__ */ jsxs(ordered ? "ol" : "ul", { className: classes, ...rest, children: [open && /* @__PURE__ */ jsxs("li", { className: `${prefix}--accordion__item ${prefix}--accordion__item--active`, children: [/* @__PURE__ */ jsxs("span", { className: `${prefix}--accordion__heading`, children: [/* @__PURE__ */ jsx(ChevronRight, { className: `${prefix}--accordion__arrow` }), /* @__PURE__ */ jsx(SkeletonText_default, { className: `${prefix}--accordion__title` })] }), /* @__PURE__ */ jsxs("div", { className: `${prefix}--accordion__content`, children: [ /* @__PURE__ */ jsx(SkeletonText_default, { width: "90%" }), /* @__PURE__ */ jsx(SkeletonText_default, { width: "80%" }), /* @__PURE__ */ jsx(SkeletonText_default, { width: "95%" }) ] })] }), Array.from({ length: numSkeletonItems }).map((_, i) => /* @__PURE__ */ jsx(AccordionSkeletonItem, {}, i))] }); } AccordionSkeleton.propTypes = { align: PropTypes.oneOf(["start", "end"]), className: PropTypes.string, count: PropTypes.number, isFlush: PropTypes.bool, open: PropTypes.bool }; function AccordionSkeletonItem() { const prefix = usePrefix(); return /* @__PURE__ */ jsx("li", { className: `${prefix}--accordion__item`, children: /* @__PURE__ */ jsxs("span", { className: `${prefix}--accordion__heading`, children: [/* @__PURE__ */ jsx(ChevronRight, { className: `${prefix}--accordion__arrow` }), /* @__PURE__ */ jsx(SkeletonText_default, { className: `${prefix}--accordion__title` })] }) }); } //#endregion export { AccordionSkeleton as default };