@intlayer/design-system 9.0.0-canary.2 → 9.0.0-canary.21

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 (1336) hide show
  1. package/dist/esm/api/hooks/ai.mjs.map +1 -1
  2. package/dist/esm/api/hooks/analytics.mjs +71 -0
  3. package/dist/esm/api/hooks/analytics.mjs.map +1 -0
  4. package/dist/esm/api/hooks/asset.mjs.map +1 -1
  5. package/dist/esm/api/hooks/audit.mjs.map +1 -1
  6. package/dist/esm/api/hooks/auth.mjs.map +1 -1
  7. package/dist/esm/api/hooks/bitbucket.mjs.map +1 -1
  8. package/dist/esm/api/hooks/dictionary.mjs +15 -3
  9. package/dist/esm/api/hooks/dictionary.mjs.map +1 -1
  10. package/dist/esm/api/hooks/discussions.mjs.map +1 -1
  11. package/dist/esm/api/hooks/editor.mjs.map +1 -1
  12. package/dist/esm/api/hooks/environment.mjs.map +1 -1
  13. package/dist/esm/api/hooks/github.mjs.map +1 -1
  14. package/dist/esm/api/hooks/gitlab.mjs.map +1 -1
  15. package/dist/esm/api/hooks/newsletter.mjs.map +1 -1
  16. package/dist/esm/api/hooks/organization.mjs +35 -3
  17. package/dist/esm/api/hooks/organization.mjs.map +1 -1
  18. package/dist/esm/api/hooks/project.mjs +13 -1
  19. package/dist/esm/api/hooks/project.mjs.map +1 -1
  20. package/dist/esm/api/hooks/reviewer.mjs.map +1 -1
  21. package/dist/esm/api/hooks/search.mjs.map +1 -1
  22. package/dist/esm/api/hooks/showcaseProject.mjs.map +1 -1
  23. package/dist/esm/api/hooks/stripe.mjs.map +1 -1
  24. package/dist/esm/api/hooks/tag.mjs.map +1 -1
  25. package/dist/esm/api/hooks/translate.mjs.map +1 -1
  26. package/dist/esm/api/hooks/user.mjs.map +1 -1
  27. package/dist/esm/api/hooks/utils.mjs.map +1 -1
  28. package/dist/esm/api/index.mjs +6 -5
  29. package/dist/esm/api/useAuth/useAuth.mjs.map +1 -1
  30. package/dist/esm/api/useAuth/useOAuth2.mjs +1 -1
  31. package/dist/esm/api/useAuth/useOAuth2.mjs.map +1 -1
  32. package/dist/esm/api/useAuth/useSession.mjs +1 -1
  33. package/dist/esm/api/useAuth/useSession.mjs.map +1 -1
  34. package/dist/esm/api/useIntlayerAPI.mjs +6 -1
  35. package/dist/esm/api/useIntlayerAPI.mjs.map +1 -1
  36. package/dist/esm/api/useUser/index.mjs.map +1 -1
  37. package/dist/esm/components/Accordion/Accordion.mjs.map +1 -1
  38. package/dist/esm/components/Avatar/image.mjs.map +1 -1
  39. package/dist/esm/components/Avatar/index.mjs.map +1 -1
  40. package/dist/esm/components/Badge/index.mjs.map +1 -1
  41. package/dist/esm/components/Breadcrumb/breadcrumb.content.mjs.map +1 -1
  42. package/dist/esm/components/Breadcrumb/index.mjs.map +1 -1
  43. package/dist/esm/components/Browser/Browser.content.mjs.map +1 -1
  44. package/dist/esm/components/Browser/Browser.mjs.map +1 -1
  45. package/dist/esm/components/Browser/extractUrlFromSitemap.mjs.map +1 -1
  46. package/dist/esm/components/Button/Button.mjs.map +1 -1
  47. package/dist/esm/components/Carousel/index.content.mjs.map +1 -1
  48. package/dist/esm/components/Carousel/index.mjs +2 -1
  49. package/dist/esm/components/Carousel/index.mjs.map +1 -1
  50. package/dist/esm/components/ClickOutsideDiv/index.mjs.map +1 -1
  51. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs.map +1 -1
  52. package/dist/esm/components/Command/index.mjs.map +1 -1
  53. package/dist/esm/components/Container/index.mjs.map +1 -1
  54. package/dist/esm/components/ContentEditor/ContentEditor.mjs.map +1 -1
  55. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs.map +1 -1
  56. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +1 -1
  57. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  58. package/dist/esm/components/ContentSelector/ContentSelector.mjs.map +1 -1
  59. package/dist/esm/components/CopyButton/CopyButton.content.mjs.map +1 -1
  60. package/dist/esm/components/CopyButton/index.mjs.map +1 -1
  61. package/dist/esm/components/CopyToClipboard/index.mjs.map +1 -1
  62. package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  63. package/dist/esm/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  64. package/dist/esm/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs.map +1 -1
  65. package/dist/esm/components/DictionaryEditor/NodeWrapper/BooleanWrapper.mjs.map +1 -1
  66. package/dist/esm/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs.map +1 -1
  67. package/dist/esm/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs.map +1 -1
  68. package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs.map +1 -1
  69. package/dist/esm/components/DictionaryEditor/NodeWrapper/HtmlWrapper.mjs.map +1 -1
  70. package/dist/esm/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs.map +1 -1
  71. package/dist/esm/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
  72. package/dist/esm/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs.map +1 -1
  73. package/dist/esm/components/DictionaryEditor/NodeWrapper/NumberWrapper.mjs.map +1 -1
  74. package/dist/esm/components/DictionaryEditor/NodeWrapper/PluralWrapper.mjs.map +1 -1
  75. package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  76. package/dist/esm/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs.map +1 -1
  77. package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs.map +1 -1
  78. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs +42 -70
  79. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
  80. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.mjs.map +1 -1
  81. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +26 -24
  82. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  83. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/object.mjs.map +1 -1
  84. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +47 -73
  85. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  86. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs +0 -62
  87. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs.map +1 -1
  88. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.mjs.map +1 -1
  89. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs +2 -4
  90. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs.map +1 -1
  91. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +70 -151
  92. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  93. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +1 -1
  94. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  95. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  96. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
  97. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +1 -1
  98. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  99. package/dist/esm/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
  100. package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  101. package/dist/esm/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  102. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +19 -14
  103. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  104. package/dist/esm/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  105. package/dist/esm/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  106. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +5 -4
  107. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  108. package/dist/esm/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  109. package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs.map +1 -1
  110. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +6 -4
  111. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
  112. package/dist/esm/components/DictionaryFieldEditor/StructureView/structureView.content.mjs.map +1 -1
  113. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
  114. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -1
  115. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs.map +1 -1
  116. package/dist/esm/components/DictionaryFieldEditor/contentEditor.content.mjs.map +1 -1
  117. package/dist/esm/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs.map +1 -1
  118. package/dist/esm/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
  119. package/dist/esm/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  120. package/dist/esm/components/DropDown/index.mjs.map +1 -1
  121. package/dist/esm/components/EditableField/EditableFieldInput.mjs.map +1 -1
  122. package/dist/esm/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  123. package/dist/esm/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  124. package/dist/esm/components/ExpandCollapse/ExpandCollapse.mjs.map +1 -1
  125. package/dist/esm/components/ExpandCollapse/expandCollapse.content.mjs.map +1 -1
  126. package/dist/esm/components/Flags/Flag.mjs.map +1 -1
  127. package/dist/esm/components/Flags/ae.mjs +9 -6
  128. package/dist/esm/components/Flags/ae.mjs.map +1 -1
  129. package/dist/esm/components/Flags/af.mjs +26 -23
  130. package/dist/esm/components/Flags/af.mjs.map +1 -1
  131. package/dist/esm/components/Flags/al.mjs +7 -5
  132. package/dist/esm/components/Flags/al.mjs.map +1 -1
  133. package/dist/esm/components/Flags/am.mjs +7 -5
  134. package/dist/esm/components/Flags/am.mjs.map +1 -1
  135. package/dist/esm/components/Flags/ar.mjs +51 -31
  136. package/dist/esm/components/Flags/ar.mjs.map +1 -1
  137. package/dist/esm/components/Flags/at.mjs +5 -4
  138. package/dist/esm/components/Flags/at.mjs.map +1 -1
  139. package/dist/esm/components/Flags/au.mjs +13 -8
  140. package/dist/esm/components/Flags/au.mjs.map +1 -1
  141. package/dist/esm/components/Flags/az.mjs +13 -8
  142. package/dist/esm/components/Flags/az.mjs.map +1 -1
  143. package/dist/esm/components/Flags/ba.mjs +8 -7
  144. package/dist/esm/components/Flags/ba.mjs.map +1 -1
  145. package/dist/esm/components/Flags/bd.mjs +5 -4
  146. package/dist/esm/components/Flags/bd.mjs.map +1 -1
  147. package/dist/esm/components/Flags/be.mjs +5 -5
  148. package/dist/esm/components/Flags/be.mjs.map +1 -1
  149. package/dist/esm/components/Flags/bg.mjs +7 -5
  150. package/dist/esm/components/Flags/bg.mjs.map +1 -1
  151. package/dist/esm/components/Flags/bh.mjs +5 -4
  152. package/dist/esm/components/Flags/bh.mjs.map +1 -1
  153. package/dist/esm/components/Flags/bn.mjs +12 -8
  154. package/dist/esm/components/Flags/bn.mjs.map +1 -1
  155. package/dist/esm/components/Flags/bo.mjs +1306 -656
  156. package/dist/esm/components/Flags/bo.mjs.map +1 -1
  157. package/dist/esm/components/Flags/br.mjs +26 -26
  158. package/dist/esm/components/Flags/br.mjs.map +1 -1
  159. package/dist/esm/components/Flags/bw.mjs +4 -4
  160. package/dist/esm/components/Flags/bw.mjs.map +1 -1
  161. package/dist/esm/components/Flags/by.mjs +11 -8
  162. package/dist/esm/components/Flags/by.mjs.map +1 -1
  163. package/dist/esm/components/Flags/bz.mjs +111 -81
  164. package/dist/esm/components/Flags/bz.mjs.map +1 -1
  165. package/dist/esm/components/Flags/ca.mjs +5 -4
  166. package/dist/esm/components/Flags/ca.mjs.map +1 -1
  167. package/dist/esm/components/Flags/ch.mjs +4 -4
  168. package/dist/esm/components/Flags/ch.mjs.map +1 -1
  169. package/dist/esm/components/Flags/cl.mjs +9 -8
  170. package/dist/esm/components/Flags/cl.mjs.map +1 -1
  171. package/dist/esm/components/Flags/cn.mjs +15 -9
  172. package/dist/esm/components/Flags/cn.mjs.map +1 -1
  173. package/dist/esm/components/Flags/co.mjs +5 -5
  174. package/dist/esm/components/Flags/co.mjs.map +1 -1
  175. package/dist/esm/components/Flags/cr.mjs +5 -5
  176. package/dist/esm/components/Flags/cr.mjs.map +1 -1
  177. package/dist/esm/components/Flags/cu.mjs +9 -8
  178. package/dist/esm/components/Flags/cu.mjs.map +1 -1
  179. package/dist/esm/components/Flags/cv.mjs +9 -8
  180. package/dist/esm/components/Flags/cv.mjs.map +1 -1
  181. package/dist/esm/components/Flags/cz.mjs +7 -5
  182. package/dist/esm/components/Flags/cz.mjs.map +1 -1
  183. package/dist/esm/components/Flags/de.mjs +7 -5
  184. package/dist/esm/components/Flags/de.mjs.map +1 -1
  185. package/dist/esm/components/Flags/dj.mjs +9 -8
  186. package/dist/esm/components/Flags/dj.mjs.map +1 -1
  187. package/dist/esm/components/Flags/dk.mjs +7 -5
  188. package/dist/esm/components/Flags/dk.mjs.map +1 -1
  189. package/dist/esm/components/Flags/do.mjs +71 -53
  190. package/dist/esm/components/Flags/do.mjs.map +1 -1
  191. package/dist/esm/components/Flags/dz.mjs +7 -5
  192. package/dist/esm/components/Flags/dz.mjs.map +1 -1
  193. package/dist/esm/components/Flags/ec.mjs +165 -122
  194. package/dist/esm/components/Flags/ec.mjs.map +1 -1
  195. package/dist/esm/components/Flags/ee.mjs +7 -5
  196. package/dist/esm/components/Flags/ee.mjs.map +1 -1
  197. package/dist/esm/components/Flags/eg.mjs +28 -25
  198. package/dist/esm/components/Flags/eg.mjs.map +1 -1
  199. package/dist/esm/components/Flags/es-ct.mjs +5 -4
  200. package/dist/esm/components/Flags/es-ct.mjs.map +1 -1
  201. package/dist/esm/components/Flags/es-ga.mjs +184 -183
  202. package/dist/esm/components/Flags/es-ga.mjs.map +1 -1
  203. package/dist/esm/components/Flags/es-pv.mjs +7 -5
  204. package/dist/esm/components/Flags/es-pv.mjs.map +1 -1
  205. package/dist/esm/components/Flags/es.mjs +1072 -531
  206. package/dist/esm/components/Flags/es.mjs.map +1 -1
  207. package/dist/esm/components/Flags/et.mjs +10 -9
  208. package/dist/esm/components/Flags/et.mjs.map +1 -1
  209. package/dist/esm/components/Flags/fi.mjs +7 -5
  210. package/dist/esm/components/Flags/fi.mjs.map +1 -1
  211. package/dist/esm/components/Flags/flags.mjs.map +1 -1
  212. package/dist/esm/components/Flags/fo.mjs +8 -7
  213. package/dist/esm/components/Flags/fo.mjs.map +1 -1
  214. package/dist/esm/components/Flags/fr.mjs +7 -5
  215. package/dist/esm/components/Flags/fr.mjs.map +1 -1
  216. package/dist/esm/components/Flags/gb-wls.mjs +10 -8
  217. package/dist/esm/components/Flags/gb-wls.mjs.map +1 -1
  218. package/dist/esm/components/Flags/gb.mjs +11 -7
  219. package/dist/esm/components/Flags/gb.mjs.map +1 -1
  220. package/dist/esm/components/Flags/ge.mjs +9 -6
  221. package/dist/esm/components/Flags/ge.mjs.map +1 -1
  222. package/dist/esm/components/Flags/gh.mjs +9 -6
  223. package/dist/esm/components/Flags/gh.mjs.map +1 -1
  224. package/dist/esm/components/Flags/gr.mjs +23 -13
  225. package/dist/esm/components/Flags/gr.mjs.map +1 -1
  226. package/dist/esm/components/Flags/gt.mjs +116 -113
  227. package/dist/esm/components/Flags/gt.mjs.map +1 -1
  228. package/dist/esm/components/Flags/gw.mjs +19 -12
  229. package/dist/esm/components/Flags/gw.mjs.map +1 -1
  230. package/dist/esm/components/Flags/hk.mjs +13 -8
  231. package/dist/esm/components/Flags/hk.mjs.map +1 -1
  232. package/dist/esm/components/Flags/hn.mjs +21 -15
  233. package/dist/esm/components/Flags/hn.mjs.map +1 -1
  234. package/dist/esm/components/Flags/hr.mjs +49 -23
  235. package/dist/esm/components/Flags/hr.mjs.map +1 -1
  236. package/dist/esm/components/Flags/hu.mjs +4 -4
  237. package/dist/esm/components/Flags/hu.mjs.map +1 -1
  238. package/dist/esm/components/Flags/id.mjs +5 -4
  239. package/dist/esm/components/Flags/id.mjs.map +1 -1
  240. package/dist/esm/components/Flags/ie.mjs +5 -5
  241. package/dist/esm/components/Flags/ie.mjs.map +1 -1
  242. package/dist/esm/components/Flags/il.mjs +10 -9
  243. package/dist/esm/components/Flags/il.mjs.map +1 -1
  244. package/dist/esm/components/Flags/in.mjs +18 -15
  245. package/dist/esm/components/Flags/in.mjs.map +1 -1
  246. package/dist/esm/components/Flags/iq.mjs +11 -8
  247. package/dist/esm/components/Flags/iq.mjs.map +1 -1
  248. package/dist/esm/components/Flags/ir.mjs +33 -32
  249. package/dist/esm/components/Flags/ir.mjs.map +1 -1
  250. package/dist/esm/components/Flags/is.mjs +8 -7
  251. package/dist/esm/components/Flags/is.mjs.map +1 -1
  252. package/dist/esm/components/Flags/it.mjs +5 -5
  253. package/dist/esm/components/Flags/it.mjs.map +1 -1
  254. package/dist/esm/components/Flags/jm.mjs +5 -5
  255. package/dist/esm/components/Flags/jm.mjs.map +1 -1
  256. package/dist/esm/components/Flags/jo.mjs +11 -10
  257. package/dist/esm/components/Flags/jo.mjs.map +1 -1
  258. package/dist/esm/components/Flags/jp.mjs +7 -6
  259. package/dist/esm/components/Flags/jp.mjs.map +1 -1
  260. package/dist/esm/components/Flags/ke.mjs +28 -19
  261. package/dist/esm/components/Flags/ke.mjs.map +1 -1
  262. package/dist/esm/components/Flags/kg.mjs +11 -10
  263. package/dist/esm/components/Flags/kg.mjs.map +1 -1
  264. package/dist/esm/components/Flags/kh.mjs +20 -18
  265. package/dist/esm/components/Flags/kh.mjs.map +1 -1
  266. package/dist/esm/components/Flags/km.mjs +12 -11
  267. package/dist/esm/components/Flags/km.mjs.map +1 -1
  268. package/dist/esm/components/Flags/kr.mjs +14 -13
  269. package/dist/esm/components/Flags/kr.mjs.map +1 -1
  270. package/dist/esm/components/Flags/kw.mjs +9 -8
  271. package/dist/esm/components/Flags/kw.mjs.map +1 -1
  272. package/dist/esm/components/Flags/kz.mjs +18 -17
  273. package/dist/esm/components/Flags/kz.mjs.map +1 -1
  274. package/dist/esm/components/Flags/la.mjs +8 -7
  275. package/dist/esm/components/Flags/la.mjs.map +1 -1
  276. package/dist/esm/components/Flags/lb.mjs +10 -9
  277. package/dist/esm/components/Flags/lb.mjs.map +1 -1
  278. package/dist/esm/components/Flags/li.mjs +33 -31
  279. package/dist/esm/components/Flags/li.mjs.map +1 -1
  280. package/dist/esm/components/Flags/lk.mjs +22 -14
  281. package/dist/esm/components/Flags/lk.mjs.map +1 -1
  282. package/dist/esm/components/Flags/lt.mjs +5 -5
  283. package/dist/esm/components/Flags/lt.mjs.map +1 -1
  284. package/dist/esm/components/Flags/lu.mjs +7 -5
  285. package/dist/esm/components/Flags/lu.mjs.map +1 -1
  286. package/dist/esm/components/Flags/lv.mjs +3 -3
  287. package/dist/esm/components/Flags/lv.mjs.map +1 -1
  288. package/dist/esm/components/Flags/ly.mjs +8 -7
  289. package/dist/esm/components/Flags/ly.mjs.map +1 -1
  290. package/dist/esm/components/Flags/ma.mjs +5 -4
  291. package/dist/esm/components/Flags/ma.mjs.map +1 -1
  292. package/dist/esm/components/Flags/mc.mjs +4 -4
  293. package/dist/esm/components/Flags/mc.mjs.map +1 -1
  294. package/dist/esm/components/Flags/md.mjs +93 -61
  295. package/dist/esm/components/Flags/md.mjs.map +1 -1
  296. package/dist/esm/components/Flags/mk.mjs +7 -5
  297. package/dist/esm/components/Flags/mk.mjs.map +1 -1
  298. package/dist/esm/components/Flags/mm.mjs +13 -10
  299. package/dist/esm/components/Flags/mm.mjs.map +1 -1
  300. package/dist/esm/components/Flags/mn.mjs +19 -12
  301. package/dist/esm/components/Flags/mn.mjs.map +1 -1
  302. package/dist/esm/components/Flags/mo.mjs +10 -7
  303. package/dist/esm/components/Flags/mo.mjs.map +1 -1
  304. package/dist/esm/components/Flags/mr.mjs +9 -6
  305. package/dist/esm/components/Flags/mr.mjs.map +1 -1
  306. package/dist/esm/components/Flags/mt.mjs +44 -39
  307. package/dist/esm/components/Flags/mt.mjs.map +1 -1
  308. package/dist/esm/components/Flags/mv.mjs +9 -6
  309. package/dist/esm/components/Flags/mv.mjs.map +1 -1
  310. package/dist/esm/components/Flags/mx.mjs +748 -377
  311. package/dist/esm/components/Flags/mx.mjs.map +1 -1
  312. package/dist/esm/components/Flags/my.mjs +21 -20
  313. package/dist/esm/components/Flags/my.mjs.map +1 -1
  314. package/dist/esm/components/Flags/mz.mjs +17 -16
  315. package/dist/esm/components/Flags/mz.mjs.map +1 -1
  316. package/dist/esm/components/Flags/ng.mjs +4 -4
  317. package/dist/esm/components/Flags/ng.mjs.map +1 -1
  318. package/dist/esm/components/Flags/ni.mjs +103 -98
  319. package/dist/esm/components/Flags/ni.mjs.map +1 -1
  320. package/dist/esm/components/Flags/nl.mjs +7 -5
  321. package/dist/esm/components/Flags/nl.mjs.map +1 -1
  322. package/dist/esm/components/Flags/no.mjs +11 -7
  323. package/dist/esm/components/Flags/no.mjs.map +1 -1
  324. package/dist/esm/components/Flags/np.mjs +7 -6
  325. package/dist/esm/components/Flags/np.mjs.map +1 -1
  326. package/dist/esm/components/Flags/nz.mjs +30 -20
  327. package/dist/esm/components/Flags/nz.mjs.map +1 -1
  328. package/dist/esm/components/Flags/om.mjs +102 -101
  329. package/dist/esm/components/Flags/om.mjs.map +1 -1
  330. package/dist/esm/components/Flags/pa.mjs +9 -8
  331. package/dist/esm/components/Flags/pa.mjs.map +1 -1
  332. package/dist/esm/components/Flags/pe.mjs +5 -4
  333. package/dist/esm/components/Flags/pe.mjs.map +1 -1
  334. package/dist/esm/components/Flags/ph.mjs +9 -6
  335. package/dist/esm/components/Flags/ph.mjs.map +1 -1
  336. package/dist/esm/components/Flags/pk.mjs +8 -7
  337. package/dist/esm/components/Flags/pk.mjs.map +1 -1
  338. package/dist/esm/components/Flags/pl.mjs +3 -3
  339. package/dist/esm/components/Flags/pl.mjs.map +1 -1
  340. package/dist/esm/components/Flags/pr.mjs +9 -8
  341. package/dist/esm/components/Flags/pr.mjs.map +1 -1
  342. package/dist/esm/components/Flags/ps.mjs +10 -9
  343. package/dist/esm/components/Flags/ps.mjs.map +1 -1
  344. package/dist/esm/components/Flags/pt.mjs +34 -31
  345. package/dist/esm/components/Flags/pt.mjs.map +1 -1
  346. package/dist/esm/components/Flags/py.mjs +17 -11
  347. package/dist/esm/components/Flags/py.mjs.map +1 -1
  348. package/dist/esm/components/Flags/qa.mjs +5 -4
  349. package/dist/esm/components/Flags/qa.mjs.map +1 -1
  350. package/dist/esm/components/Flags/ro.mjs +5 -5
  351. package/dist/esm/components/Flags/ro.mjs.map +1 -1
  352. package/dist/esm/components/Flags/rs.mjs +259 -258
  353. package/dist/esm/components/Flags/rs.mjs.map +1 -1
  354. package/dist/esm/components/Flags/ru.mjs +7 -5
  355. package/dist/esm/components/Flags/ru.mjs.map +1 -1
  356. package/dist/esm/components/Flags/sa.mjs +21 -20
  357. package/dist/esm/components/Flags/sa.mjs.map +1 -1
  358. package/dist/esm/components/Flags/sd.mjs +9 -8
  359. package/dist/esm/components/Flags/sd.mjs.map +1 -1
  360. package/dist/esm/components/Flags/se.mjs +5 -4
  361. package/dist/esm/components/Flags/se.mjs.map +1 -1
  362. package/dist/esm/components/Flags/sg.mjs +9 -8
  363. package/dist/esm/components/Flags/sg.mjs.map +1 -1
  364. package/dist/esm/components/Flags/si.mjs +14 -13
  365. package/dist/esm/components/Flags/si.mjs.map +1 -1
  366. package/dist/esm/components/Flags/sk.mjs +15 -9
  367. package/dist/esm/components/Flags/sk.mjs.map +1 -1
  368. package/dist/esm/components/Flags/so.mjs +7 -6
  369. package/dist/esm/components/Flags/so.mjs.map +1 -1
  370. package/dist/esm/components/Flags/st.mjs +17 -13
  371. package/dist/esm/components/Flags/st.mjs.map +1 -1
  372. package/dist/esm/components/Flags/sv.mjs +538 -522
  373. package/dist/esm/components/Flags/sv.mjs.map +1 -1
  374. package/dist/esm/components/Flags/sy.mjs +9 -6
  375. package/dist/esm/components/Flags/sy.mjs.map +1 -1
  376. package/dist/esm/components/Flags/td.mjs +4 -4
  377. package/dist/esm/components/Flags/td.mjs.map +1 -1
  378. package/dist/esm/components/Flags/th.mjs +4 -4
  379. package/dist/esm/components/Flags/th.mjs.map +1 -1
  380. package/dist/esm/components/Flags/tl.mjs +9 -8
  381. package/dist/esm/components/Flags/tl.mjs.map +1 -1
  382. package/dist/esm/components/Flags/tn.mjs +5 -4
  383. package/dist/esm/components/Flags/tn.mjs.map +1 -1
  384. package/dist/esm/components/Flags/tr.mjs +5 -5
  385. package/dist/esm/components/Flags/tr.mjs.map +1 -1
  386. package/dist/esm/components/Flags/tt.mjs +7 -5
  387. package/dist/esm/components/Flags/tt.mjs.map +1 -1
  388. package/dist/esm/components/Flags/tw.mjs +7 -6
  389. package/dist/esm/components/Flags/tw.mjs.map +1 -1
  390. package/dist/esm/components/Flags/tz.mjs +9 -8
  391. package/dist/esm/components/Flags/tz.mjs.map +1 -1
  392. package/dist/esm/components/Flags/ua.mjs +4 -4
  393. package/dist/esm/components/Flags/ua.mjs.map +1 -1
  394. package/dist/esm/components/Flags/ug.mjs +26 -25
  395. package/dist/esm/components/Flags/ug.mjs.map +1 -1
  396. package/dist/esm/components/Flags/us.mjs +12 -8
  397. package/dist/esm/components/Flags/us.mjs.map +1 -1
  398. package/dist/esm/components/Flags/uy.mjs +15 -12
  399. package/dist/esm/components/Flags/uy.mjs.map +1 -1
  400. package/dist/esm/components/Flags/uz.mjs +27 -21
  401. package/dist/esm/components/Flags/uz.mjs.map +1 -1
  402. package/dist/esm/components/Flags/ve.mjs +21 -16
  403. package/dist/esm/components/Flags/ve.mjs.map +1 -1
  404. package/dist/esm/components/Flags/vn.mjs +7 -6
  405. package/dist/esm/components/Flags/vn.mjs.map +1 -1
  406. package/dist/esm/components/Flags/xx.mjs +5 -4
  407. package/dist/esm/components/Flags/xx.mjs.map +1 -1
  408. package/dist/esm/components/Flags/ye.mjs +5 -5
  409. package/dist/esm/components/Flags/ye.mjs.map +1 -1
  410. package/dist/esm/components/Flags/za.mjs +12 -11
  411. package/dist/esm/components/Flags/za.mjs.map +1 -1
  412. package/dist/esm/components/Flags/zw.mjs +16 -15
  413. package/dist/esm/components/Flags/zw.mjs.map +1 -1
  414. package/dist/esm/components/Footer/index.mjs.map +1 -1
  415. package/dist/esm/components/Form/FormBase.mjs.map +1 -1
  416. package/dist/esm/components/Form/FormControl.mjs.map +1 -1
  417. package/dist/esm/components/Form/FormDescription.mjs.map +1 -1
  418. package/dist/esm/components/Form/FormField.mjs +2 -1
  419. package/dist/esm/components/Form/FormField.mjs.map +1 -1
  420. package/dist/esm/components/Form/FormItem.mjs.map +1 -1
  421. package/dist/esm/components/Form/FormLabel.mjs.map +1 -1
  422. package/dist/esm/components/Form/FormMessage.mjs.map +1 -1
  423. package/dist/esm/components/Form/elements/AutoSizeTextAreaElement.mjs.map +1 -1
  424. package/dist/esm/components/Form/elements/CheckboxElement.mjs.map +1 -1
  425. package/dist/esm/components/Form/elements/EditableFieldInputElement.mjs.map +1 -1
  426. package/dist/esm/components/Form/elements/EditableFieldTextAreaElement.mjs.map +1 -1
  427. package/dist/esm/components/Form/elements/FormElement.mjs.map +1 -1
  428. package/dist/esm/components/Form/elements/FormElementWrapper.mjs.map +1 -1
  429. package/dist/esm/components/Form/elements/InputElement.mjs.map +1 -1
  430. package/dist/esm/components/Form/elements/InputPasswordElement.mjs.map +1 -1
  431. package/dist/esm/components/Form/elements/MultiselectElement.mjs.map +1 -1
  432. package/dist/esm/components/Form/elements/OTPElement.mjs.map +1 -1
  433. package/dist/esm/components/Form/elements/SearchInputElement.mjs.map +1 -1
  434. package/dist/esm/components/Form/elements/SelectElement.mjs.map +1 -1
  435. package/dist/esm/components/Form/elements/SwitchSelectorElement.mjs.map +1 -1
  436. package/dist/esm/components/Form/elements/TextAreaElement.mjs.map +1 -1
  437. package/dist/esm/components/Form/layout/FormItemLayout.mjs.map +1 -1
  438. package/dist/esm/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  439. package/dist/esm/components/Form/layout/RequiredStar.mjs.map +1 -1
  440. package/dist/esm/components/HTMLRender/HTMLRender.mjs.map +1 -1
  441. package/dist/esm/components/Headers/index.mjs.map +1 -1
  442. package/dist/esm/components/HeightResizer/index.mjs.map +1 -1
  443. package/dist/esm/components/HideShow/index.mjs.map +1 -1
  444. package/dist/esm/components/IDE/Code.mjs +1 -1
  445. package/dist/esm/components/IDE/Code.mjs.map +1 -1
  446. package/dist/esm/components/IDE/CodeBlockClient.mjs.map +1 -1
  447. package/dist/esm/components/IDE/CodeBlockHighlight.mjs.map +1 -1
  448. package/dist/esm/components/IDE/CodeBlockServer.mjs.map +1 -1
  449. package/dist/esm/components/IDE/CodeBlockShiki.mjs.map +1 -1
  450. package/dist/esm/components/IDE/CodeConditionalRenderer.mjs.map +1 -1
  451. package/dist/esm/components/IDE/CodeContext.mjs.map +1 -1
  452. package/dist/esm/components/IDE/CodeFormatSelector.mjs.map +1 -1
  453. package/dist/esm/components/IDE/ContentDeclarationFormatSelector.mjs.map +1 -1
  454. package/dist/esm/components/IDE/CopyCode.mjs.map +1 -1
  455. package/dist/esm/components/IDE/FileList.mjs.map +1 -1
  456. package/dist/esm/components/IDE/FileTree.mjs.map +1 -1
  457. package/dist/esm/components/IDE/IDE.mjs +2 -1
  458. package/dist/esm/components/IDE/IDE.mjs.map +1 -1
  459. package/dist/esm/components/IDE/MarkDownRender.mjs.map +1 -1
  460. package/dist/esm/components/IDE/MonacoCode.mjs.map +1 -1
  461. package/dist/esm/components/IDE/PackageManagerSelector.mjs.map +1 -1
  462. package/dist/esm/components/IDE/code.content.mjs.map +1 -1
  463. package/dist/esm/components/IDE/codeTransformer.mjs +7 -4
  464. package/dist/esm/components/IDE/codeTransformer.mjs.map +1 -1
  465. package/dist/esm/components/IDE/copyCode.content.mjs.map +1 -1
  466. package/dist/esm/components/IDE/createFileTree.mjs.map +1 -1
  467. package/dist/esm/components/IDE/selectors.content.mjs.map +1 -1
  468. package/dist/esm/components/InformationTag/index.mjs.map +1 -1
  469. package/dist/esm/components/Input/Checkbox.mjs.map +1 -1
  470. package/dist/esm/components/Input/Input.mjs.map +1 -1
  471. package/dist/esm/components/Input/InputPassword.mjs.map +1 -1
  472. package/dist/esm/components/Input/OTPInput.mjs +2 -1
  473. package/dist/esm/components/Input/OTPInput.mjs.map +1 -1
  474. package/dist/esm/components/Input/Radio.mjs.map +1 -1
  475. package/dist/esm/components/Input/SearchInput.mjs.map +1 -1
  476. package/dist/esm/components/KeyboardScreenAdapter/index.mjs.map +1 -1
  477. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs +2 -1
  478. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs.map +1 -1
  479. package/dist/esm/components/Label/index.mjs.map +1 -1
  480. package/dist/esm/components/LanguageBackground/LanguageBackground.mjs.map +1 -1
  481. package/dist/esm/components/LanguageBackground/LanguageSection.mjs.map +1 -1
  482. package/dist/esm/components/Link/Link.mjs.map +1 -1
  483. package/dist/esm/components/Loader/index.content.mjs.map +1 -1
  484. package/dist/esm/components/Loader/index.mjs.map +1 -1
  485. package/dist/esm/components/Loader/spinner.mjs.map +1 -1
  486. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  487. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -1
  488. package/dist/esm/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -1
  489. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +4 -2
  490. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  491. package/dist/esm/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  492. package/dist/esm/components/Logo/Logo.mjs.map +1 -1
  493. package/dist/esm/components/Logo/LogoTextOnly.mjs.map +1 -1
  494. package/dist/esm/components/Logo/LogoWithText.mjs.map +1 -1
  495. package/dist/esm/components/Logo/LogoWithTextBelow.mjs.map +1 -1
  496. package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs.map +1 -1
  497. package/dist/esm/components/MarkDownRender/MarkDownRender.mjs +1 -1
  498. package/dist/esm/components/MarkDownRender/MarkDownRender.mjs.map +1 -1
  499. package/dist/esm/components/MarkdownEditor/MarkdownEditor.mjs +2 -3
  500. package/dist/esm/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  501. package/dist/esm/components/MarkdownEditor/extensions.mjs.map +1 -1
  502. package/dist/esm/components/MarkdownEditor/generative/AICompletionCommands.mjs.map +1 -1
  503. package/dist/esm/components/MarkdownEditor/generative/AISelector.mjs +2 -1
  504. package/dist/esm/components/MarkdownEditor/generative/AISelector.mjs.map +1 -1
  505. package/dist/esm/components/MarkdownEditor/generative/AISelectorCommands.mjs.map +1 -1
  506. package/dist/esm/components/MarkdownEditor/generative/GenerativeMenuSwitch.mjs.map +1 -1
  507. package/dist/esm/components/MarkdownEditor/generative/useAICompletion.mjs.map +1 -1
  508. package/dist/esm/components/MarkdownEditor/imageUpload.mjs +2 -1
  509. package/dist/esm/components/MarkdownEditor/imageUpload.mjs.map +1 -1
  510. package/dist/esm/components/MarkdownEditor/markdownEditor.content.mjs +118 -59
  511. package/dist/esm/components/MarkdownEditor/markdownEditor.content.mjs.map +1 -1
  512. package/dist/esm/components/MarkdownEditor/novel/components/editor-bubble-item.mjs.map +1 -1
  513. package/dist/esm/components/MarkdownEditor/novel/components/editor-bubble.mjs.map +1 -1
  514. package/dist/esm/components/MarkdownEditor/novel/components/editor-command-item.mjs.map +1 -1
  515. package/dist/esm/components/MarkdownEditor/novel/components/editor-command.mjs.map +1 -1
  516. package/dist/esm/components/MarkdownEditor/novel/components/editor.mjs.map +1 -1
  517. package/dist/esm/components/MarkdownEditor/novel/extensions/ai-highlight.mjs.map +1 -1
  518. package/dist/esm/components/MarkdownEditor/novel/extensions/custom-keymap.mjs.map +1 -1
  519. package/dist/esm/components/MarkdownEditor/novel/extensions/image-resizer.mjs +91 -37
  520. package/dist/esm/components/MarkdownEditor/novel/extensions/image-resizer.mjs.map +1 -1
  521. package/dist/esm/components/MarkdownEditor/novel/extensions/index.mjs.map +1 -1
  522. package/dist/esm/components/MarkdownEditor/novel/extensions/slash-command.mjs +49 -13
  523. package/dist/esm/components/MarkdownEditor/novel/extensions/slash-command.mjs.map +1 -1
  524. package/dist/esm/components/MarkdownEditor/novel/extensions/updated-image.mjs.map +1 -1
  525. package/dist/esm/components/MarkdownEditor/novel/plugins/upload-images.mjs.map +1 -1
  526. package/dist/esm/components/MarkdownEditor/novel/utils/atoms.mjs.map +1 -1
  527. package/dist/esm/components/MarkdownEditor/novel/utils/index.mjs.map +1 -1
  528. package/dist/esm/components/MarkdownEditor/selectors/ColorSelector.mjs.map +1 -1
  529. package/dist/esm/components/MarkdownEditor/selectors/LinkSelector.mjs.map +1 -1
  530. package/dist/esm/components/MarkdownEditor/selectors/NodeSelector.mjs.map +1 -1
  531. package/dist/esm/components/MarkdownEditor/selectors/TextButtons.mjs.map +1 -1
  532. package/dist/esm/components/MarkdownEditor/slashCommand.mjs.map +1 -1
  533. package/dist/esm/components/MaxHeightSmoother/index.mjs.map +1 -1
  534. package/dist/esm/components/MaxWidthSmoother/index.mjs.map +1 -1
  535. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  536. package/dist/esm/components/Navbar/Burger.mjs.map +1 -1
  537. package/dist/esm/components/Navbar/DesktopNavbar.mjs.map +1 -1
  538. package/dist/esm/components/Navbar/MobileNavbar.mjs.map +1 -1
  539. package/dist/esm/components/Navbar/index.mjs.map +1 -1
  540. package/dist/esm/components/Navbar/useNavigation.mjs.map +1 -1
  541. package/dist/esm/components/Pagination/NumberItemsSelector.mjs.map +1 -1
  542. package/dist/esm/components/Pagination/Pagination.mjs.map +1 -1
  543. package/dist/esm/components/Pagination/ShowingResultsNumberItems.mjs.map +1 -1
  544. package/dist/esm/components/Pagination/pagination.content.mjs.map +1 -1
  545. package/dist/esm/components/Pattern/DotPattern.mjs.map +1 -1
  546. package/dist/esm/components/Pattern/GridDistortionPattern.mjs +2 -1
  547. package/dist/esm/components/Pattern/GridDistortionPattern.mjs.map +1 -1
  548. package/dist/esm/components/Pattern/GridPattern.mjs.map +1 -1
  549. package/dist/esm/components/Pattern/SpotLight.mjs.map +1 -1
  550. package/dist/esm/components/Popover/dynamic.mjs.map +1 -1
  551. package/dist/esm/components/Popover/static.mjs.map +1 -1
  552. package/dist/esm/components/PressableSpan/PressableSpan.mjs.map +1 -1
  553. package/dist/esm/components/RightDrawer/RightDrawer.mjs.map +1 -1
  554. package/dist/esm/components/RightDrawer/isElementAtTopAndNotCovered.mjs.map +1 -1
  555. package/dist/esm/components/RightDrawer/rightDrawer.content.mjs.map +1 -1
  556. package/dist/esm/components/RightDrawer/useRightDrawer.mjs.map +1 -1
  557. package/dist/esm/components/Select/Multiselect.mjs +26 -24
  558. package/dist/esm/components/Select/Multiselect.mjs.map +1 -1
  559. package/dist/esm/components/Select/Select.mjs.map +1 -1
  560. package/dist/esm/components/SocialNetworks/DiscordLogo.mjs.map +1 -1
  561. package/dist/esm/components/SocialNetworks/FacebookLogo.mjs.map +1 -1
  562. package/dist/esm/components/SocialNetworks/InstagramLogo.mjs.map +1 -1
  563. package/dist/esm/components/SocialNetworks/ProductHuntLogo.mjs.map +1 -1
  564. package/dist/esm/components/SocialNetworks/TiktokLogo.mjs.map +1 -1
  565. package/dist/esm/components/SocialNetworks/XLogo.mjs.map +1 -1
  566. package/dist/esm/components/SocialNetworks/YoutubeLogo.mjs.map +1 -1
  567. package/dist/esm/components/SocialNetworks/index.mjs.map +1 -1
  568. package/dist/esm/components/Steps/index.mjs.map +1 -1
  569. package/dist/esm/components/Steps/steps.content.mjs.map +1 -1
  570. package/dist/esm/components/SwitchSelector/SwitchSelector.mjs.map +1 -1
  571. package/dist/esm/components/SwitchSelector/VerticalSwitchSelector.mjs.map +1 -1
  572. package/dist/esm/components/SwitchSelector/useSwitchSelector.mjs +0 -1
  573. package/dist/esm/components/SwitchSelector/useSwitchSelector.mjs.map +1 -1
  574. package/dist/esm/components/Tab/Tab.mjs +4 -2
  575. package/dist/esm/components/Tab/Tab.mjs.map +1 -1
  576. package/dist/esm/components/Tab/TabContext.mjs.map +1 -1
  577. package/dist/esm/components/TabSelector/TabSelector.mjs.map +1 -1
  578. package/dist/esm/components/Table/ExpandButton.mjs.map +1 -1
  579. package/dist/esm/components/Table/SmartTable.mjs.map +1 -1
  580. package/dist/esm/components/Table/Table.mjs.map +1 -1
  581. package/dist/esm/components/Table/TableElements.mjs.map +1 -1
  582. package/dist/esm/components/Table/table.content.mjs.map +1 -1
  583. package/dist/esm/components/Table/useTableWidths.mjs.map +1 -1
  584. package/dist/esm/components/Tag/index.mjs.map +1 -1
  585. package/dist/esm/components/TechLogo/TechLogo.mjs.map +1 -1
  586. package/dist/esm/components/TechLogo/logos/Adonis.mjs.map +1 -1
  587. package/dist/esm/components/TechLogo/logos/Angular.mjs.map +1 -1
  588. package/dist/esm/components/TechLogo/logos/Anthropic.mjs.map +1 -1
  589. package/dist/esm/components/TechLogo/logos/Astro.mjs.map +1 -1
  590. package/dist/esm/components/TechLogo/logos/Atlassian.mjs.map +1 -1
  591. package/dist/esm/components/TechLogo/logos/Bitbucket.mjs.map +1 -1
  592. package/dist/esm/components/TechLogo/logos/ChatGPT.mjs.map +1 -1
  593. package/dist/esm/components/TechLogo/logos/Claude.mjs.map +1 -1
  594. package/dist/esm/components/TechLogo/logos/DeepSeek.mjs.map +1 -1
  595. package/dist/esm/components/TechLogo/logos/Express.mjs.map +1 -1
  596. package/dist/esm/components/TechLogo/logos/Fastify.mjs.map +1 -1
  597. package/dist/esm/components/TechLogo/logos/Gemini.mjs.map +1 -1
  598. package/dist/esm/components/TechLogo/logos/GitHub.mjs.map +1 -1
  599. package/dist/esm/components/TechLogo/logos/GitLab.mjs.map +1 -1
  600. package/dist/esm/components/TechLogo/logos/Google.mjs.map +1 -1
  601. package/dist/esm/components/TechLogo/logos/GoogleAI.mjs.map +1 -1
  602. package/dist/esm/components/TechLogo/logos/Grok.mjs.map +1 -1
  603. package/dist/esm/components/TechLogo/logos/Hono.mjs.map +1 -1
  604. package/dist/esm/components/TechLogo/logos/LinkedIn.mjs.map +1 -1
  605. package/dist/esm/components/TechLogo/logos/Lit.mjs.map +1 -1
  606. package/dist/esm/components/TechLogo/logos/Lynx.mjs.map +1 -1
  607. package/dist/esm/components/TechLogo/logos/Microsoft.mjs.map +1 -1
  608. package/dist/esm/components/TechLogo/logos/Mistral.mjs.map +1 -1
  609. package/dist/esm/components/TechLogo/logos/NestJS.mjs.map +1 -1
  610. package/dist/esm/components/TechLogo/logos/Nextjs.mjs.map +1 -1
  611. package/dist/esm/components/TechLogo/logos/Node.mjs.map +1 -1
  612. package/dist/esm/components/TechLogo/logos/Nuxt.mjs.map +1 -1
  613. package/dist/esm/components/TechLogo/logos/Ollama.mjs.map +1 -1
  614. package/dist/esm/components/TechLogo/logos/OpenAI.mjs.map +1 -1
  615. package/dist/esm/components/TechLogo/logos/Perplexity.mjs.map +1 -1
  616. package/dist/esm/components/TechLogo/logos/Preact.mjs.map +1 -1
  617. package/dist/esm/components/TechLogo/logos/Reactjs.mjs.map +1 -1
  618. package/dist/esm/components/TechLogo/logos/Solid.mjs.map +1 -1
  619. package/dist/esm/components/TechLogo/logos/Svelte.mjs.map +1 -1
  620. package/dist/esm/components/TechLogo/logos/Tanstack.mjs.map +1 -1
  621. package/dist/esm/components/TechLogo/logos/Vanilla.mjs.map +1 -1
  622. package/dist/esm/components/TechLogo/logos/Vitejs.mjs.map +1 -1
  623. package/dist/esm/components/TechLogo/logos/Vuejs.mjs.map +1 -1
  624. package/dist/esm/components/Terminal/Terminal.mjs.map +1 -1
  625. package/dist/esm/components/Terminal/terminal.content.mjs.map +1 -1
  626. package/dist/esm/components/TextArea/AutoSizeTextArea.mjs +1 -2
  627. package/dist/esm/components/TextArea/AutoSizeTextArea.mjs.map +1 -1
  628. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs +2 -1
  629. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs.map +1 -1
  630. package/dist/esm/components/TextArea/ContentEditableTextArea.mjs +30 -15
  631. package/dist/esm/components/TextArea/ContentEditableTextArea.mjs.map +1 -1
  632. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  633. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  634. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs.map +1 -1
  635. package/dist/esm/components/Toaster/Toast.mjs.map +1 -1
  636. package/dist/esm/components/Toaster/Toaster.mjs.map +1 -1
  637. package/dist/esm/components/Toaster/useToast.mjs.map +1 -1
  638. package/dist/esm/components/WithResizer/index.mjs +3 -2
  639. package/dist/esm/components/WithResizer/index.mjs.map +1 -1
  640. package/dist/esm/hooks/useDevice.mjs.map +1 -1
  641. package/dist/esm/hooks/useGetElementById.mjs.map +1 -1
  642. package/dist/esm/hooks/useGetElementOrWindow.mjs.map +1 -1
  643. package/dist/esm/hooks/useHorizontalSwipe.mjs +2 -1
  644. package/dist/esm/hooks/useHorizontalSwipe.mjs.map +1 -1
  645. package/dist/esm/hooks/useIsDarkMode.mjs +2 -1
  646. package/dist/esm/hooks/useIsDarkMode.mjs.map +1 -1
  647. package/dist/esm/hooks/useIsMounted.mjs.map +1 -1
  648. package/dist/esm/hooks/useItemSelector.mjs.map +1 -1
  649. package/dist/esm/hooks/useKeyboardDetector.mjs.map +1 -1
  650. package/dist/esm/hooks/usePersistedStore.mjs.map +1 -1
  651. package/dist/esm/hooks/useScreenWidth.mjs.map +1 -1
  652. package/dist/esm/hooks/useScrollBlockage/index.mjs.map +1 -1
  653. package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs.map +1 -1
  654. package/dist/esm/hooks/useScrollDetection.mjs +5 -2
  655. package/dist/esm/hooks/useScrollDetection.mjs.map +1 -1
  656. package/dist/esm/hooks/useScrollY.mjs.map +1 -1
  657. package/dist/esm/hooks/useSearch.mjs.map +1 -1
  658. package/dist/esm/libs/auth.mjs.map +1 -1
  659. package/dist/esm/providers/ReactQueryProvider.mjs.map +1 -1
  660. package/dist/esm/routes.mjs +7 -1
  661. package/dist/esm/routes.mjs.map +1 -1
  662. package/dist/esm/structured-data/buildAuthorJsonLd.mjs.map +1 -1
  663. package/dist/esm/structured-data/buildBreadcrumbsJsonLd.mjs.map +1 -1
  664. package/dist/esm/structured-data/buildCreativeWorkJsonLd.mjs.map +1 -1
  665. package/dist/esm/structured-data/buildFAQPageJsonLd.mjs.map +1 -1
  666. package/dist/esm/structured-data/buildOrganizationJsonLd.mjs.map +1 -1
  667. package/dist/esm/structured-data/buildProductJsonLd.mjs.map +1 -1
  668. package/dist/esm/structured-data/buildSoftwareApplicationJsonLd.mjs +23 -4
  669. package/dist/esm/structured-data/buildSoftwareApplicationJsonLd.mjs.map +1 -1
  670. package/dist/esm/structured-data/buildWebsiteJsonLd.mjs.map +1 -1
  671. package/dist/esm/tailwind.config.mjs.map +1 -1
  672. package/dist/esm/utils/cn.mjs +2 -8
  673. package/dist/types/api/hooks/ai.d.ts +0 -1
  674. package/dist/types/api/hooks/ai.d.ts.map +1 -1
  675. package/dist/types/api/hooks/analytics.d.ts +27 -0
  676. package/dist/types/api/hooks/analytics.d.ts.map +1 -0
  677. package/dist/types/api/hooks/asset.d.ts +0 -1
  678. package/dist/types/api/hooks/asset.d.ts.map +1 -1
  679. package/dist/types/api/hooks/audit.d.ts +0 -1
  680. package/dist/types/api/hooks/audit.d.ts.map +1 -1
  681. package/dist/types/api/hooks/auth.d.ts.map +1 -1
  682. package/dist/types/api/hooks/bitbucket.d.ts.map +1 -1
  683. package/dist/types/api/hooks/dictionary.d.ts +2 -3
  684. package/dist/types/api/hooks/dictionary.d.ts.map +1 -1
  685. package/dist/types/api/hooks/discussions.d.ts +0 -1
  686. package/dist/types/api/hooks/discussions.d.ts.map +1 -1
  687. package/dist/types/api/hooks/editor.d.ts.map +1 -1
  688. package/dist/types/api/hooks/environment.d.ts.map +1 -1
  689. package/dist/types/api/hooks/github.d.ts +0 -1
  690. package/dist/types/api/hooks/github.d.ts.map +1 -1
  691. package/dist/types/api/hooks/gitlab.d.ts.map +1 -1
  692. package/dist/types/api/hooks/newsletter.d.ts.map +1 -1
  693. package/dist/types/api/hooks/organization.d.ts +2 -2
  694. package/dist/types/api/hooks/organization.d.ts.map +1 -1
  695. package/dist/types/api/hooks/project.d.ts +0 -1
  696. package/dist/types/api/hooks/project.d.ts.map +1 -1
  697. package/dist/types/api/hooks/reviewer.d.ts +2 -3
  698. package/dist/types/api/hooks/reviewer.d.ts.map +1 -1
  699. package/dist/types/api/hooks/search.d.ts +0 -1
  700. package/dist/types/api/hooks/search.d.ts.map +1 -1
  701. package/dist/types/api/hooks/showcaseProject.d.ts +1 -2
  702. package/dist/types/api/hooks/showcaseProject.d.ts.map +1 -1
  703. package/dist/types/api/hooks/stripe.d.ts +0 -1
  704. package/dist/types/api/hooks/stripe.d.ts.map +1 -1
  705. package/dist/types/api/hooks/tag.d.ts +0 -1
  706. package/dist/types/api/hooks/tag.d.ts.map +1 -1
  707. package/dist/types/api/hooks/translate.d.ts.map +1 -1
  708. package/dist/types/api/hooks/user.d.ts +0 -1
  709. package/dist/types/api/hooks/user.d.ts.map +1 -1
  710. package/dist/types/api/hooks/utils.d.ts +1 -6
  711. package/dist/types/api/hooks/utils.d.ts.map +1 -1
  712. package/dist/types/api/index.d.ts +5 -3
  713. package/dist/types/api/useAuth/useAuth.d.ts +1 -5
  714. package/dist/types/api/useAuth/useAuth.d.ts.map +1 -1
  715. package/dist/types/api/useAuth/useOAuth2.d.ts +1 -2
  716. package/dist/types/api/useAuth/useOAuth2.d.ts.map +1 -1
  717. package/dist/types/api/useAuth/useSession.d.ts +7 -4
  718. package/dist/types/api/useAuth/useSession.d.ts.map +1 -1
  719. package/dist/types/api/useIntlayerAPI.d.ts +44 -290
  720. package/dist/types/api/useIntlayerAPI.d.ts.map +1 -1
  721. package/dist/types/api/useUser/index.d.ts +1 -3
  722. package/dist/types/api/useUser/index.d.ts.map +1 -1
  723. package/dist/types/components/Accordion/Accordion.d.ts +1 -1
  724. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
  725. package/dist/types/components/Avatar/image.d.ts.map +1 -1
  726. package/dist/types/components/Avatar/index.d.ts +0 -1
  727. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  728. package/dist/types/components/Badge/index.d.ts +25 -16
  729. package/dist/types/components/Badge/index.d.ts.map +1 -1
  730. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +1 -3
  731. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -1
  732. package/dist/types/components/Breadcrumb/index.d.ts +4 -5
  733. package/dist/types/components/Breadcrumb/index.d.ts.map +1 -1
  734. package/dist/types/components/Browser/Browser.content.d.ts +13 -15
  735. package/dist/types/components/Browser/Browser.content.d.ts.map +1 -1
  736. package/dist/types/components/Browser/Browser.d.ts +1 -14
  737. package/dist/types/components/Browser/Browser.d.ts.map +1 -1
  738. package/dist/types/components/Browser/extractUrlFromSitemap.d.ts.map +1 -1
  739. package/dist/types/components/Button/Button.d.ts +6 -8
  740. package/dist/types/components/Button/Button.d.ts.map +1 -1
  741. package/dist/types/components/Carousel/index.content.d.ts +3 -5
  742. package/dist/types/components/Carousel/index.content.d.ts.map +1 -1
  743. package/dist/types/components/Carousel/index.d.ts +0 -1
  744. package/dist/types/components/Carousel/index.d.ts.map +1 -1
  745. package/dist/types/components/ClickOutsideDiv/index.d.ts +0 -1
  746. package/dist/types/components/ClickOutsideDiv/index.d.ts.map +1 -1
  747. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +4 -6
  748. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts.map +1 -1
  749. package/dist/types/components/Command/index.d.ts +21 -25
  750. package/dist/types/components/Command/index.d.ts.map +1 -1
  751. package/dist/types/components/Container/index.d.ts +10 -11
  752. package/dist/types/components/Container/index.d.ts.map +1 -1
  753. package/dist/types/components/ContentEditor/ContentEditor.d.ts +5 -3
  754. package/dist/types/components/ContentEditor/ContentEditor.d.ts.map +1 -1
  755. package/dist/types/components/ContentEditor/ContentEditorInput.d.ts +10 -5
  756. package/dist/types/components/ContentEditor/ContentEditorInput.d.ts.map +1 -1
  757. package/dist/types/components/ContentEditor/ContentEditorTextArea.d.ts +10 -5
  758. package/dist/types/components/ContentEditor/ContentEditorTextArea.d.ts.map +1 -1
  759. package/dist/types/components/ContentSelector/ContentSelector.d.ts +0 -1
  760. package/dist/types/components/ContentSelector/ContentSelector.d.ts.map +1 -1
  761. package/dist/types/components/CopyButton/CopyButton.content.d.ts +1 -3
  762. package/dist/types/components/CopyButton/CopyButton.content.d.ts.map +1 -1
  763. package/dist/types/components/CopyButton/index.d.ts +1 -1
  764. package/dist/types/components/CopyButton/index.d.ts.map +1 -1
  765. package/dist/types/components/CopyToClipboard/index.d.ts +0 -1
  766. package/dist/types/components/CopyToClipboard/index.d.ts.map +1 -1
  767. package/dist/types/components/DictionaryEditor/DictionaryEditor.d.ts +0 -1
  768. package/dist/types/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
  769. package/dist/types/components/DictionaryEditor/ItemLayout.d.ts +0 -1
  770. package/dist/types/components/DictionaryEditor/ItemLayout.d.ts.map +1 -1
  771. package/dist/types/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts +0 -1
  772. package/dist/types/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts.map +1 -1
  773. package/dist/types/components/DictionaryEditor/NodeWrapper/BooleanWrapper.d.ts +0 -1
  774. package/dist/types/components/DictionaryEditor/NodeWrapper/BooleanWrapper.d.ts.map +1 -1
  775. package/dist/types/components/DictionaryEditor/NodeWrapper/ConditionWrapper.d.ts +1 -2
  776. package/dist/types/components/DictionaryEditor/NodeWrapper/ConditionWrapper.d.ts.map +1 -1
  777. package/dist/types/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts +1 -2
  778. package/dist/types/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts.map +1 -1
  779. package/dist/types/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts +0 -1
  780. package/dist/types/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts.map +1 -1
  781. package/dist/types/components/DictionaryEditor/NodeWrapper/HtmlWrapper.d.ts +1 -2
  782. package/dist/types/components/DictionaryEditor/NodeWrapper/HtmlWrapper.d.ts.map +1 -1
  783. package/dist/types/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts +1 -2
  784. package/dist/types/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts.map +1 -1
  785. package/dist/types/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts +1 -2
  786. package/dist/types/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts.map +1 -1
  787. package/dist/types/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts +0 -1
  788. package/dist/types/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts.map +1 -1
  789. package/dist/types/components/DictionaryEditor/NodeWrapper/NumberWrapper.d.ts +0 -1
  790. package/dist/types/components/DictionaryEditor/NodeWrapper/NumberWrapper.d.ts.map +1 -1
  791. package/dist/types/components/DictionaryEditor/NodeWrapper/PluralWrapper.d.ts +1 -2
  792. package/dist/types/components/DictionaryEditor/NodeWrapper/PluralWrapper.d.ts.map +1 -1
  793. package/dist/types/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts +0 -1
  794. package/dist/types/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
  795. package/dist/types/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts +1 -2
  796. package/dist/types/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts.map +1 -1
  797. package/dist/types/components/DictionaryEditor/NodeWrapper/index.d.ts +0 -1
  798. package/dist/types/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
  799. package/dist/types/components/DictionaryFieldEditor/ContentEditor.d.ts +0 -1
  800. package/dist/types/components/DictionaryFieldEditor/ContentEditor.d.ts.map +1 -1
  801. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.d.ts +2 -6
  802. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.d.ts.map +1 -1
  803. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +7 -5
  804. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  805. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/object.d.ts.map +1 -1
  806. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts +0 -1
  807. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts.map +1 -1
  808. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +18 -82
  809. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts.map +1 -1
  810. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +4 -6
  811. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts.map +1 -1
  812. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.d.ts +2 -5
  813. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.d.ts.map +1 -1
  814. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +0 -1
  815. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  816. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +52 -54
  817. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  818. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +16 -18
  819. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
  820. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts +3 -4
  821. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts.map +1 -1
  822. package/dist/types/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +0 -1
  823. package/dist/types/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  824. package/dist/types/components/DictionaryFieldEditor/EnumKeyInput.d.ts +0 -1
  825. package/dist/types/components/DictionaryFieldEditor/EnumKeyInput.d.ts.map +1 -1
  826. package/dist/types/components/DictionaryFieldEditor/JSONEditor.d.ts +0 -1
  827. package/dist/types/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
  828. package/dist/types/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts +1 -1
  829. package/dist/types/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
  830. package/dist/types/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts +0 -1
  831. package/dist/types/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  832. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +10 -12
  833. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
  834. package/dist/types/components/DictionaryFieldEditor/NodeTypeSelector.d.ts +0 -1
  835. package/dist/types/components/DictionaryFieldEditor/NodeTypeSelector.d.ts.map +1 -1
  836. package/dist/types/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts +0 -1
  837. package/dist/types/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  838. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +16 -18
  839. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  840. package/dist/types/components/DictionaryFieldEditor/StructureEditor.d.ts +0 -1
  841. package/dist/types/components/DictionaryFieldEditor/StructureEditor.d.ts.map +1 -1
  842. package/dist/types/components/DictionaryFieldEditor/StructureView/StructureView.d.ts +0 -1
  843. package/dist/types/components/DictionaryFieldEditor/StructureView/StructureView.d.ts.map +1 -1
  844. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +4 -6
  845. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts.map +1 -1
  846. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts +1 -2
  847. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts.map +1 -1
  848. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts +0 -1
  849. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts.map +1 -1
  850. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +3 -5
  851. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts.map +1 -1
  852. package/dist/types/components/DictionaryFieldEditor/contentEditor.content.d.ts +3 -5
  853. package/dist/types/components/DictionaryFieldEditor/contentEditor.content.d.ts.map +1 -1
  854. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +2 -4
  855. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts.map +1 -1
  856. package/dist/types/components/DictionaryFieldEditor/getIsEditableSection.d.ts +0 -1
  857. package/dist/types/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
  858. package/dist/types/components/DictionaryFieldEditor/index.d.ts +1 -0
  859. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +16 -18
  860. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
  861. package/dist/types/components/DropDown/index.d.ts +1 -1
  862. package/dist/types/components/DropDown/index.d.ts.map +1 -1
  863. package/dist/types/components/EditableField/EditableFieldInput.d.ts +4 -2
  864. package/dist/types/components/EditableField/EditableFieldInput.d.ts.map +1 -1
  865. package/dist/types/components/EditableField/EditableFieldLayout.d.ts +0 -1
  866. package/dist/types/components/EditableField/EditableFieldLayout.d.ts.map +1 -1
  867. package/dist/types/components/EditableField/EditableFieldTextArea.d.ts +4 -2
  868. package/dist/types/components/EditableField/EditableFieldTextArea.d.ts.map +1 -1
  869. package/dist/types/components/ExpandCollapse/ExpandCollapse.d.ts +7 -4
  870. package/dist/types/components/ExpandCollapse/ExpandCollapse.d.ts.map +1 -1
  871. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +1 -3
  872. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts.map +1 -1
  873. package/dist/types/components/Flags/Flag.d.ts +0 -1
  874. package/dist/types/components/Flags/Flag.d.ts.map +1 -1
  875. package/dist/types/components/Flags/flags.d.ts +604 -604
  876. package/dist/types/components/Flags/flags.d.ts.map +1 -1
  877. package/dist/types/components/Footer/index.d.ts +13 -6
  878. package/dist/types/components/Footer/index.d.ts.map +1 -1
  879. package/dist/types/components/Form/Form.d.ts +2 -25
  880. package/dist/types/components/Form/Form.d.ts.map +1 -1
  881. package/dist/types/components/Form/FormBase.d.ts +3 -16
  882. package/dist/types/components/Form/FormBase.d.ts.map +1 -1
  883. package/dist/types/components/Form/FormControl.d.ts +0 -1
  884. package/dist/types/components/Form/FormControl.d.ts.map +1 -1
  885. package/dist/types/components/Form/FormDescription.d.ts +0 -1
  886. package/dist/types/components/Form/FormDescription.d.ts.map +1 -1
  887. package/dist/types/components/Form/FormField.d.ts +2 -7
  888. package/dist/types/components/Form/FormField.d.ts.map +1 -1
  889. package/dist/types/components/Form/FormItem.d.ts +1 -3
  890. package/dist/types/components/Form/FormItem.d.ts.map +1 -1
  891. package/dist/types/components/Form/FormLabel.d.ts +0 -1
  892. package/dist/types/components/Form/FormLabel.d.ts.map +1 -1
  893. package/dist/types/components/Form/FormMessage.d.ts +0 -1
  894. package/dist/types/components/Form/FormMessage.d.ts.map +1 -1
  895. package/dist/types/components/Form/elements/AutoSizeTextAreaElement.d.ts +1 -2
  896. package/dist/types/components/Form/elements/AutoSizeTextAreaElement.d.ts.map +1 -1
  897. package/dist/types/components/Form/elements/CheckboxElement.d.ts +2 -2
  898. package/dist/types/components/Form/elements/CheckboxElement.d.ts.map +1 -1
  899. package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts +2 -4
  900. package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
  901. package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -4
  902. package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
  903. package/dist/types/components/Form/elements/FormElement.d.ts +2 -3
  904. package/dist/types/components/Form/elements/FormElement.d.ts.map +1 -1
  905. package/dist/types/components/Form/elements/FormElementWrapper.d.ts +0 -1
  906. package/dist/types/components/Form/elements/FormElementWrapper.d.ts.map +1 -1
  907. package/dist/types/components/Form/elements/InputElement.d.ts +2 -2
  908. package/dist/types/components/Form/elements/InputElement.d.ts.map +1 -1
  909. package/dist/types/components/Form/elements/InputPasswordElement.d.ts +1 -2
  910. package/dist/types/components/Form/elements/InputPasswordElement.d.ts.map +1 -1
  911. package/dist/types/components/Form/elements/MultiselectElement.d.ts +2 -13
  912. package/dist/types/components/Form/elements/MultiselectElement.d.ts.map +1 -1
  913. package/dist/types/components/Form/elements/OTPElement.d.ts +4 -16
  914. package/dist/types/components/Form/elements/OTPElement.d.ts.map +1 -1
  915. package/dist/types/components/Form/elements/SearchInputElement.d.ts +2 -2
  916. package/dist/types/components/Form/elements/SearchInputElement.d.ts.map +1 -1
  917. package/dist/types/components/Form/elements/SelectElement.d.ts +2 -13
  918. package/dist/types/components/Form/elements/SelectElement.d.ts.map +1 -1
  919. package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts +3 -13
  920. package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts.map +1 -1
  921. package/dist/types/components/Form/elements/TextAreaElement.d.ts +1 -2
  922. package/dist/types/components/Form/elements/TextAreaElement.d.ts.map +1 -1
  923. package/dist/types/components/Form/index.d.ts +3 -1
  924. package/dist/types/components/Form/layout/FormItemLayout.d.ts +0 -1
  925. package/dist/types/components/Form/layout/FormItemLayout.d.ts.map +1 -1
  926. package/dist/types/components/Form/layout/FormLabelLayout.d.ts +0 -1
  927. package/dist/types/components/Form/layout/FormLabelLayout.d.ts.map +1 -1
  928. package/dist/types/components/Form/layout/RequiredStar.d.ts +0 -1
  929. package/dist/types/components/Form/layout/RequiredStar.d.ts.map +1 -1
  930. package/dist/types/components/HTMLRender/HTMLRender.d.ts +0 -1
  931. package/dist/types/components/HTMLRender/HTMLRender.d.ts.map +1 -1
  932. package/dist/types/components/Headers/index.d.ts +0 -1
  933. package/dist/types/components/Headers/index.d.ts.map +1 -1
  934. package/dist/types/components/HeightResizer/index.d.ts +0 -1
  935. package/dist/types/components/HeightResizer/index.d.ts.map +1 -1
  936. package/dist/types/components/HideShow/index.d.ts +0 -1
  937. package/dist/types/components/HideShow/index.d.ts.map +1 -1
  938. package/dist/types/components/IDE/Code.d.ts +2 -2
  939. package/dist/types/components/IDE/Code.d.ts.map +1 -1
  940. package/dist/types/components/IDE/CodeBlockClient.d.ts +0 -1
  941. package/dist/types/components/IDE/CodeBlockClient.d.ts.map +1 -1
  942. package/dist/types/components/IDE/CodeBlockHighlight.d.ts +6 -10
  943. package/dist/types/components/IDE/CodeBlockHighlight.d.ts.map +1 -1
  944. package/dist/types/components/IDE/CodeBlockServer.d.ts +0 -1
  945. package/dist/types/components/IDE/CodeBlockServer.d.ts.map +1 -1
  946. package/dist/types/components/IDE/CodeBlockShiki.d.ts +0 -1
  947. package/dist/types/components/IDE/CodeBlockShiki.d.ts.map +1 -1
  948. package/dist/types/components/IDE/CodeConditionalRenderer.d.ts +0 -1
  949. package/dist/types/components/IDE/CodeConditionalRenderer.d.ts.map +1 -1
  950. package/dist/types/components/IDE/CodeContext.d.ts +1 -3
  951. package/dist/types/components/IDE/CodeContext.d.ts.map +1 -1
  952. package/dist/types/components/IDE/CodeFormatSelector.d.ts +2 -2
  953. package/dist/types/components/IDE/CodeFormatSelector.d.ts.map +1 -1
  954. package/dist/types/components/IDE/ContentDeclarationFormatSelector.d.ts +0 -1
  955. package/dist/types/components/IDE/ContentDeclarationFormatSelector.d.ts.map +1 -1
  956. package/dist/types/components/IDE/CopyCode.d.ts +2 -2
  957. package/dist/types/components/IDE/CopyCode.d.ts.map +1 -1
  958. package/dist/types/components/IDE/FileList.d.ts +0 -1
  959. package/dist/types/components/IDE/FileList.d.ts.map +1 -1
  960. package/dist/types/components/IDE/FileTree.d.ts +0 -1
  961. package/dist/types/components/IDE/FileTree.d.ts.map +1 -1
  962. package/dist/types/components/IDE/IDE.d.ts +0 -1
  963. package/dist/types/components/IDE/IDE.d.ts.map +1 -1
  964. package/dist/types/components/IDE/MarkDownRender.d.ts +0 -1
  965. package/dist/types/components/IDE/MarkDownRender.d.ts.map +1 -1
  966. package/dist/types/components/IDE/MonacoCode.d.ts +0 -1
  967. package/dist/types/components/IDE/MonacoCode.d.ts.map +1 -1
  968. package/dist/types/components/IDE/PackageManagerSelector.d.ts +0 -1
  969. package/dist/types/components/IDE/PackageManagerSelector.d.ts.map +1 -1
  970. package/dist/types/components/IDE/code.content.d.ts +2 -4
  971. package/dist/types/components/IDE/code.content.d.ts.map +1 -1
  972. package/dist/types/components/IDE/codeTransformer.d.ts.map +1 -1
  973. package/dist/types/components/IDE/copyCode.content.d.ts +2 -4
  974. package/dist/types/components/IDE/copyCode.content.d.ts.map +1 -1
  975. package/dist/types/components/IDE/createFileTree.d.ts.map +1 -1
  976. package/dist/types/components/IDE/index.d.ts +1 -1
  977. package/dist/types/components/IDE/selectors.content.d.ts +6 -8
  978. package/dist/types/components/IDE/selectors.content.d.ts.map +1 -1
  979. package/dist/types/components/InformationTag/index.d.ts +0 -1
  980. package/dist/types/components/InformationTag/index.d.ts.map +1 -1
  981. package/dist/types/components/Input/Checkbox.d.ts +3 -5
  982. package/dist/types/components/Input/Checkbox.d.ts.map +1 -1
  983. package/dist/types/components/Input/Input.d.ts +2 -4
  984. package/dist/types/components/Input/Input.d.ts.map +1 -1
  985. package/dist/types/components/Input/InputPassword.d.ts +0 -1
  986. package/dist/types/components/Input/InputPassword.d.ts.map +1 -1
  987. package/dist/types/components/Input/OTPInput.d.ts +7 -17
  988. package/dist/types/components/Input/OTPInput.d.ts.map +1 -1
  989. package/dist/types/components/Input/Radio.d.ts +3 -5
  990. package/dist/types/components/Input/Radio.d.ts.map +1 -1
  991. package/dist/types/components/Input/SearchInput.d.ts +1 -6
  992. package/dist/types/components/Input/SearchInput.d.ts.map +1 -1
  993. package/dist/types/components/KeyboardScreenAdapter/index.d.ts +0 -1
  994. package/dist/types/components/KeyboardScreenAdapter/index.d.ts.map +1 -1
  995. package/dist/types/components/KeyboardShortcut/KeyboardShortcut.d.ts +11 -6
  996. package/dist/types/components/KeyboardShortcut/KeyboardShortcut.d.ts.map +1 -1
  997. package/dist/types/components/Label/index.d.ts +0 -1
  998. package/dist/types/components/Label/index.d.ts.map +1 -1
  999. package/dist/types/components/LanguageBackground/LanguageBackground.d.ts +0 -1
  1000. package/dist/types/components/LanguageBackground/LanguageBackground.d.ts.map +1 -1
  1001. package/dist/types/components/LanguageBackground/LanguageSection.d.ts +0 -1
  1002. package/dist/types/components/LanguageBackground/LanguageSection.d.ts.map +1 -1
  1003. package/dist/types/components/Link/Link.d.ts +7 -12
  1004. package/dist/types/components/Link/Link.d.ts.map +1 -1
  1005. package/dist/types/components/Loader/index.content.d.ts +1 -3
  1006. package/dist/types/components/Loader/index.content.d.ts.map +1 -1
  1007. package/dist/types/components/Loader/index.d.ts +3 -2
  1008. package/dist/types/components/Loader/index.d.ts.map +1 -1
  1009. package/dist/types/components/Loader/spinner.d.ts +3 -7
  1010. package/dist/types/components/Loader/spinner.d.ts.map +1 -1
  1011. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts +0 -1
  1012. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -1
  1013. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts +0 -1
  1014. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts.map +1 -1
  1015. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +8 -10
  1016. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
  1017. package/dist/types/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts +0 -1
  1018. package/dist/types/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  1019. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -8
  1020. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
  1021. package/dist/types/components/Logo/Logo.d.ts +0 -1
  1022. package/dist/types/components/Logo/Logo.d.ts.map +1 -1
  1023. package/dist/types/components/Logo/LogoTextOnly.d.ts +0 -1
  1024. package/dist/types/components/Logo/LogoTextOnly.d.ts.map +1 -1
  1025. package/dist/types/components/Logo/LogoWithText.d.ts +0 -1
  1026. package/dist/types/components/Logo/LogoWithText.d.ts.map +1 -1
  1027. package/dist/types/components/Logo/LogoWithTextBelow.d.ts +0 -1
  1028. package/dist/types/components/Logo/LogoWithTextBelow.d.ts.map +1 -1
  1029. package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts +0 -1
  1030. package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts.map +1 -1
  1031. package/dist/types/components/MarkDownRender/MarkDownRender.d.ts +65 -116
  1032. package/dist/types/components/MarkDownRender/MarkDownRender.d.ts.map +1 -1
  1033. package/dist/types/components/MarkDownRender/index.d.ts +1 -1
  1034. package/dist/types/components/MarkdownEditor/MarkdownEditor.d.ts +11 -6
  1035. package/dist/types/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  1036. package/dist/types/components/MarkdownEditor/extensions.d.ts.map +1 -1
  1037. package/dist/types/components/MarkdownEditor/generative/AICompletionCommands.d.ts +1 -6
  1038. package/dist/types/components/MarkdownEditor/generative/AICompletionCommands.d.ts.map +1 -1
  1039. package/dist/types/components/MarkdownEditor/generative/AISelector.d.ts +7 -10
  1040. package/dist/types/components/MarkdownEditor/generative/AISelector.d.ts.map +1 -1
  1041. package/dist/types/components/MarkdownEditor/generative/AISelectorCommands.d.ts +1 -5
  1042. package/dist/types/components/MarkdownEditor/generative/AISelectorCommands.d.ts.map +1 -1
  1043. package/dist/types/components/MarkdownEditor/generative/GenerativeMenuSwitch.d.ts +7 -12
  1044. package/dist/types/components/MarkdownEditor/generative/GenerativeMenuSwitch.d.ts.map +1 -1
  1045. package/dist/types/components/MarkdownEditor/generative/useAICompletion.d.ts +2 -1
  1046. package/dist/types/components/MarkdownEditor/generative/useAICompletion.d.ts.map +1 -1
  1047. package/dist/types/components/MarkdownEditor/imageUpload.d.ts +6 -7
  1048. package/dist/types/components/MarkdownEditor/imageUpload.d.ts.map +1 -1
  1049. package/dist/types/components/MarkdownEditor/markdownEditor.content.d.ts +118 -61
  1050. package/dist/types/components/MarkdownEditor/markdownEditor.content.d.ts.map +1 -1
  1051. package/dist/types/components/MarkdownEditor/novel/components/editor-bubble-item.d.ts +0 -1
  1052. package/dist/types/components/MarkdownEditor/novel/components/editor-bubble-item.d.ts.map +1 -1
  1053. package/dist/types/components/MarkdownEditor/novel/components/editor-bubble.d.ts +0 -1
  1054. package/dist/types/components/MarkdownEditor/novel/components/editor-bubble.d.ts.map +1 -1
  1055. package/dist/types/components/MarkdownEditor/novel/components/editor-command-item.d.ts +4 -9
  1056. package/dist/types/components/MarkdownEditor/novel/components/editor-command-item.d.ts.map +1 -1
  1057. package/dist/types/components/MarkdownEditor/novel/components/editor-command.d.ts +6 -10
  1058. package/dist/types/components/MarkdownEditor/novel/components/editor-command.d.ts.map +1 -1
  1059. package/dist/types/components/MarkdownEditor/novel/components/editor.d.ts +5 -2
  1060. package/dist/types/components/MarkdownEditor/novel/components/editor.d.ts.map +1 -1
  1061. package/dist/types/components/MarkdownEditor/novel/extensions/ai-highlight.d.ts +0 -1
  1062. package/dist/types/components/MarkdownEditor/novel/extensions/ai-highlight.d.ts.map +1 -1
  1063. package/dist/types/components/MarkdownEditor/novel/extensions/custom-keymap.d.ts +0 -1
  1064. package/dist/types/components/MarkdownEditor/novel/extensions/custom-keymap.d.ts.map +1 -1
  1065. package/dist/types/components/MarkdownEditor/novel/extensions/image-resizer.d.ts +4 -1
  1066. package/dist/types/components/MarkdownEditor/novel/extensions/image-resizer.d.ts.map +1 -1
  1067. package/dist/types/components/MarkdownEditor/novel/extensions/index.d.ts +3 -8
  1068. package/dist/types/components/MarkdownEditor/novel/extensions/index.d.ts.map +1 -1
  1069. package/dist/types/components/MarkdownEditor/novel/extensions/slash-command.d.ts +4 -5
  1070. package/dist/types/components/MarkdownEditor/novel/extensions/slash-command.d.ts.map +1 -1
  1071. package/dist/types/components/MarkdownEditor/novel/extensions/updated-image.d.ts +1 -4
  1072. package/dist/types/components/MarkdownEditor/novel/extensions/updated-image.d.ts.map +1 -1
  1073. package/dist/types/components/MarkdownEditor/novel/index.d.ts +1 -0
  1074. package/dist/types/components/MarkdownEditor/novel/plugins/upload-images.d.ts +2 -8
  1075. package/dist/types/components/MarkdownEditor/novel/plugins/upload-images.d.ts.map +1 -1
  1076. package/dist/types/components/MarkdownEditor/novel/utils/atoms.d.ts +0 -1
  1077. package/dist/types/components/MarkdownEditor/novel/utils/atoms.d.ts.map +1 -1
  1078. package/dist/types/components/MarkdownEditor/novel/utils/index.d.ts +0 -1
  1079. package/dist/types/components/MarkdownEditor/novel/utils/index.d.ts.map +1 -1
  1080. package/dist/types/components/MarkdownEditor/selectors/ColorSelector.d.ts +0 -1
  1081. package/dist/types/components/MarkdownEditor/selectors/ColorSelector.d.ts.map +1 -1
  1082. package/dist/types/components/MarkdownEditor/selectors/LinkSelector.d.ts +0 -1
  1083. package/dist/types/components/MarkdownEditor/selectors/LinkSelector.d.ts.map +1 -1
  1084. package/dist/types/components/MarkdownEditor/selectors/NodeSelector.d.ts +1 -1
  1085. package/dist/types/components/MarkdownEditor/selectors/NodeSelector.d.ts.map +1 -1
  1086. package/dist/types/components/MarkdownEditor/selectors/TextButtons.d.ts +1 -3
  1087. package/dist/types/components/MarkdownEditor/selectors/TextButtons.d.ts.map +1 -1
  1088. package/dist/types/components/MarkdownEditor/slashCommand.d.ts +3 -5
  1089. package/dist/types/components/MarkdownEditor/slashCommand.d.ts.map +1 -1
  1090. package/dist/types/components/MaxHeightSmoother/index.d.ts +0 -1
  1091. package/dist/types/components/MaxHeightSmoother/index.d.ts.map +1 -1
  1092. package/dist/types/components/MaxWidthSmoother/index.d.ts +1 -11
  1093. package/dist/types/components/MaxWidthSmoother/index.d.ts.map +1 -1
  1094. package/dist/types/components/Modal/Modal.d.ts +0 -1
  1095. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  1096. package/dist/types/components/Navbar/Burger.d.ts +1 -7
  1097. package/dist/types/components/Navbar/Burger.d.ts.map +1 -1
  1098. package/dist/types/components/Navbar/DesktopNavbar.d.ts +9 -11
  1099. package/dist/types/components/Navbar/DesktopNavbar.d.ts.map +1 -1
  1100. package/dist/types/components/Navbar/MobileNavbar.d.ts +15 -17
  1101. package/dist/types/components/Navbar/MobileNavbar.d.ts.map +1 -1
  1102. package/dist/types/components/Navbar/index.d.ts +21 -79
  1103. package/dist/types/components/Navbar/index.d.ts.map +1 -1
  1104. package/dist/types/components/Navbar/useNavigation.d.ts +5 -2
  1105. package/dist/types/components/Navbar/useNavigation.d.ts.map +1 -1
  1106. package/dist/types/components/Pagination/NumberItemsSelector.d.ts +0 -1
  1107. package/dist/types/components/Pagination/NumberItemsSelector.d.ts.map +1 -1
  1108. package/dist/types/components/Pagination/Pagination.d.ts +4 -6
  1109. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  1110. package/dist/types/components/Pagination/ShowingResultsNumberItems.d.ts +0 -1
  1111. package/dist/types/components/Pagination/ShowingResultsNumberItems.d.ts.map +1 -1
  1112. package/dist/types/components/Pagination/pagination.content.d.ts +5 -7
  1113. package/dist/types/components/Pagination/pagination.content.d.ts.map +1 -1
  1114. package/dist/types/components/Pattern/DotPattern.d.ts +13 -7
  1115. package/dist/types/components/Pattern/DotPattern.d.ts.map +1 -1
  1116. package/dist/types/components/Pattern/GridDistortionPattern.d.ts +0 -1
  1117. package/dist/types/components/Pattern/GridDistortionPattern.d.ts.map +1 -1
  1118. package/dist/types/components/Pattern/GridPattern.d.ts +11 -6
  1119. package/dist/types/components/Pattern/GridPattern.d.ts.map +1 -1
  1120. package/dist/types/components/Pattern/SpotLight.d.ts +11 -6
  1121. package/dist/types/components/Pattern/SpotLight.d.ts.map +1 -1
  1122. package/dist/types/components/Popover/dynamic.d.ts +0 -1
  1123. package/dist/types/components/Popover/dynamic.d.ts.map +1 -1
  1124. package/dist/types/components/Popover/static.d.ts +15 -8
  1125. package/dist/types/components/Popover/static.d.ts.map +1 -1
  1126. package/dist/types/components/PressableSpan/PressableSpan.d.ts +0 -1
  1127. package/dist/types/components/PressableSpan/PressableSpan.d.ts.map +1 -1
  1128. package/dist/types/components/RightDrawer/RightDrawer.d.ts +5 -3
  1129. package/dist/types/components/RightDrawer/RightDrawer.d.ts.map +1 -1
  1130. package/dist/types/components/RightDrawer/isElementAtTopAndNotCovered.d.ts.map +1 -1
  1131. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +2 -4
  1132. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts.map +1 -1
  1133. package/dist/types/components/RightDrawer/useRightDrawer.d.ts.map +1 -1
  1134. package/dist/types/components/Select/Multiselect.d.ts +0 -1
  1135. package/dist/types/components/Select/Multiselect.d.ts.map +1 -1
  1136. package/dist/types/components/Select/Select.d.ts +19 -12
  1137. package/dist/types/components/Select/Select.d.ts.map +1 -1
  1138. package/dist/types/components/SocialNetworks/DiscordLogo.d.ts +0 -1
  1139. package/dist/types/components/SocialNetworks/DiscordLogo.d.ts.map +1 -1
  1140. package/dist/types/components/SocialNetworks/FacebookLogo.d.ts +0 -1
  1141. package/dist/types/components/SocialNetworks/FacebookLogo.d.ts.map +1 -1
  1142. package/dist/types/components/SocialNetworks/InstagramLogo.d.ts +0 -1
  1143. package/dist/types/components/SocialNetworks/InstagramLogo.d.ts.map +1 -1
  1144. package/dist/types/components/SocialNetworks/ProductHuntLogo.d.ts +0 -1
  1145. package/dist/types/components/SocialNetworks/ProductHuntLogo.d.ts.map +1 -1
  1146. package/dist/types/components/SocialNetworks/TiktokLogo.d.ts +0 -1
  1147. package/dist/types/components/SocialNetworks/TiktokLogo.d.ts.map +1 -1
  1148. package/dist/types/components/SocialNetworks/XLogo.d.ts +0 -1
  1149. package/dist/types/components/SocialNetworks/XLogo.d.ts.map +1 -1
  1150. package/dist/types/components/SocialNetworks/YoutubeLogo.d.ts +0 -1
  1151. package/dist/types/components/SocialNetworks/YoutubeLogo.d.ts.map +1 -1
  1152. package/dist/types/components/SocialNetworks/index.d.ts +7 -7
  1153. package/dist/types/components/SocialNetworks/index.d.ts.map +1 -1
  1154. package/dist/types/components/Steps/index.d.ts +0 -1
  1155. package/dist/types/components/Steps/index.d.ts.map +1 -1
  1156. package/dist/types/components/Steps/steps.content.d.ts +2 -4
  1157. package/dist/types/components/Steps/steps.content.d.ts.map +1 -1
  1158. package/dist/types/components/SwitchSelector/SwitchSelector.d.ts +7 -10
  1159. package/dist/types/components/SwitchSelector/SwitchSelector.d.ts.map +1 -1
  1160. package/dist/types/components/SwitchSelector/VerticalSwitchSelector.d.ts +5 -8
  1161. package/dist/types/components/SwitchSelector/VerticalSwitchSelector.d.ts.map +1 -1
  1162. package/dist/types/components/SwitchSelector/useSwitchSelector.d.ts +14 -15
  1163. package/dist/types/components/SwitchSelector/useSwitchSelector.d.ts.map +1 -1
  1164. package/dist/types/components/Tab/Tab.d.ts +28 -22
  1165. package/dist/types/components/Tab/Tab.d.ts.map +1 -1
  1166. package/dist/types/components/Tab/TabContext.d.ts +1 -3
  1167. package/dist/types/components/Tab/TabContext.d.ts.map +1 -1
  1168. package/dist/types/components/TabSelector/TabSelector.d.ts +4 -15
  1169. package/dist/types/components/TabSelector/TabSelector.d.ts.map +1 -1
  1170. package/dist/types/components/Table/ExpandButton.d.ts +0 -1
  1171. package/dist/types/components/Table/ExpandButton.d.ts.map +1 -1
  1172. package/dist/types/components/Table/SmartTable.d.ts +0 -1
  1173. package/dist/types/components/Table/SmartTable.d.ts.map +1 -1
  1174. package/dist/types/components/Table/Table.d.ts +1 -3
  1175. package/dist/types/components/Table/Table.d.ts.map +1 -1
  1176. package/dist/types/components/Table/TableElements.d.ts +4 -18
  1177. package/dist/types/components/Table/TableElements.d.ts.map +1 -1
  1178. package/dist/types/components/Table/table.content.d.ts +2 -4
  1179. package/dist/types/components/Table/table.content.d.ts.map +1 -1
  1180. package/dist/types/components/Table/useTableWidths.d.ts +0 -1
  1181. package/dist/types/components/Table/useTableWidths.d.ts.map +1 -1
  1182. package/dist/types/components/Tag/index.d.ts +6 -8
  1183. package/dist/types/components/Tag/index.d.ts.map +1 -1
  1184. package/dist/types/components/TechLogo/TechLogo.d.ts +0 -1
  1185. package/dist/types/components/TechLogo/TechLogo.d.ts.map +1 -1
  1186. package/dist/types/components/TechLogo/logos/Adonis.d.ts +0 -1
  1187. package/dist/types/components/TechLogo/logos/Adonis.d.ts.map +1 -1
  1188. package/dist/types/components/TechLogo/logos/Angular.d.ts +0 -1
  1189. package/dist/types/components/TechLogo/logos/Angular.d.ts.map +1 -1
  1190. package/dist/types/components/TechLogo/logos/Anthropic.d.ts +0 -1
  1191. package/dist/types/components/TechLogo/logos/Anthropic.d.ts.map +1 -1
  1192. package/dist/types/components/TechLogo/logos/Astro.d.ts +0 -1
  1193. package/dist/types/components/TechLogo/logos/Astro.d.ts.map +1 -1
  1194. package/dist/types/components/TechLogo/logos/Atlassian.d.ts +0 -1
  1195. package/dist/types/components/TechLogo/logos/Atlassian.d.ts.map +1 -1
  1196. package/dist/types/components/TechLogo/logos/Bitbucket.d.ts +0 -1
  1197. package/dist/types/components/TechLogo/logos/Bitbucket.d.ts.map +1 -1
  1198. package/dist/types/components/TechLogo/logos/ChatGPT.d.ts +0 -1
  1199. package/dist/types/components/TechLogo/logos/ChatGPT.d.ts.map +1 -1
  1200. package/dist/types/components/TechLogo/logos/Claude.d.ts +0 -1
  1201. package/dist/types/components/TechLogo/logos/Claude.d.ts.map +1 -1
  1202. package/dist/types/components/TechLogo/logos/DeepSeek.d.ts +0 -1
  1203. package/dist/types/components/TechLogo/logos/DeepSeek.d.ts.map +1 -1
  1204. package/dist/types/components/TechLogo/logos/Express.d.ts +0 -1
  1205. package/dist/types/components/TechLogo/logos/Express.d.ts.map +1 -1
  1206. package/dist/types/components/TechLogo/logos/Fastify.d.ts +0 -1
  1207. package/dist/types/components/TechLogo/logos/Fastify.d.ts.map +1 -1
  1208. package/dist/types/components/TechLogo/logos/Gemini.d.ts +0 -1
  1209. package/dist/types/components/TechLogo/logos/Gemini.d.ts.map +1 -1
  1210. package/dist/types/components/TechLogo/logos/GitHub.d.ts +0 -1
  1211. package/dist/types/components/TechLogo/logos/GitHub.d.ts.map +1 -1
  1212. package/dist/types/components/TechLogo/logos/GitLab.d.ts +0 -1
  1213. package/dist/types/components/TechLogo/logos/GitLab.d.ts.map +1 -1
  1214. package/dist/types/components/TechLogo/logos/Google.d.ts +0 -1
  1215. package/dist/types/components/TechLogo/logos/Google.d.ts.map +1 -1
  1216. package/dist/types/components/TechLogo/logos/GoogleAI.d.ts +0 -1
  1217. package/dist/types/components/TechLogo/logos/GoogleAI.d.ts.map +1 -1
  1218. package/dist/types/components/TechLogo/logos/Grok.d.ts +0 -1
  1219. package/dist/types/components/TechLogo/logos/Grok.d.ts.map +1 -1
  1220. package/dist/types/components/TechLogo/logos/Hono.d.ts +0 -1
  1221. package/dist/types/components/TechLogo/logos/Hono.d.ts.map +1 -1
  1222. package/dist/types/components/TechLogo/logos/LinkedIn.d.ts +0 -1
  1223. package/dist/types/components/TechLogo/logos/LinkedIn.d.ts.map +1 -1
  1224. package/dist/types/components/TechLogo/logos/Lit.d.ts +1 -3
  1225. package/dist/types/components/TechLogo/logos/Lit.d.ts.map +1 -1
  1226. package/dist/types/components/TechLogo/logos/Lynx.d.ts +0 -1
  1227. package/dist/types/components/TechLogo/logos/Lynx.d.ts.map +1 -1
  1228. package/dist/types/components/TechLogo/logos/Microsoft.d.ts +0 -1
  1229. package/dist/types/components/TechLogo/logos/Microsoft.d.ts.map +1 -1
  1230. package/dist/types/components/TechLogo/logos/Mistral.d.ts +0 -1
  1231. package/dist/types/components/TechLogo/logos/Mistral.d.ts.map +1 -1
  1232. package/dist/types/components/TechLogo/logos/NestJS.d.ts +0 -1
  1233. package/dist/types/components/TechLogo/logos/NestJS.d.ts.map +1 -1
  1234. package/dist/types/components/TechLogo/logos/Nextjs.d.ts +0 -1
  1235. package/dist/types/components/TechLogo/logos/Nextjs.d.ts.map +1 -1
  1236. package/dist/types/components/TechLogo/logos/Node.d.ts +0 -1
  1237. package/dist/types/components/TechLogo/logos/Node.d.ts.map +1 -1
  1238. package/dist/types/components/TechLogo/logos/Nuxt.d.ts +0 -1
  1239. package/dist/types/components/TechLogo/logos/Nuxt.d.ts.map +1 -1
  1240. package/dist/types/components/TechLogo/logos/Ollama.d.ts +0 -1
  1241. package/dist/types/components/TechLogo/logos/Ollama.d.ts.map +1 -1
  1242. package/dist/types/components/TechLogo/logos/OpenAI.d.ts +0 -1
  1243. package/dist/types/components/TechLogo/logos/OpenAI.d.ts.map +1 -1
  1244. package/dist/types/components/TechLogo/logos/Perplexity.d.ts +0 -1
  1245. package/dist/types/components/TechLogo/logos/Perplexity.d.ts.map +1 -1
  1246. package/dist/types/components/TechLogo/logos/Preact.d.ts +0 -1
  1247. package/dist/types/components/TechLogo/logos/Preact.d.ts.map +1 -1
  1248. package/dist/types/components/TechLogo/logos/Reactjs.d.ts +0 -1
  1249. package/dist/types/components/TechLogo/logos/Reactjs.d.ts.map +1 -1
  1250. package/dist/types/components/TechLogo/logos/Solid.d.ts +0 -1
  1251. package/dist/types/components/TechLogo/logos/Solid.d.ts.map +1 -1
  1252. package/dist/types/components/TechLogo/logos/Svelte.d.ts +0 -1
  1253. package/dist/types/components/TechLogo/logos/Svelte.d.ts.map +1 -1
  1254. package/dist/types/components/TechLogo/logos/Tanstack.d.ts +0 -1
  1255. package/dist/types/components/TechLogo/logos/Tanstack.d.ts.map +1 -1
  1256. package/dist/types/components/TechLogo/logos/Vanilla.d.ts +1 -3
  1257. package/dist/types/components/TechLogo/logos/Vanilla.d.ts.map +1 -1
  1258. package/dist/types/components/TechLogo/logos/Vitejs.d.ts +0 -1
  1259. package/dist/types/components/TechLogo/logos/Vitejs.d.ts.map +1 -1
  1260. package/dist/types/components/TechLogo/logos/Vuejs.d.ts +0 -1
  1261. package/dist/types/components/TechLogo/logos/Vuejs.d.ts.map +1 -1
  1262. package/dist/types/components/TechLogo/techLogos.d.ts +0 -2
  1263. package/dist/types/components/TechLogo/types.d.ts.map +1 -1
  1264. package/dist/types/components/Terminal/Terminal.d.ts +0 -1
  1265. package/dist/types/components/Terminal/Terminal.d.ts.map +1 -1
  1266. package/dist/types/components/Terminal/terminal.content.d.ts +2 -4
  1267. package/dist/types/components/Terminal/terminal.content.d.ts.map +1 -1
  1268. package/dist/types/components/TextArea/AutoSizeTextArea.d.ts +3 -2
  1269. package/dist/types/components/TextArea/AutoSizeTextArea.d.ts.map +1 -1
  1270. package/dist/types/components/TextArea/AutocompleteTextArea.d.ts +3 -2
  1271. package/dist/types/components/TextArea/AutocompleteTextArea.d.ts.map +1 -1
  1272. package/dist/types/components/TextArea/ContentEditableTextArea.d.ts +2 -7
  1273. package/dist/types/components/TextArea/ContentEditableTextArea.d.ts.map +1 -1
  1274. package/dist/types/components/TextArea/TextArea.d.ts +5 -3
  1275. package/dist/types/components/TextArea/TextArea.d.ts.map +1 -1
  1276. package/dist/types/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.d.ts +0 -1
  1277. package/dist/types/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.d.ts.map +1 -1
  1278. package/dist/types/components/ThemeSwitcherDropDown/MobileThemeSwitcher.d.ts +0 -1
  1279. package/dist/types/components/ThemeSwitcherDropDown/MobileThemeSwitcher.d.ts.map +1 -1
  1280. package/dist/types/components/ThemeSwitcherDropDown/types.d.ts.map +1 -1
  1281. package/dist/types/components/Toaster/Toast.d.ts +2 -4
  1282. package/dist/types/components/Toaster/Toast.d.ts.map +1 -1
  1283. package/dist/types/components/Toaster/Toaster.d.ts +1 -3
  1284. package/dist/types/components/Toaster/Toaster.d.ts.map +1 -1
  1285. package/dist/types/components/Toaster/useToast.d.ts +10 -15
  1286. package/dist/types/components/Toaster/useToast.d.ts.map +1 -1
  1287. package/dist/types/components/WithResizer/index.d.ts +15 -8
  1288. package/dist/types/components/WithResizer/index.d.ts.map +1 -1
  1289. package/dist/types/components/index.d.ts +46 -7
  1290. package/dist/types/hooks/index.d.ts +1 -1
  1291. package/dist/types/hooks/useDevice.d.ts.map +1 -1
  1292. package/dist/types/hooks/useGetElementById.d.ts.map +1 -1
  1293. package/dist/types/hooks/useGetElementOrWindow.d.ts.map +1 -1
  1294. package/dist/types/hooks/useHorizontalSwipe.d.ts +0 -1
  1295. package/dist/types/hooks/useHorizontalSwipe.d.ts.map +1 -1
  1296. package/dist/types/hooks/useIsDarkMode.d.ts.map +1 -1
  1297. package/dist/types/hooks/useIsMounted.d.ts.map +1 -1
  1298. package/dist/types/hooks/useItemSelector.d.ts +1 -6
  1299. package/dist/types/hooks/useItemSelector.d.ts.map +1 -1
  1300. package/dist/types/hooks/useKeyboardDetector.d.ts.map +1 -1
  1301. package/dist/types/hooks/usePersistedStore.d.ts +0 -1
  1302. package/dist/types/hooks/usePersistedStore.d.ts.map +1 -1
  1303. package/dist/types/hooks/useScreenWidth.d.ts.map +1 -1
  1304. package/dist/types/hooks/useScrollBlockage/index.d.ts.map +1 -1
  1305. package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts.map +1 -1
  1306. package/dist/types/hooks/useScrollDetection.d.ts.map +1 -1
  1307. package/dist/types/hooks/useScrollY.d.ts.map +1 -1
  1308. package/dist/types/hooks/useSearch.d.ts.map +1 -1
  1309. package/dist/types/libs/auth.d.ts +1 -2
  1310. package/dist/types/libs/auth.d.ts.map +1 -1
  1311. package/dist/types/providers/ReactQueryProvider.d.ts +0 -1
  1312. package/dist/types/providers/ReactQueryProvider.d.ts.map +1 -1
  1313. package/dist/types/routes.d.ts +175 -169
  1314. package/dist/types/routes.d.ts.map +1 -1
  1315. package/dist/types/structured-data/buildAuthorJsonLd.d.ts +1 -1
  1316. package/dist/types/structured-data/buildAuthorJsonLd.d.ts.map +1 -1
  1317. package/dist/types/structured-data/buildBreadcrumbsJsonLd.d.ts +4 -7
  1318. package/dist/types/structured-data/buildBreadcrumbsJsonLd.d.ts.map +1 -1
  1319. package/dist/types/structured-data/buildCreativeWorkJsonLd.d.ts +31 -39
  1320. package/dist/types/structured-data/buildCreativeWorkJsonLd.d.ts.map +1 -1
  1321. package/dist/types/structured-data/buildFAQPageJsonLd.d.ts +5 -7
  1322. package/dist/types/structured-data/buildFAQPageJsonLd.d.ts.map +1 -1
  1323. package/dist/types/structured-data/buildOrganizationJsonLd.d.ts +16 -17
  1324. package/dist/types/structured-data/buildOrganizationJsonLd.d.ts.map +1 -1
  1325. package/dist/types/structured-data/buildProductJsonLd.d.ts +13 -15
  1326. package/dist/types/structured-data/buildProductJsonLd.d.ts.map +1 -1
  1327. package/dist/types/structured-data/buildSoftwareApplicationJsonLd.d.ts +47 -35
  1328. package/dist/types/structured-data/buildSoftwareApplicationJsonLd.d.ts.map +1 -1
  1329. package/dist/types/structured-data/buildWebsiteJsonLd.d.ts +19 -20
  1330. package/dist/types/structured-data/buildWebsiteJsonLd.d.ts.map +1 -1
  1331. package/dist/types/tailwind.config.d.ts.map +1 -1
  1332. package/dist/types/utils/cn.d.ts +2 -7
  1333. package/package.json +65 -68
  1334. package/src/components/MarkdownEditor/markdown-editor.css +2 -8
  1335. package/dist/esm/utils/cn.mjs.map +0 -1
  1336. package/dist/types/utils/cn.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tanstack.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Tanstack.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const TanstackLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n height=\"660\"\n viewBox=\"0 0 663 660\"\n width=\"663\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n role=\"img\"\n aria-label=\"Tanstack logo\"\n {...props}\n >\n <path\n d=\"m305.114318.62443771c8.717817-1.14462121 17.926803-.36545135 26.712694-.36545135 32.548987 0 64.505987 5.05339923 95.64868 14.63098274 39.74418 12.2236582 76.762804 31.7666864 109.435876 57.477568 40.046637 31.5132839 73.228974 72.8472109 94.520714 119.2362609 39.836383 86.790386 39.544267 191.973146-1.268422 278.398081-26.388695 55.880442-68.724007 102.650458-119.964986 136.75724-41.808813 27.828603-90.706831 44.862601-140.45707 50.89341-63.325458 7.677926-131.784923-3.541603-188.712259-32.729444-106.868873-54.795293-179.52309291-165.076271-180.9604082-285.932068-.27660564-23.300971.08616998-46.74071 4.69884909-69.814998 7.51316071-37.57857 20.61272131-73.903917 40.28618971-106.877282 21.2814003-35.670293 48.7704861-67.1473767 81.6882804-92.5255597 38.602429-29.7610135 83.467691-51.1674988 130.978372-62.05777669 11.473831-2.62966514 22.9946-4.0869914 34.57273-5.4964306l3.658171-.44480576c3.050084-.37153079 6.104217-.74794222 9.162589-1.14972654zm-110.555861 549.44131429c-14.716752 1.577863-30.238964 4.25635-42.869928 12.522173 2.84343.683658 6.102369.004954 9.068638 0 7.124652-.011559 14.317732-.279903 21.434964.032202 17.817402.781913 36.381729 3.63214 53.58741 8.350042 22.029372 6.040631 41.432961 17.928687 62.656049 25.945156 22.389644 8.456554 44.67706 11.084675 68.427 11.084675 11.96813 0 23.845573-.035504 35.450133-3.302696-6.056202-3.225083-14.72582-2.619864-21.434964-3.963236-14.556814-2.915455-28.868774-6.474936-42.869928-11.470264-10.304996-3.676672-20.230803-8.214291-30.11097-12.848661l-6.348531-2.985046c-9.1705-4.309263-18.363277-8.560752-27.845391-12.142608-24.932161-9.418465-52.560181-14.071964-79.144482-11.221737zm22.259385-62.614168c-29.163917 0-58.660076 5.137344-84.915434 18.369597-6.361238 3.206092-12.407546 7.02566-18.137277 11.258891-1.746125 1.290529-4.841829 2.948483-5.487351 5.191839-.654591 2.275558 1.685942 4.182039 3.014086 5.637703 6.562396-3.497556 12.797498-7.199878 19.78612-9.855246 45.19892-17.169893 99.992458-13.570779 145.098218 2.172348 22.494346 7.851335 43.219483 19.592421 65.129314 28.800338 24.503461 10.297807 49.53043 16.975034 75.846795 20.399104 31.04195 4.037546 66.433549.7654 94.808495-13.242161 9.970556-4.921843 23.814245-12.422267 28.030337-23.320339-5.207047.454947-9.892236 2.685918-14.83959 4.224149-7.866632 2.445646-15.827248 4.51974-23.908229 6.138887-27.388113 5.486604-56.512458 6.619429-84.091013 1.639788-25.991939-4.693152-50.142596-14.119246-74.179513-24.03502l-3.068058-1.268177c-2.045137-.846788-4.089983-1.695816-6.135603-2.544467l-3.069142-1.272366c-12.279956-5.085721-24.606928-10.110797-37.210937-14.51024-24.485325-8.546552-50.726667-13.784628-76.671218-13.784628zm51.114145-447.9909432c-34.959602 7.7225298-66.276908 22.7605319-96.457338 41.7180089-17.521434 11.0054099-34.281927 22.2799893-49.465301 36.4444283-22.5792616 21.065423-39.8360564 46.668751-54.8866988 73.411509-15.507372 27.55357-25.4498976 59.665686-30.2554517 90.824149-4.7140432 30.568106-5.4906485 62.70747-.0906864 93.301172 6.7503648 38.248526 19.5989769 74.140579 39.8896436 107.337631 6.8187918-3.184625 11.659796-10.445603 17.3128555-15.336896 11.4149428-9.875888 23.3995608-19.029311 36.2745548-26.928535 4.765981-2.923712 9.662222-5.194315 14.83959-7.275014 1.953055-.785216 5.14604-1.502727 6.06527-3.647828 1.460876-3.406732-1.240754-9.335897-1.704904-12.865654-1.324845-10.095517-2.124534-20.362774-1.874735-30.549941.725492-29.668947 6.269727-59.751557 16.825623-87.521453 7.954845-20.924233 20.10682-39.922168 34.502872-56.971512 4.884699-5.785498 10.077731-11.170545 15.437296-16.512656 3.167428-3.157378 7.098271-5.858983 9.068639-9.908915-10.336599.006606-20.674847 2.987289-30.503603 6.013385-21.174447 6.519522-41.801477 16.19312-59.358362 29.841512-8.008432 6.226409-13.873368 14.387371-21.44733 20.939921-2.32322 2.010516-6.484901 4.704691-9.695199 3.187928-4.8500728-2.29042-4.1014979-11.835213-4.6571581-16.222019-2.1369011-16.873476 4.2548401-38.216325 12.3778671-52.843142 13.039878-23.479694 37.150915-43.528712 65.467327-42.82854 12.228647.302197 22.934587 4.551115 34.625711 7.324555-2.964621-4.211764-6.939158-7.28162-10.717482-10.733763-9.257431-8.459031-19.382979-16.184864-30.503603-22.028985-4.474136-2.350694-9.291232-3.77911-14.015169-5.506421-2.375159-.867783-5.36616-2.062533-6.259834-4.702213-1.654614-4.888817 7.148561-9.416813 10.381943-11.478522 12.499882-7.969406 27.826705-14.525258 42.869928-14.894334 23.509209-.577147 46.479246 12.467678 56.162903 34.665926 3.404469 7.803171 4.411273 16.054969 5.079109 24.382907l.121749 1.56229.174325 2.345587c.01913.260708.038244.521433.057403.782164l.11601 1.56437.120128 1.563971c7.38352-6.019164 12.576553-14.876995 19.78612-21.323859 16.861073-15.07846 39.936636-21.7722 61.831627-14.984333 19.786945 6.133107 36.984382 19.788105 47.105807 37.959541 2.648042 4.754231 10.035685 16.373942 4.698379 21.109183-4.177345 3.707277-9.475079.818243-13.880788-.719162-3.33605-1.16376-6.782939-1.90214-10.241828-2.585698l-1.887262-.369639c-.629089-.122886-1.257979-.246187-1.886079-.372129-11.980496-2.401886-25.91652-2.152533-37.923398-.041284-7.762754 1.364839-15.349083 4.127545-23.083807 5.271929v1.651348c21.149714.175043 41.608563 12.240618 52.043268 30.549941 4.323267 7.585468 6.482428 16.267431 8.138691 24.770223 2.047864 10.50918.608423 21.958802-2.263037 32.201289-.962925 3.433979-2.710699 9.255807-6.817143 10.046802-2.902789.558982-5.36781-2.330878-7.024898-4.279468-4.343878-5.10762-8.475879-9.96341-13.573278-14.374161-12.895604-11.157333-26.530715-21.449361-40.396663-31.373138-7.362086-5.269452-15.425755-12.12007-23.908229-15.340199 2.385052 5.745041 4.721463 11.086326 5.532694 17.339156 2.385876 18.392716-5.314223 35.704625-16.87179 49.540445-3.526876 4.222498-7.29943 8.475545-11.744712 11.755948-1.843407 1.360711-4.156734 3.137561-6.595373 2.752797-7.645687-1.207961-8.555849-12.73272-9.728176-18.637115-3.970415-19.998652-2.375984-39.861068 3.132802-59.448534-4.901187 2.485279-8.443727 7.923994-11.521293 12.385111-6.770975 9.816439-12.645804 20.199291-16.858599 31.375615-16.777806 44.519521-16.616219 96.664142 5.118834 139.523233 2.427098 4.786433 6.110614 4.144058 10.894733 4.144058.720854 0 1.44257-.004515 2.164851-.010924l2.168232-.022283c4.338648-.045438 8.686803-.064635 12.979772.508795 2.227588.297243 5.320818.032202 7.084256 1.673642 2.111344 1.966755.986008 5.338808.4996 7.758859-1.358647 6.765574-1.812904 12.914369-1.812904 19.816178 9.02412-1.398692 11.525415-15.866153 14.724172-23.118874 3.624982-8.216283 7.313444-16.440823 10.667192-24.770223 1.648843-4.093692 3.854171-8.671229 3.275427-13.210785-.649644-5.10184-4.335633-10.510831-6.904531-14.862134-4.86244-8.234447-10.389363-16.70834-13.969002-25.595896-2.861567-7.104926-.197036-15.983399 7.871579-18.521521 4.450228-1.400344 9.198073 1.345848 12.094266 4.562675 6.07269 6.74328 9.992815 16.777697 14.401823 24.692609l34.394873 61.925556c2.920926 5.243856 5.848447 10.481933 8.836976 15.687808 1.165732 2.031158 2.352075 5.167068 4.740424 6.0332 2.127008.77118 5.033095-.325315 7.148561-.748886 5.492297-1.099798 10.97635-2.287117 16.488434-3.28288 6.605266-1.193099 16.673928-.969342 21.434964-6.129805-6.963066-2.205375-15.011895-2.074919-22.259386-1.577863-4.352947.298894-9.178287 1.856116-13.178381-.686135-5.953149-3.783239-9.910373-12.522173-13.552668-18.377854-8.980425-14.439388-17.441465-29.095929-26.041008-43.760726l-1.376261-2.335014-2.765943-4.665258c-1.380597-2.334387-2.750786-4.67476-4.079753-7.036188-1.02723-1.826391-2.549937-4.233231-1.078344-6.24705 1.545791-2.114476 4.91472-2.239146 7.956473-2.243117l.603351.000261c1.195428.001526 2.315572.002427 3.222811-.11692 12.27399-1.615019 24.718635-2.952611 37.098976-2.952611-.963749-3.352237-3.719791-7.141255-2.838484-10.73046 1.972017-8.030506 13.526287-10.543033 18.899867-4.780653 3.60767 3.868283 5.704174 9.192229 8.051303 13.859765 3.097352 6.162006 6.624228 12.118418 9.940876 18.16483 5.805578 10.585967 12.146205 20.881297 18.116667 31.375615.49237.865561.999687 1.726685 1.512269 2.587098l.771613 1.290552c2.577138 4.303168 5.164895 8.635123 6.553094 13.461506-20.735854-.9487-36.30176-25.018751-45.343193-41.283704-.721369 2.604176.450959 4.928448 1.388326 7.431066 1.948109 5.197619 4.276275 10.147535 7.20627 14.862134 4.184765 6.732546 8.982075 13.665732 15.313633 18.553722 11.236043 8.673707 26.05255 8.721596 39.572241 7.794364 8.669619-.595311 19.50252-4.542034 28.030338-1.864372 8.513803 2.673532 11.940924 12.063098 6.884745 19.276187-3.787393 5.403211-8.842747 7.443452-15.128962 8.257566 4.445282 9.53571 10.268996 18.385285 14.490036 28.072919 1.758491 4.035895 3.59118 10.22102 7.8048 12.350433 2.805507 1.416857 6.824562.09743 9.85761.034678-3.043765-8.053625-8.742992-14.887729-11.541904-23.118874 8.533589.390544 16.786875 4.843404 24.732651 7.685374 15.630376 5.590144 31.063836 11.701854 46.475333 17.86913l7.112077 2.848685c6.338978 2.538947 12.71588 5.052299 18.961699 7.812528 2.285297 1.009799 5.449427 3.370401 7.975455 1.917215 2.061054-1.186494 3.394144-4.015253 4.665403-5.931643 3.55573-5.361927 6.775921-10.928622 9.965609-16.513481 12.774414-22.36586 22.143967-46.872692 28.402976-71.833646 20.645168-82.323009 2.934117-173.156241-46.677107-241.922507-19.061454-26.420745-43.033164-49.262193-69.46165-68.1783861-66.13923-47.336721-152.911262-66.294198-232.486917-48.7172481zm135.205158 410.5292842c-17.532977 4.570931-35.601827 8.714164-53.58741 11.040088 2.365265 8.052799 8.145286 15.885969 12.376218 23.118874 1.635653 2.796558 3.3859 6.541816 6.618457 7.755557 3.651364 1.370619 8.063669-.853747 11.508927-1.975838-1.595256-4.364513-4.279573-8.292245-6.476657-12.385112-.905215-1.687677-2.305907-3.685809-1.559805-5.68972 1.410585-3.786541 7.266452-3.563609 10.509727-4.221671 8.54678-1.733916 17.004522-3.898008 25.557073-5.611281 3.150939-.631641 7.538512-2.342438 10.705115-1.285575 2.371037.791232 3.800147 2.744743 5.152304 4.781948l.606196.918752c.80912 1.222827 1.637246 2.41754 2.671212 3.351165 3.457625 3.121874 8.628398 3.60159 13.017619 4.453686-2.678546-6.027421-7.130424-11.301001-9.984571-17.339156-1.659561-3.511592-3.023155-8.677834-6.656381-10.707341-5.005064-2.795733-15.341663 2.461334-20.458024 3.795624zm-110.472507-40.151706c-.825246 10.467897-4.036369 18.984725-9.068639 28.072919 5.76683.729896 11.649079.989984 17.312856 2.39363 4.244947 1.051908 8.156828 3.058296 12.366325 4.211763-2.250671-6.157877-6.426367-11.651913-9.661398-17.339156-3.266358-5.740912-6.189758-12.717032-10.949144-17.339156z\"\n transform=\"translate(.9778)\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,QAAO;CACP,SAAQ;CACR,OAAM;CACN,OAAM;CACN,MAAK;CACL,MAAK;CACL,cAAW;CACX,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,WAAU;EACV;CACE"}
1
+ {"version":3,"file":"Tanstack.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Tanstack.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const TanstackLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n height=\"660\"\n viewBox=\"0 0 663 660\"\n width=\"663\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n role=\"img\"\n aria-label=\"Tanstack logo\"\n {...props}\n >\n <path\n d=\"m305.114318.62443771c8.717817-1.14462121 17.926803-.36545135 26.712694-.36545135 32.548987 0 64.505987 5.05339923 95.64868 14.63098274 39.74418 12.2236582 76.762804 31.7666864 109.435876 57.477568 40.046637 31.5132839 73.228974 72.8472109 94.520714 119.2362609 39.836383 86.790386 39.544267 191.973146-1.268422 278.398081-26.388695 55.880442-68.724007 102.650458-119.964986 136.75724-41.808813 27.828603-90.706831 44.862601-140.45707 50.89341-63.325458 7.677926-131.784923-3.541603-188.712259-32.729444-106.868873-54.795293-179.52309291-165.076271-180.9604082-285.932068-.27660564-23.300971.08616998-46.74071 4.69884909-69.814998 7.51316071-37.57857 20.61272131-73.903917 40.28618971-106.877282 21.2814003-35.670293 48.7704861-67.1473767 81.6882804-92.5255597 38.602429-29.7610135 83.467691-51.1674988 130.978372-62.05777669 11.473831-2.62966514 22.9946-4.0869914 34.57273-5.4964306l3.658171-.44480576c3.050084-.37153079 6.104217-.74794222 9.162589-1.14972654zm-110.555861 549.44131429c-14.716752 1.577863-30.238964 4.25635-42.869928 12.522173 2.84343.683658 6.102369.004954 9.068638 0 7.124652-.011559 14.317732-.279903 21.434964.032202 17.817402.781913 36.381729 3.63214 53.58741 8.350042 22.029372 6.040631 41.432961 17.928687 62.656049 25.945156 22.389644 8.456554 44.67706 11.084675 68.427 11.084675 11.96813 0 23.845573-.035504 35.450133-3.302696-6.056202-3.225083-14.72582-2.619864-21.434964-3.963236-14.556814-2.915455-28.868774-6.474936-42.869928-11.470264-10.304996-3.676672-20.230803-8.214291-30.11097-12.848661l-6.348531-2.985046c-9.1705-4.309263-18.363277-8.560752-27.845391-12.142608-24.932161-9.418465-52.560181-14.071964-79.144482-11.221737zm22.259385-62.614168c-29.163917 0-58.660076 5.137344-84.915434 18.369597-6.361238 3.206092-12.407546 7.02566-18.137277 11.258891-1.746125 1.290529-4.841829 2.948483-5.487351 5.191839-.654591 2.275558 1.685942 4.182039 3.014086 5.637703 6.562396-3.497556 12.797498-7.199878 19.78612-9.855246 45.19892-17.169893 99.992458-13.570779 145.098218 2.172348 22.494346 7.851335 43.219483 19.592421 65.129314 28.800338 24.503461 10.297807 49.53043 16.975034 75.846795 20.399104 31.04195 4.037546 66.433549.7654 94.808495-13.242161 9.970556-4.921843 23.814245-12.422267 28.030337-23.320339-5.207047.454947-9.892236 2.685918-14.83959 4.224149-7.866632 2.445646-15.827248 4.51974-23.908229 6.138887-27.388113 5.486604-56.512458 6.619429-84.091013 1.639788-25.991939-4.693152-50.142596-14.119246-74.179513-24.03502l-3.068058-1.268177c-2.045137-.846788-4.089983-1.695816-6.135603-2.544467l-3.069142-1.272366c-12.279956-5.085721-24.606928-10.110797-37.210937-14.51024-24.485325-8.546552-50.726667-13.784628-76.671218-13.784628zm51.114145-447.9909432c-34.959602 7.7225298-66.276908 22.7605319-96.457338 41.7180089-17.521434 11.0054099-34.281927 22.2799893-49.465301 36.4444283-22.5792616 21.065423-39.8360564 46.668751-54.8866988 73.411509-15.507372 27.55357-25.4498976 59.665686-30.2554517 90.824149-4.7140432 30.568106-5.4906485 62.70747-.0906864 93.301172 6.7503648 38.248526 19.5989769 74.140579 39.8896436 107.337631 6.8187918-3.184625 11.659796-10.445603 17.3128555-15.336896 11.4149428-9.875888 23.3995608-19.029311 36.2745548-26.928535 4.765981-2.923712 9.662222-5.194315 14.83959-7.275014 1.953055-.785216 5.14604-1.502727 6.06527-3.647828 1.460876-3.406732-1.240754-9.335897-1.704904-12.865654-1.324845-10.095517-2.124534-20.362774-1.874735-30.549941.725492-29.668947 6.269727-59.751557 16.825623-87.521453 7.954845-20.924233 20.10682-39.922168 34.502872-56.971512 4.884699-5.785498 10.077731-11.170545 15.437296-16.512656 3.167428-3.157378 7.098271-5.858983 9.068639-9.908915-10.336599.006606-20.674847 2.987289-30.503603 6.013385-21.174447 6.519522-41.801477 16.19312-59.358362 29.841512-8.008432 6.226409-13.873368 14.387371-21.44733 20.939921-2.32322 2.010516-6.484901 4.704691-9.695199 3.187928-4.8500728-2.29042-4.1014979-11.835213-4.6571581-16.222019-2.1369011-16.873476 4.2548401-38.216325 12.3778671-52.843142 13.039878-23.479694 37.150915-43.528712 65.467327-42.82854 12.228647.302197 22.934587 4.551115 34.625711 7.324555-2.964621-4.211764-6.939158-7.28162-10.717482-10.733763-9.257431-8.459031-19.382979-16.184864-30.503603-22.028985-4.474136-2.350694-9.291232-3.77911-14.015169-5.506421-2.375159-.867783-5.36616-2.062533-6.259834-4.702213-1.654614-4.888817 7.148561-9.416813 10.381943-11.478522 12.499882-7.969406 27.826705-14.525258 42.869928-14.894334 23.509209-.577147 46.479246 12.467678 56.162903 34.665926 3.404469 7.803171 4.411273 16.054969 5.079109 24.382907l.121749 1.56229.174325 2.345587c.01913.260708.038244.521433.057403.782164l.11601 1.56437.120128 1.563971c7.38352-6.019164 12.576553-14.876995 19.78612-21.323859 16.861073-15.07846 39.936636-21.7722 61.831627-14.984333 19.786945 6.133107 36.984382 19.788105 47.105807 37.959541 2.648042 4.754231 10.035685 16.373942 4.698379 21.109183-4.177345 3.707277-9.475079.818243-13.880788-.719162-3.33605-1.16376-6.782939-1.90214-10.241828-2.585698l-1.887262-.369639c-.629089-.122886-1.257979-.246187-1.886079-.372129-11.980496-2.401886-25.91652-2.152533-37.923398-.041284-7.762754 1.364839-15.349083 4.127545-23.083807 5.271929v1.651348c21.149714.175043 41.608563 12.240618 52.043268 30.549941 4.323267 7.585468 6.482428 16.267431 8.138691 24.770223 2.047864 10.50918.608423 21.958802-2.263037 32.201289-.962925 3.433979-2.710699 9.255807-6.817143 10.046802-2.902789.558982-5.36781-2.330878-7.024898-4.279468-4.343878-5.10762-8.475879-9.96341-13.573278-14.374161-12.895604-11.157333-26.530715-21.449361-40.396663-31.373138-7.362086-5.269452-15.425755-12.12007-23.908229-15.340199 2.385052 5.745041 4.721463 11.086326 5.532694 17.339156 2.385876 18.392716-5.314223 35.704625-16.87179 49.540445-3.526876 4.222498-7.29943 8.475545-11.744712 11.755948-1.843407 1.360711-4.156734 3.137561-6.595373 2.752797-7.645687-1.207961-8.555849-12.73272-9.728176-18.637115-3.970415-19.998652-2.375984-39.861068 3.132802-59.448534-4.901187 2.485279-8.443727 7.923994-11.521293 12.385111-6.770975 9.816439-12.645804 20.199291-16.858599 31.375615-16.777806 44.519521-16.616219 96.664142 5.118834 139.523233 2.427098 4.786433 6.110614 4.144058 10.894733 4.144058.720854 0 1.44257-.004515 2.164851-.010924l2.168232-.022283c4.338648-.045438 8.686803-.064635 12.979772.508795 2.227588.297243 5.320818.032202 7.084256 1.673642 2.111344 1.966755.986008 5.338808.4996 7.758859-1.358647 6.765574-1.812904 12.914369-1.812904 19.816178 9.02412-1.398692 11.525415-15.866153 14.724172-23.118874 3.624982-8.216283 7.313444-16.440823 10.667192-24.770223 1.648843-4.093692 3.854171-8.671229 3.275427-13.210785-.649644-5.10184-4.335633-10.510831-6.904531-14.862134-4.86244-8.234447-10.389363-16.70834-13.969002-25.595896-2.861567-7.104926-.197036-15.983399 7.871579-18.521521 4.450228-1.400344 9.198073 1.345848 12.094266 4.562675 6.07269 6.74328 9.992815 16.777697 14.401823 24.692609l34.394873 61.925556c2.920926 5.243856 5.848447 10.481933 8.836976 15.687808 1.165732 2.031158 2.352075 5.167068 4.740424 6.0332 2.127008.77118 5.033095-.325315 7.148561-.748886 5.492297-1.099798 10.97635-2.287117 16.488434-3.28288 6.605266-1.193099 16.673928-.969342 21.434964-6.129805-6.963066-2.205375-15.011895-2.074919-22.259386-1.577863-4.352947.298894-9.178287 1.856116-13.178381-.686135-5.953149-3.783239-9.910373-12.522173-13.552668-18.377854-8.980425-14.439388-17.441465-29.095929-26.041008-43.760726l-1.376261-2.335014-2.765943-4.665258c-1.380597-2.334387-2.750786-4.67476-4.079753-7.036188-1.02723-1.826391-2.549937-4.233231-1.078344-6.24705 1.545791-2.114476 4.91472-2.239146 7.956473-2.243117l.603351.000261c1.195428.001526 2.315572.002427 3.222811-.11692 12.27399-1.615019 24.718635-2.952611 37.098976-2.952611-.963749-3.352237-3.719791-7.141255-2.838484-10.73046 1.972017-8.030506 13.526287-10.543033 18.899867-4.780653 3.60767 3.868283 5.704174 9.192229 8.051303 13.859765 3.097352 6.162006 6.624228 12.118418 9.940876 18.16483 5.805578 10.585967 12.146205 20.881297 18.116667 31.375615.49237.865561.999687 1.726685 1.512269 2.587098l.771613 1.290552c2.577138 4.303168 5.164895 8.635123 6.553094 13.461506-20.735854-.9487-36.30176-25.018751-45.343193-41.283704-.721369 2.604176.450959 4.928448 1.388326 7.431066 1.948109 5.197619 4.276275 10.147535 7.20627 14.862134 4.184765 6.732546 8.982075 13.665732 15.313633 18.553722 11.236043 8.673707 26.05255 8.721596 39.572241 7.794364 8.669619-.595311 19.50252-4.542034 28.030338-1.864372 8.513803 2.673532 11.940924 12.063098 6.884745 19.276187-3.787393 5.403211-8.842747 7.443452-15.128962 8.257566 4.445282 9.53571 10.268996 18.385285 14.490036 28.072919 1.758491 4.035895 3.59118 10.22102 7.8048 12.350433 2.805507 1.416857 6.824562.09743 9.85761.034678-3.043765-8.053625-8.742992-14.887729-11.541904-23.118874 8.533589.390544 16.786875 4.843404 24.732651 7.685374 15.630376 5.590144 31.063836 11.701854 46.475333 17.86913l7.112077 2.848685c6.338978 2.538947 12.71588 5.052299 18.961699 7.812528 2.285297 1.009799 5.449427 3.370401 7.975455 1.917215 2.061054-1.186494 3.394144-4.015253 4.665403-5.931643 3.55573-5.361927 6.775921-10.928622 9.965609-16.513481 12.774414-22.36586 22.143967-46.872692 28.402976-71.833646 20.645168-82.323009 2.934117-173.156241-46.677107-241.922507-19.061454-26.420745-43.033164-49.262193-69.46165-68.1783861-66.13923-47.336721-152.911262-66.294198-232.486917-48.7172481zm135.205158 410.5292842c-17.532977 4.570931-35.601827 8.714164-53.58741 11.040088 2.365265 8.052799 8.145286 15.885969 12.376218 23.118874 1.635653 2.796558 3.3859 6.541816 6.618457 7.755557 3.651364 1.370619 8.063669-.853747 11.508927-1.975838-1.595256-4.364513-4.279573-8.292245-6.476657-12.385112-.905215-1.687677-2.305907-3.685809-1.559805-5.68972 1.410585-3.786541 7.266452-3.563609 10.509727-4.221671 8.54678-1.733916 17.004522-3.898008 25.557073-5.611281 3.150939-.631641 7.538512-2.342438 10.705115-1.285575 2.371037.791232 3.800147 2.744743 5.152304 4.781948l.606196.918752c.80912 1.222827 1.637246 2.41754 2.671212 3.351165 3.457625 3.121874 8.628398 3.60159 13.017619 4.453686-2.678546-6.027421-7.130424-11.301001-9.984571-17.339156-1.659561-3.511592-3.023155-8.677834-6.656381-10.707341-5.005064-2.795733-15.341663 2.461334-20.458024 3.795624zm-110.472507-40.151706c-.825246 10.467897-4.036369 18.984725-9.068639 28.072919 5.76683.729896 11.649079.989984 17.312856 2.39363 4.244947 1.051908 8.156828 3.058296 12.366325 4.211763-2.250671-6.157877-6.426367-11.651913-9.661398-17.339156-3.266358-5.740912-6.189758-12.717032-10.949144-17.339156z\"\n transform=\"translate(.9778)\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,QAAO;CACP,SAAQ;CACR,OAAM;CACN,OAAM;CACN,MAAK;CACL,MAAK;CACL,cAAW;CACX,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,WAAU;CACX;AACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vanilla.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vanilla.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\nexport const JavaScriptLogo = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 1052 1052\"\n role=\"img\"\n aria-label=\"Vanilla JavaScript logo\"\n >\n <path fill=\"#f0db4f\" d=\"M0 0h1052v1052H0z\" />\n <path\n d=\"M965.9 801.1c-7.7-48-39-88.3-131.7-125.9-32.2-14.8-68.1-25.399-78.8-49.8-3.8-14.2-4.3-22.2-1.9-30.8 6.9-27.9 40.2-36.6 66.6-28.6 17 5.7 33.1 18.801 42.8 39.7 45.4-29.399 45.3-29.2 77-49.399-11.6-18-17.8-26.301-25.4-34-27.3-30.5-64.5-46.2-124-45-10.3 1.3-20.699 2.699-31 4-29.699 7.5-58 23.1-74.6 44-49.8 56.5-35.6 155.399 25 196.1 59.7 44.8 147.4 55 158.6 96.9 10.9 51.3-37.699 67.899-86 62-35.6-7.4-55.399-25.5-76.8-58.4-39.399 22.8-39.399 22.8-79.899 46.1 9.6 21 19.699 30.5 35.8 48.7 76.2 77.3 266.899 73.5 301.1-43.5 1.399-4.001 10.6-30.801 3.199-72.101zm-394-317.6h-98.4c0 85-.399 169.4-.399 254.4 0 54.1 2.8 103.7-6 118.9-14.4 29.899-51.7 26.2-68.7 20.399-17.3-8.5-26.1-20.6-36.3-37.699-2.8-4.9-4.9-8.7-5.601-9-26.699 16.3-53.3 32.699-80 49 13.301 27.3 32.9 51 58 66.399 37.5 22.5 87.9 29.4 140.601 17.3 34.3-10 63.899-30.699 79.399-62.199 22.4-41.3 17.6-91.3 17.4-146.6.5-90.2 0-180.4 0-270.9z\"\n fill=\"#323330\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,kBAAkB,UAC7B,qBAAC,OAAD;CACE,GAAI;CACJ,SAAQ;CACR,MAAK;CACL,cAAW;WAJb,CAME,oBAAC,QAAD;EAAM,MAAK;EAAU,GAAE;EAAsB,GAC7C,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL,EACE"}
1
+ {"version":3,"file":"Vanilla.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vanilla.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\nexport const JavaScriptLogo = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 1052 1052\"\n role=\"img\"\n aria-label=\"Vanilla JavaScript logo\"\n >\n <path fill=\"#f0db4f\" d=\"M0 0h1052v1052H0z\" />\n <path\n d=\"M965.9 801.1c-7.7-48-39-88.3-131.7-125.9-32.2-14.8-68.1-25.399-78.8-49.8-3.8-14.2-4.3-22.2-1.9-30.8 6.9-27.9 40.2-36.6 66.6-28.6 17 5.7 33.1 18.801 42.8 39.7 45.4-29.399 45.3-29.2 77-49.399-11.6-18-17.8-26.301-25.4-34-27.3-30.5-64.5-46.2-124-45-10.3 1.3-20.699 2.699-31 4-29.699 7.5-58 23.1-74.6 44-49.8 56.5-35.6 155.399 25 196.1 59.7 44.8 147.4 55 158.6 96.9 10.9 51.3-37.699 67.899-86 62-35.6-7.4-55.399-25.5-76.8-58.4-39.399 22.8-39.399 22.8-79.899 46.1 9.6 21 19.699 30.5 35.8 48.7 76.2 77.3 266.899 73.5 301.1-43.5 1.399-4.001 10.6-30.801 3.199-72.101zm-394-317.6h-98.4c0 85-.399 169.4-.399 254.4 0 54.1 2.8 103.7-6 118.9-14.4 29.899-51.7 26.2-68.7 20.399-17.3-8.5-26.1-20.6-36.3-37.699-2.8-4.9-4.9-8.7-5.601-9-26.699 16.3-53.3 32.699-80 49 13.301 27.3 32.9 51 58 66.399 37.5 22.5 87.9 29.4 140.601 17.3 34.3-10 63.899-30.699 79.399-62.199 22.4-41.3 17.6-91.3 17.4-146.6.5-90.2 0-180.4 0-270.9z\"\n fill=\"#323330\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,kBAAkB,UAC7B,qBAAC,OAAD;CACE,GAAI;CACJ,SAAQ;CACR,MAAK;CACL,cAAW;WAJb,CAME,oBAAC,QAAD;EAAM,MAAK;EAAU,GAAE;CAAqB,IAC5C,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN,EACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vitejs.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vitejs.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ViteLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 410 404\"\n fill=\"none\"\n role=\"img\"\n aria-label=\"Vite logo\"\n {...props}\n >\n <path\n d=\"M399.641 59.5246L215.643 388.545C211.844 395.338 202.084 395.378 198.228 388.618L10.5817 59.5563C6.38087 52.1896 12.6802 43.2665 21.0281 44.7586L205.223 77.6824C206.398 77.8924 207.601 77.8904 208.776 77.6763L389.119 44.8058C397.439 43.2894 403.768 52.1434 399.641 59.5246Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n d=\"M292.965 1.5744L156.801 28.2552C154.563 28.6937 152.906 30.5903 152.771 32.8664L144.395 174.33C144.198 177.662 147.258 180.248 150.51 179.498L188.42 170.749C191.967 169.931 195.172 173.055 194.443 176.622L183.18 231.775C182.422 235.487 185.907 238.661 189.532 237.56L212.947 230.446C216.577 229.344 220.065 232.527 219.297 236.242L201.398 322.875C200.278 328.294 207.486 331.249 210.492 326.603L212.5 323.5L323.454 102.072C325.312 98.3645 322.108 94.137 318.036 94.9228L279.014 102.454C275.347 103.161 272.227 99.746 273.262 96.1583L298.731 7.86689C299.767 4.27314 296.636 0.855181 292.965 1.5744Z\"\n fill=\"url(#paint1_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"6.00017\"\n y1=\"32.9999\"\n x2=\"235\"\n y2=\"344\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#41D1FF\" />\n <stop offset=\"1\" stopColor=\"#BD34FE\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"194.651\"\n y1=\"8.81818\"\n x2=\"236.076\"\n y2=\"292.989\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFEA83\" />\n <stop offset=\"0.0833333\" stopColor=\"#FFDD35\" />\n <stop offset=\"1\" stopColor=\"#FFA800\" />\n </linearGradient>\n </defs>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,YAAyC,UACpD,qBAAC,OAAD;CACE,OAAM;CACN,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,MAAK;CACL,cAAW;CACX,GAAI;WAPN;EASE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,qBAAC,QAAD,aACE,qBAAC,kBAAD;GACE,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,eAAc;aANhB,CAQE,oBAAC,QAAD,EAAM,WAAU,WAAY,GAC5B,oBAAC,QAAD;IAAM,QAAO;IAAI,WAAU;IAAY,EACxB;MACjB,qBAAC,kBAAD;GACE,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,eAAc;aANhB;IAQE,oBAAC,QAAD,EAAM,WAAU,WAAY;IAC5B,oBAAC,QAAD;KAAM,QAAO;KAAY,WAAU;KAAY;IAC/C,oBAAC,QAAD;KAAM,QAAO;KAAI,WAAU;KAAY;IACxB;KACZ;EACH"}
1
+ {"version":3,"file":"Vitejs.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vitejs.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ViteLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 410 404\"\n fill=\"none\"\n role=\"img\"\n aria-label=\"Vite logo\"\n {...props}\n >\n <path\n d=\"M399.641 59.5246L215.643 388.545C211.844 395.338 202.084 395.378 198.228 388.618L10.5817 59.5563C6.38087 52.1896 12.6802 43.2665 21.0281 44.7586L205.223 77.6824C206.398 77.8924 207.601 77.8904 208.776 77.6763L389.119 44.8058C397.439 43.2894 403.768 52.1434 399.641 59.5246Z\"\n fill=\"url(#paint0_linear)\"\n />\n <path\n d=\"M292.965 1.5744L156.801 28.2552C154.563 28.6937 152.906 30.5903 152.771 32.8664L144.395 174.33C144.198 177.662 147.258 180.248 150.51 179.498L188.42 170.749C191.967 169.931 195.172 173.055 194.443 176.622L183.18 231.775C182.422 235.487 185.907 238.661 189.532 237.56L212.947 230.446C216.577 229.344 220.065 232.527 219.297 236.242L201.398 322.875C200.278 328.294 207.486 331.249 210.492 326.603L212.5 323.5L323.454 102.072C325.312 98.3645 322.108 94.137 318.036 94.9228L279.014 102.454C275.347 103.161 272.227 99.746 273.262 96.1583L298.731 7.86689C299.767 4.27314 296.636 0.855181 292.965 1.5744Z\"\n fill=\"url(#paint1_linear)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear\"\n x1=\"6.00017\"\n y1=\"32.9999\"\n x2=\"235\"\n y2=\"344\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#41D1FF\" />\n <stop offset=\"1\" stopColor=\"#BD34FE\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear\"\n x1=\"194.651\"\n y1=\"8.81818\"\n x2=\"236.076\"\n y2=\"292.989\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFEA83\" />\n <stop offset=\"0.0833333\" stopColor=\"#FFDD35\" />\n <stop offset=\"1\" stopColor=\"#FFA800\" />\n </linearGradient>\n </defs>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,YAAyC,UACpD,qBAAC,OAAD;CACE,OAAM;CACN,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,MAAK;CACL,cAAW;CACX,GAAI;WAPN;EASE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,qBAAC,QAAD,aACE,qBAAC,kBAAD;GACE,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,eAAc;aANhB,CAQE,oBAAC,QAAD,EAAM,WAAU,UAAW,IAC3B,oBAAC,QAAD;IAAM,QAAO;IAAI,WAAU;GAAW,EACxB;MAChB,qBAAC,kBAAD;GACE,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,IAAG;GACH,eAAc;aANhB;IAQE,oBAAC,QAAD,EAAM,WAAU,UAAW;IAC3B,oBAAC,QAAD;KAAM,QAAO;KAAY,WAAU;IAAW;IAC9C,oBAAC,QAAD;KAAM,QAAO;KAAI,WAAU;IAAW;GACxB;IACZ;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vuejs.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vuejs.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const VuejsLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 261.76 226.69\"\n role=\"img\"\n aria-label=\"Vuejs logo\"\n {...props}\n >\n <g transform=\"matrix(1.3333 0 0 -1.3333 -76.311 313.34)\">\n <g transform=\"translate(178.06 235.01)\">\n <path\n d=\"m0 0-22.669-39.264-22.669 39.264h-75.491l98.16-170.02 98.16 170.02z\"\n fill=\"#41b883\"\n />\n </g>\n <g transform=\"translate(178.06 235.01)\">\n <path\n d=\"m0 0-22.669-39.264-22.669 39.264h-36.227l58.896-102.01 58.896 102.01z\"\n fill=\"#34495e\"\n />\n </g>\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,aAA0C,UACrD,oBAAC,OAAD;CACE,OAAM;CACN,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;CACX,GAAI;WAEJ,qBAAC,KAAD;EAAG,WAAU;YAAb,CACE,oBAAC,KAAD;GAAG,WAAU;aACX,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;IACL;GACA,GACJ,oBAAC,KAAD;GAAG,WAAU;aACX,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;IACL;GACA,EACF;;CACA"}
1
+ {"version":3,"file":"Vuejs.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Vuejs.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const VuejsLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 261.76 226.69\"\n role=\"img\"\n aria-label=\"Vuejs logo\"\n {...props}\n >\n <g transform=\"matrix(1.3333 0 0 -1.3333 -76.311 313.34)\">\n <g transform=\"translate(178.06 235.01)\">\n <path\n d=\"m0 0-22.669-39.264-22.669 39.264h-75.491l98.16-170.02 98.16 170.02z\"\n fill=\"#41b883\"\n />\n </g>\n <g transform=\"translate(178.06 235.01)\">\n <path\n d=\"m0 0-22.669-39.264-22.669 39.264h-36.227l58.896-102.01 58.896 102.01z\"\n fill=\"#34495e\"\n />\n </g>\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,aAA0C,UACrD,oBAAC,OAAD;CACE,OAAM;CACN,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;CACX,GAAI;WAEJ,qBAAC,KAAD;EAAG,WAAU;YAAb,CACE,oBAAC,KAAD;GAAG,WAAU;aACX,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;GACN;EACA,IACH,oBAAC,KAAD;GAAG,WAAU;aACX,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;GACN;EACA,EACF;;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Terminal.mjs","names":[],"sources":["../../../../src/components/Terminal/Terminal.tsx"],"sourcesContent":["'use client';\n\nimport { Container } from '@components/Container';\nimport { Input } from '@components/Input';\nimport { cn } from '@utils/cn';\nimport {\n type FC,\n type HTMLAttributes,\n type KeyboardEvent,\n useState,\n} from 'react';\nimport { useIntlayer } from 'react-intlayer';\n\n// ANSI color code mappings to CSS colors\nconst ANSI_COLORS: Record<string, { light: string; dark: string }> = {\n '\\x1b[0m': { light: '', dark: '' }, // RESET\n '\\x1b[90m': { light: 'text-gray-500', dark: 'text-gray-400' }, // GREY\n '\\x1b[38;5;239m': { light: 'text-gray-600', dark: 'text-gray-500' }, // GREY_DARK\n '\\x1b[38;5;252m': { light: 'text-gray-300', dark: 'text-gray-300' }, // GREY_LIGHT\n '\\x1b[34m': { light: 'text-blue-600', dark: 'text-blue-400' }, // BLUE\n '\\x1b[31m': { light: 'text-red-600', dark: 'text-red-400' }, // RED\n '\\x1b[32m': { light: 'text-green-600', dark: 'text-green-400' }, // GREEN\n '\\x1b[38;5;226m': { light: 'text-yellow-500', dark: 'text-yellow-300' }, // YELLOW\n '\\x1b[35m': { light: 'text-purple-600', dark: 'text-purple-400' }, // MAGENTA\n '\\x1b[38;5;3m': { light: 'text-amber-600', dark: 'text-amber-300' }, // BEIGE\n '\\x1b[38;5;208m': { light: 'text-orange-600', dark: 'text-orange-400' }, // ORANGE\n '\\x1b[36m': { light: 'text-cyan-600', dark: 'text-cyan-400' }, // CYAN\n '\\x1b[37m': { light: 'text-gray-800', dark: 'text-gray-200' }, // WHITE\n '\\x1b[1m': { light: 'font-bold', dark: 'font-bold' }, // BOLD\n};\n\ninterface AnsiSegment {\n text: string;\n color?: string;\n isBold?: boolean;\n}\n\nconst parseAnsiCodes = (text: string, isDarkMode: boolean): AnsiSegment[] => {\n const segments: AnsiSegment[] = [];\n // biome-ignore lint/suspicious/noControlCharactersInRegex: we need to parse ANSI codes\n const ansiRegex = /(\\x1b\\[[0-9;]*m)/g;\n const parts = text.split(ansiRegex);\n\n let currentColor: string | undefined;\n let isBold = false;\n\n for (const part of parts) {\n if (ansiRegex.test(part)) {\n // This is an ANSI code\n const colorMapping = ANSI_COLORS[part];\n if (colorMapping) {\n if (part === '\\x1b[0m') {\n // RESET\n currentColor = undefined;\n isBold = false;\n } else if (part === '\\x1b[1m') {\n // BOLD\n isBold = true;\n } else {\n currentColor = isDarkMode ? colorMapping.dark : colorMapping.light;\n }\n }\n } else if (part) {\n // This is actual text\n segments.push({\n text: part,\n color: currentColor,\n isBold,\n });\n }\n }\n\n return segments;\n};\n\nexport type TerminalProps = {\n children: string;\n isDarkMode?: boolean;\n title?: string;\n onClose?: () => void;\n onSubmit?: (value: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onSubmit'>;\n\nexport const Terminal: FC<TerminalProps> = ({\n className,\n children,\n isDarkMode = false,\n title = 'bash',\n onClose,\n onSubmit,\n ...props\n}) => {\n const content = useIntlayer('terminal');\n const lines = typeof children === 'string' ? children.split('\\n') : [];\n const [inputValue, setInputValue] = useState('');\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && inputValue.trim()) {\n onSubmit?.(inputValue);\n setInputValue('');\n }\n };\n\n // Explicitly type the container props to avoid type conflicts\n const containerProps = props as Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children' | 'onSubmit'\n >;\n\n return (\n <Container\n roundedSize=\"2xl\"\n className={cn(\n 'flex min-w-0 max-w-full flex-col overflow-hidden font-mono',\n className\n )}\n {...containerProps}\n >\n {/* Tab bar */}\n <div className=\"flex w-full flex-row items-center justify-start gap-1 bg-neutral-200 text-neutral text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-error\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n <div className=\"flex h-8 min-w-20 items-center justify-between gap-2 bg-card px-3 py-1\">\n <span>{title}</span>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"text-neutral transition-colors hover:text-text\"\n aria-label={content.closeTab.value}\n >\n ×\n </button>\n )}\n </div>\n </div>\n </div>\n\n {/* Terminal content - hide scrollbar */}\n <pre className=\"min-w-0 max-w-full overflow-x-auto overflow-y-auto border-neutral/30 border-b p-3 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <code>\n {lines.map((line, lineIndex) => {\n const segments = parseAnsiCodes(line, isDarkMode);\n\n return (\n <span className=\"line block w-full\" key={`line-${lineIndex}`}>\n {segments.length === 0\n ? '\\n'\n : segments.map((segment, segIndex) => (\n <span\n key={`seg-${lineIndex}-${segIndex}`}\n className={cn(segment.color, {\n 'font-bold': segment.isBold,\n })}\n >\n {segment.text}\n </span>\n ))}\n </span>\n );\n })}\n </code>\n </pre>\n\n {/* Input area */}\n <Container className=\"p-2\">\n <span className=\"text-neutral\">~/Desktop/MyApp</span>\n <Input\n className=\"m-0.5 w-full\"\n variant=\"invisible\"\n value={inputValue}\n aria-label={content.terminalInput.value}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n />\n </Container>\n </Container>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Terminal.mjs","names":[],"sources":["../../../../src/components/Terminal/Terminal.tsx"],"sourcesContent":["'use client';\n\nimport { Container } from '@components/Container';\nimport { Input } from '@components/Input';\nimport { cn } from '@utils/cn';\nimport {\n type FC,\n type HTMLAttributes,\n type KeyboardEvent,\n useState,\n} from 'react';\nimport { useIntlayer } from 'react-intlayer';\n\n// ANSI color code mappings to CSS colors\nconst ANSI_COLORS: Record<string, { light: string; dark: string }> = {\n '\\x1b[0m': { light: '', dark: '' }, // RESET\n '\\x1b[90m': { light: 'text-gray-500', dark: 'text-gray-400' }, // GREY\n '\\x1b[38;5;239m': { light: 'text-gray-600', dark: 'text-gray-500' }, // GREY_DARK\n '\\x1b[38;5;252m': { light: 'text-gray-300', dark: 'text-gray-300' }, // GREY_LIGHT\n '\\x1b[34m': { light: 'text-blue-600', dark: 'text-blue-400' }, // BLUE\n '\\x1b[31m': { light: 'text-red-600', dark: 'text-red-400' }, // RED\n '\\x1b[32m': { light: 'text-green-600', dark: 'text-green-400' }, // GREEN\n '\\x1b[38;5;226m': { light: 'text-yellow-500', dark: 'text-yellow-300' }, // YELLOW\n '\\x1b[35m': { light: 'text-purple-600', dark: 'text-purple-400' }, // MAGENTA\n '\\x1b[38;5;3m': { light: 'text-amber-600', dark: 'text-amber-300' }, // BEIGE\n '\\x1b[38;5;208m': { light: 'text-orange-600', dark: 'text-orange-400' }, // ORANGE\n '\\x1b[36m': { light: 'text-cyan-600', dark: 'text-cyan-400' }, // CYAN\n '\\x1b[37m': { light: 'text-gray-800', dark: 'text-gray-200' }, // WHITE\n '\\x1b[1m': { light: 'font-bold', dark: 'font-bold' }, // BOLD\n};\n\ninterface AnsiSegment {\n text: string;\n color?: string;\n isBold?: boolean;\n}\n\nconst parseAnsiCodes = (text: string, isDarkMode: boolean): AnsiSegment[] => {\n const segments: AnsiSegment[] = [];\n // biome-ignore lint/suspicious/noControlCharactersInRegex: we need to parse ANSI codes\n const ansiRegex = /(\\x1b\\[[0-9;]*m)/g;\n const parts = text.split(ansiRegex);\n\n let currentColor: string | undefined;\n let isBold = false;\n\n for (const part of parts) {\n if (ansiRegex.test(part)) {\n // This is an ANSI code\n const colorMapping = ANSI_COLORS[part];\n if (colorMapping) {\n if (part === '\\x1b[0m') {\n // RESET\n currentColor = undefined;\n isBold = false;\n } else if (part === '\\x1b[1m') {\n // BOLD\n isBold = true;\n } else {\n currentColor = isDarkMode ? colorMapping.dark : colorMapping.light;\n }\n }\n } else if (part) {\n // This is actual text\n segments.push({\n text: part,\n color: currentColor,\n isBold,\n });\n }\n }\n\n return segments;\n};\n\nexport type TerminalProps = {\n children: string;\n isDarkMode?: boolean;\n title?: string;\n onClose?: () => void;\n onSubmit?: (value: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onSubmit'>;\n\nexport const Terminal: FC<TerminalProps> = ({\n className,\n children,\n isDarkMode = false,\n title = 'bash',\n onClose,\n onSubmit,\n ...props\n}) => {\n const content = useIntlayer('terminal');\n const lines = typeof children === 'string' ? children.split('\\n') : [];\n const [inputValue, setInputValue] = useState('');\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && inputValue.trim()) {\n onSubmit?.(inputValue);\n setInputValue('');\n }\n };\n\n // Explicitly type the container props to avoid type conflicts\n const containerProps = props as Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children' | 'onSubmit'\n >;\n\n return (\n <Container\n roundedSize=\"2xl\"\n className={cn(\n 'flex min-w-0 max-w-full flex-col overflow-hidden font-mono',\n className\n )}\n {...containerProps}\n >\n {/* Tab bar */}\n <div className=\"flex w-full flex-row items-center justify-start gap-1 bg-neutral-200 text-neutral text-xs dark:bg-neutral-950\">\n <div className=\"mx-2 flex items-center justify-start gap-2 p-1\">\n <div className=\"size-3 rounded-full bg-error\" />\n <div className=\"size-3 rounded-full bg-yellow-500\" />\n <div className=\"size-3 rounded-full bg-green-500\" />\n </div>\n <div className=\"flex size-full overflow-y-auto\">\n <div className=\"flex h-8 min-w-20 items-center justify-between gap-2 bg-card px-3 py-1\">\n <span>{title}</span>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"text-neutral transition-colors hover:text-text\"\n aria-label={content.closeTab.value}\n >\n ×\n </button>\n )}\n </div>\n </div>\n </div>\n\n {/* Terminal content - hide scrollbar */}\n <pre className=\"min-w-0 max-w-full overflow-x-auto overflow-y-auto border-neutral/30 border-b p-3 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <code>\n {lines.map((line, lineIndex) => {\n const segments = parseAnsiCodes(line, isDarkMode);\n\n return (\n <span className=\"line block w-full\" key={`line-${lineIndex}`}>\n {segments.length === 0\n ? '\\n'\n : segments.map((segment, segIndex) => (\n <span\n key={`seg-${lineIndex}-${segIndex}`}\n className={cn(segment.color, {\n 'font-bold': segment.isBold,\n })}\n >\n {segment.text}\n </span>\n ))}\n </span>\n );\n })}\n </code>\n </pre>\n\n {/* Input area */}\n <Container className=\"p-2\">\n <span className=\"text-neutral\">~/Desktop/MyApp</span>\n <Input\n className=\"m-0.5 w-full\"\n variant=\"invisible\"\n value={inputValue}\n aria-label={content.terminalInput.value}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n />\n </Container>\n </Container>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.content.mjs","names":[],"sources":["../../../../src/components/Terminal/terminal.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst terminalContent = {\n key: 'terminal',\n content: {\n closeTab: t({\n en: 'Close tab',\n fr: \"Fermer l'onglet\",\n es: 'Cerrar pestaña',\n 'en-GB': 'Close tab',\n de: 'Tab schließen',\n ja: 'タブを閉じる',\n ko: '탭 닫기',\n zh: '关闭标签',\n it: 'Chiudi tab',\n pt: 'Fechar aba',\n hi: 'टैब बंद करें',\n ar: 'إغلاق التاب',\n ru: 'Закрыть вкладку',\n tr: 'Sekmeyi kapat',\n pl: 'Zamknij kartę',\n id: 'Tutup tab',\n vi: 'Đóng tab',\n uk: 'Закрити вкладку',\n }),\n terminalInput: t({\n en: 'Terminal input',\n fr: 'Entrée du terminal',\n es: 'Entrada del terminal',\n 'en-GB': 'Terminal input',\n de: 'Terminaleingabe',\n ja: 'ターミナル入力',\n ko: '터미널 입력',\n zh: '终端输入',\n it: 'Input del terminale',\n pt: 'Entrada do terminal',\n hi: 'टर्मिनल इनपुट',\n ar: 'إدخال الترميز',\n ru: 'Ввод терминала',\n tr: 'Terminal girişi',\n pl: 'Wejście terminala',\n id: 'Masukan terminal',\n vi: 'Đầu vào terminal',\n uk: 'Ввід терміналу',\n }),\n },\n title: 'Terminal component content',\n description:\n \"Localized content for the Terminal component, providing labels such as 'Close tab' and 'Terminal input'.\",\n tags: ['component', 'terminal', 'ui', 'localization', 'labels'],\n} satisfies Dictionary;\n\nexport default terminalContent;\n"],"mappings":";;;AAEA,MAAM,kBAAkB;CACtB,KAAK;CACL,SAAS;EACP,UAAU,EAAE;GACV,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CAAC;EACF,eAAe,EAAE;GACf,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CAAC;EACH;CACD,OAAO;CACP,aACE;CACF,MAAM;EAAC;EAAa;EAAY;EAAM;EAAgB;EAAS;CAChE"}
1
+ {"version":3,"file":"terminal.content.mjs","names":[],"sources":["../../../../src/components/Terminal/terminal.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst terminalContent = {\n key: 'terminal',\n content: {\n closeTab: t({\n en: 'Close tab',\n fr: \"Fermer l'onglet\",\n es: 'Cerrar pestaña',\n 'en-GB': 'Close tab',\n de: 'Tab schließen',\n ja: 'タブを閉じる',\n ko: '탭 닫기',\n zh: '关闭标签',\n it: 'Chiudi tab',\n pt: 'Fechar aba',\n hi: 'टैब बंद करें',\n ar: 'إغلاق التاب',\n ru: 'Закрыть вкладку',\n tr: 'Sekmeyi kapat',\n pl: 'Zamknij kartę',\n id: 'Tutup tab',\n vi: 'Đóng tab',\n uk: 'Закрити вкладку',\n }),\n terminalInput: t({\n en: 'Terminal input',\n fr: 'Entrée du terminal',\n es: 'Entrada del terminal',\n 'en-GB': 'Terminal input',\n de: 'Terminaleingabe',\n ja: 'ターミナル入力',\n ko: '터미널 입력',\n zh: '终端输入',\n it: 'Input del terminale',\n pt: 'Entrada do terminal',\n hi: 'टर्मिनल इनपुट',\n ar: 'إدخال الترميز',\n ru: 'Ввод терминала',\n tr: 'Terminal girişi',\n pl: 'Wejście terminala',\n id: 'Masukan terminal',\n vi: 'Đầu vào terminal',\n uk: 'Ввід терміналу',\n }),\n },\n title: 'Terminal component content',\n description:\n \"Localized content for the Terminal component, providing labels such as 'Close tab' and 'Terminal input'.\",\n tags: ['component', 'terminal', 'ui', 'localization', 'labels'],\n} satisfies Dictionary;\n\nexport default terminalContent;\n"],"mappings":";;;AAEA,MAAM,kBAAkB;CACtB,KAAK;CACL,SAAS;EACP,UAAU,EAAE;GACV,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;EACN,CAAC;EACD,eAAe,EAAE;GACf,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;EACN,CAAC;CACH;CACA,OAAO;CACP,aACE;CACF,MAAM;EAAC;EAAa;EAAY;EAAM;EAAgB;CAAQ;AAChE"}
@@ -76,8 +76,7 @@ const AutoSizedTextArea = ({ className, autoSize = true, onChange, maxRows = 999
76
76
  textAreaStyle.height = "auto";
77
77
  const scrollHeight = textAreaEl.scrollHeight;
78
78
  const maxHeight = LINE_HEIGHT * maxRows + LINE_PADDING;
79
- const minHeight = LINE_HEIGHT + LINE_PADDING;
80
- textAreaStyle.height = `${Math.max(Math.min(scrollHeight, maxHeight), minHeight)}px`;
79
+ textAreaStyle.height = `${Math.max(Math.min(scrollHeight, maxHeight), 36)}px`;
81
80
  };
82
81
  useLayoutEffect(() => {
83
82
  adjustHeight();
@@ -1 +1 @@
1
- {"version":3,"file":"AutoSizeTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/AutoSizeTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport {\n type ChangeEventHandler,\n type FC,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n} from 'react';\nimport { TextArea, type TextAreaProps } from './TextArea';\n\n/**\n * Props for the AutoSizedTextArea component.\n *\n * Extends TextAreaProps with auto-sizing functionality and row limitations.\n *\n * @example\n * ```tsx\n * // Auto-sizing textarea that grows with content\n * <AutoSizedTextArea\n * placeholder=\"Start typing and watch it grow...\"\n * autoSize={true}\n * maxRows={10}\n * />\n *\n * // Limited height with scroll when exceeded\n * <AutoSizedTextArea\n * value={longText}\n * onChange={handleChange}\n * autoSize={true}\n * maxRows={5}\n * className=\"max-h-30\"\n * />\n *\n * // Disable auto-sizing for fixed height\n * <AutoSizedTextArea\n * autoSize={false}\n * rows={3}\n * placeholder=\"Fixed height textarea\"\n * />\n * ```\n */\nexport type AutoSizedTextAreaProps = TextAreaProps & {\n /** Whether to automatically adjust height based on content */\n autoSize?: boolean;\n /** Maximum number of rows before scrolling is enabled */\n maxRows?: number;\n};\n\nconst LINE_HEIGHT = 24; // px\nconst LINE_PADDING = 12; // px\n\n/**\n * AutoSizedTextArea Component\n *\n * An enhanced textarea that automatically adjusts its height based on content,\n * providing a smooth user experience for variable-length text input.\n *\n * ## Features\n * - **Auto-Sizing**: Dynamically grows and shrinks based on content\n * - **Row Limits**: Configurable maximum rows before scrolling\n * - **Smooth Transitions**: Seamless height adjustments as user types\n * - **Scroll Management**: Automatic overflow handling when max height reached\n * - **Performance Optimized**: Efficient height calculations and updates\n *\n * ## Technical Details\n * - Line height: 24px with 12px padding\n * - Height calculation: `scrollHeight` vs `maxRows * lineHeight + padding`\n * - Resize: Disabled when auto-sizing is active for smooth experience\n * - Ref forwarding: Supports imperative access to textarea element\n *\n * ## Use Cases\n * - Chat message composition with dynamic sizing\n * - Comment forms that expand with content\n * - Note-taking interfaces with variable length\n * - Social media post creation\n * - Code snippet input with growth limits\n *\n * @example\n * ```tsx\n * // Chat-style auto-expanding textarea\n * const [message, setMessage] = useState('');\n *\n * <AutoSizedTextArea\n * value={message}\n * onChange={(e) => setMessage(e.target.value)}\n * placeholder=\"Type your message...\"\n * autoSize={true}\n * maxRows={8}\n * className=\"min-h-10\"\n * onKeyDown={(e) => {\n * if (e.key === 'Enter' && !e.shiftKey) {\n * e.preventDefault();\n * sendMessage(message);\n * setMessage('');\n * }\n * }}\n * />\n *\n * // Note-taking with generous height limits\n * <AutoSizedTextArea\n * defaultValue={note.content}\n * onChange={handleNoteChange}\n * placeholder=\"Write your notes here...\"\n * autoSize={true}\n * maxRows={20}\n * variant=\"default\"\n * />\n * ```\n */\nexport const AutoSizedTextArea: FC<AutoSizedTextAreaProps> = ({\n className,\n autoSize = true,\n onChange,\n maxRows = 999,\n ref,\n ...props\n}) => {\n const textAreaRef = useRef<HTMLTextAreaElement | null>(null);\n\n useImperativeHandle(ref, () => textAreaRef.current!);\n\n const adjustHeight = () => {\n const textAreaEl = textAreaRef.current;\n\n if (!textAreaEl || !autoSize) return;\n\n const textAreaStyle = textAreaEl.style;\n\n // Reset height to get accurate scrollHeight\n textAreaStyle.height = 'auto';\n const scrollHeight = textAreaEl.scrollHeight;\n const maxHeight = LINE_HEIGHT * maxRows + LINE_PADDING;\n const minHeight = LINE_HEIGHT + LINE_PADDING;\n\n // Set the new height\n textAreaStyle.height = `${Math.max(Math.min(scrollHeight, maxHeight), minHeight)}px`;\n };\n\n useLayoutEffect(() => {\n adjustHeight();\n }, [props.value, props.defaultValue, adjustHeight]);\n\n const handleChange: ChangeEventHandler<HTMLTextAreaElement> = (e) => {\n onChange?.(e);\n adjustHeight();\n };\n\n const setRef = (el: HTMLTextAreaElement | null) => {\n textAreaRef.current = el;\n if (el) {\n adjustHeight();\n }\n };\n\n return (\n <TextArea\n ref={setRef}\n onChange={handleChange}\n className={cn('overflow-y-auto', autoSize && 'resize-none', className)}\n {...props}\n />\n );\n};\n"],"mappings":";;;;;;;;AAkDA,MAAM,cAAc;AACpB,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DrB,MAAa,qBAAiD,EAC5D,WACA,WAAW,MACX,UACA,UAAU,KACV,KACA,GAAG,YACC;CACJ,MAAM,cAAc,OAAmC,KAAK;AAE5D,qBAAoB,WAAW,YAAY,QAAS;CAEpD,MAAM,qBAAqB;EACzB,MAAM,aAAa,YAAY;AAE/B,MAAI,CAAC,cAAc,CAAC,SAAU;EAE9B,MAAM,gBAAgB,WAAW;AAGjC,gBAAc,SAAS;EACvB,MAAM,eAAe,WAAW;EAChC,MAAM,YAAY,cAAc,UAAU;EAC1C,MAAM,YAAY,cAAc;AAGhC,gBAAc,SAAS,GAAG,KAAK,IAAI,KAAK,IAAI,cAAc,UAAU,EAAE,UAAU,CAAC;;AAGnF,uBAAsB;AACpB,gBAAc;IACb;EAAC,MAAM;EAAO,MAAM;EAAc;EAAa,CAAC;CAEnD,MAAM,gBAAyD,MAAM;AACnE,aAAW,EAAE;AACb,gBAAc;;CAGhB,MAAM,UAAU,OAAmC;AACjD,cAAY,UAAU;AACtB,MAAI,GACF,eAAc;;AAIlB,QACE,oBAAC,UAAD;EACE,KAAK;EACL,UAAU;EACV,WAAW,GAAG,mBAAmB,YAAY,eAAe,UAAU;EACtE,GAAI;EACJ"}
1
+ {"version":3,"file":"AutoSizeTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/AutoSizeTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport {\n type ChangeEventHandler,\n type FC,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n} from 'react';\nimport { TextArea, type TextAreaProps } from './TextArea';\n\n/**\n * Props for the AutoSizedTextArea component.\n *\n * Extends TextAreaProps with auto-sizing functionality and row limitations.\n *\n * @example\n * ```tsx\n * // Auto-sizing textarea that grows with content\n * <AutoSizedTextArea\n * placeholder=\"Start typing and watch it grow...\"\n * autoSize={true}\n * maxRows={10}\n * />\n *\n * // Limited height with scroll when exceeded\n * <AutoSizedTextArea\n * value={longText}\n * onChange={handleChange}\n * autoSize={true}\n * maxRows={5}\n * className=\"max-h-30\"\n * />\n *\n * // Disable auto-sizing for fixed height\n * <AutoSizedTextArea\n * autoSize={false}\n * rows={3}\n * placeholder=\"Fixed height textarea\"\n * />\n * ```\n */\nexport type AutoSizedTextAreaProps = TextAreaProps & {\n /** Whether to automatically adjust height based on content */\n autoSize?: boolean;\n /** Maximum number of rows before scrolling is enabled */\n maxRows?: number;\n};\n\nconst LINE_HEIGHT = 24; // px\nconst LINE_PADDING = 12; // px\n\n/**\n * AutoSizedTextArea Component\n *\n * An enhanced textarea that automatically adjusts its height based on content,\n * providing a smooth user experience for variable-length text input.\n *\n * ## Features\n * - **Auto-Sizing**: Dynamically grows and shrinks based on content\n * - **Row Limits**: Configurable maximum rows before scrolling\n * - **Smooth Transitions**: Seamless height adjustments as user types\n * - **Scroll Management**: Automatic overflow handling when max height reached\n * - **Performance Optimized**: Efficient height calculations and updates\n *\n * ## Technical Details\n * - Line height: 24px with 12px padding\n * - Height calculation: `scrollHeight` vs `maxRows * lineHeight + padding`\n * - Resize: Disabled when auto-sizing is active for smooth experience\n * - Ref forwarding: Supports imperative access to textarea element\n *\n * ## Use Cases\n * - Chat message composition with dynamic sizing\n * - Comment forms that expand with content\n * - Note-taking interfaces with variable length\n * - Social media post creation\n * - Code snippet input with growth limits\n *\n * @example\n * ```tsx\n * // Chat-style auto-expanding textarea\n * const [message, setMessage] = useState('');\n *\n * <AutoSizedTextArea\n * value={message}\n * onChange={(e) => setMessage(e.target.value)}\n * placeholder=\"Type your message...\"\n * autoSize={true}\n * maxRows={8}\n * className=\"min-h-10\"\n * onKeyDown={(e) => {\n * if (e.key === 'Enter' && !e.shiftKey) {\n * e.preventDefault();\n * sendMessage(message);\n * setMessage('');\n * }\n * }}\n * />\n *\n * // Note-taking with generous height limits\n * <AutoSizedTextArea\n * defaultValue={note.content}\n * onChange={handleNoteChange}\n * placeholder=\"Write your notes here...\"\n * autoSize={true}\n * maxRows={20}\n * variant=\"default\"\n * />\n * ```\n */\nexport const AutoSizedTextArea: FC<AutoSizedTextAreaProps> = ({\n className,\n autoSize = true,\n onChange,\n maxRows = 999,\n ref,\n ...props\n}) => {\n const textAreaRef = useRef<HTMLTextAreaElement | null>(null);\n\n useImperativeHandle(ref, () => textAreaRef.current!);\n\n const adjustHeight = () => {\n const textAreaEl = textAreaRef.current;\n\n if (!textAreaEl || !autoSize) return;\n\n const textAreaStyle = textAreaEl.style;\n\n // Reset height to get accurate scrollHeight\n textAreaStyle.height = 'auto';\n const scrollHeight = textAreaEl.scrollHeight;\n const maxHeight = LINE_HEIGHT * maxRows + LINE_PADDING;\n const minHeight = LINE_HEIGHT + LINE_PADDING;\n\n // Set the new height\n textAreaStyle.height = `${Math.max(Math.min(scrollHeight, maxHeight), minHeight)}px`;\n };\n\n useLayoutEffect(() => {\n adjustHeight();\n }, [props.value, props.defaultValue, adjustHeight]);\n\n const handleChange: ChangeEventHandler<HTMLTextAreaElement> = (e) => {\n onChange?.(e);\n adjustHeight();\n };\n\n const setRef = (el: HTMLTextAreaElement | null) => {\n textAreaRef.current = el;\n if (el) {\n adjustHeight();\n }\n };\n\n return (\n <TextArea\n ref={setRef}\n onChange={handleChange}\n className={cn('overflow-y-auto', autoSize && 'resize-none', className)}\n {...props}\n />\n );\n};\n"],"mappings":";;;;;;;;AAkDA,MAAM,cAAc;AACpB,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DrB,MAAa,qBAAiD,EAC5D,WACA,WAAW,MACX,UACA,UAAU,KACV,KACA,GAAG,YACC;CACJ,MAAM,cAAc,OAAmC,IAAI;CAE3D,oBAAoB,WAAW,YAAY,OAAQ;CAEnD,MAAM,qBAAqB;EACzB,MAAM,aAAa,YAAY;EAE/B,IAAI,CAAC,cAAc,CAAC,UAAU;EAE9B,MAAM,gBAAgB,WAAW;EAGjC,cAAc,SAAS;EACvB,MAAM,eAAe,WAAW;EAChC,MAAM,YAAY,cAAc,UAAU;EAI1C,cAAc,SAAS,GAAG,KAAK,IAAI,KAAK,IAAI,cAAc,SAAS,GAAG,EAAS,EAAE;CACnF;CAEA,sBAAsB;EACpB,aAAa;CACf,GAAG;EAAC,MAAM;EAAO,MAAM;EAAc;CAAY,CAAC;CAElD,MAAM,gBAAyD,MAAM;EACnE,WAAW,CAAC;EACZ,aAAa;CACf;CAEA,MAAM,UAAU,OAAmC;EACjD,YAAY,UAAU;EACtB,IAAI,IACF,aAAa;CAEjB;CAEA,OACE,oBAAC,UAAD;EACE,KAAK;EACL,UAAU;EACV,WAAW,GAAG,mBAAmB,YAAY,eAAe,SAAS;EACrE,GAAI;CACL;AAEL"}
@@ -39,7 +39,8 @@ const AutoCompleteTextarea = ({ isActive = true, suggestion: suggestionProp, ...
39
39
  const active = suggestionProp ?? suggestion;
40
40
  if (!active) return;
41
41
  const cursor = editorRef.current?.getCursorOffset() ?? text.length;
42
- setText(text.slice(0, cursor) + active + text.slice(cursor));
42
+ const next = text.slice(0, cursor) + active + text.slice(cursor);
43
+ setText(next);
43
44
  setSuggestion("");
44
45
  setTimeout(() => {
45
46
  editorRef.current?.focus();
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/AutocompleteTextArea.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ChangeEvent,\n type FC,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport type { AutoSizedTextAreaProps } from './AutoSizeTextArea';\nimport {\n ContentEditableTextArea,\n type ContentEditableTextAreaHandle,\n} from './ContentEditableTextArea';\n\n/**\n * Props for the AutocompleteTextArea component.\n *\n * Extends AutoSizedTextAreaProps with inline autocomplete functionality\n * using a contentEditable-based textarea.\n *\n * @example\n * ```tsx\n * <AutoCompleteTextarea\n * placeholder=\"Start typing...\"\n * isActive={true}\n * autoSize={true}\n * maxRows={10}\n * />\n * ```\n */\nexport type AutocompleteTextAreaProps = AutoSizedTextAreaProps & {\n /** Whether inline autocomplete ghost text is active */\n isActive?: boolean;\n /** Manual suggestion text to display as ghost text after the cursor */\n suggestion?: string;\n};\n\n/**\n * AutoCompleteTextarea Component\n *\n * A textarea with inline autocomplete ghost text, built on a contentEditable div\n * instead of a native `<textarea>`. Ghost text (suggestions) is rendered inline\n * at the cursor position and can be accepted with the Tab key.\n *\n * The component wraps `ContentEditableTextArea` and manages suggestion state.\n * When `suggestion` prop is provided it is shown as ghost text at the end of the\n * current text. When `isActive` is false, ghost text is hidden.\n *\n * @example\n * ```tsx\n * <AutoCompleteTextarea\n * value={content}\n * onChange={handleChange}\n * suggestion=\"suggested completion...\"\n * isActive={true}\n * autoSize={true}\n * />\n * ```\n */\nexport const AutoCompleteTextarea: FC<AutocompleteTextAreaProps> = ({\n isActive = true,\n suggestion: suggestionProp,\n ...props\n}) => {\n const defaultValue = String(props.value ?? props.defaultValue ?? '');\n const [text, setText] = useState(defaultValue);\n const [suggestion, setSuggestion] = useState('');\n const editorRef = useRef<ContentEditableTextAreaHandle>(null);\n\n useEffect(() => {\n if (typeof props.value === 'undefined') return;\n setText(String(props.value ?? props.defaultValue ?? ''));\n }, [props.value, props.defaultValue]);\n\n const acceptSuggestion = () => {\n const active = suggestionProp ?? suggestion;\n if (!active) return;\n\n const cursor = editorRef.current?.getCursorOffset() ?? text.length;\n const next = text.slice(0, cursor) + active + text.slice(cursor);\n setText(next);\n setSuggestion('');\n\n setTimeout(() => {\n editorRef.current?.focus();\n editorRef.current?.setCursorAtOffset(cursor + active.length);\n }, 0);\n };\n\n const activeGhost = isActive\n ? (suggestionProp ?? (suggestion || undefined))\n : undefined;\n const textLines = text.split('\\n');\n const activeLine = suggestionProp ? textLines.length - 1 : undefined;\n const activeOffset = suggestionProp\n ? (textLines[textLines.length - 1]?.length ?? 0)\n : undefined;\n\n return (\n <ContentEditableTextArea\n ref={editorRef}\n value={text}\n onChange={(val) => {\n setText(val);\n setSuggestion('');\n\n if (props.onChange) {\n const evt = {\n target: { value: val },\n currentTarget: { value: val },\n } as ChangeEvent<HTMLTextAreaElement>;\n props.onChange(evt);\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'Tab' && (suggestionProp ?? suggestion)) {\n e.preventDefault();\n acceptSuggestion();\n }\n props.onKeyDown?.(e as unknown as KeyboardEvent<HTMLTextAreaElement>);\n }}\n ghostText={activeGhost}\n ghostLine={activeLine}\n ghostOffset={activeOffset}\n placeholder={props.placeholder}\n disabled={props.disabled}\n autoSize={props.autoSize}\n maxRows={props.maxRows}\n minRows={props.rows}\n variant={props.variant}\n validationStyleEnabled={props.validationStyleEnabled}\n className={props.className}\n dir={props.dir as 'ltr' | 'rtl' | 'auto'}\n aria-label={props['aria-label']}\n aria-invalid={props['aria-invalid']}\n aria-describedby={props['aria-describedby']}\n data-testid={(props as Record<string, unknown>)['data-testid'] as string}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAa,wBAAuD,EAClE,WAAW,MACX,YAAY,gBACZ,GAAG,YACC;CAEJ,MAAM,CAAC,MAAM,WAAW,SADH,OAAO,MAAM,SAAS,MAAM,gBAAgB,GACpB,CAAC;CAC9C,MAAM,CAAC,YAAY,iBAAiB,SAAS,GAAG;CAChD,MAAM,YAAY,OAAsC,KAAK;AAE7D,iBAAgB;AACd,MAAI,OAAO,MAAM,UAAU,YAAa;AACxC,UAAQ,OAAO,MAAM,SAAS,MAAM,gBAAgB,GAAG,CAAC;IACvD,CAAC,MAAM,OAAO,MAAM,aAAa,CAAC;CAErC,MAAM,yBAAyB;EAC7B,MAAM,SAAS,kBAAkB;AACjC,MAAI,CAAC,OAAQ;EAEb,MAAM,SAAS,UAAU,SAAS,iBAAiB,IAAI,KAAK;AAE5D,UADa,KAAK,MAAM,GAAG,OAAO,GAAG,SAAS,KAAK,MAAM,OAAO,CACnD;AACb,gBAAc,GAAG;AAEjB,mBAAiB;AACf,aAAU,SAAS,OAAO;AAC1B,aAAU,SAAS,kBAAkB,SAAS,OAAO,OAAO;KAC3D,EAAE;;CAGP,MAAM,cAAc,WACf,mBAAmB,cAAc,UAClC;CACJ,MAAM,YAAY,KAAK,MAAM,KAAK;AAMlC,QACE,oBAAC,yBAAD;EACE,KAAK;EACL,OAAO;EACP,WAAW,QAAQ;AACjB,WAAQ,IAAI;AACZ,iBAAc,GAAG;AAEjB,OAAI,MAAM,UAAU;IAClB,MAAM,MAAM;KACV,QAAQ,EAAE,OAAO,KAAK;KACtB,eAAe,EAAE,OAAO,KAAK;KAC9B;AACD,UAAM,SAAS,IAAI;;;EAGvB,YAAY,MAAM;AAChB,OAAI,EAAE,QAAQ,UAAU,kBAAkB,aAAa;AACrD,MAAE,gBAAgB;AAClB,sBAAkB;;AAEpB,SAAM,YAAY,EAAmD;;EAEvE,WAAW;EACX,WA7Be,iBAAiB,UAAU,SAAS,IAAI;EA8BvD,aA7BiB,iBAChB,UAAU,UAAU,SAAS,IAAI,UAAU,IAC5C;EA4BA,aAAa,MAAM;EACnB,UAAU,MAAM;EAChB,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,SAAS,MAAM;EACf,wBAAwB,MAAM;EAC9B,WAAW,MAAM;EACjB,KAAK,MAAM;EACX,cAAY,MAAM;EAClB,gBAAc,MAAM;EACpB,oBAAkB,MAAM;EACxB,eAAc,MAAkC;EAChD"}
1
+ {"version":3,"file":"AutocompleteTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/AutocompleteTextArea.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ChangeEvent,\n type FC,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport type { AutoSizedTextAreaProps } from './AutoSizeTextArea';\nimport {\n ContentEditableTextArea,\n type ContentEditableTextAreaHandle,\n} from './ContentEditableTextArea';\n\n/**\n * Props for the AutocompleteTextArea component.\n *\n * Extends AutoSizedTextAreaProps with inline autocomplete functionality\n * using a contentEditable-based textarea.\n *\n * @example\n * ```tsx\n * <AutoCompleteTextarea\n * placeholder=\"Start typing...\"\n * isActive={true}\n * autoSize={true}\n * maxRows={10}\n * />\n * ```\n */\nexport type AutocompleteTextAreaProps = AutoSizedTextAreaProps & {\n /** Whether inline autocomplete ghost text is active */\n isActive?: boolean;\n /** Manual suggestion text to display as ghost text after the cursor */\n suggestion?: string;\n};\n\n/**\n * AutoCompleteTextarea Component\n *\n * A textarea with inline autocomplete ghost text, built on a contentEditable div\n * instead of a native `<textarea>`. Ghost text (suggestions) is rendered inline\n * at the cursor position and can be accepted with the Tab key.\n *\n * The component wraps `ContentEditableTextArea` and manages suggestion state.\n * When `suggestion` prop is provided it is shown as ghost text at the end of the\n * current text. When `isActive` is false, ghost text is hidden.\n *\n * @example\n * ```tsx\n * <AutoCompleteTextarea\n * value={content}\n * onChange={handleChange}\n * suggestion=\"suggested completion...\"\n * isActive={true}\n * autoSize={true}\n * />\n * ```\n */\nexport const AutoCompleteTextarea: FC<AutocompleteTextAreaProps> = ({\n isActive = true,\n suggestion: suggestionProp,\n ...props\n}) => {\n const defaultValue = String(props.value ?? props.defaultValue ?? '');\n const [text, setText] = useState(defaultValue);\n const [suggestion, setSuggestion] = useState('');\n const editorRef = useRef<ContentEditableTextAreaHandle>(null);\n\n useEffect(() => {\n if (typeof props.value === 'undefined') return;\n setText(String(props.value ?? props.defaultValue ?? ''));\n }, [props.value, props.defaultValue]);\n\n const acceptSuggestion = () => {\n const active = suggestionProp ?? suggestion;\n if (!active) return;\n\n const cursor = editorRef.current?.getCursorOffset() ?? text.length;\n const next = text.slice(0, cursor) + active + text.slice(cursor);\n setText(next);\n setSuggestion('');\n\n setTimeout(() => {\n editorRef.current?.focus();\n editorRef.current?.setCursorAtOffset(cursor + active.length);\n }, 0);\n };\n\n const activeGhost = isActive\n ? (suggestionProp ?? (suggestion || undefined))\n : undefined;\n const textLines = text.split('\\n');\n const activeLine = suggestionProp ? textLines.length - 1 : undefined;\n const activeOffset = suggestionProp\n ? (textLines[textLines.length - 1]?.length ?? 0)\n : undefined;\n\n return (\n <ContentEditableTextArea\n ref={editorRef}\n value={text}\n onChange={(val) => {\n setText(val);\n setSuggestion('');\n\n if (props.onChange) {\n const evt = {\n target: { value: val },\n currentTarget: { value: val },\n } as ChangeEvent<HTMLTextAreaElement>;\n props.onChange(evt);\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'Tab' && (suggestionProp ?? suggestion)) {\n e.preventDefault();\n acceptSuggestion();\n }\n props.onKeyDown?.(e as unknown as KeyboardEvent<HTMLTextAreaElement>);\n }}\n ghostText={activeGhost}\n ghostLine={activeLine}\n ghostOffset={activeOffset}\n placeholder={props.placeholder}\n disabled={props.disabled}\n autoSize={props.autoSize}\n maxRows={props.maxRows}\n minRows={props.rows}\n variant={props.variant}\n validationStyleEnabled={props.validationStyleEnabled}\n className={props.className}\n dir={props.dir as 'ltr' | 'rtl' | 'auto'}\n aria-label={props['aria-label']}\n aria-invalid={props['aria-invalid']}\n aria-describedby={props['aria-describedby']}\n data-testid={(props as Record<string, unknown>)['data-testid'] as string}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAa,wBAAuD,EAClE,WAAW,MACX,YAAY,gBACZ,GAAG,YACC;CAEJ,MAAM,CAAC,MAAM,WAAW,SADH,OAAO,MAAM,SAAS,MAAM,gBAAgB,EACrB,CAAC;CAC7C,MAAM,CAAC,YAAY,iBAAiB,SAAS,EAAE;CAC/C,MAAM,YAAY,OAAsC,IAAI;CAE5D,gBAAgB;EACd,IAAI,OAAO,MAAM,UAAU,aAAa;EACxC,QAAQ,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE,CAAC;CACzD,GAAG,CAAC,MAAM,OAAO,MAAM,YAAY,CAAC;CAEpC,MAAM,yBAAyB;EAC7B,MAAM,SAAS,kBAAkB;EACjC,IAAI,CAAC,QAAQ;EAEb,MAAM,SAAS,UAAU,SAAS,gBAAgB,KAAK,KAAK;EAC5D,MAAM,OAAO,KAAK,MAAM,GAAG,MAAM,IAAI,SAAS,KAAK,MAAM,MAAM;EAC/D,QAAQ,IAAI;EACZ,cAAc,EAAE;EAEhB,iBAAiB;GACf,UAAU,SAAS,MAAM;GACzB,UAAU,SAAS,kBAAkB,SAAS,OAAO,MAAM;EAC7D,GAAG,CAAC;CACN;CAEA,MAAM,cAAc,WACf,mBAAmB,cAAc,UAClC;CACJ,MAAM,YAAY,KAAK,MAAM,IAAI;CAMjC,OACE,oBAAC,yBAAD;EACE,KAAK;EACL,OAAO;EACP,WAAW,QAAQ;GACjB,QAAQ,GAAG;GACX,cAAc,EAAE;GAEhB,IAAI,MAAM,UAAU;IAClB,MAAM,MAAM;KACV,QAAQ,EAAE,OAAO,IAAI;KACrB,eAAe,EAAE,OAAO,IAAI;IAC9B;IACA,MAAM,SAAS,GAAG;GACpB;EACF;EACA,YAAY,MAAM;GAChB,IAAI,EAAE,QAAQ,UAAU,kBAAkB,aAAa;IACrD,EAAE,eAAe;IACjB,iBAAiB;GACnB;GACA,MAAM,YAAY,CAAkD;EACtE;EACA,WAAW;EACX,WA7Be,iBAAiB,UAAU,SAAS,IAAI;EA8BvD,aA7BiB,iBAChB,UAAU,UAAU,SAAS,EAAE,EAAE,UAAU,IAC5C;EA4BA,aAAa,MAAM;EACnB,UAAU,MAAM;EAChB,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,SAAS,MAAM;EACf,SAAS,MAAM;EACf,wBAAwB,MAAM;EAC9B,WAAW,MAAM;EACjB,KAAK,MAAM;EACX,cAAY,MAAM;EAClB,gBAAc,MAAM;EACpB,oBAAkB,MAAM;EACxB,eAAc,MAAkC;CACjD;AAEL"}
@@ -222,32 +222,39 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
222
222
  const currentText = linesRef.current.join("\n");
223
223
  if (e.key === "Enter") {
224
224
  e.preventDefault();
225
- applyTextChange(currentText.slice(0, selInfo.start) + "\n" + currentText.slice(selInfo.end), selInfo.start + 1);
225
+ const newText = currentText.slice(0, selInfo.start) + "\n" + currentText.slice(selInfo.end);
226
+ applyTextChange(newText, selInfo.start + 1);
226
227
  return;
227
228
  }
228
229
  if (e.key === "Backspace") {
229
230
  e.preventDefault();
230
- if (selInfo.hasSelection) applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end), selInfo.start);
231
- else {
231
+ if (selInfo.hasSelection) {
232
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);
233
+ applyTextChange(newText, selInfo.start);
234
+ } else {
232
235
  if (selInfo.start === 0) return;
233
236
  let deleteFrom;
234
237
  if (e.metaKey) deleteFrom = lineStart(currentText, selInfo.start);
235
238
  else if (e.altKey) deleteFrom = prevWordBoundary(currentText, selInfo.start);
236
239
  else deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);
237
- applyTextChange(currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start), deleteFrom);
240
+ const newText = currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);
241
+ applyTextChange(newText, deleteFrom);
238
242
  }
239
243
  return;
240
244
  }
241
245
  if (e.key === "Delete") {
242
246
  e.preventDefault();
243
- if (selInfo.hasSelection) applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end), selInfo.start);
244
- else {
247
+ if (selInfo.hasSelection) {
248
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);
249
+ applyTextChange(newText, selInfo.start);
250
+ } else {
245
251
  if (selInfo.start >= currentText.length) return;
246
252
  let deleteTo;
247
253
  if (e.metaKey) deleteTo = lineEnd(currentText, selInfo.start);
248
254
  else if (e.altKey) deleteTo = nextWordBoundary(currentText, selInfo.start);
249
255
  else deleteTo = nextGraphemeBoundary(currentText, selInfo.start);
250
- applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(deleteTo), selInfo.start);
256
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);
257
+ applyTextChange(newText, selInfo.start);
251
258
  }
252
259
  return;
253
260
  }
@@ -263,7 +270,8 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
263
270
  const currentText = linesRef.current.join("\n");
264
271
  const selectedText = currentText.slice(selInfo.start, selInfo.end);
265
272
  e.clipboardData.setData("text/plain", selectedText);
266
- applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end), selInfo.start);
273
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);
274
+ applyTextChange(newText, selInfo.start);
267
275
  };
268
276
  const handlePaste = (e) => {
269
277
  if (disabled) {
@@ -276,7 +284,8 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
276
284
  const selInfo = getSelectionOffsets();
277
285
  if (!selInfo) return;
278
286
  const currentText = linesRef.current.join("\n");
279
- applyTextChange(currentText.slice(0, selInfo.start) + pastedText + currentText.slice(selInfo.end), selInfo.start + pastedText.length);
287
+ const newText = currentText.slice(0, selInfo.start) + pastedText + currentText.slice(selInfo.end);
288
+ applyTextChange(newText, selInfo.start + pastedText.length);
280
289
  };
281
290
  const handleBeforeInput = (e) => {
282
291
  if (disabled) return;
@@ -289,15 +298,19 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
289
298
  const selInfo = getSelectionOffsets();
290
299
  if (!selInfo) return;
291
300
  const currentText = linesRef.current.join("\n");
292
- if (selInfo.hasSelection) applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end), selInfo.start);
293
- else if (inputType === "deleteContentBackward") {
301
+ if (selInfo.hasSelection) {
302
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);
303
+ applyTextChange(newText, selInfo.start);
304
+ } else if (inputType === "deleteContentBackward") {
294
305
  if (selInfo.start === 0) return;
295
306
  const deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);
296
- applyTextChange(currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start), deleteFrom);
307
+ const newText = currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);
308
+ applyTextChange(newText, deleteFrom);
297
309
  } else {
298
310
  if (selInfo.start >= currentText.length) return;
299
311
  const deleteTo = nextGraphemeBoundary(currentText, selInfo.start);
300
- applyTextChange(currentText.slice(0, selInfo.start) + currentText.slice(deleteTo), selInfo.start);
312
+ const newText = currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);
313
+ applyTextChange(newText, selInfo.start);
301
314
  }
302
315
  return;
303
316
  }
@@ -307,7 +320,8 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
307
320
  if (!selInfo) return;
308
321
  const currentText = linesRef.current.join("\n");
309
322
  const replacement = inputEvent.data ?? inputEvent.dataTransfer?.getData("text/plain") ?? "";
310
- applyTextChange(currentText.slice(0, selInfo.start) + replacement + currentText.slice(selInfo.end), selInfo.start + replacement.length);
323
+ const newText = currentText.slice(0, selInfo.start) + replacement + currentText.slice(selInfo.end);
324
+ applyTextChange(newText, selInfo.start + replacement.length);
311
325
  return;
312
326
  }
313
327
  if (inputType === "insertText" && inputEvent.data) {
@@ -316,7 +330,8 @@ const useContentEditable = ({ value, defaultValue, onChange, disabled = false })
316
330
  if (!selInfo) return;
317
331
  const currentText = linesRef.current.join("\n");
318
332
  const inserted = inputEvent.data;
319
- applyTextChange(currentText.slice(0, selInfo.start) + inserted + currentText.slice(selInfo.end), selInfo.start + inserted.length);
333
+ const newText = currentText.slice(0, selInfo.start) + inserted + currentText.slice(selInfo.end);
334
+ applyTextChange(newText, selInfo.start + inserted.length);
320
335
  }
321
336
  };
322
337
  const handleDrop = (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ContentEditableTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/ContentEditableTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport type { VariantProps } from 'class-variance-authority';\nimport {\n type ClipboardEvent,\n type DragEvent,\n type FC,\n type HTMLAttributes,\n type InputEvent,\n type KeyboardEvent,\n type Ref,\n type RefObject,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { inputVariants } from '../Input';\n\ntype CaretPosition = {\n line: number;\n offset: number;\n};\n\ntype UseContentEditableOptions = {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n};\n\nconst ZERO_WIDTH_SPACE = '\\u200B';\n\nconst getTextFromContainer = (container: HTMLDivElement): string => {\n const lineEls = container.querySelectorAll('[data-line]');\n if (lineEls.length === 0) {\n return (container.textContent ?? '').split(ZERO_WIDTH_SPACE).join('');\n }\n\n return Array.from(lineEls)\n .map((el) => {\n const editable = el.querySelector('[data-editable]');\n const raw = editable?.textContent ?? el.textContent ?? '';\n return raw === ZERO_WIDTH_SPACE\n ? ''\n : raw.split(ZERO_WIDTH_SPACE).join('');\n })\n .join('\\n');\n};\n\nconst splitLines = (text: string): string[] => {\n const lines = text.split('\\n');\n return lines.length === 0 ? [''] : lines;\n};\n\n// Cached Intl.Segmenter for grapheme-aware deletion (emoji, CJK, etc.)\n// Intl.Segmenter is ES2022+ but we feature-detect at runtime.\ntype GraphemeSegmenter = {\n segment: (input: string) => Iterable<{ segment: string }>;\n};\n\nconst createGraphemeSegmenter = (): GraphemeSegmenter | null => {\n if (typeof Intl === 'undefined' || !('Segmenter' in Intl)) return null;\n const SegmenterCtor = (\n Intl as unknown as Record<\n string,\n new (\n ...args: unknown[]\n ) => GraphemeSegmenter\n >\n ).Segmenter;\n return new SegmenterCtor(undefined, { granularity: 'grapheme' });\n};\n\nconst graphemeSegmenter = createGraphemeSegmenter();\n\n/**\n * Find the previous grapheme cluster boundary for safe deletion.\n * Falls back to code-point-aware deletion if Intl.Segmenter is unavailable.\n */\nconst prevGraphemeBoundary = (text: string, offset: number): number => {\n if (offset <= 0) return 0;\n\n if (graphemeSegmenter) {\n const segments = [...graphemeSegmenter.segment(text.slice(0, offset))];\n const last = segments[segments.length - 1];\n return last ? offset - last.segment.length : offset - 1;\n }\n\n // Fallback: handle surrogate pairs\n const code = text.charCodeAt(offset - 1);\n if (code >= 0xdc00 && code <= 0xdfff && offset >= 2) {\n return offset - 2;\n }\n return offset - 1;\n};\n\n/**\n * Find the next grapheme cluster boundary for safe forward deletion.\n */\nconst nextGraphemeBoundary = (text: string, offset: number): number => {\n if (offset >= text.length) return text.length;\n\n if (graphemeSegmenter) {\n const segments = [...graphemeSegmenter.segment(text.slice(offset))];\n const first = segments[0];\n return first ? offset + first.segment.length : offset + 1;\n }\n\n // Fallback: handle surrogate pairs\n const code = text.charCodeAt(offset);\n if (code >= 0xd800 && code <= 0xdbff && offset + 1 < text.length) {\n return offset + 2;\n }\n return offset + 1;\n};\n\n/**\n * Find the previous word boundary for Option+Backspace.\n */\nconst prevWordBoundary = (text: string, offset: number): number => {\n if (offset <= 0) return 0;\n let i = offset - 1;\n // Skip whitespace\n while (i > 0 && /\\s/.test(text[i - 1])) i--;\n // Skip word characters\n while (i > 0 && /\\S/.test(text[i - 1])) i--;\n return i;\n};\n\n/**\n * Find the next word boundary for Option+Delete.\n */\nconst nextWordBoundary = (text: string, offset: number): number => {\n if (offset >= text.length) return text.length;\n let i = offset;\n // Skip word characters\n while (i < text.length && /\\S/.test(text[i])) i++;\n // Skip whitespace\n while (i < text.length && /\\s/.test(text[i])) i++;\n return i;\n};\n\n/**\n * Find the start of the current line (for Cmd+Backspace).\n */\nconst lineStart = (text: string, offset: number): number => {\n const before = text.slice(0, offset);\n const lastNewline = before.lastIndexOf('\\n');\n return lastNewline + 1;\n};\n\n/**\n * Find the end of the current line (for Cmd+Delete).\n */\nconst lineEnd = (text: string, offset: number): number => {\n const nextNewline = text.indexOf('\\n', offset);\n return nextNewline === -1 ? text.length : nextNewline;\n};\n\nexport const useContentEditable = ({\n value,\n defaultValue,\n onChange,\n disabled = false,\n}: UseContentEditableOptions) => {\n const initialValue = value ?? defaultValue ?? '';\n const [lines, setLines] = useState<string[]>(() => splitLines(initialValue));\n const containerRef = useRef<HTMLDivElement | null>(null);\n const pendingCaretRef = useRef<CaretPosition | null>(null);\n const isControlled = value !== undefined;\n\n // Keep a ref to the latest lines to avoid stale closures in rapid typing\n const linesRef = useRef(lines);\n linesRef.current = lines;\n\n useEffect(() => {\n if (isControlled && value !== undefined) {\n setLines(splitLines(value));\n }\n }, [value, isControlled]);\n\n const getText = () => linesRef.current.join('\\n');\n\n const getCaretPosition = (): CaretPosition | null => {\n const sel = window.getSelection();\n if (!sel?.rangeCount || !containerRef.current) return null;\n\n const range = sel.getRangeAt(0);\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n\n for (let i = 0; i < lineEls.length; i++) {\n if (lineEls[i].contains(range.startContainer)) {\n return { line: i, offset: range.startOffset };\n }\n }\n return null;\n };\n\n const getSelectionOffsets = (): {\n start: number;\n end: number;\n hasSelection: boolean;\n } | null => {\n const sel = window.getSelection();\n if (!sel?.rangeCount || !containerRef.current) return null;\n\n const range = sel.getRangeAt(0);\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n const currentLines = linesRef.current;\n\n const findOffset = (node: Node, nodeOffset: number): number => {\n for (let i = 0; i < lineEls.length; i++) {\n if (lineEls[i].contains(node)) {\n let flat = 0;\n for (let j = 0; j < i; j++) {\n flat += currentLines[j].length + 1;\n }\n return flat + Math.min(nodeOffset, currentLines[i]?.length ?? 0);\n }\n }\n // Selection is on the root container (e.g. select-all)\n if (node === containerRef.current) {\n if (nodeOffset === 0) return 0;\n return currentLines.join('\\n').length;\n }\n return 0;\n };\n\n const start = findOffset(range.startContainer, range.startOffset);\n const end = findOffset(range.endContainer, range.endOffset);\n\n return {\n start: Math.min(start, end),\n end: Math.max(start, end),\n hasSelection: !range.collapsed,\n };\n };\n\n const setCaretPosition = (pos: CaretPosition) => {\n if (!containerRef.current) return;\n\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n const lineEl = lineEls[pos.line];\n if (!lineEl) return;\n\n const editable = lineEl.querySelector('[data-editable]');\n const node =\n editable?.firstChild ?? editable ?? lineEl.firstChild ?? lineEl;\n\n const sel = window.getSelection();\n if (!sel) return;\n\n const range = document.createRange();\n const maxOff = Math.min(pos.offset, node.textContent?.length ?? 0);\n\n try {\n range.setStart(node, maxOff);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n } catch {\n range.selectNodeContents(node);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n };\n\n useLayoutEffect(() => {\n if (pendingCaretRef.current && containerRef.current) {\n setCaretPosition(pendingCaretRef.current);\n pendingCaretRef.current = null;\n }\n });\n\n const flatOffsetFromCaret = (pos: CaretPosition): number => {\n const currentLines = linesRef.current;\n let offset = 0;\n for (let i = 0; i < pos.line; i++) {\n offset += currentLines[i].length + 1;\n }\n return offset + pos.offset;\n };\n\n const caretFromFlatOffset = (\n flat: number,\n targetLines: string[]\n ): CaretPosition => {\n let rem = flat;\n for (let i = 0; i < targetLines.length; i++) {\n if (rem <= targetLines[i].length) {\n return { line: i, offset: rem };\n }\n rem -= targetLines[i].length + 1;\n }\n return {\n line: targetLines.length - 1,\n offset: targetLines[targetLines.length - 1]?.length ?? 0,\n };\n };\n\n const getCursorOffset = (): number => {\n const pos = getCaretPosition();\n if (!pos) return 0;\n return flatOffsetFromCaret(pos);\n };\n\n /**\n * Applies a text mutation: computes new lines, sets pending caret, updates state.\n */\n const applyTextChange = (newText: string, caretOffset: number) => {\n const newLines = splitLines(newText);\n pendingCaretRef.current = caretFromFlatOffset(caretOffset, newLines);\n setLines(newLines);\n onChange?.(newText);\n };\n\n const handleInput = () => {\n if (pendingCaretRef.current !== null) return;\n if (disabled || !containerRef.current) return;\n\n const caretPos = getCaretPosition();\n const newText = getTextFromContainer(containerRef.current);\n const newLines = splitLines(newText);\n\n pendingCaretRef.current = caretPos;\n setLines(newLines);\n onChange?.(newText);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n // Don't intercept during IME composition (CJK input)\n if (e.nativeEvent.isComposing) return;\n\n // Block undo/redo - browser would mutate DOM out of sync with React\n if ((e.metaKey || e.ctrlKey) && e.key === 'z') {\n e.preventDefault();\n return;\n }\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n\n if (e.key === 'Enter') {\n e.preventDefault();\n const newText =\n currentText.slice(0, selInfo.start) +\n '\\n' +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + 1);\n return;\n }\n\n if (e.key === 'Backspace') {\n e.preventDefault();\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else {\n if (selInfo.start === 0) return;\n\n let deleteFrom: number;\n if (e.metaKey) {\n // Cmd+Backspace: delete to start of line\n deleteFrom = lineStart(currentText, selInfo.start);\n } else if (e.altKey) {\n // Option+Backspace: delete previous word\n deleteFrom = prevWordBoundary(currentText, selInfo.start);\n } else {\n // Regular backspace: delete one grapheme\n deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);\n }\n\n const newText =\n currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);\n applyTextChange(newText, deleteFrom);\n }\n return;\n }\n\n if (e.key === 'Delete') {\n e.preventDefault();\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else {\n if (selInfo.start >= currentText.length) return;\n\n let deleteTo: number;\n if (e.metaKey) {\n // Cmd+Delete: delete to end of line\n deleteTo = lineEnd(currentText, selInfo.start);\n } else if (e.altKey) {\n // Option+Delete: delete next word\n deleteTo = nextWordBoundary(currentText, selInfo.start);\n } else {\n // Regular delete: delete one grapheme\n deleteTo = nextGraphemeBoundary(currentText, selInfo.start);\n }\n\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);\n applyTextChange(newText, selInfo.start);\n }\n return;\n }\n };\n\n const handleCut = (e: ClipboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo?.hasSelection) return;\n\n const currentText = linesRef.current.join('\\n');\n const selectedText = currentText.slice(selInfo.start, selInfo.end);\n\n // Write selected text to clipboard\n e.clipboardData.setData('text/plain', selectedText);\n\n // Delete the selected text\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n e.preventDefault();\n const pastedText = e.clipboardData.getData('text/plain');\n if (!pastedText) return;\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const newText =\n currentText.slice(0, selInfo.start) +\n pastedText +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + pastedText.length);\n };\n\n const handleBeforeInput = (e: InputEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n const inputEvent = e.nativeEvent as InputEvent;\n\n // Don't intercept during IME composition (CJK input)\n if (inputEvent.isComposing) return;\n\n const inputType = inputEvent.inputType;\n\n // Skip types handled by handleKeyDown (when keydown fires)\n if (inputType === 'insertParagraph' || inputType === 'insertLineBreak') {\n return;\n }\n\n // Handle deletions as fallback for mobile keyboards that don't fire keydown\n if (\n inputType === 'deleteContentBackward' ||\n inputType === 'deleteContentForward'\n ) {\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else if (inputType === 'deleteContentBackward') {\n if (selInfo.start === 0) return;\n const deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);\n const newText =\n currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);\n applyTextChange(newText, deleteFrom);\n } else {\n if (selInfo.start >= currentText.length) return;\n const deleteTo = nextGraphemeBoundary(currentText, selInfo.start);\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);\n applyTextChange(newText, selInfo.start);\n }\n return;\n }\n\n // Handle spell-check replacements\n if (inputType === 'insertReplacementText') {\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const replacement =\n inputEvent.data ?? inputEvent.dataTransfer?.getData('text/plain') ?? '';\n const newText =\n currentText.slice(0, selInfo.start) +\n replacement +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + replacement.length);\n return;\n }\n\n if (inputType === 'insertText' && inputEvent.data) {\n e.preventDefault();\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const inserted = inputEvent.data;\n const newText =\n currentText.slice(0, selInfo.start) +\n inserted +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + inserted.length);\n }\n };\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n // Block drag-and-drop to prevent uncontrolled DOM mutations\n e.preventDefault();\n };\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n };\n\n return {\n lines,\n containerRef,\n getText,\n handleInput,\n handleBeforeInput,\n handleKeyDown,\n handleCut,\n handlePaste,\n handleDrop,\n handleDragOver,\n getCaretPosition,\n setCaretPosition,\n getCursorOffset,\n caretFromFlatOffset,\n };\n};\n\ntype LineProps = {\n index: number;\n text: string;\n isLast: boolean;\n ghostText?: string;\n};\n\nconst Line: FC<LineProps> = ({ index, text, isLast, ghostText }) => (\n <span data-line={index} className=\"block min-h-[1.5rem]\">\n <span data-editable>{text || '\\u200B'}</span>\n {ghostText && (\n <span\n data-ghost\n className=\"pointer-events-none select-none text-neutral\"\n aria-hidden=\"true\"\n >\n {ghostText}\n </span>\n )}\n {!isLast && <br />}\n </span>\n);\n\nexport type ContentEditableTextAreaHandle = {\n getContainer: () => HTMLDivElement | null;\n getText: () => string;\n focus: () => void;\n getCursorOffset: () => number;\n setCursorAtOffset: (offset: number) => void;\n};\n\nexport type ContentEditableTextAreaProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> & {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n minRows?: number;\n maxRows?: number;\n autoSize?: boolean;\n validationStyleEnabled?: boolean;\n variant?: InputVariant | `${InputVariant}`;\n ghostText?: string;\n ghostLine?: number;\n ghostOffset?: number;\n ref?: Ref<ContentEditableTextAreaHandle>;\n dir?: 'ltr' | 'rtl' | 'auto';\n} & Omit<\n VariantProps<typeof inputVariants>,\n 'validationStyleEnabled' | 'variant'\n >;\n\nconst LINE_HEIGHT = 24;\nconst LINE_PADDING = 12;\n\nexport const ContentEditableTextArea: FC<ContentEditableTextAreaProps> = ({\n value,\n defaultValue,\n onChange,\n placeholder,\n disabled = false,\n minRows = 1,\n maxRows = 999,\n autoSize = true,\n validationStyleEnabled = false,\n variant,\n ghostText,\n ghostLine,\n ghostOffset,\n onClick,\n className,\n dir = 'auto',\n ref,\n ...rest\n}) => {\n const {\n lines,\n containerRef,\n getText,\n handleInput,\n handleBeforeInput,\n handleKeyDown,\n handleCut,\n handlePaste,\n handleDrop,\n handleDragOver,\n getCursorOffset,\n setCaretPosition,\n caretFromFlatOffset,\n } = useContentEditable({ value, defaultValue, onChange, disabled });\n\n const elRef = useRef<HTMLDivElement | null>(null);\n\n const setRef = (el: HTMLDivElement | null) => {\n elRef.current = el;\n (containerRef as RefObject<HTMLDivElement | null>).current = el;\n };\n\n useImperativeHandle(ref, () => ({\n getContainer: () => elRef.current,\n getText,\n focus: () => elRef.current?.focus(),\n getCursorOffset,\n setCursorAtOffset: (offset: number) => {\n setCaretPosition(caretFromFlatOffset(offset, lines));\n },\n }));\n\n useLayoutEffect(() => {\n if (!autoSize || !elRef.current) return;\n\n const el = elRef.current;\n const max = LINE_HEIGHT * maxRows + LINE_PADDING;\n const min = LINE_HEIGHT * minRows + LINE_PADDING;\n\n el.style.height = 'auto';\n const sh = el.scrollHeight;\n el.style.height = `${Math.max(Math.min(sh, max), min)}px`;\n el.style.overflowY = sh > max ? 'auto' : 'hidden';\n }, [lines, autoSize, maxRows, minRows]);\n\n const isEmpty = lines.length === 1 && lines[0] === '';\n const hasGhost =\n ghostText && ghostLine !== undefined && ghostOffset !== undefined;\n\n return (\n <div className=\"relative w-full\">\n {isEmpty && placeholder && (\n <div\n className=\"pointer-events-none absolute inset-0 select-none px-2 py-3 text-base text-neutral-400 leading-[1.5rem] md:py-2 md:text-sm\"\n aria-hidden=\"true\"\n >\n {placeholder}\n </div>\n )}\n\n <div\n {...rest}\n ref={setRef}\n role=\"textbox\"\n aria-multiline=\"true\"\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-autocomplete={hasGhost ? 'inline' : undefined}\n tabIndex={disabled ? -1 : 0}\n contentEditable={!disabled}\n suppressContentEditableWarning\n dir={dir}\n onInput={handleInput}\n onBeforeInput={handleBeforeInput}\n onKeyDown={handleKeyDown}\n onCut={handleCut}\n onPaste={handlePaste}\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onClick={onClick}\n className={cn(\n 'resize-none whitespace-pre-wrap break-words outline-none',\n inputVariants({\n variant,\n validationStyleEnabled: validationStyleEnabled\n ? 'enabled'\n : 'disabled',\n }),\n autoSize && 'overflow-y-auto',\n className\n )}\n >\n {lines.map((text, i) => (\n <Line\n key={i}\n index={i}\n text={text}\n isLast={i === lines.length - 1}\n ghostText={hasGhost && ghostLine === i ? ghostText : undefined}\n />\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ContentEditableTextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/ContentEditableTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport type { VariantProps } from 'class-variance-authority';\nimport {\n type ClipboardEvent,\n type DragEvent,\n type FC,\n type HTMLAttributes,\n type InputEvent,\n type KeyboardEvent,\n type Ref,\n type RefObject,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { inputVariants } from '../Input';\n\ntype CaretPosition = {\n line: number;\n offset: number;\n};\n\ntype UseContentEditableOptions = {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n};\n\nconst ZERO_WIDTH_SPACE = '\\u200B';\n\nconst getTextFromContainer = (container: HTMLDivElement): string => {\n const lineEls = container.querySelectorAll('[data-line]');\n if (lineEls.length === 0) {\n return (container.textContent ?? '').split(ZERO_WIDTH_SPACE).join('');\n }\n\n return Array.from(lineEls)\n .map((el) => {\n const editable = el.querySelector('[data-editable]');\n const raw = editable?.textContent ?? el.textContent ?? '';\n return raw === ZERO_WIDTH_SPACE\n ? ''\n : raw.split(ZERO_WIDTH_SPACE).join('');\n })\n .join('\\n');\n};\n\nconst splitLines = (text: string): string[] => {\n const lines = text.split('\\n');\n return lines.length === 0 ? [''] : lines;\n};\n\n// Cached Intl.Segmenter for grapheme-aware deletion (emoji, CJK, etc.)\n// Intl.Segmenter is ES2022+ but we feature-detect at runtime.\ntype GraphemeSegmenter = {\n segment: (input: string) => Iterable<{ segment: string }>;\n};\n\nconst createGraphemeSegmenter = (): GraphemeSegmenter | null => {\n if (typeof Intl === 'undefined' || !('Segmenter' in Intl)) return null;\n const SegmenterCtor = (\n Intl as unknown as Record<\n string,\n new (\n ...args: unknown[]\n ) => GraphemeSegmenter\n >\n ).Segmenter;\n return new SegmenterCtor(undefined, { granularity: 'grapheme' });\n};\n\nconst graphemeSegmenter = createGraphemeSegmenter();\n\n/**\n * Find the previous grapheme cluster boundary for safe deletion.\n * Falls back to code-point-aware deletion if Intl.Segmenter is unavailable.\n */\nconst prevGraphemeBoundary = (text: string, offset: number): number => {\n if (offset <= 0) return 0;\n\n if (graphemeSegmenter) {\n const segments = [...graphemeSegmenter.segment(text.slice(0, offset))];\n const last = segments[segments.length - 1];\n return last ? offset - last.segment.length : offset - 1;\n }\n\n // Fallback: handle surrogate pairs\n const code = text.charCodeAt(offset - 1);\n if (code >= 0xdc00 && code <= 0xdfff && offset >= 2) {\n return offset - 2;\n }\n return offset - 1;\n};\n\n/**\n * Find the next grapheme cluster boundary for safe forward deletion.\n */\nconst nextGraphemeBoundary = (text: string, offset: number): number => {\n if (offset >= text.length) return text.length;\n\n if (graphemeSegmenter) {\n const segments = [...graphemeSegmenter.segment(text.slice(offset))];\n const first = segments[0];\n return first ? offset + first.segment.length : offset + 1;\n }\n\n // Fallback: handle surrogate pairs\n const code = text.charCodeAt(offset);\n if (code >= 0xd800 && code <= 0xdbff && offset + 1 < text.length) {\n return offset + 2;\n }\n return offset + 1;\n};\n\n/**\n * Find the previous word boundary for Option+Backspace.\n */\nconst prevWordBoundary = (text: string, offset: number): number => {\n if (offset <= 0) return 0;\n let i = offset - 1;\n // Skip whitespace\n while (i > 0 && /\\s/.test(text[i - 1])) i--;\n // Skip word characters\n while (i > 0 && /\\S/.test(text[i - 1])) i--;\n return i;\n};\n\n/**\n * Find the next word boundary for Option+Delete.\n */\nconst nextWordBoundary = (text: string, offset: number): number => {\n if (offset >= text.length) return text.length;\n let i = offset;\n // Skip word characters\n while (i < text.length && /\\S/.test(text[i])) i++;\n // Skip whitespace\n while (i < text.length && /\\s/.test(text[i])) i++;\n return i;\n};\n\n/**\n * Find the start of the current line (for Cmd+Backspace).\n */\nconst lineStart = (text: string, offset: number): number => {\n const before = text.slice(0, offset);\n const lastNewline = before.lastIndexOf('\\n');\n return lastNewline + 1;\n};\n\n/**\n * Find the end of the current line (for Cmd+Delete).\n */\nconst lineEnd = (text: string, offset: number): number => {\n const nextNewline = text.indexOf('\\n', offset);\n return nextNewline === -1 ? text.length : nextNewline;\n};\n\nexport const useContentEditable = ({\n value,\n defaultValue,\n onChange,\n disabled = false,\n}: UseContentEditableOptions) => {\n const initialValue = value ?? defaultValue ?? '';\n const [lines, setLines] = useState<string[]>(() => splitLines(initialValue));\n const containerRef = useRef<HTMLDivElement | null>(null);\n const pendingCaretRef = useRef<CaretPosition | null>(null);\n const isControlled = value !== undefined;\n\n // Keep a ref to the latest lines to avoid stale closures in rapid typing\n const linesRef = useRef(lines);\n linesRef.current = lines;\n\n useEffect(() => {\n if (isControlled && value !== undefined) {\n setLines(splitLines(value));\n }\n }, [value, isControlled]);\n\n const getText = () => linesRef.current.join('\\n');\n\n const getCaretPosition = (): CaretPosition | null => {\n const sel = window.getSelection();\n if (!sel?.rangeCount || !containerRef.current) return null;\n\n const range = sel.getRangeAt(0);\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n\n for (let i = 0; i < lineEls.length; i++) {\n if (lineEls[i].contains(range.startContainer)) {\n return { line: i, offset: range.startOffset };\n }\n }\n return null;\n };\n\n const getSelectionOffsets = (): {\n start: number;\n end: number;\n hasSelection: boolean;\n } | null => {\n const sel = window.getSelection();\n if (!sel?.rangeCount || !containerRef.current) return null;\n\n const range = sel.getRangeAt(0);\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n const currentLines = linesRef.current;\n\n const findOffset = (node: Node, nodeOffset: number): number => {\n for (let i = 0; i < lineEls.length; i++) {\n if (lineEls[i].contains(node)) {\n let flat = 0;\n for (let j = 0; j < i; j++) {\n flat += currentLines[j].length + 1;\n }\n return flat + Math.min(nodeOffset, currentLines[i]?.length ?? 0);\n }\n }\n // Selection is on the root container (e.g. select-all)\n if (node === containerRef.current) {\n if (nodeOffset === 0) return 0;\n return currentLines.join('\\n').length;\n }\n return 0;\n };\n\n const start = findOffset(range.startContainer, range.startOffset);\n const end = findOffset(range.endContainer, range.endOffset);\n\n return {\n start: Math.min(start, end),\n end: Math.max(start, end),\n hasSelection: !range.collapsed,\n };\n };\n\n const setCaretPosition = (pos: CaretPosition) => {\n if (!containerRef.current) return;\n\n const lineEls = containerRef.current.querySelectorAll('[data-line]');\n const lineEl = lineEls[pos.line];\n if (!lineEl) return;\n\n const editable = lineEl.querySelector('[data-editable]');\n const node =\n editable?.firstChild ?? editable ?? lineEl.firstChild ?? lineEl;\n\n const sel = window.getSelection();\n if (!sel) return;\n\n const range = document.createRange();\n const maxOff = Math.min(pos.offset, node.textContent?.length ?? 0);\n\n try {\n range.setStart(node, maxOff);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n } catch {\n range.selectNodeContents(node);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n };\n\n useLayoutEffect(() => {\n if (pendingCaretRef.current && containerRef.current) {\n setCaretPosition(pendingCaretRef.current);\n pendingCaretRef.current = null;\n }\n });\n\n const flatOffsetFromCaret = (pos: CaretPosition): number => {\n const currentLines = linesRef.current;\n let offset = 0;\n for (let i = 0; i < pos.line; i++) {\n offset += currentLines[i].length + 1;\n }\n return offset + pos.offset;\n };\n\n const caretFromFlatOffset = (\n flat: number,\n targetLines: string[]\n ): CaretPosition => {\n let rem = flat;\n for (let i = 0; i < targetLines.length; i++) {\n if (rem <= targetLines[i].length) {\n return { line: i, offset: rem };\n }\n rem -= targetLines[i].length + 1;\n }\n return {\n line: targetLines.length - 1,\n offset: targetLines[targetLines.length - 1]?.length ?? 0,\n };\n };\n\n const getCursorOffset = (): number => {\n const pos = getCaretPosition();\n if (!pos) return 0;\n return flatOffsetFromCaret(pos);\n };\n\n /**\n * Applies a text mutation: computes new lines, sets pending caret, updates state.\n */\n const applyTextChange = (newText: string, caretOffset: number) => {\n const newLines = splitLines(newText);\n pendingCaretRef.current = caretFromFlatOffset(caretOffset, newLines);\n setLines(newLines);\n onChange?.(newText);\n };\n\n const handleInput = () => {\n if (pendingCaretRef.current !== null) return;\n if (disabled || !containerRef.current) return;\n\n const caretPos = getCaretPosition();\n const newText = getTextFromContainer(containerRef.current);\n const newLines = splitLines(newText);\n\n pendingCaretRef.current = caretPos;\n setLines(newLines);\n onChange?.(newText);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n // Don't intercept during IME composition (CJK input)\n if (e.nativeEvent.isComposing) return;\n\n // Block undo/redo - browser would mutate DOM out of sync with React\n if ((e.metaKey || e.ctrlKey) && e.key === 'z') {\n e.preventDefault();\n return;\n }\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n\n if (e.key === 'Enter') {\n e.preventDefault();\n const newText =\n currentText.slice(0, selInfo.start) +\n '\\n' +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + 1);\n return;\n }\n\n if (e.key === 'Backspace') {\n e.preventDefault();\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else {\n if (selInfo.start === 0) return;\n\n let deleteFrom: number;\n if (e.metaKey) {\n // Cmd+Backspace: delete to start of line\n deleteFrom = lineStart(currentText, selInfo.start);\n } else if (e.altKey) {\n // Option+Backspace: delete previous word\n deleteFrom = prevWordBoundary(currentText, selInfo.start);\n } else {\n // Regular backspace: delete one grapheme\n deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);\n }\n\n const newText =\n currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);\n applyTextChange(newText, deleteFrom);\n }\n return;\n }\n\n if (e.key === 'Delete') {\n e.preventDefault();\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else {\n if (selInfo.start >= currentText.length) return;\n\n let deleteTo: number;\n if (e.metaKey) {\n // Cmd+Delete: delete to end of line\n deleteTo = lineEnd(currentText, selInfo.start);\n } else if (e.altKey) {\n // Option+Delete: delete next word\n deleteTo = nextWordBoundary(currentText, selInfo.start);\n } else {\n // Regular delete: delete one grapheme\n deleteTo = nextGraphemeBoundary(currentText, selInfo.start);\n }\n\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);\n applyTextChange(newText, selInfo.start);\n }\n return;\n }\n };\n\n const handleCut = (e: ClipboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo?.hasSelection) return;\n\n const currentText = linesRef.current.join('\\n');\n const selectedText = currentText.slice(selInfo.start, selInfo.end);\n\n // Write selected text to clipboard\n e.clipboardData.setData('text/plain', selectedText);\n\n // Delete the selected text\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLDivElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n e.preventDefault();\n const pastedText = e.clipboardData.getData('text/plain');\n if (!pastedText) return;\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const newText =\n currentText.slice(0, selInfo.start) +\n pastedText +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + pastedText.length);\n };\n\n const handleBeforeInput = (e: InputEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n const inputEvent = e.nativeEvent as InputEvent;\n\n // Don't intercept during IME composition (CJK input)\n if (inputEvent.isComposing) return;\n\n const inputType = inputEvent.inputType;\n\n // Skip types handled by handleKeyDown (when keydown fires)\n if (inputType === 'insertParagraph' || inputType === 'insertLineBreak') {\n return;\n }\n\n // Handle deletions as fallback for mobile keyboards that don't fire keydown\n if (\n inputType === 'deleteContentBackward' ||\n inputType === 'deleteContentForward'\n ) {\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n\n if (selInfo.hasSelection) {\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start);\n } else if (inputType === 'deleteContentBackward') {\n if (selInfo.start === 0) return;\n const deleteFrom = prevGraphemeBoundary(currentText, selInfo.start);\n const newText =\n currentText.slice(0, deleteFrom) + currentText.slice(selInfo.start);\n applyTextChange(newText, deleteFrom);\n } else {\n if (selInfo.start >= currentText.length) return;\n const deleteTo = nextGraphemeBoundary(currentText, selInfo.start);\n const newText =\n currentText.slice(0, selInfo.start) + currentText.slice(deleteTo);\n applyTextChange(newText, selInfo.start);\n }\n return;\n }\n\n // Handle spell-check replacements\n if (inputType === 'insertReplacementText') {\n e.preventDefault();\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const replacement =\n inputEvent.data ?? inputEvent.dataTransfer?.getData('text/plain') ?? '';\n const newText =\n currentText.slice(0, selInfo.start) +\n replacement +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + replacement.length);\n return;\n }\n\n if (inputType === 'insertText' && inputEvent.data) {\n e.preventDefault();\n\n const selInfo = getSelectionOffsets();\n if (!selInfo) return;\n\n const currentText = linesRef.current.join('\\n');\n const inserted = inputEvent.data;\n const newText =\n currentText.slice(0, selInfo.start) +\n inserted +\n currentText.slice(selInfo.end);\n applyTextChange(newText, selInfo.start + inserted.length);\n }\n };\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n // Block drag-and-drop to prevent uncontrolled DOM mutations\n e.preventDefault();\n };\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n };\n\n return {\n lines,\n containerRef,\n getText,\n handleInput,\n handleBeforeInput,\n handleKeyDown,\n handleCut,\n handlePaste,\n handleDrop,\n handleDragOver,\n getCaretPosition,\n setCaretPosition,\n getCursorOffset,\n caretFromFlatOffset,\n };\n};\n\ntype LineProps = {\n index: number;\n text: string;\n isLast: boolean;\n ghostText?: string;\n};\n\nconst Line: FC<LineProps> = ({ index, text, isLast, ghostText }) => (\n <span data-line={index} className=\"block min-h-[1.5rem]\">\n <span data-editable>{text || '\\u200B'}</span>\n {ghostText && (\n <span\n data-ghost\n className=\"pointer-events-none select-none text-neutral\"\n aria-hidden=\"true\"\n >\n {ghostText}\n </span>\n )}\n {!isLast && <br />}\n </span>\n);\n\nexport type ContentEditableTextAreaHandle = {\n getContainer: () => HTMLDivElement | null;\n getText: () => string;\n focus: () => void;\n getCursorOffset: () => number;\n setCursorAtOffset: (offset: number) => void;\n};\n\nexport type ContentEditableTextAreaProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> & {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n minRows?: number;\n maxRows?: number;\n autoSize?: boolean;\n validationStyleEnabled?: boolean;\n variant?: InputVariant | `${InputVariant}`;\n ghostText?: string;\n ghostLine?: number;\n ghostOffset?: number;\n ref?: Ref<ContentEditableTextAreaHandle>;\n dir?: 'ltr' | 'rtl' | 'auto';\n} & Omit<\n VariantProps<typeof inputVariants>,\n 'validationStyleEnabled' | 'variant'\n >;\n\nconst LINE_HEIGHT = 24;\nconst LINE_PADDING = 12;\n\nexport const ContentEditableTextArea: FC<ContentEditableTextAreaProps> = ({\n value,\n defaultValue,\n onChange,\n placeholder,\n disabled = false,\n minRows = 1,\n maxRows = 999,\n autoSize = true,\n validationStyleEnabled = false,\n variant,\n ghostText,\n ghostLine,\n ghostOffset,\n onClick,\n className,\n dir = 'auto',\n ref,\n ...rest\n}) => {\n const {\n lines,\n containerRef,\n getText,\n handleInput,\n handleBeforeInput,\n handleKeyDown,\n handleCut,\n handlePaste,\n handleDrop,\n handleDragOver,\n getCursorOffset,\n setCaretPosition,\n caretFromFlatOffset,\n } = useContentEditable({ value, defaultValue, onChange, disabled });\n\n const elRef = useRef<HTMLDivElement | null>(null);\n\n const setRef = (el: HTMLDivElement | null) => {\n elRef.current = el;\n (containerRef as RefObject<HTMLDivElement | null>).current = el;\n };\n\n useImperativeHandle(ref, () => ({\n getContainer: () => elRef.current,\n getText,\n focus: () => elRef.current?.focus(),\n getCursorOffset,\n setCursorAtOffset: (offset: number) => {\n setCaretPosition(caretFromFlatOffset(offset, lines));\n },\n }));\n\n useLayoutEffect(() => {\n if (!autoSize || !elRef.current) return;\n\n const el = elRef.current;\n const max = LINE_HEIGHT * maxRows + LINE_PADDING;\n const min = LINE_HEIGHT * minRows + LINE_PADDING;\n\n el.style.height = 'auto';\n const sh = el.scrollHeight;\n el.style.height = `${Math.max(Math.min(sh, max), min)}px`;\n el.style.overflowY = sh > max ? 'auto' : 'hidden';\n }, [lines, autoSize, maxRows, minRows]);\n\n const isEmpty = lines.length === 1 && lines[0] === '';\n const hasGhost =\n ghostText && ghostLine !== undefined && ghostOffset !== undefined;\n\n return (\n <div className=\"relative w-full\">\n {isEmpty && placeholder && (\n <div\n className=\"pointer-events-none absolute inset-0 select-none px-2 py-3 text-base text-neutral-400 leading-[1.5rem] md:py-2 md:text-sm\"\n aria-hidden=\"true\"\n >\n {placeholder}\n </div>\n )}\n\n <div\n {...rest}\n ref={setRef}\n role=\"textbox\"\n aria-multiline=\"true\"\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-autocomplete={hasGhost ? 'inline' : undefined}\n tabIndex={disabled ? -1 : 0}\n contentEditable={!disabled}\n suppressContentEditableWarning\n dir={dir}\n onInput={handleInput}\n onBeforeInput={handleBeforeInput}\n onKeyDown={handleKeyDown}\n onCut={handleCut}\n onPaste={handlePaste}\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onClick={onClick}\n className={cn(\n 'resize-none whitespace-pre-wrap break-words outline-none',\n inputVariants({\n variant,\n validationStyleEnabled: validationStyleEnabled\n ? 'enabled'\n : 'disabled',\n }),\n autoSize && 'overflow-y-auto',\n className\n )}\n >\n {lines.map((text, i) => (\n <Line\n key={i}\n index={i}\n text={text}\n isLast={i === lines.length - 1}\n ghostText={hasGhost && ghostLine === i ? ghostText : undefined}\n />\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport type { VariantProps } from 'class-variance-authority';\nimport type { DetailedHTMLProps, FC, TextareaHTMLAttributes } from 'react';\nimport { inputVariants } from '../Input';\n\n/**\n * Props for the TextArea component.\n *\n * Extends standard HTML textarea attributes with additional design system variants\n * and validation styling options.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TextArea placeholder=\"Enter your message...\" />\n *\n * // With error validation styling\n * <TextArea\n * value={message}\n * onChange={handleChange}\n * variant=\"error\"\n * validationStyleEnabled={true}\n * placeholder=\"Message is required\"\n * />\n *\n * // Large multiline input\n * <TextArea\n * rows={6}\n * cols={50}\n * variant=\"default\"\n * className=\"min-h-30\"\n * placeholder=\"Write a detailed description...\"\n * />\n * ```\n */\nexport type TextAreaProps = DetailedHTMLProps<\n DetailedHTMLProps<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n >,\n HTMLTextAreaElement\n> & {\n /** Enable validation styling based on the variant prop */\n validationStyleEnabled?: boolean;\n} & Omit<\n VariantProps<typeof inputVariants>,\n 'validationStyleEnabled' | 'variant'\n > & {\n /** Visual variant of the textarea (default, success, error, warning, etc.) */\n variant?: InputVariant;\n };\n\n/**\n * TextArea Component\n *\n * A flexible textarea component that extends the standard HTML textarea with\n * design system styling variants, validation states, and consistent visual appearance.\n *\n * ## Features\n * - **Variant Support**: Multiple visual states (default, error, success, warning)\n * - **Validation Styling**: Optional validation feedback styling\n * - **Resize Control**: Disabled by default for consistent layout\n * - **Design System Integration**: Uses shared input variants for consistency\n * - **Accessibility**: Maintains all standard textarea accessibility features\n *\n * ## Use Cases\n * - Multi-line text input forms\n * - Comment and message composition\n * - Description and content fields\n * - Feedback and review forms\n * - Code snippet input (when combined with monospace styling)\n *\n * @example\n * ```tsx\n * // Basic textarea\n * <TextArea\n * placeholder=\"Enter your thoughts...\"\n * rows={4}\n * />\n *\n * // Controlled with validation\n * const [content, setContent] = useState('');\n * const hasError = content.length < 10;\n *\n * <TextArea\n * value={content}\n * onChange={(e) => setContent(e.target.value)}\n * variant={hasError ? 'error' : 'success'}\n * validationStyleEnabled={true}\n * placeholder=\"Minimum 10 characters required\"\n * className=\"min-top-25\"\n * />\n * ```\n */\nexport const TextArea: FC<TextAreaProps> = ({\n className,\n variant,\n validationStyleEnabled = false,\n ...props\n}) => (\n <textarea\n className={cn(\n 'resize-none',\n inputVariants({\n variant,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })\n )}\n {...props}\n />\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,MAAa,YAA+B,EAC1C,WACA,SACA,yBAAyB,OACzB,GAAG,YAEH,oBAAC,YAAD;CACE,WAAW,GACT,eACA,cAAc;EACZ;EACA,wBAAwB,yBAAyB,YAAY;EAC7D;EACD,CAAC,CACH;CACD,GAAI;CACJ"}
1
+ {"version":3,"file":"TextArea.mjs","names":[],"sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport type { VariantProps } from 'class-variance-authority';\nimport type { DetailedHTMLProps, FC, TextareaHTMLAttributes } from 'react';\nimport { inputVariants } from '../Input';\n\n/**\n * Props for the TextArea component.\n *\n * Extends standard HTML textarea attributes with additional design system variants\n * and validation styling options.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TextArea placeholder=\"Enter your message...\" />\n *\n * // With error validation styling\n * <TextArea\n * value={message}\n * onChange={handleChange}\n * variant=\"error\"\n * validationStyleEnabled={true}\n * placeholder=\"Message is required\"\n * />\n *\n * // Large multiline input\n * <TextArea\n * rows={6}\n * cols={50}\n * variant=\"default\"\n * className=\"min-h-30\"\n * placeholder=\"Write a detailed description...\"\n * />\n * ```\n */\nexport type TextAreaProps = DetailedHTMLProps<\n DetailedHTMLProps<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n >,\n HTMLTextAreaElement\n> & {\n /** Enable validation styling based on the variant prop */\n validationStyleEnabled?: boolean;\n} & Omit<\n VariantProps<typeof inputVariants>,\n 'validationStyleEnabled' | 'variant'\n > & {\n /** Visual variant of the textarea (default, success, error, warning, etc.) */\n variant?: InputVariant;\n };\n\n/**\n * TextArea Component\n *\n * A flexible textarea component that extends the standard HTML textarea with\n * design system styling variants, validation states, and consistent visual appearance.\n *\n * ## Features\n * - **Variant Support**: Multiple visual states (default, error, success, warning)\n * - **Validation Styling**: Optional validation feedback styling\n * - **Resize Control**: Disabled by default for consistent layout\n * - **Design System Integration**: Uses shared input variants for consistency\n * - **Accessibility**: Maintains all standard textarea accessibility features\n *\n * ## Use Cases\n * - Multi-line text input forms\n * - Comment and message composition\n * - Description and content fields\n * - Feedback and review forms\n * - Code snippet input (when combined with monospace styling)\n *\n * @example\n * ```tsx\n * // Basic textarea\n * <TextArea\n * placeholder=\"Enter your thoughts...\"\n * rows={4}\n * />\n *\n * // Controlled with validation\n * const [content, setContent] = useState('');\n * const hasError = content.length < 10;\n *\n * <TextArea\n * value={content}\n * onChange={(e) => setContent(e.target.value)}\n * variant={hasError ? 'error' : 'success'}\n * validationStyleEnabled={true}\n * placeholder=\"Minimum 10 characters required\"\n * className=\"min-top-25\"\n * />\n * ```\n */\nexport const TextArea: FC<TextAreaProps> = ({\n className,\n variant,\n validationStyleEnabled = false,\n ...props\n}) => (\n <textarea\n className={cn(\n 'resize-none',\n inputVariants({\n variant,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n className,\n })\n )}\n {...props}\n />\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,MAAa,YAA+B,EAC1C,WACA,SACA,yBAAyB,OACzB,GAAG,YAEH,oBAAC,YAAD;CACE,WAAW,GACT,eACA,cAAc;EACZ;EACA,wBAAwB,yBAAyB,YAAY;EAC7D;CACF,CAAC,CACH;CACA,GAAI;AACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"DesktopThemeSwitcher.mjs","names":[],"sources":["../../../../src/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { CircleDashed, Moon, Sun } from 'lucide-react';\nimport { type FC, useState } from 'react';\nimport { Button, type ButtonProps } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown } from '../DropDown';\nimport type { Modes } from './types';\n\nconst ButtonItem: FC<ButtonProps> = ({ Icon, children, ...props }) => (\n <div className=\"relative w-full p-0.5\">\n <Button\n className=\"w-full cursor-pointer rounded-lg p-1 text-left hover:bg-text/10 focus:bg-text-opposite/20 focus:outline-hidden disabled:text-white/25\"\n Icon={Icon}\n data-mode=\"system\"\n role=\"option\"\n variant=\"none\"\n {...props}\n >\n {children}\n </Button>\n </div>\n);\n\ntype DesktopThemeSwitcherProps = {\n theme: Modes;\n setTheme: (theme: Modes) => void;\n systemTheme: Modes;\n};\n\nexport const DesktopThemeSwitcher: FC<DesktopThemeSwitcherProps> = ({\n theme,\n setTheme,\n systemTheme,\n}) => {\n const isThemeSystemTheme = systemTheme === theme;\n const defaultMode = isThemeSystemTheme ? 'system' : theme;\n\n const [mode, setMode] = useState<Modes>(defaultMode);\n\n const switchMode = (mode: Modes) => {\n if (mode === 'system') {\n setTheme(systemTheme ?? 'light');\n } else {\n setTheme(mode);\n }\n setMode(mode);\n };\n\n const panelIdentifier = 'theme-switcher';\n\n return (\n <DropDown identifier={panelIdentifier}>\n <DropDown.Trigger\n className=\"p-2\"\n identifier={panelIdentifier}\n aria-label=\"Theme selector\"\n >\n {mode === 'system' && <CircleDashed data-mode=\"system\" />}\n {mode === 'light' && <Sun data-mode=\"light\" />}\n {mode === 'dark' && <Moon data-mode=\"dark\" />}\n </DropDown.Trigger>\n\n <DropDown.Panel identifier={panelIdentifier} isFocusable isOverable>\n <Container className=\"min-w-25 items-start p-1\" separator=\"y\">\n <ButtonItem\n Icon={CircleDashed}\n onClick={() => switchMode('system')}\n isActive={mode === 'system'}\n label=\"Restore to system mode\"\n >\n System\n </ButtonItem>\n <ButtonItem\n Icon={Sun}\n onClick={() => switchMode('light')}\n isActive={mode === 'light'}\n label=\"Switch to light mode\"\n >\n Light\n </ButtonItem>\n <ButtonItem\n Icon={Moon}\n onClick={() => switchMode('dark')}\n isActive={mode === 'dark'}\n label=\"Switch to dark mode\"\n >\n Dark\n </ButtonItem>\n </Container>\n </DropDown.Panel>\n </DropDown>\n );\n};\n"],"mappings":";;;;;;;;;;AASA,MAAM,cAA+B,EAAE,MAAM,UAAU,GAAG,YACxD,oBAAC,OAAD;CAAK,WAAU;WACb,oBAAC,QAAD;EACE,WAAU;EACJ;EACN,aAAU;EACV,MAAK;EACL,SAAQ;EACR,GAAI;EAEH;EACM;CACL;AASR,MAAa,wBAAuD,EAClE,OACA,UACA,kBACI;CAIJ,MAAM,CAAC,MAAM,WAAW,SAHG,gBAAgB,QACF,WAAW,MAEA;CAEpD,MAAM,cAAc,SAAgB;AAClC,MAAI,SAAS,SACX,UAAS,eAAe,QAAQ;MAEhC,UAAS,KAAK;AAEhB,UAAQ,KAAK;;CAGf,MAAM,kBAAkB;AAExB,QACE,qBAAC,UAAD;EAAU,YAAY;YAAtB,CACE,qBAAC,SAAS,SAAV;GACE,WAAU;GACV,YAAY;GACZ,cAAW;aAHb;IAKG,SAAS,YAAY,oBAAC,cAAD,EAAc,aAAU,UAAW;IACxD,SAAS,WAAW,oBAAC,KAAD,EAAK,aAAU,SAAU;IAC7C,SAAS,UAAU,oBAAC,MAAD,EAAM,aAAU,QAAS;IAC5B;MAEnB,oBAAC,SAAS,OAAV;GAAgB,YAAY;GAAiB;GAAY;aACvD,qBAAC,WAAD;IAAW,WAAU;IAA2B,WAAU;cAA1D;KACE,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,SAAS;MACnC,UAAU,SAAS;MACnB,OAAM;gBACP;MAEY;KACb,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,QAAQ;MAClC,UAAU,SAAS;MACnB,OAAM;gBACP;MAEY;KACb,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,OAAO;MACjC,UAAU,SAAS;MACnB,OAAM;gBACP;MAEY;KACH;;GACG,EACR"}
1
+ {"version":3,"file":"DesktopThemeSwitcher.mjs","names":[],"sources":["../../../../src/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { CircleDashed, Moon, Sun } from 'lucide-react';\nimport { type FC, useState } from 'react';\nimport { Button, type ButtonProps } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown } from '../DropDown';\nimport type { Modes } from './types';\n\nconst ButtonItem: FC<ButtonProps> = ({ Icon, children, ...props }) => (\n <div className=\"relative w-full p-0.5\">\n <Button\n className=\"w-full cursor-pointer rounded-lg p-1 text-left hover:bg-text/10 focus:bg-text-opposite/20 focus:outline-hidden disabled:text-white/25\"\n Icon={Icon}\n data-mode=\"system\"\n role=\"option\"\n variant=\"none\"\n {...props}\n >\n {children}\n </Button>\n </div>\n);\n\ntype DesktopThemeSwitcherProps = {\n theme: Modes;\n setTheme: (theme: Modes) => void;\n systemTheme: Modes;\n};\n\nexport const DesktopThemeSwitcher: FC<DesktopThemeSwitcherProps> = ({\n theme,\n setTheme,\n systemTheme,\n}) => {\n const isThemeSystemTheme = systemTheme === theme;\n const defaultMode = isThemeSystemTheme ? 'system' : theme;\n\n const [mode, setMode] = useState<Modes>(defaultMode);\n\n const switchMode = (mode: Modes) => {\n if (mode === 'system') {\n setTheme(systemTheme ?? 'light');\n } else {\n setTheme(mode);\n }\n setMode(mode);\n };\n\n const panelIdentifier = 'theme-switcher';\n\n return (\n <DropDown identifier={panelIdentifier}>\n <DropDown.Trigger\n className=\"p-2\"\n identifier={panelIdentifier}\n aria-label=\"Theme selector\"\n >\n {mode === 'system' && <CircleDashed data-mode=\"system\" />}\n {mode === 'light' && <Sun data-mode=\"light\" />}\n {mode === 'dark' && <Moon data-mode=\"dark\" />}\n </DropDown.Trigger>\n\n <DropDown.Panel identifier={panelIdentifier} isFocusable isOverable>\n <Container className=\"min-w-25 items-start p-1\" separator=\"y\">\n <ButtonItem\n Icon={CircleDashed}\n onClick={() => switchMode('system')}\n isActive={mode === 'system'}\n label=\"Restore to system mode\"\n >\n System\n </ButtonItem>\n <ButtonItem\n Icon={Sun}\n onClick={() => switchMode('light')}\n isActive={mode === 'light'}\n label=\"Switch to light mode\"\n >\n Light\n </ButtonItem>\n <ButtonItem\n Icon={Moon}\n onClick={() => switchMode('dark')}\n isActive={mode === 'dark'}\n label=\"Switch to dark mode\"\n >\n Dark\n </ButtonItem>\n </Container>\n </DropDown.Panel>\n </DropDown>\n );\n};\n"],"mappings":";;;;;;;;;;AASA,MAAM,cAA+B,EAAE,MAAM,UAAU,GAAG,YACxD,oBAAC,OAAD;CAAK,WAAU;WACb,oBAAC,QAAD;EACE,WAAU;EACJ;EACN,aAAU;EACV,MAAK;EACL,SAAQ;EACR,GAAI;EAEH;CACK;AACL;AASP,MAAa,wBAAuD,EAClE,OACA,UACA,kBACI;CAIJ,MAAM,CAAC,MAAM,WAAW,SAHG,gBAAgB,QACF,WAAW,KAED;CAEnD,MAAM,cAAc,SAAgB;EAClC,IAAI,SAAS,UACX,SAAS,eAAe,OAAO;OAE/B,SAAS,IAAI;EAEf,QAAQ,IAAI;CACd;CAEA,MAAM,kBAAkB;CAExB,OACE,qBAAC,UAAD;EAAU,YAAY;YAAtB,CACE,qBAAC,SAAS,SAAV;GACE,WAAU;GACV,YAAY;GACZ,cAAW;aAHb;IAKG,SAAS,YAAY,oBAAC,cAAD,EAAc,aAAU,SAAU;IACvD,SAAS,WAAW,oBAAC,KAAD,EAAK,aAAU,QAAS;IAC5C,SAAS,UAAU,oBAAC,MAAD,EAAM,aAAU,OAAQ;GAC5B;MAElB,oBAAC,SAAS,OAAV;GAAgB,YAAY;GAAiB;GAAY;aACvD,qBAAC,WAAD;IAAW,WAAU;IAA2B,WAAU;cAA1D;KACE,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,QAAQ;MAClC,UAAU,SAAS;MACnB,OAAM;gBACP;KAEW;KACZ,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,OAAO;MACjC,UAAU,SAAS;MACnB,OAAM;gBACP;KAEW;KACZ,oBAAC,YAAD;MACE,MAAM;MACN,eAAe,WAAW,MAAM;MAChC,UAAU,SAAS;MACnB,OAAM;gBACP;KAEW;IACH;;EACG,EACR;;AAEd"}