@intlayer/design-system 7.5.10 → 7.5.12

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 (453) hide show
  1. package/dist/esm/components/Accordion/Accordion.mjs +1 -1
  2. package/dist/esm/components/Avatar/index.mjs +1 -1
  3. package/dist/esm/components/Breadcrumb/index.mjs +1 -1
  4. package/dist/esm/components/Browser/Browser.mjs +1 -1
  5. package/dist/esm/components/Carousel/index.mjs +1 -1
  6. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs +1 -1
  7. package/dist/esm/components/Container/index.mjs +7 -2
  8. package/dist/esm/components/Container/index.mjs.map +1 -1
  9. package/dist/esm/components/ContentEditor/ContentEditor.mjs +1 -1
  10. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs +1 -1
  11. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +2 -2
  12. package/dist/esm/components/CopyButton/index.mjs +1 -1
  13. package/dist/esm/components/CopyToClipboard/index.mjs +1 -1
  14. package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs +1 -1
  15. package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs +1 -1
  16. package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +1 -1
  17. package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs +1 -1
  18. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs +1 -1
  19. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +3 -3
  20. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
  21. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +4 -4
  22. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +2 -2
  23. package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
  24. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -2
  25. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +4 -4
  26. package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs +1 -1
  27. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +1 -1
  28. package/dist/esm/components/EditableField/EditableFieldLayout.mjs +1 -1
  29. package/dist/esm/components/Footer/index.mjs +1 -1
  30. package/dist/esm/components/Footer/index.mjs.map +1 -1
  31. package/dist/esm/components/Form/FormItem.mjs +3 -2
  32. package/dist/esm/components/Form/FormItem.mjs.map +1 -1
  33. package/dist/esm/components/Form/elements/OTPElement.mjs +1 -1
  34. package/dist/esm/components/Form/layout/FormLabelLayout.mjs +1 -0
  35. package/dist/esm/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  36. package/dist/esm/components/HideShow/index.mjs +1 -1
  37. package/dist/esm/components/IDE/FileTree.mjs +1 -1
  38. package/dist/esm/components/Input/InputPassword.mjs +1 -1
  39. package/dist/esm/components/Input/OTPInput.mjs +1 -1
  40. package/dist/esm/components/KeyboardScreenAdapter/index.mjs +1 -1
  41. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs +1 -1
  42. package/dist/esm/components/LanguageBackground/index.mjs +2 -1
  43. package/dist/esm/components/LanguageBackground/index.mjs.map +1 -1
  44. package/dist/esm/components/Link/Link.mjs +1 -1
  45. package/dist/esm/components/Link/Link.mjs.map +1 -1
  46. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +2 -2
  47. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +1 -1
  48. package/dist/esm/components/Modal/Modal.mjs +23 -23
  49. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  50. package/dist/esm/components/Navbar/MobileNavbar.mjs +2 -2
  51. package/dist/esm/components/Pagination/Pagination.mjs +2 -2
  52. package/dist/esm/components/RightDrawer/RightDrawer.mjs +3 -3
  53. package/dist/esm/components/Select/Multiselect.mjs +1 -1
  54. package/dist/esm/components/SwitchSelector/index.mjs +1 -1
  55. package/dist/esm/components/Tab/Tab.mjs +1 -1
  56. package/dist/esm/components/TabSelector/TabSelector.mjs +1 -1
  57. package/dist/esm/components/Table/Table.mjs +1 -1
  58. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs +1 -1
  59. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +1 -1
  60. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs +1 -1
  61. package/dist/esm/components/Toaster/Toast.mjs +2 -2
  62. package/dist/esm/components/index.mjs +3 -3
  63. package/dist/esm/dist/esm/components/Container/index.mjs +133 -0
  64. package/dist/esm/dist/esm/components/Container/index.mjs.map +1 -0
  65. package/dist/esm/dist/esm/components/Flags/Flag.mjs +330 -0
  66. package/dist/esm/dist/esm/components/Flags/Flag.mjs.map +1 -0
  67. package/dist/esm/dist/esm/components/Flags/ae.mjs +37 -0
  68. package/dist/esm/dist/esm/components/Flags/ae.mjs.map +1 -0
  69. package/dist/esm/dist/esm/components/Flags/af.mjs +97 -0
  70. package/dist/esm/dist/esm/components/Flags/af.mjs.map +1 -0
  71. package/dist/esm/dist/esm/components/Flags/al.mjs +38 -0
  72. package/dist/esm/dist/esm/components/Flags/al.mjs.map +1 -0
  73. package/dist/esm/dist/esm/components/Flags/am.mjs +34 -0
  74. package/dist/esm/dist/esm/components/Flags/am.mjs.map +1 -0
  75. package/dist/esm/dist/esm/components/Flags/ar.mjs +161 -0
  76. package/dist/esm/dist/esm/components/Flags/ar.mjs.map +1 -0
  77. package/dist/esm/dist/esm/components/Flags/at.mjs +31 -0
  78. package/dist/esm/dist/esm/components/Flags/at.mjs.map +1 -0
  79. package/dist/esm/dist/esm/components/Flags/au.mjs +43 -0
  80. package/dist/esm/dist/esm/components/Flags/au.mjs.map +1 -0
  81. package/dist/esm/dist/esm/components/Flags/az.mjs +47 -0
  82. package/dist/esm/dist/esm/components/Flags/az.mjs.map +1 -0
  83. package/dist/esm/dist/esm/components/Flags/ba.mjs +41 -0
  84. package/dist/esm/dist/esm/components/Flags/ba.mjs.map +1 -0
  85. package/dist/esm/dist/esm/components/Flags/bd.mjs +33 -0
  86. package/dist/esm/dist/esm/components/Flags/bd.mjs.map +1 -0
  87. package/dist/esm/dist/esm/components/Flags/be.mjs +37 -0
  88. package/dist/esm/dist/esm/components/Flags/be.mjs.map +1 -0
  89. package/dist/esm/dist/esm/components/Flags/bg.mjs +34 -0
  90. package/dist/esm/dist/esm/components/Flags/bg.mjs.map +1 -0
  91. package/dist/esm/dist/esm/components/Flags/bh.mjs +31 -0
  92. package/dist/esm/dist/esm/components/Flags/bh.mjs.map +1 -0
  93. package/dist/esm/dist/esm/components/Flags/bn.mjs +43 -0
  94. package/dist/esm/dist/esm/components/Flags/bn.mjs.map +1 -0
  95. package/dist/esm/dist/esm/components/Flags/bo.mjs +3031 -0
  96. package/dist/esm/dist/esm/components/Flags/bo.mjs.map +1 -0
  97. package/dist/esm/dist/esm/components/Flags/br.mjs +107 -0
  98. package/dist/esm/dist/esm/components/Flags/br.mjs.map +1 -0
  99. package/dist/esm/dist/esm/components/Flags/bw.mjs +34 -0
  100. package/dist/esm/dist/esm/components/Flags/bw.mjs.map +1 -0
  101. package/dist/esm/dist/esm/components/Flags/by.mjs +46 -0
  102. package/dist/esm/dist/esm/components/Flags/by.mjs.map +1 -0
  103. package/dist/esm/dist/esm/components/Flags/bz.mjs +339 -0
  104. package/dist/esm/dist/esm/components/Flags/bz.mjs.map +1 -0
  105. package/dist/esm/dist/esm/components/Flags/ca.mjs +31 -0
  106. package/dist/esm/dist/esm/components/Flags/ca.mjs.map +1 -0
  107. package/dist/esm/dist/esm/components/Flags/ch.mjs +31 -0
  108. package/dist/esm/dist/esm/components/Flags/ch.mjs.map +1 -0
  109. package/dist/esm/dist/esm/components/Flags/cl.mjs +44 -0
  110. package/dist/esm/dist/esm/components/Flags/cl.mjs.map +1 -0
  111. package/dist/esm/dist/esm/components/Flags/cn.mjs +58 -0
  112. package/dist/esm/dist/esm/components/Flags/cn.mjs.map +1 -0
  113. package/dist/esm/dist/esm/components/Flags/co.mjs +37 -0
  114. package/dist/esm/dist/esm/components/Flags/co.mjs.map +1 -0
  115. package/dist/esm/dist/esm/components/Flags/cr.mjs +37 -0
  116. package/dist/esm/dist/esm/components/Flags/cr.mjs.map +1 -0
  117. package/dist/esm/dist/esm/components/Flags/cu.mjs +44 -0
  118. package/dist/esm/dist/esm/components/Flags/cu.mjs.map +1 -0
  119. package/dist/esm/dist/esm/components/Flags/cv.mjs +44 -0
  120. package/dist/esm/dist/esm/components/Flags/cv.mjs.map +1 -0
  121. package/dist/esm/dist/esm/components/Flags/cz.mjs +34 -0
  122. package/dist/esm/dist/esm/components/Flags/cz.mjs.map +1 -0
  123. package/dist/esm/dist/esm/components/Flags/de.mjs +34 -0
  124. package/dist/esm/dist/esm/components/Flags/de.mjs.map +1 -0
  125. package/dist/esm/dist/esm/components/Flags/dj.mjs +44 -0
  126. package/dist/esm/dist/esm/components/Flags/dj.mjs.map +1 -0
  127. package/dist/esm/dist/esm/components/Flags/dk.mjs +34 -0
  128. package/dist/esm/dist/esm/components/Flags/dk.mjs.map +1 -0
  129. package/dist/esm/dist/esm/components/Flags/do.mjs +212 -0
  130. package/dist/esm/dist/esm/components/Flags/do.mjs.map +1 -0
  131. package/dist/esm/dist/esm/components/Flags/dz.mjs +34 -0
  132. package/dist/esm/dist/esm/components/Flags/dz.mjs.map +1 -0
  133. package/dist/esm/dist/esm/components/Flags/ec.mjs +623 -0
  134. package/dist/esm/dist/esm/components/Flags/ec.mjs.map +1 -0
  135. package/dist/esm/dist/esm/components/Flags/ee.mjs +34 -0
  136. package/dist/esm/dist/esm/components/Flags/ee.mjs.map +1 -0
  137. package/dist/esm/dist/esm/components/Flags/eg.mjs +113 -0
  138. package/dist/esm/dist/esm/components/Flags/eg.mjs.map +1 -0
  139. package/dist/esm/dist/esm/components/Flags/es-ct.mjs +33 -0
  140. package/dist/esm/dist/esm/components/Flags/es-ct.mjs.map +1 -0
  141. package/dist/esm/dist/esm/components/Flags/es-ga.mjs +793 -0
  142. package/dist/esm/dist/esm/components/Flags/es-ga.mjs.map +1 -0
  143. package/dist/esm/dist/esm/components/Flags/es-pv.mjs +34 -0
  144. package/dist/esm/dist/esm/components/Flags/es-pv.mjs.map +1 -0
  145. package/dist/esm/dist/esm/components/Flags/es.mjs +2227 -0
  146. package/dist/esm/dist/esm/components/Flags/es.mjs.map +1 -0
  147. package/dist/esm/dist/esm/components/Flags/et.mjs +51 -0
  148. package/dist/esm/dist/esm/components/Flags/et.mjs.map +1 -0
  149. package/dist/esm/dist/esm/components/Flags/fi.mjs +34 -0
  150. package/dist/esm/dist/esm/components/Flags/fi.mjs.map +1 -0
  151. package/dist/esm/dist/esm/components/Flags/fo.mjs +42 -0
  152. package/dist/esm/dist/esm/components/Flags/fo.mjs.map +1 -0
  153. package/dist/esm/dist/esm/components/Flags/fr.mjs +34 -0
  154. package/dist/esm/dist/esm/components/Flags/fr.mjs.map +1 -0
  155. package/dist/esm/dist/esm/components/Flags/gb-wls.mjs +44 -0
  156. package/dist/esm/dist/esm/components/Flags/gb-wls.mjs.map +1 -0
  157. package/dist/esm/dist/esm/components/Flags/gb.mjs +40 -0
  158. package/dist/esm/dist/esm/components/Flags/gb.mjs.map +1 -0
  159. package/dist/esm/dist/esm/components/Flags/ge.mjs +38 -0
  160. package/dist/esm/dist/esm/components/Flags/ge.mjs.map +1 -0
  161. package/dist/esm/dist/esm/components/Flags/gh.mjs +37 -0
  162. package/dist/esm/dist/esm/components/Flags/gh.mjs.map +1 -0
  163. package/dist/esm/dist/esm/components/Flags/gr.mjs +67 -0
  164. package/dist/esm/dist/esm/components/Flags/gr.mjs.map +1 -0
  165. package/dist/esm/dist/esm/components/Flags/gt.mjs +462 -0
  166. package/dist/esm/dist/esm/components/Flags/gt.mjs.map +1 -0
  167. package/dist/esm/dist/esm/components/Flags/gw.mjs +68 -0
  168. package/dist/esm/dist/esm/components/Flags/gw.mjs.map +1 -0
  169. package/dist/esm/dist/esm/components/Flags/hk.mjs +45 -0
  170. package/dist/esm/dist/esm/components/Flags/hk.mjs.map +1 -0
  171. package/dist/esm/dist/esm/components/Flags/hn.mjs +84 -0
  172. package/dist/esm/dist/esm/components/Flags/hn.mjs.map +1 -0
  173. package/dist/esm/dist/esm/components/Flags/hr.mjs +95 -0
  174. package/dist/esm/dist/esm/components/Flags/hr.mjs.map +1 -0
  175. package/dist/esm/dist/esm/components/Flags/hu.mjs +34 -0
  176. package/dist/esm/dist/esm/components/Flags/hu.mjs.map +1 -0
  177. package/dist/esm/dist/esm/components/Flags/id.mjs +31 -0
  178. package/dist/esm/dist/esm/components/Flags/id.mjs.map +1 -0
  179. package/dist/esm/dist/esm/components/Flags/ie.mjs +37 -0
  180. package/dist/esm/dist/esm/components/Flags/ie.mjs.map +1 -0
  181. package/dist/esm/dist/esm/components/Flags/il.mjs +47 -0
  182. package/dist/esm/dist/esm/components/Flags/il.mjs.map +1 -0
  183. package/dist/esm/dist/esm/components/Flags/in.mjs +75 -0
  184. package/dist/esm/dist/esm/components/Flags/in.mjs.map +1 -0
  185. package/dist/esm/dist/esm/components/Flags/iq.mjs +41 -0
  186. package/dist/esm/dist/esm/components/Flags/iq.mjs.map +1 -0
  187. package/dist/esm/dist/esm/components/Flags/ir.mjs +113 -0
  188. package/dist/esm/dist/esm/components/Flags/ir.mjs.map +1 -0
  189. package/dist/esm/dist/esm/components/Flags/is.mjs +41 -0
  190. package/dist/esm/dist/esm/components/Flags/is.mjs.map +1 -0
  191. package/dist/esm/dist/esm/components/Flags/it.mjs +37 -0
  192. package/dist/esm/dist/esm/components/Flags/it.mjs.map +1 -0
  193. package/dist/esm/dist/esm/components/Flags/jm.mjs +37 -0
  194. package/dist/esm/dist/esm/components/Flags/jm.mjs.map +1 -0
  195. package/dist/esm/dist/esm/components/Flags/jo.mjs +49 -0
  196. package/dist/esm/dist/esm/components/Flags/jo.mjs.map +1 -0
  197. package/dist/esm/dist/esm/components/Flags/jp.mjs +42 -0
  198. package/dist/esm/dist/esm/components/Flags/jp.mjs.map +1 -0
  199. package/dist/esm/dist/esm/components/Flags/ke.mjs +92 -0
  200. package/dist/esm/dist/esm/components/Flags/ke.mjs.map +1 -0
  201. package/dist/esm/dist/esm/components/Flags/kg.mjs +50 -0
  202. package/dist/esm/dist/esm/components/Flags/kg.mjs.map +1 -0
  203. package/dist/esm/dist/esm/components/Flags/kh.mjs +77 -0
  204. package/dist/esm/dist/esm/components/Flags/kh.mjs.map +1 -0
  205. package/dist/esm/dist/esm/components/Flags/km.mjs +53 -0
  206. package/dist/esm/dist/esm/components/Flags/km.mjs.map +1 -0
  207. package/dist/esm/dist/esm/components/Flags/kr.mjs +65 -0
  208. package/dist/esm/dist/esm/components/Flags/kr.mjs.map +1 -0
  209. package/dist/esm/dist/esm/components/Flags/kw.mjs +45 -0
  210. package/dist/esm/dist/esm/components/Flags/kw.mjs.map +1 -0
  211. package/dist/esm/dist/esm/components/Flags/kz.mjs +95 -0
  212. package/dist/esm/dist/esm/components/Flags/kz.mjs.map +1 -0
  213. package/dist/esm/dist/esm/components/Flags/la.mjs +40 -0
  214. package/dist/esm/dist/esm/components/Flags/la.mjs.map +1 -0
  215. package/dist/esm/dist/esm/components/Flags/lb.mjs +51 -0
  216. package/dist/esm/dist/esm/components/Flags/lb.mjs.map +1 -0
  217. package/dist/esm/dist/esm/components/Flags/li.mjs +137 -0
  218. package/dist/esm/dist/esm/components/Flags/li.mjs.map +1 -0
  219. package/dist/esm/dist/esm/components/Flags/lk.mjs +74 -0
  220. package/dist/esm/dist/esm/components/Flags/lk.mjs.map +1 -0
  221. package/dist/esm/dist/esm/components/Flags/lt.mjs +47 -0
  222. package/dist/esm/dist/esm/components/Flags/lt.mjs.map +1 -0
  223. package/dist/esm/dist/esm/components/Flags/lu.mjs +34 -0
  224. package/dist/esm/dist/esm/components/Flags/lu.mjs.map +1 -0
  225. package/dist/esm/dist/esm/components/Flags/lv.mjs +31 -0
  226. package/dist/esm/dist/esm/components/Flags/lv.mjs.map +1 -0
  227. package/dist/esm/dist/esm/components/Flags/ly.mjs +40 -0
  228. package/dist/esm/dist/esm/components/Flags/ly.mjs.map +1 -0
  229. package/dist/esm/dist/esm/components/Flags/ma.mjs +33 -0
  230. package/dist/esm/dist/esm/components/Flags/ma.mjs.map +1 -0
  231. package/dist/esm/dist/esm/components/Flags/mc.mjs +34 -0
  232. package/dist/esm/dist/esm/components/Flags/mc.mjs.map +1 -0
  233. package/dist/esm/dist/esm/components/Flags/md.mjs +318 -0
  234. package/dist/esm/dist/esm/components/Flags/md.mjs.map +1 -0
  235. package/dist/esm/dist/esm/components/Flags/mk.mjs +38 -0
  236. package/dist/esm/dist/esm/components/Flags/mk.mjs.map +1 -0
  237. package/dist/esm/dist/esm/components/Flags/mm.mjs +59 -0
  238. package/dist/esm/dist/esm/components/Flags/mm.mjs.map +1 -0
  239. package/dist/esm/dist/esm/components/Flags/mn.mjs +60 -0
  240. package/dist/esm/dist/esm/components/Flags/mn.mjs.map +1 -0
  241. package/dist/esm/dist/esm/components/Flags/mo.mjs +43 -0
  242. package/dist/esm/dist/esm/components/Flags/mo.mjs.map +1 -0
  243. package/dist/esm/dist/esm/components/Flags/mr.mjs +38 -0
  244. package/dist/esm/dist/esm/components/Flags/mr.mjs.map +1 -0
  245. package/dist/esm/dist/esm/components/Flags/mt.mjs +154 -0
  246. package/dist/esm/dist/esm/components/Flags/mt.mjs.map +1 -0
  247. package/dist/esm/dist/esm/components/Flags/mv.mjs +41 -0
  248. package/dist/esm/dist/esm/components/Flags/mv.mjs.map +1 -0
  249. package/dist/esm/dist/esm/components/Flags/mx.mjs +1366 -0
  250. package/dist/esm/dist/esm/components/Flags/mx.mjs.map +1 -0
  251. package/dist/esm/dist/esm/components/Flags/my.mjs +79 -0
  252. package/dist/esm/dist/esm/components/Flags/my.mjs.map +1 -0
  253. package/dist/esm/dist/esm/components/Flags/mz.mjs +93 -0
  254. package/dist/esm/dist/esm/components/Flags/mz.mjs.map +1 -0
  255. package/dist/esm/dist/esm/components/Flags/ng.mjs +34 -0
  256. package/dist/esm/dist/esm/components/Flags/ng.mjs.map +1 -0
  257. package/dist/esm/dist/esm/components/Flags/ni.mjs +452 -0
  258. package/dist/esm/dist/esm/components/Flags/ni.mjs.map +1 -0
  259. package/dist/esm/dist/esm/components/Flags/nl.mjs +34 -0
  260. package/dist/esm/dist/esm/components/Flags/nl.mjs.map +1 -0
  261. package/dist/esm/dist/esm/components/Flags/no.mjs +40 -0
  262. package/dist/esm/dist/esm/components/Flags/no.mjs.map +1 -0
  263. package/dist/esm/dist/esm/components/Flags/np.mjs +39 -0
  264. package/dist/esm/dist/esm/components/Flags/np.mjs.map +1 -0
  265. package/dist/esm/dist/esm/components/Flags/nz.mjs +105 -0
  266. package/dist/esm/dist/esm/components/Flags/nz.mjs.map +1 -0
  267. package/dist/esm/dist/esm/components/Flags/om.mjs +540 -0
  268. package/dist/esm/dist/esm/components/Flags/om.mjs.map +1 -0
  269. package/dist/esm/dist/esm/components/Flags/pa.mjs +47 -0
  270. package/dist/esm/dist/esm/components/Flags/pa.mjs.map +1 -0
  271. package/dist/esm/dist/esm/components/Flags/pe.mjs +31 -0
  272. package/dist/esm/dist/esm/components/Flags/pe.mjs.map +1 -0
  273. package/dist/esm/dist/esm/components/Flags/ph.mjs +37 -0
  274. package/dist/esm/dist/esm/components/Flags/ph.mjs.map +1 -0
  275. package/dist/esm/dist/esm/components/Flags/pk.mjs +39 -0
  276. package/dist/esm/dist/esm/components/Flags/pk.mjs.map +1 -0
  277. package/dist/esm/dist/esm/components/Flags/pl.mjs +31 -0
  278. package/dist/esm/dist/esm/components/Flags/pl.mjs.map +1 -0
  279. package/dist/esm/dist/esm/components/Flags/pr.mjs +44 -0
  280. package/dist/esm/dist/esm/components/Flags/pr.mjs.map +1 -0
  281. package/dist/esm/dist/esm/components/Flags/ps.mjs +46 -0
  282. package/dist/esm/dist/esm/components/Flags/ps.mjs.map +1 -0
  283. package/dist/esm/dist/esm/components/Flags/pt.mjs +153 -0
  284. package/dist/esm/dist/esm/components/Flags/pt.mjs.map +1 -0
  285. package/dist/esm/dist/esm/components/Flags/py.mjs +62 -0
  286. package/dist/esm/dist/esm/components/Flags/py.mjs.map +1 -0
  287. package/dist/esm/dist/esm/components/Flags/qa.mjs +31 -0
  288. package/dist/esm/dist/esm/components/Flags/qa.mjs.map +1 -0
  289. package/dist/esm/dist/esm/components/Flags/ro.mjs +37 -0
  290. package/dist/esm/dist/esm/components/Flags/ro.mjs.map +1 -0
  291. package/dist/esm/dist/esm/components/Flags/rs.mjs +821 -0
  292. package/dist/esm/dist/esm/components/Flags/rs.mjs.map +1 -0
  293. package/dist/esm/dist/esm/components/Flags/ru.mjs +34 -0
  294. package/dist/esm/dist/esm/components/Flags/ru.mjs.map +1 -0
  295. package/dist/esm/dist/esm/components/Flags/sa.mjs +80 -0
  296. package/dist/esm/dist/esm/components/Flags/sa.mjs.map +1 -0
  297. package/dist/esm/dist/esm/components/Flags/sd.mjs +45 -0
  298. package/dist/esm/dist/esm/components/Flags/sd.mjs.map +1 -0
  299. package/dist/esm/dist/esm/components/Flags/se.mjs +31 -0
  300. package/dist/esm/dist/esm/components/Flags/se.mjs.map +1 -0
  301. package/dist/esm/dist/esm/components/Flags/sg.mjs +43 -0
  302. package/dist/esm/dist/esm/components/Flags/sg.mjs.map +1 -0
  303. package/dist/esm/dist/esm/components/Flags/si.mjs +60 -0
  304. package/dist/esm/dist/esm/components/Flags/si.mjs.map +1 -0
  305. package/dist/esm/dist/esm/components/Flags/sk.mjs +46 -0
  306. package/dist/esm/dist/esm/components/Flags/sk.mjs.map +1 -0
  307. package/dist/esm/dist/esm/components/Flags/so.mjs +38 -0
  308. package/dist/esm/dist/esm/components/Flags/so.mjs.map +1 -0
  309. package/dist/esm/dist/esm/components/Flags/st.mjs +74 -0
  310. package/dist/esm/dist/esm/components/Flags/st.mjs.map +1 -0
  311. package/dist/esm/dist/esm/components/Flags/sv.mjs +1736 -0
  312. package/dist/esm/dist/esm/components/Flags/sv.mjs.map +1 -0
  313. package/dist/esm/dist/esm/components/Flags/sy.mjs +37 -0
  314. package/dist/esm/dist/esm/components/Flags/sy.mjs.map +1 -0
  315. package/dist/esm/dist/esm/components/Flags/td.mjs +34 -0
  316. package/dist/esm/dist/esm/components/Flags/td.mjs.map +1 -0
  317. package/dist/esm/dist/esm/components/Flags/th.mjs +34 -0
  318. package/dist/esm/dist/esm/components/Flags/th.mjs.map +1 -0
  319. package/dist/esm/dist/esm/components/Flags/tl.mjs +44 -0
  320. package/dist/esm/dist/esm/components/Flags/tl.mjs.map +1 -0
  321. package/dist/esm/dist/esm/components/Flags/tn.mjs +31 -0
  322. package/dist/esm/dist/esm/components/Flags/tn.mjs.map +1 -0
  323. package/dist/esm/dist/esm/components/Flags/tr.mjs +37 -0
  324. package/dist/esm/dist/esm/components/Flags/tr.mjs.map +1 -0
  325. package/dist/esm/dist/esm/components/Flags/tt.mjs +36 -0
  326. package/dist/esm/dist/esm/components/Flags/tt.mjs.map +1 -0
  327. package/dist/esm/dist/esm/components/Flags/tw.mjs +41 -0
  328. package/dist/esm/dist/esm/components/Flags/tw.mjs.map +1 -0
  329. package/dist/esm/dist/esm/components/Flags/tz.mjs +45 -0
  330. package/dist/esm/dist/esm/components/Flags/tz.mjs.map +1 -0
  331. package/dist/esm/dist/esm/components/Flags/ua.mjs +34 -0
  332. package/dist/esm/dist/esm/components/Flags/ua.mjs.map +1 -0
  333. package/dist/esm/dist/esm/components/Flags/ug.mjs +146 -0
  334. package/dist/esm/dist/esm/components/Flags/ug.mjs.map +1 -0
  335. package/dist/esm/dist/esm/components/Flags/us.mjs +46 -0
  336. package/dist/esm/dist/esm/components/Flags/us.mjs.map +1 -0
  337. package/dist/esm/dist/esm/components/Flags/uy.mjs +64 -0
  338. package/dist/esm/dist/esm/components/Flags/uy.mjs.map +1 -0
  339. package/dist/esm/dist/esm/components/Flags/uz.mjs +110 -0
  340. package/dist/esm/dist/esm/components/Flags/uz.mjs.map +1 -0
  341. package/dist/esm/dist/esm/components/Flags/ve.mjs +85 -0
  342. package/dist/esm/dist/esm/components/Flags/ve.mjs.map +1 -0
  343. package/dist/esm/dist/esm/components/Flags/vn.mjs +38 -0
  344. package/dist/esm/dist/esm/components/Flags/vn.mjs.map +1 -0
  345. package/dist/esm/dist/esm/components/Flags/xx.mjs +36 -0
  346. package/dist/esm/dist/esm/components/Flags/xx.mjs.map +1 -0
  347. package/dist/esm/dist/esm/components/Flags/ye.mjs +37 -0
  348. package/dist/esm/dist/esm/components/Flags/ye.mjs.map +1 -0
  349. package/dist/esm/dist/esm/components/Flags/za.mjs +52 -0
  350. package/dist/esm/dist/esm/components/Flags/za.mjs.map +1 -0
  351. package/dist/esm/dist/esm/components/Flags/zw.mjs +71 -0
  352. package/dist/esm/dist/esm/components/Flags/zw.mjs.map +1 -0
  353. package/dist/esm/dist/esm/utils/cn.mjs +9 -0
  354. package/dist/esm/dist/esm/utils/cn.mjs.map +1 -0
  355. package/dist/esm/hooks/index.mjs +7 -7
  356. package/dist/esm/hooks/reactQuery.mjs +102 -1
  357. package/dist/esm/hooks/reactQuery.mjs.map +1 -1
  358. package/dist/esm/providers/ReactQueryProvider.mjs +5 -4
  359. package/dist/esm/providers/ReactQueryProvider.mjs.map +1 -1
  360. package/dist/types/components/Badge/index.d.ts +2 -2
  361. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +3 -3
  362. package/dist/types/components/Breadcrumb/index.d.ts +2 -2
  363. package/dist/types/components/Browser/Browser.d.ts +2 -2
  364. package/dist/types/components/Browser/Browser.d.ts.map +1 -1
  365. package/dist/types/components/Browser/browser.content.d.ts +17 -17
  366. package/dist/types/components/Browser/browser.content.d.ts.map +1 -1
  367. package/dist/types/components/Button/Button.d.ts +7 -7
  368. package/dist/types/components/Carousel/index.content.d.ts +8 -8
  369. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +3 -3
  370. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts.map +1 -1
  371. package/dist/types/components/Command/index.d.ts +17 -17
  372. package/dist/types/components/Container/index.d.ts +5 -5
  373. package/dist/types/components/Container/index.d.ts.map +1 -1
  374. package/dist/types/components/CopyButton/CopyButton.content.d.ts +3 -3
  375. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +25 -25
  376. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +9 -9
  377. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +33 -33
  378. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +25 -25
  379. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +25 -25
  380. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +33 -33
  381. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +9 -9
  382. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +7 -7
  383. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +5 -5
  384. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +31 -31
  385. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
  386. package/dist/types/components/EditableField/EditableFieldInput.d.ts.map +1 -1
  387. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +4 -4
  388. package/dist/types/components/Form/FormBase.d.ts +2 -2
  389. package/dist/types/components/Form/FormBase.d.ts.map +1 -1
  390. package/dist/types/components/Form/FormField.d.ts +2 -2
  391. package/dist/types/components/Form/FormField.d.ts.map +1 -1
  392. package/dist/types/components/Form/FormItem.d.ts +2 -2
  393. package/dist/types/components/Form/FormItem.d.ts.map +1 -1
  394. package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -2
  395. package/dist/types/components/Form/elements/FormElement.d.ts +2 -2
  396. package/dist/types/components/Form/elements/MultiselectElement.d.ts +2 -2
  397. package/dist/types/components/Form/elements/OTPElement.d.ts +2 -2
  398. package/dist/types/components/Form/elements/SelectElement.d.ts +2 -2
  399. package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts +2 -2
  400. package/dist/types/components/IDE/CodeContext.d.ts +2 -2
  401. package/dist/types/components/IDE/CodeContext.d.ts.map +1 -1
  402. package/dist/types/components/IDE/FileTree.d.ts.map +1 -1
  403. package/dist/types/components/IDE/code.content.d.ts +5 -5
  404. package/dist/types/components/IDE/code.content.d.ts.map +1 -1
  405. package/dist/types/components/IDE/copyCode.content.d.ts +5 -5
  406. package/dist/types/components/IDE/selectors.content.d.ts +13 -13
  407. package/dist/types/components/Input/Checkbox.d.ts +2 -2
  408. package/dist/types/components/Input/Checkbox.d.ts.map +1 -1
  409. package/dist/types/components/Input/Input.d.ts +1 -1
  410. package/dist/types/components/Input/Input.d.ts.map +1 -1
  411. package/dist/types/components/Input/OTPInput.d.ts +2 -2
  412. package/dist/types/components/Input/SearchInput.d.ts +2 -2
  413. package/dist/types/components/Link/Link.d.ts +5 -5
  414. package/dist/types/components/Link/Link.d.ts.map +1 -1
  415. package/dist/types/components/Loader/index.content.d.ts +3 -3
  416. package/dist/types/components/Loader/spinner.d.ts +2 -2
  417. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +17 -17
  418. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
  419. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +13 -13
  420. package/dist/types/components/MaxWidthSmoother/index.d.ts +2 -2
  421. package/dist/types/components/MaxWidthSmoother/index.d.ts.map +1 -1
  422. package/dist/types/components/Modal/Modal.d.ts +4 -16
  423. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  424. package/dist/types/components/Navbar/Burger.d.ts +2 -2
  425. package/dist/types/components/Navbar/DesktopNavbar.d.ts +2 -2
  426. package/dist/types/components/Navbar/MobileNavbar.d.ts +2 -2
  427. package/dist/types/components/Navbar/index.d.ts +2 -2
  428. package/dist/types/components/Pagination/Pagination.d.ts +4 -4
  429. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  430. package/dist/types/components/Pagination/pagination.content.d.ts +11 -11
  431. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +5 -5
  432. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts.map +1 -1
  433. package/dist/types/components/RightDrawer/useRightDrawerStore.d.ts +2 -2
  434. package/dist/types/components/Select/Select.d.ts +3 -3
  435. package/dist/types/components/SocialNetworks/index.d.ts +2 -2
  436. package/dist/types/components/SwitchSelector/index.d.ts +4 -4
  437. package/dist/types/components/SwitchSelector/index.d.ts.map +1 -1
  438. package/dist/types/components/Tab/Tab.d.ts +4 -4
  439. package/dist/types/components/Tab/TabContext.d.ts +2 -2
  440. package/dist/types/components/TabSelector/TabSelector.d.ts +3 -3
  441. package/dist/types/components/TabSelector/TabSelector.d.ts.map +1 -1
  442. package/dist/types/components/Table/table.content.d.ts +3 -3
  443. package/dist/types/components/Tag/index.d.ts +5 -5
  444. package/dist/types/components/Terminal/terminal.content.d.ts +5 -5
  445. package/dist/types/components/Toaster/Toast.d.ts +2 -2
  446. package/dist/types/components/Toaster/Toaster.d.ts +2 -2
  447. package/dist/types/hooks/index.d.ts +2 -2
  448. package/dist/types/hooks/reactQuery.d.ts +19 -1
  449. package/dist/types/hooks/reactQuery.d.ts.map +1 -1
  450. package/dist/types/hooks/useItemSelector.d.ts.map +1 -1
  451. package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts +2 -2
  452. package/dist/types/providers/ReactQueryProvider.d.ts.map +1 -1
  453. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["LocalCard: FC<{ locale: string }>","LocalCardList: FC<{ localeList: string[]; className?: string }>","emptyArrayOfLocale: string[][]","arrayOfLocale: string[][]","LanguageSection: FC<HTMLAttributes<HTMLElement>>","LanguageBackground: FC<PropsWithChildren>"],"sources":["../../../../src/components/LanguageBackground/index.tsx"],"sourcesContent":["'use client';\n\nimport { Container, Flag } from '@intlayer/design-system';\nimport { cn } from '@utils/cn';\nimport { getHTMLTextDir, getLocaleName, type Locale, Locales } from 'intlayer';\nimport {\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n useEffect,\n useState,\n} from 'react';\n\nconst shuffleArray = (array: string[], limit?: number) => {\n const shuffled = [...array];\n\n for (let i = shuffled.length - 1; i > 0; i--) {\n const randomIndex = Math.floor(Math.random() * (i + 1));\n\n [shuffled[i], shuffled[randomIndex]] = [shuffled[randomIndex], shuffled[i]];\n }\n\n return limit ? shuffled.slice(0, limit) : shuffled;\n};\n\nconst LocalCard: FC<{ locale: string }> = ({ locale, ...props }) => (\n <div\n className=\"group z-10 mx-8 inline-flex shrink-0 transition-transform duration-300 hover:scale-105\"\n {...props}\n >\n <Container\n roundedSize=\"xl\"\n className=\"flex flex-row items-center gap-5 p-3\"\n >\n <Flag\n locale={locale as Locale}\n className=\"max-h-5 max-w-5 rounded-sm grayscale-80 transition duration-300 group-hover:grayscale-0\"\n width={640}\n height={480}\n loading=\"lazy\"\n />\n <span\n dir={getHTMLTextDir(locale as Locale)}\n lang={locale as Locale}\n className=\"flex text-nowrap\"\n >\n {getLocaleName(locale as Locale)}\n </span>\n </Container>\n </div>\n);\n\nconst LocalCardList: FC<{ localeList: string[]; className?: string }> = ({\n localeList,\n className,\n ...props\n}) => (\n <div className=\"relative flex w-full overflow-hidden\" {...props}>\n <div\n className={cn('inline-flex shrink-0 will-change-transform', className)}\n >\n {/* First set of cards */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-first-${index}`} locale={locale} />\n ))}\n {/* Duplicate set for seamless loop */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-second-${index}`} locale={locale} />\n ))}\n </div>\n </div>\n);\n\nconst NUM_OF_LOCALES = 15;\n\nconst emptyArrayOfLocale: string[][] = new Array(4).fill(0).map(() => []);\nconst arrayOfLocale: string[][] = new Array(4)\n .fill(0)\n .map(() => shuffleArray(Object.values(Locales.ALL_LOCALES), NUM_OF_LOCALES));\n\nexport const LanguageSection: FC<HTMLAttributes<HTMLElement>> = ({\n className,\n ...props\n}) => {\n const [localeList, setLocaleList] = useState(emptyArrayOfLocale);\n const [firstPart, secondPart, thirdPart, fourthPart] = localeList;\n\n useEffect(() => {\n setLocaleList(arrayOfLocale);\n }, []);\n\n return (\n <section\n className={cn(\n 'mask-[linear-gradient(to_right,transparent_0,black_128px,black_calc(100%-128px),transparent_100%)] my-10 w-full overflow-hidden',\n className\n )}\n {...props}\n >\n <div className=\"relative flex w-full flex-col gap-5 py-3\">\n <LocalCardList localeList={firstPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={secondPart} className=\"horizontal-loop-2\" />\n <LocalCardList localeList={thirdPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={fourthPart} className=\"horizontal-loop-2\" />\n </div>\n </section>\n );\n};\n\nexport const LanguageBackground: FC<PropsWithChildren> = ({ children }) => (\n <>\n <div className=\"absolute top-0 left-0 z-0 flex size-full items-center justify-center\">\n <LanguageSection className=\"mt-[30%]\" />\n </div>\n {children}\n </>\n);\n"],"mappings":";;;;;;;;;AAaA,MAAM,gBAAgB,OAAiB,UAAmB;CACxD,MAAM,WAAW,CAAC,GAAG,MAAM;AAE3B,MAAK,IAAI,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;EAC5C,MAAM,cAAc,KAAK,MAAM,KAAK,QAAQ,IAAI,IAAI,GAAG;AAEvD,GAAC,SAAS,IAAI,SAAS,gBAAgB,CAAC,SAAS,cAAc,SAAS,GAAG;;AAG7E,QAAO,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG;;AAG5C,MAAMA,aAAqC,EAAE,QAAQ,GAAG,YACtD,oBAAC;CACC,WAAU;CACV,GAAI;WAEJ,qBAAC;EACC,aAAY;EACZ,WAAU;aAEV,oBAAC;GACS;GACR,WAAU;GACV,OAAO;GACP,QAAQ;GACR,SAAQ;IACR,EACF,oBAAC;GACC,KAAK,eAAe,OAAiB;GACrC,MAAM;GACN,WAAU;aAET,cAAc,OAAiB;IAC3B;GACG;EACR;AAGR,MAAMC,iBAAmE,EACvE,YACA,WACA,GAAG,YAEH,oBAAC;CAAI,WAAU;CAAuC,GAAI;WACxD,qBAAC;EACC,WAAW,GAAG,8CAA8C,UAAU;aAGrE,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAmD,UAApC,GAAG,OAAO,SAAS,QAA2B,CAC9D,EAED,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAoD,UAArC,GAAG,OAAO,UAAU,QAA2B,CAC/D;GACE;EACF;AAGR,MAAM,iBAAiB;AAEvB,MAAMC,qBAAiC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;AACzE,MAAMC,gBAA4B,IAAI,MAAM,EAAE,CAC3C,KAAK,EAAE,CACP,UAAU,aAAa,OAAO,OAAO,QAAQ,YAAY,EAAE,eAAe,CAAC;AAE9E,MAAaC,mBAAoD,EAC/D,WACA,GAAG,YACC;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,mBAAmB;CAChE,MAAM,CAAC,WAAW,YAAY,WAAW,cAAc;AAEvD,iBAAgB;AACd,gBAAc,cAAc;IAC3B,EAAE,CAAC;AAEN,QACE,oBAAC;EACC,WAAW,GACT,mIACA,UACD;EACD,GAAI;YAEJ,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;IACvE,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;;IACnE;GACE;;AAId,MAAaC,sBAA6C,EAAE,eAC1D,8CACE,oBAAC;CAAI,WAAU;WACb,oBAAC,mBAAgB,WAAU,aAAa;EACpC,EACL,YACA"}
1
+ {"version":3,"file":"index.mjs","names":["LocalCard: FC<{ locale: string }>","LocalCardList: FC<{ localeList: string[]; className?: string }>","emptyArrayOfLocale: string[][]","arrayOfLocale: string[][]","LanguageSection: FC<HTMLAttributes<HTMLElement>>","LanguageBackground: FC<PropsWithChildren>"],"sources":["../../../../src/components/LanguageBackground/index.tsx"],"sourcesContent":["'use client';\n\nimport { Container, Flag } from '@intlayer/design-system';\nimport { cn } from '@utils/cn';\nimport { getHTMLTextDir, getLocaleName, type Locale, Locales } from 'intlayer';\nimport {\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n useEffect,\n useState,\n} from 'react';\n\nconst shuffleArray = (array: string[], limit?: number) => {\n const shuffled = [...array];\n\n for (let i = shuffled.length - 1; i > 0; i--) {\n const randomIndex = Math.floor(Math.random() * (i + 1));\n\n [shuffled[i], shuffled[randomIndex]] = [shuffled[randomIndex], shuffled[i]];\n }\n\n return limit ? shuffled.slice(0, limit) : shuffled;\n};\n\nconst LocalCard: FC<{ locale: string }> = ({ locale, ...props }) => (\n <div\n className=\"group z-10 mx-8 inline-flex shrink-0 transition-transform duration-300 hover:scale-105\"\n {...props}\n >\n <Container\n roundedSize=\"xl\"\n className=\"flex flex-row items-center gap-5 p-3\"\n >\n <Flag\n locale={locale as Locale}\n className=\"max-h-5 max-w-5 rounded-sm grayscale-80 transition duration-300 group-hover:grayscale-0\"\n width={640}\n height={480}\n loading=\"lazy\"\n />\n <span\n dir={getHTMLTextDir(locale as Locale)}\n lang={locale as Locale}\n className=\"flex text-nowrap\"\n >\n {getLocaleName(locale as Locale)}\n </span>\n </Container>\n </div>\n);\n\nconst LocalCardList: FC<{ localeList: string[]; className?: string }> = ({\n localeList,\n className,\n ...props\n}) => (\n <div className=\"relative flex w-full overflow-hidden\" {...props}>\n <div\n className={cn('inline-flex shrink-0 will-change-transform', className)}\n >\n {/* First set of cards */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-first-${index}`} locale={locale} />\n ))}\n {/* Duplicate set for seamless loop */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-second-${index}`} locale={locale} />\n ))}\n </div>\n </div>\n);\n\nconst NUM_OF_LOCALES = 15;\n\nconst emptyArrayOfLocale: string[][] = new Array(4).fill(0).map(() => []);\nconst arrayOfLocale: string[][] = new Array(4)\n .fill(0)\n .map(() => shuffleArray(Object.values(Locales.ALL_LOCALES), NUM_OF_LOCALES));\n\nexport const LanguageSection: FC<HTMLAttributes<HTMLElement>> = ({\n className,\n ...props\n}) => {\n const [localeList, setLocaleList] = useState(emptyArrayOfLocale);\n const [firstPart, secondPart, thirdPart, fourthPart] = localeList;\n\n useEffect(() => {\n setLocaleList(arrayOfLocale);\n }, []);\n\n return (\n <section\n className={cn(\n 'mask-[linear-gradient(to_right,transparent_0,black_128px,black_calc(100%-128px),transparent_100%)] my-10 w-full overflow-hidden',\n className\n )}\n {...props}\n >\n <div className=\"relative flex w-full flex-col gap-5 py-3\">\n <LocalCardList localeList={firstPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={secondPart} className=\"horizontal-loop-2\" />\n <LocalCardList localeList={thirdPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={fourthPart} className=\"horizontal-loop-2\" />\n </div>\n </section>\n );\n};\n\nexport const LanguageBackground: FC<PropsWithChildren> = ({ children }) => (\n <>\n <div className=\"absolute top-0 left-0 z-0 flex size-full items-center justify-center\">\n <LanguageSection className=\"mt-[30%]\" />\n </div>\n {children}\n </>\n);\n"],"mappings":";;;;;;;;;;AAaA,MAAM,gBAAgB,OAAiB,UAAmB;CACxD,MAAM,WAAW,CAAC,GAAG,MAAM;AAE3B,MAAK,IAAI,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;EAC5C,MAAM,cAAc,KAAK,MAAM,KAAK,QAAQ,IAAI,IAAI,GAAG;AAEvD,GAAC,SAAS,IAAI,SAAS,gBAAgB,CAAC,SAAS,cAAc,SAAS,GAAG;;AAG7E,QAAO,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG;;AAG5C,MAAMA,aAAqC,EAAE,QAAQ,GAAG,YACtD,oBAAC;CACC,WAAU;CACV,GAAI;WAEJ,qBAAC;EACC,aAAY;EACZ,WAAU;aAEV,oBAAC;GACS;GACR,WAAU;GACV,OAAO;GACP,QAAQ;GACR,SAAQ;IACR,EACF,oBAAC;GACC,KAAK,eAAe,OAAiB;GACrC,MAAM;GACN,WAAU;aAET,cAAc,OAAiB;IAC3B;GACG;EACR;AAGR,MAAMC,iBAAmE,EACvE,YACA,WACA,GAAG,YAEH,oBAAC;CAAI,WAAU;CAAuC,GAAI;WACxD,qBAAC;EACC,WAAW,GAAG,8CAA8C,UAAU;aAGrE,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAmD,UAApC,GAAG,OAAO,SAAS,QAA2B,CAC9D,EAED,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAoD,UAArC,GAAG,OAAO,UAAU,QAA2B,CAC/D;GACE;EACF;AAGR,MAAM,iBAAiB;AAEvB,MAAMC,qBAAiC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;AACzE,MAAMC,gBAA4B,IAAI,MAAM,EAAE,CAC3C,KAAK,EAAE,CACP,UAAU,aAAa,OAAO,OAAO,QAAQ,YAAY,EAAE,eAAe,CAAC;AAE9E,MAAaC,mBAAoD,EAC/D,WACA,GAAG,YACC;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,mBAAmB;CAChE,MAAM,CAAC,WAAW,YAAY,WAAW,cAAc;AAEvD,iBAAgB;AACd,gBAAc,cAAc;IAC3B,EAAE,CAAC;AAEN,QACE,oBAAC;EACC,WAAW,GACT,mIACA,UACD;EACD,GAAI;YAEJ,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;IACvE,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;;IACnE;GACE;;AAId,MAAaC,sBAA6C,EAAE,eAC1D,8CACE,oBAAC;CAAI,WAAU;WACb,oBAAC,mBAAgB,WAAU,aAAa;EACpC,EACL,YACA"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../../utils/cn.mjs";
2
- import { ExternalLink, MoveRight } from "lucide-react";
3
2
  import { isValidElement } from "react";
4
3
  import { cva } from "class-variance-authority";
4
+ import { ExternalLink, MoveRight } from "lucide-react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { getLocalizedUrl } from "@intlayer/core";
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"Link.mjs","names":["Link: FC<LinkProps>"],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // 1. We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // 2. We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // 1. Parent is 'text-opposite' (Border is white).\n // 2. Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n // ---------------------------------------------------------\n // FIX END\n // ---------------------------------------------------------\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Link.mjs","names":["Link: FC<LinkProps>"],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // Parent is 'text-opposite' (Border is white).\n // Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
 
3
+ import { usePersistedStore } from "../../hooks/usePersistedStore.mjs";
3
4
  import { Container } from "../Container/index.mjs";
4
5
  import { Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant } from "../Button/Button.mjs";
5
6
  import { Input } from "../Input/Input.mjs";
6
- import { usePersistedStore } from "../../hooks/usePersistedStore.mjs";
7
7
  import { DropDown } from "../DropDown/index.mjs";
8
8
  import { SwitchSelector, SwitchSelectorColor, SwitchSelectorSize } from "../SwitchSelector/index.mjs";
9
9
  import { useLocaleSwitcherContent } from "./LocaleSwitcherContentContext.mjs";
10
- import { Check, Globe, MoveVertical } from "lucide-react";
11
10
  import { useMemo, useRef, useState } from "react";
11
+ import { Check, Globe, MoveVertical } from "lucide-react";
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
13
  import { getHTMLTextDir, getLocaleName } from "@intlayer/core";
14
14
  import { useIntlayer, useLocale } from "react-intlayer";
@@ -4,8 +4,8 @@ import { Container } from "../Container/index.mjs";
4
4
  import { Button, ButtonColor, ButtonTextAlign, ButtonVariant } from "../Button/Button.mjs";
5
5
  import { Input } from "../Input/Input.mjs";
6
6
  import { DropDown } from "../DropDown/index.mjs";
7
- import { MoveVertical } from "lucide-react";
8
7
  import { useCallback, useMemo, useRef, useState } from "react";
8
+ import { MoveVertical } from "lucide-react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import { getHTMLTextDir, getLocaleName } from "@intlayer/core";
11
11
  import { useIntlayer } from "react-intlayer";
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
 
3
+ import { useGetElementOrWindow } from "../../hooks/useGetElementOrWindow.mjs";
4
+ import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
3
5
  import { cn } from "../../utils/cn.mjs";
4
6
  import { Container } from "../Container/index.mjs";
5
7
  import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
6
8
  import { H3 } from "../Headers/index.mjs";
7
- import { useGetElementOrWindow } from "../../hooks/useGetElementOrWindow.mjs";
8
- import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
9
- import { X } from "lucide-react";
10
9
  import { useEffect } from "react";
11
10
  import { cva } from "class-variance-authority";
11
+ import { X } from "lucide-react";
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
13
  import { motion } from "framer-motion";
14
14
  import { createPortal } from "react-dom";
@@ -18,23 +18,14 @@ import { createPortal } from "react-dom";
18
18
  * Enumeration of available modal sizes
19
19
  */
20
20
  let ModalSize = /* @__PURE__ */ function(ModalSize$1) {
21
- /** Small modal: max height 30vh, max width xl */
22
21
  ModalSize$1["SM"] = "sm";
23
- /** Medium modal: max height 50vh, max width xl */
24
22
  ModalSize$1["MD"] = "md";
25
- /** Large modal: max height 70vh, max width 2xl */
26
23
  ModalSize$1["LG"] = "lg";
27
- /** Extra large modal: max height 95vh, max width 6xl */
28
24
  ModalSize$1["XL"] = "xl";
29
- /** Unset size: max height 95vh, full width responsive */
30
25
  ModalSize$1["UNSET"] = "unset";
31
26
  return ModalSize$1;
32
27
  }({});
33
- /**
34
- * Class name variants for different modal sizes using class-variance-authority
35
- * Defines responsive sizing and scrollable content for modal containers
36
- */
37
- const modalVariants = cva("flex cursor-default flex-col p-3 shadow-sm", {
28
+ const modalVariants = cva("flex cursor-default flex-col overflow-hidden shadow-sm", {
38
29
  variants: { size: {
39
30
  sm: "h-auto max-h-[30vh] w-[95vw] max-w-xl",
40
31
  md: "h-auto max-h-[50vh] w-[95vw] max-w-xl",
@@ -44,10 +35,14 @@ const modalVariants = cva("flex cursor-default flex-col p-3 shadow-sm", {
44
35
  } },
45
36
  defaultVariants: { size: "unset" }
46
37
  });
47
- /**
48
- * Motion-enabled modal component with Framer Motion support
49
- * Extends Container component with motion capabilities for animations
50
- */
38
+ const contentPaddingVariants = {
39
+ none: "p-0",
40
+ sm: "px-2 py-4",
41
+ md: "px-4 py-6",
42
+ lg: "px-6 py-8",
43
+ xl: "px-8 py-10",
44
+ "2xl": "px-10 py-12"
45
+ };
51
46
  const MotionModal = motion.create(Container);
52
47
  /**
53
48
  * Modal Component
@@ -116,7 +111,7 @@ const MotionModal = motion.create(Container);
116
111
  * @param props - Modal component props
117
112
  * @returns JSX element rendered via createPortal
118
113
  */
119
- const Modal = ({ children, isOpen, container, disableScroll = true, onClose, hasCloseButton = false, title, size = ModalSize.MD, className, ...props }) => {
114
+ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, hasCloseButton = false, title, size = ModalSize.MD, className, isScrollable = false, padding = "none", ...props }) => {
120
115
  const containerElement = useGetElementOrWindow(container);
121
116
  useScrollBlockage({
122
117
  key: "modal",
@@ -133,8 +128,9 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
133
128
  }, [isOpen, onClose]);
134
129
  if (!containerElement) return /* @__PURE__ */ jsx(Fragment$1, {});
135
130
  const hasTitle = typeof title === "string";
131
+ const contentPaddingClass = contentPaddingVariants[padding || "none"];
136
132
  return createPortal(/* @__PURE__ */ jsx(motion.div, {
137
- className: "invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto bg-background/40 backdrop-blur",
133
+ className: "invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-hidden bg-background/40 backdrop-blur",
138
134
  animate: isOpen ? "visible" : "invisible",
139
135
  variants: {
140
136
  visible: {
@@ -171,11 +167,12 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
171
167
  role: "dialog",
172
168
  "aria-modal": true,
173
169
  roundedSize: "4xl",
170
+ padding: "none",
174
171
  ...props,
175
172
  children: [/* @__PURE__ */ jsxs("div", {
176
- className: cn("cursor-default", hasCloseButton && hasTitle ? `flex items-start` : hasCloseButton ? `flex justify-end` : hasTitle ? `items-center` : `hidden`),
173
+ className: cn("relative flex-none px-4 pt-4", hasCloseButton && hasTitle ? `flex items-start` : hasCloseButton ? `flex justify-end` : hasTitle ? `items-center` : `hidden`),
177
174
  children: [hasTitle && /* @__PURE__ */ jsx(H3, {
178
- className: "mt-2 mb-4 ml-4 flex items-center justify-center font-bold text-lg",
175
+ className: "mb-2 ml-1 flex items-center justify-center font-bold text-lg",
179
176
  children: title
180
177
  }), hasCloseButton && /* @__PURE__ */ jsx(Button, {
181
178
  variant: ButtonVariant.HOVERABLE,
@@ -190,8 +187,11 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
190
187
  size: ButtonSize.ICON_MD
191
188
  })]
192
189
  }), /* @__PURE__ */ jsx("div", {
193
- className: "flex w-full flex-1 flex-col",
194
- children
190
+ className: cn("flex min-h-0 w-full flex-1 flex-col", isScrollable === true && "overflow-auto", isScrollable === "y" && "overflow-y-auto overflow-x-hidden", isScrollable === "x" && "overflow-x-auto overflow-y-hidden", !isScrollable && "overflow-visible"),
191
+ children: /* @__PURE__ */ jsx("div", {
192
+ className: cn("h-full w-full", contentPaddingClass),
193
+ children
194
+ })
195
195
  })]
196
196
  })
197
197
  }), containerElement);
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.mjs","names":["m","Modal: FC<ModalProps>"],"sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { useGetElementOrWindow, useScrollBlockage } from '@hooks/index';\nimport { cn } from '@utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { motion as m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { type FC, type ReactNode, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\n/**\n * Enumeration of available modal sizes\n */\nexport enum ModalSize {\n /** Small modal: max height 30vh, max width xl */\n SM = 'sm',\n /** Medium modal: max height 50vh, max width xl */\n MD = 'md',\n /** Large modal: max height 70vh, max width 2xl */\n LG = 'lg',\n /** Extra large modal: max height 95vh, max width 6xl */\n XL = 'xl',\n /** Unset size: max height 95vh, full width responsive */\n UNSET = 'unset',\n}\n\n/**\n * Props for the Modal component\n */\ntype ModalProps = {\n /** Content to be displayed inside the modal */\n children: ReactNode;\n /** Controls whether the modal is visible */\n isOpen: boolean;\n /** Callback function called when the modal should be closed */\n onClose?: () => void;\n /** Container element to render the modal into (defaults to document.body) */\n container?: HTMLElement;\n /** Whether to disable scrolling on the background content */\n disableScroll?: boolean;\n /** Whether to display a close button in the modal header */\n hasCloseButton?: boolean;\n /** Optional title displayed at the top of the modal */\n title?: string;\n /** Size variant for the modal */\n size?: ModalSize | `${ModalSize}`;\n} & Pick<\n ContainerProps,\n | 'className'\n | 'transparency'\n | 'border'\n | 'background'\n | 'roundedSize'\n | 'borderColor'\n | 'padding'\n | 'separator'\n | 'gap'\n>;\n\n/**\n * Class name variants for different modal sizes using class-variance-authority\n * Defines responsive sizing and scrollable content for modal containers\n */\nconst modalVariants = cva('flex cursor-default flex-col p-3 shadow-sm', {\n variants: {\n size: {\n /** Small modal: height auto, max-height 30vh, width 95vw, max-width xl */\n sm: 'h-auto max-h-[30vh] w-[95vw] max-w-xl',\n /** Medium modal: height auto, max-height 50vh, width 95vw, max-width xl */\n md: 'h-auto max-h-[50vh] w-[95vw] max-w-xl',\n /** Large modal: height auto, max-height 70vh, width 95vw, max-width 2xl */\n lg: 'h-auto max-h-[70vh] w-[95vw] max-w-2xl',\n /** Extra large modal: height auto, max-height 95vh, width 95vw, max-width 6xl */\n xl: 'h-auto max-h-[95vh] w-[95vw] max-w-6xl',\n /** Unset modal: height auto, max-height 95vh, width 95vw, no max-width */\n unset: 'h-auto max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n size: 'unset',\n },\n});\n\n/**\n * Motion-enabled modal component with Framer Motion support\n * Extends Container component with motion capabilities for animations\n */\nconst MotionModal = m.create(Container);\n\n/**\n * Modal Component\n *\n * A highly customizable modal dialog component with portal rendering, Framer Motion animations,\n * and comprehensive accessibility features. Supports multiple size variants and scroll management.\n *\n * Features:\n * - Portal rendering to any container element (defaults to document.body)\n * - Smooth animations with Framer Motion\n * - Size variants: SM, MD, LG, XL, UNSET with responsive sizing\n * - Optional title and close button\n * - Background scroll prevention\n * - Click-outside-to-close functionality\n * - Full accessibility support with ARIA attributes\n * - Keyboard navigation support (ESC to close)\n * - Extensible styling with Container props\n *\n * @example\n * Basic usage:\n * ```jsx\n * <Modal isOpen={isModalOpen} onClose={() => setIsModalOpen(false)}>\n * <p>Modal content goes here</p>\n * </Modal>\n * ```\n *\n * @example\n * With title and close button:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * title=\"Confirm Action\"\n * hasCloseButton\n * size={ModalSize.LG}\n * >\n * <div>\n * <p>Are you sure you want to continue?</p>\n * <Button onClick={onConfirm}>Confirm</Button>\n * </div>\n * </Modal>\n * ```\n *\n * @example\n * Custom container and styling:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * container={customContainer}\n * background=\"card\"\n * padding=\"lg\"\n * border=\"default\"\n * >\n * Content with custom styling\n * </Modal>\n * ```\n *\n * Accessibility Notes:\n * - Modal receives focus when opened\n * - Background content is hidden from screen readers when modal is open\n * - ESC key closes modal (handled by browser for role=\"dialog\")\n * - Click outside modal closes it\n * - Close button has descriptive label for screen readers\n *\n * @param props - Modal component props\n * @returns JSX element rendered via createPortal\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = true,\n onClose,\n hasCloseButton = false,\n title,\n size = ModalSize.MD,\n className,\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen && onClose) {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n return createPortal(\n <m.div\n className=\"invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-auto bg-background/40 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 size,\n className,\n })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"4xl\"\n {...props}\n >\n <div\n className={cn(\n 'cursor-default',\n hasCloseButton && hasTitle\n ? `flex items-start`\n : hasCloseButton\n ? `flex justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"mt-2 mb-4 ml-4 flex items-center justify-center font-bold text-lg\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <Button\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n label=\"Close modal\"\n className=\"ml-auto\"\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n Icon={X}\n size={ButtonSize.ICON_MD}\n />\n )}\n </div>\n <div className=\"flex w-full flex-1 flex-col\">{children}</div>\n </MotionModal>\n </m.div>,\n containerElement\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAY,kDAAL;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;;;;;;AAwCF,MAAM,gBAAgB,IAAI,8CAA8C;CACtE,UAAU,EACR,MAAM;EAEJ,IAAI;EAEJ,IAAI;EAEJ,IAAI;EAEJ,IAAI;EAEJ,OAAO;EACR,EACF;CACD,iBAAiB,EACf,MAAM,SACP;CACF,CAAC;;;;;AAMF,MAAM,cAAcA,OAAE,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEvC,MAAaC,SAAyB,EACpC,UACA,QACA,WACA,gBAAgB,MAChB,SACA,iBAAiB,OACjB,OACA,OAAO,UAAU,IACjB,WACA,GAAG,YACC;CACJ,MAAM,mBAAmB,sBAAsB,UAAU;AAEzD,mBAAkB;EAAE,KAAK;EAAS,eAAe,UAAU;EAAe,CAAC;AAE3E,iBAAgB;EACd,MAAM,gBAAgB,UAAyB;AAC7C,OAAI,MAAM,QAAQ,YAAY,UAAU,QACtC,UAAS;;AAIb,WAAS,iBAAiB,WAAW,aAAa;AAElD,eAAa;AACX,YAAS,oBAAoB,WAAW,aAAa;;IAEtD,CAAC,QAAQ,QAAQ,CAAC;AAErB,KAAI,CAAC,iBAAkB,QAAO,mCAAK;CAEnC,MAAM,WAAW,OAAO,UAAU;AAElC,QAAO,aACL,oBAACD,OAAE;EACD,WAAU;EACV,SAAS,SAAS,YAAY;EAC9B,UAAU;GACR,SAAS;IACP,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAkB;IACtD;GACD,WAAW;IACT,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAiB;IACrD;GACF;EACD,UAAU,MAAM;AACd,KAAE,iBAAiB;AACnB,cAAW;;EAEb,eAAa,CAAC;YAEd,qBAAC;GACC,UAAU,MAAM,EAAE,iBAAiB;GACnC,SAAS,EAAE,OAAO,SAAS,KAAM,GAAG;GACpC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAK;GACpC,YAAY,EAAE,UAAU,IAAK;GAC7B,WAAW,cAAc;IACvB;IACA;IACD,CAAC;GACF,MAAK;GACL;GACA,aAAY;GACZ,GAAI;cAEJ,qBAAC;IACC,WAAW,GACT,kBACA,kBAAkB,WACd,qBACA,iBACE,qBACA,WACE,iBACA,SACT;eAEA,YACC,oBAAC;KAAG,WAAU;eACX;MACE,EAEN,kBACC,oBAAC;KACC,SAAS,cAAc;KACvB,OAAO,YAAY;KACnB,OAAM;KACN,WAAU;KACV,UAAU,MAAM;AACd,QAAE,iBAAiB;AACnB,iBAAW;;KAEb,MAAM;KACN,MAAM,WAAW;MACjB;KAEA,EACN,oBAAC;IAAI,WAAU;IAA+B;KAAe;IACjD;GACR,EACR,iBACD"}
1
+ {"version":3,"file":"Modal.mjs","names":["m","Modal: FC<ModalProps>"],"sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { useGetElementOrWindow, useScrollBlockage } from '@hooks/index';\nimport { cn } from '@utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { motion as m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { type FC, type ReactNode, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\n/**\n * Enumeration of available modal sizes\n */\nexport enum ModalSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n UNSET = 'unset',\n}\n\ntype ModalProps = {\n children: ReactNode;\n isOpen: boolean;\n onClose?: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: ModalSize | `${ModalSize}`;\n /**\n * Defines if the modal content area is scrollable.\n */\n isScrollable?: boolean | 'x' | 'y';\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 'flex cursor-default flex-col overflow-hidden shadow-sm',\n {\n variants: {\n size: {\n sm: 'h-auto max-h-[30vh] w-[95vw] max-w-xl',\n md: 'h-auto max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'h-auto max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'h-auto max-h-[95vh] w-[95vw] max-w-6xl',\n unset: 'h-auto max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n size: 'unset',\n },\n }\n);\n\n// Mapped from Container/index.tsx to apply internally\nconst contentPaddingVariants = {\n none: 'p-0',\n sm: 'px-2 py-4',\n md: 'px-4 py-6',\n lg: 'px-6 py-8',\n xl: 'px-8 py-10',\n '2xl': 'px-10 py-12',\n};\n\nconst MotionModal = m.create(Container);\n\n/**\n * Modal Component\n *\n * A highly customizable modal dialog component with portal rendering, Framer Motion animations,\n * and comprehensive accessibility features. Supports multiple size variants and scroll management.\n *\n * Features:\n * - Portal rendering to any container element (defaults to document.body)\n * - Smooth animations with Framer Motion\n * - Size variants: SM, MD, LG, XL, UNSET with responsive sizing\n * - Optional title and close button\n * - Background scroll prevention\n * - Click-outside-to-close functionality\n * - Full accessibility support with ARIA attributes\n * - Keyboard navigation support (ESC to close)\n * - Extensible styling with Container props\n *\n * @example\n * Basic usage:\n * ```jsx\n * <Modal isOpen={isModalOpen} onClose={() => setIsModalOpen(false)}>\n * <p>Modal content goes here</p>\n * </Modal>\n * ```\n *\n * @example\n * With title and close button:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * title=\"Confirm Action\"\n * hasCloseButton\n * size={ModalSize.LG}\n * >\n * <div>\n * <p>Are you sure you want to continue?</p>\n * <Button onClick={onConfirm}>Confirm</Button>\n * </div>\n * </Modal>\n * ```\n *\n * @example\n * Custom container and styling:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * container={customContainer}\n * background=\"card\"\n * padding=\"lg\"\n * border=\"default\"\n * >\n * Content with custom styling\n * </Modal>\n * ```\n *\n * Accessibility Notes:\n * - Modal receives focus when opened\n * - Background content is hidden from screen readers when modal is open\n * - ESC key closes modal (handled by browser for role=\"dialog\")\n * - Click outside modal closes it\n * - Close button has descriptive label for screen readers\n *\n * @param props - Modal component props\n * @returns JSX element rendered via createPortal\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = true,\n onClose,\n hasCloseButton = false,\n title,\n size = ModalSize.MD,\n className,\n isScrollable = false,\n padding = 'none', // Extract padding here\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen && onClose) {\n onClose();\n }\n };\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n // Determine the class for the inner content based on the padding prop\n const contentPaddingClass =\n contentPaddingVariants[\n (padding as keyof typeof contentPaddingVariants) || 'none'\n ];\n\n return createPortal(\n <m.div\n className=\"invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-hidden bg-background/40 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({ size, className })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"4xl\"\n // Force the outer container to have no padding so scrollbars hit the edge\n padding=\"none\"\n {...props}\n >\n {/* HEADER SECTION */}\n <div\n className={cn(\n 'relative flex-none px-4 pt-4',\n hasCloseButton && hasTitle\n ? `flex items-start`\n : hasCloseButton\n ? `flex justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"mb-2 ml-1 flex items-center justify-center font-bold text-lg\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <Button\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n label=\"Close modal\"\n className=\"ml-auto\"\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n Icon={X}\n size={ButtonSize.ICON_MD}\n />\n )}\n </div>\n\n {/* SCROLLABLE WRAPPER - Full width, no padding */}\n <div\n className={cn(\n 'flex min-h-0 w-full flex-1 flex-col',\n // Scrollbars will now appear at the very edge of this div (the modal edge)\n isScrollable === true && 'overflow-auto',\n isScrollable === 'y' && 'overflow-y-auto overflow-x-hidden',\n isScrollable === 'x' && 'overflow-x-auto overflow-y-hidden',\n !isScrollable && 'overflow-visible'\n )}\n >\n {/* CONTENT PADDING WRAPPER */}\n {/* We apply the padding class here, effectively putting content inside the scroll area */}\n <div className={cn('h-full w-full', contentPaddingClass)}>\n {children}\n </div>\n </div>\n </MotionModal>\n </m.div>,\n containerElement\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAY,kDAAL;AACL;AACA;AACA;AACA;AACA;;;AA6BF,MAAM,gBAAgB,IACpB,0DACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACR,EACF;CACD,iBAAiB,EACf,MAAM,SACP;CACF,CACF;AAGD,MAAM,yBAAyB;CAC7B,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACR;AAED,MAAM,cAAcA,OAAE,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEvC,MAAaC,SAAyB,EACpC,UACA,QACA,WACA,gBAAgB,MAChB,SACA,iBAAiB,OACjB,OACA,OAAO,UAAU,IACjB,WACA,eAAe,OACf,UAAU,QACV,GAAG,YACC;CACJ,MAAM,mBAAmB,sBAAsB,UAAU;AAEzD,mBAAkB;EAAE,KAAK;EAAS,eAAe,UAAU;EAAe,CAAC;AAE3E,iBAAgB;EACd,MAAM,gBAAgB,UAAyB;AAC7C,OAAI,MAAM,QAAQ,YAAY,UAAU,QACtC,UAAS;;AAGb,WAAS,iBAAiB,WAAW,aAAa;AAClD,eAAa;AACX,YAAS,oBAAoB,WAAW,aAAa;;IAEtD,CAAC,QAAQ,QAAQ,CAAC;AAErB,KAAI,CAAC,iBAAkB,QAAO,mCAAK;CAEnC,MAAM,WAAW,OAAO,UAAU;CAGlC,MAAM,sBACJ,uBACG,WAAmD;AAGxD,QAAO,aACL,oBAACD,OAAE;EACD,WAAU;EACV,SAAS,SAAS,YAAY;EAC9B,UAAU;GACR,SAAS;IACP,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAkB;IACtD;GACD,WAAW;IACT,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAiB;IACrD;GACF;EACD,UAAU,MAAM;AACd,KAAE,iBAAiB;AACnB,cAAW;;EAEb,eAAa,CAAC;YAEd,qBAAC;GACC,UAAU,MAAM,EAAE,iBAAiB;GACnC,SAAS,EAAE,OAAO,SAAS,KAAM,GAAG;GACpC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAK;GACpC,YAAY,EAAE,UAAU,IAAK;GAC7B,WAAW,cAAc;IAAE;IAAM;IAAW,CAAC;GAC7C,MAAK;GACL;GACA,aAAY;GAEZ,SAAQ;GACR,GAAI;cAGJ,qBAAC;IACC,WAAW,GACT,gCACA,kBAAkB,WACd,qBACA,iBACE,qBACA,WACE,iBACA,SACT;eAEA,YACC,oBAAC;KAAG,WAAU;eACX;MACE,EAEN,kBACC,oBAAC;KACC,SAAS,cAAc;KACvB,OAAO,YAAY;KACnB,OAAM;KACN,WAAU;KACV,UAAU,MAAM;AACd,QAAE,iBAAiB;AACnB,iBAAW;;KAEb,MAAM;KACN,MAAM,WAAW;MACjB;KAEA,EAGN,oBAAC;IACC,WAAW,GACT,uCAEA,iBAAiB,QAAQ,iBACzB,iBAAiB,OAAO,qCACxB,iBAAiB,OAAO,qCACxB,CAAC,gBAAgB,mBAClB;cAID,oBAAC;KAAI,WAAW,GAAG,iBAAiB,oBAAoB;KACrD;MACG;KACF;IACM;GACR,EACR,iBACD"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { cn } from "../../utils/cn.mjs";
4
- import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
5
3
  import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
6
4
  import { useScrollDetection } from "../../hooks/useScrollDetection.mjs";
5
+ import { cn } from "../../utils/cn.mjs";
6
+ import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
7
7
  import { Burger } from "./Burger.mjs";
8
8
  import { useRef, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
+ import { useItemSelector } from "../../hooks/useItemSelector.mjs";
3
4
  import { cn } from "../../utils/cn.mjs";
4
5
  import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
5
- import { useItemSelector } from "../../hooks/useItemSelector.mjs";
6
- import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
7
6
  import { useEffect, useRef } from "react";
8
7
  import { cva } from "class-variance-authority";
8
+ import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
 
11
11
  //#region src/components/Pagination/Pagination.tsx
@@ -1,16 +1,16 @@
1
1
  'use client';
2
2
 
3
+ import { useDevice } from "../../hooks/useDevice.mjs";
4
+ import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
3
5
  import { Container } from "../Container/index.mjs";
4
6
  import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
5
- import { useDevice } from "../../hooks/useDevice.mjs";
6
7
  import { KeyboardShortcut } from "../KeyboardShortcut/KeyboardShortcut.mjs";
7
8
  import { Popover } from "../Popover/dynamic.mjs";
8
- import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
9
9
  import { MaxWidthSmoother } from "../MaxWidthSmoother/index.mjs";
10
10
  import { isElementAtTopAndNotCovered } from "./isElementAtTopAndNotCovered.mjs";
11
11
  import { useRightDrawerStore } from "./useRightDrawerStore.mjs";
12
- import { ChevronLeft, X } from "lucide-react";
13
12
  import { useEffect, useRef } from "react";
13
+ import { ChevronLeft, X } from "lucide-react";
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
15
15
  import { useIntlayer } from "react-intlayer";
16
16
 
@@ -3,8 +3,8 @@
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { Badge, BadgeColor } from "../Badge/index.mjs";
5
5
  import { Command, CommandRoot } from "../Command/index.mjs";
6
- import { Check, X } from "lucide-react";
7
6
  import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
7
+ import { Check, X } from "lucide-react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
 
10
10
  //#region src/components/Select/Multiselect.tsx
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { cn } from "../../utils/cn.mjs";
4
3
  import { useItemSelector } from "../../hooks/useItemSelector.mjs";
4
+ import { cn } from "../../utils/cn.mjs";
5
5
  import { createElement, useEffect, useRef, useState } from "react";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { cn } from "../../utils/cn.mjs";
4
3
  import { useHorizontalSwipe } from "../../hooks/useHorizontalSwipe.mjs";
4
+ import { cn } from "../../utils/cn.mjs";
5
5
  import { TabSelector, TabSelectorColor } from "../TabSelector/TabSelector.mjs";
6
6
  import { useTabContext } from "./TabContext.mjs";
7
7
  import { Children, createContext, isValidElement, useState } from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { cn } from "../../utils/cn.mjs";
4
3
  import { useItemSelector } from "../../hooks/useItemSelector.mjs";
4
+ import { cn } from "../../utils/cn.mjs";
5
5
  import { cloneElement, useEffect, useRef } from "react";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4,8 +4,8 @@ import { cn } from "../../utils/cn.mjs";
4
4
  import { Button } from "../Button/Button.mjs";
5
5
  import { ExpandCollapse } from "../ExpandCollapse/ExpandCollapse.mjs";
6
6
  import { Modal, ModalSize } from "../Modal/Modal.mjs";
7
- import { MoveDiagonal } from "lucide-react";
8
7
  import { useState } from "react";
8
+ import { MoveDiagonal } from "lucide-react";
9
9
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
10
 
11
11
  //#region src/components/Table/Table.tsx
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { useAutocomplete } from "../../hooks/reactQuery.mjs";
4
4
  import { AutoSizedTextArea } from "./AutoSizeTextArea.mjs";
5
+ import { useConfiguration } from "@intlayer/editor-react";
5
6
  import { useEffect, useRef, useState } from "react";
6
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
- import { useConfiguration } from "@intlayer/editor-react";
8
8
 
9
9
  //#region src/components/TextArea/AutocompleteTextArea.tsx
10
10
  /**
@@ -4,8 +4,8 @@ import { Container } from "../Container/index.mjs";
4
4
  import { Button, ButtonVariant } from "../Button/Button.mjs";
5
5
  import { DropDown } from "../DropDown/index.mjs";
6
6
  import { Modes } from "./types.mjs";
7
- import { CircleDashed, Moon, Sun } from "lucide-react";
8
7
  import { useState } from "react";
8
+ import { CircleDashed, Moon, Sun } from "lucide-react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
 
11
11
  //#region src/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.tsx
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
4
  import { Modes } from "./types.mjs";
5
- import { CircleDashed, Moon, Sun } from "lucide-react";
6
5
  import { useState } from "react";
6
+ import { CircleDashed, Moon, Sun } from "lucide-react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
9
9
  //#region src/components/ThemeSwitcherDropDown/MobileThemeSwitcher.tsx
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../utils/cn.mjs";
4
- import { X } from "lucide-react";
4
+ import * as ToastPrimitives from "@radix-ui/react-toast";
5
5
  import { cva } from "class-variance-authority";
6
+ import { X } from "lucide-react";
6
7
  import { jsx } from "react/jsx-runtime";
7
- import * as ToastPrimitives from "@radix-ui/react-toast";
8
8
 
9
9
  //#region src/components/Toaster/Toast.tsx
10
10
  const ToastProvider = ToastPrimitives;
@@ -1,3 +1,6 @@
1
+ import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from "./Toaster/Toast.mjs";
2
+ import { reducer, toast, useToast } from "./Toaster/useToast.mjs";
3
+ import { Toaster } from "./Toaster/Toaster.mjs";
1
4
  import { Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, containerVariants } from "./Container/index.mjs";
2
5
  import { Loader } from "./Loader/index.mjs";
3
6
  import { Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant, buttonVariants } from "./Button/Button.mjs";
@@ -97,8 +100,5 @@ import { Terminal } from "./Terminal/Terminal.mjs";
97
100
  import { Modes } from "./ThemeSwitcherDropDown/types.mjs";
98
101
  import { DesktopThemeSwitcher } from "./ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs";
99
102
  import { MobileThemeSwitcher } from "./ThemeSwitcherDropDown/MobileThemeSwitcher.mjs";
100
- import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from "./Toaster/Toast.mjs";
101
- import { reducer, toast, useToast } from "./Toaster/useToast.mjs";
102
- import { Toaster } from "./Toaster/Toaster.mjs";
103
103
 
104
104
  export { Accordion, AutoCompleteTextarea, AutoSizedTextArea, Avatar, Badge, BadgeColor, BadgeSize, BadgeVariant, Breadcrumb, Browser, Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant, Carousel, Checkbox, CheckboxColor, CheckboxSize, ClickOutsideDiv, Code, CodeBlock, CodeDefault, CollapsibleTable, Command, CommandRoot, Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, ContentEditor, ContentSelector, CopyButton, CopyToClipboard, DesktopThemeSwitcher, Detail, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, DropDownAlign, DropDownYAlign, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, FacebookLogo, FileList, Flag, flags_exports as Flags, Footer, Form, GridPattern, H1, H2, H3, H4, H5, H6, HeightResizer, HideShow, IDE, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InputSize, InputVariant, InstagramLogo, KeyList, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, Label, LanguageBackground, LanguageSection, Link, LinkColor, LinkRoundedSize, LinkSize, LinkUnderlined, LinkVariant, LinkedInLogo, Loader, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProvider, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileThemeSwitcher, Modal, ModalSize, Modes, MultiSelect, Navbar, NumberItemsSelector, OTPInput, OTPInputContext, Pagination, PaginationSize, PaginationVariant, Popover, PopoverStatic, PopoverXAlign, PopoverYAlign, PressableSpan, ProductHuntLogo, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectContentPosition, SelectLabel, SelectSeparator, ShowingResultsNumberItems, SocialNetworks, Spotlight, SwitchSelector, SwitchSelectorColor, SwitchSelectorSize, Tab, TabSelector, TabSelectorColor, Table, Tag, TagBackground, TagBorder, TagColor, TagRoundedSize, TagSize, Terminal, TextArea, TextEditor, TextEditorContainer, TiktokLogo, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, VersionSwitcher, VersionSwitcherProvider, WithResizer, XLogo, YoutubeLogo, badgeVariants, buttonVariants, checkIsExternalLink, checkboxVariants, containerVariants, getCapitals, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, reducer, toast, traceKeys, useCopyToClipboard, useDebounce, useForm, useFormField, useLocaleSwitcherContent, usePasswordManagerBadge, usePrevious, useRightDrawerStore, useToast, useVersionSwitcher };
@@ -0,0 +1,133 @@
1
+ import { cn } from "../../utils/cn.mjs";
2
+ import { cva } from "class-variance-authority";
3
+ import { jsx } from "react/jsx-runtime";
4
+
5
+ //#region dist/esm/components/Container/index.mjs
6
+ /**
7
+ * Container component variants using class-variance-authority
8
+ * Provides flexible styling options for background, padding, borders, and layout
9
+ */
10
+ const containerVariants = cva("flex flex-col text-text backdrop-blur", {
11
+ variants: {
12
+ roundedSize: {
13
+ none: "rounded-none",
14
+ sm: "rounded-sm [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-md",
15
+ md: "rounded-md [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-lg",
16
+ lg: "rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl",
17
+ xl: "rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl",
18
+ "2xl": "rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl",
19
+ "3xl": "rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl",
20
+ "4xl": "rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]",
21
+ full: "rounded-full [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-full"
22
+ },
23
+ transparency: {
24
+ none: "bg-card",
25
+ sm: "bg-card/90",
26
+ md: "bg-card/70",
27
+ lg: "bg-card/40",
28
+ xl: "bg-card/20",
29
+ full: ""
30
+ },
31
+ padding: {
32
+ none: "p-0",
33
+ sm: "px-2 py-4",
34
+ md: "px-4 py-6",
35
+ lg: "px-6 py-8",
36
+ xl: "px-8 py-10",
37
+ "2xl": "px-10 py-12"
38
+ },
39
+ separator: {
40
+ without: "",
41
+ x: "divide-x divide-dashed divide-text/20",
42
+ y: "divide-y divide-dashed divide-text/20",
43
+ both: "divide-x divide-y divide-dashed divide-text/20"
44
+ },
45
+ border: {
46
+ none: "",
47
+ with: "border-[1.3px]"
48
+ },
49
+ borderColor: {
50
+ primary: "border-primary",
51
+ secondary: "border-secondary",
52
+ neutral: "border-neutral",
53
+ card: "border-card",
54
+ text: "border-text",
55
+ error: "border-error",
56
+ warning: "border-warning",
57
+ success: "border-success"
58
+ },
59
+ background: {
60
+ none: "",
61
+ hoverable: "bg-opacity-5! backdrop-blur-0 hover:bg-opacity-10! hover:backdrop-blur focus:bg-opacity-10! focus:backdrop-blur aria-selected:bg-opacity-15! aria-selected:backdrop-blur",
62
+ with: ""
63
+ },
64
+ gap: {
65
+ none: "gap-0",
66
+ sm: "gap-1",
67
+ md: "gap-3",
68
+ lg: "gap-5",
69
+ xl: "gap-8",
70
+ "2xl": "gap-10"
71
+ }
72
+ },
73
+ defaultVariants: {
74
+ roundedSize: "lg",
75
+ border: "none",
76
+ borderColor: "text",
77
+ transparency: "md",
78
+ padding: "none",
79
+ separator: "without",
80
+ gap: "none"
81
+ },
82
+ compoundVariants: [{
83
+ background: "none",
84
+ class: "bg-transparent"
85
+ }]
86
+ });
87
+ /**
88
+ * Container Component
89
+ *
90
+ * A flexible container component for organizing content with customizable styling options.
91
+ * Supports various visual states, layouts, and accessibility features.
92
+ *
93
+ * ## Features
94
+ * - **Flexible Layout**: Supports different padding, gap, and separator options
95
+ * - **Visual Variants**: Multiple background transparency levels and border styles
96
+ * - **Responsive Design**: Configurable rounded corners and spacing
97
+ * - **Semantic HTML**: Proper div element with extensible attributes
98
+ *
99
+ * ## Accessibility
100
+ * - Inherits all standard div accessibility features
101
+ * - Supports ARIA attributes through spread props
102
+ * - Maintains proper semantic structure for screen readers
103
+ *
104
+ * @param children - The content to display inside the container
105
+ * @param roundedSize - Border radius size (default: 'md')
106
+ * @param transparency - Background transparency level (default: 'md')
107
+ * @param padding - Internal padding size (default: 'none')
108
+ * @param separator - Divider lines between children (default: 'without')
109
+ * @param border - Whether to show border (default: false)
110
+ * @param borderColor - Color of the border (default: 'text')
111
+ * @param background - Background interaction behavior (default: 'none')
112
+ * @param gap - Space between child elements (default: 'none')
113
+ * @param className - Additional CSS classes
114
+ * @param props - Additional HTML div attributes including ARIA attributes
115
+ */
116
+ const Container = ({ children, roundedSize, padding, transparency, separator, className, border, borderColor, background, gap, ...props }) => /* @__PURE__ */ jsx("div", {
117
+ className: cn(containerVariants({
118
+ roundedSize,
119
+ transparency,
120
+ padding,
121
+ separator,
122
+ border: typeof border === "boolean" ? border ? "with" : "none" : void 0,
123
+ background,
124
+ borderColor,
125
+ gap
126
+ }), className),
127
+ ...props,
128
+ children
129
+ });
130
+
131
+ //#endregion
132
+ export { Container };
133
+ //# sourceMappingURL=index.mjs.map