UNPKG

suomifi-ui-components

Version:
89 lines (86 loc) 4.02 kB
import { __extends, __rest, __assign, __makeTemplateObject } from 'tslib'; import React, { Component, forwardRef } from 'react'; import { styled } from 'styled-components'; import classnames from 'classnames'; import { IconClose } from 'suomifi-icons'; import { SuomifiThemeConsumer } from '../../theme/SuomifiThemeProvider/SuomifiThemeProvider.js'; import '../../theme/SuomifiTheme/SuomifiTheme.js'; import '../../theme/SpacingProvider/SpacingProvider.js'; import '../../../reset/HtmlA/HtmlA.js'; import { HtmlButton } from '../../../reset/HtmlButton/HtmlButton.js'; import { HtmlDivWithRef } 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'; import { baseStyles } from './TooltipContent.baseStyles.js'; var baseClassName = 'fi-tooltip'; var tooltipContentClassNames = { content: "".concat(baseClassName, "_content"), arrowHidden: "".concat(baseClassName, "_content--arrow-hidden"), closeButton: "".concat(baseClassName, "_close-button"), closeButtonIcon: "".concat(baseClassName, "_close-button_icon") }; var BaseTooltipContent = function (_super) { __extends(BaseTooltipContent, _super); function BaseTooltipContent() { return _super !== null && _super.apply(this, arguments) || this; } BaseTooltipContent.prototype.render = function () { var _a; var _b = this.props, children = _b.children, arrowOffsetPx = _b.arrowOffsetPx, onCloseButtonClick = _b.onCloseButtonClick, ariaCloseButtonLabelText = _b.ariaCloseButtonLabelText, className = _b.className, passProps = __rest(_b, ["children", "arrowOffsetPx", "onCloseButtonClick", "ariaCloseButtonLabelText", "className"]); return /*#__PURE__*/React.createElement(HtmlDivWithRef, __assign({}, passProps, { className: classnames(tooltipContentClassNames.content, className, (_a = {}, _a[tooltipContentClassNames.arrowHidden] = arrowOffsetPx <= 0, _a)) }), children, /*#__PURE__*/React.createElement(HtmlButton, { "aria-label": ariaCloseButtonLabelText, onClick: onCloseButtonClick, className: tooltipContentClassNames.closeButton }, /*#__PURE__*/React.createElement(IconClose, { className: tooltipContentClassNames.closeButtonIcon }))); }; return BaseTooltipContent; }(Component); var StyledTooltipContent = styled(function (_a) { _a.theme; var passProps = __rest(_a, ["theme"]); return /*#__PURE__*/React.createElement(BaseTooltipContent, __assign({}, passProps)); }).withConfig({ componentId: "sc-57ceg5-0" })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) { var theme = _a.theme, arrowOffsetPx = _a.arrowOffsetPx; return baseStyles(arrowOffsetPx, theme); }); var TooltipContent = /*#__PURE__*/forwardRef(function (props, ref) { return /*#__PURE__*/React.createElement(SuomifiThemeConsumer, null, function (_a) { var suomifiTheme = _a.suomifiTheme; return /*#__PURE__*/React.createElement(StyledTooltipContent, __assign({ theme: suomifiTheme, forwardedRef: ref }, props)); }); }); var templateObject_1; export { TooltipContent }; //# sourceMappingURL=TooltipContent.js.map