@intlayer/design-system 5.1.5 → 5.1.7

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 (493) hide show
  1. package/dist/.vite/manifest.json +181 -66
  2. package/dist/{Form-yi0CMK-a.cjs → Form-BpxW17v4.cjs} +3 -3
  3. package/dist/Form-BpxW17v4.cjs.map +1 -0
  4. package/dist/{Form-BZUDRfoN.js → Form-MjLzPGze.js} +3 -3
  5. package/dist/Form-MjLzPGze.js.map +1 -0
  6. package/dist/components/Accordion/Accordion.cjs +1 -1
  7. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  8. package/dist/components/Accordion/Accordion.mjs +1 -1
  9. package/dist/components/Accordion/Accordion.mjs.map +1 -1
  10. package/dist/components/Auth/AuthModal/index.cjs +1 -10
  11. package/dist/components/Auth/AuthModal/index.cjs.map +1 -1
  12. package/dist/components/Auth/AuthModal/index.d.ts.map +1 -1
  13. package/dist/components/Auth/AuthModal/index.mjs +1 -10
  14. package/dist/components/Auth/AuthModal/index.mjs.map +1 -1
  15. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs +4 -16
  16. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs.map +1 -1
  17. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.d.ts +0 -1
  18. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.d.ts.map +1 -1
  19. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs +4 -16
  20. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs.map +1 -1
  21. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.cjs +0 -32
  22. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.cjs.map +1 -1
  23. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.d.ts +0 -32
  24. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.d.ts.map +1 -1
  25. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.mjs +0 -32
  26. package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.mjs.map +1 -1
  27. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.cjs +81 -0
  28. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.cjs.map +1 -0
  29. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.d.ts +9 -0
  30. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.d.ts.map +1 -0
  31. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.mjs +81 -0
  32. package/dist/components/Auth/DefineNewPasswordForm/DefineNewPasswordForm.mjs.map +1 -0
  33. package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.cjs +106 -0
  34. package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.cjs.map +1 -0
  35. package/dist/components/{DictionaryEditor/validDictionaryChangeButtons.content.d.ts → Auth/DefineNewPasswordForm/defineNewPasswordForm.content.d.ts} +15 -41
  36. package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.d.ts.map +1 -0
  37. package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.mjs +106 -0
  38. package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.mjs.map +1 -0
  39. package/dist/components/Auth/DefineNewPasswordForm/index.cjs +7 -0
  40. package/dist/components/Auth/DefineNewPasswordForm/index.cjs.map +1 -0
  41. package/dist/components/Auth/DefineNewPasswordForm/index.d.ts +3 -0
  42. package/dist/components/Auth/DefineNewPasswordForm/index.d.ts.map +1 -0
  43. package/dist/components/Auth/DefineNewPasswordForm/index.mjs +7 -0
  44. package/dist/components/Auth/DefineNewPasswordForm/index.mjs.map +1 -0
  45. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.cjs +31 -0
  46. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.cjs.map +1 -0
  47. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.cjs +101 -0
  48. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.cjs.map +1 -0
  49. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.d.ts +97 -0
  50. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.d.ts.map +1 -0
  51. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.mjs +101 -0
  52. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.mjs.map +1 -0
  53. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.d.ts +19 -0
  54. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.d.ts.map +1 -0
  55. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.mjs +31 -0
  56. package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.mjs.map +1 -0
  57. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs +27 -9
  58. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs.map +1 -1
  59. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.d.ts +7 -3
  60. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.d.ts.map +1 -1
  61. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs +27 -9
  62. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs.map +1 -1
  63. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs +2 -1
  64. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs.map +1 -1
  65. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.d.ts.map +1 -1
  66. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs +2 -1
  67. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs.map +1 -1
  68. package/dist/components/Auth/SignInForm/SignInForm.cjs +2 -2
  69. package/dist/components/Auth/SignInForm/SignInForm.cjs.map +1 -1
  70. package/dist/components/Auth/SignInForm/SignInForm.mjs +2 -2
  71. package/dist/components/Auth/SignInForm/SignInForm.mjs.map +1 -1
  72. package/dist/components/Auth/SignUpForm/SignUpForm.cjs +2 -2
  73. package/dist/components/Auth/SignUpForm/SignUpForm.cjs.map +1 -1
  74. package/dist/components/Auth/SignUpForm/SignUpForm.mjs +2 -2
  75. package/dist/components/Auth/SignUpForm/SignUpForm.mjs.map +1 -1
  76. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.cjs +3 -3
  77. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.cjs.map +1 -1
  78. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.d.ts.map +1 -1
  79. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.mjs +3 -3
  80. package/dist/components/Auth/VerifyEmailForm/VerifyEmailForm.mjs.map +1 -1
  81. package/dist/components/Auth/index.cjs +4 -0
  82. package/dist/components/Auth/index.cjs.map +1 -1
  83. package/dist/components/Auth/index.d.ts +1 -0
  84. package/dist/components/Auth/index.d.ts.map +1 -1
  85. package/dist/components/Auth/index.mjs +4 -0
  86. package/dist/components/Auth/index.mjs.map +1 -1
  87. package/dist/components/Auth/useAuth/index.cjs +1 -0
  88. package/dist/components/Auth/useAuth/index.cjs.map +1 -1
  89. package/dist/components/Auth/useAuth/index.d.ts +1 -0
  90. package/dist/components/Auth/useAuth/index.d.ts.map +1 -1
  91. package/dist/components/Auth/useAuth/index.mjs +1 -0
  92. package/dist/components/Auth/useAuth/index.mjs.map +1 -1
  93. package/dist/components/Avatar/index.cjs +2 -2
  94. package/dist/components/Avatar/index.cjs.map +1 -1
  95. package/dist/components/Avatar/index.mjs +2 -2
  96. package/dist/components/Avatar/index.mjs.map +1 -1
  97. package/dist/components/Badge/index.cjs +11 -11
  98. package/dist/components/Badge/index.cjs.map +1 -1
  99. package/dist/components/Badge/index.d.ts +2 -2
  100. package/dist/components/Badge/index.d.ts.map +1 -1
  101. package/dist/components/Badge/index.mjs +11 -11
  102. package/dist/components/Badge/index.mjs.map +1 -1
  103. package/dist/components/Button/Button.cjs +25 -25
  104. package/dist/components/Button/Button.cjs.map +1 -1
  105. package/dist/components/Button/Button.d.ts +3 -3
  106. package/dist/components/Button/Button.d.ts.map +1 -1
  107. package/dist/components/Button/Button.mjs +25 -25
  108. package/dist/components/Button/Button.mjs.map +1 -1
  109. package/dist/components/Command/index.cjs +2 -2
  110. package/dist/components/Command/index.cjs.map +1 -1
  111. package/dist/components/Command/index.d.ts.map +1 -1
  112. package/dist/components/Command/index.mjs +2 -2
  113. package/dist/components/Command/index.mjs.map +1 -1
  114. package/dist/components/Container/index.cjs +67 -82
  115. package/dist/components/Container/index.cjs.map +1 -1
  116. package/dist/components/Container/index.d.ts +5 -6
  117. package/dist/components/Container/index.d.ts.map +1 -1
  118. package/dist/components/Container/index.mjs +67 -82
  119. package/dist/components/Container/index.mjs.map +1 -1
  120. package/dist/components/ContentEditor/ContentEditor.cjs +1 -1
  121. package/dist/components/ContentEditor/ContentEditor.cjs.map +1 -1
  122. package/dist/components/ContentEditor/ContentEditor.mjs +1 -1
  123. package/dist/components/ContentEditor/ContentEditor.mjs.map +1 -1
  124. package/dist/components/ContentEditor/ContentEditorTextArea.cjs +32 -2
  125. package/dist/components/ContentEditor/ContentEditorTextArea.cjs.map +1 -1
  126. package/dist/components/ContentEditor/ContentEditorTextArea.d.ts.map +1 -1
  127. package/dist/components/ContentEditor/ContentEditorTextArea.mjs +32 -2
  128. package/dist/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  129. package/dist/components/DictionaryEditor/DictionaryEditor.cjs +1 -1
  130. package/dist/components/DictionaryEditor/DictionaryEditor.mjs +1 -1
  131. package/dist/components/DictionaryEditor/ItemLayout.cjs +3 -3
  132. package/dist/components/DictionaryEditor/ItemLayout.cjs.map +1 -1
  133. package/dist/components/DictionaryEditor/ItemLayout.mjs +3 -3
  134. package/dist/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  135. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +1 -1
  136. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +1 -1
  137. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.cjs +1 -1
  138. package/dist/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs +1 -1
  139. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs +1 -1
  140. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -1
  141. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.cjs +1 -1
  142. package/dist/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs +1 -1
  143. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +1 -1
  144. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +1 -1
  145. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +2 -2
  146. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
  147. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
  148. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +2 -2
  149. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  150. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs +1 -1
  151. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -1
  152. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs +1 -1
  153. package/dist/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
  154. package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +1 -1
  155. package/dist/components/DictionaryFieldEditor/ContentEditor.cjs +2 -1
  156. package/dist/components/DictionaryFieldEditor/ContentEditor.cjs.map +1 -1
  157. package/dist/components/DictionaryFieldEditor/ContentEditor.d.ts.map +1 -1
  158. package/dist/components/DictionaryFieldEditor/ContentEditor.mjs +2 -1
  159. package/dist/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
  160. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +5 -2
  161. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
  162. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  163. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +5 -2
  164. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  165. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +13 -9
  166. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
  167. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts.map +1 -1
  168. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +13 -9
  169. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  170. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +6 -18
  171. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  172. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +0 -1
  173. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  174. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +8 -20
  175. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  176. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +2 -2
  177. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  178. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +2 -2
  179. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  180. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +37 -18
  181. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  182. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  183. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +39 -20
  184. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  185. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs +8 -2
  186. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs.map +1 -1
  187. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs +8 -2
  188. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
  189. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs +3 -3
  190. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs.map +1 -1
  191. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +3 -3
  192. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
  193. package/dist/components/EditableField/EditableFieldTextArea.cjs +7 -0
  194. package/dist/components/EditableField/EditableFieldTextArea.cjs.map +1 -1
  195. package/dist/components/EditableField/EditableFieldTextArea.mjs +7 -0
  196. package/dist/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  197. package/dist/components/Footer/index.cjs +1 -1
  198. package/dist/components/Footer/index.cjs.map +1 -1
  199. package/dist/components/Footer/index.mjs +1 -1
  200. package/dist/components/Footer/index.mjs.map +1 -1
  201. package/dist/components/Form/Form.cjs +1 -1
  202. package/dist/components/Form/Form.mjs +1 -1
  203. package/dist/components/Form/FormDescription.cjs +1 -8
  204. package/dist/components/Form/FormDescription.cjs.map +1 -1
  205. package/dist/components/Form/FormDescription.d.ts.map +1 -1
  206. package/dist/components/Form/FormDescription.mjs +1 -8
  207. package/dist/components/Form/FormDescription.mjs.map +1 -1
  208. package/dist/components/Form/FormItem.cjs +1 -1
  209. package/dist/components/Form/FormItem.cjs.map +1 -1
  210. package/dist/components/Form/FormItem.mjs +1 -1
  211. package/dist/components/Form/FormItem.mjs.map +1 -1
  212. package/dist/components/Form/FormLabel.cjs +1 -5
  213. package/dist/components/Form/FormLabel.cjs.map +1 -1
  214. package/dist/components/Form/FormLabel.d.ts.map +1 -1
  215. package/dist/components/Form/FormLabel.mjs +1 -5
  216. package/dist/components/Form/FormLabel.mjs.map +1 -1
  217. package/dist/components/Form/FormMessage.cjs +1 -1
  218. package/dist/components/Form/FormMessage.cjs.map +1 -1
  219. package/dist/components/Form/FormMessage.mjs +1 -1
  220. package/dist/components/Form/FormMessage.mjs.map +1 -1
  221. package/dist/components/Form/elements/AutoSizeTextAreaElement.cjs +1 -1
  222. package/dist/components/Form/elements/AutoSizeTextAreaElement.mjs +1 -1
  223. package/dist/components/Form/elements/CheckboxElement.cjs +1 -1
  224. package/dist/components/Form/elements/CheckboxElement.mjs +1 -1
  225. package/dist/components/Form/elements/EditableFieldInputElement.cjs +1 -1
  226. package/dist/components/Form/elements/EditableFieldInputElement.mjs +1 -1
  227. package/dist/components/Form/elements/EditableFieldTextAreaElement.cjs +1 -1
  228. package/dist/components/Form/elements/EditableFieldTextAreaElement.mjs +1 -1
  229. package/dist/components/Form/elements/FormElement.cjs +1 -1
  230. package/dist/components/Form/elements/FormElement.mjs +1 -1
  231. package/dist/components/Form/elements/InputElement.cjs +1 -1
  232. package/dist/components/Form/elements/InputElement.mjs +1 -1
  233. package/dist/components/Form/elements/InputPasswordElement.cjs +1 -1
  234. package/dist/components/Form/elements/InputPasswordElement.mjs +1 -1
  235. package/dist/components/Form/elements/MultiselectElement.cjs +1 -1
  236. package/dist/components/Form/elements/MultiselectElement.mjs +1 -1
  237. package/dist/components/Form/elements/SelectElement.cjs +1 -1
  238. package/dist/components/Form/elements/SelectElement.mjs +1 -1
  239. package/dist/components/Form/elements/SwitchSelectorElement.cjs +1 -1
  240. package/dist/components/Form/elements/SwitchSelectorElement.mjs +1 -1
  241. package/dist/components/Form/elements/TextAreaElement.cjs +1 -1
  242. package/dist/components/Form/elements/TextAreaElement.mjs +1 -1
  243. package/dist/components/Form/elements/index.cjs +1 -1
  244. package/dist/components/Form/elements/index.mjs +1 -1
  245. package/dist/components/Form/index.cjs +1 -1
  246. package/dist/components/Form/index.mjs +1 -1
  247. package/dist/components/Form/layout/FormItemLayout.cjs +1 -1
  248. package/dist/components/Form/layout/FormItemLayout.mjs +1 -1
  249. package/dist/components/Form/layout/index.cjs +1 -1
  250. package/dist/components/Form/layout/index.mjs +1 -1
  251. package/dist/components/Headers/index.cjs +1 -1
  252. package/dist/components/Headers/index.cjs.map +1 -1
  253. package/dist/components/Headers/index.mjs +1 -1
  254. package/dist/components/Headers/index.mjs.map +1 -1
  255. package/dist/components/IDE/Code.cjs +1 -1
  256. package/dist/components/IDE/Code.cjs.map +1 -1
  257. package/dist/components/IDE/Code.mjs +1 -1
  258. package/dist/components/IDE/Code.mjs.map +1 -1
  259. package/dist/components/IDE/CodeBlockClient.cjs +8 -1
  260. package/dist/components/IDE/CodeBlockClient.cjs.map +1 -1
  261. package/dist/components/IDE/CodeBlockClient.d.ts.map +1 -1
  262. package/dist/components/IDE/CodeBlockClient.mjs +8 -1
  263. package/dist/components/IDE/CodeBlockClient.mjs.map +1 -1
  264. package/dist/components/IDE/CodeBlockServer.cjs +8 -1
  265. package/dist/components/IDE/CodeBlockServer.cjs.map +1 -1
  266. package/dist/components/IDE/CodeBlockServer.d.ts.map +1 -1
  267. package/dist/components/IDE/CodeBlockServer.mjs +8 -1
  268. package/dist/components/IDE/CodeBlockServer.mjs.map +1 -1
  269. package/dist/components/IDE/FileList.cjs +1 -1
  270. package/dist/components/IDE/FileList.cjs.map +1 -1
  271. package/dist/components/IDE/FileList.mjs +1 -1
  272. package/dist/components/IDE/FileList.mjs.map +1 -1
  273. package/dist/components/IDE/FileTree.cjs +1 -1
  274. package/dist/components/IDE/FileTree.cjs.map +1 -1
  275. package/dist/components/IDE/FileTree.mjs +1 -1
  276. package/dist/components/IDE/FileTree.mjs.map +1 -1
  277. package/dist/components/IDE/IDE.cjs +7 -3
  278. package/dist/components/IDE/IDE.cjs.map +1 -1
  279. package/dist/components/IDE/IDE.d.ts +1 -0
  280. package/dist/components/IDE/IDE.d.ts.map +1 -1
  281. package/dist/components/IDE/IDE.mjs +8 -4
  282. package/dist/components/IDE/IDE.mjs.map +1 -1
  283. package/dist/components/Input/Checkbox.cjs +10 -10
  284. package/dist/components/Input/Checkbox.cjs.map +1 -1
  285. package/dist/components/Input/Checkbox.d.ts +1 -1
  286. package/dist/components/Input/Checkbox.mjs +10 -10
  287. package/dist/components/Input/Checkbox.mjs.map +1 -1
  288. package/dist/components/Input/Input.cjs +7 -7
  289. package/dist/components/Input/Input.cjs.map +1 -1
  290. package/dist/components/Input/Input.d.ts.map +1 -1
  291. package/dist/components/Input/Input.mjs +7 -7
  292. package/dist/components/Input/Input.mjs.map +1 -1
  293. package/dist/components/Input/InputPassword.cjs +1 -1
  294. package/dist/components/Input/InputPassword.cjs.map +1 -1
  295. package/dist/components/Input/InputPassword.mjs +1 -1
  296. package/dist/components/Input/InputPassword.mjs.map +1 -1
  297. package/dist/components/Link/Link.cjs +26 -20
  298. package/dist/components/Link/Link.cjs.map +1 -1
  299. package/dist/components/Link/Link.d.ts +1 -1
  300. package/dist/components/Link/Link.d.ts.map +1 -1
  301. package/dist/components/Link/Link.mjs +26 -20
  302. package/dist/components/Link/Link.mjs.map +1 -1
  303. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +4 -4
  304. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
  305. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +4 -4
  306. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  307. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +4 -4
  308. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  309. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +4 -4
  310. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  311. package/dist/components/MarkDownRender/index.cjs +115 -114
  312. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  313. package/dist/components/MarkDownRender/index.d.ts +1 -1
  314. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  315. package/dist/components/MarkDownRender/index.mjs +115 -114
  316. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  317. package/dist/components/MaxHeightSmoother/index.cjs +1 -1
  318. package/dist/components/MaxHeightSmoother/index.cjs.map +1 -1
  319. package/dist/components/MaxHeightSmoother/index.mjs +1 -1
  320. package/dist/components/MaxHeightSmoother/index.mjs.map +1 -1
  321. package/dist/components/Modal/Modal.cjs +2 -2
  322. package/dist/components/Modal/Modal.cjs.map +1 -1
  323. package/dist/components/Modal/Modal.mjs +2 -2
  324. package/dist/components/Modal/Modal.mjs.map +1 -1
  325. package/dist/components/Navbar/Burger.cjs +1 -1
  326. package/dist/components/Navbar/Burger.cjs.map +1 -1
  327. package/dist/components/Navbar/Burger.mjs +1 -1
  328. package/dist/components/Navbar/Burger.mjs.map +1 -1
  329. package/dist/components/Navbar/DesktopNavbar.cjs +2 -2
  330. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  331. package/dist/components/Navbar/DesktopNavbar.mjs +2 -2
  332. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  333. package/dist/components/Navbar/MobileNavbar.cjs +2 -2
  334. package/dist/components/Navbar/MobileNavbar.cjs.map +1 -1
  335. package/dist/components/Navbar/MobileNavbar.mjs +2 -2
  336. package/dist/components/Navbar/MobileNavbar.mjs.map +1 -1
  337. package/dist/components/Pattern/DotPattern.cjs +1 -1
  338. package/dist/components/Pattern/DotPattern.cjs.map +1 -1
  339. package/dist/components/Pattern/DotPattern.mjs +1 -1
  340. package/dist/components/Pattern/DotPattern.mjs.map +1 -1
  341. package/dist/components/Pattern/GridPattern.cjs +1 -1
  342. package/dist/components/Pattern/GridPattern.cjs.map +1 -1
  343. package/dist/components/Pattern/GridPattern.mjs +1 -1
  344. package/dist/components/Pattern/GridPattern.mjs.map +1 -1
  345. package/dist/components/Popover/index.cjs +1 -1
  346. package/dist/components/Popover/index.cjs.map +1 -1
  347. package/dist/components/Popover/index.mjs +1 -1
  348. package/dist/components/Popover/index.mjs.map +1 -1
  349. package/dist/components/RightDrawer/RightDrawer.cjs +1 -1
  350. package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
  351. package/dist/components/RightDrawer/RightDrawer.d.ts.map +1 -1
  352. package/dist/components/RightDrawer/RightDrawer.mjs +1 -1
  353. package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
  354. package/dist/components/Select/Multiselect.cjs +8 -8
  355. package/dist/components/Select/Multiselect.cjs.map +1 -1
  356. package/dist/components/Select/Multiselect.d.ts.map +1 -1
  357. package/dist/components/Select/Multiselect.mjs +8 -8
  358. package/dist/components/Select/Multiselect.mjs.map +1 -1
  359. package/dist/components/Select/Select.cjs +7 -7
  360. package/dist/components/Select/Select.cjs.map +1 -1
  361. package/dist/components/Select/Select.d.ts.map +1 -1
  362. package/dist/components/Select/Select.mjs +7 -7
  363. package/dist/components/Select/Select.mjs.map +1 -1
  364. package/dist/components/SwitchSelector/index.cjs +11 -11
  365. package/dist/components/SwitchSelector/index.cjs.map +1 -1
  366. package/dist/components/SwitchSelector/index.d.ts +1 -1
  367. package/dist/components/SwitchSelector/index.d.ts.map +1 -1
  368. package/dist/components/SwitchSelector/index.mjs +11 -11
  369. package/dist/components/SwitchSelector/index.mjs.map +1 -1
  370. package/dist/components/TabSelector/TabSelector.cjs +15 -13
  371. package/dist/components/TabSelector/TabSelector.cjs.map +1 -1
  372. package/dist/components/TabSelector/TabSelector.d.ts +1 -1
  373. package/dist/components/TabSelector/TabSelector.d.ts.map +1 -1
  374. package/dist/components/TabSelector/TabSelector.mjs +15 -13
  375. package/dist/components/TabSelector/TabSelector.mjs.map +1 -1
  376. package/dist/components/Tag/index.cjs +6 -7
  377. package/dist/components/Tag/index.cjs.map +1 -1
  378. package/dist/components/Tag/index.d.ts +2 -2
  379. package/dist/components/Tag/index.d.ts.map +1 -1
  380. package/dist/components/Tag/index.mjs +6 -7
  381. package/dist/components/Tag/index.mjs.map +1 -1
  382. package/dist/components/TextArea/AutoSizeTextArea.cjs +1 -0
  383. package/dist/components/TextArea/AutoSizeTextArea.cjs.map +1 -1
  384. package/dist/components/TextArea/AutoSizeTextArea.d.ts.map +1 -1
  385. package/dist/components/TextArea/AutoSizeTextArea.mjs +1 -0
  386. package/dist/components/TextArea/AutoSizeTextArea.mjs.map +1 -1
  387. package/dist/components/TextArea/AutocompleteTextArea.cjs +105 -0
  388. package/dist/components/TextArea/AutocompleteTextArea.cjs.map +1 -0
  389. package/dist/components/TextArea/AutocompleteTextArea.d.ts +9 -0
  390. package/dist/components/TextArea/AutocompleteTextArea.d.ts.map +1 -0
  391. package/dist/components/TextArea/AutocompleteTextArea.mjs +105 -0
  392. package/dist/components/TextArea/AutocompleteTextArea.mjs.map +1 -0
  393. package/dist/components/TextArea/index.cjs +3 -0
  394. package/dist/components/TextArea/index.cjs.map +1 -1
  395. package/dist/components/TextArea/index.d.ts +1 -0
  396. package/dist/components/TextArea/index.d.ts.map +1 -1
  397. package/dist/components/TextArea/index.mjs +4 -1
  398. package/dist/components/TextArea/index.mjs.map +1 -1
  399. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs +1 -1
  400. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs.map +1 -1
  401. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +1 -1
  402. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  403. package/dist/components/Toaster/Toast.cjs +5 -5
  404. package/dist/components/Toaster/Toast.cjs.map +1 -1
  405. package/dist/components/Toaster/Toast.d.ts +1 -1
  406. package/dist/components/Toaster/Toast.d.ts.map +1 -1
  407. package/dist/components/Toaster/Toast.mjs +5 -5
  408. package/dist/components/Toaster/Toast.mjs.map +1 -1
  409. package/dist/components/Toaster/Toaster.cjs +1 -1
  410. package/dist/components/Toaster/Toaster.cjs.map +1 -1
  411. package/dist/components/Toaster/Toaster.mjs +1 -1
  412. package/dist/components/Toaster/Toaster.mjs.map +1 -1
  413. package/dist/components/WithResizer/index.cjs +2 -2
  414. package/dist/components/WithResizer/index.cjs.map +1 -1
  415. package/dist/components/WithResizer/index.mjs +2 -2
  416. package/dist/components/WithResizer/index.mjs.map +1 -1
  417. package/dist/components/index.cjs +12 -1
  418. package/dist/components/index.cjs.map +1 -1
  419. package/dist/components/index.d.ts +1 -0
  420. package/dist/components/index.d.ts.map +1 -1
  421. package/dist/components/index.mjs +12 -1
  422. package/dist/components/index.mjs.map +1 -1
  423. package/dist/hooks/index.cjs +3 -0
  424. package/dist/hooks/index.cjs.map +1 -1
  425. package/dist/hooks/index.mjs +4 -1
  426. package/dist/hooks/intlayerAPIHooks.cjs +18 -4
  427. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  428. package/dist/hooks/intlayerAPIHooks.d.ts +5 -2
  429. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  430. package/dist/hooks/intlayerAPIHooks.mjs +18 -4
  431. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  432. package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
  433. package/dist/hooks/useIntlayerAPI.d.ts +5 -2
  434. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  435. package/dist/index-BCuMWKyy.js.map +1 -1
  436. package/dist/index-BYzBot7l.cjs.map +1 -1
  437. package/dist/{index-BUe-qmA0.js → index-C57uA6Lk.js} +2 -2
  438. package/dist/{index-BUe-qmA0.js.map → index-C57uA6Lk.js.map} +1 -1
  439. package/dist/{index-cg9H6eBs.cjs → index-D02c1QrF.cjs} +2 -2
  440. package/dist/{index-cg9H6eBs.cjs.map → index-D02c1QrF.cjs.map} +1 -1
  441. package/dist/{index-B1w5h_6-.js → index-DixKT3Hi.js} +34 -5
  442. package/dist/index-DixKT3Hi.js.map +1 -0
  443. package/dist/{index-U1U6ySIn.cjs → index-a_-DkvMQ.cjs} +34 -5
  444. package/dist/index-a_-DkvMQ.cjs.map +1 -0
  445. package/dist/tailwind.config.cjs +2 -1395
  446. package/dist/tailwind.config.cjs.map +1 -1
  447. package/dist/tailwind.config.d.ts +3 -282
  448. package/dist/tailwind.config.d.ts.map +1 -1
  449. package/dist/tailwind.config.mjs +2 -1395
  450. package/dist/tailwind.config.mjs.map +1 -1
  451. package/dist/tailwind.css +2 -1
  452. package/dist/zod-BV4nCGJE.js.map +1 -1
  453. package/dist/zod-DSrtTSD_.cjs.map +1 -1
  454. package/package.json +28 -25
  455. package/dist/Form-BZUDRfoN.js.map +0 -1
  456. package/dist/Form-yi0CMK-a.cjs.map +0 -1
  457. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +0 -133
  458. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +0 -1
  459. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts +0 -9
  460. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts.map +0 -1
  461. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +0 -133
  462. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +0 -1
  463. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs +0 -132
  464. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs.map +0 -1
  465. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts.map +0 -1
  466. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs +0 -132
  467. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs.map +0 -1
  468. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.cjs +0 -8
  469. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.cjs.map +0 -1
  470. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.d.ts +0 -4
  471. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.d.ts.map +0 -1
  472. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.mjs +0 -8
  473. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.mjs.map +0 -1
  474. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +0 -45
  475. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +0 -1
  476. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +0 -9
  477. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +0 -1
  478. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +0 -45
  479. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +0 -1
  480. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.cjs +0 -40
  481. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.cjs.map +0 -1
  482. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.d.ts +0 -36
  483. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.d.ts.map +0 -1
  484. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.mjs +0 -40
  485. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.mjs.map +0 -1
  486. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.cjs +0 -8
  487. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.cjs.map +0 -1
  488. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.d.ts +0 -4
  489. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.d.ts.map +0 -1
  490. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.mjs +0 -8
  491. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.mjs.map +0 -1
  492. package/dist/index-B1w5h_6-.js.map +0 -1
  493. package/dist/index-U1U6ySIn.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Code.cjs","sources":["../../../src/components/IDE/Code.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes } from 'react';\nimport type { BundledLanguage } from 'shiki';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { CodeBlock } from './CodeBlockClient';\nimport { CodeConditionalRender } from './CodeConditionalRenderer';\nimport type {\n PackageManager,\n CodeFormat,\n ContentDeclarationFormat,\n} from './CodeContext';\nimport { CodeFormatSelector } from './CodeFormatSelector';\nimport { ContentDeclarationFormatSelector } from './ContentDeclarationFormatSelector';\nimport { CopyButton } from './CopyButton';\nimport { PackageManagerSelector } from './PackageManagerSelector';\n\nexport type CodeCompAttributes = {\n fileName?: string;\n packageManager?: PackageManager;\n codeFormat?: CodeFormat;\n contentDeclarationFormat?: ContentDeclarationFormat;\n};\n\ntype CodeCompProps = {\n children: string;\n fileName?: string;\n language: BundledLanguage;\n isDarkMode?: boolean;\n showHeader?: boolean;\n showLineNumbers?: boolean;\n} & CodeCompAttributes &\n HTMLAttributes<HTMLDivElement>;\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showHeader = true,\n showLineNumbers = true,\n className,\n fileName,\n packageManager,\n codeFormat,\n contentDeclarationFormat,\n ...props\n}) => {\n const code = children.endsWith('\\n') ? children.slice(0, -1) : children;\n\n const hadSelectInHeader =\n packageManager || codeFormat || contentDeclarationFormat;\n\n return (\n <CodeConditionalRender\n packageManager={packageManager}\n codeFormat={codeFormat}\n contentDeclarationFormat={contentDeclarationFormat}\n >\n <Container\n className={cn(\n 'relative text-sm leading-6',\n showLineNumbers && 'with-line-number ml-0',\n className\n )}\n transparency=\"lg\"\n {...props}\n >\n {showHeader && (\n <>\n <div className=\"bg-card/50 dark:bg-card-dark/50 text-neutral dark:text-neutral-dark grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs\">\n <span className=\"truncate\">{fileName ?? language}</span>\n <div className=\"flex items-center gap-2\">\n {packageManager && <PackageManagerSelector />}\n {codeFormat && <CodeFormatSelector />}\n {contentDeclarationFormat && (\n <ContentDeclarationFormatSelector />\n )}\n </div>\n </div>\n <div className=\"sticky top-28\">\n <div\n className={cn(\n 'absolute bottom-0 right-2 flex h-7 items-center',\n hadSelectInHeader && 'h-11'\n )}\n >\n <CopyButton content={code} />\n </div>\n </div>\n </>\n )}\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <CodeBlock lang={language} isDarkMode={isDarkMode}>\n {code}\n </CodeBlock>\n </div>\n </Container>\n </CodeConditionalRender>\n );\n};\n"],"names":["jsx","CodeConditionalRender","jsxs","Container","cn","Fragment","PackageManagerSelector","CodeFormatSelector","ContentDeclarationFormatSelector","CopyButton","CodeBlock"],"mappings":";;;;;;;;;;;AAiCO,MAAM,OAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,OAAO,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI;AAEzD,QAAA,oBACJ,kBAAkB,cAAc;AAGhC,SAAAA,2BAAA;AAAA,IAACC,uCAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,2BAAA;AAAA,QAACC,2BAAA;AAAA,QAAA;AAAA,UACC,WAAWC,SAAA;AAAA,YACT;AAAA,YACA,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,UACA,cAAa;AAAA,UACZ,GAAG;AAAA,UAEH,UAAA;AAAA,YAAA,cAEGF,2BAAA,KAAAG,qBAAA,EAAA,UAAA;AAAA,cAACH,2BAAAA,KAAA,OAAA,EAAI,WAAU,4KACb,UAAA;AAAA,gBAAAF,2BAAA,IAAC,QAAK,EAAA,WAAU,YAAY,UAAA,YAAY,UAAS;AAAA,gBACjDE,2BAAAA,KAAC,OAAI,EAAA,WAAU,2BACZ,UAAA;AAAA,kBAAA,iDAAmBI,sCAAuB,wBAAA,EAAA;AAAA,kBAC1C,6CAAeC,kCAAmB,oBAAA,EAAA;AAAA,kBAClC,2DACEC,gDAAAA,kCAAiC,CAAA,CAAA;AAAA,gBAAA,EAEtC,CAAA;AAAA,cAAA,GACF;AAAA,cACAR,2BAAAA,IAAC,OAAI,EAAA,WAAU,iBACb,UAAAA,2BAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWI,SAAA;AAAA,oBACT;AAAA,oBACA,qBAAqB;AAAA,kBACvB;AAAA,kBAEA,UAAAJ,2BAAAA,IAACS,0BAAAA,YAAW,EAAA,SAAS,KAAM,CAAA;AAAA,gBAAA;AAAA,cAAA,EAE/B,CAAA;AAAA,YAAA,GACF;AAAA,YAEFT,2BAAAA,IAAC,OAAI,EAAA,WAAU,oDACb,UAAAA,2BAAA,IAACU,4CAAU,MAAM,UAAU,YACxB,UAAA,KACH,CAAA,EACF,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"Code.cjs","sources":["../../../src/components/IDE/Code.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes } from 'react';\nimport type { BundledLanguage } from 'shiki';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { CodeBlock } from './CodeBlockClient';\nimport { CodeConditionalRender } from './CodeConditionalRenderer';\nimport type {\n PackageManager,\n CodeFormat,\n ContentDeclarationFormat,\n} from './CodeContext';\nimport { CodeFormatSelector } from './CodeFormatSelector';\nimport { ContentDeclarationFormatSelector } from './ContentDeclarationFormatSelector';\nimport { CopyButton } from './CopyButton';\nimport { PackageManagerSelector } from './PackageManagerSelector';\n\nexport type CodeCompAttributes = {\n fileName?: string;\n packageManager?: PackageManager;\n codeFormat?: CodeFormat;\n contentDeclarationFormat?: ContentDeclarationFormat;\n};\n\ntype CodeCompProps = {\n children: string;\n fileName?: string;\n language: BundledLanguage;\n isDarkMode?: boolean;\n showHeader?: boolean;\n showLineNumbers?: boolean;\n} & CodeCompAttributes &\n HTMLAttributes<HTMLDivElement>;\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showHeader = true,\n showLineNumbers = true,\n className,\n fileName,\n packageManager,\n codeFormat,\n contentDeclarationFormat,\n ...props\n}) => {\n const code = children.endsWith('\\n') ? children.slice(0, -1) : children;\n\n const hadSelectInHeader =\n packageManager || codeFormat || contentDeclarationFormat;\n\n return (\n <CodeConditionalRender\n packageManager={packageManager}\n codeFormat={codeFormat}\n contentDeclarationFormat={contentDeclarationFormat}\n >\n <Container\n className={cn(\n 'relative text-sm leading-6',\n showLineNumbers && 'with-line-number ml-0',\n className\n )}\n transparency=\"lg\"\n {...props}\n >\n {showHeader && (\n <>\n <div className=\"bg-card/50 text-neutral grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs\">\n <span className=\"truncate\">{fileName ?? language}</span>\n <div className=\"flex items-center gap-2\">\n {packageManager && <PackageManagerSelector />}\n {codeFormat && <CodeFormatSelector />}\n {contentDeclarationFormat && (\n <ContentDeclarationFormatSelector />\n )}\n </div>\n </div>\n <div className=\"sticky top-28\">\n <div\n className={cn(\n 'absolute bottom-0 right-2 flex h-7 items-center',\n hadSelectInHeader && 'h-11'\n )}\n >\n <CopyButton content={code} />\n </div>\n </div>\n </>\n )}\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <CodeBlock lang={language} isDarkMode={isDarkMode}>\n {code}\n </CodeBlock>\n </div>\n </Container>\n </CodeConditionalRender>\n );\n};\n"],"names":["jsx","CodeConditionalRender","jsxs","Container","cn","Fragment","PackageManagerSelector","CodeFormatSelector","ContentDeclarationFormatSelector","CopyButton","CodeBlock"],"mappings":";;;;;;;;;;;AAiCO,MAAM,OAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,OAAO,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI;AAEzD,QAAA,oBACJ,kBAAkB,cAAc;AAGhC,SAAAA,2BAAA;AAAA,IAACC,uCAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,2BAAA;AAAA,QAACC,2BAAA;AAAA,QAAA;AAAA,UACC,WAAWC,SAAA;AAAA,YACT;AAAA,YACA,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,UACA,cAAa;AAAA,UACZ,GAAG;AAAA,UAEH,UAAA;AAAA,YAAA,cAEGF,2BAAA,KAAAG,qBAAA,EAAA,UAAA;AAAA,cAACH,2BAAAA,KAAA,OAAA,EAAI,WAAU,gIACb,UAAA;AAAA,gBAAAF,2BAAA,IAAC,QAAK,EAAA,WAAU,YAAY,UAAA,YAAY,UAAS;AAAA,gBACjDE,2BAAAA,KAAC,OAAI,EAAA,WAAU,2BACZ,UAAA;AAAA,kBAAA,iDAAmBI,sCAAuB,wBAAA,EAAA;AAAA,kBAC1C,6CAAeC,kCAAmB,oBAAA,EAAA;AAAA,kBAClC,2DACEC,gDAAAA,kCAAiC,CAAA,CAAA;AAAA,gBAAA,EAEtC,CAAA;AAAA,cAAA,GACF;AAAA,cACAR,2BAAAA,IAAC,OAAI,EAAA,WAAU,iBACb,UAAAA,2BAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWI,SAAA;AAAA,oBACT;AAAA,oBACA,qBAAqB;AAAA,kBACvB;AAAA,kBAEA,UAAAJ,2BAAAA,IAACS,0BAAAA,YAAW,EAAA,SAAS,KAAM,CAAA;AAAA,gBAAA;AAAA,cAAA,EAE/B,CAAA;AAAA,YAAA,GACF;AAAA,YAEFT,2BAAAA,IAAC,OAAI,EAAA,WAAU,oDACb,UAAAA,2BAAA,IAACU,4CAAU,MAAM,UAAU,YACxB,UAAA,KACH,CAAA,EACF,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;;"}
@@ -40,7 +40,7 @@ const Code = ({
40
40
  ...props,
41
41
  children: [
42
42
  showHeader && /* @__PURE__ */ jsxs(Fragment, { children: [
43
- /* @__PURE__ */ jsxs("div", { className: "bg-card/50 dark:bg-card-dark/50 text-neutral dark:text-neutral-dark grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs", children: [
43
+ /* @__PURE__ */ jsxs("div", { className: "bg-card/50 text-neutral grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs", children: [
44
44
  /* @__PURE__ */ jsx("span", { className: "truncate", children: fileName ?? language }),
45
45
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
46
46
  packageManager && /* @__PURE__ */ jsx(PackageManagerSelector, {}),
@@ -1 +1 @@
1
- {"version":3,"file":"Code.mjs","sources":["../../../src/components/IDE/Code.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes } from 'react';\nimport type { BundledLanguage } from 'shiki';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { CodeBlock } from './CodeBlockClient';\nimport { CodeConditionalRender } from './CodeConditionalRenderer';\nimport type {\n PackageManager,\n CodeFormat,\n ContentDeclarationFormat,\n} from './CodeContext';\nimport { CodeFormatSelector } from './CodeFormatSelector';\nimport { ContentDeclarationFormatSelector } from './ContentDeclarationFormatSelector';\nimport { CopyButton } from './CopyButton';\nimport { PackageManagerSelector } from './PackageManagerSelector';\n\nexport type CodeCompAttributes = {\n fileName?: string;\n packageManager?: PackageManager;\n codeFormat?: CodeFormat;\n contentDeclarationFormat?: ContentDeclarationFormat;\n};\n\ntype CodeCompProps = {\n children: string;\n fileName?: string;\n language: BundledLanguage;\n isDarkMode?: boolean;\n showHeader?: boolean;\n showLineNumbers?: boolean;\n} & CodeCompAttributes &\n HTMLAttributes<HTMLDivElement>;\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showHeader = true,\n showLineNumbers = true,\n className,\n fileName,\n packageManager,\n codeFormat,\n contentDeclarationFormat,\n ...props\n}) => {\n const code = children.endsWith('\\n') ? children.slice(0, -1) : children;\n\n const hadSelectInHeader =\n packageManager || codeFormat || contentDeclarationFormat;\n\n return (\n <CodeConditionalRender\n packageManager={packageManager}\n codeFormat={codeFormat}\n contentDeclarationFormat={contentDeclarationFormat}\n >\n <Container\n className={cn(\n 'relative text-sm leading-6',\n showLineNumbers && 'with-line-number ml-0',\n className\n )}\n transparency=\"lg\"\n {...props}\n >\n {showHeader && (\n <>\n <div className=\"bg-card/50 dark:bg-card-dark/50 text-neutral dark:text-neutral-dark grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs\">\n <span className=\"truncate\">{fileName ?? language}</span>\n <div className=\"flex items-center gap-2\">\n {packageManager && <PackageManagerSelector />}\n {codeFormat && <CodeFormatSelector />}\n {contentDeclarationFormat && (\n <ContentDeclarationFormatSelector />\n )}\n </div>\n </div>\n <div className=\"sticky top-28\">\n <div\n className={cn(\n 'absolute bottom-0 right-2 flex h-7 items-center',\n hadSelectInHeader && 'h-11'\n )}\n >\n <CopyButton content={code} />\n </div>\n </div>\n </>\n )}\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <CodeBlock lang={language} isDarkMode={isDarkMode}>\n {code}\n </CodeBlock>\n </div>\n </Container>\n </CodeConditionalRender>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAiCO,MAAM,OAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,OAAO,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI;AAEzD,QAAA,oBACJ,kBAAkB,cAAc;AAGhC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,UACA,cAAa;AAAA,UACZ,GAAG;AAAA,UAEH,UAAA;AAAA,YAAA,cAEG,qBAAA,UAAA,EAAA,UAAA;AAAA,cAAC,qBAAA,OAAA,EAAI,WAAU,4KACb,UAAA;AAAA,gBAAA,oBAAC,QAAK,EAAA,WAAU,YAAY,UAAA,YAAY,UAAS;AAAA,gBACjD,qBAAC,OAAI,EAAA,WAAU,2BACZ,UAAA;AAAA,kBAAA,sCAAmB,wBAAuB,EAAA;AAAA,kBAC1C,kCAAe,oBAAmB,EAAA;AAAA,kBAClC,gDACE,kCAAiC,CAAA,CAAA;AAAA,gBAAA,EAEtC,CAAA;AAAA,cAAA,GACF;AAAA,cACA,oBAAC,OAAI,EAAA,WAAU,iBACb,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,qBAAqB;AAAA,kBACvB;AAAA,kBAEA,UAAA,oBAAC,YAAW,EAAA,SAAS,KAAM,CAAA;AAAA,gBAAA;AAAA,cAAA,EAE/B,CAAA;AAAA,YAAA,GACF;AAAA,YAEF,oBAAC,OAAI,EAAA,WAAU,oDACb,UAAA,oBAAC,aAAU,MAAM,UAAU,YACxB,UAAA,KACH,CAAA,EACF,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"Code.mjs","sources":["../../../src/components/IDE/Code.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes } from 'react';\nimport type { BundledLanguage } from 'shiki';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { CodeBlock } from './CodeBlockClient';\nimport { CodeConditionalRender } from './CodeConditionalRenderer';\nimport type {\n PackageManager,\n CodeFormat,\n ContentDeclarationFormat,\n} from './CodeContext';\nimport { CodeFormatSelector } from './CodeFormatSelector';\nimport { ContentDeclarationFormatSelector } from './ContentDeclarationFormatSelector';\nimport { CopyButton } from './CopyButton';\nimport { PackageManagerSelector } from './PackageManagerSelector';\n\nexport type CodeCompAttributes = {\n fileName?: string;\n packageManager?: PackageManager;\n codeFormat?: CodeFormat;\n contentDeclarationFormat?: ContentDeclarationFormat;\n};\n\ntype CodeCompProps = {\n children: string;\n fileName?: string;\n language: BundledLanguage;\n isDarkMode?: boolean;\n showHeader?: boolean;\n showLineNumbers?: boolean;\n} & CodeCompAttributes &\n HTMLAttributes<HTMLDivElement>;\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showHeader = true,\n showLineNumbers = true,\n className,\n fileName,\n packageManager,\n codeFormat,\n contentDeclarationFormat,\n ...props\n}) => {\n const code = children.endsWith('\\n') ? children.slice(0, -1) : children;\n\n const hadSelectInHeader =\n packageManager || codeFormat || contentDeclarationFormat;\n\n return (\n <CodeConditionalRender\n packageManager={packageManager}\n codeFormat={codeFormat}\n contentDeclarationFormat={contentDeclarationFormat}\n >\n <Container\n className={cn(\n 'relative text-sm leading-6',\n showLineNumbers && 'with-line-number ml-0',\n className\n )}\n transparency=\"lg\"\n {...props}\n >\n {showHeader && (\n <>\n <div className=\"bg-card/50 text-neutral grid w-full grid-cols-[1fr_auto] items-center justify-between rounded-t-xl py-1.5 pl-4 pr-12 text-xs\">\n <span className=\"truncate\">{fileName ?? language}</span>\n <div className=\"flex items-center gap-2\">\n {packageManager && <PackageManagerSelector />}\n {codeFormat && <CodeFormatSelector />}\n {contentDeclarationFormat && (\n <ContentDeclarationFormatSelector />\n )}\n </div>\n </div>\n <div className=\"sticky top-28\">\n <div\n className={cn(\n 'absolute bottom-0 right-2 flex h-7 items-center',\n hadSelectInHeader && 'h-11'\n )}\n >\n <CopyButton content={code} />\n </div>\n </div>\n </>\n )}\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <CodeBlock lang={language} isDarkMode={isDarkMode}>\n {code}\n </CodeBlock>\n </div>\n </Container>\n </CodeConditionalRender>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAiCO,MAAM,OAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,OAAO,SAAS,SAAS,IAAI,IAAI,SAAS,MAAM,GAAG,EAAE,IAAI;AAEzD,QAAA,oBACJ,kBAAkB,cAAc;AAGhC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,UACA,cAAa;AAAA,UACZ,GAAG;AAAA,UAEH,UAAA;AAAA,YAAA,cAEG,qBAAA,UAAA,EAAA,UAAA;AAAA,cAAC,qBAAA,OAAA,EAAI,WAAU,gIACb,UAAA;AAAA,gBAAA,oBAAC,QAAK,EAAA,WAAU,YAAY,UAAA,YAAY,UAAS;AAAA,gBACjD,qBAAC,OAAI,EAAA,WAAU,2BACZ,UAAA;AAAA,kBAAA,sCAAmB,wBAAuB,EAAA;AAAA,kBAC1C,kCAAe,oBAAmB,EAAA;AAAA,kBAClC,gDACE,kCAAiC,CAAA,CAAA;AAAA,gBAAA,EAEtC,CAAA;AAAA,cAAA,GACF;AAAA,cACA,oBAAC,OAAI,EAAA,WAAU,iBACb,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,qBAAqB;AAAA,kBACvB;AAAA,kBAEA,UAAA,oBAAC,YAAW,EAAA,SAAS,KAAM,CAAA;AAAA,gBAAA;AAAA,cAAA,EAE/B,CAAA;AAAA,YAAA,GACF;AAAA,YAEF,oBAAC,OAAI,EAAA,WAAU,oDACb,UAAA,oBAAC,aAAU,MAAM,UAAU,YACxB,UAAA,KACH,CAAA,EACF,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -34,7 +34,14 @@ const CodeBlockShiki = ({
34
34
  shiki.codeToHtml(children, shikiOptions).then((out2) => setOut(out2)).catch((e) => console.error(e));
35
35
  }, [shikiOptions, children]);
36
36
  if (!out) return /* @__PURE__ */ jsxRuntime.jsx(CodeDefault, { children });
37
- return /* @__PURE__ */ jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: out }, ...props });
37
+ return /* @__PURE__ */ jsxRuntime.jsx(
38
+ "div",
39
+ {
40
+ dangerouslySetInnerHTML: { __html: out },
41
+ ...props,
42
+ style: { backgroundColor: "transparent" }
43
+ }
44
+ );
38
45
  };
39
46
  const CodeBlock = ({
40
47
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockClient.cjs","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["'use client';\n\nimport {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport {\n type HTMLAttributes,\n type FC,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nconst CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport const CodeBlockShiki = (({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const [out, setOut] = useState<string | null>(null);\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> =\n useMemo(\n () => ({\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n }),\n [lang, isDarkMode]\n );\n\n useEffect(() => {\n codeToHtml(children, shikiOptions)\n .then((out) => setOut(out))\n .catch((e) => console.error(e));\n }, [shikiOptions, children]);\n\n if (!out) return <CodeDefault>{children}</CodeDefault>;\n\n return <div dangerouslySetInnerHTML={{ __html: out }} {...props} />;\n}) as unknown as FC<CodeBlockProps>;\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n);\n"],"names":["jsx","useState","useMemo","transformerNotationDiff","transformerNotationHighlight","transformerNotationWordHighlight","transformerNotationErrorLevel","transformerMetaHighlight","transformerMetaWordHighlight","useEffect","codeToHtml","out","cn"],"mappings":";;;;;;;;AAyBA,MAAM,cAAwC,CAAC,EAAE,SAAA,MAC/CA,2BAAAA,IAAC,OACC,EAAA,UAAAA,2BAAAA,IAAC,OACC,EAAA,UAAAA,2BAAA,IAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/BA,2BAAA,IAAC,QAAK,EAAA,WAAU,qBACb,UAAA,KAAA,GADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAGK,MAAM,iBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,CAAC,KAAK,MAAM,IAAIC,aAAAA,SAAwB,IAAI;AAClD,QAAM,eACJC,aAAA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA,OAAO,aAAa,gBAAgB;AAAA,MACpC,cAAc;AAAA,QACZC,qCAAwB;AAAA,QACxBC,0CAA6B;AAAA,QAC7BC,8CAAiC;AAAA,QACjCC,2CAA8B;AAAA,QAC9BC,sCAAyB;AAAA,QACzBC,aAA6B,6BAAA;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAAC,MAAM,UAAU;AAAA,EACnB;AAEFC,eAAAA,UAAU,MAAM;AACdC,UAAA,WAAW,UAAU,YAAY,EAC9B,KAAK,CAACC,SAAQ,OAAOA,IAAG,CAAC,EACzB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAAA,GAC/B,CAAC,cAAc,QAAQ,CAAC;AAE3B,MAAI,CAAC,IAAY,QAAAX,2BAAAA,IAAC,eAAa,SAAS,CAAA;AAEjC,SAAAA,2BAAA,IAAC,SAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAI,GAAG,OAAO;AACnE;AAUO,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACEA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWY,SAAAA,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN;;;"}
1
+ {"version":3,"file":"CodeBlockClient.cjs","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["'use client';\n\nimport {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport {\n type HTMLAttributes,\n type FC,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nconst CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport const CodeBlockShiki = (({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const [out, setOut] = useState<string | null>(null);\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> =\n useMemo(\n () => ({\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n }),\n [lang, isDarkMode]\n );\n\n useEffect(() => {\n codeToHtml(children, shikiOptions)\n .then((out) => setOut(out))\n .catch((e) => console.error(e));\n }, [shikiOptions, children]);\n\n if (!out) return <CodeDefault>{children}</CodeDefault>;\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n);\n"],"names":["jsx","useState","useMemo","transformerNotationDiff","transformerNotationHighlight","transformerNotationWordHighlight","transformerNotationErrorLevel","transformerMetaHighlight","transformerMetaWordHighlight","useEffect","codeToHtml","out","cn"],"mappings":";;;;;;;;AAyBA,MAAM,cAAwC,CAAC,EAAE,SAAA,MAC/CA,2BAAAA,IAAC,OACC,EAAA,UAAAA,2BAAAA,IAAC,OACC,EAAA,UAAAA,2BAAA,IAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/BA,2BAAA,IAAC,QAAK,EAAA,WAAU,qBACb,UAAA,KAAA,GADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAGK,MAAM,iBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,CAAC,KAAK,MAAM,IAAIC,aAAAA,SAAwB,IAAI;AAClD,QAAM,eACJC,aAAA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA,OAAO,aAAa,gBAAgB;AAAA,MACpC,cAAc;AAAA,QACZC,qCAAwB;AAAA,QACxBC,0CAA6B;AAAA,QAC7BC,8CAAiC;AAAA,QACjCC,2CAA8B;AAAA,QAC9BC,sCAAyB;AAAA,QACzBC,aAA6B,6BAAA;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAAC,MAAM,UAAU;AAAA,EACnB;AAEFC,eAAAA,UAAU,MAAM;AACdC,UAAA,WAAW,UAAU,YAAY,EAC9B,KAAK,CAACC,SAAQ,OAAOA,IAAG,CAAC,EACzB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAAA,GAC/B,CAAC,cAAc,QAAQ,CAAC;AAE3B,MAAI,CAAC,IAAY,QAAAX,2BAAAA,IAAC,eAAa,SAAS,CAAA;AAGtC,SAAAA,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,yBAAyB,EAAE,QAAQ,IAAI;AAAA,MACtC,GAAG;AAAA,MACJ,OAAO,EAAE,iBAAiB,cAAc;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAUO,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACEA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWY,SAAAA,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockClient.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AACf,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,OAAO,CAAC;AAiBf,eAAO,MAAM,cAAc,EAkCV,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAYxC,CAAC"}
1
+ {"version":3,"file":"CodeBlockClient.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AACf,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,OAAO,CAAC;AAiBf,eAAO,MAAM,cAAc,EAwCV,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAYxC,CAAC"}
@@ -32,7 +32,14 @@ const CodeBlockShiki = ({
32
32
  codeToHtml(children, shikiOptions).then((out2) => setOut(out2)).catch((e) => console.error(e));
33
33
  }, [shikiOptions, children]);
34
34
  if (!out) return /* @__PURE__ */ jsx(CodeDefault, { children });
35
- return /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: out }, ...props });
35
+ return /* @__PURE__ */ jsx(
36
+ "div",
37
+ {
38
+ dangerouslySetInnerHTML: { __html: out },
39
+ ...props,
40
+ style: { backgroundColor: "transparent" }
41
+ }
42
+ );
36
43
  };
37
44
  const CodeBlock = ({
38
45
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockClient.mjs","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["'use client';\n\nimport {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport {\n type HTMLAttributes,\n type FC,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nconst CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport const CodeBlockShiki = (({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const [out, setOut] = useState<string | null>(null);\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> =\n useMemo(\n () => ({\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n }),\n [lang, isDarkMode]\n );\n\n useEffect(() => {\n codeToHtml(children, shikiOptions)\n .then((out) => setOut(out))\n .catch((e) => console.error(e));\n }, [shikiOptions, children]);\n\n if (!out) return <CodeDefault>{children}</CodeDefault>;\n\n return <div dangerouslySetInnerHTML={{ __html: out }} {...props} />;\n}) as unknown as FC<CodeBlockProps>;\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n);\n"],"names":["out"],"mappings":";;;;;;AAyBA,MAAM,cAAwC,CAAC,EAAE,SAAA,MAC/C,oBAAC,OACC,EAAA,UAAA,oBAAC,OACC,EAAA,UAAA,oBAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/B,oBAAC,QAAK,EAAA,WAAU,qBACb,UAAA,KAAA,GADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAGK,MAAM,iBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,CAAC,KAAK,MAAM,IAAI,SAAwB,IAAI;AAClD,QAAM,eACJ;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA,OAAO,aAAa,gBAAgB;AAAA,MACpC,cAAc;AAAA,QACZ,wBAAwB;AAAA,QACxB,6BAA6B;AAAA,QAC7B,iCAAiC;AAAA,QACjC,8BAA8B;AAAA,QAC9B,yBAAyB;AAAA,QACzB,6BAA6B;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAAC,MAAM,UAAU;AAAA,EACnB;AAEF,YAAU,MAAM;AACd,eAAW,UAAU,YAAY,EAC9B,KAAK,CAACA,SAAQ,OAAOA,IAAG,CAAC,EACzB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAAA,GAC/B,CAAC,cAAc,QAAQ,CAAC;AAE3B,MAAI,CAAC,IAAY,QAAA,oBAAC,eAAa,SAAS,CAAA;AAEjC,SAAA,oBAAC,SAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAI,GAAG,OAAO;AACnE;AAUO,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN;"}
1
+ {"version":3,"file":"CodeBlockClient.mjs","sources":["../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["'use client';\n\nimport {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport {\n type HTMLAttributes,\n type FC,\n useState,\n useEffect,\n useMemo,\n} from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nconst CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport const CodeBlockShiki = (({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const [out, setOut] = useState<string | null>(null);\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> =\n useMemo(\n () => ({\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n }),\n [lang, isDarkMode]\n );\n\n useEffect(() => {\n codeToHtml(children, shikiOptions)\n .then((out) => setOut(out))\n .catch((e) => console.error(e));\n }, [shikiOptions, children]);\n\n if (!out) return <CodeDefault>{children}</CodeDefault>;\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n);\n"],"names":["out"],"mappings":";;;;;;AAyBA,MAAM,cAAwC,CAAC,EAAE,SAAA,MAC/C,oBAAC,OACC,EAAA,UAAA,oBAAC,OACC,EAAA,UAAA,oBAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/B,oBAAC,QAAK,EAAA,WAAU,qBACb,UAAA,KAAA,GADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAGK,MAAM,iBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,CAAC,KAAK,MAAM,IAAI,SAAwB,IAAI;AAClD,QAAM,eACJ;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA,OAAO,aAAa,gBAAgB;AAAA,MACpC,cAAc;AAAA,QACZ,wBAAwB;AAAA,QACxB,6BAA6B;AAAA,QAC7B,iCAAiC;AAAA,QACjC,8BAA8B;AAAA,QAC9B,yBAAyB;AAAA,QACzB,6BAA6B;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAAC,MAAM,UAAU;AAAA,EACnB;AAEF,YAAU,MAAM;AACd,eAAW,UAAU,YAAY,EAC9B,KAAK,CAACA,SAAQ,OAAOA,IAAG,CAAC,EACzB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAAA,GAC/B,CAAC,cAAc,QAAQ,CAAC;AAE3B,MAAI,CAAC,IAAY,QAAA,oBAAC,eAAa,SAAS,CAAA;AAGtC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,yBAAyB,EAAE,QAAQ,IAAI;AAAA,MACtC,GAAG;AAAA,MACJ,OAAO,EAAE,iBAAiB,cAAc;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAUO,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN;"}
@@ -25,7 +25,14 @@ const CodeBlockShiki = async ({
25
25
  ]
26
26
  };
27
27
  const out = await shiki.codeToHtml(children, shikiOptions);
28
- return /* @__PURE__ */ jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: out }, ...props });
28
+ return /* @__PURE__ */ jsxRuntime.jsx(
29
+ "div",
30
+ {
31
+ dangerouslySetInnerHTML: { __html: out },
32
+ ...props,
33
+ style: { backgroundColor: "transparent" }
34
+ }
35
+ );
29
36
  };
30
37
  const CodeDefault = ({
31
38
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockServer.cjs","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport { type HTMLAttributes, Suspense, type FC } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return <div dangerouslySetInnerHTML={{ __html: out }} {...props} />;\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <Suspense fallback={<CodeDefault {...props} />}>\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n </Suspense>\n);\n"],"names":["transformerNotationDiff","transformerNotationHighlight","transformerNotationWordHighlight","transformerNotationErrorLevel","transformerMetaHighlight","transformerMetaWordHighlight","codeToHtml","jsx","Suspense","cn"],"mappings":";;;;;;;AAiBO,MAAM,iBAAkB,OAAO;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,eAAiE;AAAA,IACrE;AAAA,IACA,OAAO,aAAa,gBAAgB;AAAA,IACpC,cAAc;AAAA,MACZA,qCAAwB;AAAA,MACxBC,0CAA6B;AAAA,MAC7BC,8CAAiC;AAAA,MACjCC,2CAA8B;AAAA,MAC9BC,sCAAyB;AAAA,MACzBC,aAA6B,6BAAA;AAAA,IAAA;AAAA,EAEjC;AAEA,QAAM,MAAM,MAAMC,iBAAW,UAAU,YAAY;AAE5C,SAAAC,2BAAA,IAAC,SAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAI,GAAG,OAAO;AACnE;AAEA,MAAM,cAAkC,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACEA,2BAAAA,IAAC,OAAI,EAAA,iBAAiB,YAAa,GAAG,OACpC,UAAAA,2BAAA,IAAC,OACC,EAAA,UAAAA,2BAAAA,IAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/BA,2BAAAA,IAAC,QAAK,EAAA,WAAU,qBACb,UAAA,QADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAWK,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,qCACGC,aAAAA,UAAS,EAAA,yCAAW,aAAa,EAAA,GAAG,OAAO,GAC1C,UAAAD,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWE,SAAAA,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN,EACF,CAAA;;;"}
1
+ {"version":3,"file":"CodeBlockServer.cjs","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport { type HTMLAttributes, Suspense, type FC } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <Suspense fallback={<CodeDefault {...props} />}>\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n </Suspense>\n);\n"],"names":["transformerNotationDiff","transformerNotationHighlight","transformerNotationWordHighlight","transformerNotationErrorLevel","transformerMetaHighlight","transformerMetaWordHighlight","codeToHtml","jsx","Suspense","cn"],"mappings":";;;;;;;AAiBO,MAAM,iBAAkB,OAAO;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,eAAiE;AAAA,IACrE;AAAA,IACA,OAAO,aAAa,gBAAgB;AAAA,IACpC,cAAc;AAAA,MACZA,qCAAwB;AAAA,MACxBC,0CAA6B;AAAA,MAC7BC,8CAAiC;AAAA,MACjCC,2CAA8B;AAAA,MAC9BC,sCAAyB;AAAA,MACzBC,aAA6B,6BAAA;AAAA,IAAA;AAAA,EAEjC;AAEA,QAAM,MAAM,MAAMC,iBAAW,UAAU,YAAY;AAGjD,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,yBAAyB,EAAE,QAAQ,IAAI;AAAA,MACtC,GAAG;AAAA,MACJ,OAAO,EAAE,iBAAiB,cAAc;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAEA,MAAM,cAAkC,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACEA,2BAAAA,IAAC,OAAI,EAAA,iBAAiB,YAAa,GAAG,OACpC,UAAAA,2BAAA,IAAC,OACC,EAAA,UAAAA,2BAAAA,IAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/BA,2BAAAA,IAAC,QAAK,EAAA,WAAU,qBACb,UAAA,QADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAWK,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,qCACGC,aAAAA,UAAS,EAAA,yCAAW,aAAa,EAAA,GAAG,OAAO,GAC1C,UAAAD,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWE,SAAAA,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN,EACF,CAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockServer.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAY,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,OAAO,CAAC;AAGf,eAAO,MAAM,cAAc,EAuBV,EAAE,CAAC,cAAc,CAAC,CAAC;AAsBpC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAcxC,CAAC"}
1
+ {"version":3,"file":"CodeBlockServer.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAY,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,OAAO,CAAC;AAGf,eAAO,MAAM,cAAc,EA6BV,EAAE,CAAC,cAAc,CAAC,CAAC;AAsBpC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAcxC,CAAC"}
@@ -23,7 +23,14 @@ const CodeBlockShiki = async ({
23
23
  ]
24
24
  };
25
25
  const out = await codeToHtml(children, shikiOptions);
26
- return /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: out }, ...props });
26
+ return /* @__PURE__ */ jsx(
27
+ "div",
28
+ {
29
+ dangerouslySetInnerHTML: { __html: out },
30
+ ...props,
31
+ style: { backgroundColor: "transparent" }
32
+ }
33
+ );
27
34
  };
28
35
  const CodeDefault = ({
29
36
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockServer.mjs","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport { type HTMLAttributes, Suspense, type FC } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return <div dangerouslySetInnerHTML={{ __html: out }} {...props} />;\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <Suspense fallback={<CodeDefault {...props} />}>\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n </Suspense>\n);\n"],"names":[],"mappings":";;;;;AAiBO,MAAM,iBAAkB,OAAO;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,eAAiE;AAAA,IACrE;AAAA,IACA,OAAO,aAAa,gBAAgB;AAAA,IACpC,cAAc;AAAA,MACZ,wBAAwB;AAAA,MACxB,6BAA6B;AAAA,MAC7B,iCAAiC;AAAA,MACjC,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,IAAA;AAAA,EAEjC;AAEA,QAAM,MAAM,MAAM,WAAW,UAAU,YAAY;AAE5C,SAAA,oBAAC,SAAI,yBAAyB,EAAE,QAAQ,IAAI,GAAI,GAAG,OAAO;AACnE;AAEA,MAAM,cAAkC,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE,oBAAC,OAAI,EAAA,iBAAiB,YAAa,GAAG,OACpC,UAAA,oBAAC,OACC,EAAA,UAAA,oBAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/B,oBAAC,QAAK,EAAA,WAAU,qBACb,UAAA,QADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAWK,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,0BACG,UAAS,EAAA,8BAAW,aAAa,EAAA,GAAG,OAAO,GAC1C,UAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN,EACF,CAAA;"}
1
+ {"version":3,"file":"CodeBlockServer.mjs","sources":["../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerNotationDiff,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n transformerNotationErrorLevel,\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n} from '@shikijs/transformers';\nimport { type HTMLAttributes, Suspense, type FC } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki';\nimport { cn } from '../../utils/cn';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))}\n </code>\n </pre>\n </div>\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <Suspense fallback={<CodeDefault {...props} />}>\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n </Suspense>\n);\n"],"names":[],"mappings":";;;;;AAiBO,MAAM,iBAAkB,OAAO;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsB;AACpB,QAAM,eAAiE;AAAA,IACrE;AAAA,IACA,OAAO,aAAa,gBAAgB;AAAA,IACpC,cAAc;AAAA,MACZ,wBAAwB;AAAA,MACxB,6BAA6B;AAAA,MAC7B,iCAAiC;AAAA,MACjC,8BAA8B;AAAA,MAC9B,yBAAyB;AAAA,MACzB,6BAA6B;AAAA,IAAA;AAAA,EAEjC;AAEA,QAAM,MAAM,MAAM,WAAW,UAAU,YAAY;AAGjD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,yBAAyB,EAAE,QAAQ,IAAI;AAAA,MACtC,GAAG;AAAA,MACJ,OAAO,EAAE,iBAAiB,cAAc;AAAA,IAAA;AAAA,EAC1C;AAEJ;AAEA,MAAM,cAAkC,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE,oBAAC,OAAI,EAAA,iBAAiB,YAAa,GAAG,OACpC,UAAA,oBAAC,OACC,EAAA,UAAA,oBAAC,QACE,EAAA,UAAA,SAAS,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,UAC/B,oBAAC,QAAK,EAAA,WAAU,qBACb,UAAA,QADsC,KAEzC,CACD,EACH,CAAA,EACF,CAAA,GACF;AAWK,MAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,0BACG,UAAS,EAAA,8BAAW,aAAa,EAAA,GAAG,OAAO,GAC1C,UAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,GAAG,eAAe,SAAS;AAAA,IACtC,iBAAiB;AAAA,IACjB,SAAS,CAAC,MAAM,WAAW,EAAE,cAAc,eAAe,EAAE;AAAA,IAC3D,GAAG;AAAA,EAAA;AACN,EACF,CAAA;"}
@@ -11,7 +11,7 @@ const FileList = ({ filePaths, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(
11
11
  transparency: "none",
12
12
  ...props,
13
13
  children: [
14
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
14
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
15
15
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-red-500" }),
16
16
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-yellow-500" }),
17
17
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-green-500" })
@@ -1 +1 @@
1
- {"version":3,"file":"FileList.cjs","sources":["../../../src/components/IDE/FileList.tsx"],"sourcesContent":["import type { HTMLAttributes, FC } from 'react';\nimport { Container } from '../Container';\nimport { FileTree } from './FileTree';\n\nexport type FileListProps = {\n filePaths: string[];\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const FileList: FC<FileListProps> = ({ filePaths, ...props }) => (\n <Container\n className=\"flex size-full flex-col justify-start overflow-scroll shadow-lg\"\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start shadow-lg\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <FileTree filesPaths={filePaths} />\n </div>\n </div>\n </div>\n </Container>\n);\n"],"names":["jsxs","Container","jsx","FileTree"],"mappings":";;;;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAAA,2BAAA;AAAA,EAACC,2BAAA;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA,IAAC,SAAI,WAAU,sJACb,UAACF,2BAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACE,2BAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,qCACC,OAAI,EAAA,WAAU,mEACb,UAACA,2BAAA,IAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,2BAAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,2BAAAA,IAAAC,wBAAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;;"}
1
+ {"version":3,"file":"FileList.cjs","sources":["../../../src/components/IDE/FileList.tsx"],"sourcesContent":["import type { HTMLAttributes, FC } from 'react';\nimport { Container } from '../Container';\nimport { FileTree } from './FileTree';\n\nexport type FileListProps = {\n filePaths: string[];\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const FileList: FC<FileListProps> = ({ filePaths, ...props }) => (\n <Container\n className=\"flex size-full flex-col justify-start overflow-scroll shadow-lg\"\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start shadow-lg\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <FileTree filesPaths={filePaths} />\n </div>\n </div>\n </div>\n </Container>\n);\n"],"names":["jsxs","Container","jsx","FileTree"],"mappings":";;;;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAAA,2BAAA;AAAA,EAACC,2BAAA;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA,IAAC,SAAI,WAAU,+HACb,UAACF,2BAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACE,2BAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,qCACC,OAAI,EAAA,WAAU,mEACb,UAACA,2BAAA,IAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,2BAAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,2BAAAA,IAAAC,wBAAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;;"}
@@ -9,7 +9,7 @@ const FileList = ({ filePaths, ...props }) => /* @__PURE__ */ jsxs(
9
9
  transparency: "none",
10
10
  ...props,
11
11
  children: [
12
- /* @__PURE__ */ jsx("div", { className: "text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: /* @__PURE__ */ jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
12
+ /* @__PURE__ */ jsx("div", { className: "text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: /* @__PURE__ */ jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
13
13
  /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-red-500" }),
14
14
  /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-yellow-500" }),
15
15
  /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-green-500" })
@@ -1 +1 @@
1
- {"version":3,"file":"FileList.mjs","sources":["../../../src/components/IDE/FileList.tsx"],"sourcesContent":["import type { HTMLAttributes, FC } from 'react';\nimport { Container } from '../Container';\nimport { FileTree } from './FileTree';\n\nexport type FileListProps = {\n filePaths: string[];\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const FileList: FC<FileListProps> = ({ filePaths, ...props }) => (\n <Container\n className=\"flex size-full flex-col justify-start overflow-scroll shadow-lg\"\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start shadow-lg\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <FileTree filesPaths={filePaths} />\n </div>\n </div>\n </div>\n </Container>\n);\n"],"names":[],"mappings":";;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA,oBAAC,SAAI,WAAU,sJACb,UAAC,qBAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAAC,oBAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChD,oBAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnD,oBAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,0BACC,OAAI,EAAA,WAAU,mEACb,UAAC,oBAAA,OAAA,EAAI,WAAU,mCACb,UAAA,oBAAC,OAAI,EAAA,WAAU,kBACb,UAAC,oBAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;"}
1
+ {"version":3,"file":"FileList.mjs","sources":["../../../src/components/IDE/FileList.tsx"],"sourcesContent":["import type { HTMLAttributes, FC } from 'react';\nimport { Container } from '../Container';\nimport { FileTree } from './FileTree';\n\nexport type FileListProps = {\n filePaths: string[];\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const FileList: FC<FileListProps> = ({ filePaths, ...props }) => (\n <Container\n className=\"flex size-full flex-col justify-start overflow-scroll shadow-lg\"\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start shadow-lg\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <FileTree filesPaths={filePaths} />\n </div>\n </div>\n </div>\n </Container>\n);\n"],"names":[],"mappings":";;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA,oBAAC,SAAI,WAAU,+HACb,UAAC,qBAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAAC,oBAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChD,oBAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnD,oBAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,0BACC,OAAI,EAAA,WAAU,mEACb,UAAC,oBAAA,OAAA,EAAI,WAAU,mCACb,UAAA,oBAAC,OAAI,EAAA,WAAU,kBACb,UAAC,oBAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;"}
@@ -87,7 +87,7 @@ const FileTree = ({
87
87
  prePaths = []
88
88
  }) => {
89
89
  const fileTree = components_IDE_createFileTree.createFileTree(filesPaths);
90
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral dark:text-neutral-dark flex size-full flex-col items-start justify-start py-1", children: fileTree.map(({ path, subPath, isFile }) => /* @__PURE__ */ jsxRuntime.jsx(
90
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral flex size-full flex-col items-start justify-start py-1", children: fileTree.map(({ path, subPath, isFile }) => /* @__PURE__ */ jsxRuntime.jsx(
91
91
  FileItem,
92
92
  {
93
93
  isFile,
@@ -1 +1 @@
1
- {"version":3,"file":"FileTree.cjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\nimport { useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { MaxHeightSmoother } from '../MaxHeightSmoother';\nimport { createFileTree, type FilePath } from './createFileTree';\n\ntype FileTreeProps = {\n filesPaths: string[];\n activeFile?: string;\n onClickFile?: (filePath: string) => void;\n prePaths?: string[];\n};\n\nconst concatFilePath = (paths: string[]) => paths.join('/');\n\ntype FileItemProps = {\n filesPaths: string[];\n subPath?: FilePath[];\n path: string;\n onClickFile?: (title: string) => void;\n activeFile?: string;\n prePaths: string[];\n isFile: boolean;\n};\n\nconst FileItem: FC<FileItemProps> = ({\n filesPaths,\n path,\n subPath,\n onClickFile,\n activeFile,\n prePaths,\n isFile,\n}) => {\n const [subPathOpen, setSubPathOpen] = useState(true);\n\n const level = prePaths.length + 1;\n const currentPath = concatFilePath([\n ...prePaths.slice(level - 1, level),\n path,\n ]);\n const totalPath = concatFilePath([...prePaths, path]);\n\n const filteredFilePaths = filesPaths\n .map(\n (path) => path.replace(/^\\/?/, '') // This regex matches the first slash, if it exists, at the start of the string)\n )\n .filter((filePath) => filePath.startsWith(currentPath));\n\n const newPath = filteredFilePaths.map((path) =>\n path.replace(currentPath, '').replace(/^\\/?/, '')\n );\n\n const isActive = totalPath === activeFile;\n\n const indentation = new Array(level).fill(' ').join('');\n\n return (\n <>\n <button\n className={cn(\n 'flex w-full items-start justify-start whitespace-pre text-nowrap px-2 py-1 text-xs transition',\n isActive\n ? 'bg-neutral-200 dark:bg-neutral-700'\n : 'cursor-pointer hover:bg-neutral-300 dark:hover:bg-neutral-900'\n )}\n key={path}\n onClick={() => {\n if (isFile) {\n onClickFile?.(totalPath);\n } else {\n setSubPathOpen(!subPathOpen);\n }\n }}\n >\n <span className={cn('whitespace-pre', isFile && 'ml-2')}>\n {indentation}\n </span>\n\n {!isFile && (\n <ChevronRight\n className={cn(`transition`, subPathOpen && `rotate-90 transform`)}\n size={16}\n />\n )}\n {path}\n </button>\n {subPath && (\n <MaxHeightSmoother\n isHidden={!subPathOpen}\n className=\"overflow-x-hidden\"\n >\n <FileTree\n filesPaths={newPath}\n activeFile={activeFile}\n onClickFile={onClickFile}\n prePaths={[...prePaths, path]}\n />\n </MaxHeightSmoother>\n )}\n </>\n );\n};\n\nexport const FileTree: FC<FileTreeProps> = ({\n filesPaths,\n activeFile,\n onClickFile,\n prePaths = [],\n}) => {\n const fileTree = createFileTree(filesPaths);\n\n return (\n <div className=\"text-neutral dark:text-neutral-dark flex size-full flex-col items-start justify-start py-1\">\n {fileTree.map(({ path, subPath, isFile }) => (\n <FileItem\n key={path}\n isFile={isFile}\n subPath={subPath}\n path={path}\n onClickFile={onClickFile}\n activeFile={activeFile}\n prePaths={prePaths}\n filesPaths={filesPaths}\n />\n ))}\n </div>\n );\n};\n"],"names":["useState","path","jsxs","Fragment","cn","jsx","ChevronRight","MaxHeightSmoother","createFileTree"],"mappings":";;;;;;;;;AAeA,MAAM,iBAAiB,CAAC,UAAoB,MAAM,KAAK,GAAG;AAY1D,MAAM,WAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAIA,aAAAA,SAAS,IAAI;AAE7C,QAAA,QAAQ,SAAS,SAAS;AAChC,QAAM,cAAc,eAAe;AAAA,IACjC,GAAG,SAAS,MAAM,QAAQ,GAAG,KAAK;AAAA,IAClC;AAAA,EAAA,CACD;AACD,QAAM,YAAY,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC;AAEpD,QAAM,oBAAoB,WACvB;AAAA,IACC,CAACC,UAASA,MAAK,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAAA,EAElC,OAAO,CAAC,aAAa,SAAS,WAAW,WAAW,CAAC;AAExD,QAAM,UAAU,kBAAkB;AAAA,IAAI,CAACA,UACrCA,MAAK,QAAQ,aAAa,EAAE,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAClD;AAEA,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAD,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE,SAAA;AAAA,UACT;AAAA,UACA,WACI,uCACA;AAAA,QACN;AAAA,QAEA,SAAS,MAAM;AACb,cAAI,QAAQ;AACV,0BAAc,SAAS;AAAA,UAAA,OAClB;AACL,2BAAe,CAAC,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,QAEA,UAAA;AAAA,UAAAC,2BAAAA,IAAC,UAAK,WAAWD,YAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAC,2BAAA;AAAA,YAACC,YAAA;AAAA,YAAA;AAAA,cACC,WAAWF,SAAA,GAAG,cAAc,eAAe,qBAAqB;AAAA,cAChE,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UAED;AAAA,QAAA;AAAA,MAAA;AAAA,MAnBI;AAAA,IAoBP;AAAA,IACC,WACCC,2BAAA;AAAA,MAACE,mCAAA;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAF,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAC9B;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAA;AACb,MAAM;AACE,QAAA,WAAWG,6CAAe,UAAU;AAGxC,SAAAH,2BAAA,IAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAPK;AAAA,EASR,CAAA,GACH;AAEJ;;"}
1
+ {"version":3,"file":"FileTree.cjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\nimport { useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { MaxHeightSmoother } from '../MaxHeightSmoother';\nimport { createFileTree, type FilePath } from './createFileTree';\n\ntype FileTreeProps = {\n filesPaths: string[];\n activeFile?: string;\n onClickFile?: (filePath: string) => void;\n prePaths?: string[];\n};\n\nconst concatFilePath = (paths: string[]) => paths.join('/');\n\ntype FileItemProps = {\n filesPaths: string[];\n subPath?: FilePath[];\n path: string;\n onClickFile?: (title: string) => void;\n activeFile?: string;\n prePaths: string[];\n isFile: boolean;\n};\n\nconst FileItem: FC<FileItemProps> = ({\n filesPaths,\n path,\n subPath,\n onClickFile,\n activeFile,\n prePaths,\n isFile,\n}) => {\n const [subPathOpen, setSubPathOpen] = useState(true);\n\n const level = prePaths.length + 1;\n const currentPath = concatFilePath([\n ...prePaths.slice(level - 1, level),\n path,\n ]);\n const totalPath = concatFilePath([...prePaths, path]);\n\n const filteredFilePaths = filesPaths\n .map(\n (path) => path.replace(/^\\/?/, '') // This regex matches the first slash, if it exists, at the start of the string)\n )\n .filter((filePath) => filePath.startsWith(currentPath));\n\n const newPath = filteredFilePaths.map((path) =>\n path.replace(currentPath, '').replace(/^\\/?/, '')\n );\n\n const isActive = totalPath === activeFile;\n\n const indentation = new Array(level).fill(' ').join('');\n\n return (\n <>\n <button\n className={cn(\n 'flex w-full items-start justify-start whitespace-pre text-nowrap px-2 py-1 text-xs transition',\n isActive\n ? 'bg-neutral-200 dark:bg-neutral-700'\n : 'cursor-pointer hover:bg-neutral-300 dark:hover:bg-neutral-900'\n )}\n key={path}\n onClick={() => {\n if (isFile) {\n onClickFile?.(totalPath);\n } else {\n setSubPathOpen(!subPathOpen);\n }\n }}\n >\n <span className={cn('whitespace-pre', isFile && 'ml-2')}>\n {indentation}\n </span>\n\n {!isFile && (\n <ChevronRight\n className={cn(`transition`, subPathOpen && `rotate-90 transform`)}\n size={16}\n />\n )}\n {path}\n </button>\n {subPath && (\n <MaxHeightSmoother\n isHidden={!subPathOpen}\n className=\"overflow-x-hidden\"\n >\n <FileTree\n filesPaths={newPath}\n activeFile={activeFile}\n onClickFile={onClickFile}\n prePaths={[...prePaths, path]}\n />\n </MaxHeightSmoother>\n )}\n </>\n );\n};\n\nexport const FileTree: FC<FileTreeProps> = ({\n filesPaths,\n activeFile,\n onClickFile,\n prePaths = [],\n}) => {\n const fileTree = createFileTree(filesPaths);\n\n return (\n <div className=\"text-neutral flex size-full flex-col items-start justify-start py-1\">\n {fileTree.map(({ path, subPath, isFile }) => (\n <FileItem\n key={path}\n isFile={isFile}\n subPath={subPath}\n path={path}\n onClickFile={onClickFile}\n activeFile={activeFile}\n prePaths={prePaths}\n filesPaths={filesPaths}\n />\n ))}\n </div>\n );\n};\n"],"names":["useState","path","jsxs","Fragment","cn","jsx","ChevronRight","MaxHeightSmoother","createFileTree"],"mappings":";;;;;;;;;AAeA,MAAM,iBAAiB,CAAC,UAAoB,MAAM,KAAK,GAAG;AAY1D,MAAM,WAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAIA,aAAAA,SAAS,IAAI;AAE7C,QAAA,QAAQ,SAAS,SAAS;AAChC,QAAM,cAAc,eAAe;AAAA,IACjC,GAAG,SAAS,MAAM,QAAQ,GAAG,KAAK;AAAA,IAClC;AAAA,EAAA,CACD;AACD,QAAM,YAAY,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC;AAEpD,QAAM,oBAAoB,WACvB;AAAA,IACC,CAACC,UAASA,MAAK,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAAA,EAElC,OAAO,CAAC,aAAa,SAAS,WAAW,WAAW,CAAC;AAExD,QAAM,UAAU,kBAAkB;AAAA,IAAI,CAACA,UACrCA,MAAK,QAAQ,aAAa,EAAE,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAClD;AAEA,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAD,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE,SAAA;AAAA,UACT;AAAA,UACA,WACI,uCACA;AAAA,QACN;AAAA,QAEA,SAAS,MAAM;AACb,cAAI,QAAQ;AACV,0BAAc,SAAS;AAAA,UAAA,OAClB;AACL,2BAAe,CAAC,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,QAEA,UAAA;AAAA,UAAAC,2BAAAA,IAAC,UAAK,WAAWD,YAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAC,2BAAA;AAAA,YAACC,YAAA;AAAA,YAAA;AAAA,cACC,WAAWF,SAAA,GAAG,cAAc,eAAe,qBAAqB;AAAA,cAChE,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UAED;AAAA,QAAA;AAAA,MAAA;AAAA,MAnBI;AAAA,IAoBP;AAAA,IACC,WACCC,2BAAA;AAAA,MAACE,mCAAA;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAF,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAC9B;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAA;AACb,MAAM;AACE,QAAA,WAAWG,6CAAe,UAAU;AAGxC,SAAAH,2BAAA,IAAC,OAAI,EAAA,WAAU,uEACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAPK;AAAA,EASR,CAAA,GACH;AAEJ;;"}
@@ -85,7 +85,7 @@ const FileTree = ({
85
85
  prePaths = []
86
86
  }) => {
87
87
  const fileTree = createFileTree(filesPaths);
88
- return /* @__PURE__ */ jsx("div", { className: "text-neutral dark:text-neutral-dark flex size-full flex-col items-start justify-start py-1", children: fileTree.map(({ path, subPath, isFile }) => /* @__PURE__ */ jsx(
88
+ return /* @__PURE__ */ jsx("div", { className: "text-neutral flex size-full flex-col items-start justify-start py-1", children: fileTree.map(({ path, subPath, isFile }) => /* @__PURE__ */ jsx(
89
89
  FileItem,
90
90
  {
91
91
  isFile,
@@ -1 +1 @@
1
- {"version":3,"file":"FileTree.mjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\nimport { useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { MaxHeightSmoother } from '../MaxHeightSmoother';\nimport { createFileTree, type FilePath } from './createFileTree';\n\ntype FileTreeProps = {\n filesPaths: string[];\n activeFile?: string;\n onClickFile?: (filePath: string) => void;\n prePaths?: string[];\n};\n\nconst concatFilePath = (paths: string[]) => paths.join('/');\n\ntype FileItemProps = {\n filesPaths: string[];\n subPath?: FilePath[];\n path: string;\n onClickFile?: (title: string) => void;\n activeFile?: string;\n prePaths: string[];\n isFile: boolean;\n};\n\nconst FileItem: FC<FileItemProps> = ({\n filesPaths,\n path,\n subPath,\n onClickFile,\n activeFile,\n prePaths,\n isFile,\n}) => {\n const [subPathOpen, setSubPathOpen] = useState(true);\n\n const level = prePaths.length + 1;\n const currentPath = concatFilePath([\n ...prePaths.slice(level - 1, level),\n path,\n ]);\n const totalPath = concatFilePath([...prePaths, path]);\n\n const filteredFilePaths = filesPaths\n .map(\n (path) => path.replace(/^\\/?/, '') // This regex matches the first slash, if it exists, at the start of the string)\n )\n .filter((filePath) => filePath.startsWith(currentPath));\n\n const newPath = filteredFilePaths.map((path) =>\n path.replace(currentPath, '').replace(/^\\/?/, '')\n );\n\n const isActive = totalPath === activeFile;\n\n const indentation = new Array(level).fill(' ').join('');\n\n return (\n <>\n <button\n className={cn(\n 'flex w-full items-start justify-start whitespace-pre text-nowrap px-2 py-1 text-xs transition',\n isActive\n ? 'bg-neutral-200 dark:bg-neutral-700'\n : 'cursor-pointer hover:bg-neutral-300 dark:hover:bg-neutral-900'\n )}\n key={path}\n onClick={() => {\n if (isFile) {\n onClickFile?.(totalPath);\n } else {\n setSubPathOpen(!subPathOpen);\n }\n }}\n >\n <span className={cn('whitespace-pre', isFile && 'ml-2')}>\n {indentation}\n </span>\n\n {!isFile && (\n <ChevronRight\n className={cn(`transition`, subPathOpen && `rotate-90 transform`)}\n size={16}\n />\n )}\n {path}\n </button>\n {subPath && (\n <MaxHeightSmoother\n isHidden={!subPathOpen}\n className=\"overflow-x-hidden\"\n >\n <FileTree\n filesPaths={newPath}\n activeFile={activeFile}\n onClickFile={onClickFile}\n prePaths={[...prePaths, path]}\n />\n </MaxHeightSmoother>\n )}\n </>\n );\n};\n\nexport const FileTree: FC<FileTreeProps> = ({\n filesPaths,\n activeFile,\n onClickFile,\n prePaths = [],\n}) => {\n const fileTree = createFileTree(filesPaths);\n\n return (\n <div className=\"text-neutral dark:text-neutral-dark flex size-full flex-col items-start justify-start py-1\">\n {fileTree.map(({ path, subPath, isFile }) => (\n <FileItem\n key={path}\n isFile={isFile}\n subPath={subPath}\n path={path}\n onClickFile={onClickFile}\n activeFile={activeFile}\n prePaths={prePaths}\n filesPaths={filesPaths}\n />\n ))}\n </div>\n );\n};\n"],"names":["path"],"mappings":";;;;;;;AAeA,MAAM,iBAAiB,CAAC,UAAoB,MAAM,KAAK,GAAG;AAY1D,MAAM,WAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AAE7C,QAAA,QAAQ,SAAS,SAAS;AAChC,QAAM,cAAc,eAAe;AAAA,IACjC,GAAG,SAAS,MAAM,QAAQ,GAAG,KAAK;AAAA,IAClC;AAAA,EAAA,CACD;AACD,QAAM,YAAY,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC;AAEpD,QAAM,oBAAoB,WACvB;AAAA,IACC,CAACA,UAASA,MAAK,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAAA,EAElC,OAAO,CAAC,aAAa,SAAS,WAAW,WAAW,CAAC;AAExD,QAAM,UAAU,kBAAkB;AAAA,IAAI,CAACA,UACrCA,MAAK,QAAQ,aAAa,EAAE,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAClD;AAEA,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WACI,uCACA;AAAA,QACN;AAAA,QAEA,SAAS,MAAM;AACb,cAAI,QAAQ;AACV,0BAAc,SAAS;AAAA,UAAA,OAClB;AACL,2BAAe,CAAC,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,QAEA,UAAA;AAAA,UAAA,oBAAC,UAAK,WAAW,GAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG,cAAc,eAAe,qBAAqB;AAAA,cAChE,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UAED;AAAA,QAAA;AAAA,MAAA;AAAA,MAnBI;AAAA,IAoBP;AAAA,IACC,WACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAC9B;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAA;AACb,MAAM;AACE,QAAA,WAAW,eAAe,UAAU;AAGxC,SAAA,oBAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAPK;AAAA,EASR,CAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"FileTree.mjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronRight } from 'lucide-react';\nimport { useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { MaxHeightSmoother } from '../MaxHeightSmoother';\nimport { createFileTree, type FilePath } from './createFileTree';\n\ntype FileTreeProps = {\n filesPaths: string[];\n activeFile?: string;\n onClickFile?: (filePath: string) => void;\n prePaths?: string[];\n};\n\nconst concatFilePath = (paths: string[]) => paths.join('/');\n\ntype FileItemProps = {\n filesPaths: string[];\n subPath?: FilePath[];\n path: string;\n onClickFile?: (title: string) => void;\n activeFile?: string;\n prePaths: string[];\n isFile: boolean;\n};\n\nconst FileItem: FC<FileItemProps> = ({\n filesPaths,\n path,\n subPath,\n onClickFile,\n activeFile,\n prePaths,\n isFile,\n}) => {\n const [subPathOpen, setSubPathOpen] = useState(true);\n\n const level = prePaths.length + 1;\n const currentPath = concatFilePath([\n ...prePaths.slice(level - 1, level),\n path,\n ]);\n const totalPath = concatFilePath([...prePaths, path]);\n\n const filteredFilePaths = filesPaths\n .map(\n (path) => path.replace(/^\\/?/, '') // This regex matches the first slash, if it exists, at the start of the string)\n )\n .filter((filePath) => filePath.startsWith(currentPath));\n\n const newPath = filteredFilePaths.map((path) =>\n path.replace(currentPath, '').replace(/^\\/?/, '')\n );\n\n const isActive = totalPath === activeFile;\n\n const indentation = new Array(level).fill(' ').join('');\n\n return (\n <>\n <button\n className={cn(\n 'flex w-full items-start justify-start whitespace-pre text-nowrap px-2 py-1 text-xs transition',\n isActive\n ? 'bg-neutral-200 dark:bg-neutral-700'\n : 'cursor-pointer hover:bg-neutral-300 dark:hover:bg-neutral-900'\n )}\n key={path}\n onClick={() => {\n if (isFile) {\n onClickFile?.(totalPath);\n } else {\n setSubPathOpen(!subPathOpen);\n }\n }}\n >\n <span className={cn('whitespace-pre', isFile && 'ml-2')}>\n {indentation}\n </span>\n\n {!isFile && (\n <ChevronRight\n className={cn(`transition`, subPathOpen && `rotate-90 transform`)}\n size={16}\n />\n )}\n {path}\n </button>\n {subPath && (\n <MaxHeightSmoother\n isHidden={!subPathOpen}\n className=\"overflow-x-hidden\"\n >\n <FileTree\n filesPaths={newPath}\n activeFile={activeFile}\n onClickFile={onClickFile}\n prePaths={[...prePaths, path]}\n />\n </MaxHeightSmoother>\n )}\n </>\n );\n};\n\nexport const FileTree: FC<FileTreeProps> = ({\n filesPaths,\n activeFile,\n onClickFile,\n prePaths = [],\n}) => {\n const fileTree = createFileTree(filesPaths);\n\n return (\n <div className=\"text-neutral flex size-full flex-col items-start justify-start py-1\">\n {fileTree.map(({ path, subPath, isFile }) => (\n <FileItem\n key={path}\n isFile={isFile}\n subPath={subPath}\n path={path}\n onClickFile={onClickFile}\n activeFile={activeFile}\n prePaths={prePaths}\n filesPaths={filesPaths}\n />\n ))}\n </div>\n );\n};\n"],"names":["path"],"mappings":";;;;;;;AAeA,MAAM,iBAAiB,CAAC,UAAoB,MAAM,KAAK,GAAG;AAY1D,MAAM,WAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AAE7C,QAAA,QAAQ,SAAS,SAAS;AAChC,QAAM,cAAc,eAAe;AAAA,IACjC,GAAG,SAAS,MAAM,QAAQ,GAAG,KAAK;AAAA,IAClC;AAAA,EAAA,CACD;AACD,QAAM,YAAY,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC;AAEpD,QAAM,oBAAoB,WACvB;AAAA,IACC,CAACA,UAASA,MAAK,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAAA,EAElC,OAAO,CAAC,aAAa,SAAS,WAAW,WAAW,CAAC;AAExD,QAAM,UAAU,kBAAkB;AAAA,IAAI,CAACA,UACrCA,MAAK,QAAQ,aAAa,EAAE,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAClD;AAEA,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WACI,uCACA;AAAA,QACN;AAAA,QAEA,SAAS,MAAM;AACb,cAAI,QAAQ;AACV,0BAAc,SAAS;AAAA,UAAA,OAClB;AACL,2BAAe,CAAC,WAAW;AAAA,UAAA;AAAA,QAE/B;AAAA,QAEA,UAAA;AAAA,UAAA,oBAAC,UAAK,WAAW,GAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG,cAAc,eAAe,qBAAqB;AAAA,cAChE,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UAED;AAAA,QAAA;AAAA,MAAA;AAAA,MAnBI;AAAA,IAoBP;AAAA,IACC,WACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAC9B;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAA;AACb,MAAM;AACE,QAAA,WAAW,eAAe,UAAU;AAGxC,SAAA,oBAAC,OAAI,EAAA,WAAU,uEACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAPK;AAAA,EASR,CAAA,GACH;AAEJ;"}
@@ -12,12 +12,16 @@ const IDE = ({
12
12
  pages: initialPages,
13
13
  isDarkMode,
14
14
  className,
15
+ activeTab: defaultActiveTab,
15
16
  ...props
16
17
  }) => {
17
18
  const [pages, setPages] = ReactExports.useState(initialPages);
18
19
  const tabs = pages.filter(({ isOpen }) => isOpen);
19
20
  const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);
20
- const [activeTab, setActiveTab] = ReactExports.useState(firstTabIndex);
21
+ const [activeTab, setActiveTab] = ReactExports.useState(defaultActiveTab ?? firstTabIndex);
22
+ ReactExports.useEffect(() => {
23
+ setActiveTab(defaultActiveTab ?? firstTabIndex);
24
+ }, [initialPages, defaultActiveTab]);
21
25
  const { content, path } = pages[activeTab];
22
26
  const filePaths = initialPages.map(({ path: title }) => title);
23
27
  const handleClickFile = (title) => {
@@ -46,7 +50,7 @@ const IDE = ({
46
50
  transparency: "none",
47
51
  ...props,
48
52
  children: [
49
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: [
53
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: [
50
54
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
51
55
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-red-500" }),
52
56
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-yellow-500" }),
@@ -61,7 +65,7 @@ const IDE = ({
61
65
  {
62
66
  className: utils_cn.cn(
63
67
  "flex h-8 min-w-20 items-center justify-start px-3 py-1 transition",
64
- isActive ? "bg-card dark:bg-card-dark" : "dark:hover:bg-card-dark cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950"
68
+ isActive ? "bg-card" : "cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950"
65
69
  ),
66
70
  onClick: () => setActiveTab(index),
67
71
  children: title
@@ -1 +1 @@
1
- {"version":3,"file":"IDE.cjs","sources":["../../../src/components/IDE/IDE.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { WithResizer } from '../WithResizer';\nimport { FileTree } from './FileTree';\nimport { MarkdownRenderer } from './MarkDownRender';\n\nexport type IDEProps = {\n pages: {\n path: string;\n content: string;\n isOpen?: boolean;\n }[];\n isDarkMode?: boolean;\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const IDE: FC<IDEProps> = ({\n pages: initialPages,\n isDarkMode,\n className,\n ...props\n}) => {\n const [pages, setPages] = useState(initialPages);\n const tabs = pages.filter(({ isOpen }) => isOpen);\n\n const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);\n const [activeTab, setActiveTab] = useState(firstTabIndex);\n\n const { content, path } = pages[activeTab];\n const filePaths = initialPages.map(({ path: title }) => title);\n\n const handleClickFile = (title: string) => {\n const page = pages.find(({ path: tabTitle }) => tabTitle === title);\n if (!page) return;\n\n const newPages = pages.map((page) => {\n if (page.path === title) {\n return { ...page, isOpen: true };\n }\n return page;\n });\n\n setPages(newPages);\n\n const newPageIndex = newPages.findIndex(\n ({ path: tabTitle }) => tabTitle === title\n );\n\n setActiveTab(newPageIndex);\n };\n\n return (\n <Container\n className={cn(\n 'flex size-full flex-col justify-start overflow-hidden shadow-lg',\n className\n )}\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n {tabs.map(({ path }, index) => {\n const fullPath = path.split('/');\n const title = fullPath[fullPath.length - 1];\n const isActive = index === activeTab;\n\n return (\n <button\n className={cn(\n 'flex h-8 min-w-20 items-center justify-start px-3 py-1 transition',\n isActive\n ? 'bg-card dark:bg-card-dark'\n : 'dark:hover:bg-card-dark cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950'\n )}\n key={title}\n onClick={() => setActiveTab(index)}\n >\n {title}\n </button>\n );\n })}\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <WithResizer initialWidth={150}>\n <FileTree\n filesPaths={filePaths}\n activeFile={path}\n onClickFile={handleClickFile}\n />\n </WithResizer>\n\n <div className=\"size-full flex-1 overflow-auto pt-2 text-xs\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["useState","page","jsxs","Container","cn","jsx","path","WithResizer","FileTree","MarkdownRenderer"],"mappings":";;;;;;;;;;AAkBO,MAAM,MAAoB,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAIA,aAAAA,SAAS,YAAY;AAC/C,QAAM,OAAO,MAAM,OAAO,CAAC,EAAE,aAAa,MAAM;AAEhD,QAAM,gBAAgB,KAAK,UAAU,CAAC,EAAE,aAAa,MAAM;AAC3D,QAAM,CAAC,WAAW,YAAY,IAAIA,aAAAA,SAAS,aAAa;AAExD,QAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AACnC,QAAA,YAAY,aAAa,IAAI,CAAC,EAAE,MAAM,YAAY,KAAK;AAEvD,QAAA,kBAAkB,CAAC,UAAkB;AACnC,UAAA,OAAO,MAAM,KAAK,CAAC,EAAE,MAAM,SAAA,MAAe,aAAa,KAAK;AAClE,QAAI,CAAC,KAAM;AAEX,UAAM,WAAW,MAAM,IAAI,CAACC,UAAS;AAC/BA,UAAAA,MAAK,SAAS,OAAO;AACvB,eAAO,EAAE,GAAGA,OAAM,QAAQ,KAAK;AAAA,MAAA;AAE1BA,aAAAA;AAAAA,IAAA,CACR;AAED,aAAS,QAAQ;AAEjB,UAAM,eAAe,SAAS;AAAA,MAC5B,CAAC,EAAE,MAAM,eAAe,aAAa;AAAA,IACvC;AAEA,iBAAa,YAAY;AAAA,EAC3B;AAGE,SAAAC,2BAAA;AAAA,IAACC,2BAAA;AAAA,IAAA;AAAA,MACC,WAAWC,SAAA;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAY;AAAA,MACZ,cAAa;AAAA,MACZ,GAAG;AAAA,MAEJ,UAAA;AAAA,QAACF,2BAAAA,KAAA,OAAA,EAAI,WAAU,sJACb,UAAA;AAAA,UAACA,2BAAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAACG,2BAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACAA,2BAAAA,IAAC,OAAI,EAAA,WAAU,kCACZ,UAAA,KAAK,IAAI,CAAC,EAAE,MAAAC,MAAK,GAAG,UAAU;AACvB,kBAAA,WAAWA,MAAK,MAAM,GAAG;AAC/B,kBAAM,QAAQ,SAAS,SAAS,SAAS,CAAC;AAC1C,kBAAM,WAAW,UAAU;AAGzB,mBAAAD,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWD,SAAA;AAAA,kBACT;AAAA,kBACA,WACI,8BACA;AAAA,gBACN;AAAA,gBAEA,SAAS,MAAM,aAAa,KAAK;AAAA,gBAEhC,UAAA;AAAA,cAAA;AAAA,cAHI;AAAA,YAIP;AAAA,UAAA,CAEH,EACH,CAAA;AAAA,QAAA,GACF;AAAA,QACAC,2BAAA,IAAC,OAAI,EAAA,WAAU,yDACb,UAAAA,2BAAA,IAAC,OAAI,EAAA,WAAU,mCACb,UAAAH,gCAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAACG,2BAAAA,IAAAE,6BAAAA,aAAA,EAAY,cAAc,KACzB,UAAAF,2BAAA;AAAA,YAACG,wBAAA;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEAH,2BAAAA,IAAC,SAAI,WAAU,+CACb,yCAACI,8BAAAA,kBAAiB,EAAA,YACf,kBACH,CAAA,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"IDE.cjs","sources":["../../../src/components/IDE/IDE.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useState, type FC, useEffect } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { WithResizer } from '../WithResizer';\nimport { FileTree } from './FileTree';\nimport { MarkdownRenderer } from './MarkDownRender';\n\nexport type IDEProps = {\n pages: {\n path: string;\n content: string;\n isOpen?: boolean;\n }[];\n isDarkMode?: boolean;\n activeTab?: number;\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const IDE: FC<IDEProps> = ({\n pages: initialPages,\n isDarkMode,\n className,\n activeTab: defaultActiveTab,\n ...props\n}) => {\n const [pages, setPages] = useState(initialPages);\n const tabs = pages.filter(({ isOpen }) => isOpen);\n\n const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);\n const [activeTab, setActiveTab] = useState(defaultActiveTab ?? firstTabIndex);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab ?? firstTabIndex);\n }, [initialPages, defaultActiveTab]);\n\n const { content, path } = pages[activeTab];\n const filePaths = initialPages.map(({ path: title }) => title);\n\n const handleClickFile = (title: string) => {\n const page = pages.find(({ path: tabTitle }) => tabTitle === title);\n if (!page) return;\n\n const newPages = pages.map((page) => {\n if (page.path === title) {\n return { ...page, isOpen: true };\n }\n return page;\n });\n\n setPages(newPages);\n\n const newPageIndex = newPages.findIndex(\n ({ path: tabTitle }) => tabTitle === title\n );\n\n setActiveTab(newPageIndex);\n };\n\n return (\n <Container\n className={cn(\n 'flex size-full flex-col justify-start overflow-hidden shadow-lg',\n className\n )}\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n {tabs.map(({ path }, index) => {\n const fullPath = path.split('/');\n const title = fullPath[fullPath.length - 1];\n const isActive = index === activeTab;\n\n return (\n <button\n className={cn(\n 'flex h-8 min-w-20 items-center justify-start px-3 py-1 transition',\n isActive\n ? 'bg-card'\n : 'cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950'\n )}\n key={title}\n onClick={() => setActiveTab(index)}\n >\n {title}\n </button>\n );\n })}\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <WithResizer initialWidth={150}>\n <FileTree\n filesPaths={filePaths}\n activeFile={path}\n onClickFile={handleClickFile}\n />\n </WithResizer>\n\n <div className=\"size-full flex-1 overflow-auto pt-2 text-xs\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["useState","useEffect","page","jsxs","Container","cn","jsx","path","WithResizer","FileTree","MarkdownRenderer"],"mappings":";;;;;;;;;;AAmBO,MAAM,MAAoB,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAIA,aAAAA,SAAS,YAAY;AAC/C,QAAM,OAAO,MAAM,OAAO,CAAC,EAAE,aAAa,MAAM;AAEhD,QAAM,gBAAgB,KAAK,UAAU,CAAC,EAAE,aAAa,MAAM;AAC3D,QAAM,CAAC,WAAW,YAAY,IAAIA,aAAAA,SAAS,oBAAoB,aAAa;AAE5EC,eAAAA,UAAU,MAAM;AACd,iBAAa,oBAAoB,aAAa;AAAA,EAAA,GAC7C,CAAC,cAAc,gBAAgB,CAAC;AAEnC,QAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AACnC,QAAA,YAAY,aAAa,IAAI,CAAC,EAAE,MAAM,YAAY,KAAK;AAEvD,QAAA,kBAAkB,CAAC,UAAkB;AACnC,UAAA,OAAO,MAAM,KAAK,CAAC,EAAE,MAAM,SAAA,MAAe,aAAa,KAAK;AAClE,QAAI,CAAC,KAAM;AAEX,UAAM,WAAW,MAAM,IAAI,CAACC,UAAS;AAC/BA,UAAAA,MAAK,SAAS,OAAO;AACvB,eAAO,EAAE,GAAGA,OAAM,QAAQ,KAAK;AAAA,MAAA;AAE1BA,aAAAA;AAAAA,IAAA,CACR;AAED,aAAS,QAAQ;AAEjB,UAAM,eAAe,SAAS;AAAA,MAC5B,CAAC,EAAE,MAAM,eAAe,aAAa;AAAA,IACvC;AAEA,iBAAa,YAAY;AAAA,EAC3B;AAGE,SAAAC,2BAAA;AAAA,IAACC,2BAAA;AAAA,IAAA;AAAA,MACC,WAAWC,SAAA;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAY;AAAA,MACZ,cAAa;AAAA,MACZ,GAAG;AAAA,MAEJ,UAAA;AAAA,QAACF,2BAAAA,KAAA,OAAA,EAAI,WAAU,+HACb,UAAA;AAAA,UAACA,2BAAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAACG,2BAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnDA,2BAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACAA,2BAAAA,IAAC,OAAI,EAAA,WAAU,kCACZ,UAAA,KAAK,IAAI,CAAC,EAAE,MAAAC,MAAK,GAAG,UAAU;AACvB,kBAAA,WAAWA,MAAK,MAAM,GAAG;AAC/B,kBAAM,QAAQ,SAAS,SAAS,SAAS,CAAC;AAC1C,kBAAM,WAAW,UAAU;AAGzB,mBAAAD,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWD,SAAA;AAAA,kBACT;AAAA,kBACA,WACI,YACA;AAAA,gBACN;AAAA,gBAEA,SAAS,MAAM,aAAa,KAAK;AAAA,gBAEhC,UAAA;AAAA,cAAA;AAAA,cAHI;AAAA,YAIP;AAAA,UAAA,CAEH,EACH,CAAA;AAAA,QAAA,GACF;AAAA,QACAC,2BAAA,IAAC,OAAI,EAAA,WAAU,yDACb,UAAAA,2BAAA,IAAC,OAAI,EAAA,WAAU,mCACb,UAAAH,gCAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAACG,2BAAAA,IAAAE,6BAAAA,aAAA,EAAY,cAAc,KACzB,UAAAF,2BAAA;AAAA,YAACG,wBAAA;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEAH,2BAAAA,IAAC,SAAI,WAAU,+CACb,yCAACI,8BAAAA,kBAAiB,EAAA,YACf,kBACH,CAAA,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
@@ -6,6 +6,7 @@ export type IDEProps = {
6
6
  isOpen?: boolean;
7
7
  }[];
8
8
  isDarkMode?: boolean;
9
+ activeTab?: number;
9
10
  } & HTMLAttributes<HTMLDivElement>;
10
11
  export declare const IDE: FC<IDEProps>;
11
12
  //# sourceMappingURL=IDE.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IDE.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/IDE.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAO/D,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,eAAO,MAAM,GAAG,EAAE,EAAE,CAAC,QAAQ,CA+F5B,CAAC"}
1
+ {"version":3,"file":"IDE.d.ts","sourceRoot":"","sources":["../../../src/components/IDE/IDE.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAY,KAAK,EAAE,EAAa,MAAM,OAAO,CAAC;AAO1E,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,eAAO,MAAM,GAAG,EAAE,EAAE,CAAC,QAAQ,CAoG5B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
- import { useState } from "react";
3
+ import { useState, useEffect } from "react";
4
4
  import { cn } from "../../utils/cn.mjs";
5
5
  import { Container } from "../Container/index.mjs";
6
6
  import { WithResizer } from "../WithResizer/index.mjs";
@@ -10,12 +10,16 @@ const IDE = ({
10
10
  pages: initialPages,
11
11
  isDarkMode,
12
12
  className,
13
+ activeTab: defaultActiveTab,
13
14
  ...props
14
15
  }) => {
15
16
  const [pages, setPages] = useState(initialPages);
16
17
  const tabs = pages.filter(({ isOpen }) => isOpen);
17
18
  const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);
18
- const [activeTab, setActiveTab] = useState(firstTabIndex);
19
+ const [activeTab, setActiveTab] = useState(defaultActiveTab ?? firstTabIndex);
20
+ useEffect(() => {
21
+ setActiveTab(defaultActiveTab ?? firstTabIndex);
22
+ }, [initialPages, defaultActiveTab]);
19
23
  const { content, path } = pages[activeTab];
20
24
  const filePaths = initialPages.map(({ path: title }) => title);
21
25
  const handleClickFile = (title) => {
@@ -44,7 +48,7 @@ const IDE = ({
44
48
  transparency: "none",
45
49
  ...props,
46
50
  children: [
47
- /* @__PURE__ */ jsxs("div", { className: "text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: [
51
+ /* @__PURE__ */ jsxs("div", { className: "text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950", children: [
48
52
  /* @__PURE__ */ jsxs("div", { className: "mx-2 flex items-center justify-start gap-2 p-1", children: [
49
53
  /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-red-500" }),
50
54
  /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-yellow-500" }),
@@ -59,7 +63,7 @@ const IDE = ({
59
63
  {
60
64
  className: cn(
61
65
  "flex h-8 min-w-20 items-center justify-start px-3 py-1 transition",
62
- isActive ? "bg-card dark:bg-card-dark" : "dark:hover:bg-card-dark cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950"
66
+ isActive ? "bg-card" : "cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950"
63
67
  ),
64
68
  onClick: () => setActiveTab(index),
65
69
  children: title
@@ -1 +1 @@
1
- {"version":3,"file":"IDE.mjs","sources":["../../../src/components/IDE/IDE.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useState, type FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { WithResizer } from '../WithResizer';\nimport { FileTree } from './FileTree';\nimport { MarkdownRenderer } from './MarkDownRender';\n\nexport type IDEProps = {\n pages: {\n path: string;\n content: string;\n isOpen?: boolean;\n }[];\n isDarkMode?: boolean;\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const IDE: FC<IDEProps> = ({\n pages: initialPages,\n isDarkMode,\n className,\n ...props\n}) => {\n const [pages, setPages] = useState(initialPages);\n const tabs = pages.filter(({ isOpen }) => isOpen);\n\n const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);\n const [activeTab, setActiveTab] = useState(firstTabIndex);\n\n const { content, path } = pages[activeTab];\n const filePaths = initialPages.map(({ path: title }) => title);\n\n const handleClickFile = (title: string) => {\n const page = pages.find(({ path: tabTitle }) => tabTitle === title);\n if (!page) return;\n\n const newPages = pages.map((page) => {\n if (page.path === title) {\n return { ...page, isOpen: true };\n }\n return page;\n });\n\n setPages(newPages);\n\n const newPageIndex = newPages.findIndex(\n ({ path: tabTitle }) => tabTitle === title\n );\n\n setActiveTab(newPageIndex);\n };\n\n return (\n <Container\n className={cn(\n 'flex size-full flex-col justify-start overflow-hidden shadow-lg',\n className\n )}\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral dark:text-neutral-dark flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n {tabs.map(({ path }, index) => {\n const fullPath = path.split('/');\n const title = fullPath[fullPath.length - 1];\n const isActive = index === activeTab;\n\n return (\n <button\n className={cn(\n 'flex h-8 min-w-20 items-center justify-start px-3 py-1 transition',\n isActive\n ? 'bg-card dark:bg-card-dark'\n : 'dark:hover:bg-card-dark cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950'\n )}\n key={title}\n onClick={() => setActiveTab(index)}\n >\n {title}\n </button>\n );\n })}\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <WithResizer initialWidth={150}>\n <FileTree\n filesPaths={filePaths}\n activeFile={path}\n onClickFile={handleClickFile}\n />\n </WithResizer>\n\n <div className=\"size-full flex-1 overflow-auto pt-2 text-xs\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["page","path"],"mappings":";;;;;;;;AAkBO,MAAM,MAAoB,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,YAAY;AAC/C,QAAM,OAAO,MAAM,OAAO,CAAC,EAAE,aAAa,MAAM;AAEhD,QAAM,gBAAgB,KAAK,UAAU,CAAC,EAAE,aAAa,MAAM;AAC3D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,aAAa;AAExD,QAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AACnC,QAAA,YAAY,aAAa,IAAI,CAAC,EAAE,MAAM,YAAY,KAAK;AAEvD,QAAA,kBAAkB,CAAC,UAAkB;AACnC,UAAA,OAAO,MAAM,KAAK,CAAC,EAAE,MAAM,SAAA,MAAe,aAAa,KAAK;AAClE,QAAI,CAAC,KAAM;AAEX,UAAM,WAAW,MAAM,IAAI,CAACA,UAAS;AAC/BA,UAAAA,MAAK,SAAS,OAAO;AACvB,eAAO,EAAE,GAAGA,OAAM,QAAQ,KAAK;AAAA,MAAA;AAE1BA,aAAAA;AAAAA,IAAA,CACR;AAED,aAAS,QAAQ;AAEjB,UAAM,eAAe,SAAS;AAAA,MAC5B,CAAC,EAAE,MAAM,eAAe,aAAa;AAAA,IACvC;AAEA,iBAAa,YAAY;AAAA,EAC3B;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAY;AAAA,MACZ,cAAa;AAAA,MACZ,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAU,sJACb,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAAC,oBAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChD,oBAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnD,oBAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACA,oBAAC,OAAI,EAAA,WAAU,kCACZ,UAAA,KAAK,IAAI,CAAC,EAAE,MAAAC,MAAK,GAAG,UAAU;AACvB,kBAAA,WAAWA,MAAK,MAAM,GAAG;AAC/B,kBAAM,QAAQ,SAAS,SAAS,SAAS,CAAC;AAC1C,kBAAM,WAAW,UAAU;AAGzB,mBAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,WACI,8BACA;AAAA,gBACN;AAAA,gBAEA,SAAS,MAAM,aAAa,KAAK;AAAA,gBAEhC,UAAA;AAAA,cAAA;AAAA,cAHI;AAAA,YAIP;AAAA,UAAA,CAEH,EACH,CAAA;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,EAAA,WAAU,yDACb,UAAA,oBAAC,OAAI,EAAA,WAAU,mCACb,UAAA,qBAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAAC,oBAAA,aAAA,EAAY,cAAc,KACzB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEA,oBAAC,SAAI,WAAU,+CACb,8BAAC,kBAAiB,EAAA,YACf,kBACH,CAAA,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"IDE.mjs","sources":["../../../src/components/IDE/IDE.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useState, type FC, useEffect } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { WithResizer } from '../WithResizer';\nimport { FileTree } from './FileTree';\nimport { MarkdownRenderer } from './MarkDownRender';\n\nexport type IDEProps = {\n pages: {\n path: string;\n content: string;\n isOpen?: boolean;\n }[];\n isDarkMode?: boolean;\n activeTab?: number;\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const IDE: FC<IDEProps> = ({\n pages: initialPages,\n isDarkMode,\n className,\n activeTab: defaultActiveTab,\n ...props\n}) => {\n const [pages, setPages] = useState(initialPages);\n const tabs = pages.filter(({ isOpen }) => isOpen);\n\n const firstTabIndex = tabs.findIndex(({ isOpen }) => isOpen);\n const [activeTab, setActiveTab] = useState(defaultActiveTab ?? firstTabIndex);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab ?? firstTabIndex);\n }, [initialPages, defaultActiveTab]);\n\n const { content, path } = pages[activeTab];\n const filePaths = initialPages.map(({ path: title }) => title);\n\n const handleClickFile = (title: string) => {\n const page = pages.find(({ path: tabTitle }) => tabTitle === title);\n if (!page) return;\n\n const newPages = pages.map((page) => {\n if (page.path === title) {\n return { ...page, isOpen: true };\n }\n return page;\n });\n\n setPages(newPages);\n\n const newPageIndex = newPages.findIndex(\n ({ path: tabTitle }) => tabTitle === title\n );\n\n setActiveTab(newPageIndex);\n };\n\n return (\n <Container\n className={cn(\n 'flex size-full flex-col justify-start overflow-hidden shadow-lg',\n className\n )}\n roundedSize=\"3xl\"\n transparency=\"none\"\n {...props}\n >\n <div className=\"text-neutral flex w-auto flex-row items-center justify-start gap-1 rounded-t-3xl bg-neutral-200 text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-red-500\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n {tabs.map(({ path }, index) => {\n const fullPath = path.split('/');\n const title = fullPath[fullPath.length - 1];\n const isActive = index === activeTab;\n\n return (\n <button\n className={cn(\n 'flex h-8 min-w-20 items-center justify-start px-3 py-1 transition',\n isActive\n ? 'bg-card'\n : 'cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-neutral-950'\n )}\n key={title}\n onClick={() => setActiveTab(index)}\n >\n {title}\n </button>\n );\n })}\n </div>\n </div>\n <div className=\"relative flex size-full flex-1 flex-row justify-start\">\n <div className=\"absolute left-0 top-0 size-full\">\n <div className=\"flex size-full\">\n <WithResizer initialWidth={150}>\n <FileTree\n filesPaths={filePaths}\n activeFile={path}\n onClickFile={handleClickFile}\n />\n </WithResizer>\n\n <div className=\"size-full flex-1 overflow-auto pt-2 text-xs\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["page","path"],"mappings":";;;;;;;;AAmBO,MAAM,MAAoB,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,YAAY;AAC/C,QAAM,OAAO,MAAM,OAAO,CAAC,EAAE,aAAa,MAAM;AAEhD,QAAM,gBAAgB,KAAK,UAAU,CAAC,EAAE,aAAa,MAAM;AAC3D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,oBAAoB,aAAa;AAE5E,YAAU,MAAM;AACd,iBAAa,oBAAoB,aAAa;AAAA,EAAA,GAC7C,CAAC,cAAc,gBAAgB,CAAC;AAEnC,QAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AACnC,QAAA,YAAY,aAAa,IAAI,CAAC,EAAE,MAAM,YAAY,KAAK;AAEvD,QAAA,kBAAkB,CAAC,UAAkB;AACnC,UAAA,OAAO,MAAM,KAAK,CAAC,EAAE,MAAM,SAAA,MAAe,aAAa,KAAK;AAClE,QAAI,CAAC,KAAM;AAEX,UAAM,WAAW,MAAM,IAAI,CAACA,UAAS;AAC/BA,UAAAA,MAAK,SAAS,OAAO;AACvB,eAAO,EAAE,GAAGA,OAAM,QAAQ,KAAK;AAAA,MAAA;AAE1BA,aAAAA;AAAAA,IAAA,CACR;AAED,aAAS,QAAQ;AAEjB,UAAM,eAAe,SAAS;AAAA,MAC5B,CAAC,EAAE,MAAM,eAAe,aAAa;AAAA,IACvC;AAEA,iBAAa,YAAY;AAAA,EAC3B;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAY;AAAA,MACZ,cAAa;AAAA,MACZ,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAU,+HACb,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAAC,oBAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChD,oBAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnD,oBAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACA,oBAAC,OAAI,EAAA,WAAU,kCACZ,UAAA,KAAK,IAAI,CAAC,EAAE,MAAAC,MAAK,GAAG,UAAU;AACvB,kBAAA,WAAWA,MAAK,MAAM,GAAG;AAC/B,kBAAM,QAAQ,SAAS,SAAS,SAAS,CAAC;AAC1C,kBAAM,WAAW,UAAU;AAGzB,mBAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,WACI,YACA;AAAA,gBACN;AAAA,gBAEA,SAAS,MAAM,aAAa,KAAK;AAAA,gBAEhC,UAAA;AAAA,cAAA;AAAA,cAHI;AAAA,YAIP;AAAA,UAAA,CAEH,EACH,CAAA;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,EAAA,WAAU,yDACb,UAAA,oBAAC,OAAI,EAAA,WAAU,mCACb,UAAA,qBAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAAC,oBAAA,aAAA,EAAY,cAAc,KACzB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEA,oBAAC,SAAI,WAAU,+CACb,8BAAC,kBAAiB,EAAA,YACf,kBACH,CAAA,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -19,16 +19,16 @@ const checkboxVariants = classVarianceAuthority.cva("", {
19
19
  lg: "size-6"
20
20
  },
21
21
  color: {
22
- primary: "accent-primary dark:accent-primary-dark",
23
- secondary: "accent-secondary dark:accent-secondary-dark",
24
- destructive: "accent-destructive dark:accent-destructive-dark",
25
- neutral: "accent-neutral dark:accent-neutral-dark",
26
- light: "accent-light dark:accent-light-dark",
27
- text: "accent-text dark:accent-text-dark",
28
- dark: "accent-dark dark:accent-dark-dark",
29
- error: "accent-error dark:accent-error-dark",
30
- success: "accent-success dark:accent-success-dark",
31
- custom: "accent-custom dark:accent-custom-dark"
22
+ primary: "accent-primary",
23
+ secondary: "accent-secondary",
24
+ destructive: "accent-destructive",
25
+ neutral: "accent-neutral",
26
+ light: "accent-light",
27
+ text: "accent-text",
28
+ dark: "accent-dark",
29
+ error: "accent-error",
30
+ success: "accent-success",
31
+ custom: "accent-custom"
32
32
  },
33
33
  validationStyleEnabled: {
34
34
  disabled: "",
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n type FC,\n useId,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const checkboxVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'pointer rounded border-2 bg-input-background text-input-text shadow-none outline-0 transition-all',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none]',\n 'checked:bg-checkbox-checked checked:border-checkbox-checked-border',\n 'disabled:opacity-50',\n ],\n },\n size: {\n sm: 'size-4',\n md: 'size-5',\n lg: 'size-6',\n },\n color: {\n primary: 'accent-primary dark:accent-primary-dark',\n secondary: 'accent-secondary dark:accent-secondary-dark',\n destructive: 'accent-destructive dark:accent-destructive-dark',\n neutral: 'accent-neutral dark:accent-neutral-dark',\n light: 'accent-light dark:accent-light-dark',\n text: 'accent-text dark:accent-text-dark',\n dark: 'accent-dark dark:accent-dark-dark',\n error: 'accent-error dark:accent-error-dark',\n success: 'accent-success dark:accent-success-dark',\n custom: 'accent-custom dark:accent-custom-dark',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled: 'valid:border-success invalid:border-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n validationStyleEnabled: 'disabled',\n size: 'md',\n },\n});\n\nexport type CheckboxProps = Omit<\n DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n 'size'\n> & {\n validationStyleEnabled?: boolean;\n label?: string;\n} & Omit<VariantProps<typeof checkboxVariants>, 'validationStyleEnabled'>;\n\nexport const Checkbox: FC<CheckboxProps> = ({\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n}) => {\n const id = useId();\n return (\n <>\n <input\n type=\"checkbox\"\n className={checkboxVariants({\n variant,\n size,\n color,\n validationStyleEnabled: validationStyleEnabled\n ? 'enabled'\n : 'disabled',\n className,\n })}\n id={id}\n {...props}\n />\n <label htmlFor={id}>{label}</label>\n </>\n );\n};\n"],"names":["cva","useId","jsxs","Fragment","jsx"],"mappings":";;;;;AAQa,MAAA,mBAAmBA,2BAAI,IAAI;AAAA,EACtC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,OAAO;AAAA,IACP,wBAAwB;AAAA,IACxB,MAAM;AAAA,EAAA;AAEV,CAAC;AAUM,MAAM,WAA8B,CAAC;AAAA,EAC1C,yBAAyB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,KAAKC,aAAAA,MAAM;AACjB,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,iBAAiB;AAAA,UAC1B;AAAA,UACA;AAAA,UACA;AAAA,UACA,wBAAwB,yBACpB,YACA;AAAA,UACJ;AAAA,QAAA,CACD;AAAA,QACD;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN;AAAA,IACCA,2BAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,MAAA,CAAA;AAAA,EAAA,GAC7B;AAEJ;;;"}
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n type FC,\n useId,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const checkboxVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'pointer rounded border-2 bg-input-background text-input-text shadow-none outline-0 transition-all',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none]',\n 'checked:bg-checkbox-checked checked:border-checkbox-checked-border',\n 'disabled:opacity-50',\n ],\n },\n size: {\n sm: 'size-4',\n md: 'size-5',\n lg: 'size-6',\n },\n color: {\n primary: 'accent-primary',\n secondary: 'accent-secondary',\n destructive: 'accent-destructive',\n neutral: 'accent-neutral',\n light: 'accent-light',\n text: 'accent-text',\n dark: 'accent-dark',\n error: 'accent-error',\n success: 'accent-success',\n custom: 'accent-custom',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled: 'valid:border-success invalid:border-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n validationStyleEnabled: 'disabled',\n size: 'md',\n },\n});\n\nexport type CheckboxProps = Omit<\n DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n 'size'\n> & {\n validationStyleEnabled?: boolean;\n label?: string;\n} & Omit<VariantProps<typeof checkboxVariants>, 'validationStyleEnabled'>;\n\nexport const Checkbox: FC<CheckboxProps> = ({\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n}) => {\n const id = useId();\n return (\n <>\n <input\n type=\"checkbox\"\n className={checkboxVariants({\n variant,\n size,\n color,\n validationStyleEnabled: validationStyleEnabled\n ? 'enabled'\n : 'disabled',\n className,\n })}\n id={id}\n {...props}\n />\n <label htmlFor={id}>{label}</label>\n </>\n );\n};\n"],"names":["cva","useId","jsxs","Fragment","jsx"],"mappings":";;;;;AAQa,MAAA,mBAAmBA,2BAAI,IAAI;AAAA,EACtC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,OAAO;AAAA,IACP,wBAAwB;AAAA,IACxB,MAAM;AAAA,EAAA;AAEV,CAAC;AAUM,MAAM,WAA8B,CAAC;AAAA,EAC1C,yBAAyB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,KAAKC,aAAAA,MAAM;AACjB,SAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,iBAAiB;AAAA,UAC1B;AAAA,UACA;AAAA,UACA;AAAA,UACA,wBAAwB,yBACpB,YACA;AAAA,UACJ;AAAA,QAAA,CACD;AAAA,QACD;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN;AAAA,IACCA,2BAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,MAAA,CAAA;AAAA,EAAA,GAC7B;AAEJ;;;"}