@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
51 lines (50 loc) • 1.6 kB
JavaScript
"use client";
import React, { useContext } from 'react';
import clsx from 'clsx';
import FlexItem from "../flex/Item.js";
import ItemOverline from "./ItemOverline.js";
import ItemSubline from "./ItemSubline.js";
import { ListContext } from "./ListContext.js";
import { createSkeletonClass } from "../skeleton/SkeletonHelper.js";
import Context from "../../shared/Context.js";
import { jsx as _jsx } from "react/jsx-runtime";
function ItemTitleBase({
className,
fontSize = 'basis',
fontWeight,
skeleton,
children,
...rest
}) {
var _useContext;
const context = useContext(Context);
const inheritedSkeleton = (_useContext = useContext(ListContext)) === null || _useContext === void 0 ? void 0 : _useContext.skeleton;
const appliedSkeleton = skeleton !== null && skeleton !== void 0 ? skeleton : inheritedSkeleton;
const content = _jsx(FlexItem, {
innerSpace: {
left: 'small'
},
className: clsx('dnb-list__item__title', className, appliedSkeleton && createSkeletonClass('font', true)),
...rest,
children: _jsx("span", {
className: `dnb-t__size--${fontSize}` + (fontWeight === 'medium' ? " dnb-t__weight--medium" : ""),
children: children
})
});
if (appliedSkeleton) {
return _jsx(Context, {
value: {
...context,
skeleton: appliedSkeleton
},
children: content
});
}
return content;
}
ItemTitleBase._supportsSpacingProps = true;
const ItemTitle = ItemTitleBase;
ItemTitle.Overline = ItemOverline;
ItemTitle.Subline = ItemSubline;
export default ItemTitle;
//# sourceMappingURL=ItemTitle.js.map