@intlayer/design-system 3.4.9 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/dist/.vite/manifest.json +0 -1
  2. package/dist/Form-BDcoNTLV.cjs.map +1 -1
  3. package/dist/Form-DhsgC7kB.js.map +1 -1
  4. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  5. package/dist/components/Accordion/Accordion.mjs.map +1 -1
  6. package/dist/components/Auth/AuthModal/index.cjs.map +1 -1
  7. package/dist/components/Auth/AuthModal/index.mjs.map +1 -1
  8. package/dist/components/Auth/AuthenticationBarrier/AuthenticationBarrierClient.cjs.map +1 -1
  9. package/dist/components/Auth/AuthenticationBarrier/AuthenticationBarrierClient.mjs.map +1 -1
  10. package/dist/components/Auth/AuthenticationBarrier/AuthenticationBarrierServer.cjs.map +1 -1
  11. package/dist/components/Auth/AuthenticationBarrier/AuthenticationBarrierServer.mjs.map +1 -1
  12. package/dist/components/Auth/AuthenticationBarrier/accessValidation.cjs.map +1 -1
  13. package/dist/components/Auth/AuthenticationBarrier/accessValidation.mjs.map +1 -1
  14. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs.map +1 -1
  15. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs.map +1 -1
  16. package/dist/components/Auth/ChangePasswordForm/ChangePasswordSchema.cjs.map +1 -1
  17. package/dist/components/Auth/ChangePasswordForm/ChangePasswordSchema.mjs.map +1 -1
  18. package/dist/components/Auth/ChangePasswordForm/index.content.cjs.map +1 -1
  19. package/dist/components/Auth/ChangePasswordForm/index.content.mjs.map +1 -1
  20. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs.map +1 -1
  21. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs.map +1 -1
  22. package/dist/components/Auth/ExternalsLoginButtons/assets/GoogleLogo.cjs.map +1 -1
  23. package/dist/components/Auth/ExternalsLoginButtons/assets/GoogleLogo.mjs.map +1 -1
  24. package/dist/components/Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs.map +1 -1
  25. package/dist/components/Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs.map +1 -1
  26. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs.map +1 -1
  27. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs.map +1 -1
  28. package/dist/components/Auth/ResetPasswordForm/ResetPasswordSchema.cjs.map +1 -1
  29. package/dist/components/Auth/ResetPasswordForm/ResetPasswordSchema.mjs.map +1 -1
  30. package/dist/components/Auth/ResetPasswordForm/index.content.cjs.map +1 -1
  31. package/dist/components/Auth/ResetPasswordForm/index.content.mjs.map +1 -1
  32. package/dist/components/Auth/SignInForm/SignInForm.cjs.map +1 -1
  33. package/dist/components/Auth/SignInForm/SignInForm.mjs.map +1 -1
  34. package/dist/components/Auth/SignInForm/SignInSchema.cjs.map +1 -1
  35. package/dist/components/Auth/SignInForm/SignInSchema.mjs.map +1 -1
  36. package/dist/components/Auth/SignInForm/index.content.cjs.map +1 -1
  37. package/dist/components/Auth/SignInForm/index.content.mjs.map +1 -1
  38. package/dist/components/Auth/SignUpForm/SignUpForm.cjs.map +1 -1
  39. package/dist/components/Auth/SignUpForm/SignUpForm.mjs.map +1 -1
  40. package/dist/components/Auth/SignUpForm/SignUpSchema.cjs.map +1 -1
  41. package/dist/components/Auth/SignUpForm/SignUpSchema.mjs.map +1 -1
  42. package/dist/components/Auth/SignUpForm/index.content.cjs.map +1 -1
  43. package/dist/components/Auth/SignUpForm/index.content.mjs.map +1 -1
  44. package/dist/components/Auth/useAuth/index.cjs.map +1 -1
  45. package/dist/components/Auth/useAuth/index.mjs.map +1 -1
  46. package/dist/components/Auth/useAuth/useCSRF.cjs.map +1 -1
  47. package/dist/components/Auth/useAuth/useCSRF.mjs.map +1 -1
  48. package/dist/components/Auth/useAuth/useOAuth2.cjs.map +1 -1
  49. package/dist/components/Auth/useAuth/useOAuth2.mjs.map +1 -1
  50. package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
  51. package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
  52. package/dist/components/Auth/useUser/index.cjs.map +1 -1
  53. package/dist/components/Auth/useUser/index.mjs.map +1 -1
  54. package/dist/components/Avatar/index.cjs.map +1 -1
  55. package/dist/components/Avatar/index.mjs.map +1 -1
  56. package/dist/components/Badge/index.cjs.map +1 -1
  57. package/dist/components/Badge/index.mjs.map +1 -1
  58. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  59. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  60. package/dist/components/Button/Button.cjs.map +1 -1
  61. package/dist/components/Button/Button.mjs.map +1 -1
  62. package/dist/components/Command/index.cjs.map +1 -1
  63. package/dist/components/Command/index.mjs.map +1 -1
  64. package/dist/components/Container/index.cjs.map +1 -1
  65. package/dist/components/Container/index.mjs.map +1 -1
  66. package/dist/components/ContentEditor/ContentEditor.cjs.map +1 -1
  67. package/dist/components/ContentEditor/ContentEditor.mjs.map +1 -1
  68. package/dist/components/ContentEditor/ContentEditorTextArea.cjs.map +1 -1
  69. package/dist/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  70. package/dist/components/CopyToClipboard/index.cjs.map +1 -1
  71. package/dist/components/CopyToClipboard/index.mjs.map +1 -1
  72. package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
  73. package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  74. package/dist/components/DictionaryEditor/ItemLayout.cjs.map +1 -1
  75. package/dist/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  76. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
  77. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  78. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
  79. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
  80. package/dist/components/DictionaryEditor/useEditedContentStore.cjs.map +1 -1
  81. package/dist/components/DictionaryEditor/useEditedContentStore.mjs.map +1 -1
  82. package/dist/components/DictionaryEditor/useEditionPanelStore.cjs.map +1 -1
  83. package/dist/components/DictionaryEditor/useEditionPanelStore.mjs.map +1 -1
  84. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs.map +1 -1
  85. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs.map +1 -1
  86. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.cjs.map +1 -1
  87. package/dist/components/DictionaryEditor/validDictionaryChangeButtonsSchema.mjs.map +1 -1
  88. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  89. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  90. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.cjs.map +1 -1
  91. package/dist/components/DictionaryFieldEditor/DictionariesSelector/dictionariesSelector.content.mjs.map +1 -1
  92. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
  93. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  94. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.cjs.map +1 -1
  95. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs.map +1 -1
  96. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryFormSchema.cjs.map +1 -1
  97. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryFormSchema.mjs.map +1 -1
  98. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  99. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  100. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsSchema.cjs.map +1 -1
  101. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsSchema.mjs.map +1 -1
  102. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  103. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  104. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  105. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  106. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
  107. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
  108. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs.map +1 -1
  109. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs.map +1 -1
  110. package/dist/components/DictionaryFieldEditor/EnumKeyInput.cjs.map +1 -1
  111. package/dist/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
  112. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  113. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  114. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.cjs.map +1 -1
  115. package/dist/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  116. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  117. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  118. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map +1 -1
  119. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  120. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  121. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  122. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
  123. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  124. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  125. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  126. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.cjs.map +1 -1
  127. package/dist/components/DictionaryFieldEditor/SaveForm/SaveFormSchema.mjs.map +1 -1
  128. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  129. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  130. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.cjs.map +1 -1
  131. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs.map +1 -1
  132. package/dist/components/DictionaryFieldEditor/editorView.content.cjs.map +1 -1
  133. package/dist/components/DictionaryFieldEditor/editorView.content.mjs.map +1 -1
  134. package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs.map +1 -1
  135. package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
  136. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs.map +1 -1
  137. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  138. package/dist/components/DropDown/index.cjs.map +1 -1
  139. package/dist/components/DropDown/index.mjs.map +1 -1
  140. package/dist/components/EditableField/EditableFieldInput.cjs.map +1 -1
  141. package/dist/components/EditableField/EditableFieldInput.mjs.map +1 -1
  142. package/dist/components/EditableField/EditableFieldLayout.cjs.map +1 -1
  143. package/dist/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  144. package/dist/components/EditableField/EditableFieldTextArea.cjs.map +1 -1
  145. package/dist/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  146. package/dist/components/Footer/index.cjs.map +1 -1
  147. package/dist/components/Footer/index.mjs.map +1 -1
  148. package/dist/components/Form/FormBase.cjs.map +1 -1
  149. package/dist/components/Form/FormBase.mjs.map +1 -1
  150. package/dist/components/Form/FormControl.cjs.map +1 -1
  151. package/dist/components/Form/FormControl.mjs.map +1 -1
  152. package/dist/components/Form/FormDescription.cjs.map +1 -1
  153. package/dist/components/Form/FormDescription.mjs.map +1 -1
  154. package/dist/components/Form/FormField.cjs.map +1 -1
  155. package/dist/components/Form/FormField.mjs.map +1 -1
  156. package/dist/components/Form/FormItem.cjs.map +1 -1
  157. package/dist/components/Form/FormItem.mjs.map +1 -1
  158. package/dist/components/Form/FormLabel.cjs.map +1 -1
  159. package/dist/components/Form/FormLabel.mjs.map +1 -1
  160. package/dist/components/Form/FormMessage.cjs.map +1 -1
  161. package/dist/components/Form/FormMessage.mjs.map +1 -1
  162. package/dist/components/Form/elements/FormElementWrapper.cjs.map +1 -1
  163. package/dist/components/Form/elements/FormElementWrapper.mjs.map +1 -1
  164. package/dist/components/Form/layout/FormLabelLayout.cjs.map +1 -1
  165. package/dist/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  166. package/dist/components/Headers/SectionScroller.cjs.map +1 -1
  167. package/dist/components/Headers/SectionScroller.mjs.map +1 -1
  168. package/dist/components/Headers/index.cjs.map +1 -1
  169. package/dist/components/Headers/index.mjs.map +1 -1
  170. package/dist/components/IDE/CodeRender.cjs +9 -3
  171. package/dist/components/IDE/CodeRender.cjs.map +1 -1
  172. package/dist/components/IDE/CodeRender.d.ts.map +1 -1
  173. package/dist/components/IDE/CodeRender.mjs +9 -3
  174. package/dist/components/IDE/CodeRender.mjs.map +1 -1
  175. package/dist/components/IDE/FileList.cjs.map +1 -1
  176. package/dist/components/IDE/FileList.mjs.map +1 -1
  177. package/dist/components/IDE/FileTree.cjs.map +1 -1
  178. package/dist/components/IDE/FileTree.mjs.map +1 -1
  179. package/dist/components/IDE/IDE.cjs +1 -1
  180. package/dist/components/IDE/IDE.cjs.map +1 -1
  181. package/dist/components/IDE/IDE.mjs +1 -1
  182. package/dist/components/IDE/IDE.mjs.map +1 -1
  183. package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
  184. package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
  185. package/dist/components/IDE/createFileTree.cjs.map +1 -1
  186. package/dist/components/IDE/createFileTree.mjs.map +1 -1
  187. package/dist/components/Input/Checkbox.cjs.map +1 -1
  188. package/dist/components/Input/Checkbox.mjs.map +1 -1
  189. package/dist/components/Input/Input.cjs.map +1 -1
  190. package/dist/components/Input/Input.mjs.map +1 -1
  191. package/dist/components/Input/InputPassword.cjs.map +1 -1
  192. package/dist/components/Input/InputPassword.mjs.map +1 -1
  193. package/dist/components/Link/Link.cjs.map +1 -1
  194. package/dist/components/Link/Link.mjs.map +1 -1
  195. package/dist/components/Loader/spinner.cjs.map +1 -1
  196. package/dist/components/Loader/spinner.mjs.map +1 -1
  197. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  198. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  199. package/dist/components/Logo/LogoCircle.cjs.map +1 -1
  200. package/dist/components/Logo/LogoCircle.mjs.map +1 -1
  201. package/dist/components/Logo/LogoNoFrame.cjs.map +1 -1
  202. package/dist/components/Logo/LogoNoFrame.mjs.map +1 -1
  203. package/dist/components/Logo/LogoSquare.cjs.map +1 -1
  204. package/dist/components/Logo/LogoSquare.mjs.map +1 -1
  205. package/dist/components/Logo/LogoSquircle.cjs.map +1 -1
  206. package/dist/components/Logo/LogoSquircle.mjs.map +1 -1
  207. package/dist/components/Logo/LogoTextOnly.cjs.map +1 -1
  208. package/dist/components/Logo/LogoTextOnly.mjs.map +1 -1
  209. package/dist/components/Logo/LogoWithTextBelowCircle.cjs.map +1 -1
  210. package/dist/components/Logo/LogoWithTextBelowCircle.mjs.map +1 -1
  211. package/dist/components/Logo/LogoWithTextBelowNoFrame.cjs.map +1 -1
  212. package/dist/components/Logo/LogoWithTextBelowNoFrame.mjs.map +1 -1
  213. package/dist/components/Logo/LogoWithTextBelowSquircle.cjs.map +1 -1
  214. package/dist/components/Logo/LogoWithTextBelowSquircle.mjs.map +1 -1
  215. package/dist/components/Logo/LogoWithTextCircle.cjs.map +1 -1
  216. package/dist/components/Logo/LogoWithTextCircle.mjs.map +1 -1
  217. package/dist/components/Logo/LogoWithTextNoFrame.cjs.map +1 -1
  218. package/dist/components/Logo/LogoWithTextNoFrame.mjs.map +1 -1
  219. package/dist/components/Logo/LogoWithTextSquircle.cjs.map +1 -1
  220. package/dist/components/Logo/LogoWithTextSquircle.mjs.map +1 -1
  221. package/dist/components/Logo/index.cjs.map +1 -1
  222. package/dist/components/Logo/index.mjs.map +1 -1
  223. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  224. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  225. package/dist/components/MaxHeightSmoother/index.cjs.map +1 -1
  226. package/dist/components/MaxHeightSmoother/index.mjs.map +1 -1
  227. package/dist/components/MaxWidthSmoother/index.cjs.map +1 -1
  228. package/dist/components/MaxWidthSmoother/index.mjs.map +1 -1
  229. package/dist/components/Modal/Modal.cjs.map +1 -1
  230. package/dist/components/Modal/Modal.mjs.map +1 -1
  231. package/dist/components/Navbar/Burger.cjs.map +1 -1
  232. package/dist/components/Navbar/Burger.mjs.map +1 -1
  233. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  234. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  235. package/dist/components/Navbar/MobileNavbar.cjs.map +1 -1
  236. package/dist/components/Navbar/MobileNavbar.mjs.map +1 -1
  237. package/dist/components/Navbar/index.cjs.map +1 -1
  238. package/dist/components/Navbar/index.mjs.map +1 -1
  239. package/dist/components/Navbar/useNavigation.cjs.map +1 -1
  240. package/dist/components/Navbar/useNavigation.mjs.map +1 -1
  241. package/dist/components/Pattern/DotPattern.cjs.map +1 -1
  242. package/dist/components/Pattern/DotPattern.mjs.map +1 -1
  243. package/dist/components/Pattern/GridPattern.cjs.map +1 -1
  244. package/dist/components/Pattern/GridPattern.mjs.map +1 -1
  245. package/dist/components/Pattern/SpotLight.cjs.map +1 -1
  246. package/dist/components/Pattern/SpotLight.mjs.map +1 -1
  247. package/dist/components/Popover/index.cjs.map +1 -1
  248. package/dist/components/Popover/index.mjs.map +1 -1
  249. package/dist/components/PressableSpan/PressableSpan.cjs.map +1 -1
  250. package/dist/components/PressableSpan/PressableSpan.mjs.map +1 -1
  251. package/dist/components/ProfileDropDown/index.cjs.map +1 -1
  252. package/dist/components/ProfileDropDown/index.mjs.map +1 -1
  253. package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
  254. package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
  255. package/dist/components/RightDrawer/useRightDrawerStore.cjs.map +1 -1
  256. package/dist/components/RightDrawer/useRightDrawerStore.mjs.map +1 -1
  257. package/dist/components/Select/Multiselect.cjs.map +1 -1
  258. package/dist/components/Select/Multiselect.mjs.map +1 -1
  259. package/dist/components/Select/Select.cjs.map +1 -1
  260. package/dist/components/Select/Select.mjs.map +1 -1
  261. package/dist/components/SwitchSelector/index.cjs.map +1 -1
  262. package/dist/components/SwitchSelector/index.mjs.map +1 -1
  263. package/dist/components/TabSelector/TabSelector.cjs.map +1 -1
  264. package/dist/components/TabSelector/TabSelector.mjs.map +1 -1
  265. package/dist/components/Tag/index.cjs.map +1 -1
  266. package/dist/components/Tag/index.mjs.map +1 -1
  267. package/dist/components/TextArea/AutoSizeTextArea.cjs.map +1 -1
  268. package/dist/components/TextArea/AutoSizeTextArea.mjs.map +1 -1
  269. package/dist/components/TextArea/TextArea.cjs.map +1 -1
  270. package/dist/components/TextArea/TextArea.mjs.map +1 -1
  271. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs.map +1 -1
  272. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  273. package/dist/components/ThemeSwitcherDropDown/MobileThemeSwitcher.cjs.map +1 -1
  274. package/dist/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs.map +1 -1
  275. package/dist/components/Toaster/Toast.cjs.map +1 -1
  276. package/dist/components/Toaster/Toast.mjs.map +1 -1
  277. package/dist/components/Toaster/Toaster.cjs.map +1 -1
  278. package/dist/components/Toaster/Toaster.mjs.map +1 -1
  279. package/dist/components/Toaster/useToast.cjs.map +1 -1
  280. package/dist/components/Toaster/useToast.mjs.map +1 -1
  281. package/dist/components/WithResizer/index.cjs.map +1 -1
  282. package/dist/components/WithResizer/index.mjs.map +1 -1
  283. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  284. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  285. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  286. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  287. package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
  288. package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
  289. package/dist/hooks/useDevice.cjs.map +1 -1
  290. package/dist/hooks/useDevice.mjs.map +1 -1
  291. package/dist/hooks/useGetAllDictionaries.cjs.map +1 -1
  292. package/dist/hooks/useGetAllDictionaries.mjs.map +1 -1
  293. package/dist/hooks/useGetElementOrWindow.cjs.map +1 -1
  294. package/dist/hooks/useIntlayerAPI.cjs.map +1 -1
  295. package/dist/hooks/useIntlayerAPI.mjs.map +1 -1
  296. package/dist/hooks/useIsMounted.cjs.map +1 -1
  297. package/dist/hooks/useIsMounted.mjs.map +1 -1
  298. package/dist/hooks/useItemSelector.cjs.map +1 -1
  299. package/dist/hooks/useItemSelector.mjs.map +1 -1
  300. package/dist/hooks/usePersistedStore.cjs.map +1 -1
  301. package/dist/hooks/usePersistedStore.mjs.map +1 -1
  302. package/dist/hooks/useScrollBlockage/index.cjs.map +1 -1
  303. package/dist/hooks/useScrollBlockage/index.mjs.map +1 -1
  304. package/dist/hooks/useScrollBlockage/useScrollBlockageStore.cjs.map +1 -1
  305. package/dist/hooks/useScrollBlockage/useScrollBlockageStore.mjs.map +1 -1
  306. package/dist/hooks/useScrollDetection.cjs.map +1 -1
  307. package/dist/hooks/useScrollDetection.mjs.map +1 -1
  308. package/dist/index-BtZWYJhL.cjs.map +1 -1
  309. package/dist/index-D9oaKvKC.js.map +1 -1
  310. package/dist/jsx-runtime-DaNGiM0W.js.map +1 -1
  311. package/dist/jsx-runtime-XHKiWCTo.cjs.map +1 -1
  312. package/dist/libs/intlayer-api/auth.cjs.map +1 -1
  313. package/dist/libs/intlayer-api/auth.mjs.map +1 -1
  314. package/dist/libs/intlayer-api/dictionary.cjs.map +1 -1
  315. package/dist/libs/intlayer-api/dictionary.mjs.map +1 -1
  316. package/dist/libs/intlayer-api/fetcher.cjs.map +1 -1
  317. package/dist/libs/intlayer-api/fetcher.mjs.map +1 -1
  318. package/dist/libs/intlayer-api/organization.cjs.map +1 -1
  319. package/dist/libs/intlayer-api/organization.mjs.map +1 -1
  320. package/dist/libs/intlayer-api/project.cjs.map +1 -1
  321. package/dist/libs/intlayer-api/project.mjs.map +1 -1
  322. package/dist/libs/intlayer-api/stripe.cjs.map +1 -1
  323. package/dist/libs/intlayer-api/stripe.mjs.map +1 -1
  324. package/dist/libs/intlayer-api/user.cjs.map +1 -1
  325. package/dist/libs/intlayer-api/user.mjs.map +1 -1
  326. package/dist/shallow-lhDIFtEp.cjs.map +1 -1
  327. package/dist/shallow-m9BpCkKh.js.map +1 -1
  328. package/dist/tailwind.config.cjs.map +1 -1
  329. package/dist/tailwind.config.mjs.map +1 -1
  330. package/dist/tailwind.css +1 -1
  331. package/dist/utils/camelCase.cjs.map +1 -1
  332. package/dist/utils/camelCase.mjs.map +1 -1
  333. package/dist/utils/capitalize.cjs.map +1 -1
  334. package/dist/utils/capitalize.mjs.map +1 -1
  335. package/dist/utils/dictionary.cjs.map +1 -1
  336. package/dist/utils/dictionary.mjs.map +1 -1
  337. package/dist/utils/isElementAtTopAndNotCovered.cjs.map +1 -1
  338. package/dist/utils/isElementAtTopAndNotCovered.mjs.map +1 -1
  339. package/dist/utils/object.cjs.map +1 -1
  340. package/dist/utils/object.mjs.map +1 -1
  341. package/dist/zod-BV4nCGJE.js.map +1 -1
  342. package/dist/zod-DSrtTSD_.cjs.map +1 -1
  343. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"CodeRender.mjs","sources":["../../../../../../node_modules/.pnpm/react-syntax-highlighter@15.6.1_react@18.3.1/node_modules/react-syntax-highlighter/dist/esm/styles/prism/okaidia.js","../../../../../../node_modules/.pnpm/react-syntax-highlighter@15.6.1_react@18.3.1/node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-cold.js","../../../src/components/IDE/CodeRender.tsx"],"sourcesContent":["export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#f8f8f2\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#f8f8f2\",\n \"background\": \"#272822\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\",\n \"borderRadius\": \"0.3em\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#272822\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#8292a2\"\n },\n \"prolog\": {\n \"color\": \"#8292a2\"\n },\n \"doctype\": {\n \"color\": \"#8292a2\"\n },\n \"cdata\": {\n \"color\": \"#8292a2\"\n },\n \"punctuation\": {\n \"color\": \"#f8f8f2\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#f92672\"\n },\n \"tag\": {\n \"color\": \"#f92672\"\n },\n \"constant\": {\n \"color\": \"#f92672\"\n },\n \"symbol\": {\n \"color\": \"#f92672\"\n },\n \"deleted\": {\n \"color\": \"#f92672\"\n },\n \"boolean\": {\n \"color\": \"#ae81ff\"\n },\n \"number\": {\n \"color\": \"#ae81ff\"\n },\n \"selector\": {\n \"color\": \"#a6e22e\"\n },\n \"attr-name\": {\n \"color\": \"#a6e22e\"\n },\n \"string\": {\n \"color\": \"#a6e22e\"\n },\n \"char\": {\n \"color\": \"#a6e22e\"\n },\n \"builtin\": {\n \"color\": \"#a6e22e\"\n },\n \"inserted\": {\n \"color\": \"#a6e22e\"\n },\n \"operator\": {\n \"color\": \"#f8f8f2\"\n },\n \"entity\": {\n \"color\": \"#f8f8f2\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#f8f8f2\"\n },\n \".language-css .token.string\": {\n \"color\": \"#f8f8f2\"\n },\n \".style .token.string\": {\n \"color\": \"#f8f8f2\"\n },\n \"variable\": {\n \"color\": \"#f8f8f2\"\n },\n \"atrule\": {\n \"color\": \"#e6db74\"\n },\n \"attr-value\": {\n \"color\": \"#e6db74\"\n },\n \"function\": {\n \"color\": \"#e6db74\"\n },\n \"class-name\": {\n \"color\": \"#e6db74\"\n },\n \"keyword\": {\n \"color\": \"#66d9ef\"\n },\n \"regex\": {\n \"color\": \"#fd971f\"\n },\n \"important\": {\n \"color\": \"#fd971f\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#111b27\",\n \"background\": \"none\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#111b27\",\n \"background\": \"#e3eaf2\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#8da1b9\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#e3eaf2\",\n \"padding\": \"0.1em 0.3em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#3c526d\"\n },\n \"prolog\": {\n \"color\": \"#3c526d\"\n },\n \"doctype\": {\n \"color\": \"#3c526d\"\n },\n \"cdata\": {\n \"color\": \"#3c526d\"\n },\n \"punctuation\": {\n \"color\": \"#111b27\"\n },\n \"delimiter.important\": {\n \"color\": \"#006d6d\",\n \"fontWeight\": \"inherit\"\n },\n \"selector.parent\": {\n \"color\": \"#006d6d\"\n },\n \"tag\": {\n \"color\": \"#006d6d\"\n },\n \"tag.punctuation\": {\n \"color\": \"#006d6d\"\n },\n \"attr-name\": {\n \"color\": \"#755f00\"\n },\n \"boolean\": {\n \"color\": \"#755f00\"\n },\n \"boolean.important\": {\n \"color\": \"#755f00\"\n },\n \"number\": {\n \"color\": \"#755f00\"\n },\n \"constant\": {\n \"color\": \"#755f00\"\n },\n \"selector.attribute\": {\n \"color\": \"#755f00\"\n },\n \"class-name\": {\n \"color\": \"#005a8e\"\n },\n \"key\": {\n \"color\": \"#005a8e\"\n },\n \"parameter\": {\n \"color\": \"#005a8e\"\n },\n \"property\": {\n \"color\": \"#005a8e\"\n },\n \"property-access\": {\n \"color\": \"#005a8e\"\n },\n \"variable\": {\n \"color\": \"#005a8e\"\n },\n \"attr-value\": {\n \"color\": \"#116b00\"\n },\n \"inserted\": {\n \"color\": \"#116b00\"\n },\n \"color\": {\n \"color\": \"#116b00\"\n },\n \"selector.value\": {\n \"color\": \"#116b00\"\n },\n \"string\": {\n \"color\": \"#116b00\"\n },\n \"string.url-link\": {\n \"color\": \"#116b00\"\n },\n \"builtin\": {\n \"color\": \"#af00af\"\n },\n \"keyword-array\": {\n \"color\": \"#af00af\"\n },\n \"package\": {\n \"color\": \"#af00af\"\n },\n \"regex\": {\n \"color\": \"#af00af\"\n },\n \"function\": {\n \"color\": \"#7c00aa\"\n },\n \"selector.class\": {\n \"color\": \"#7c00aa\"\n },\n \"selector.id\": {\n \"color\": \"#7c00aa\"\n },\n \"atrule.rule\": {\n \"color\": \"#a04900\"\n },\n \"combinator\": {\n \"color\": \"#a04900\"\n },\n \"keyword\": {\n \"color\": \"#a04900\"\n },\n \"operator\": {\n \"color\": \"#a04900\"\n },\n \"pseudo-class\": {\n \"color\": \"#a04900\"\n },\n \"pseudo-element\": {\n \"color\": \"#a04900\"\n },\n \"selector\": {\n \"color\": \"#a04900\"\n },\n \"unit\": {\n \"color\": \"#a04900\"\n },\n \"deleted\": {\n \"color\": \"#c22f2e\"\n },\n \"important\": {\n \"color\": \"#c22f2e\",\n \"fontWeight\": \"bold\"\n },\n \"keyword-this\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \"this\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n },\n \"entity\": {\n \"cursor\": \"help\"\n },\n \".language-markdown .token.title\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.title .token.punctuation\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.blockquote.punctuation\": {\n \"color\": \"#af00af\"\n },\n \".language-markdown .token.code\": {\n \"color\": \"#006d6d\"\n },\n \".language-markdown .token.hr.punctuation\": {\n \"color\": \"#005a8e\"\n },\n \".language-markdown .token.url > .token.content\": {\n \"color\": \"#116b00\"\n },\n \".language-markdown .token.url-link\": {\n \"color\": \"#755f00\"\n },\n \".language-markdown .token.list.punctuation\": {\n \"color\": \"#af00af\"\n },\n \".language-markdown .token.table-header\": {\n \"color\": \"#111b27\"\n },\n \".language-json .token.operator\": {\n \"color\": \"#111b27\"\n },\n \".language-scss .token.variable\": {\n \"color\": \"#006d6d\"\n },\n \"token.tab:not(:empty):before\": {\n \"color\": \"#3c526d\"\n },\n \"token.cr:before\": {\n \"color\": \"#3c526d\"\n },\n \"token.lf:before\": {\n \"color\": \"#3c526d\"\n },\n \"token.space:before\": {\n \"color\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8e\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8e\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \".line-highlight.line-highlight\": {\n \"background\": \"linear-gradient(to right, #8da1b92f 70%, #8da1b925)\"\n },\n \".line-highlight.line-highlight:before\": {\n \"backgroundColor\": \"#3c526d\",\n \"color\": \"#e3eaf2\",\n \"boxShadow\": \"0 1px #8da1b9\"\n },\n \".line-highlight.line-highlight[data-end]:after\": {\n \"backgroundColor\": \"#3c526d\",\n \"color\": \"#e3eaf2\",\n \"boxShadow\": \"0 1px #8da1b9\"\n },\n \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n \"backgroundColor\": \"#3c526d1f\"\n },\n \".line-numbers.line-numbers .line-numbers-rows\": {\n \"borderRight\": \"1px solid #8da1b97a\",\n \"background\": \"#d0dae77a\"\n },\n \".line-numbers .line-numbers-rows > span:before\": {\n \"color\": \"#3c526dda\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n \"color\": \"#7c00aa\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n \"color\": \"#7c00aa\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n \"color\": \"#7c00aa\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#c22f2e1f\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#c22f2e1f\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#116b001f\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#116b001f\"\n },\n \".command-line .command-line-prompt\": {\n \"borderRight\": \"1px solid #8da1b97a\"\n },\n \".command-line .command-line-prompt > span:before\": {\n \"color\": \"#3c526dda\"\n }\n};","'use client';\n\nimport { CopyCheckIcon, CopyIcon } from 'lucide-react';\nimport {\n type FC,\n useEffect,\n useState,\n lazy,\n Suspense,\n type ReactNode,\n} from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport {\n okaidia,\n coldarkCold,\n} from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport { useIsMounted } from '../../hooks/useIsMounted';\nimport { cn } from '../../utils/cn';\nimport { Loader } from '../Loader';\n\nconst SyntaxHighlighter = lazy(() =>\n import('react-syntax-highlighter').then((module) => ({\n default: module.Prism,\n }))\n);\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers = true,\n ...props\n}) => {\n useIsMounted();\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setCopied(false);\n }, 1000);\n return () => clearTimeout(timer);\n }, [copied]);\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n <CopyToClipboard text={children} onCopy={() => setCopied(true)}>\n <button className=\"absolute right-3 top-3\" aria-label=\"Copy code\">\n {copied ? (\n <CopyCheckIcon className=\"size-4\" />\n ) : (\n <CopyIcon className=\"size-4\" />\n )}\n </button>\n </CopyToClipboard>\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <Suspense fallback={<Loader />}>\n <SyntaxHighlighter\n customStyle={{\n display: undefined,\n overflowX: 'auto',\n overflowY: 'auto',\n padding: undefined,\n color: undefined,\n background: 'inherit',\n margin: undefined,\n }}\n PreTag={(props: { children: ReactNode }) => props.children}\n language={language ?? 'javascript'}\n style={isDarkMode ? okaidia : coldarkCold}\n showLineNumbers={showLineNumbers}\n {...props}\n >\n {String(children).replace(/\\n$/, '')}\n </SyntaxHighlighter>\n </Suspense>\n </div>\n </div>\n );\n};\n"],"names":["jsxs","jsx","props"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"CodeRender.mjs","sources":["../../../../../../node_modules/.pnpm/react-syntax-highlighter@15.6.1_react@18.3.1/node_modules/react-syntax-highlighter/dist/esm/styles/prism/okaidia.js","../../../../../../node_modules/.pnpm/react-syntax-highlighter@15.6.1_react@18.3.1/node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-cold.js","../../../src/components/IDE/CodeRender.tsx"],"sourcesContent":["export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#f8f8f2\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#f8f8f2\",\n \"background\": \"#272822\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\",\n \"borderRadius\": \"0.3em\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#272822\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#8292a2\"\n },\n \"prolog\": {\n \"color\": \"#8292a2\"\n },\n \"doctype\": {\n \"color\": \"#8292a2\"\n },\n \"cdata\": {\n \"color\": \"#8292a2\"\n },\n \"punctuation\": {\n \"color\": \"#f8f8f2\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#f92672\"\n },\n \"tag\": {\n \"color\": \"#f92672\"\n },\n \"constant\": {\n \"color\": \"#f92672\"\n },\n \"symbol\": {\n \"color\": \"#f92672\"\n },\n \"deleted\": {\n \"color\": \"#f92672\"\n },\n \"boolean\": {\n \"color\": \"#ae81ff\"\n },\n \"number\": {\n \"color\": \"#ae81ff\"\n },\n \"selector\": {\n \"color\": \"#a6e22e\"\n },\n \"attr-name\": {\n \"color\": \"#a6e22e\"\n },\n \"string\": {\n \"color\": \"#a6e22e\"\n },\n \"char\": {\n \"color\": \"#a6e22e\"\n },\n \"builtin\": {\n \"color\": \"#a6e22e\"\n },\n \"inserted\": {\n \"color\": \"#a6e22e\"\n },\n \"operator\": {\n \"color\": \"#f8f8f2\"\n },\n \"entity\": {\n \"color\": \"#f8f8f2\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#f8f8f2\"\n },\n \".language-css .token.string\": {\n \"color\": \"#f8f8f2\"\n },\n \".style .token.string\": {\n \"color\": \"#f8f8f2\"\n },\n \"variable\": {\n \"color\": \"#f8f8f2\"\n },\n \"atrule\": {\n \"color\": \"#e6db74\"\n },\n \"attr-value\": {\n \"color\": \"#e6db74\"\n },\n \"function\": {\n \"color\": \"#e6db74\"\n },\n \"class-name\": {\n \"color\": \"#e6db74\"\n },\n \"keyword\": {\n \"color\": \"#66d9ef\"\n },\n \"regex\": {\n \"color\": \"#fd971f\"\n },\n \"important\": {\n \"color\": \"#fd971f\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#111b27\",\n \"background\": \"none\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#111b27\",\n \"background\": \"#e3eaf2\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#8da1b9\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#8da1b9\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#e3eaf2\",\n \"padding\": \"0.1em 0.3em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#3c526d\"\n },\n \"prolog\": {\n \"color\": \"#3c526d\"\n },\n \"doctype\": {\n \"color\": \"#3c526d\"\n },\n \"cdata\": {\n \"color\": \"#3c526d\"\n },\n \"punctuation\": {\n \"color\": \"#111b27\"\n },\n \"delimiter.important\": {\n \"color\": \"#006d6d\",\n \"fontWeight\": \"inherit\"\n },\n \"selector.parent\": {\n \"color\": \"#006d6d\"\n },\n \"tag\": {\n \"color\": \"#006d6d\"\n },\n \"tag.punctuation\": {\n \"color\": \"#006d6d\"\n },\n \"attr-name\": {\n \"color\": \"#755f00\"\n },\n \"boolean\": {\n \"color\": \"#755f00\"\n },\n \"boolean.important\": {\n \"color\": \"#755f00\"\n },\n \"number\": {\n \"color\": \"#755f00\"\n },\n \"constant\": {\n \"color\": \"#755f00\"\n },\n \"selector.attribute\": {\n \"color\": \"#755f00\"\n },\n \"class-name\": {\n \"color\": \"#005a8e\"\n },\n \"key\": {\n \"color\": \"#005a8e\"\n },\n \"parameter\": {\n \"color\": \"#005a8e\"\n },\n \"property\": {\n \"color\": \"#005a8e\"\n },\n \"property-access\": {\n \"color\": \"#005a8e\"\n },\n \"variable\": {\n \"color\": \"#005a8e\"\n },\n \"attr-value\": {\n \"color\": \"#116b00\"\n },\n \"inserted\": {\n \"color\": \"#116b00\"\n },\n \"color\": {\n \"color\": \"#116b00\"\n },\n \"selector.value\": {\n \"color\": \"#116b00\"\n },\n \"string\": {\n \"color\": \"#116b00\"\n },\n \"string.url-link\": {\n \"color\": \"#116b00\"\n },\n \"builtin\": {\n \"color\": \"#af00af\"\n },\n \"keyword-array\": {\n \"color\": \"#af00af\"\n },\n \"package\": {\n \"color\": \"#af00af\"\n },\n \"regex\": {\n \"color\": \"#af00af\"\n },\n \"function\": {\n \"color\": \"#7c00aa\"\n },\n \"selector.class\": {\n \"color\": \"#7c00aa\"\n },\n \"selector.id\": {\n \"color\": \"#7c00aa\"\n },\n \"atrule.rule\": {\n \"color\": \"#a04900\"\n },\n \"combinator\": {\n \"color\": \"#a04900\"\n },\n \"keyword\": {\n \"color\": \"#a04900\"\n },\n \"operator\": {\n \"color\": \"#a04900\"\n },\n \"pseudo-class\": {\n \"color\": \"#a04900\"\n },\n \"pseudo-element\": {\n \"color\": \"#a04900\"\n },\n \"selector\": {\n \"color\": \"#a04900\"\n },\n \"unit\": {\n \"color\": \"#a04900\"\n },\n \"deleted\": {\n \"color\": \"#c22f2e\"\n },\n \"important\": {\n \"color\": \"#c22f2e\",\n \"fontWeight\": \"bold\"\n },\n \"keyword-this\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \"this\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n },\n \"entity\": {\n \"cursor\": \"help\"\n },\n \".language-markdown .token.title\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.title .token.punctuation\": {\n \"color\": \"#005a8e\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.blockquote.punctuation\": {\n \"color\": \"#af00af\"\n },\n \".language-markdown .token.code\": {\n \"color\": \"#006d6d\"\n },\n \".language-markdown .token.hr.punctuation\": {\n \"color\": \"#005a8e\"\n },\n \".language-markdown .token.url > .token.content\": {\n \"color\": \"#116b00\"\n },\n \".language-markdown .token.url-link\": {\n \"color\": \"#755f00\"\n },\n \".language-markdown .token.list.punctuation\": {\n \"color\": \"#af00af\"\n },\n \".language-markdown .token.table-header\": {\n \"color\": \"#111b27\"\n },\n \".language-json .token.operator\": {\n \"color\": \"#111b27\"\n },\n \".language-scss .token.variable\": {\n \"color\": \"#006d6d\"\n },\n \"token.tab:not(:empty):before\": {\n \"color\": \"#3c526d\"\n },\n \"token.cr:before\": {\n \"color\": \"#3c526d\"\n },\n \"token.lf:before\": {\n \"color\": \"#3c526d\"\n },\n \"token.space:before\": {\n \"color\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8e\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8e\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#005a8eda\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#3c526d\"\n },\n \".line-highlight.line-highlight\": {\n \"background\": \"linear-gradient(to right, #8da1b92f 70%, #8da1b925)\"\n },\n \".line-highlight.line-highlight:before\": {\n \"backgroundColor\": \"#3c526d\",\n \"color\": \"#e3eaf2\",\n \"boxShadow\": \"0 1px #8da1b9\"\n },\n \".line-highlight.line-highlight[data-end]:after\": {\n \"backgroundColor\": \"#3c526d\",\n \"color\": \"#e3eaf2\",\n \"boxShadow\": \"0 1px #8da1b9\"\n },\n \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n \"backgroundColor\": \"#3c526d1f\"\n },\n \".line-numbers.line-numbers .line-numbers-rows\": {\n \"borderRight\": \"1px solid #8da1b97a\",\n \"background\": \"#d0dae77a\"\n },\n \".line-numbers .line-numbers-rows > span:before\": {\n \"color\": \"#3c526dda\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n \"color\": \"#755f00\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n \"color\": \"#af00af\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n \"color\": \"#005a8e\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n \"color\": \"#7c00aa\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n \"color\": \"#7c00aa\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n \"color\": \"#7c00aa\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#c22f2e1f\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#c22f2e1f\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#116b001f\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#116b001f\"\n },\n \".command-line .command-line-prompt\": {\n \"borderRight\": \"1px solid #8da1b97a\"\n },\n \".command-line .command-line-prompt > span:before\": {\n \"color\": \"#3c526dda\"\n }\n};","'use client';\n\nimport { CopyCheckIcon, CopyIcon } from 'lucide-react';\nimport {\n type FC,\n useEffect,\n useState,\n lazy,\n Suspense,\n type ReactNode,\n} from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport {\n okaidia,\n coldarkCold,\n} from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport { cn } from '../../utils/cn';\nimport { Loader } from '../Loader';\n\nconst SyntaxHighlighter = lazy(() =>\n import('react-syntax-highlighter').then((module) => ({\n default: module.Prism,\n }))\n);\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const Code: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers = true,\n ...props\n}) => {\n const [isDarkModeState, setIsDarkModeState] = useState(false);\n const [copied, setCopied] = useState(false);\n\n useEffect(\n () =>\n // Necessary to fix first render bug\n setIsDarkModeState(isDarkMode ?? false),\n [isDarkMode]\n );\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setCopied(false);\n }, 1000);\n return () => clearTimeout(timer);\n }, [copied]);\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n <CopyToClipboard text={children} onCopy={() => setCopied(true)}>\n <button className=\"absolute right-3 top-3\" aria-label=\"Copy code\">\n {copied ? (\n <CopyCheckIcon className=\"size-4\" />\n ) : (\n <CopyIcon className=\"size-4\" />\n )}\n </button>\n </CopyToClipboard>\n <div className=\"grid size-full grid-cols-[0px] overflow-auto p-3\">\n <Suspense fallback={<Loader />}>\n <SyntaxHighlighter\n customStyle={{\n display: undefined,\n overflowX: 'auto',\n overflowY: 'auto',\n padding: undefined,\n color: undefined,\n background: 'inherit',\n margin: undefined,\n }}\n PreTag={(props: { children: ReactNode }) => props.children}\n language={language ?? 'javascript'}\n style={isDarkModeState ? okaidia : coldarkCold}\n showLineNumbers={showLineNumbers}\n {...props}\n >\n {String(children).replace(/\\n$/, '')}\n </SyntaxHighlighter>\n </Suspense>\n </div>\n </div>\n );\n};\n"],"names":["jsxs","jsx","props"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -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,kBAAA;AAAA,EAACC,2BAAA;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA,kBAAAA,IAAC,SAAI,WAAU,sJACb,UAACF,2BAAA,kBAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACE,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,uDACC,OAAI,EAAA,WAAU,mEACb,UAACA,iDAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,2BAAA,kBAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,2BAAA,kBAAA,IAAAC,wBAAA,UAAA,EAAS,YAAY,UAAW,CAAA,GACnC,GACF,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 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,kBAAA;AAAA,EAACC,2BAAA;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA,kBAAAA,IAAC,SAAI,WAAU,sJACb,UAACF,2BAAA,kBAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACE,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,uDACC,OAAI,EAAA,WAAU,mEACb,UAACA,2BAAA,kBAAA,IAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,2BAAAA,kBAAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,2BAAAA,kBAAAA,IAAAC,wBAAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;;"}
@@ -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":["jsxs","jsx"],"mappings":";;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAAA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,kCAAAA,IAAC,SAAI,WAAU,sJACb,UAACD,kCAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACC,kCAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,4CACC,OAAI,EAAA,WAAU,mEACb,UAACA,sCAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,kCAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,kCAAA,IAAA,UAAA,EAAS,YAAY,UAAW,CAAA,GACnC,GACF,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 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","jsx"],"mappings":";;;AAQO,MAAM,WAA8B,CAAC,EAAE,WAAW,GAAG,MAC1D,MAAAA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,cAAa;AAAA,IACZ,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,kCAAAA,IAAC,SAAI,WAAU,sJACb,UAACD,kCAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,QAACC,kCAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,QAChDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,QACnDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,MAAA,EAAA,CACpD,EACF,CAAA;AAAA,4CACC,OAAI,EAAA,WAAU,mEACb,UAACA,kCAAA,IAAA,OAAA,EAAI,WAAU,mCACb,UAAAA,kCAAAA,IAAC,OAAI,EAAA,WAAU,kBACb,UAACA,kCAAAA,IAAA,UAAA,EAAS,YAAY,UAAW,CAAA,EACnC,CAAA,EACF,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileTree.cjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["/* eslint-disable sonarjs/no-selector-parameter */\n'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":";;;;;;;;;AAgBA,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,oBAAS,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,EAAA;AAGlD,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAD,2BAAA,kBAAA;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,UAC7B;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAAC,2BAAAA,kBAAAA,IAAC,UAAK,WAAWD,YAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAC,2BAAA,kBAAA;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,kBAAA;AAAA,MAACE,mCAAA;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAF,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAC9B;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAC;AACd,MAAM;AACE,QAAA,WAAWG,6CAAe,UAAU;AAGxC,SAAAH,2BAAA,kBAAA,IAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,2BAAA,kBAAA;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,EACH,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"FileTree.cjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["/* eslint-disable sonarjs/no-selector-parameter */\n'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":";;;;;;;;;AAgBA,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,WAAAA,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,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAD,2BAAA,kBAAA;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,kBAAAA,IAAC,UAAK,WAAWD,YAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAC,2BAAA,kBAAA;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,kBAAA;AAAA,MAACE,mCAAA;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAF,2BAAA,kBAAA;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,kBAAA,IAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,2BAAA,kBAAA;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 +1 @@
1
- {"version":3,"file":"FileTree.mjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["/* eslint-disable sonarjs/no-selector-parameter */\n'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","jsxs","Fragment","jsx"],"mappings":";;;;;;;AAgBA,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,EAAA;AAGlD,QAAM,WAAW,cAAc;AAEzB,QAAA,cAAc,IAAI,MAAM,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE;AAEvD,SAEIC,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAD,kCAAA;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,UAC7B;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAAE,kCAAAA,IAAC,UAAK,WAAW,GAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAA,kCAAA;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,WACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,YACA,UAAU,CAAC,GAAG,UAAU,IAAI;AAAA,UAAA;AAAA,QAC9B;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;AAEO,MAAM,WAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,CAAC;AACd,MAAM;AACE,QAAA,WAAW,eAAe,UAAU;AAGxC,SAAAA,kCAAA,IAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,kCAAA;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,EACH,CAAA;AAEJ;"}
1
+ {"version":3,"file":"FileTree.mjs","sources":["../../../src/components/IDE/FileTree.tsx"],"sourcesContent":["/* eslint-disable sonarjs/no-selector-parameter */\n'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","jsxs","Fragment","jsx"],"mappings":";;;;;;;AAgBA,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,SAEIC,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAD,kCAAA;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,UAAAE,kCAAAA,IAAC,UAAK,WAAW,GAAG,kBAAkB,UAAU,MAAM,GACnD,UACH,aAAA;AAAA,UAEC,CAAC,UACAA,kCAAA;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,WACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU,CAAC;AAAA,QACX,WAAU;AAAA,QAEV,UAAAA,kCAAA;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,SAAAA,kCAAA,IAAC,OAAI,EAAA,WAAU,8FACZ,UAAA,SAAS,IAAI,CAAC,EAAE,MAAM,SAAS,OAC9B,MAAAA,kCAAA;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;"}
@@ -71,7 +71,7 @@ const IDE = ({
71
71
  }) })
72
72
  ] }),
73
73
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "relative flex size-full flex-1 flex-row justify-start", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "absolute left-0 top-0 size-full", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { className: "flex size-full", children: [
74
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_WithResizer_index.WithResizer, { initialWidth: 20, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
74
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_WithResizer_index.WithResizer, { initialWidth: 150, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
75
75
  components_IDE_FileTree.FileTree,
76
76
  {
77
77
  filesPaths: filePaths,
@@ -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={20}>\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 md:text-sm\">\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":"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"}
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 md:text-sm\">\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":"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"}
@@ -69,7 +69,7 @@ const IDE = ({
69
69
  }) })
70
70
  ] }),
71
71
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative flex size-full flex-1 flex-row justify-start", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute left-0 top-0 size-full", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex size-full", children: [
72
- /* @__PURE__ */ jsxRuntimeExports.jsx(WithResizer, { initialWidth: 20, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
72
+ /* @__PURE__ */ jsxRuntimeExports.jsx(WithResizer, { initialWidth: 150, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
73
73
  FileTree,
74
74
  {
75
75
  filesPaths: filePaths,
@@ -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={20}>\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 md:text-sm\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["page","jsxs","jsx","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,OAAA,MAAa,MAAM;AAEhD,QAAM,gBAAgB,KAAK,UAAU,CAAC,EAAE,OAAA,MAAa,MAAM;AAC3D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,aAAa;AAExD,QAAM,EAAE,SAAS,KAAK,IAAI,MAAM,SAAS;AACnC,QAAA,YAAY,aAAa,IAAI,CAAC,EAAE,MAAM,MAAA,MAAY,KAAK;AAEvD,QAAA,kBAAkB,CAAC,UAAkB;AACnC,UAAA,OAAO,MAAM,KAAK,CAAC,EAAE,MAAM,SAAe,MAAA,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,MACjC;AACOA,aAAAA;AAAAA,IAAA,CACR;AAED,aAAS,QAAQ;AAEjB,UAAM,eAAe,SAAS;AAAA,MAC5B,CAAC,EAAE,MAAM,eAAe,aAAa;AAAA,IAAA;AAGvC,iBAAa,YAAY;AAAA,EAAA;AAIzB,SAAAC,kCAAA;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,QAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,sJACb,UAAA;AAAA,UAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAACC,kCAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACAA,kCAAAA,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,kCAAA;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,YAAA;AAAA,UAMV,CAAA,GACH;AAAA,QAAA,GACF;AAAA,QACAA,kCAAA,IAAC,OAAI,EAAA,WAAU,yDACb,UAAAA,kCAAA,IAAC,OAAI,EAAA,WAAU,mCACb,UAAAD,uCAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAACC,kCAAAA,IAAA,aAAA,EAAY,cAAc,IACzB,UAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEAA,kCAAAA,IAAC,SAAI,WAAU,0DACb,gDAAC,kBAAiB,EAAA,YACf,mBACH,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
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 md:text-sm\">\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n </div>\n </div>\n </div>\n </div>\n </Container>\n );\n};\n"],"names":["page","jsxs","jsx","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,SAAAC,kCAAA;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,QAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,sJACb,UAAA;AAAA,UAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,YAACC,kCAAAA,IAAA,OAAA,EAAI,WAAU,iCAAiC,CAAA;AAAA,YAChDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,oCAAoC,CAAA;AAAA,YACnDA,kCAAAA,IAAC,OAAI,EAAA,WAAU,mCAAmC,CAAA;AAAA,UAAA,GACpD;AAAA,UACAA,kCAAAA,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,kCAAA;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,QACAA,kCAAA,IAAC,OAAI,EAAA,WAAU,yDACb,UAAAA,kCAAA,IAAC,OAAI,EAAA,WAAU,mCACb,UAAAD,uCAAC,OAAI,EAAA,WAAU,kBACb,UAAA;AAAA,UAACC,kCAAAA,IAAA,aAAA,EAAY,cAAc,KACzB,UAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,aAAa;AAAA,YAAA;AAAA,UAAA,GAEjB;AAAA,UAEAA,kCAAAA,IAAC,SAAI,WAAU,0DACb,gDAAC,kBAAiB,EAAA,YACf,kBACH,CAAA,EACF,CAAA;AAAA,QAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkDownRender.cjs","sources":["../../../src/components/IDE/MarkDownRender.tsx"],"sourcesContent":["'use client';\n\nimport Markdown from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { Code } from './CodeRender';\n\ntype MarkdownRendererProps = {\n isDarkMode?: boolean;\n children: string;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n}) => (\n <Markdown\n options={{\n overrides: {\n code: {\n // eslint-disable-next-line sonarjs/no-unstable-nested-components\n component: (props) => <Code {...props} isDarkMode={isDarkMode} />,\n },\n pre: (props) => props.children,\n },\n }}\n >\n {children ?? ''}\n </Markdown>\n);\n"],"names":["jsx","Code"],"mappings":";;;;;;AAWO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AACF,MACEA,2BAAA,kBAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,MACP,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,UAEJ,WAAW,CAAC,2DAAWC,0BAAM,MAAA,EAAA,GAAG,OAAO,YAAwB;AAAA,QACjE;AAAA,QACA,KAAK,CAAC,UAAU,MAAM;AAAA,MACxB;AAAA,IACF;AAAA,IAEC,UAAY,YAAA;AAAA,EAAA;AACf;;"}
1
+ {"version":3,"file":"MarkDownRender.cjs","sources":["../../../src/components/IDE/MarkDownRender.tsx"],"sourcesContent":["'use client';\n\nimport Markdown from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { Code } from './CodeRender';\n\ntype MarkdownRendererProps = {\n isDarkMode?: boolean;\n children: string;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n}) => (\n <Markdown\n options={{\n overrides: {\n code: {\n // eslint-disable-next-line sonarjs/no-unstable-nested-components\n component: (props) => <Code {...props} isDarkMode={isDarkMode} />,\n },\n pre: (props) => props.children,\n },\n }}\n >\n {children ?? ''}\n </Markdown>\n);\n"],"names":["jsx","Code"],"mappings":";;;;;;AAWO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AACF,MACEA,2BAAA,kBAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,MACP,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,UAEJ,WAAW,CAAC,2DAAWC,0BAAM,MAAA,EAAA,GAAG,OAAO,WAAwB,CAAA;AAAA,QACjE;AAAA,QACA,KAAK,CAAC,UAAU,MAAM;AAAA,MAAA;AAAA,IAE1B;AAAA,IAEC,UAAY,YAAA;AAAA,EAAA;AACf;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkDownRender.mjs","sources":["../../../src/components/IDE/MarkDownRender.tsx"],"sourcesContent":["'use client';\n\nimport Markdown from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { Code } from './CodeRender';\n\ntype MarkdownRendererProps = {\n isDarkMode?: boolean;\n children: string;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n}) => (\n <Markdown\n options={{\n overrides: {\n code: {\n // eslint-disable-next-line sonarjs/no-unstable-nested-components\n component: (props) => <Code {...props} isDarkMode={isDarkMode} />,\n },\n pre: (props) => props.children,\n },\n }}\n >\n {children ?? ''}\n </Markdown>\n);\n"],"names":["jsx"],"mappings":";;;;AAWO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AACF,MACEA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,MACP,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,UAEJ,WAAW,CAAC,gDAAW,MAAM,EAAA,GAAG,OAAO,YAAwB;AAAA,QACjE;AAAA,QACA,KAAK,CAAC,UAAU,MAAM;AAAA,MACxB;AAAA,IACF;AAAA,IAEC,UAAY,YAAA;AAAA,EAAA;AACf;"}
1
+ {"version":3,"file":"MarkDownRender.mjs","sources":["../../../src/components/IDE/MarkDownRender.tsx"],"sourcesContent":["'use client';\n\nimport Markdown from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { Code } from './CodeRender';\n\ntype MarkdownRendererProps = {\n isDarkMode?: boolean;\n children: string;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n}) => (\n <Markdown\n options={{\n overrides: {\n code: {\n // eslint-disable-next-line sonarjs/no-unstable-nested-components\n component: (props) => <Code {...props} isDarkMode={isDarkMode} />,\n },\n pre: (props) => props.children,\n },\n }}\n >\n {children ?? ''}\n </Markdown>\n);\n"],"names":["jsx"],"mappings":";;;;AAWO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AACF,MACEA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,MACP,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,UAEJ,WAAW,CAAC,gDAAW,MAAM,EAAA,GAAG,OAAO,WAAwB,CAAA;AAAA,QACjE;AAAA,QACA,KAAK,CAAC,UAAU,MAAM;AAAA,MAAA;AAAA,IAE1B;AAAA,IAEC,UAAY,YAAA;AAAA,EAAA;AACf;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createFileTree.cjs","sources":["../../../src/components/IDE/createFileTree.ts"],"sourcesContent":["export type FilePath = {\n path: string;\n subPath?: FilePath[];\n isFile: boolean;\n};\n\nexport const createFileTree = (paths: string[]): FilePath[] => {\n const root: FilePath = { path: '', subPath: [], isFile: false };\n\n paths.forEach((path) => {\n const parts = path.split('/').filter((part) => part !== ''); // Remove empty strings due to leading slash\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1; // Last part of the path is a file\n\n if (!current.subPath) {\n current.subPath = [];\n }\n\n let next = current.subPath.find((sub) => sub.path === part);\n\n if (!next) {\n next = { path: part, isFile, subPath: isFile ? undefined : [] };\n current.subPath.push(next);\n }\n\n current = next;\n }\n });\n\n return root.subPath ?? [];\n};\n"],"names":[],"mappings":";;AAMa,MAAA,iBAAiB,CAAC,UAAgC;AACvD,QAAA,OAAiB,EAAE,MAAM,IAAI,SAAS,IAAI,QAAQ;AAElD,QAAA,QAAQ,CAAC,SAAS;AAChB,UAAA,QAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAC1D,QAAI,UAAU;AAEd,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAC/B,YAAA,OAAO,MAAM,CAAC;AACd,YAAA,SAAS,MAAM,MAAM,SAAS;AAEhC,UAAA,CAAC,QAAQ,SAAS;AACpB,gBAAQ,UAAU;MACpB;AAEI,UAAA,OAAO,QAAQ,QAAQ,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AAE1D,UAAI,CAAC,MAAM;AACF,eAAA,EAAE,MAAM,MAAM,QAAQ,SAAS,SAAS,SAAY,CAAA;AACnD,gBAAA,QAAQ,KAAK,IAAI;AAAA,MAC3B;AAEU,gBAAA;AAAA,IACZ;AAAA,EAAA,CACD;AAEM,SAAA,KAAK,WAAW;AACzB;;"}
1
+ {"version":3,"file":"createFileTree.cjs","sources":["../../../src/components/IDE/createFileTree.ts"],"sourcesContent":["export type FilePath = {\n path: string;\n subPath?: FilePath[];\n isFile: boolean;\n};\n\nexport const createFileTree = (paths: string[]): FilePath[] => {\n const root: FilePath = { path: '', subPath: [], isFile: false };\n\n paths.forEach((path) => {\n const parts = path.split('/').filter((part) => part !== ''); // Remove empty strings due to leading slash\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1; // Last part of the path is a file\n\n if (!current.subPath) {\n current.subPath = [];\n }\n\n let next = current.subPath.find((sub) => sub.path === part);\n\n if (!next) {\n next = { path: part, isFile, subPath: isFile ? undefined : [] };\n current.subPath.push(next);\n }\n\n current = next;\n }\n });\n\n return root.subPath ?? [];\n};\n"],"names":[],"mappings":";;AAMa,MAAA,iBAAiB,CAAC,UAAgC;AACvD,QAAA,OAAiB,EAAE,MAAM,IAAI,SAAS,CAAC,GAAG,QAAQ,MAAM;AAExD,QAAA,QAAQ,CAAC,SAAS;AAChB,UAAA,QAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAC1D,QAAI,UAAU;AAEd,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAC/B,YAAA,OAAO,MAAM,CAAC;AACd,YAAA,SAAS,MAAM,MAAM,SAAS;AAEhC,UAAA,CAAC,QAAQ,SAAS;AACpB,gBAAQ,UAAU,CAAC;AAAA,MAAA;AAGjB,UAAA,OAAO,QAAQ,QAAQ,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AAE1D,UAAI,CAAC,MAAM;AACF,eAAA,EAAE,MAAM,MAAM,QAAQ,SAAS,SAAS,SAAY,GAAG;AACtD,gBAAA,QAAQ,KAAK,IAAI;AAAA,MAAA;AAGjB,gBAAA;AAAA,IAAA;AAAA,EACZ,CACD;AAEM,SAAA,KAAK,WAAW,CAAC;AAC1B;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createFileTree.mjs","sources":["../../../src/components/IDE/createFileTree.ts"],"sourcesContent":["export type FilePath = {\n path: string;\n subPath?: FilePath[];\n isFile: boolean;\n};\n\nexport const createFileTree = (paths: string[]): FilePath[] => {\n const root: FilePath = { path: '', subPath: [], isFile: false };\n\n paths.forEach((path) => {\n const parts = path.split('/').filter((part) => part !== ''); // Remove empty strings due to leading slash\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1; // Last part of the path is a file\n\n if (!current.subPath) {\n current.subPath = [];\n }\n\n let next = current.subPath.find((sub) => sub.path === part);\n\n if (!next) {\n next = { path: part, isFile, subPath: isFile ? undefined : [] };\n current.subPath.push(next);\n }\n\n current = next;\n }\n });\n\n return root.subPath ?? [];\n};\n"],"names":[],"mappings":"AAMa,MAAA,iBAAiB,CAAC,UAAgC;AACvD,QAAA,OAAiB,EAAE,MAAM,IAAI,SAAS,IAAI,QAAQ;AAElD,QAAA,QAAQ,CAAC,SAAS;AAChB,UAAA,QAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAC1D,QAAI,UAAU;AAEd,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAC/B,YAAA,OAAO,MAAM,CAAC;AACd,YAAA,SAAS,MAAM,MAAM,SAAS;AAEhC,UAAA,CAAC,QAAQ,SAAS;AACpB,gBAAQ,UAAU;MACpB;AAEI,UAAA,OAAO,QAAQ,QAAQ,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AAE1D,UAAI,CAAC,MAAM;AACF,eAAA,EAAE,MAAM,MAAM,QAAQ,SAAS,SAAS,SAAY,CAAA;AACnD,gBAAA,QAAQ,KAAK,IAAI;AAAA,MAC3B;AAEU,gBAAA;AAAA,IACZ;AAAA,EAAA,CACD;AAEM,SAAA,KAAK,WAAW;AACzB;"}
1
+ {"version":3,"file":"createFileTree.mjs","sources":["../../../src/components/IDE/createFileTree.ts"],"sourcesContent":["export type FilePath = {\n path: string;\n subPath?: FilePath[];\n isFile: boolean;\n};\n\nexport const createFileTree = (paths: string[]): FilePath[] => {\n const root: FilePath = { path: '', subPath: [], isFile: false };\n\n paths.forEach((path) => {\n const parts = path.split('/').filter((part) => part !== ''); // Remove empty strings due to leading slash\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isFile = i === parts.length - 1; // Last part of the path is a file\n\n if (!current.subPath) {\n current.subPath = [];\n }\n\n let next = current.subPath.find((sub) => sub.path === part);\n\n if (!next) {\n next = { path: part, isFile, subPath: isFile ? undefined : [] };\n current.subPath.push(next);\n }\n\n current = next;\n }\n });\n\n return root.subPath ?? [];\n};\n"],"names":[],"mappings":"AAMa,MAAA,iBAAiB,CAAC,UAAgC;AACvD,QAAA,OAAiB,EAAE,MAAM,IAAI,SAAS,CAAC,GAAG,QAAQ,MAAM;AAExD,QAAA,QAAQ,CAAC,SAAS;AAChB,UAAA,QAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAC1D,QAAI,UAAU;AAEd,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAC/B,YAAA,OAAO,MAAM,CAAC;AACd,YAAA,SAAS,MAAM,MAAM,SAAS;AAEhC,UAAA,CAAC,QAAQ,SAAS;AACpB,gBAAQ,UAAU,CAAC;AAAA,MAAA;AAGjB,UAAA,OAAO,QAAQ,QAAQ,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AAE1D,UAAI,CAAC,MAAM;AACF,eAAA,EAAE,MAAM,MAAM,QAAQ,SAAS,SAAS,SAAY,GAAG;AACtD,gBAAA,QAAQ,KAAK,IAAI;AAAA,MAAA;AAGjB,gBAAA;AAAA,IAAA;AAAA,EACZ,CACD;AAEM,SAAA,KAAK,WAAW,CAAC;AAC1B;"}
@@ -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 forwardRef,\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 = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n },\n ref\n ) => {\n const id = useId();\n return (\n <>\n <input\n ref={ref}\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);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["cva","forwardRef","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,MACF;AAAA,IACF;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,IACX;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,OAAO;AAAA,IACP,wBAAwB;AAAA,IACxB,MAAM;AAAA,EACR;AACF,CAAC;AAUM,MAAM,WAAWC,WAAA;AAAA,EACtB,CACE;AAAA,IACE,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACH,UAAM,KAAKC,WAAAA;AACX,WAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,MAAAC,2BAAA,kBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,WAAW,iBAAiB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA,wBAAwB,yBACpB,YACA;AAAA,YACJ;AAAA,UAAA,CACD;AAAA,UACD;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,MACCA,2BAAA,kBAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,OAAA;AAAA,IAC7B,EAAA,CAAA;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;;;"}
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\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 = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n },\n ref\n ) => {\n const id = useId();\n return (\n <>\n <input\n ref={ref}\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);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["cva","forwardRef","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,WAAWC,WAAA;AAAA,EACtB,CACE;AAAA,IACE,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACH,UAAM,KAAKC,WAAAA,MAAM;AACjB,WAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,MAAAC,2BAAA,kBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,WAAW,iBAAiB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA,wBAAwB,yBACpB,YACA;AAAA,YACJ;AAAA,UAAA,CACD;AAAA,UACD;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,MACCA,2BAAA,kBAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,MAAA,CAAA;AAAA,IAAA,GAC7B;AAAA,EAAA;AAGN;AAEA,SAAS,cAAc;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.mjs","sources":["../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\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 = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n },\n ref\n ) => {\n const id = useId();\n return (\n <>\n <input\n ref={ref}\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);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;AAQa,MAAA,mBAAmB,IAAI,IAAI;AAAA,EACtC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;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,IACX;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,OAAO;AAAA,IACP,wBAAwB;AAAA,IACxB,MAAM;AAAA,EACR;AACF,CAAC;AAUM,MAAM,WAAW;AAAA,EACtB,CACE;AAAA,IACE,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACH,UAAM,KAAK;AACX,WAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,MAAAC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,WAAW,iBAAiB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA,wBAAwB,yBACpB,YACA;AAAA,YACJ;AAAA,UAAA,CACD;AAAA,UACD;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,MACCA,kCAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,OAAA;AAAA,IAC7B,EAAA,CAAA;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;"}
1
+ {"version":3,"file":"Checkbox.mjs","sources":["../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\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 = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n validationStyleEnabled = false,\n label,\n size,\n color,\n variant,\n className,\n ...props\n },\n ref\n ) => {\n const id = useId();\n return (\n <>\n <input\n ref={ref}\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);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;AAQa,MAAA,mBAAmB,IAAI,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,WAAW;AAAA,EACtB,CACE;AAAA,IACE,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACH,UAAM,KAAK,MAAM;AACjB,WAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,MAAAC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,WAAW,iBAAiB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA,wBAAwB,yBACpB,YACA;AAAA,YACJ;AAAA,UAAA,CACD;AAAA,UACD;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,MACCA,kCAAA,IAAA,SAAA,EAAM,SAAS,IAAK,UAAM,MAAA,CAAA;AAAA,IAAA,GAC7B;AAAA,EAAA;AAGN;AAEA,SAAS,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const inputVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'w-full select-text resize-none rounded-xl border-2 bg-input-background text-sm text-input-text shadow-none outline-0 transition-all dark:bg-input-background-dark dark:text-input-text-dark',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none] dark:border-input-border-dark dark:hover:border-input-border-hover-dark dark:focus:border-input-border-focus',\n 'aria-[invalid=true]:border-error dark:aria-[invalid=true]:border-error-dark',\n 'disabled:opacity-50',\n ],\n invisible: [\n 'w-full border-none bg-inherit text-inherit outline-none ring-0',\n ],\n },\n size: {\n md: 'px-2 py-1 max-md:py-3',\n lg: 'px-4 py-2 max-md:py-4',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled:\n 'valid:border-success invalid:border-error dark:valid:border-success-dark dark:invalid:border-error-dark',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n validationStyleEnabled: 'disabled',\n },\n});\n\nexport type InputProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n validationStyleEnabled?: boolean;\n} & Omit<VariantProps<typeof inputVariants>, 'validationStyleEnabled'>;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n { validationStyleEnabled = false, variant, size, className, ...props },\n ref\n ) => (\n <input\n ref={ref}\n className={inputVariants({\n variant,\n size,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })}\n {...props}\n />\n )\n);\n\nInput.displayName = 'Input';\n"],"names":["cva","forwardRef","jsx"],"mappings":";;;;;AAOa,MAAA,gBAAgBA,2BAAI,IAAI;AAAA,EACnC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SACE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,wBAAwB;AAAA,EAC1B;AACF,CAAC;AASM,MAAM,QAAQC,WAAA;AAAA,EACnB,CACE,EAAE,yBAAyB,OAAO,SAAS,MAAM,WAAW,GAAG,SAC/D,QAEAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,wBAAwB,yBAAyB,YAAY;AAAA,QAC7D;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,MAAM,cAAc;;;"}
1
+ {"version":3,"file":"Input.cjs","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const inputVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'w-full select-text resize-none rounded-xl border-2 bg-input-background text-sm text-input-text shadow-none outline-0 transition-all dark:bg-input-background-dark dark:text-input-text-dark',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none] dark:border-input-border-dark dark:hover:border-input-border-hover-dark dark:focus:border-input-border-focus',\n 'aria-[invalid=true]:border-error dark:aria-[invalid=true]:border-error-dark',\n 'disabled:opacity-50',\n ],\n invisible: [\n 'w-full border-none bg-inherit text-inherit outline-none ring-0',\n ],\n },\n size: {\n md: 'px-2 py-1 max-md:py-3',\n lg: 'px-4 py-2 max-md:py-4',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled:\n 'valid:border-success invalid:border-error dark:valid:border-success-dark dark:invalid:border-error-dark',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n validationStyleEnabled: 'disabled',\n },\n});\n\nexport type InputProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n validationStyleEnabled?: boolean;\n} & Omit<VariantProps<typeof inputVariants>, 'validationStyleEnabled'>;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n { validationStyleEnabled = false, variant, size, className, ...props },\n ref\n ) => (\n <input\n ref={ref}\n className={inputVariants({\n variant,\n size,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })}\n {...props}\n />\n )\n);\n\nInput.displayName = 'Input';\n"],"names":["cva","forwardRef","jsx"],"mappings":";;;;;AAOa,MAAA,gBAAgBA,2BAAI,IAAI;AAAA,EACnC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SACE;AAAA,IAAA;AAAA,EAEN;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,wBAAwB;AAAA,EAAA;AAE5B,CAAC;AASM,MAAM,QAAQC,WAAA;AAAA,EACnB,CACE,EAAE,yBAAyB,OAAO,SAAS,MAAM,WAAW,GAAG,SAC/D,QAEAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,wBAAwB,yBAAyB,YAAY;AAAA,QAC7D;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,cAAc;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.mjs","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const inputVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'w-full select-text resize-none rounded-xl border-2 bg-input-background text-sm text-input-text shadow-none outline-0 transition-all dark:bg-input-background-dark dark:text-input-text-dark',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none] dark:border-input-border-dark dark:hover:border-input-border-hover-dark dark:focus:border-input-border-focus',\n 'aria-[invalid=true]:border-error dark:aria-[invalid=true]:border-error-dark',\n 'disabled:opacity-50',\n ],\n invisible: [\n 'w-full border-none bg-inherit text-inherit outline-none ring-0',\n ],\n },\n size: {\n md: 'px-2 py-1 max-md:py-3',\n lg: 'px-4 py-2 max-md:py-4',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled:\n 'valid:border-success invalid:border-error dark:valid:border-success-dark dark:invalid:border-error-dark',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n validationStyleEnabled: 'disabled',\n },\n});\n\nexport type InputProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n validationStyleEnabled?: boolean;\n} & Omit<VariantProps<typeof inputVariants>, 'validationStyleEnabled'>;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n { validationStyleEnabled = false, variant, size, className, ...props },\n ref\n ) => (\n <input\n ref={ref}\n className={inputVariants({\n variant,\n size,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })}\n {...props}\n />\n )\n);\n\nInput.displayName = 'Input';\n"],"names":["jsx"],"mappings":";;;AAOa,MAAA,gBAAgB,IAAI,IAAI;AAAA,EACnC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SACE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,wBAAwB;AAAA,EAC1B;AACF,CAAC;AASM,MAAM,QAAQ;AAAA,EACnB,CACE,EAAE,yBAAyB,OAAO,SAAS,MAAM,WAAW,GAAG,SAC/D,QAEAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,wBAAwB,yBAAyB,YAAY;AAAA,QAC7D;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ;AAEA,MAAM,cAAc;"}
1
+ {"version":3,"file":"Input.mjs","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type InputHTMLAttributes,\n} from 'react';\n\nexport const inputVariants = cva('', {\n variants: {\n variant: {\n default: [\n 'w-full select-text resize-none rounded-xl border-2 bg-input-background text-sm text-input-text shadow-none outline-0 transition-all dark:bg-input-background-dark dark:text-input-text-dark',\n 'border-input-border hover:border-input-border-hover focus:border-input-border-focus focus:outline-0 focus:[box-shadow:none] dark:border-input-border-dark dark:hover:border-input-border-hover-dark dark:focus:border-input-border-focus',\n 'aria-[invalid=true]:border-error dark:aria-[invalid=true]:border-error-dark',\n 'disabled:opacity-50',\n ],\n invisible: [\n 'w-full border-none bg-inherit text-inherit outline-none ring-0',\n ],\n },\n size: {\n md: 'px-2 py-1 max-md:py-3',\n lg: 'px-4 py-2 max-md:py-4',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled:\n 'valid:border-success invalid:border-error dark:valid:border-success-dark dark:invalid:border-error-dark',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n validationStyleEnabled: 'disabled',\n },\n});\n\nexport type InputProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n validationStyleEnabled?: boolean;\n} & Omit<VariantProps<typeof inputVariants>, 'validationStyleEnabled'>;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n { validationStyleEnabled = false, variant, size, className, ...props },\n ref\n ) => (\n <input\n ref={ref}\n className={inputVariants({\n variant,\n size,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })}\n {...props}\n />\n )\n);\n\nInput.displayName = 'Input';\n"],"names":["jsx"],"mappings":";;;AAOa,MAAA,gBAAgB,IAAI,IAAI;AAAA,EACnC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,wBAAwB;AAAA,MACtB,UAAU;AAAA,MACV,SACE;AAAA,IAAA;AAAA,EAEN;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,wBAAwB;AAAA,EAAA;AAE5B,CAAC;AASM,MAAM,QAAQ;AAAA,EACnB,CACE,EAAE,yBAAyB,OAAO,SAAS,MAAM,WAAW,GAAG,SAC/D,QAEAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,wBAAwB,yBAAyB,YAAY;AAAA,QAC7D;AAAA,MAAA,CACD;AAAA,MACA,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputPassword.cjs","sources":["../../../src/components/Input/InputPassword.tsx"],"sourcesContent":["'use client';\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { useState, forwardRef, type MouseEventHandler } from 'react';\nimport { Input, type InputProps } from './Input';\n\ntype InputPasswordProps = Omit<InputProps, 'type'>;\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(\n (props, ref) => {\n const [isPasswordRevealed, setIsPasswordRevealed] = useState(false);\n\n const handlePasswordReveal: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsPasswordRevealed((isPasswordRevealed) => !isPasswordRevealed);\n };\n\n const EyeIconComponent = isPasswordRevealed ? EyeIcon : EyeOffIcon;\n\n return (\n <div className=\"relative\">\n <Input\n {...props}\n ref={ref}\n type={isPasswordRevealed ? 'text' : 'password'}\n />\n\n <button\n data-testid=\"eye-icon\"\n className=\"absolute right-2 h-full flex-row items-center\"\n onClick={handlePasswordReveal}\n aria-label={isPasswordRevealed ? 'Hide password' : 'Show password'}\n >\n <EyeIconComponent\n className=\"text-neutral dark:text-neutral-dark mr-2 inline-block\"\n size={20}\n />\n </button>\n </div>\n );\n }\n);\n\nInputPassword.displayName = 'InputPassword';\n"],"names":["forwardRef","useState","isPasswordRevealed","EyeIcon","EyeOffIcon","jsxs","jsx","Input"],"mappings":";;;;;;;AAQO,MAAM,gBAAgBA,WAAA;AAAA,EAC3B,CAAC,OAAO,QAAQ;AACd,UAAM,CAAC,oBAAoB,qBAAqB,IAAIC,oBAAS,KAAK;AAE5D,UAAA,uBAA6D,CAAC,MAAM;AACxE,QAAE,eAAe;AACjB,QAAE,gBAAgB;AACI,4BAAA,CAACC,wBAAuB,CAACA,mBAAkB;AAAA,IAAA;AAG7D,UAAA,mBAAmB,qBAAqBC,YAAU,UAAAC;AAGtD,WAAAC,2BAAA,kBAAA,KAAC,OAAI,EAAA,WAAU,YACb,UAAA;AAAA,MAAAC,2BAAA,kBAAA;AAAA,QAACC,uBAAA;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,MAAM,qBAAqB,SAAS;AAAA,QAAA;AAAA,MACtC;AAAA,MAEAD,2BAAA,kBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UACV,SAAS;AAAA,UACT,cAAY,qBAAqB,kBAAkB;AAAA,UAEnD,UAAAA,2BAAA,kBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,QAAA;AAAA,MACF;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;;"}
1
+ {"version":3,"file":"InputPassword.cjs","sources":["../../../src/components/Input/InputPassword.tsx"],"sourcesContent":["'use client';\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { useState, forwardRef, type MouseEventHandler } from 'react';\nimport { Input, type InputProps } from './Input';\n\ntype InputPasswordProps = Omit<InputProps, 'type'>;\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(\n (props, ref) => {\n const [isPasswordRevealed, setIsPasswordRevealed] = useState(false);\n\n const handlePasswordReveal: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsPasswordRevealed((isPasswordRevealed) => !isPasswordRevealed);\n };\n\n const EyeIconComponent = isPasswordRevealed ? EyeIcon : EyeOffIcon;\n\n return (\n <div className=\"relative\">\n <Input\n {...props}\n ref={ref}\n type={isPasswordRevealed ? 'text' : 'password'}\n />\n\n <button\n data-testid=\"eye-icon\"\n className=\"absolute right-2 h-full flex-row items-center\"\n onClick={handlePasswordReveal}\n aria-label={isPasswordRevealed ? 'Hide password' : 'Show password'}\n >\n <EyeIconComponent\n className=\"text-neutral dark:text-neutral-dark mr-2 inline-block\"\n size={20}\n />\n </button>\n </div>\n );\n }\n);\n\nInputPassword.displayName = 'InputPassword';\n"],"names":["forwardRef","useState","isPasswordRevealed","EyeIcon","EyeOffIcon","jsxs","jsx","Input"],"mappings":";;;;;;;AAQO,MAAM,gBAAgBA,WAAA;AAAA,EAC3B,CAAC,OAAO,QAAQ;AACd,UAAM,CAAC,oBAAoB,qBAAqB,IAAIC,WAAAA,SAAS,KAAK;AAE5D,UAAA,uBAA6D,CAAC,MAAM;AACxE,QAAE,eAAe;AACjB,QAAE,gBAAgB;AACI,4BAAA,CAACC,wBAAuB,CAACA,mBAAkB;AAAA,IACnE;AAEM,UAAA,mBAAmB,qBAAqBC,YAAAA,UAAUC,YAAA;AAGtD,WAAAC,2BAAA,kBAAA,KAAC,OAAI,EAAA,WAAU,YACb,UAAA;AAAA,MAAAC,2BAAA,kBAAA;AAAA,QAACC,uBAAA;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,MAAM,qBAAqB,SAAS;AAAA,QAAA;AAAA,MACtC;AAAA,MAEAD,2BAAA,kBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UACV,SAAS;AAAA,UACT,cAAY,qBAAqB,kBAAkB;AAAA,UAEnD,UAAAA,2BAAA,kBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAAA;AAGN;AAEA,cAAc,cAAc;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputPassword.mjs","sources":["../../../src/components/Input/InputPassword.tsx"],"sourcesContent":["'use client';\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { useState, forwardRef, type MouseEventHandler } from 'react';\nimport { Input, type InputProps } from './Input';\n\ntype InputPasswordProps = Omit<InputProps, 'type'>;\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(\n (props, ref) => {\n const [isPasswordRevealed, setIsPasswordRevealed] = useState(false);\n\n const handlePasswordReveal: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsPasswordRevealed((isPasswordRevealed) => !isPasswordRevealed);\n };\n\n const EyeIconComponent = isPasswordRevealed ? EyeIcon : EyeOffIcon;\n\n return (\n <div className=\"relative\">\n <Input\n {...props}\n ref={ref}\n type={isPasswordRevealed ? 'text' : 'password'}\n />\n\n <button\n data-testid=\"eye-icon\"\n className=\"absolute right-2 h-full flex-row items-center\"\n onClick={handlePasswordReveal}\n aria-label={isPasswordRevealed ? 'Hide password' : 'Show password'}\n >\n <EyeIconComponent\n className=\"text-neutral dark:text-neutral-dark mr-2 inline-block\"\n size={20}\n />\n </button>\n </div>\n );\n }\n);\n\nInputPassword.displayName = 'InputPassword';\n"],"names":["isPasswordRevealed","jsxs","jsx"],"mappings":";;;;;AAQO,MAAM,gBAAgB;AAAA,EAC3B,CAAC,OAAO,QAAQ;AACd,UAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAS,KAAK;AAE5D,UAAA,uBAA6D,CAAC,MAAM;AACxE,QAAE,eAAe;AACjB,QAAE,gBAAgB;AACI,4BAAA,CAACA,wBAAuB,CAACA,mBAAkB;AAAA,IAAA;AAG7D,UAAA,mBAAmB,qBAAqB,UAAU;AAGtD,WAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,YACb,UAAA;AAAA,MAAAC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,MAAM,qBAAqB,SAAS;AAAA,QAAA;AAAA,MACtC;AAAA,MAEAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UACV,SAAS;AAAA,UACT,cAAY,qBAAqB,kBAAkB;AAAA,UAEnD,UAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,QAAA;AAAA,MACF;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;"}
1
+ {"version":3,"file":"InputPassword.mjs","sources":["../../../src/components/Input/InputPassword.tsx"],"sourcesContent":["'use client';\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { useState, forwardRef, type MouseEventHandler } from 'react';\nimport { Input, type InputProps } from './Input';\n\ntype InputPasswordProps = Omit<InputProps, 'type'>;\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(\n (props, ref) => {\n const [isPasswordRevealed, setIsPasswordRevealed] = useState(false);\n\n const handlePasswordReveal: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsPasswordRevealed((isPasswordRevealed) => !isPasswordRevealed);\n };\n\n const EyeIconComponent = isPasswordRevealed ? EyeIcon : EyeOffIcon;\n\n return (\n <div className=\"relative\">\n <Input\n {...props}\n ref={ref}\n type={isPasswordRevealed ? 'text' : 'password'}\n />\n\n <button\n data-testid=\"eye-icon\"\n className=\"absolute right-2 h-full flex-row items-center\"\n onClick={handlePasswordReveal}\n aria-label={isPasswordRevealed ? 'Hide password' : 'Show password'}\n >\n <EyeIconComponent\n className=\"text-neutral dark:text-neutral-dark mr-2 inline-block\"\n size={20}\n />\n </button>\n </div>\n );\n }\n);\n\nInputPassword.displayName = 'InputPassword';\n"],"names":["isPasswordRevealed","jsxs","jsx"],"mappings":";;;;;AAQO,MAAM,gBAAgB;AAAA,EAC3B,CAAC,OAAO,QAAQ;AACd,UAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAS,KAAK;AAE5D,UAAA,uBAA6D,CAAC,MAAM;AACxE,QAAE,eAAe;AACjB,QAAE,gBAAgB;AACI,4BAAA,CAACA,wBAAuB,CAACA,mBAAkB;AAAA,IACnE;AAEM,UAAA,mBAAmB,qBAAqB,UAAU;AAGtD,WAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,YACb,UAAA;AAAA,MAAAC,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,MAAM,qBAAqB,SAAS;AAAA,QAAA;AAAA,MACtC;AAAA,MAEAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UACV,SAAS;AAAA,UACT,cAAY,qBAAqB,kBAAkB;AAAA,UAEnD,UAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAAA;AAGN;AAEA,cAAc,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Link.cjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n outline:\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0',\n default:\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current=true]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n };\n\nconst isExternal = (href = ''): boolean => /^https?:\\/\\//.test(href);\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n isExternalLink: isExternalLinkProp,\n href,\n ...props\n },\n ref\n ) => {\n const isChildrenString = typeof children === 'string';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isExternal(href));\n\n return (\n <a\n href={href}\n ref={ref}\n aria-label={label}\n aria-current={isActive}\n className={linkVariants({\n variant,\n color,\n className,\n })}\n {...props}\n >\n {children}\n {isExternalLink && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n </a>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["cva","forwardRef","jsxs","jsx","ExternalLink"],"mappings":";;;;;;AAQA,MAAM,eAAeA,uBAAA;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAYA,MAAM,aAAa,CAAC,OAAO,OAAgB,eAAe,KAAK,IAAI;AAE5D,MAAM,OAAOC,WAAA;AAAA,EAClB,CACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACG,UAAA,mBAAmB,OAAO,aAAa;AACvC,UAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,WAAW,IAAI;AAGjB,WAAAC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,gBAAc;AAAA,QACd,WAAW,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,kBACCC,2BAAAA,kBAAAA,IAACC,YAAAA,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAI3D;AACF;AAEA,KAAK,cAAc;;"}
1
+ {"version":3,"file":"Link.cjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n outline:\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0',\n default:\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current=true]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n };\n\nconst isExternal = (href = ''): boolean => /^https?:\\/\\//.test(href);\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n isExternalLink: isExternalLinkProp,\n href,\n ...props\n },\n ref\n ) => {\n const isChildrenString = typeof children === 'string';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isExternal(href));\n\n return (\n <a\n href={href}\n ref={ref}\n aria-label={label}\n aria-current={isActive}\n className={linkVariants({\n variant,\n color,\n className,\n })}\n {...props}\n >\n {children}\n {isExternalLink && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n </a>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["cva","forwardRef","jsxs","jsx","ExternalLink"],"mappings":";;;;;;AAQA,MAAM,eAAeA,uBAAA;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAYA,MAAM,aAAa,CAAC,OAAO,OAAgB,eAAe,KAAK,IAAI;AAE5D,MAAM,OAAOC,WAAA;AAAA,EAClB,CACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACG,UAAA,mBAAmB,OAAO,aAAa;AACvC,UAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,WAAW,IAAI;AAGjB,WAAAC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,gBAAc;AAAA,QACd,WAAW,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,kBACCC,2BAAAA,kBAAAA,IAACC,YAAAA,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEvD;AAAA,EAAA;AAGN;AAEA,KAAK,cAAc;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Link.mjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n outline:\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0',\n default:\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current=true]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n };\n\nconst isExternal = (href = ''): boolean => /^https?:\\/\\//.test(href);\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n isExternalLink: isExternalLinkProp,\n href,\n ...props\n },\n ref\n ) => {\n const isChildrenString = typeof children === 'string';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isExternal(href));\n\n return (\n <a\n href={href}\n ref={ref}\n aria-label={label}\n aria-current={isActive}\n className={linkVariants({\n variant,\n color,\n className,\n })}\n {...props}\n >\n {children}\n {isExternalLink && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n </a>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["jsxs","jsx"],"mappings":";;;;AAQA,MAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAYA,MAAM,aAAa,CAAC,OAAO,OAAgB,eAAe,KAAK,IAAI;AAE5D,MAAM,OAAO;AAAA,EAClB,CACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACG,UAAA,mBAAmB,OAAO,aAAa;AACvC,UAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,WAAW,IAAI;AAGjB,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,gBAAc;AAAA,QACd,WAAW,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,kBACCC,kCAAAA,IAAC,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAI3D;AACF;AAEA,KAAK,cAAc;"}
1
+ {"version":3,"file":"Link.mjs","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink } from 'lucide-react';\nimport {\n forwardRef,\n type DetailedHTMLProps,\n type AnchorHTMLAttributes,\n} from 'react';\n\nconst linkVariants = cva(\n 'gap-3 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n outline:\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0',\n default:\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent hover:underline dark:bg-transparent hover:dark:bg-transparent',\n 'invisible-link':\n 'h-auto justify-start border-inherit bg-transparent px-1 underline-offset-4 hover:bg-transparent dark:bg-transparent hover:dark:bg-transparent',\n\n button:\n 'rounded-lg text-text-opposite dark:text-text-opposite-dark min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n 'button-outlined':\n 'rounded-lg border-[1.5px] bg-opacity-0 hover:bg-opacity-30 dark:bg-opacity-0 min-h-8 px-6 max-md:py-2 text-sm flex items-center justify-center gap-2 whitespace-nowrap font-medium transition focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n hoverable:\n 'rounded-lg border-none bg-opacity-0 transition hover:bg-opacity-10 aria-[current=true]:bg-opacity-5 dark:border-none dark:bg-opacity-0 dark:hover:bg-opacity-10',\n },\n color: {\n primary:\n 'border-primary bg-primary text-primary hover:bg-primary-500 dark:border-primary-dark dark:bg-primary-dark dark:text-primary-dark hover:dark:bg-primary-300',\n secondary:\n 'border-secondary bg-secondary text-secondary hover:bg-secondary-300 dark:border-secondary-dark dark:bg-secondary-dark dark:text-secondary-dark hover:dark:bg-secondary-100',\n destructive:\n 'border-destructive bg-destructive text-destructive hover:bg-destructive-500 dark:border-destructive-dark dark:bg-destructive-dark hover:dark:bg-destructive-200',\n neutral:\n 'border-neutral bg-neutral text-neutral hover:bg-neutral-600 dark:border-neutral-dark dark:bg-neutral-dark dark:text-neutral-dark hover:dark:bg-neutral-400',\n light: 'border-white bg-white text-white hover:bg-neutral-500',\n dark: 'border-neutral-800 bg-neutral-800 text-neutral-800 hover:bg-neutral-900 dark:hover:bg-neutral-700',\n text: 'border-text bg-text text-text hover:opacity-80 dark:border-text-dark dark:bg-text-dark dark:text-text-dark',\n custom: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isActive?: boolean;\n };\n\nconst isExternal = (href = ''): boolean => /^https?:\\/\\//.test(href);\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n variant = 'default',\n color = 'primary',\n children,\n label,\n className,\n isActive,\n isExternalLink: isExternalLinkProp,\n href,\n ...props\n },\n ref\n ) => {\n const isChildrenString = typeof children === 'string';\n const isExternalLink =\n isExternalLinkProp === true ||\n (isChildrenString &&\n typeof isExternalLinkProp === 'undefined' &&\n isExternal(href));\n\n return (\n <a\n href={href}\n ref={ref}\n aria-label={label}\n aria-current={isActive}\n className={linkVariants({\n variant,\n color,\n className,\n })}\n {...props}\n >\n {children}\n {isExternalLink && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n </a>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["jsxs","jsx"],"mappings":";;;;AAQA,MAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,kBACE;AAAA,QAEF,QACE;AAAA,QACF,mBACE;AAAA,QACF,WACE;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAYA,MAAM,aAAa,CAAC,OAAO,OAAgB,eAAe,KAAK,IAAI;AAE5D,MAAM,OAAO;AAAA,EAClB,CACE;AAAA,IACE,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA,GAAG;AAAA,KAEL,QACG;AACG,UAAA,mBAAmB,OAAO,aAAa;AACvC,UAAA,iBACJ,uBAAuB,QACtB,oBACC,OAAO,uBAAuB,eAC9B,WAAW,IAAI;AAGjB,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,gBAAc;AAAA,QACd,WAAW,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,kBACCC,kCAAAA,IAAC,cAAa,EAAA,WAAU,2BAA2B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEvD;AAAA,EAAA;AAGN;AAEA,KAAK,cAAc;"}