@carbon/react
Version:
React components for the Carbon Design System
71 lines (69 loc) • 3.42 kB
JavaScript
/**
* 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.
*/
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
const require_usePrefix = require("../../internal/usePrefix.js");
const require_index = require("../SkeletonText/index.js");
let classnames = require("classnames");
classnames = require_runtime.__toESM(classnames);
let react = require("react");
react = require_runtime.__toESM(react);
let prop_types = require("prop-types");
prop_types = require_runtime.__toESM(prop_types);
let react_jsx_runtime = require("react/jsx-runtime");
let _carbon_icons_react = require("@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 = require_usePrefix.usePrefix();
const classes = (0, classnames.default)(`${prefix}--accordion`, `${prefix}--skeleton`, className, {
[`${prefix}--accordion--${align}`]: align,
[`${prefix}--accordion--flush`]: isFlush && align !== "start"
});
const numSkeletonItems = open ? count - 1 : count;
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ordered ? "ol" : "ul", {
className: classes,
...rest,
children: [open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
className: `${prefix}--accordion__item ${prefix}--accordion__item--active`,
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
className: `${prefix}--accordion__heading`,
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_carbon_icons_react.ChevronRight, { className: `${prefix}--accordion__arrow` }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { className: `${prefix}--accordion__title` })]
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
className: `${prefix}--accordion__content`,
children: [
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { width: "90%" }),
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { width: "80%" }),
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { width: "95%" })
]
})]
}), Array.from({ length: numSkeletonItems }).map((_, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AccordionSkeletonItem, {}, i))]
});
}
AccordionSkeleton.propTypes = {
align: prop_types.default.oneOf(["start", "end"]),
className: prop_types.default.string,
count: prop_types.default.number,
isFlush: prop_types.default.bool,
open: prop_types.default.bool
};
function AccordionSkeletonItem() {
const prefix = require_usePrefix.usePrefix();
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
className: `${prefix}--accordion__item`,
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
className: `${prefix}--accordion__heading`,
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_carbon_icons_react.ChevronRight, { className: `${prefix}--accordion__arrow` }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { className: `${prefix}--accordion__title` })]
})
});
}
//#endregion
exports.default = AccordionSkeleton;