@bigbinary/neeto-molecules 3.3.2 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MadeWith.js +1 -1
- package/dist/ToggleFeatureCard.js +3 -14
- package/dist/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/MadeWith.js +1 -1
- package/dist/cjs/ToggleFeatureCard.js +3 -14
- package/dist/cjs/ToggleFeatureCard.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +0 -4
package/dist/MadeWith.js
CHANGED
|
@@ -5,7 +5,7 @@ import { capitalize } from '@bigbinary/neeto-cist';
|
|
|
5
5
|
import { Trans } from 'react-i18next';
|
|
6
6
|
import { n } from './inject-css-c86de496.js';
|
|
7
7
|
|
|
8
|
-
var css = ".neeto-molecules-made-with__wrapper{background:#fff;border:1px solid #dfdfde;border-radius:4px;color:#000;font-family
|
|
8
|
+
var css = ".neeto-molecules-made-with__wrapper{background:#fff;border:1px solid #dfdfde;border-radius:4px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Inter,Arial,Segoe UI,Roboto,Oxygen,Ubuntu,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;padding:4px 6px;transition:all;transition-duration:.3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-made-with__wrapper strong{font-weight:700}.neeto-molecules-made-with__wrapper:hover{box-shadow:inset 0 0 0 1px #dfdfde}";
|
|
9
9
|
n(css,{});
|
|
10
10
|
|
|
11
11
|
var _excluded = ["productName"];
|
|
@@ -19,7 +19,6 @@ import { n } from './inject-css-c86de496.js';
|
|
|
19
19
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
20
20
|
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
21
21
|
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
22
|
-
import { t } from 'i18next';
|
|
23
22
|
|
|
24
23
|
var useScrollIntoView = function useScrollIntoView(_ref) {
|
|
25
24
|
var elementId = _ref.elementId,
|
|
@@ -34,15 +33,6 @@ var useScrollIntoView = function useScrollIntoView(_ref) {
|
|
|
34
33
|
var css = ".toggle-feature-card--highlighted{border-color:rgb(var(--neeto-ui-primary-800))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-800))}";
|
|
35
34
|
n(css,{});
|
|
36
35
|
|
|
37
|
-
var getTooltipContent = function getTooltipContent(_ref) {
|
|
38
|
-
var enabledCondition = _ref.enabledCondition,
|
|
39
|
-
tooltipProps = _ref.tooltipProps;
|
|
40
|
-
if (enabledCondition) {
|
|
41
|
-
return tooltipProps.enabledSwitchText || t("neetoMolecules.toggleFeatureCard.switchTooltip.enabled");
|
|
42
|
-
}
|
|
43
|
-
return tooltipProps.disabledSwitchText || t("neetoMolecules.toggleFeatureCard.switchTooltip.disabled");
|
|
44
|
-
};
|
|
45
|
-
|
|
46
36
|
var _excluded = ["enabledCondition", "name", "isDisabled", "switchDataCy", "tooltipProps"];
|
|
47
37
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
48
38
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -56,11 +46,10 @@ var TooltipSwitch = function TooltipSwitch(_ref) {
|
|
|
56
46
|
_ref$tooltipProps = _ref.tooltipProps,
|
|
57
47
|
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
58
48
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
49
|
+
var tooltipContent = enabledCondition ? tooltipProps.enabledSwitchText : tooltipProps.disabledSwitchText;
|
|
59
50
|
return /*#__PURE__*/React__default.createElement(Tooltip, _extends({
|
|
60
|
-
content:
|
|
61
|
-
|
|
62
|
-
tooltipProps: tooltipProps
|
|
63
|
-
}),
|
|
51
|
+
content: tooltipContent,
|
|
52
|
+
disabled: !tooltipContent,
|
|
64
53
|
position: "top"
|
|
65
54
|
}, tooltipProps), /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(Switch, _extends({
|
|
66
55
|
"data-cy": switchDataCy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleFeatureCard.js","sources":["../src/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../src/components/ToggleFeatureCard/utils.js","../src/components/ToggleFeatureCard/ToolTipSwitch.jsx","../src/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useScrollIntoView = ({ elementId, trigger }) => {\n useEffect(() => {\n if (!trigger) return;\n document.getElementById(elementId)?.scrollIntoView();\n }, [trigger]);\n};\n\nexport default useScrollIntoView;\n","import { t } from \"i18next\";\n\nexport const getTooltipContent = ({ enabledCondition, tooltipProps }) => {\n if (enabledCondition) {\n return (\n tooltipProps.enabledSwitchText ||\n t(\"neetoMolecules.toggleFeatureCard.switchTooltip.enabled\")\n );\n }\n\n return (\n tooltipProps.disabledSwitchText ||\n t(\"neetoMolecules.toggleFeatureCard.switchTooltip.disabled\")\n );\n};\n","import React from \"react\";\n\nimport { Tooltip } from \"neetoui\";\nimport { Switch as FormikSwitch } from \"neetoui/formik\";\n\nimport { getTooltipContent } from \"./utils\";\n\nconst TooltipSwitch = ({\n enabledCondition,\n name = \"\",\n isDisabled = false,\n switchDataCy,\n tooltipProps = {},\n ...otherProps\n}) => (\n <Tooltip\n content={getTooltipContent({ enabledCondition, tooltipProps })}\n position=\"top\"\n {...tooltipProps}\n >\n <span>\n <FormikSwitch\n data-cy={switchDataCy}\n data-testid=\"toggle-feature-card-switch\"\n disabled={isDisabled}\n {...{ name, ...otherProps }}\n />\n </span>\n </Tooltip>\n);\nexport default TooltipSwitch;\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { slugify } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Edit, Close } from \"neetoicons\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES } from \"./constants\";\nimport useScrollIntoView from \"./hooks/useScrollIntoView\";\nimport \"./toggleFeatureCard.scss\";\nimport TooltipSwitch from \"./ToolTipSwitch\";\n\nconst ToggleFeatureCard = ({\n title = \"\",\n description = null,\n switchName = \"switch\",\n titleDataCy = \"\",\n switchDataCy = \"\",\n descriptionDataCy = \"\",\n isDisabled = false,\n children = null,\n inputProps,\n switchProps = {},\n}) => {\n const { t } = useTranslation();\n const cardRef = useRef();\n const id = slugify(title);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const { setFieldValue, values, submitCount, errors, initialValues } =\n useFormikContext();\n\n useEffect(() => {\n if (!(submitCount >= 1 && isEmpty(errors))) return;\n setIsEditing(false);\n }, [submitCount]);\n\n useEffect(() => {\n if (isEmpty(errors)) return;\n setIsEditing(true);\n }, [values, errors]);\n\n const [shouldHighlight, setShouldHighlight] = useState(\n location.hash.split(\"#\")[1] === id\n );\n\n const hasInput = values?.[switchName] && inputProps?.name;\n const enabledCondition = values?.[switchName];\n\n const handleInputReset = () => {\n setIsEditing(false);\n hasInput &&\n setFieldValue(inputProps?.name, initialValues?.[inputProps?.name]);\n };\n\n useOnClickOutside(cardRef, () => setShouldHighlight(false));\n\n useScrollIntoView({ elementId: id, trigger: shouldHighlight });\n\n const inputRef = useHotkeys(\"enter\", () => setIsEditing(false), {\n mode: \"scoped\",\n });\n\n return (\n <div\n {...{ id }}\n data-testid=\"toggle-feature-card\"\n ref={cardRef}\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-rounded-lg flex flex-col space-y-2 border p-4\",\n { \"neeto-ui-border-gray-300\": !shouldHighlight },\n { \"toggle-feature-card--highlighted\": shouldHighlight }\n )}\n >\n <Label className=\"flex flex-row items-center gap-2\">\n <TooltipSwitch\n {...{\n enabledCondition,\n isDisabled,\n switchDataCy,\n ...switchProps,\n }}\n name={switchName}\n />\n <Typography\n component=\"span\"\n data-cy={titleDataCy}\n data-testid=\"toggle-feature-card-title\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </Label>\n <Typography\n className=\"mb-4 whitespace-pre-line\"\n data-cy={descriptionDataCy}\n data-testid=\"toggle-feature-card-description\"\n style=\"body2\"\n >\n {description}\n </Typography>\n {hasInput && !isEditing && (\n <div className=\"m-0 flex flex-row items-center space-x-2\">\n {inputProps?.display}\n <Button\n data-cy={inputProps?.editButtonDataCy}\n data-testid=\"toggle-feature-card-input-display-edit\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n tooltipProps={{\n content:\n inputProps?.editButtonTooltip ||\n t(\n \"neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip\"\n ),\n position: \"right\",\n }}\n onClick={() => setIsEditing(true)}\n />\n </div>\n )}\n {hasInput && isEditing && (\n <Input\n autoFocus\n data-cy={inputProps?.dataCy}\n data-testid=\"toggle-feature-card-input-field\"\n label={inputProps?.label}\n name={inputProps?.name}\n placeholder={inputProps?.placeholder}\n ref={inputRef}\n size=\"medium\"\n suffix={\n <Button\n data-testid=\"toggle-feature-card-input-reset\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n onClick={handleInputReset}\n />\n }\n {...inputProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nToggleFeatureCard.propTypes = {\n /**\n * The title that will be displayed for the card.\n */\n title: PropTypes.string,\n /**\n * The descripton text for the particular feature or setting.\n */\n description: PropTypes.string,\n /**\n * The formik name of the feature or setting to be toggled. eg:\n {switchName: \"enableEmails\"}.\n */\n switchName: PropTypes.string,\n /**\n * Can be used to disable the toggle switch conditionally.\n */\n isDisabled: PropTypes.bool,\n /**\n * Custom child components to be displayed in the card.\n */\n children: PropTypes.node,\n /**\n * Can be used to add an input field for a setting or a feature.\n For example, `Enable email notifications` card can have an email input field.\n */\n inputProps: PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n }),\n /**\n * Can be used to add props to the switch component.\n */\n switchProps: PropTypes.shape({\n onChange: PropTypes.func,\n className: PropTypes.string,\n checked: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n enabledSwitchText: PropTypes.string,\n disabledSwitchText: PropTypes.string,\n }),\n }),\n};\n\nexport default ToggleFeatureCard;\n"],"names":["useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","getTooltipContent","enabledCondition","tooltipProps","enabledSwitchText","t","disabledSwitchText","TooltipSwitch","_ref$name","name","_ref$isDisabled","isDisabled","switchDataCy","_ref$tooltipProps","otherProps","_objectWithoutProperties","_excluded","React","createElement","Tooltip","_extends","content","position","FormikSwitch","disabled","_objectSpread","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","children","inputProps","_ref$switchProps","switchProps","_useTranslation","useTranslation","cardRef","useRef","id","slugify","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_useFormikContext","useFormikContext","setFieldValue","values","submitCount","errors","initialValues","isEmpty","_useState3","location","hash","split","_useState4","shouldHighlight","setShouldHighlight","hasInput","handleInputReset","useOnClickOutside","inputRef","useHotkeys","mode","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","icon","Edit","size","type","editButtonTooltip","onClick","Input","autoFocus","dataCy","label","placeholder","suffix","Close"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToggleFeatureCard.js","sources":["../src/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../src/components/ToggleFeatureCard/ToolTipSwitch.jsx","../src/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useScrollIntoView = ({ elementId, trigger }) => {\n useEffect(() => {\n if (!trigger) return;\n document.getElementById(elementId)?.scrollIntoView();\n }, [trigger]);\n};\n\nexport default useScrollIntoView;\n","import React from \"react\";\n\nimport { Tooltip } from \"neetoui\";\nimport { Switch as FormikSwitch } from \"neetoui/formik\";\n\nconst TooltipSwitch = ({\n enabledCondition,\n name = \"\",\n isDisabled = false,\n switchDataCy,\n tooltipProps = {},\n ...otherProps\n}) => {\n const tooltipContent = enabledCondition\n ? tooltipProps.enabledSwitchText\n : tooltipProps.disabledSwitchText;\n\n return (\n <Tooltip\n content={tooltipContent}\n disabled={!tooltipContent}\n position=\"top\"\n {...tooltipProps}\n >\n <span>\n <FormikSwitch\n data-cy={switchDataCy}\n data-testid=\"toggle-feature-card-switch\"\n disabled={isDisabled}\n {...{ name, ...otherProps }}\n />\n </span>\n </Tooltip>\n );\n};\n\nexport default TooltipSwitch;\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { slugify } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Edit, Close } from \"neetoicons\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES } from \"./constants\";\nimport useScrollIntoView from \"./hooks/useScrollIntoView\";\nimport \"./toggleFeatureCard.scss\";\nimport TooltipSwitch from \"./ToolTipSwitch\";\n\nconst ToggleFeatureCard = ({\n title = \"\",\n description = null,\n switchName = \"switch\",\n titleDataCy = \"\",\n switchDataCy = \"\",\n descriptionDataCy = \"\",\n isDisabled = false,\n children = null,\n inputProps,\n switchProps = {},\n}) => {\n const { t } = useTranslation();\n const cardRef = useRef();\n const id = slugify(title);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const { setFieldValue, values, submitCount, errors, initialValues } =\n useFormikContext();\n\n useEffect(() => {\n if (!(submitCount >= 1 && isEmpty(errors))) return;\n setIsEditing(false);\n }, [submitCount]);\n\n useEffect(() => {\n if (isEmpty(errors)) return;\n setIsEditing(true);\n }, [values, errors]);\n\n const [shouldHighlight, setShouldHighlight] = useState(\n location.hash.split(\"#\")[1] === id\n );\n\n const hasInput = values?.[switchName] && inputProps?.name;\n const enabledCondition = values?.[switchName];\n\n const handleInputReset = () => {\n setIsEditing(false);\n hasInput &&\n setFieldValue(inputProps?.name, initialValues?.[inputProps?.name]);\n };\n\n useOnClickOutside(cardRef, () => setShouldHighlight(false));\n\n useScrollIntoView({ elementId: id, trigger: shouldHighlight });\n\n const inputRef = useHotkeys(\"enter\", () => setIsEditing(false), {\n mode: \"scoped\",\n });\n\n return (\n <div\n {...{ id }}\n data-testid=\"toggle-feature-card\"\n ref={cardRef}\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-rounded-lg flex flex-col space-y-2 border p-4\",\n { \"neeto-ui-border-gray-300\": !shouldHighlight },\n { \"toggle-feature-card--highlighted\": shouldHighlight }\n )}\n >\n <Label className=\"flex flex-row items-center gap-2\">\n <TooltipSwitch\n {...{\n enabledCondition,\n isDisabled,\n switchDataCy,\n ...switchProps,\n }}\n name={switchName}\n />\n <Typography\n component=\"span\"\n data-cy={titleDataCy}\n data-testid=\"toggle-feature-card-title\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </Label>\n <Typography\n className=\"mb-4 whitespace-pre-line\"\n data-cy={descriptionDataCy}\n data-testid=\"toggle-feature-card-description\"\n style=\"body2\"\n >\n {description}\n </Typography>\n {hasInput && !isEditing && (\n <div className=\"m-0 flex flex-row items-center space-x-2\">\n {inputProps?.display}\n <Button\n data-cy={inputProps?.editButtonDataCy}\n data-testid=\"toggle-feature-card-input-display-edit\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n tooltipProps={{\n content:\n inputProps?.editButtonTooltip ||\n t(\n \"neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip\"\n ),\n position: \"right\",\n }}\n onClick={() => setIsEditing(true)}\n />\n </div>\n )}\n {hasInput && isEditing && (\n <Input\n autoFocus\n data-cy={inputProps?.dataCy}\n data-testid=\"toggle-feature-card-input-field\"\n label={inputProps?.label}\n name={inputProps?.name}\n placeholder={inputProps?.placeholder}\n ref={inputRef}\n size=\"medium\"\n suffix={\n <Button\n data-testid=\"toggle-feature-card-input-reset\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n onClick={handleInputReset}\n />\n }\n {...inputProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nToggleFeatureCard.propTypes = {\n /**\n * The title that will be displayed for the card.\n */\n title: PropTypes.string,\n /**\n * The descripton text for the particular feature or setting.\n */\n description: PropTypes.string,\n /**\n * The formik name of the feature or setting to be toggled. eg:\n {switchName: \"enableEmails\"}.\n */\n switchName: PropTypes.string,\n /**\n * Can be used to disable the toggle switch conditionally.\n */\n isDisabled: PropTypes.bool,\n /**\n * Custom child components to be displayed in the card.\n */\n children: PropTypes.node,\n /**\n * Can be used to add an input field for a setting or a feature.\n For example, `Enable email notifications` card can have an email input field.\n */\n inputProps: PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n }),\n /**\n * Can be used to add props to the switch component.\n */\n switchProps: PropTypes.shape({\n onChange: PropTypes.func,\n className: PropTypes.string,\n checked: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n enabledSwitchText: PropTypes.string,\n disabledSwitchText: PropTypes.string,\n }),\n }),\n};\n\nexport default ToggleFeatureCard;\n"],"names":["useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","TooltipSwitch","enabledCondition","_ref$name","name","_ref$isDisabled","isDisabled","switchDataCy","_ref$tooltipProps","tooltipProps","otherProps","_objectWithoutProperties","_excluded","tooltipContent","enabledSwitchText","disabledSwitchText","React","createElement","Tooltip","_extends","content","disabled","position","FormikSwitch","_objectSpread","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","children","inputProps","_ref$switchProps","switchProps","_useTranslation","useTranslation","t","cardRef","useRef","id","slugify","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_useFormikContext","useFormikContext","setFieldValue","values","submitCount","errors","initialValues","isEmpty","_useState3","location","hash","split","_useState4","shouldHighlight","setShouldHighlight","hasInput","handleInputReset","useOnClickOutside","inputRef","useHotkeys","mode","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","icon","Edit","size","type","editButtonTooltip","onClick","Input","autoFocus","dataCy","label","placeholder","suffix","Close"],"mappings":"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"}
|
package/dist/cjs/MadeWith.js
CHANGED
|
@@ -13,7 +13,7 @@ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
|
13
13
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
14
14
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
15
|
|
|
16
|
-
var css = ".neeto-molecules-made-with__wrapper{background:#fff;border:1px solid #dfdfde;border-radius:4px;color:#000;font-family
|
|
16
|
+
var css = ".neeto-molecules-made-with__wrapper{background:#fff;border:1px solid #dfdfde;border-radius:4px;color:#000;font-family:-apple-system,BlinkMacSystemFont,Inter,Arial,Segoe UI,Roboto,Oxygen,Ubuntu,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;font-weight:400;padding:4px 6px;transition:all;transition-duration:.3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-made-with__wrapper strong{font-weight:700}.neeto-molecules-made-with__wrapper:hover{box-shadow:inset 0 0 0 1px #dfdfde}";
|
|
17
17
|
injectCss.n(css,{});
|
|
18
18
|
|
|
19
19
|
var _excluded = ["productName"];
|
|
@@ -21,7 +21,6 @@ var injectCss = require('./inject-css-80a5faa3.js');
|
|
|
21
21
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
22
22
|
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
23
23
|
var Switch = require('@bigbinary/neetoui/formik/Switch');
|
|
24
|
-
var i18next = require('i18next');
|
|
25
24
|
|
|
26
25
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
26
|
|
|
@@ -55,15 +54,6 @@ var useScrollIntoView = function useScrollIntoView(_ref) {
|
|
|
55
54
|
var css = ".toggle-feature-card--highlighted{border-color:rgb(var(--neeto-ui-primary-800))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-800))}";
|
|
56
55
|
injectCss.n(css,{});
|
|
57
56
|
|
|
58
|
-
var getTooltipContent = function getTooltipContent(_ref) {
|
|
59
|
-
var enabledCondition = _ref.enabledCondition,
|
|
60
|
-
tooltipProps = _ref.tooltipProps;
|
|
61
|
-
if (enabledCondition) {
|
|
62
|
-
return tooltipProps.enabledSwitchText || i18next.t("neetoMolecules.toggleFeatureCard.switchTooltip.enabled");
|
|
63
|
-
}
|
|
64
|
-
return tooltipProps.disabledSwitchText || i18next.t("neetoMolecules.toggleFeatureCard.switchTooltip.disabled");
|
|
65
|
-
};
|
|
66
|
-
|
|
67
57
|
var _excluded = ["enabledCondition", "name", "isDisabled", "switchDataCy", "tooltipProps"];
|
|
68
58
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
69
59
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -77,11 +67,10 @@ var TooltipSwitch = function TooltipSwitch(_ref) {
|
|
|
77
67
|
_ref$tooltipProps = _ref.tooltipProps,
|
|
78
68
|
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
79
69
|
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
70
|
+
var tooltipContent = enabledCondition ? tooltipProps.enabledSwitchText : tooltipProps.disabledSwitchText;
|
|
80
71
|
return /*#__PURE__*/React__default["default"].createElement(Tooltip__default["default"], _extends__default["default"]({
|
|
81
|
-
content:
|
|
82
|
-
|
|
83
|
-
tooltipProps: tooltipProps
|
|
84
|
-
}),
|
|
72
|
+
content: tooltipContent,
|
|
73
|
+
disabled: !tooltipContent,
|
|
85
74
|
position: "top"
|
|
86
75
|
}, tooltipProps), /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(Switch__default["default"], _extends__default["default"]({
|
|
87
76
|
"data-cy": switchDataCy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleFeatureCard.js","sources":["../../src/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../../src/components/ToggleFeatureCard/utils.js","../../src/components/ToggleFeatureCard/ToolTipSwitch.jsx","../../src/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useScrollIntoView = ({ elementId, trigger }) => {\n useEffect(() => {\n if (!trigger) return;\n document.getElementById(elementId)?.scrollIntoView();\n }, [trigger]);\n};\n\nexport default useScrollIntoView;\n","import { t } from \"i18next\";\n\nexport const getTooltipContent = ({ enabledCondition, tooltipProps }) => {\n if (enabledCondition) {\n return (\n tooltipProps.enabledSwitchText ||\n t(\"neetoMolecules.toggleFeatureCard.switchTooltip.enabled\")\n );\n }\n\n return (\n tooltipProps.disabledSwitchText ||\n t(\"neetoMolecules.toggleFeatureCard.switchTooltip.disabled\")\n );\n};\n","import React from \"react\";\n\nimport { Tooltip } from \"neetoui\";\nimport { Switch as FormikSwitch } from \"neetoui/formik\";\n\nimport { getTooltipContent } from \"./utils\";\n\nconst TooltipSwitch = ({\n enabledCondition,\n name = \"\",\n isDisabled = false,\n switchDataCy,\n tooltipProps = {},\n ...otherProps\n}) => (\n <Tooltip\n content={getTooltipContent({ enabledCondition, tooltipProps })}\n position=\"top\"\n {...tooltipProps}\n >\n <span>\n <FormikSwitch\n data-cy={switchDataCy}\n data-testid=\"toggle-feature-card-switch\"\n disabled={isDisabled}\n {...{ name, ...otherProps }}\n />\n </span>\n </Tooltip>\n);\nexport default TooltipSwitch;\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { slugify } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Edit, Close } from \"neetoicons\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES } from \"./constants\";\nimport useScrollIntoView from \"./hooks/useScrollIntoView\";\nimport \"./toggleFeatureCard.scss\";\nimport TooltipSwitch from \"./ToolTipSwitch\";\n\nconst ToggleFeatureCard = ({\n title = \"\",\n description = null,\n switchName = \"switch\",\n titleDataCy = \"\",\n switchDataCy = \"\",\n descriptionDataCy = \"\",\n isDisabled = false,\n children = null,\n inputProps,\n switchProps = {},\n}) => {\n const { t } = useTranslation();\n const cardRef = useRef();\n const id = slugify(title);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const { setFieldValue, values, submitCount, errors, initialValues } =\n useFormikContext();\n\n useEffect(() => {\n if (!(submitCount >= 1 && isEmpty(errors))) return;\n setIsEditing(false);\n }, [submitCount]);\n\n useEffect(() => {\n if (isEmpty(errors)) return;\n setIsEditing(true);\n }, [values, errors]);\n\n const [shouldHighlight, setShouldHighlight] = useState(\n location.hash.split(\"#\")[1] === id\n );\n\n const hasInput = values?.[switchName] && inputProps?.name;\n const enabledCondition = values?.[switchName];\n\n const handleInputReset = () => {\n setIsEditing(false);\n hasInput &&\n setFieldValue(inputProps?.name, initialValues?.[inputProps?.name]);\n };\n\n useOnClickOutside(cardRef, () => setShouldHighlight(false));\n\n useScrollIntoView({ elementId: id, trigger: shouldHighlight });\n\n const inputRef = useHotkeys(\"enter\", () => setIsEditing(false), {\n mode: \"scoped\",\n });\n\n return (\n <div\n {...{ id }}\n data-testid=\"toggle-feature-card\"\n ref={cardRef}\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-rounded-lg flex flex-col space-y-2 border p-4\",\n { \"neeto-ui-border-gray-300\": !shouldHighlight },\n { \"toggle-feature-card--highlighted\": shouldHighlight }\n )}\n >\n <Label className=\"flex flex-row items-center gap-2\">\n <TooltipSwitch\n {...{\n enabledCondition,\n isDisabled,\n switchDataCy,\n ...switchProps,\n }}\n name={switchName}\n />\n <Typography\n component=\"span\"\n data-cy={titleDataCy}\n data-testid=\"toggle-feature-card-title\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </Label>\n <Typography\n className=\"mb-4 whitespace-pre-line\"\n data-cy={descriptionDataCy}\n data-testid=\"toggle-feature-card-description\"\n style=\"body2\"\n >\n {description}\n </Typography>\n {hasInput && !isEditing && (\n <div className=\"m-0 flex flex-row items-center space-x-2\">\n {inputProps?.display}\n <Button\n data-cy={inputProps?.editButtonDataCy}\n data-testid=\"toggle-feature-card-input-display-edit\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n tooltipProps={{\n content:\n inputProps?.editButtonTooltip ||\n t(\n \"neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip\"\n ),\n position: \"right\",\n }}\n onClick={() => setIsEditing(true)}\n />\n </div>\n )}\n {hasInput && isEditing && (\n <Input\n autoFocus\n data-cy={inputProps?.dataCy}\n data-testid=\"toggle-feature-card-input-field\"\n label={inputProps?.label}\n name={inputProps?.name}\n placeholder={inputProps?.placeholder}\n ref={inputRef}\n size=\"medium\"\n suffix={\n <Button\n data-testid=\"toggle-feature-card-input-reset\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n onClick={handleInputReset}\n />\n }\n {...inputProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nToggleFeatureCard.propTypes = {\n /**\n * The title that will be displayed for the card.\n */\n title: PropTypes.string,\n /**\n * The descripton text for the particular feature or setting.\n */\n description: PropTypes.string,\n /**\n * The formik name of the feature or setting to be toggled. eg:\n {switchName: \"enableEmails\"}.\n */\n switchName: PropTypes.string,\n /**\n * Can be used to disable the toggle switch conditionally.\n */\n isDisabled: PropTypes.bool,\n /**\n * Custom child components to be displayed in the card.\n */\n children: PropTypes.node,\n /**\n * Can be used to add an input field for a setting or a feature.\n For example, `Enable email notifications` card can have an email input field.\n */\n inputProps: PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n }),\n /**\n * Can be used to add props to the switch component.\n */\n switchProps: PropTypes.shape({\n onChange: PropTypes.func,\n className: PropTypes.string,\n checked: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n enabledSwitchText: PropTypes.string,\n disabledSwitchText: PropTypes.string,\n }),\n }),\n};\n\nexport default ToggleFeatureCard;\n"],"names":["useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","getTooltipContent","enabledCondition","tooltipProps","enabledSwitchText","t","disabledSwitchText","TooltipSwitch","_ref$name","name","_ref$isDisabled","isDisabled","switchDataCy","_ref$tooltipProps","otherProps","_objectWithoutProperties","_excluded","React","createElement","Tooltip","_extends","content","position","FormikSwitch","disabled","_objectSpread","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","children","inputProps","_ref$switchProps","switchProps","_useTranslation","useTranslation","cardRef","useRef","id","slugify","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_useFormikContext","useFormikContext","setFieldValue","values","submitCount","errors","initialValues","isEmpty","_useState3","location","hash","split","_useState4","shouldHighlight","setShouldHighlight","hasInput","handleInputReset","useOnClickOutside","inputRef","useHotkeys","mode","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","icon","Edit","size","type","editButtonTooltip","onClick","Input","autoFocus","dataCy","label","placeholder","suffix","Close"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToggleFeatureCard.js","sources":["../../src/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../../src/components/ToggleFeatureCard/ToolTipSwitch.jsx","../../src/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst useScrollIntoView = ({ elementId, trigger }) => {\n useEffect(() => {\n if (!trigger) return;\n document.getElementById(elementId)?.scrollIntoView();\n }, [trigger]);\n};\n\nexport default useScrollIntoView;\n","import React from \"react\";\n\nimport { Tooltip } from \"neetoui\";\nimport { Switch as FormikSwitch } from \"neetoui/formik\";\n\nconst TooltipSwitch = ({\n enabledCondition,\n name = \"\",\n isDisabled = false,\n switchDataCy,\n tooltipProps = {},\n ...otherProps\n}) => {\n const tooltipContent = enabledCondition\n ? tooltipProps.enabledSwitchText\n : tooltipProps.disabledSwitchText;\n\n return (\n <Tooltip\n content={tooltipContent}\n disabled={!tooltipContent}\n position=\"top\"\n {...tooltipProps}\n >\n <span>\n <FormikSwitch\n data-cy={switchDataCy}\n data-testid=\"toggle-feature-card-switch\"\n disabled={isDisabled}\n {...{ name, ...otherProps }}\n />\n </span>\n </Tooltip>\n );\n};\n\nexport default TooltipSwitch;\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { slugify } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Edit, Close } from \"neetoicons\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES } from \"./constants\";\nimport useScrollIntoView from \"./hooks/useScrollIntoView\";\nimport \"./toggleFeatureCard.scss\";\nimport TooltipSwitch from \"./ToolTipSwitch\";\n\nconst ToggleFeatureCard = ({\n title = \"\",\n description = null,\n switchName = \"switch\",\n titleDataCy = \"\",\n switchDataCy = \"\",\n descriptionDataCy = \"\",\n isDisabled = false,\n children = null,\n inputProps,\n switchProps = {},\n}) => {\n const { t } = useTranslation();\n const cardRef = useRef();\n const id = slugify(title);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const { setFieldValue, values, submitCount, errors, initialValues } =\n useFormikContext();\n\n useEffect(() => {\n if (!(submitCount >= 1 && isEmpty(errors))) return;\n setIsEditing(false);\n }, [submitCount]);\n\n useEffect(() => {\n if (isEmpty(errors)) return;\n setIsEditing(true);\n }, [values, errors]);\n\n const [shouldHighlight, setShouldHighlight] = useState(\n location.hash.split(\"#\")[1] === id\n );\n\n const hasInput = values?.[switchName] && inputProps?.name;\n const enabledCondition = values?.[switchName];\n\n const handleInputReset = () => {\n setIsEditing(false);\n hasInput &&\n setFieldValue(inputProps?.name, initialValues?.[inputProps?.name]);\n };\n\n useOnClickOutside(cardRef, () => setShouldHighlight(false));\n\n useScrollIntoView({ elementId: id, trigger: shouldHighlight });\n\n const inputRef = useHotkeys(\"enter\", () => setIsEditing(false), {\n mode: \"scoped\",\n });\n\n return (\n <div\n {...{ id }}\n data-testid=\"toggle-feature-card\"\n ref={cardRef}\n className={classnames(\n \"neeto-ui-bg-white neeto-ui-rounded-lg flex flex-col space-y-2 border p-4\",\n { \"neeto-ui-border-gray-300\": !shouldHighlight },\n { \"toggle-feature-card--highlighted\": shouldHighlight }\n )}\n >\n <Label className=\"flex flex-row items-center gap-2\">\n <TooltipSwitch\n {...{\n enabledCondition,\n isDisabled,\n switchDataCy,\n ...switchProps,\n }}\n name={switchName}\n />\n <Typography\n component=\"span\"\n data-cy={titleDataCy}\n data-testid=\"toggle-feature-card-title\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </Label>\n <Typography\n className=\"mb-4 whitespace-pre-line\"\n data-cy={descriptionDataCy}\n data-testid=\"toggle-feature-card-description\"\n style=\"body2\"\n >\n {description}\n </Typography>\n {hasInput && !isEditing && (\n <div className=\"m-0 flex flex-row items-center space-x-2\">\n {inputProps?.display}\n <Button\n data-cy={inputProps?.editButtonDataCy}\n data-testid=\"toggle-feature-card-input-display-edit\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n tooltipProps={{\n content:\n inputProps?.editButtonTooltip ||\n t(\n \"neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip\"\n ),\n position: \"right\",\n }}\n onClick={() => setIsEditing(true)}\n />\n </div>\n )}\n {hasInput && isEditing && (\n <Input\n autoFocus\n data-cy={inputProps?.dataCy}\n data-testid=\"toggle-feature-card-input-field\"\n label={inputProps?.label}\n name={inputProps?.name}\n placeholder={inputProps?.placeholder}\n ref={inputRef}\n size=\"medium\"\n suffix={\n <Button\n data-testid=\"toggle-feature-card-input-reset\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n type=\"button\"\n onClick={handleInputReset}\n />\n }\n {...inputProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nToggleFeatureCard.propTypes = {\n /**\n * The title that will be displayed for the card.\n */\n title: PropTypes.string,\n /**\n * The descripton text for the particular feature or setting.\n */\n description: PropTypes.string,\n /**\n * The formik name of the feature or setting to be toggled. eg:\n {switchName: \"enableEmails\"}.\n */\n switchName: PropTypes.string,\n /**\n * Can be used to disable the toggle switch conditionally.\n */\n isDisabled: PropTypes.bool,\n /**\n * Custom child components to be displayed in the card.\n */\n children: PropTypes.node,\n /**\n * Can be used to add an input field for a setting or a feature.\n For example, `Enable email notifications` card can have an email input field.\n */\n inputProps: PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n }),\n /**\n * Can be used to add props to the switch component.\n */\n switchProps: PropTypes.shape({\n onChange: PropTypes.func,\n className: PropTypes.string,\n checked: PropTypes.bool,\n tooltipProps: PropTypes.shape({\n enabledSwitchText: PropTypes.string,\n disabledSwitchText: PropTypes.string,\n }),\n }),\n};\n\nexport default ToggleFeatureCard;\n"],"names":["useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","TooltipSwitch","enabledCondition","_ref$name","name","_ref$isDisabled","isDisabled","switchDataCy","_ref$tooltipProps","tooltipProps","otherProps","_objectWithoutProperties","_excluded","tooltipContent","enabledSwitchText","disabledSwitchText","React","createElement","Tooltip","_extends","content","disabled","position","FormikSwitch","_objectSpread","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","children","inputProps","_ref$switchProps","switchProps","_useTranslation","useTranslation","t","cardRef","useRef","id","slugify","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_useFormikContext","useFormikContext","setFieldValue","values","submitCount","errors","initialValues","isEmpty","_useState3","location","hash","split","_useState4","shouldHighlight","setShouldHighlight","hasInput","handleInputReset","useOnClickOutside","inputRef","useHotkeys","mode","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","icon","Edit","size","type","editButtonTooltip","onClick","Input","autoFocus","dataCy","label","placeholder","suffix","Close"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.4",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
package/src/translations/en.json
CHANGED