@bigbinary/neeto-molecules 5.3.17 → 5.3.19

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.
@@ -1,3 +1,4 @@
1
+ import { createRoot } from 'react-dom/client';
1
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -9,65 +10,63 @@ import { t } from 'i18next';
9
10
  import { mergeDeepLeft, uniq, concat } from 'ramda';
10
11
  import { UAParser } from 'ua-parser-js';
11
12
 
13
+ // Floor is set by Tailwind v4, which hardcodes its Lightning CSS targets to
14
+ // Safari/iOS 16.4, Chrome 111 and Firefox 128 and exposes no way to lower them.
15
+ // Below it the generated CSS (@property, oklch(), :has(), @container) is dropped
16
+ // by the parser with no error, so the app renders broken rather than degraded.
17
+ // Remaining engines are the first release built on an equivalent core.
12
18
  var DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS = {
13
19
  Chrome: {
14
- softLimit: 108,
15
- hardLimit: 70
20
+ softLimit: 111,
21
+ hardLimit: 111
22
+ },
23
+ MobileChrome: {
24
+ softLimit: 111,
25
+ hardLimit: 111
16
26
  },
17
27
  Edge: {
18
- softLimit: 108,
19
- hardLimit: 106
28
+ softLimit: 111,
29
+ hardLimit: 111
20
30
  },
21
31
  Firefox: {
22
- softLimit: 102,
23
- hardLimit: 90
24
- },
25
- IE: {
26
- softLimit: 11,
27
- hardLimit: 11
32
+ softLimit: 128,
33
+ hardLimit: 128
28
34
  },
29
- Opera: {
30
- softLimit: 93,
31
- hardLimit: 89
35
+ MobileFirefox: {
36
+ softLimit: 128,
37
+ hardLimit: 128
32
38
  },
33
39
  Safari: {
34
- softLimit: 11,
35
- hardLimit: 10
36
- },
37
- WebKit: {
38
- softLimit: 604,
39
- hardLimit: 600
40
- },
41
- MobileChrome: {
42
- softLimit: 109,
43
- hardLimit: 105
44
- },
45
- MobileFirefox: {
46
- softLimit: 109,
47
- hardLimit: 105
40
+ softLimit: 16.4,
41
+ hardLimit: 16.4
48
42
  },
49
43
  MobileSafari: {
50
- softLimit: 11,
51
- hardLimit: 10
44
+ softLimit: 16.4,
45
+ hardLimit: 16.4
52
46
  },
53
- UCBrowser: {
54
- softLimit: 13.4,
55
- hardLimit: 13.0
47
+ Opera: {
48
+ softLimit: 98,
49
+ hardLimit: 98
56
50
  },
57
51
  SamsungInternet: {
58
- softLimit: 18,
59
- hardLimit: 4
60
- },
61
- AndroidBrowser: {
62
- softLimit: 4,
63
- hardLimit: 3
52
+ softLimit: 22,
53
+ hardLimit: 22
64
54
  },
65
55
  Electron: {
66
- softLimit: 17,
67
- hardLimit: 16
56
+ softLimit: 24,
57
+ hardLimit: 24
58
+ },
59
+ // Safari freezes the WebKit build number in its UA (605.1.15 since Safari
60
+ // 12), so this cannot discriminate versions. Kept only to keep generic
61
+ // WebKit clients out of the unknown-browser branch.
62
+ WebKit: {
63
+ softLimit: 605,
64
+ hardLimit: 605
68
65
  }
69
66
  };
70
- var UNSUPPORTED_BROWSERS = ["OperaMini"];
67
+
68
+ // Engines that cannot reach the floor at any released version.
69
+ var UNSUPPORTED_BROWSERS = ["OperaMini", "IE", "UCBrowser", "AndroidBrowser"];
71
70
  var BROWSER_UPGRADE_PAGE_LINKS = {
72
71
  Chrome: "https://www.google.com/chrome/update",
73
72
  Edge: "https://support.microsoft.com/en-us/topic/microsoft-edge-update-settings-af8aaca2-1b69-4870-94fe-18822dbb7ef1#:~:text=Update%20once,Download%20and%20install%20to%20proceed",
@@ -87,6 +86,15 @@ var TYPES = {
87
86
  MOBILE: "mobile"
88
87
  };
89
88
 
89
+ // Where mount() looks for the app root, so the gate can take the same element
90
+ // before the app chunk is imported.
91
+ var DEFAULT_MOUNT_SELECTOR = "[data-react-class]";
92
+
93
+ // The page loader rendered by shared/_page_loader in neeto-commons-backend. It
94
+ // sits outside the react root, so blocking has to take it down explicitly or it
95
+ // keeps spinning over the message.
96
+ var DEFAULT_LOADER_SELECTOR = "#neeto-page-loader";
97
+
90
98
  var _excluded = ["children"];
91
99
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
92
100
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -111,7 +119,7 @@ var ContactUs = function ContactUs(_ref) {
111
119
  i18nKey: "neetoMolecules.browserSupport.contactUs.main",
112
120
  components: {
113
121
  button: /*#__PURE__*/jsx("button", {
114
- className: classnames("text-primary hover:underline", className),
122
+ className: classnames("text-primary cursor-pointer underline underline-offset-2", className),
115
123
  onClick: function onClick() {
116
124
  var _window$NeetoChat, _window$NeetoChat2;
117
125
  (_window$NeetoChat = window.NeetoChat) === null || _window$NeetoChat === void 0 || (_window$NeetoChat = _window$NeetoChat.contextualHelp) === null || _window$NeetoChat === void 0 || _window$NeetoChat.maximizeWidget();
@@ -127,13 +135,17 @@ var DownloadLink = function DownloadLink(_ref) {
127
135
  className = _ref$className === void 0 ? "" : _ref$className,
128
136
  link = _ref.link;
129
137
  return /*#__PURE__*/jsx(Trans, {
138
+ i18nKey: "neetoMolecules.browserSupport.downloadLink.main",
130
139
  components: {
131
- button: /*#__PURE__*/jsx("a", {
132
- className: className,
133
- href: link
140
+ // Not every engine has an upgrade page to point at: an Electron client is
141
+ // updated by whoever ships it. Render the words rather than a dead link.
142
+ button: link ? /*#__PURE__*/jsx("a", {
143
+ href: link,
144
+ className: classnames("text-primary cursor-pointer underline underline-offset-2", className)
145
+ }) : /*#__PURE__*/jsx("span", {
146
+ className: className
134
147
  })
135
- },
136
- i18nKey: "neetoMolecules.browserSupport.downloadLink.main"
148
+ }
137
149
  });
138
150
  };
139
151
 
@@ -301,6 +313,25 @@ var isBrowserUnsupported = function isBrowserUnsupported(browserName, unsupporte
301
313
  var isBrowserSupported = function isBrowserSupported(browserName, supportedBrowserVersionsMap) {
302
314
  return !!supportedBrowserVersionsMap[convertToPlatformBrowserName(browserName)];
303
315
  };
316
+
317
+ /*
318
+ Mirrors the branches of the BrowserSupport render ladder that swallow their
319
+ children. Kept beside getBrowserStatus so a caller can learn the verdict without
320
+ rendering, and covered by a test asserting it agrees with what the component
321
+ actually renders.
322
+ */
323
+ var isBrowserBlocked = function isBrowserBlocked(_ref) {
324
+ var browserType = _ref.browserType,
325
+ deviceType = _ref.deviceType,
326
+ isUnsupportedBrowser = _ref.isUnsupportedBrowser,
327
+ isKnownBrowser = _ref.isKnownBrowser,
328
+ isBrowserFullySupported = _ref.isBrowserFullySupported,
329
+ isBrowserPartiallySupported = _ref.isBrowserPartiallySupported;
330
+ if (browserType === TYPES.INAPP || deviceType === TYPES.MOBILE) return false;
331
+ if (isUnsupportedBrowser) return true;
332
+ if (!isKnownBrowser) return false;
333
+ return !isBrowserFullySupported && !isBrowserPartiallySupported;
334
+ };
304
335
  var getBrowserStatus = function getBrowserStatus(overrides, additionalUnsupported) {
305
336
  var _UAParser$getResult = new UAParser(navigator.userAgent).getResult(),
306
337
  browser = _UAParser$getResult.browser,
@@ -314,12 +345,12 @@ var getBrowserStatus = function getBrowserStatus(overrides, additionalUnsupporte
314
345
  var isUnsupportedBrowser = isBrowserUnsupported(browserName, unsupportedBrowsersList);
315
346
  var isKnownBrowser = isBrowserSupported(browserName, supportedBrowserVersionsMap);
316
347
  var requiredMinBrowserVersion = isKnownBrowser ? getRequiredMinBrowserVersion(browserName, supportedBrowserVersionsMap) : null;
317
- var _ref = isKnownBrowser ? isVersionSupported(browserVersion, requiredMinBrowserVersion) : {
348
+ var _ref2 = isKnownBrowser ? isVersionSupported(browserVersion, requiredMinBrowserVersion) : {
318
349
  isBrowserFullySupported: false,
319
350
  isBrowserPartiallySupported: false
320
351
  },
321
- isBrowserFullySupported = _ref.isBrowserFullySupported,
322
- isBrowserPartiallySupported = _ref.isBrowserPartiallySupported;
352
+ isBrowserFullySupported = _ref2.isBrowserFullySupported,
353
+ isBrowserPartiallySupported = _ref2.isBrowserPartiallySupported;
323
354
  var downloadPageLink = isKnownBrowser ? buildDownloadPageLink(browserName) : null;
324
355
  return {
325
356
  browserName: browserName,
@@ -389,6 +420,40 @@ var BrowserSupport = function BrowserSupport(_ref) {
389
420
  requiredMinBrowserVersion: requiredMinBrowserVersion
390
421
  });
391
422
  };
423
+ /*
424
+ Renders the unsupported-browser page ahead of the app, and reports whether the
425
+ app should be mounted at all.
426
+
427
+ Products mount BrowserSupport inside their React tree, which cannot help when
428
+ the browser is old enough that the app chunk fails to parse: the dynamic import
429
+ rejects and React never renders, so the user gets a blank page instead of an
430
+ explanation. Call this from the pack, before mount(), where only the entry
431
+ chunk has had to parse.
432
+
433
+ Returns true when the browser was blocked and the app must not be mounted.
434
+ */
435
+ var renderBrowserSupportGate = function renderBrowserSupportGate() {
436
+ var _document$querySelect;
437
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
438
+ _ref2$overrides = _ref2.overrides,
439
+ overrides = _ref2$overrides === void 0 ? {} : _ref2$overrides,
440
+ _ref2$unsupportedBrow = _ref2.unsupportedBrowsers,
441
+ unsupportedBrowsers = _ref2$unsupportedBrow === void 0 ? [] : _ref2$unsupportedBrow,
442
+ element = _ref2.element,
443
+ _ref2$loaderSelector = _ref2.loaderSelector,
444
+ loaderSelector = _ref2$loaderSelector === void 0 ? DEFAULT_LOADER_SELECTOR : _ref2$loaderSelector;
445
+ var target = element !== null && element !== void 0 ? element : document.querySelector(DEFAULT_MOUNT_SELECTOR);
446
+ if (!target) return false;
447
+ if (!isBrowserBlocked(getBrowserStatus(overrides, unsupportedBrowsers))) {
448
+ return false;
449
+ }
450
+ (_document$querySelect = document.querySelector(loaderSelector)) === null || _document$querySelect === void 0 || _document$querySelect.remove();
451
+ createRoot(target).render(/*#__PURE__*/jsx(BrowserSupport, {
452
+ overrides: overrides,
453
+ unsupportedBrowsers: unsupportedBrowsers
454
+ }));
455
+ return true;
456
+ };
392
457
 
393
- export { BrowserSupport as default };
458
+ export { BrowserSupport as default, renderBrowserSupportGate };
394
459
  //# sourceMappingURL=BrowserSupport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserSupport.js","sources":["../../src/v2/components/BrowserSupport/constants.js","../../src/v2/components/BrowserSupport/Callout.jsx","../../src/v2/components/BrowserSupport/ContactUs.jsx","../../src/v2/components/BrowserSupport/DownloadLink.jsx","../../src/v2/components/BrowserSupport/UnsupportedVersionMessage.jsx","../../src/v2/components/BrowserSupport/PartialSupportedBrowserVersion.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowserMessage.jsx","../../src/v2/components/BrowserSupport/UnknownBrowser.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowser.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowserVersion.jsx","../../src/v2/components/BrowserSupport/utils.js","../../src/v2/components/BrowserSupport/index.jsx"],"sourcesContent":["export const DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS = {\n Chrome: { softLimit: 108, hardLimit: 70 },\n Edge: { softLimit: 108, hardLimit: 106 },\n Firefox: { softLimit: 102, hardLimit: 90 },\n IE: { softLimit: 11, hardLimit: 11 },\n Opera: { softLimit: 93, hardLimit: 89 },\n Safari: { softLimit: 11, hardLimit: 10 },\n WebKit: { softLimit: 604, hardLimit: 600 },\n MobileChrome: { softLimit: 109, hardLimit: 105 },\n MobileFirefox: { softLimit: 109, hardLimit: 105 },\n MobileSafari: { softLimit: 11, hardLimit: 10 },\n UCBrowser: { softLimit: 13.4, hardLimit: 13.0 },\n SamsungInternet: { softLimit: 18, hardLimit: 4 },\n AndroidBrowser: { softLimit: 4, hardLimit: 3 },\n Electron: { softLimit: 17, hardLimit: 16 },\n};\n\nexport const UNSUPPORTED_BROWSERS = [\"OperaMini\"];\n\nexport const BROWSER_UPGRADE_PAGE_LINKS = {\n Chrome: \"https://www.google.com/chrome/update\",\n Edge: \"https://support.microsoft.com/en-us/topic/microsoft-edge-update-settings-af8aaca2-1b69-4870-94fe-18822dbb7ef1#:~:text=Update%20once,Download%20and%20install%20to%20proceed\",\n Firefox: \"https://support.mozilla.org/en-US/kb/update-firefox-latest-release\",\n IE: \"https://support.microsoft.com/en-us/topic/microsoft-edge-update-settings-af8aaca2-1b69-4870-94fe-18822dbb7ef1#:~:text=Update%20once,Download%20and%20install%20to%20proceed\",\n Opera: \"https://help.opera.com/en/latest/crashes-and-issues/#updateBrowser\",\n Safari: \"https://support.apple.com/HT204416\",\n WebKit: \"https://support.apple.com/HT204204\",\n MobileChrome:\n \"https://play.google.com/store/apps/details?id=com.android.chrome&hl=en_IN&gl=US\",\n MobileFirefox:\n \"https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=en_IN&gl=US\",\n MobileSafari: \"https://support.apple.com/HT204416\",\n UCBrowser:\n \"https://play.google.com/store/apps/details?id=com.UCMobile.intl&hl=en_IN&gl=US\",\n SamsungInternet:\n \"https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser&hl=en_IN&gl=US\",\n};\n\nexport const TYPES = { INAPP: \"inapp\", MOBILE: \"mobile\" };\n","const Callout = ({ children, ...props }) => (\n <div\n className=\"bg-error flex justify-center px-2.5 py-1 leading-relaxed\"\n data-testid=\"browser-support-callout\"\n {...props}\n >\n <p className=\"text-error-foreground text-center text-sm\">{children}</p>\n </div>\n);\n\nexport default Callout;\n","import classnames from \"classnames\";\nimport { Trans } from \"react-i18next\";\n\nconst ContactUs = ({ className = \"\" }) => (\n <Trans\n i18nKey=\"neetoMolecules.browserSupport.contactUs.main\"\n components={{\n button: (\n <button\n className={classnames(\"text-primary hover:underline\", className)}\n onClick={() => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n }}\n />\n ),\n }}\n />\n);\n\nexport default ContactUs;\n","import { Trans } from \"react-i18next\";\n\nconst DownloadLink = ({ className = \"\", link }) => (\n <Trans\n components={{ button: <a {...{ className }} href={link} /> }}\n i18nKey=\"neetoMolecules.browserSupport.downloadLink.main\"\n />\n);\n\nexport default DownloadLink;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport ContactUs from \"./ContactUs\";\nimport DownloadLink from \"./DownloadLink\";\n\nconst UnsupportedVersionMessage = ({\n browserName,\n browserVersion,\n className = \"\",\n downloadPageLink,\n requiredMinBrowserVersion,\n}) => (\n <Trans\n i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowserVersion.description\"\n components={{\n downloadLink: <DownloadLink {...{ className }} link={downloadPageLink} />,\n contactUs: <ContactUs {...{ className }} />,\n }}\n values={{\n browserName,\n browserVersion,\n requiredMinBrowserVersion: requiredMinBrowserVersion?.softLimit,\n }}\n />\n);\n\nexport default memo(UnsupportedVersionMessage);\n","import Callout from \"./Callout\";\nimport UnsupportedVersionMessage from \"./UnsupportedVersionMessage\";\n\nexport const PartialSupportedBrowserVersion = ({\n browserName,\n browserVersion,\n requiredMinBrowserVersion,\n downloadPageLink,\n children,\n}) => (\n <>\n <Callout>\n <UnsupportedVersionMessage\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n </Callout>\n {children}\n </>\n);\n\nexport default PartialSupportedBrowserVersion;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport ContactUs from \"./ContactUs\";\n\nconst UnsupportedBrowserMessage = ({\n browserName,\n browserVersion,\n className = \"\",\n}) => (\n <Trans\n components={{ contactUs: <ContactUs {...{ className }} /> }}\n i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowser.description\"\n values={{ browserName, browserVersion }}\n />\n);\n\nexport default memo(UnsupportedBrowserMessage);\n","import Callout from \"./Callout\";\nimport UnsupportedBrowserMessage from \"./UnsupportedBrowserMessage\";\n\nconst UnknownBrowser = ({ browserName, browserVersion, children }) => (\n <>\n <Callout>\n <UnsupportedBrowserMessage {...{ browserName, browserVersion }} />\n </Callout>\n {children}\n </>\n);\n\nexport default UnknownBrowser;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport UnsupportedBrowserMessage from \"./UnsupportedBrowserMessage\";\n\nconst UnsupportedBrowser = ({ browserName, browserVersion }) => (\n <div\n className=\"bg-background flex h-dvh flex-col items-center justify-center overflow-y-auto\"\n data-testid=\"browser-support-page\"\n >\n <div className=\"flex w-[45rem] max-w-full flex-col items-center justify-center px-4\">\n <h1 className=\"text-foreground mb-2 text-2xl\">\n <Trans i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowser.title\" />\n </h1>\n <p className=\"text-foreground mb-4 text-center text-base leading-relaxed\">\n <UnsupportedBrowserMessage\n {...{ browserName, browserVersion }}\n className=\"text-base\"\n />\n </p>\n </div>\n </div>\n);\n\nexport default memo(UnsupportedBrowser);\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport UnsupportedVersionMessage from \"./UnsupportedVersionMessage\";\n\nconst UnsupportedBrowserVersion = ({\n browserName,\n browserVersion,\n requiredMinBrowserVersion,\n downloadPageLink,\n}) => (\n <div\n className=\"bg-background flex h-dvh flex-col items-center justify-center overflow-y-auto\"\n data-testid=\"browser-support-page\"\n >\n <div className=\"flex w-[45rem] max-w-full flex-col items-center justify-center px-4\">\n <h1 className=\"text-foreground mb-2 text-2xl\">\n <Trans i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowserVersion.title\" />\n </h1>\n <p className=\"text-foreground mb-4 text-center text-base leading-relaxed\">\n <UnsupportedVersionMessage\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n </p>\n </div>\n </div>\n);\n\nexport default memo(UnsupportedBrowserVersion);\n","import { t } from \"i18next\";\nimport { concat, mergeDeepLeft, uniq } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nimport {\n BROWSER_UPGRADE_PAGE_LINKS,\n DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS,\n UNSUPPORTED_BROWSERS,\n} from \"./constants\";\n\nconst convertToPlatformBrowserName = browserName =>\n browserName.replace(/\\s/g, \"\");\n\nconst getRequiredMinBrowserVersion = (\n browserName,\n supportedBrowserVersionsMap\n) => supportedBrowserVersionsMap[convertToPlatformBrowserName(browserName)];\n\nconst convertSemverToFloat = browserVersion => {\n const [majorVersion, minorVersion] = browserVersion.split(\".\");\n\n return parseFloat(`${majorVersion}.${minorVersion}`) || \"\";\n};\n\nconst isVersionSupported = (browserVersion, requiredMinBrowserVersion) => {\n const isBrowserFullySupported =\n browserVersion >= requiredMinBrowserVersion?.softLimit;\n\n const isBrowserPartiallySupported =\n browserVersion >= requiredMinBrowserVersion?.hardLimit;\n\n return { isBrowserFullySupported, isBrowserPartiallySupported };\n};\n\nconst buildDownloadPageLink = browserName =>\n BROWSER_UPGRADE_PAGE_LINKS[convertToPlatformBrowserName(browserName)];\n\nconst isBrowserUnsupported = (browserName, unsupportedBrowsersList) =>\n unsupportedBrowsersList.includes(convertToPlatformBrowserName(browserName));\n\nconst isBrowserSupported = (browserName, supportedBrowserVersionsMap) =>\n !!supportedBrowserVersionsMap[convertToPlatformBrowserName(browserName)];\n\nexport const getBrowserStatus = (overrides, additionalUnsupported) => {\n const { browser, device } = new UAParser(navigator.userAgent).getResult();\n\n const browserName =\n browser.name || t(\"neetoMolecules.browserSupport.unknownBrowserMsg\");\n const browserVersion = convertSemverToFloat(browser.version || \"\");\n const browserType = browser.type;\n const deviceType = device.type;\n\n const supportedBrowserVersionsMap = mergeDeepLeft(\n overrides,\n DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS\n );\n\n const unsupportedBrowsersList = uniq(\n concat(UNSUPPORTED_BROWSERS, additionalUnsupported)\n );\n\n const isUnsupportedBrowser = isBrowserUnsupported(\n browserName,\n unsupportedBrowsersList\n );\n\n const isKnownBrowser = isBrowserSupported(\n browserName,\n supportedBrowserVersionsMap\n );\n\n const requiredMinBrowserVersion = isKnownBrowser\n ? getRequiredMinBrowserVersion(browserName, supportedBrowserVersionsMap)\n : null;\n\n const { isBrowserFullySupported, isBrowserPartiallySupported } =\n isKnownBrowser\n ? isVersionSupported(browserVersion, requiredMinBrowserVersion)\n : { isBrowserFullySupported: false, isBrowserPartiallySupported: false };\n\n const downloadPageLink = isKnownBrowser\n ? buildDownloadPageLink(browserName)\n : null;\n\n return {\n browserName,\n browserVersion,\n browserType,\n deviceType,\n isUnsupportedBrowser,\n isKnownBrowser,\n requiredMinBrowserVersion,\n isBrowserFullySupported,\n isBrowserPartiallySupported,\n downloadPageLink,\n };\n};\n","import PropTypes from \"prop-types\";\n\nimport { TYPES } from \"./constants\";\nimport PartialSupportedBrowserVersion from \"./PartialSupportedBrowserVersion\";\nimport UnknownBrowser from \"./UnknownBrowser\";\nimport UnsupportedBrowser from \"./UnsupportedBrowser\";\nimport UnsupportedBrowserVersion from \"./UnsupportedBrowserVersion\";\nimport { getBrowserStatus } from \"./utils\";\n\nconst BrowserSupport = ({\n overrides = {},\n unsupportedBrowsers = [],\n children,\n}) => {\n const {\n browserName,\n browserVersion,\n browserType,\n deviceType,\n isUnsupportedBrowser,\n isKnownBrowser,\n isBrowserFullySupported,\n isBrowserPartiallySupported,\n requiredMinBrowserVersion,\n downloadPageLink,\n } = getBrowserStatus(overrides, unsupportedBrowsers);\n\n if (browserType === TYPES.INAPP || deviceType === TYPES.MOBILE) {\n return <>{children}</>;\n }\n\n if (isUnsupportedBrowser) {\n return <UnsupportedBrowser {...{ browserName, browserVersion }} />;\n }\n\n if (!isKnownBrowser) {\n return (\n <UnknownBrowser {...{ browserName, browserVersion }}>\n {children}\n </UnknownBrowser>\n );\n }\n\n if (isBrowserFullySupported) return <>{children}</>;\n\n if (isBrowserPartiallySupported) {\n return (\n <PartialSupportedBrowserVersion\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n >\n {children}\n </PartialSupportedBrowserVersion>\n );\n }\n\n return (\n <UnsupportedBrowserVersion\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n );\n};\n\nBrowserSupport.propTypes = {\n /**\n * To override the default minimum supported versions of the browsers.\n */\n overrides: PropTypes.shape({\n Chrome: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Edge: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Firefox: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n IE: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Opera: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Safari: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n AndroidBrowser: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n OperaMini: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n MobileChrome: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n MobileFirefox: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n UCBrowser: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n SamsungInternet: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n }),\n /**\n * To add more browsers to the list of unsupported browsers\n */\n unsupportedBrowsers: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default BrowserSupport;\n"],"names":["DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS","Chrome","softLimit","hardLimit","Edge","Firefox","IE","Opera","Safari","WebKit","MobileChrome","MobileFirefox","MobileSafari","UCBrowser","SamsungInternet","AndroidBrowser","Electron","UNSUPPORTED_BROWSERS","BROWSER_UPGRADE_PAGE_LINKS","TYPES","INAPP","MOBILE","Callout","_ref","children","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","ContactUs","_ref$className","Trans","i18nKey","components","button","classnames","onClick","_window$NeetoChat","_window$NeetoChat2","window","NeetoChat","contextualHelp","maximizeWidget","openWidget","DownloadLink","link","href","UnsupportedVersionMessage","browserName","browserVersion","downloadPageLink","requiredMinBrowserVersion","downloadLink","contactUs","values","memo","PartialSupportedBrowserVersion","_jsxs","_Fragment","UnsupportedBrowserMessage","UnknownBrowser","UnsupportedBrowser","UnsupportedBrowserVersion","convertToPlatformBrowserName","replace","getRequiredMinBrowserVersion","supportedBrowserVersionsMap","convertSemverToFloat","_browserVersion$split","split","_browserVersion$split2","_slicedToArray","majorVersion","minorVersion","parseFloat","concat","isVersionSupported","isBrowserFullySupported","isBrowserPartiallySupported","buildDownloadPageLink","isBrowserUnsupported","unsupportedBrowsersList","includes","isBrowserSupported","getBrowserStatus","overrides","additionalUnsupported","_UAParser$getResult","UAParser","navigator","userAgent","getResult","browser","device","name","t","version","browserType","type","deviceType","mergeDeepLeft","uniq","isUnsupportedBrowser","isKnownBrowser","BrowserSupport","_ref$overrides","_ref$unsupportedBrows","unsupportedBrowsers","_getBrowserStatus"],"mappings":"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"}
1
+ {"version":3,"file":"BrowserSupport.js","sources":["../../src/v2/components/BrowserSupport/constants.js","../../src/v2/components/BrowserSupport/Callout.jsx","../../src/v2/components/BrowserSupport/ContactUs.jsx","../../src/v2/components/BrowserSupport/DownloadLink.jsx","../../src/v2/components/BrowserSupport/UnsupportedVersionMessage.jsx","../../src/v2/components/BrowserSupport/PartialSupportedBrowserVersion.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowserMessage.jsx","../../src/v2/components/BrowserSupport/UnknownBrowser.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowser.jsx","../../src/v2/components/BrowserSupport/UnsupportedBrowserVersion.jsx","../../src/v2/components/BrowserSupport/utils.js","../../src/v2/components/BrowserSupport/index.jsx"],"sourcesContent":["// Floor is set by Tailwind v4, which hardcodes its Lightning CSS targets to\n// Safari/iOS 16.4, Chrome 111 and Firefox 128 and exposes no way to lower them.\n// Below it the generated CSS (@property, oklch(), :has(), @container) is dropped\n// by the parser with no error, so the app renders broken rather than degraded.\n// Remaining engines are the first release built on an equivalent core.\nexport const DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS = {\n Chrome: { softLimit: 111, hardLimit: 111 },\n MobileChrome: { softLimit: 111, hardLimit: 111 },\n Edge: { softLimit: 111, hardLimit: 111 },\n Firefox: { softLimit: 128, hardLimit: 128 },\n MobileFirefox: { softLimit: 128, hardLimit: 128 },\n Safari: { softLimit: 16.4, hardLimit: 16.4 },\n MobileSafari: { softLimit: 16.4, hardLimit: 16.4 },\n Opera: { softLimit: 98, hardLimit: 98 },\n SamsungInternet: { softLimit: 22, hardLimit: 22 },\n Electron: { softLimit: 24, hardLimit: 24 },\n // Safari freezes the WebKit build number in its UA (605.1.15 since Safari\n // 12), so this cannot discriminate versions. Kept only to keep generic\n // WebKit clients out of the unknown-browser branch.\n WebKit: { softLimit: 605, hardLimit: 605 },\n};\n\n// Engines that cannot reach the floor at any released version.\nexport const UNSUPPORTED_BROWSERS = [\n \"OperaMini\",\n \"IE\",\n \"UCBrowser\",\n \"AndroidBrowser\",\n];\n\nexport const BROWSER_UPGRADE_PAGE_LINKS = {\n Chrome: \"https://www.google.com/chrome/update\",\n Edge: \"https://support.microsoft.com/en-us/topic/microsoft-edge-update-settings-af8aaca2-1b69-4870-94fe-18822dbb7ef1#:~:text=Update%20once,Download%20and%20install%20to%20proceed\",\n Firefox: \"https://support.mozilla.org/en-US/kb/update-firefox-latest-release\",\n IE: \"https://support.microsoft.com/en-us/topic/microsoft-edge-update-settings-af8aaca2-1b69-4870-94fe-18822dbb7ef1#:~:text=Update%20once,Download%20and%20install%20to%20proceed\",\n Opera: \"https://help.opera.com/en/latest/crashes-and-issues/#updateBrowser\",\n Safari: \"https://support.apple.com/HT204416\",\n WebKit: \"https://support.apple.com/HT204204\",\n MobileChrome:\n \"https://play.google.com/store/apps/details?id=com.android.chrome&hl=en_IN&gl=US\",\n MobileFirefox:\n \"https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=en_IN&gl=US\",\n MobileSafari: \"https://support.apple.com/HT204416\",\n UCBrowser:\n \"https://play.google.com/store/apps/details?id=com.UCMobile.intl&hl=en_IN&gl=US\",\n SamsungInternet:\n \"https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser&hl=en_IN&gl=US\",\n};\n\nexport const TYPES = { INAPP: \"inapp\", MOBILE: \"mobile\" };\n\n// Where mount() looks for the app root, so the gate can take the same element\n// before the app chunk is imported.\nexport const DEFAULT_MOUNT_SELECTOR = \"[data-react-class]\";\n\n// The page loader rendered by shared/_page_loader in neeto-commons-backend. It\n// sits outside the react root, so blocking has to take it down explicitly or it\n// keeps spinning over the message.\nexport const DEFAULT_LOADER_SELECTOR = \"#neeto-page-loader\";\n","const Callout = ({ children, ...props }) => (\n <div\n className=\"bg-error flex justify-center px-2.5 py-1 leading-relaxed\"\n data-testid=\"browser-support-callout\"\n {...props}\n >\n <p className=\"text-error-foreground text-center text-sm\">{children}</p>\n </div>\n);\n\nexport default Callout;\n","import classnames from \"classnames\";\nimport { Trans } from \"react-i18next\";\n\nconst ContactUs = ({ className = \"\" }) => (\n <Trans\n i18nKey=\"neetoMolecules.browserSupport.contactUs.main\"\n components={{\n button: (\n <button\n className={classnames(\n \"text-primary cursor-pointer underline underline-offset-2\",\n className\n )}\n onClick={() => {\n window.NeetoChat?.contextualHelp?.maximizeWidget();\n window.NeetoChat?.contextualHelp?.openWidget();\n }}\n />\n ),\n }}\n />\n);\n\nexport default ContactUs;\n","import classnames from \"classnames\";\nimport { Trans } from \"react-i18next\";\n\nconst DownloadLink = ({ className = \"\", link }) => (\n <Trans\n i18nKey=\"neetoMolecules.browserSupport.downloadLink.main\"\n components={{\n // Not every engine has an upgrade page to point at: an Electron client is\n // updated by whoever ships it. Render the words rather than a dead link.\n button: link ? (\n <a\n href={link}\n className={classnames(\n \"text-primary cursor-pointer underline underline-offset-2\",\n className\n )}\n />\n ) : (\n <span {...{ className }} />\n ),\n }}\n />\n);\n\nexport default DownloadLink;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport ContactUs from \"./ContactUs\";\nimport DownloadLink from \"./DownloadLink\";\n\nconst UnsupportedVersionMessage = ({\n browserName,\n browserVersion,\n className = \"\",\n downloadPageLink,\n requiredMinBrowserVersion,\n}) => (\n <Trans\n i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowserVersion.description\"\n components={{\n downloadLink: <DownloadLink {...{ className }} link={downloadPageLink} />,\n contactUs: <ContactUs {...{ className }} />,\n }}\n values={{\n browserName,\n browserVersion,\n requiredMinBrowserVersion: requiredMinBrowserVersion?.softLimit,\n }}\n />\n);\n\nexport default memo(UnsupportedVersionMessage);\n","import Callout from \"./Callout\";\nimport UnsupportedVersionMessage from \"./UnsupportedVersionMessage\";\n\nexport const PartialSupportedBrowserVersion = ({\n browserName,\n browserVersion,\n requiredMinBrowserVersion,\n downloadPageLink,\n children,\n}) => (\n <>\n <Callout>\n <UnsupportedVersionMessage\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n </Callout>\n {children}\n </>\n);\n\nexport default PartialSupportedBrowserVersion;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport ContactUs from \"./ContactUs\";\n\nconst UnsupportedBrowserMessage = ({\n browserName,\n browserVersion,\n className = \"\",\n}) => (\n <Trans\n components={{ contactUs: <ContactUs {...{ className }} /> }}\n i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowser.description\"\n values={{ browserName, browserVersion }}\n />\n);\n\nexport default memo(UnsupportedBrowserMessage);\n","import Callout from \"./Callout\";\nimport UnsupportedBrowserMessage from \"./UnsupportedBrowserMessage\";\n\nconst UnknownBrowser = ({ browserName, browserVersion, children }) => (\n <>\n <Callout>\n <UnsupportedBrowserMessage {...{ browserName, browserVersion }} />\n </Callout>\n {children}\n </>\n);\n\nexport default UnknownBrowser;\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport UnsupportedBrowserMessage from \"./UnsupportedBrowserMessage\";\n\nconst UnsupportedBrowser = ({ browserName, browserVersion }) => (\n <div\n className=\"bg-background flex h-dvh flex-col items-center justify-center overflow-y-auto\"\n data-testid=\"browser-support-page\"\n >\n <div className=\"flex w-[45rem] max-w-full flex-col items-center justify-center px-4\">\n <h1 className=\"text-foreground mb-2 text-2xl\">\n <Trans i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowser.title\" />\n </h1>\n <p className=\"text-foreground mb-4 text-center text-base leading-relaxed\">\n <UnsupportedBrowserMessage\n {...{ browserName, browserVersion }}\n className=\"text-base\"\n />\n </p>\n </div>\n </div>\n);\n\nexport default memo(UnsupportedBrowser);\n","import { memo } from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport UnsupportedVersionMessage from \"./UnsupportedVersionMessage\";\n\nconst UnsupportedBrowserVersion = ({\n browserName,\n browserVersion,\n requiredMinBrowserVersion,\n downloadPageLink,\n}) => (\n <div\n className=\"bg-background flex h-dvh flex-col items-center justify-center overflow-y-auto\"\n data-testid=\"browser-support-page\"\n >\n <div className=\"flex w-[45rem] max-w-full flex-col items-center justify-center px-4\">\n <h1 className=\"text-foreground mb-2 text-2xl\">\n <Trans i18nKey=\"neetoMolecules.browserSupport.unsupportedBrowserVersion.title\" />\n </h1>\n <p className=\"text-foreground mb-4 text-center text-base leading-relaxed\">\n <UnsupportedVersionMessage\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n </p>\n </div>\n </div>\n);\n\nexport default memo(UnsupportedBrowserVersion);\n","import { t } from \"i18next\";\nimport { concat, mergeDeepLeft, uniq } from \"ramda\";\nimport { UAParser } from \"ua-parser-js\";\n\nimport {\n BROWSER_UPGRADE_PAGE_LINKS,\n DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS,\n TYPES,\n UNSUPPORTED_BROWSERS,\n} from \"./constants\";\n\nconst convertToPlatformBrowserName = browserName =>\n browserName.replace(/\\s/g, \"\");\n\nconst getRequiredMinBrowserVersion = (\n browserName,\n supportedBrowserVersionsMap\n) => supportedBrowserVersionsMap[convertToPlatformBrowserName(browserName)];\n\nconst convertSemverToFloat = browserVersion => {\n const [majorVersion, minorVersion] = browserVersion.split(\".\");\n\n return parseFloat(`${majorVersion}.${minorVersion}`) || \"\";\n};\n\nconst isVersionSupported = (browserVersion, requiredMinBrowserVersion) => {\n const isBrowserFullySupported =\n browserVersion >= requiredMinBrowserVersion?.softLimit;\n\n const isBrowserPartiallySupported =\n browserVersion >= requiredMinBrowserVersion?.hardLimit;\n\n return { isBrowserFullySupported, isBrowserPartiallySupported };\n};\n\nconst buildDownloadPageLink = browserName =>\n BROWSER_UPGRADE_PAGE_LINKS[convertToPlatformBrowserName(browserName)];\n\nconst isBrowserUnsupported = (browserName, unsupportedBrowsersList) =>\n unsupportedBrowsersList.includes(convertToPlatformBrowserName(browserName));\n\nconst isBrowserSupported = (browserName, supportedBrowserVersionsMap) =>\n !!supportedBrowserVersionsMap[convertToPlatformBrowserName(browserName)];\n\n/*\nMirrors the branches of the BrowserSupport render ladder that swallow their\nchildren. Kept beside getBrowserStatus so a caller can learn the verdict without\nrendering, and covered by a test asserting it agrees with what the component\nactually renders.\n*/\nexport const isBrowserBlocked = ({\n browserType,\n deviceType,\n isUnsupportedBrowser,\n isKnownBrowser,\n isBrowserFullySupported,\n isBrowserPartiallySupported,\n}) => {\n if (browserType === TYPES.INAPP || deviceType === TYPES.MOBILE) return false;\n\n if (isUnsupportedBrowser) return true;\n\n if (!isKnownBrowser) return false;\n\n return !isBrowserFullySupported && !isBrowserPartiallySupported;\n};\n\nexport const getBrowserStatus = (overrides, additionalUnsupported) => {\n const { browser, device } = new UAParser(navigator.userAgent).getResult();\n\n const browserName =\n browser.name || t(\"neetoMolecules.browserSupport.unknownBrowserMsg\");\n const browserVersion = convertSemverToFloat(browser.version || \"\");\n const browserType = browser.type;\n const deviceType = device.type;\n\n const supportedBrowserVersionsMap = mergeDeepLeft(\n overrides,\n DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS\n );\n\n const unsupportedBrowsersList = uniq(\n concat(UNSUPPORTED_BROWSERS, additionalUnsupported)\n );\n\n const isUnsupportedBrowser = isBrowserUnsupported(\n browserName,\n unsupportedBrowsersList\n );\n\n const isKnownBrowser = isBrowserSupported(\n browserName,\n supportedBrowserVersionsMap\n );\n\n const requiredMinBrowserVersion = isKnownBrowser\n ? getRequiredMinBrowserVersion(browserName, supportedBrowserVersionsMap)\n : null;\n\n const { isBrowserFullySupported, isBrowserPartiallySupported } =\n isKnownBrowser\n ? isVersionSupported(browserVersion, requiredMinBrowserVersion)\n : { isBrowserFullySupported: false, isBrowserPartiallySupported: false };\n\n const downloadPageLink = isKnownBrowser\n ? buildDownloadPageLink(browserName)\n : null;\n\n return {\n browserName,\n browserVersion,\n browserType,\n deviceType,\n isUnsupportedBrowser,\n isKnownBrowser,\n requiredMinBrowserVersion,\n isBrowserFullySupported,\n isBrowserPartiallySupported,\n downloadPageLink,\n };\n};\n","import PropTypes from \"prop-types\";\nimport { createRoot } from \"react-dom/client\";\n\nimport {\n DEFAULT_LOADER_SELECTOR,\n DEFAULT_MOUNT_SELECTOR,\n TYPES,\n} from \"./constants\";\nimport PartialSupportedBrowserVersion from \"./PartialSupportedBrowserVersion\";\nimport UnknownBrowser from \"./UnknownBrowser\";\nimport UnsupportedBrowser from \"./UnsupportedBrowser\";\nimport UnsupportedBrowserVersion from \"./UnsupportedBrowserVersion\";\nimport { getBrowserStatus, isBrowserBlocked } from \"./utils\";\n\nconst BrowserSupport = ({\n overrides = {},\n unsupportedBrowsers = [],\n children,\n}) => {\n const {\n browserName,\n browserVersion,\n browserType,\n deviceType,\n isUnsupportedBrowser,\n isKnownBrowser,\n isBrowserFullySupported,\n isBrowserPartiallySupported,\n requiredMinBrowserVersion,\n downloadPageLink,\n } = getBrowserStatus(overrides, unsupportedBrowsers);\n\n if (browserType === TYPES.INAPP || deviceType === TYPES.MOBILE) {\n return <>{children}</>;\n }\n\n if (isUnsupportedBrowser) {\n return <UnsupportedBrowser {...{ browserName, browserVersion }} />;\n }\n\n if (!isKnownBrowser) {\n return (\n <UnknownBrowser {...{ browserName, browserVersion }}>\n {children}\n </UnknownBrowser>\n );\n }\n\n if (isBrowserFullySupported) return <>{children}</>;\n\n if (isBrowserPartiallySupported) {\n return (\n <PartialSupportedBrowserVersion\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n >\n {children}\n </PartialSupportedBrowserVersion>\n );\n }\n\n return (\n <UnsupportedBrowserVersion\n {...{\n browserName,\n browserVersion,\n downloadPageLink,\n requiredMinBrowserVersion,\n }}\n />\n );\n};\n\nBrowserSupport.propTypes = {\n /**\n * To override the default minimum supported versions of the browsers.\n */\n overrides: PropTypes.shape({\n Chrome: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n MobileChrome: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Edge: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Firefox: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n MobileFirefox: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Safari: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n MobileSafari: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Opera: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n SamsungInternet: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n Electron: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n WebKit: PropTypes.shape({\n hardLimit: PropTypes.number,\n softLimit: PropTypes.number,\n }),\n }),\n /**\n * To add more browsers to the list of unsupported browsers\n */\n unsupportedBrowsers: PropTypes.arrayOf(PropTypes.string),\n};\n\n/*\nRenders the unsupported-browser page ahead of the app, and reports whether the\napp should be mounted at all.\n\nProducts mount BrowserSupport inside their React tree, which cannot help when\nthe browser is old enough that the app chunk fails to parse: the dynamic import\nrejects and React never renders, so the user gets a blank page instead of an\nexplanation. Call this from the pack, before mount(), where only the entry\nchunk has had to parse.\n\nReturns true when the browser was blocked and the app must not be mounted.\n*/\nexport const renderBrowserSupportGate = ({\n overrides = {},\n unsupportedBrowsers = [],\n element,\n loaderSelector = DEFAULT_LOADER_SELECTOR,\n} = {}) => {\n const target = element ?? document.querySelector(DEFAULT_MOUNT_SELECTOR);\n if (!target) return false;\n\n if (!isBrowserBlocked(getBrowserStatus(overrides, unsupportedBrowsers))) {\n return false;\n }\n\n document.querySelector(loaderSelector)?.remove();\n createRoot(target).render(\n <BrowserSupport {...{ overrides, unsupportedBrowsers }} />\n );\n\n return true;\n};\n\nexport default BrowserSupport;\n"],"names":["DEFAULT_MINIMUM_SUPPORTED_BROWSER_VERSIONS","Chrome","softLimit","hardLimit","MobileChrome","Edge","Firefox","MobileFirefox","Safari","MobileSafari","Opera","SamsungInternet","Electron","WebKit","UNSUPPORTED_BROWSERS","BROWSER_UPGRADE_PAGE_LINKS","IE","UCBrowser","TYPES","INAPP","MOBILE","DEFAULT_MOUNT_SELECTOR","DEFAULT_LOADER_SELECTOR","Callout","_ref","children","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","ContactUs","_ref$className","Trans","i18nKey","components","button","classnames","onClick","_window$NeetoChat","_window$NeetoChat2","window","NeetoChat","contextualHelp","maximizeWidget","openWidget","DownloadLink","link","href","UnsupportedVersionMessage","browserName","browserVersion","downloadPageLink","requiredMinBrowserVersion","downloadLink","contactUs","values","memo","PartialSupportedBrowserVersion","_jsxs","_Fragment","UnsupportedBrowserMessage","UnknownBrowser","UnsupportedBrowser","UnsupportedBrowserVersion","convertToPlatformBrowserName","replace","getRequiredMinBrowserVersion","supportedBrowserVersionsMap","convertSemverToFloat","_browserVersion$split","split","_browserVersion$split2","_slicedToArray","majorVersion","minorVersion","parseFloat","concat","isVersionSupported","isBrowserFullySupported","isBrowserPartiallySupported","buildDownloadPageLink","isBrowserUnsupported","unsupportedBrowsersList","includes","isBrowserSupported","isBrowserBlocked","browserType","deviceType","isUnsupportedBrowser","isKnownBrowser","getBrowserStatus","overrides","additionalUnsupported","_UAParser$getResult","UAParser","navigator","userAgent","getResult","browser","device","name","t","version","type","mergeDeepLeft","uniq","_ref2","BrowserSupport","_ref$overrides","_ref$unsupportedBrows","unsupportedBrowsers","_getBrowserStatus","renderBrowserSupportGate","_document$querySelect","arguments","length","undefined","_ref2$overrides","_ref2$unsupportedBrow","element","_ref2$loaderSelector","loaderSelector","target","document","querySelector","remove","createRoot","render"],"mappings":"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"}
@@ -1333,15 +1333,18 @@ var ProfileMenu = function ProfileMenu(_ref) {
1333
1333
  var isAuthenticated = profileInfo.isAuthenticated;
1334
1334
  var _useTranslation = useTranslation(),
1335
1335
  t = _useTranslation.t;
1336
- var normalizedPlan = (((_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.subscriptionPlan) || "").toLowerCase();
1337
- var isFreePlan = normalizedPlan === "free";
1336
+
1337
+ // A paid plan can be named more than one thing, so the badge follows the
1338
+ // isPro flag the backend sends alongside the plan; the plan name is display
1339
+ // text only.
1340
+ var isPro = Boolean((_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.isPro);
1338
1341
  var isOwner = (_globalProps$user2 = globalProps.user) === null || _globalProps$user2 === void 0 ? void 0 : _globalProps$user2.isOwner;
1339
- var showUpgradeModal = isFreePlan && enableSubscriptionUpgradeRequest && !isOwner;
1342
+ var showUpgradeModal = !isPro && enableSubscriptionUpgradeRequest && !isOwner;
1340
1343
  var getSubscriptionPlanAction = function getSubscriptionPlanAction() {
1341
1344
  if (showUpgradeModal) return {
1342
1345
  onClick: openUpgradeModal
1343
1346
  };
1344
- if (isFreePlan && isOwner && enableSubscriptionUpgradeRequest) {
1347
+ if (!isPro && isOwner && enableSubscriptionUpgradeRequest) {
1345
1348
  var _globalProps$organiza;
1346
1349
  return {
1347
1350
  href: "".concat((_globalProps$organiza = globalProps.organization) === null || _globalProps$organiza === void 0 ? void 0 : _globalProps$organiza.authAppUrl, "/admin/billing/overview")
@@ -1351,11 +1354,10 @@ var ProfileMenu = function ProfileMenu(_ref) {
1351
1354
  href: NEETO_AUTH_BILLING_INFO_URL
1352
1355
  };
1353
1356
  };
1354
- var isProPlan = normalizedPlan === "pro";
1355
1357
  var subscriptionPlanLink = _objectSpread$2({
1356
1358
  label: /*#__PURE__*/jsxs("span", {
1357
1359
  className: "flex items-center gap-2",
1358
- children: [globalProps.appName, isProPlan ? /*#__PURE__*/jsx(Badge, {
1360
+ children: [globalProps.appName, isPro ? /*#__PURE__*/jsx(Badge, {
1359
1361
  label: humanize((_globalProps$user3 = globalProps.user) === null || _globalProps$user3 === void 0 ? void 0 : _globalProps$user3.subscriptionPlan),
1360
1362
  style: {
1361
1363
  "--accent-foreground": "var(--color-amber-950)"