UNPKG

suomifi-ui-components

Version:
82 lines (79 loc) 3.4 kB
import { __rest, __assign, __makeTemplateObject } from 'tslib'; import React, { forwardRef } from 'react'; import { styled } from 'styled-components'; import classnames from 'classnames'; import { baseStyles } from './Details.baseStyles.js'; import { SuomifiThemeConsumer } from '../theme/SuomifiThemeProvider/SuomifiThemeProvider.js'; import '../theme/SuomifiTheme/SuomifiTheme.js'; import '../theme/SpacingProvider/SpacingProvider.js'; import { separateMarginProps, spacingStyles } from '../theme/utils/spacing.js'; import { HtmlDetails } from '../../reset/HtmlDetails/HtmlDetails.js'; import '../../reset/HtmlA/HtmlA.js'; import '../../reset/HtmlButton/HtmlButton.js'; import { HtmlDiv } from '../../reset/HtmlDiv/HtmlDiv.js'; import '../../reset/HtmlFieldSet/HtmlFieldSet.js'; import '../../reset/HtmlH/HtmlH.js'; import '../../reset/HtmlInput/HtmlInput.js'; import '../../reset/HtmlLabel/HtmlLabel.js'; import '../../reset/HtmlLegend/HtmlLegend.js'; import '../../reset/HtmlLi/HtmlLi.js'; import '../../reset/HtmlNav/HtmlNav.js'; import '../../reset/HtmlOl/HtmlOl.js'; import '../../reset/HtmlSpan/HtmlSpan.js'; import '../../reset/HtmlTextarea/HtmlTextarea.js'; import '../../reset/HtmlUl/HtmlUl.js'; import '../../reset/HtmlTable/HtmlTable.js'; import '../../reset/HtmlTable/HtmlTableCaption.js'; import '../../reset/HtmlTable/HtmlTableHeader.js'; import '../../reset/HtmlTable/HtmlTableRow.js'; import '../../reset/HtmlTable/HtmlTableBody.js'; import '../../reset/HtmlTable/HtmlTableHeaderCell.js'; import '../../reset/HtmlTable/HtmlTableCell.js'; var baseClassName = 'fi-details'; var summaryClassName = "".concat(baseClassName, "_summary"); var contentClassName = "".concat(baseClassName, "_content"); var BaseDetails = function BaseDetails(_a) { var className = _a.className, children = _a.children, style = _a.style, summaryLabel = _a.summaryLabel, rest = __rest(_a, ["className", "children", "style", "summaryLabel"]); var _b = separateMarginProps(rest), marginProps = _b[0], passProps = _b[1]; var marginStyle = spacingStyles(marginProps); return /*#__PURE__*/React.createElement(HtmlDetails, __assign({}, passProps, { className: classnames(baseClassName, className), style: __assign(__assign({}, marginStyle), style) }), /*#__PURE__*/React.createElement("summary", { className: summaryClassName }, summaryLabel), /*#__PURE__*/React.createElement(HtmlDiv, { className: contentClassName }, children)); }; var StyledDetails = styled(function (_a) { _a.theme; var forwardedRef = _a.forwardedRef, passProps = __rest(_a, ["theme", "forwardedRef"]); return /*#__PURE__*/React.createElement(BaseDetails, __assign({}, passProps, { forwardedRef: forwardedRef })); }).withConfig({ componentId: "sc-11tw5fd-0" })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) { var theme = _a.theme; return baseStyles(theme); }); var Details = /*#__PURE__*/forwardRef(function (props, ref) { return /*#__PURE__*/React.createElement(SuomifiThemeConsumer, null, function (_a) { var suomifiTheme = _a.suomifiTheme; return /*#__PURE__*/React.createElement(StyledDetails, __assign({ theme: suomifiTheme, forwardedRef: ref }, props)); }); }); Details.displayName = 'Details'; var templateObject_1; export { Details }; //# sourceMappingURL=Details.js.map