@intlayer/design-system 5.2.9 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/.vite/manifest.json +15 -12
  2. package/dist/components/DictionaryEditor/DictionaryEditor.cjs +1 -1
  3. package/dist/components/DictionaryEditor/DictionaryEditor.mjs +1 -1
  4. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +1 -1
  5. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +1 -1
  6. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.cjs +1 -1
  7. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs +1 -1
  8. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs +1 -1
  9. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -1
  10. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs +15 -4
  11. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs.map +1 -1
  12. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts.map +1 -1
  13. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs +15 -4
  14. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
  15. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +1 -1
  16. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +1 -1
  17. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +1 -1
  18. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
  19. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
  20. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +1 -1
  21. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  22. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs +1 -1
  23. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -1
  24. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs +2 -1
  25. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs.map +1 -1
  26. package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +2 -1
  27. package/dist/components/DictionaryEditor/NodeWrapper/index.mjs.map +1 -1
  28. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +1 -5
  29. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  30. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  31. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -6
  32. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  33. package/dist/components/Form/FormBase.cjs +2 -1
  34. package/dist/components/Form/FormBase.cjs.map +1 -1
  35. package/dist/components/Form/FormBase.d.ts.map +1 -1
  36. package/dist/components/Form/FormBase.mjs +2 -1
  37. package/dist/components/Form/FormBase.mjs.map +1 -1
  38. package/dist/index-BCuMWKyy.js.map +1 -1
  39. package/dist/index-BYzBot7l.cjs.map +1 -1
  40. package/dist/{index-D02c1QrF.cjs → index-BpCAhDMe.cjs} +3 -12
  41. package/dist/index-BpCAhDMe.cjs.map +1 -0
  42. package/dist/{index-C57uA6Lk.js → index-CVTE3oHq.js} +2 -11
  43. package/dist/index-CVTE3oHq.js.map +1 -0
  44. package/dist/zod-BV4nCGJE.js.map +1 -1
  45. package/dist/zod-DSrtTSD_.cjs.map +1 -1
  46. package/package.json +20 -19
  47. package/dist/index-C57uA6Lk.js.map +0 -1
  48. package/dist/index-D02c1QrF.cjs.map +0 -1
@@ -63,19 +63,21 @@
63
63
  "src/hooks/useScrollBlockage/useScrollBlockageStore.ts"
64
64
  ]
65
65
  },
66
- "_index-C57uA6Lk.js": {
67
- "file": "index-C57uA6Lk.js",
66
+ "_index-BpCAhDMe.cjs": {
67
+ "file": "index-BpCAhDMe.cjs",
68
68
  "name": "index",
69
69
  "imports": [
70
70
  "src/components/DictionaryEditor/ItemLayout.tsx",
71
+ "src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx",
71
72
  "src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"
72
73
  ]
73
74
  },
74
- "_index-D02c1QrF.cjs": {
75
- "file": "index-D02c1QrF.cjs",
75
+ "_index-CVTE3oHq.js": {
76
+ "file": "index-CVTE3oHq.js",
76
77
  "name": "index",
77
78
  "imports": [
78
79
  "src/components/DictionaryEditor/ItemLayout.tsx",
80
+ "src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx",
79
81
  "src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"
80
82
  ]
81
83
  },
@@ -714,7 +716,7 @@
714
716
  "isEntry": true,
715
717
  "imports": [
716
718
  "src/components/DictionaryFieldEditor/SaveForm/SaveForm.tsx",
717
- "_index-D02c1QrF.cjs"
719
+ "_index-BpCAhDMe.cjs"
718
720
  ]
719
721
  },
720
722
  "src/components/DictionaryEditor/ItemLayout.tsx": {
@@ -734,7 +736,7 @@
734
736
  "isEntry": true,
735
737
  "imports": [
736
738
  "src/components/DictionaryEditor/ItemLayout.tsx",
737
- "_index-D02c1QrF.cjs"
739
+ "_index-BpCAhDMe.cjs"
738
740
  ]
739
741
  },
740
742
  "src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx": {
@@ -743,7 +745,7 @@
743
745
  "src": "src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx",
744
746
  "isEntry": true,
745
747
  "imports": [
746
- "_index-D02c1QrF.cjs"
748
+ "_index-BpCAhDMe.cjs"
747
749
  ]
748
750
  },
749
751
  "src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx": {
@@ -752,7 +754,7 @@
752
754
  "src": "src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx",
753
755
  "isEntry": true,
754
756
  "imports": [
755
- "_index-D02c1QrF.cjs"
757
+ "_index-BpCAhDMe.cjs"
756
758
  ]
757
759
  },
758
760
  "src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx": {
@@ -761,7 +763,7 @@
761
763
  "src": "src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx",
762
764
  "isEntry": true,
763
765
  "imports": [
764
- "_index-D02c1QrF.cjs"
766
+ "src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"
765
767
  ]
766
768
  },
767
769
  "src/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.tsx": {
@@ -771,7 +773,7 @@
771
773
  "isEntry": true,
772
774
  "imports": [
773
775
  "src/components/DictionaryEditor/ItemLayout.tsx",
774
- "_index-D02c1QrF.cjs"
776
+ "_index-BpCAhDMe.cjs"
775
777
  ]
776
778
  },
777
779
  "src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx": {
@@ -793,7 +795,7 @@
793
795
  "src": "src/components/DictionaryEditor/NodeWrapper/TranslationWrapper.tsx",
794
796
  "isEntry": true,
795
797
  "imports": [
796
- "_index-D02c1QrF.cjs"
798
+ "_index-BpCAhDMe.cjs"
797
799
  ]
798
800
  },
799
801
  "src/components/DictionaryEditor/NodeWrapper/index.tsx": {
@@ -802,7 +804,8 @@
802
804
  "src": "src/components/DictionaryEditor/NodeWrapper/index.tsx",
803
805
  "isEntry": true,
804
806
  "imports": [
805
- "_index-D02c1QrF.cjs",
807
+ "_index-BpCAhDMe.cjs",
808
+ "src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx",
806
809
  "src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"
807
810
  ]
808
811
  },
@@ -5,7 +5,7 @@ const jsxRuntime = require("react/jsx-runtime");
5
5
  const ReactExports = require("react");
6
6
  const editorReact = require("@intlayer/editor-react");
7
7
  const components_DictionaryFieldEditor_SaveForm_SaveForm = require("../DictionaryFieldEditor/SaveForm/SaveForm.cjs");
8
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../index-D02c1QrF.cjs");
8
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../index-BpCAhDMe.cjs");
9
9
  const DictionaryEditor = ({
10
10
  dictionary,
11
11
  mode,
@@ -3,7 +3,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { createElement } from "react";
4
4
  import { useEditedContent, useFocusDictionary } from "@intlayer/editor-react";
5
5
  import { SaveForm } from "../DictionaryFieldEditor/SaveForm/SaveForm.mjs";
6
- import { N as NodeWrapper } from "../../index-C57uA6Lk.js";
6
+ import { N as NodeWrapper } from "../../index-CVTE3oHq.js";
7
7
  const DictionaryEditor = ({
8
8
  dictionary,
9
9
  mode,
@@ -3,6 +3,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("@intlayer/core");
5
5
  require("../ItemLayout.cjs");
6
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
6
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
7
7
  exports.ArrayWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.ArrayWrapper;
8
8
  //# sourceMappingURL=ArrayWrapper.cjs.map
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@intlayer/core";
3
3
  import "../ItemLayout.mjs";
4
- import { A } from "../../../index-C57uA6Lk.js";
4
+ import { A } from "../../../index-CVTE3oHq.js";
5
5
  export {
6
6
  A as ArrayWrapper
7
7
  };
@@ -3,6 +3,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("react");
5
5
  require("@intlayer/core");
6
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
6
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
7
7
  exports.ConditionWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.ConditionWrapper;
8
8
  //# sourceMappingURL=ConditionWrapper.cjs.map
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "@intlayer/core";
4
- import { C } from "../../../index-C57uA6Lk.js";
4
+ import { C } from "../../../index-CVTE3oHq.js";
5
5
  export {
6
6
  C as ConditionWrapper
7
7
  };
@@ -3,6 +3,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("react");
5
5
  require("@intlayer/core");
6
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
6
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
7
7
  exports.EnumerationWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.EnumerationWrapper;
8
8
  //# sourceMappingURL=EnumerationWrapper.cjs.map
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "@intlayer/core";
4
- import { E } from "../../../index-C57uA6Lk.js";
4
+ import { E } from "../../../index-CVTE3oHq.js";
5
5
  export {
6
6
  E as EnumerationWrapper
7
7
  };
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("react/jsx-runtime");
4
- require("@intlayer/core");
5
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
6
- exports.MarkdownWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.MarkdownWrapper;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const core = require("@intlayer/core");
5
+ const components_DictionaryEditor_NodeWrapper_StringWrapper = require("./StringWrapper.cjs");
6
+ const MarkdownWrapper = (props) => {
7
+ const { keyPath, section } = props;
8
+ const newKeyPath = [
9
+ ...keyPath,
10
+ {
11
+ type: core.NodeType.Markdown
12
+ }
13
+ ];
14
+ const subSection = section[core.NodeType.Markdown];
15
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 grid grid-cols-[auto,1fr] gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(components_DictionaryEditor_NodeWrapper_StringWrapper.StringWrapper, { ...props, keyPath: newKeyPath, section: subSection }) });
16
+ };
17
+ exports.MarkdownWrapper = MarkdownWrapper;
7
18
  //# sourceMappingURL=MarkdownWrapper.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownWrapper.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"MarkdownWrapper.cjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx"],"sourcesContent":["import { type KeyPath, NodeType, type MarkdownContent } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { type NodeWrapperProps } from './index';\nimport { StringWrapper } from './StringWrapper';\n\ntype MarkdownWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: MarkdownContent;\n};\n\nexport const MarkdownWrapper: FC<MarkdownWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const subSection = section[NodeType.Markdown];\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n <StringWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </div>\n );\n};\n"],"names":["NodeType","jsx","StringWrapper"],"mappings":";;;;;AASa,MAAA,kBAA4C,CAAC,UAAU;AAC5D,QAAA,EAAE,SAAS,QAAA,IAAY;AAE7B,QAAM,aAAwB;AAAA,IAC5B,GAAG;AAAA,IACH;AAAA,MACE,MAAMA,KAAAA,SAAS;AAAA,IAAA;AAAA,EAEnB;AAEM,QAAA,aAAa,QAAQA,KAAA,SAAS,QAAQ;AAE5C,SACGC,2BAAAA,IAAA,OAAA,EAAI,WAAU,wCACb,UAACA,+BAAAC,sDAAAA,eAAA,EAAe,GAAG,OAAO,SAAS,YAAY,SAAS,WAAY,CAAA,GACtE;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE7D,KAAK,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC9D,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAepD,CAAC"}
1
+ {"version":3,"file":"MarkdownWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,KAAK,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC9D,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAiBpD,CAAC"}
@@ -1,7 +1,18 @@
1
- import "react/jsx-runtime";
2
- import "@intlayer/core";
3
- import { M } from "../../../index-C57uA6Lk.js";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { NodeType } from "@intlayer/core";
3
+ import { StringWrapper } from "./StringWrapper.mjs";
4
+ const MarkdownWrapper = (props) => {
5
+ const { keyPath, section } = props;
6
+ const newKeyPath = [
7
+ ...keyPath,
8
+ {
9
+ type: NodeType.Markdown
10
+ }
11
+ ];
12
+ const subSection = section[NodeType.Markdown];
13
+ return /* @__PURE__ */ jsx("div", { className: "ml-2 grid grid-cols-[auto,1fr] gap-2", children: /* @__PURE__ */ jsx(StringWrapper, { ...props, keyPath: newKeyPath, section: subSection }) });
14
+ };
4
15
  export {
5
- M as MarkdownWrapper
16
+ MarkdownWrapper
6
17
  };
7
18
  //# sourceMappingURL=MarkdownWrapper.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownWrapper.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"MarkdownWrapper.mjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx"],"sourcesContent":["import { type KeyPath, NodeType, type MarkdownContent } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { type NodeWrapperProps } from './index';\nimport { StringWrapper } from './StringWrapper';\n\ntype MarkdownWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: MarkdownContent;\n};\n\nexport const MarkdownWrapper: FC<MarkdownWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Markdown,\n },\n ];\n\n const subSection = section[NodeType.Markdown];\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n <StringWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </div>\n );\n};\n"],"names":[],"mappings":";;;AASa,MAAA,kBAA4C,CAAC,UAAU;AAC5D,QAAA,EAAE,SAAS,QAAA,IAAY;AAE7B,QAAM,aAAwB;AAAA,IAC5B,GAAG;AAAA,IACH;AAAA,MACE,MAAM,SAAS;AAAA,IAAA;AAAA,EAEnB;AAEM,QAAA,aAAa,QAAQ,SAAS,QAAQ;AAE5C,SACG,oBAAA,OAAA,EAAI,WAAU,wCACb,UAAC,oBAAA,eAAA,EAAe,GAAG,OAAO,SAAS,YAAY,SAAS,WAAY,CAAA,GACtE;AAEJ;"}
@@ -3,6 +3,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("@intlayer/core");
5
5
  require("../ItemLayout.cjs");
6
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
6
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
7
7
  exports.NestedObjectWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.NestedObjectWrapper;
8
8
  //# sourceMappingURL=NestedObjectWrapper.cjs.map
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@intlayer/core";
3
3
  import "../ItemLayout.mjs";
4
- import { a } from "../../../index-C57uA6Lk.js";
4
+ import { a } from "../../../index-CVTE3oHq.js";
5
5
  export {
6
6
  a as NestedObjectWrapper
7
7
  };
@@ -18,7 +18,7 @@ const StringWrapper = ({
18
18
  }) => {
19
19
  const editedContentValue = core.getContentNodeByKeyPath(editedContent, keyPath);
20
20
  if (editedContentValue && typeof editedContentValue !== "string") {
21
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: "Error loading section" });
21
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: "Error loading section - Edited content Incoherence with the original content format" });
22
22
  }
23
23
  const level = keyPath.length;
24
24
  const content = editedContentValue ?? section;
@@ -1 +1 @@
1
- {"version":3,"file":"StringWrapper.cjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"sourcesContent":["import { getContentNodeByKeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { cn } from '../../../utils/cn';\nimport { EditableFieldTextArea } from '../../EditableField';\nimport type { NodeWrapperProps } from './index';\n\ntype StringWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: string;\n};\n\nexport const StringWrapper: FC<StringWrapperProps> = ({\n keyPath,\n section,\n editedContent,\n onContentChange,\n onFocusKeyPath,\n}) => {\n const editedContentValue = getContentNodeByKeyPath(editedContent, keyPath);\n\n if (editedContentValue && typeof editedContentValue !== 'string') {\n return <>Error loading section</>;\n }\n\n const level = keyPath.length;\n\n const content = editedContentValue ?? section;\n\n return (\n <span\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'w-full rounded-md p-2 text-left transition',\n 'hover:bg-card/30 [&:has(.section:hover)]:bg-transparent',\n level === 2 && 'hover:bg-card/30',\n level >= 3 && ''\n )}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(keyPath);\n }}\n >\n <EditableFieldTextArea\n defaultValue={String(content)}\n onSave={(newValue) => onContentChange({ keyPath, newValue })}\n onCancel={() => null}\n />\n </span>\n );\n};\n"],"names":["getContentNodeByKeyPath","jsx","cn","EditableFieldTextArea"],"mappings":";;;;;;;;;;;AAUO,MAAM,gBAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,qBAAqBA,KAAAA,wBAAwB,eAAe,OAAO;AAErE,MAAA,sBAAsB,OAAO,uBAAuB,UAAU;AAChE,iEAAS,UAAqB,wBAAA,CAAA;AAAA,EAAA;AAGhC,QAAM,QAAQ,QAAQ;AAEtB,QAAM,UAAU,sBAAsB;AAGpC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAWC,SAAA;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,SAAS,CAAC,MAAM;AACd,UAAE,gBAAgB;AAClB,uBAAe,OAAO;AAAA,MACxB;AAAA,MAEA,UAAAD,2BAAA;AAAA,QAACE,+CAAA;AAAA,QAAA;AAAA,UACC,cAAc,OAAO,OAAO;AAAA,UAC5B,QAAQ,CAAC,aAAa,gBAAgB,EAAE,SAAS,UAAU;AAAA,UAC3D,UAAU,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"StringWrapper.cjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"sourcesContent":["import { getContentNodeByKeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { cn } from '../../../utils/cn';\nimport { EditableFieldTextArea } from '../../EditableField';\nimport type { NodeWrapperProps } from './index';\n\ntype StringWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: string;\n};\n\nexport const StringWrapper: FC<StringWrapperProps> = ({\n keyPath,\n section,\n editedContent,\n onContentChange,\n onFocusKeyPath,\n}) => {\n const editedContentValue = getContentNodeByKeyPath(editedContent, keyPath);\n\n if (editedContentValue && typeof editedContentValue !== 'string') {\n return (\n <>\n Error loading section - Edited content Incoherence with the original\n content format\n </>\n );\n }\n\n const level = keyPath.length;\n\n const content = editedContentValue ?? section;\n\n return (\n <span\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'w-full rounded-md p-2 text-left transition',\n 'hover:bg-card/30 [&:has(.section:hover)]:bg-transparent',\n level === 2 && 'hover:bg-card/30',\n level >= 3 && ''\n )}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(keyPath);\n }}\n >\n <EditableFieldTextArea\n defaultValue={String(content)}\n onSave={(newValue) => onContentChange({ keyPath, newValue })}\n onCancel={() => null}\n />\n </span>\n );\n};\n"],"names":["getContentNodeByKeyPath","jsx","cn","EditableFieldTextArea"],"mappings":";;;;;;;;;;;AAUO,MAAM,gBAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,qBAAqBA,KAAAA,wBAAwB,eAAe,OAAO;AAErE,MAAA,sBAAsB,OAAO,uBAAuB,UAAU;AAChE,iEACI,UAGF,sFAAA,CAAA;AAAA,EAAA;AAIJ,QAAM,QAAQ,QAAQ;AAEtB,QAAM,UAAU,sBAAsB;AAGpC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAWC,SAAA;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,SAAS,CAAC,MAAM;AACd,UAAE,gBAAgB;AAClB,uBAAe,OAAO;AAAA,MACxB;AAAA,MAEA,UAAAD,2BAAA;AAAA,QAACE,+CAAA;AAAA,QAAA;AAAA,UACC,cAAc,OAAO,OAAO;AAAA,UAC5B,QAAQ,CAAC,aAAa,gBAAgB,EAAE,SAAS,UAAU;AAAA,UAC3D,UAAU,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EACF;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAuChD,CAAC"}
1
+ {"version":3,"file":"StringWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA4ChD,CAAC"}
@@ -16,7 +16,7 @@ const StringWrapper = ({
16
16
  }) => {
17
17
  const editedContentValue = getContentNodeByKeyPath(editedContent, keyPath);
18
18
  if (editedContentValue && typeof editedContentValue !== "string") {
19
- return /* @__PURE__ */ jsx(Fragment, { children: "Error loading section" });
19
+ return /* @__PURE__ */ jsx(Fragment, { children: "Error loading section - Edited content Incoherence with the original content format" });
20
20
  }
21
21
  const level = keyPath.length;
22
22
  const content = editedContentValue ?? section;
@@ -1 +1 @@
1
- {"version":3,"file":"StringWrapper.mjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"sourcesContent":["import { getContentNodeByKeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { cn } from '../../../utils/cn';\nimport { EditableFieldTextArea } from '../../EditableField';\nimport type { NodeWrapperProps } from './index';\n\ntype StringWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: string;\n};\n\nexport const StringWrapper: FC<StringWrapperProps> = ({\n keyPath,\n section,\n editedContent,\n onContentChange,\n onFocusKeyPath,\n}) => {\n const editedContentValue = getContentNodeByKeyPath(editedContent, keyPath);\n\n if (editedContentValue && typeof editedContentValue !== 'string') {\n return <>Error loading section</>;\n }\n\n const level = keyPath.length;\n\n const content = editedContentValue ?? section;\n\n return (\n <span\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'w-full rounded-md p-2 text-left transition',\n 'hover:bg-card/30 [&:has(.section:hover)]:bg-transparent',\n level === 2 && 'hover:bg-card/30',\n level >= 3 && ''\n )}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(keyPath);\n }}\n >\n <EditableFieldTextArea\n defaultValue={String(content)}\n onSave={(newValue) => onContentChange({ keyPath, newValue })}\n onCancel={() => null}\n />\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,gBAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,qBAAqB,wBAAwB,eAAe,OAAO;AAErE,MAAA,sBAAsB,OAAO,uBAAuB,UAAU;AAChE,2CAAS,UAAqB,wBAAA,CAAA;AAAA,EAAA;AAGhC,QAAM,QAAQ,QAAQ;AAEtB,QAAM,UAAU,sBAAsB;AAGpC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,SAAS,CAAC,MAAM;AACd,UAAE,gBAAgB;AAClB,uBAAe,OAAO;AAAA,MACxB;AAAA,MAEA,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAc,OAAO,OAAO;AAAA,UAC5B,QAAQ,CAAC,aAAa,gBAAgB,EAAE,SAAS,UAAU;AAAA,UAC3D,UAAU,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"StringWrapper.mjs","sources":["../../../../src/components/DictionaryEditor/NodeWrapper/StringWrapper.tsx"],"sourcesContent":["import { getContentNodeByKeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { cn } from '../../../utils/cn';\nimport { EditableFieldTextArea } from '../../EditableField';\nimport type { NodeWrapperProps } from './index';\n\ntype StringWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: string;\n};\n\nexport const StringWrapper: FC<StringWrapperProps> = ({\n keyPath,\n section,\n editedContent,\n onContentChange,\n onFocusKeyPath,\n}) => {\n const editedContentValue = getContentNodeByKeyPath(editedContent, keyPath);\n\n if (editedContentValue && typeof editedContentValue !== 'string') {\n return (\n <>\n Error loading section - Edited content Incoherence with the original\n content format\n </>\n );\n }\n\n const level = keyPath.length;\n\n const content = editedContentValue ?? section;\n\n return (\n <span\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'w-full rounded-md p-2 text-left transition',\n 'hover:bg-card/30 [&:has(.section:hover)]:bg-transparent',\n level === 2 && 'hover:bg-card/30',\n level >= 3 && ''\n )}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(keyPath);\n }}\n >\n <EditableFieldTextArea\n defaultValue={String(content)}\n onSave={(newValue) => onContentChange({ keyPath, newValue })}\n onCancel={() => null}\n />\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,gBAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,qBAAqB,wBAAwB,eAAe,OAAO;AAErE,MAAA,sBAAsB,OAAO,uBAAuB,UAAU;AAChE,2CACI,UAGF,sFAAA,CAAA;AAAA,EAAA;AAIJ,QAAM,QAAQ,QAAQ;AAEtB,QAAM,UAAU,sBAAsB;AAGpC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,SAAS,CAAC,MAAM;AACd,UAAE,gBAAgB;AAClB,uBAAe,OAAO;AAAA,MACxB;AAAA,MAEA,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAc,OAAO,OAAO;AAAA,UAC5B,QAAQ,CAAC,aAAa,gBAAgB,EAAE,SAAS,UAAU;AAAA,UAC3D,UAAU,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EACF;AAEJ;"}
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("@intlayer/core");
5
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
5
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
6
6
  exports.TranslationWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.TranslationWrapper;
7
7
  //# sourceMappingURL=TranslationWrapper.cjs.map
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@intlayer/core";
3
- import { T } from "../../../index-C57uA6Lk.js";
3
+ import { T } from "../../../index-CVTE3oHq.js";
4
4
  export {
5
5
  T as TranslationWrapper
6
6
  };
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("react/jsx-runtime");
4
4
  require("@intlayer/core");
5
- const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-D02c1QrF.cjs");
5
+ const components_DictionaryEditor_NodeWrapper_ArrayWrapper = require("../../../index-BpCAhDMe.cjs");
6
+ require("./MarkdownWrapper.cjs");
6
7
  require("./StringWrapper.cjs");
7
8
  exports.NodeWrapper = components_DictionaryEditor_NodeWrapper_ArrayWrapper.NodeWrapper;
8
9
  exports.traceKeys = components_DictionaryEditor_NodeWrapper_ArrayWrapper.traceKeys;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@intlayer/core";
3
- import { N, t } from "../../../index-C57uA6Lk.js";
3
+ import { N, t } from "../../../index-CVTE3oHq.js";
4
+ import "./MarkdownWrapper.mjs";
4
5
  import "./StringWrapper.mjs";
5
6
  export {
6
7
  N as NodeWrapper,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -5,7 +5,6 @@ const defaultConfiguration = require("@intlayer/config/built");
5
5
  const core = require("@intlayer/core");
6
6
  const editorReact = require("@intlayer/editor-react");
7
7
  const lucideReact = require("lucide-react");
8
- const ReactExports = require("react");
9
8
  const reactIntlayer = require("react-intlayer");
10
9
  const utils_camelCase = require("../../../utils/camelCase.cjs");
11
10
  const components_Accordion_Accordion = require("../../Accordion/Accordion.cjs");
@@ -30,10 +29,7 @@ const NavigationViewNode = ({
30
29
  goToTranslation
31
30
  } = reactIntlayer.useDictionary(components_DictionaryFieldEditor_NavigationView_navigationViewNode_content.navigationViewContent);
32
31
  const nodeType = core.getNodeType(section);
33
- const getIsSelected = ReactExports.useCallback(
34
- (keyPath2) => (focusedContent?.keyPath?.length ?? 0) > 0 && core.isSameKeyPath(keyPath2, focusedContent?.keyPath ?? []),
35
- [focusedContent?.keyPath]
36
- );
32
+ const getIsSelected = (keyPath2) => (focusedContent?.keyPath?.length ?? 0) > 0 && core.isSameKeyPath(keyPath2, focusedContent?.keyPath ?? []);
37
33
  if (!section) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
38
34
  if (typeof section === "object") {
39
35
  if (nodeType === core.NodeType.ReactNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationViewNode.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\n\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = configuration?.internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["configuration","getContentNodeByKeyPath","useEditedContentActions","useFocusDictionary","useDictionary","navigationViewContent","getNodeType","useCallback","keyPath","isSameKeyPath","jsx","Fragment","NodeType","getIsEditableSection","Button","ChevronRight","Accordion","jsxs","sectionArray","getEmptyNode","Plus","camelCaseToSentence"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationViewNode.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\n\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport type { FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = configuration?.internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []);\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["configuration","getContentNodeByKeyPath","useEditedContentActions","useFocusDictionary","useDictionary","navigationViewContent","getNodeType","keyPath","isSameKeyPath","jsx","Fragment","NodeType","getIsEditableSection","Button","ChevronRight","Accordion","jsxs","sectionArray","getEmptyNode","Plus","camelCaseToSentence"],"mappings":";;;;;;;;;;;;;AAwBO,MAAM,YAAsB,CAAC,YAAY,MAAM,UAAU;AAQzD,MAAM,qBAA2C,CAAC;AAAA,EACvD,SAAS;AAAA,EACT;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,YAAYA,sBAAe;AAC7B,QAAA,UAAUC,KAAAA,wBAAwB,aAAa,OAAO;AACtD,QAAA,EAAE,iBAAiB,IAAIC,oCAAwB;AACrD,QAAM,EAAE,0BAA0B,eAAe,IAAIC,+BAAmB;AAClE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACEC,cAAAA,cAAcC,2EAAAA,qBAAqB;AACjC,QAAA,WAAWC,iBAAY,OAAO;AACpC,QAAM,gBAAgB,CAACC,cACpB,gBAAgB,SAAS,UAAU,KAAK,KACzCC,KAAAA,cAAcD,UAAS,gBAAgB,WAAW,CAAA,CAAE;AAElD,MAAA,CAAC,QAAS,QAASE,+BAAAC,WAAAA,UAAA,CAAA,CAAA;AAEnB,MAAA,OAAO,YAAY,UAAU;AAC3B,QAAA,aAAaC,cAAS,WAAW;AACnC,mEAAS,UAAU,aAAA,CAAA;AAAA,IAAA;AAGjB,QAAA,aAAaA,cAAS,aAAa;AACrC,4CACG,OAAI,EAAA,WAAU,uCACZ,UAAQ,QAAA,IAAI,CAAC,mBAAmB;AAC/B,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAMA,KAAAA,SAAS,aAAa,KAAK,eAAe;AAAA,QACpD;AACA,cAAM,aAAaV,KAAA;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuBW,2EAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAAH,2BAAA;AAAA,YAACI,yBAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,cAEvD,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAWC,YAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAAL,2BAAA;AAAA,UAACM,+BAAA;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,YACvD,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIJ,QAAI,aAAaE,KAAAA,SAAS,eAAe,aAAaA,KAAAA,SAAS,WAAW;AACxE,aACGF,2BAAAA,IAAA,OAAA,EAAI,WAAU,uCACZ,UAAO,OAAA;AAAA,QACL,QAAgB,QAA2C;AAAA,MAAA,EAC5D,IAAI,CAAC,QAAQ;AACb,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAM,UAAU,IAAI;AAAA,QACxB;AACA,cAAM,aAAaR,KAAA;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuBW,2EAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAAH,2BAAA;AAAA,YAACI,yBAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,cAE5C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAWC,YAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAAL,2BAAA;AAAA,UAACM,+BAAA;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,YAC5C,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIA,QAAA,aAAaE,cAAS,OAAO;AAE7B,aAAAK,2BAAA,KAAC,OAAI,EAAA,WAAU,uCACX,UAAA;AAAA,QAAqC,QAAA,IAAI,CAAC,YAAY,UAAU;AAChE,gBAAM,eAA0B;AAAA,YAC9B,GAAG;AAAA,YACH,EAAE,MAAML,KAAAA,SAAS,OAAO,KAAK,MAAM;AAAA,UACrC;AAEM,gBAAA,uBAAuBC,2EAAqB,UAAU;AAE5D,cAAI,sBAAsB;AAEtB,mBAAAH,2BAAA;AAAA,cAACI,yBAAA;AAAA,cAAA;AAAA,gBACC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,gBAE1C,UAAU,cAAc,YAAY;AAAA,gBACpC,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,gBACpD,WAAWC,YAAA;AAAA,gBAEV,UAAA;AAAA,cAAA;AAAA,cARI,GAAG,KAAK;AAAA,YASf;AAAA,UAAA;AAKF,iBAAAL,2BAAA;AAAA,YAACM,+BAAA;AAAA,YAAA;AAAA,cAEC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,cAC1C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,QAAQ;AAAA,cAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT;AAAA,gBAAA;AAAA,iBAEJ,EACF,CAAA;AAAA,YAAA;AAAA,YAdK,GAAG,KAAK;AAAA,UAef;AAAA,QAAA,CAEH;AAAA,QAEDA,2BAAA;AAAA,UAACI,yBAAA;AAAA,UAAA;AAAA,YACC,OAAO,cAAc,MAAM;AAAA,YAC3B,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM;AACb,oBAAM,aAAwB;AAAA,gBAC5B,GAAG;AAAA,gBACH;AAAA,kBACE,MAAMF,KAAS,SAAA;AAAA,kBACf,KAAM,QAAqC;AAAA,gBAAA;AAAA,cAE/C;AACA,oBAAMM,gBAAe;AACrB,oBAAM,iBACJC,KAAA;AAAA,gBACED,cACGA,cAAa,SAAS,CACzB;AAAA,cAAA,KACG;AACP;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AACA,uCAAyB,UAAU;AAAA,YACrC;AAAA,YACA,MAAME,YAAA;AAAA,YAEL,UAAc,cAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,GACF;AAAA,IAAA;AAIE,UAAA,eAAe,OAAO,KAAK,OAAO;AACxC,0CACG,OAAI,EAAA,WAAU,yDACZ,UAAa,aAAA,IAAI,CAAC,QAAQ;AACzB,YAAM,eAA0B;AAAA,QAC9B,GAAG;AAAA,QACH,EAAE,MAAMR,cAAS,QAAQ,IAAI;AAAA,MAC/B;AAEM,YAAA,aAAaV,KAAAA,wBAAwB,aAAa,YAAY;AAC9D,YAAA,uBAAuBW,2EAAqB,UAAU;AAE5D,UAAI,sBAAsB;AAEtB,eAAAH,2BAAA;AAAA,UAACI,yBAAA;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,YAEtC,UAAU,cAAc,YAAY;AAAA,YACpC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,WAAWC,YAAA;AAAA,YAEV,8CAAoB,GAAG;AAAA,UAAA;AAAA,UARnB;AAAA,QASP;AAAA,MAAA;AAKF,aAAAL,2BAAA;AAAA,QAACM,+BAAA;AAAA,QAAA;AAAA,UAEC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,UACtC,UAAU,cAAc,YAAY;AAAA,UACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,UACpD,QAAQK,oCAAoB,GAAG;AAAA,UAE/B,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACX,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,SAAS;AAAA,cACT;AAAA,YAAA;AAAA,aAEJ,EACF,CAAA;AAAA,QAAA;AAAA,QAdK;AAAA,MAeP;AAAA,IAEH,CAAA,GACH;AAAA,EAAA;AAIJ,SACIO,2BAAA,KAAAN,qBAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IAEC;AAAA,IAAS;AAAA,IAET,KAAK,UAAU,OAAO;AAAA,IAAE;AAAA,IAExB,KAAK,UAAU,OAAO;AAAA,EAAA,GACzB;AAEJ;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationViewNode.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAKjB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAe,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAQ7C,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,CAkSnD,CAAC"}
1
+ {"version":3,"file":"NavigationViewNode.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAKjB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,CAgSnD,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import defaultConfiguration from "@intlayer/config/built";
3
- import { getContentNodeByKeyPath, getNodeType, isSameKeyPath, NodeType, getEmptyNode } from "@intlayer/core";
3
+ import { getContentNodeByKeyPath, getNodeType, NodeType, isSameKeyPath, getEmptyNode } from "@intlayer/core";
4
4
  import { useEditedContentActions, useFocusDictionary } from "@intlayer/editor-react";
5
5
  import { ChevronRight, Plus } from "lucide-react";
6
- import { useCallback } from "react";
7
6
  import { useDictionary } from "react-intlayer";
8
7
  import { camelCaseToSentence } from "../../../utils/camelCase.mjs";
9
8
  import { Accordion } from "../../Accordion/Accordion.mjs";
@@ -28,10 +27,7 @@ const NavigationViewNode = ({
28
27
  goToTranslation
29
28
  } = useDictionary(navigationViewContent);
30
29
  const nodeType = getNodeType(section);
31
- const getIsSelected = useCallback(
32
- (keyPath2) => (focusedContent?.keyPath?.length ?? 0) > 0 && isSameKeyPath(keyPath2, focusedContent?.keyPath ?? []),
33
- [focusedContent?.keyPath]
34
- );
30
+ const getIsSelected = (keyPath2) => (focusedContent?.keyPath?.length ?? 0) > 0 && isSameKeyPath(keyPath2, focusedContent?.keyPath ?? []);
35
31
  if (!section) return /* @__PURE__ */ jsx(Fragment, {});
36
32
  if (typeof section === "object") {
37
33
  if (nodeType === NodeType.ReactNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationViewNode.mjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\n\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = configuration?.internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["configuration","keyPath","sectionArray"],"mappings":";;;;;;;;;;;;AAwBO,MAAM,YAAsB,CAAC,YAAY,MAAM,UAAU;AAQzD,MAAM,qBAA2C,CAAC;AAAA,EACvD,SAAS;AAAA,EACT;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,YAAYA,sBAAe;AAC7B,QAAA,UAAU,wBAAwB,aAAa,OAAO;AACtD,QAAA,EAAE,iBAAiB,IAAI,wBAAwB;AACrD,QAAM,EAAE,0BAA0B,eAAe,IAAI,mBAAmB;AAClE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,cAAc,qBAAqB;AACjC,QAAA,WAAW,YAAY,OAAO;AACpC,QAAM,gBAAgB;AAAA,IACpB,CAACC,cACE,gBAAgB,SAAS,UAAU,KAAK,KACzC,cAAcA,UAAS,gBAAgB,WAAW,CAAA,CAAE;AAAA,IACtD,CAAC,gBAAgB,OAAO;AAAA,EAC1B;AAEI,MAAA,CAAC,QAAS,QAAS,oBAAA,UAAA,CAAA,CAAA;AAEnB,MAAA,OAAO,YAAY,UAAU;AAC3B,QAAA,aAAa,SAAS,WAAW;AACnC,6CAAS,UAAU,aAAA,CAAA;AAAA,IAAA;AAGjB,QAAA,aAAa,SAAS,aAAa;AACrC,iCACG,OAAI,EAAA,WAAU,uCACZ,UAAQ,QAAA,IAAI,CAAC,mBAAmB;AAC/B,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAM,SAAS,aAAa,KAAK,eAAe;AAAA,QACpD;AACA,cAAM,aAAa;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuB,qBAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,cAEvD,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAW;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,YACvD,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,8BAAC,OAAI,EAAA,WAAU,+BACb,UAAC,oBAAA,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIJ,QAAI,aAAa,SAAS,eAAe,aAAa,SAAS,WAAW;AACxE,aACG,oBAAA,OAAA,EAAI,WAAU,uCACZ,UAAO,OAAA;AAAA,QACL,QAAgB,QAA2C;AAAA,MAAA,EAC5D,IAAI,CAAC,QAAQ;AACb,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAM,UAAU,IAAI;AAAA,QACxB;AACA,cAAM,aAAa;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuB,qBAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,cAE5C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAW;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,YAC5C,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,8BAAC,OAAI,EAAA,WAAU,+BACb,UAAC,oBAAA,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIA,QAAA,aAAa,SAAS,OAAO;AAE7B,aAAA,qBAAC,OAAI,EAAA,WAAU,uCACX,UAAA;AAAA,QAAqC,QAAA,IAAI,CAAC,YAAY,UAAU;AAChE,gBAAM,eAA0B;AAAA,YAC9B,GAAG;AAAA,YACH,EAAE,MAAM,SAAS,OAAO,KAAK,MAAM;AAAA,UACrC;AAEM,gBAAA,uBAAuB,qBAAqB,UAAU;AAE5D,cAAI,sBAAsB;AAEtB,mBAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,gBAE1C,UAAU,cAAc,YAAY;AAAA,gBACpC,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,gBACpD,WAAW;AAAA,gBAEV,UAAA;AAAA,cAAA;AAAA,cARI,GAAG,KAAK;AAAA,YASf;AAAA,UAAA;AAKF,iBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,cAC1C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,QAAQ;AAAA,cAER,8BAAC,OAAI,EAAA,WAAU,+BACb,UAAC,oBAAA,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT;AAAA,gBAAA;AAAA,iBAEJ,EACF,CAAA;AAAA,YAAA;AAAA,YAdK,GAAG,KAAK;AAAA,UAef;AAAA,QAAA,CAEH;AAAA,QAED;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,cAAc,MAAM;AAAA,YAC3B,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM;AACb,oBAAM,aAAwB;AAAA,gBAC5B,GAAG;AAAA,gBACH;AAAA,kBACE,MAAM,SAAS;AAAA,kBACf,KAAM,QAAqC;AAAA,gBAAA;AAAA,cAE/C;AACA,oBAAMC,gBAAe;AACrB,oBAAM,iBACJ;AAAA,gBACEA,cACGA,cAAa,SAAS,CACzB;AAAA,cAAA,KACG;AACP;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AACA,uCAAyB,UAAU;AAAA,YACrC;AAAA,YACA,MAAM;AAAA,YAEL,UAAc,cAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,GACF;AAAA,IAAA;AAIE,UAAA,eAAe,OAAO,KAAK,OAAO;AACxC,+BACG,OAAI,EAAA,WAAU,yDACZ,UAAa,aAAA,IAAI,CAAC,QAAQ;AACzB,YAAM,eAA0B;AAAA,QAC9B,GAAG;AAAA,QACH,EAAE,MAAM,SAAS,QAAQ,IAAI;AAAA,MAC/B;AACM,YAAA,aAAa,wBAAwB,aAAa,YAAY;AAC9D,YAAA,uBAAuB,qBAAqB,UAAU;AAE5D,UAAI,sBAAsB;AAEtB,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,YAEtC,UAAU,cAAc,YAAY;AAAA,YACpC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,WAAW;AAAA,YAEV,8BAAoB,GAAG;AAAA,UAAA;AAAA,UARnB;AAAA,QASP;AAAA,MAAA;AAKF,aAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,UACtC,UAAU,cAAc,YAAY;AAAA,UACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,UACpD,QAAQ,oBAAoB,GAAG;AAAA,UAE/B,8BAAC,OAAI,EAAA,WAAU,+BACb,UAAC,oBAAA,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,SAAS;AAAA,cACT;AAAA,YAAA;AAAA,aAEJ,EACF,CAAA;AAAA,QAAA;AAAA,QAdK;AAAA,MAeP;AAAA,IAEH,CAAA,GACH;AAAA,EAAA;AAIJ,SACI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IAEC;AAAA,IAAS;AAAA,IAET,KAAK,UAAU,OAAO;AAAA,IAAE;AAAA,IAExB,KAAK,UAAU,OAAO;AAAA,EAAA,GACzB;AAEJ;"}
1
+ {"version":3,"file":"NavigationViewNode.mjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import configuration from '@intlayer/config/built';\n\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport type { FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = configuration?.internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []);\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["configuration","keyPath","sectionArray"],"mappings":"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"}
@@ -7,8 +7,9 @@ const reactHookForm = require("react-hook-form");
7
7
  const utils_cn = require("../../utils/cn.cjs");
8
8
  const awaitFunction = async (fn) => {
9
9
  if (fn && typeof fn.then === "function") {
10
- await fn;
10
+ return await fn;
11
11
  }
12
+ return fn;
12
13
  };
13
14
  const Form = ({
14
15
  schema,
@@ -1 +1 @@
1
- {"version":3,"file":"FormBase.cjs","sources":["../../../src/components/Form/FormBase.tsx"],"sourcesContent":["'use client';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { type HTMLAttributes } from 'react';\nimport {\n FormProvider,\n type FormProviderProps,\n useForm as useFormReactHookForm,\n type UseFormProps,\n} from 'react-hook-form';\nimport type { ZodType, z } from 'zod';\nimport { cn } from '../../utils/cn';\n\ntype FormProps<T extends ZodType> = HTMLAttributes<HTMLFormElement> &\n FormProviderProps<z.infer<T>> & {\n schema?: T;\n onSubmit?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitSuccess?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitError?: (error: Error) => void | Promise<void>;\n autoComplete?: boolean;\n };\n\nconst awaitFunction = async (fn: any) => {\n // Check if result is a Promise (Thenable)\n\n if (fn && typeof fn.then === 'function') {\n // It's a Promise, so wait for it to resolve\n await fn;\n }\n // If not a Promise, it will just execute without awaiting\n};\n\nexport const Form = <T extends ZodType>({\n schema,\n onSubmit: onSubmitProp,\n onSubmitSuccess: onSubmitSuccessProp,\n onSubmitError: onSubmitErrorProp,\n className,\n children,\n autoComplete,\n ...props\n}: FormProps<T>) => {\n const onSubmit = async (values: T) => {\n const parsedValues = schema?.safeParse(values) ?? {\n success: true,\n data: undefined,\n };\n\n // onSubmitProp?.(values);\n await awaitFunction(onSubmitProp?.(values));\n\n if (parsedValues.success) {\n await awaitFunction(onSubmitSuccessProp?.(parsedValues.data));\n } else {\n await awaitFunction(\n onSubmitErrorProp?.(\n new Error(\n parsedValues.error.errors.map((error) => error.message).join(', ')\n )\n )\n );\n }\n };\n\n return (\n <FormProvider {...props}>\n <form\n className={cn('flex size-full flex-col gap-y-6', className)}\n onSubmit={props.handleSubmit(onSubmit)}\n autoComplete={autoComplete ? 'on' : 'off'}\n >\n {children}\n </form>\n </FormProvider>\n );\n};\n\nexport const useForm = <T extends ZodType>(\n schema: T,\n props?: UseFormProps<z.infer<T>>\n) => {\n const form = useFormReactHookForm<z.infer<T>>({\n resolver: zodResolver(schema),\n ...props,\n });\n\n const isSubmitting = form.formState.isSubmitting;\n const isSubmitted = form.formState.isSubmitted;\n const isLoading = form.formState.isLoading;\n const isValid = form.formState.isValid;\n\n return {\n form,\n isSubmitting,\n isSubmitted,\n isLoading,\n isValid,\n };\n};\n"],"names":["jsx","FormProvider","cn","useFormReactHookForm","zodResolver"],"mappings":";;;;;;;AAsBA,MAAM,gBAAgB,OAAO,OAAY;AAGvC,MAAI,MAAM,OAAO,GAAG,SAAS,YAAY;AAEjC,UAAA;AAAA,EAAA;AAGV;AAEO,MAAM,OAAO,CAAoB;AAAA,EACtC;AAAA,EACA,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoB;AACZ,QAAA,WAAW,OAAO,WAAc;AACpC,UAAM,eAAe,QAAQ,UAAU,MAAM,KAAK;AAAA,MAChD,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAGM,UAAA,cAAc,eAAe,MAAM,CAAC;AAE1C,QAAI,aAAa,SAAS;AACxB,YAAM,cAAc,sBAAsB,aAAa,IAAI,CAAC;AAAA,IAAA,OACvD;AACC,YAAA;AAAA,QACJ;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,IAAI;AAAA,UAAA;AAAA,QACnE;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEJ;AAGE,SAAAA,2BAAA,IAACC,cAAc,cAAA,EAAA,GAAG,OAChB,UAAAD,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE,SAAAA,GAAG,mCAAmC,SAAS;AAAA,MAC1D,UAAU,MAAM,aAAa,QAAQ;AAAA,MACrC,cAAc,eAAe,OAAO;AAAA,MAEnC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEa,MAAA,UAAU,CACrB,QACA,UACG;AACH,QAAM,OAAOC,cAAAA,QAAiC;AAAA,IAC5C,UAAUC,MAAY,MAAM;AAAA,IAC5B,GAAG;AAAA,EAAA,CACJ;AAEK,QAAA,eAAe,KAAK,UAAU;AAC9B,QAAA,cAAc,KAAK,UAAU;AAC7B,QAAA,YAAY,KAAK,UAAU;AAC3B,QAAA,UAAU,KAAK,UAAU;AAExB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;"}
1
+ {"version":3,"file":"FormBase.cjs","sources":["../../../src/components/Form/FormBase.tsx"],"sourcesContent":["'use client';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { type HTMLAttributes } from 'react';\nimport {\n FormProvider,\n type FormProviderProps,\n useForm as useFormReactHookForm,\n type UseFormProps,\n} from 'react-hook-form';\nimport type { ZodType, z } from 'zod';\nimport { cn } from '../../utils/cn';\n\ntype FormProps<T extends ZodType> = HTMLAttributes<HTMLFormElement> &\n FormProviderProps<z.infer<T>> & {\n schema?: T;\n onSubmit?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitSuccess?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitError?: (error: Error) => void | Promise<void>;\n autoComplete?: boolean;\n };\n\nconst awaitFunction = async (fn: any) => {\n // Check if result is a Promise (Thenable)\n\n if (fn && typeof fn.then === 'function') {\n // It's a Promise, so wait for it to resolve\n return await fn;\n }\n // If not a Promise, it will just execute without awaiting\n return fn;\n};\n\nexport const Form = <T extends ZodType>({\n schema,\n onSubmit: onSubmitProp,\n onSubmitSuccess: onSubmitSuccessProp,\n onSubmitError: onSubmitErrorProp,\n className,\n children,\n autoComplete,\n ...props\n}: FormProps<T>) => {\n const onSubmit = async (values: T) => {\n const parsedValues = schema?.safeParse(values) ?? {\n success: true,\n data: undefined,\n };\n\n // onSubmitProp?.(values);\n await awaitFunction(onSubmitProp?.(values));\n\n if (parsedValues.success) {\n await awaitFunction(onSubmitSuccessProp?.(parsedValues.data));\n } else {\n await awaitFunction(\n onSubmitErrorProp?.(\n new Error(\n parsedValues.error.errors.map((error) => error.message).join(', ')\n )\n )\n );\n }\n };\n\n return (\n <FormProvider {...props}>\n <form\n className={cn('flex size-full flex-col gap-y-6', className)}\n onSubmit={props.handleSubmit(onSubmit)}\n autoComplete={autoComplete ? 'on' : 'off'}\n >\n {children}\n </form>\n </FormProvider>\n );\n};\n\nexport const useForm = <T extends ZodType>(\n schema: T,\n props?: UseFormProps<z.infer<T>>\n) => {\n const form = useFormReactHookForm<z.infer<T>>({\n resolver: zodResolver(schema),\n ...props,\n });\n\n const isSubmitting = form.formState.isSubmitting;\n const isSubmitted = form.formState.isSubmitted;\n const isLoading = form.formState.isLoading;\n const isValid = form.formState.isValid;\n\n return {\n form,\n isSubmitting,\n isSubmitted,\n isLoading,\n isValid,\n };\n};\n"],"names":["jsx","FormProvider","cn","useFormReactHookForm","zodResolver"],"mappings":";;;;;;;AAsBA,MAAM,gBAAgB,OAAO,OAAY;AAGvC,MAAI,MAAM,OAAO,GAAG,SAAS,YAAY;AAEvC,WAAO,MAAM;AAAA,EAAA;AAGR,SAAA;AACT;AAEO,MAAM,OAAO,CAAoB;AAAA,EACtC;AAAA,EACA,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoB;AACZ,QAAA,WAAW,OAAO,WAAc;AACpC,UAAM,eAAe,QAAQ,UAAU,MAAM,KAAK;AAAA,MAChD,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAGM,UAAA,cAAc,eAAe,MAAM,CAAC;AAE1C,QAAI,aAAa,SAAS;AACxB,YAAM,cAAc,sBAAsB,aAAa,IAAI,CAAC;AAAA,IAAA,OACvD;AACC,YAAA;AAAA,QACJ;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,IAAI;AAAA,UAAA;AAAA,QACnE;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEJ;AAGE,SAAAA,2BAAA,IAACC,cAAc,cAAA,EAAA,GAAG,OAChB,UAAAD,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWE,SAAAA,GAAG,mCAAmC,SAAS;AAAA,MAC1D,UAAU,MAAM,aAAa,QAAQ;AAAA,MACrC,cAAc,eAAe,OAAO;AAAA,MAEnC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEa,MAAA,UAAU,CACrB,QACA,UACG;AACH,QAAM,OAAOC,cAAAA,QAAiC;AAAA,IAC5C,UAAUC,MAAY,MAAM;AAAA,IAC5B,GAAG;AAAA,EAAA,CACJ;AAEK,QAAA,eAAe,KAAK,UAAU;AAC9B,QAAA,cAAc,KAAK,UAAU;AAC7B,QAAA,YAAY,KAAK,UAAU;AAC3B,QAAA,UAAU,KAAK,UAAU;AAExB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormBase.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormBase.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGtC,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI,cAAc,CAAC,eAAe,CAAC,GACjE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAYJ,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,OAAO,EAAE,yJASrC,SAAS,CAAC,CAAC,CAAC,4CAkCd,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,OAAO,EACvC,QAAQ,CAAC,EACT,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;CAmBjC,CAAC"}
1
+ {"version":3,"file":"FormBase.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormBase.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGtC,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI,cAAc,CAAC,eAAe,CAAC,GACjE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAaJ,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,OAAO,EAAE,yJASrC,SAAS,CAAC,CAAC,CAAC,4CAkCd,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,OAAO,EACvC,QAAQ,CAAC,EACT,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;CAmBjC,CAAC"}
@@ -5,8 +5,9 @@ import { useForm as useForm$1, FormProvider } from "react-hook-form";
5
5
  import { cn } from "../../utils/cn.mjs";
6
6
  const awaitFunction = async (fn) => {
7
7
  if (fn && typeof fn.then === "function") {
8
- await fn;
8
+ return await fn;
9
9
  }
10
+ return fn;
10
11
  };
11
12
  const Form = ({
12
13
  schema,
@@ -1 +1 @@
1
- {"version":3,"file":"FormBase.mjs","sources":["../../../src/components/Form/FormBase.tsx"],"sourcesContent":["'use client';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { type HTMLAttributes } from 'react';\nimport {\n FormProvider,\n type FormProviderProps,\n useForm as useFormReactHookForm,\n type UseFormProps,\n} from 'react-hook-form';\nimport type { ZodType, z } from 'zod';\nimport { cn } from '../../utils/cn';\n\ntype FormProps<T extends ZodType> = HTMLAttributes<HTMLFormElement> &\n FormProviderProps<z.infer<T>> & {\n schema?: T;\n onSubmit?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitSuccess?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitError?: (error: Error) => void | Promise<void>;\n autoComplete?: boolean;\n };\n\nconst awaitFunction = async (fn: any) => {\n // Check if result is a Promise (Thenable)\n\n if (fn && typeof fn.then === 'function') {\n // It's a Promise, so wait for it to resolve\n await fn;\n }\n // If not a Promise, it will just execute without awaiting\n};\n\nexport const Form = <T extends ZodType>({\n schema,\n onSubmit: onSubmitProp,\n onSubmitSuccess: onSubmitSuccessProp,\n onSubmitError: onSubmitErrorProp,\n className,\n children,\n autoComplete,\n ...props\n}: FormProps<T>) => {\n const onSubmit = async (values: T) => {\n const parsedValues = schema?.safeParse(values) ?? {\n success: true,\n data: undefined,\n };\n\n // onSubmitProp?.(values);\n await awaitFunction(onSubmitProp?.(values));\n\n if (parsedValues.success) {\n await awaitFunction(onSubmitSuccessProp?.(parsedValues.data));\n } else {\n await awaitFunction(\n onSubmitErrorProp?.(\n new Error(\n parsedValues.error.errors.map((error) => error.message).join(', ')\n )\n )\n );\n }\n };\n\n return (\n <FormProvider {...props}>\n <form\n className={cn('flex size-full flex-col gap-y-6', className)}\n onSubmit={props.handleSubmit(onSubmit)}\n autoComplete={autoComplete ? 'on' : 'off'}\n >\n {children}\n </form>\n </FormProvider>\n );\n};\n\nexport const useForm = <T extends ZodType>(\n schema: T,\n props?: UseFormProps<z.infer<T>>\n) => {\n const form = useFormReactHookForm<z.infer<T>>({\n resolver: zodResolver(schema),\n ...props,\n });\n\n const isSubmitting = form.formState.isSubmitting;\n const isSubmitted = form.formState.isSubmitted;\n const isLoading = form.formState.isLoading;\n const isValid = form.formState.isValid;\n\n return {\n form,\n isSubmitting,\n isSubmitted,\n isLoading,\n isValid,\n };\n};\n"],"names":["useFormReactHookForm","zodResolver"],"mappings":";;;;;AAsBA,MAAM,gBAAgB,OAAO,OAAY;AAGvC,MAAI,MAAM,OAAO,GAAG,SAAS,YAAY;AAEjC,UAAA;AAAA,EAAA;AAGV;AAEO,MAAM,OAAO,CAAoB;AAAA,EACtC;AAAA,EACA,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoB;AACZ,QAAA,WAAW,OAAO,WAAc;AACpC,UAAM,eAAe,QAAQ,UAAU,MAAM,KAAK;AAAA,MAChD,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAGM,UAAA,cAAc,eAAe,MAAM,CAAC;AAE1C,QAAI,aAAa,SAAS;AACxB,YAAM,cAAc,sBAAsB,aAAa,IAAI,CAAC;AAAA,IAAA,OACvD;AACC,YAAA;AAAA,QACJ;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,IAAI;AAAA,UAAA;AAAA,QACnE;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEJ;AAGE,SAAA,oBAAC,cAAc,EAAA,GAAG,OAChB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,mCAAmC,SAAS;AAAA,MAC1D,UAAU,MAAM,aAAa,QAAQ;AAAA,MACrC,cAAc,eAAe,OAAO;AAAA,MAEnC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEa,MAAA,UAAU,CACrB,QACA,UACG;AACH,QAAM,OAAOA,UAAiC;AAAA,IAC5C,UAAUC,EAAY,MAAM;AAAA,IAC5B,GAAG;AAAA,EAAA,CACJ;AAEK,QAAA,eAAe,KAAK,UAAU;AAC9B,QAAA,cAAc,KAAK,UAAU;AAC7B,QAAA,YAAY,KAAK,UAAU;AAC3B,QAAA,UAAU,KAAK,UAAU;AAExB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"FormBase.mjs","sources":["../../../src/components/Form/FormBase.tsx"],"sourcesContent":["'use client';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { type HTMLAttributes } from 'react';\nimport {\n FormProvider,\n type FormProviderProps,\n useForm as useFormReactHookForm,\n type UseFormProps,\n} from 'react-hook-form';\nimport type { ZodType, z } from 'zod';\nimport { cn } from '../../utils/cn';\n\ntype FormProps<T extends ZodType> = HTMLAttributes<HTMLFormElement> &\n FormProviderProps<z.infer<T>> & {\n schema?: T;\n onSubmit?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitSuccess?: (data: z.infer<T>) => void | Promise<void>;\n onSubmitError?: (error: Error) => void | Promise<void>;\n autoComplete?: boolean;\n };\n\nconst awaitFunction = async (fn: any) => {\n // Check if result is a Promise (Thenable)\n\n if (fn && typeof fn.then === 'function') {\n // It's a Promise, so wait for it to resolve\n return await fn;\n }\n // If not a Promise, it will just execute without awaiting\n return fn;\n};\n\nexport const Form = <T extends ZodType>({\n schema,\n onSubmit: onSubmitProp,\n onSubmitSuccess: onSubmitSuccessProp,\n onSubmitError: onSubmitErrorProp,\n className,\n children,\n autoComplete,\n ...props\n}: FormProps<T>) => {\n const onSubmit = async (values: T) => {\n const parsedValues = schema?.safeParse(values) ?? {\n success: true,\n data: undefined,\n };\n\n // onSubmitProp?.(values);\n await awaitFunction(onSubmitProp?.(values));\n\n if (parsedValues.success) {\n await awaitFunction(onSubmitSuccessProp?.(parsedValues.data));\n } else {\n await awaitFunction(\n onSubmitErrorProp?.(\n new Error(\n parsedValues.error.errors.map((error) => error.message).join(', ')\n )\n )\n );\n }\n };\n\n return (\n <FormProvider {...props}>\n <form\n className={cn('flex size-full flex-col gap-y-6', className)}\n onSubmit={props.handleSubmit(onSubmit)}\n autoComplete={autoComplete ? 'on' : 'off'}\n >\n {children}\n </form>\n </FormProvider>\n );\n};\n\nexport const useForm = <T extends ZodType>(\n schema: T,\n props?: UseFormProps<z.infer<T>>\n) => {\n const form = useFormReactHookForm<z.infer<T>>({\n resolver: zodResolver(schema),\n ...props,\n });\n\n const isSubmitting = form.formState.isSubmitting;\n const isSubmitted = form.formState.isSubmitted;\n const isLoading = form.formState.isLoading;\n const isValid = form.formState.isValid;\n\n return {\n form,\n isSubmitting,\n isSubmitted,\n isLoading,\n isValid,\n };\n};\n"],"names":["useFormReactHookForm","zodResolver"],"mappings":";;;;;AAsBA,MAAM,gBAAgB,OAAO,OAAY;AAGvC,MAAI,MAAM,OAAO,GAAG,SAAS,YAAY;AAEvC,WAAO,MAAM;AAAA,EAAA;AAGR,SAAA;AACT;AAEO,MAAM,OAAO,CAAoB;AAAA,EACtC;AAAA,EACA,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoB;AACZ,QAAA,WAAW,OAAO,WAAc;AACpC,UAAM,eAAe,QAAQ,UAAU,MAAM,KAAK;AAAA,MAChD,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAGM,UAAA,cAAc,eAAe,MAAM,CAAC;AAE1C,QAAI,aAAa,SAAS;AACxB,YAAM,cAAc,sBAAsB,aAAa,IAAI,CAAC;AAAA,IAAA,OACvD;AACC,YAAA;AAAA,QACJ;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,IAAI;AAAA,UAAA;AAAA,QACnE;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEJ;AAGE,SAAA,oBAAC,cAAc,EAAA,GAAG,OAChB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,mCAAmC,SAAS;AAAA,MAC1D,UAAU,MAAM,aAAa,QAAQ;AAAA,MACrC,cAAc,eAAe,OAAO;AAAA,MAEnC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEa,MAAA,UAAU,CACrB,QACA,UACG;AACH,QAAM,OAAOA,UAAiC;AAAA,IAC5C,UAAUC,EAAY,MAAM;AAAA,IAC5B,GAAG;AAAA,EAAA,CACJ;AAEK,QAAA,eAAe,KAAK,UAAU;AAC9B,QAAA,cAAc,KAAK,UAAU;AAC7B,QAAA,YAAY,KAAK,UAAU;AAC3B,QAAA,UAAU,KAAK,UAAU;AAExB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-BCuMWKyy.js","sources":["../../../../node_modules/.pnpm/zustand@4.5.6_@types+react@19.0.10_immer@9.0.21_react@18.3.1/node_modules/zustand/esm/react/shallow.mjs","../src/hooks/useScrollBlockage/index.tsx"],"sourcesContent":["import ReactExports from 'react';\n\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nconst { useRef } = ReactExports;\nfunction useShallow(selector) {\n const prev = useRef();\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useGetElementOrWindow } from '../useGetElementOrWindow';\n\nimport { useScrollBlockageStore } from './useScrollBlockageStore';\n\ntype useScrollBlockagePropsReadOnly = {\n disableScroll: undefined;\n key: undefined;\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\ntype useScrollBlockageProps = {\n disableScroll: boolean;\n key: string; // The key to identify the blockage to avoid conflicts. Required if disableScroll is defined\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\nexport const useScrollBlockage = (\n props?: useScrollBlockageProps | useScrollBlockagePropsReadOnly\n) => {\n const {\n disableScroll = false,\n element,\n key = 'unnamed_blocker',\n } = props ?? {};\n\n const { isElementScrollBlocked, addBlockage, removeBlockage } =\n useScrollBlockageStore(\n useShallow((s) => ({\n isElementScrollBlocked: s.isElementScrollBlocked,\n addBlockage: s.addBlockage,\n removeBlockage: s.removeBlockage,\n }))\n );\n\n const containerElement = useGetElementOrWindow(element);\n\n useEffect(() => {\n const el = element ?? window.document.body;\n\n if (disableScroll) {\n addBlockage(key, el);\n } else {\n removeBlockage(key, el);\n }\n }, [addBlockage, disableScroll, element, key, removeBlockage]);\n\n const isScrollBlocked = containerElement\n ? isElementScrollBlocked(containerElement)\n : false;\n\n return { isScrollBlocked };\n};\n"],"names":[],"mappings":";;;;AAEA,SAAS,QAAQ,MAAM,MAAM;AAC3B,MAAI,OAAO,GAAG,MAAM,IAAI,GAAG;AACzB,WAAO;AAAA,EACX;AACE,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MAAM;AAC1F,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAC/B,UAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG;AACpC,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,SAAS,MAAM;AACxB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACpB,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,MAAI,MAAM,WAAW,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC7C,WAAO;AAAA,EACX;AACE,aAAW,QAAQ,OAAO;AACxB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;AAC3F,aAAO;AAAA,IACb;AAAA,EACA;AACE,SAAO;AACT;AAEA,MAAM,EAAE,OAAQ,IAAG;AACnB,SAAS,WAAW,UAAU;AAC5B,QAAM,OAAO,OAAQ;AACrB,SAAO,CAAC,UAAU;AAChB,UAAM,OAAO,SAAS,KAAK;AAC3B,WAAO,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,KAAK,UAAU;AAAA,EACpE;AACH;AC1Ba,MAAA,oBAAoB,CAC/B,UACG;AACG,QAAA;AAAA,IACJ,gBAAgB;AAAA,IAChB;AAAA,IACA,MAAM;AAAA,EACR,IAAI,SAAS,CAAC;AAEd,QAAM,EAAE,wBAAwB,aAAa,eAC3C,IAAA;AAAA,IACE,WAAW,CAAC,OAAO;AAAA,MACjB,wBAAwB,EAAE;AAAA,MAC1B,aAAa,EAAE;AAAA,MACf,gBAAgB,EAAE;AAAA,IAAA,EAClB;AAAA,EACJ;AAEI,QAAA,mBAAmB,sBAAsB,OAAO;AAEtD,YAAU,MAAM;AACR,UAAA,KAAK,WAAW,OAAO,SAAS;AAEtC,QAAI,eAAe;AACjB,kBAAY,KAAK,EAAE;AAAA,IAAA,OACd;AACL,qBAAe,KAAK,EAAE;AAAA,IAAA;AAAA,EACxB,GACC,CAAC,aAAa,eAAe,SAAS,KAAK,cAAc,CAAC;AAE7D,QAAM,kBAAkB,mBACpB,uBAAuB,gBAAgB,IACvC;AAEJ,SAAO,EAAE,gBAAgB;AAC3B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-BCuMWKyy.js","sources":["../../../../node_modules/.pnpm/zustand@4.5.6_@types+react@19.0.10_immer@9.0.21_react@19.0.0/node_modules/zustand/esm/react/shallow.mjs","../src/hooks/useScrollBlockage/index.tsx"],"sourcesContent":["import ReactExports from 'react';\n\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nconst { useRef } = ReactExports;\nfunction useShallow(selector) {\n const prev = useRef();\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useGetElementOrWindow } from '../useGetElementOrWindow';\n\nimport { useScrollBlockageStore } from './useScrollBlockageStore';\n\ntype useScrollBlockagePropsReadOnly = {\n disableScroll: undefined;\n key: undefined;\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\ntype useScrollBlockageProps = {\n disableScroll: boolean;\n key: string; // The key to identify the blockage to avoid conflicts. Required if disableScroll is defined\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\nexport const useScrollBlockage = (\n props?: useScrollBlockageProps | useScrollBlockagePropsReadOnly\n) => {\n const {\n disableScroll = false,\n element,\n key = 'unnamed_blocker',\n } = props ?? {};\n\n const { isElementScrollBlocked, addBlockage, removeBlockage } =\n useScrollBlockageStore(\n useShallow((s) => ({\n isElementScrollBlocked: s.isElementScrollBlocked,\n addBlockage: s.addBlockage,\n removeBlockage: s.removeBlockage,\n }))\n );\n\n const containerElement = useGetElementOrWindow(element);\n\n useEffect(() => {\n const el = element ?? window.document.body;\n\n if (disableScroll) {\n addBlockage(key, el);\n } else {\n removeBlockage(key, el);\n }\n }, [addBlockage, disableScroll, element, key, removeBlockage]);\n\n const isScrollBlocked = containerElement\n ? isElementScrollBlocked(containerElement)\n : false;\n\n return { isScrollBlocked };\n};\n"],"names":[],"mappings":";;;;AAEA,SAAS,QAAQ,MAAM,MAAM;AAC3B,MAAI,OAAO,GAAG,MAAM,IAAI,GAAG;AACzB,WAAO;AAAA,EACX;AACE,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MAAM;AAC1F,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAC/B,UAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG;AACpC,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,SAAS,MAAM;AACxB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACpB,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,MAAI,MAAM,WAAW,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC7C,WAAO;AAAA,EACX;AACE,aAAW,QAAQ,OAAO;AACxB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;AAC3F,aAAO;AAAA,IACb;AAAA,EACA;AACE,SAAO;AACT;AAEA,MAAM,EAAE,OAAQ,IAAG;AACnB,SAAS,WAAW,UAAU;AAC5B,QAAM,OAAO,OAAQ;AACrB,SAAO,CAAC,UAAU;AAChB,UAAM,OAAO,SAAS,KAAK;AAC3B,WAAO,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,KAAK,UAAU;AAAA,EACpE;AACH;AC1Ba,MAAA,oBAAoB,CAC/B,UACG;AACG,QAAA;AAAA,IACJ,gBAAgB;AAAA,IAChB;AAAA,IACA,MAAM;AAAA,EACR,IAAI,SAAS,CAAC;AAEd,QAAM,EAAE,wBAAwB,aAAa,eAC3C,IAAA;AAAA,IACE,WAAW,CAAC,OAAO;AAAA,MACjB,wBAAwB,EAAE;AAAA,MAC1B,aAAa,EAAE;AAAA,MACf,gBAAgB,EAAE;AAAA,IAAA,EAClB;AAAA,EACJ;AAEI,QAAA,mBAAmB,sBAAsB,OAAO;AAEtD,YAAU,MAAM;AACR,UAAA,KAAK,WAAW,OAAO,SAAS;AAEtC,QAAI,eAAe;AACjB,kBAAY,KAAK,EAAE;AAAA,IAAA,OACd;AACL,qBAAe,KAAK,EAAE;AAAA,IAAA;AAAA,EACxB,GACC,CAAC,aAAa,eAAe,SAAS,KAAK,cAAc,CAAC;AAE7D,QAAM,kBAAkB,mBACpB,uBAAuB,gBAAgB,IACvC;AAEJ,SAAO,EAAE,gBAAgB;AAC3B;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index-BYzBot7l.cjs","sources":["../../../../node_modules/.pnpm/zustand@4.5.6_@types+react@19.0.10_immer@9.0.21_react@18.3.1/node_modules/zustand/esm/react/shallow.mjs","../src/hooks/useScrollBlockage/index.tsx"],"sourcesContent":["import ReactExports from 'react';\n\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nconst { useRef } = ReactExports;\nfunction useShallow(selector) {\n const prev = useRef();\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useGetElementOrWindow } from '../useGetElementOrWindow';\n\nimport { useScrollBlockageStore } from './useScrollBlockageStore';\n\ntype useScrollBlockagePropsReadOnly = {\n disableScroll: undefined;\n key: undefined;\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\ntype useScrollBlockageProps = {\n disableScroll: boolean;\n key: string; // The key to identify the blockage to avoid conflicts. Required if disableScroll is defined\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\nexport const useScrollBlockage = (\n props?: useScrollBlockageProps | useScrollBlockagePropsReadOnly\n) => {\n const {\n disableScroll = false,\n element,\n key = 'unnamed_blocker',\n } = props ?? {};\n\n const { isElementScrollBlocked, addBlockage, removeBlockage } =\n useScrollBlockageStore(\n useShallow((s) => ({\n isElementScrollBlocked: s.isElementScrollBlocked,\n addBlockage: s.addBlockage,\n removeBlockage: s.removeBlockage,\n }))\n );\n\n const containerElement = useGetElementOrWindow(element);\n\n useEffect(() => {\n const el = element ?? window.document.body;\n\n if (disableScroll) {\n addBlockage(key, el);\n } else {\n removeBlockage(key, el);\n }\n }, [addBlockage, disableScroll, element, key, removeBlockage]);\n\n const isScrollBlocked = containerElement\n ? isElementScrollBlocked(containerElement)\n : false;\n\n return { isScrollBlocked };\n};\n"],"names":["useScrollBlockageStore","useGetElementOrWindow","useEffect"],"mappings":";;;;;AAEA,SAAS,QAAQ,MAAM,MAAM;AAC3B,MAAI,OAAO,GAAG,MAAM,IAAI,GAAG;AACzB,WAAO;AAAA,EACX;AACE,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MAAM;AAC1F,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAC/B,UAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG;AACpC,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,SAAS,MAAM;AACxB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACpB,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,MAAI,MAAM,WAAW,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC7C,WAAO;AAAA,EACX;AACE,aAAW,QAAQ,OAAO;AACxB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;AAC3F,aAAO;AAAA,IACb;AAAA,EACA;AACE,SAAO;AACT;AAEA,MAAM,EAAE,OAAQ,IAAG;AACnB,SAAS,WAAW,UAAU;AAC5B,QAAM,OAAO,OAAQ;AACrB,SAAO,CAAC,UAAU;AAChB,UAAM,OAAO,SAAS,KAAK;AAC3B,WAAO,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,KAAK,UAAU;AAAA,EACpE;AACH;AC1Ba,MAAA,oBAAoB,CAC/B,UACG;AACG,QAAA;AAAA,IACJ,gBAAgB;AAAA,IAChB;AAAA,IACA,MAAM;AAAA,EACR,IAAI,SAAS,CAAC;AAEd,QAAM,EAAE,wBAAwB,aAAa,eAC3C,IAAAA,+CAAA;AAAA,IACE,WAAW,CAAC,OAAO;AAAA,MACjB,wBAAwB,EAAE;AAAA,MAC1B,aAAa,EAAE;AAAA,MACf,gBAAgB,EAAE;AAAA,IAAA,EAClB;AAAA,EACJ;AAEI,QAAA,mBAAmBC,kDAAsB,OAAO;AAEtDC,eAAAA,UAAU,MAAM;AACR,UAAA,KAAK,WAAW,OAAO,SAAS;AAEtC,QAAI,eAAe;AACjB,kBAAY,KAAK,EAAE;AAAA,IAAA,OACd;AACL,qBAAe,KAAK,EAAE;AAAA,IAAA;AAAA,EACxB,GACC,CAAC,aAAa,eAAe,SAAS,KAAK,cAAc,CAAC;AAE7D,QAAM,kBAAkB,mBACpB,uBAAuB,gBAAgB,IACvC;AAEJ,SAAO,EAAE,gBAAgB;AAC3B;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-BYzBot7l.cjs","sources":["../../../../node_modules/.pnpm/zustand@4.5.6_@types+react@19.0.10_immer@9.0.21_react@19.0.0/node_modules/zustand/esm/react/shallow.mjs","../src/hooks/useScrollBlockage/index.tsx"],"sourcesContent":["import ReactExports from 'react';\n\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nconst { useRef } = ReactExports;\nfunction useShallow(selector) {\n const prev = useRef();\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useGetElementOrWindow } from '../useGetElementOrWindow';\n\nimport { useScrollBlockageStore } from './useScrollBlockageStore';\n\ntype useScrollBlockagePropsReadOnly = {\n disableScroll: undefined;\n key: undefined;\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\ntype useScrollBlockageProps = {\n disableScroll: boolean;\n key: string; // The key to identify the blockage to avoid conflicts. Required if disableScroll is defined\n element?: HTMLElement; // The element to block the scroll. If not defined, the window will be used\n};\n\nexport const useScrollBlockage = (\n props?: useScrollBlockageProps | useScrollBlockagePropsReadOnly\n) => {\n const {\n disableScroll = false,\n element,\n key = 'unnamed_blocker',\n } = props ?? {};\n\n const { isElementScrollBlocked, addBlockage, removeBlockage } =\n useScrollBlockageStore(\n useShallow((s) => ({\n isElementScrollBlocked: s.isElementScrollBlocked,\n addBlockage: s.addBlockage,\n removeBlockage: s.removeBlockage,\n }))\n );\n\n const containerElement = useGetElementOrWindow(element);\n\n useEffect(() => {\n const el = element ?? window.document.body;\n\n if (disableScroll) {\n addBlockage(key, el);\n } else {\n removeBlockage(key, el);\n }\n }, [addBlockage, disableScroll, element, key, removeBlockage]);\n\n const isScrollBlocked = containerElement\n ? isElementScrollBlocked(containerElement)\n : false;\n\n return { isScrollBlocked };\n};\n"],"names":["useScrollBlockageStore","useGetElementOrWindow","useEffect"],"mappings":";;;;;AAEA,SAAS,QAAQ,MAAM,MAAM;AAC3B,MAAI,OAAO,GAAG,MAAM,IAAI,GAAG;AACzB,WAAO;AAAA,EACX;AACE,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MAAM;AAC1F,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAC/B,UAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG;AACpC,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,MAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,QAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,eAAW,SAAS,MAAM;AACxB,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACpB,eAAO;AAAA,MACf;AAAA,IACA;AACI,WAAO;AAAA,EACX;AACE,QAAM,QAAQ,OAAO,KAAK,IAAI;AAC9B,MAAI,MAAM,WAAW,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC7C,WAAO;AAAA,EACX;AACE,aAAW,QAAQ,OAAO;AACxB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;AAC3F,aAAO;AAAA,IACb;AAAA,EACA;AACE,SAAO;AACT;AAEA,MAAM,EAAE,OAAQ,IAAG;AACnB,SAAS,WAAW,UAAU;AAC5B,QAAM,OAAO,OAAQ;AACrB,SAAO,CAAC,UAAU;AAChB,UAAM,OAAO,SAAS,KAAK;AAC3B,WAAO,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,KAAK,UAAU;AAAA,EACpE;AACH;AC1Ba,MAAA,oBAAoB,CAC/B,UACG;AACG,QAAA;AAAA,IACJ,gBAAgB;AAAA,IAChB;AAAA,IACA,MAAM;AAAA,EACR,IAAI,SAAS,CAAC;AAEd,QAAM,EAAE,wBAAwB,aAAa,eAC3C,IAAAA,+CAAA;AAAA,IACE,WAAW,CAAC,OAAO;AAAA,MACjB,wBAAwB,EAAE;AAAA,MAC1B,aAAa,EAAE;AAAA,MACf,gBAAgB,EAAE;AAAA,IAAA,EAClB;AAAA,EACJ;AAEI,QAAA,mBAAmBC,kDAAsB,OAAO;AAEtDC,eAAAA,UAAU,MAAM;AACR,UAAA,KAAK,WAAW,OAAO,SAAS;AAEtC,QAAI,eAAe;AACjB,kBAAY,KAAK,EAAE;AAAA,IAAA,OACd;AACL,qBAAe,KAAK,EAAE;AAAA,IAAA;AAAA,EACxB,GACC,CAAC,aAAa,eAAe,SAAS,KAAK,cAAc,CAAC;AAE7D,QAAM,kBAAkB,mBACpB,uBAAuB,gBAAgB,IACvC;AAEJ,SAAO,EAAE,gBAAgB;AAC3B;;;","x_google_ignoreList":[0]}
@@ -4,6 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const core = require("@intlayer/core");
5
5
  const components_DictionaryEditor_ItemLayout = require("./components/DictionaryEditor/ItemLayout.cjs");
6
6
  const ReactExports = require("react");
7
+ const components_DictionaryEditor_NodeWrapper_MarkdownWrapper = require("./components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs");
7
8
  const components_DictionaryEditor_NodeWrapper_StringWrapper = require("./components/DictionaryEditor/NodeWrapper/StringWrapper.cjs");
8
9
  const ArrayWrapper = (props) => {
9
10
  const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;
@@ -76,15 +77,6 @@ const EnumerationWrapper = (props) => {
76
77
  ] });
77
78
  }) });
78
79
  };
79
- const MarkdownWrapper = (props) => {
80
- const { keyPath, section } = props;
81
- const newKeyPathEl = {
82
- type: core.NodeType.Markdown
83
- };
84
- const newKeyPath = [...keyPath, newKeyPathEl];
85
- const subSection = section[core.NodeType.Markdown];
86
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 grid grid-cols-[auto,1fr] gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(NodeWrapper, { ...props, keyPath: newKeyPath, section: subSection }) });
87
- };
88
80
  const NestedObjectWrapper = (props) => {
89
81
  const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;
90
82
  return Object.keys(section).filter((key) => !traceKeys.includes(key)).map((key) => {
@@ -129,7 +121,7 @@ const NodeWrapper = (props) => {
129
121
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 grid grid-cols-[auto,1fr] gap-2", children: "[Nested] Dictionary" });
130
122
  }
131
123
  if (nodeType === core.NodeType.Markdown) {
132
- return /* @__PURE__ */ jsxRuntime.jsx(MarkdownWrapper, { ...props, section });
124
+ return /* @__PURE__ */ jsxRuntime.jsx(components_DictionaryEditor_NodeWrapper_MarkdownWrapper.MarkdownWrapper, { ...props, section });
133
125
  }
134
126
  if (nodeType === core.NodeType.Translation) {
135
127
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -182,9 +174,8 @@ const NodeWrapper = (props) => {
182
174
  exports.ArrayWrapper = ArrayWrapper;
183
175
  exports.ConditionWrapper = ConditionWrapper;
184
176
  exports.EnumerationWrapper = EnumerationWrapper;
185
- exports.MarkdownWrapper = MarkdownWrapper;
186
177
  exports.NestedObjectWrapper = NestedObjectWrapper;
187
178
  exports.NodeWrapper = NodeWrapper;
188
179
  exports.TranslationWrapper = TranslationWrapper;
189
180
  exports.traceKeys = traceKeys;
190
- //# sourceMappingURL=index-D02c1QrF.cjs.map
181
+ //# sourceMappingURL=index-BpCAhDMe.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BpCAhDMe.cjs","sources":["../src/components/DictionaryEditor/NodeWrapper/ArrayWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/TranslationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/index.tsx"],"sourcesContent":["import {\n isSameKeyPath,\n NodeType,\n type ContentNode,\n type KeyPath,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype ArrayWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ContentNode[];\n};\n\nexport const ArrayWrapper: FC<ArrayWrapperProps> = (props) => {\n const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;\n\n return section.map((subSection, key) => {\n const newKeyPathEl: KeyPath = {\n key,\n type: NodeType.Array,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={JSON.stringify(subSection)}\n title={`${key}`}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type ConditionContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype ConditionWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ConditionContent<ContentNode>;\n};\n\nexport const ConditionWrapper: FC<ConditionWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Condition,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Condition][\n key as keyof (typeof section)[NodeType.Condition]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n NodeType,\n type EnumerationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype EnumerationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: EnumerationContent<ContentNode>;\n};\n\nexport const EnumerationWrapper: FC<EnumerationWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Enumeration,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Enumeration][\n key as keyof (typeof section)[NodeType.Enumeration]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n isSameKeyPath,\n type ContentNode,\n NodeType,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype NestedObjectWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: Record<string, ContentNode>;\n};\n\nexport const NestedObjectWrapper: FC<NestedObjectWrapperProps> = (props) => {\n const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;\n\n return Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = { key, type: NodeType.Object };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={key}\n title={key}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={section[key]} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type TranslationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype TranslationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: TranslationContent<ContentNode>;\n};\n\nexport const TranslationWrapper: FC<TranslationWrapperProps> = (props) => {\n const { keyPath, section, locale } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Translation,\n key: locale,\n };\n\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section.translation[\n locale as unknown as keyof (typeof section)['translation']\n ]!;\n\n return <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />;\n};\n","'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type MarkdownContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getNodeType,\n} from '@intlayer/core';\nimport { type FC } from 'react';\nimport { ArrayWrapper } from './ArrayWrapper';\nimport { ConditionWrapper } from './ConditionWrapper';\nimport { EnumerationWrapper } from './EnumerationWrapper';\nimport { MarkdownWrapper } from './MarkdownWrapper';\nimport { NestedObjectWrapper } from './NestedObjectWrapper';\nimport { StringWrapper } from './StringWrapper';\nimport { TranslationWrapper } from './TranslationWrapper';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n keyPath: KeyPath[];\n section: ContentNode;\n onContentChange: (content: { keyPath: KeyPath[]; newValue: string }) => void;\n locale: Locales;\n editedContent: ContentNode;\n focusedKeyPath: KeyPath[] | undefined;\n onFocusKeyPath: (keyPath: KeyPath[]) => void;\n onClickEdit?: (keyPath: KeyPath[]) => void;\n};\n\nexport const NodeWrapper: FC<NodeWrapperProps> = (props) => {\n const { section } = props;\n const nodeType = getNodeType(section);\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <span className=\"text-neutral text-xs\">React node not editable</span>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n [Nested] Dictionary\n </div>\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownWrapper {...props} section={section as MarkdownContent} />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationWrapper\n {...props}\n section={section as TranslationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationWrapper\n {...props}\n section={section as EnumerationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionWrapper\n {...props}\n section={section as ConditionContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayWrapper\n {...props}\n section={section as unknown as ContentNode[]}\n />\n );\n }\n\n return (\n <NestedObjectWrapper\n {...props}\n section={section as Record<string, ContentNode>}\n />\n );\n }\n\n if (typeof section === 'string') {\n return <StringWrapper {...props} section={section} />;\n }\n};\n"],"names":["NodeType","jsx","ItemLayout","isSameKeyPath","jsxs","Fragment","createElement","getNodeType","MarkdownWrapper","StringWrapper"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { NodeType, isSameKeyPath, getNodeType } from "@intlayer/core";
4
4
  import { ItemLayout } from "./components/DictionaryEditor/ItemLayout.mjs";
5
5
  import { createElement } from "react";
6
+ import { MarkdownWrapper } from "./components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs";
6
7
  import { StringWrapper } from "./components/DictionaryEditor/NodeWrapper/StringWrapper.mjs";
7
8
  const ArrayWrapper = (props) => {
8
9
  const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;
@@ -75,15 +76,6 @@ const EnumerationWrapper = (props) => {
75
76
  ] });
76
77
  }) });
77
78
  };
78
- const MarkdownWrapper = (props) => {
79
- const { keyPath, section } = props;
80
- const newKeyPathEl = {
81
- type: NodeType.Markdown
82
- };
83
- const newKeyPath = [...keyPath, newKeyPathEl];
84
- const subSection = section[NodeType.Markdown];
85
- return /* @__PURE__ */ jsx("div", { className: "ml-2 grid grid-cols-[auto,1fr] gap-2", children: /* @__PURE__ */ jsx(NodeWrapper, { ...props, keyPath: newKeyPath, section: subSection }) });
86
- };
87
79
  const NestedObjectWrapper = (props) => {
88
80
  const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;
89
81
  return Object.keys(section).filter((key) => !traceKeys.includes(key)).map((key) => {
@@ -182,10 +174,9 @@ export {
182
174
  ArrayWrapper as A,
183
175
  ConditionWrapper as C,
184
176
  EnumerationWrapper as E,
185
- MarkdownWrapper as M,
186
177
  NodeWrapper as N,
187
178
  TranslationWrapper as T,
188
179
  NestedObjectWrapper as a,
189
180
  traceKeys as t
190
181
  };
191
- //# sourceMappingURL=index-C57uA6Lk.js.map
182
+ //# sourceMappingURL=index-CVTE3oHq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CVTE3oHq.js","sources":["../src/components/DictionaryEditor/NodeWrapper/ArrayWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/TranslationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/index.tsx"],"sourcesContent":["import {\n isSameKeyPath,\n NodeType,\n type ContentNode,\n type KeyPath,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype ArrayWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ContentNode[];\n};\n\nexport const ArrayWrapper: FC<ArrayWrapperProps> = (props) => {\n const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;\n\n return section.map((subSection, key) => {\n const newKeyPathEl: KeyPath = {\n key,\n type: NodeType.Array,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={JSON.stringify(subSection)}\n title={`${key}`}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type ConditionContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype ConditionWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ConditionContent<ContentNode>;\n};\n\nexport const ConditionWrapper: FC<ConditionWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Condition,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Condition][\n key as keyof (typeof section)[NodeType.Condition]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n NodeType,\n type EnumerationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype EnumerationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: EnumerationContent<ContentNode>;\n};\n\nexport const EnumerationWrapper: FC<EnumerationWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Enumeration,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Enumeration][\n key as keyof (typeof section)[NodeType.Enumeration]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n isSameKeyPath,\n type ContentNode,\n NodeType,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype NestedObjectWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: Record<string, ContentNode>;\n};\n\nexport const NestedObjectWrapper: FC<NestedObjectWrapperProps> = (props) => {\n const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;\n\n return Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = { key, type: NodeType.Object };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={key}\n title={key}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={section[key]} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type TranslationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype TranslationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: TranslationContent<ContentNode>;\n};\n\nexport const TranslationWrapper: FC<TranslationWrapperProps> = (props) => {\n const { keyPath, section, locale } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Translation,\n key: locale,\n };\n\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section.translation[\n locale as unknown as keyof (typeof section)['translation']\n ]!;\n\n return <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />;\n};\n","'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type MarkdownContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getNodeType,\n} from '@intlayer/core';\nimport { type FC } from 'react';\nimport { ArrayWrapper } from './ArrayWrapper';\nimport { ConditionWrapper } from './ConditionWrapper';\nimport { EnumerationWrapper } from './EnumerationWrapper';\nimport { MarkdownWrapper } from './MarkdownWrapper';\nimport { NestedObjectWrapper } from './NestedObjectWrapper';\nimport { StringWrapper } from './StringWrapper';\nimport { TranslationWrapper } from './TranslationWrapper';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n keyPath: KeyPath[];\n section: ContentNode;\n onContentChange: (content: { keyPath: KeyPath[]; newValue: string }) => void;\n locale: Locales;\n editedContent: ContentNode;\n focusedKeyPath: KeyPath[] | undefined;\n onFocusKeyPath: (keyPath: KeyPath[]) => void;\n onClickEdit?: (keyPath: KeyPath[]) => void;\n};\n\nexport const NodeWrapper: FC<NodeWrapperProps> = (props) => {\n const { section } = props;\n const nodeType = getNodeType(section);\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <span className=\"text-neutral text-xs\">React node not editable</span>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n [Nested] Dictionary\n </div>\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownWrapper {...props} section={section as MarkdownContent} />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationWrapper\n {...props}\n section={section as TranslationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationWrapper\n {...props}\n section={section as EnumerationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionWrapper\n {...props}\n section={section as ConditionContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayWrapper\n {...props}\n section={section as unknown as ContentNode[]}\n />\n );\n }\n\n return (\n <NestedObjectWrapper\n {...props}\n section={section as Record<string, ContentNode>}\n />\n );\n }\n\n if (typeof section === 'string') {\n return <StringWrapper {...props} section={section} />;\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zod-BV4nCGJE.js","sources":["../../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.54.2_react@18.3.1_/node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"names":["n","t","e","o","a","r"],"mappings":";;AAAiI,IAAC,IAAE,SAAS,GAAE,GAAE;AAAC,WAAQA,KAAE,CAAE,GAAC,EAAE,UAAQ;AAAC,QAAIC,KAAE,EAAE,CAAC,GAAE,IAAEA,GAAE,MAAK,IAAEA,GAAE,SAAQ,IAAEA,GAAE,KAAK,KAAK,GAAG;AAAE,QAAG,CAACD,GAAE,CAAC,EAAE,KAAG,iBAAgBC,IAAE;AAAC,UAAI,IAAEA,GAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAAE,MAAAD,GAAE,CAAC,IAAE,EAAC,SAAQ,EAAE,SAAQ,MAAK,EAAE,KAAI;AAAA,IAAC,MAAM,CAAAA,GAAE,CAAC,IAAE,EAAC,SAAQ,GAAE,MAAK,EAAC;AAAE,QAAG,iBAAgBC,MAAGA,GAAE,YAAY,QAAQ,SAASC,IAAE;AAAC,aAAOA,GAAE,OAAO,QAAQ,SAASA,IAAE;AAAC,eAAO,EAAE,KAAKA,EAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAE,GAAE;AAAC,UAAI,IAAEF,GAAE,CAAC,EAAE,OAAM,IAAE,KAAG,EAAEC,GAAE,IAAI;AAAE,MAAAD,GAAE,CAAC,IAAEG,aAAE,GAAE,GAAEH,IAAE,GAAE,IAAE,CAAE,EAAC,OAAO,GAAEC,GAAE,OAAO,IAAEA,GAAE,OAAO;AAAA,IAAC;AAAC,MAAE,MAAO;AAAA,EAAA;AAAC,SAAOD;AAAC,GAAE,IAAE,SAAS,GAAEC,IAAE,GAAE;AAAC,SAAO,WAAS,MAAI,IAAE,CAAA,IAAI,SAAS,GAAE,GAAE,GAAE;AAAC,QAAG;AAAC,aAAO,QAAQ,QAAQ,SAAS,GAAED,IAAE;AAAC,YAAG;AAAC,cAAII,KAAE,QAAQ,QAAQ,EAAE,WAAS,EAAE,OAAK,UAAQ,YAAY,EAAE,GAAEH,EAAC,CAAC,EAAE,KAAK,SAASC,IAAE;AAAC,mBAAO,EAAE,6BAA2BG,uBAAE,CAAE,GAAC,CAAC,GAAE,EAAC,QAAO,CAAA,GAAG,QAAO,EAAE,MAAI,IAAEH,GAAC;AAAA,UAAC,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,iBAAOF,GAAE,CAAC;AAAA,QAAC;AAAC,eAAOI,MAAGA,GAAE,OAAKA,GAAE,KAAK,QAAOJ,EAAC,IAAEI;AAAA,MAAC,EAAE,GAAE,SAAS,GAAE;AAAC,YAAG,SAASC,IAAE;AAAC,iBAAO,MAAM,QAAQ,QAAMA,KAAE,SAAOA,GAAE,MAAM;AAAA,QAAC,EAAE,CAAC,EAAE,QAAM,EAAC,QAAO,CAAE,GAAC,QAAOH,aAAE,EAAE,EAAE,QAAO,CAAC,EAAE,6BAA2B,UAAQ,EAAE,YAAY,GAAE,CAAC,EAAC;AAAE,cAAM;AAAA,MAAC,CAAC,CAAC;AAAA,IAAC,SAAO,GAAE;AAAC,aAAO,QAAQ,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"zod-BV4nCGJE.js","sources":["../../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.54.2_react@19.0.0_/node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"names":["n","t","e","o","a","r"],"mappings":";;AAAiI,IAAC,IAAE,SAAS,GAAE,GAAE;AAAC,WAAQA,KAAE,CAAE,GAAC,EAAE,UAAQ;AAAC,QAAIC,KAAE,EAAE,CAAC,GAAE,IAAEA,GAAE,MAAK,IAAEA,GAAE,SAAQ,IAAEA,GAAE,KAAK,KAAK,GAAG;AAAE,QAAG,CAACD,GAAE,CAAC,EAAE,KAAG,iBAAgBC,IAAE;AAAC,UAAI,IAAEA,GAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAAE,MAAAD,GAAE,CAAC,IAAE,EAAC,SAAQ,EAAE,SAAQ,MAAK,EAAE,KAAI;AAAA,IAAC,MAAM,CAAAA,GAAE,CAAC,IAAE,EAAC,SAAQ,GAAE,MAAK,EAAC;AAAE,QAAG,iBAAgBC,MAAGA,GAAE,YAAY,QAAQ,SAASC,IAAE;AAAC,aAAOA,GAAE,OAAO,QAAQ,SAASA,IAAE;AAAC,eAAO,EAAE,KAAKA,EAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAE,GAAE;AAAC,UAAI,IAAEF,GAAE,CAAC,EAAE,OAAM,IAAE,KAAG,EAAEC,GAAE,IAAI;AAAE,MAAAD,GAAE,CAAC,IAAEG,aAAE,GAAE,GAAEH,IAAE,GAAE,IAAE,CAAE,EAAC,OAAO,GAAEC,GAAE,OAAO,IAAEA,GAAE,OAAO;AAAA,IAAC;AAAC,MAAE,MAAO;AAAA,EAAA;AAAC,SAAOD;AAAC,GAAE,IAAE,SAAS,GAAEC,IAAE,GAAE;AAAC,SAAO,WAAS,MAAI,IAAE,CAAA,IAAI,SAAS,GAAE,GAAE,GAAE;AAAC,QAAG;AAAC,aAAO,QAAQ,QAAQ,SAAS,GAAED,IAAE;AAAC,YAAG;AAAC,cAAII,KAAE,QAAQ,QAAQ,EAAE,WAAS,EAAE,OAAK,UAAQ,YAAY,EAAE,GAAEH,EAAC,CAAC,EAAE,KAAK,SAASC,IAAE;AAAC,mBAAO,EAAE,6BAA2BG,uBAAE,CAAE,GAAC,CAAC,GAAE,EAAC,QAAO,CAAA,GAAG,QAAO,EAAE,MAAI,IAAEH,GAAC;AAAA,UAAC,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,iBAAOF,GAAE,CAAC;AAAA,QAAC;AAAC,eAAOI,MAAGA,GAAE,OAAKA,GAAE,KAAK,QAAOJ,EAAC,IAAEI;AAAA,MAAC,EAAE,GAAE,SAAS,GAAE;AAAC,YAAG,SAASC,IAAE;AAAC,iBAAO,MAAM,QAAQ,QAAMA,KAAE,SAAOA,GAAE,MAAM;AAAA,QAAC,EAAE,CAAC,EAAE,QAAM,EAAC,QAAO,CAAE,GAAC,QAAOH,aAAE,EAAE,EAAE,QAAO,CAAC,EAAE,6BAA2B,UAAQ,EAAE,YAAY,GAAE,CAAC,EAAC;AAAE,cAAM;AAAA,MAAC,CAAC,CAAC;AAAA,IAAC,SAAO,GAAE;AAAC,aAAO,QAAQ,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"zod-DSrtTSD_.cjs","sources":["../../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.54.2_react@18.3.1_/node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"names":["n","t","e","o","a","r"],"mappings":";;;AAAiI,IAAC,IAAE,SAAS,GAAE,GAAE;AAAC,WAAQA,KAAE,CAAE,GAAC,EAAE,UAAQ;AAAC,QAAIC,KAAE,EAAE,CAAC,GAAE,IAAEA,GAAE,MAAK,IAAEA,GAAE,SAAQ,IAAEA,GAAE,KAAK,KAAK,GAAG;AAAE,QAAG,CAACD,GAAE,CAAC,EAAE,KAAG,iBAAgBC,IAAE;AAAC,UAAI,IAAEA,GAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAAE,MAAAD,GAAE,CAAC,IAAE,EAAC,SAAQ,EAAE,SAAQ,MAAK,EAAE,KAAI;AAAA,IAAC,MAAM,CAAAA,GAAE,CAAC,IAAE,EAAC,SAAQ,GAAE,MAAK,EAAC;AAAE,QAAG,iBAAgBC,MAAGA,GAAE,YAAY,QAAQ,SAASC,IAAE;AAAC,aAAOA,GAAE,OAAO,QAAQ,SAASA,IAAE;AAAC,eAAO,EAAE,KAAKA,EAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAE,GAAE;AAAC,UAAI,IAAEF,GAAE,CAAC,EAAE,OAAM,IAAE,KAAG,EAAEC,GAAE,IAAI;AAAE,MAAAD,GAAE,CAAC,IAAEG,cAAC,aAAC,GAAE,GAAEH,IAAE,GAAE,IAAE,CAAE,EAAC,OAAO,GAAEC,GAAE,OAAO,IAAEA,GAAE,OAAO;AAAA,IAAC;AAAC,MAAE,MAAO;AAAA,EAAA;AAAC,SAAOD;AAAC,GAAE,IAAE,SAAS,GAAEC,IAAE,GAAE;AAAC,SAAO,WAAS,MAAI,IAAE,CAAA,IAAI,SAAS,GAAE,GAAE,GAAE;AAAC,QAAG;AAAC,aAAO,QAAQ,QAAQ,SAAS,GAAED,IAAE;AAAC,YAAG;AAAC,cAAII,KAAE,QAAQ,QAAQ,EAAE,WAAS,EAAE,OAAK,UAAQ,YAAY,EAAE,GAAEH,EAAC,CAAC,EAAE,KAAK,SAASC,IAAE;AAAC,mBAAO,EAAE,6BAA2BG,UAAAA,uBAAE,CAAE,GAAC,CAAC,GAAE,EAAC,QAAO,CAAA,GAAG,QAAO,EAAE,MAAI,IAAEH,GAAC;AAAA,UAAC,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,iBAAOF,GAAE,CAAC;AAAA,QAAC;AAAC,eAAOI,MAAGA,GAAE,OAAKA,GAAE,KAAK,QAAOJ,EAAC,IAAEI;AAAA,MAAC,EAAE,GAAE,SAAS,GAAE;AAAC,YAAG,SAASC,IAAE;AAAC,iBAAO,MAAM,QAAQ,QAAMA,KAAE,SAAOA,GAAE,MAAM;AAAA,QAAC,EAAE,CAAC,EAAE,QAAM,EAAC,QAAO,CAAE,GAAC,QAAOH,UAAC,aAAC,EAAE,EAAE,QAAO,CAAC,EAAE,6BAA2B,UAAQ,EAAE,YAAY,GAAE,CAAC,EAAC;AAAE,cAAM;AAAA,MAAC,CAAC,CAAC;AAAA,IAAC,SAAO,GAAE;AAAC,aAAO,QAAQ,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"zod-DSrtTSD_.cjs","sources":["../../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.54.2_react@19.0.0_/node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"names":["n","t","e","o","a","r"],"mappings":";;;AAAiI,IAAC,IAAE,SAAS,GAAE,GAAE;AAAC,WAAQA,KAAE,CAAE,GAAC,EAAE,UAAQ;AAAC,QAAIC,KAAE,EAAE,CAAC,GAAE,IAAEA,GAAE,MAAK,IAAEA,GAAE,SAAQ,IAAEA,GAAE,KAAK,KAAK,GAAG;AAAE,QAAG,CAACD,GAAE,CAAC,EAAE,KAAG,iBAAgBC,IAAE;AAAC,UAAI,IAAEA,GAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAAE,MAAAD,GAAE,CAAC,IAAE,EAAC,SAAQ,EAAE,SAAQ,MAAK,EAAE,KAAI;AAAA,IAAC,MAAM,CAAAA,GAAE,CAAC,IAAE,EAAC,SAAQ,GAAE,MAAK,EAAC;AAAE,QAAG,iBAAgBC,MAAGA,GAAE,YAAY,QAAQ,SAASC,IAAE;AAAC,aAAOA,GAAE,OAAO,QAAQ,SAASA,IAAE;AAAC,eAAO,EAAE,KAAKA,EAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAE,GAAE;AAAC,UAAI,IAAEF,GAAE,CAAC,EAAE,OAAM,IAAE,KAAG,EAAEC,GAAE,IAAI;AAAE,MAAAD,GAAE,CAAC,IAAEG,cAAC,aAAC,GAAE,GAAEH,IAAE,GAAE,IAAE,CAAE,EAAC,OAAO,GAAEC,GAAE,OAAO,IAAEA,GAAE,OAAO;AAAA,IAAC;AAAC,MAAE,MAAO;AAAA,EAAA;AAAC,SAAOD;AAAC,GAAE,IAAE,SAAS,GAAEC,IAAE,GAAE;AAAC,SAAO,WAAS,MAAI,IAAE,CAAA,IAAI,SAAS,GAAE,GAAE,GAAE;AAAC,QAAG;AAAC,aAAO,QAAQ,QAAQ,SAAS,GAAED,IAAE;AAAC,YAAG;AAAC,cAAII,KAAE,QAAQ,QAAQ,EAAE,WAAS,EAAE,OAAK,UAAQ,YAAY,EAAE,GAAEH,EAAC,CAAC,EAAE,KAAK,SAASC,IAAE;AAAC,mBAAO,EAAE,6BAA2BG,UAAAA,uBAAE,CAAE,GAAC,CAAC,GAAE,EAAC,QAAO,CAAA,GAAG,QAAO,EAAE,MAAI,IAAEH,GAAC;AAAA,UAAC,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,iBAAOF,GAAE,CAAC;AAAA,QAAC;AAAC,eAAOI,MAAGA,GAAE,OAAKA,GAAE,KAAK,QAAOJ,EAAC,IAAEI;AAAA,MAAC,EAAE,GAAE,SAAS,GAAE;AAAC,YAAG,SAASC,IAAE;AAAC,iBAAO,MAAM,QAAQ,QAAMA,KAAE,SAAOA,GAAE,MAAM;AAAA,QAAC,EAAE,CAAC,EAAE,QAAM,EAAC,QAAO,CAAE,GAAC,QAAOH,UAAC,aAAC,EAAE,EAAE,QAAO,CAAC,EAAE,6BAA2B,UAAQ,EAAE,YAAY,GAAE,CAAC,EAAC;AAAE,cAAM;AAAA,MAAC,CAAC,CAAC;AAAA,IAAC,SAAO,GAAE;AAAC,aAAO,QAAQ,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/design-system",
3
- "version": "5.2.9",
3
+ "version": "5.3.0",
4
4
  "private": false,
5
5
  "description": "Intlayer design system, including UI components used in the Intlayer editor, website, and visual editor/CMS.",
6
6
  "keywords": [
@@ -29,6 +29,7 @@
29
29
  "url": "https://github.com/aymericzip"
30
30
  }
31
31
  ],
32
+ "sideEffects": false,
32
33
  "type": "module",
33
34
  "exports": {
34
35
  ".": {
@@ -77,13 +78,13 @@
77
78
  "tailwind-merge": "^3.0.2",
78
79
  "zod": "^3.24.1",
79
80
  "zustand": "^4.5.6",
80
- "@intlayer/config": "5.2.9",
81
- "@intlayer/api": "5.2.9",
82
- "@intlayer/editor": "5.2.9",
83
- "@intlayer/dictionaries-entry": "5.2.9",
84
- "@intlayer/core": "5.2.9",
85
- "@intlayer/editor-react": "5.2.9",
86
- "react-intlayer": "5.2.9"
81
+ "@intlayer/api": "5.3.0",
82
+ "@intlayer/config": "5.3.0",
83
+ "@intlayer/core": "5.3.0",
84
+ "@intlayer/dictionaries-entry": "5.3.0",
85
+ "@intlayer/editor": "5.3.0",
86
+ "react-intlayer": "5.3.0",
87
+ "@intlayer/editor-react": "5.3.0"
87
88
  },
88
89
  "devDependencies": {
89
90
  "@chromatic-com/storybook": "^3.2.3",
@@ -120,11 +121,11 @@
120
121
  "vite": "^6.0.11",
121
122
  "vite-plugin-dts": "^4.5.0",
122
123
  "vitest": "^3.0.5",
124
+ "@intlayer/backend": "5.3.0",
123
125
  "@utils/eslint-config": "1.0.4",
124
- "@utils/ts-config": "1.0.4",
125
126
  "@utils/ts-config-types": "1.0.4",
126
- "@utils/tsup-config": "1.0.4",
127
- "@intlayer/backend": "5.2.9"
127
+ "@utils/ts-config": "1.0.4",
128
+ "@utils/tsup-config": "1.0.4"
128
129
  },
129
130
  "peerDependencies": {
130
131
  "@monaco-editor/react": "^4.6.0",
@@ -135,14 +136,14 @@
135
136
  "react-dom": ">=16.0.0",
136
137
  "tailwind-merge": "^3.0.2",
137
138
  "zustand": "^4.5.6",
138
- "@intlayer/api": "5.2.9",
139
- "@intlayer/config": "5.2.9",
140
- "@intlayer/core": "5.2.9",
141
- "@intlayer/dictionaries-entry": "5.2.9",
142
- "@intlayer/editor": "5.2.9",
143
- "@intlayer/editor-react": "5.2.9",
144
- "intlayer": "5.2.9",
145
- "react-intlayer": "5.2.9"
139
+ "@intlayer/api": "5.3.0",
140
+ "@intlayer/config": "5.3.0",
141
+ "@intlayer/dictionaries-entry": "5.3.0",
142
+ "@intlayer/core": "5.3.0",
143
+ "@intlayer/editor": "5.3.0",
144
+ "@intlayer/editor-react": "5.3.0",
145
+ "intlayer": "5.3.0",
146
+ "react-intlayer": "5.3.0"
146
147
  },
147
148
  "scripts": {
148
149
  "build": "pnpm build:package && pnpm build:css",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C57uA6Lk.js","sources":["../src/components/DictionaryEditor/NodeWrapper/ArrayWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/TranslationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/index.tsx"],"sourcesContent":["import {\n isSameKeyPath,\n NodeType,\n type ContentNode,\n type KeyPath,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype ArrayWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ContentNode[];\n};\n\nexport const ArrayWrapper: FC<ArrayWrapperProps> = (props) => {\n const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;\n\n return section.map((subSection, key) => {\n const newKeyPathEl: KeyPath = {\n key,\n type: NodeType.Array,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={JSON.stringify(subSection)}\n title={`${key}`}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type ConditionContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype ConditionWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ConditionContent<ContentNode>;\n};\n\nexport const ConditionWrapper: FC<ConditionWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Condition,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Condition][\n key as keyof (typeof section)[NodeType.Condition]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n NodeType,\n type EnumerationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype EnumerationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: EnumerationContent<ContentNode>;\n};\n\nexport const EnumerationWrapper: FC<EnumerationWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Enumeration,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Enumeration][\n key as keyof (typeof section)[NodeType.Enumeration]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import { type KeyPath, NodeType, type MarkdownContent } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype MarkdownWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: MarkdownContent;\n};\n\nexport const MarkdownWrapper: FC<MarkdownWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Markdown,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection = section[NodeType.Markdown];\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </div>\n );\n};\n","import {\n type KeyPath,\n isSameKeyPath,\n type ContentNode,\n NodeType,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype NestedObjectWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: Record<string, ContentNode>;\n};\n\nexport const NestedObjectWrapper: FC<NestedObjectWrapperProps> = (props) => {\n const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;\n\n return Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = { key, type: NodeType.Object };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={key}\n title={key}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={section[key]} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type TranslationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype TranslationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: TranslationContent<ContentNode>;\n};\n\nexport const TranslationWrapper: FC<TranslationWrapperProps> = (props) => {\n const { keyPath, section, locale } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Translation,\n key: locale,\n };\n\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section.translation[\n locale as unknown as keyof (typeof section)['translation']\n ]!;\n\n return <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />;\n};\n","'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type MarkdownContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getNodeType,\n} from '@intlayer/core';\nimport { type FC } from 'react';\nimport { ArrayWrapper } from './ArrayWrapper';\nimport { ConditionWrapper } from './ConditionWrapper';\nimport { EnumerationWrapper } from './EnumerationWrapper';\nimport { MarkdownWrapper } from './MarkdownWrapper';\nimport { NestedObjectWrapper } from './NestedObjectWrapper';\nimport { StringWrapper } from './StringWrapper';\nimport { TranslationWrapper } from './TranslationWrapper';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n keyPath: KeyPath[];\n section: ContentNode;\n onContentChange: (content: { keyPath: KeyPath[]; newValue: string }) => void;\n locale: Locales;\n editedContent: ContentNode;\n focusedKeyPath: KeyPath[] | undefined;\n onFocusKeyPath: (keyPath: KeyPath[]) => void;\n onClickEdit?: (keyPath: KeyPath[]) => void;\n};\n\nexport const NodeWrapper: FC<NodeWrapperProps> = (props) => {\n const { section } = props;\n const nodeType = getNodeType(section);\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <span className=\"text-neutral text-xs\">React node not editable</span>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n [Nested] Dictionary\n </div>\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownWrapper {...props} section={section as MarkdownContent} />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationWrapper\n {...props}\n section={section as TranslationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationWrapper\n {...props}\n section={section as EnumerationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionWrapper\n {...props}\n section={section as ConditionContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayWrapper\n {...props}\n section={section as unknown as ContentNode[]}\n />\n );\n }\n\n return (\n <NestedObjectWrapper\n {...props}\n section={section as Record<string, ContentNode>}\n />\n );\n }\n\n if (typeof section === 'string') {\n return <StringWrapper {...props} section={section} />;\n }\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-D02c1QrF.cjs","sources":["../src/components/DictionaryEditor/NodeWrapper/ArrayWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/ConditionWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/TranslationWrapper.tsx","../src/components/DictionaryEditor/NodeWrapper/index.tsx"],"sourcesContent":["import {\n isSameKeyPath,\n NodeType,\n type ContentNode,\n type KeyPath,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype ArrayWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ContentNode[];\n};\n\nexport const ArrayWrapper: FC<ArrayWrapperProps> = (props) => {\n const { keyPath, section, onFocusKeyPath, focusedKeyPath = [] } = props;\n\n return section.map((subSection, key) => {\n const newKeyPathEl: KeyPath = {\n key,\n type: NodeType.Array,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={JSON.stringify(subSection)}\n title={`${key}`}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type ConditionContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype ConditionWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: ConditionContent<ContentNode>;\n};\n\nexport const ConditionWrapper: FC<ConditionWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Condition,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Condition][\n key as keyof (typeof section)[NodeType.Condition]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import {\n type KeyPath,\n NodeType,\n type EnumerationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype EnumerationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: EnumerationContent<ContentNode>;\n};\n\nexport const EnumerationWrapper: FC<EnumerationWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n {Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = {\n type: NodeType.Enumeration,\n key,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section[NodeType.Enumeration][\n key as keyof (typeof section)[NodeType.Enumeration]\n ]!;\n\n return (\n <>\n <span className=\"flex items-center font-bold\">{key}</span>\n <NodeWrapper\n {...props}\n key={key}\n keyPath={newKeyPath}\n section={subSection}\n />\n </>\n );\n })}\n </div>\n );\n};\n","import { type KeyPath, NodeType, type MarkdownContent } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype MarkdownWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: MarkdownContent;\n};\n\nexport const MarkdownWrapper: FC<MarkdownWrapperProps> = (props) => {\n const { keyPath, section } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Markdown,\n };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection = section[NodeType.Markdown];\n\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />\n </div>\n );\n};\n","import {\n type KeyPath,\n isSameKeyPath,\n type ContentNode,\n NodeType,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { ItemLayout } from '../ItemLayout';\nimport { NodeWrapper, traceKeys, type NodeWrapperProps } from './index';\n\ntype NestedObjectWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: Record<string, ContentNode>;\n};\n\nexport const NestedObjectWrapper: FC<NestedObjectWrapperProps> = (props) => {\n const { keyPath, section, focusedKeyPath = [], onFocusKeyPath } = props;\n\n return Object.keys(section)\n .filter((key) => !traceKeys.includes(key))\n .map((key) => {\n const newKeyPathEl: KeyPath = { key, type: NodeType.Object };\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n return (\n <ItemLayout\n level={keyPath.length}\n key={key}\n title={key}\n description=\"\"\n isSelected={isSameKeyPath(newKeyPath, focusedKeyPath)}\n onClick={(e) => {\n e.stopPropagation();\n\n onFocusKeyPath(newKeyPath);\n }}\n >\n <NodeWrapper {...props} keyPath={newKeyPath} section={section[key]} />\n </ItemLayout>\n );\n });\n};\n","import {\n type KeyPath,\n NodeType,\n type TranslationContent,\n type ContentNode,\n} from '@intlayer/core';\nimport type { FC } from 'react';\nimport { NodeWrapper, type NodeWrapperProps } from './index';\n\ntype TranslationWrapperProps = Omit<NodeWrapperProps, 'section'> & {\n section: TranslationContent<ContentNode>;\n};\n\nexport const TranslationWrapper: FC<TranslationWrapperProps> = (props) => {\n const { keyPath, section, locale } = props;\n\n const newKeyPathEl: KeyPath = {\n type: NodeType.Translation,\n key: locale,\n };\n\n const newKeyPath: KeyPath[] = [...keyPath, newKeyPathEl];\n\n const subSection =\n section.translation[\n locale as unknown as keyof (typeof section)['translation']\n ]!;\n\n return <NodeWrapper {...props} keyPath={newKeyPath} section={subSection} />;\n};\n","'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type MarkdownContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getNodeType,\n} from '@intlayer/core';\nimport { type FC } from 'react';\nimport { ArrayWrapper } from './ArrayWrapper';\nimport { ConditionWrapper } from './ConditionWrapper';\nimport { EnumerationWrapper } from './EnumerationWrapper';\nimport { MarkdownWrapper } from './MarkdownWrapper';\nimport { NestedObjectWrapper } from './NestedObjectWrapper';\nimport { StringWrapper } from './StringWrapper';\nimport { TranslationWrapper } from './TranslationWrapper';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n keyPath: KeyPath[];\n section: ContentNode;\n onContentChange: (content: { keyPath: KeyPath[]; newValue: string }) => void;\n locale: Locales;\n editedContent: ContentNode;\n focusedKeyPath: KeyPath[] | undefined;\n onFocusKeyPath: (keyPath: KeyPath[]) => void;\n onClickEdit?: (keyPath: KeyPath[]) => void;\n};\n\nexport const NodeWrapper: FC<NodeWrapperProps> = (props) => {\n const { section } = props;\n const nodeType = getNodeType(section);\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <span className=\"text-neutral text-xs\">React node not editable</span>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <div className=\"ml-2 grid grid-cols-[auto,1fr] gap-2\">\n [Nested] Dictionary\n </div>\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownWrapper {...props} section={section as MarkdownContent} />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationWrapper\n {...props}\n section={section as TranslationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationWrapper\n {...props}\n section={section as EnumerationContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionWrapper\n {...props}\n section={section as ConditionContent<ContentNode>}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayWrapper\n {...props}\n section={section as unknown as ContentNode[]}\n />\n );\n }\n\n return (\n <NestedObjectWrapper\n {...props}\n section={section as Record<string, ContentNode>}\n />\n );\n }\n\n if (typeof section === 'string') {\n return <StringWrapper {...props} section={section} />;\n }\n};\n"],"names":["NodeType","jsx","ItemLayout","isSameKeyPath","jsxs","Fragment","createElement","getNodeType","StringWrapper"],"mappings":"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"}