@bigbinary/neeto-molecules 5.6.0 → 5.7.0
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.
- package/dist/DocumentEditor.js +1 -1
- package/dist/EmailForm.js +3 -3
- package/dist/EmailPreview.js +1 -1
- package/dist/ErrorPage.js +32 -2
- package/dist/ErrorPage.js.map +1 -1
- package/dist/FloatingActionMenu.js +1 -1
- package/dist/FloatingActionMenu.js.map +1 -1
- package/dist/Onboarding.js +31 -27
- package/dist/Onboarding.js.map +1 -1
- package/dist/OptionFields.js +1 -1
- package/dist/ShareViaEmail.js +3 -3
- package/dist/ShareViaLink.js +2 -0
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/cjs/DocumentEditor.js +1 -1
- package/dist/cjs/EmailForm.js +3 -3
- package/dist/cjs/EmailPreview.js +1 -1
- package/dist/cjs/ErrorPage.js +32 -2
- package/dist/cjs/ErrorPage.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +1 -1
- package/dist/cjs/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/Onboarding.js +31 -27
- package/dist/cjs/Onboarding.js.map +1 -1
- package/dist/cjs/OptionFields.js +1 -1
- package/dist/cjs/ShareViaEmail.js +3 -3
- package/dist/cjs/ShareViaLink.js +2 -0
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/clock-J9ePvpcf.js +20 -0
- package/dist/cjs/clock-J9ePvpcf.js.map +1 -0
- package/dist/cjs/{phone-number-BydWe8Mf.js → phone-number-B0oHeM_N.js} +34 -5
- package/dist/cjs/phone-number-B0oHeM_N.js.map +1 -0
- package/dist/cjs/refresh-cw-Bc6cA1K7.js +22 -0
- package/dist/cjs/refresh-cw-Bc6cA1K7.js.map +1 -0
- package/dist/cjs/v2/DocumentEditor.js +1 -1
- package/dist/cjs/v2/EmailForm.js +3 -3
- package/dist/cjs/v2/EmailPreview.js +1 -1
- package/dist/cjs/v2/ErrorPage.js +36 -3
- package/dist/cjs/v2/ErrorPage.js.map +1 -1
- package/dist/cjs/v2/FinderModal.js +28 -11
- package/dist/cjs/v2/FinderModal.js.map +1 -1
- package/dist/cjs/v2/FloatingActionMenu.js +1 -1
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/NavigationHeader.js +1 -0
- package/dist/cjs/v2/NavigationHeader.js.map +1 -1
- package/dist/cjs/v2/Onboarding.js +31 -26
- package/dist/cjs/v2/Onboarding.js.map +1 -1
- package/dist/cjs/v2/OptionFields.js +1 -1
- package/dist/cjs/v2/PhoneNumber.js +2 -2
- package/dist/cjs/v2/PublishBlock.js +3 -16
- package/dist/cjs/v2/PublishBlock.js.map +1 -1
- package/dist/cjs/v2/SessionEnvironment.js +2 -2
- package/dist/cjs/v2/ShareViaEmail.js +3 -3
- package/dist/cjs/v2/ShareViaLink.js +2 -0
- package/dist/cjs/v2/ShareViaLink.js.map +1 -1
- package/dist/cjs/v2/VersionHistory.js +3 -18
- package/dist/cjs/v2/VersionHistory.js.map +1 -1
- package/dist/clock-DClOV5p0.js +18 -0
- package/dist/clock-DClOV5p0.js.map +1 -0
- package/dist/{phone-number-n0BLV3g6.js → phone-number-DUpPHzWW.js} +34 -5
- package/dist/phone-number-DUpPHzWW.js.map +1 -0
- package/dist/refresh-cw-BC-yYIvc.js +20 -0
- package/dist/refresh-cw-BC-yYIvc.js.map +1 -0
- package/dist/v2/DocumentEditor.js +1 -1
- package/dist/v2/EmailForm.js +3 -3
- package/dist/v2/EmailPreview.js +1 -1
- package/dist/v2/ErrorPage.js +36 -3
- package/dist/v2/ErrorPage.js.map +1 -1
- package/dist/v2/FinderModal.js +29 -12
- package/dist/v2/FinderModal.js.map +1 -1
- package/dist/v2/FloatingActionMenu.js +1 -1
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/NavigationHeader.js +1 -0
- package/dist/v2/NavigationHeader.js.map +1 -1
- package/dist/v2/Onboarding.js +31 -26
- package/dist/v2/Onboarding.js.map +1 -1
- package/dist/v2/OptionFields.js +1 -1
- package/dist/v2/PhoneNumber.js +3 -3
- package/dist/v2/PublishBlock.js +2 -15
- package/dist/v2/PublishBlock.js.map +1 -1
- package/dist/v2/SessionEnvironment.js +2 -2
- package/dist/v2/ShareViaEmail.js +3 -3
- package/dist/v2/ShareViaLink.js +2 -0
- package/dist/v2/ShareViaLink.js.map +1 -1
- package/dist/v2/VersionHistory.js +2 -17
- package/dist/v2/VersionHistory.js.map +1 -1
- package/package.json +9 -9
- package/src/translations/ar.json +21 -10
- package/src/translations/bg.json +22 -11
- package/src/translations/ca.json +22 -11
- package/src/translations/cs.json +21 -10
- package/src/translations/da.json +22 -11
- package/src/translations/de.json +22 -11
- package/src/translations/en.json +8 -4
- package/src/translations/es-MX.json +22 -11
- package/src/translations/es.json +22 -11
- package/src/translations/et.json +22 -11
- package/src/translations/fi.json +22 -11
- package/src/translations/fil.json +22 -11
- package/src/translations/fr.json +22 -11
- package/src/translations/he.json +22 -11
- package/src/translations/hi.json +21 -10
- package/src/translations/hr.json +21 -10
- package/src/translations/hu.json +22 -11
- package/src/translations/id.json +22 -11
- package/src/translations/it.json +22 -11
- package/src/translations/ja.json +22 -11
- package/src/translations/ko.json +22 -11
- package/src/translations/lv.json +22 -11
- package/src/translations/nl.json +22 -11
- package/src/translations/pl.json +22 -11
- package/src/translations/pt-BR.json +22 -11
- package/src/translations/pt.json +22 -11
- package/src/translations/ro.json +22 -11
- package/src/translations/ru.json +21 -10
- package/src/translations/sk.json +21 -10
- package/src/translations/sl.json +22 -11
- package/src/translations/sv.json +22 -11
- package/src/translations/th.json +21 -10
- package/src/translations/tr.json +22 -11
- package/src/translations/uk.json +22 -11
- package/src/translations/vi.json +22 -11
- package/src/translations/zh-CN.json +21 -10
- package/src/translations/zh-TW.json +22 -11
- package/types/DocumentEditor.d.ts +1 -1
- package/types/PhoneNumber.d.ts +1 -0
- package/types/v2/DocumentEditor.d.ts +4 -1
- package/dist/cjs/phone-number-BydWe8Mf.js.map +0 -1
- package/dist/phone-number-n0BLV3g6.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock-DClOV5p0.js","sources":["../node_modules/lucide-react/dist/esm/icons/clock.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.24.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.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.mjs.map\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC5D,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC9C,CAAC;AACI,MAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU;;;;","x_google_ignoreList":[0]}
|
|
@@ -2,11 +2,11 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
3
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
4
|
import { memo, useState, forwardRef, useId } from 'react';
|
|
5
|
-
import { Label } from '@bigbinary/neeto-atoms';
|
|
6
|
-
import { Popover, PopoverTrigger, Button, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, InputGroup, InputGroupAddon, InputGroupInput } from '@bigbinary/neeto-atoms/primitives';
|
|
7
5
|
import { useQuery } from '@tanstack/react-query';
|
|
8
6
|
import classnames from 'classnames';
|
|
9
7
|
import { getCountries, parsePhoneNumber, formatIncompletePhoneNumber, isValidPhoneNumber, getCountryCallingCode } from 'libphonenumber-js/min';
|
|
8
|
+
import { Label } from '@bigbinary/neeto-atoms';
|
|
9
|
+
import { Popover, PopoverTrigger, Button, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandItem, InputGroup, InputGroupAddon, InputGroupInput } from '@bigbinary/neeto-atoms/primitives';
|
|
10
10
|
import { hyphenate, findBy, noop } from '@bigbinary/neeto-cist';
|
|
11
11
|
import { i as index_es5_minExports } from './index.es5.min-Oe75miEx.js';
|
|
12
12
|
import i18next from 'i18next';
|
|
@@ -22,6 +22,27 @@ var IP_LOOKUP_ACCESS_TOKEN = "083c694c79f119c7f227e737de9a5c8c";
|
|
|
22
22
|
var IP_LOOKUP_STORAGE_KEY = "IP_LOOKUP_DETAILS_STORAGE";
|
|
23
23
|
var MAX_CACHE_AGE = 60 * 60 * 1000;
|
|
24
24
|
|
|
25
|
+
// Mirrors the atoms Input SIZE_CONFIG so the phone field's height and text size
|
|
26
|
+
// exactly match a regular atoms Input at each size. PhoneNumberInput composes
|
|
27
|
+
// the atoms InputGroup/InputGroupInput primitives directly (the atoms Input
|
|
28
|
+
// component can't host the country-picker addon — its prefix/suffix accept
|
|
29
|
+
// icons only), and the primitives have no size variant, so the size classes are
|
|
30
|
+
// applied from here. SIZE_CONFIG is not a public atoms export; keep in sync.
|
|
31
|
+
var SIZE_CONFIG = {
|
|
32
|
+
small: {
|
|
33
|
+
group: "h-8 md:h-7",
|
|
34
|
+
input: "text-base md:text-xs px-2"
|
|
35
|
+
},
|
|
36
|
+
medium: {
|
|
37
|
+
group: "h-8",
|
|
38
|
+
input: "text-base md:text-sm"
|
|
39
|
+
},
|
|
40
|
+
large: {
|
|
41
|
+
group: "h-10",
|
|
42
|
+
input: "text-base md:text-sm"
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
25
46
|
var COUNTRY_PICKER_OPTIONS = getCountries().filter(function (code) {
|
|
26
47
|
return index_es5_minExports.countries[code];
|
|
27
48
|
}).map(function (code) {
|
|
@@ -200,7 +221,7 @@ var preserveCursor = function preserveCursor(callback) {
|
|
|
200
221
|
};
|
|
201
222
|
};
|
|
202
223
|
|
|
203
|
-
var _excluded = ["value", "onChange", "className", "error", "label", "required", "id", "selectProps", "initialCountryCode"];
|
|
224
|
+
var _excluded = ["value", "onChange", "className", "error", "label", "required", "id", "selectProps", "initialCountryCode", "size"];
|
|
204
225
|
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; }
|
|
205
226
|
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; }
|
|
206
227
|
var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -216,8 +237,15 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
216
237
|
id = _ref.id,
|
|
217
238
|
selectProps = _ref.selectProps,
|
|
218
239
|
initialCountryCode = _ref.initialCountryCode,
|
|
240
|
+
_ref$size = _ref.size,
|
|
241
|
+
size = _ref$size === void 0 ? "medium" : _ref$size,
|
|
219
242
|
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
220
243
|
var safeValue = value !== null && value !== void 0 ? value : "";
|
|
244
|
+
// Fall back to medium for a null/unknown size so an unexpected prop value
|
|
245
|
+
// can't make the lookup undefined and crash on `.group`/`.input`.
|
|
246
|
+
var _ref2 = SIZE_CONFIG[size] || SIZE_CONFIG.medium,
|
|
247
|
+
groupSizeClass = _ref2.group,
|
|
248
|
+
inputSizeClass = _ref2.input;
|
|
221
249
|
var generatedId = useId();
|
|
222
250
|
var inputId = id !== null && id !== void 0 ? id : generatedId;
|
|
223
251
|
var errorId = "error_".concat(inputId);
|
|
@@ -279,7 +307,7 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
279
307
|
// focus/error ring is a box-shadow on this element, so it is not
|
|
280
308
|
// clipped; the country dropdown is a portaled popover, so it is
|
|
281
309
|
// unaffected too.
|
|
282
|
-
"neeto-molecules-phone-number-input__group overflow-hidden", !!error && "border-destructive ring-destructive/20 ring-3"),
|
|
310
|
+
"neeto-molecules-phone-number-input__group overflow-hidden", groupSizeClass, !!error && "border-destructive ring-destructive/20 ring-3"),
|
|
283
311
|
children: [/*#__PURE__*/jsx(InputGroupAddon, {
|
|
284
312
|
align: "inline-start"
|
|
285
313
|
// Inset the country picker: cancel the atoms addon's negative
|
|
@@ -299,6 +327,7 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
299
327
|
"aria-invalid": !!error || undefined,
|
|
300
328
|
"aria-required": required || undefined,
|
|
301
329
|
autoComplete: "tel",
|
|
330
|
+
className: inputSizeClass,
|
|
302
331
|
"data-testid": "phonenumber-input",
|
|
303
332
|
id: inputId,
|
|
304
333
|
inputMode: "tel",
|
|
@@ -319,4 +348,4 @@ var css = "@import url(\"https://fonts.googleapis.com/css2?family=Noto+Color+Emo
|
|
|
319
348
|
n(css,{});
|
|
320
349
|
|
|
321
350
|
export { PhoneNumberInput as P, getPhoneData as g, isPhoneNumberValid as i, validation as v };
|
|
322
|
-
//# sourceMappingURL=phone-number-
|
|
351
|
+
//# sourceMappingURL=phone-number-DUpPHzWW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number-DUpPHzWW.js","sources":["../src/v2/components/PhoneNumber/constants.js","../src/v2/components/PhoneNumber/CountryPicker/constants.js","../src/v2/components/PhoneNumber/CountryPicker/index.jsx","../src/v2/components/PhoneNumber/apis/neeto_ip_lookup.js","../src/v2/components/PhoneNumber/utils.js","../src/v2/components/PhoneNumber/PhoneNumberInput.jsx"],"sourcesContent":["export const IP_LOOKUP_ACCESS_TOKEN = \"083c694c79f119c7f227e737de9a5c8c\";\nexport const IP_LOOKUP_STORAGE_KEY = \"IP_LOOKUP_DETAILS_STORAGE\";\nexport const MAX_CACHE_AGE = 60 * 60 * 1000;\n\n// Mirrors the atoms Input SIZE_CONFIG so the phone field's height and text size\n// exactly match a regular atoms Input at each size. PhoneNumberInput composes\n// the atoms InputGroup/InputGroupInput primitives directly (the atoms Input\n// component can't host the country-picker addon — its prefix/suffix accept\n// icons only), and the primitives have no size variant, so the size classes are\n// applied from here. SIZE_CONFIG is not a public atoms export; keep in sync.\nexport const SIZE_CONFIG = {\n small: { group: \"h-8 md:h-7\", input: \"text-base md:text-xs px-2\" },\n medium: { group: \"h-8\", input: \"text-base md:text-sm\" },\n large: { group: \"h-10\", input: \"text-base md:text-sm\" },\n};\n","import { countries } from \"countries-list\";\nimport { getCountries } from \"libphonenumber-js/min\";\n\nexport const COUNTRY_PICKER_OPTIONS = getCountries()\n .filter(code => countries[code])\n .map(code => ({ label: countries[code].name, value: code }))\n .sort((a, b) => a.label.localeCompare(b.label));\n","import { memo, useState } from \"react\";\n\nimport {\n Button,\n Command,\n CommandEmpty,\n CommandInput,\n CommandItem,\n CommandList,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { countries } from \"countries-list\";\nimport i18next from \"i18next\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\n\nimport { COUNTRY_PICKER_OPTIONS } from \"./constants\";\n\nconst CountryPicker = ({ countryCode, onChange, disabled }) => {\n const [open, setOpen] = useState(false);\n\n const handleSelect = nextValue => {\n onChange(nextValue);\n setOpen(false);\n };\n\n return (\n <Popover {...{ open }} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n {...{ disabled }}\n className=\"neeto-molecules-phone-number-input__country-picker hover:bg-muted h-6 min-h-6 shrink-0 gap-1 self-center rounded-lg border-0 bg-transparent px-2 shadow-none\"\n data-testid=\"phonenumber-country-picker\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label={i18next.t(\n \"neetoMolecules.phoneNumberInput.countryCodeAriaLabel\"\n )}\n >\n <span className=\"neeto-molecules-phone-number-input__flag text-xl leading-none\">\n {countries[countryCode]?.emoji}\n </span>\n <ChevronDownIcon\n aria-hidden\n className=\"text-muted-foreground size-3\"\n />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-64 p-0\"\n sideOffset={4}\n onClick={event => event.stopPropagation()}\n >\n <Command>\n <CommandInput\n data-testid=\"phonenumber-country-picker-search\"\n placeholder={i18next.t(\n \"neetoMolecules.phoneNumberInput.searchCountry\"\n )}\n />\n <CommandList className=\"mt-1\">\n <CommandEmpty>\n {i18next.t(\"neetoMolecules.phoneNumberInput.noCountryFound\")}\n </CommandEmpty>\n {COUNTRY_PICKER_OPTIONS.map(({ label, value }) => (\n <CommandItem\n data-testid={`${hyphenate(label)}-select-option`}\n key={value}\n value={`${label} ${value}`}\n onSelect={() => handleSelect(value)}\n >\n <span className=\"neeto-molecules-phone-number-input__flag text-xl leading-none\">\n {countries[value]?.emoji}\n </span>\n <span>{label}</span>\n </CommandItem>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n};\n\nexport default memo(CountryPicker);\n","import axios from \"axios\";\n\nimport { IP_LOOKUP_ACCESS_TOKEN } from \"../constants\";\n\nconst fetchLocationDetails = () =>\n axios.get(\n \"https://neeto-ip-lookup-web-production.neetodeployapp.com/location\",\n { headers: { \"X-ACCESS-TOKEN\": IP_LOOKUP_ACCESS_TOKEN } }\n );\n\nconst neetoIpLookupApi = { fetchLocationDetails };\nexport default neetoIpLookupApi;\n","import i18next from \"i18next\";\nimport {\n formatIncompletePhoneNumber,\n isValidPhoneNumber,\n parsePhoneNumber,\n} from \"libphonenumber-js/min\";\nimport { getFromLocalStorage, setToLocalStorage } from \"neetocommons/v2/utils\";\nimport * as yup from \"yup\";\n\nimport neetoIpLookupApi from \"./apis/neeto_ip_lookup\";\nimport { IP_LOOKUP_STORAGE_KEY, MAX_CACHE_AGE } from \"./constants\";\n\nexport const isPhoneNumberValid = (value = \"\", ...rest) =>\n isValidPhoneNumber(value, ...rest);\n\nexport const validation = (\n message = i18next.t(\"neetoMolecules.phoneNumberInput.validations.invalid\")\n) =>\n yup\n .string()\n .test(\"phoneNumber\", message, phoneNumber =>\n phoneNumber ? isValidPhoneNumber(phoneNumber) : true\n );\n\nexport const getPhoneData = (value, defaultCountryCode) => {\n try {\n const parsedValue = parsePhoneNumber(value, defaultCountryCode);\n\n return {\n phoneNumber: parsedValue.number,\n international: parsedValue.formatInternational(),\n countryCode: parsedValue.country || defaultCountryCode,\n };\n } catch {\n return {\n phoneNumber: value,\n international: formatIncompletePhoneNumber(value, defaultCountryCode),\n countryCode: defaultCountryCode,\n };\n }\n};\n\nexport const fetchLocationDetails = async () => {\n const stored = getFromLocalStorage(IP_LOOKUP_STORAGE_KEY);\n const { data, timestamp } = stored || {};\n const isCacheValid = timestamp && Date.now() - timestamp < MAX_CACHE_AGE;\n\n if (isCacheValid) return data;\n\n try {\n const details = await neetoIpLookupApi.fetchLocationDetails();\n const timestamp = Date.now();\n setToLocalStorage(IP_LOOKUP_STORAGE_KEY, { data: details, timestamp });\n\n return details;\n } catch {\n return data || null;\n }\n};\n\nexport const isNumeric = char => char >= \"0\" && char <= \"9\";\n\nexport const preserveCursor = callback => event => {\n const start = event.target.selectionStart;\n const end = event.target.selectionEnd;\n const len = event.target.value.length;\n const result = callback(event);\n const delta = event.target.value.length - len;\n event.target.setSelectionRange(start + delta, end + delta);\n\n return result;\n};\n","import { forwardRef, useId, useState } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport classnames from \"classnames\";\nimport {\n formatIncompletePhoneNumber,\n getCountryCallingCode,\n} from \"libphonenumber-js/min\";\nimport { Label } from \"neetoatoms\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"neetoatoms/primitives\";\nimport { noop, findBy } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { IP_LOOKUP_STORAGE_KEY, SIZE_CONFIG } from \"./constants\";\nimport CountryPicker from \"./CountryPicker\";\nimport { COUNTRY_PICKER_OPTIONS } from \"./CountryPicker/constants\";\nimport {\n getPhoneData,\n isNumeric,\n preserveCursor,\n fetchLocationDetails,\n} from \"./utils\";\n\nconst PhoneNumberInput = forwardRef(\n (\n {\n value = \"\",\n onChange = noop,\n className,\n error,\n label,\n required = false,\n id,\n selectProps,\n initialCountryCode,\n size = \"medium\",\n ...inputProps\n },\n ref\n ) => {\n const safeValue = value ?? \"\";\n // Fall back to medium for a null/unknown size so an unexpected prop value\n // can't make the lookup undefined and crash on `.group`/`.input`.\n const { group: groupSizeClass, input: inputSizeClass } =\n SIZE_CONFIG[size] || SIZE_CONFIG.medium;\n\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const errorId = `error_${inputId}`;\n\n const [countryCode, setCountryCode] = useState(\n () => getPhoneData(safeValue).countryCode || initialCountryCode\n );\n\n const { data: ipCountry } = useQuery({\n queryKey: [IP_LOOKUP_STORAGE_KEY],\n queryFn: fetchLocationDetails,\n enabled: !countryCode,\n staleTime: Infinity,\n gcTime: Infinity,\n select: data =>\n findBy({ value: data.countryCode }, COUNTRY_PICKER_OPTIONS),\n });\n\n const finalCountryCode = countryCode || ipCountry?.value || \"US\";\n const formattedValue = formatIncompletePhoneNumber(\n safeValue,\n finalCountryCode\n );\n\n const onKeyDown = preserveCursor(event => {\n if (event.key !== \"Backspace\") return;\n const left = event.target.value.substring(0, event.target.selectionStart);\n const right = event.target.value.substring(event.target.selectionEnd);\n let index = left.length - 1;\n while (index > 0 && !isNumeric(left[index])) index--;\n const newValue = left.substring(0, index + 1) + right;\n if (newValue) event.target.value = newValue;\n });\n\n const onInputChange = preserveCursor(event => {\n const phoneData = getPhoneData(event.target.value, finalCountryCode);\n event.target.value = formatIncompletePhoneNumber(event.target.value);\n setCountryCode(phoneData.countryCode);\n onChange(phoneData.phoneNumber);\n });\n\n const onChangeCountry = nextCountryCode => {\n const phoneData = getPhoneData(safeValue, finalCountryCode);\n const prevPrefix = `+${getCountryCallingCode(phoneData.countryCode)}`;\n const nextPrefix = `+${getCountryCallingCode(nextCountryCode)}`;\n setCountryCode(nextCountryCode);\n onChange(nextPrefix + safeValue.replace(prevPrefix, \"\"));\n };\n\n return (\n <div {...{ className }}>\n {label && (\n <Label {...{ required }} className=\"mb-2\" htmlFor={inputId}>\n {label}\n </Label>\n )}\n <InputGroup\n className={classnames(\n // Clip to the rounded box so the country-picker button's hover\n // background (seated with a negative inline-start margin by the\n // atoms addon) cannot overflow the input's rounded corner. The\n // focus/error ring is a box-shadow on this element, so it is not\n // clipped; the country dropdown is a portaled popover, so it is\n // unaffected too.\n \"neeto-molecules-phone-number-input__group overflow-hidden\",\n groupSizeClass,\n !!error && \"border-destructive ring-destructive/20 ring-3\"\n )}\n >\n <InputGroupAddon\n align=\"inline-start\"\n // Inset the country picker: cancel the atoms addon's negative\n // inline-start margin and add a little left padding so the picker\n // reads as a chip sitting inside the input, not flush to its edge.\n className=\"neeto-molecules-phone-number-input__addon !ms-0 p-0 ps-0.5\"\n >\n <CountryPicker\n countryCode={finalCountryCode}\n onChange={onChangeCountry}\n {...selectProps}\n />\n </InputGroupAddon>\n <InputGroupInput\n {...{ onKeyDown, ref, required }}\n aria-describedby={error ? errorId : undefined}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n autoComplete=\"tel\"\n className={inputSizeClass}\n data-testid=\"phonenumber-input\"\n id={inputId}\n inputMode=\"tel\"\n type=\"tel\"\n value={formattedValue}\n onChange={onInputChange}\n {...inputProps}\n />\n </InputGroup>\n {error && (\n <p className=\"text-destructive mt-1 text-sm\" id={errorId}>\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\";\n\nPhoneNumberInput.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n className: PropTypes.string,\n error: PropTypes.string,\n label: PropTypes.node,\n required: PropTypes.bool,\n id: PropTypes.string,\n selectProps: PropTypes.object,\n initialCountryCode: PropTypes.string,\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nexport default PhoneNumberInput;\n"],"names":["IP_LOOKUP_ACCESS_TOKEN","IP_LOOKUP_STORAGE_KEY","MAX_CACHE_AGE","SIZE_CONFIG","small","group","input","medium","large","COUNTRY_PICKER_OPTIONS","getCountries","filter","code","countries","map","label","name","value","sort","a","b","localeCompare","CountryPicker","_ref","_countries$countryCod","countryCode","onChange","disabled","_useState","useState","_useState2","_slicedToArray","open","setOpen","handleSelect","nextValue","_jsxs","Popover","onOpenChange","children","_jsx","PopoverTrigger","asChild","Button","className","size","variant","i18next","t","emoji","ChevronDownIcon","PopoverContent","align","sideOffset","onClick","event","stopPropagation","Command","CommandInput","placeholder","CommandList","CommandEmpty","_ref2","_countries$value","CommandItem","concat","hyphenate","onSelect","memo","fetchLocationDetails","axios","get","headers","neetoIpLookupApi","e","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","isPhoneNumberValid","arguments","undefined","_len","rest","Array","_key","isValidPhoneNumber","apply","validation","message","yup","string","test","phoneNumber","getPhoneData","defaultCountryCode","parsedValue","parsePhoneNumber","number","international","formatInternational","country","_unused","formatIncompletePhoneNumber","_asyncToGenerator","_callee","stored","data","timestamp","isCacheValid","details","_timestamp","_context","getFromLocalStorage","Date","now","setToLocalStorage","isNumeric","char","preserveCursor","callback","start","target","selectionStart","end","selectionEnd","len","result","delta","setSelectionRange","PhoneNumberInput","forwardRef","ref","_ref$value","_ref$onChange","noop","error","_ref$required","required","id","selectProps","initialCountryCode","_ref$size","inputProps","_objectWithoutProperties","_excluded","safeValue","groupSizeClass","inputSizeClass","generatedId","useId","inputId","errorId","setCountryCode","_useQuery","useQuery","queryKey","queryFn","enabled","staleTime","Infinity","gcTime","select","findBy","ipCountry","finalCountryCode","formattedValue","onKeyDown","key","left","substring","right","index","newValue","onInputChange","phoneData","onChangeCountry","nextCountryCode","prevPrefix","getCountryCallingCode","nextPrefix","replace","Label","htmlFor","InputGroup","classnames","InputGroupAddon","_objectSpread","InputGroupInput","autoComplete","inputMode","type"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { c as createLucideIcon } from './createLucideIcon--oLqczpc.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @license lucide-react v1.24.0 - ISC
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the ISC license.
|
|
7
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const __iconNode = [
|
|
12
|
+
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
13
|
+
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
14
|
+
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
15
|
+
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
16
|
+
];
|
|
17
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode);
|
|
18
|
+
|
|
19
|
+
export { RefreshCw as R };
|
|
20
|
+
//# sourceMappingURL=refresh-cw-BC-yYIvc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-cw-BC-yYIvc.js","sources":["../node_modules/lucide-react/dist/esm/icons/refresh-cw.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.24.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.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\", key: \"v9h5vc\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }],\n [\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\", key: \"3uifl3\" }],\n [\"path\", { d: \"M8 16H3v5\", key: \"1cv678\" }]\n];\nconst RefreshCw = createLucideIcon(\"refresh-cw\", __iconNode);\n\nexport { __iconNode, RefreshCw as default };\n//# sourceMappingURL=refresh-cw.mjs.map\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,oDAAoD,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACtF,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC9C,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,qDAAqD,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACvF,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC5C,CAAC;AACI,MAAC,SAAS,GAAG,gBAAgB,CAAC,YAAY,EAAE,UAAU;;;;","x_google_ignoreList":[0]}
|
|
@@ -6,7 +6,7 @@ import { Textarea } from '@bigbinary/neeto-atoms/formik';
|
|
|
6
6
|
import classnames from 'classnames';
|
|
7
7
|
import { useFormikContext } from 'formik';
|
|
8
8
|
import { isPresent, noop } from '@bigbinary/neeto-cist';
|
|
9
|
-
import FormikEditor from '@bigbinary/neeto-editor/v2/FormikEditor';
|
|
9
|
+
import FormikEditor from '@bigbinary/neeto-editor-frontend/v2/FormikEditor';
|
|
10
10
|
import { isEmpty, mergeRight } from 'ramda';
|
|
11
11
|
import { useTranslation } from 'react-i18next';
|
|
12
12
|
import { n } from '../inject-css-C2dztUxs.js';
|
package/dist/v2/EmailForm.js
CHANGED
|
@@ -5,11 +5,11 @@ import { Select, Input, RadioGroup, ActionBlock, BlockNavigation, Switch, Form }
|
|
|
5
5
|
import classnames from 'classnames';
|
|
6
6
|
import { useFormikContext, useField, Field } from 'formik';
|
|
7
7
|
import { isPresent, isNotEmpty, findBy, notEqualsDeep, noop } from '@bigbinary/neeto-cist';
|
|
8
|
-
import FormikEditor from '@bigbinary/neeto-editor/v2/FormikEditor';
|
|
8
|
+
import FormikEditor from '@bigbinary/neeto-editor-frontend/v2/FormikEditor';
|
|
9
9
|
import { prop, equals, pluck, isEmpty } from 'ramda';
|
|
10
10
|
import { useTranslation } from 'react-i18next';
|
|
11
11
|
import { t } from 'i18next';
|
|
12
|
-
import { isEditorEmpty } from '@bigbinary/neeto-editor/v2/utils';
|
|
12
|
+
import { isEditorEmpty } from '@bigbinary/neeto-editor-frontend/v2/utils';
|
|
13
13
|
import * as yup from 'yup';
|
|
14
14
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
15
15
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -46,7 +46,7 @@ import '@bigbinary/neeto-commons-frontend/v2/utils';
|
|
|
46
46
|
import '../search-H0uYy0W-.js';
|
|
47
47
|
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
48
48
|
import '../index-DAYCJu79.js';
|
|
49
|
-
import '@bigbinary/neeto-editor/v2/EditorContent';
|
|
49
|
+
import '@bigbinary/neeto-editor-frontend/v2/EditorContent';
|
|
50
50
|
import '../avatar-placeholder-DEjUhVlU.js';
|
|
51
51
|
|
|
52
52
|
var INITIAL_FORM_VALUES = {
|
package/dist/v2/EmailPreview.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Typography, Button } from '@bigbinary/neeto-atoms';
|
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { isPresent } from '@bigbinary/neeto-cist';
|
|
5
5
|
import { withT } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
|
|
6
|
-
import EditorContent from '@bigbinary/neeto-editor/v2/EditorContent';
|
|
6
|
+
import EditorContent from '@bigbinary/neeto-editor-frontend/v2/EditorContent';
|
|
7
7
|
import { P as PropTypes } from '../index-DAYCJu79.js';
|
|
8
8
|
import { S as SvgAvatarPlaceholder } from '../avatar-placeholder-DEjUhVlU.js';
|
|
9
9
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
package/dist/v2/ErrorPage.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { useShallow } from 'zustand/shallow';
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
|
-
import { Typography, Button } from '@bigbinary/neeto-atoms';
|
|
5
4
|
import { p as purify } from '../purify.es-_duHfPgC.js';
|
|
5
|
+
import { Typography, Button } from '@bigbinary/neeto-atoms';
|
|
6
6
|
import { useErrorDisplayStore } from '@bigbinary/neeto-commons-frontend/v2/react-utils/useDisplayErrorPage';
|
|
7
7
|
import { Helmet } from 'react-helmet';
|
|
8
8
|
import { useTranslation, Trans } from 'react-i18next';
|
|
9
9
|
import { T as TriangleAlert } from '../triangle-alert-C8gRvUvq.js';
|
|
10
|
+
import { C as Clock } from '../clock-DClOV5p0.js';
|
|
10
11
|
import { c as createLucideIcon } from '../createLucideIcon--oLqczpc.js';
|
|
11
12
|
import { S as Search } from '../search-H0uYy0W-.js';
|
|
12
13
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
14
|
+
import { R as RefreshCw } from '../refresh-cw-BC-yYIvc.js';
|
|
13
15
|
import { C as ChevronLeft } from '../chevron-left-KSkgB-X_.js';
|
|
14
16
|
import { H as House } from '../house-DMFunZXB.js';
|
|
15
17
|
|
|
@@ -27,6 +29,7 @@ const __iconNode = [
|
|
|
27
29
|
];
|
|
28
30
|
const Lock = createLucideIcon("lock", __iconNode);
|
|
29
31
|
|
|
32
|
+
var SUPPORT_EMAIL = "support@neeto.com";
|
|
30
33
|
var ERRORS = {
|
|
31
34
|
404: {
|
|
32
35
|
Icon: Search,
|
|
@@ -44,6 +47,14 @@ var ERRORS = {
|
|
|
44
47
|
primaryAction: "back",
|
|
45
48
|
usesChat: false
|
|
46
49
|
},
|
|
50
|
+
429: {
|
|
51
|
+
Icon: Clock,
|
|
52
|
+
errorKey: "neetoMolecules.errorPage.tooManyRequests",
|
|
53
|
+
titleKey: "neetoMolecules.errorPage.title.tooManyRequests",
|
|
54
|
+
descriptionKey: "neetoMolecules.errorPage.description.tooManyRequests",
|
|
55
|
+
primaryAction: "retry",
|
|
56
|
+
usesChat: false
|
|
57
|
+
},
|
|
47
58
|
500: {
|
|
48
59
|
Icon: TriangleAlert,
|
|
49
60
|
errorKey: "neetoMolecules.errorPage.internalServerError",
|
|
@@ -116,6 +127,9 @@ var ErrorPage = function ErrorPage(_ref) {
|
|
|
116
127
|
window.location.href = homeUrl;
|
|
117
128
|
}
|
|
118
129
|
};
|
|
130
|
+
var reloadPage = function reloadPage() {
|
|
131
|
+
return window.location.reload();
|
|
132
|
+
};
|
|
119
133
|
var showDefaultDescription = !usesChat || showNeetoChatWidget;
|
|
120
134
|
return /*#__PURE__*/jsx("div", {
|
|
121
135
|
className: "@container/error-page flex min-h-dvh w-full flex-col items-center justify-center",
|
|
@@ -164,17 +178,36 @@ var ErrorPage = function ErrorPage(_ref) {
|
|
|
164
178
|
variant: "body1",
|
|
165
179
|
children: /*#__PURE__*/jsx(Trans, {
|
|
166
180
|
i18nKey: descriptionKey,
|
|
181
|
+
values: {
|
|
182
|
+
supportEmail: SUPPORT_EMAIL
|
|
183
|
+
},
|
|
167
184
|
components: {
|
|
168
185
|
contactLink: /*#__PURE__*/jsx(Button, {
|
|
169
186
|
className: "h-auto p-0 text-base",
|
|
170
187
|
variant: "link",
|
|
171
188
|
onClick: openChatWidget
|
|
189
|
+
}),
|
|
190
|
+
emailLink: /*#__PURE__*/jsx(Button, {
|
|
191
|
+
className: "h-auto p-0 text-base",
|
|
192
|
+
href: "mailto:".concat(SUPPORT_EMAIL),
|
|
193
|
+
variant: "link"
|
|
172
194
|
})
|
|
173
195
|
}
|
|
174
196
|
})
|
|
175
197
|
}), /*#__PURE__*/jsxs("div", {
|
|
176
198
|
className: "flex flex-wrap items-center justify-center gap-3 @[768px]/error-page:justify-start [&_a]:no-underline",
|
|
177
|
-
children: [primaryAction === "
|
|
199
|
+
children: [primaryAction === "retry" && /*#__PURE__*/jsx(Button, {
|
|
200
|
+
asChild: true,
|
|
201
|
+
size: "lg",
|
|
202
|
+
variant: "default",
|
|
203
|
+
children: /*#__PURE__*/jsxs("button", {
|
|
204
|
+
type: "button",
|
|
205
|
+
onClick: reloadPage,
|
|
206
|
+
children: [/*#__PURE__*/jsx(RefreshCw, {
|
|
207
|
+
className: "size-4"
|
|
208
|
+
}), t("neetoMolecules.errorPage.tryAgain")]
|
|
209
|
+
})
|
|
210
|
+
}), primaryAction === "back" && /*#__PURE__*/jsx(Button, {
|
|
178
211
|
asChild: true,
|
|
179
212
|
size: "lg",
|
|
180
213
|
variant: "default",
|
|
@@ -185,7 +218,7 @@ var ErrorPage = function ErrorPage(_ref) {
|
|
|
185
218
|
className: "size-4 rtl:scale-x-[-1]"
|
|
186
219
|
}), t("neetoMolecules.errorPage.goBack")]
|
|
187
220
|
})
|
|
188
|
-
})
|
|
221
|
+
}), primaryAction === "home" && !hideBackToHomeButton && /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
|
|
189
222
|
asChild: true,
|
|
190
223
|
size: "lg",
|
|
191
224
|
variant: "default"
|
package/dist/v2/ErrorPage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPage.js","sources":["../../node_modules/lucide-react/dist/esm/icons/lock.mjs","../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.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.mjs';\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.mjs.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-start\">\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 rtl:scale-x-[-1]\" />\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":["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":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3F,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC3D,CAAC;AACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;;ACX1C,IAAMA,MAAM,GAAG;AACpB,EAAA,GAAG,EAAE;AACHC,IAAAA,IAAI,EAAEC,MAAM;AACZC,IAAAA,QAAQ,EAAE,sCAAsC;AAChDC,IAAAA,QAAQ,EAAE,4CAA4C;AACtDC,IAAAA,cAAc,EAAE,kDAAkD;AAClEC,IAAAA,aAAa,EAAE,MAAM;AACrBC,IAAAA,QAAQ,EAAE;GACX;AACD,EAAA,GAAG,EAAE;AACHN,IAAAA,IAAI,EAAEO,IAAI;AACVL,IAAAA,QAAQ,EAAE,uCAAuC;AACjDC,IAAAA,QAAQ,EAAE,6CAA6C;AACvDC,IAAAA,cAAc,EAAE,mDAAmD;AACnEC,IAAAA,aAAa,EAAE,MAAM;AACrBC,IAAAA,QAAQ,EAAE;GACX;AACD,EAAA,GAAG,EAAE;AACHN,IAAAA,IAAI,EAAEQ,aAAa;AACnBN,IAAAA,QAAQ,EAAE,8CAA8C;AACxDC,IAAAA,QAAQ,EAAE,oDAAoD;AAC9DC,IAAAA,cAAc,EAAE,0DAA0D;AAC1EC,IAAAA,aAAa,EAAE,MAAM;AACrBC,IAAAA,QAAQ,EAAE;AACZ;AACF,CAAC;;;;ACfD,IAAMG,QAAQ,GAAGC,MAAS,CAACD,QAAQ;AAEnC,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA,EAST;AAAA,EAAA,IAAAC,YAAA,GAAAD,IAAA,CARJE,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,YAAA;IACbE,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,qBAAqB,GAAAJ,IAAA,CAArBI,qBAAqB;IACrBC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAAC,qBAAA,GAAAN,IAAA,CACRO,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAC1BE,WAAW,GAAAR,IAAA,CAAXQ,WAAW;IACXC,KAAK,GAAAT,IAAA,CAALS,KAAK;IAAAC,qBAAA,GAAAV,IAAA,CACLW,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAE5B,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAAC,qBAAA,GAAAC,oBAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQC,QAAAA,UAAU,EAAAD,KAAA,CAAA,YAAA,CAAA;AAAmBE,QAAAA,aAAa,EAAAF,KAAA,CAAA,eAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAA9BG,eAAe,GAAAN,qBAAA,CAA3BI,UAAU;IAAmBC,aAAa,GAAAL,qBAAA,CAAbK,aAAa;EAGlDjB,MAAM,GAAGA,MAAM,IAAIkB,eAAe;EAClC,IAAAC,KAAA,GACEnC,MAAM,CAACgB,MAAM,CAAC,IAAIhB,MAAM,CAAC,GAAG,CAAC;IADvBC,IAAI,GAAAkC,KAAA,CAAJlC,IAAI;IAAEE,QAAQ,GAAAgC,KAAA,CAARhC,QAAQ;IAAEC,QAAQ,GAAA+B,KAAA,CAAR/B,QAAQ;IAAEC,cAAc,GAAA8B,KAAA,CAAd9B,cAAc;IAAEC,aAAa,GAAA6B,KAAA,CAAb7B,aAAa;IAAEC,QAAQ,GAAA4B,KAAA,CAAR5B,QAAQ;AAGzE6B,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMC,UAAU,GAAGC,QAAQ,CAACC,cAAc,CAAC,mBAAmB,CAAC;AAC/D,IAAA,IAAIF,UAAU,EAAEA,UAAU,CAACG,MAAM,EAAE;AAEnC,IAAA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAS;MAC9B,IAAI,CAACR,aAAa,EAAE;MACpBJ,oBAAoB,CAACa,QAAQ,CAAC;AAAET,QAAAA,aAAa,EAAE;AAAM,OAAC,CAAC;IACzD,CAAC;AAEDU,IAAAA,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEH,iBAAiB,CAAC;AAEtD,IAAA,OAAO,YAAM;AACXE,MAAAA,MAAM,CAACE,mBAAmB,CAAC,UAAU,EAAEJ,iBAAiB,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,GAAS;IAAA,IAAAC,iBAAA,EAAAC,kBAAA;IAC3B,CAAAD,iBAAA,GAAAJ,MAAM,CAACM,SAAS,MAAA,IAAA,IAAAF,iBAAA,gBAAAA,iBAAA,GAAhBA,iBAAA,CAAkBG,cAAc,cAAAH,iBAAA,KAAA,MAAA,IAAhCA,iBAAA,CAAkCI,cAAc,EAAE;IAClD,CAAAH,kBAAA,GAAAL,MAAM,CAACM,SAAS,MAAA,IAAA,IAAAD,kBAAA,gBAAAA,kBAAA,GAAhBA,kBAAA,CAAkBE,cAAc,cAAAF,kBAAA,KAAA,MAAA,IAAhCA,kBAAA,CAAkCI,UAAU,EAAE;EAChD,CAAC;;AAED;AACA;AACA,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;AACzB,IAAA,IAAIV,MAAM,CAACW,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;AAC7BZ,MAAAA,MAAM,CAACW,OAAO,CAACE,IAAI,EAAE;AACvB,IAAA,CAAC,MAAM;AACLb,MAAAA,MAAM,CAACc,QAAQ,CAACC,IAAI,GAAG3C,OAAO;AAChC,IAAA;EACF,CAAC;AAED,EAAA,IAAM4C,sBAAsB,GAAG,CAACpD,QAAQ,IAAIa,mBAAmB;AAE/D,EAAA,oBACEwC,GAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,kFAAkF;AAC5F,IAAA,aAAA,EAAY,sBAAsB;AAAA3C,IAAAA,QAAA,eAElC4C,IAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAC,uNAAuN;AAAA3C,MAAAA,QAAA,gBACpO0C,GAAA,CAAA,KAAA,EAAA;AACEC,QAAAA,SAAS,EAAC,sGAAsG;AAChH,QAAA,aAAA,EAAY,aAAa;QAAA3C,QAAA,eAEzB0C,GAAA,CAAC3D,IAAI,EAAA;AAAC4D,UAAAA,SAAS,EAAC,SAAS;AAACE,UAAAA,WAAW,EAAE;SAAM;OAC1C,CAAC,eACND,IAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAC,sDAAsD;QAAA3C,QAAA,EAAA,cACnE0C,GAAA,CAACI,MAAM,EAAA;AAAA9C,UAAAA,QAAA,eACL0C,GAAA,CAAA,OAAA,EAAA;YAAA1C,QAAA,EAAQS,CAAC,CAACvB,QAAQ;WAAS;SACrB,CAAC,EACR,CAAC,CAACY,MAAM,iBACP4C,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,wDAAwD;AAClE,UAAA,aAAA,EAAY,aAAa;AACzBK,UAAAA,OAAO,EAAC,OAAO;AACfC,UAAAA,MAAM,EAAC,UAAU;AAAAjD,UAAAA,QAAA,EAEhBS,CAAC,CAAC,0CAA0C,EAAE;AAAEX,YAAAA,MAAM,EAANA;WAAQ;AAAC,SAChD,CACb,eACD4C,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,MAAM;AAChB,UAAA,aAAA,EAAY,OAAO;AACnBK,UAAAA,OAAO,EAAC,IAAI;AACZC,UAAAA,MAAM,EAAC,UAAU;AAAAjD,UAAAA,QAAA,EAEhBI,KAAK,iBAAIsC,GAAA,CAACQ,KAAK,EAAA;AAACC,YAAAA,OAAO,EAAElE;WAAW;AAAC,SAC5B,CAAC,EACZkB,WAAW,gBACVuC,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,MAAM;AAChBS,UAAAA,uBAAuB,EAAE;YAAEC,MAAM,EAAE7D,QAAQ,CAACW,WAAW;WAAI;AAC3D,UAAA,aAAA,EAAY,aAAa;AACzB6C,UAAAA,OAAO,EAAC;AAAO,SAChB,CAAC,GAEFP,sBAAsB,iBACpBC,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,MAAM;AAChB,UAAA,aAAA,EAAY,aAAa;AACzBK,UAAAA,OAAO,EAAC,OAAO;UAAAhD,QAAA,eAEf0C,GAAA,CAACQ,KAAK,EAAA;AACJC,YAAAA,OAAO,EAAEhE,cAAe;AACxBmE,YAAAA,UAAU,EAAE;cACVC,WAAW,eACTb,GAAA,CAACc,MAAM,EAAA;AACLb,gBAAAA,SAAS,EAAC,sBAAsB;AAChCK,gBAAAA,OAAO,EAAC,MAAM;AACdS,gBAAAA,OAAO,EAAE7B;eACV;AAEL;WACD;SACS,CAEf,eACDgB,IAAA,CAAA,KAAA,EAAA;AAAKD,UAAAA,SAAS,EAAC,uGAAuG;AAAA3C,UAAAA,QAAA,GACnHZ,aAAa,KAAK,MAAM,gBACvBsD,GAAA,CAACc,MAAM,EAAA;YAACE,OAAO,EAAA,IAAA;AAACC,YAAAA,IAAI,EAAC,IAAI;AAACX,YAAAA,OAAO,EAAC,SAAS;AAAAhD,YAAAA,QAAA,eACzC4C,IAAA,CAAA,QAAA,EAAA;AAAQgB,cAAAA,IAAI,EAAC,QAAQ;AAACH,cAAAA,OAAO,EAAEtB,YAAa;cAAAnC,QAAA,EAAA,cAC1C0C,GAAA,CAACmB,WAAW,EAAA;AAAClB,gBAAAA,SAAS,EAAC;AAAyB,eAAE,CAAC,EAClDlC,CAAC,CAAC,iCAAiC,CAAC;aAC/B;WACF,CAAC,GAET,CAACH,oBAAoB,iBACnBoC,GAAA,CAACc,MAAM,EAAAM,aAAA,CAAAA,aAAA,CAAA;YACLJ,OAAO,EAAA,IAAA;AACPC,YAAAA,IAAI,EAAC,IAAI;AACTX,YAAAA,OAAO,EAAC;AAAS,WAAA,EACbjD,qBAAqB,CAAA,EAAA,EAAA,EAAA;AAAAC,YAAAA,QAAA,eAEzB4C,IAAA,CAAA,GAAA,EAAA;AAAGJ,cAAAA,IAAI,EAAE3C,OAAQ;cAAAG,QAAA,EAAA,cACf0C,GAAA,CAACqB,KAAK,EAAA;AAACpB,gBAAAA,SAAS,EAAC;AAAQ,eAAE,CAAC,EAC3BlC,CAAC,CAAC,qCAAqC,CAAC;aACxC;WAAC,CACE,CAEX,EACAT,QAAQ;AAAA,SACN,CAAC;AAAA,OACH,CAAC;KACH;AAAC,GACH,CAAC;AAEV;;;;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sources":["../../node_modules/lucide-react/dist/esm/icons/lock.mjs","../../src/v2/components/ErrorPage/constants.js","../../src/v2/components/ErrorPage/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.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.mjs';\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.mjs.map\n","import { Clock, Lock, Search, TriangleAlert } from \"lucide-react\";\n\nexport const SUPPORT_EMAIL = \"support@neeto.com\";\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 429: {\n Icon: Clock,\n errorKey: \"neetoMolecules.errorPage.tooManyRequests\",\n titleKey: \"neetoMolecules.errorPage.title.tooManyRequests\",\n descriptionKey: \"neetoMolecules.errorPage.description.tooManyRequests\",\n primaryAction: \"retry\",\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 DOMPurify from \"dompurify\";\nimport { ChevronLeft, House, RefreshCw } from \"lucide-react\";\nimport { Button, Typography } from \"neetoatoms\";\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, SUPPORT_EMAIL } 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 reloadPage = () => window.location.reload();\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-start\">\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 values={{ supportEmail: SUPPORT_EMAIL }}\n components={{\n contactLink: (\n <Button\n className=\"h-auto p-0 text-base\"\n variant=\"link\"\n onClick={openChatWidget}\n />\n ),\n emailLink: (\n <Button\n className=\"h-auto p-0 text-base\"\n href={`mailto:${SUPPORT_EMAIL}`}\n variant=\"link\"\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 === \"retry\" && (\n <Button asChild size=\"lg\" variant=\"default\">\n <button type=\"button\" onClick={reloadPage}>\n <RefreshCw className=\"size-4\" />\n {t(\"neetoMolecules.errorPage.tryAgain\")}\n </button>\n </Button>\n )}\n {primaryAction === \"back\" && (\n <Button asChild size=\"lg\" variant=\"default\">\n <button type=\"button\" onClick={handleGoBack}>\n <ChevronLeft className=\"size-4 rtl:scale-x-[-1]\" />\n {t(\"neetoMolecules.errorPage.goBack\")}\n </button>\n </Button>\n )}\n {primaryAction === \"home\" && !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 {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, 429, 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":["SUPPORT_EMAIL","ERRORS","Icon","Search","errorKey","titleKey","descriptionKey","primaryAction","usesChat","Lock","Clock","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","reloadPage","reload","showDefaultDescription","_jsx","className","_jsxs","strokeWidth","Helmet","Typography","variant","weight","Trans","i18nKey","dangerouslySetInnerHTML","__html","values","supportEmail","components","contactLink","Button","onClick","emailLink","concat","asChild","size","type","RefreshCw","ChevronLeft","_objectSpread","House"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/v2/FinderModal.js
CHANGED
|
@@ -4,7 +4,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
|
|
|
4
4
|
import { Fragment, useState, useRef, useEffect, useMemo } from 'react';
|
|
5
5
|
import { Spinner, Empty, Badge } from '@bigbinary/neeto-atoms';
|
|
6
6
|
import { CommandDialog, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '@bigbinary/neeto-atoms/primitives';
|
|
7
|
-
import { noop, humanize } from '@bigbinary/neeto-cist';
|
|
7
|
+
import { noop, isNotEmpty, humanize } from '@bigbinary/neeto-cist';
|
|
8
8
|
import useDebounce from '@bigbinary/neeto-commons-frontend/v2/react-utils/useDebounce';
|
|
9
9
|
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
10
10
|
import { useTranslation } from 'react-i18next';
|
|
@@ -100,7 +100,8 @@ var HighlightedSnippet = function HighlightedSnippet(_ref) {
|
|
|
100
100
|
});
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
-
var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"]
|
|
103
|
+
var _excluded = ["enableAdvancedSearch", "data", "getTypeLabel", "getTitleBadges", "isFetching", "isOpen", "setIsOpen", "searchTerm", "setSearchTerm", "onSearchChange", "debounceWait", "tagStyle", "tagSize", "onClose", "onGoToAdvanced", "onLoadMore", "hasMore", "isFetchingMore"],
|
|
104
|
+
_excluded2 = ["key"];
|
|
104
105
|
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; }
|
|
105
106
|
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; }
|
|
106
107
|
var toRelativePath = function toRelativePath(url) {
|
|
@@ -134,6 +135,8 @@ var FinderModal = function FinderModal(_ref2) {
|
|
|
134
135
|
data = _ref2$data === void 0 ? [] : _ref2$data,
|
|
135
136
|
_ref2$getTypeLabel = _ref2.getTypeLabel,
|
|
136
137
|
getTypeLabel = _ref2$getTypeLabel === void 0 ? humanize : _ref2$getTypeLabel,
|
|
138
|
+
_ref2$getTitleBadges = _ref2.getTitleBadges,
|
|
139
|
+
getTitleBadges = _ref2$getTitleBadges === void 0 ? noop : _ref2$getTitleBadges,
|
|
137
140
|
isFetching = _ref2.isFetching,
|
|
138
141
|
isOpen = _ref2.isOpen,
|
|
139
142
|
_ref2$setIsOpen = _ref2.setIsOpen,
|
|
@@ -233,6 +236,7 @@ var FinderModal = function FinderModal(_ref2) {
|
|
|
233
236
|
var _item$id, _item$id2;
|
|
234
237
|
var relativePath = toRelativePath(item.url);
|
|
235
238
|
var description = htmlToText(item.description);
|
|
239
|
+
var titleBadges = getTitleBadges(item) || [];
|
|
236
240
|
return /*#__PURE__*/jsx(CommandItem, {
|
|
237
241
|
className: "!p-0",
|
|
238
242
|
value: "".concat(item.type, "-").concat((_item$id2 = item.id) !== null && _item$id2 !== void 0 ? _item$id2 : index),
|
|
@@ -249,12 +253,25 @@ var FinderModal = function FinderModal(_ref2) {
|
|
|
249
253
|
onClick: handleAnchorClick,
|
|
250
254
|
children: [/*#__PURE__*/jsxs("div", {
|
|
251
255
|
className: "flex min-w-0 flex-1 flex-col gap-1.5",
|
|
252
|
-
children: [/*#__PURE__*/
|
|
253
|
-
className: "
|
|
254
|
-
children: /*#__PURE__*/jsx(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
257
|
+
className: "flex min-w-0 items-center gap-2",
|
|
258
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
259
|
+
className: "text-foreground truncate text-sm font-medium",
|
|
260
|
+
children: /*#__PURE__*/jsx(HighlightedSnippet, {
|
|
261
|
+
maxLength: 80,
|
|
262
|
+
snippet: item.title || ""
|
|
263
|
+
})
|
|
264
|
+
}), isNotEmpty(titleBadges) && /*#__PURE__*/jsx("div", {
|
|
265
|
+
className: "flex shrink-0 items-center gap-1.5",
|
|
266
|
+
"data-testid": "neeto-molecules-finder-modal-title-badges",
|
|
267
|
+
children: titleBadges.map(function (_ref5, badgeIndex) {
|
|
268
|
+
var key = _ref5.key,
|
|
269
|
+
badgeProps = _objectWithoutProperties(_ref5, _excluded2);
|
|
270
|
+
return /*#__PURE__*/jsx(Badge, _objectSpread({
|
|
271
|
+
size: "sm"
|
|
272
|
+
}, badgeProps), key !== null && key !== void 0 ? key : badgeIndex);
|
|
273
|
+
})
|
|
274
|
+
})]
|
|
258
275
|
}), description && /*#__PURE__*/jsx("span", {
|
|
259
276
|
className: "text-muted-foreground line-clamp-1 text-xs",
|
|
260
277
|
children: /*#__PURE__*/jsx(HighlightedSnippet, {
|
|
@@ -313,10 +330,10 @@ var FinderModal = function FinderModal(_ref2) {
|
|
|
313
330
|
description: internalSearchTerm ? t("neetoMolecules.finderModal.noDataDesc") : t("neetoMolecules.finderModal.startTypingDesc"),
|
|
314
331
|
title: internalSearchTerm ? t("neetoMolecules.finderModal.noDataTitle") : t("neetoMolecules.finderModal.startTypingTitle")
|
|
315
332
|
})
|
|
316
|
-
}), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (
|
|
317
|
-
var
|
|
318
|
-
group =
|
|
319
|
-
items =
|
|
333
|
+
}), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref6) {
|
|
334
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
335
|
+
group = _ref7[0],
|
|
336
|
+
items = _ref7[1];
|
|
320
337
|
if (!items.length) return null;
|
|
321
338
|
return /*#__PURE__*/jsx(CommandGroup, {
|
|
322
339
|
heading: group,
|