@bigbinary/neeto-commons-frontend 4.13.93 → 4.13.94-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +1 -0
  2. package/configs/esbuild/index.js +4 -0
  3. package/configs/esbuild/plugins/packageTranslations.js +16 -0
  4. package/configs/esbuild/plugins/preval.js +16 -6
  5. package/configs/esbuild/plugins/reactGiphy.js +1 -0
  6. package/configs/scripts/buildTranslationImports.js +21 -0
  7. package/configs/scripts/getEnglishTranslation.js +11 -0
  8. package/configs/utils/packageTranslations.js +90 -0
  9. package/configs/vite/index.js +5 -0
  10. package/configs/vite/plugins/packageTranslations.js +14 -0
  11. package/configs/vite/plugins/preval.js +17 -11
  12. package/dist/cjs/initializers/i18n.js +120 -183
  13. package/dist/cjs/initializers/i18n.js.map +1 -1
  14. package/dist/cjs/initializers/index.js +43 -19
  15. package/dist/cjs/initializers/index.js.map +1 -1
  16. package/dist/cjs/react-utils/index.js +3 -0
  17. package/dist/cjs/react-utils/index.js.map +1 -1
  18. package/dist/cjs/react-utils/mount/mount.js +68 -69
  19. package/dist/cjs/react-utils/mount/mount.js.map +1 -1
  20. package/dist/cjs/react-utils/usePrefersReducedMotion/constants.js +6 -0
  21. package/dist/cjs/react-utils/usePrefersReducedMotion/constants.js.map +1 -0
  22. package/dist/cjs/react-utils/usePrefersReducedMotion/index.js +12 -0
  23. package/dist/cjs/react-utils/usePrefersReducedMotion/index.js.map +1 -0
  24. package/dist/cjs/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js +46 -0
  25. package/dist/cjs/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js.map +1 -0
  26. package/dist/initializers/i18n.js +120 -183
  27. package/dist/initializers/i18n.js.map +1 -1
  28. package/dist/initializers/index.js +43 -19
  29. package/dist/initializers/index.js.map +1 -1
  30. package/dist/react-utils/index.js +2 -0
  31. package/dist/react-utils/index.js.map +1 -1
  32. package/dist/react-utils/mount/mount.js +68 -69
  33. package/dist/react-utils/mount/mount.js.map +1 -1
  34. package/dist/react-utils/usePrefersReducedMotion/constants.js +4 -0
  35. package/dist/react-utils/usePrefersReducedMotion/constants.js.map +1 -0
  36. package/dist/react-utils/usePrefersReducedMotion/index.js +6 -0
  37. package/dist/react-utils/usePrefersReducedMotion/index.js.map +1 -0
  38. package/dist/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js +44 -0
  39. package/dist/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js.map +1 -0
  40. package/initializers.d.ts +1 -1
  41. package/package.json +4 -2
  42. package/react-utils.d.ts +68 -3
  43. package/src/translations/ar.json +111 -0
  44. package/src/translations/bg.json +111 -0
  45. package/src/translations/ca.json +111 -0
  46. package/src/translations/cs.json +111 -0
  47. package/src/translations/da.json +111 -0
  48. package/src/translations/de.json +111 -0
  49. package/src/translations/en.json +111 -0
  50. package/src/translations/es-MX.json +111 -0
  51. package/src/translations/es.json +111 -0
  52. package/src/translations/et.json +111 -0
  53. package/src/translations/fi.json +111 -0
  54. package/src/translations/fil.json +111 -0
  55. package/src/translations/fr.json +111 -0
  56. package/src/translations/he.json +111 -0
  57. package/src/translations/hi.json +111 -0
  58. package/src/translations/hr.json +111 -0
  59. package/src/translations/id.json +111 -0
  60. package/src/translations/it.json +111 -0
  61. package/src/translations/ja.json +111 -0
  62. package/src/translations/ko.json +111 -0
  63. package/src/translations/nl.json +111 -0
  64. package/src/translations/pl.json +111 -0
  65. package/src/translations/pt-BR.json +111 -0
  66. package/src/translations/pt.json +111 -0
  67. package/src/translations/ro.json +111 -0
  68. package/src/translations/ru.json +111 -0
  69. package/src/translations/sk.json +111 -0
  70. package/src/translations/sl.json +111 -0
  71. package/src/translations/sv.json +111 -0
  72. package/src/translations/th.json +111 -0
  73. package/src/translations/tr.json +111 -0
  74. package/src/translations/uk.json +111 -0
  75. package/src/translations/vi.json +111 -0
  76. package/src/translations/zh-CN.json +111 -0
  77. package/src/translations/zh-TW.json +111 -0
  78. package/configs/scripts/getPkgTranslations.js +0 -45
@@ -8,76 +8,75 @@ import '../../_commonjsHelpers-BFTU3MAI.js';
8
8
 
9
9
  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; }
10
10
  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; }
11
- function mount(components) {
12
- var run = function run() {
13
- var mountPoints = document.querySelectorAll("[data-react-class]");
14
- Array.from(mountPoints).forEach(/*#__PURE__*/function () {
15
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(element) {
16
- var _element$dataset;
17
- var _ref2, reactClass, reactProps, importFn, props, module, Component, root;
18
- return _regeneratorRuntime.wrap(function _callee$(_context) {
19
- while (1) switch (_context.prev = _context.next) {
20
- case 0:
21
- if (!(((_element$dataset = element.dataset) === null || _element$dataset === void 0 ? void 0 : _element$dataset.mounted) === "true")) {
22
- _context.next = 2;
23
- break;
24
- }
25
- return _context.abrupt("return");
26
- case 2:
27
- _ref2 = element.dataset || {}, reactClass = _ref2.reactClass, reactProps = _ref2.reactProps;
28
- if (reactClass) {
29
- _context.next = 5;
30
- break;
31
- }
32
- return _context.abrupt("return");
33
- case 5:
34
- importFn = components[reactClass];
35
- if (importFn) {
36
- _context.next = 9;
37
- break;
38
- }
39
- console.warn("WARNING: No component found for:", reactClass, components);
40
- return _context.abrupt("return");
41
- case 9:
42
- props = {};
43
- if (reactProps) {
44
- try {
45
- props = JSON.parse(reactProps);
46
- } catch (_unused) {
47
- console.error("Invalid JSON in data-react-props:", reactProps);
48
- }
49
- }
50
- _context.prev = 11;
51
- _context.next = 14;
52
- return _retryImport(importFn);
53
- case 14:
54
- module = _context.sent;
55
- Component = module["default"] || module;
56
- root = ReactDOM.createRoot(element);
57
- root.render(/*#__PURE__*/jsx(Component, _objectSpread({}, props)));
58
- if (element.dataset) element.dataset.mounted = "true";
59
- _context.next = 24;
60
- break;
61
- case 21:
62
- _context.prev = 21;
63
- _context.t0 = _context["catch"](11);
64
- console.error("Failed to load component \"".concat(reactClass, "\""), _context.t0);
65
- case 24:
66
- case "end":
67
- return _context.stop();
68
- }
69
- }, _callee, null, [[11, 21]]);
70
- }));
71
- return function (_x) {
72
- return _ref.apply(this, arguments);
73
- };
74
- }());
75
- };
76
- if (document.readyState === "loading") {
77
- document.addEventListener("DOMContentLoaded", run);
78
- } else {
79
- run();
11
+ var jsonParse = function jsonParse(value) {
12
+ if (typeof value !== "string") return {};
13
+ try {
14
+ return JSON.parse(value);
15
+ } catch (_unused) {
16
+ return {};
80
17
  }
18
+ };
19
+ function mount(_x) {
20
+ return _mount.apply(this, arguments);
21
+ }
22
+ function _mount() {
23
+ _mount = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(componentMap) {
24
+ var _element$dataset;
25
+ var element, _ref, reactClass, reactProps, importFn, props, module, Component, root;
26
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
27
+ while (1) switch (_context.prev = _context.next) {
28
+ case 0:
29
+ element = document.querySelector("[data-react-class]");
30
+ if (element) {
31
+ _context.next = 3;
32
+ break;
33
+ }
34
+ return _context.abrupt("return");
35
+ case 3:
36
+ if (!(((_element$dataset = element.dataset) === null || _element$dataset === void 0 ? void 0 : _element$dataset.mounted) === "true")) {
37
+ _context.next = 5;
38
+ break;
39
+ }
40
+ return _context.abrupt("return");
41
+ case 5:
42
+ _ref = element.dataset || {}, reactClass = _ref.reactClass, reactProps = _ref.reactProps;
43
+ if (reactClass) {
44
+ _context.next = 8;
45
+ break;
46
+ }
47
+ return _context.abrupt("return");
48
+ case 8:
49
+ importFn = componentMap[reactClass];
50
+ if (importFn) {
51
+ _context.next = 12;
52
+ break;
53
+ }
54
+ console.warn("WARNING: No component found for:", reactClass, componentMap);
55
+ return _context.abrupt("return");
56
+ case 12:
57
+ props = jsonParse(reactProps);
58
+ _context.prev = 13;
59
+ _context.next = 16;
60
+ return _retryImport(importFn);
61
+ case 16:
62
+ module = _context.sent;
63
+ Component = module["default"] || module;
64
+ root = ReactDOM.createRoot(element);
65
+ root.render(/*#__PURE__*/jsx(Component, _objectSpread({}, props)));
66
+ if (element.dataset) element.dataset.mounted = "true";
67
+ _context.next = 26;
68
+ break;
69
+ case 23:
70
+ _context.prev = 23;
71
+ _context.t0 = _context["catch"](13);
72
+ console.error("Failed to load component \"".concat(reactClass, "\""), _context.t0);
73
+ case 26:
74
+ case "end":
75
+ return _context.stop();
76
+ }
77
+ }, _callee, null, [[13, 23]]);
78
+ }));
79
+ return _mount.apply(this, arguments);
81
80
  }
82
81
 
83
82
  export { mount as default };
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sources":["../../../src/react-utils/mount/mount.jsx"],"sourcesContent":["/* eslint-disable no-console */\nimport ReactDOM from \"react-dom/client\";\nimport retryImport from \"utils/retryImport\";\n\nexport default function mount(components) {\n const run = () => {\n const mountPoints = document.querySelectorAll(\"[data-react-class]\");\n\n Array.from(mountPoints).forEach(async element => {\n if (element.dataset?.mounted === \"true\") return;\n\n const { reactClass, reactProps } = element.dataset || {};\n\n if (!reactClass) return;\n\n const importFn = components[reactClass];\n\n if (!importFn) {\n console.warn(\n \"WARNING: No component found for:\",\n reactClass,\n components\n );\n\n return;\n }\n\n let props = {};\n if (reactProps) {\n try {\n props = JSON.parse(reactProps);\n } catch {\n console.error(\"Invalid JSON in data-react-props:\", reactProps);\n }\n }\n\n try {\n const module = await retryImport(importFn);\n const Component = module.default || module;\n\n const root = ReactDOM.createRoot(element);\n root.render(<Component {...props} />);\n\n if (element.dataset) element.dataset.mounted = \"true\";\n } catch (error) {\n console.error(`Failed to load component \"${reactClass}\"`, error);\n }\n });\n };\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", run);\n } else {\n run();\n }\n}\n"],"names":["mount","components","run","mountPoints","document","querySelectorAll","Array","from","forEach","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","element","_element$dataset","_ref2","reactClass","reactProps","importFn","props","module","Component","root","wrap","_callee$","_context","prev","next","dataset","mounted","abrupt","console","warn","JSON","parse","_unused","error","retryImport","sent","ReactDOM","createRoot","render","_jsx","_objectSpread","t0","concat","stop","_x","apply","arguments","readyState","addEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","sources":["../../../src/react-utils/mount/mount.jsx"],"sourcesContent":["/* eslint-disable no-console */\nimport ReactDOM from \"react-dom/client\";\nimport retryImport from \"utils/retryImport\";\n\nconst jsonParse = value => {\n if (typeof value !== \"string\") return {};\n\n try {\n return JSON.parse(value);\n } catch {\n return {};\n }\n};\n\nexport default async function mount(componentMap) {\n const element = document.querySelector(\"[data-react-class]\");\n if (!element) return;\n\n if (element.dataset?.mounted === \"true\") return;\n\n const { reactClass, reactProps } = element.dataset || {};\n if (!reactClass) return;\n\n const importFn = componentMap[reactClass];\n\n if (!importFn) {\n console.warn(\"WARNING: No component found for:\", reactClass, componentMap);\n\n return;\n }\n\n const props = jsonParse(reactProps);\n\n try {\n const module = await retryImport(importFn);\n const Component = module.default || module;\n\n const root = ReactDOM.createRoot(element);\n root.render(<Component {...props} />);\n\n if (element.dataset) element.dataset.mounted = \"true\";\n } catch (error) {\n console.error(`Failed to load component \"${reactClass}\"`, error);\n }\n}\n"],"names":["jsonParse","value","JSON","parse","_unused","mount","_x","_mount","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","componentMap","_element$dataset","element","_ref","reactClass","reactProps","importFn","props","module","Component","root","wrap","_callee$","_context","prev","next","document","querySelector","abrupt","dataset","mounted","console","warn","retryImport","sent","ReactDOM","createRoot","render","_jsx","_objectSpread","t0","error","concat","stop"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var QUERY = "(prefers-reduced-motion: no-preference)";
2
+
3
+ export { QUERY };
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/react-utils/usePrefersReducedMotion/constants.js"],"sourcesContent":["export const QUERY = \"(prefers-reduced-motion: no-preference)\";\n"],"names":["QUERY"],"mappings":"AAAO,IAAMA,KAAK,GAAG;;;;"}
@@ -0,0 +1,6 @@
1
+ export { default } from './usePrefersReducedMotion.js';
2
+ import '../../slicedToArray-DmsZvA_9.js';
3
+ import '../../unsupportedIterableToArray-Dqz8Y8_I.js';
4
+ import 'react';
5
+ import './constants.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,44 @@
1
+ import { _ as _slicedToArray } from '../../slicedToArray-DmsZvA_9.js';
2
+ import { useState, useEffect } from 'react';
3
+ import { QUERY } from './constants.js';
4
+ import '../../unsupportedIterableToArray-Dqz8Y8_I.js';
5
+
6
+ var isRenderingOnServer = typeof window === "undefined";
7
+ var getInitialState = function getInitialState() {
8
+ return (
9
+ // For our initial server render, we won't know if the user
10
+ // prefers reduced motion, but it doesn't matter. This value
11
+ // will be overwritten on the client, before any animations
12
+ // occur.
13
+ isRenderingOnServer ? true : !window.matchMedia(QUERY).matches
14
+ );
15
+ };
16
+ var usePrefersReducedMotion = function usePrefersReducedMotion() {
17
+ var _useState = useState(getInitialState),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ prefersReducedMotion = _useState2[0],
20
+ setPrefersReducedMotion = _useState2[1];
21
+ useEffect(function () {
22
+ if (isRenderingOnServer) return undefined;
23
+ var mediaQueryList = window.matchMedia(QUERY);
24
+ var listener = function listener(event) {
25
+ setPrefersReducedMotion(!event.matches);
26
+ };
27
+ if (mediaQueryList.addEventListener) {
28
+ mediaQueryList.addEventListener("change", listener);
29
+ } else {
30
+ mediaQueryList.addListener(listener);
31
+ }
32
+ return function () {
33
+ if (mediaQueryList.removeEventListener) {
34
+ mediaQueryList.removeEventListener("change", listener);
35
+ } else {
36
+ mediaQueryList.removeListener(listener);
37
+ }
38
+ };
39
+ }, []);
40
+ return prefersReducedMotion;
41
+ };
42
+
43
+ export { usePrefersReducedMotion as default };
44
+ //# sourceMappingURL=usePrefersReducedMotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrefersReducedMotion.js","sources":["../../../src/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\nimport { QUERY } from \"./constants\";\n\nconst isRenderingOnServer = typeof window === \"undefined\";\n\nconst getInitialState = () =>\n // For our initial server render, we won't know if the user\n // prefers reduced motion, but it doesn't matter. This value\n // will be overwritten on the client, before any animations\n // occur.\n isRenderingOnServer ? true : !window.matchMedia(QUERY).matches;\n\nconst usePrefersReducedMotion = () => {\n const [prefersReducedMotion, setPrefersReducedMotion] =\n useState(getInitialState);\n\n useEffect(() => {\n if (isRenderingOnServer) return undefined;\n\n const mediaQueryList = window.matchMedia(QUERY);\n\n const listener = event => {\n setPrefersReducedMotion(!event.matches);\n };\n\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", listener);\n } else {\n mediaQueryList.addListener(listener);\n }\n\n return () => {\n if (mediaQueryList.removeEventListener) {\n mediaQueryList.removeEventListener(\"change\", listener);\n } else {\n mediaQueryList.removeListener(listener);\n }\n };\n }, []);\n\n return prefersReducedMotion;\n};\n\nexport default usePrefersReducedMotion;\n"],"names":["isRenderingOnServer","window","getInitialState","matchMedia","QUERY","matches","usePrefersReducedMotion","_useState","useState","_useState2","_slicedToArray","prefersReducedMotion","setPrefersReducedMotion","useEffect","undefined","mediaQueryList","listener","event","addEventListener","addListener","removeEventListener","removeListener"],"mappings":";;;;;AAIA,IAAMA,mBAAmB,GAAG,OAAOC,MAAM,KAAK,WAAW;AAEzD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAAA;AAAA,EAAA;AACnB;AACA;AACA;AACA;IACAF,mBAAmB,GAAG,IAAI,GAAG,CAACC,MAAM,CAACE,UAAU,CAACC,KAAK,CAAC,CAACC;AAAO;AAAA,CAAA;AAEhE,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,GAAS;AACpC,EAAA,IAAAC,SAAA,GACEC,QAAQ,CAACN,eAAe,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AADpBI,IAAAA,oBAAoB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,uBAAuB,GAAAH,UAAA,CAAA,CAAA,CAAA;AAGpDI,EAAAA,SAAS,CAAC,YAAM;IACd,IAAIb,mBAAmB,EAAE,OAAOc,SAAS;AAEzC,IAAA,IAAMC,cAAc,GAAGd,MAAM,CAACE,UAAU,CAACC,KAAK,CAAC;AAE/C,IAAA,IAAMY,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;AACxBL,MAAAA,uBAAuB,CAAC,CAACK,KAAK,CAACZ,OAAO,CAAC;KACxC;IAED,IAAIU,cAAc,CAACG,gBAAgB,EAAE;AACnCH,MAAAA,cAAc,CAACG,gBAAgB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;AACrD,KAAC,MAAM;AACLD,MAAAA,cAAc,CAACI,WAAW,CAACH,QAAQ,CAAC;AACtC;AAEA,IAAA,OAAO,YAAM;MACX,IAAID,cAAc,CAACK,mBAAmB,EAAE;AACtCL,QAAAA,cAAc,CAACK,mBAAmB,CAAC,QAAQ,EAAEJ,QAAQ,CAAC;AACxD,OAAC,MAAM;AACLD,QAAAA,cAAc,CAACM,cAAc,CAACL,QAAQ,CAAC;AACzC;KACD;GACF,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOL,oBAAoB;AAC7B;;;;"}
package/initializers.d.ts CHANGED
@@ -65,7 +65,7 @@ type TaxonomiesType = {
65
65
  plural: string;
66
66
  };
67
67
  };
68
- export default function initializeApplication(configurations: Configurations): void;
68
+ export default function initializeApplication(configurations?: Configurations): void;
69
69
  export const globalProps: GlobalPropsType;
70
70
  export const taxonomies: TaxonomiesType;
71
71
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "4.13.93",
3
+ "version": "4.13.94-beta.1",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -67,7 +67,8 @@
67
67
  "files": [
68
68
  "dist",
69
69
  "configs",
70
- "*.d.ts"
70
+ "*.d.ts",
71
+ "src/translations"
71
72
  ],
72
73
  "devDependencies": {
73
74
  "@babel/cli": "^7.23.0",
@@ -167,6 +168,7 @@
167
168
  "husky": "7.0.4",
168
169
  "i18next": "22.5.1",
169
170
  "i18next-browser-languagedetector": "^7.1.0",
171
+ "i18next-resources-to-backend": "^1.2.1",
170
172
  "immer": "^10.0.2",
171
173
  "jest": "29.7.0",
172
174
  "jest-environment-jsdom": "29.7.0",
package/react-utils.d.ts CHANGED
@@ -527,6 +527,71 @@ export function useOnClickOutside<T>(ref: React.MutableRefObject<T>, handler: (e
527
527
  *
528
528
  */
529
529
  export function usePrevious<T>(value: T): T;
530
+ /**
531
+ *
532
+ * The usePrefersReducedMotion hook is a utility that detects whether the user has
533
+ *
534
+ * preferred reduced motion enabled in their system settings. This is particularly
535
+ *
536
+ * useful for creating accessible user interfaces that respect user preferences for
537
+ *
538
+ * motion and animations. The hook listens to changes in the user's motion
539
+ *
540
+ * preferences and updates accordingly.
541
+ *
542
+ * This hook uses the CSS media query (prefers-reduced-motion: no-preference) to
543
+ *
544
+ * determine if the user prefers reduced motion. When the user has reduced motion
545
+ *
546
+ * enabled, the media query will not match, and the hook will return true.
547
+ *
548
+ * This hook does not accept any arguments.
549
+ *
550
+ * The following code snippet demonstrates the usage of usePrefersReducedMotion to
551
+ *
552
+ * conditionally apply animations based on user preferences.
553
+ *
554
+ * @example
555
+ *
556
+ * import { usePrefersReducedMotion } from "@bigbinary/neeto-commons-frontend/react-utils";
557
+ *
558
+ * const MyComponent = () => {
559
+ * const prefersReducedMotion = usePrefersReducedMotion();
560
+ *
561
+ * return (
562
+ * <div
563
+ * className={prefersReducedMotion ? "static" : "animate-fade-in"}
564
+ * >
565
+ * Content that respects motion preferences
566
+ * </div>
567
+ * );
568
+ * };
569
+ * @endexample
570
+ * You can also use this hook to conditionally render animation libraries or
571
+ *
572
+ * components:
573
+ *
574
+ * @example
575
+ *
576
+ * import { usePrefersReducedMotion } from "@bigbinary/neeto-commons-frontend/react-utils";
577
+ * import { motion } from "framer-motion";
578
+ *
579
+ * const AnimatedComponent = ({ children }) => {
580
+ * const prefersReducedMotion = usePrefersReducedMotion();
581
+ *
582
+ * return (
583
+ * <motion.div
584
+ * initial={{ opacity: 0 }}
585
+ * animate={{ opacity: 1 }}
586
+ * transition={{ duration: prefersReducedMotion ? 0 : 0.5 }}
587
+ * >
588
+ * {children}
589
+ * </motion.div>
590
+ * );
591
+ * };
592
+ * @endexample
593
+ */
594
+ export function usePrefersReducedMotion(): boolean;
530
595
  /**
531
596
  *
532
597
  * The useUpdateEffect hook is a variation of the standard useEffect hook in
@@ -1950,13 +2015,13 @@ export function lazyWithRetry(importFn: () => Promise<{
1950
2015
  * import mount from "@bigbinary/neeto-commons-frontend/react-utils/mount";
1951
2016
  *
1952
2017
  * // Define your component mappings
1953
- * const components = {
2018
+ * const componentMap = {
1954
2019
  * MyComponent: () => import("./components/MyComponent"),
1955
2020
  * AnotherComponent: () => import("./components/AnotherComponent"),
1956
2021
  * };
1957
2022
  *
1958
2023
  * // Call mount with the component mappings
1959
- * mount(components);
2024
+ * mount(componentMap);
1960
2025
  * @endexample
1961
2026
  * In your HTML, you would have elements like:
1962
2027
  *
@@ -1975,6 +2040,6 @@ export function lazyWithRetry(importFn: () => Promise<{
1975
2040
  * with automatic retry logic.
1976
2041
  *
1977
2042
  */
1978
- export function mount(components: Record<string, () => Promise<{
2043
+ export function mount(componentMap: Record<string, () => Promise<{
1979
2044
  default: React.ComponentType<any>;
1980
2045
  } | React.ComponentType<any>>>): void;
@@ -0,0 +1,111 @@
1
+ {
2
+ "generic": {
3
+ "error": "حدث خطأ ما. يرجى المحاولة مرة أخرى لاحقًا."
4
+ },
5
+ "authentication": {
6
+ "notLoggedIn": "لم يتمكن من المصادقة، يرجى تسجيل الدخول للمتابعة!",
7
+ "couldNotAuth": "لم يتمكن من المصادقة مع {{parameter}} المقدم.",
8
+ "incorrectPassword": "كلمة المرور الحالية غير صحيحة. يرجى المحاولة مرة أخرى.",
9
+ "incorrectEmailPassword": "البريد الإلكتروني أو كلمة المرور غير صحيحة. يرجى المحاولة مرة أخرى."
10
+ },
11
+ "authorization": {
12
+ "unauthorized": "أنت غير مخول لأداء هذا الإجراء."
13
+ },
14
+ "resource": {
15
+ "add_one": "{{entity}} تمت إضافته بنجاح.",
16
+ "add_other": "{{entity}} تمت إضافتها بنجاح.",
17
+ "save": "{{entity}} تم حفظه بنجاح.",
18
+ "save_one": "{{entity}} تم حفظه بنجاح.",
19
+ "save_other": "{{entity}} تمت حفظها بنجاح.",
20
+ "update": "{{entity}} تم تحديثه بنجاح.",
21
+ "update_one": "{{entity}} تم تحديثه بنجاح.",
22
+ "update_other": "{{entity}} تمت تحديثها بنجاح.",
23
+ "delete_one": "{{entity}} تم حذفه بنجاح.",
24
+ "delete_other": "{{entity}} تمت إزالته بنجاح.",
25
+ "clone": "{{entity}} تم نسخه بنجاح.",
26
+ "notFound": "{{entity}} غير موجود.",
27
+ "remove_one": "{{entity}} تم إزالته بنجاح.",
28
+ "remove_other": "{{entity}} تمت إزالتها بنجاح.",
29
+ "sent": "{{entity}} تم إرساله بنجاح.",
30
+ "merged": "{{entity}} تم دمجه بنجاح.",
31
+ "disconnected": "{{entity}} تم فصله بنجاح."
32
+ },
33
+ "otp": {
34
+ "sent": "تم إرسال OTP بنجاح.",
35
+ "invalid": "OTP غير صالح",
36
+ "verified": "تم التحقق من OTP بنجاح."
37
+ },
38
+ "upload": {
39
+ "error": "حدث خطأ أثناء تحميل الملف"
40
+ },
41
+ "image": {
42
+ "profile": {
43
+ "removalFailed": "فشل في إزالة صورة الملف الشخصي",
44
+ "removalSuccess": "تمت إزالة صورة الملف الشخصي بنجاح"
45
+ },
46
+ "contentTypeInvalid": "أنواع الملفات المدعومة هي jpg، png، svg فقط",
47
+ "sizeOutOfRange": "يجب ألا يتجاوز {{maxSize, number}} ميجابايت"
48
+ },
49
+ "userRole": {
50
+ "deactivateActiveAdmin": "لا يمكنك إلغاء تنشيط المسؤول النشط من مساحة العمل!"
51
+ },
52
+ "activeRecord": {
53
+ "error": {
54
+ "blankName": "لا يمكن أن يكون الاسم فارغًا",
55
+ "blankDescription": "لا يمكن أن تكون الوصف فارغًا",
56
+ "blankValue": "لا يمكن أن تكون القيمة فارغة",
57
+ "prefixType": "نوع البادئة {{value}} غير صالح",
58
+ "minimumEntryLimit": "يجب أن تكون الحد الأدنى لعدد الإدخالات أقل من أو يساوي {{maximumEntryLimit, number}}",
59
+ "maximumEntryLimit": "يجب أن تكون الحد الأقصى لعدد الإدخالات أكبر من أو يساوي {{minimumEntryLimit, number}}"
60
+ }
61
+ },
62
+ "sessions": {
63
+ "expiry": "انتهت صلاحية جلستك. يرجى تسجيل الدخول مرة أخرى."
64
+ },
65
+ "payment": {
66
+ "error": {
67
+ "incomplete": "لم يتمكن من إكمال الدفع"
68
+ }
69
+ },
70
+ "invitations": {
71
+ "deleted_one": "تم حذف الدعوة بنجاح",
72
+ "deleted_other": "{{count, number}} دعوات تم حذفها بنجاح",
73
+ "sent_one": "تم إرسال الدعوة بنجاح",
74
+ "sent_other": "{{count, number}} دعوات تم إرسالها بنجاح",
75
+ "notFound": "{{email}} لم يتم دعوتها لاختبار هذا الموقع."
76
+ },
77
+ "github": {
78
+ "error": {
79
+ "webhookPermissionDenied": "تم رفض الإذن. تأكد من أنك تمتلك الإذن لإنشاء webhooks للمستودع.",
80
+ "primaryNonDeletable": "لا يمكن حذف حساب GitHub الأساسي."
81
+ }
82
+ },
83
+ "neetoCommons": {
84
+ "fallbackComponent": {
85
+ "somethingWentWrong": "عذرًا، حدث خطأ ما.",
86
+ "description": "يرجى محاولة <reloading>reloading</reloading> الصفحة.<br> إذا استمرت المشكلة، <contactus>تواصل معنا</contactus>."
87
+ },
88
+ "toastr": {
89
+ "success": {
90
+ "copiedToClipboard": "تم النسخ إلى الحافظة!"
91
+ },
92
+ "error": {
93
+ "networkError": "خطأ في الشبكة. يرجى التحقق من اتصالك والمحاولة مرة أخرى.",
94
+ "noInternetConnection": "لا يوجد اتصال بالإنترنت."
95
+ }
96
+ },
97
+ "notice": {
98
+ "errorOccurred": "حدث خطأ ما."
99
+ },
100
+ "validators": {
101
+ "isRequired": "{{what}} مطلوب.",
102
+ "mustNotContainCapitalLetters": "{{what}} يجب ألا يحتوي على أحرف كبيرة.",
103
+ "mustNotContainSpaces": "{{what}} يجب ألا يحتوي على مسافات.",
104
+ "mustNotContainSpecialCharactersExceptHyphen": "{{what}} يجب ألا يحتوي على أي أحرف خاصة، باستثناء '-'",
105
+ "mustNotStartOrEndWithSpecialCharacters": "{{what}} يجب ألا يبدأ أو ينتهي بأحرف خاصة."
106
+ },
107
+ "copyToClipboard": {
108
+ "failed": "فشل في النسخ إلى الحافظة"
109
+ }
110
+ }
111
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "generic": {
3
+ "error": "Нещо се обърка. Моля, опитайте отново по-късно."
4
+ },
5
+ "authentication": {
6
+ "notLoggedIn": "Не може да се удостоверите, моля влезте, за да продължите!",
7
+ "couldNotAuth": "Не можа да се удостовери с предоставения {{parameter}}.",
8
+ "incorrectPassword": "Текущата парола е неправилна. Моля, опитайте отново.",
9
+ "incorrectEmailPassword": "Неправилен имейл или парола. Моля, опитайте отново."
10
+ },
11
+ "authorization": {
12
+ "unauthorized": "Нямате право да извършвате това действие."
13
+ },
14
+ "resource": {
15
+ "add_one": "{{entity}} беше добавен успешно.",
16
+ "add_other": "{{entity}} бяха добавени успешно.",
17
+ "save": "{{entity}} беше запазен успешно.",
18
+ "save_one": "{{entity}} беше запазен успешно.",
19
+ "save_other": "{{entity}} бяха запазени успешно.",
20
+ "update": "{{entity}} беше актуализиран успешно.",
21
+ "update_one": "{{entity}} беше актуализиран успешно.",
22
+ "update_other": "{{entity}} бяха актуализирани успешно.",
23
+ "delete_one": "{{entity}} беше изтрит успешно.",
24
+ "delete_other": "{{entity}} бяха изтрити успешно.",
25
+ "clone": "{{entity}} беше клониран успешно.",
26
+ "notFound": "{{entity}} не съществува.",
27
+ "remove_one": "{{entity}} беше премахнат успешно.",
28
+ "remove_other": "{{entity}} бяха премахнати успешно.",
29
+ "sent": "{{entity}} изпратен успешно.",
30
+ "merged": "{{entity}} бяха успешно свързани.",
31
+ "disconnected": "{{entity}} беше успешно разединен."
32
+ },
33
+ "otp": {
34
+ "sent": "OTP беше изпратен успешно.",
35
+ "invalid": "Невалиден OTP",
36
+ "verified": "OTP беше успешно проверен."
37
+ },
38
+ "upload": {
39
+ "error": "Възникна грешка при качването на файла"
40
+ },
41
+ "image": {
42
+ "profile": {
43
+ "removalFailed": "Неуспешно премахване на снимката на профила",
44
+ "removalSuccess": "Снимката на профила е успешно премахната"
45
+ },
46
+ "contentTypeInvalid": "Други от jpg, png, svg не са поддържани",
47
+ "sizeOutOfRange": "Не трябва да е повече от {{maxSize, number}} MB"
48
+ },
49
+ "userRole": {
50
+ "deactivateActiveAdmin": "Не можете да деактивирате активен администратор от работното пространство!"
51
+ },
52
+ "activeRecord": {
53
+ "error": {
54
+ "blankName": "Името не може да бъде празно",
55
+ "blankDescription": "Описание не може да бъде празно",
56
+ "blankValue": "Стойността не може да бъде празна",
57
+ "prefixType": "Типът на префикса {{value}} не е валиден",
58
+ "minimumEntryLimit": "Минималният лимит за запис трябва да бъде по-малък или равен на {{maximumEntryLimit, number}}",
59
+ "maximumEntryLimit": "Максималният лимит за запис трябва да бъде по-голям или равен на {{minimumEntryLimit, number}}"
60
+ }
61
+ },
62
+ "sessions": {
63
+ "expiry": "Вашата сесия е изтекла. Моля, влезте отново."
64
+ },
65
+ "payment": {
66
+ "error": {
67
+ "incomplete": "Вашето плащане не можа да бъде завършено"
68
+ }
69
+ },
70
+ "invitations": {
71
+ "deleted_one": "Поканата беше изтрита успешно",
72
+ "deleted_other": "{{count, number}} покани бяха изтрити успешно",
73
+ "sent_one": "Поканата беше изпратена успешно",
74
+ "sent_other": "{{count, number}} покани бяха изпратени успешно",
75
+ "notFound": "{{email}} не е бил поканен да тества този уебсайт."
76
+ },
77
+ "github": {
78
+ "error": {
79
+ "webhookPermissionDenied": "Достъпът е отказан. Уверете се, че имате право да създавате уебхукове за хранилището.",
80
+ "primaryNonDeletable": "Основната Github сметка не може да бъде изтрита."
81
+ }
82
+ },
83
+ "neetoCommons": {
84
+ "fallbackComponent": {
85
+ "somethingWentWrong": "Съжалявам, нещо се обърка.",
86
+ "description": "Моля опитайте <reloading>rелодиране</reloading> на страницата.<br> Ако проблемът продължава, <contactus>контактувайте с нас</contactus>."
87
+ },
88
+ "toastr": {
89
+ "success": {
90
+ "copiedToClipboard": "Копирано в клипборда!"
91
+ },
92
+ "error": {
93
+ "networkError": "Грешка в мрежата. Моля, проверете връзката си и опитайте отново.",
94
+ "noInternetConnection": "Няма интернет връзка."
95
+ }
96
+ },
97
+ "notice": {
98
+ "errorOccurred": "Възникна грешка."
99
+ },
100
+ "validators": {
101
+ "isRequired": "{{what}} е задължително.",
102
+ "mustNotContainCapitalLetters": "{{what}} не трябва да съдържа главни букви.",
103
+ "mustNotContainSpaces": "{{what}} не трябва да съдържа интервали.",
104
+ "mustNotContainSpecialCharactersExceptHyphen": "{{what}} не трябва да съдържа специални символи, с изключение на '-'",
105
+ "mustNotStartOrEndWithSpecialCharacters": "{{what}} не трябва да започва или завършва със специални символи."
106
+ },
107
+ "copyToClipboard": {
108
+ "failed": "Неуспешно копиране в клипборда"
109
+ }
110
+ }
111
+ }