UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

172 lines (153 loc) 6.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.ControlledTooltip = exports.CustomContent = exports.Default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _addonKnobs = require("@storybook/addon-knobs"); var _ = _interopRequireWildcard(require(".")); var _Text = _interopRequireDefault(require("../Text")); var _Button = _interopRequireDefault(require("../Button")); var _jsxRuntime = require("react/jsx-runtime"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Default = function Default() { var triggerOn = (0, _addonKnobs.select)('triggerOn', { click: 'click', hover: 'hover' }, 'click'); var placement = (0, _addonKnobs.select)('placement', { auto: 'auto', top: 'top', right: 'right', bottom: 'bottom', left: 'left', 'auto-start': 'auto-start', 'auto-end': 'auto-end', 'right-start': 'right-start', 'right-end': 'right-end', 'left-start': 'left-start', 'left-end': 'left-end', 'bottom-start': 'bottom-start', 'bottom-end': 'bottom-end', 'top-start': 'top-start', 'top-end': 'top-end' }, 'top'); var props = { animationDelay: (0, _addonKnobs.number)('animationDelay', 100), animationDuration: (0, _addonKnobs.number)('animationDuration', 100), closeOnEscPress: (0, _addonKnobs.boolean)('closeOnEscPress', true), isOpen: (0, _addonKnobs.boolean)('isOpen', true), triggerOn: triggerOn, placement: placement, title: (0, _addonKnobs.text)('title', '"Hello"'), minWidth: (0, _addonKnobs.number)('minWidth', ''), maxWidth: (0, _addonKnobs.number)('maxWidth', ''), withArrow: (0, _addonKnobs.boolean)('withArrow', true) }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.TooltipContext.Provider, { value: { zIndex: 256 }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { style: { padding: '20%', textAlign: 'center' }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.default, (0, _extends2.default)({}, props, { children: "Tooltip Trigger V2" })) }) }); }; exports.Default = Default; var CustomContent = function CustomContent() { var triggerOn = (0, _addonKnobs.select)('triggerOn', { click: 'click', hover: 'hover' }, 'click'); var placement = (0, _addonKnobs.select)('placement', { auto: 'auto', top: 'top', right: 'right', bottom: 'bottom', left: 'left', 'auto-start': 'auto-start', 'auto-end': 'auto-end', 'right-start': 'right-start', 'right-end': 'right-end', 'left-start': 'left-start', 'left-end': 'left-end', 'bottom-start': 'bottom-start', 'bottom-end': 'bottom-end', 'top-start': 'top-start', 'top-end': 'top-end' }, 'top'); var tooltipContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Text.default, { children: ["Hello there. ", /*#__PURE__*/(0, _jsxRuntime.jsx)("strong", { children: "This is really important!" }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, { theme: "blue", size: "sm", children: "Learn More" })] }); var props = { animationDelay: (0, _addonKnobs.number)('animationDelay', 100), animationDuration: (0, _addonKnobs.number)('animationDuration', 100), closeOnEscPress: (0, _addonKnobs.boolean)('closeOnEscPress', true), isOpen: (0, _addonKnobs.boolean)('isOpen', true), triggerOn: triggerOn, placement: placement, title: tooltipContent, minWidth: (0, _addonKnobs.number)('minWidth', ''), maxWidth: (0, _addonKnobs.number)('maxWidth', '') }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.TooltipContext.Provider, { value: { zIndex: 256 }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { style: { padding: '20%', textAlign: 'center' }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.default, (0, _extends2.default)({}, props, { children: "Tooltip Trigger" })) }) }); }; exports.CustomContent = CustomContent; var ControlledTooltip = function ControlledTooltip() { var _useState = (0, _react.useState)(false), visible = _useState[0], setVisible = _useState[1]; var toggle = function toggle() { return setVisible(!visible); }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.TooltipContext.Provider, { value: { zIndex: 256 }, children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { style: { padding: '20%', textAlign: 'center' }, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.default, { visible: visible, title: "Hello", children: "Tooltip Trigger" }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, { onClick: toggle, children: "toggle tooltip" }) })] }) }); }; exports.ControlledTooltip = ControlledTooltip;