@bigbinary/neeto-molecules 5.6.0 → 5.7.1-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/DocumentEditor.js +1 -1
  2. package/dist/EmailForm.js +3 -3
  3. package/dist/EmailPreview.js +1 -1
  4. package/dist/ErrorPage.js +32 -2
  5. package/dist/ErrorPage.js.map +1 -1
  6. package/dist/FloatingActionMenu.js +1 -1
  7. package/dist/FloatingActionMenu.js.map +1 -1
  8. package/dist/Onboarding.js +31 -27
  9. package/dist/Onboarding.js.map +1 -1
  10. package/dist/OptionFields.js +1 -1
  11. package/dist/ShareViaEmail.js +3 -3
  12. package/dist/ShareViaLink.js +2 -0
  13. package/dist/ShareViaLink.js.map +1 -1
  14. package/dist/cjs/DocumentEditor.js +1 -1
  15. package/dist/cjs/EmailForm.js +3 -3
  16. package/dist/cjs/EmailPreview.js +1 -1
  17. package/dist/cjs/ErrorPage.js +32 -2
  18. package/dist/cjs/ErrorPage.js.map +1 -1
  19. package/dist/cjs/FloatingActionMenu.js +1 -1
  20. package/dist/cjs/FloatingActionMenu.js.map +1 -1
  21. package/dist/cjs/Onboarding.js +31 -27
  22. package/dist/cjs/Onboarding.js.map +1 -1
  23. package/dist/cjs/OptionFields.js +1 -1
  24. package/dist/cjs/ShareViaEmail.js +3 -3
  25. package/dist/cjs/ShareViaLink.js +2 -0
  26. package/dist/cjs/ShareViaLink.js.map +1 -1
  27. package/dist/cjs/clock-J9ePvpcf.js +20 -0
  28. package/dist/cjs/clock-J9ePvpcf.js.map +1 -0
  29. package/dist/cjs/{phone-number-BydWe8Mf.js → phone-number-B0oHeM_N.js} +34 -5
  30. package/dist/cjs/phone-number-B0oHeM_N.js.map +1 -0
  31. package/dist/cjs/refresh-cw-Bc6cA1K7.js +22 -0
  32. package/dist/cjs/refresh-cw-Bc6cA1K7.js.map +1 -0
  33. package/dist/cjs/v2/DocumentEditor.js +1 -1
  34. package/dist/cjs/v2/EmailForm.js +3 -3
  35. package/dist/cjs/v2/EmailPreview.js +1 -1
  36. package/dist/cjs/v2/ErrorPage.js +36 -3
  37. package/dist/cjs/v2/ErrorPage.js.map +1 -1
  38. package/dist/cjs/v2/FinderModal.js +34 -14
  39. package/dist/cjs/v2/FinderModal.js.map +1 -1
  40. package/dist/cjs/v2/FloatingActionMenu.js +1 -1
  41. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  42. package/dist/cjs/v2/NavigationHeader.js +1 -0
  43. package/dist/cjs/v2/NavigationHeader.js.map +1 -1
  44. package/dist/cjs/v2/Onboarding.js +31 -26
  45. package/dist/cjs/v2/Onboarding.js.map +1 -1
  46. package/dist/cjs/v2/OptionFields.js +1 -1
  47. package/dist/cjs/v2/PhoneNumber.js +2 -2
  48. package/dist/cjs/v2/PublishBlock.js +3 -16
  49. package/dist/cjs/v2/PublishBlock.js.map +1 -1
  50. package/dist/cjs/v2/SessionEnvironment.js +2 -2
  51. package/dist/cjs/v2/ShareViaEmail.js +3 -3
  52. package/dist/cjs/v2/ShareViaLink.js +2 -0
  53. package/dist/cjs/v2/ShareViaLink.js.map +1 -1
  54. package/dist/cjs/v2/VersionHistory.js +3 -18
  55. package/dist/cjs/v2/VersionHistory.js.map +1 -1
  56. package/dist/clock-DClOV5p0.js +18 -0
  57. package/dist/clock-DClOV5p0.js.map +1 -0
  58. package/dist/{phone-number-n0BLV3g6.js → phone-number-DUpPHzWW.js} +34 -5
  59. package/dist/phone-number-DUpPHzWW.js.map +1 -0
  60. package/dist/refresh-cw-BC-yYIvc.js +20 -0
  61. package/dist/refresh-cw-BC-yYIvc.js.map +1 -0
  62. package/dist/v2/DocumentEditor.js +1 -1
  63. package/dist/v2/EmailForm.js +3 -3
  64. package/dist/v2/EmailPreview.js +1 -1
  65. package/dist/v2/ErrorPage.js +36 -3
  66. package/dist/v2/ErrorPage.js.map +1 -1
  67. package/dist/v2/FinderModal.js +35 -15
  68. package/dist/v2/FinderModal.js.map +1 -1
  69. package/dist/v2/FloatingActionMenu.js +1 -1
  70. package/dist/v2/FloatingActionMenu.js.map +1 -1
  71. package/dist/v2/NavigationHeader.js +1 -0
  72. package/dist/v2/NavigationHeader.js.map +1 -1
  73. package/dist/v2/Onboarding.js +31 -26
  74. package/dist/v2/Onboarding.js.map +1 -1
  75. package/dist/v2/OptionFields.js +1 -1
  76. package/dist/v2/PhoneNumber.js +3 -3
  77. package/dist/v2/PublishBlock.js +2 -15
  78. package/dist/v2/PublishBlock.js.map +1 -1
  79. package/dist/v2/SessionEnvironment.js +2 -2
  80. package/dist/v2/ShareViaEmail.js +3 -3
  81. package/dist/v2/ShareViaLink.js +2 -0
  82. package/dist/v2/ShareViaLink.js.map +1 -1
  83. package/dist/v2/VersionHistory.js +2 -17
  84. package/dist/v2/VersionHistory.js.map +1 -1
  85. package/package.json +10 -10
  86. package/src/translations/ar.json +21 -10
  87. package/src/translations/bg.json +22 -11
  88. package/src/translations/ca.json +22 -11
  89. package/src/translations/cs.json +21 -10
  90. package/src/translations/da.json +22 -11
  91. package/src/translations/de.json +22 -11
  92. package/src/translations/en.json +8 -4
  93. package/src/translations/es-MX.json +22 -11
  94. package/src/translations/es.json +22 -11
  95. package/src/translations/et.json +22 -11
  96. package/src/translations/fi.json +22 -11
  97. package/src/translations/fil.json +22 -11
  98. package/src/translations/fr.json +22 -11
  99. package/src/translations/he.json +22 -11
  100. package/src/translations/hi.json +21 -10
  101. package/src/translations/hr.json +21 -10
  102. package/src/translations/hu.json +22 -11
  103. package/src/translations/id.json +22 -11
  104. package/src/translations/it.json +22 -11
  105. package/src/translations/ja.json +22 -11
  106. package/src/translations/ko.json +22 -11
  107. package/src/translations/lv.json +22 -11
  108. package/src/translations/nl.json +22 -11
  109. package/src/translations/pl.json +22 -11
  110. package/src/translations/pt-BR.json +22 -11
  111. package/src/translations/pt.json +22 -11
  112. package/src/translations/ro.json +22 -11
  113. package/src/translations/ru.json +21 -10
  114. package/src/translations/sk.json +21 -10
  115. package/src/translations/sl.json +22 -11
  116. package/src/translations/sv.json +22 -11
  117. package/src/translations/th.json +21 -10
  118. package/src/translations/tr.json +22 -11
  119. package/src/translations/uk.json +22 -11
  120. package/src/translations/vi.json +22 -11
  121. package/src/translations/zh-CN.json +21 -10
  122. package/src/translations/zh-TW.json +22 -11
  123. package/types/DocumentEditor.d.ts +1 -1
  124. package/types/PhoneNumber.d.ts +1 -0
  125. package/types/v2/DocumentEditor.d.ts +4 -1
  126. package/types/v2/FinderModal.d.ts +3 -0
  127. package/dist/cjs/phone-number-BydWe8Mf.js.map +0 -1
  128. 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-n0BLV3g6.js.map
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';
@@ -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 = {
@@ -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';
@@ -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 === "back" ? /*#__PURE__*/jsx(Button, {
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
- }) : !hideBackToHomeButton && /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
221
+ }), primaryAction === "home" && !hideBackToHomeButton && /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
189
222
  asChild: true,
190
223
  size: "lg",
191
224
  variant: "default"
@@ -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":"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","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":";;;;;;;;;;;;;;;;;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,aAAa,GAAG,mBAAmB;AAEzC,IAAMC,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,KAAK;AACXN,IAAAA,QAAQ,EAAE,0CAA0C;AACpDC,IAAAA,QAAQ,EAAE,gDAAgD;AAC1DC,IAAAA,cAAc,EAAE,sDAAsD;AACtEC,IAAAA,aAAa,EAAE,OAAO;AACtBC,IAAAA,QAAQ,EAAE;GACX;AACD,EAAA,GAAG,EAAE;AACHN,IAAAA,IAAI,EAAES,aAAa;AACnBP,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;;;;ACzBD,IAAMI,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,GACEpC,MAAM,CAACiB,MAAM,CAAC,IAAIjB,MAAM,CAAC,GAAG,CAAC;IADvBC,IAAI,GAAAmC,KAAA,CAAJnC,IAAI;IAAEE,QAAQ,GAAAiC,KAAA,CAARjC,QAAQ;IAAEC,QAAQ,GAAAgC,KAAA,CAARhC,QAAQ;IAAEC,cAAc,GAAA+B,KAAA,CAAd/B,cAAc;IAAEC,aAAa,GAAA8B,KAAA,CAAb9B,aAAa;IAAEC,QAAQ,GAAA6B,KAAA,CAAR7B,QAAQ;AAGzE8B,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,UAAU,GAAG,SAAbA,UAAUA,GAAA;AAAA,IAAA,OAAShB,MAAM,CAACc,QAAQ,CAACG,MAAM,EAAE;AAAA,EAAA,CAAA;AAEjD,EAAA,IAAMC,sBAAsB,GAAG,CAACvD,QAAQ,IAAIc,mBAAmB;AAE/D,EAAA,oBACE0C,GAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,kFAAkF;AAC5F,IAAA,aAAA,EAAY,sBAAsB;AAAA7C,IAAAA,QAAA,eAElC8C,IAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAC,uNAAuN;AAAA7C,MAAAA,QAAA,gBACpO4C,GAAA,CAAA,KAAA,EAAA;AACEC,QAAAA,SAAS,EAAC,sGAAsG;AAChH,QAAA,aAAA,EAAY,aAAa;QAAA7C,QAAA,eAEzB4C,GAAA,CAAC9D,IAAI,EAAA;AAAC+D,UAAAA,SAAS,EAAC,SAAS;AAACE,UAAAA,WAAW,EAAE;SAAM;OAC1C,CAAC,eACND,IAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAC,sDAAsD;QAAA7C,QAAA,EAAA,cACnE4C,GAAA,CAACI,MAAM,EAAA;AAAAhD,UAAAA,QAAA,eACL4C,GAAA,CAAA,OAAA,EAAA;YAAA5C,QAAA,EAAQS,CAAC,CAACxB,QAAQ;WAAS;SACrB,CAAC,EACR,CAAC,CAACa,MAAM,iBACP8C,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,wDAAwD;AAClE,UAAA,aAAA,EAAY,aAAa;AACzBK,UAAAA,OAAO,EAAC,OAAO;AACfC,UAAAA,MAAM,EAAC,UAAU;AAAAnD,UAAAA,QAAA,EAEhBS,CAAC,CAAC,0CAA0C,EAAE;AAAEX,YAAAA,MAAM,EAANA;WAAQ;AAAC,SAChD,CACb,eACD8C,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,MAAM;AAChB,UAAA,aAAA,EAAY,OAAO;AACnBK,UAAAA,OAAO,EAAC,IAAI;AACZC,UAAAA,MAAM,EAAC,UAAU;AAAAnD,UAAAA,QAAA,EAEhBI,KAAK,iBAAIwC,GAAA,CAACQ,KAAK,EAAA;AAACC,YAAAA,OAAO,EAAErE;WAAW;AAAC,SAC5B,CAAC,EACZmB,WAAW,gBACVyC,GAAA,CAACK,UAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,MAAM;AAChBS,UAAAA,uBAAuB,EAAE;YAAEC,MAAM,EAAE/D,QAAQ,CAACW,WAAW;WAAI;AAC3D,UAAA,aAAA,EAAY,aAAa;AACzB+C,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;UAAAlD,QAAA,eAEf4C,GAAA,CAACQ,KAAK,EAAA;AACJC,YAAAA,OAAO,EAAEnE,cAAe;AACxBsE,YAAAA,MAAM,EAAE;AAAEC,cAAAA,YAAY,EAAE7E;aAAgB;AACxC8E,YAAAA,UAAU,EAAE;cACVC,WAAW,eACTf,GAAA,CAACgB,MAAM,EAAA;AACLf,gBAAAA,SAAS,EAAC,sBAAsB;AAChCK,gBAAAA,OAAO,EAAC,MAAM;AACdW,gBAAAA,OAAO,EAAEjC;AAAe,eACzB,CACF;cACDkC,SAAS,eACPlB,GAAA,CAACgB,MAAM,EAAA;AACLf,gBAAAA,SAAS,EAAC,sBAAsB;AAChCL,gBAAAA,IAAI,EAAA,SAAA,CAAAuB,MAAA,CAAYnF,aAAa,CAAG;AAChCsE,gBAAAA,OAAO,EAAC;eACT;AAEL;WACD;SACS,CAEf,eACDJ,IAAA,CAAA,KAAA,EAAA;AAAKD,UAAAA,SAAS,EAAC,uGAAuG;AAAA7C,UAAAA,QAAA,GACnHb,aAAa,KAAK,OAAO,iBACxByD,GAAA,CAACgB,MAAM,EAAA;YAACI,OAAO,EAAA,IAAA;AAACC,YAAAA,IAAI,EAAC,IAAI;AAACf,YAAAA,OAAO,EAAC,SAAS;AAAAlD,YAAAA,QAAA,eACzC8C,IAAA,CAAA,QAAA,EAAA;AAAQoB,cAAAA,IAAI,EAAC,QAAQ;AAACL,cAAAA,OAAO,EAAEpB,UAAW;cAAAzC,QAAA,EAAA,cACxC4C,GAAA,CAACuB,SAAS,EAAA;AAACtB,gBAAAA,SAAS,EAAC;AAAQ,eAAE,CAAC,EAC/BpC,CAAC,CAAC,mCAAmC,CAAC;aACjC;WACF,CACT,EACAtB,aAAa,KAAK,MAAM,iBACvByD,GAAA,CAACgB,MAAM,EAAA;YAACI,OAAO,EAAA,IAAA;AAACC,YAAAA,IAAI,EAAC,IAAI;AAACf,YAAAA,OAAO,EAAC,SAAS;AAAAlD,YAAAA,QAAA,eACzC8C,IAAA,CAAA,QAAA,EAAA;AAAQoB,cAAAA,IAAI,EAAC,QAAQ;AAACL,cAAAA,OAAO,EAAE1B,YAAa;cAAAnC,QAAA,EAAA,cAC1C4C,GAAA,CAACwB,WAAW,EAAA;AAACvB,gBAAAA,SAAS,EAAC;AAAyB,eAAE,CAAC,EAClDpC,CAAC,CAAC,iCAAiC,CAAC;aAC/B;AAAC,WACH,CACT,EACAtB,aAAa,KAAK,MAAM,IAAI,CAACmB,oBAAoB,iBAChDsC,GAAA,CAACgB,MAAM,EAAAS,aAAA,CAAAA,aAAA,CAAA;YACLL,OAAO,EAAA,IAAA;AACPC,YAAAA,IAAI,EAAC,IAAI;AACTf,YAAAA,OAAO,EAAC;AAAS,WAAA,EACbnD,qBAAqB,CAAA,EAAA,EAAA,EAAA;AAAAC,YAAAA,QAAA,eAEzB8C,IAAA,CAAA,GAAA,EAAA;AAAGN,cAAAA,IAAI,EAAE3C,OAAQ;cAAAG,QAAA,EAAA,cACf4C,GAAA,CAAC0B,KAAK,EAAA;AAACzB,gBAAAA,SAAS,EAAC;AAAQ,eAAE,CAAC,EAC3BpC,CAAC,CAAC,qCAAqC,CAAC;aACxC;WAAC,CACE,CACT,EACAT,QAAQ;AAAA,SACN,CAAC;AAAA,OACH,CAAC;KACH;AAAC,GACH,CAAC;AAEV;;;;","x_google_ignoreList":[0]}
@@ -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", "placeholder", "startTypingTitle", "startTypingDescription", "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,
@@ -144,6 +147,9 @@ var FinderModal = function FinderModal(_ref2) {
144
147
  onSearchChange = _ref2.onSearchChange,
145
148
  _ref2$debounceWait = _ref2.debounceWait,
146
149
  debounceWait = _ref2$debounceWait === void 0 ? 300 : _ref2$debounceWait,
150
+ placeholder = _ref2.placeholder,
151
+ startTypingTitle = _ref2.startTypingTitle,
152
+ startTypingDescription = _ref2.startTypingDescription,
147
153
  _ref2$tagStyle = _ref2.tagStyle,
148
154
  tagStyle = _ref2$tagStyle === void 0 ? "primary" : _ref2$tagStyle,
149
155
  _ref2$tagSize = _ref2.tagSize,
@@ -233,6 +239,7 @@ var FinderModal = function FinderModal(_ref2) {
233
239
  var _item$id, _item$id2;
234
240
  var relativePath = toRelativePath(item.url);
235
241
  var description = htmlToText(item.description);
242
+ var titleBadges = getTitleBadges(item) || [];
236
243
  return /*#__PURE__*/jsx(CommandItem, {
237
244
  className: "!p-0",
238
245
  value: "".concat(item.type, "-").concat((_item$id2 = item.id) !== null && _item$id2 !== void 0 ? _item$id2 : index),
@@ -249,12 +256,25 @@ var FinderModal = function FinderModal(_ref2) {
249
256
  onClick: handleAnchorClick,
250
257
  children: [/*#__PURE__*/jsxs("div", {
251
258
  className: "flex min-w-0 flex-1 flex-col gap-1.5",
252
- children: [/*#__PURE__*/jsx("span", {
253
- className: "text-foreground line-clamp-1 text-sm font-medium",
254
- children: /*#__PURE__*/jsx(HighlightedSnippet, {
255
- maxLength: 80,
256
- snippet: item.title || ""
257
- })
259
+ children: [/*#__PURE__*/jsxs("div", {
260
+ className: "flex min-w-0 items-center gap-2",
261
+ children: [/*#__PURE__*/jsx("span", {
262
+ className: "text-foreground truncate text-sm font-medium",
263
+ children: /*#__PURE__*/jsx(HighlightedSnippet, {
264
+ maxLength: 80,
265
+ snippet: item.title || ""
266
+ })
267
+ }), isNotEmpty(titleBadges) && /*#__PURE__*/jsx("div", {
268
+ className: "flex shrink-0 items-center gap-1.5",
269
+ "data-testid": "neeto-molecules-finder-modal-title-badges",
270
+ children: titleBadges.map(function (_ref5, badgeIndex) {
271
+ var key = _ref5.key,
272
+ badgeProps = _objectWithoutProperties(_ref5, _excluded2);
273
+ return /*#__PURE__*/jsx(Badge, _objectSpread({
274
+ size: "sm"
275
+ }, badgeProps), key !== null && key !== void 0 ? key : badgeIndex);
276
+ })
277
+ })]
258
278
  }), description && /*#__PURE__*/jsx("span", {
259
279
  className: "text-muted-foreground line-clamp-1 text-xs",
260
280
  children: /*#__PURE__*/jsx(HighlightedSnippet, {
@@ -287,8 +307,8 @@ var FinderModal = function FinderModal(_ref2) {
287
307
  children: [/*#__PURE__*/jsx("div", {
288
308
  className: "min-w-0 flex-1",
289
309
  children: /*#__PURE__*/jsx(CommandInput, {
290
- placeholder: t("neetoMolecules.common.actions.search"),
291
310
  value: internalSearchTerm,
311
+ placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t("neetoMolecules.common.actions.search"),
292
312
  onValueChange: handleSearchChange
293
313
  })
294
314
  }), isFetching && /*#__PURE__*/jsx(Spinner, {
@@ -310,13 +330,13 @@ var FinderModal = function FinderModal(_ref2) {
310
330
  className: "!py-8",
311
331
  children: /*#__PURE__*/jsx(Empty, {
312
332
  icon: Search,
313
- description: internalSearchTerm ? t("neetoMolecules.finderModal.noDataDesc") : t("neetoMolecules.finderModal.startTypingDesc"),
314
- title: internalSearchTerm ? t("neetoMolecules.finderModal.noDataTitle") : t("neetoMolecules.finderModal.startTypingTitle")
333
+ description: internalSearchTerm ? t("neetoMolecules.finderModal.noDataDesc") : startTypingDescription !== null && startTypingDescription !== void 0 ? startTypingDescription : t("neetoMolecules.finderModal.startTypingDesc"),
334
+ title: internalSearchTerm ? t("neetoMolecules.finderModal.noDataTitle") : startTypingTitle !== null && startTypingTitle !== void 0 ? startTypingTitle : t("neetoMolecules.finderModal.startTypingTitle")
315
335
  })
316
- }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref5) {
317
- var _ref6 = _slicedToArray(_ref5, 2),
318
- group = _ref6[0],
319
- items = _ref6[1];
336
+ }), Array.isArray(data) ? renderItems(data) : Object.entries(data).map(function (_ref6) {
337
+ var _ref7 = _slicedToArray(_ref6, 2),
338
+ group = _ref7[0],
339
+ items = _ref7[1];
320
340
  if (!items.length) return null;
321
341
  return /*#__PURE__*/jsx(CommandGroup, {
322
342
  heading: group,