@intlayer/design-system 3.5.5 → 3.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/.vite/manifest.json +297 -54
  2. package/dist/CodeBlockShiki-BlmZyrr7.cjs +29 -0
  3. package/dist/CodeBlockShiki-BlmZyrr7.cjs.map +1 -0
  4. package/dist/CodeBlockShiki-CcpV9SVi.js +29 -0
  5. package/dist/CodeBlockShiki-CcpV9SVi.js.map +1 -0
  6. package/dist/Form-0D7KBafQ.cjs +311 -0
  7. package/dist/Form-0D7KBafQ.cjs.map +1 -0
  8. package/dist/Form-7BqwvjVI.cjs +320 -0
  9. package/dist/Form-7BqwvjVI.cjs.map +1 -0
  10. package/dist/Form-B2UufQRJ.cjs +319 -0
  11. package/dist/Form-B2UufQRJ.cjs.map +1 -0
  12. package/dist/Form-BB0kpER9.cjs +301 -0
  13. package/dist/Form-BB0kpER9.cjs.map +1 -0
  14. package/dist/Form-BDcoNTLV.cjs.map +1 -1
  15. package/dist/Form-BTogr-fp.js +312 -0
  16. package/dist/Form-BTogr-fp.js.map +1 -0
  17. package/dist/Form-BVkkvSKP.js +312 -0
  18. package/dist/Form-BVkkvSKP.js.map +1 -0
  19. package/dist/Form-Be6Uhb5-.js +312 -0
  20. package/dist/Form-Be6Uhb5-.js.map +1 -0
  21. package/dist/Form-BmQQnl-6.js +312 -0
  22. package/dist/Form-BmQQnl-6.js.map +1 -0
  23. package/dist/Form-Bp_ubH9I.cjs +311 -0
  24. package/dist/Form-Bp_ubH9I.cjs.map +1 -0
  25. package/dist/Form-BtqRbgLu.cjs +311 -0
  26. package/dist/Form-BtqRbgLu.cjs.map +1 -0
  27. package/dist/Form-COVZyto7.cjs +311 -0
  28. package/dist/Form-COVZyto7.cjs.map +1 -0
  29. package/dist/Form-CVD_3nCD.js +312 -0
  30. package/dist/Form-CVD_3nCD.js.map +1 -0
  31. package/dist/Form-Cfklj1_H.js +320 -0
  32. package/dist/Form-Cfklj1_H.js.map +1 -0
  33. package/dist/Form-ClAAiVNm.cjs +311 -0
  34. package/dist/Form-ClAAiVNm.cjs.map +1 -0
  35. package/dist/Form-DGLgTAdY.js +302 -0
  36. package/dist/Form-DGLgTAdY.js.map +1 -0
  37. package/dist/Form-DhsgC7kB.js.map +1 -1
  38. package/dist/Form-OK9zfg6E.js +321 -0
  39. package/dist/Form-OK9zfg6E.js.map +1 -0
  40. package/dist/components/Accordion/Accordion.cjs +7 -15
  41. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  42. package/dist/components/Accordion/Accordion.d.ts +0 -1
  43. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  44. package/dist/components/Accordion/Accordion.mjs +8 -16
  45. package/dist/components/Accordion/Accordion.mjs.map +1 -1
  46. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.cjs +1 -1
  47. package/dist/components/Auth/ChangePasswordForm/ChangePasswordForm.mjs +1 -1
  48. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.cjs +1 -1
  49. package/dist/components/Auth/ResetPasswordForm/ResetPasswordForm.mjs +1 -1
  50. package/dist/components/Auth/SignInForm/SignInForm.cjs +1 -1
  51. package/dist/components/Auth/SignInForm/SignInForm.mjs +1 -1
  52. package/dist/components/Auth/SignUpForm/SignUpForm.cjs +1 -1
  53. package/dist/components/Auth/SignUpForm/SignUpForm.mjs +1 -1
  54. package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts +11 -11
  55. package/dist/components/Breadcrumb/index.cjs +5 -2
  56. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  57. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  58. package/dist/components/Breadcrumb/index.mjs +5 -2
  59. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  60. package/dist/components/Button/Button.cjs +47 -25
  61. package/dist/components/Button/Button.cjs.map +1 -1
  62. package/dist/components/Button/Button.d.ts +2 -0
  63. package/dist/components/Button/Button.d.ts.map +1 -1
  64. package/dist/components/Button/Button.mjs +47 -25
  65. package/dist/components/Button/Button.mjs.map +1 -1
  66. package/dist/components/ClickOutsideDiv/index.cjs +26 -0
  67. package/dist/components/ClickOutsideDiv/index.cjs.map +1 -0
  68. package/dist/components/ClickOutsideDiv/index.d.ts +6 -0
  69. package/dist/components/ClickOutsideDiv/index.d.ts.map +1 -0
  70. package/dist/components/ClickOutsideDiv/index.mjs +26 -0
  71. package/dist/components/ClickOutsideDiv/index.mjs.map +1 -0
  72. package/dist/components/Container/index.cjs +1 -1
  73. package/dist/components/Container/index.cjs.map +1 -1
  74. package/dist/components/Container/index.mjs +1 -1
  75. package/dist/components/Container/index.mjs.map +1 -1
  76. package/dist/components/ContentEditor/ContentEditorCode.cjs +78 -0
  77. package/dist/components/ContentEditor/ContentEditorCode.cjs.map +1 -0
  78. package/dist/components/ContentEditor/ContentEditorCode.d.ts +11 -0
  79. package/dist/components/ContentEditor/ContentEditorCode.d.ts.map +1 -0
  80. package/dist/components/ContentEditor/ContentEditorCode.mjs +78 -0
  81. package/dist/components/ContentEditor/ContentEditorCode.mjs.map +1 -0
  82. package/dist/components/ContentEditor/ContentEditorTextArea.cjs +30 -26
  83. package/dist/components/ContentEditor/ContentEditorTextArea.cjs.map +1 -1
  84. package/dist/components/ContentEditor/ContentEditorTextArea.d.ts +2 -1
  85. package/dist/components/ContentEditor/ContentEditorTextArea.d.ts.map +1 -1
  86. package/dist/components/ContentEditor/ContentEditorTextArea.mjs +30 -26
  87. package/dist/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  88. package/dist/components/CopyToClipboard/index.cjs +1 -1
  89. package/dist/components/CopyToClipboard/index.cjs.map +1 -1
  90. package/dist/components/CopyToClipboard/index.d.ts.map +1 -1
  91. package/dist/components/CopyToClipboard/index.mjs +1 -1
  92. package/dist/components/CopyToClipboard/index.mjs.map +1 -1
  93. package/dist/components/DictionaryEditor/ItemLayout.cjs +0 -1
  94. package/dist/components/DictionaryEditor/ItemLayout.cjs.map +1 -1
  95. package/dist/components/DictionaryEditor/ItemLayout.d.ts.map +1 -1
  96. package/dist/components/DictionaryEditor/ItemLayout.mjs +0 -1
  97. package/dist/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  98. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +4 -4
  99. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
  100. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +4 -4
  101. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
  102. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +5 -3
  103. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  104. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +2 -0
  105. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  106. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +5 -3
  107. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  108. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +1 -1
  109. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
  110. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +162 -70
  111. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  112. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  113. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +164 -72
  114. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  115. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +123 -0
  116. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  117. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +14 -0
  118. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  119. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +123 -0
  120. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  121. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.cjs +9 -2
  122. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.cjs.map +1 -1
  123. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs +15 -0
  124. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs.map +1 -1
  125. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +1 -0
  126. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
  127. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs +15 -0
  128. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  129. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts +6 -0
  130. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts.map +1 -1
  131. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs +9 -2
  132. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
  133. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +13 -5
  134. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  135. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +2 -0
  136. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  137. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +13 -5
  138. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  139. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs +8 -6
  140. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
  141. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts +2 -0
  142. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts.map +1 -1
  143. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs +8 -6
  144. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
  145. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs +129 -66
  146. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs.map +1 -1
  147. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts +4 -2
  148. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts.map +1 -1
  149. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs +128 -65
  150. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs.map +1 -1
  151. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +1 -1
  152. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
  153. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelector.d.ts +8 -0
  154. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelector.d.ts.map +1 -0
  155. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelectorContext.d.ts +13 -0
  156. package/dist/components/DictionaryFieldEditor/LocaleSelector/LocaleSelectorContext.d.ts.map +1 -0
  157. package/dist/components/DictionaryFieldEditor/LocaleSelector/localeSelector.content.d.ts +9 -0
  158. package/dist/components/DictionaryFieldEditor/LocaleSelector/localeSelector.content.d.ts.map +1 -0
  159. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +15 -19
  160. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  161. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  162. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +15 -19
  163. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  164. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +24 -11
  165. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  166. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts +2 -0
  167. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
  168. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +24 -11
  169. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  170. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +2 -2
  171. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
  172. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs +2 -2
  173. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  174. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +3 -5
  175. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  176. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  177. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +4 -6
  178. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  179. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +13 -13
  180. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  181. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +13 -13
  182. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  183. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs +73 -0
  184. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs.map +1 -0
  185. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts +7 -0
  186. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts.map +1 -0
  187. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +73 -0
  188. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -0
  189. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +37 -0
  190. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs.map +1 -0
  191. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts +14 -0
  192. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts.map +1 -0
  193. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +37 -0
  194. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -0
  195. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.cjs +8 -0
  196. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.cjs.map +1 -0
  197. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.d.ts +3 -0
  198. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.d.ts.map +1 -0
  199. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.mjs +8 -0
  200. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.mjs.map +1 -0
  201. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs +54 -0
  202. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs.map +1 -0
  203. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +10 -0
  204. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts.map +1 -0
  205. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs +55 -0
  206. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs.map +1 -0
  207. package/dist/components/DictionaryFieldEditor/index.cjs +5 -0
  208. package/dist/components/DictionaryFieldEditor/index.cjs.map +1 -1
  209. package/dist/components/DictionaryFieldEditor/index.d.ts +1 -0
  210. package/dist/components/DictionaryFieldEditor/index.d.ts.map +1 -1
  211. package/dist/components/DictionaryFieldEditor/index.mjs +6 -1
  212. package/dist/components/DictionaryFieldEditor/index.mjs.map +1 -1
  213. package/dist/components/EditableField/EditableFieldInput.cjs +5 -1
  214. package/dist/components/EditableField/EditableFieldInput.cjs.map +1 -1
  215. package/dist/components/EditableField/EditableFieldInput.d.ts.map +1 -1
  216. package/dist/components/EditableField/EditableFieldInput.mjs +6 -2
  217. package/dist/components/EditableField/EditableFieldInput.mjs.map +1 -1
  218. package/dist/components/EditableField/EditableFieldTextArea.cjs +2 -8
  219. package/dist/components/EditableField/EditableFieldTextArea.cjs.map +1 -1
  220. package/dist/components/EditableField/EditableFieldTextArea.d.ts.map +1 -1
  221. package/dist/components/EditableField/EditableFieldTextArea.mjs +2 -8
  222. package/dist/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  223. package/dist/components/Form/Form.cjs +1 -1
  224. package/dist/components/Form/Form.d.ts +2 -0
  225. package/dist/components/Form/Form.d.ts.map +1 -1
  226. package/dist/components/Form/Form.mjs +1 -1
  227. package/dist/components/Form/FormLabel.cjs +6 -2
  228. package/dist/components/Form/FormLabel.cjs.map +1 -1
  229. package/dist/components/Form/FormLabel.d.ts.map +1 -1
  230. package/dist/components/Form/FormLabel.mjs +6 -2
  231. package/dist/components/Form/FormLabel.mjs.map +1 -1
  232. package/dist/components/Form/elements/AutoSizeTextAreaElement.cjs +7 -0
  233. package/dist/components/Form/elements/AutoSizeTextAreaElement.cjs.map +1 -0
  234. package/dist/components/Form/elements/AutoSizeTextAreaElement.d.ts +9 -0
  235. package/dist/components/Form/elements/AutoSizeTextAreaElement.d.ts.map +1 -0
  236. package/dist/components/Form/elements/AutoSizeTextAreaElement.mjs +7 -0
  237. package/dist/components/Form/elements/AutoSizeTextAreaElement.mjs.map +1 -0
  238. package/dist/components/Form/elements/CheckboxElement.cjs +1 -1
  239. package/dist/components/Form/elements/CheckboxElement.mjs +1 -1
  240. package/dist/components/Form/elements/EditableFieldInputElement.cjs +1 -1
  241. package/dist/components/Form/elements/EditableFieldInputElement.d.ts +1 -1
  242. package/dist/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
  243. package/dist/components/Form/elements/EditableFieldInputElement.mjs +1 -1
  244. package/dist/components/Form/elements/EditableFieldTextAreaElement.cjs +1 -1
  245. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts +1 -1
  246. package/dist/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
  247. package/dist/components/Form/elements/EditableFieldTextAreaElement.mjs +1 -1
  248. package/dist/components/Form/elements/FormElement.cjs +1 -1
  249. package/dist/components/Form/elements/FormElement.mjs +1 -1
  250. package/dist/components/Form/elements/InputElement.cjs +1 -1
  251. package/dist/components/Form/elements/InputElement.mjs +1 -1
  252. package/dist/components/Form/elements/InputPasswordElement.cjs +1 -1
  253. package/dist/components/Form/elements/InputPasswordElement.mjs +1 -1
  254. package/dist/components/Form/elements/MultiselectElement.cjs +1 -1
  255. package/dist/components/Form/elements/MultiselectElement.mjs +1 -1
  256. package/dist/components/Form/elements/SelectElement.cjs +1 -1
  257. package/dist/components/Form/elements/SelectElement.d.ts.map +1 -1
  258. package/dist/components/Form/elements/SelectElement.mjs +1 -1
  259. package/dist/components/Form/elements/SwitchSelectorElement.cjs +1 -1
  260. package/dist/components/Form/elements/SwitchSelectorElement.mjs +1 -1
  261. package/dist/components/Form/elements/TextAreaElement.cjs +1 -1
  262. package/dist/components/Form/elements/TextAreaElement.mjs +1 -1
  263. package/dist/components/Form/elements/index.cjs +1 -1
  264. package/dist/components/Form/elements/index.mjs +1 -1
  265. package/dist/components/Form/index.cjs +1 -1
  266. package/dist/components/Form/index.mjs +1 -1
  267. package/dist/components/Form/layout/FormItemLayout.cjs +1 -1
  268. package/dist/components/Form/layout/FormItemLayout.d.ts.map +1 -1
  269. package/dist/components/Form/layout/FormItemLayout.mjs +1 -1
  270. package/dist/components/Form/layout/index.cjs +1 -1
  271. package/dist/components/Form/layout/index.mjs +1 -1
  272. package/dist/components/IDE/Code.cjs +77 -0
  273. package/dist/components/IDE/Code.cjs.map +1 -0
  274. package/dist/components/IDE/Code.d.ts +18 -0
  275. package/dist/components/IDE/Code.d.ts.map +1 -0
  276. package/dist/components/IDE/Code.mjs +77 -0
  277. package/dist/components/IDE/Code.mjs.map +1 -0
  278. package/dist/components/IDE/CodeBlock.cjs +54 -0
  279. package/dist/components/IDE/CodeBlock.cjs.map +1 -0
  280. package/dist/components/IDE/CodeBlock.d.ts +12 -0
  281. package/dist/components/IDE/CodeBlock.d.ts.map +1 -0
  282. package/dist/components/IDE/CodeBlock.mjs +54 -0
  283. package/dist/components/IDE/CodeBlock.mjs.map +1 -0
  284. package/dist/components/IDE/CodeBlockClient.cjs +55 -0
  285. package/dist/components/IDE/CodeBlockClient.cjs.map +1 -0
  286. package/dist/components/IDE/CodeBlockClient.mjs +55 -0
  287. package/dist/components/IDE/CodeBlockClient.mjs.map +1 -0
  288. package/dist/components/IDE/CodeBlockLoader.cjs +28 -0
  289. package/dist/components/IDE/CodeBlockLoader.cjs.map +1 -0
  290. package/dist/components/IDE/CodeBlockLoader.d.ts +4 -0
  291. package/dist/components/IDE/CodeBlockLoader.d.ts.map +1 -0
  292. package/dist/components/IDE/CodeBlockLoader.mjs +28 -0
  293. package/dist/components/IDE/CodeBlockLoader.mjs.map +1 -0
  294. package/dist/components/IDE/CodeBlockServer.cjs +53 -0
  295. package/dist/components/IDE/CodeBlockServer.cjs.map +1 -0
  296. package/dist/components/IDE/CodeBlockServer.d.ts +12 -0
  297. package/dist/components/IDE/CodeBlockServer.d.ts.map +1 -0
  298. package/dist/components/IDE/CodeBlockServer.mjs +53 -0
  299. package/dist/components/IDE/CodeBlockServer.mjs.map +1 -0
  300. package/dist/components/IDE/CodeBlockShiki.d.ts +3 -0
  301. package/dist/components/IDE/CodeBlockShiki.d.ts.map +1 -0
  302. package/dist/components/IDE/CodeBlockclient.d.ts +12 -0
  303. package/dist/components/IDE/CodeBlockclient.d.ts.map +1 -0
  304. package/dist/components/IDE/CodeConditionalRenderer.cjs +20 -0
  305. package/dist/components/IDE/CodeConditionalRenderer.cjs.map +1 -0
  306. package/dist/components/IDE/CodeConditionalRenderer.d.ts +4 -0
  307. package/dist/components/IDE/CodeConditionalRenderer.d.ts.map +1 -0
  308. package/dist/components/IDE/CodeConditionalRenderer.mjs +20 -0
  309. package/dist/components/IDE/CodeConditionalRenderer.mjs.map +1 -0
  310. package/dist/components/IDE/CodeContext.cjs +57 -0
  311. package/dist/components/IDE/CodeContext.cjs.map +1 -0
  312. package/dist/components/IDE/CodeContext.d.ts +26 -0
  313. package/dist/components/IDE/CodeContext.d.ts.map +1 -0
  314. package/dist/components/IDE/CodeContext.mjs +57 -0
  315. package/dist/components/IDE/CodeContext.mjs.map +1 -0
  316. package/dist/components/IDE/CodeFormatSelector.cjs +30 -0
  317. package/dist/components/IDE/CodeFormatSelector.cjs.map +1 -0
  318. package/dist/components/IDE/CodeFormatSelector.d.ts +3 -0
  319. package/dist/components/IDE/CodeFormatSelector.d.ts.map +1 -0
  320. package/dist/components/IDE/CodeFormatSelector.mjs +30 -0
  321. package/dist/components/IDE/CodeFormatSelector.mjs.map +1 -0
  322. package/dist/components/IDE/CodeRenderer.cjs +27 -0
  323. package/dist/components/IDE/CodeRenderer.cjs.map +1 -0
  324. package/dist/components/IDE/CodeRenderer.d.ts +5 -0
  325. package/dist/components/IDE/CodeRenderer.d.ts.map +1 -0
  326. package/dist/components/IDE/CodeRenderer.mjs +27 -0
  327. package/dist/components/IDE/CodeRenderer.mjs.map +1 -0
  328. package/dist/components/IDE/ContentDeclarationFormatSelector.cjs +28 -0
  329. package/dist/components/IDE/ContentDeclarationFormatSelector.cjs.map +1 -0
  330. package/dist/components/IDE/ContentDeclarationFormatSelector.d.ts +3 -0
  331. package/dist/components/IDE/ContentDeclarationFormatSelector.d.ts.map +1 -0
  332. package/dist/components/IDE/ContentDeclarationFormatSelector.mjs +28 -0
  333. package/dist/components/IDE/ContentDeclarationFormatSelector.mjs.map +1 -0
  334. package/dist/components/IDE/EditableCodeBlock.d.ts +9 -0
  335. package/dist/components/IDE/EditableCodeBlock.d.ts.map +1 -0
  336. package/dist/components/IDE/MarkDownRender.cjs +2 -3
  337. package/dist/components/IDE/MarkDownRender.cjs.map +1 -1
  338. package/dist/components/IDE/MarkDownRender.d.ts.map +1 -1
  339. package/dist/components/IDE/MarkDownRender.mjs +1 -2
  340. package/dist/components/IDE/MarkDownRender.mjs.map +1 -1
  341. package/dist/components/IDE/PackageManagerSelector.cjs +20 -0
  342. package/dist/components/IDE/PackageManagerSelector.cjs.map +1 -0
  343. package/dist/components/IDE/PackageManagerSelector.d.ts +3 -0
  344. package/dist/components/IDE/PackageManagerSelector.d.ts.map +1 -0
  345. package/dist/components/IDE/PackageManagerSelector.mjs +20 -0
  346. package/dist/components/IDE/PackageManagerSelector.mjs.map +1 -0
  347. package/dist/components/IDE/index.cjs +2 -2
  348. package/dist/components/IDE/index.d.ts +1 -1
  349. package/dist/components/IDE/index.d.ts.map +1 -1
  350. package/dist/components/IDE/index.mjs +1 -1
  351. package/dist/components/Link/Link.cjs +3 -4
  352. package/dist/components/Link/Link.cjs.map +1 -1
  353. package/dist/components/Link/Link.d.ts +1 -1
  354. package/dist/components/Link/Link.d.ts.map +1 -1
  355. package/dist/components/Link/Link.mjs +3 -4
  356. package/dist/components/Link/Link.mjs.map +1 -1
  357. package/dist/components/Loader/index.cjs +6 -1
  358. package/dist/components/Loader/index.cjs.map +1 -1
  359. package/dist/components/Loader/index.content.cjs +23 -0
  360. package/dist/components/Loader/index.content.cjs.map +1 -0
  361. package/dist/components/Loader/index.content.d.ts +8 -0
  362. package/dist/components/Loader/index.content.d.ts.map +1 -0
  363. package/dist/components/Loader/index.content.mjs +23 -0
  364. package/dist/components/Loader/index.content.mjs.map +1 -0
  365. package/dist/components/Loader/index.d.ts +2 -2
  366. package/dist/components/Loader/index.d.ts.map +1 -1
  367. package/dist/components/Loader/index.mjs +6 -1
  368. package/dist/components/Loader/index.mjs.map +1 -1
  369. package/dist/components/LocaleSwitcherContentDropDown/LocaleSelectorContext.d.ts +13 -0
  370. package/dist/components/LocaleSwitcherContentDropDown/LocaleSelectorContext.d.ts.map +1 -0
  371. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +218 -0
  372. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -0
  373. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts +8 -0
  374. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -0
  375. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +218 -0
  376. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -0
  377. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +42 -0
  378. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs.map +1 -0
  379. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts +15 -0
  380. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts.map +1 -0
  381. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +42 -0
  382. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -0
  383. package/dist/components/LocaleSwitcherContentDropDown/index.cjs +8 -0
  384. package/dist/components/LocaleSwitcherContentDropDown/index.cjs.map +1 -0
  385. package/dist/components/LocaleSwitcherContentDropDown/index.d.ts +3 -0
  386. package/dist/components/LocaleSwitcherContentDropDown/index.d.ts.map +1 -0
  387. package/dist/components/LocaleSwitcherContentDropDown/index.mjs +8 -0
  388. package/dist/components/LocaleSwitcherContentDropDown/index.mjs.map +1 -0
  389. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs +118 -0
  390. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs.map +1 -0
  391. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +18 -0
  392. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -0
  393. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs +119 -0
  394. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -0
  395. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +14 -22
  396. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  397. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  398. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +14 -22
  399. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  400. package/dist/components/MarkDownRender/index.cjs +59 -30
  401. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  402. package/dist/components/MarkDownRender/index.d.ts +2 -0
  403. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  404. package/dist/components/MarkDownRender/index.mjs +60 -31
  405. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  406. package/dist/components/Modal/Modal.cjs +21 -13
  407. package/dist/components/Modal/Modal.cjs.map +1 -1
  408. package/dist/components/Modal/Modal.d.ts +2 -2
  409. package/dist/components/Modal/Modal.d.ts.map +1 -1
  410. package/dist/components/Modal/Modal.mjs +22 -14
  411. package/dist/components/Modal/Modal.mjs.map +1 -1
  412. package/dist/components/SwitchSelector/index.cjs +4 -0
  413. package/dist/components/SwitchSelector/index.cjs.map +1 -1
  414. package/dist/components/SwitchSelector/index.d.ts.map +1 -1
  415. package/dist/components/SwitchSelector/index.mjs +5 -1
  416. package/dist/components/SwitchSelector/index.mjs.map +1 -1
  417. package/dist/components/index.cjs +17 -5
  418. package/dist/components/index.cjs.map +1 -1
  419. package/dist/components/index.d.ts +3 -1
  420. package/dist/components/index.d.ts.map +1 -1
  421. package/dist/components/index.mjs +16 -4
  422. package/dist/components/index.mjs.map +1 -1
  423. package/dist/hooks/index.cjs +9 -1
  424. package/dist/hooks/index.cjs.map +1 -1
  425. package/dist/hooks/index.mjs +10 -2
  426. package/dist/hooks/intlayerAPIHooks.cjs +82 -5
  427. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  428. package/dist/hooks/intlayerAPIHooks.d.ts +13 -2
  429. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  430. package/dist/hooks/intlayerAPIHooks.mjs +82 -5
  431. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  432. package/dist/hooks/useAsync/useAsync.cjs +81 -78
  433. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  434. package/dist/hooks/useAsync/useAsync.d.ts +5 -25
  435. package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
  436. package/dist/hooks/useAsync/useAsync.mjs +81 -78
  437. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  438. package/dist/hooks/useAsync/useAsyncStateStore.cjs +3 -7
  439. package/dist/hooks/useAsync/useAsyncStateStore.cjs.map +1 -1
  440. package/dist/hooks/useAsync/useAsyncStateStore.d.ts +1 -1
  441. package/dist/hooks/useAsync/useAsyncStateStore.d.ts.map +1 -1
  442. package/dist/hooks/useAsync/useAsyncStateStore.mjs +3 -7
  443. package/dist/hooks/useAsync/useAsyncStateStore.mjs.map +1 -1
  444. package/dist/hooks/useGetAllDictionaries.cjs +5 -3
  445. package/dist/hooks/useGetAllDictionaries.cjs.map +1 -1
  446. package/dist/hooks/useGetAllDictionaries.d.ts +4 -1
  447. package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
  448. package/dist/hooks/useGetAllDictionaries.mjs +5 -3
  449. package/dist/hooks/useGetAllDictionaries.mjs.map +1 -1
  450. package/dist/hooks/useIntlayerAPI.d.ts +12 -2
  451. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  452. package/dist/hooks/usePersistedStore.cjs +22 -8
  453. package/dist/hooks/usePersistedStore.cjs.map +1 -1
  454. package/dist/hooks/usePersistedStore.d.ts.map +1 -1
  455. package/dist/hooks/usePersistedStore.mjs +22 -8
  456. package/dist/hooks/usePersistedStore.mjs.map +1 -1
  457. package/dist/libs/intlayer-api/ai.cjs +43 -3
  458. package/dist/libs/intlayer-api/ai.cjs.map +1 -1
  459. package/dist/libs/intlayer-api/ai.d.ts +11 -3
  460. package/dist/libs/intlayer-api/ai.d.ts.map +1 -1
  461. package/dist/libs/intlayer-api/ai.mjs +43 -3
  462. package/dist/libs/intlayer-api/ai.mjs.map +1 -1
  463. package/dist/libs/intlayer-api/dictionary.cjs +2 -2
  464. package/dist/libs/intlayer-api/dictionary.cjs.map +1 -1
  465. package/dist/libs/intlayer-api/dictionary.d.ts +3 -3
  466. package/dist/libs/intlayer-api/dictionary.d.ts.map +1 -1
  467. package/dist/libs/intlayer-api/dictionary.mjs +2 -2
  468. package/dist/libs/intlayer-api/dictionary.mjs.map +1 -1
  469. package/dist/libs/intlayer-api/index.cjs +3 -1
  470. package/dist/libs/intlayer-api/index.cjs.map +1 -1
  471. package/dist/libs/intlayer-api/index.d.ts +24 -4
  472. package/dist/libs/intlayer-api/index.d.ts.map +1 -1
  473. package/dist/libs/intlayer-api/index.mjs +3 -1
  474. package/dist/libs/intlayer-api/index.mjs.map +1 -1
  475. package/dist/libs/intlayer-api/tag.cjs +52 -0
  476. package/dist/libs/intlayer-api/tag.cjs.map +1 -0
  477. package/dist/libs/intlayer-api/tag.d.ts +16 -0
  478. package/dist/libs/intlayer-api/tag.d.ts.map +1 -0
  479. package/dist/libs/intlayer-api/tag.mjs +52 -0
  480. package/dist/libs/intlayer-api/tag.mjs.map +1 -0
  481. package/dist/tailwind.css +1 -1
  482. package/package.json +18 -19
@@ -1,40 +1,33 @@
1
- "use client";
2
1
  import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
3
2
  import Markdown from "markdown-to-jsx";
4
3
  import { cn } from "../../utils/cn.mjs";
5
- import { Container } from "../Container/index.mjs";
6
- import { H1, H2, H3 } from "../Headers/index.mjs";
4
+ import { H1, H2, H3, H4 } from "../Headers/index.mjs";
7
5
  import { SectionScroller } from "../Headers/SectionScroller.mjs";
8
- import { Code } from "../IDE/CodeRender.mjs";
6
+ import { Code } from "../IDE/Code.mjs";
7
+ import { CodeProvider } from "../IDE/CodeContext.mjs";
9
8
  import { Link } from "../Link/Link.mjs";
10
9
  const MarkdownRenderer = ({
11
10
  children,
12
11
  isDarkMode,
13
- locale
14
- }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
12
+ locale,
13
+ overrides
14
+ }) => /* @__PURE__ */ jsxRuntimeExports.jsx(CodeProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
15
15
  Markdown,
16
16
  {
17
17
  options: {
18
18
  overrides: {
19
- h1: {
20
- component: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H1, { isClickable: true, ...props })
21
- },
22
- h2: {
23
- component: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H2, { isClickable: true, ...props })
24
- },
25
- h3: {
26
- component: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H3, { isClickable: true, ...props })
27
- },
28
- code: {
29
- component: (props) => typeof props.className === "undefined" ? /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { className: "bg-card/60 dark:bg-card-dark/60 rounded p-1 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur", children: props.children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Container, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
30
- Code,
31
- {
32
- isDarkMode,
33
- language: props.className.replace("lang-", ""),
34
- ...props
35
- }
36
- ) })
37
- },
19
+ h1: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H1, { isClickable: true, ...props }),
20
+ h2: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H2, { isClickable: true, ...props }),
21
+ h3: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H3, { isClickable: true, ...props }),
22
+ h4: (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(H4, { isClickable: true, ...props }),
23
+ code: (props) => typeof props.className === "undefined" ? /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { className: "bg-card/60 dark:bg-card-dark/60 rounded p-1 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur", children: props.children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
24
+ Code,
25
+ {
26
+ isDarkMode,
27
+ language: props.className.replace("lang-", ""),
28
+ ...props
29
+ }
30
+ ),
38
31
  blockquote: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
39
32
  "blockquote",
40
33
  {
@@ -59,6 +52,7 @@ const MarkdownRenderer = ({
59
52
  ...props
60
53
  }
61
54
  ),
55
+ li: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx("li", { className: cn("list-disc", className), ...props }),
62
56
  img: ({ className, ...props }) => (
63
57
  // eslint-disable-next-line jsx-a11y/alt-text
64
58
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -81,17 +75,52 @@ const MarkdownRenderer = ({
81
75
  ...props
82
76
  }
83
77
  ),
84
- pre: (props) => props.children
78
+ pre: (props) => props.children,
79
+ table: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid w-full max-w-full overflow-scroll rounded", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80
+ "table",
81
+ {
82
+ className: cn(
83
+ "max-w-full table-auto overflow-hidden text-left",
84
+ className
85
+ ),
86
+ ...props
87
+ }
88
+ ) }),
89
+ th: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
90
+ "th",
91
+ {
92
+ className: cn(
93
+ "border-neutral bg-neutral/10 border-b p-4",
94
+ className
95
+ ),
96
+ ...props
97
+ }
98
+ ),
99
+ tr: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
100
+ "tr",
101
+ {
102
+ className: cn(
103
+ "hover:bg-neutral/10 hover:dark:bg-neutral-dark/10",
104
+ className
105
+ ),
106
+ ...props
107
+ }
108
+ ),
109
+ td: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
110
+ "td",
111
+ {
112
+ className: cn("border-b border-neutral-500/50 p-4", className),
113
+ ...props
114
+ }
115
+ ),
116
+ ...overrides
85
117
  },
86
118
  wrapper: ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
87
119
  /* @__PURE__ */ jsxRuntimeExports.jsx(SectionScroller, {}),
88
120
  /* @__PURE__ */ jsxRuntimeExports.jsx(
89
121
  "div",
90
122
  {
91
- className: cn(
92
- "text-text dark:text-text-dark flex flex-col gap-6 p-10",
93
- className
94
- ),
123
+ className: cn("flex flex-col gap-6 p-10", className),
95
124
  ...props
96
125
  }
97
126
  )
@@ -99,7 +128,7 @@ const MarkdownRenderer = ({
99
128
  },
100
129
  children: children ?? ""
101
130
  }
102
- );
131
+ ) });
103
132
  export {
104
133
  MarkdownRenderer
105
134
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/MarkDownRender/index.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/core';\nimport Markdown from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Container } from '../Container';\nimport { H1, H2, H3 } from '../Headers';\nimport { SectionScroller } from '../Headers/SectionScroller';\nimport { Code } from '../IDE/CodeRender';\nimport { Link } from '../Link';\n\ntype MarkdownRendererProps = {\n children: string;\n isDarkMode?: boolean;\n locale?: Locales;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n locale,\n}) => (\n <Markdown\n options={{\n overrides: {\n h1: {\n component: (props) => <H1 isClickable={true} {...props} />,\n },\n h2: {\n component: (props) => <H2 isClickable={true} {...props} />,\n },\n h3: {\n component: (props) => <H3 isClickable={true} {...props} />,\n },\n code: {\n component: (props) =>\n typeof props.className === 'undefined' ? (\n <strong className=\"bg-card/60 dark:bg-card-dark/60 rounded p-1 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur\">\n {props.children}\n </strong>\n ) : (\n <Container>\n <Code\n isDarkMode={isDarkMode}\n language={props.className.replace('lang-', '')}\n {...props}\n />\n </Container>\n ),\n },\n blockquote: ({ className, ...props }) => (\n <blockquote\n className={cn(\n 'border-card dark:border-card-dark text-neutral dark:text-neutral-dark mt-5 flex flex-col gap-3 border-l-4 pl-5',\n className\n )}\n {...props}\n />\n ),\n ul: ({ className, ...props }) => (\n <ul\n className={cn('mt-5 flex flex-col gap-3 pl-5', className)}\n {...props}\n />\n ),\n ol: ({ className, ...props }) => (\n <ol\n className={cn('mt-5 flex flex-col gap-3 pl-5', className)}\n {...props}\n />\n ),\n img: ({ className, ...props }) => (\n // eslint-disable-next-line jsx-a11y/alt-text\n <img\n {...props}\n loading=\"lazy\"\n className={cn('max-w-full rounded-md', className)}\n src={`${props.src}?raw=true`}\n />\n ),\n a: (props) => (\n <Link\n color=\"neutral\"\n isExternalLink={props.href?.startsWith('http')}\n underlined={true}\n locale={locale}\n {...props}\n />\n ),\n pre: (props) => props.children,\n },\n wrapper: ({ className, ...props }) => (\n <>\n <SectionScroller />\n <div\n className={cn(\n 'text-text dark:text-text-dark flex flex-col gap-6 p-10',\n className\n )}\n {...props}\n />\n </>\n ),\n }}\n >\n {children ?? ''}\n </Markdown>\n);\n"],"names":["jsx","jsxs","Fragment"],"mappings":";;;;;;;;;AAkBO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AACF,MACEA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAS;AAAA,MACP,WAAW;AAAA,QACT,IAAI;AAAA,UACF,WAAW,CAAC,UAAUA,sCAAC,MAAG,aAAa,MAAO,GAAG,MAAO,CAAA;AAAA,QAC1D;AAAA,QACA,IAAI;AAAA,UACF,WAAW,CAAC,UAAUA,sCAAC,MAAG,aAAa,MAAO,GAAG,MAAO,CAAA;AAAA,QAC1D;AAAA,QACA,IAAI;AAAA,UACF,WAAW,CAAC,UAAUA,sCAAC,MAAG,aAAa,MAAO,GAAG,MAAO,CAAA;AAAA,QAC1D;AAAA,QACA,MAAM;AAAA,UACJ,WAAW,CAAC,UACV,OAAO,MAAM,cAAc,cACxBA,kCAAAA,IAAA,UAAA,EAAO,WAAU,qGACf,UAAA,MAAM,SACT,CAAA,0CAEC,WACC,EAAA,UAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA,UAAU,MAAM,UAAU,QAAQ,SAAS,EAAE;AAAA,cAC5C,GAAG;AAAA,YAAA;AAAA,UAAA,EAER,CAAA;AAAA,QAEN;AAAA,QACA,YAAY,CAAC,EAAE,WAAW,GAAG,MAC3B,MAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YACC,GAAG;AAAA,UAAA;AAAA,QACN;AAAA,QAEF,IAAI,CAAC,EAAE,WAAW,GAAG,MACnB,MAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG,iCAAiC,SAAS;AAAA,YACvD,GAAG;AAAA,UAAA;AAAA,QACN;AAAA,QAEF,IAAI,CAAC,EAAE,WAAW,GAAG,MACnB,MAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG,iCAAiC,SAAS;AAAA,YACvD,GAAG;AAAA,UAAA;AAAA,QACN;AAAA,QAEF,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM;AAAA;AAAA,UAE1BA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAG;AAAA,cACJ,SAAQ;AAAA,cACR,WAAW,GAAG,yBAAyB,SAAS;AAAA,cAChD,KAAK,GAAG,MAAM,GAAG;AAAA,YAAA;AAAA,UAAA;AAAA;AAAA,QAGrB,GAAG,CAAC,UACFA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,gBAAgB,MAAM,MAAM,WAAW,MAAM;AAAA,YAC7C,YAAY;AAAA,YACZ;AAAA,YACC,GAAG;AAAA,UAAA;AAAA,QACN;AAAA,QAEF,KAAK,CAAC,UAAU,MAAM;AAAA,MACxB;AAAA,MACA,SAAS,CAAC,EAAE,WAAW,GAAG,YAEtBC,uCAAAC,kBAAAA,UAAA,EAAA,UAAA;AAAA,QAAAF,kCAAA,IAAC,iBAAgB,EAAA;AAAA,QACjBA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YACC,GAAG;AAAA,UAAA;AAAA,QAAA;AAAA,MACN,EACF,CAAA;AAAA,IAEJ;AAAA,IAEC,UAAY,YAAA;AAAA,EAAA;AACf;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/MarkDownRender/index.tsx"],"sourcesContent":["import { Locales } from '@intlayer/core';\nimport Markdown, { type MarkdownToJSX } from 'markdown-to-jsx';\nimport type { FC } from 'react';\nimport { cn } from '../../utils/cn';\nimport { H1, H2, H3, H4 } from '../Headers';\nimport { SectionScroller } from '../Headers/SectionScroller';\nimport { Code } from '../IDE/Code';\nimport { CodeProvider } from '../IDE/CodeContext';\nimport { Link } from '../Link';\n\ntype MarkdownRendererProps = {\n children: string;\n isDarkMode?: boolean;\n locale?: Locales;\n overrides?: MarkdownToJSX.Overrides;\n};\n\nexport const MarkdownRenderer: FC<MarkdownRendererProps> = ({\n children,\n isDarkMode,\n locale,\n overrides,\n}) => (\n <CodeProvider>\n <Markdown\n options={{\n overrides: {\n h1: (props) => <H1 isClickable={true} {...props} />,\n h2: (props) => <H2 isClickable={true} {...props} />,\n h3: (props) => <H3 isClickable={true} {...props} />,\n h4: (props) => <H4 isClickable={true} {...props} />,\n\n code: (props) =>\n typeof props.className === 'undefined' ? (\n <strong className=\"bg-card/60 dark:bg-card-dark/60 rounded p-1 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur\">\n {props.children}\n </strong>\n ) : (\n <Code\n isDarkMode={isDarkMode}\n language={props.className.replace('lang-', '')}\n {...props}\n />\n ),\n\n blockquote: ({ className, ...props }) => (\n <blockquote\n className={cn(\n 'border-card dark:border-card-dark text-neutral dark:text-neutral-dark mt-5 flex flex-col gap-3 border-l-4 pl-5',\n className\n )}\n {...props}\n />\n ),\n ul: ({ className, ...props }) => (\n <ul\n className={cn('mt-5 flex flex-col gap-3 pl-5', className)}\n {...props}\n />\n ),\n ol: ({ className, ...props }) => (\n <ol\n className={cn('mt-5 flex flex-col gap-3 pl-5', className)}\n {...props}\n />\n ),\n li: ({ className, ...props }) => (\n <li className={cn('list-disc', className)} {...props} />\n ),\n img: ({ className, ...props }) => (\n // eslint-disable-next-line jsx-a11y/alt-text\n <img\n {...props}\n loading=\"lazy\"\n className={cn('max-w-full rounded-md', className)}\n src={`${props.src}?raw=true`}\n />\n ),\n a: (props) => (\n <Link\n color=\"neutral\"\n isExternalLink={props.href?.startsWith('http')}\n underlined={true}\n locale={locale}\n {...props}\n />\n ),\n pre: (props) => props.children,\n table: ({ className, ...props }) => (\n <div className=\"grid w-full max-w-full overflow-scroll rounded\">\n <table\n className={cn(\n 'max-w-full table-auto overflow-hidden text-left',\n className\n )}\n {...props}\n />\n </div>\n ),\n th: ({ className, ...props }) => (\n <th\n className={cn(\n 'border-neutral bg-neutral/10 border-b p-4',\n className\n )}\n {...props}\n />\n ),\n tr: ({ className, ...props }) => (\n <tr\n className={cn(\n 'hover:bg-neutral/10 hover:dark:bg-neutral-dark/10',\n className\n )}\n {...props}\n />\n ),\n td: ({ className, ...props }) => (\n <td\n className={cn('border-b border-neutral-500/50 p-4', className)}\n {...props}\n />\n ),\n ...overrides,\n },\n wrapper: ({ className, ...props }) => (\n <>\n <SectionScroller />\n <div\n className={cn('flex flex-col gap-6 p-10', className)}\n {...props}\n />\n </>\n ),\n }}\n >\n {children ?? ''}\n </Markdown>\n </CodeProvider>\n);\n"],"names":["jsx","jsxs","Fragment"],"mappings":"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"}
@@ -35,7 +35,7 @@ const modalVariants = classVarianceAuthority.cva(
35
35
  }
36
36
  }
37
37
  );
38
- const MotionModal = framerMotion.motion.create(components_Container_index.Container);
38
+ const MotionModal = framerMotion.m.create(components_Container_index.Container);
39
39
  const Modal = ({
40
40
  children,
41
41
  isOpen,
@@ -44,7 +44,7 @@ const Modal = ({
44
44
  onClose,
45
45
  hasCloseButton = false,
46
46
  title,
47
- size = "unset",
47
+ size = "md",
48
48
  ...props
49
49
  }) => {
50
50
  const containerElement = hooks_useGetElementOrWindow.useGetElementOrWindow(container);
@@ -53,18 +53,25 @@ const Modal = ({
53
53
  const hasTitle = typeof title === "string";
54
54
  return reactDom.createPortal(
55
55
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
56
- framerMotion.motion.div,
56
+ framerMotion.m.div,
57
57
  {
58
- className: utils_cn.cn(
59
- "bg-background/40 dark:bg-background-dark/40 fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur",
60
- isOpen ? "visible" : "hidden"
61
- ),
62
- initial: { opacity: isOpen ? 0 : 1 },
63
- animate: { opacity: isOpen ? 1 : 0 },
64
- transition: { duration: 0.1 },
58
+ className: "bg-background/40 dark:bg-background-dark/40 invisible fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur",
59
+ animate: isOpen ? "visible" : "invisible",
60
+ variants: {
61
+ visible: {
62
+ opacity: 1,
63
+ visibility: "visible",
64
+ transition: { duration: 0.1, when: "beforeChildren" }
65
+ },
66
+ invisible: {
67
+ opacity: 0,
68
+ visibility: "hidden",
69
+ transition: { duration: 0.1, when: "afterChildren" }
70
+ }
71
+ },
65
72
  onClick: (e) => {
66
73
  e.stopPropagation();
67
- onClose();
74
+ onClose?.();
68
75
  },
69
76
  "aria-hidden": !isOpen,
70
77
  children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
@@ -86,6 +93,7 @@ const Modal = ({
86
93
  "div",
87
94
  {
88
95
  className: utils_cn.cn(
96
+ "cursor-default",
89
97
  hasCloseButton && hasTitle ? `flex items-center justify-center` : hasCloseButton ? `flex items-center justify-end` : hasTitle ? `items-center` : `hidden`
90
98
  ),
91
99
  children: [
@@ -98,14 +106,14 @@ const Modal = ({
98
106
  className: "right-2 top-2 ml-auto cursor-pointer",
99
107
  onClick: (e) => {
100
108
  e.stopPropagation();
101
- onClose();
109
+ onClose?.();
102
110
  }
103
111
  }
104
112
  )
105
113
  ]
106
114
  }
107
115
  ),
108
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "mx-2 my-4 flex flex-1 flex-col items-center overflow-auto", children })
116
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "flex flex-1 flex-col items-center overflow-auto", children })
109
117
  ]
110
118
  }
111
119
  )
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.cjs","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { cva } from 'class-variance-authority';\nimport { motion } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport type { FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useGetElementOrWindow, useScrollBlockage } from '../../hooks/index';\nimport { cn } from '../../utils/cn';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\ntype ModalProps = {\n children: React.ReactNode;\n isOpen: boolean;\n onClose: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: Size;\n} & Pick<ContainerProps, 'transparency'>;\n\nconst modalVariants = cva(\n 'cursor-default overflow-auto p-3 shadow justify-center',\n {\n variants: {\n variant: {\n sm: 'max-h-[30vh] w-[95vw] max-w-xl',\n md: 'max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'max-h-[95vh] w-[95vw] max-w-3xl',\n unset: 'max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n variant: 'unset',\n },\n }\n);\n\ntype Size = 'sm' | 'md' | 'lg' | 'xl' | 'unset';\n\nconst MotionModal = motion.create(Container);\n\n/**\n * Usage example:\n * ```jsx\n * <Modal isOpen={isOpen} onClose={onClose}>\n * Modal content\n * </Modal>\n * ```\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = false,\n onClose,\n hasCloseButton = false,\n title,\n size = 'unset',\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n return createPortal(\n <motion.div\n className={cn(\n 'bg-background/40 dark:bg-background-dark/40 fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur',\n isOpen ? 'visible' : 'hidden'\n )}\n initial={{ opacity: isOpen ? 0 : 1 }}\n animate={{ opacity: isOpen ? 1 : 0 }}\n transition={{ duration: 0.1 }}\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n aria-hidden={!isOpen}\n >\n <MotionModal\n onClick={(e) => e.stopPropagation()}\n initial={{ scale: isOpen ? 0.5 : 1 }}\n animate={{ scale: isOpen ? 1 : 0.5 }}\n transition={{ duration: 0.3 }}\n className={modalVariants({\n variant: size,\n })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"2xl\"\n {...props}\n >\n <div\n className={cn(\n hasCloseButton && hasTitle\n ? `flex items-center justify-center`\n : hasCloseButton\n ? `flex items-center justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <X\n role=\"button\"\n aria-label=\"Close modal\"\n className=\"right-2 top-2 ml-auto cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n />\n )}\n </div>\n <div className=\"mx-2 my-4 flex flex-1 flex-col items-center overflow-auto\">\n {children}\n </div>\n </MotionModal>\n </motion.div>,\n containerElement\n );\n};\n"],"names":["cva","motion","Container","useGetElementOrWindow","useScrollBlockage","jsx","Fragment","createPortal","cn","jsxs","H3","X"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,gBAAgBA,uBAAA;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAIA,MAAM,cAAcC,aAAAA,OAAO,OAAOC,oCAAS;AAUpC,MAAM,QAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACE,QAAA,mBAAmBC,kDAAsB,SAAS;AAExDC,gCAAA,kBAAkB,EAAE,KAAK,SAAS,eAAe,UAAU,eAAe;AAEtE,MAAA,CAAC,iBAAkB,QAASC,iDAAAC,WAAAA,kBAAAA,UAAA,CAAA,CAAA;AAE1B,QAAA,WAAW,OAAO,UAAU;AAE3B,SAAAC,SAAA;AAAA,IACLF,2BAAA,kBAAA;AAAA,MAACJ,aAAAA,OAAO;AAAA,MAAP;AAAA,QACC,WAAWO,SAAA;AAAA,UACT;AAAA,UACA,SAAS,YAAY;AAAA,QACvB;AAAA,QACA,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,QACnC,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,QACnC,YAAY,EAAE,UAAU,IAAI;AAAA,QAC5B,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AACV,kBAAA;AAAA,QACV;AAAA,QACA,eAAa,CAAC;AAAA,QAEd,UAAAC,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,YAClC,SAAS,EAAE,OAAO,SAAS,MAAM,EAAE;AAAA,YACnC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAI;AAAA,YACnC,YAAY,EAAE,UAAU,IAAI;AAAA,YAC5B,WAAW,cAAc;AAAA,cACvB,SAAS;AAAA,YAAA,CACV;AAAA,YACD,MAAK;AAAA,YACL,cAAU;AAAA,YACV,aAAY;AAAA,YACX,GAAG;AAAA,YAEJ,UAAA;AAAA,cAAAA,2BAAA,kBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWD,SAAA;AAAA,oBACT,kBAAkB,WACd,qCACA,iBACE,kCACA,WACE,iBACA;AAAA,kBACV;AAAA,kBAEC,UAAA;AAAA,oBAAA,YACEH,2BAAA,kBAAA,IAAAK,6BAAA,EAAG,WAAU,sDACX,UACH,OAAA;AAAA,oBAED,kBACCL,2BAAA,kBAAA;AAAA,sBAACM,YAAA;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,cAAW;AAAA,wBACX,WAAU;AAAA,wBACV,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACV,kCAAA;AAAA,wBAAA;AAAA,sBACV;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAEJ;AAAA,cACCN,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAU,6DACZ,SACH,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;;"}
1
+ {"version":3,"file":"Modal.cjs","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { cva } from 'class-variance-authority';\nimport { m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport type { FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useGetElementOrWindow, useScrollBlockage } from '../../hooks/index';\nimport { cn } from '../../utils/cn';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\ntype ModalProps = {\n children: React.ReactNode;\n isOpen: boolean;\n onClose?: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: Size;\n} & Pick<\n ContainerProps,\n | 'className'\n | 'transparency'\n | 'border'\n | 'background'\n | 'roundedSize'\n | 'borderColor'\n | 'padding'\n | 'separator'\n | 'gap'\n>;\n\nconst modalVariants = cva(\n 'cursor-default overflow-auto p-3 shadow justify-center',\n {\n variants: {\n variant: {\n sm: 'max-h-[30vh] w-[95vw] max-w-xl',\n md: 'max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'max-h-[95vh] w-[95vw] max-w-3xl',\n unset: 'max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n variant: 'unset',\n },\n }\n);\n\ntype Size = 'sm' | 'md' | 'lg' | 'xl' | 'unset';\n\nconst MotionModal = m.create(Container);\n\n/**\n * Usage example:\n * ```jsx\n * <Modal isOpen={isOpen} onClose={onClose}>\n * Modal content\n * </Modal>\n * ```\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = false,\n onClose,\n hasCloseButton = false,\n title,\n size = 'md',\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n return createPortal(\n <m.div\n className=\"bg-background/40 dark:bg-background-dark/40 invisible fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur\"\n animate={isOpen ? 'visible' : 'invisible'}\n variants={{\n visible: {\n opacity: 1,\n visibility: 'visible',\n transition: { duration: 0.1, when: 'beforeChildren' },\n },\n invisible: {\n opacity: 0,\n visibility: 'hidden',\n transition: { duration: 0.1, when: 'afterChildren' },\n },\n }}\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n aria-hidden={!isOpen}\n >\n <MotionModal\n onClick={(e) => e.stopPropagation()}\n initial={{ scale: isOpen ? 0.5 : 1 }}\n animate={{ scale: isOpen ? 1 : 0.5 }}\n transition={{ duration: 0.3 }}\n className={modalVariants({\n variant: size,\n })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"2xl\"\n {...props}\n >\n <div\n className={cn(\n 'cursor-default',\n hasCloseButton && hasTitle\n ? `flex items-center justify-center`\n : hasCloseButton\n ? `flex items-center justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <X\n role=\"button\"\n aria-label=\"Close modal\"\n className=\"right-2 top-2 ml-auto cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n />\n )}\n </div>\n <div className=\"flex flex-1 flex-col items-center overflow-auto\">\n {children}\n </div>\n </MotionModal>\n </m.div>,\n containerElement\n );\n};\n"],"names":["cva","m","Container","useGetElementOrWindow","useScrollBlockage","jsx","Fragment","createPortal","jsxs","cn","H3","X"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,gBAAgBA,uBAAA;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAIA,MAAM,cAAcC,aAAAA,EAAE,OAAOC,oCAAS;AAU/B,MAAM,QAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACE,QAAA,mBAAmBC,kDAAsB,SAAS;AAExDC,gCAAA,kBAAkB,EAAE,KAAK,SAAS,eAAe,UAAU,eAAe;AAEtE,MAAA,CAAC,iBAAkB,QAASC,iDAAAC,WAAAA,kBAAAA,UAAA,CAAA,CAAA;AAE1B,QAAA,WAAW,OAAO,UAAU;AAE3B,SAAAC,SAAA;AAAA,IACLF,2BAAA,kBAAA;AAAA,MAACJ,aAAAA,EAAE;AAAA,MAAF;AAAA,QACC,WAAU;AAAA,QACV,SAAS,SAAS,YAAY;AAAA,QAC9B,UAAU;AAAA,UACR,SAAS;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,YAAY,EAAE,UAAU,KAAK,MAAM,iBAAiB;AAAA,UACtD;AAAA,UACA,WAAW;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,YAAY,EAAE,UAAU,KAAK,MAAM,gBAAgB;AAAA,UAAA;AAAA,QAEvD;AAAA,QACA,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AACR,oBAAA;AAAA,QACZ;AAAA,QACA,eAAa,CAAC;AAAA,QAEd,UAAAO,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,YAClC,SAAS,EAAE,OAAO,SAAS,MAAM,EAAE;AAAA,YACnC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAI;AAAA,YACnC,YAAY,EAAE,UAAU,IAAI;AAAA,YAC5B,WAAW,cAAc;AAAA,cACvB,SAAS;AAAA,YAAA,CACV;AAAA,YACD,MAAK;AAAA,YACL,cAAU;AAAA,YACV,aAAY;AAAA,YACX,GAAG;AAAA,YAEJ,UAAA;AAAA,cAAAA,2BAAA,kBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWC,SAAA;AAAA,oBACT;AAAA,oBACA,kBAAkB,WACd,qCACA,iBACE,kCACA,WACE,iBACA;AAAA,kBACV;AAAA,kBAEC,UAAA;AAAA,oBAAA,YACEJ,2BAAA,kBAAA,IAAAK,6BAAA,EAAG,WAAU,sDACX,UACH,OAAA;AAAA,oBAED,kBACCL,2BAAA,kBAAA;AAAA,sBAACM,YAAA;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,cAAW;AAAA,wBACX,WAAU;AAAA,wBACV,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACR,oCAAA;AAAA,wBAAA;AAAA,sBACZ;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAEJ;AAAA,cACCN,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAU,mDACZ,SACH,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;;"}
@@ -3,13 +3,13 @@ import { ContainerProps } from '../Container';
3
3
  type ModalProps = {
4
4
  children: React.ReactNode;
5
5
  isOpen: boolean;
6
- onClose: () => void;
6
+ onClose?: () => void;
7
7
  container?: HTMLElement;
8
8
  disableScroll?: boolean;
9
9
  hasCloseButton?: boolean;
10
10
  title?: string;
11
11
  size?: Size;
12
- } & Pick<ContainerProps, 'transparency'>;
12
+ } & Pick<ContainerProps, 'className' | 'transparency' | 'border' | 'background' | 'roundedSize' | 'borderColor' | 'padding' | 'separator' | 'gap'>;
13
13
  type Size = 'sm' | 'md' | 'lg' | 'xl' | 'unset';
14
14
  /**
15
15
  * Usage example:
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9D,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAoBzC,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAIhD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAkFhC,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9D,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,GAAG,IAAI,CACN,cAAc,EACZ,WAAW,GACX,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,aAAa,GACb,SAAS,GACT,WAAW,GACX,KAAK,CACR,CAAC;AAoBF,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAIhD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CA0FhC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
3
3
  import { cva } from "class-variance-authority";
4
- import { motion } from "framer-motion";
4
+ import { m } from "framer-motion";
5
5
  import { X } from "lucide-react";
6
6
  import { createPortal } from "react-dom";
7
7
  import "react";
@@ -33,7 +33,7 @@ const modalVariants = cva(
33
33
  }
34
34
  }
35
35
  );
36
- const MotionModal = motion.create(Container);
36
+ const MotionModal = m.create(Container);
37
37
  const Modal = ({
38
38
  children,
39
39
  isOpen,
@@ -42,7 +42,7 @@ const Modal = ({
42
42
  onClose,
43
43
  hasCloseButton = false,
44
44
  title,
45
- size = "unset",
45
+ size = "md",
46
46
  ...props
47
47
  }) => {
48
48
  const containerElement = useGetElementOrWindow(container);
@@ -51,18 +51,25 @@ const Modal = ({
51
51
  const hasTitle = typeof title === "string";
52
52
  return createPortal(
53
53
  /* @__PURE__ */ jsxRuntimeExports.jsx(
54
- motion.div,
54
+ m.div,
55
55
  {
56
- className: cn(
57
- "bg-background/40 dark:bg-background-dark/40 fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur",
58
- isOpen ? "visible" : "hidden"
59
- ),
60
- initial: { opacity: isOpen ? 0 : 1 },
61
- animate: { opacity: isOpen ? 1 : 0 },
62
- transition: { duration: 0.1 },
56
+ className: "bg-background/40 dark:bg-background-dark/40 invisible fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur",
57
+ animate: isOpen ? "visible" : "invisible",
58
+ variants: {
59
+ visible: {
60
+ opacity: 1,
61
+ visibility: "visible",
62
+ transition: { duration: 0.1, when: "beforeChildren" }
63
+ },
64
+ invisible: {
65
+ opacity: 0,
66
+ visibility: "hidden",
67
+ transition: { duration: 0.1, when: "afterChildren" }
68
+ }
69
+ },
63
70
  onClick: (e) => {
64
71
  e.stopPropagation();
65
- onClose();
72
+ onClose?.();
66
73
  },
67
74
  "aria-hidden": !isOpen,
68
75
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -84,6 +91,7 @@ const Modal = ({
84
91
  "div",
85
92
  {
86
93
  className: cn(
94
+ "cursor-default",
87
95
  hasCloseButton && hasTitle ? `flex items-center justify-center` : hasCloseButton ? `flex items-center justify-end` : hasTitle ? `items-center` : `hidden`
88
96
  ),
89
97
  children: [
@@ -96,14 +104,14 @@ const Modal = ({
96
104
  className: "right-2 top-2 ml-auto cursor-pointer",
97
105
  onClick: (e) => {
98
106
  e.stopPropagation();
99
- onClose();
107
+ onClose?.();
100
108
  }
101
109
  }
102
110
  )
103
111
  ]
104
112
  }
105
113
  ),
106
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mx-2 my-4 flex flex-1 flex-col items-center overflow-auto", children })
114
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-1 flex-col items-center overflow-auto", children })
107
115
  ]
108
116
  }
109
117
  )
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.mjs","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { cva } from 'class-variance-authority';\nimport { motion } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport type { FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useGetElementOrWindow, useScrollBlockage } from '../../hooks/index';\nimport { cn } from '../../utils/cn';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\ntype ModalProps = {\n children: React.ReactNode;\n isOpen: boolean;\n onClose: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: Size;\n} & Pick<ContainerProps, 'transparency'>;\n\nconst modalVariants = cva(\n 'cursor-default overflow-auto p-3 shadow justify-center',\n {\n variants: {\n variant: {\n sm: 'max-h-[30vh] w-[95vw] max-w-xl',\n md: 'max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'max-h-[95vh] w-[95vw] max-w-3xl',\n unset: 'max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n variant: 'unset',\n },\n }\n);\n\ntype Size = 'sm' | 'md' | 'lg' | 'xl' | 'unset';\n\nconst MotionModal = motion.create(Container);\n\n/**\n * Usage example:\n * ```jsx\n * <Modal isOpen={isOpen} onClose={onClose}>\n * Modal content\n * </Modal>\n * ```\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = false,\n onClose,\n hasCloseButton = false,\n title,\n size = 'unset',\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n return createPortal(\n <motion.div\n className={cn(\n 'bg-background/40 dark:bg-background-dark/40 fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur',\n isOpen ? 'visible' : 'hidden'\n )}\n initial={{ opacity: isOpen ? 0 : 1 }}\n animate={{ opacity: isOpen ? 1 : 0 }}\n transition={{ duration: 0.1 }}\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n aria-hidden={!isOpen}\n >\n <MotionModal\n onClick={(e) => e.stopPropagation()}\n initial={{ scale: isOpen ? 0.5 : 1 }}\n animate={{ scale: isOpen ? 1 : 0.5 }}\n transition={{ duration: 0.3 }}\n className={modalVariants({\n variant: size,\n })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"2xl\"\n {...props}\n >\n <div\n className={cn(\n hasCloseButton && hasTitle\n ? `flex items-center justify-center`\n : hasCloseButton\n ? `flex items-center justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <X\n role=\"button\"\n aria-label=\"Close modal\"\n className=\"right-2 top-2 ml-auto cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n />\n )}\n </div>\n <div className=\"mx-2 my-4 flex flex-1 flex-col items-center overflow-auto\">\n {children}\n </div>\n </MotionModal>\n </motion.div>,\n containerElement\n );\n};\n"],"names":["jsx","Fragment","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAIA,MAAM,cAAc,OAAO,OAAO,SAAS;AAUpC,MAAM,QAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACE,QAAA,mBAAmB,sBAAsB,SAAS;AAExD,oBAAkB,EAAE,KAAK,SAAS,eAAe,UAAU,eAAe;AAEtE,MAAA,CAAC,iBAAkB,QAASA,sCAAAC,kBAAAA,UAAA,CAAA,CAAA;AAE1B,QAAA,WAAW,OAAO,UAAU;AAE3B,SAAA;AAAA,IACLD,kCAAA;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,SAAS,YAAY;AAAA,QACvB;AAAA,QACA,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,QACnC,SAAS,EAAE,SAAS,SAAS,IAAI,EAAE;AAAA,QACnC,YAAY,EAAE,UAAU,IAAI;AAAA,QAC5B,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AACV,kBAAA;AAAA,QACV;AAAA,QACA,eAAa,CAAC;AAAA,QAEd,UAAAE,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,YAClC,SAAS,EAAE,OAAO,SAAS,MAAM,EAAE;AAAA,YACnC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAI;AAAA,YACnC,YAAY,EAAE,UAAU,IAAI;AAAA,YAC5B,WAAW,cAAc;AAAA,cACvB,SAAS;AAAA,YAAA,CACV;AAAA,YACD,MAAK;AAAA,YACL,cAAU;AAAA,YACV,aAAY;AAAA,YACX,GAAG;AAAA,YAEJ,UAAA;AAAA,cAAAA,kCAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW;AAAA,oBACT,kBAAkB,WACd,qCACA,iBACE,kCACA,WACE,iBACA;AAAA,kBACV;AAAA,kBAEC,UAAA;AAAA,oBAAA,YACEF,kCAAA,IAAA,IAAA,EAAG,WAAU,sDACX,UACH,OAAA;AAAA,oBAED,kBACCA,kCAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,cAAW;AAAA,wBACX,WAAU;AAAA,wBACV,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACV,kCAAA;AAAA,wBAAA;AAAA,sBACV;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAEJ;AAAA,cACCA,kCAAAA,IAAA,OAAA,EAAI,WAAU,6DACZ,SACH,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"Modal.mjs","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { cva } from 'class-variance-authority';\nimport { m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport type { FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useGetElementOrWindow, useScrollBlockage } from '../../hooks/index';\nimport { cn } from '../../utils/cn';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\ntype ModalProps = {\n children: React.ReactNode;\n isOpen: boolean;\n onClose?: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: Size;\n} & Pick<\n ContainerProps,\n | 'className'\n | 'transparency'\n | 'border'\n | 'background'\n | 'roundedSize'\n | 'borderColor'\n | 'padding'\n | 'separator'\n | 'gap'\n>;\n\nconst modalVariants = cva(\n 'cursor-default overflow-auto p-3 shadow justify-center',\n {\n variants: {\n variant: {\n sm: 'max-h-[30vh] w-[95vw] max-w-xl',\n md: 'max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'max-h-[95vh] w-[95vw] max-w-3xl',\n unset: 'max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n variant: 'unset',\n },\n }\n);\n\ntype Size = 'sm' | 'md' | 'lg' | 'xl' | 'unset';\n\nconst MotionModal = m.create(Container);\n\n/**\n * Usage example:\n * ```jsx\n * <Modal isOpen={isOpen} onClose={onClose}>\n * Modal content\n * </Modal>\n * ```\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = false,\n onClose,\n hasCloseButton = false,\n title,\n size = 'md',\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n return createPortal(\n <m.div\n className=\"bg-background/40 dark:bg-background-dark/40 invisible fixed left-0 top-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto backdrop-blur\"\n animate={isOpen ? 'visible' : 'invisible'}\n variants={{\n visible: {\n opacity: 1,\n visibility: 'visible',\n transition: { duration: 0.1, when: 'beforeChildren' },\n },\n invisible: {\n opacity: 0,\n visibility: 'hidden',\n transition: { duration: 0.1, when: 'afterChildren' },\n },\n }}\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n aria-hidden={!isOpen}\n >\n <MotionModal\n onClick={(e) => e.stopPropagation()}\n initial={{ scale: isOpen ? 0.5 : 1 }}\n animate={{ scale: isOpen ? 1 : 0.5 }}\n transition={{ duration: 0.3 }}\n className={modalVariants({\n variant: size,\n })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"2xl\"\n {...props}\n >\n <div\n className={cn(\n 'cursor-default',\n hasCloseButton && hasTitle\n ? `flex items-center justify-center`\n : hasCloseButton\n ? `flex items-center justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <X\n role=\"button\"\n aria-label=\"Close modal\"\n className=\"right-2 top-2 ml-auto cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n />\n )}\n </div>\n <div className=\"flex flex-1 flex-col items-center overflow-auto\">\n {children}\n </div>\n </MotionModal>\n </m.div>,\n containerElement\n );\n};\n"],"names":["jsx","Fragment","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAIA,MAAM,cAAc,EAAE,OAAO,SAAS;AAU/B,MAAM,QAAwB,CAAC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACE,QAAA,mBAAmB,sBAAsB,SAAS;AAExD,oBAAkB,EAAE,KAAK,SAAS,eAAe,UAAU,eAAe;AAEtE,MAAA,CAAC,iBAAkB,QAASA,sCAAAC,kBAAAA,UAAA,CAAA,CAAA;AAE1B,QAAA,WAAW,OAAO,UAAU;AAE3B,SAAA;AAAA,IACLD,kCAAA;AAAA,MAAC,EAAE;AAAA,MAAF;AAAA,QACC,WAAU;AAAA,QACV,SAAS,SAAS,YAAY;AAAA,QAC9B,UAAU;AAAA,UACR,SAAS;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,YAAY,EAAE,UAAU,KAAK,MAAM,iBAAiB;AAAA,UACtD;AAAA,UACA,WAAW;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,YAAY,EAAE,UAAU,KAAK,MAAM,gBAAgB;AAAA,UAAA;AAAA,QAEvD;AAAA,QACA,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AACR,oBAAA;AAAA,QACZ;AAAA,QACA,eAAa,CAAC;AAAA,QAEd,UAAAE,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,YAClC,SAAS,EAAE,OAAO,SAAS,MAAM,EAAE;AAAA,YACnC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAI;AAAA,YACnC,YAAY,EAAE,UAAU,IAAI;AAAA,YAC5B,WAAW,cAAc;AAAA,cACvB,SAAS;AAAA,YAAA,CACV;AAAA,YACD,MAAK;AAAA,YACL,cAAU;AAAA,YACV,aAAY;AAAA,YACX,GAAG;AAAA,YAEJ,UAAA;AAAA,cAAAA,kCAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,kBAAkB,WACd,qCACA,iBACE,kCACA,WACE,iBACA;AAAA,kBACV;AAAA,kBAEC,UAAA;AAAA,oBAAA,YACEF,kCAAA,IAAA,IAAA,EAAG,WAAU,sDACX,UACH,OAAA;AAAA,oBAED,kBACCA,kCAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,cAAW;AAAA,wBACX,WAAU;AAAA,wBACV,SAAS,CAAC,MAAM;AACd,4BAAE,gBAAgB;AACR,oCAAA;AAAA,wBAAA;AAAA,sBACZ;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAEJ;AAAA,cACCA,kCAAAA,IAAA,OAAA,EAAI,WAAU,mDACZ,SACH,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;"}
@@ -86,6 +86,10 @@ const SwitchSelector = ({
86
86
  setValue(newValue);
87
87
  onChange?.(newValue);
88
88
  };
89
+ require$$0.useEffect(() => {
90
+ if (value === void 0) return;
91
+ setValue(value);
92
+ }, [value]);
89
93
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
90
94
  "div",
91
95
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useRef, type ReactNode, type HTMLAttributes, useState } from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\ntype SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary:\n 'border-primary text-primary dark:border-primary-dark dark:text-primary-dark',\n secondary:\n 'border-secondary text-secondary dark:border-secondary-dark dark:text-secondary-dark',\n destructive:\n 'border-destructive bg-destructive text-destructive dark:border-destructive-dark dark:bg-destructive-dark',\n neutral:\n 'border-neutral text-neutral dark:border-neutral-dark dark:text-neutral-dark',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text dark:border-text-dark dark:text-text-dark',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 text-sm font-medium transition-all duration-300 ease-in-out aria-selected:cursor-default aria-selected:text-text-dark motion-reduce:transition-none dark:aria-selected:text-text',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary:\n 'bg-primary aria-selected:text-text dark:bg-primary-dark dark:aria-selected:text-text-dark',\n secondary:\n 'bg-secondary aria-selected:text-text dark:bg-secondary-dark dark:aria-selected:text-text-dark',\n destructive:\n 'bg-destructive aria-selected:text-text dark:bg-destructive-dark dark:aria-selected:text-text-dark',\n neutral:\n 'bg-neutral aria-selected:text-white dark:bg-neutral-dark dark:aria-selected:text-text',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-dark dark:bg-text-dark dark:aria-selected:text-text',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["cva","useState","useRef","useItemSelector","jsx","jsxs","value","createElement","cn"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useRef,\n type ReactNode,\n type HTMLAttributes,\n useState,\n useEffect,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\ntype SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary:\n 'border-primary text-primary dark:border-primary-dark dark:text-primary-dark',\n secondary:\n 'border-secondary text-secondary dark:border-secondary-dark dark:text-secondary-dark',\n destructive:\n 'border-destructive bg-destructive text-destructive dark:border-destructive-dark dark:bg-destructive-dark',\n neutral:\n 'border-neutral text-neutral dark:border-neutral-dark dark:text-neutral-dark',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text dark:border-text-dark dark:text-text-dark',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 text-sm font-medium transition-all duration-300 ease-in-out aria-selected:cursor-default aria-selected:text-text-dark motion-reduce:transition-none dark:aria-selected:text-text',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary:\n 'bg-primary aria-selected:text-text dark:bg-primary-dark dark:aria-selected:text-text-dark',\n secondary:\n 'bg-secondary aria-selected:text-text dark:bg-secondary-dark dark:aria-selected:text-text-dark',\n destructive:\n 'bg-destructive aria-selected:text-text dark:bg-destructive-dark dark:aria-selected:text-text-dark',\n neutral:\n 'bg-neutral aria-selected:text-white dark:bg-neutral-dark dark:aria-selected:text-text',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-dark dark:bg-text-dark dark:aria-selected:text-text',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["cva","useState","useRef","useItemSelector","useEffect","jsx","jsxs","value","createElement","cn"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAU,KAAK,SAAS,EAAE,KAAK,cAAc,EAAY,MAAM,OAAO,CAAC;AAI9E,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACV,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;AAOjE,KAAK,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC5C,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErC,QAAA,MAAM,qBAAqB;;8EAsB1B,CAAC;AAEF,QAAA,MAAM,aAAa;;8EAclB,CAAC;AAuBF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,uEAQ7B,mBAAmB,CAAC,CAAC,CAAC,4CAiExB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EAGpB,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACV,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;AAOjE,KAAK,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC5C,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErC,QAAA,MAAM,qBAAqB;;8EAsB1B,CAAC;AAEF,QAAA,MAAM,aAAa;;8EAclB,CAAC;AAuBF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,uEAQ7B,mBAAmB,CAAC,CAAC,CAAC,4CAsExB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { j as jsxRuntimeExports } from "../../jsx-runtime-DaNGiM0W.js";
3
- import { useState, useRef, createElement } from "react";
3
+ import { useState, useRef, useEffect, createElement } from "react";
4
4
  import { cva } from "class-variance-authority";
5
5
  import "../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
6
6
  import "../../hooks/useAsync/useAsyncStateStore.mjs";
@@ -84,6 +84,10 @@ const SwitchSelector = ({
84
84
  setValue(newValue);
85
85
  onChange?.(newValue);
86
86
  };
87
+ useEffect(() => {
88
+ if (value === void 0) return;
89
+ setValue(value);
90
+ }, [value]);
87
91
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
88
92
  "div",
89
93
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useRef, type ReactNode, type HTMLAttributes, useState } from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\ntype SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary:\n 'border-primary text-primary dark:border-primary-dark dark:text-primary-dark',\n secondary:\n 'border-secondary text-secondary dark:border-secondary-dark dark:text-secondary-dark',\n destructive:\n 'border-destructive bg-destructive text-destructive dark:border-destructive-dark dark:bg-destructive-dark',\n neutral:\n 'border-neutral text-neutral dark:border-neutral-dark dark:text-neutral-dark',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text dark:border-text-dark dark:text-text-dark',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 text-sm font-medium transition-all duration-300 ease-in-out aria-selected:cursor-default aria-selected:text-text-dark motion-reduce:transition-none dark:aria-selected:text-text',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary:\n 'bg-primary aria-selected:text-text dark:bg-primary-dark dark:aria-selected:text-text-dark',\n secondary:\n 'bg-secondary aria-selected:text-text dark:bg-secondary-dark dark:aria-selected:text-text-dark',\n destructive:\n 'bg-destructive aria-selected:text-text dark:bg-destructive-dark dark:aria-selected:text-text-dark',\n neutral:\n 'bg-neutral aria-selected:text-white dark:bg-neutral-dark dark:aria-selected:text-text',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-dark dark:bg-text-dark dark:aria-selected:text-text',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["jsx","jsxs","value"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,iBAAiD;AAAA,EACrD,EAAE,SAAS,OAAO,OAAO,MAAM;AAAA,EAC/B,EAAE,SAAS,MAAM,OAAO,KAAK;AAC/B;AAWA,MAAM,wBAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IAEV;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IAER;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ;AAmBO,MAAM,iBAAiB,CAAK;AAAA,EACjC,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AACF,MAA8B;AACtB,QAAA,CAAC,YAAY,QAAQ,IAAI;AAAA,IAC7B,SAAS,gBAAgB,QAAQ,CAAC,EAAE;AAAA,EACtC;AACM,QAAA,cAAc,OAA4B,EAAE;AAC5C,QAAA,eAAe,OAA8B,IAAI;AACvD,QAAM,EAAE,wBAAA,IAA4B,gBAAgB,WAAW;AAEzD,QAAA,eAAe,CAAC,aAAgB;AACpC,aAAS,QAAQ;AACjB,eAAW,QAAQ;AAAA,EACrB;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,sBAAsB;AAAA,QAC/B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACD,MAAK;AAAA,MAEL,UAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,gEACZ,UAAA;AAAA,QAAQ,QAAA,IAAI,CAAC,QAAQ,UAAU;AAC9B,gBAAM,EAAE,SAAS,OAAAC,QAAO,GAAG,YAAgB,IAAA;AAE3C,gBAAM,aACJ,OAAOA,WAAU,YAAY,OAAOA,WAAU;AAEhD,gBAAM,aAAaA,WAAU;AAG3B,iBAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAG;AAAA,cACJ,WAAW;AAAA,gBACT,cAAc;AAAA,kBACZ;AAAA,gBACD,CAAA;AAAA,cACH;AAAA,cACA,KAAK,aAAaA,SAAQ;AAAA,cAC1B,MAAK;AAAA,cACL,SAAS,MAAM,aAAaA,MAAK;AAAA,cACjC,iBAAe;AAAA,cACf,UAAU;AAAA,cACV,KAAK,CAAC,OAAO;AACC,4BAAA,QAAQ,KAAK,IAAI;AAAA,cAAA;AAAA,YAC/B;AAAA,YAEC;AAAA,UACH;AAAA,QAAA,CAEH;AAAA,QACA,2BACCF,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT,iBAAiB;AAAA,gBACf;AAAA,cACD,CAAA;AAAA,YACH;AAAA,YACA,OAAO;AAAA,YACP,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,EAEJ,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useRef,\n type ReactNode,\n type HTMLAttributes,\n useState,\n useEffect,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\ntype SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary:\n 'border-primary text-primary dark:border-primary-dark dark:text-primary-dark',\n secondary:\n 'border-secondary text-secondary dark:border-secondary-dark dark:text-secondary-dark',\n destructive:\n 'border-destructive bg-destructive text-destructive dark:border-destructive-dark dark:bg-destructive-dark',\n neutral:\n 'border-neutral text-neutral dark:border-neutral-dark dark:text-neutral-dark',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text dark:border-text-dark dark:text-text-dark',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 text-sm font-medium transition-all duration-300 ease-in-out aria-selected:cursor-default aria-selected:text-text-dark motion-reduce:transition-none dark:aria-selected:text-text',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary:\n 'bg-primary aria-selected:text-text dark:bg-primary-dark dark:aria-selected:text-text-dark',\n secondary:\n 'bg-secondary aria-selected:text-text dark:bg-secondary-dark dark:aria-selected:text-text-dark',\n destructive:\n 'bg-destructive aria-selected:text-text dark:bg-destructive-dark dark:aria-selected:text-text-dark',\n neutral:\n 'bg-neutral aria-selected:text-white dark:bg-neutral-dark dark:aria-selected:text-text',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-dark dark:bg-text-dark dark:aria-selected:text-text',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["jsx","jsxs","value"],"mappings":"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"}