@redocly/theme
Version:
Shared UI components lib
92 lines • 3.48 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CatalogAvatar = CatalogAvatar;
const styled_components_1 = __importStar(require("styled-components"));
const react_1 = __importDefault(require("react"));
const extractInitials = (value) => {
const trimmed = value.trim();
if (!trimmed)
return '';
if (trimmed.split('-').length > 1) {
return trimmed
.split('-')
.filter((part) => part.length > 0)
.map((part) => part[0])
.join('')
.toUpperCase()
.slice(0, 2);
}
const initials = trimmed.split(' ').map((n) => n[0]);
if (initials.length === 1) {
return initials[0];
}
return initials[0] + initials[initials.length - 1];
};
function CatalogAvatar({ value, size, }) {
return (react_1.default.createElement(CatalogAvatarWrapper, { "data-component-name": "Catalog/CatalogAvatar", size: size }, extractInitials(value)));
}
const CatalogAvatarWrapper = styled_components_1.default.div `
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background-color: var(--catalog-avatar-bg-color);
flex-shrink: 0;
font-weight: var(--catalog-avatar-font-weight);
line-height: var(--catalog-avatar-line-height);
${({ size }) => SIZES[size]};
`;
const SIZES = {
small: (0, styled_components_1.css) `
width: var(--catalog-avatar-small-size);
height: var(--catalog-avatar-small-size);
font-size: var(--catalog-avatar-font-size-small);
`,
medium: (0, styled_components_1.css) `
width: var(--catalog-avatar-medium-size);
height: var(--catalog-avatar-medium-size);
font-size: var(--catalog-avatar-font-size-medium);
`,
large: (0, styled_components_1.css) `
width: var(--catalog-avatar-large-size);
height: var(--catalog-avatar-large-size);
font-size: var(--catalog-avatar-font-size-large);
`,
};
//# sourceMappingURL=CatalogAvatar.js.map