@bigbinary/neeto-molecules 5.1.28 → 5.1.29

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.
@@ -175,7 +175,7 @@ var ErrorPage = function ErrorPage(_ref) {
175
175
  }
176
176
  })
177
177
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
178
- className: "flex flex-wrap items-center gap-3 [&_a]:no-underline",
178
+ className: "flex flex-wrap items-center justify-center gap-3 @[768px]/error-page:justify-start [&_a]:no-underline",
179
179
  children: [primaryAction === "back" ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
180
180
  asChild: true,
181
181
  size: "lg",
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/lock.js","../../../src/v2/components/ErrorPage/constants.js","../../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode);\n\nexport { __iconNode, Lock as default };\n//# sourceMappingURL=lock.js.map\n","import { Lock, Search, TriangleAlert } from \"lucide-react\";\n\nexport const ERRORS = {\n 404: {\n Icon: Search,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n descriptionKey: \"neetoMolecules.errorPage.description.cantBeFound\",\n primaryAction: \"home\",\n usesChat: true,\n },\n 403: {\n Icon: Lock,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n descriptionKey: \"neetoMolecules.errorPage.description.unauthorized\",\n primaryAction: \"back\",\n usesChat: false,\n },\n 500: {\n Icon: TriangleAlert,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n descriptionKey: \"neetoMolecules.errorPage.description.internalServerError\",\n primaryAction: \"home\",\n usesChat: true,\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { ChevronLeft, House } from \"lucide-react\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Icon, errorKey, titleKey, descriptionKey, primaryAction, usesChat } =\n ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n // Falls back to homeUrl when the user landed on the error page directly\n // (deep link / fresh tab) and has no in-app history to go back to.\n const handleGoBack = () => {\n if (window.history.length > 1) {\n window.history.back();\n } else {\n window.location.href = homeUrl;\n }\n };\n\n const showDefaultDescription = !usesChat || showNeetoChatWidget;\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col items-center gap-8 p-4 text-center @[768px]/error-page:flex-row @[768px]/error-page:items-center @[768px]/error-page:gap-12 @[768px]/error-page:p-6 @[768px]/error-page:text-left\">\n <div\n className=\"bg-muted text-muted-foreground flex size-24 shrink-0 items-center justify-center rounded-full border\"\n data-testid=\"error-image\"\n >\n <Icon className=\"size-10\" strokeWidth={1.5} />\n </div>\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n {!!status && (\n <Typography\n className=\"text-muted-foreground mb-2 tracking-[0.08em] uppercase\"\n data-testid=\"status-code\"\n variant=\"body3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.errorPage.statusCodeLabel\", { status })}\n </Typography>\n )}\n <Typography\n className=\"mb-3\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {description ? (\n <Typography\n className=\"mb-6\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n ) : (\n showDefaultDescription && (\n <Typography\n className=\"mb-6\"\n data-testid=\"description\"\n variant=\"body1\"\n >\n <Trans\n i18nKey={descriptionKey}\n components={{\n contactLink: (\n <Button\n className=\"h-auto p-0 text-base\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )\n )}\n <div className=\"flex flex-wrap items-center gap-3 [&_a]:no-underline\">\n {primaryAction === \"back\" ? (\n <Button asChild size=\"lg\" variant=\"default\">\n <button type=\"button\" onClick={handleGoBack}>\n <ChevronLeft className=\"size-4\" />\n {t(\"neetoMolecules.errorPage.goBack\")}\n </button>\n </Button>\n ) : (\n !hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>\n <House className=\"size-4\" />\n {t(\"neetoMolecules.errorPage.backToHome\")}\n </a>\n </Button>\n )\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["createLucideIcon","ERRORS","Icon","Search","errorKey","titleKey","descriptionKey","primaryAction","usesChat","Lock","TriangleAlert","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","handleGoBack","history","length","back","location","href","showDefaultDescription","_jsx","className","_jsxs","strokeWidth","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","contactLink","Button","onClick","asChild","size","type","ChevronLeft","_objectSpread","House"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"ErrorPage.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/lock.js","../../../src/v2/components/ErrorPage/constants.js","../../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode);\n\nexport { __iconNode, Lock as default };\n//# sourceMappingURL=lock.js.map\n","import { Lock, Search, TriangleAlert } from \"lucide-react\";\n\nexport const ERRORS = {\n 404: {\n Icon: Search,\n errorKey: \"neetoMolecules.errorPage.cantBeFound\",\n titleKey: \"neetoMolecules.errorPage.title.cantBeFound\",\n descriptionKey: \"neetoMolecules.errorPage.description.cantBeFound\",\n primaryAction: \"home\",\n usesChat: true,\n },\n 403: {\n Icon: Lock,\n errorKey: \"neetoMolecules.errorPage.unauthorized\",\n titleKey: \"neetoMolecules.errorPage.title.unauthorized\",\n descriptionKey: \"neetoMolecules.errorPage.description.unauthorized\",\n primaryAction: \"back\",\n usesChat: false,\n },\n 500: {\n Icon: TriangleAlert,\n errorKey: \"neetoMolecules.errorPage.internalServerError\",\n titleKey: \"neetoMolecules.errorPage.title.internalServerError\",\n descriptionKey: \"neetoMolecules.errorPage.description.internalServerError\",\n primaryAction: \"home\",\n usesChat: true,\n },\n};\n","import { useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { ChevronLeft, House } from \"lucide-react\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport PropTypes from \"prop-types\";\nimport { Helmet } from \"react-helmet\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ERRORS } from \"./constants\";\n\nconst sanitize = DOMPurify.sanitize;\n\nconst ErrorPage = ({\n homeUrl = \"/\",\n status,\n backToHomeButtonProps,\n children,\n showNeetoChatWidget = true,\n description,\n title,\n hideBackToHomeButton = false,\n}) => {\n const { t } = useTranslation();\n const { statusCode: storeStatusCode, showErrorPage } =\n useErrorDisplayStore.pick();\n\n status = status || storeStatusCode;\n const { Icon, errorKey, titleKey, descriptionKey, primaryAction, usesChat } =\n ERRORS[status] || ERRORS[404];\n\n useEffect(() => {\n const pageLoader = document.getElementById(\"neeto-page-loader\");\n if (pageLoader) pageLoader.remove();\n\n const onBackButtonPress = () => {\n if (!showErrorPage) return;\n useErrorDisplayStore.setState({ showErrorPage: false });\n };\n\n window.addEventListener(\"popstate\", onBackButtonPress);\n\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonPress);\n };\n }, []);\n\n const openChatWidget = () => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n };\n\n // Falls back to homeUrl when the user landed on the error page directly\n // (deep link / fresh tab) and has no in-app history to go back to.\n const handleGoBack = () => {\n if (window.history.length > 1) {\n window.history.back();\n } else {\n window.location.href = homeUrl;\n }\n };\n\n const showDefaultDescription = !usesChat || showNeetoChatWidget;\n\n return (\n <div\n className=\"@container/error-page flex min-h-dvh w-full flex-col items-center justify-center\"\n data-testid=\"error-page-container\"\n >\n <div className=\"flex w-[768px] max-w-full flex-col items-center gap-8 p-4 text-center @[768px]/error-page:flex-row @[768px]/error-page:items-center @[768px]/error-page:gap-12 @[768px]/error-page:p-6 @[768px]/error-page:text-left\">\n <div\n className=\"bg-muted text-muted-foreground flex size-24 shrink-0 items-center justify-center rounded-full border\"\n data-testid=\"error-image\"\n >\n <Icon className=\"size-10\" strokeWidth={1.5} />\n </div>\n <div className=\"flex flex-col justify-center md:min-w-0 md:flex-grow\">\n <Helmet>\n <title>{t(titleKey)}</title>\n </Helmet>\n {!!status && (\n <Typography\n className=\"text-muted-foreground mb-2 tracking-[0.08em] uppercase\"\n data-testid=\"status-code\"\n variant=\"body3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.errorPage.statusCodeLabel\", { status })}\n </Typography>\n )}\n <Typography\n className=\"mb-3\"\n data-testid=\"title\"\n variant=\"h3\"\n weight=\"semibold\"\n >\n {title || <Trans i18nKey={errorKey} />}\n </Typography>\n {description ? (\n <Typography\n className=\"mb-6\"\n dangerouslySetInnerHTML={{ __html: sanitize(description) }}\n data-testid=\"description\"\n variant=\"body1\"\n />\n ) : (\n showDefaultDescription && (\n <Typography\n className=\"mb-6\"\n data-testid=\"description\"\n variant=\"body1\"\n >\n <Trans\n i18nKey={descriptionKey}\n components={{\n contactLink: (\n <Button\n className=\"h-auto p-0 text-base\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n }}\n />\n </Typography>\n )\n )}\n <div className=\"flex flex-wrap items-center justify-center gap-3 @[768px]/error-page:justify-start [&_a]:no-underline\">\n {primaryAction === \"back\" ? (\n <Button asChild size=\"lg\" variant=\"default\">\n <button type=\"button\" onClick={handleGoBack}>\n <ChevronLeft className=\"size-4\" />\n {t(\"neetoMolecules.errorPage.goBack\")}\n </button>\n </Button>\n ) : (\n !hideBackToHomeButton && (\n <Button\n asChild\n size=\"lg\"\n variant=\"default\"\n {...backToHomeButtonProps}\n >\n <a href={homeUrl}>\n <House className=\"size-4\" />\n {t(\"neetoMolecules.errorPage.backToHome\")}\n </a>\n </Button>\n )\n )}\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nErrorPage.propTypes = {\n /**\n * The URL to which the user will be taken to when user clicks on back to home button.\n */\n homeUrl: PropTypes.string,\n /**\n * The status code of the error.\n */\n status: PropTypes.oneOf([403, 404, 500]),\n /**\n * Decides whether 'contact us' link should be displayed or not.\n */\n showNeetoChatWidget: PropTypes.bool,\n /**\n * Description about the error.\n */\n description: PropTypes.string,\n /**\n * Decides whether 'back to home' button should be displayed or not.\n */\n hideBackToHomeButton: PropTypes.bool,\n /**\n * The title of the error page.\n */\n title: PropTypes.string,\n};\n\nexport default ErrorPage;\n"],"names":["createLucideIcon","ERRORS","Icon","Search","errorKey","titleKey","descriptionKey","primaryAction","usesChat","Lock","TriangleAlert","sanitize","DOMPurify","ErrorPage","_ref","_ref$homeUrl","homeUrl","status","backToHomeButtonProps","children","_ref$showNeetoChatWid","showNeetoChatWidget","description","title","_ref$hideBackToHomeBu","hideBackToHomeButton","_useTranslation","useTranslation","t","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","statusCode","showErrorPage","storeStatusCode","_ref2","useEffect","pageLoader","document","getElementById","remove","onBackButtonPress","setState","window","addEventListener","removeEventListener","openChatWidget","_window$NeetoChat","_window$NeetoChat2","NeetoChat","contextualHelp","maximizeWidget","openWidget","handleGoBack","history","length","back","location","href","showDefaultDescription","_jsx","className","_jsxs","strokeWidth","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","components","contactLink","Button","onClick","asChild","size","type","ChevronLeft","_objectSpread","House"],"mappings":"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","x_google_ignoreList":[0]}
@@ -121,7 +121,6 @@ var KbdWithRef = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
121
121
  ref: ref
122
122
  }, props)), {}, {
123
123
  children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Kbd, {
124
- className: "nv-kbd",
125
124
  children: children
126
125
  })
127
126
  }));
@@ -140,7 +139,6 @@ var KbdKey = function KbdKey(_ref2) {
140
139
  });
141
140
  }
142
141
  return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Kbd, {
143
- className: "nv-kbd",
144
142
  children: keyName
145
143
  });
146
144
  };
@@ -164,8 +162,9 @@ var HotKey$1 = function HotKey(_ref3) {
164
162
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
165
163
  className: "flex items-center justify-between gap-3",
166
164
  "data-testid": "hotkey-item",
167
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
168
- className: "text-foreground min-w-0 flex-grow text-sm leading-normal break-words",
165
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
166
+ as: "span",
167
+ className: "min-w-0 flex-grow break-words",
169
168
  children: description
170
169
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
171
170
  className: "flex flex-shrink-0 items-center gap-1",
@@ -193,8 +192,10 @@ var HotKeyList$1 = reactUtils.withT(function (_ref) {
193
192
  var fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];
194
193
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
195
194
  className: "mt-4 px-4",
196
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
197
- className: "text-foreground text-xs font-bold uppercase",
195
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
196
+ className: "uppercase",
197
+ variant: "caption",
198
+ weight: "bold",
198
199
  children: categoryName
199
200
  }), Object.entries(categoryValues).map(function (_ref2) {
200
201
  var _ref3 = _slicedToArray(_ref2, 2),
@@ -263,9 +264,10 @@ var KeyboardShortcutsPane = function KeyboardShortcutsPane(_ref) {
263
264
  className: "h-full w-80 overflow-y-auto",
264
265
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
265
266
  className: "border-border my-2 flex items-center justify-between border-b px-4 pb-2",
266
- children: [/*#__PURE__*/jsxRuntime.jsx("h4", {
267
- className: "text-foreground text-base font-semibold",
267
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
268
+ as: "h4",
268
269
  "data-testid": "keyboard-shortcuts-pane-title",
270
+ variant: "h6",
269
271
  children: t("neetoMolecules.keyboardShortcuts.title")
270
272
  }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
271
273
  "data-testid": "keyboard-shortcuts-pane-close-button",
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcuts.js","sources":["../../../src/v2/components/KeyboardShortcuts/Pane/constants.js","../../../src/v2/components/KeyboardShortcuts/Pane/utils.js","../../../src/v2/components/KeyboardShortcuts/Pane/HotKey.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/index.jsx","../../../src/v2/components/KeyboardShortcuts/index.js"],"sourcesContent":["export const KEY_SHORTFORM_MAP = {\n command: \"\\u2318\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"macOS\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"\\u2318\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","import i18next from \"i18next\";\nimport { toPairs } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const parser = new UAParser(navigator.userAgent);\n const result = parser.getResult();\n const isOSX = result.os.name?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"command+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n openProductSwitcher: {\n sequence: \"command+u\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openProductSwitcher\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import { memo, forwardRef, Fragment } from \"react\";\n\nimport { Kbd, Tooltip } from \"@bigbinary/neeto-atoms\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst KbdWithRef = forwardRef(({ children, ...props }, ref) => (\n <span {...{ ref, ...props }}>\n <Kbd className=\"nv-kbd\">{children}</Kbd>\n </span>\n));\nKbdWithRef.displayName = \"KbdWithRef\";\n\nconst KbdKey = ({ keyName, tooltipProps }) => {\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps.content} position=\"top\">\n <KbdWithRef>{keyName}</KbdWithRef>\n </Tooltip>\n );\n }\n\n return <Kbd className=\"nv-kbd\">{keyName}</Kbd>;\n};\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-testid=\"hotkey-item\"\n >\n <span className=\"text-foreground min-w-0 flex-grow text-sm leading-normal break-words\">\n {description}\n </span>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <Fragment key={idx}>\n <KbdKey\n {...{ keyName }}\n tooltipProps={getTooltipProps(keyName)}\n />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <KbdKey keyName=\"then\" />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(HotKey);\n","import { memo } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = withT(({ t, hotkeys }) =>\n Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <span className=\"text-foreground text-xs font-bold uppercase\">\n {categoryName}\n </span>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && <HotKey {...{ description, sequence }} key={sequence} />\n )}\n {fullShortcutsLink && (\n <Button asChild className=\"mb-3\" variant=\"link\">\n <a href={fullShortcutsLink} rel=\"noreferrer\" target=\"_blank\">\n {t(\"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\")}\n </a>\n </Button>\n )}\n </div>\n );\n })\n);\n\nexport default memo(HotKeyList);\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport useHotkeys from \"neetohotkeys\";\nimport { manager } from \"neetoui/managers\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotkeys(\n shortcuts.openKeyboardShortcutsPane.sequence,\n () => setIsOpen(prevIsOpen => !prevIsOpen),\n { mode: \"global\" }\n );\n\n useHotkeys(shortcuts.close.sequence, () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\n });\n\n return (\n <div\n data-testid=\"keyboard-shortcuts-pane\"\n style={{ zIndex: \"var(--nv-pane-z-index, 100000)\" }}\n className={classnames(\n \"border-border bg-background transition-width ms-auto h-dvh shrink-0 grow-0 overflow-hidden border-l duration-300 ease-in-out rtl:border-r rtl:border-l-0\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"end-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"border-border my-2 flex items-center justify-between border-b px-4 pb-2\">\n <h4\n className=\"text-foreground text-base font-semibold\"\n data-testid=\"keyboard-shortcuts-pane-title\"\n >\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </h4>\n <Button\n data-testid=\"keyboard-shortcuts-pane-close-button\"\n icon={X}\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => setIsOpen(false)}\n />\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_result$os$name","parser","UAParser","navigator","userAgent","result","getResult","isOSX","os","name","includes","shortenHotKey","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","openProductSwitcher","getTooltipProps","key","position","content","followCursor","KbdWithRef","forwardRef","ref","children","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Kbd","className","displayName","KbdKey","tooltipProps","Tooltip","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","_jsxs","idx","Fragment","length","memo","HotKeyList","withT","hotkeys","keys","categoryName","categoryValues","fullShortcutsLink","_ref3$","_createElement","Button","asChild","variant","href","rel","target","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isOpen","setIsOpen","hasOverlays","manager","GLOBAL_SHORTCUTS","_useTranslation","useTranslation","shortcuts","useHotkeys","prevIsOpen","mode","enabled","style","zIndex","classnames","absolute","icon","X","size","onClick","KeyboardShortcuts","Pane","usePaneState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,OAAO,EAAE,QAAQ;AACjBC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,OAAO,EAAE,MAAM;AACfC,EAAAA,MAAM,EAAE,KAAK;EACb,QAAA,EAAQ;AACV,CAAC;AAEM,IAAMC,uBAAuB,GAAG;AACrCD,EAAAA,MAAM,EAAE,KAAK;AACbH,EAAAA,OAAO,EAAE,MAAM;AACf,EAAA,QAAA,EAAQ,OAAO;EACf,QAAA,EAAQ;AACV,CAAC;AAEM,IAAMK,EAAE,GAAG;AAAEC,EAAAA,GAAG,EAAE,OAA4B,CAAC;AAE/C,IAAMC,6BAA6B,GAAG,mBAAmB;AAEzD,IAAMC,eAAe,GAAG;AAC7B,EAAA,QAAQ,EAAE,SAAS;AACnBC,EAAAA,GAAG,EAAE,QAAQ;AACbC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,GAAG,EAAE,QAAQ;AACbC,EAAAA,SAAS,EAAE;AACb,CAAC;;ACdD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC;AAAA,CAAA;AAExD,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAIH,MAAM,EAAEI,OAAO,EAAEC,WAAW,EAAA;EAAA,OAC/CN,gBAAgB,CAACC,MAAM,CAAC,GACpBA,MAAM,CAACM,GAAG,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACC,UAAU,CAACJ,OAAO,EAAEC,WAAW,CAAC;EAAA,CAAA,CAAC,GACzDL,MAAM,CAACQ,UAAU,CAACJ,OAAO,EAAEC,WAAW,CAAC;AAAA,CAAA;AAE7C,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGT,MAAM,EAAI;EACvCU,aAAO,CAACpB,uBAAuB,CAAC,CAACqB,OAAO,CAAC,UAAAC,IAAA,EAA0B;AAAA,IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAxBG,MAAAA,MAAM,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,UAAU,GAAAH,KAAA,CAAA,CAAA,CAAA;IAC3Db,MAAM,GAAGG,WAAW,CAACH,MAAM,EAAEe,MAAM,EAAEC,UAAU,CAAC;AAClD,EAAA,CAAC,CAAC;AAEF,EAAA,OAAOhB,MAAM;AACf,CAAC;AAEM,IAAMiB,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAGjB,MAAM,EAAI;AAAA,EAAA,IAAAkB,eAAA;EACpD,IAAMC,MAAM,GAAG,IAAIC,iBAAQ,CAACC,SAAS,CAACC,SAAS,CAAC;AAChD,EAAA,IAAMC,MAAM,GAAGJ,MAAM,CAACK,SAAS,EAAE;AACjC,EAAA,IAAMC,KAAK,GAAA,CAAAP,eAAA,GAAGK,MAAM,CAACG,EAAE,CAACC,IAAI,cAAAT,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAgBU,QAAQ,CAACrC,EAAE,CAACC,GAAG,CAAC;EAC9C,IAAIiC,KAAK,EAAE,OAAOzB,MAAM;EAExB,OAAOS,sBAAsB,CAACT,MAAM,CAAC;AACvC,CAAC;AAEM,IAAM6B,aAAa,GAAG,SAAhBA,aAAaA,CAAG7B,MAAM,EAAI;EACrC,IAAIuB,MAAM,GAAGvB,MAAM;EACnB8B,MAAM,CAACC,OAAO,CAAC9C,iBAAiB,CAAC,CAAC0B,OAAO,CAAC,UAAAqB,KAAA,EAA2B;AAAA,IAAA,IAAAC,KAAA,GAAAnB,cAAA,CAAAkB,KAAA,EAAA,CAAA,CAAA;AAAzBE,MAAAA,QAAQ,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,SAAS,GAAAF,KAAA,CAAA,CAAA,CAAA;IAC7DV,MAAM,GAAGA,MAAM,CAACf,UAAU,CAAC0B,QAAQ,EAAEC,SAAS,CAAC;AACjD,EAAA,CAAC,CAAC;AAEF,EAAA,OAAOZ,MAAM;AACf,CAAC;AAEM,IAAMa,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;EAAA,OAAAC,eAAA,KAC5BC,OAAO,CAACC,CAAC,CAAC,sDAAsD,CAAC,EAAG;AACnEC,IAAAA,yBAAyB,EAAE;AACzBC,MAAAA,QAAQ,EAAE,WAAW;AACrBC,MAAAA,WAAW,EAAEJ,OAAO,CAACC,CAAC,CACpB,mEACF;KACD;AACDI,IAAAA,KAAK,EAAE;AACLF,MAAAA,QAAQ,EAAE,KAAK;AACfC,MAAAA,WAAW,EAAEJ,OAAO,CAACC,CAAC,CAAC,+CAA+C;KACvE;AACDK,IAAAA,UAAU,EAAE;AACVH,MAAAA,QAAQ,EAAE,gBAAgB;AAC1BC,MAAAA,WAAW,EAAEJ,OAAO,CAACC,CAAC,CACpB,oDACF;KACD;AACDM,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,WAAW;AACrBC,MAAAA,WAAW,EAAEJ,OAAO,CAACC,CAAC,CACpB,6DACF;AACF;GACD,CAAA;AAAA,CACD;AAEK,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,GAAG,EAAI;AACpC,EAAA,IAAIrD,eAAe,CAACqD,GAAG,CAAC,EAAE;IACxB,OAAO;AACLC,MAAAA,QAAQ,EAAE,KAAK;AACfC,MAAAA,OAAO,EAAEvD,eAAe,CAACqD,GAAG,CAAC;AAC7BG,MAAAA,YAAY,EAAE;KACf;AACH,EAAA;AAEA,EAAA,OAAO,IAAI;AACb,CAAC;;;;;ACvED,IAAMC,UAAU,gBAAGC,gBAAU,CAAC,UAAAxC,IAAA,EAAyByC,GAAG,EAAA;AAAA,EAAA,IAAzBC,QAAQ,GAAA1C,IAAA,CAAR0C,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAA5C,IAAA,EAAA6C,SAAA,CAAA;AAAA,EAAA,oBACjDC,cAAA,CAAA,MAAA,EAAAC,aAAA,CAAAA,aAAA,KAAAA,aAAA,CAAA;AAAYN,IAAAA,GAAG,EAAHA;AAAG,GAAA,EAAKE,KAAK,CAAA,CAAA,EAAA,EAAA,EAAA;IAAAD,QAAA,eACvBI,cAAA,CAACE,cAAG,EAAA;AAACC,MAAAA,SAAS,EAAC,QAAQ;AAAAP,MAAAA,QAAA,EAAEA;KAAc;AAAC,GAAA,CACpC,CAAC;AAAA,CACR,CAAC;AACFH,UAAU,CAACW,WAAW,GAAG,YAAY;AAErC,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAlD,KAAA,EAAkC;AAAA,EAAA,IAA5BT,OAAO,GAAAS,KAAA,CAAPT,OAAO;IAAE4D,YAAY,GAAAnD,KAAA,CAAZmD,YAAY;AACrC,EAAA,IAAIA,YAAY,EAAE;IAChB,oBACEN,cAAA,CAACO,kBAAO,EAAA;MAAChB,OAAO,EAAEe,YAAY,CAACf,OAAQ;AAACD,MAAAA,QAAQ,EAAC,KAAK;MAAAM,QAAA,eACpDI,cAAA,CAACP,UAAU,EAAA;AAAAG,QAAAA,QAAA,EAAElD;OAAoB;AAAC,KAC3B,CAAC;AAEd,EAAA;EAEA,oBAAOsD,cAAA,CAACE,cAAG,EAAA;AAACC,IAAAA,SAAS,EAAC,QAAQ;AAAAP,IAAAA,QAAA,EAAElD;AAAO,GAAM,CAAC;AAChD,CAAC;AAED,IAAM8D,QAAM,GAAG,SAATA,MAAMA,CAAAlC,KAAA,EAAkC;AAAA,EAAA,IAA5BU,WAAW,GAAAV,KAAA,CAAXU,WAAW;IAAED,QAAQ,GAAAT,KAAA,CAARS,QAAQ;EACrC,IAAMzC,MAAM,GAAG6B,aAAa,CAACZ,4BAA4B,CAACwB,QAAQ,CAAC,CAAC;AACpE,EAAA,IAAM0B,kBAAkB,GAAGnE,MAAM,CAAC4B,QAAQ,CAAC,GAAG,CAAC;AAC/C,EAAA,IAAMwC,oBAAoB,GAAGpE,MAAM,CAAC4B,QAAQ,CAAC,GAAG,CAAC;AACjD,EAAA,IAAMyC,iBAAiB,GAAG,CAACF,kBAAkB,IAAI,CAACC,oBAAoB;EACtE,IAAIE,SAAS,GAAG,EAAE;AAElB,EAAA,IAAID,iBAAiB,EAAE;IACrBC,SAAS,GAAG,CAACtE,MAAM,CAAC;EACtB,CAAC,MAAM,IAAImE,kBAAkB,EAAE;AAC7BG,IAAAA,SAAS,GAAGtE,MAAM,CAACuE,KAAK,CAAC,GAAG,CAAC;EAC/B,CAAC,MAAM,IAAIH,oBAAoB,EAAE;AAC/BE,IAAAA,SAAS,GAAGtE,MAAM,CAACuE,KAAK,CAAC,GAAG,CAAC;AAC/B,EAAA;AAEA,EAAA,oBACEb,cAAA,CAAA,KAAA,EAAA;AAAKG,IAAAA,SAAS,EAAC,aAAa;AAAAP,IAAAA,QAAA,eAC1BkB,eAAA,CAAA,KAAA,EAAA;AACEX,MAAAA,SAAS,EAAC,yCAAyC;AACnD,MAAA,aAAA,EAAY,aAAa;AAAAP,MAAAA,QAAA,gBAEzBI,cAAA,CAAA,MAAA,EAAA;AAAMG,QAAAA,SAAS,EAAC,sEAAsE;AAAAP,QAAAA,QAAA,EACnFZ;OACG,CAAC,eACPgB,cAAA,CAAA,KAAA,EAAA;AAAKG,QAAAA,SAAS,EAAC,uCAAuC;QAAAP,QAAA,EACnDgB,SAAS,CAAChE,GAAG,CAAC,UAACF,OAAO,EAAEqE,GAAG,EAAA;UAAA,oBAC1BD,eAAA,CAACE,cAAQ,EAAA;YAAApB,QAAA,EAAA,cACPI,cAAA,CAACK,MAAM,EAAA;AACC3D,cAAAA,OAAO,EAAPA,OAAO;cACb4D,YAAY,EAAElB,eAAe,CAAC1C,OAAO;AAAE,aACxC,CAAC,EACD+D,kBAAkB,IAAIM,GAAG,GAAG,CAAC,KAAKH,SAAS,CAACK,MAAM,iBACjDjB,cAAA,CAACK,MAAM,EAAA;AAAC3D,cAAAA,OAAO,EAAC;AAAM,aAAE,CACzB;AAAA,WAAA,EAPYqE,GAQL,CAAC;QAAA,CACZ;AAAC,OACC,CAAC;KACH;AAAC,GACH,CAAC;AAEV,CAAC;AAED,aAAA,aAAeG,UAAI,CAACV,QAAM,CAAC;;AC/D3B,IAAMW,YAAU,GAAGC,gBAAK,CAAC,UAAAlE,IAAA,EAAA;AAAA,EAAA,IAAG2B,CAAC,GAAA3B,IAAA,CAAD2B,CAAC;IAAEwC,OAAO,GAAAnE,IAAA,CAAPmE,OAAO;EAAA,OACpCjD,MAAM,CAACkD,IAAI,CAACD,OAAO,CAAC,CAACzE,GAAG,CAAC,UAAA2E,YAAY,EAAI;AACvC,IAAA,IAAMC,cAAc,GAAGH,OAAO,CAACE,YAAY,CAAC;AAC5C,IAAA,IAAME,iBAAiB,GAAGD,cAAc,CAACzF,6BAA6B,CAAC;AAEvE,IAAA,oBACE+E,eAAA,CAAA,KAAA,EAAA;AAAKX,MAAAA,SAAS,EAAC,WAAW;AAAAP,MAAAA,QAAA,gBACxBI,cAAA,CAAA,MAAA,EAAA;AAAMG,QAAAA,SAAS,EAAC,6CAA6C;AAAAP,QAAAA,QAAA,EAC1D2B;AAAY,OACT,CAAC,EACNnD,MAAM,CAACC,OAAO,CAACmD,cAAc,CAAC,CAAC5E,GAAG,CACjC,UAAAO,KAAA,EAAA;AAAA,QAAA,IAAAmB,KAAA,GAAAlB,cAAA,CAAAD,KAAA,EAAA,CAAA,CAAA;AAAAuE,UAAAA,MAAA,GAAApD,KAAA,CAAA,CAAA,CAAA;UAAMS,QAAQ,GAAA2C,MAAA,CAAR3C,QAAQ;UAAEC,WAAW,GAAA0C,MAAA,CAAX1C,WAAW;AAAA,QAAA,OACzBD,QAAQ,iBAAI4C,mBAAA,CAACnB,MAAM,EAAA;AAAOxB,UAAAA,WAAW,EAAXA,WAAW;AAAED,UAAAA,QAAQ,EAARA,QAAQ;AAAIM,UAAAA,GAAG,EAAEN;AAAS,SAAE,CAAC;AAAA,MAAA,CACxE,CAAC,EACA0C,iBAAiB,iBAChBzB,cAAA,CAAC4B,iBAAM,EAAA;QAACC,OAAO,EAAA,IAAA;AAAC1B,QAAAA,SAAS,EAAC,MAAM;AAAC2B,QAAAA,OAAO,EAAC,MAAM;AAAAlC,QAAAA,QAAA,eAC7CI,cAAA,CAAA,GAAA,EAAA;AAAG+B,UAAAA,IAAI,EAAEN,iBAAkB;AAACO,UAAAA,GAAG,EAAC,YAAY;AAACC,UAAAA,MAAM,EAAC,QAAQ;UAAArC,QAAA,EACzDf,CAAC,CAAC,0DAA0D;SAC5D;AAAC,OACE,CACT;AAAA,KAAA,EAd6B0C,YAe3B,CAAC;AAEV,EAAA,CAAC,CAAC;AAAA,CACJ,CAAC;AAED,iBAAA,aAAeL,UAAI,CAACC,YAAU,CAAC;;ACrB/B,IAAMe,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAhF,IAAA,EAAkC;AAAA,EAAA,IAAAiF,qBAAA,GAAAjF,IAAA,CAA5BkF,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;AACpD,EAAA,IAAAE,qBAAA,GAA4BC,2DAA6B,EAAE;IAAAC,sBAAA,GAAAnF,cAAA,CAAAiF,qBAAA,EAAA,CAAA,CAAA;AAApDG,IAAAA,MAAM,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,SAAS,GAAAF,sBAAA,CAAA,CAAA,CAAA;AACxB,EAAA,IAAMG,WAAW,GAAGC,gBAAO,CAACD,WAAW,EAAE;AACzC;AACA,EAAA,IAAME,gBAAgB,GAAGlE,kBAAkB,EAAE;AAC7C,EAAA,IAAAmE,eAAA,GAAcC,2BAAc,EAAE;IAAtBjE,CAAC,GAAAgE,eAAA,CAADhE,CAAC;EAET,IAAMkE,SAAS,GACbH,gBAAgB,CAAC/D,CAAC,CAAC,sDAAsD,CAAC,CAAC;AAE7EmE,EAAAA,UAAU,CACRD,SAAS,CAACjE,yBAAyB,CAACC,QAAQ,EAC5C,YAAA;IAAA,OAAM0D,SAAS,CAAC,UAAAQ,UAAU,EAAA;AAAA,MAAA,OAAI,CAACA,UAAU;IAAA,CAAA,CAAC;EAAA,CAAA,EAC1C;AAAEC,IAAAA,IAAI,EAAE;AAAS,GACnB,CAAC;AAEDF,EAAAA,UAAU,CAACD,SAAS,CAAC9D,KAAK,CAACF,QAAQ,EAAE,YAAA;IAAA,OAAM0D,SAAS,CAAC,KAAK,CAAC;EAAA,CAAA,EAAE;AAC3DS,IAAAA,IAAI,EAAE,QAAQ;AACdC,IAAAA,OAAO,EAAEX;AACX,GAAC,CAAC;AAEF,EAAA,oBACExC,cAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,yBAAyB;AACrCoD,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAE;KAAmC;AACpDlD,IAAAA,SAAS,EAAEmD,UAAU,CACnB,0JAA0J,EAC1J;AACE,MAAA,MAAM,EAAEd,MAAM;MACd,KAAK,EAAE,CAACA,MAAM;AACde,MAAAA,QAAQ,EAAEb,WAAW;AACrB,MAAA,OAAO,EAAEA;AACX,KACF,CAAE;AAAA9C,IAAAA,QAAA,eAEFkB,eAAA,CAAA,KAAA,EAAA;AAAKX,MAAAA,SAAS,EAAC,6BAA6B;AAAAP,MAAAA,QAAA,gBAC1CkB,eAAA,CAAA,KAAA,EAAA;AAAKX,QAAAA,SAAS,EAAC,yEAAyE;AAAAP,QAAAA,QAAA,gBACtFI,cAAA,CAAA,IAAA,EAAA;AACEG,UAAAA,SAAS,EAAC,yCAAyC;AACnD,UAAA,aAAA,EAAY,+BAA+B;UAAAP,QAAA,EAE1Cf,CAAC,CAAC,wCAAwC;AAAC,SAC1C,CAAC,eACLmB,cAAA,CAAC4B,iBAAM,EAAA;AACL,UAAA,aAAA,EAAY,sCAAsC;AAClD4B,UAAAA,IAAI,EAAEC,GAAE;AACRC,UAAAA,IAAI,EAAC,MAAM;AACX5B,UAAAA,OAAO,EAAC,OAAO;UACf6B,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQlB,SAAS,CAAC,KAAK,CAAC;AAAA,UAAA;AAAC,SACjC,CAAC;AAAA,OACC,CAAC,eACNzC,cAAA,CAACmB,UAAU,EAAA;AAACE,QAAAA,OAAO,EAAEuB;AAAiB,OAAE,CAAC,eACzC5C,cAAA,CAACmB,UAAU,EAAA;AAACE,QAAAA,OAAO,EAAEe;AAAiB,OAAE,CAAC;KACtC;AAAC,GACH,CAAC;AAEV,CAAC;;ACjED,IAAMwB,iBAAiB,GAAG;AACxBC,EAAAA,IAAI,EAAE3B,qBAAqB;AAC3B4B,EAAAA,YAAY,EAAExB,2DAA6B;EAC3CM,gBAAgB,EAAElE,kBAAkB;AACtC;;;;"}
1
+ {"version":3,"file":"KeyboardShortcuts.js","sources":["../../../src/v2/components/KeyboardShortcuts/Pane/constants.js","../../../src/v2/components/KeyboardShortcuts/Pane/utils.js","../../../src/v2/components/KeyboardShortcuts/Pane/HotKey.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../../../src/v2/components/KeyboardShortcuts/Pane/index.jsx","../../../src/v2/components/KeyboardShortcuts/index.js"],"sourcesContent":["export const KEY_SHORTFORM_MAP = {\n command: \"\\u2318\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"macOS\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"\\u2318\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","import i18next from \"i18next\";\nimport { toPairs } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const parser = new UAParser(navigator.userAgent);\n const result = parser.getResult();\n const isOSX = result.os.name?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"command+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n openProductSwitcher: {\n sequence: \"command+u\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openProductSwitcher\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import { memo, forwardRef, Fragment } from \"react\";\n\nimport { Kbd, Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst KbdWithRef = forwardRef(({ children, ...props }, ref) => (\n <span {...{ ref, ...props }}>\n <Kbd>{children}</Kbd>\n </span>\n));\nKbdWithRef.displayName = \"KbdWithRef\";\n\nconst KbdKey = ({ keyName, tooltipProps }) => {\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps.content} position=\"top\">\n <KbdWithRef>{keyName}</KbdWithRef>\n </Tooltip>\n );\n }\n\n return <Kbd>{keyName}</Kbd>;\n};\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-testid=\"hotkey-item\"\n >\n <Typography as=\"span\" className=\"min-w-0 flex-grow break-words\">\n {description}\n </Typography>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <Fragment key={idx}>\n <KbdKey\n {...{ keyName }}\n tooltipProps={getTooltipProps(keyName)}\n />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <KbdKey keyName=\"then\" />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(HotKey);\n","import { memo } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = withT(({ t, hotkeys }) =>\n Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <Typography className=\"uppercase\" variant=\"caption\" weight=\"bold\">\n {categoryName}\n </Typography>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && <HotKey {...{ description, sequence }} key={sequence} />\n )}\n {fullShortcutsLink && (\n <Button asChild className=\"mb-3\" variant=\"link\">\n <a href={fullShortcutsLink} rel=\"noreferrer\" target=\"_blank\">\n {t(\"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\")}\n </a>\n </Button>\n )}\n </div>\n );\n })\n);\n\nexport default memo(HotKeyList);\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport useHotkeys from \"neetohotkeys\";\nimport { manager } from \"neetoui/managers\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotkeys(\n shortcuts.openKeyboardShortcutsPane.sequence,\n () => setIsOpen(prevIsOpen => !prevIsOpen),\n { mode: \"global\" }\n );\n\n useHotkeys(shortcuts.close.sequence, () => setIsOpen(false), {\n mode: \"global\",\n enabled: isOpen,\n });\n\n return (\n <div\n data-testid=\"keyboard-shortcuts-pane\"\n style={{ zIndex: \"var(--nv-pane-z-index, 100000)\" }}\n className={classnames(\n \"border-border bg-background transition-width ms-auto h-dvh shrink-0 grow-0 overflow-hidden border-l duration-300 ease-in-out rtl:border-r rtl:border-l-0\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"end-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"border-border my-2 flex items-center justify-between border-b px-4 pb-2\">\n <Typography\n as=\"h4\"\n data-testid=\"keyboard-shortcuts-pane-title\"\n variant=\"h6\"\n >\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </Typography>\n <Button\n data-testid=\"keyboard-shortcuts-pane-close-button\"\n icon={X}\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => setIsOpen(false)}\n />\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_result$os$name","parser","UAParser","navigator","userAgent","result","getResult","isOSX","os","name","includes","shortenHotKey","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","openProductSwitcher","getTooltipProps","key","position","content","followCursor","KbdWithRef","forwardRef","ref","children","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Kbd","displayName","KbdKey","tooltipProps","Tooltip","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","className","_jsxs","Typography","as","idx","Fragment","length","memo","HotKeyList","withT","hotkeys","keys","categoryName","categoryValues","fullShortcutsLink","variant","weight","_ref3$","_createElement","Button","asChild","href","rel","target","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isOpen","setIsOpen","hasOverlays","manager","GLOBAL_SHORTCUTS","_useTranslation","useTranslation","shortcuts","useHotkeys","prevIsOpen","mode","enabled","style","zIndex","classnames","absolute","icon","X","size","onClick","KeyboardShortcuts","Pane","usePaneState"],"mappings":"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"}
@@ -195,10 +195,8 @@ var SyntaxHighlighter = /*#__PURE__*/React.memo(SyntaxHighlighter$1);
195
195
 
196
196
  var CodeBlock = function CodeBlock(_ref) {
197
197
  var _ref$title = _ref.title,
198
- title = _ref$title === void 0 ? /*#__PURE__*/jsxRuntime.jsx("div", {
199
- children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
200
- i18nKey: "neetoMolecules.codeblock.codeSnippet"
201
- })
198
+ title = _ref$title === void 0 ? /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
199
+ i18nKey: "neetoMolecules.codeblock.codeSnippet"
202
200
  }) : _ref$title,
203
201
  codeString = _ref.codeString,
204
202
  _ref$showCopyButton = _ref.showCopyButton,
@@ -219,9 +217,10 @@ var CodeBlock = function CodeBlock(_ref) {
219
217
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
220
218
  className: "border-border bg-muted flex w-full flex-wrap items-center justify-between gap-2 rounded-lg rounded-b-none border p-3",
221
219
  children: [title && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
222
- className: "m-0 flex-shrink-0",
220
+ as: "h4",
221
+ className: "flex-shrink-0",
223
222
  "data-testid": "code-block-title-text",
224
- variant: "h4",
223
+ variant: "h6",
225
224
  children: title
226
225
  }), selectedFramework && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, {
227
226
  className: "max-w-40",
@@ -232,7 +231,7 @@ var CodeBlock = function CodeBlock(_ref) {
232
231
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
233
232
  className: "ms-auto flex flex-shrink-0 items-center justify-end gap-2",
234
233
  children: sendViaEmail ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
235
- variant: "secondary",
234
+ variant: "outline",
236
235
  label: t("neetoMolecules.widget.installation.snippet.sendViaEmail"),
237
236
  onClick: sendViaEmail
238
237
  }) : null
@@ -245,7 +244,7 @@ var CodeBlock = function CodeBlock(_ref) {
245
244
  variant: "secondary",
246
245
  tooltipContent: t("neetoMolecules.widget.installation.snippet.copy")
247
246
  }), /*#__PURE__*/jsxRuntime.jsx(SyntaxHighlighter, {
248
- className: "m-0 rounded-lg rounded-t-none pt-4",
247
+ className: "!m-0 min-h-16 rounded-lg rounded-t-none pt-4",
249
248
  code: codeString,
250
249
  language: "javascript"
251
250
  })]
@@ -406,7 +405,7 @@ var CodeSnippet = function CodeSnippet(_ref) {
406
405
  emailMutation.mutate({
407
406
  subject: formData.subject,
408
407
  emails: ramda.pluck("value", formData.emails),
409
- message: (_body$ref$current$inn = (_body$ref = body.ref) === null || _body$ref === void 0 ? void 0 : _body$ref.current.innerHTML) !== null && _body$ref$current$inn !== void 0 ? _body$ref$current$inn : body,
408
+ message: (_body$ref$current$inn = body === null || body === void 0 || (_body$ref = body.ref) === null || _body$ref === void 0 || (_body$ref = _body$ref.current) === null || _body$ref === void 0 ? void 0 : _body$ref.innerHTML) !== null && _body$ref$current$inn !== void 0 ? _body$ref$current$inn : body,
410
409
  snippet: codeToDisplay
411
410
  });
412
411
  };
@@ -433,6 +432,7 @@ var CodeSnippet = function CodeSnippet(_ref) {
433
432
  validationSchema: getEmailWidgetSnippetValidationSchema(),
434
433
  onSubmit: handleSubmit,
435
434
  children: /*#__PURE__*/jsxRuntime.jsxs(formik.Form, {
435
+ className: "flex min-h-0 flex-1 flex-col",
436
436
  children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
437
437
  children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
438
438
  children: t("neetoMolecules.widget.email.title")
@@ -451,6 +451,8 @@ var CodeSnippet = function CodeSnippet(_ref) {
451
451
  name: "subject",
452
452
  type: "text"
453
453
  }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
454
+ as: "div",
455
+ className: "min-w-0 break-words [&_a]:inline [&_a]:break-all [&_a]:whitespace-normal [&_a_span]:inline",
454
456
  variant: "body2",
455
457
  children: body
456
458
  }), /*#__PURE__*/jsxRuntime.jsx(CodeBlock, _objectSpread$3({}, renderCodeBlockProps()))]
@@ -749,9 +751,7 @@ var EmbedCode$1 = function EmbedCode(_ref) {
749
751
  sendViaEmail: function sendViaEmail() {
750
752
  return handleSendViaEmail(EMAIL_TYPES.embedCode);
751
753
  },
752
- title: /*#__PURE__*/jsxRuntime.jsx("div", {
753
- children: t("neetoMolecules.widget.title.embedCode")
754
- })
754
+ title: t("neetoMolecules.widget.title.embedCode")
755
755
  })
756
756
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
757
757
  className: "w-full",