@redocly/theme
Version:
Shared UI components lib
98 lines (95 loc) • 4.27 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 (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__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.Tab = void 0;
exports.TabComponent = TabComponent;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importStar(require("styled-components"));
function TabComponent(props) {
const { label, isActive, setRef, onClick, onKeyDown, tabId } = props;
return (react_1.default.createElement(TabItem, { "data-component-name": "Markdoc/Tabs/Tab" },
react_1.default.createElement(TabButtonLink, { "$active": isActive, id: `tab-${tabId}`, role: "tab", "aria-controls": `panel-${tabId}`, "aria-selected": isActive ? 'true' : 'false', tabIndex: isActive ? 0 : -1, "data-label": label, ref: setRef, onKeyDown: onKeyDown, onClick: onClick }, label)));
}
exports.Tab = (0, styled_components_1.default)(TabComponent) ``;
const TabItem = styled_components_1.default.li `
display: inline-flex;
list-style: none;
cursor: pointer;
align-items: center;
&:first-child {
margin-bottom: 0px;
}
*:focus-visible {
outline: -webkit-focus-ring-color auto 1px;
}
`;
const TabButtonLink = styled_components_1.default.button `
all: unset;
flex-grow: 1;
cursor: pointer;
width: 100%;
text-align: center;
color: var(--md-tabs-tab-text-color);
padding: var(--md-tabs-tab-padding);
font-size: var(--md-tabs-tab-font-size);
font-family: var(--md-tabs-tab-font-family);
font-style: var(--md-tabs-tab-font-style);
font-weight: var(--md-tabs-tab-font-weight);
background-color: var(--md-tabs-tab-bg-color);
border-radius: var(--md-tabs-tab-border-radius);
border: var(--md-tabs-tab-border);
border-width: var(--md-tabs-tab-border-width);
${({ $active }) => $active
? (0, styled_components_1.css) `
color: var(--md-tabs-active-tab-text-color);
font-size: var(--md-tabs-active-tab-font-size);
font-family: var(--md-tabs-active-tab-font-family);
font-style: var(--md-tabs-active-tab-font-style);
font-weight: var(--md-tabs-active-tab-font-weight);
background-color: var(--md-tabs-active-tab-bg-color);
border-radius: var(--md-tabs-active-tab-border-radius);
padding: var(--md-tabs-active-tab-padding);
border: solid var(--md-tabs-active-tab-border-color);
border-width: var(--md-tabs-active-tab-border-width);
`
: (0, styled_components_1.css) `
&:hover {
color: var(--md-tabs-hover-tab-text-color);
font-size: var(--md-tabs-hover-tab-font-size);
font-family: var(--md-tabs-hover-tab-font-family);
font-style: var(--md-tabs-hover-tab-font-style);
font-weight: var(--md-tabs-hover-tab-font-weight);
background-color: var(--md-tabs-hover-tab-bg-color);
border-radius: var(--md-tabs-hover-tab-border-radius);
padding: var(--md-tabs-hover-tab-padding);
border: solid var(--md-tabs-hover-tab-border-color);
border-width: var(--md-tabs-hover-tab-border-width);
}
`}
`;
//# sourceMappingURL=Tab.js.map