@bigbinary/neeto-molecules 1.0.87-beta → 1.0.88

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.
@@ -0,0 +1,298 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { useFormikContext } from 'formik';
3
+ import { slugify } from '@bigbinary/neeto-commons-frontend/pure';
4
+ import { withT, useOnClickOutside, useHotKeys } from '@bigbinary/neeto-commons-frontend/react-utils';
5
+ import { Edit, Close } from '@bigbinary/neeto-icons';
6
+ import { Tooltip, Label, Typography, Button } from '@bigbinary/neetoui';
7
+ import { Switch, Input } from '@bigbinary/neetoui/formik';
8
+ import { isEmpty } from 'ramda';
9
+ import { useTranslation } from 'react-i18next';
10
+
11
+ function _arrayWithHoles(arr) {
12
+ if (Array.isArray(arr)) return arr;
13
+ }
14
+
15
+ function _iterableToArrayLimit(arr, i) {
16
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
17
+ if (null != _i) {
18
+ var _s,
19
+ _e,
20
+ _x,
21
+ _r,
22
+ _arr = [],
23
+ _n = !0,
24
+ _d = !1;
25
+ try {
26
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
27
+ if (Object(_i) !== _i) return;
28
+ _n = !1;
29
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
30
+ } catch (err) {
31
+ _d = !0, _e = err;
32
+ } finally {
33
+ try {
34
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
35
+ } finally {
36
+ if (_d) throw _e;
37
+ }
38
+ }
39
+ return _arr;
40
+ }
41
+ }
42
+
43
+ function _arrayLikeToArray(arr, len) {
44
+ if (len == null || len > arr.length) len = arr.length;
45
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
46
+ return arr2;
47
+ }
48
+
49
+ function _unsupportedIterableToArray(o, minLen) {
50
+ if (!o) return;
51
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
52
+ var n = Object.prototype.toString.call(o).slice(8, -1);
53
+ if (n === "Object" && o.constructor) n = o.constructor.name;
54
+ if (n === "Map" || n === "Set") return Array.from(o);
55
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
56
+ }
57
+
58
+ function _nonIterableRest() {
59
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
60
+ }
61
+
62
+ function _slicedToArray(arr, i) {
63
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
64
+ }
65
+
66
+ var classnames$1 = {exports: {}};
67
+
68
+ /*!
69
+ Copyright (c) 2018 Jed Watson.
70
+ Licensed under the MIT License (MIT), see
71
+ http://jedwatson.github.io/classnames
72
+ */
73
+
74
+ (function (module) {
75
+ /* global define */
76
+
77
+ (function () {
78
+
79
+ var hasOwn = {}.hasOwnProperty;
80
+
81
+ function classNames() {
82
+ var classes = [];
83
+
84
+ for (var i = 0; i < arguments.length; i++) {
85
+ var arg = arguments[i];
86
+ if (!arg) continue;
87
+
88
+ var argType = typeof arg;
89
+
90
+ if (argType === 'string' || argType === 'number') {
91
+ classes.push(arg);
92
+ } else if (Array.isArray(arg)) {
93
+ if (arg.length) {
94
+ var inner = classNames.apply(null, arg);
95
+ if (inner) {
96
+ classes.push(inner);
97
+ }
98
+ }
99
+ } else if (argType === 'object') {
100
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
101
+ classes.push(arg.toString());
102
+ continue;
103
+ }
104
+
105
+ for (var key in arg) {
106
+ if (hasOwn.call(arg, key) && arg[key]) {
107
+ classes.push(key);
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ return classes.join(' ');
114
+ }
115
+
116
+ if (module.exports) {
117
+ classNames.default = classNames;
118
+ module.exports = classNames;
119
+ } else {
120
+ window.classNames = classNames;
121
+ }
122
+ }());
123
+ } (classnames$1));
124
+
125
+ var classnames = classnames$1.exports;
126
+
127
+ var useScrollIntoView = function useScrollIntoView(_ref) {
128
+ var elementId = _ref.elementId,
129
+ trigger = _ref.trigger;
130
+ useEffect(function () {
131
+ var _document$getElementB;
132
+ if (!trigger) return;
133
+ (_document$getElementB = document.getElementById(elementId)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView();
134
+ }, [trigger]);
135
+ };
136
+
137
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
138
+
139
+ 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))}";
140
+ n(css,{});
141
+
142
+ var TooltipSwitch = withT(function (_ref) {
143
+ var t = _ref.t,
144
+ enabledCondition = _ref.enabledCondition,
145
+ _ref$name = _ref.name,
146
+ name = _ref$name === void 0 ? "" : _ref$name,
147
+ _ref$isDisabled = _ref.isDisabled,
148
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
149
+ switchDataCy = _ref.switchDataCy;
150
+ return /*#__PURE__*/React.createElement(Tooltip, {
151
+ position: "top",
152
+ content: enabledCondition ? t("neetoMolecules.toggleFeatureCard.switchTooltip.enabled") : t("neetoMolecules.toggleFeatureCard.switchTooltip.disabled")
153
+ }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Switch, {
154
+ "data-cy": switchDataCy,
155
+ "data-testid": "toggle-feature-card-switch",
156
+ disabled: isDisabled,
157
+ name: name
158
+ })));
159
+ });
160
+
161
+ var ToggleFeatureCard = function ToggleFeatureCard(_ref) {
162
+ var _ref$title = _ref.title,
163
+ title = _ref$title === void 0 ? "" : _ref$title,
164
+ _ref$description = _ref.description,
165
+ description = _ref$description === void 0 ? null : _ref$description,
166
+ _ref$switchName = _ref.switchName,
167
+ switchName = _ref$switchName === void 0 ? "switch" : _ref$switchName,
168
+ _ref$titleDataCy = _ref.titleDataCy,
169
+ titleDataCy = _ref$titleDataCy === void 0 ? "" : _ref$titleDataCy,
170
+ _ref$switchDataCy = _ref.switchDataCy,
171
+ switchDataCy = _ref$switchDataCy === void 0 ? "" : _ref$switchDataCy,
172
+ _ref$descriptionDataC = _ref.descriptionDataCy,
173
+ descriptionDataCy = _ref$descriptionDataC === void 0 ? "" : _ref$descriptionDataC,
174
+ _ref$isDisabled = _ref.isDisabled,
175
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
176
+ _ref$children = _ref.children,
177
+ children = _ref$children === void 0 ? null : _ref$children,
178
+ _ref$inputProps = _ref.inputProps,
179
+ inputProps = _ref$inputProps === void 0 ? {
180
+ name: null,
181
+ display: null,
182
+ label: null,
183
+ editButtonTooltip: null,
184
+ editButtonDataCy: "",
185
+ placeholder: null,
186
+ dataCy: ""
187
+ } : _ref$inputProps;
188
+ var _useTranslation = useTranslation(),
189
+ t = _useTranslation.t;
190
+ var cardRef = useRef();
191
+ var id = slugify(title);
192
+ var _useState = useState(false),
193
+ _useState2 = _slicedToArray(_useState, 2),
194
+ isEditing = _useState2[0],
195
+ setIsEditing = _useState2[1];
196
+ var _useFormikContext = useFormikContext(),
197
+ setFieldValue = _useFormikContext.setFieldValue,
198
+ values = _useFormikContext.values,
199
+ submitCount = _useFormikContext.submitCount,
200
+ errors = _useFormikContext.errors,
201
+ initialValues = _useFormikContext.initialValues;
202
+ useEffect(function () {
203
+ if (submitCount >= 1 && isEmpty(errors)) {
204
+ setIsEditing(false);
205
+ }
206
+ }, [submitCount]);
207
+ useEffect(function () {
208
+ if (!isEmpty(errors)) {
209
+ setIsEditing(true);
210
+ }
211
+ }, [values, errors]);
212
+ var _useState3 = useState(location.hash.split("#")[1] === id),
213
+ _useState4 = _slicedToArray(_useState3, 2),
214
+ shouldHighlight = _useState4[0],
215
+ setShouldHighlight = _useState4[1];
216
+ var hasInput = (values === null || values === void 0 ? void 0 : values[switchName]) && (inputProps === null || inputProps === void 0 ? void 0 : inputProps.name);
217
+ var enabledCondition = values === null || values === void 0 ? void 0 : values[switchName];
218
+ var handleInputReset = function handleInputReset() {
219
+ setIsEditing(false);
220
+ hasInput && setFieldValue(inputProps === null || inputProps === void 0 ? void 0 : inputProps.name, initialValues === null || initialValues === void 0 ? void 0 : initialValues[inputProps === null || inputProps === void 0 ? void 0 : inputProps.name]);
221
+ };
222
+ useOnClickOutside(cardRef, function () {
223
+ return setShouldHighlight(false);
224
+ });
225
+ useScrollIntoView({
226
+ elementId: id,
227
+ trigger: shouldHighlight
228
+ });
229
+ var inputRef = useHotKeys("enter", function () {
230
+ return setIsEditing(false);
231
+ }, {
232
+ mode: "scoped"
233
+ });
234
+ return /*#__PURE__*/React.createElement("div", {
235
+ "data-testid": "toggle-feature-card",
236
+ id: id,
237
+ ref: cardRef,
238
+ className: classnames("neeto-ui-bg-white neeto-ui-rounded-lg flex flex-col space-y-2 border p-4", {
239
+ "neeto-ui-border-gray-300": !shouldHighlight
240
+ }, {
241
+ "toggle-feature-card--highlighted": shouldHighlight
242
+ })
243
+ }, /*#__PURE__*/React.createElement(Label, {
244
+ className: "flex flex-row items-center gap-2"
245
+ }, /*#__PURE__*/React.createElement(TooltipSwitch, {
246
+ enabledCondition: enabledCondition,
247
+ isDisabled: isDisabled,
248
+ switchDataCy: switchDataCy,
249
+ name: switchName
250
+ }), /*#__PURE__*/React.createElement(Typography, {
251
+ component: "span",
252
+ "data-cy": titleDataCy,
253
+ "data-testid": "toggle-feature-card-title",
254
+ style: "h4",
255
+ weight: "semibold"
256
+ }, title)), /*#__PURE__*/React.createElement(Typography, {
257
+ className: "mb-4 whitespace-pre-line",
258
+ "data-cy": descriptionDataCy,
259
+ "data-testid": "toggle-feature-card-description",
260
+ style: "body2"
261
+ }, description), hasInput && !isEditing && /*#__PURE__*/React.createElement("div", {
262
+ className: "m-0 flex flex-row items-center space-x-2"
263
+ }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.display, /*#__PURE__*/React.createElement(Button, {
264
+ "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonDataCy,
265
+ "data-testid": "toggle-feature-card-input-display-edit",
266
+ icon: Edit,
267
+ size: "small",
268
+ style: "text",
269
+ type: "button",
270
+ tooltipProps: {
271
+ content: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.editButtonTooltip) || t("neetoMolecules.toggleFeatureCard.input.editButtonDefaultTooltip"),
272
+ position: "right"
273
+ },
274
+ onClick: function onClick() {
275
+ return setIsEditing(true);
276
+ }
277
+ })), hasInput && isEditing && /*#__PURE__*/React.createElement(Input, {
278
+ autoFocus: true,
279
+ "data-cy": inputProps === null || inputProps === void 0 ? void 0 : inputProps.dataCy,
280
+ "data-testid": "toggle-feature-card-input-field",
281
+ label: inputProps === null || inputProps === void 0 ? void 0 : inputProps.label,
282
+ name: inputProps === null || inputProps === void 0 ? void 0 : inputProps.name,
283
+ placeholder: inputProps === null || inputProps === void 0 ? void 0 : inputProps.placeholder,
284
+ ref: inputRef,
285
+ size: "medium",
286
+ suffix: /*#__PURE__*/React.createElement(Button, {
287
+ "data-testid": "toggle-feature-card-input-reset",
288
+ icon: Close,
289
+ size: "small",
290
+ style: "text",
291
+ type: "button",
292
+ onClick: handleInputReset
293
+ })
294
+ }), children);
295
+ };
296
+
297
+ export { ToggleFeatureCard as default };
298
+ //# sourceMappingURL=ToggleFeatureCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleFeatureCard.js","sources":["../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/classnames/index.js","../src/components/ToggleFeatureCard/hooks/useScrollIntoView.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/components/ToggleFeatureCard/ToolTipSwitch.jsx","../src/components/ToggleFeatureCard/index.jsx"],"sourcesContent":["export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","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","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import React from \"react\";\n\nimport { withT } from \"neetocommons/react-utils\";\nimport { Tooltip } from \"neetoui\";\nimport { Switch as FormikSwitch } from \"neetoui/formik\";\n\nconst TooltipSwitch = withT(\n ({ t, enabledCondition, name = \"\", isDisabled = false, switchDataCy }) => (\n <Tooltip\n position=\"top\"\n content={\n enabledCondition\n ? t(\"neetoMolecules.toggleFeatureCard.switchTooltip.enabled\")\n : t(\"neetoMolecules.toggleFeatureCard.switchTooltip.disabled\")\n }\n >\n <span>\n <FormikSwitch\n data-cy={switchDataCy}\n data-testid=\"toggle-feature-card-switch\"\n disabled={isDisabled}\n {...{ name }}\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 \"neetocommons/pure\";\nimport { useHotKeys, useOnClickOutside } from \"neetocommons/react-utils\";\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 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 name: null,\n display: null,\n label: null,\n editButtonTooltip: null,\n editButtonDataCy: \"\",\n placeholder: null,\n dataCy: \"\",\n },\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)) {\n setIsEditing(false);\n }\n }, [submitCount]);\n\n useEffect(() => {\n if (!isEmpty(errors)) {\n setIsEditing(true);\n }\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 data-testid=\"toggle-feature-card\"\n {...{ id }}\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 {...{ enabledCondition, isDisabled, switchDataCy }}\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 />\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 }),\n};\n\nexport default ToggleFeatureCard;\n"],"names":["arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","useScrollIntoView","_ref","elementId","trigger","useEffect","_document$getElementB","document","getElementById","scrollIntoView","TooltipSwitch","withT","t","enabledCondition","_ref$name","name","_ref$isDisabled","isDisabled","switchDataCy","React","createElement","Tooltip","position","content","FormikSwitch","disabled","ToggleFeatureCard","_ref$title","title","_ref$description","description","_ref$switchName","switchName","_ref$titleDataCy","titleDataCy","_ref$switchDataCy","_ref$descriptionDataC","descriptionDataCy","_ref$children","children","_ref$inputProps","inputProps","display","label","editButtonTooltip","editButtonDataCy","placeholder","dataCy","_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","Button","icon","Edit","size","type","tooltipProps","onClick","Input","autoFocus","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": "1.0.87-beta",
3
+ "version": "1.0.88",
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>",
@@ -51,7 +51,7 @@
51
51
  "@bigbinary/neeto-commons-frontend": "2.0.119",
52
52
  "@bigbinary/neeto-editor": "1.27.0-beta.1",
53
53
  "@bigbinary/neeto-filters-frontend": "^2.11.15",
54
- "@bigbinary/neeto-icons": "^1.14.0",
54
+ "@bigbinary/neeto-icons": "^1.12.3",
55
55
  "@bigbinary/neeto-molecules": "^1.0.5",
56
56
  "@bigbinary/neetoui": "^5.1.5",
57
57
  "@faker-js/faker": "7.6.0",
@@ -67,16 +67,12 @@
67
67
  "logout": "Log out",
68
68
  "help": "Help",
69
69
  "productSwitcher": "Product switcher",
70
- "neetoProducts": "neeto products",
71
70
  "helpLinks": {
72
71
  "liveChat": "Live chat",
73
72
  "helpCenter": "Help center",
74
73
  "whatsNew": "What's new",
75
- "keyboardShortcuts": "Keyboard shortcuts",
76
- "helpArticles": "Help articles"
77
- },
78
- "showMenu": "Open sidebar",
79
- "hideMenu": "Close sidebar"
74
+ "keyboardShortcuts": "Keyboard shortcuts"
75
+ }
80
76
  },
81
77
  "appSwitcher": {
82
78
  "noApps": "No apps found",
@@ -474,6 +470,15 @@
474
470
  "emailPlaceholder": "Write email address",
475
471
  "commaSeparatedEmails": "Use comma (‘) to add multiple email addresses"
476
472
  }
473
+ },
474
+ "toggleFeatureCard": {
475
+ "switchTooltip": {
476
+ "enabled": "Feature is currently enabled",
477
+ "disabled": "Feature is currently disabled"
478
+ },
479
+ "input": {
480
+ "editButtonDefaultTooltip": "Edit"
481
+ }
477
482
  }
478
483
  }
479
484
  }
@@ -7,13 +7,12 @@ import React from "react";
7
7
  *
8
8
  * import ImageWithFallback from "@bigbinary/neeto-molecules/ImageWithFallback";
9
9
  *
10
- * const App = () => (
11
- * <ImageWithFallback
12
- * className="w-40 h-40"
13
- * src="https://randomuser.me/api/portraits/women/90.jpg"
14
- * />
15
- * );
16
- *
10
+ * const App = () => (
11
+ * <ImageWithFallback
12
+ * className="h-40 w-40"
13
+ * src="https://randomuser.me/api/portraits/women/90.jpg"
14
+ * />
15
+ * );
17
16
  * @endexample
18
17
  */
19
18
  const ImageWithFallback: React.FC<{
@@ -24,7 +24,7 @@ interface ProfileInfo {
24
24
  interface HelpLinks {
25
25
  liveChatProps?: LinkType;
26
26
  helpCenterProps?: LinkType;
27
- changelogProps?: ChangeLogPropsType;
27
+ changelogProps?: LinkType;
28
28
  keyboardShortcutProps?: LinkType;
29
29
  }
30
30
  /**
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ /**
3
+ *
4
+ * ToggleFeatureCard can be used to enable or disable a setting, and supports
5
+ *
6
+ * additional customizations like having an input field, and custom child
7
+ *
8
+ * components.
9
+ *
10
+ * ![image](https://github.com/bigbinary/neeto-molecules/assets/66865722/ed5c589f-7086-46b9-b8b2-2746afa7e750|height=200|width=300)
11
+ *
12
+ */
13
+ const ToggleFeatureCard: React.FC<{
14
+ title: string;
15
+ description?: string;
16
+ switchName: string;
17
+ titleDataCy?: string;
18
+ switchDataCy?: string;
19
+ descriptionDataCy?: string;
20
+ isDisabled?: boolean;
21
+ children?: React.ReactNode | null;
22
+ inputProps: {
23
+ name: string;
24
+ display?: React.ReactNode | null;
25
+ label?: string;
26
+ editButtonTooltip?: string;
27
+ editButtonDataCy?: string;
28
+ placeholder?: string;
29
+ dataCy?: string;
30
+ };
31
+ }>;
32
+ export default ToggleFeatureCard;