@bigbinary/neeto-molecules 3.7.19 → 3.7.20

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.
@@ -65,6 +65,9 @@ var DynamicVariables = function DynamicVariables(_ref) {
65
65
  }
66
66
  var parsedVariables = parseVariables(variables);
67
67
  return /*#__PURE__*/jsx(Dropdown, _objectSpread(_objectSpread({
68
+ appendTo: function appendTo() {
69
+ return document.body;
70
+ },
68
71
  buttonStyle: "secondary",
69
72
  icon: Braces,
70
73
  strategy: "fixed",
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicVariables.js","sources":["../src/components/DynamicVariables/utils.js","../src/components/DynamicVariables/index.jsx"],"sourcesContent":["import { findBy } from \"neetocist\";\nimport { prop, assoc, isEmpty, uniqBy } from \"ramda\";\n\nexport const parseVariables = (variableArr = []) => {\n const uncategorized = [];\n const groupedVariables = [];\n const categorySet = new Set();\n\n variableArr.forEach(variable => {\n const { category, label, variables } = variable;\n if (category && variables) {\n const parsedVariables = variables.map(assoc(\"category\", category));\n\n if (!categorySet.has(category)) {\n categorySet.add(category);\n groupedVariables.push({ label, variables: parsedVariables });\n } else {\n const existingGroup = findBy({ label }, groupedVariables);\n\n existingGroup.variables = uniqBy(\n prop(\"key\"),\n existingGroup.variables.concat(parsedVariables)\n );\n }\n } else {\n uncategorized.push(variable);\n }\n });\n\n if (!isEmpty(uncategorized)) {\n groupedVariables.push({\n label: !isEmpty(groupedVariables) ? \"Others\" : null,\n variables: uncategorized,\n });\n }\n\n return groupedVariables;\n};\n","import { Fragment } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Braces } from \"neetoicons\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport \"./dynamic-variables.scss\";\nimport { parseVariables } from \"./utils\";\n\nconst { Menu } = Dropdown;\n\nconst DynamicVariables = ({\n onVariableClick = noop,\n variables = [],\n buttonProps,\n ...dropdownProps\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\n buttonProps={{\n \"data-testid\": \"variables-dropdown\",\n \"data-cy\": \"dynamic-variables-button\",\n ...buttonProps,\n }}\n {...dropdownProps}\n >\n <Menu>\n <div\n className=\"neeto-molecules-dynamic-variables\"\n data-testid=\"variables-list\"\n >\n {parsedVariables.map(({ label, variables }) => (\n <Fragment key={label}>\n {label && <Typography style=\"h6\">{label}</Typography>}\n <div\n className=\"neeto-molecules-dynamic-variables__list\"\n data-cy=\"dynamic-variables-list\"\n >\n {variables.map(item => (\n <button\n key={item.label}\n data-cy={joinHyphenCase(\n \"dynamic-variables-list-item\",\n item.label\n )}\n onClick={() => onVariableClick(item)}\n >\n {item.label}\n </button>\n ))}\n </div>\n </Fragment>\n ))}\n </div>\n </Menu>\n </Dropdown>\n );\n};\n\nDynamicVariables.propTypes = {\n /**\n * A function that is triggered when a dynamic variable button is clicked. It receives an object containing information about the clicked variable.\n */\n onVariableClick: PropTypes.func,\n /**\n * An array of objects, each representing a category or standalone variable, with the ability to define a label, key, and default value for each variable.\n */\n variables: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, key: PropTypes.string })\n ),\n};\n\nexport default DynamicVariables;\n"],"names":["parseVariables","variableArr","arguments","length","undefined","uncategorized","groupedVariables","categorySet","Set","forEach","variable","category","label","variables","parsedVariables","map","assoc","has","add","push","existingGroup","findBy","uniqBy","prop","concat","isEmpty","Menu","Dropdown","DynamicVariables","_ref","_ref$onVariableClick","onVariableClick","noop","_ref$variables","buttonProps","dropdownProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","buttonStyle","icon","Braces","strategy","children","className","_ref2","_jsxs","Fragment","Typography","style","item","joinHyphenCase","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicVariables.js","sources":["../src/components/DynamicVariables/utils.js","../src/components/DynamicVariables/index.jsx"],"sourcesContent":["import { findBy } from \"neetocist\";\nimport { prop, assoc, isEmpty, uniqBy } from \"ramda\";\n\nexport const parseVariables = (variableArr = []) => {\n const uncategorized = [];\n const groupedVariables = [];\n const categorySet = new Set();\n\n variableArr.forEach(variable => {\n const { category, label, variables } = variable;\n if (category && variables) {\n const parsedVariables = variables.map(assoc(\"category\", category));\n\n if (!categorySet.has(category)) {\n categorySet.add(category);\n groupedVariables.push({ label, variables: parsedVariables });\n } else {\n const existingGroup = findBy({ label }, groupedVariables);\n\n existingGroup.variables = uniqBy(\n prop(\"key\"),\n existingGroup.variables.concat(parsedVariables)\n );\n }\n } else {\n uncategorized.push(variable);\n }\n });\n\n if (!isEmpty(uncategorized)) {\n groupedVariables.push({\n label: !isEmpty(groupedVariables) ? \"Others\" : null,\n variables: uncategorized,\n });\n }\n\n return groupedVariables;\n};\n","import { Fragment } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Braces } from \"neetoicons\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport \"./dynamic-variables.scss\";\nimport { parseVariables } from \"./utils\";\n\nconst { Menu } = Dropdown;\n\nconst DynamicVariables = ({\n onVariableClick = noop,\n variables = [],\n buttonProps,\n ...dropdownProps\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n appendTo={() => document.body}\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\n buttonProps={{\n \"data-testid\": \"variables-dropdown\",\n \"data-cy\": \"dynamic-variables-button\",\n ...buttonProps,\n }}\n {...dropdownProps}\n >\n <Menu>\n <div\n className=\"neeto-molecules-dynamic-variables\"\n data-testid=\"variables-list\"\n >\n {parsedVariables.map(({ label, variables }) => (\n <Fragment key={label}>\n {label && <Typography style=\"h6\">{label}</Typography>}\n <div\n className=\"neeto-molecules-dynamic-variables__list\"\n data-cy=\"dynamic-variables-list\"\n >\n {variables.map(item => (\n <button\n key={item.label}\n data-cy={joinHyphenCase(\n \"dynamic-variables-list-item\",\n item.label\n )}\n onClick={() => onVariableClick(item)}\n >\n {item.label}\n </button>\n ))}\n </div>\n </Fragment>\n ))}\n </div>\n </Menu>\n </Dropdown>\n );\n};\n\nDynamicVariables.propTypes = {\n /**\n * A function that is triggered when a dynamic variable button is clicked. It receives an object containing information about the clicked variable.\n */\n onVariableClick: PropTypes.func,\n /**\n * An array of objects, each representing a category or standalone variable, with the ability to define a label, key, and default value for each variable.\n */\n variables: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, key: PropTypes.string })\n ),\n};\n\nexport default DynamicVariables;\n"],"names":["parseVariables","variableArr","arguments","length","undefined","uncategorized","groupedVariables","categorySet","Set","forEach","variable","category","label","variables","parsedVariables","map","assoc","has","add","push","existingGroup","findBy","uniqBy","prop","concat","isEmpty","Menu","Dropdown","DynamicVariables","_ref","_ref$onVariableClick","onVariableClick","noop","_ref$variables","buttonProps","dropdownProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","appendTo","document","body","buttonStyle","icon","Braces","strategy","children","className","_ref2","_jsxs","Fragment","Typography","style","item","joinHyphenCase","onClick"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { useFormikContext } from 'formik';
6
6
  import { slugify } from '@bigbinary/neeto-cist';
7
7
  import useOnClickOutside from '@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside';
8
8
  import useHotkeys from '@bigbinary/neeto-hotkeys';
9
- import Edit from '@bigbinary/neeto-icons/Edit';
10
9
  import Close from '@bigbinary/neeto-icons/Close';
11
10
  import Typography from '@bigbinary/neetoui/Typography';
12
11
  import Label from '@bigbinary/neetoui/Label';
@@ -85,7 +84,9 @@ var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
85
84
  children = _ref$children === void 0 ? null : _ref$children,
86
85
  inputProps = _ref.inputProps,
87
86
  _ref$switchProps = _ref.switchProps,
88
- switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps;
87
+ switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps,
88
+ _ref$editButtonProps = _ref.editButtonProps,
89
+ editButtonProps = _ref$editButtonProps === void 0 ? {} : _ref$editButtonProps;
89
90
  var _useTranslation = useTranslation(),
90
91
  t = _useTranslation.t;
91
92
  var cardRef = useRef();
@@ -164,21 +165,17 @@ var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
164
165
  children: description
165
166
  }), hasInput && !isEditing && /*#__PURE__*/jsxs("div", {
166
167
  className: "m-0 flex flex-row items-center space-x-2",
167
- children: [inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/jsx(Button, {
168
+ children: [inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/jsx(Button, _objectSpread({
168
169
  "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonDataCy,
169
170
  "data-testid": "toggle-feature-card-input-display-edit",
170
- icon: Edit,
171
+ label: t("neetoMolecules.common.actions.edit"),
171
172
  size: "small",
172
- style: "text",
173
+ style: "link",
173
174
  type: "button",
174
- tooltipProps: {
175
- content: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonTooltip) || t("neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip"),
176
- position: "right"
177
- },
178
175
  onClick: function onClick() {
179
176
  return setIsEditing(true);
180
177
  }
181
- })]
178
+ }, editButtonProps))]
182
179
  }), hasInput && isEditing && /*#__PURE__*/jsx(Input, _objectSpread({
183
180
  autoFocus: true,
184
181
  "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.dataCy,
@@ -1 +1 @@
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 { 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 { 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-cy=\"feature-card-container\"\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","_jsx","Tooltip","_objectSpread","content","disabled","position","children","FormikSwitch","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$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","_jsxs","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 { 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 { 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 { 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 editButtonProps = {},\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-cy=\"feature-card-container\"\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 label={t(\"neetoMolecules.common.actions.edit\")}\n size=\"small\"\n style=\"link\"\n type=\"button\"\n onClick={() => setIsEditing(true)}\n {...editButtonProps}\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 * Can be used to add props to the edit button component.\n */\n editButtonProps: PropTypes.shape({\n onClick: PropTypes.func,\n className: PropTypes.string,\n style: PropTypes.string,\n size: PropTypes.string,\n type: PropTypes.string,\n tooltipProps: PropTypes.object,\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","_jsx","Tooltip","_objectSpread","content","disabled","position","children","FormikSwitch","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","inputProps","_ref$switchProps","switchProps","_ref$editButtonProps","editButtonProps","_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","_jsxs","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","label","size","type","onClick","Input","autoFocus","dataCy","placeholder","suffix","icon","Close"],"mappings":"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"}
@@ -75,6 +75,9 @@ var DynamicVariables = function DynamicVariables(_ref) {
75
75
  }
76
76
  var parsedVariables = parseVariables(variables);
77
77
  return /*#__PURE__*/jsxRuntime.jsx(Dropdown__default["default"], _objectSpread(_objectSpread({
78
+ appendTo: function appendTo() {
79
+ return document.body;
80
+ },
78
81
  buttonStyle: "secondary",
79
82
  icon: Braces__default["default"],
80
83
  strategy: "fixed",
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicVariables.js","sources":["../../src/components/DynamicVariables/utils.js","../../src/components/DynamicVariables/index.jsx"],"sourcesContent":["import { findBy } from \"neetocist\";\nimport { prop, assoc, isEmpty, uniqBy } from \"ramda\";\n\nexport const parseVariables = (variableArr = []) => {\n const uncategorized = [];\n const groupedVariables = [];\n const categorySet = new Set();\n\n variableArr.forEach(variable => {\n const { category, label, variables } = variable;\n if (category && variables) {\n const parsedVariables = variables.map(assoc(\"category\", category));\n\n if (!categorySet.has(category)) {\n categorySet.add(category);\n groupedVariables.push({ label, variables: parsedVariables });\n } else {\n const existingGroup = findBy({ label }, groupedVariables);\n\n existingGroup.variables = uniqBy(\n prop(\"key\"),\n existingGroup.variables.concat(parsedVariables)\n );\n }\n } else {\n uncategorized.push(variable);\n }\n });\n\n if (!isEmpty(uncategorized)) {\n groupedVariables.push({\n label: !isEmpty(groupedVariables) ? \"Others\" : null,\n variables: uncategorized,\n });\n }\n\n return groupedVariables;\n};\n","import { Fragment } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Braces } from \"neetoicons\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport \"./dynamic-variables.scss\";\nimport { parseVariables } from \"./utils\";\n\nconst { Menu } = Dropdown;\n\nconst DynamicVariables = ({\n onVariableClick = noop,\n variables = [],\n buttonProps,\n ...dropdownProps\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\n buttonProps={{\n \"data-testid\": \"variables-dropdown\",\n \"data-cy\": \"dynamic-variables-button\",\n ...buttonProps,\n }}\n {...dropdownProps}\n >\n <Menu>\n <div\n className=\"neeto-molecules-dynamic-variables\"\n data-testid=\"variables-list\"\n >\n {parsedVariables.map(({ label, variables }) => (\n <Fragment key={label}>\n {label && <Typography style=\"h6\">{label}</Typography>}\n <div\n className=\"neeto-molecules-dynamic-variables__list\"\n data-cy=\"dynamic-variables-list\"\n >\n {variables.map(item => (\n <button\n key={item.label}\n data-cy={joinHyphenCase(\n \"dynamic-variables-list-item\",\n item.label\n )}\n onClick={() => onVariableClick(item)}\n >\n {item.label}\n </button>\n ))}\n </div>\n </Fragment>\n ))}\n </div>\n </Menu>\n </Dropdown>\n );\n};\n\nDynamicVariables.propTypes = {\n /**\n * A function that is triggered when a dynamic variable button is clicked. It receives an object containing information about the clicked variable.\n */\n onVariableClick: PropTypes.func,\n /**\n * An array of objects, each representing a category or standalone variable, with the ability to define a label, key, and default value for each variable.\n */\n variables: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, key: PropTypes.string })\n ),\n};\n\nexport default DynamicVariables;\n"],"names":["parseVariables","variableArr","arguments","length","undefined","uncategorized","groupedVariables","categorySet","Set","forEach","variable","category","label","variables","parsedVariables","map","assoc","has","add","push","existingGroup","findBy","uniqBy","prop","concat","isEmpty","Menu","Dropdown","DynamicVariables","_ref","_ref$onVariableClick","onVariableClick","noop","_ref$variables","buttonProps","dropdownProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","buttonStyle","icon","Braces","strategy","children","className","_ref2","_jsxs","Fragment","Typography","style","item","joinHyphenCase","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicVariables.js","sources":["../../src/components/DynamicVariables/utils.js","../../src/components/DynamicVariables/index.jsx"],"sourcesContent":["import { findBy } from \"neetocist\";\nimport { prop, assoc, isEmpty, uniqBy } from \"ramda\";\n\nexport const parseVariables = (variableArr = []) => {\n const uncategorized = [];\n const groupedVariables = [];\n const categorySet = new Set();\n\n variableArr.forEach(variable => {\n const { category, label, variables } = variable;\n if (category && variables) {\n const parsedVariables = variables.map(assoc(\"category\", category));\n\n if (!categorySet.has(category)) {\n categorySet.add(category);\n groupedVariables.push({ label, variables: parsedVariables });\n } else {\n const existingGroup = findBy({ label }, groupedVariables);\n\n existingGroup.variables = uniqBy(\n prop(\"key\"),\n existingGroup.variables.concat(parsedVariables)\n );\n }\n } else {\n uncategorized.push(variable);\n }\n });\n\n if (!isEmpty(uncategorized)) {\n groupedVariables.push({\n label: !isEmpty(groupedVariables) ? \"Others\" : null,\n variables: uncategorized,\n });\n }\n\n return groupedVariables;\n};\n","import { Fragment } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Braces } from \"neetoicons\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport \"./dynamic-variables.scss\";\nimport { parseVariables } from \"./utils\";\n\nconst { Menu } = Dropdown;\n\nconst DynamicVariables = ({\n onVariableClick = noop,\n variables = [],\n buttonProps,\n ...dropdownProps\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n appendTo={() => document.body}\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\n buttonProps={{\n \"data-testid\": \"variables-dropdown\",\n \"data-cy\": \"dynamic-variables-button\",\n ...buttonProps,\n }}\n {...dropdownProps}\n >\n <Menu>\n <div\n className=\"neeto-molecules-dynamic-variables\"\n data-testid=\"variables-list\"\n >\n {parsedVariables.map(({ label, variables }) => (\n <Fragment key={label}>\n {label && <Typography style=\"h6\">{label}</Typography>}\n <div\n className=\"neeto-molecules-dynamic-variables__list\"\n data-cy=\"dynamic-variables-list\"\n >\n {variables.map(item => (\n <button\n key={item.label}\n data-cy={joinHyphenCase(\n \"dynamic-variables-list-item\",\n item.label\n )}\n onClick={() => onVariableClick(item)}\n >\n {item.label}\n </button>\n ))}\n </div>\n </Fragment>\n ))}\n </div>\n </Menu>\n </Dropdown>\n );\n};\n\nDynamicVariables.propTypes = {\n /**\n * A function that is triggered when a dynamic variable button is clicked. It receives an object containing information about the clicked variable.\n */\n onVariableClick: PropTypes.func,\n /**\n * An array of objects, each representing a category or standalone variable, with the ability to define a label, key, and default value for each variable.\n */\n variables: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, key: PropTypes.string })\n ),\n};\n\nexport default DynamicVariables;\n"],"names":["parseVariables","variableArr","arguments","length","undefined","uncategorized","groupedVariables","categorySet","Set","forEach","variable","category","label","variables","parsedVariables","map","assoc","has","add","push","existingGroup","findBy","uniqBy","prop","concat","isEmpty","Menu","Dropdown","DynamicVariables","_ref","_ref$onVariableClick","onVariableClick","noop","_ref$variables","buttonProps","dropdownProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","appendTo","document","body","buttonStyle","icon","Braces","strategy","children","className","_ref2","_jsxs","Fragment","Typography","style","item","joinHyphenCase","onClick"],"mappings":"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"}
@@ -8,7 +8,6 @@ var formik = require('formik');
8
8
  var neetoCist = require('@bigbinary/neeto-cist');
9
9
  var useOnClickOutside = require('@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside');
10
10
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
11
- var Edit = require('@bigbinary/neeto-icons/Edit');
12
11
  var Close = require('@bigbinary/neeto-icons/Close');
13
12
  var Typography = require('@bigbinary/neetoui/Typography');
14
13
  var Label = require('@bigbinary/neetoui/Label');
@@ -29,7 +28,6 @@ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray)
29
28
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
30
29
  var useOnClickOutside__default = /*#__PURE__*/_interopDefaultLegacy(useOnClickOutside);
31
30
  var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
32
- var Edit__default = /*#__PURE__*/_interopDefaultLegacy(Edit);
33
31
  var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
34
32
  var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
35
33
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
@@ -104,7 +102,9 @@ var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
104
102
  children = _ref$children === void 0 ? null : _ref$children,
105
103
  inputProps = _ref.inputProps,
106
104
  _ref$switchProps = _ref.switchProps,
107
- switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps;
105
+ switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps,
106
+ _ref$editButtonProps = _ref.editButtonProps,
107
+ editButtonProps = _ref$editButtonProps === void 0 ? {} : _ref$editButtonProps;
108
108
  var _useTranslation = reactI18next.useTranslation(),
109
109
  t = _useTranslation.t;
110
110
  var cardRef = React.useRef();
@@ -183,21 +183,17 @@ var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
183
183
  children: description
184
184
  }), hasInput && !isEditing && /*#__PURE__*/jsxRuntime.jsxs("div", {
185
185
  className: "m-0 flex flex-row items-center space-x-2",
186
- children: [inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
186
+ children: [inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], _objectSpread({
187
187
  "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonDataCy,
188
188
  "data-testid": "toggle-feature-card-input-display-edit",
189
- icon: Edit__default["default"],
189
+ label: t("neetoMolecules.common.actions.edit"),
190
190
  size: "small",
191
- style: "text",
191
+ style: "link",
192
192
  type: "button",
193
- tooltipProps: {
194
- content: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonTooltip) || t("neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip"),
195
- position: "right"
196
- },
197
193
  onClick: function onClick() {
198
194
  return setIsEditing(true);
199
195
  }
200
- })]
196
+ }, editButtonProps))]
201
197
  }), hasInput && isEditing && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread({
202
198
  autoFocus: true,
203
199
  "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.dataCy,
@@ -1 +1 @@
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 { 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 { 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-cy=\"feature-card-container\"\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","_jsx","Tooltip","_objectSpread","content","disabled","position","children","FormikSwitch","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$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","_jsxs","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 { 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 { 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 { 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 editButtonProps = {},\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-cy=\"feature-card-container\"\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 label={t(\"neetoMolecules.common.actions.edit\")}\n size=\"small\"\n style=\"link\"\n type=\"button\"\n onClick={() => setIsEditing(true)}\n {...editButtonProps}\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 * Can be used to add props to the edit button component.\n */\n editButtonProps: PropTypes.shape({\n onClick: PropTypes.func,\n className: PropTypes.string,\n style: PropTypes.string,\n size: PropTypes.string,\n type: PropTypes.string,\n tooltipProps: PropTypes.object,\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","_jsx","Tooltip","_objectSpread","content","disabled","position","children","FormikSwitch","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","inputProps","_ref$switchProps","switchProps","_ref$editButtonProps","editButtonProps","_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","_jsxs","ref","className","classnames","Label","Typography","component","style","weight","display","Button","editButtonDataCy","label","size","type","onClick","Input","autoFocus","dataCy","placeholder","suffix","icon","Close"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAA+B;AAAA,EAAA,IAAzBC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO,CAAA;AAC7CC,EAAAA,eAAS,CAAC,YAAM;AAAA,IAAA,IAAAC,qBAAA,CAAA;IACd,IAAI,CAACF,OAAO,EAAE,OAAA;AACd,IAAA,CAAAE,qBAAA,GAAAC,QAAQ,CAACC,cAAc,CAACL,SAAS,CAAC,MAAA,IAAA,IAAAG,qBAAA,KAAlCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAoCG,cAAc,EAAE,CAAA;AACtD,GAAC,EAAE,CAACL,OAAO,CAAC,CAAC,CAAA;AACf,CAAC;;;;;;;;ACJD,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CAAAR,IAAA,EAOb;AAAA,EAAA,IANJS,gBAAgB,GAAAT,IAAA,CAAhBS,gBAAgB;IAAAC,SAAA,GAAAV,IAAA,CAChBW,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,SAAA;IAAAE,eAAA,GAAAZ,IAAA,CACTa,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAClBE,YAAY,GAAAd,IAAA,CAAZc,YAAY;IAAAC,iBAAA,GAAAf,IAAA,CACZgB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;AACdE,IAAAA,UAAU,GAAAC,4CAAA,CAAAlB,IAAA,EAAAmB,SAAA,CAAA,CAAA;EAEb,IAAMC,cAAc,GAAGX,gBAAgB,GACnCO,YAAY,CAACK,iBAAiB,GAC9BL,YAAY,CAACM,kBAAkB,CAAA;AAEnC,EAAA,oBACEC,cAAA,CAACC,2BAAO,EAAAC,eAAA,CAAAA,eAAA,CAAA;AACNC,IAAAA,OAAO,EAAEN,cAAe;IACxBO,QAAQ,EAAE,CAACP,cAAe;AAC1BQ,IAAAA,QAAQ,EAAC,KAAA;AAAK,GAAA,EACVZ,YAAY,CAAA,EAAA,EAAA,EAAA;AAAAa,IAAAA,QAAA,eAEhBN,cAAA,CAAA,MAAA,EAAA;AAAAM,MAAAA,QAAA,eACEN,cAAA,CAACO,0BAAY,EAAAL,eAAA,CAAA;AACX,QAAA,SAAA,EAASX,YAAa;AACtB,QAAA,aAAA,EAAY,4BAA4B;AACxCa,QAAAA,QAAQ,EAAEd,UAAAA;AAAW,OAAA,EAAAY,eAAA,CAAA;AACfd,QAAAA,IAAI,EAAJA,IAAAA;AAAI,OAAA,EAAKM,UAAU,CAC1B,CAAA,CAAA;KACG,CAAA;AAAC,GAAA,CACA,CAAC,CAAA;AAEd,CAAC;;;;ACbD,IAAMc,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA/B,IAAA,EAYjB;AAAA,EAAA,IAAAgC,UAAA,GAAAhC,IAAA,CAXJiC,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAE,gBAAA,GAAAlC,IAAA,CACVmC,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,gBAAA;IAAAE,eAAA,GAAApC,IAAA,CAClBqC,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;IAAAE,gBAAA,GAAAtC,IAAA,CACrBuC,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,iBAAA,GAAAxC,IAAA,CAChBc,YAAY;AAAZA,IAAAA,YAAY,GAAA0B,iBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,iBAAA;IAAAC,qBAAA,GAAAzC,IAAA,CACjB0C,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAA7B,eAAA,GAAAZ,IAAA,CACtBa,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAAA+B,aAAA,GAAA3C,IAAA,CAClB6B,QAAQ;AAARA,IAAAA,QAAQ,GAAAc,aAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,aAAA;IACfC,UAAU,GAAA5C,IAAA,CAAV4C,UAAU;IAAAC,gBAAA,GAAA7C,IAAA,CACV8C,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,gBAAA;IAAAE,oBAAA,GAAA/C,IAAA,CAChBgD,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,oBAAA,CAAA;AAEpB,EAAA,IAAAE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AACT,EAAA,IAAMC,OAAO,GAAGC,YAAM,EAAE,CAAA;AACxB,EAAA,IAAMC,EAAE,GAAGC,iBAAO,CAACtB,KAAK,CAAC,CAAA;AAEzB,EAAA,IAAAuB,SAAA,GAAkCC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,kCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA1CI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAAI,iBAAA,GACEC,uBAAgB,EAAE;IADZC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEC,MAAM,GAAAH,iBAAA,CAANG,MAAM;IAAEC,WAAW,GAAAJ,iBAAA,CAAXI,WAAW;IAAEC,MAAM,GAAAL,iBAAA,CAANK,MAAM;IAAEC,aAAa,GAAAN,iBAAA,CAAbM,aAAa,CAAA;AAGjEjE,EAAAA,eAAS,CAAC,YAAM;IACd,IAAI,EAAE+D,WAAW,IAAI,CAAC,IAAIG,aAAO,CAACF,MAAM,CAAC,CAAC,EAAE,OAAA;IAC5CN,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,GAAC,EAAE,CAACK,WAAW,CAAC,CAAC,CAAA;AAEjB/D,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAIkE,aAAO,CAACF,MAAM,CAAC,EAAE,OAAA;IACrBN,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB,GAAC,EAAE,CAACI,MAAM,EAAEE,MAAM,CAAC,CAAC,CAAA;AAEpB,EAAA,IAAAG,UAAA,GAA8Cb,cAAQ,CACpDc,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKnB,EAClC,CAAC;IAAAoB,UAAA,GAAAf,kCAAA,CAAAW,UAAA,EAAA,CAAA,CAAA;AAFMK,IAAAA,eAAe,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAI1C,EAAA,IAAMG,QAAQ,GAAG,CAAAZ,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAG5B,UAAU,CAAC,MAAIO,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEjC,IAAI,CAAA,CAAA;EACzD,IAAMF,gBAAgB,GAAGwD,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG5B,UAAU,CAAC,CAAA;AAE7C,EAAA,IAAMyC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;IAC7BjB,YAAY,CAAC,KAAK,CAAC,CAAA;IACnBgB,QAAQ,IACNb,aAAa,CAACpB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEjC,IAAI,EAAEyD,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAGxB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEjC,IAAI,CAAC,CAAC,CAAA;GACrE,CAAA;EAEDoE,qCAAiB,CAAC3B,OAAO,EAAE,YAAA;IAAA,OAAMwB,kBAAkB,CAAC,KAAK,CAAC,CAAA;GAAC,CAAA,CAAA;AAE3D7E,EAAAA,iBAAiB,CAAC;AAAEE,IAAAA,SAAS,EAAEqD,EAAE;AAAEpD,IAAAA,OAAO,EAAEyE,eAAAA;AAAgB,GAAC,CAAC,CAAA;AAE9D,EAAA,IAAMK,QAAQ,GAAGC,8BAAU,CAAC,OAAO,EAAE,YAAA;IAAA,OAAMpB,YAAY,CAAC,KAAK,CAAC,CAAA;GAAE,EAAA;AAC9DqB,IAAAA,IAAI,EAAE,QAAA;AACR,GAAC,CAAC,CAAA;AAEF,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AACQ7B,IAAAA,EAAE,EAAFA,EAAE;AACR,IAAA,SAAA,EAAQ,wBAAwB;AAChC,IAAA,aAAA,EAAY,qBAAqB;AACjC8B,IAAAA,GAAG,EAAEhC,OAAQ;AACbiC,IAAAA,SAAS,EAAEC,8BAAU,CACnB,2EAA2E,EAC3E;AAAE,MAAA,0BAA0B,EAAE,CAACX,eAAAA;AAAgB,KAAC,EAChD;AAAE,MAAA,kCAAkC,EAAEA,eAAAA;AAAgB,KACxD,CAAE;IAAA9C,QAAA,EAAA,cAEFsD,eAAA,CAACI,yBAAK,EAAA;AAACF,MAAAA,SAAS,EAAC,kCAAkC;MAAAxD,QAAA,EAAA,cACjDN,cAAA,CAACf,aAAa,EAAAiB,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAA,aAAA,CAAA;AAEVhB,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBI,QAAAA,UAAU,EAAVA,UAAU;AACVC,QAAAA,YAAY,EAAZA,YAAAA;AAAY,OAAA,EACTgC,WAAW,CAAA,CAAA,EAAA,EAAA,EAAA;AAEhBnC,QAAAA,IAAI,EAAE0B,UAAAA;AAAW,OAAA,CAClB,CAAC,eACFd,cAAA,CAACiE,8BAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,SAAA,EAASlD,WAAY;AACrB,QAAA,aAAA,EAAY,2BAA2B;AACvCmD,QAAAA,KAAK,EAAC,IAAI;AACVC,QAAAA,MAAM,EAAC,UAAU;AAAA9D,QAAAA,QAAA,EAEhBI,KAAAA;AAAK,OACI,CAAC,CAAA;AAAA,KACR,CAAC,eACRV,cAAA,CAACiE,8BAAU,EAAA;AACTH,MAAAA,SAAS,EAAC,0BAA0B;AACpC,MAAA,SAAA,EAAS3C,iBAAkB;AAC3B,MAAA,aAAA,EAAY,iCAAiC;AAC7CgD,MAAAA,KAAK,EAAC,OAAO;AAAA7D,MAAAA,QAAA,EAEZM,WAAAA;AAAW,KACF,CAAC,EACZ0C,QAAQ,IAAI,CAACjB,SAAS,iBACrBuB,eAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,0CAA0C;AAAAxD,MAAAA,QAAA,EACtDe,CAAAA,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEgD,OAAO,eACpBrE,cAAA,CAACsE,0BAAM,EAAApE,aAAA,CAAA;AACL,QAAA,SAAA,EAASmB,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEkD,gBAAiB;AACtC,QAAA,aAAA,EAAY,wCAAwC;AACpDC,QAAAA,KAAK,EAAE5C,CAAC,CAAC,oCAAoC,CAAE;AAC/C6C,QAAAA,IAAI,EAAC,OAAO;AACZN,QAAAA,KAAK,EAAC,MAAM;AACZO,QAAAA,IAAI,EAAC,QAAQ;QACbC,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQrC,YAAY,CAAC,IAAI,CAAC,CAAA;AAAA,SAAA;OAC7Bb,EAAAA,eAAe,CACpB,CAAC,CAAA;KACC,CACN,EACA6B,QAAQ,IAAIjB,SAAS,iBACpBrC,cAAA,CAAC4E,yBAAK,EAAA1E,aAAA,CAAA;MACJ2E,SAAS,EAAA,IAAA;AACT,MAAA,SAAA,EAASxD,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEyD,MAAO;AAC5B,MAAA,aAAA,EAAY,iCAAiC;AAC7CN,MAAAA,KAAK,EAAEnD,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEmD,KAAM;AACzBpF,MAAAA,IAAI,EAAEiC,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEjC,IAAK;AACvB2F,MAAAA,WAAW,EAAE1D,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAE0D,WAAY;AACrClB,MAAAA,GAAG,EAAEJ,QAAS;AACdgB,MAAAA,IAAI,EAAC,QAAQ;MACbO,MAAM,eACJhF,cAAA,CAACsE,0BAAM,EAAA;AACL,QAAA,aAAA,EAAY,iCAAiC;AAC7CW,QAAAA,IAAI,EAAEC,yBAAM;AACZT,QAAAA,IAAI,EAAC,OAAO;AACZN,QAAAA,KAAK,EAAC,MAAM;AACZO,QAAAA,IAAI,EAAC,QAAQ;AACbC,QAAAA,OAAO,EAAEpB,gBAAAA;OACV,CAAA;AACF,KAAA,EACGlC,UAAU,CACf,CACF,EACAf,QAAQ,CAAA;AAAA,GACN,CAAC,CAAA;AAEV;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.7.19",
3
+ "version": "3.7.20",
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>",
@@ -573,11 +573,6 @@
573
573
  "commaSeparatedEmails": "Use comma (‘) to add multiple email addresses"
574
574
  }
575
575
  },
576
- "toggleFeatureCard": {
577
- "input": {
578
- "editButtonDefaultTooltip": "Edit"
579
- }
580
- },
581
576
  "calendarView": {
582
577
  "allDay": "All Day",
583
578
  "weekly": "Weekly",
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { InputProps, SwitchProps as NeetoUISwitchProps } from "neetoui";
2
+ import { InputProps, SwitchProps as NeetoUISwitchProps, ButtonProps } from "neetoui";
3
3
  type TooltipProps = {
4
4
  enabledSwitchText?: string;
5
5
  disabledSwitchText?: string;
@@ -29,5 +29,6 @@ const ToggleFeatureCard: React.FC<{
29
29
  children?: React.ReactNode | null;
30
30
  inputProps?: InputProps;
31
31
  switchProps?: SwitchProps;
32
+ editButtonProps?: ButtonProps;
32
33
  }>;
33
34
  export default ToggleFeatureCard;