@intlayer/design-system 5.3.3 → 5.3.5

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 (192) hide show
  1. package/dist/.vite/manifest.json +67 -49
  2. package/dist/{Form-MjLzPGze.js → Form-CriPBaZk.js} +11 -1
  3. package/dist/Form-CriPBaZk.js.map +1 -0
  4. package/dist/{Form-BpxW17v4.cjs → Form-DJrUK3mm.cjs} +11 -1
  5. package/dist/Form-DJrUK3mm.cjs.map +1 -0
  6. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs +1 -1
  7. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs +1 -1
  8. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.cjs +1 -1
  9. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.mjs +1 -1
  10. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs +1 -1
  11. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs +1 -1
  12. package/dist/components/Auth/SignInForm/SignInForm.cjs +1 -1
  13. package/dist/components/Auth/SignInForm/SignInForm.mjs +1 -1
  14. package/dist/components/Auth/SignUpForm/SignUpForm.cjs +1 -1
  15. package/dist/components/Auth/SignUpForm/SignUpForm.mjs +1 -1
  16. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.cjs +1 -1
  17. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.mjs +1 -1
  18. package/dist/components/ContentEditor/ContentEditor.cjs.map +1 -1
  19. package/dist/components/ContentEditor/ContentEditor.d.ts +3 -2
  20. package/dist/components/ContentEditor/ContentEditor.d.ts.map +1 -1
  21. package/dist/components/ContentEditor/ContentEditor.mjs.map +1 -1
  22. package/dist/components/ContentEditor/ContentEditorTextArea.cjs +1 -1
  23. package/dist/components/ContentEditor/ContentEditorTextArea.mjs +1 -1
  24. package/dist/components/DictionaryEditor/DictionaryEditor.cjs +2 -1
  25. package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
  26. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
  27. package/dist/components/DictionaryEditor/DictionaryEditor.mjs +2 -1
  28. package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  29. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +1 -1
  30. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +1 -1
  31. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.cjs +1 -1
  32. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs +1 -1
  33. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs +1 -1
  34. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -1
  35. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.cjs +58 -0
  36. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.cjs.map +1 -0
  37. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts +9 -0
  38. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts.map +1 -0
  39. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs +58 -0
  40. package/dist/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs.map +1 -0
  41. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.cjs +7 -0
  42. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.cjs.map +1 -0
  43. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts +9 -0
  44. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts.map +1 -0
  45. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs +7 -0
  46. package/dist/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs.map +1 -0
  47. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs +4 -15
  48. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs.map +1 -1
  49. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts +2 -2
  50. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts.map +1 -1
  51. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs +4 -15
  52. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
  53. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +1 -1
  54. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +1 -1
  55. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +8 -5
  56. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
  57. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts +2 -2
  58. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
  59. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +8 -5
  60. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  61. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs +1 -1
  62. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -1
  63. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs +2 -2
  64. package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts +4 -2
  65. package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
  66. package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +2 -2
  67. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +102 -22
  68. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
  69. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +3 -1
  70. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  71. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +102 -22
  72. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  73. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +1 -1
  74. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
  75. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +1 -1
  76. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +1 -1
  77. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +48 -114
  78. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  79. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  80. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +49 -115
  81. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  82. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs +0 -51
  83. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map +1 -1
  84. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +0 -105
  85. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
  86. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs +0 -51
  87. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  88. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +6 -5
  89. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
  90. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.d.ts.map +1 -1
  91. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs +7 -6
  92. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  93. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +117 -78
  94. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  95. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  96. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +120 -81
  97. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  98. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +108 -0
  99. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  100. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +231 -0
  101. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  102. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +108 -0
  103. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  104. package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs +10 -2
  105. package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs.map +1 -1
  106. package/dist/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
  107. package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs +11 -3
  108. package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
  109. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs +30 -0
  110. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs.map +1 -1
  111. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +66 -0
  112. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
  113. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs +30 -0
  114. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  115. package/dist/components/Form/Form.cjs +1 -1
  116. package/dist/components/Form/Form.mjs +1 -1
  117. package/dist/components/Form/elements/AutoSizeTextAreaElement.cjs +1 -1
  118. package/dist/components/Form/elements/AutoSizeTextAreaElement.mjs +1 -1
  119. package/dist/components/Form/elements/CheckboxElement.cjs +1 -1
  120. package/dist/components/Form/elements/CheckboxElement.mjs +1 -1
  121. package/dist/components/Form/elements/EditableFieldInputElement.cjs +1 -1
  122. package/dist/components/Form/elements/EditableFieldInputElement.d.ts +2 -2
  123. package/dist/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
  124. package/dist/components/Form/elements/EditableFieldInputElement.mjs +1 -1
  125. package/dist/components/Form/elements/EditableFieldTextAreaElement.cjs +1 -1
  126. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -2
  127. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
  128. package/dist/components/Form/elements/EditableFieldTextAreaElement.mjs +1 -1
  129. package/dist/components/Form/elements/FormElement.cjs +1 -1
  130. package/dist/components/Form/elements/FormElement.mjs +1 -1
  131. package/dist/components/Form/elements/InputElement.cjs +1 -1
  132. package/dist/components/Form/elements/InputElement.d.ts +2 -2
  133. package/dist/components/Form/elements/InputElement.d.ts.map +1 -1
  134. package/dist/components/Form/elements/InputElement.mjs +1 -1
  135. package/dist/components/Form/elements/InputPasswordElement.cjs +1 -1
  136. package/dist/components/Form/elements/InputPasswordElement.d.ts +2 -2
  137. package/dist/components/Form/elements/InputPasswordElement.d.ts.map +1 -1
  138. package/dist/components/Form/elements/InputPasswordElement.mjs +1 -1
  139. package/dist/components/Form/elements/MultiselectElement.cjs +1 -1
  140. package/dist/components/Form/elements/MultiselectElement.mjs +1 -1
  141. package/dist/components/Form/elements/SelectElement.cjs +1 -1
  142. package/dist/components/Form/elements/SelectElement.mjs +1 -1
  143. package/dist/components/Form/elements/SwitchSelectorElement.cjs +1 -1
  144. package/dist/components/Form/elements/SwitchSelectorElement.mjs +1 -1
  145. package/dist/components/Form/elements/TextAreaElement.cjs +1 -1
  146. package/dist/components/Form/elements/TextAreaElement.d.ts +3 -3
  147. package/dist/components/Form/elements/TextAreaElement.d.ts.map +1 -1
  148. package/dist/components/Form/elements/TextAreaElement.mjs +1 -1
  149. package/dist/components/Form/elements/index.cjs +1 -1
  150. package/dist/components/Form/elements/index.mjs +1 -1
  151. package/dist/components/Form/index.cjs +1 -1
  152. package/dist/components/Form/index.mjs +1 -1
  153. package/dist/components/Form/layout/FormItemLayout.cjs +1 -1
  154. package/dist/components/Form/layout/FormItemLayout.mjs +1 -1
  155. package/dist/components/Form/layout/FormLabelLayout.cjs +12 -4
  156. package/dist/components/Form/layout/FormLabelLayout.cjs.map +1 -1
  157. package/dist/components/Form/layout/FormLabelLayout.d.ts.map +1 -1
  158. package/dist/components/Form/layout/FormLabelLayout.mjs +12 -4
  159. package/dist/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  160. package/dist/components/Form/layout/index.cjs +1 -1
  161. package/dist/components/Form/layout/index.mjs +1 -1
  162. package/dist/components/Input/Input.cjs.map +1 -1
  163. package/dist/components/Input/Input.d.ts +1 -7
  164. package/dist/components/Input/Input.d.ts.map +1 -1
  165. package/dist/components/Input/Input.mjs.map +1 -1
  166. package/dist/components/TextArea/TextArea.cjs.map +1 -1
  167. package/dist/components/TextArea/TextArea.d.ts +1 -7
  168. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  169. package/dist/components/TextArea/TextArea.mjs.map +1 -1
  170. package/dist/components/index.cjs +1 -1
  171. package/dist/components/index.mjs +1 -1
  172. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  173. package/dist/hooks/intlayerAPIHooks.d.ts +54 -54
  174. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  175. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  176. package/dist/hooks/useIntlayerAPI.d.ts +1 -1
  177. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  178. package/dist/{index-CVTE3oHq.js → index-CEoL1j7H.js} +48 -3
  179. package/dist/index-CEoL1j7H.js.map +1 -0
  180. package/dist/{index-BpCAhDMe.cjs → index-s_Ar0FDw.cjs} +48 -3
  181. package/dist/index-s_Ar0FDw.cjs.map +1 -0
  182. package/dist/utils/camelCase.cjs +2 -2
  183. package/dist/utils/camelCase.cjs.map +1 -1
  184. package/dist/utils/camelCase.d.ts +1 -1
  185. package/dist/utils/camelCase.d.ts.map +1 -1
  186. package/dist/utils/camelCase.mjs +2 -2
  187. package/dist/utils/camelCase.mjs.map +1 -1
  188. package/package.json +17 -19
  189. package/dist/Form-BpxW17v4.cjs.map +0 -1
  190. package/dist/Form-MjLzPGze.js.map +0 -1
  191. package/dist/index-BpCAhDMe.cjs.map +0 -1
  192. package/dist/index-CVTE3oHq.js.map +0 -1
@@ -1,11 +1,13 @@
1
1
  import { Dictionary, KeyPath, ContentNode } from '@intlayer/core';
2
- import { FC } from 'react';
2
+ import { ReactNode, FC } from 'react';
3
3
  export declare const traceKeys: string[];
4
4
  export type TextEditorProps = {
5
5
  dictionary: Dictionary;
6
6
  keyPath: KeyPath[];
7
7
  section: ContentNode;
8
8
  isDarkMode?: boolean;
9
+ renderSection?: (content: string) => ReactNode;
10
+ onContentChange?: (newValue: string) => void;
9
11
  };
10
12
  export declare const TextEditor: FC<TextEditorProps>;
11
13
  export declare const TextEditorContainer: FC<TextEditorProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EAMf,KAAK,OAAO,EACZ,KAAK,WAAW,EAKjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAsB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAyBpD,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AA8HlE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAwbF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA2I1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,eAAe,CASnD,CAAC"}
1
+ {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EAMf,KAAK,OAAO,EACZ,KAAK,WAAW,EAOjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAY,SAAS,EAAY,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAyB/D,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AA8HlE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAsfF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA4K1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,eAAe,CASnD,CAAC"}
@@ -123,7 +123,8 @@ const ContentEditorToggle = ({
123
123
  const TranslationTextEditor = ({
124
124
  section,
125
125
  keyPath,
126
- dictionary
126
+ dictionary,
127
+ renderSection
127
128
  }) => {
128
129
  const { locale, defaultLocale } = useLocale();
129
130
  const { selectedLocales, availableLocales } = useLocaleSwitcherContent();
@@ -145,7 +146,8 @@ const TranslationTextEditor = ({
145
146
  ...keyPath,
146
147
  { type: NodeType.Translation, key: translationKey }
147
148
  ],
148
- dictionary
149
+ dictionary,
150
+ renderSection
149
151
  }
150
152
  ) })
151
153
  ] }, translationKey)) }) });
@@ -153,7 +155,8 @@ const TranslationTextEditor = ({
153
155
  const EnumerationTextEditor = ({
154
156
  section,
155
157
  keyPath,
156
- dictionary
158
+ dictionary,
159
+ renderSection
157
160
  }) => {
158
161
  const { addEditedContent } = useEditedContent();
159
162
  const { addNewEnumeration, removeEnumeration } = useDictionary(
@@ -210,7 +213,8 @@ const EnumerationTextEditor = ({
210
213
  {
211
214
  section: content[enumKey] ?? getEmptyNode(content[firstKey]),
212
215
  keyPath: childrenKeyPath,
213
- dictionary
216
+ dictionary,
217
+ renderSection
214
218
  }
215
219
  ) })
216
220
  ] }, enumKey);
@@ -238,7 +242,8 @@ const EnumerationTextEditor = ({
238
242
  const ConditionTextEditor = ({
239
243
  section,
240
244
  keyPath,
241
- dictionary
245
+ dictionary,
246
+ renderSection
242
247
  }) => {
243
248
  const content = section[NodeType.Condition];
244
249
  return /* @__PURE__ */ jsx("table", { className: "w-full", children: /* @__PURE__ */ jsx("tbody", { className: "flex w-full flex-col gap-2", children: ["true", "false", "fallback"].map((condKey) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -254,7 +259,8 @@ const ConditionTextEditor = ({
254
259
  key: condKey
255
260
  }
256
261
  ],
257
- dictionary
262
+ dictionary,
263
+ renderSection
258
264
  }
259
265
  ) }, condKey)
260
266
  ] }, condKey)) }) });
@@ -262,7 +268,8 @@ const ConditionTextEditor = ({
262
268
  const ArrayTextEditor = ({
263
269
  section,
264
270
  keyPath,
265
- dictionary
271
+ dictionary,
272
+ renderSection
266
273
  }) => {
267
274
  const { addEditedContent } = useEditedContent();
268
275
  const { addNewElement, removeElement } = useDictionary(navigationViewContent);
@@ -304,7 +311,8 @@ const ArrayTextEditor = ({
304
311
  key: index
305
312
  }
306
313
  ],
307
- dictionary
314
+ dictionary,
315
+ renderSection
308
316
  }
309
317
  ) })
310
318
  ] }, JSON.stringify(subSection))) }) }),
@@ -340,7 +348,8 @@ const ArrayTextEditor = ({
340
348
  const ObjectTextEditor = ({
341
349
  section,
342
350
  keyPath,
343
- dictionary
351
+ dictionary,
352
+ renderSection
344
353
  }) => /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("table", { className: "w-full", children: /* @__PURE__ */ jsx("tbody", { className: "flex flex-col gap-2", children: Object.keys(section).map(
345
354
  (key) => {
346
355
  const childKeyPath = [
@@ -366,7 +375,8 @@ const ObjectTextEditor = ({
366
375
  {
367
376
  section: subSection,
368
377
  keyPath: childKeyPath,
369
- dictionary
378
+ dictionary,
379
+ renderSection
370
380
  }
371
381
  ) }, JSON.stringify(subSection))
372
382
  ] }, key);
@@ -376,7 +386,8 @@ const MarkdownTextEditor = ({
376
386
  section,
377
387
  keyPath,
378
388
  dictionary,
379
- isDarkMode
389
+ isDarkMode,
390
+ onContentChange
380
391
  }) => {
381
392
  const [mode, setMode] = useState(
382
393
  0
@@ -394,6 +405,7 @@ const MarkdownTextEditor = ({
394
405
  /* Preview */
395
406
  }
396
407
  ];
408
+ const childKeyPath = [...keyPath, { type: NodeType.Markdown }];
397
409
  const content = section[NodeType.Markdown];
398
410
  return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col justify-center gap-6 p-2", children: [
399
411
  /* @__PURE__ */ jsx(
@@ -407,22 +419,61 @@ const MarkdownTextEditor = ({
407
419
  className: "ml-auto"
408
420
  }
409
421
  ),
410
- mode === 0 && /* @__PURE__ */ jsx(
411
- ContentEditorTextArea,
422
+ /* @__PURE__ */ jsx(
423
+ TextEditorContainer,
412
424
  {
413
- variant: "default",
414
- "aria-label": "Edit field",
415
- keyPath: [...keyPath, { type: NodeType.Markdown }],
425
+ section: content,
426
+ keyPath: childKeyPath,
416
427
  dictionary,
417
- children: content
428
+ renderSection: mode === 1 ? (content2) => /* @__PURE__ */ jsx(MarkdownRenderer, { isDarkMode, children: content2 }) : void 0,
429
+ onContentChange
418
430
  }
419
- ),
420
- mode === 1 && /* @__PURE__ */ jsx(MarkdownRenderer, { isDarkMode, children: content })
431
+ )
432
+ ] });
433
+ };
434
+ const InsertionTextEditor = ({
435
+ section,
436
+ keyPath,
437
+ ...props
438
+ }) => {
439
+ const childKeyPath = [...keyPath, { type: NodeType.Insertion }];
440
+ const content = section[NodeType.Insertion];
441
+ return /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col justify-center gap-6 p-2", children: /* @__PURE__ */ jsx(
442
+ TextEditorContainer,
443
+ {
444
+ section: content,
445
+ keyPath: childKeyPath,
446
+ ...props
447
+ }
448
+ ) });
449
+ };
450
+ const FileTextEditor = ({
451
+ section,
452
+ keyPath,
453
+ ...props
454
+ }) => {
455
+ const childKeyPath = [...keyPath, { type: NodeType.File }];
456
+ const fileUrl = section[NodeType.File];
457
+ const { content } = section;
458
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col justify-center gap-6 p-2", children: [
459
+ /* @__PURE__ */ jsxs("span", { className: "text-neutral text-sm", children: [
460
+ fileUrl,
461
+ " "
462
+ ] }),
463
+ /* @__PURE__ */ jsx(
464
+ TextEditorContainer,
465
+ {
466
+ section: content,
467
+ keyPath: childKeyPath,
468
+ ...props
469
+ }
470
+ )
421
471
  ] });
422
472
  };
423
473
  const NestedTextEditor = ({
424
474
  keyPath,
425
475
  dictionary,
476
+ renderSection,
426
477
  section,
427
478
  ...props
428
479
  }) => {
@@ -437,6 +488,7 @@ const NestedTextEditor = ({
437
488
  "aria-label": "Edit field",
438
489
  type: "text",
439
490
  variant: "default",
491
+ ...props,
440
492
  onContentChange: (newValue) => {
441
493
  addEditedContent(
442
494
  dictionary.key,
@@ -447,7 +499,6 @@ const NestedTextEditor = ({
447
499
  childrenKeyPath
448
500
  );
449
501
  },
450
- ...props,
451
502
  children: content.dictionaryKey ?? ""
452
503
  }
453
504
  ),
@@ -458,6 +509,7 @@ const NestedTextEditor = ({
458
509
  "aria-label": "Edit field",
459
510
  type: "text",
460
511
  variant: "default",
512
+ ...props,
461
513
  onContentChange: (newValue) => {
462
514
  addEditedContent(
463
515
  dictionary.key,
@@ -468,7 +520,6 @@ const NestedTextEditor = ({
468
520
  childrenKeyPath
469
521
  );
470
522
  },
471
- ...props,
472
523
  children: content.path ?? ""
473
524
  }
474
525
  )
@@ -478,6 +529,7 @@ const TextEditor = ({
478
529
  section,
479
530
  keyPath,
480
531
  dictionary,
532
+ renderSection,
481
533
  isDarkMode
482
534
  }) => {
483
535
  const { tsxNotEditable } = useDictionary(navigationViewContent);
@@ -493,6 +545,7 @@ const TextEditor = ({
493
545
  NestedTextEditor,
494
546
  {
495
547
  dictionary,
548
+ renderSection,
496
549
  keyPath,
497
550
  section
498
551
  }
@@ -503,6 +556,7 @@ const TextEditor = ({
503
556
  TranslationTextEditor,
504
557
  {
505
558
  dictionary,
559
+ renderSection,
506
560
  keyPath,
507
561
  section
508
562
  }
@@ -513,6 +567,7 @@ const TextEditor = ({
513
567
  EnumerationTextEditor,
514
568
  {
515
569
  dictionary,
570
+ renderSection,
516
571
  keyPath,
517
572
  section
518
573
  }
@@ -523,6 +578,18 @@ const TextEditor = ({
523
578
  ConditionTextEditor,
524
579
  {
525
580
  dictionary,
581
+ renderSection,
582
+ keyPath,
583
+ section
584
+ }
585
+ );
586
+ }
587
+ if (nodeType === NodeType.Insertion) {
588
+ return /* @__PURE__ */ jsx(
589
+ InsertionTextEditor,
590
+ {
591
+ dictionary,
592
+ renderSection,
526
593
  keyPath,
527
594
  section
528
595
  }
@@ -539,11 +606,23 @@ const TextEditor = ({
539
606
  }
540
607
  );
541
608
  }
609
+ if (nodeType === NodeType.File) {
610
+ return /* @__PURE__ */ jsx(
611
+ FileTextEditor,
612
+ {
613
+ dictionary,
614
+ renderSection,
615
+ keyPath,
616
+ section
617
+ }
618
+ );
619
+ }
542
620
  if (nodeType === NodeType.Array) {
543
621
  return /* @__PURE__ */ jsx(
544
622
  ArrayTextEditor,
545
623
  {
546
624
  dictionary,
625
+ renderSection,
547
626
  keyPath,
548
627
  section
549
628
  }
@@ -554,6 +633,7 @@ const TextEditor = ({
554
633
  ObjectTextEditor,
555
634
  {
556
635
  dictionary,
636
+ renderSection,
557
637
  keyPath,
558
638
  section
559
639
  }
@@ -572,7 +652,7 @@ const TextEditor = ({
572
652
  ) });
573
653
  }
574
654
  if (nodeType === NodeType.Text) {
575
- return /* @__PURE__ */ jsx("div", { className: "w-full p-2", children: /* @__PURE__ */ jsx(
655
+ return /* @__PURE__ */ jsx("div", { className: "w-full p-2", children: typeof renderSection === "function" ? renderSection(section) : /* @__PURE__ */ jsx(
576
656
  ContentEditorTextArea,
577
657
  {
578
658
  variant: "default",
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.mjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config';\nimport {\n type Dictionary,\n type MarkdownContent,\n type NestedContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getLocaleName,\n getNodeType,\n type ConditionContent,\n getEmptyNode,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { Fragment, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { navigationViewContent } from '../NavigationView/navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { auditContentDeclarationField, isLoading: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField({\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.key] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n openAiApiKey: configuration.editor.openAiApiKey,\n model: configuration.editor.openAiApiModel,\n temperature: configuration.editor.openAiApiTemperature,\n }).then((response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(dictionary.key, editedContent, keyPath);\n } catch (error) {\n console.error(error);\n }\n });\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) => addEditedContent(dictionary.key, value, keyPath)}\n color=\"text\"\n size=\"sm\"\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as Locales[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content = (section as TranslationContent<string>)[NodeType.Translation];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } = useDictionary(\n navigationViewContent\n );\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant=\"hoverable\"\n color=\"text\"\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.key,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.key, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.key,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useDictionary(navigationViewContent);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n className=\"ml-auto\"\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 addEditedContent(dictionary.key, undefined, newKeyPath);\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.key,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n\n const content = (section as MarkdownContent)[NodeType.Markdown];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color=\"text\"\n size=\"sm\"\n className=\"ml-auto\"\n />\n {mode === MarkdownViewMode.Edit && (\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={[...keyPath, { type: NodeType.Markdown }]}\n dictionary={dictionary}\n >\n {content}\n </ContentEditorTextArea>\n )}\n {mode === MarkdownViewMode.Preview && (\n <MarkdownRenderer isDarkMode={isDarkMode}>{content}</MarkdownRenderer>\n )}\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as NestedContent)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n {...props}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n {...props}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["ContentEditorTextAreaBase","editedContent","ContentEditorInputBase","Fragment","toggleContent"],"mappings":"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"}
1
+ {"version":3,"file":"TextEditor.mjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config';\nimport {\n type Dictionary,\n type MarkdownContent,\n type NestedContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getLocaleName,\n getNodeType,\n type ConditionContent,\n getEmptyNode,\n InsertionContent,\n FileContent,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { Fragment, ReactNode, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { navigationViewContent } from '../NavigationView/navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { auditContentDeclarationField, isLoading: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField({\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.key] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n openAiApiKey: configuration.editor.openAiApiKey,\n model: configuration.editor.openAiApiModel,\n temperature: configuration.editor.openAiApiTemperature,\n }).then((response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(dictionary.key, editedContent, keyPath);\n } catch (error) {\n console.error(error);\n }\n });\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) => addEditedContent(dictionary.key, value, keyPath)}\n color=\"text\"\n size=\"sm\"\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n renderSection?: (content: string) => ReactNode;\n onContentChange?: (newValue: string) => void;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as Locales[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content = (section as TranslationContent<string>)[NodeType.Translation];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } = useDictionary(\n navigationViewContent\n );\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant=\"hoverable\"\n color=\"text\"\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.key,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.key, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.key,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useDictionary(navigationViewContent);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n className=\"ml-auto\"\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 addEditedContent(dictionary.key, undefined, newKeyPath);\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.key,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n onContentChange,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Markdown }];\n\n const content = (section as MarkdownContent<ContentNode>)[\n NodeType.Markdown\n ] as ContentNode;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color=\"text\"\n size=\"sm\"\n className=\"ml-auto\"\n />\n\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={\n mode === MarkdownViewMode.Preview\n ? (content) => (\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n )\n : undefined\n }\n onContentChange={onContentChange}\n />\n </div>\n );\n};\n\nconst InsertionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Insertion }];\n\n const content = (section as InsertionContent<ContentNode>)[\n NodeType.Insertion\n ];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst FileTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.File }];\n\n const fileUrl = (section as FileContent)[NodeType.File];\n const { content } = section as FileContent;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <span className=\"text-neutral text-sm\">{fileUrl} </span>\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n renderSection,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as NestedContent)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Insertion) {\n return (\n <InsertionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.File) {\n return (\n <FileTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n {typeof renderSection === 'function' ? (\n renderSection(section as string)\n ) : (\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n )}\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["ContentEditorTextAreaBase","editedContent","ContentEditorInputBase","Fragment","toggleContent","content"],"mappings":"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"}
@@ -15,7 +15,7 @@ require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
15
15
  require("@intlayer/api");
16
16
  const components_Form_FormBase = require("../../Form/FormBase.cjs");
17
17
  require("../../Form/FormField.cjs");
18
- const components_Form_layout_FormItemLayout = require("../../../Form-BpxW17v4.cjs");
18
+ const components_Form_layout_FormItemLayout = require("../../../Form-DJrUK3mm.cjs");
19
19
  require("../../Auth/SignInForm/signIn.content.cjs");
20
20
  require("zod");
21
21
  require("../../Auth/SignInForm/useSignInSchema.content.cjs");
@@ -13,7 +13,7 @@ import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
13
13
  import "@intlayer/api";
14
14
  import { useForm } from "../../Form/FormBase.mjs";
15
15
  import "../../Form/FormField.mjs";
16
- import { F as Form } from "../../../Form-MjLzPGze.js";
16
+ import { F as Form } from "../../../Form-CriPBaZk.js";
17
17
  import "../../Auth/SignInForm/signIn.content.mjs";
18
18
  import "zod";
19
19
  import "../../Auth/SignInForm/useSignInSchema.content.mjs";
@@ -16,7 +16,7 @@ require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
16
16
  require("@intlayer/api");
17
17
  const components_Form_FormBase = require("../../Form/FormBase.cjs");
18
18
  require("../../Form/FormField.cjs");
19
- const components_Form_layout_FormItemLayout = require("../../../Form-BpxW17v4.cjs");
19
+ const components_Form_layout_FormItemLayout = require("../../../Form-DJrUK3mm.cjs");
20
20
  require("../../Auth/SignInForm/signIn.content.cjs");
21
21
  require("zod");
22
22
  require("../../Auth/SignInForm/useSignInSchema.content.cjs");
@@ -14,7 +14,7 @@ import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
14
14
  import "@intlayer/api";
15
15
  import { useForm } from "../../Form/FormBase.mjs";
16
16
  import "../../Form/FormField.mjs";
17
- import { F as Form } from "../../../Form-MjLzPGze.js";
17
+ import { F as Form } from "../../../Form-CriPBaZk.js";
18
18
  import "../../Auth/SignInForm/signIn.content.mjs";
19
19
  import "zod";
20
20
  import "../../Auth/SignInForm/useSignInSchema.content.mjs";