@bigbinary/neeto-molecules 0.0.1

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.
Files changed (183) hide show
  1. package/README.md +60 -0
  2. package/dist/BrowserSupport.cjs.js +1727 -0
  3. package/dist/BrowserSupport.cjs.js.map +1 -0
  4. package/dist/BrowserSupport.js +1721 -0
  5. package/dist/BrowserSupport.js.map +1 -0
  6. package/dist/Columns.cjs.js +191 -0
  7. package/dist/Columns.cjs.js.map +1 -0
  8. package/dist/Columns.js +184 -0
  9. package/dist/Columns.js.map +1 -0
  10. package/dist/Container.cjs.js +1277 -0
  11. package/dist/Container.cjs.js.map +1 -0
  12. package/dist/Container.js +1271 -0
  13. package/dist/Container.js.map +1 -0
  14. package/dist/CopyToClipboardButton.cjs.js +78 -0
  15. package/dist/CopyToClipboardButton.cjs.js.map +1 -0
  16. package/dist/CopyToClipboardButton.js +72 -0
  17. package/dist/CopyToClipboardButton.js.map +1 -0
  18. package/dist/CustomDomain.cjs.js +680 -0
  19. package/dist/CustomDomain.cjs.js.map +1 -0
  20. package/dist/CustomDomain.js +654 -0
  21. package/dist/CustomDomain.js.map +1 -0
  22. package/dist/CustomDomainDashboard.cjs.js +2306 -0
  23. package/dist/CustomDomainDashboard.cjs.js.map +1 -0
  24. package/dist/CustomDomainDashboard.js +2279 -0
  25. package/dist/CustomDomainDashboard.js.map +1 -0
  26. package/dist/DateFormat.cjs.js +51 -0
  27. package/dist/DateFormat.cjs.js.map +1 -0
  28. package/dist/DateFormat.js +45 -0
  29. package/dist/DateFormat.js.map +1 -0
  30. package/dist/DateRangeFilter.cjs.js +236 -0
  31. package/dist/DateRangeFilter.cjs.js.map +1 -0
  32. package/dist/DateRangeFilter.js +229 -0
  33. package/dist/DateRangeFilter.js.map +1 -0
  34. package/dist/DynamicVariables.cjs.js +112 -0
  35. package/dist/DynamicVariables.cjs.js.map +1 -0
  36. package/dist/DynamicVariables.js +106 -0
  37. package/dist/DynamicVariables.js.map +1 -0
  38. package/dist/EmailPreview.cjs.js +102 -0
  39. package/dist/EmailPreview.cjs.js.map +1 -0
  40. package/dist/EmailPreview.js +96 -0
  41. package/dist/EmailPreview.js.map +1 -0
  42. package/dist/ErrorPage.cjs.js +208 -0
  43. package/dist/ErrorPage.cjs.js.map +1 -0
  44. package/dist/ErrorPage.js +184 -0
  45. package/dist/ErrorPage.js.map +1 -0
  46. package/dist/Header.cjs.js +219 -0
  47. package/dist/Header.cjs.js.map +1 -0
  48. package/dist/Header.js +213 -0
  49. package/dist/Header.js.map +1 -0
  50. package/dist/IconPicker.cjs.js +1307 -0
  51. package/dist/IconPicker.cjs.js.map +1 -0
  52. package/dist/IconPicker.js +1301 -0
  53. package/dist/IconPicker.js.map +1 -0
  54. package/dist/IntegrationCard.cjs.js +75 -0
  55. package/dist/IntegrationCard.cjs.js.map +1 -0
  56. package/dist/IntegrationCard.js +69 -0
  57. package/dist/IntegrationCard.js.map +1 -0
  58. package/dist/IntegrationDisconnectAlert.cjs.js +81 -0
  59. package/dist/IntegrationDisconnectAlert.cjs.js.map +1 -0
  60. package/dist/IntegrationDisconnectAlert.js +75 -0
  61. package/dist/IntegrationDisconnectAlert.js.map +1 -0
  62. package/dist/IntegrationWalkthroughModal.cjs.js +42 -0
  63. package/dist/IntegrationWalkthroughModal.cjs.js.map +1 -0
  64. package/dist/IntegrationWalkthroughModal.js +36 -0
  65. package/dist/IntegrationWalkthroughModal.js.map +1 -0
  66. package/dist/IpRestriction.cjs.js +3764 -0
  67. package/dist/IpRestriction.cjs.js.map +1 -0
  68. package/dist/IpRestriction.js +3738 -0
  69. package/dist/IpRestriction.js.map +1 -0
  70. package/dist/KeyboardShortcuts.cjs.js +2242 -0
  71. package/dist/KeyboardShortcuts.cjs.js.map +1 -0
  72. package/dist/KeyboardShortcuts.js +2235 -0
  73. package/dist/KeyboardShortcuts.js.map +1 -0
  74. package/dist/LoginPage.cjs.js +618 -0
  75. package/dist/LoginPage.cjs.js.map +1 -0
  76. package/dist/LoginPage.js +593 -0
  77. package/dist/LoginPage.js.map +1 -0
  78. package/dist/MenuBar.cjs.js +31044 -0
  79. package/dist/MenuBar.cjs.js.map +1 -0
  80. package/dist/MenuBar.js +31038 -0
  81. package/dist/MenuBar.js.map +1 -0
  82. package/dist/NeetoWidget.cjs.js +3369 -0
  83. package/dist/NeetoWidget.cjs.js.map +1 -0
  84. package/dist/NeetoWidget.js +3343 -0
  85. package/dist/NeetoWidget.js.map +1 -0
  86. package/dist/PageLoader.cjs.js +158 -0
  87. package/dist/PageLoader.cjs.js.map +1 -0
  88. package/dist/PageLoader.js +134 -0
  89. package/dist/PageLoader.js.map +1 -0
  90. package/dist/PhoneNumber.cjs.js +7021 -0
  91. package/dist/PhoneNumber.cjs.js.map +1 -0
  92. package/dist/PhoneNumber.js +6989 -0
  93. package/dist/PhoneNumber.js.map +1 -0
  94. package/dist/PublishBlock.cjs.js +189 -0
  95. package/dist/PublishBlock.cjs.js.map +1 -0
  96. package/dist/PublishBlock.js +183 -0
  97. package/dist/PublishBlock.js.map +1 -0
  98. package/dist/Rename.cjs.js +306 -0
  99. package/dist/Rename.cjs.js.map +1 -0
  100. package/dist/Rename.js +300 -0
  101. package/dist/Rename.js.map +1 -0
  102. package/dist/ResponsiveDevicePicker.cjs.js +260 -0
  103. package/dist/ResponsiveDevicePicker.cjs.js.map +1 -0
  104. package/dist/ResponsiveDevicePicker.js +254 -0
  105. package/dist/ResponsiveDevicePicker.js.map +1 -0
  106. package/dist/Schedule.cjs.js +952 -0
  107. package/dist/Schedule.cjs.js.map +1 -0
  108. package/dist/Schedule.js +921 -0
  109. package/dist/Schedule.js.map +1 -0
  110. package/dist/Scrollable.cjs.js +184 -0
  111. package/dist/Scrollable.cjs.js.map +1 -0
  112. package/dist/Scrollable.js +178 -0
  113. package/dist/Scrollable.js.map +1 -0
  114. package/dist/ShareViaEmail.cjs.js +2992 -0
  115. package/dist/ShareViaEmail.cjs.js.map +1 -0
  116. package/dist/ShareViaEmail.js +2966 -0
  117. package/dist/ShareViaEmail.js.map +1 -0
  118. package/dist/ShareViaLink.cjs.js +1385 -0
  119. package/dist/ShareViaLink.cjs.js.map +1 -0
  120. package/dist/ShareViaLink.js +1360 -0
  121. package/dist/ShareViaLink.js.map +1 -0
  122. package/dist/Sidebar.cjs.js +32222 -0
  123. package/dist/Sidebar.cjs.js.map +1 -0
  124. package/dist/Sidebar.js +32196 -0
  125. package/dist/Sidebar.js.map +1 -0
  126. package/dist/SubHeader.cjs.js +272 -0
  127. package/dist/SubHeader.cjs.js.map +1 -0
  128. package/dist/SubHeader.js +265 -0
  129. package/dist/SubHeader.js.map +1 -0
  130. package/dist/TableWrapper.cjs.js +87 -0
  131. package/dist/TableWrapper.cjs.js.map +1 -0
  132. package/dist/TableWrapper.js +81 -0
  133. package/dist/TableWrapper.js.map +1 -0
  134. package/dist/ThemeSidebar.cjs.js +13618 -0
  135. package/dist/ThemeSidebar.cjs.js.map +1 -0
  136. package/dist/ThemeSidebar.js +13593 -0
  137. package/dist/ThemeSidebar.js.map +1 -0
  138. package/dist/TimeFormat.cjs.js +53 -0
  139. package/dist/TimeFormat.cjs.js.map +1 -0
  140. package/dist/TimeFormat.js +47 -0
  141. package/dist/TimeFormat.js.map +1 -0
  142. package/dist/TimezoneMismatchModal.cjs.js +176 -0
  143. package/dist/TimezoneMismatchModal.cjs.js.map +1 -0
  144. package/dist/TimezoneMismatchModal.js +168 -0
  145. package/dist/TimezoneMismatchModal.js.map +1 -0
  146. package/package.json +185 -0
  147. package/src/translations/en.json +449 -0
  148. package/types/BrowserSupport.d.ts +86 -0
  149. package/types/Columns.d.ts +53 -0
  150. package/types/Container.d.ts +35 -0
  151. package/types/CopyToClipboardButton.d.ts +21 -0
  152. package/types/CustomDomain.d.ts +19 -0
  153. package/types/CustomDomainDashboard.d.ts +33 -0
  154. package/types/DateFormat.d.ts +18 -0
  155. package/types/DateRangeFilter.d.ts +52 -0
  156. package/types/DynamicVariables.d.ts +45 -0
  157. package/types/EmailPreview.d.ts +41 -0
  158. package/types/ErrorPage.d.ts +15 -0
  159. package/types/Header.d.ts +30 -0
  160. package/types/IconPicker.d.ts +43 -0
  161. package/types/IntegrationCard.d.ts +45 -0
  162. package/types/IntegrationDisconnectAlert.d.ts +37 -0
  163. package/types/IntegrationWalkthroughModal.d.ts +31 -0
  164. package/types/IpRestriction.d.ts +23 -0
  165. package/types/KeyboardShortcuts.d.ts +147 -0
  166. package/types/LoginPage.d.ts +43 -0
  167. package/types/MenuBar.d.ts +125 -0
  168. package/types/NeetoWidget.d.ts +41 -0
  169. package/types/PageLoader.d.ts +38 -0
  170. package/types/PhoneNumber.d.ts +106 -0
  171. package/types/PublishBlock.d.ts +84 -0
  172. package/types/Rename.d.ts +60 -0
  173. package/types/ResponsiveDevicePicker.d.ts +30 -0
  174. package/types/Schedule.d.ts +132 -0
  175. package/types/Scrollable.d.ts +28 -0
  176. package/types/ShareViaEmail.d.ts +99 -0
  177. package/types/ShareViaLink.d.ts +117 -0
  178. package/types/Sidebar.d.ts +63 -0
  179. package/types/SubHeader.d.ts +97 -0
  180. package/types/TableWrapper.d.ts +38 -0
  181. package/types/TimeFormat.d.ts +17 -0
  182. package/types/TimezoneMismatchModal.d.ts +39 -0
  183. package/types/themeSidebar.d.ts +80 -0
@@ -0,0 +1,112 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var pure = require('@bigbinary/neeto-commons-frontend/pure');
5
+ var neetoIcons = require('@bigbinary/neeto-icons');
6
+ var neetoui = require('@bigbinary/neetoui');
7
+ var ramda = require('ramda');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+
13
+ function _extends() {
14
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
15
+ for (var i = 1; i < arguments.length; i++) {
16
+ var source = arguments[i];
17
+ for (var key in source) {
18
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
19
+ target[key] = source[key];
20
+ }
21
+ }
22
+ }
23
+ return target;
24
+ };
25
+ return _extends.apply(this, arguments);
26
+ }
27
+
28
+ 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}}
29
+
30
+ var css = ".neeto-molecules-dynamic-variables{display:flex;flex-direction:column;gap:6px;max-width:360px;min-width:184px;padding:8px}.neeto-molecules-dynamic-variables__list{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.neeto-molecules-dynamic-variables__list button{border:1px solid rgb(var(--neeto-ui-gray-300));border-radius:var(--neeto-ui-rounded-md);color:rgb(var(--neeto-ui-black));padding:6px;text-align:left;transition:var(--neeto-ui-transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-dynamic-variables__list button:focus,.neeto-molecules-dynamic-variables__list button:focus-visible,.neeto-molecules-dynamic-variables__list button:hover{border-color:rgb(var(--neeto-ui-primary-800));box-shadow:none;color:rgb(var(--neeto-ui-primary-800));outline:none}";
31
+ n(css,{});
32
+
33
+ var parseVariables = function parseVariables() {
34
+ var variableArr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
35
+ var uncategorized = [];
36
+ var groupedVariables = [];
37
+ var categorySet = new Set();
38
+ variableArr.forEach(function (variable) {
39
+ var category = variable.category,
40
+ label = variable.label,
41
+ variables = variable.variables;
42
+ if (category && variables) {
43
+ var parsedVariables = variables.map(ramda.assoc("category", category));
44
+ if (!categorySet.has(category)) {
45
+ categorySet.add(category);
46
+ groupedVariables.push({
47
+ label: label,
48
+ variables: parsedVariables
49
+ });
50
+ } else {
51
+ var existingGroup = pure.findBy({
52
+ label: label
53
+ }, groupedVariables);
54
+ existingGroup.variables = ramda.uniqBy(ramda.prop("key"), existingGroup.variables.concat(parsedVariables));
55
+ }
56
+ } else {
57
+ uncategorized.push(variable);
58
+ }
59
+ });
60
+ if (!ramda.isEmpty(uncategorized)) {
61
+ groupedVariables.push({
62
+ label: !ramda.isEmpty(groupedVariables) ? "Others" : null,
63
+ variables: uncategorized
64
+ });
65
+ }
66
+ return groupedVariables;
67
+ };
68
+
69
+ var Menu = neetoui.Dropdown.Menu;
70
+ var DynamicVariables = function DynamicVariables(_ref) {
71
+ var _ref$onVariableClick = _ref.onVariableClick,
72
+ onVariableClick = _ref$onVariableClick === void 0 ? pure.noop : _ref$onVariableClick,
73
+ _ref$variables = _ref.variables,
74
+ variables = _ref$variables === void 0 ? [] : _ref$variables,
75
+ _ref$dropdownProps = _ref.dropdownProps,
76
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps;
77
+ if (ramda.isEmpty(variables)) {
78
+ return null;
79
+ }
80
+ var parsedVariables = parseVariables(variables);
81
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, _extends({
82
+ buttonProps: {
83
+ "data-testid": "variables-dropdown"
84
+ },
85
+ buttonStyle: "secondary",
86
+ icon: neetoIcons.Braces,
87
+ strategy: "fixed"
88
+ }, dropdownProps), /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement("div", {
89
+ className: "neeto-molecules-dynamic-variables",
90
+ "data-testid": "variables-list"
91
+ }, parsedVariables.map(function (_ref2) {
92
+ var label = _ref2.label,
93
+ variables = _ref2.variables;
94
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
95
+ key: label
96
+ }, label && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
97
+ style: "h6"
98
+ }, label), /*#__PURE__*/React__default["default"].createElement("div", {
99
+ className: "neeto-molecules-dynamic-variables__list"
100
+ }, variables.map(function (item) {
101
+ return /*#__PURE__*/React__default["default"].createElement("button", {
102
+ key: item.label,
103
+ onClick: function onClick() {
104
+ return onVariableClick(item);
105
+ }
106
+ }, item.label);
107
+ })));
108
+ }))));
109
+ };
110
+
111
+ module.exports = DynamicVariables;
112
+ //# sourceMappingURL=DynamicVariables.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicVariables.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/components/DynamicVariables/utils.js","../src/components/DynamicVariables/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\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 { findBy } from \"neetocommons/pure\";\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 React, { Fragment } from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\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 dropdownProps = {},\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n buttonProps={{ \"data-testid\": \"variables-dropdown\" }}\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\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 className=\"neeto-molecules-dynamic-variables__list\">\n {variables.map(item => (\n <button\n key={item.label}\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 * Additional props for the dropdown (optional).\n */\n dropdownProps: PropTypes.object,\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","_ref$dropdownProps","dropdownProps","React","createElement","_extends","buttonProps","buttonStyle","icon","Braces","strategy","className","_ref2","Fragment","key","Typography","style","item","onClick"],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import React, { Fragment } from 'react';
2
+ import { findBy, noop } from '@bigbinary/neeto-commons-frontend/pure';
3
+ import { Braces } from '@bigbinary/neeto-icons';
4
+ import { Dropdown, Typography } from '@bigbinary/neetoui';
5
+ import { assoc, uniqBy, prop, isEmpty } from 'ramda';
6
+
7
+ function _extends() {
8
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
9
+ for (var i = 1; i < arguments.length; i++) {
10
+ var source = arguments[i];
11
+ for (var key in source) {
12
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
13
+ target[key] = source[key];
14
+ }
15
+ }
16
+ }
17
+ return target;
18
+ };
19
+ return _extends.apply(this, arguments);
20
+ }
21
+
22
+ 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}}
23
+
24
+ var css = ".neeto-molecules-dynamic-variables{display:flex;flex-direction:column;gap:6px;max-width:360px;min-width:184px;padding:8px}.neeto-molecules-dynamic-variables__list{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.neeto-molecules-dynamic-variables__list button{border:1px solid rgb(var(--neeto-ui-gray-300));border-radius:var(--neeto-ui-rounded-md);color:rgb(var(--neeto-ui-black));padding:6px;text-align:left;transition:var(--neeto-ui-transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}.neeto-molecules-dynamic-variables__list button:focus,.neeto-molecules-dynamic-variables__list button:focus-visible,.neeto-molecules-dynamic-variables__list button:hover{border-color:rgb(var(--neeto-ui-primary-800));box-shadow:none;color:rgb(var(--neeto-ui-primary-800));outline:none}";
25
+ n(css,{});
26
+
27
+ var parseVariables = function parseVariables() {
28
+ var variableArr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
29
+ var uncategorized = [];
30
+ var groupedVariables = [];
31
+ var categorySet = new Set();
32
+ variableArr.forEach(function (variable) {
33
+ var category = variable.category,
34
+ label = variable.label,
35
+ variables = variable.variables;
36
+ if (category && variables) {
37
+ var parsedVariables = variables.map(assoc("category", category));
38
+ if (!categorySet.has(category)) {
39
+ categorySet.add(category);
40
+ groupedVariables.push({
41
+ label: label,
42
+ variables: parsedVariables
43
+ });
44
+ } else {
45
+ var existingGroup = findBy({
46
+ label: label
47
+ }, groupedVariables);
48
+ existingGroup.variables = uniqBy(prop("key"), existingGroup.variables.concat(parsedVariables));
49
+ }
50
+ } else {
51
+ uncategorized.push(variable);
52
+ }
53
+ });
54
+ if (!isEmpty(uncategorized)) {
55
+ groupedVariables.push({
56
+ label: !isEmpty(groupedVariables) ? "Others" : null,
57
+ variables: uncategorized
58
+ });
59
+ }
60
+ return groupedVariables;
61
+ };
62
+
63
+ var Menu = Dropdown.Menu;
64
+ var DynamicVariables = function DynamicVariables(_ref) {
65
+ var _ref$onVariableClick = _ref.onVariableClick,
66
+ onVariableClick = _ref$onVariableClick === void 0 ? noop : _ref$onVariableClick,
67
+ _ref$variables = _ref.variables,
68
+ variables = _ref$variables === void 0 ? [] : _ref$variables,
69
+ _ref$dropdownProps = _ref.dropdownProps,
70
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps;
71
+ if (isEmpty(variables)) {
72
+ return null;
73
+ }
74
+ var parsedVariables = parseVariables(variables);
75
+ return /*#__PURE__*/React.createElement(Dropdown, _extends({
76
+ buttonProps: {
77
+ "data-testid": "variables-dropdown"
78
+ },
79
+ buttonStyle: "secondary",
80
+ icon: Braces,
81
+ strategy: "fixed"
82
+ }, dropdownProps), /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement("div", {
83
+ className: "neeto-molecules-dynamic-variables",
84
+ "data-testid": "variables-list"
85
+ }, parsedVariables.map(function (_ref2) {
86
+ var label = _ref2.label,
87
+ variables = _ref2.variables;
88
+ return /*#__PURE__*/React.createElement(Fragment, {
89
+ key: label
90
+ }, label && /*#__PURE__*/React.createElement(Typography, {
91
+ style: "h6"
92
+ }, label), /*#__PURE__*/React.createElement("div", {
93
+ className: "neeto-molecules-dynamic-variables__list"
94
+ }, variables.map(function (item) {
95
+ return /*#__PURE__*/React.createElement("button", {
96
+ key: item.label,
97
+ onClick: function onClick() {
98
+ return onVariableClick(item);
99
+ }
100
+ }, item.label);
101
+ })));
102
+ }))));
103
+ };
104
+
105
+ export { DynamicVariables as default };
106
+ //# sourceMappingURL=DynamicVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicVariables.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/components/DynamicVariables/utils.js","../src/components/DynamicVariables/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\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 { findBy } from \"neetocommons/pure\";\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 React, { Fragment } from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\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 dropdownProps = {},\n}) => {\n if (isEmpty(variables)) {\n return null;\n }\n\n const parsedVariables = parseVariables(variables);\n\n return (\n <Dropdown\n buttonProps={{ \"data-testid\": \"variables-dropdown\" }}\n buttonStyle=\"secondary\"\n icon={Braces}\n strategy=\"fixed\"\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 className=\"neeto-molecules-dynamic-variables__list\">\n {variables.map(item => (\n <button\n key={item.label}\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 * Additional props for the dropdown (optional).\n */\n dropdownProps: PropTypes.object,\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","_ref$dropdownProps","dropdownProps","React","createElement","_extends","buttonProps","buttonStyle","icon","Braces","strategy","className","_ref2","Fragment","key","Typography","style","item","onClick"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var pure = require('@bigbinary/neeto-commons-frontend/pure');
5
+ var neetoEditor = require('@bigbinary/neeto-editor');
6
+ var neetoui = require('@bigbinary/neetoui');
7
+ var reactI18next = require('react-i18next');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+
13
+ var MemoizedEditorContent = /*#__PURE__*/React__default["default"].memo(neetoEditor.EditorContent);
14
+ var EmailPreview = function EmailPreview(_ref) {
15
+ var to = _ref.to,
16
+ from = _ref.from,
17
+ subject = _ref.subject,
18
+ body = _ref.body,
19
+ productName = _ref.productName,
20
+ actionButtonText = _ref.actionButtonText,
21
+ logo = _ref.logo;
22
+ var _useTranslation = reactI18next.useTranslation(),
23
+ t = _useTranslation.t;
24
+ return /*#__PURE__*/React__default["default"].createElement("div", {
25
+ className: "neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border",
26
+ "data-cy": "email-preview-card"
27
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
28
+ className: "neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6"
29
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
30
+ className: "flex gap-2",
31
+ "data-cy": "email-send-to-preview",
32
+ "data-testid": "email-to-block"
33
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
34
+ className: "neeto-ui-text-gray-500",
35
+ lineHeight: "normal",
36
+ style: "body2"
37
+ }, t("neetoMolecules.emailPreview.to"), ":"), pure.isNotEmpty(to) ? /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
38
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
39
+ lineHeight: "normal",
40
+ style: "body2"
41
+ }, to.join(", ")) : /*#__PURE__*/React__default["default"].createElement("div", {
42
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40"
43
+ })), from && /*#__PURE__*/React__default["default"].createElement("div", {
44
+ className: "flex items-center gap-2 pt-3"
45
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
46
+ className: "neeto-ui-text-gray-500",
47
+ lineHeight: "normal",
48
+ style: "body2"
49
+ }, t("neetoMolecules.emailPreview.from"), ":"), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
50
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
51
+ "data-cy": "email-send-from-preview",
52
+ lineHeight: "normal",
53
+ style: "body2"
54
+ }, from)), /*#__PURE__*/React__default["default"].createElement("div", {
55
+ className: "flex items-center gap-2 pt-3"
56
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
57
+ className: "neeto-ui-text-gray-500",
58
+ lineHeight: "normal",
59
+ style: "body2"
60
+ }, t("neetoMolecules.emailPreview.subject"), ":"), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
61
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
62
+ "data-cy": "email-subject-preview",
63
+ lineHeight: "normal",
64
+ style: "body2"
65
+ }, subject || /*#__PURE__*/React__default["default"].createElement("span", {
66
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40"
67
+ })))), /*#__PURE__*/React__default["default"].createElement("div", {
68
+ className: "neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed",
69
+ "data-cy": "email-body-preview-container"
70
+ }, body ? /*#__PURE__*/React__default["default"].createElement(MemoizedEditorContent, {
71
+ content: body
72
+ }) : /*#__PURE__*/React__default["default"].createElement("div", {
73
+ className: "space-y-4"
74
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
75
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80"
76
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
77
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72"
78
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
79
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80"
80
+ })), actionButtonText && /*#__PURE__*/React__default["default"].createElement("div", {
81
+ className: "mt-6 flex w-full items-center justify-center"
82
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
83
+ className: "pointer-events-none",
84
+ label: actionButtonText
85
+ })), logo && /*#__PURE__*/React__default["default"].createElement("img", {
86
+ alt: t("neetoMolecules.emailPreview.logoAltText"),
87
+ className: "h-20 w-36 object-cover",
88
+ "data-cy": "company-logo-preview",
89
+ src: logo
90
+ })), productName && /*#__PURE__*/React__default["default"].createElement("div", {
91
+ className: "neeto-ui-bg-gray-100 mt-auto p-2",
92
+ "data-testid": "product-name-block"
93
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
94
+ className: "neeto-ui-text-gray-600 text-center leading-6",
95
+ style: "body3"
96
+ }, t("neetoMolecules.emailPreview.poweredBy"), /*#__PURE__*/React__default["default"].createElement("span", {
97
+ className: "neeto-ui-text-gray-800 font-medium"
98
+ }, productName))));
99
+ };
100
+
101
+ module.exports = EmailPreview;
102
+ //# sourceMappingURL=EmailPreview.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailPreview.cjs.js","sources":["../src/components/EmailPreview.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { isNotEmpty } from \"neetocommons/pure\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nconst MemoizedEditorContent = React.memo(EditorContent);\n\nconst EmailPreview = ({\n to,\n from,\n subject,\n body,\n productName,\n actionButtonText,\n logo,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div\n className=\"neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border\"\n data-cy=\"email-preview-card\"\n >\n <div className=\"neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6\">\n <div\n className=\"flex gap-2\"\n data-cy=\"email-send-to-preview\"\n data-testid=\"email-to-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.to\")}:\n </Typography>\n {isNotEmpty(to) ? (\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40\" />\n )}\n </div>\n {from && (\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.from\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-send-from-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {from}\n </Typography>\n </div>\n )}\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.subject\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-subject-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {subject || (\n <span className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40\" />\n )}\n </Typography>\n </div>\n </div>\n <div\n className=\"neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed\"\n data-cy=\"email-body-preview-container\"\n >\n {body ? (\n <MemoizedEditorContent content={body} />\n ) : (\n <div className=\"space-y-4\">\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n </div>\n )}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button className=\"pointer-events-none\" label={actionButtonText} />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-cy=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n {productName && (\n <div\n className=\"neeto-ui-bg-gray-100 mt-auto p-2\"\n data-testid=\"product-name-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-600 text-center leading-6\"\n style=\"body3\"\n >\n {t(\"neetoMolecules.emailPreview.poweredBy\")}\n <span className=\"neeto-ui-text-gray-800 font-medium\">\n {productName}\n </span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nEmailPreview.propTypes = {\n /**\n * The value of the send-to field.\n */\n to: PropTypes.arrayOf(PropTypes.string),\n /**\n * The value of the send-from field.\n */\n from: PropTypes.string,\n /**\n * The subject of the email.\n */\n subject: PropTypes.string,\n /**\n * The body of the email.\n */\n body: PropTypes.string,\n /**\n * The name of the neeto product to be previewed.\n */\n productName: PropTypes.string,\n /**\n * The text to be shown in the action button.\n */\n actionButtonText: PropTypes.string,\n /**\n * Source link for the company logo.\n */\n logo: PropTypes.string,\n};\n\nexport default EmailPreview;\n"],"names":["MemoizedEditorContent","React","memo","EditorContent","EmailPreview","_ref","to","from","subject","body","productName","actionButtonText","logo","_useTranslation","useTranslation","t","createElement","className","Typography","lineHeight","style","isNotEmpty","join","content","Button","label","alt","src"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+ import { isNotEmpty } from '@bigbinary/neeto-commons-frontend/pure';
3
+ import { EditorContent } from '@bigbinary/neeto-editor';
4
+ import { Typography, Button } from '@bigbinary/neetoui';
5
+ import { useTranslation } from 'react-i18next';
6
+
7
+ var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
8
+ var EmailPreview = function EmailPreview(_ref) {
9
+ var to = _ref.to,
10
+ from = _ref.from,
11
+ subject = _ref.subject,
12
+ body = _ref.body,
13
+ productName = _ref.productName,
14
+ actionButtonText = _ref.actionButtonText,
15
+ logo = _ref.logo;
16
+ var _useTranslation = useTranslation(),
17
+ t = _useTranslation.t;
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ className: "neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border",
20
+ "data-cy": "email-preview-card"
21
+ }, /*#__PURE__*/React.createElement("div", {
22
+ className: "neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6"
23
+ }, /*#__PURE__*/React.createElement("div", {
24
+ className: "flex gap-2",
25
+ "data-cy": "email-send-to-preview",
26
+ "data-testid": "email-to-block"
27
+ }, /*#__PURE__*/React.createElement(Typography, {
28
+ className: "neeto-ui-text-gray-500",
29
+ lineHeight: "normal",
30
+ style: "body2"
31
+ }, t("neetoMolecules.emailPreview.to"), ":"), isNotEmpty(to) ? /*#__PURE__*/React.createElement(Typography, {
32
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
33
+ lineHeight: "normal",
34
+ style: "body2"
35
+ }, to.join(", ")) : /*#__PURE__*/React.createElement("div", {
36
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40"
37
+ })), from && /*#__PURE__*/React.createElement("div", {
38
+ className: "flex items-center gap-2 pt-3"
39
+ }, /*#__PURE__*/React.createElement(Typography, {
40
+ className: "neeto-ui-text-gray-500",
41
+ lineHeight: "normal",
42
+ style: "body2"
43
+ }, t("neetoMolecules.emailPreview.from"), ":"), /*#__PURE__*/React.createElement(Typography, {
44
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
45
+ "data-cy": "email-send-from-preview",
46
+ lineHeight: "normal",
47
+ style: "body2"
48
+ }, from)), /*#__PURE__*/React.createElement("div", {
49
+ className: "flex items-center gap-2 pt-3"
50
+ }, /*#__PURE__*/React.createElement(Typography, {
51
+ className: "neeto-ui-text-gray-500",
52
+ lineHeight: "normal",
53
+ style: "body2"
54
+ }, t("neetoMolecules.emailPreview.subject"), ":"), /*#__PURE__*/React.createElement(Typography, {
55
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
56
+ "data-cy": "email-subject-preview",
57
+ lineHeight: "normal",
58
+ style: "body2"
59
+ }, subject || /*#__PURE__*/React.createElement("span", {
60
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40"
61
+ })))), /*#__PURE__*/React.createElement("div", {
62
+ className: "neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed",
63
+ "data-cy": "email-body-preview-container"
64
+ }, body ? /*#__PURE__*/React.createElement(MemoizedEditorContent, {
65
+ content: body
66
+ }) : /*#__PURE__*/React.createElement("div", {
67
+ className: "space-y-4"
68
+ }, /*#__PURE__*/React.createElement("div", {
69
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80"
70
+ }), /*#__PURE__*/React.createElement("div", {
71
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72"
72
+ }), /*#__PURE__*/React.createElement("div", {
73
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80"
74
+ })), actionButtonText && /*#__PURE__*/React.createElement("div", {
75
+ className: "mt-6 flex w-full items-center justify-center"
76
+ }, /*#__PURE__*/React.createElement(Button, {
77
+ className: "pointer-events-none",
78
+ label: actionButtonText
79
+ })), logo && /*#__PURE__*/React.createElement("img", {
80
+ alt: t("neetoMolecules.emailPreview.logoAltText"),
81
+ className: "h-20 w-36 object-cover",
82
+ "data-cy": "company-logo-preview",
83
+ src: logo
84
+ })), productName && /*#__PURE__*/React.createElement("div", {
85
+ className: "neeto-ui-bg-gray-100 mt-auto p-2",
86
+ "data-testid": "product-name-block"
87
+ }, /*#__PURE__*/React.createElement(Typography, {
88
+ className: "neeto-ui-text-gray-600 text-center leading-6",
89
+ style: "body3"
90
+ }, t("neetoMolecules.emailPreview.poweredBy"), /*#__PURE__*/React.createElement("span", {
91
+ className: "neeto-ui-text-gray-800 font-medium"
92
+ }, productName))));
93
+ };
94
+
95
+ export { EmailPreview as default };
96
+ //# sourceMappingURL=EmailPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailPreview.js","sources":["../src/components/EmailPreview.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { isNotEmpty } from \"neetocommons/pure\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nconst MemoizedEditorContent = React.memo(EditorContent);\n\nconst EmailPreview = ({\n to,\n from,\n subject,\n body,\n productName,\n actionButtonText,\n logo,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div\n className=\"neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border\"\n data-cy=\"email-preview-card\"\n >\n <div className=\"neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6\">\n <div\n className=\"flex gap-2\"\n data-cy=\"email-send-to-preview\"\n data-testid=\"email-to-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.to\")}:\n </Typography>\n {isNotEmpty(to) ? (\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40\" />\n )}\n </div>\n {from && (\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.from\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-send-from-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {from}\n </Typography>\n </div>\n )}\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.subject\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-subject-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {subject || (\n <span className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40\" />\n )}\n </Typography>\n </div>\n </div>\n <div\n className=\"neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed\"\n data-cy=\"email-body-preview-container\"\n >\n {body ? (\n <MemoizedEditorContent content={body} />\n ) : (\n <div className=\"space-y-4\">\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n </div>\n )}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button className=\"pointer-events-none\" label={actionButtonText} />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-cy=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n {productName && (\n <div\n className=\"neeto-ui-bg-gray-100 mt-auto p-2\"\n data-testid=\"product-name-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-600 text-center leading-6\"\n style=\"body3\"\n >\n {t(\"neetoMolecules.emailPreview.poweredBy\")}\n <span className=\"neeto-ui-text-gray-800 font-medium\">\n {productName}\n </span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nEmailPreview.propTypes = {\n /**\n * The value of the send-to field.\n */\n to: PropTypes.arrayOf(PropTypes.string),\n /**\n * The value of the send-from field.\n */\n from: PropTypes.string,\n /**\n * The subject of the email.\n */\n subject: PropTypes.string,\n /**\n * The body of the email.\n */\n body: PropTypes.string,\n /**\n * The name of the neeto product to be previewed.\n */\n productName: PropTypes.string,\n /**\n * The text to be shown in the action button.\n */\n actionButtonText: PropTypes.string,\n /**\n * Source link for the company logo.\n */\n logo: PropTypes.string,\n};\n\nexport default EmailPreview;\n"],"names":["MemoizedEditorContent","React","memo","EditorContent","EmailPreview","_ref","to","from","subject","body","productName","actionButtonText","logo","_useTranslation","useTranslation","t","createElement","className","Typography","lineHeight","style","isNotEmpty","join","content","Button","label","alt","src"],"mappings":"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"}