@intlayer/design-system 3.5.4 → 3.5.6

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 (486) hide show
  1. package/dist/.vite/manifest.json +351 -60
  2. package/dist/CodeBlockShiki-BlmZyrr7.cjs +29 -0
  3. package/dist/CodeBlockShiki-BlmZyrr7.cjs.map +1 -0
  4. package/dist/CodeBlockShiki-CcpV9SVi.js +29 -0
  5. package/dist/CodeBlockShiki-CcpV9SVi.js.map +1 -0
  6. package/dist/CopyButton-Cxu3goRg.cjs +59 -0
  7. package/dist/CopyButton-Cxu3goRg.cjs.map +1 -0
  8. package/dist/CopyButton-DlcDlf6U.js +60 -0
  9. package/dist/CopyButton-DlcDlf6U.js.map +1 -0
  10. package/dist/Form-BB0kpER9.cjs +301 -0
  11. package/dist/Form-BB0kpER9.cjs.map +1 -0
  12. package/dist/Form-BDcoNTLV.cjs.map +1 -1
  13. package/dist/Form-DGLgTAdY.js +302 -0
  14. package/dist/Form-DGLgTAdY.js.map +1 -0
  15. package/dist/Form-DhsgC7kB.js.map +1 -1
  16. package/dist/components/Auth/useAuth/useSession.cjs +1 -0
  17. package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
  18. package/dist/components/Auth/useAuth/useSession.mjs +1 -0
  19. package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
  20. package/dist/components/Breadcrumb/breadcrumb.content.cjs +26 -0
  21. package/dist/components/Breadcrumb/breadcrumb.content.cjs.map +1 -0
  22. package/dist/components/Breadcrumb/breadcrumb.content.d.ts +8 -0
  23. package/dist/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -0
  24. package/dist/components/Breadcrumb/breadcrumb.content.mjs +26 -0
  25. package/dist/components/Breadcrumb/breadcrumb.content.mjs.map +1 -0
  26. package/dist/components/Breadcrumb/index.cjs +106 -34
  27. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  28. package/dist/components/Breadcrumb/index.d.ts +6 -2
  29. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  30. package/dist/components/Breadcrumb/index.mjs +106 -34
  31. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  32. package/dist/components/Button/Button.cjs +7 -8
  33. package/dist/components/Button/Button.cjs.map +1 -1
  34. package/dist/components/Button/Button.d.ts.map +1 -1
  35. package/dist/components/Button/Button.mjs +7 -8
  36. package/dist/components/Button/Button.mjs.map +1 -1
  37. package/dist/components/ClickOutsideDiv/index.cjs +26 -0
  38. package/dist/components/ClickOutsideDiv/index.cjs.map +1 -0
  39. package/dist/components/ClickOutsideDiv/index.d.ts +6 -0
  40. package/dist/components/ClickOutsideDiv/index.d.ts.map +1 -0
  41. package/dist/components/ClickOutsideDiv/index.mjs +26 -0
  42. package/dist/components/ClickOutsideDiv/index.mjs.map +1 -0
  43. package/dist/components/Container/index.cjs +2 -2
  44. package/dist/components/Container/index.cjs.map +1 -1
  45. package/dist/components/Container/index.mjs +2 -2
  46. package/dist/components/Container/index.mjs.map +1 -1
  47. package/dist/components/ContentEditor/ContentEditorCode.cjs +78 -0
  48. package/dist/components/ContentEditor/ContentEditorCode.cjs.map +1 -0
  49. package/dist/components/ContentEditor/ContentEditorCode.d.ts +11 -0
  50. package/dist/components/ContentEditor/ContentEditorCode.d.ts.map +1 -0
  51. package/dist/components/ContentEditor/ContentEditorCode.mjs +78 -0
  52. package/dist/components/ContentEditor/ContentEditorCode.mjs.map +1 -0
  53. package/dist/components/ContentEditor/ContentEditorTextArea.cjs +30 -26
  54. package/dist/components/ContentEditor/ContentEditorTextArea.cjs.map +1 -1
  55. package/dist/components/ContentEditor/ContentEditorTextArea.d.ts +2 -1
  56. package/dist/components/ContentEditor/ContentEditorTextArea.d.ts.map +1 -1
  57. package/dist/components/ContentEditor/ContentEditorTextArea.mjs +30 -26
  58. package/dist/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  59. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +3 -3
  60. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
  61. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +3 -3
  62. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
  63. package/dist/components/DictionaryEditor/index.cjs +4 -0
  64. package/dist/components/DictionaryEditor/index.cjs.map +1 -1
  65. package/dist/components/DictionaryEditor/index.mjs +4 -0
  66. package/dist/components/DictionaryEditor/index.mjs.map +1 -1
  67. package/dist/components/DictionaryEditor/useEditedContentStore.cjs +3 -0
  68. package/dist/components/DictionaryEditor/useEditedContentStore.cjs.map +1 -1
  69. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts +2 -2
  70. package/dist/components/DictionaryEditor/useEditedContentStore.d.ts.map +1 -1
  71. package/dist/components/DictionaryEditor/useEditedContentStore.mjs +3 -0
  72. package/dist/components/DictionaryEditor/useEditedContentStore.mjs.map +1 -1
  73. package/dist/components/DictionaryEditor/useEditionPanelStore.cjs.map +1 -1
  74. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts +1 -1
  75. package/dist/components/DictionaryEditor/useEditionPanelStore.d.ts.map +1 -1
  76. package/dist/components/DictionaryEditor/useEditionPanelStore.mjs.map +1 -1
  77. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +9 -5
  78. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  79. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +3 -0
  80. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  81. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +9 -5
  82. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  83. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +161 -69
  84. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  85. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  86. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +163 -71
  87. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  88. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +123 -0
  89. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  90. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +14 -0
  91. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  92. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +123 -0
  93. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  94. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.cjs +9 -2
  95. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.cjs.map +1 -1
  96. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs +15 -0
  97. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs.map +1 -1
  98. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +1 -0
  99. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
  100. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs +15 -0
  101. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  102. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts +6 -0
  103. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts.map +1 -1
  104. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs +9 -2
  105. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
  106. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +17 -6
  107. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  108. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +3 -0
  109. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  110. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +17 -6
  111. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  112. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs +7 -5
  113. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
  114. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts +2 -0
  115. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts.map +1 -1
  116. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs +7 -5
  117. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
  118. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs +117 -55
  119. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs.map +1 -1
  120. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts +4 -2
  121. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts.map +1 -1
  122. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs +115 -53
  123. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs.map +1 -1
  124. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +20 -18
  125. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  126. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts +1 -0
  127. package/dist/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
  128. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +20 -18
  129. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  130. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs +10 -2
  131. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs.map +1 -1
  132. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts +2 -0
  133. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
  134. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs +10 -2
  135. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  136. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelector.d.ts +8 -0
  137. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelector.d.ts.map +1 -0
  138. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelectorContext.d.ts +13 -0
  139. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelectorContext.d.ts.map +1 -0
  140. package/dist/components/DictionaryFieldEditor/LocaleSelector/localeSelector.content.d.ts +9 -0
  141. package/dist/components/DictionaryFieldEditor/LocaleSelector/localeSelector.content.d.ts.map +1 -0
  142. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +10 -10
  143. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  144. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +10 -10
  145. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  146. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +32 -23
  147. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  148. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts +2 -0
  149. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
  150. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +32 -23
  151. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  152. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +1 -1
  153. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
  154. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs +1 -1
  155. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  156. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +59 -18
  157. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  158. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  159. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +62 -21
  160. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  161. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
  162. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  163. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
  164. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  165. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
  166. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  167. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs +73 -0
  168. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs.map +1 -0
  169. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts +7 -0
  170. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts.map +1 -0
  171. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +73 -0
  172. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -0
  173. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +37 -0
  174. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs.map +1 -0
  175. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts +14 -0
  176. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts.map +1 -0
  177. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +37 -0
  178. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -0
  179. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.cjs +8 -0
  180. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.cjs.map +1 -0
  181. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.d.ts +3 -0
  182. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.d.ts.map +1 -0
  183. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.mjs +8 -0
  184. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.mjs.map +1 -0
  185. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs +54 -0
  186. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs.map +1 -0
  187. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +10 -0
  188. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts.map +1 -0
  189. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs +55 -0
  190. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs.map +1 -0
  191. package/dist/components/DictionaryFieldEditor/index.cjs +5 -0
  192. package/dist/components/DictionaryFieldEditor/index.cjs.map +1 -1
  193. package/dist/components/DictionaryFieldEditor/index.d.ts +1 -0
  194. package/dist/components/DictionaryFieldEditor/index.d.ts.map +1 -1
  195. package/dist/components/DictionaryFieldEditor/index.mjs +6 -1
  196. package/dist/components/DictionaryFieldEditor/index.mjs.map +1 -1
  197. package/dist/components/DropDown/index.cjs.map +1 -1
  198. package/dist/components/DropDown/index.d.ts +18 -1
  199. package/dist/components/DropDown/index.d.ts.map +1 -1
  200. package/dist/components/DropDown/index.mjs.map +1 -1
  201. package/dist/components/EditableField/EditableFieldInput.cjs +5 -1
  202. package/dist/components/EditableField/EditableFieldInput.cjs.map +1 -1
  203. package/dist/components/EditableField/EditableFieldInput.d.ts.map +1 -1
  204. package/dist/components/EditableField/EditableFieldInput.mjs +6 -2
  205. package/dist/components/EditableField/EditableFieldInput.mjs.map +1 -1
  206. package/dist/components/EditableField/EditableFieldTextArea.cjs +2 -8
  207. package/dist/components/EditableField/EditableFieldTextArea.cjs.map +1 -1
  208. package/dist/components/EditableField/EditableFieldTextArea.d.ts.map +1 -1
  209. package/dist/components/EditableField/EditableFieldTextArea.mjs +2 -8
  210. package/dist/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  211. package/dist/components/Form/FormLabel.cjs +6 -2
  212. package/dist/components/Form/FormLabel.cjs.map +1 -1
  213. package/dist/components/Form/FormLabel.d.ts.map +1 -1
  214. package/dist/components/Form/FormLabel.mjs +6 -2
  215. package/dist/components/Form/FormLabel.mjs.map +1 -1
  216. package/dist/components/Form/elements/EditableFieldInputElement.d.ts +1 -1
  217. package/dist/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
  218. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts +1 -1
  219. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
  220. package/dist/components/Form/elements/SelectElement.d.ts.map +1 -1
  221. package/dist/components/Headers/index.cjs +1 -1
  222. package/dist/components/Headers/index.cjs.map +1 -1
  223. package/dist/components/Headers/index.mjs +1 -1
  224. package/dist/components/Headers/index.mjs.map +1 -1
  225. package/dist/components/IDE/Code.cjs +77 -0
  226. package/dist/components/IDE/Code.cjs.map +1 -0
  227. package/dist/components/IDE/Code.d.ts +18 -0
  228. package/dist/components/IDE/Code.d.ts.map +1 -0
  229. package/dist/components/IDE/Code.mjs +77 -0
  230. package/dist/components/IDE/Code.mjs.map +1 -0
  231. package/dist/components/IDE/CodeBlock.cjs +54 -0
  232. package/dist/components/IDE/CodeBlock.cjs.map +1 -0
  233. package/dist/components/IDE/CodeBlock.d.ts +12 -0
  234. package/dist/components/IDE/CodeBlock.d.ts.map +1 -0
  235. package/dist/components/IDE/CodeBlock.mjs +54 -0
  236. package/dist/components/IDE/CodeBlock.mjs.map +1 -0
  237. package/dist/components/IDE/CodeBlockClient.cjs +55 -0
  238. package/dist/components/IDE/CodeBlockClient.cjs.map +1 -0
  239. package/dist/components/IDE/CodeBlockClient.mjs +55 -0
  240. package/dist/components/IDE/CodeBlockClient.mjs.map +1 -0
  241. package/dist/components/IDE/CodeBlockLoader.cjs +28 -0
  242. package/dist/components/IDE/CodeBlockLoader.cjs.map +1 -0
  243. package/dist/components/IDE/CodeBlockLoader.d.ts +4 -0
  244. package/dist/components/IDE/CodeBlockLoader.d.ts.map +1 -0
  245. package/dist/components/IDE/CodeBlockLoader.mjs +28 -0
  246. package/dist/components/IDE/CodeBlockLoader.mjs.map +1 -0
  247. package/dist/components/IDE/CodeBlockServer.cjs +53 -0
  248. package/dist/components/IDE/CodeBlockServer.cjs.map +1 -0
  249. package/dist/components/IDE/CodeBlockServer.d.ts +12 -0
  250. package/dist/components/IDE/CodeBlockServer.d.ts.map +1 -0
  251. package/dist/components/IDE/CodeBlockServer.mjs +53 -0
  252. package/dist/components/IDE/CodeBlockServer.mjs.map +1 -0
  253. package/dist/components/IDE/CodeBlockShiki.d.ts +3 -0
  254. package/dist/components/IDE/CodeBlockShiki.d.ts.map +1 -0
  255. package/dist/components/IDE/CodeBlockclient.d.ts +12 -0
  256. package/dist/components/IDE/CodeBlockclient.d.ts.map +1 -0
  257. package/dist/components/IDE/CodeConditionalRenderer.cjs +20 -0
  258. package/dist/components/IDE/CodeConditionalRenderer.cjs.map +1 -0
  259. package/dist/components/IDE/CodeConditionalRenderer.d.ts +4 -0
  260. package/dist/components/IDE/CodeConditionalRenderer.d.ts.map +1 -0
  261. package/dist/components/IDE/CodeConditionalRenderer.mjs +20 -0
  262. package/dist/components/IDE/CodeConditionalRenderer.mjs.map +1 -0
  263. package/dist/components/IDE/CodeContext.cjs +57 -0
  264. package/dist/components/IDE/CodeContext.cjs.map +1 -0
  265. package/dist/components/IDE/CodeContext.d.ts +26 -0
  266. package/dist/components/IDE/CodeContext.d.ts.map +1 -0
  267. package/dist/components/IDE/CodeContext.mjs +57 -0
  268. package/dist/components/IDE/CodeContext.mjs.map +1 -0
  269. package/dist/components/IDE/CodeFormatSelector.cjs +30 -0
  270. package/dist/components/IDE/CodeFormatSelector.cjs.map +1 -0
  271. package/dist/components/IDE/CodeFormatSelector.d.ts +3 -0
  272. package/dist/components/IDE/CodeFormatSelector.d.ts.map +1 -0
  273. package/dist/components/IDE/CodeFormatSelector.mjs +30 -0
  274. package/dist/components/IDE/CodeFormatSelector.mjs.map +1 -0
  275. package/dist/components/IDE/CodeRender copy.cjs +141 -0
  276. package/dist/components/IDE/CodeRender copy.cjs.map +1 -0
  277. package/dist/components/IDE/CodeRender copy.d.ts +14 -0
  278. package/dist/components/IDE/CodeRender copy.d.ts.map +1 -0
  279. package/dist/components/IDE/CodeRender copy.mjs +141 -0
  280. package/dist/components/IDE/CodeRender copy.mjs.map +1 -0
  281. package/dist/components/IDE/CodeRender.cjs +39 -625
  282. package/dist/components/IDE/CodeRender.cjs.map +1 -1
  283. package/dist/components/IDE/CodeRender.d.ts +4 -5
  284. package/dist/components/IDE/CodeRender.d.ts.map +1 -1
  285. package/dist/components/IDE/CodeRender.mjs +40 -604
  286. package/dist/components/IDE/CodeRender.mjs.map +1 -1
  287. package/dist/components/IDE/CodeRenderer.cjs +27 -0
  288. package/dist/components/IDE/CodeRenderer.cjs.map +1 -0
  289. package/dist/components/IDE/CodeRenderer.d.ts +5 -0
  290. package/dist/components/IDE/CodeRenderer.d.ts.map +1 -0
  291. package/dist/components/IDE/CodeRenderer.mjs +27 -0
  292. package/dist/components/IDE/CodeRenderer.mjs.map +1 -0
  293. package/dist/components/IDE/ContentDeclarationFormatSelector.cjs +28 -0
  294. package/dist/components/IDE/ContentDeclarationFormatSelector.cjs.map +1 -0
  295. package/dist/components/IDE/ContentDeclarationFormatSelector.d.ts +3 -0
  296. package/dist/components/IDE/ContentDeclarationFormatSelector.d.ts.map +1 -0
  297. package/dist/components/IDE/ContentDeclarationFormatSelector.mjs +28 -0
  298. package/dist/components/IDE/ContentDeclarationFormatSelector.mjs.map +1 -0
  299. package/dist/components/IDE/CopyButton.cjs +40 -0
  300. package/dist/components/IDE/CopyButton.cjs.map +1 -0
  301. package/dist/components/IDE/CopyButton.content.cjs +26 -0
  302. package/dist/components/IDE/CopyButton.content.cjs.map +1 -0
  303. package/dist/components/IDE/CopyButton.content.d.ts +8 -0
  304. package/dist/components/IDE/CopyButton.content.d.ts.map +1 -0
  305. package/dist/components/IDE/CopyButton.content.mjs +26 -0
  306. package/dist/components/IDE/CopyButton.content.mjs.map +1 -0
  307. package/dist/components/IDE/CopyButton.d.ts +7 -0
  308. package/dist/components/IDE/CopyButton.d.ts.map +1 -0
  309. package/dist/components/IDE/CopyButton.mjs +40 -0
  310. package/dist/components/IDE/CopyButton.mjs.map +1 -0
  311. package/dist/components/IDE/EditableCodeBlock.d.ts +9 -0
  312. package/dist/components/IDE/EditableCodeBlock.d.ts.map +1 -0
  313. package/dist/components/IDE/IDE.cjs +1 -1
  314. package/dist/components/IDE/IDE.cjs.map +1 -1
  315. package/dist/components/IDE/IDE.mjs +1 -1
  316. package/dist/components/IDE/IDE.mjs.map +1 -1
  317. package/dist/components/IDE/MarkDownRender.cjs +11 -4
  318. package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
  319. package/dist/components/IDE/MarkDownRender.d.ts.map +1 -1
  320. package/dist/components/IDE/MarkDownRender.mjs +11 -4
  321. package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
  322. package/dist/components/IDE/MonacoCode.cjs +129 -0
  323. package/dist/components/IDE/MonacoCode.cjs.map +1 -0
  324. package/dist/components/IDE/MonacoCode.d.ts +14 -0
  325. package/dist/components/IDE/MonacoCode.d.ts.map +1 -0
  326. package/dist/components/IDE/MonacoCode.mjs +129 -0
  327. package/dist/components/IDE/MonacoCode.mjs.map +1 -0
  328. package/dist/components/IDE/PackageManagerSelector.cjs +20 -0
  329. package/dist/components/IDE/PackageManagerSelector.cjs.map +1 -0
  330. package/dist/components/IDE/PackageManagerSelector.d.ts +3 -0
  331. package/dist/components/IDE/PackageManagerSelector.d.ts.map +1 -0
  332. package/dist/components/IDE/PackageManagerSelector.mjs +20 -0
  333. package/dist/components/IDE/PackageManagerSelector.mjs.map +1 -0
  334. package/dist/components/IDE/index.cjs +2 -2
  335. package/dist/components/IDE/index.d.ts +1 -1
  336. package/dist/components/IDE/index.d.ts.map +1 -1
  337. package/dist/components/IDE/index.mjs +1 -1
  338. package/dist/components/Link/Link.cjs +50 -31
  339. package/dist/components/Link/Link.cjs.map +1 -1
  340. package/dist/components/Link/Link.d.ts +3 -0
  341. package/dist/components/Link/Link.d.ts.map +1 -1
  342. package/dist/components/Link/Link.mjs +51 -32
  343. package/dist/components/Link/Link.mjs.map +1 -1
  344. package/dist/components/Link/index.cjs +1 -0
  345. package/dist/components/Link/index.cjs.map +1 -1
  346. package/dist/components/Link/index.mjs +3 -2
  347. package/dist/components/LocaleSwitcherContentDropDown/LocaleSelectorContext.d.ts +13 -0
  348. package/dist/components/LocaleSwitcherContentDropDown/LocaleSelectorContext.d.ts.map +1 -0
  349. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +218 -0
  350. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -0
  351. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts +8 -0
  352. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -0
  353. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +218 -0
  354. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -0
  355. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +42 -0
  356. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs.map +1 -0
  357. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts +15 -0
  358. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts.map +1 -0
  359. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +42 -0
  360. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -0
  361. package/dist/components/LocaleSwitcherContentDropDown/index.cjs +8 -0
  362. package/dist/components/LocaleSwitcherContentDropDown/index.cjs.map +1 -0
  363. package/dist/components/LocaleSwitcherContentDropDown/index.d.ts +3 -0
  364. package/dist/components/LocaleSwitcherContentDropDown/index.d.ts.map +1 -0
  365. package/dist/components/LocaleSwitcherContentDropDown/index.mjs +8 -0
  366. package/dist/components/LocaleSwitcherContentDropDown/index.mjs.map +1 -0
  367. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs +118 -0
  368. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs.map +1 -0
  369. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +18 -0
  370. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -0
  371. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs +119 -0
  372. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -0
  373. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +110 -34
  374. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  375. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +2 -0
  376. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  377. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +111 -35
  378. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  379. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +63 -1
  380. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
  381. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -0
  382. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
  383. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +63 -1
  384. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  385. package/dist/components/MarkDownRender/index.cjs +22 -26
  386. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  387. package/dist/components/MarkDownRender/index.d.ts +5 -1
  388. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  389. package/dist/components/MarkDownRender/index.mjs +22 -26
  390. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  391. package/dist/components/Modal/Modal.cjs +11 -13
  392. package/dist/components/Modal/Modal.cjs.map +1 -1
  393. package/dist/components/Modal/Modal.d.ts +1 -1
  394. package/dist/components/Modal/Modal.d.ts.map +1 -1
  395. package/dist/components/Modal/Modal.mjs +11 -13
  396. package/dist/components/Modal/Modal.mjs.map +1 -1
  397. package/dist/components/Navbar/DesktopNavbar.cjs +1 -1
  398. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  399. package/dist/components/Navbar/DesktopNavbar.mjs +1 -1
  400. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  401. package/dist/components/SwitchSelector/index.cjs +4 -0
  402. package/dist/components/SwitchSelector/index.cjs.map +1 -1
  403. package/dist/components/SwitchSelector/index.d.ts.map +1 -1
  404. package/dist/components/SwitchSelector/index.mjs +5 -1
  405. package/dist/components/SwitchSelector/index.mjs.map +1 -1
  406. package/dist/components/index.cjs +21 -4
  407. package/dist/components/index.cjs.map +1 -1
  408. package/dist/components/index.d.ts +3 -1
  409. package/dist/components/index.d.ts.map +1 -1
  410. package/dist/components/index.mjs +21 -4
  411. package/dist/components/index.mjs.map +1 -1
  412. package/dist/design-system.css +235 -0
  413. package/dist/hooks/index.cjs +13 -0
  414. package/dist/hooks/index.cjs.map +1 -1
  415. package/dist/hooks/index.d.ts +1 -0
  416. package/dist/hooks/index.d.ts.map +1 -1
  417. package/dist/hooks/index.mjs +14 -1
  418. package/dist/hooks/index.mjs.map +1 -1
  419. package/dist/hooks/intlayerAPIHooks.cjs +86 -5
  420. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  421. package/dist/hooks/intlayerAPIHooks.d.ts +15 -1
  422. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  423. package/dist/hooks/intlayerAPIHooks.mjs +86 -5
  424. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  425. package/dist/hooks/useAsync/index.cjs +3 -0
  426. package/dist/hooks/useAsync/index.cjs.map +1 -1
  427. package/dist/hooks/useAsync/index.d.ts +1 -0
  428. package/dist/hooks/useAsync/index.d.ts.map +1 -1
  429. package/dist/hooks/useAsync/index.mjs +4 -1
  430. package/dist/hooks/useAsync/index.mjs.map +1 -1
  431. package/dist/hooks/useAsync/useAsync.cjs +2 -9
  432. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  433. package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
  434. package/dist/hooks/useAsync/useAsync.mjs +3 -10
  435. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  436. package/dist/hooks/useAsync/useAsyncStateStore.cjs +123 -73
  437. package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
  438. package/dist/hooks/useAsync/useAsyncStateStore.d.ts +35 -11
  439. package/dist/hooks/useAsync/useAsyncStateStore.d.ts.map +1 -1
  440. package/dist/hooks/useAsync/useAsyncStateStore.mjs +123 -73
  441. package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
  442. package/dist/hooks/useGetAllDictionaries.cjs +4 -2
  443. package/dist/hooks/useGetAllDictionaries.cjs.map +1 -1
  444. package/dist/hooks/useGetAllDictionaries.d.ts +4 -1
  445. package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
  446. package/dist/hooks/useGetAllDictionaries.mjs +4 -2
  447. package/dist/hooks/useGetAllDictionaries.mjs.map +1 -1
  448. package/dist/hooks/useIntlayerAPI.d.ts +13 -1
  449. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  450. package/dist/hooks/useIsDarkMode.cjs +15 -0
  451. package/dist/hooks/useIsDarkMode.cjs.map +1 -0
  452. package/dist/hooks/useIsDarkMode.d.ts +2 -0
  453. package/dist/hooks/useIsDarkMode.d.ts.map +1 -0
  454. package/dist/hooks/useIsDarkMode.mjs +15 -0
  455. package/dist/hooks/useIsDarkMode.mjs.map +1 -0
  456. package/dist/hooks/usePersistedStore.cjs +17 -5
  457. package/dist/hooks/usePersistedStore.cjs.map +1 -1
  458. package/dist/hooks/usePersistedStore.d.ts.map +1 -1
  459. package/dist/hooks/usePersistedStore.mjs +17 -5
  460. package/dist/hooks/usePersistedStore.mjs.map +1 -1
  461. package/dist/libs/intlayer-api/ai.cjs +54 -0
  462. package/dist/libs/intlayer-api/ai.cjs.map +1 -0
  463. package/dist/libs/intlayer-api/ai.d.ts +16 -0
  464. package/dist/libs/intlayer-api/ai.d.ts.map +1 -0
  465. package/dist/libs/intlayer-api/ai.mjs +54 -0
  466. package/dist/libs/intlayer-api/ai.mjs.map +1 -0
  467. package/dist/libs/intlayer-api/dictionary.cjs +2 -2
  468. package/dist/libs/intlayer-api/dictionary.cjs.map +1 -1
  469. package/dist/libs/intlayer-api/dictionary.d.ts +3 -3
  470. package/dist/libs/intlayer-api/dictionary.d.ts.map +1 -1
  471. package/dist/libs/intlayer-api/dictionary.mjs +2 -2
  472. package/dist/libs/intlayer-api/dictionary.mjs.map +1 -1
  473. package/dist/libs/intlayer-api/index.cjs +5 -1
  474. package/dist/libs/intlayer-api/index.cjs.map +1 -1
  475. package/dist/libs/intlayer-api/index.d.ts +26 -2
  476. package/dist/libs/intlayer-api/index.d.ts.map +1 -1
  477. package/dist/libs/intlayer-api/index.mjs +5 -1
  478. package/dist/libs/intlayer-api/index.mjs.map +1 -1
  479. package/dist/libs/intlayer-api/tag.cjs +52 -0
  480. package/dist/libs/intlayer-api/tag.cjs.map +1 -0
  481. package/dist/libs/intlayer-api/tag.d.ts +16 -0
  482. package/dist/libs/intlayer-api/tag.d.ts.map +1 -0
  483. package/dist/libs/intlayer-api/tag.mjs +52 -0
  484. package/dist/libs/intlayer-api/tag.mjs.map +1 -0
  485. package/dist/tailwind.css +1 -1
  486. package/package.json +20 -18
@@ -1,36 +1,90 @@
1
1
  "use client";
2
2
  import { j as jsxRuntimeExports } from "../../../jsx-runtime-DaNGiM0W.js";
3
- import { getConfiguration } from "@intlayer/config/client";
4
3
  import { NodeType, getLocaleName } from "@intlayer/core";
5
- import { X, Plus } from "lucide-react";
4
+ import { WandSparkles, X, Plus } from "lucide-react";
6
5
  import { createElement } from "react";
7
6
  import { useDictionary } from "react-intlayer";
8
7
  import { u as useShallow } from "../../../shallow-m9BpCkKh.js";
8
+ import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
9
+ import "../../../hooks/useAsync/useAsyncStateStore.mjs";
10
+ import { useAuditContentDeclarationField } from "../../../hooks/intlayerAPIHooks.mjs";
11
+ import "@intlayer/dictionaries-entry";
12
+ import "deepmerge";
9
13
  import { getSectionType } from "../../../utils/dictionary.mjs";
10
14
  import { renameKey } from "../../../utils/object.mjs";
11
15
  import { Button } from "../../Button/Button.mjs";
12
- import { ContentEditorTextArea } from "../../ContentEditor/ContentEditorTextArea.mjs";
16
+ import { ContentEditorTextArea as ContentEditorTextArea$1 } from "../../ContentEditor/ContentEditorTextArea.mjs";
13
17
  import { useEditedContentStore } from "../../DictionaryEditor/useEditedContentStore.mjs";
14
18
  import "../../DictionaryEditor/useEditionPanelStore.mjs";
15
19
  import "clsx";
16
20
  import "tailwind-merge";
17
21
  import "../../EditableField/EditableFieldInput.mjs";
18
22
  import "../../EditableField/EditableFieldTextArea.mjs";
19
- import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
20
- import "../../../hooks/useAsync/useAsyncStateStore.mjs";
21
- import "../../../libs/intlayer-api/index.mjs";
22
- import "../../Toaster/Toast.mjs";
23
- import "@intlayer/dictionaries-entry";
24
- import "deepmerge";
25
23
  import "../../Form/FormBase.mjs";
26
24
  import "../../Form/FormField.mjs";
27
25
  import "../../../Form-DhsgC7kB.js";
28
26
  import "../../DictionaryEditor/validDictionaryChangeButtons.content.mjs";
29
27
  import "zod";
28
+ import "@intlayer/config/client";
29
+ import "fuse.js";
30
+ import "../../Container/index.mjs";
31
+ import "../../DropDown/index.mjs";
32
+ import "../../Input/Input.mjs";
33
+ import "../../Input/InputPassword.mjs";
34
+ import "../../Input/Checkbox.mjs";
35
+ import "../../SwitchSelector/index.mjs";
36
+ import "../../LocaleSwitcherContentDropDown/localeSwitcher.content.mjs";
37
+ import { useLocaleSwitcherContent } from "../../LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs";
30
38
  import { EnumKeyInput } from "../EnumKeyInput.mjs";
31
39
  import { getIsEditableSection } from "../getIsEditableSection.mjs";
32
40
  import { navigationViewContent } from "../NavigationView/navigationViewNode.content.mjs";
33
41
  const traceKeys = ["filePath", "id", "nodeType"];
42
+ const ContentEditorTextArea = ({
43
+ keyPath,
44
+ dictionary,
45
+ locales,
46
+ ...props
47
+ }) => {
48
+ const addEditedContent = useEditedContentStore(
49
+ useShallow((s) => s.addEditedContent)
50
+ );
51
+ const { auditContentDeclarationField, isLoading: isAuditing } = useAuditContentDeclarationField();
52
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
53
+ ContentEditorTextArea$1,
54
+ {
55
+ variant: "default",
56
+ onContentChange: (newValue) => addEditedContent(dictionary.key, newValue, keyPath),
57
+ additionalButtons: /* @__PURE__ */ jsxRuntimeExports.jsx(
58
+ Button,
59
+ {
60
+ Icon: WandSparkles,
61
+ label: "Audit",
62
+ variant: "hoverable",
63
+ size: "icon-sm",
64
+ color: "text",
65
+ className: "cursor-pointer hover:scale-110",
66
+ isLoading: isAuditing,
67
+ onClick: () => {
68
+ auditContentDeclarationField({
69
+ fileContent: JSON.stringify(dictionary),
70
+ keyPath,
71
+ locales
72
+ }).then((response) => {
73
+ if (!response.data) return;
74
+ try {
75
+ const editedContent = response.data.fileContent;
76
+ addEditedContent(dictionary.key, editedContent, keyPath);
77
+ } catch (error) {
78
+ console.error(error);
79
+ }
80
+ });
81
+ }
82
+ }
83
+ ),
84
+ ...props
85
+ }
86
+ );
87
+ };
34
88
  const createReactElement = (element) => {
35
89
  if (typeof element === "string") {
36
90
  return element;
@@ -59,31 +113,35 @@ const createReactElement = (element) => {
59
113
  const TranslationTextEditor = ({
60
114
  section,
61
115
  keyPath,
62
- dictionaryKey
116
+ dictionary,
117
+ locales
63
118
  }) => {
64
- const { locales } = getConfiguration().internationalization;
65
- const addEditedContent = useEditedContentStore(
66
- useShallow((s) => s.addEditedContent)
119
+ const { selectedLocales, availableLocales } = useLocaleSwitcherContent();
120
+ const sectionContent = section[NodeType.Translation];
121
+ const sectionContentKeys = Object.keys(sectionContent);
122
+ const isFiltered = availableLocales.length > selectedLocales.length;
123
+ const localesList = isFiltered ? selectedLocales : (
124
+ // If the translation include content in other locales, we display all of them
125
+ [.../* @__PURE__ */ new Set([...availableLocales, ...sectionContentKeys])]
67
126
  );
68
- return /* @__PURE__ */ jsxRuntimeExports.jsx("table", { className: "w-full gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: locales.map((translationKey) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
127
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("table", { className: "w-full gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: localesList.map((translationKey) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
69
128
  "tr",
70
129
  {
71
130
  className: "border-text dark:border-text-dark w-full border-t-[1.5px]",
72
131
  lang: translationKey,
73
132
  children: [
74
- /* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "border-text dark:border-text-dark border-r-[1.5px] p-2", children: getLocaleName(translationKey) }),
133
+ selectedLocales.length > 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "border-text dark:border-text-dark border-r-[1.5px] p-2", children: getLocaleName(translationKey) }),
75
134
  /* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "w-full p-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
76
135
  ContentEditorTextArea,
77
136
  {
78
137
  variant: "default",
79
138
  "aria-label": "Edit field",
80
- onContentChange: (newValue) => addEditedContent(dictionaryKey, newValue, [
139
+ keyPath: [
81
140
  ...keyPath,
82
- {
83
- type: NodeType.Translation,
84
- key: translationKey
85
- }
86
- ]),
141
+ { type: NodeType.Translation, key: translationKey }
142
+ ],
143
+ dictionary,
144
+ locales,
87
145
  children: section[NodeType.Translation][translationKey]
88
146
  }
89
147
  ) })
@@ -95,7 +153,8 @@ const TranslationTextEditor = ({
95
153
  const EnumerationTextEditor = ({
96
154
  section,
97
155
  keyPath,
98
- dictionaryKey
156
+ dictionary,
157
+ locales
99
158
  }) => {
100
159
  const addEditedContent = useEditedContentStore(
101
160
  useShallow((s) => s.addEditedContent)
@@ -119,7 +178,7 @@ const EnumerationTextEditor = ({
119
178
  color: "text",
120
179
  Icon: X,
121
180
  className: "w-16",
122
- onClick: () => addEditedContent(dictionaryKey, void 0, [
181
+ onClick: () => addEditedContent(dictionary.key, void 0, [
123
182
  ...keyPath,
124
183
  {
125
184
  type: NodeType.Enumeration,
@@ -143,7 +202,7 @@ const EnumerationTextEditor = ({
143
202
  ...section,
144
203
  [NodeType.Enumeration]: newValueContent
145
204
  };
146
- addEditedContent(dictionaryKey, newValue, keyPath);
205
+ addEditedContent(dictionary.key, newValue, keyPath);
147
206
  }
148
207
  }
149
208
  )
@@ -153,13 +212,12 @@ const EnumerationTextEditor = ({
153
212
  {
154
213
  variant: "default",
155
214
  "aria-label": "Edit field",
156
- onContentChange: (newValue) => addEditedContent(dictionaryKey, newValue, [
215
+ keyPath: [
157
216
  ...keyPath,
158
- {
159
- type: NodeType.Enumeration,
160
- key: enumKey
161
- }
162
- ]),
217
+ { type: NodeType.Enumeration, key: enumKey }
218
+ ],
219
+ dictionary,
220
+ locales,
163
221
  children: section[NodeType.Enumeration][enumKey]
164
222
  }
165
223
  ) })
@@ -175,7 +233,7 @@ const EnumerationTextEditor = ({
175
233
  color: "neutral",
176
234
  textAlign: "left",
177
235
  onClick: () => addEditedContent(
178
- dictionaryKey,
236
+ dictionary.key,
179
237
  "",
180
238
  [...keyPath, { type: NodeType.Enumeration, key: "unknown" }],
181
239
  false
@@ -190,7 +248,8 @@ const EnumerationTextEditor = ({
190
248
  const ArrayTextEditor = ({
191
249
  section,
192
250
  keyPath,
193
- dictionaryKey
251
+ dictionary,
252
+ locales
194
253
  }) => {
195
254
  const addEditedContent = useEditedContentStore(
196
255
  useShallow((s) => s.addEditedContent)
@@ -208,15 +267,15 @@ const ArrayTextEditor = ({
208
267
  {
209
268
  variant: "default",
210
269
  "aria-label": "Edit field",
211
- onContentChange: (newValue) => {
212
- addEditedContent(dictionaryKey, newValue, [
213
- ...keyPath,
214
- {
215
- type: NodeType.Array,
216
- key: index
217
- }
218
- ]);
219
- },
270
+ keyPath: [
271
+ ...keyPath,
272
+ {
273
+ type: NodeType.Array,
274
+ key: index
275
+ }
276
+ ],
277
+ dictionary,
278
+ locales,
220
279
  children: subSection
221
280
  }
222
281
  ) })
@@ -239,7 +298,7 @@ const ArrayTextEditor = ({
239
298
  key: section.length
240
299
  }
241
300
  ];
242
- addEditedContent(dictionaryKey, "", newKeyPath, false);
301
+ addEditedContent(dictionary.key, "", newKeyPath, false);
243
302
  },
244
303
  Icon: Plus,
245
304
  children: addNewElement.text
@@ -250,11 +309,9 @@ const ArrayTextEditor = ({
250
309
  const TextEditor = ({
251
310
  section,
252
311
  keyPath,
253
- dictionaryKey
312
+ dictionary,
313
+ locales
254
314
  }) => {
255
- const addEditedContent = useEditedContentStore(
256
- useShallow((s) => s.addEditedContent)
257
- );
258
315
  const { tsxNotEditable } = useDictionary(navigationViewContent);
259
316
  const nodeType = getSectionType(section);
260
317
  const isEditableSection = getIsEditableSection(section);
@@ -270,9 +327,10 @@ const TextEditor = ({
270
327
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
271
328
  TranslationTextEditor,
272
329
  {
273
- dictionaryKey,
330
+ dictionary,
274
331
  keyPath,
275
- section
332
+ section,
333
+ locales
276
334
  }
277
335
  );
278
336
  }
@@ -280,9 +338,10 @@ const TextEditor = ({
280
338
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
281
339
  EnumerationTextEditor,
282
340
  {
283
- dictionaryKey,
341
+ dictionary,
284
342
  keyPath,
285
- section
343
+ section,
344
+ locales
286
345
  }
287
346
  );
288
347
  }
@@ -290,9 +349,10 @@ const TextEditor = ({
290
349
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
291
350
  ArrayTextEditor,
292
351
  {
293
- dictionaryKey,
352
+ dictionary,
294
353
  keyPath,
295
- section
354
+ section,
355
+ locales
296
356
  }
297
357
  );
298
358
  }
@@ -303,7 +363,9 @@ const TextEditor = ({
303
363
  {
304
364
  variant: "default",
305
365
  "aria-label": "Edit field",
306
- onContentChange: (newValue) => addEditedContent(dictionaryKey, newValue, keyPath),
366
+ keyPath,
367
+ dictionary,
368
+ locales,
307
369
  children: section
308
370
  }
309
371
  ) });
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.mjs","sources":["../../../../src/components/DictionaryFieldEditor/EditorView/TextEditor.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n'use client';\n\nimport { getConfiguration } from '@intlayer/config/client';\nimport {\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type DictionaryValue,\n getLocaleName,\n} from '@intlayer/core';\nimport { Plus, X } from 'lucide-react';\nimport {\n createElement,\n type ReactElement,\n type ReactNode,\n type FC,\n} from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useShallow } from 'zustand/react/shallow';\nimport { getSectionType } from '../../../utils/dictionary';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport { ContentEditorTextArea } from '../../ContentEditor/ContentEditorTextArea';\nimport { useEditedContentStore } from '../../DictionaryEditor';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from '../NavigationView/navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nconst createReactElement = (element: ReactElement) => {\n if (typeof element === 'string') {\n // If it's a string, simply return it (used for text content)\n return element;\n }\n\n const convertChildrenAsArray = (element: ReactElement): ReactElement => {\n if (element?.props && typeof element.props.children === 'object') {\n const childrenResult: ReactNode[] = [];\n const { children } = element.props;\n\n // Create the children elements recursively, if any\n Object.keys(children).forEach((key) =>\n childrenResult.push(createReactElement(children[key]))\n );\n\n return {\n ...element,\n props: { ...element.props, children: childrenResult },\n };\n }\n\n return {\n ...element,\n props: { ...element.props, children: element.props.children },\n };\n };\n\n const fixedElement = convertChildrenAsArray(element);\n\n const { type, props } = fixedElement;\n\n // Create and return the React element\n return createElement(type ?? 'div', props, ...props.children);\n};\n\nexport type TextEditorProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: DictionaryValue;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionaryKey,\n}: TextEditorProps) => {\n const { locales } = getConfiguration().internationalization;\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n\n return (\n <table className=\"w-full gap-2\">\n <tbody>\n {locales.map((translationKey) => (\n <tr\n key={translationKey}\n className=\"border-text dark:border-text-dark w-full border-t-[1.5px]\"\n lang={translationKey}\n >\n <td className=\"border-text dark:border-text-dark border-r-[1.5px] p-2\">\n {getLocaleName(translationKey)}\n </td>\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n onContentChange={(newValue) =>\n addEditedContent(dictionaryKey, newValue, [\n ...keyPath,\n {\n type: NodeType.Translation,\n key: translationKey,\n },\n ])\n }\n >\n {\n (section as TranslationContent<string>)[NodeType.Translation][\n translationKey\n ] as string\n }\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionaryKey,\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n const { addNewEnumeration } = useDictionary(navigationViewContent);\n\n return (\n <table className=\"w-full table-fixed gap-2\">\n <tbody>\n {Object.keys(\n (section as EnumerationContent<DictionaryValue>)[NodeType.Enumeration]\n ).map((enumKey) => (\n <tr\n key={enumKey}\n className=\"border-text dark:border-text-dark w-full border-y-[1.5px]\"\n >\n <td className=\"border-text dark:border-text-dark w-44 border-r-[1.5px] p-2\">\n <div className=\"flex gap-1\">\n <Button\n label=\"Remove\"\n variant=\"hoverable\"\n size=\"icon-md\"\n color=\"text\"\n Icon={X}\n className=\"w-16\"\n onClick={() =>\n addEditedContent(dictionaryKey, undefined, [\n ...keyPath,\n {\n type: NodeType.Enumeration,\n key: enumKey,\n },\n ])\n }\n />\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(dictionaryKey, newValue, keyPath);\n }}\n />\n </div>\n </td>\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n onContentChange={(newValue) =>\n addEditedContent(dictionaryKey, newValue, [\n ...keyPath,\n {\n type: NodeType.Enumeration,\n key: enumKey,\n },\n ])\n }\n >\n {\n (section as EnumerationContent<string>)[NodeType.Enumeration][\n enumKey as any\n ] as string\n }\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n\n <tfoot>\n <Button\n label={addNewEnumeration.label}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() =>\n addEditedContent(\n dictionaryKey,\n '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }],\n false\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </tfoot>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionaryKey,\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n const { addNewElement } = useDictionary(navigationViewContent);\n\n return (\n <table className=\"w-full gap-2\">\n <tbody>\n {(section as DictionaryValue[]).map((subSection, index) => (\n <tr\n key={JSON.stringify(subSection)}\n className=\"border-text dark:border-text-dark w-full border-t-[1.5px]\"\n >\n <td className=\"border-text dark:border-text-dark border-r-[1.5px] p-2\">\n {index}\n </td>\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n onContentChange={(newValue) => {\n addEditedContent(dictionaryKey, newValue, [\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]);\n }}\n >\n {subSection as string}\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n <tfoot>\n <Button\n label={addNewElement.label}\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 DictionaryValue[]).length,\n },\n ];\n addEditedContent(dictionaryKey, '', newKeyPath, false);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </tfoot>\n </table>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionaryKey,\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getSectionType(section);\n const isEditableSection = getIsEditableSection(section);\n\n if (!isEditableSection) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n {createReactElement(section as unknown as ReactElement)}\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {tsxNotEditable}\n </span>\n </>\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionaryKey={dictionaryKey}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionaryKey={dictionaryKey}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionaryKey={dictionaryKey}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"border-text dark:border-text-dark w-full border-t-[1.5px] p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n onContentChange={(newValue) =>\n addEditedContent(dictionaryKey, newValue, keyPath)\n }\n >\n {section as string}\n </ContentEditorTextArea>\n </div>\n );\n }\n\n return <>Error loading section</>;\n};\n"],"names":["element","jsx","jsxs","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"TextEditor.mjs","sources":["../../../../src/components/DictionaryFieldEditor/EditorView/TextEditor.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n'use client';\n\nimport { Locales } from '@intlayer/config';\nimport {\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type DictionaryValue,\n getLocaleName,\n Dictionary,\n} from '@intlayer/core';\nimport { Plus, WandSparkles, X } from 'lucide-react';\nimport {\n createElement,\n type ReactElement,\n type ReactNode,\n type FC,\n} from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { getSectionType } from '../../../utils/dictionary';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport {\n ContentEditorTextArea as ContentEditorTextAreaBase,\n ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { useEditedContentStore } from '../../DictionaryEditor';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { getIsEditableSection } from '../getIsEditableSection';\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 locales: Locales[];\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n locales,\n ...props\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\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(dictionary),\n keyPath,\n locales,\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\nconst createReactElement = (element: ReactElement) => {\n if (typeof element === 'string') {\n // If it's a string, simply return it (used for text content)\n return element;\n }\n\n const convertChildrenAsArray = (element: ReactElement): ReactElement => {\n if (element?.props && typeof element.props.children === 'object') {\n const childrenResult: ReactNode[] = [];\n const { children } = element.props;\n\n // Create the children elements recursively, if any\n Object.keys(children).forEach((key) =>\n childrenResult.push(createReactElement(children[key]))\n );\n\n return {\n ...element,\n props: { ...element.props, children: childrenResult },\n };\n }\n\n return {\n ...element,\n props: { ...element.props, children: element.props.children },\n };\n };\n\n const fixedElement = convertChildrenAsArray(element);\n\n const { type, props } = fixedElement;\n\n // Create and return the React element\n return createElement(type ?? 'div', props, ...props.children);\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: DictionaryValue;\n locales: Locales[];\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n locales,\n}: TextEditorProps) => {\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 return (\n <table className=\"w-full gap-2\">\n <tbody>\n {localesList.map((translationKey) => (\n <tr\n key={translationKey}\n className=\"border-text dark:border-text-dark w-full border-t-[1.5px]\"\n lang={translationKey}\n >\n {selectedLocales.length > 1 && (\n <td className=\"border-text dark:border-text-dark border-r-[1.5px] p-2\">\n {getLocaleName(translationKey)}\n </td>\n )}\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n locales={locales}\n >\n {\n (section as TranslationContent<string>)[NodeType.Translation][\n translationKey\n ] as string\n }\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n locales,\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n const { addNewEnumeration } = useDictionary(navigationViewContent);\n\n return (\n <table className=\"w-full table-fixed gap-2\">\n <tbody>\n {Object.keys(\n (section as EnumerationContent<DictionaryValue>)[NodeType.Enumeration]\n ).map((enumKey) => (\n <tr\n key={enumKey}\n className=\"border-text dark:border-text-dark w-full border-y-[1.5px]\"\n >\n <td className=\"border-text dark:border-text-dark w-44 border-r-[1.5px] p-2\">\n <div className=\"flex gap-1\">\n <Button\n label=\"Remove\"\n variant=\"hoverable\"\n size=\"icon-md\"\n color=\"text\"\n Icon={X}\n className=\"w-16\"\n onClick={() =>\n addEditedContent(dictionary.key, undefined, [\n ...keyPath,\n {\n type: NodeType.Enumeration,\n key: enumKey,\n },\n ])\n }\n />\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 </div>\n </td>\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={[\n ...keyPath,\n { type: NodeType.Enumeration, key: enumKey },\n ]}\n dictionary={dictionary}\n locales={locales}\n >\n {\n (section as EnumerationContent<string>)[NodeType.Enumeration][\n enumKey as any\n ] as string\n }\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n\n <tfoot>\n <Button\n label={addNewEnumeration.label}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() =>\n addEditedContent(\n dictionary.key,\n '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }],\n false\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </tfoot>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n locales,\n}) => {\n const addEditedContent = useEditedContentStore(\n useShallow((s) => s.addEditedContent)\n );\n const { addNewElement } = useDictionary(navigationViewContent);\n\n return (\n <table className=\"w-full gap-2\">\n <tbody>\n {(section as DictionaryValue[]).map((subSection, index) => (\n <tr\n key={JSON.stringify(subSection)}\n className=\"border-text dark:border-text-dark w-full border-t-[1.5px]\"\n >\n <td className=\"border-text dark:border-text-dark border-r-[1.5px] p-2\">\n {index}\n </td>\n <td className=\"w-full p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n locales={locales}\n >\n {subSection as string}\n </ContentEditorTextArea>\n </td>\n </tr>\n ))}\n </tbody>\n <tfoot>\n <Button\n label={addNewElement.label}\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 DictionaryValue[]).length,\n },\n ];\n addEditedContent(dictionary.key, '', newKeyPath, false);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </tfoot>\n </table>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n locales,\n}) => {\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getSectionType(section);\n const isEditableSection = getIsEditableSection(section);\n\n if (!isEditableSection) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n {createReactElement(section as unknown as ReactElement)}\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {tsxNotEditable}\n </span>\n </>\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n locales={locales}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n locales={locales}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n locales={locales}\n />\n );\n }\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"border-text dark:border-text-dark w-full border-t-[1.5px] p-2\">\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n locales={locales}\n >\n {section as string}\n </ContentEditorTextArea>\n </div>\n );\n }\n\n return <>Error loading section</>;\n};\n"],"names":["jsx","ContentEditorTextAreaBase","element","jsxs","Fragment"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("../../jsx-runtime-XHKiWCTo.cjs");
4
+ const require$$0 = require("react");
4
5
  const shallow = require("../../shallow-lhDIFtEp.cjs");
5
- const components_ContentEditor_ContentEditorTextArea = require("../ContentEditor/ContentEditorTextArea.cjs");
6
6
  const components_DictionaryEditor_useEditedContentStore = require("../DictionaryEditor/useEditedContentStore.cjs");
7
7
  require("../DictionaryEditor/useEditionPanelStore.cjs");
8
- require("react");
9
8
  require("@intlayer/core");
10
9
  require("lucide-react");
11
10
  require("clsx");
@@ -26,8 +25,8 @@ require("../Form/FormField.cjs");
26
25
  require("../../Form-BDcoNTLV.cjs");
27
26
  require("../DictionaryEditor/validDictionaryChangeButtons.content.cjs");
28
27
  require("zod");
29
- const components_DictionaryFieldEditor_SaveForm_SaveForm = require("./SaveForm/SaveForm.cjs");
30
- const JSONEditor = ({ dictionary }) => {
28
+ const components_IDE_MonacoCode = require("../IDE/MonacoCode.cjs");
29
+ const JSONEditor = ({ dictionary, isDarkMode }) => {
31
30
  const { setEditedContent, editedContent } = components_DictionaryEditor_useEditedContentStore.useEditedContentStore(
32
31
  shallow.useShallow((s) => ({
33
32
  editedContent: s.editedContent,
@@ -42,21 +41,24 @@ const JSONEditor = ({ dictionary }) => {
42
41
  return false;
43
42
  }
44
43
  };
45
- const displayedContent = editedContent[dictionary.key]?.content ?? dictionary?.content ?? {};
46
- return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [
47
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
48
- components_ContentEditor_ContentEditorTextArea.ContentEditorTextArea,
49
- {
50
- onContentChange: (content) => setEditedContent(dictionary.key, JSON.parse(content)),
51
- validate: isValidJSON,
52
- className: "text-sm",
53
- variant: "default",
54
- children: JSON.stringify(displayedContent, null, 2)
44
+ const displayedContent = require$$0.useMemo(
45
+ () => editedContent[dictionary.key]?.content ?? dictionary?.content ?? {},
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
+ [dictionary]
48
+ );
49
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
50
+ components_IDE_MonacoCode.MonacoCode,
51
+ {
52
+ language: "json",
53
+ onChange: (content) => {
54
+ if (isValidJSON(content ?? "{}")) {
55
+ setEditedContent(dictionary.key, JSON.parse(content ?? "{}"));
56
+ }
55
57
  },
56
- JSON.stringify(displayedContent)
57
- ),
58
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_DictionaryFieldEditor_SaveForm_SaveForm.SaveForm, { dictionary })
59
- ] });
58
+ isDarkMode,
59
+ children: JSON.stringify(displayedContent, null, 2)
60
+ }
61
+ ) });
60
62
  };
61
63
  exports.JSONEditor = JSONEditor;
62
64
  //# sourceMappingURL=JSONEditor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"JSONEditor.cjs","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"sourcesContent":["import { Dictionary } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { ContentEditorTextArea } from '../ContentEditor/ContentEditorTextArea';\nimport { useEditedContentStore } from '../DictionaryEditor';\nimport { SaveForm } from './SaveForm/SaveForm';\n\ntype JSONEditorProps = {\n dictionary: Dictionary;\n};\n\nexport const JSONEditor: FC<JSONEditorProps> = ({ dictionary }) => {\n const { setEditedContent, editedContent } = useEditedContentStore(\n useShallow((s) => ({\n editedContent: s.editedContent,\n setEditedContent: s.setEditedContent,\n }))\n );\n\n const isValidJSON = (jsonString: string): boolean => {\n try {\n JSON.parse(jsonString);\n return true; // Valid JSON\n } catch (_error) {\n return false; // Invalid JSON\n }\n };\n\n const displayedContent =\n editedContent[dictionary.key]?.content ?? dictionary?.content ?? {};\n\n return (\n <>\n <ContentEditorTextArea\n key={JSON.stringify(displayedContent)}\n onContentChange={(content) =>\n setEditedContent(dictionary.key, JSON.parse(content))\n }\n validate={isValidJSON}\n className=\"text-sm\"\n variant=\"default\"\n >\n {JSON.stringify(displayedContent, null, 2)}\n </ContentEditorTextArea>\n <SaveForm dictionary={dictionary} />\n </>\n );\n};\n"],"names":["useEditedContentStore","useShallow","jsxs","Fragment","jsx","ContentEditorTextArea","SaveForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAkC,CAAC,EAAE,iBAAiB;AAC3D,QAAA,EAAE,kBAAkB,cAAA,IAAkBA,kDAAA;AAAA,IAC1CC,QAAA,WAAW,CAAC,OAAO;AAAA,MACjB,eAAe,EAAE;AAAA,MACjB,kBAAkB,EAAE;AAAA,IAAA,EACpB;AAAA,EACJ;AAEM,QAAA,cAAc,CAAC,eAAgC;AAC/C,QAAA;AACF,WAAK,MAAM,UAAU;AACd,aAAA;AAAA,aACA,QAAQ;AACR,aAAA;AAAA,IAAA;AAAA,EAEX;AAEM,QAAA,mBACJ,cAAc,WAAW,GAAG,GAAG,WAAW,YAAY,WAAW,CAAC;AAEpE,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA,kBAAA;AAAA,MAACC,+CAAA;AAAA,MAAA;AAAA,QAEC,iBAAiB,CAAC,YAChB,iBAAiB,WAAW,KAAK,KAAK,MAAM,OAAO,CAAC;AAAA,QAEtD,UAAU;AAAA,QACV,WAAU;AAAA,QACV,SAAQ;AAAA,QAEP,UAAK,KAAA,UAAU,kBAAkB,MAAM,CAAC;AAAA,MAAA;AAAA,MARpC,KAAK,UAAU,gBAAgB;AAAA,IAStC;AAAA,IACAD,iDAACE,mDAAAA,YAAS,WAAwB,CAAA;AAAA,EAAA,GACpC;AAEJ;;"}
1
+ {"version":3,"file":"JSONEditor.cjs","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"sourcesContent":["import { Dictionary } from '@intlayer/core';\nimport { useMemo, type FC } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useEditedContentStore } from '../DictionaryEditor';\nimport { MonacoCode } from '../IDE/MonacoCode';\n\ntype JSONEditorProps = {\n dictionary: Dictionary;\n isDarkMode?: boolean;\n};\n\nexport const JSONEditor: FC<JSONEditorProps> = ({ dictionary, isDarkMode }) => {\n const { setEditedContent, editedContent } = useEditedContentStore(\n useShallow((s) => ({\n editedContent: s.editedContent,\n setEditedContent: s.setEditedContent,\n }))\n );\n\n const isValidJSON = (jsonString: string): boolean => {\n try {\n JSON.parse(jsonString);\n return true; // Valid JSON\n } catch (_error) {\n return false; // Invalid JSON\n }\n };\n\n const displayedContent = useMemo(\n () => editedContent[dictionary.key]?.content ?? dictionary?.content ?? {},\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dictionary]\n );\n\n return (\n <div className=\"overflow-hidden rounded-md\">\n <MonacoCode\n language=\"json\"\n onChange={(content) => {\n if (isValidJSON(content ?? '{}')) {\n setEditedContent(dictionary.key, JSON.parse(content ?? '{}'));\n }\n }}\n isDarkMode={isDarkMode}\n >\n {JSON.stringify(displayedContent, null, 2)}\n </MonacoCode>\n </div>\n );\n};\n"],"names":["useEditedContentStore","useShallow","useMemo","jsx","MonacoCode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAkC,CAAC,EAAE,YAAY,iBAAiB;AACvE,QAAA,EAAE,kBAAkB,cAAA,IAAkBA,kDAAA;AAAA,IAC1CC,QAAA,WAAW,CAAC,OAAO;AAAA,MACjB,eAAe,EAAE;AAAA,MACjB,kBAAkB,EAAE;AAAA,IAAA,EACpB;AAAA,EACJ;AAEM,QAAA,cAAc,CAAC,eAAgC;AAC/C,QAAA;AACF,WAAK,MAAM,UAAU;AACd,aAAA;AAAA,aACA,QAAQ;AACR,aAAA;AAAA,IAAA;AAAA,EAEX;AAEA,QAAM,mBAAmBC,WAAA;AAAA,IACvB,MAAM,cAAc,WAAW,GAAG,GAAG,WAAW,YAAY,WAAW,CAAC;AAAA;AAAA,IAExE,CAAC,UAAU;AAAA,EACb;AAGE,SAAAC,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,8BACb,UAAAA,2BAAA,kBAAA;AAAA,IAACC,0BAAA;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,UAAU,CAAC,YAAY;AACjB,YAAA,YAAY,WAAW,IAAI,GAAG;AAChC,2BAAiB,WAAW,KAAK,KAAK,MAAM,WAAW,IAAI,CAAC;AAAA,QAAA;AAAA,MAEhE;AAAA,MACA;AAAA,MAEC,UAAK,KAAA,UAAU,kBAAkB,MAAM,CAAC;AAAA,IAAA;AAAA,EAAA,GAE7C;AAEJ;;"}
@@ -2,6 +2,7 @@ import { Dictionary } from '@intlayer/core';
2
2
  import { FC } from 'react';
3
3
  type JSONEditorProps = {
4
4
  dictionary: Dictionary;
5
+ isDarkMode?: boolean;
5
6
  };
6
7
  export declare const JSONEditor: FC<JSONEditorProps>;
7
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"JSONEditor.d.ts","sourceRoot":"","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoC1C,CAAC"}
1
+ {"version":3,"file":"JSONEditor.d.ts","sourceRoot":"","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKzC,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAsC1C,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
2
+ import { useMemo } from "react";
2
3
  import { u as useShallow } from "../../shallow-m9BpCkKh.js";
3
- import { ContentEditorTextArea } from "../ContentEditor/ContentEditorTextArea.mjs";
4
4
  import { useEditedContentStore } from "../DictionaryEditor/useEditedContentStore.mjs";
5
5
  import "../DictionaryEditor/useEditionPanelStore.mjs";
6
- import "react";
7
6
  import "@intlayer/core";
8
7
  import "lucide-react";
9
8
  import "clsx";
@@ -24,8 +23,8 @@ import "../Form/FormField.mjs";
24
23
  import "../../Form-DhsgC7kB.js";
25
24
  import "../DictionaryEditor/validDictionaryChangeButtons.content.mjs";
26
25
  import "zod";
27
- import { SaveForm } from "./SaveForm/SaveForm.mjs";
28
- const JSONEditor = ({ dictionary }) => {
26
+ import { MonacoCode } from "../IDE/MonacoCode.mjs";
27
+ const JSONEditor = ({ dictionary, isDarkMode }) => {
29
28
  const { setEditedContent, editedContent } = useEditedContentStore(
30
29
  useShallow((s) => ({
31
30
  editedContent: s.editedContent,
@@ -40,21 +39,24 @@ const JSONEditor = ({ dictionary }) => {
40
39
  return false;
41
40
  }
42
41
  };
43
- const displayedContent = editedContent[dictionary.key]?.content ?? dictionary?.content ?? {};
44
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
45
- /* @__PURE__ */ jsxRuntimeExports.jsx(
46
- ContentEditorTextArea,
47
- {
48
- onContentChange: (content) => setEditedContent(dictionary.key, JSON.parse(content)),
49
- validate: isValidJSON,
50
- className: "text-sm",
51
- variant: "default",
52
- children: JSON.stringify(displayedContent, null, 2)
42
+ const displayedContent = useMemo(
43
+ () => editedContent[dictionary.key]?.content ?? dictionary?.content ?? {},
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ [dictionary]
46
+ );
47
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
48
+ MonacoCode,
49
+ {
50
+ language: "json",
51
+ onChange: (content) => {
52
+ if (isValidJSON(content ?? "{}")) {
53
+ setEditedContent(dictionary.key, JSON.parse(content ?? "{}"));
54
+ }
53
55
  },
54
- JSON.stringify(displayedContent)
55
- ),
56
- /* @__PURE__ */ jsxRuntimeExports.jsx(SaveForm, { dictionary })
57
- ] });
56
+ isDarkMode,
57
+ children: JSON.stringify(displayedContent, null, 2)
58
+ }
59
+ ) });
58
60
  };
59
61
  export {
60
62
  JSONEditor
@@ -1 +1 @@
1
- {"version":3,"file":"JSONEditor.mjs","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"sourcesContent":["import { Dictionary } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { ContentEditorTextArea } from '../ContentEditor/ContentEditorTextArea';\nimport { useEditedContentStore } from '../DictionaryEditor';\nimport { SaveForm } from './SaveForm/SaveForm';\n\ntype JSONEditorProps = {\n dictionary: Dictionary;\n};\n\nexport const JSONEditor: FC<JSONEditorProps> = ({ dictionary }) => {\n const { setEditedContent, editedContent } = useEditedContentStore(\n useShallow((s) => ({\n editedContent: s.editedContent,\n setEditedContent: s.setEditedContent,\n }))\n );\n\n const isValidJSON = (jsonString: string): boolean => {\n try {\n JSON.parse(jsonString);\n return true; // Valid JSON\n } catch (_error) {\n return false; // Invalid JSON\n }\n };\n\n const displayedContent =\n editedContent[dictionary.key]?.content ?? dictionary?.content ?? {};\n\n return (\n <>\n <ContentEditorTextArea\n key={JSON.stringify(displayedContent)}\n onContentChange={(content) =>\n setEditedContent(dictionary.key, JSON.parse(content))\n }\n validate={isValidJSON}\n className=\"text-sm\"\n variant=\"default\"\n >\n {JSON.stringify(displayedContent, null, 2)}\n </ContentEditorTextArea>\n <SaveForm dictionary={dictionary} />\n </>\n );\n};\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAkC,CAAC,EAAE,iBAAiB;AAC3D,QAAA,EAAE,kBAAkB,cAAA,IAAkB;AAAA,IAC1C,WAAW,CAAC,OAAO;AAAA,MACjB,eAAe,EAAE;AAAA,MACjB,kBAAkB,EAAE;AAAA,IAAA,EACpB;AAAA,EACJ;AAEM,QAAA,cAAc,CAAC,eAAgC;AAC/C,QAAA;AACF,WAAK,MAAM,UAAU;AACd,aAAA;AAAA,aACA,QAAQ;AACR,aAAA;AAAA,IAAA;AAAA,EAEX;AAEM,QAAA,mBACJ,cAAc,WAAW,GAAG,GAAG,WAAW,YAAY,WAAW,CAAC;AAEpE,SAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,iBAAiB,CAAC,YAChB,iBAAiB,WAAW,KAAK,KAAK,MAAM,OAAO,CAAC;AAAA,QAEtD,UAAU;AAAA,QACV,WAAU;AAAA,QACV,SAAQ;AAAA,QAEP,UAAK,KAAA,UAAU,kBAAkB,MAAM,CAAC;AAAA,MAAA;AAAA,MARpC,KAAK,UAAU,gBAAgB;AAAA,IAStC;AAAA,IACAA,sCAAC,YAAS,WAAwB,CAAA;AAAA,EAAA,GACpC;AAEJ;"}
1
+ {"version":3,"file":"JSONEditor.mjs","sources":["../../../src/components/DictionaryFieldEditor/JSONEditor.tsx"],"sourcesContent":["import { Dictionary } from '@intlayer/core';\nimport { useMemo, type FC } from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useEditedContentStore } from '../DictionaryEditor';\nimport { MonacoCode } from '../IDE/MonacoCode';\n\ntype JSONEditorProps = {\n dictionary: Dictionary;\n isDarkMode?: boolean;\n};\n\nexport const JSONEditor: FC<JSONEditorProps> = ({ dictionary, isDarkMode }) => {\n const { setEditedContent, editedContent } = useEditedContentStore(\n useShallow((s) => ({\n editedContent: s.editedContent,\n setEditedContent: s.setEditedContent,\n }))\n );\n\n const isValidJSON = (jsonString: string): boolean => {\n try {\n JSON.parse(jsonString);\n return true; // Valid JSON\n } catch (_error) {\n return false; // Invalid JSON\n }\n };\n\n const displayedContent = useMemo(\n () => editedContent[dictionary.key]?.content ?? dictionary?.content ?? {},\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dictionary]\n );\n\n return (\n <div className=\"overflow-hidden rounded-md\">\n <MonacoCode\n language=\"json\"\n onChange={(content) => {\n if (isValidJSON(content ?? '{}')) {\n setEditedContent(dictionary.key, JSON.parse(content ?? '{}'));\n }\n }}\n isDarkMode={isDarkMode}\n >\n {JSON.stringify(displayedContent, null, 2)}\n </MonacoCode>\n </div>\n );\n};\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAkC,CAAC,EAAE,YAAY,iBAAiB;AACvE,QAAA,EAAE,kBAAkB,cAAA,IAAkB;AAAA,IAC1C,WAAW,CAAC,OAAO;AAAA,MACjB,eAAe,EAAE;AAAA,MACjB,kBAAkB,EAAE;AAAA,IAAA,EACpB;AAAA,EACJ;AAEM,QAAA,cAAc,CAAC,eAAgC;AAC/C,QAAA;AACF,WAAK,MAAM,UAAU;AACd,aAAA;AAAA,aACA,QAAQ;AACR,aAAA;AAAA,IAAA;AAAA,EAEX;AAEA,QAAM,mBAAmB;AAAA,IACvB,MAAM,cAAc,WAAW,GAAG,GAAG,WAAW,YAAY,WAAW,CAAC;AAAA;AAAA,IAExE,CAAC,UAAU;AAAA,EACb;AAGE,SAAAA,kCAAAA,IAAC,OAAI,EAAA,WAAU,8BACb,UAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,UAAU,CAAC,YAAY;AACjB,YAAA,YAAY,WAAW,IAAI,GAAG;AAChC,2BAAiB,WAAW,KAAK,KAAK,MAAM,WAAW,IAAI,CAAC;AAAA,QAAA;AAAA,MAEhE;AAAA,MACA;AAAA,MAEC,UAAK,KAAA,UAAU,kBAAkB,MAAM,CAAC;AAAA,IAAA;AAAA,EAAA,GAE7C;AAEJ;"}
@@ -5,7 +5,8 @@ const components_Breadcrumb_index = require("../Breadcrumb/index.cjs");
5
5
  const KeyPathBreadcrumb = ({
6
6
  keyPath,
7
7
  dictionaryKey,
8
- onClickKeyPath
8
+ onClickKeyPath,
9
+ locale
9
10
  }) => {
10
11
  const formattedKeyPath = [
11
12
  { text: dictionaryKey, onClick: () => onClickKeyPath([]) },
@@ -16,7 +17,14 @@ const KeyPathBreadcrumb = ({
16
17
  text: el.key.toString()
17
18
  }))
18
19
  ];
19
- return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_Breadcrumb_index.Breadcrumb, { links: formattedKeyPath });
20
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
21
+ components_Breadcrumb_index.Breadcrumb,
22
+ {
23
+ links: formattedKeyPath,
24
+ locale,
25
+ elementType: "location"
26
+ }
27
+ );
20
28
  };
21
29
  exports.KeyPathBreadcrumb = KeyPathBreadcrumb;
22
30
  //# sourceMappingURL=KeyPathBreadcrumb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyPathBreadcrumb.cjs","sources":["../../../src/components/DictionaryFieldEditor/KeyPathBreadcrumb.tsx"],"sourcesContent":["import type { KeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { Breadcrumb, type BreadcrumbLink } from '../Breadcrumb';\n\ntype KeyPathBreadcrumbProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n onClickKeyPath: (keyPath: KeyPath[]) => void;\n};\n\nexport const KeyPathBreadcrumb: FC<KeyPathBreadcrumbProps> = ({\n keyPath,\n dictionaryKey,\n onClickKeyPath,\n}) => {\n const formattedKeyPath: BreadcrumbLink[] = [\n { text: dictionaryKey, onClick: () => onClickKeyPath([]) },\n ...keyPath.map((el, index) => ({\n onClick: () =>\n onClickKeyPath(\n keyPath\n // With keyPath = [{type: NodeType.Object, key: '0'}, {type: NodeType.Array, key: '0'}, {type: NodeType.Object, key: '1'}]\n // If index is 0 -> onFocusKeyPath([{type: NodeType.Object, key: '0'}])\n // If index is 1 -> onFocusKeyPath([{type: NodeType.Object, key: '0'}, {type: NodeType.Array, key: '0'}])\n .slice(0, index + 1)\n ),\n text: el.key.toString(),\n })),\n ];\n\n return <Breadcrumb links={formattedKeyPath} />;\n};\n"],"names":["jsx","Breadcrumb"],"mappings":";;;;AAUO,MAAM,oBAAgD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAqC;AAAA,IACzC,EAAE,MAAM,eAAe,SAAS,MAAM,eAAe,CAAE,CAAA,EAAE;AAAA,IACzD,GAAG,QAAQ,IAAI,CAAC,IAAI,WAAW;AAAA,MAC7B,SAAS,MACP;AAAA,QACE,QAIG,MAAM,GAAG,QAAQ,CAAC;AAAA,MACvB;AAAA,MACF,MAAM,GAAG,IAAI,SAAS;AAAA,IAAA,EACtB;AAAA,EACJ;AAEO,SAAAA,2BAAA,kBAAA,IAACC,4BAAW,YAAA,EAAA,OAAO,iBAAkB,CAAA;AAC9C;;"}
1
+ {"version":3,"file":"KeyPathBreadcrumb.cjs","sources":["../../../src/components/DictionaryFieldEditor/KeyPathBreadcrumb.tsx"],"sourcesContent":["import type { Locales } from '@intlayer/config/client';\nimport type { KeyPath } from '@intlayer/core';\nimport type { FC } from 'react';\nimport { Breadcrumb, type BreadcrumbLink } from '../Breadcrumb';\n\ntype KeyPathBreadcrumbProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n onClickKeyPath: (keyPath: KeyPath[]) => void;\n locale?: Locales;\n};\n\nexport const KeyPathBreadcrumb: FC<KeyPathBreadcrumbProps> = ({\n keyPath,\n dictionaryKey,\n onClickKeyPath,\n locale,\n}) => {\n const formattedKeyPath: BreadcrumbLink[] = [\n { text: dictionaryKey, onClick: () => onClickKeyPath([]) },\n ...keyPath.map((el, index) => ({\n onClick: () =>\n onClickKeyPath(\n keyPath\n // With keyPath = [{type: NodeType.Object, key: '0'}, {type: NodeType.Array, key: '0'}, {type: NodeType.Object, key: '1'}]\n // If index is 0 -> onFocusKeyPath([{type: NodeType.Object, key: '0'}])\n // If index is 1 -> onFocusKeyPath([{type: NodeType.Object, key: '0'}, {type: NodeType.Array, key: '0'}])\n .slice(0, index + 1)\n ),\n text: el.key.toString(),\n })),\n ];\n\n return (\n <Breadcrumb\n links={formattedKeyPath}\n locale={locale}\n elementType=\"location\"\n />\n );\n};\n"],"names":["jsx","Breadcrumb"],"mappings":";;;;AAYO,MAAM,oBAAgD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAqC;AAAA,IACzC,EAAE,MAAM,eAAe,SAAS,MAAM,eAAe,CAAE,CAAA,EAAE;AAAA,IACzD,GAAG,QAAQ,IAAI,CAAC,IAAI,WAAW;AAAA,MAC7B,SAAS,MACP;AAAA,QACE,QAIG,MAAM,GAAG,QAAQ,CAAC;AAAA,MACvB;AAAA,MACF,MAAM,GAAG,IAAI,SAAS;AAAA,IAAA,EACtB;AAAA,EACJ;AAGE,SAAAA,2BAAA,kBAAA;AAAA,IAACC,4BAAA;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,aAAY;AAAA,IAAA;AAAA,EACd;AAEJ;;"}
@@ -1,9 +1,11 @@
1
+ import { Locales } from '@intlayer/config/client';
1
2
  import { KeyPath } from '@intlayer/core';
2
3
  import { FC } from 'react';
3
4
  type KeyPathBreadcrumbProps = {
4
5
  dictionaryKey: string;
5
6
  keyPath: KeyPath[];
6
7
  onClickKeyPath: (keyPath: KeyPath[]) => void;
8
+ locale?: Locales;
7
9
  };
8
10
  export declare const KeyPathBreadcrumb: FC<KeyPathBreadcrumbProps>;
9
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"KeyPathBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/DictionaryFieldEditor/KeyPathBreadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,KAAK,sBAAsB,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAqBxD,CAAC"}
1
+ {"version":3,"file":"KeyPathBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/DictionaryFieldEditor/KeyPathBreadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,KAAK,sBAAsB,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA4BxD,CAAC"}