@intlayer/design-system 8.9.7 → 8.9.8

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 (732) hide show
  1. package/dist/esm/components/Accordion/Accordion.mjs.map +1 -1
  2. package/dist/esm/components/Avatar/image.mjs.map +1 -1
  3. package/dist/esm/components/Avatar/index.mjs +5 -5
  4. package/dist/esm/components/Avatar/index.mjs.map +1 -1
  5. package/dist/esm/components/Badge/index.mjs.map +1 -1
  6. package/dist/esm/components/Breadcrumb/breadcrumb.content.mjs.map +1 -1
  7. package/dist/esm/components/Breadcrumb/index.mjs.map +1 -1
  8. package/dist/esm/components/Browser/Browser.content.mjs.map +1 -1
  9. package/dist/esm/components/Browser/Browser.mjs.map +1 -1
  10. package/dist/esm/components/Button/Button.mjs +7 -4
  11. package/dist/esm/components/Button/Button.mjs.map +1 -1
  12. package/dist/esm/components/Carousel/index.content.mjs.map +1 -1
  13. package/dist/esm/components/Carousel/index.mjs.map +1 -1
  14. package/dist/esm/components/ClickOutsideDiv/index.mjs.map +1 -1
  15. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs +1 -1
  16. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs.map +1 -1
  17. package/dist/esm/components/Command/index.mjs.map +1 -1
  18. package/dist/esm/components/Container/index.mjs +1 -1
  19. package/dist/esm/components/Container/index.mjs.map +1 -1
  20. package/dist/esm/components/ContentEditor/ContentEditor.mjs.map +1 -1
  21. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs.map +1 -1
  22. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  23. package/dist/esm/components/ContentSelector/ContentSelector.mjs.map +1 -1
  24. package/dist/esm/components/CopyButton/CopyButton.content.mjs.map +1 -1
  25. package/dist/esm/components/CopyButton/index.mjs.map +1 -1
  26. package/dist/esm/components/CopyToClipboard/index.mjs.map +1 -1
  27. package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  28. package/dist/esm/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  29. package/dist/esm/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs.map +1 -1
  30. package/dist/esm/components/DictionaryEditor/NodeWrapper/BooleanWrapper.mjs.map +1 -1
  31. package/dist/esm/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs.map +1 -1
  32. package/dist/esm/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs.map +1 -1
  33. package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs.map +1 -1
  34. package/dist/esm/components/DictionaryEditor/NodeWrapper/HtmlWrapper.mjs.map +1 -1
  35. package/dist/esm/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs.map +1 -1
  36. package/dist/esm/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
  37. package/dist/esm/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs.map +1 -1
  38. package/dist/esm/components/DictionaryEditor/NodeWrapper/NumberWrapper.mjs.map +1 -1
  39. package/dist/esm/components/DictionaryEditor/NodeWrapper/PluralWrapper.mjs.map +1 -1
  40. package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  41. package/dist/esm/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs.map +1 -1
  42. package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs.map +1 -1
  43. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
  44. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.mjs.map +1 -1
  45. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  46. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/object.mjs.map +1 -1
  47. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  48. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs.map +1 -1
  49. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.mjs.map +1 -1
  50. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs.map +1 -1
  51. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  52. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  53. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  54. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
  55. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  56. package/dist/esm/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
  57. package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  58. package/dist/esm/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  59. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +3 -3
  60. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  61. package/dist/esm/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  62. package/dist/esm/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  63. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  64. package/dist/esm/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  65. package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs.map +1 -1
  66. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
  67. package/dist/esm/components/DictionaryFieldEditor/StructureView/structureView.content.mjs.map +1 -1
  68. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
  69. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -1
  70. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs.map +1 -1
  71. package/dist/esm/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs.map +1 -1
  72. package/dist/esm/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
  73. package/dist/esm/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  74. package/dist/esm/components/DropDown/index.mjs.map +1 -1
  75. package/dist/esm/components/EditableField/EditableFieldInput.mjs.map +1 -1
  76. package/dist/esm/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  77. package/dist/esm/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  78. package/dist/esm/components/ExpandCollapse/ExpandCollapse.mjs.map +1 -1
  79. package/dist/esm/components/ExpandCollapse/expandCollapse.content.mjs.map +1 -1
  80. package/dist/esm/components/Flags/Flag.mjs.map +1 -1
  81. package/dist/esm/components/Flags/ae.mjs.map +1 -1
  82. package/dist/esm/components/Flags/af.mjs.map +1 -1
  83. package/dist/esm/components/Flags/al.mjs.map +1 -1
  84. package/dist/esm/components/Flags/am.mjs.map +1 -1
  85. package/dist/esm/components/Flags/ar.mjs.map +1 -1
  86. package/dist/esm/components/Flags/at.mjs.map +1 -1
  87. package/dist/esm/components/Flags/au.mjs.map +1 -1
  88. package/dist/esm/components/Flags/az.mjs.map +1 -1
  89. package/dist/esm/components/Flags/ba.mjs.map +1 -1
  90. package/dist/esm/components/Flags/bd.mjs.map +1 -1
  91. package/dist/esm/components/Flags/be.mjs.map +1 -1
  92. package/dist/esm/components/Flags/bg.mjs.map +1 -1
  93. package/dist/esm/components/Flags/bh.mjs.map +1 -1
  94. package/dist/esm/components/Flags/bn.mjs.map +1 -1
  95. package/dist/esm/components/Flags/bo.mjs.map +1 -1
  96. package/dist/esm/components/Flags/br.mjs.map +1 -1
  97. package/dist/esm/components/Flags/bw.mjs.map +1 -1
  98. package/dist/esm/components/Flags/by.mjs.map +1 -1
  99. package/dist/esm/components/Flags/bz.mjs.map +1 -1
  100. package/dist/esm/components/Flags/ca.mjs.map +1 -1
  101. package/dist/esm/components/Flags/ch.mjs.map +1 -1
  102. package/dist/esm/components/Flags/cl.mjs.map +1 -1
  103. package/dist/esm/components/Flags/cn.mjs.map +1 -1
  104. package/dist/esm/components/Flags/co.mjs.map +1 -1
  105. package/dist/esm/components/Flags/cr.mjs.map +1 -1
  106. package/dist/esm/components/Flags/cu.mjs.map +1 -1
  107. package/dist/esm/components/Flags/cv.mjs.map +1 -1
  108. package/dist/esm/components/Flags/cz.mjs.map +1 -1
  109. package/dist/esm/components/Flags/de.mjs.map +1 -1
  110. package/dist/esm/components/Flags/dj.mjs.map +1 -1
  111. package/dist/esm/components/Flags/dk.mjs.map +1 -1
  112. package/dist/esm/components/Flags/do.mjs.map +1 -1
  113. package/dist/esm/components/Flags/dz.mjs.map +1 -1
  114. package/dist/esm/components/Flags/ec.mjs.map +1 -1
  115. package/dist/esm/components/Flags/ee.mjs.map +1 -1
  116. package/dist/esm/components/Flags/eg.mjs.map +1 -1
  117. package/dist/esm/components/Flags/es-ct.mjs.map +1 -1
  118. package/dist/esm/components/Flags/es-ga.mjs.map +1 -1
  119. package/dist/esm/components/Flags/es-pv.mjs.map +1 -1
  120. package/dist/esm/components/Flags/es.mjs.map +1 -1
  121. package/dist/esm/components/Flags/et.mjs.map +1 -1
  122. package/dist/esm/components/Flags/fi.mjs.map +1 -1
  123. package/dist/esm/components/Flags/flags.mjs.map +1 -1
  124. package/dist/esm/components/Flags/fo.mjs.map +1 -1
  125. package/dist/esm/components/Flags/fr.mjs.map +1 -1
  126. package/dist/esm/components/Flags/gb-wls.mjs.map +1 -1
  127. package/dist/esm/components/Flags/gb.mjs.map +1 -1
  128. package/dist/esm/components/Flags/ge.mjs.map +1 -1
  129. package/dist/esm/components/Flags/gh.mjs.map +1 -1
  130. package/dist/esm/components/Flags/gr.mjs.map +1 -1
  131. package/dist/esm/components/Flags/gt.mjs.map +1 -1
  132. package/dist/esm/components/Flags/gw.mjs.map +1 -1
  133. package/dist/esm/components/Flags/hk.mjs.map +1 -1
  134. package/dist/esm/components/Flags/hn.mjs.map +1 -1
  135. package/dist/esm/components/Flags/hr.mjs.map +1 -1
  136. package/dist/esm/components/Flags/hu.mjs.map +1 -1
  137. package/dist/esm/components/Flags/id.mjs.map +1 -1
  138. package/dist/esm/components/Flags/ie.mjs.map +1 -1
  139. package/dist/esm/components/Flags/il.mjs.map +1 -1
  140. package/dist/esm/components/Flags/in.mjs.map +1 -1
  141. package/dist/esm/components/Flags/iq.mjs.map +1 -1
  142. package/dist/esm/components/Flags/ir.mjs.map +1 -1
  143. package/dist/esm/components/Flags/is.mjs.map +1 -1
  144. package/dist/esm/components/Flags/it.mjs.map +1 -1
  145. package/dist/esm/components/Flags/jm.mjs.map +1 -1
  146. package/dist/esm/components/Flags/jo.mjs.map +1 -1
  147. package/dist/esm/components/Flags/jp.mjs.map +1 -1
  148. package/dist/esm/components/Flags/ke.mjs.map +1 -1
  149. package/dist/esm/components/Flags/kg.mjs.map +1 -1
  150. package/dist/esm/components/Flags/kh.mjs.map +1 -1
  151. package/dist/esm/components/Flags/km.mjs.map +1 -1
  152. package/dist/esm/components/Flags/kr.mjs.map +1 -1
  153. package/dist/esm/components/Flags/kw.mjs.map +1 -1
  154. package/dist/esm/components/Flags/kz.mjs.map +1 -1
  155. package/dist/esm/components/Flags/la.mjs.map +1 -1
  156. package/dist/esm/components/Flags/lb.mjs.map +1 -1
  157. package/dist/esm/components/Flags/li.mjs.map +1 -1
  158. package/dist/esm/components/Flags/lk.mjs.map +1 -1
  159. package/dist/esm/components/Flags/lt.mjs.map +1 -1
  160. package/dist/esm/components/Flags/lu.mjs.map +1 -1
  161. package/dist/esm/components/Flags/lv.mjs.map +1 -1
  162. package/dist/esm/components/Flags/ly.mjs.map +1 -1
  163. package/dist/esm/components/Flags/ma.mjs.map +1 -1
  164. package/dist/esm/components/Flags/mc.mjs.map +1 -1
  165. package/dist/esm/components/Flags/md.mjs.map +1 -1
  166. package/dist/esm/components/Flags/mk.mjs.map +1 -1
  167. package/dist/esm/components/Flags/mm.mjs.map +1 -1
  168. package/dist/esm/components/Flags/mn.mjs.map +1 -1
  169. package/dist/esm/components/Flags/mo.mjs.map +1 -1
  170. package/dist/esm/components/Flags/mr.mjs.map +1 -1
  171. package/dist/esm/components/Flags/mt.mjs.map +1 -1
  172. package/dist/esm/components/Flags/mv.mjs.map +1 -1
  173. package/dist/esm/components/Flags/mx.mjs.map +1 -1
  174. package/dist/esm/components/Flags/my.mjs.map +1 -1
  175. package/dist/esm/components/Flags/mz.mjs.map +1 -1
  176. package/dist/esm/components/Flags/ng.mjs.map +1 -1
  177. package/dist/esm/components/Flags/ni.mjs.map +1 -1
  178. package/dist/esm/components/Flags/nl.mjs.map +1 -1
  179. package/dist/esm/components/Flags/no.mjs.map +1 -1
  180. package/dist/esm/components/Flags/np.mjs.map +1 -1
  181. package/dist/esm/components/Flags/nz.mjs.map +1 -1
  182. package/dist/esm/components/Flags/om.mjs.map +1 -1
  183. package/dist/esm/components/Flags/pa.mjs.map +1 -1
  184. package/dist/esm/components/Flags/pe.mjs.map +1 -1
  185. package/dist/esm/components/Flags/ph.mjs.map +1 -1
  186. package/dist/esm/components/Flags/pk.mjs.map +1 -1
  187. package/dist/esm/components/Flags/pl.mjs.map +1 -1
  188. package/dist/esm/components/Flags/pr.mjs.map +1 -1
  189. package/dist/esm/components/Flags/ps.mjs.map +1 -1
  190. package/dist/esm/components/Flags/pt.mjs.map +1 -1
  191. package/dist/esm/components/Flags/py.mjs.map +1 -1
  192. package/dist/esm/components/Flags/qa.mjs.map +1 -1
  193. package/dist/esm/components/Flags/ro.mjs.map +1 -1
  194. package/dist/esm/components/Flags/rs.mjs.map +1 -1
  195. package/dist/esm/components/Flags/ru.mjs.map +1 -1
  196. package/dist/esm/components/Flags/sa.mjs.map +1 -1
  197. package/dist/esm/components/Flags/sd.mjs.map +1 -1
  198. package/dist/esm/components/Flags/se.mjs.map +1 -1
  199. package/dist/esm/components/Flags/sg.mjs.map +1 -1
  200. package/dist/esm/components/Flags/si.mjs.map +1 -1
  201. package/dist/esm/components/Flags/sk.mjs.map +1 -1
  202. package/dist/esm/components/Flags/so.mjs.map +1 -1
  203. package/dist/esm/components/Flags/st.mjs.map +1 -1
  204. package/dist/esm/components/Flags/sv.mjs.map +1 -1
  205. package/dist/esm/components/Flags/sy.mjs.map +1 -1
  206. package/dist/esm/components/Flags/td.mjs.map +1 -1
  207. package/dist/esm/components/Flags/th.mjs.map +1 -1
  208. package/dist/esm/components/Flags/tl.mjs.map +1 -1
  209. package/dist/esm/components/Flags/tn.mjs.map +1 -1
  210. package/dist/esm/components/Flags/tr.mjs.map +1 -1
  211. package/dist/esm/components/Flags/tt.mjs.map +1 -1
  212. package/dist/esm/components/Flags/tw.mjs.map +1 -1
  213. package/dist/esm/components/Flags/tz.mjs.map +1 -1
  214. package/dist/esm/components/Flags/ua.mjs.map +1 -1
  215. package/dist/esm/components/Flags/ug.mjs.map +1 -1
  216. package/dist/esm/components/Flags/us.mjs.map +1 -1
  217. package/dist/esm/components/Flags/uy.mjs.map +1 -1
  218. package/dist/esm/components/Flags/uz.mjs.map +1 -1
  219. package/dist/esm/components/Flags/ve.mjs.map +1 -1
  220. package/dist/esm/components/Flags/vn.mjs.map +1 -1
  221. package/dist/esm/components/Flags/xx.mjs.map +1 -1
  222. package/dist/esm/components/Flags/ye.mjs.map +1 -1
  223. package/dist/esm/components/Flags/za.mjs.map +1 -1
  224. package/dist/esm/components/Flags/zw.mjs.map +1 -1
  225. package/dist/esm/components/Footer/index.mjs.map +1 -1
  226. package/dist/esm/components/Form/FormBase.mjs.map +1 -1
  227. package/dist/esm/components/Form/FormControl.mjs.map +1 -1
  228. package/dist/esm/components/Form/FormDescription.mjs.map +1 -1
  229. package/dist/esm/components/Form/FormField.mjs.map +1 -1
  230. package/dist/esm/components/Form/FormItem.mjs.map +1 -1
  231. package/dist/esm/components/Form/FormLabel.mjs.map +1 -1
  232. package/dist/esm/components/Form/FormMessage.mjs.map +1 -1
  233. package/dist/esm/components/Form/elements/AutoSizeTextAreaElement.mjs.map +1 -1
  234. package/dist/esm/components/Form/elements/CheckboxElement.mjs.map +1 -1
  235. package/dist/esm/components/Form/elements/EditableFieldInputElement.mjs.map +1 -1
  236. package/dist/esm/components/Form/elements/EditableFieldTextAreaElement.mjs.map +1 -1
  237. package/dist/esm/components/Form/elements/FormElement.mjs.map +1 -1
  238. package/dist/esm/components/Form/elements/FormElementWrapper.mjs.map +1 -1
  239. package/dist/esm/components/Form/elements/InputElement.mjs.map +1 -1
  240. package/dist/esm/components/Form/elements/InputPasswordElement.mjs.map +1 -1
  241. package/dist/esm/components/Form/elements/MultiselectElement.mjs.map +1 -1
  242. package/dist/esm/components/Form/elements/OTPElement.mjs.map +1 -1
  243. package/dist/esm/components/Form/elements/SearchInputElement.mjs.map +1 -1
  244. package/dist/esm/components/Form/elements/SelectElement.mjs.map +1 -1
  245. package/dist/esm/components/Form/elements/SwitchSelectorElement.mjs.map +1 -1
  246. package/dist/esm/components/Form/elements/TextAreaElement.mjs.map +1 -1
  247. package/dist/esm/components/Form/layout/FormItemLayout.mjs.map +1 -1
  248. package/dist/esm/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  249. package/dist/esm/components/Form/layout/RequiredStar.mjs.map +1 -1
  250. package/dist/esm/components/HTMLRender/HTMLRender.mjs.map +1 -1
  251. package/dist/esm/components/Headers/index.mjs.map +1 -1
  252. package/dist/esm/components/HeightResizer/index.mjs.map +1 -1
  253. package/dist/esm/components/HideShow/index.mjs.map +1 -1
  254. package/dist/esm/components/IDE/Code.mjs.map +1 -1
  255. package/dist/esm/components/IDE/CodeBlockClient.mjs.map +1 -1
  256. package/dist/esm/components/IDE/CodeBlockHighlight.mjs.map +1 -1
  257. package/dist/esm/components/IDE/CodeBlockServer.mjs.map +1 -1
  258. package/dist/esm/components/IDE/CodeBlockShiki.mjs.map +1 -1
  259. package/dist/esm/components/IDE/CodeConditionalRenderer.mjs.map +1 -1
  260. package/dist/esm/components/IDE/CodeContext.mjs.map +1 -1
  261. package/dist/esm/components/IDE/CodeFormatSelector.mjs.map +1 -1
  262. package/dist/esm/components/IDE/ContentDeclarationFormatSelector.mjs.map +1 -1
  263. package/dist/esm/components/IDE/CopyCode.mjs.map +1 -1
  264. package/dist/esm/components/IDE/FileList.mjs.map +1 -1
  265. package/dist/esm/components/IDE/FileTree.mjs.map +1 -1
  266. package/dist/esm/components/IDE/IDE.mjs.map +1 -1
  267. package/dist/esm/components/IDE/MarkDownRender.mjs.map +1 -1
  268. package/dist/esm/components/IDE/MonacoCode.mjs.map +1 -1
  269. package/dist/esm/components/IDE/PackageManagerSelector.mjs.map +1 -1
  270. package/dist/esm/components/IDE/code.content.mjs.map +1 -1
  271. package/dist/esm/components/IDE/codeTransformer.mjs.map +1 -1
  272. package/dist/esm/components/IDE/copyCode.content.mjs.map +1 -1
  273. package/dist/esm/components/IDE/createFileTree.mjs.map +1 -1
  274. package/dist/esm/components/IDE/selectors.content.mjs.map +1 -1
  275. package/dist/esm/components/InformationTag/index.mjs.map +1 -1
  276. package/dist/esm/components/Input/Checkbox.mjs.map +1 -1
  277. package/dist/esm/components/Input/Input.mjs.map +1 -1
  278. package/dist/esm/components/Input/InputPassword.mjs.map +1 -1
  279. package/dist/esm/components/Input/OTPInput.mjs.map +1 -1
  280. package/dist/esm/components/Input/SearchInput.mjs.map +1 -1
  281. package/dist/esm/components/KeyboardScreenAdapter/index.mjs.map +1 -1
  282. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs.map +1 -1
  283. package/dist/esm/components/Label/index.mjs.map +1 -1
  284. package/dist/esm/components/LanguageBackground/index.mjs.map +1 -1
  285. package/dist/esm/components/Link/Link.mjs +3 -2
  286. package/dist/esm/components/Link/Link.mjs.map +1 -1
  287. package/dist/esm/components/Loader/index.content.mjs.map +1 -1
  288. package/dist/esm/components/Loader/index.mjs.map +1 -1
  289. package/dist/esm/components/Loader/spinner.mjs.map +1 -1
  290. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  291. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -1
  292. package/dist/esm/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -1
  293. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  294. package/dist/esm/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  295. package/dist/esm/components/Logo/Logo.mjs.map +1 -1
  296. package/dist/esm/components/Logo/LogoTextOnly.mjs.map +1 -1
  297. package/dist/esm/components/Logo/LogoWithText.mjs.map +1 -1
  298. package/dist/esm/components/Logo/LogoWithTextBelow.mjs.map +1 -1
  299. package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs.map +1 -1
  300. package/dist/esm/components/MarkDownRender/MarkDownRender.mjs.map +1 -1
  301. package/dist/esm/components/MaxHeightSmoother/index.mjs.map +1 -1
  302. package/dist/esm/components/MaxWidthSmoother/index.mjs.map +1 -1
  303. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  304. package/dist/esm/components/Navbar/Burger.mjs.map +1 -1
  305. package/dist/esm/components/Navbar/DesktopNavbar.mjs.map +1 -1
  306. package/dist/esm/components/Navbar/MobileNavbar.mjs.map +1 -1
  307. package/dist/esm/components/Navbar/index.mjs.map +1 -1
  308. package/dist/esm/components/Navbar/useNavigation.mjs.map +1 -1
  309. package/dist/esm/components/Pagination/NumberItemsSelector.mjs.map +1 -1
  310. package/dist/esm/components/Pagination/Pagination.mjs.map +1 -1
  311. package/dist/esm/components/Pagination/ShowingResultsNumberItems.mjs.map +1 -1
  312. package/dist/esm/components/Pagination/pagination.content.mjs.map +1 -1
  313. package/dist/esm/components/Pattern/DotPattern.mjs.map +1 -1
  314. package/dist/esm/components/Pattern/GridPattern.mjs.map +1 -1
  315. package/dist/esm/components/Pattern/SpotLight.mjs.map +1 -1
  316. package/dist/esm/components/Popover/dynamic.mjs.map +1 -1
  317. package/dist/esm/components/Popover/static.mjs.map +1 -1
  318. package/dist/esm/components/PressableSpan/PressableSpan.mjs.map +1 -1
  319. package/dist/esm/components/RightDrawer/RightDrawer.mjs.map +1 -1
  320. package/dist/esm/components/RightDrawer/isElementAtTopAndNotCovered.mjs.map +1 -1
  321. package/dist/esm/components/RightDrawer/rightDrawer.content.mjs.map +1 -1
  322. package/dist/esm/components/RightDrawer/useRightDrawer.mjs.map +1 -1
  323. package/dist/esm/components/Select/Multiselect.mjs.map +1 -1
  324. package/dist/esm/components/Select/Select.mjs.map +1 -1
  325. package/dist/esm/components/SocialNetworks/DiscordLogo.mjs.map +1 -1
  326. package/dist/esm/components/SocialNetworks/FacebookLogo.mjs.map +1 -1
  327. package/dist/esm/components/SocialNetworks/InstagramLogo.mjs.map +1 -1
  328. package/dist/esm/components/SocialNetworks/ProductHuntLogo.mjs.map +1 -1
  329. package/dist/esm/components/SocialNetworks/TiktokLogo.mjs.map +1 -1
  330. package/dist/esm/components/SocialNetworks/XLogo.mjs.map +1 -1
  331. package/dist/esm/components/SocialNetworks/YoutubeLogo.mjs.map +1 -1
  332. package/dist/esm/components/SocialNetworks/index.mjs.map +1 -1
  333. package/dist/esm/components/SwitchSelector/SwitchSelector.mjs +2 -0
  334. package/dist/esm/components/SwitchSelector/SwitchSelector.mjs.map +1 -1
  335. package/dist/esm/components/SwitchSelector/VerticalSwitchSelector.mjs.map +1 -1
  336. package/dist/esm/components/SwitchSelector/useSwitchSelector.mjs.map +1 -1
  337. package/dist/esm/components/Tab/Tab.mjs.map +1 -1
  338. package/dist/esm/components/Tab/TabContext.mjs.map +1 -1
  339. package/dist/esm/components/TabSelector/TabSelector.mjs.map +1 -1
  340. package/dist/esm/components/Table/ExpandButton.mjs.map +1 -1
  341. package/dist/esm/components/Table/SmartTable.mjs.map +1 -1
  342. package/dist/esm/components/Table/Table.mjs.map +1 -1
  343. package/dist/esm/components/Table/TableElements.mjs.map +1 -1
  344. package/dist/esm/components/Table/table.content.mjs.map +1 -1
  345. package/dist/esm/components/Table/useTableWidths.mjs.map +1 -1
  346. package/dist/esm/components/Tag/index.mjs.map +1 -1
  347. package/dist/esm/components/TechLogo/TechLogo.mjs.map +1 -1
  348. package/dist/esm/components/TechLogo/logos/Adonis.mjs.map +1 -1
  349. package/dist/esm/components/TechLogo/logos/Angular.mjs.map +1 -1
  350. package/dist/esm/components/TechLogo/logos/Anthropic.mjs.map +1 -1
  351. package/dist/esm/components/TechLogo/logos/Astro.mjs.map +1 -1
  352. package/dist/esm/components/TechLogo/logos/Atlassian.mjs.map +1 -1
  353. package/dist/esm/components/TechLogo/logos/Bitbucket.mjs.map +1 -1
  354. package/dist/esm/components/TechLogo/logos/ChatGPT.mjs.map +1 -1
  355. package/dist/esm/components/TechLogo/logos/Claude.mjs.map +1 -1
  356. package/dist/esm/components/TechLogo/logos/DeepSeek.mjs.map +1 -1
  357. package/dist/esm/components/TechLogo/logos/Express.mjs.map +1 -1
  358. package/dist/esm/components/TechLogo/logos/Fastify.mjs.map +1 -1
  359. package/dist/esm/components/TechLogo/logos/Gemini.mjs.map +1 -1
  360. package/dist/esm/components/TechLogo/logos/GitHub.mjs.map +1 -1
  361. package/dist/esm/components/TechLogo/logos/GitLab.mjs.map +1 -1
  362. package/dist/esm/components/TechLogo/logos/Google.mjs.map +1 -1
  363. package/dist/esm/components/TechLogo/logos/GoogleAI.mjs.map +1 -1
  364. package/dist/esm/components/TechLogo/logos/Grok.mjs.map +1 -1
  365. package/dist/esm/components/TechLogo/logos/Hono.mjs.map +1 -1
  366. package/dist/esm/components/TechLogo/logos/LinkedIn.mjs.map +1 -1
  367. package/dist/esm/components/TechLogo/logos/Lit.mjs.map +1 -1
  368. package/dist/esm/components/TechLogo/logos/Lynx.mjs.map +1 -1
  369. package/dist/esm/components/TechLogo/logos/Microsoft.mjs.map +1 -1
  370. package/dist/esm/components/TechLogo/logos/Mistral.mjs.map +1 -1
  371. package/dist/esm/components/TechLogo/logos/NestJS.mjs.map +1 -1
  372. package/dist/esm/components/TechLogo/logos/Nextjs.mjs.map +1 -1
  373. package/dist/esm/components/TechLogo/logos/Node.mjs.map +1 -1
  374. package/dist/esm/components/TechLogo/logos/Nuxt.mjs.map +1 -1
  375. package/dist/esm/components/TechLogo/logos/Ollama.mjs.map +1 -1
  376. package/dist/esm/components/TechLogo/logos/OpenAI.mjs.map +1 -1
  377. package/dist/esm/components/TechLogo/logos/Perplexity.mjs.map +1 -1
  378. package/dist/esm/components/TechLogo/logos/Preact.mjs.map +1 -1
  379. package/dist/esm/components/TechLogo/logos/Reactjs.mjs.map +1 -1
  380. package/dist/esm/components/TechLogo/logos/Solid.mjs.map +1 -1
  381. package/dist/esm/components/TechLogo/logos/Svelte.mjs.map +1 -1
  382. package/dist/esm/components/TechLogo/logos/Tanstack.mjs.map +1 -1
  383. package/dist/esm/components/TechLogo/logos/Vanilla.mjs.map +1 -1
  384. package/dist/esm/components/TechLogo/logos/Vitejs.mjs.map +1 -1
  385. package/dist/esm/components/TechLogo/logos/Vuejs.mjs.map +1 -1
  386. package/dist/esm/components/TechLogo/types.mjs.map +1 -1
  387. package/dist/esm/components/Terminal/Terminal.mjs.map +1 -1
  388. package/dist/esm/components/Terminal/terminal.content.mjs.map +1 -1
  389. package/dist/esm/components/TextArea/AutoSizeTextArea.mjs.map +1 -1
  390. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs.map +1 -1
  391. package/dist/esm/components/TextArea/ContentEditableTextArea.mjs.map +1 -1
  392. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  393. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  394. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs.map +1 -1
  395. package/dist/esm/components/ThemeSwitcherDropDown/types.mjs.map +1 -1
  396. package/dist/esm/components/Toaster/Toast.mjs.map +1 -1
  397. package/dist/esm/components/Toaster/Toaster.mjs.map +1 -1
  398. package/dist/esm/components/Toaster/useToast.mjs.map +1 -1
  399. package/dist/esm/components/WithResizer/index.mjs +17 -3
  400. package/dist/esm/components/WithResizer/index.mjs.map +1 -1
  401. package/dist/esm/hooks/index.mjs +2 -2
  402. package/dist/esm/hooks/reactQuery.mjs +9 -1
  403. package/dist/esm/hooks/reactQuery.mjs.map +1 -1
  404. package/dist/esm/hooks/useAuth/useAuth.mjs.map +1 -1
  405. package/dist/esm/hooks/useAuth/useOAuth2.mjs.map +1 -1
  406. package/dist/esm/hooks/useAuth/useSession.mjs.map +1 -1
  407. package/dist/esm/hooks/useDevice.mjs.map +1 -1
  408. package/dist/esm/hooks/useGetElementById.mjs.map +1 -1
  409. package/dist/esm/hooks/useGetElementOrWindow.mjs.map +1 -1
  410. package/dist/esm/hooks/useHorizontalSwipe.mjs.map +1 -1
  411. package/dist/esm/hooks/useIntlayerAPI.mjs.map +1 -1
  412. package/dist/esm/hooks/useIsDarkMode.mjs.map +1 -1
  413. package/dist/esm/hooks/useIsMounted.mjs.map +1 -1
  414. package/dist/esm/hooks/useItemSelector.mjs.map +1 -1
  415. package/dist/esm/hooks/useKeyboardDetector.mjs.map +1 -1
  416. package/dist/esm/hooks/usePersistedStore.mjs.map +1 -1
  417. package/dist/esm/hooks/useScreenWidth.mjs.map +1 -1
  418. package/dist/esm/hooks/useScrollBlockage/index.mjs.map +1 -1
  419. package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs.map +1 -1
  420. package/dist/esm/hooks/useScrollDetection.mjs.map +1 -1
  421. package/dist/esm/hooks/useScrollY.mjs.map +1 -1
  422. package/dist/esm/hooks/useSearch.mjs.map +1 -1
  423. package/dist/esm/hooks/useUser/index.mjs.map +1 -1
  424. package/dist/esm/libs/auth.mjs.map +1 -1
  425. package/dist/esm/providers/ReactQueryProvider.mjs.map +1 -1
  426. package/dist/esm/tailwind.config.mjs.map +1 -1
  427. package/dist/esm/utils/cn.mjs.map +1 -1
  428. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
  429. package/dist/types/components/Avatar/image.d.ts.map +1 -1
  430. package/dist/types/components/Avatar/index.d.ts +2 -0
  431. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  432. package/dist/types/components/Badge/index.d.ts +3 -4
  433. package/dist/types/components/Badge/index.d.ts.map +1 -1
  434. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +1 -3
  435. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -1
  436. package/dist/types/components/Breadcrumb/index.d.ts +1 -2
  437. package/dist/types/components/Breadcrumb/index.d.ts.map +1 -1
  438. package/dist/types/components/Browser/Browser.content.d.ts +7 -9
  439. package/dist/types/components/Browser/Browser.content.d.ts.map +1 -1
  440. package/dist/types/components/Browser/Browser.d.ts +1 -2
  441. package/dist/types/components/Browser/Browser.d.ts.map +1 -1
  442. package/dist/types/components/Button/Button.d.ts +6 -6
  443. package/dist/types/components/Button/Button.d.ts.map +1 -1
  444. package/dist/types/components/Carousel/index.content.d.ts +3 -5
  445. package/dist/types/components/Carousel/index.content.d.ts.map +1 -1
  446. package/dist/types/components/Carousel/index.d.ts.map +1 -1
  447. package/dist/types/components/ClickOutsideDiv/index.d.ts.map +1 -1
  448. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +2 -3
  449. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts.map +1 -1
  450. package/dist/types/components/Command/index.d.ts +16 -18
  451. package/dist/types/components/Command/index.d.ts.map +1 -1
  452. package/dist/types/components/Container/index.d.ts +6 -7
  453. package/dist/types/components/Container/index.d.ts.map +1 -1
  454. package/dist/types/components/ContentEditor/ContentEditor.d.ts.map +1 -1
  455. package/dist/types/components/ContentEditor/ContentEditorInput.d.ts.map +1 -1
  456. package/dist/types/components/ContentEditor/ContentEditorTextArea.d.ts.map +1 -1
  457. package/dist/types/components/ContentSelector/ContentSelector.d.ts +1 -1
  458. package/dist/types/components/ContentSelector/ContentSelector.d.ts.map +1 -1
  459. package/dist/types/components/CopyButton/CopyButton.content.d.ts +1 -3
  460. package/dist/types/components/CopyButton/CopyButton.content.d.ts.map +1 -1
  461. package/dist/types/components/CopyButton/index.d.ts.map +1 -1
  462. package/dist/types/components/CopyToClipboard/index.d.ts.map +1 -1
  463. package/dist/types/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
  464. package/dist/types/components/DictionaryEditor/ItemLayout.d.ts.map +1 -1
  465. package/dist/types/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts.map +1 -1
  466. package/dist/types/components/DictionaryEditor/NodeWrapper/BooleanWrapper.d.ts.map +1 -1
  467. package/dist/types/components/DictionaryEditor/NodeWrapper/ConditionWrapper.d.ts +1 -1
  468. package/dist/types/components/DictionaryEditor/NodeWrapper/ConditionWrapper.d.ts.map +1 -1
  469. package/dist/types/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts +1 -1
  470. package/dist/types/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts.map +1 -1
  471. package/dist/types/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts.map +1 -1
  472. package/dist/types/components/DictionaryEditor/NodeWrapper/HtmlWrapper.d.ts +1 -1
  473. package/dist/types/components/DictionaryEditor/NodeWrapper/HtmlWrapper.d.ts.map +1 -1
  474. package/dist/types/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts +1 -1
  475. package/dist/types/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts.map +1 -1
  476. package/dist/types/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts +1 -1
  477. package/dist/types/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts.map +1 -1
  478. package/dist/types/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts.map +1 -1
  479. package/dist/types/components/DictionaryEditor/NodeWrapper/NumberWrapper.d.ts.map +1 -1
  480. package/dist/types/components/DictionaryEditor/NodeWrapper/PluralWrapper.d.ts +1 -1
  481. package/dist/types/components/DictionaryEditor/NodeWrapper/PluralWrapper.d.ts.map +1 -1
  482. package/dist/types/components/DictionaryEditor/NodeWrapper/StringWrapper.d.ts.map +1 -1
  483. package/dist/types/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts +1 -1
  484. package/dist/types/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts.map +1 -1
  485. package/dist/types/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
  486. package/dist/types/components/DictionaryFieldEditor/ContentEditor.d.ts.map +1 -1
  487. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.d.ts +1 -3
  488. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/SafeHtmlRenderer.d.ts.map +1 -1
  489. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +2 -3
  490. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  491. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts.map +1 -1
  492. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +6 -8
  493. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts.map +1 -1
  494. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +4 -6
  495. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts.map +1 -1
  496. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  497. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +27 -29
  498. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  499. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +16 -18
  500. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
  501. package/dist/types/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  502. package/dist/types/components/DictionaryFieldEditor/EnumKeyInput.d.ts.map +1 -1
  503. package/dist/types/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
  504. package/dist/types/components/DictionaryFieldEditor/KeyPathBreadcrumb.d.ts.map +1 -1
  505. package/dist/types/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  506. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +10 -12
  507. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
  508. package/dist/types/components/DictionaryFieldEditor/NodeTypeSelector.d.ts.map +1 -1
  509. package/dist/types/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  510. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +16 -18
  511. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  512. package/dist/types/components/DictionaryFieldEditor/StructureEditor.d.ts.map +1 -1
  513. package/dist/types/components/DictionaryFieldEditor/StructureView/StructureView.d.ts.map +1 -1
  514. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +4 -6
  515. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts.map +1 -1
  516. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts.map +1 -1
  517. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.d.ts.map +1 -1
  518. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +3 -5
  519. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts.map +1 -1
  520. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +2 -4
  521. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts.map +1 -1
  522. package/dist/types/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
  523. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +16 -18
  524. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
  525. package/dist/types/components/DropDown/index.d.ts.map +1 -1
  526. package/dist/types/components/EditableField/EditableFieldInput.d.ts.map +1 -1
  527. package/dist/types/components/EditableField/EditableFieldLayout.d.ts.map +1 -1
  528. package/dist/types/components/EditableField/EditableFieldTextArea.d.ts.map +1 -1
  529. package/dist/types/components/ExpandCollapse/ExpandCollapse.d.ts.map +1 -1
  530. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +1 -3
  531. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts.map +1 -1
  532. package/dist/types/components/Flags/Flag.d.ts.map +1 -1
  533. package/dist/types/components/Flags/flags.d.ts.map +1 -1
  534. package/dist/types/components/Footer/index.d.ts.map +1 -1
  535. package/dist/types/components/Form/Form.d.ts.map +1 -1
  536. package/dist/types/components/Form/FormBase.d.ts +2 -4
  537. package/dist/types/components/Form/FormBase.d.ts.map +1 -1
  538. package/dist/types/components/Form/FormField.d.ts +2 -4
  539. package/dist/types/components/Form/FormField.d.ts.map +1 -1
  540. package/dist/types/components/Form/FormItem.d.ts +1 -2
  541. package/dist/types/components/Form/FormItem.d.ts.map +1 -1
  542. package/dist/types/components/Form/elements/AutoSizeTextAreaElement.d.ts.map +1 -1
  543. package/dist/types/components/Form/elements/CheckboxElement.d.ts.map +1 -1
  544. package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts +1 -2
  545. package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
  546. package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts +1 -2
  547. package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
  548. package/dist/types/components/Form/elements/FormElement.d.ts +1 -2
  549. package/dist/types/components/Form/elements/FormElement.d.ts.map +1 -1
  550. package/dist/types/components/Form/elements/FormElementWrapper.d.ts.map +1 -1
  551. package/dist/types/components/Form/elements/InputElement.d.ts.map +1 -1
  552. package/dist/types/components/Form/elements/InputPasswordElement.d.ts.map +1 -1
  553. package/dist/types/components/Form/elements/MultiselectElement.d.ts +1 -2
  554. package/dist/types/components/Form/elements/MultiselectElement.d.ts.map +1 -1
  555. package/dist/types/components/Form/elements/OTPElement.d.ts +1 -2
  556. package/dist/types/components/Form/elements/OTPElement.d.ts.map +1 -1
  557. package/dist/types/components/Form/elements/SearchInputElement.d.ts.map +1 -1
  558. package/dist/types/components/Form/elements/SelectElement.d.ts +1 -2
  559. package/dist/types/components/Form/elements/SelectElement.d.ts.map +1 -1
  560. package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts +1 -2
  561. package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts.map +1 -1
  562. package/dist/types/components/Form/elements/TextAreaElement.d.ts.map +1 -1
  563. package/dist/types/components/Form/layout/FormItemLayout.d.ts.map +1 -1
  564. package/dist/types/components/Form/layout/FormLabelLayout.d.ts.map +1 -1
  565. package/dist/types/components/Form/layout/RequiredStar.d.ts.map +1 -1
  566. package/dist/types/components/HTMLRender/HTMLRender.d.ts.map +1 -1
  567. package/dist/types/components/Headers/index.d.ts.map +1 -1
  568. package/dist/types/components/HeightResizer/index.d.ts.map +1 -1
  569. package/dist/types/components/HideShow/index.d.ts.map +1 -1
  570. package/dist/types/components/IDE/Code.d.ts.map +1 -1
  571. package/dist/types/components/IDE/CodeBlockClient.d.ts.map +1 -1
  572. package/dist/types/components/IDE/CodeBlockHighlight.d.ts +1 -2
  573. package/dist/types/components/IDE/CodeBlockHighlight.d.ts.map +1 -1
  574. package/dist/types/components/IDE/CodeBlockServer.d.ts.map +1 -1
  575. package/dist/types/components/IDE/CodeBlockShiki.d.ts.map +1 -1
  576. package/dist/types/components/IDE/CodeContext.d.ts +1 -2
  577. package/dist/types/components/IDE/CodeContext.d.ts.map +1 -1
  578. package/dist/types/components/IDE/CodeFormatSelector.d.ts.map +1 -1
  579. package/dist/types/components/IDE/ContentDeclarationFormatSelector.d.ts.map +1 -1
  580. package/dist/types/components/IDE/CopyCode.d.ts.map +1 -1
  581. package/dist/types/components/IDE/FileList.d.ts.map +1 -1
  582. package/dist/types/components/IDE/FileTree.d.ts.map +1 -1
  583. package/dist/types/components/IDE/IDE.d.ts.map +1 -1
  584. package/dist/types/components/IDE/MarkDownRender.d.ts.map +1 -1
  585. package/dist/types/components/IDE/MonacoCode.d.ts.map +1 -1
  586. package/dist/types/components/IDE/PackageManagerSelector.d.ts.map +1 -1
  587. package/dist/types/components/IDE/code.content.d.ts +2 -4
  588. package/dist/types/components/IDE/code.content.d.ts.map +1 -1
  589. package/dist/types/components/IDE/codeTransformer.d.ts.map +1 -1
  590. package/dist/types/components/IDE/copyCode.content.d.ts +2 -4
  591. package/dist/types/components/IDE/copyCode.content.d.ts.map +1 -1
  592. package/dist/types/components/IDE/createFileTree.d.ts.map +1 -1
  593. package/dist/types/components/IDE/index.d.ts +1 -1
  594. package/dist/types/components/IDE/selectors.content.d.ts +6 -8
  595. package/dist/types/components/IDE/selectors.content.d.ts.map +1 -1
  596. package/dist/types/components/InformationTag/index.d.ts.map +1 -1
  597. package/dist/types/components/Input/Checkbox.d.ts +3 -4
  598. package/dist/types/components/Input/Checkbox.d.ts.map +1 -1
  599. package/dist/types/components/Input/Input.d.ts +1 -2
  600. package/dist/types/components/Input/Input.d.ts.map +1 -1
  601. package/dist/types/components/Input/InputPassword.d.ts.map +1 -1
  602. package/dist/types/components/Input/OTPInput.d.ts +3 -6
  603. package/dist/types/components/Input/OTPInput.d.ts.map +1 -1
  604. package/dist/types/components/Input/SearchInput.d.ts +1 -2
  605. package/dist/types/components/Input/SearchInput.d.ts.map +1 -1
  606. package/dist/types/components/KeyboardScreenAdapter/index.d.ts.map +1 -1
  607. package/dist/types/components/KeyboardShortcut/KeyboardShortcut.d.ts.map +1 -1
  608. package/dist/types/components/Label/index.d.ts.map +1 -1
  609. package/dist/types/components/LanguageBackground/index.d.ts.map +1 -1
  610. package/dist/types/components/Link/Link.d.ts +5 -6
  611. package/dist/types/components/Link/Link.d.ts.map +1 -1
  612. package/dist/types/components/Loader/index.content.d.ts +1 -3
  613. package/dist/types/components/Loader/index.content.d.ts.map +1 -1
  614. package/dist/types/components/Loader/index.d.ts.map +1 -1
  615. package/dist/types/components/Loader/spinner.d.ts +1 -2
  616. package/dist/types/components/Loader/spinner.d.ts.map +1 -1
  617. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -1
  618. package/dist/types/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.d.ts.map +1 -1
  619. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +8 -10
  620. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
  621. package/dist/types/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
  622. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -8
  623. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
  624. package/dist/types/components/Logo/Logo.d.ts.map +1 -1
  625. package/dist/types/components/Logo/LogoWithTextBelow.d.ts.map +1 -1
  626. package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts.map +1 -1
  627. package/dist/types/components/MarkDownRender/MarkDownRender.d.ts +44 -45
  628. package/dist/types/components/MarkDownRender/MarkDownRender.d.ts.map +1 -1
  629. package/dist/types/components/MaxHeightSmoother/index.d.ts.map +1 -1
  630. package/dist/types/components/MaxWidthSmoother/index.d.ts +1 -2
  631. package/dist/types/components/MaxWidthSmoother/index.d.ts.map +1 -1
  632. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  633. package/dist/types/components/Navbar/Burger.d.ts +1 -2
  634. package/dist/types/components/Navbar/Burger.d.ts.map +1 -1
  635. package/dist/types/components/Navbar/DesktopNavbar.d.ts +1 -2
  636. package/dist/types/components/Navbar/DesktopNavbar.d.ts.map +1 -1
  637. package/dist/types/components/Navbar/MobileNavbar.d.ts +1 -2
  638. package/dist/types/components/Navbar/MobileNavbar.d.ts.map +1 -1
  639. package/dist/types/components/Navbar/index.d.ts +1 -2
  640. package/dist/types/components/Navbar/index.d.ts.map +1 -1
  641. package/dist/types/components/Navbar/useNavigation.d.ts.map +1 -1
  642. package/dist/types/components/Pagination/NumberItemsSelector.d.ts.map +1 -1
  643. package/dist/types/components/Pagination/Pagination.d.ts +3 -4
  644. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  645. package/dist/types/components/Pagination/ShowingResultsNumberItems.d.ts.map +1 -1
  646. package/dist/types/components/Pagination/pagination.content.d.ts +5 -7
  647. package/dist/types/components/Pagination/pagination.content.d.ts.map +1 -1
  648. package/dist/types/components/Pattern/DotPattern.d.ts.map +1 -1
  649. package/dist/types/components/Pattern/GridPattern.d.ts.map +1 -1
  650. package/dist/types/components/Pattern/SpotLight.d.ts.map +1 -1
  651. package/dist/types/components/Popover/dynamic.d.ts.map +1 -1
  652. package/dist/types/components/Popover/static.d.ts +3 -2
  653. package/dist/types/components/Popover/static.d.ts.map +1 -1
  654. package/dist/types/components/PressableSpan/PressableSpan.d.ts.map +1 -1
  655. package/dist/types/components/RightDrawer/RightDrawer.d.ts.map +1 -1
  656. package/dist/types/components/RightDrawer/isElementAtTopAndNotCovered.d.ts.map +1 -1
  657. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +2 -4
  658. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts.map +1 -1
  659. package/dist/types/components/RightDrawer/useRightDrawer.d.ts.map +1 -1
  660. package/dist/types/components/Select/Multiselect.d.ts.map +1 -1
  661. package/dist/types/components/Select/Select.d.ts +2 -3
  662. package/dist/types/components/Select/Select.d.ts.map +1 -1
  663. package/dist/types/components/SocialNetworks/index.d.ts +1 -2
  664. package/dist/types/components/SocialNetworks/index.d.ts.map +1 -1
  665. package/dist/types/components/SwitchSelector/SwitchSelector.d.ts +8 -9
  666. package/dist/types/components/SwitchSelector/SwitchSelector.d.ts.map +1 -1
  667. package/dist/types/components/SwitchSelector/VerticalSwitchSelector.d.ts +5 -7
  668. package/dist/types/components/SwitchSelector/VerticalSwitchSelector.d.ts.map +1 -1
  669. package/dist/types/components/SwitchSelector/useSwitchSelector.d.ts +3 -4
  670. package/dist/types/components/SwitchSelector/useSwitchSelector.d.ts.map +1 -1
  671. package/dist/types/components/Tab/Tab.d.ts +5 -7
  672. package/dist/types/components/Tab/Tab.d.ts.map +1 -1
  673. package/dist/types/components/Tab/TabContext.d.ts +1 -2
  674. package/dist/types/components/Tab/TabContext.d.ts.map +1 -1
  675. package/dist/types/components/TabSelector/TabSelector.d.ts +3 -5
  676. package/dist/types/components/TabSelector/TabSelector.d.ts.map +1 -1
  677. package/dist/types/components/Table/ExpandButton.d.ts.map +1 -1
  678. package/dist/types/components/Table/SmartTable.d.ts.map +1 -1
  679. package/dist/types/components/Table/Table.d.ts +1 -2
  680. package/dist/types/components/Table/Table.d.ts.map +1 -1
  681. package/dist/types/components/Table/TableElements.d.ts +4 -5
  682. package/dist/types/components/Table/TableElements.d.ts.map +1 -1
  683. package/dist/types/components/Table/table.content.d.ts +2 -4
  684. package/dist/types/components/Table/table.content.d.ts.map +1 -1
  685. package/dist/types/components/Tag/index.d.ts +4 -5
  686. package/dist/types/components/Tag/index.d.ts.map +1 -1
  687. package/dist/types/components/TechLogo/TechLogo.d.ts.map +1 -1
  688. package/dist/types/components/TechLogo/logos/Lit.d.ts +1 -2
  689. package/dist/types/components/TechLogo/logos/Lit.d.ts.map +1 -1
  690. package/dist/types/components/TechLogo/logos/Vanilla.d.ts +1 -2
  691. package/dist/types/components/TechLogo/logos/Vanilla.d.ts.map +1 -1
  692. package/dist/types/components/Terminal/Terminal.d.ts.map +1 -1
  693. package/dist/types/components/Terminal/terminal.content.d.ts +2 -4
  694. package/dist/types/components/Terminal/terminal.content.d.ts.map +1 -1
  695. package/dist/types/components/TextArea/AutoSizeTextArea.d.ts.map +1 -1
  696. package/dist/types/components/TextArea/AutocompleteTextArea.d.ts.map +1 -1
  697. package/dist/types/components/TextArea/ContentEditableTextArea.d.ts +1 -2
  698. package/dist/types/components/TextArea/ContentEditableTextArea.d.ts.map +1 -1
  699. package/dist/types/components/TextArea/TextArea.d.ts.map +1 -1
  700. package/dist/types/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.d.ts.map +1 -1
  701. package/dist/types/components/ThemeSwitcherDropDown/MobileThemeSwitcher.d.ts.map +1 -1
  702. package/dist/types/components/Toaster/Toast.d.ts +2 -3
  703. package/dist/types/components/Toaster/Toast.d.ts.map +1 -1
  704. package/dist/types/components/Toaster/Toaster.d.ts +1 -3
  705. package/dist/types/components/Toaster/Toaster.d.ts.map +1 -1
  706. package/dist/types/components/Toaster/useToast.d.ts.map +1 -1
  707. package/dist/types/components/WithResizer/index.d.ts +5 -1
  708. package/dist/types/components/WithResizer/index.d.ts.map +1 -1
  709. package/dist/types/components/index.d.ts +1 -1
  710. package/dist/types/hooks/index.d.ts +2 -2
  711. package/dist/types/hooks/reactQuery.d.ts +2 -1
  712. package/dist/types/hooks/reactQuery.d.ts.map +1 -1
  713. package/dist/types/hooks/useAuth/useOAuth2.d.ts.map +1 -1
  714. package/dist/types/hooks/useDevice.d.ts.map +1 -1
  715. package/dist/types/hooks/useGetElementById.d.ts.map +1 -1
  716. package/dist/types/hooks/useGetElementOrWindow.d.ts.map +1 -1
  717. package/dist/types/hooks/useHorizontalSwipe.d.ts.map +1 -1
  718. package/dist/types/hooks/useIntlayerAPI.d.ts.map +1 -1
  719. package/dist/types/hooks/useItemSelector.d.ts.map +1 -1
  720. package/dist/types/hooks/useScrollBlockage/index.d.ts.map +1 -1
  721. package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts.map +1 -1
  722. package/dist/types/hooks/useScrollDetection.d.ts.map +1 -1
  723. package/dist/types/hooks/useScrollY.d.ts.map +1 -1
  724. package/dist/types/hooks/useSearch.d.ts.map +1 -1
  725. package/dist/types/hooks/useUser/index.d.ts +1 -3
  726. package/dist/types/hooks/useUser/index.d.ts.map +1 -1
  727. package/dist/types/libs/auth.d.ts.map +1 -1
  728. package/dist/types/providers/ReactQueryProvider.d.ts.map +1 -1
  729. package/dist/types/routes.d.ts.map +1 -1
  730. package/dist/types/utils/cn.d.ts.map +1 -1
  731. package/package.json +14 -14
  732. package/tailwind.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.mjs","names":[],"sources":["../../../../src/components/Tab/Tab.tsx"],"sourcesContent":["'use client';\n\nimport { useHorizontalSwipe } from '@hooks/useHorizontalSwipe';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n Children,\n createContext,\n type HTMLAttributes,\n isValidElement,\n type ReactElement,\n type ReactNode,\n useState,\n} from 'react';\nimport { TabSelector, TabSelectorColor } from '../TabSelector';\nimport { useTabContext } from './TabContext';\n\n// Context for managing tab state\ntype TabContextType = {\n activeTab: string;\n setActiveTab: (tab: string) => void;\n};\n\nconst TabContext = createContext<TabContextType | undefined>(undefined);\n\n// Tab container variants\nconst tabContainerVariant = cva('relative w-full rounded-lg', {\n variants: {\n background: {\n with: 'border border-neutral/20 bg-background/2 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur',\n without: '',\n },\n variant: {\n default: '',\n bordered: 'border-2',\n ghost: 'border-0 bg-transparent shadow-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport type TabProps = HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof tabContainerVariant> & {\n defaultTab?: string;\n group?: string;\n children: ReactNode;\n headerClassName?: string;\n fullHeight?: boolean;\n };\n\nexport type TabItemProps = HTMLAttributes<HTMLDivElement> & {\n label: string;\n value: string;\n disabled?: boolean;\n children: ReactNode;\n};\n\n/**\n * TabItem component that represents a single tab\n * Must be used as a child of the Tab component\n */\nconst TabItem = ({ children, ...props }: TabItemProps) => (\n // This component is primarily used for its props by the parent Tab component\n // The actual rendering is handled by the Tab component\n <div {...props}>{children}</div>\n);\n\n// Add display name for better debugging\nTabItem.displayName = 'TabItem';\n\n/**\n * Tab container component that manages tab state and renders tab headers and content\n *\n * Example:\n * ```jsx\n * <Tab defaultTab=\"tab1\">\n * <Tab.Item label=\"First Tab\" value=\"tab1\">\n * Content for first tab\n * </Tab.Item>\n * <Tab.Item label=\"Second Tab\" value=\"tab2\">\n * Content for second tab\n * </Tab.Item>\n * </Tab>\n * ```\n */\nconst TabComponent = ({\n defaultTab,\n group,\n variant,\n children,\n className,\n headerClassName,\n fullHeight,\n ...props\n}: TabProps) => {\n // Extract TabItem children to get their props\n const tabItems = Children.toArray(children).filter((child) => {\n return isValidElement(child) && child.type === TabItem;\n }) as ReactElement<TabItemProps>[];\n\n const firstTabValue = tabItems[0]?.props?.value;\n const { tabsValues, setTabsValues } = useTabContext();\n const [activeTab, setActiveTab] = useState(defaultTab ?? firstTabValue ?? '');\n const hasGroup = group && typeof tabsValues === 'object';\n const currentTabValue =\n (hasGroup ? tabsValues?.[group] : activeTab) ?? defaultTab ?? firstTabValue;\n const activeTabIndex = tabItems.findIndex(\n (tab) => tab.props.value === currentTabValue\n );\n\n const tabsCount = tabItems.length;\n\n const { containerProps, dragDeltaPct, isDragging } = useHorizontalSwipe({\n itemIndex: activeTabIndex,\n itemCount: tabsCount,\n onSwipeLeft: () => {\n const targetIndex = Math.min(tabsCount - 1, activeTabIndex + 1);\n const nextValue = tabItems[targetIndex]?.props?.value;\n if (nextValue) handleSetActiveTab(nextValue);\n },\n onSwipeRight: () => {\n const targetIndex = Math.max(0, activeTabIndex - 1);\n const nextValue = tabItems[targetIndex]?.props?.value;\n if (nextValue) handleSetActiveTab(nextValue);\n },\n });\n\n const handleSetActiveTab = (tab: string) => {\n setActiveTab(tab);\n\n if (typeof setTabsValues === 'function') {\n setTabsValues((prev) => ({ ...prev, [group!]: tab }));\n }\n };\n\n const contextValue: TabContextType = {\n activeTab: activeTab ?? firstTabValue ?? '',\n setActiveTab: handleSetActiveTab,\n };\n\n return (\n <TabContext.Provider value={contextValue}>\n <div\n className={cn(\n tabContainerVariant({ variant }),\n fullHeight && 'flex h-full flex-col overflow-hidden',\n className\n )}\n {...props}\n >\n {/* Tab Headers */}\n <div className={cn('flex shrink-0 gap-3 p-3', headerClassName)}>\n <TabSelector\n selectedChoice={currentTabValue}\n tabs={tabItems.map((child) => {\n const { label, value, disabled } = child.props;\n const isActive = currentTabValue === value;\n\n return (\n <button\n key={value}\n className={cn(\n 'cursor-pointer whitespace-nowrap rounded-md px-4 py-1 font-medium text-sm transition-colors focus:outline-none',\n !isActive && 'text-neutral/70'\n )}\n data-active={isActive}\n disabled={disabled}\n onClick={() => !disabled && handleSetActiveTab(value)}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`tabpanel-${value}`}\n id={`tab-${value}`}\n type=\"button\"\n >\n {label ?? value}\n </button>\n );\n })}\n hoverable\n color={TabSelectorColor.TEXT}\n />\n </div>\n {/* Tab Content */}\n {/* Clipper: no overflow; uses clip-path */}\n <div\n className={cn(\n 'relative w-full min-w-0 overflow-x-clip [-webkit-clip-path:inset(0)] [clip-path:inset(0)]',\n fullHeight && 'min-h-0 flex-1'\n )}\n {...containerProps}\n >\n {/* Track */}\n <div\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n className={cn(\n 'grid w-full min-w-0',\n fullHeight && 'h-full',\n isDragging\n ? 'transition-none'\n : 'transition-transform duration-300 ease-in-out'\n )}\n style={{\n gridTemplateColumns: `repeat(${tabItems.length}, 100%)`,\n transform: `translateX(-${activeTabIndex * 100 - (isDragging ? dragDeltaPct : 0)}%)`,\n }}\n >\n {tabItems.map(({ props }, index) => {\n const { value, children, className: itemClassName } = props;\n const isActive = index === activeTabIndex;\n\n return (\n <div\n key={value}\n role=\"tabpanel\"\n aria-labelledby={`tab-${value}`}\n id={`tabpanel-${value}`}\n aria-hidden={!isActive}\n tabIndex={isActive ? 0 : -1}\n data-active={isActive}\n className={cn(\n 'w-full min-w-0 p-6 opacity-100 transition-opacity duration-300 ease-in-out',\n fullHeight && 'h-full overflow-y-auto',\n !isActive && 'pointer-events-none opacity-0', // prevent offscreen interaction\n itemClassName\n )}\n >\n <div\n className={cn(\n 'flex w-full min-w-0 flex-col items-stretch gap-6',\n fullHeight && 'min-h-full'\n )}\n >\n {children}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </TabContext.Provider>\n );\n};\n\n// Create the compound component\nexport const Tab = Object.assign(TabComponent, {\n Item: TabItem,\n});\n"],"mappings":";;;;;;;;;;;AAuBA,MAAM,aAAa,cAA0C,OAAU;AAGvE,MAAM,sBAAsB,IAAI,8BAA8B;CAC5D,UAAU;EACR,YAAY;GACV,MAAM;GACN,SAAS;GACV;EACD,SAAS;GACP,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;;;;;AAsBF,MAAM,WAAW,EAAE,UAAU,GAAG,YAG9B,oBAAC,OAAD;CAAK,GAAI;CAAQ;CAAe;AAIlC,QAAQ,cAAc;;;;;;;;;;;;;;;;AAiBtB,MAAM,gBAAgB,EACpB,YACA,OACA,SACA,UACA,WACA,iBACA,YACA,GAAG,YACW;CAEd,MAAM,WAAW,SAAS,QAAQ,SAAS,CAAC,QAAQ,UAAU;EAC5D,OAAO,eAAe,MAAM,IAAI,MAAM,SAAS;GAC/C;CAEF,MAAM,gBAAgB,SAAS,IAAI,OAAO;CAC1C,MAAM,EAAE,YAAY,kBAAkB,eAAe;CACrD,MAAM,CAAC,WAAW,gBAAgB,SAAS,cAAc,iBAAiB,GAAG;CAE7E,MAAM,mBADW,SAAS,OAAO,eAAe,WAElC,aAAa,SAAS,cAAc,cAAc;CAChE,MAAM,iBAAiB,SAAS,WAC7B,QAAQ,IAAI,MAAM,UAAU,gBAC9B;CAED,MAAM,YAAY,SAAS;CAE3B,MAAM,EAAE,gBAAgB,cAAc,eAAe,mBAAmB;EACtE,WAAW;EACX,WAAW;EACX,mBAAmB;GAEjB,MAAM,YAAY,SADE,KAAK,IAAI,YAAY,GAAG,iBAAiB,EACvB,GAAG,OAAO;GAChD,IAAI,WAAW,mBAAmB,UAAU;;EAE9C,oBAAoB;GAElB,MAAM,YAAY,SADE,KAAK,IAAI,GAAG,iBAAiB,EACX,GAAG,OAAO;GAChD,IAAI,WAAW,mBAAmB,UAAU;;EAE/C,CAAC;CAEF,MAAM,sBAAsB,QAAgB;EAC1C,aAAa,IAAI;EAEjB,IAAI,OAAO,kBAAkB,YAC3B,eAAe,UAAU;GAAE,GAAG;IAAO,QAAS;GAAK,EAAE;;CAIzD,MAAM,eAA+B;EACnC,WAAW,aAAa,iBAAiB;EACzC,cAAc;EACf;CAED,OACE,oBAAC,WAAW,UAAZ;EAAqB,OAAO;YAC1B,qBAAC,OAAD;GACE,WAAW,GACT,oBAAoB,EAAE,SAAS,CAAC,EAChC,cAAc,wCACd,UACD;GACD,GAAI;aANN,CASE,oBAAC,OAAD;IAAK,WAAW,GAAG,2BAA2B,gBAAgB;cAC5D,oBAAC,aAAD;KACE,gBAAgB;KAChB,MAAM,SAAS,KAAK,UAAU;MAC5B,MAAM,EAAE,OAAO,OAAO,aAAa,MAAM;MACzC,MAAM,WAAW,oBAAoB;MAErC,OACE,oBAAC,UAAD;OAEE,WAAW,GACT,kHACA,CAAC,YAAY,kBACd;OACD,eAAa;OACH;OACV,eAAe,CAAC,YAAY,mBAAmB,MAAM;OACrD,MAAK;OACL,iBAAe;OACf,iBAAe,YAAY;OAC3B,IAAI,OAAO;OACX,MAAK;iBAEJ,SAAS;OACH,EAfF,MAeE;OAEX;KACF;KACA;KACA;IACE,GAGN,oBAAC,OAAD;IACE,WAAW,GACT,6FACA,cAAc,iBACf;IACD,GAAI;cAGJ,oBAAC,OAAD;KACE,MAAK;KACL,oBAAiB;KACjB,WAAW,GACT,uBACA,cAAc,UACd,aACI,oBACA,gDACL;KACD,OAAO;MACL,qBAAqB,UAAU,SAAS,OAAO;MAC/C,WAAW,eAAe,iBAAiB,OAAO,aAAa,eAAe,GAAG;MAClF;eAEA,SAAS,KAAK,EAAE,SAAS,UAAU;MAClC,MAAM,EAAE,OAAO,UAAU,WAAW,kBAAkB;MACtD,MAAM,WAAW,UAAU;MAE3B,OACE,oBAAC,OAAD;OAEE,MAAK;OACL,mBAAiB,OAAO;OACxB,IAAI,YAAY;OAChB,eAAa,CAAC;OACd,UAAU,WAAW,IAAI;OACzB,eAAa;OACb,WAAW,GACT,8EACA,cAAc,0BACd,CAAC,YAAY,iCACb,cACD;iBAED,oBAAC,OAAD;QACE,WAAW,GACT,oDACA,cAAc,aACf;QAEA;QACG;OACF,EAtBC,MAsBD;OAER;KACE;IACF,EACF;;EACc;;AAK1B,MAAa,MAAM,OAAO,OAAO,cAAc,EAC7C,MAAM,SACP,CAAC"}
1
+ {"version":3,"file":"Tab.mjs","names":[],"sources":["../../../../src/components/Tab/Tab.tsx"],"sourcesContent":["'use client';\n\nimport { useHorizontalSwipe } from '@hooks/useHorizontalSwipe';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n Children,\n createContext,\n type HTMLAttributes,\n isValidElement,\n type ReactElement,\n type ReactNode,\n useState,\n} from 'react';\nimport { TabSelector, TabSelectorColor } from '../TabSelector';\nimport { useTabContext } from './TabContext';\n\n// Context for managing tab state\ntype TabContextType = {\n activeTab: string;\n setActiveTab: (tab: string) => void;\n};\n\nconst TabContext = createContext<TabContextType | undefined>(undefined);\n\n// Tab container variants\nconst tabContainerVariant = cva('relative w-full rounded-lg', {\n variants: {\n background: {\n with: 'border border-neutral/20 bg-background/2 shadow-[0_0_10px_-15px_rgba(0,0,0,0.3)] backdrop-blur',\n without: '',\n },\n variant: {\n default: '',\n bordered: 'border-2',\n ghost: 'border-0 bg-transparent shadow-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport type TabProps = HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof tabContainerVariant> & {\n defaultTab?: string;\n group?: string;\n children: ReactNode;\n headerClassName?: string;\n fullHeight?: boolean;\n };\n\nexport type TabItemProps = HTMLAttributes<HTMLDivElement> & {\n label: string;\n value: string;\n disabled?: boolean;\n children: ReactNode;\n};\n\n/**\n * TabItem component that represents a single tab\n * Must be used as a child of the Tab component\n */\nconst TabItem = ({ children, ...props }: TabItemProps) => (\n // This component is primarily used for its props by the parent Tab component\n // The actual rendering is handled by the Tab component\n <div {...props}>{children}</div>\n);\n\n// Add display name for better debugging\nTabItem.displayName = 'TabItem';\n\n/**\n * Tab container component that manages tab state and renders tab headers and content\n *\n * Example:\n * ```jsx\n * <Tab defaultTab=\"tab1\">\n * <Tab.Item label=\"First Tab\" value=\"tab1\">\n * Content for first tab\n * </Tab.Item>\n * <Tab.Item label=\"Second Tab\" value=\"tab2\">\n * Content for second tab\n * </Tab.Item>\n * </Tab>\n * ```\n */\nconst TabComponent = ({\n defaultTab,\n group,\n variant,\n children,\n className,\n headerClassName,\n fullHeight,\n ...props\n}: TabProps) => {\n // Extract TabItem children to get their props\n const tabItems = Children.toArray(children).filter((child) => {\n return isValidElement(child) && child.type === TabItem;\n }) as ReactElement<TabItemProps>[];\n\n const firstTabValue = tabItems[0]?.props?.value;\n const { tabsValues, setTabsValues } = useTabContext();\n const [activeTab, setActiveTab] = useState(defaultTab ?? firstTabValue ?? '');\n const hasGroup = group && typeof tabsValues === 'object';\n const currentTabValue =\n (hasGroup ? tabsValues?.[group] : activeTab) ?? defaultTab ?? firstTabValue;\n const activeTabIndex = tabItems.findIndex(\n (tab) => tab.props.value === currentTabValue\n );\n\n const tabsCount = tabItems.length;\n\n const { containerProps, dragDeltaPct, isDragging } = useHorizontalSwipe({\n itemIndex: activeTabIndex,\n itemCount: tabsCount,\n onSwipeLeft: () => {\n const targetIndex = Math.min(tabsCount - 1, activeTabIndex + 1);\n const nextValue = tabItems[targetIndex]?.props?.value;\n if (nextValue) handleSetActiveTab(nextValue);\n },\n onSwipeRight: () => {\n const targetIndex = Math.max(0, activeTabIndex - 1);\n const nextValue = tabItems[targetIndex]?.props?.value;\n if (nextValue) handleSetActiveTab(nextValue);\n },\n });\n\n const handleSetActiveTab = (tab: string) => {\n setActiveTab(tab);\n\n if (typeof setTabsValues === 'function') {\n setTabsValues((prev) => ({ ...prev, [group!]: tab }));\n }\n };\n\n const contextValue: TabContextType = {\n activeTab: activeTab ?? firstTabValue ?? '',\n setActiveTab: handleSetActiveTab,\n };\n\n return (\n <TabContext.Provider value={contextValue}>\n <div\n className={cn(\n tabContainerVariant({ variant }),\n fullHeight && 'flex h-full flex-col overflow-hidden',\n className\n )}\n {...props}\n >\n {/* Tab Headers */}\n <div className={cn('flex shrink-0 gap-3 p-3', headerClassName)}>\n <TabSelector\n selectedChoice={currentTabValue}\n tabs={tabItems.map((child) => {\n const { label, value, disabled } = child.props;\n const isActive = currentTabValue === value;\n\n return (\n <button\n key={value}\n className={cn(\n 'cursor-pointer whitespace-nowrap rounded-md px-4 py-1 font-medium text-sm transition-colors focus:outline-none',\n !isActive && 'text-neutral/70'\n )}\n data-active={isActive}\n disabled={disabled}\n onClick={() => !disabled && handleSetActiveTab(value)}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`tabpanel-${value}`}\n id={`tab-${value}`}\n type=\"button\"\n >\n {label ?? value}\n </button>\n );\n })}\n hoverable\n color={TabSelectorColor.TEXT}\n />\n </div>\n {/* Tab Content */}\n {/* Clipper: no overflow; uses clip-path */}\n <div\n className={cn(\n 'relative w-full min-w-0 overflow-x-clip [-webkit-clip-path:inset(0)] [clip-path:inset(0)]',\n fullHeight && 'min-h-0 flex-1'\n )}\n {...containerProps}\n >\n {/* Track */}\n <div\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n className={cn(\n 'grid w-full min-w-0',\n fullHeight && 'h-full',\n isDragging\n ? 'transition-none'\n : 'transition-transform duration-300 ease-in-out'\n )}\n style={{\n gridTemplateColumns: `repeat(${tabItems.length}, 100%)`,\n transform: `translateX(-${activeTabIndex * 100 - (isDragging ? dragDeltaPct : 0)}%)`,\n }}\n >\n {tabItems.map(({ props }, index) => {\n const { value, children, className: itemClassName } = props;\n const isActive = index === activeTabIndex;\n\n return (\n <div\n key={value}\n role=\"tabpanel\"\n aria-labelledby={`tab-${value}`}\n id={`tabpanel-${value}`}\n aria-hidden={!isActive}\n tabIndex={isActive ? 0 : -1}\n data-active={isActive}\n className={cn(\n 'w-full min-w-0 p-6 opacity-100 transition-opacity duration-300 ease-in-out',\n fullHeight && 'h-full overflow-y-auto',\n !isActive && 'pointer-events-none opacity-0', // prevent offscreen interaction\n itemClassName\n )}\n >\n <div\n className={cn(\n 'flex w-full min-w-0 flex-col items-stretch gap-6',\n fullHeight && 'min-h-full'\n )}\n >\n {children}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </TabContext.Provider>\n );\n};\n\n// Create the compound component\nexport const Tab = Object.assign(TabComponent, {\n Item: TabItem,\n});\n"],"mappings":";;;;;;;;;;;AAuBA,MAAM,aAAa,cAA0C,MAAS;AAGtE,MAAM,sBAAsB,IAAI,8BAA8B;CAC5D,UAAU;EACR,YAAY;GACV,MAAM;GACN,SAAS;EACX;EACA,SAAS;GACP,SAAS;GACT,UAAU;GACV,OAAO;EACT;CACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CAAC;;;;;AAsBD,MAAM,WAAW,EAAE,UAAU,GAAG,YAG9B,oBAAC,OAAD;CAAK,GAAI;CAAQ;AAAc;AAIjC,QAAQ,cAAc;;;;;;;;;;;;;;;;AAiBtB,MAAM,gBAAgB,EACpB,YACA,OACA,SACA,UACA,WACA,iBACA,YACA,GAAG,YACW;CAEd,MAAM,WAAW,SAAS,QAAQ,QAAQ,EAAE,QAAQ,UAAU;EAC5D,OAAO,eAAe,KAAK,KAAK,MAAM,SAAS;CACjD,CAAC;CAED,MAAM,gBAAgB,SAAS,IAAI,OAAO;CAC1C,MAAM,EAAE,YAAY,kBAAkB,cAAc;CACpD,MAAM,CAAC,WAAW,gBAAgB,SAAS,cAAc,iBAAiB,EAAE;CAE5E,MAAM,mBADW,SAAS,OAAO,eAAe,WAElC,aAAa,SAAS,cAAc,cAAc;CAChE,MAAM,iBAAiB,SAAS,WAC7B,QAAQ,IAAI,MAAM,UAAU,eAC/B;CAEA,MAAM,YAAY,SAAS;CAE3B,MAAM,EAAE,gBAAgB,cAAc,eAAe,mBAAmB;EACtE,WAAW;EACX,WAAW;EACX,mBAAmB;GAEjB,MAAM,YAAY,SADE,KAAK,IAAI,YAAY,GAAG,iBAAiB,CACxB,IAAI,OAAO;GAChD,IAAI,WAAW,mBAAmB,SAAS;EAC7C;EACA,oBAAoB;GAElB,MAAM,YAAY,SADE,KAAK,IAAI,GAAG,iBAAiB,CACZ,IAAI,OAAO;GAChD,IAAI,WAAW,mBAAmB,SAAS;EAC7C;CACF,CAAC;CAED,MAAM,sBAAsB,QAAgB;EAC1C,aAAa,GAAG;EAEhB,IAAI,OAAO,kBAAkB,YAC3B,eAAe,UAAU;GAAE,GAAG;IAAO,QAAS;EAAI,EAAE;CAExD;CAEA,MAAM,eAA+B;EACnC,WAAW,aAAa,iBAAiB;EACzC,cAAc;CAChB;CAEA,OACE,oBAAC,WAAW,UAAZ;EAAqB,OAAO;YAC1B,qBAAC,OAAD;GACE,WAAW,GACT,oBAAoB,EAAE,QAAQ,CAAC,GAC/B,cAAc,wCACd,SACF;GACA,GAAI;aANN,CASE,oBAAC,OAAD;IAAK,WAAW,GAAG,2BAA2B,eAAe;cAC3D,oBAAC,aAAD;KACE,gBAAgB;KAChB,MAAM,SAAS,KAAK,UAAU;MAC5B,MAAM,EAAE,OAAO,OAAO,aAAa,MAAM;MACzC,MAAM,WAAW,oBAAoB;MAErC,OACE,oBAAC,UAAD;OAEE,WAAW,GACT,kHACA,CAAC,YAAY,iBACf;OACA,eAAa;OACH;OACV,eAAe,CAAC,YAAY,mBAAmB,KAAK;OACpD,MAAK;OACL,iBAAe;OACf,iBAAe,YAAY;OAC3B,IAAI,OAAO;OACX,MAAK;iBAEJ,SAAS;MACJ,GAfD,KAeC;KAEZ,CAAC;KACD;KACA;IACD;GACE,IAGL,oBAAC,OAAD;IACE,WAAW,GACT,6FACA,cAAc,gBAChB;IACA,GAAI;cAGJ,oBAAC,OAAD;KACE,MAAK;KACL,oBAAiB;KACjB,WAAW,GACT,uBACA,cAAc,UACd,aACI,oBACA,+CACN;KACA,OAAO;MACL,qBAAqB,UAAU,SAAS,OAAO;MAC/C,WAAW,eAAe,iBAAiB,OAAO,aAAa,eAAe,GAAG;KACnF;eAEC,SAAS,KAAK,EAAE,SAAS,UAAU;MAClC,MAAM,EAAE,OAAO,UAAU,WAAW,kBAAkB;MACtD,MAAM,WAAW,UAAU;MAE3B,OACE,oBAAC,OAAD;OAEE,MAAK;OACL,mBAAiB,OAAO;OACxB,IAAI,YAAY;OAChB,eAAa,CAAC;OACd,UAAU,WAAW,IAAI;OACzB,eAAa;OACb,WAAW,GACT,8EACA,cAAc,0BACd,CAAC,YAAY,iCACb,aACF;iBAEA,oBAAC,OAAD;QACE,WAAW,GACT,oDACA,cAAc,YAChB;QAEC;OACE;MACF,GAtBE,KAsBF;KAET,CAAC;IACE;GACF,EACF;;CACc;AAEzB;AAGA,MAAa,MAAM,OAAO,OAAO,cAAc,EAC7C,MAAM,QACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabContext.mjs","names":[],"sources":["../../../../src/components/Tab/TabContext.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type Dispatch,\n type FC,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useState,\n} from 'react';\n\ntype TabContextValue = {\n tabsValues: Record<string, any>;\n setTabsValues: Dispatch<SetStateAction<Record<string, any>>>;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const TabContext = createContext<TabContextValue>({\n tabsValues: {},\n setTabsValues: (() => {}) as Dispatch<SetStateAction<Record<string, any>>>,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useTabContext = () => useContext(TabContext);\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const TabProvider: FC<PropsWithChildren> = ({ children }) => {\n const [tabsValues, setTabsValues] = useState<Record<string, any>>({});\n\n return (\n <TabContext\n value={{\n tabsValues,\n setTabsValues,\n }}\n >\n {children}\n </TabContext>\n );\n};\n"],"mappings":";;;;;;;;;AAoBA,MAAa,aAAa,cAA+B;CACvD,YAAY,EAAE;CACd,sBAAsB;CACvB,CAAC;;;;AAKF,MAAa,sBAAsB,WAAW,WAAW;;;;AAKzD,MAAa,eAAsC,EAAE,eAAe;CAClE,MAAM,CAAC,YAAY,iBAAiB,SAA8B,EAAE,CAAC;CAErE,OACE,oBAAC,YAAD;EACE,OAAO;GACL;GACA;GACD;EAEA;EACU"}
1
+ {"version":3,"file":"TabContext.mjs","names":[],"sources":["../../../../src/components/Tab/TabContext.tsx"],"sourcesContent":["'use client';\n\nimport {\n createContext,\n type Dispatch,\n type FC,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useState,\n} from 'react';\n\ntype TabContextValue = {\n tabsValues: Record<string, any>;\n setTabsValues: Dispatch<SetStateAction<Record<string, any>>>;\n};\n\n/**\n * Context that store the current locale on the client side\n */\nexport const TabContext = createContext<TabContextValue>({\n tabsValues: {},\n setTabsValues: (() => {}) as Dispatch<SetStateAction<Record<string, any>>>,\n});\n\n/**\n * Hook that provides the current locale\n */\nexport const useTabContext = () => useContext(TabContext);\n\n/**\n * Provider that store the current locale on the client side\n */\nexport const TabProvider: FC<PropsWithChildren> = ({ children }) => {\n const [tabsValues, setTabsValues] = useState<Record<string, any>>({});\n\n return (\n <TabContext\n value={{\n tabsValues,\n setTabsValues,\n }}\n >\n {children}\n </TabContext>\n );\n};\n"],"mappings":";;;;;;;;;AAoBA,MAAa,aAAa,cAA+B;CACvD,YAAY,CAAC;CACb,sBAAsB,CAAC;AACzB,CAAC;;;;AAKD,MAAa,sBAAsB,WAAW,UAAU;;;;AAKxD,MAAa,eAAsC,EAAE,eAAe;CAClE,MAAM,CAAC,YAAY,iBAAiB,SAA8B,CAAC,CAAC;CAEpE,OACE,oBAAC,YAAD;EACE,OAAO;GACL;GACA;EACF;EAEC;CACS;AAEhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabSelector.mjs","names":[],"sources":["../../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ItemSelectorOrientation,\n useItemSelector,\n} from '@hooks/useItemSelector';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n cloneElement,\n type HTMLAttributes,\n type MouseEvent,\n type ReactElement,\n useEffect,\n useRef,\n} from 'react';\n\nexport enum TabSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst tabSelectorVariant = cva(\n 'relative z-0 flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute -z-1 rounded-lg duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n orientation: {\n horizontal: 'top-0 h-full w-auto transition-[left,width]',\n vertical: 'left-0 h-auto w-full transition-[top,height]',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\nexport type TabSelectorItemProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\nexport type TabSelectorProps<T extends TabSelectorItemProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n orientation?: ItemSelectorOrientation;\n} & HTMLAttributes<HTMLElement> &\n Omit<VariantProps<typeof tabSelectorVariant>, 'color'> & {\n color?: TabSelectorColor | `${TabSelectorColor}`;\n };\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabSelectorItemProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = TabSelectorColor.PRIMARY,\n hoverable = false,\n orientation = 'horizontal',\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition, calculatePosition } = useItemSelector(\n optionsRefs,\n { isHoverable: hoverable, orientation }\n );\n\n useEffect(() => {\n calculatePosition();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedChoice]);\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation={orientation}\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: (e: MouseEvent<HTMLElement>) => {\n Tab.props?.onClick?.(e);\n onTabClick?.(key);\n },\n 'aria-selected': isSelected,\n 'data-active': isSelected as unknown as string,\n tabIndex: isSelected ? 0 : -1,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n orientation,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAiBA,IAAY,mBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;;KACD;AAED,MAAM,qBAAqB,IACzB,2DACA;CACE,UAAU,EACR,OAAO;EACL,SAAS;EACT,WAAW;EACX,aAAa;EACb,SAAS;EACT,OAAO;EACP,MAAM;EACN,MAAM;EACP,EACF;CACD,iBAAiB,EACf,OAAO,WACR;CACF,CACF;AAED,MAAM,mBAAmB,IACvB,mFACA;CACE,UAAU;EACR,OAAO;GACL,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,OAAO;GACP,MAAM;GACN,MAAM;GACP;EACD,aAAa;GACX,YAAY;GACZ,UAAU;GACX;EACF;CACD,iBAAiB,EACf,aAAa,cACd;CACF,CACF;;;;;;;;;;;;;;;;;;AAkCD,MAAa,eAA+C,EAC1D,MACA,gBACA,YACA,mBACA,YAAY,OACZ,cAAc,cACd,gBACyB;CACzB,MAAM,cAAc,OAAsB,EAAE,CAAC;CAC7C,MAAM,eAAe,OAA8B,KAAK;CACxD,MAAM,EAAE,yBAAyB,sBAAsB,gBACrD,aACA;EAAE,aAAa;EAAW;EAAa,CACxC;CAED,gBAAgB;EACd,mBAAmB;IAElB,CAAC,eAAe,CAAC;CAEpB,OACE,qBAAC,OAAD;EACE,WAAW,GACT,mBAAmB,EACjB,OACD,CAAC,EACF,UACD;EACD,oBAAkB;EAClB,wBAAqB;EACrB,MAAK;YATP,CAWG,KAAK,KAAK,KAAK,UAAU;GACxB,MAAM,MAAM,IAAI;GAEhB,MAAM,aAAa,mBAAmB;GAEtC,OAAO,aAAa,KAAK;IACvB,KAAK,OAAO;IACZ,MAAM;IACN,UAAU,MAA+B;KACvC,IAAI,OAAO,UAAU,EAAE;KACvB,aAAa,IAAI;;IAEnB,iBAAiB;IACjB,eAAe;IACf,UAAU,aAAa,IAAI;IAC3B,MAAM,OAAoB;KACxB,YAAY,QAAQ,SAAS;;IAEhC,CAAiB;IAClB,EACD,2BACC,oBAAC,OAAD;GACE,WAAW,GACT,iBAAiB;IACf;IACA;IACD,CAAC,CACH;GACD,OAAO;GACP,KAAK;GAEL,EADK,GAAG,iBAAiB,KAAK,UAAU,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GACnE,CAEA"}
1
+ {"version":3,"file":"TabSelector.mjs","names":[],"sources":["../../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ItemSelectorOrientation,\n useItemSelector,\n} from '@hooks/useItemSelector';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n cloneElement,\n type HTMLAttributes,\n type MouseEvent,\n type ReactElement,\n useEffect,\n useRef,\n} from 'react';\n\nexport enum TabSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst tabSelectorVariant = cva(\n 'relative z-0 flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute -z-1 rounded-lg duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n orientation: {\n horizontal: 'top-0 h-full w-auto transition-[left,width]',\n vertical: 'left-0 h-auto w-full transition-[top,height]',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\nexport type TabSelectorItemProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\nexport type TabSelectorProps<T extends TabSelectorItemProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n orientation?: ItemSelectorOrientation;\n} & HTMLAttributes<HTMLElement> &\n Omit<VariantProps<typeof tabSelectorVariant>, 'color'> & {\n color?: TabSelectorColor | `${TabSelectorColor}`;\n };\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabSelectorItemProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = TabSelectorColor.PRIMARY,\n hoverable = false,\n orientation = 'horizontal',\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition, calculatePosition } = useItemSelector(\n optionsRefs,\n { isHoverable: hoverable, orientation }\n );\n\n useEffect(() => {\n calculatePosition();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedChoice]);\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation={orientation}\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: (e: MouseEvent<HTMLElement>) => {\n Tab.props?.onClick?.(e);\n onTabClick?.(key);\n },\n 'aria-selected': isSelected,\n 'data-active': isSelected as unknown as string,\n tabIndex: isSelected ? 0 : -1,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n orientation,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAiBA,IAAY,mBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;;AACF;AAEA,MAAM,qBAAqB,IACzB,2DACA;CACE,UAAU,EACR,OAAO;EACL,SAAS;EACT,WAAW;EACX,aAAa;EACb,SAAS;EACT,OAAO;EACP,MAAM;EACN,MAAM;CACR,EACF;CACA,iBAAiB,EACf,OAAO,UACT;AACF,CACF;AAEA,MAAM,mBAAmB,IACvB,mFACA;CACE,UAAU;EACR,OAAO;GACL,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,OAAO;GACP,MAAM;GACN,MAAM;EACR;EACA,aAAa;GACX,YAAY;GACZ,UAAU;EACZ;CACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CACF;;;;;;;;;;;;;;;;;;AAkCA,MAAa,eAA+C,EAC1D,MACA,gBACA,YACA,mBACA,YAAY,OACZ,cAAc,cACd,gBACyB;CACzB,MAAM,cAAc,OAAsB,CAAC,CAAC;CAC5C,MAAM,eAAe,OAA8B,IAAI;CACvD,MAAM,EAAE,yBAAyB,sBAAsB,gBACrD,aACA;EAAE,aAAa;EAAW;CAAY,CACxC;CAEA,gBAAgB;EACd,kBAAkB;CAEpB,GAAG,CAAC,cAAc,CAAC;CAEnB,OACE,qBAAC,OAAD;EACE,WAAW,GACT,mBAAmB,EACjB,MACF,CAAC,GACD,SACF;EACA,oBAAkB;EAClB,wBAAqB;EACrB,MAAK;YATP,CAWG,KAAK,KAAK,KAAK,UAAU;GACxB,MAAM,MAAM,IAAI;GAEhB,MAAM,aAAa,mBAAmB;GAEtC,OAAO,aAAa,KAAK;IACvB,KAAK,OAAO;IACZ,MAAM;IACN,UAAU,MAA+B;KACvC,IAAI,OAAO,UAAU,CAAC;KACtB,aAAa,GAAG;IAClB;IACA,iBAAiB;IACjB,eAAe;IACf,UAAU,aAAa,IAAI;IAC3B,MAAM,OAAoB;KACxB,YAAY,QAAQ,SAAS;IAC/B;GACF,CAAiB;EACnB,CAAC,GACA,2BACC,oBAAC,OAAD;GACE,WAAW,GACT,iBAAiB;IACf;IACA;GACF,CAAC,CACH;GACA,OAAO;GACP,KAAK;EAEN,GADM,GAAG,iBAAiB,KAAK,UAAU,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,GACnE,CAEA;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandButton.mjs","names":[],"sources":["../../../../src/components/Table/ExpandButton.tsx"],"sourcesContent":["import { Popover, PopoverXAlign } from '@components/Popover';\nimport { MoveDiagonal } from 'lucide-react';\nimport type { FC } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport { Button } from '../Button';\n\ntype ExpandButtonProps = {\n setIsModalOpen: (isOpen: boolean) => void;\n};\n\nexport const ExpandButton: FC<ExpandButtonProps> = ({ setIsModalOpen }) => {\n const { modal: modalContent } = useIntlayer('table');\n\n return (\n <div className=\"pointer-events-none absolute inset-y-0 right-4 z-10\">\n <div className=\"pointer-events-auto sticky top-48 pt-4\">\n <Popover identifier=\"expand\">\n <Button\n variant=\"hoverable\"\n size=\"icon-md\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n label={modalContent.title}\n Icon={MoveDiagonal}\n />\n\n <Popover.Detail\n identifier=\"expand\"\n className=\"flex min-w-64 flex-col gap-3 p-3 text-sm\"\n xAlign={PopoverXAlign.END}\n >\n <strong>{modalContent.title}</strong>\n <p className=\"text-neutral\">{modalContent.description}</p>\n </Popover.Detail>\n </Popover>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,gBAAuC,EAAE,qBAAqB;CACzE,MAAM,EAAE,OAAO,iBAAiB,YAAY,QAAQ;CAEpD,OACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,OAAD;GAAK,WAAU;aACb,qBAAC,SAAD;IAAS,YAAW;cAApB,CACE,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,eAAe;MACb,eAAe,KAAK;;KAEtB,OAAO,aAAa;KACpB,MAAM;KACN,GAEF,qBAAC,QAAQ,QAAT;KACE,YAAW;KACX,WAAU;KACV;eAHF,CAKE,oBAAC,UAAD,YAAS,aAAa,OAAe,GACrC,oBAAC,KAAD;MAAG,WAAU;gBAAgB,aAAa;MAAgB,EAC3C;OACT;;GACN;EACF"}
1
+ {"version":3,"file":"ExpandButton.mjs","names":[],"sources":["../../../../src/components/Table/ExpandButton.tsx"],"sourcesContent":["import { Popover, PopoverXAlign } from '@components/Popover';\nimport { MoveDiagonal } from 'lucide-react';\nimport type { FC } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport { Button } from '../Button';\n\ntype ExpandButtonProps = {\n setIsModalOpen: (isOpen: boolean) => void;\n};\n\nexport const ExpandButton: FC<ExpandButtonProps> = ({ setIsModalOpen }) => {\n const { modal: modalContent } = useIntlayer('table');\n\n return (\n <div className=\"pointer-events-none absolute inset-y-0 right-4 z-10\">\n <div className=\"pointer-events-auto sticky top-48 pt-4\">\n <Popover identifier=\"expand\">\n <Button\n variant=\"hoverable\"\n size=\"icon-md\"\n onClick={() => {\n setIsModalOpen(true);\n }}\n label={modalContent.title}\n Icon={MoveDiagonal}\n />\n\n <Popover.Detail\n identifier=\"expand\"\n className=\"flex min-w-64 flex-col gap-3 p-3 text-sm\"\n xAlign={PopoverXAlign.END}\n >\n <strong>{modalContent.title}</strong>\n <p className=\"text-neutral\">{modalContent.description}</p>\n </Popover.Detail>\n </Popover>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,gBAAuC,EAAE,qBAAqB;CACzE,MAAM,EAAE,OAAO,iBAAiB,YAAY,OAAO;CAEnD,OACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,OAAD;GAAK,WAAU;aACb,qBAAC,SAAD;IAAS,YAAW;cAApB,CACE,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,eAAe;MACb,eAAe,IAAI;KACrB;KACA,OAAO,aAAa;KACpB,MAAM;IACP,IAED,qBAAC,QAAQ,QAAT;KACE,YAAW;KACX,WAAU;KACV;eAHF,CAKE,oBAAC,UAAD,YAAS,aAAa,MAAc,IACpC,oBAAC,KAAD;MAAG,WAAU;gBAAgB,aAAa;KAAe,EAC3C;MACT;;EACN;CACF;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmartTable.mjs","names":[],"sources":["../../../../src/components/Table/SmartTable.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport {\n type FC,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { ExpandCollapse } from '../ExpandCollapse';\nimport { Modal, ModalSize } from '../Modal';\nimport { ExpandButton } from './ExpandButton';\nimport type { TableProps } from './Table';\nimport { Table } from './Table';\nimport { useTableWidths } from './useTableWidths';\n\n/**\n * Properties for the SmartTable component\n *\n * @interface SmartTableProps\n * @extends {TableProps}\n *\n * @property {boolean} [isRollable] - Whether the table content can be collapsed/expanded using the ExpandCollapse wrapper\n * @property {boolean} [displayModal] - Whether the table should be able to expand into a modal\n */\ntype SmartTableProps = TableProps & {\n isRollable?: boolean;\n displayModal?: boolean;\n};\n\n/**\n * Table component that provides an enhanced table experience with modal expansion and collapsible content\n *\n * The Table component wraps a standard HTML table element with additional functionality:\n * - **Modal Expansion**: Click the diagonal arrow button to view the table in a full-screen modal\n * - **Collapsible Content**: Optionally wrap content in an ExpandCollapse component for space-saving\n * - **Responsive Design**: Handles large tables gracefully with modal overflow\n * - **Sticky Controls**: Table controls remain accessible even when scrolling\n *\n * ## Features\n * - **Modal View**: Full-screen modal for better viewing of large tables\n * - **Expand/Collapse**: Optional collapsible wrapper to save space\n * - **Responsive**: Handles overflow and responsive behavior automatically\n * - **Accessibility**: Maintains proper table semantics and keyboard navigation\n * - **Customizable**: Supports all standard HTML table attributes and styling\n *\n * ## Best Practices\n * - Use semantic HTML table structure (thead, tbody, tfoot)\n * - Provide proper column headers with scope attributes\n * - Use the isRollable prop for large tables that might need space management\n * - Apply consistent styling through the className prop\n * - Consider pagination for very large datasets\n *\n * @param {SmartTableProps} props - The properties for the Table component\n * @returns {JSX.Element} The rendered table with enhanced functionality\n *\n * @example\n * ```tsx\n * // Simple data table\n * <SmartTable>\n * <thead>\n * <tr>\n * <th scope=\"col\">Name</th>\n * <th scope=\"col\">Email</th>\n * <th scope=\"col\">Status</th>\n * </tr>\n * </thead>\n * <tbody>\n * <tr>\n * <td>John Doe</td>\n * <td>john@example.com</td>\n * <td>\n * <span className=\"px-2 py-1 bg-green-100 text-green-800 rounded-full text-xs\">\n * Active\n * </span>\n * </td>\n * </tr>\n * <tr>\n * <td>Jane Smith</td>\n * <td>jane@example.com</td>\n * <td>\n * <span className=\"px-2 py-1 bg-yellow-100 text-yellow-800 rounded-full text-xs\">\n * Pending\n * </span>\n * </td>\n * </tr>\n * </tbody>\n * </SmartTable>\n *\n * // Large collapsible table with custom styling\n * <SmartTable\n * isRollable\n * className=\"border border-gray-200 rounded-lg overflow-hidden\"\n * >\n * <thead className=\"bg-gray-50\">\n * <tr>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Product ID\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Name\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Category\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Price\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Stock\n * </th>\n * </tr>\n * </thead>\n * <tbody className=\"bg-white divide-y divide-gray-200\">\n * {products.map((product) => (\n * <tr key={product.id} className=\"hover:bg-gray-50\">\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-900\">\n * #{product.id}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900\">\n * {product.name}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-500\">\n * {product.category}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-900\">\n * ${product.price.toFixed(2)}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-500\">\n * {product.stock} units\n * </td>\n * </tr>\n * ))}\n * </tbody>\n * </SmartTable>\n *\n * // Financial data table with formatted numbers\n * <SmartTable className=\"w-full border-collapse\">\n * <thead>\n * <tr className=\"border-b-2 border-gray-300\">\n * <th scope=\"col\" className=\"text-left py-3 px-4\">Quarter</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Revenue</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Profit</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Growth</th>\n * </tr>\n * </thead>\n * <tbody>\n * <tr className=\"border-b border-gray-200\">\n * <td className=\"py-3 px-4 font-medium\">Q1 2024</td>\n * <td className=\"py-3 px-4 text-right\">$2,450,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">$345,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">+12.5%</td>\n * </tr>\n * <tr className=\"border-b border-gray-200\">\n * <td className=\"py-3 px-4 font-medium\">Q2 2024</td>\n * <td className=\"py-3 px-4 text-right\">$2,780,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">$398,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">+13.5%</td>\n * </tr>\n * </tbody>\n * </SmartTable>\n * ```\n *\n * @see {@link ExpandCollapse} - Component used for collapsible table content\n * @see {@link Modal} - Component used for full-screen table view\n * @see {@link Button} - Component used for the modal trigger button\n */\nexport const SmartTable: FC<SmartTableProps> = ({\n className,\n isRollable = false,\n displayModal,\n isInteractive,\n onClick,\n ...props\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [highlightedRowIndex, setHighlightedRowIndex] = useState<number | null>(\n null\n );\n\n const tableRef = useRef<HTMLTableElement>(null);\n const modalTableRef = useRef<HTMLTableElement>(null);\n\n useTableWidths(tableRef, modalTableRef, [props.children, isModalOpen]);\n\n useEffect(() => {\n if (isModalOpen && highlightedRowIndex !== null && modalTableRef.current) {\n const row = modalTableRef.current.rows[highlightedRowIndex];\n\n if (row) {\n row.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\n row.classList.add('bg-neutral/40', 'dark:bg-neutral-dark/40');\n row.style.transition = 'background-color 0.3s ease-in-out';\n }\n }\n }, [isModalOpen, highlightedRowIndex]);\n\n useEffect(() => {\n if (!isModalOpen) {\n setHighlightedRowIndex(null);\n }\n }, [isModalOpen]);\n\n const handleTableClick = (e: React.MouseEvent<HTMLTableElement>) => {\n if (displayModal) {\n const target = e.target as HTMLElement;\n const tr = target.closest('tr');\n\n if (tr?.closest('tbody')) {\n setHighlightedRowIndex(tr.rowIndex);\n setIsModalOpen(true);\n }\n }\n onClick?.(e);\n };\n\n return (\n <div className=\"group relative\">\n {displayModal && <ExpandButton setIsModalOpen={setIsModalOpen} />}\n\n <ExpandCollapse\n isRollable={isRollable}\n className=\"max-w-full overflow-x-auto rounded-2xl bg-background text-left [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl\"\n >\n <Table\n ref={tableRef}\n className={className}\n isInteractive={isInteractive ?? displayModal}\n onClick={handleTableClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleTableClick(\n e as unknown as React.MouseEvent<HTMLTableElement>\n );\n }\n }}\n {...props}\n />\n </ExpandCollapse>\n\n <Modal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n size={ModalSize.XL}\n hasCloseButton\n isScrollable\n >\n {isModalOpen ? (\n <div className=\"grid\">\n <Table\n ref={modalTableRef}\n className={cn('min-w-full max-w-full text-left', className)}\n isInteractive={isInteractive}\n {...props}\n />\n </div>\n ) : (\n <></>\n )}\n </Modal>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuKA,MAAa,cAAmC,EAC9C,WACA,aAAa,OACb,cACA,eACA,SACA,GAAG,YACC;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CACrD,MAAM,CAAC,qBAAqB,0BAA0B,SACpD,KACD;CAED,MAAM,WAAW,OAAyB,KAAK;CAC/C,MAAM,gBAAgB,OAAyB,KAAK;CAEpD,eAAe,UAAU,eAAe,CAAC,MAAM,UAAU,YAAY,CAAC;CAEtE,gBAAgB;EACd,IAAI,eAAe,wBAAwB,QAAQ,cAAc,SAAS;GACxE,MAAM,MAAM,cAAc,QAAQ,KAAK;GAEvC,IAAI,KAAK;IACP,IAAI,eAAe;KAAE,UAAU;KAAU,OAAO;KAAU,CAAC;IAE3D,IAAI,UAAU,IAAI,iBAAiB,0BAA0B;IAC7D,IAAI,MAAM,aAAa;;;IAG1B,CAAC,aAAa,oBAAoB,CAAC;CAEtC,gBAAgB;EACd,IAAI,CAAC,aACH,uBAAuB,KAAK;IAE7B,CAAC,YAAY,CAAC;CAEjB,MAAM,oBAAoB,MAA0C;EAClE,IAAI,cAAc;GAEhB,MAAM,KADS,EAAE,OACC,QAAQ,KAAK;GAE/B,IAAI,IAAI,QAAQ,QAAQ,EAAE;IACxB,uBAAuB,GAAG,SAAS;IACnC,eAAe,KAAK;;;EAGxB,UAAU,EAAE;;CAGd,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACG,gBAAgB,oBAAC,cAAD,EAA8B,gBAAkB;GAEjE,oBAAC,gBAAD;IACc;IACZ,WAAU;cAEV,oBAAC,OAAD;KACE,KAAK;KACM;KACX,eAAe,iBAAiB;KAChC,SAAS;KACT,YAAY,MAAM;MAChB,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KACjC,iBACE,EACD;;KAGL,GAAI;KACJ;IACa;GAEjB,oBAAC,OAAD;IACE,QAAQ;IACR,eAAe,eAAe,MAAM;IACpC;IACA;IACA;cAEC,cACC,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD;MACE,KAAK;MACL,WAAW,GAAG,mCAAmC,UAAU;MAC5C;MACf,GAAI;MACJ;KACE,IAEN,kCAAK;IAED;GACJ"}
1
+ {"version":3,"file":"SmartTable.mjs","names":[],"sources":["../../../../src/components/Table/SmartTable.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport { type FC, useEffect, useRef, useState } from 'react';\nimport { ExpandCollapse } from '../ExpandCollapse';\nimport { Modal, ModalSize } from '../Modal';\nimport { ExpandButton } from './ExpandButton';\nimport type { TableProps } from './Table';\nimport { Table } from './Table';\nimport { useTableWidths } from './useTableWidths';\n\n/**\n * Properties for the SmartTable component\n *\n * @interface SmartTableProps\n * @extends {TableProps}\n *\n * @property {boolean} [isRollable] - Whether the table content can be collapsed/expanded using the ExpandCollapse wrapper\n * @property {boolean} [displayModal] - Whether the table should be able to expand into a modal\n */\ntype SmartTableProps = TableProps & {\n isRollable?: boolean;\n displayModal?: boolean;\n};\n\n/**\n * Table component that provides an enhanced table experience with modal expansion and collapsible content\n *\n * The Table component wraps a standard HTML table element with additional functionality:\n * - **Modal Expansion**: Click the diagonal arrow button to view the table in a full-screen modal\n * - **Collapsible Content**: Optionally wrap content in an ExpandCollapse component for space-saving\n * - **Responsive Design**: Handles large tables gracefully with modal overflow\n * - **Sticky Controls**: Table controls remain accessible even when scrolling\n *\n * ## Features\n * - **Modal View**: Full-screen modal for better viewing of large tables\n * - **Expand/Collapse**: Optional collapsible wrapper to save space\n * - **Responsive**: Handles overflow and responsive behavior automatically\n * - **Accessibility**: Maintains proper table semantics and keyboard navigation\n * - **Customizable**: Supports all standard HTML table attributes and styling\n *\n * ## Best Practices\n * - Use semantic HTML table structure (thead, tbody, tfoot)\n * - Provide proper column headers with scope attributes\n * - Use the isRollable prop for large tables that might need space management\n * - Apply consistent styling through the className prop\n * - Consider pagination for very large datasets\n *\n * @param {SmartTableProps} props - The properties for the Table component\n * @returns {JSX.Element} The rendered table with enhanced functionality\n *\n * @example\n * ```tsx\n * // Simple data table\n * <SmartTable>\n * <thead>\n * <tr>\n * <th scope=\"col\">Name</th>\n * <th scope=\"col\">Email</th>\n * <th scope=\"col\">Status</th>\n * </tr>\n * </thead>\n * <tbody>\n * <tr>\n * <td>John Doe</td>\n * <td>john@example.com</td>\n * <td>\n * <span className=\"px-2 py-1 bg-green-100 text-green-800 rounded-full text-xs\">\n * Active\n * </span>\n * </td>\n * </tr>\n * <tr>\n * <td>Jane Smith</td>\n * <td>jane@example.com</td>\n * <td>\n * <span className=\"px-2 py-1 bg-yellow-100 text-yellow-800 rounded-full text-xs\">\n * Pending\n * </span>\n * </td>\n * </tr>\n * </tbody>\n * </SmartTable>\n *\n * // Large collapsible table with custom styling\n * <SmartTable\n * isRollable\n * className=\"border border-gray-200 rounded-lg overflow-hidden\"\n * >\n * <thead className=\"bg-gray-50\">\n * <tr>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Product ID\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Name\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Category\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Price\n * </th>\n * <th scope=\"col\" className=\"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase\">\n * Stock\n * </th>\n * </tr>\n * </thead>\n * <tbody className=\"bg-white divide-y divide-gray-200\">\n * {products.map((product) => (\n * <tr key={product.id} className=\"hover:bg-gray-50\">\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-900\">\n * #{product.id}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900\">\n * {product.name}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-500\">\n * {product.category}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-900\">\n * ${product.price.toFixed(2)}\n * </td>\n * <td className=\"px-6 py-4 whitespace-nowrap text-sm text-gray-500\">\n * {product.stock} units\n * </td>\n * </tr>\n * ))}\n * </tbody>\n * </SmartTable>\n *\n * // Financial data table with formatted numbers\n * <SmartTable className=\"w-full border-collapse\">\n * <thead>\n * <tr className=\"border-b-2 border-gray-300\">\n * <th scope=\"col\" className=\"text-left py-3 px-4\">Quarter</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Revenue</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Profit</th>\n * <th scope=\"col\" className=\"text-right py-3 px-4\">Growth</th>\n * </tr>\n * </thead>\n * <tbody>\n * <tr className=\"border-b border-gray-200\">\n * <td className=\"py-3 px-4 font-medium\">Q1 2024</td>\n * <td className=\"py-3 px-4 text-right\">$2,450,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">$345,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">+12.5%</td>\n * </tr>\n * <tr className=\"border-b border-gray-200\">\n * <td className=\"py-3 px-4 font-medium\">Q2 2024</td>\n * <td className=\"py-3 px-4 text-right\">$2,780,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">$398,000</td>\n * <td className=\"py-3 px-4 text-right text-green-600\">+13.5%</td>\n * </tr>\n * </tbody>\n * </SmartTable>\n * ```\n *\n * @see {@link ExpandCollapse} - Component used for collapsible table content\n * @see {@link Modal} - Component used for full-screen table view\n * @see {@link Button} - Component used for the modal trigger button\n */\nexport const SmartTable: FC<SmartTableProps> = ({\n className,\n isRollable = false,\n displayModal,\n isInteractive,\n onClick,\n ...props\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [highlightedRowIndex, setHighlightedRowIndex] = useState<number | null>(\n null\n );\n\n const tableRef = useRef<HTMLTableElement>(null);\n const modalTableRef = useRef<HTMLTableElement>(null);\n\n useTableWidths(tableRef, modalTableRef, [props.children, isModalOpen]);\n\n useEffect(() => {\n if (isModalOpen && highlightedRowIndex !== null && modalTableRef.current) {\n const row = modalTableRef.current.rows[highlightedRowIndex];\n\n if (row) {\n row.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\n row.classList.add('bg-neutral/40', 'dark:bg-neutral-dark/40');\n row.style.transition = 'background-color 0.3s ease-in-out';\n }\n }\n }, [isModalOpen, highlightedRowIndex]);\n\n useEffect(() => {\n if (!isModalOpen) {\n setHighlightedRowIndex(null);\n }\n }, [isModalOpen]);\n\n const handleTableClick = (e: React.MouseEvent<HTMLTableElement>) => {\n if (displayModal) {\n const target = e.target as HTMLElement;\n const tr = target.closest('tr');\n\n if (tr?.closest('tbody')) {\n setHighlightedRowIndex(tr.rowIndex);\n setIsModalOpen(true);\n }\n }\n onClick?.(e);\n };\n\n return (\n <div className=\"group relative\">\n {displayModal && <ExpandButton setIsModalOpen={setIsModalOpen} />}\n\n <ExpandCollapse\n isRollable={isRollable}\n className=\"max-w-full overflow-x-auto rounded-2xl bg-background text-left [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl\"\n >\n <Table\n ref={tableRef}\n className={className}\n isInteractive={isInteractive ?? displayModal}\n onClick={handleTableClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleTableClick(\n e as unknown as React.MouseEvent<HTMLTableElement>\n );\n }\n }}\n {...props}\n />\n </ExpandCollapse>\n\n <Modal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n size={ModalSize.XL}\n hasCloseButton\n isScrollable\n >\n {isModalOpen ? (\n <div className=\"grid\">\n <Table\n ref={modalTableRef}\n className={cn('min-w-full max-w-full text-left', className)}\n isInteractive={isInteractive}\n {...props}\n />\n </div>\n ) : (\n <></>\n )}\n </Modal>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,MAAa,cAAmC,EAC9C,WACA,aAAa,OACb,cACA,eACA,SACA,GAAG,YACC;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,KAAK;CACpD,MAAM,CAAC,qBAAqB,0BAA0B,SACpD,IACF;CAEA,MAAM,WAAW,OAAyB,IAAI;CAC9C,MAAM,gBAAgB,OAAyB,IAAI;CAEnD,eAAe,UAAU,eAAe,CAAC,MAAM,UAAU,WAAW,CAAC;CAErE,gBAAgB;EACd,IAAI,eAAe,wBAAwB,QAAQ,cAAc,SAAS;GACxE,MAAM,MAAM,cAAc,QAAQ,KAAK;GAEvC,IAAI,KAAK;IACP,IAAI,eAAe;KAAE,UAAU;KAAU,OAAO;IAAS,CAAC;IAE1D,IAAI,UAAU,IAAI,iBAAiB,yBAAyB;IAC5D,IAAI,MAAM,aAAa;GACzB;EACF;CACF,GAAG,CAAC,aAAa,mBAAmB,CAAC;CAErC,gBAAgB;EACd,IAAI,CAAC,aACH,uBAAuB,IAAI;CAE/B,GAAG,CAAC,WAAW,CAAC;CAEhB,MAAM,oBAAoB,MAA0C;EAClE,IAAI,cAAc;GAEhB,MAAM,KADS,EAAE,OACC,QAAQ,IAAI;GAE9B,IAAI,IAAI,QAAQ,OAAO,GAAG;IACxB,uBAAuB,GAAG,QAAQ;IAClC,eAAe,IAAI;GACrB;EACF;EACA,UAAU,CAAC;CACb;CAEA,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACG,gBAAgB,oBAAC,cAAD,EAA8B,eAAiB;GAEhE,oBAAC,gBAAD;IACc;IACZ,WAAU;cAEV,oBAAC,OAAD;KACE,KAAK;KACM;KACX,eAAe,iBAAiB;KAChC,SAAS;KACT,YAAY,MAAM;MAChB,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KACjC,iBACE,CACF;KAEJ;KACA,GAAI;IACL;GACa;GAEhB,oBAAC,OAAD;IACE,QAAQ;IACR,eAAe,eAAe,KAAK;IACnC;IACA;IACA;cAEC,cACC,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD;MACE,KAAK;MACL,WAAW,GAAG,mCAAmC,SAAS;MAC3C;MACf,GAAI;KACL;IACE,KAEL,iCAAI;GAED;EACJ;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","names":[],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { forwardRef, type HTMLAttributes } from 'react';\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {\n /** Enables hover states and cursor changes for interactive rows */\n isInteractive?: boolean;\n}\n\nexport const Table = forwardRef<HTMLTableElement, TableProps>(\n ({ className, isInteractive, ...props }, ref) => (\n <table\n ref={ref}\n className={cn(\n 'w-full table-auto overflow-hidden text-left',\n isInteractive &&\n '[&_tbody_tr:hover]:bg-neutral/40 [&_tbody_tr:hover]:dark:bg-neutral-dark/40 [&_tbody_tr]:cursor-pointer [&_tbody_tr]:transition-colors',\n className\n )}\n {...props}\n />\n )\n);\n"],"mappings":";;;;;AAQA,MAAa,QAAQ,YAClB,EAAE,WAAW,eAAe,GAAG,SAAS,QACvC,oBAAC,SAAD;CACO;CACL,WAAW,GACT,+CACA,iBACE,0IACF,UACD;CACD,GAAI;CACJ,EAEL"}
1
+ {"version":3,"file":"Table.mjs","names":[],"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { forwardRef, type HTMLAttributes } from 'react';\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {\n /** Enables hover states and cursor changes for interactive rows */\n isInteractive?: boolean;\n}\n\nexport const Table = forwardRef<HTMLTableElement, TableProps>(\n ({ className, isInteractive, ...props }, ref) => (\n <table\n ref={ref}\n className={cn(\n 'w-full table-auto overflow-hidden text-left',\n isInteractive &&\n '[&_tbody_tr:hover]:bg-neutral/40 [&_tbody_tr:hover]:dark:bg-neutral-dark/40 [&_tbody_tr]:cursor-pointer [&_tbody_tr]:transition-colors',\n className\n )}\n {...props}\n />\n )\n);\n"],"mappings":";;;;;AAQA,MAAa,QAAQ,YAClB,EAAE,WAAW,eAAe,GAAG,SAAS,QACvC,oBAAC,SAAD;CACO;CACL,WAAW,GACT,+CACA,iBACE,0IACF,SACF;CACA,GAAI;AACL,EAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableElements.mjs","names":[],"sources":["../../../../src/components/Table/TableElements.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport type { ComponentProps } from 'react';\n\nexport const Th = ({ className, ...props }: ComponentProps<'th'>) => (\n <th\n className={cn(\n 'border border-neutral/20 border-b border-solid bg-neutral/10 p-4',\n className\n )}\n {...props}\n />\n);\n\nexport const Tr = ({ className, ...props }: ComponentProps<'tr'>) => (\n <tr className={cn('hover:bg-neutral/10', className)} {...props} />\n);\n\nexport const Td = ({ className, ...props }: ComponentProps<'td'>) => (\n <td\n className={cn(\n 'border border-neutral/20 border-b border-solid p-4',\n className\n )}\n {...props}\n />\n);\n\nexport const Hr = ({ className, ...props }: ComponentProps<'hr'>) => (\n <hr className={cn('mx-6 mt-16 text-neutral', className)} {...props} />\n);\n"],"mappings":";;;;AAGA,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CACE,WAAW,GACT,oEACA,UACD;CACD,GAAI;CACJ;AAGJ,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CAAI,WAAW,GAAG,uBAAuB,UAAU;CAAE,GAAI;CAAS;AAGpE,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CACE,WAAW,GACT,sDACA,UACD;CACD,GAAI;CACJ;AAGJ,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CAAI,WAAW,GAAG,2BAA2B,UAAU;CAAE,GAAI;CAAS"}
1
+ {"version":3,"file":"TableElements.mjs","names":[],"sources":["../../../../src/components/Table/TableElements.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport type { ComponentProps } from 'react';\n\nexport const Th = ({ className, ...props }: ComponentProps<'th'>) => (\n <th\n className={cn(\n 'border border-neutral/20 border-b border-solid bg-neutral/10 p-4',\n className\n )}\n {...props}\n />\n);\n\nexport const Tr = ({ className, ...props }: ComponentProps<'tr'>) => (\n <tr className={cn('hover:bg-neutral/10', className)} {...props} />\n);\n\nexport const Td = ({ className, ...props }: ComponentProps<'td'>) => (\n <td\n className={cn(\n 'border border-neutral/20 border-b border-solid p-4',\n className\n )}\n {...props}\n />\n);\n\nexport const Hr = ({ className, ...props }: ComponentProps<'hr'>) => (\n <hr className={cn('mx-6 mt-16 text-neutral', className)} {...props} />\n);\n"],"mappings":";;;;AAGA,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CACE,WAAW,GACT,oEACA,SACF;CACA,GAAI;AACL;AAGH,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CAAI,WAAW,GAAG,uBAAuB,SAAS;CAAG,GAAI;AAAQ;AAGnE,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CACE,WAAW,GACT,sDACA,SACF;CACA,GAAI;AACL;AAGH,MAAa,MAAM,EAAE,WAAW,GAAG,YACjC,oBAAC,MAAD;CAAI,WAAW,GAAG,2BAA2B,SAAS;CAAG,GAAI;AAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.content.mjs","names":[],"sources":["../../../../src/components/Table/table.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst tableContent = {\n key: 'table',\n content: {\n modal: {\n title: t({\n en: 'Show all table content',\n fr: 'Afficher tout le contenu du tableau',\n es: 'Mostrar todo el contenido de la tabla',\n 'en-GB': 'Show all table content',\n de: 'Alle Tabellendaten anzeigen',\n ja: 'テーブルのすべての内容を表示',\n ko: '테이블의 모든 내용 표시',\n zh: '显示表格的所有内容',\n it: 'Mostra tutto il contenuto della tabella',\n pt: 'Mostrar todo o conteúdo da tabela',\n hi: 'सभी तालिका सामग्री दिखाएं',\n ar: 'اظهار جميع محتويات الجدول',\n ru: 'Показать все данные таблицы',\n tr: 'Tüm tablo içeriğini göster',\n pl: 'Pokaż całą zawartość tabeli',\n id: 'Tampilkan semua isi tabel',\n vi: 'Hiển thị tất cả nội dung bảng',\n uk: 'Показати весь вміст таблиці',\n }),\n description: t({\n en: 'Open the table in a modal to view all data content clearly',\n fr: 'Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement',\n es: 'Abrir la tabla en una ventana flotante para ver todo el contenido claramente',\n 'en-GB': 'Open the table in a modal to view all data content clearly',\n de: 'Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen',\n ja: 'テーブルをモーダルで開き、すべてのデータを明確に表示',\n ko: '테이블을 모달로 열어 모든 데이터를 명확하게 확인',\n zh: '在弹窗中打开表格以清晰地查看所有数据',\n it: 'Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro',\n pt: 'Abrir a tabela em um modal para ver todo o conteúdo claramente',\n hi: 'सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें',\n ar: 'افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح',\n ru: 'Открыть таблицу в модальном окне для четкого просмотра всех данных',\n tr: 'Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın',\n pl: 'Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość',\n id: 'Buka tabel dalam modal untuk melihat semua isi data dengan jelas',\n vi: 'Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng',\n uk: 'Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані',\n }),\n },\n },\n title: 'Table component content',\n description:\n 'Content declaration related to the Table component, specifically for UI message to display all table content.',\n tags: ['table', 'component content', 'design system'],\n} satisfies Dictionary;\n\nexport default tableContent;\n"],"mappings":";;;AAEA,MAAM,eAAe;CACnB,KAAK;CACL,SAAS,EACP,OAAO;EACL,OAAO,EAAE;GACP,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,aAAa,EAAE;GACb,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,EACF;CACD,OAAO;CACP,aACE;CACF,MAAM;EAAC;EAAS;EAAqB;EAAgB;CACtD"}
1
+ {"version":3,"file":"table.content.mjs","names":[],"sources":["../../../../src/components/Table/table.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst tableContent = {\n key: 'table',\n content: {\n modal: {\n title: t({\n en: 'Show all table content',\n fr: 'Afficher tout le contenu du tableau',\n es: 'Mostrar todo el contenido de la tabla',\n 'en-GB': 'Show all table content',\n de: 'Alle Tabellendaten anzeigen',\n ja: 'テーブルのすべての内容を表示',\n ko: '테이블의 모든 내용 표시',\n zh: '显示表格的所有内容',\n it: 'Mostra tutto il contenuto della tabella',\n pt: 'Mostrar todo o conteúdo da tabela',\n hi: 'सभी तालिका सामग्री दिखाएं',\n ar: 'اظهار جميع محتويات الجدول',\n ru: 'Показать все данные таблицы',\n tr: 'Tüm tablo içeriğini göster',\n pl: 'Pokaż całą zawartość tabeli',\n id: 'Tampilkan semua isi tabel',\n vi: 'Hiển thị tất cả nội dung bảng',\n uk: 'Показати весь вміст таблиці',\n }),\n description: t({\n en: 'Open the table in a modal to view all data content clearly',\n fr: 'Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement',\n es: 'Abrir la tabla en una ventana flotante para ver todo el contenido claramente',\n 'en-GB': 'Open the table in a modal to view all data content clearly',\n de: 'Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen',\n ja: 'テーブルをモーダルで開き、すべてのデータを明確に表示',\n ko: '테이블을 모달로 열어 모든 데이터를 명확하게 확인',\n zh: '在弹窗中打开表格以清晰地查看所有数据',\n it: 'Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro',\n pt: 'Abrir a tabela em um modal para ver todo o conteúdo claramente',\n hi: 'सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें',\n ar: 'افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح',\n ru: 'Открыть таблицу в модальном окне для четкого просмотра всех данных',\n tr: 'Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın',\n pl: 'Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość',\n id: 'Buka tabel dalam modal untuk melihat semua isi data dengan jelas',\n vi: 'Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng',\n uk: 'Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані',\n }),\n },\n },\n title: 'Table component content',\n description:\n 'Content declaration related to the Table component, specifically for UI message to display all table content.',\n tags: ['table', 'component content', 'design system'],\n} satisfies Dictionary;\n\nexport default tableContent;\n"],"mappings":";;;AAEA,MAAM,eAAe;CACnB,KAAK;CACL,SAAS,EACP,OAAO;EACL,OAAO,EAAE;GACP,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,aAAa,EAAE;GACb,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,EACF;CACA,OAAO;CACP,aACE;CACF,MAAM;EAAC;EAAS;EAAqB;CAAe;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableWidths.mjs","names":[],"sources":["../../../../src/components/Table/useTableWidths.ts"],"sourcesContent":["import { type RefObject, useEffect } from 'react';\n\n// ~0.55rem per character (mid-point for proportional fonts)\nconst CHAR_WIDTH_REM = 0.55;\nconst MIN_WIDTH_REM = 5; // ~80px at 16px base\nconst MAX_WIDTH_REM = 30; // ~480px at 16px base\n\nexport const useTableWidths = (\n tableRef: RefObject<HTMLTableElement | null>,\n modalTableRef: RefObject<HTMLTableElement | null>,\n dependencies: any[]\n) => {\n useEffect(() => {\n if (!tableRef.current) return;\n\n // Calculate the maximum character length per column from the main table\n const colLengths: number[] = [];\n Array.from(tableRef.current.querySelectorAll('tr')).forEach((row) => {\n Array.from(row.children).forEach((cell, index) => {\n const len = cell.textContent?.trim().length ?? 0;\n if (colLengths[index] === undefined || len > colLengths[index]) {\n colLengths[index] = len;\n }\n });\n });\n\n const applyToTable = (table: HTMLTableElement) => {\n const rows = Array.from(table.querySelectorAll('tr'));\n if (rows.length === 0) return;\n\n const applyColStyle = (el: HTMLElement, index: number) => {\n const minRem = Math.min(\n MAX_WIDTH_REM,\n Math.max(MIN_WIDTH_REM, (colLengths[index] ?? 0) * CHAR_WIDTH_REM)\n );\n el.style.minWidth = `${minRem}rem`;\n el.style.maxWidth = `${MAX_WIDTH_REM}rem`;\n };\n\n table.querySelectorAll('th').forEach((th, index) => {\n applyColStyle(th, index);\n });\n rows.forEach((row) => {\n row.querySelectorAll('td').forEach((td, index) => {\n applyColStyle(td, index);\n });\n });\n };\n\n applyToTable(tableRef.current);\n\n if (modalTableRef.current) applyToTable(modalTableRef.current);\n }, dependencies);\n};\n"],"mappings":";;;AAGA,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,gBAAgB;AAEtB,MAAa,kBACX,UACA,eACA,iBACG;CACH,gBAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAGvB,MAAM,aAAuB,EAAE;EAC/B,MAAM,KAAK,SAAS,QAAQ,iBAAiB,KAAK,CAAC,CAAC,SAAS,QAAQ;GACnE,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,MAAM,UAAU;IAChD,MAAM,MAAM,KAAK,aAAa,MAAM,CAAC,UAAU;IAC/C,IAAI,WAAW,WAAW,UAAa,MAAM,WAAW,QACtD,WAAW,SAAS;KAEtB;IACF;EAEF,MAAM,gBAAgB,UAA4B;GAChD,MAAM,OAAO,MAAM,KAAK,MAAM,iBAAiB,KAAK,CAAC;GACrD,IAAI,KAAK,WAAW,GAAG;GAEvB,MAAM,iBAAiB,IAAiB,UAAkB;IACxD,MAAM,SAAS,KAAK,IAClB,eACA,KAAK,IAAI,gBAAgB,WAAW,UAAU,KAAK,eAAe,CACnE;IACD,GAAG,MAAM,WAAW,GAAG,OAAO;IAC9B,GAAG,MAAM,WAAW,GAAG,cAAc;;GAGvC,MAAM,iBAAiB,KAAK,CAAC,SAAS,IAAI,UAAU;IAClD,cAAc,IAAI,MAAM;KACxB;GACF,KAAK,SAAS,QAAQ;IACpB,IAAI,iBAAiB,KAAK,CAAC,SAAS,IAAI,UAAU;KAChD,cAAc,IAAI,MAAM;MACxB;KACF;;EAGJ,aAAa,SAAS,QAAQ;EAE9B,IAAI,cAAc,SAAS,aAAa,cAAc,QAAQ;IAC7D,aAAa"}
1
+ {"version":3,"file":"useTableWidths.mjs","names":[],"sources":["../../../../src/components/Table/useTableWidths.ts"],"sourcesContent":["import { type RefObject, useEffect } from 'react';\n\n// ~0.55rem per character (mid-point for proportional fonts)\nconst CHAR_WIDTH_REM = 0.55;\nconst MIN_WIDTH_REM = 5; // ~80px at 16px base\nconst MAX_WIDTH_REM = 30; // ~480px at 16px base\n\nexport const useTableWidths = (\n tableRef: RefObject<HTMLTableElement | null>,\n modalTableRef: RefObject<HTMLTableElement | null>,\n dependencies: any[]\n) => {\n useEffect(() => {\n if (!tableRef.current) return;\n\n // Calculate the maximum character length per column from the main table\n const colLengths: number[] = [];\n Array.from(tableRef.current.querySelectorAll('tr')).forEach((row) => {\n Array.from(row.children).forEach((cell, index) => {\n const len = cell.textContent?.trim().length ?? 0;\n if (colLengths[index] === undefined || len > colLengths[index]) {\n colLengths[index] = len;\n }\n });\n });\n\n const applyToTable = (table: HTMLTableElement) => {\n const rows = Array.from(table.querySelectorAll('tr'));\n if (rows.length === 0) return;\n\n const applyColStyle = (el: HTMLElement, index: number) => {\n const minRem = Math.min(\n MAX_WIDTH_REM,\n Math.max(MIN_WIDTH_REM, (colLengths[index] ?? 0) * CHAR_WIDTH_REM)\n );\n el.style.minWidth = `${minRem}rem`;\n el.style.maxWidth = `${MAX_WIDTH_REM}rem`;\n };\n\n table.querySelectorAll('th').forEach((th, index) => {\n applyColStyle(th, index);\n });\n rows.forEach((row) => {\n row.querySelectorAll('td').forEach((td, index) => {\n applyColStyle(td, index);\n });\n });\n };\n\n applyToTable(tableRef.current);\n\n if (modalTableRef.current) applyToTable(modalTableRef.current);\n }, dependencies);\n};\n"],"mappings":";;;AAGA,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,gBAAgB;AAEtB,MAAa,kBACX,UACA,eACA,iBACG;CACH,gBAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAGvB,MAAM,aAAuB,CAAC;EAC9B,MAAM,KAAK,SAAS,QAAQ,iBAAiB,IAAI,CAAC,EAAE,SAAS,QAAQ;GACnE,MAAM,KAAK,IAAI,QAAQ,EAAE,SAAS,MAAM,UAAU;IAChD,MAAM,MAAM,KAAK,aAAa,KAAK,EAAE,UAAU;IAC/C,IAAI,WAAW,WAAW,UAAa,MAAM,WAAW,QACtD,WAAW,SAAS;GAExB,CAAC;EACH,CAAC;EAED,MAAM,gBAAgB,UAA4B;GAChD,MAAM,OAAO,MAAM,KAAK,MAAM,iBAAiB,IAAI,CAAC;GACpD,IAAI,KAAK,WAAW,GAAG;GAEvB,MAAM,iBAAiB,IAAiB,UAAkB;IACxD,MAAM,SAAS,KAAK,IAClB,eACA,KAAK,IAAI,gBAAgB,WAAW,UAAU,KAAK,cAAc,CACnE;IACA,GAAG,MAAM,WAAW,GAAG,OAAO;IAC9B,GAAG,MAAM,WAAW,GAAG,cAAc;GACvC;GAEA,MAAM,iBAAiB,IAAI,EAAE,SAAS,IAAI,UAAU;IAClD,cAAc,IAAI,KAAK;GACzB,CAAC;GACD,KAAK,SAAS,QAAQ;IACpB,IAAI,iBAAiB,IAAI,EAAE,SAAS,IAAI,UAAU;KAChD,cAAc,IAAI,KAAK;IACzB,CAAC;GACH,CAAC;EACH;EAEA,aAAa,SAAS,OAAO;EAE7B,IAAI,cAAc,SAAS,aAAa,cAAc,OAAO;CAC/D,GAAG,YAAY;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/Tag/index.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type { FC, HTMLAttributes, PropsWithChildren } from 'react';\n\n/**\n * Properties for the Tag component extending HTML div attributes and variant options\n *\n * @interface TagProps\n * @extends {PropsWithChildren<VariantProps<typeof containerVariants>>}\n * @extends {HTMLAttributes<HTMLDivElement>}\n *\n * @property {ReactNode} children - The content to display inside the tag\n * @property {TagColor} [color] - Color theme variant of the tag\n * @property {TagRoundedSize} [roundedSize] - Border radius size of the tag\n * @property {TagSize} [size] - Size variant affecting padding and font size\n * @property {TagBorder} [border] - Whether to show a border around the tag\n * @property {TagBackground} [background] - Background visibility option\n * @property [className] - Additional CSS classes for custom styling\n *\n * @example\n * ```tsx\n * // Basic tag\n * <Tag>Default Tag</Tag>\n *\n * // Success tag with border\n * <Tag color={TagColor.SUCCESS} border={TagBorder.WITH}>\n * Success Status\n * </Tag>\n *\n * // Large warning tag\n * <Tag color={TagColor.WARNING} size={TagSize.LG}>\n * Important Warning\n * </Tag>\n * ```\n */\ntype TagProps = PropsWithChildren<VariantProps<typeof containerVariants>> &\n HTMLAttributes<HTMLDivElement>;\n\n/**\n * Enumeration for tag border radius sizes\n *\n * Controls the roundedness of tag corners, from sharp edges to fully rounded pills.\n *\n * @enum TagRoundedSize\n * @property NONE - 'none' - No border radius (sharp corners)\n * @property SM - 'sm' - Small border radius (2px)\n * @property MD - 'md' - Medium border radius (6px)\n * @property LG - 'lg' - Large border radius (8px)\n * @property XL - 'xl' - Extra large border radius (12px)\n * @property XXL - '2xl' - 2x large border radius (16px)\n * @property XXXL - '3xl' - 3x large border radius (24px)\n * @property FULL - 'full' - Fully rounded (50% border radius, pill shape)\n *\n * @example\n * ```tsx\n * // Sharp corners\n * <Tag roundedSize={TagRoundedSize.NONE}>Sharp Tag</Tag>\n *\n * // Pill-shaped tag\n * <Tag roundedSize={TagRoundedSize.FULL}>Pill Tag</Tag>\n *\n * // Medium rounded corners\n * <Tag roundedSize={TagRoundedSize.MD}>Rounded Tag</Tag>\n * ```\n */\nexport enum TagRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = '2xl',\n XXXL = '3xl',\n FULL = 'full',\n}\n\n/**\n * Enumeration for tag color themes\n *\n * Provides semantic color options for different tag purposes and meanings.\n * Each color includes background, border, and text color variations.\n *\n * @enum TagColor\n * @property SUCCESS - 'success' - Green theme for positive states, success messages, or completed items\n * @property ERROR - 'error' - Red theme for error states, warnings, or failed operations\n * @property WARNING - 'warning' - Yellow/orange theme for caution, pending states, or important notices\n * @property NEUTRAL - 'neutral' - Gray theme for neutral information or secondary content\n * @property TEXT - 'text' - Default text color theme for general purpose tags\n *\n * @example\n * ```tsx\n * // Status indicators\n * <Tag color={TagColor.SUCCESS}>Completed</Tag>\n * <Tag color={TagColor.ERROR}>Failed</Tag>\n * <Tag color={TagColor.WARNING}>Pending</Tag>\n *\n * // Category tags\n * <Tag color={TagColor.NEUTRAL}>Category</Tag>\n * <Tag color={TagColor.TEXT}>General</Tag>\n * ```\n */\nexport enum TagColor {\n PRIMARY = 'primary',\n SUCCESS = 'success',\n ERROR = 'error',\n WARNING = 'warning',\n NEUTRAL = 'neutral',\n TEXT = 'text',\n BLUE = 'blue',\n YELLOW = 'yellow',\n GREEN = 'green',\n RED = 'red',\n ORANGE = 'orange',\n PURPLE = 'purple',\n PINK = 'pink',\n BROWN = 'brown',\n GRAY = 'gray',\n BLACK = 'black',\n WHITE = 'white',\n}\n\n/**\n * Enumeration for tag size variants\n *\n * Controls the overall size of tags including padding, font size, and border thickness.\n * Sizes are designed to maintain visual hierarchy and readability.\n *\n * @enum TagSize\n * @property XS - 'xs' - Extra small (0.5rem padding, text-xs, 1.2px border)\n * @property SM - 'sm' - Small (0.5rem padding, text-sm, 1.5px border)\n * @property MD - 'md' - Medium (1rem padding, text-base, 2px border) - Default size\n * @property LG - 'lg' - Large (2rem padding, text-lg, 2px border)\n * @property XL - 'xl' - Extra large (4rem padding, text-xl, 2px border)\n *\n * @example\n * ```tsx\n * // Different sizes for hierarchy\n * <Tag size={TagSize.XS}>Small detail</Tag>\n * <Tag size={TagSize.SM}>Minor category</Tag>\n * <Tag size={TagSize.MD}>Standard tag</Tag>\n * <Tag size={TagSize.LG}>Important label</Tag>\n * <Tag size={TagSize.XL}>Hero tag</Tag>\n * ```\n */\nexport enum TagSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n\n/**\n * Enumeration for tag border visibility\n *\n * Controls whether a border is displayed around the tag.\n *\n * @enum TagBorder\n * @property NONE - 'none' - No border (default)\n * @property WITH - 'with' - Show border with 1.5px thickness\n *\n * @example\n * ```tsx\n * <Tag border={TagBorder.NONE}>Borderless</Tag>\n * <Tag border={TagBorder.WITH}>With Border</Tag>\n * ```\n */\nexport enum TagBorder {\n NONE = 'none',\n WITH = 'with',\n}\n\n/**\n * Enumeration for tag background visibility\n *\n * Controls the background styling of the tag.\n *\n * @enum TagBackground\n * @property NONE - 'none' - No background styling\n * @property WITH - 'with' - Apply background styling\n *\n * @example\n * ```tsx\n * <Tag background={TagBackground.NONE}>No Background</Tag>\n * <Tag background={TagBackground.WITH}>With Background</Tag>\n * ```\n */\nexport enum TagBackground {\n NONE = 'none',\n WITH = 'with',\n}\n\nconst containerVariants = cva('w-fit backdrop-blur', {\n variants: {\n roundedSize: {\n [`${TagRoundedSize.NONE}`]: 'rounded-none',\n [`${TagRoundedSize.SM}`]: 'rounded-sm',\n [`${TagRoundedSize.MD}`]: 'rounded-md',\n [`${TagRoundedSize.LG}`]: 'rounded-lg',\n [`${TagRoundedSize.XL}`]: 'rounded-xl',\n [`${TagRoundedSize.XXL}`]: 'rounded-2xl',\n [`${TagRoundedSize.XXXL}`]: 'rounded-3xl',\n [`${TagRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${TagColor.PRIMARY}`]: 'border-primary bg-primary/10 text-primary',\n [`${TagColor.SUCCESS}`]: 'border-success bg-success/10 text-success',\n [`${TagColor.ERROR}`]: 'border-error bg-error/10 text-error',\n [`${TagColor.WARNING}`]: 'border-warning bg-warning/10 text-warning',\n [`${TagColor.NEUTRAL}`]: '/10 border-neutral bg-neutral/10 text-neutral',\n [`${TagColor.TEXT}`]: 'border-text bg-text/10 text-text',\n [`${TagColor.BLUE}`]:\n 'border-blue-500 bg-blue-500/10 text-blue-500 dark:text-blue-300',\n [`${TagColor.YELLOW}`]:\n 'border-yellow-500 bg-yellow-500/10 text-yellow-500 dark:text-yellow-300',\n [`${TagColor.GREEN}`]:\n 'border-green-500 bg-green-500/10 text-green-500 dark:text-green-300',\n [`${TagColor.RED}`]:\n 'border-red-500 bg-red-500/10 text-red-500 dark:text-red-300',\n [`${TagColor.ORANGE}`]:\n 'border-orange-500 bg-orange-500/10 text-orange-500 dark:text-orange-300',\n [`${TagColor.PURPLE}`]:\n 'border-purple-500 bg-purple-500/10 text-purple-500 dark:text-purple-300',\n [`${TagColor.PINK}`]:\n 'border-pink-500 bg-pink-500/10 text-pink-500 dark:text-pink-300',\n [`${TagColor.BROWN}`]:\n 'border-brown-500 bg-brown-500/10 text-brown-500 dark:text-brown-300',\n [`${TagColor.GRAY}`]:\n 'border-gray-500 bg-gray-500/10 text-gray-500 dark:text-gray-300',\n [`${TagColor.BLACK}`]: 'border-black bg-black/10 text-black',\n [`${TagColor.WHITE}`]: 'border-white bg-white/10 text-white',\n },\n size: {\n [`${TagSize.XS}`]: 'border-[1.2px] px-2 py-0.5 text-xs',\n [`${TagSize.SM}`]: 'border-[1.3px] px-2 py-0.5 text-sm',\n [`${TagSize.MD}`]: 'border-2 px-2 py-1 text-base',\n [`${TagSize.LG}`]: 'border-2 px-3 py-2 text-lg',\n [`${TagSize.XL}`]: 'border-2 px-3 py-2 text-xl',\n },\n border: {\n [`${TagBorder.NONE}`]: 'border-none',\n [`${TagBorder.WITH}`]: 'border-[1.3px] border-text',\n },\n background: {\n [`${TagBackground.NONE}`]: 'bg-none',\n [`${TagBackground.WITH}`]: '',\n },\n },\n\n defaultVariants: {\n roundedSize: TagRoundedSize.FULL,\n border: TagBorder.NONE,\n color: TagColor.TEXT,\n size: TagSize.MD,\n },\n});\n\n/**\n * Tag component for displaying labels, categories, status indicators, and badges\n *\n * The Tag component is a versatile labeling element that supports multiple visual variants\n * for different use cases. It provides semantic color options, flexible sizing, and\n * customizable styling options for borders and backgrounds.\n *\n * ## Features\n * - **Semantic Colors**: Success, error, warning, neutral, and text color themes\n * - **Flexible Sizing**: Five size variants from extra small to extra large\n * - **Border Radius Options**: Eight rounding options from none to fully rounded\n * - **Border Control**: Optional borders for enhanced visual separation\n * - **Background Control**: Configurable background styling\n * - **Accessibility**: Proper HTML semantics and keyboard navigation support\n *\n * ## Use Cases\n * - **Status Indicators**: Show completion, error, or pending states\n * - **Category Labels**: Organize and categorize content\n * - **Badges**: Display counts, notifications, or achievements\n * - **Keywords**: Tag content with relevant keywords or topics\n * - **Metadata**: Show additional information like dates, authors, or types\n *\n * ## Design Principles\n * - Maintains readability across all size and color combinations\n * - Uses backdrop blur effect for subtle transparency\n * - Follows consistent spacing and typography scales\n * - Provides sufficient color contrast for accessibility\n *\n * @param {TagProps} props - The properties for the Tag component\n * @returns {JSX.Element} The rendered tag element\n *\n * @example\n * ```tsx\n * // Basic status tags\n * <Tag color={TagColor.SUCCESS}>Completed</Tag>\n * <Tag color={TagColor.ERROR}>Failed</Tag>\n * <Tag color={TagColor.WARNING}>In Progress</Tag>\n *\n * // Category tags with borders\n * <Tag color={TagColor.NEUTRAL} border={TagBorder.WITH}>\n * Technology\n * </Tag>\n * <Tag color={TagColor.TEXT} border={TagBorder.WITH}>\n * Design\n * </Tag>\n *\n * // Size variations for hierarchy\n * <div className=\"flex items-center gap-2\">\n * <Tag size={TagSize.XS} color={TagColor.NEUTRAL}>Minor</Tag>\n * <Tag size={TagSize.SM} color={TagColor.TEXT}>Standard</Tag>\n * <Tag size={TagSize.LG} color={TagColor.SUCCESS}>Important</Tag>\n * </div>\n *\n * // Rounded variations\n * <div className=\"flex gap-2\">\n * <Tag roundedSize={TagRoundedSize.NONE}>Sharp</Tag>\n * <Tag roundedSize={TagRoundedSize.MD}>Rounded</Tag>\n * <Tag roundedSize={TagRoundedSize.FULL}>Pill</Tag>\n * </div>\n *\n * // Custom styled tag\n * <Tag\n * color={TagColor.WARNING}\n * size={TagSize.LG}\n * border={TagBorder.WITH}\n * roundedSize={TagRoundedSize.LG}\n * className=\"font-bold uppercase tracking-wide\"\n * >\n * Custom Style\n * </Tag>\n *\n * // Interactive tags with click handlers\n * <Tag\n * color={TagColor.SUCCESS}\n * onClick={() => console.log('Tag clicked')}\n * className=\"cursor-pointer hover:opacity-80 transition-opacity\"\n * >\n * Clickable Tag\n * </Tag>\n * ```\n *\n * @see {@link TagColor} - Available color theme options\n * @see {@link TagSize} - Available size variants\n * @see {@link TagRoundedSize} - Available border radius options\n * @see {@link TagBorder} - Border visibility options\n * @see {@link TagBackground} - Background styling options\n */\nexport const Tag: FC<TagProps> = ({\n children,\n color,\n roundedSize,\n size,\n border,\n background,\n className,\n ...props\n}) => {\n return (\n <div\n className={containerVariants({\n color,\n roundedSize,\n size,\n border,\n background,\n className,\n })}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,IAAY,iBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;KACD;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BD,IAAY,WAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;KACD;;;;;;;;;;;;;;;;;;;;;;;;AAyBD,IAAY,UAAL;CACL;CACA;CACA;CACA;CACA;;KACD;;;;;;;;;;;;;;;;AAiBD,IAAY,YAAL;CACL;CACA;;KACD;;;;;;;;;;;;;;;;AAiBD,IAAY,gBAAL;CACL;CACA;;KACD;AAED,MAAM,oBAAoB,IAAI,uBAAuB;CACnD,UAAU;EACR,aAAa;IACV,SAA2B;IAC3B,OAAyB;IACzB,OAAyB;IACzB,OAAyB;IACzB,OAAyB;IACzB,QAA0B;IAC1B,QAA2B;IAC3B,SAA2B;GAC7B;EACD,OAAO;IACJ,YAAwB;IACxB,YAAwB;IACxB,UAAsB;IACtB,YAAwB;IACxB,YAAwB;IACxB,SAAqB;IACrB,SACC;IACD,WACC;IACD,UACC;IACD,QACC;IACD,WACC;IACD,WACC;IACD,SACC;IACD,UACC;IACD,SACC;IACD,UAAsB;IACtB,UAAsB;GACxB;EACD,MAAM;IACH,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;GACpB;EACD,QAAQ;IACL,SAAsB;IACtB,SAAsB;GACxB;EACD,YAAY;IACT,SAA0B;IAC1B,SAA0B;GAC5B;EACF;CAED,iBAAiB;EACf;EACA;EACA;EACA;EACD;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFF,MAAa,OAAqB,EAChC,UACA,OACA,aACA,MACA,QACA,YACA,WACA,GAAG,YACC;CACJ,OACE,oBAAC,OAAD;EACE,WAAW,kBAAkB;GAC3B;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;EACF,GAAI;EAEH;EACG"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/Tag/index.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport type { FC, HTMLAttributes, PropsWithChildren } from 'react';\n\n/**\n * Properties for the Tag component extending HTML div attributes and variant options\n *\n * @interface TagProps\n * @extends {PropsWithChildren<VariantProps<typeof containerVariants>>}\n * @extends {HTMLAttributes<HTMLDivElement>}\n *\n * @property {ReactNode} children - The content to display inside the tag\n * @property {TagColor} [color] - Color theme variant of the tag\n * @property {TagRoundedSize} [roundedSize] - Border radius size of the tag\n * @property {TagSize} [size] - Size variant affecting padding and font size\n * @property {TagBorder} [border] - Whether to show a border around the tag\n * @property {TagBackground} [background] - Background visibility option\n * @property [className] - Additional CSS classes for custom styling\n *\n * @example\n * ```tsx\n * // Basic tag\n * <Tag>Default Tag</Tag>\n *\n * // Success tag with border\n * <Tag color={TagColor.SUCCESS} border={TagBorder.WITH}>\n * Success Status\n * </Tag>\n *\n * // Large warning tag\n * <Tag color={TagColor.WARNING} size={TagSize.LG}>\n * Important Warning\n * </Tag>\n * ```\n */\ntype TagProps = PropsWithChildren<VariantProps<typeof containerVariants>> &\n HTMLAttributes<HTMLDivElement>;\n\n/**\n * Enumeration for tag border radius sizes\n *\n * Controls the roundedness of tag corners, from sharp edges to fully rounded pills.\n *\n * @enum TagRoundedSize\n * @property NONE - 'none' - No border radius (sharp corners)\n * @property SM - 'sm' - Small border radius (2px)\n * @property MD - 'md' - Medium border radius (6px)\n * @property LG - 'lg' - Large border radius (8px)\n * @property XL - 'xl' - Extra large border radius (12px)\n * @property XXL - '2xl' - 2x large border radius (16px)\n * @property XXXL - '3xl' - 3x large border radius (24px)\n * @property FULL - 'full' - Fully rounded (50% border radius, pill shape)\n *\n * @example\n * ```tsx\n * // Sharp corners\n * <Tag roundedSize={TagRoundedSize.NONE}>Sharp Tag</Tag>\n *\n * // Pill-shaped tag\n * <Tag roundedSize={TagRoundedSize.FULL}>Pill Tag</Tag>\n *\n * // Medium rounded corners\n * <Tag roundedSize={TagRoundedSize.MD}>Rounded Tag</Tag>\n * ```\n */\nexport enum TagRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = '2xl',\n XXXL = '3xl',\n FULL = 'full',\n}\n\n/**\n * Enumeration for tag color themes\n *\n * Provides semantic color options for different tag purposes and meanings.\n * Each color includes background, border, and text color variations.\n *\n * @enum TagColor\n * @property SUCCESS - 'success' - Green theme for positive states, success messages, or completed items\n * @property ERROR - 'error' - Red theme for error states, warnings, or failed operations\n * @property WARNING - 'warning' - Yellow/orange theme for caution, pending states, or important notices\n * @property NEUTRAL - 'neutral' - Gray theme for neutral information or secondary content\n * @property TEXT - 'text' - Default text color theme for general purpose tags\n *\n * @example\n * ```tsx\n * // Status indicators\n * <Tag color={TagColor.SUCCESS}>Completed</Tag>\n * <Tag color={TagColor.ERROR}>Failed</Tag>\n * <Tag color={TagColor.WARNING}>Pending</Tag>\n *\n * // Category tags\n * <Tag color={TagColor.NEUTRAL}>Category</Tag>\n * <Tag color={TagColor.TEXT}>General</Tag>\n * ```\n */\nexport enum TagColor {\n PRIMARY = 'primary',\n SUCCESS = 'success',\n ERROR = 'error',\n WARNING = 'warning',\n NEUTRAL = 'neutral',\n TEXT = 'text',\n BLUE = 'blue',\n YELLOW = 'yellow',\n GREEN = 'green',\n RED = 'red',\n ORANGE = 'orange',\n PURPLE = 'purple',\n PINK = 'pink',\n BROWN = 'brown',\n GRAY = 'gray',\n BLACK = 'black',\n WHITE = 'white',\n}\n\n/**\n * Enumeration for tag size variants\n *\n * Controls the overall size of tags including padding, font size, and border thickness.\n * Sizes are designed to maintain visual hierarchy and readability.\n *\n * @enum TagSize\n * @property XS - 'xs' - Extra small (0.5rem padding, text-xs, 1.2px border)\n * @property SM - 'sm' - Small (0.5rem padding, text-sm, 1.5px border)\n * @property MD - 'md' - Medium (1rem padding, text-base, 2px border) - Default size\n * @property LG - 'lg' - Large (2rem padding, text-lg, 2px border)\n * @property XL - 'xl' - Extra large (4rem padding, text-xl, 2px border)\n *\n * @example\n * ```tsx\n * // Different sizes for hierarchy\n * <Tag size={TagSize.XS}>Small detail</Tag>\n * <Tag size={TagSize.SM}>Minor category</Tag>\n * <Tag size={TagSize.MD}>Standard tag</Tag>\n * <Tag size={TagSize.LG}>Important label</Tag>\n * <Tag size={TagSize.XL}>Hero tag</Tag>\n * ```\n */\nexport enum TagSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n\n/**\n * Enumeration for tag border visibility\n *\n * Controls whether a border is displayed around the tag.\n *\n * @enum TagBorder\n * @property NONE - 'none' - No border (default)\n * @property WITH - 'with' - Show border with 1.5px thickness\n *\n * @example\n * ```tsx\n * <Tag border={TagBorder.NONE}>Borderless</Tag>\n * <Tag border={TagBorder.WITH}>With Border</Tag>\n * ```\n */\nexport enum TagBorder {\n NONE = 'none',\n WITH = 'with',\n}\n\n/**\n * Enumeration for tag background visibility\n *\n * Controls the background styling of the tag.\n *\n * @enum TagBackground\n * @property NONE - 'none' - No background styling\n * @property WITH - 'with' - Apply background styling\n *\n * @example\n * ```tsx\n * <Tag background={TagBackground.NONE}>No Background</Tag>\n * <Tag background={TagBackground.WITH}>With Background</Tag>\n * ```\n */\nexport enum TagBackground {\n NONE = 'none',\n WITH = 'with',\n}\n\nconst containerVariants = cva('w-fit backdrop-blur', {\n variants: {\n roundedSize: {\n [`${TagRoundedSize.NONE}`]: 'rounded-none',\n [`${TagRoundedSize.SM}`]: 'rounded-sm',\n [`${TagRoundedSize.MD}`]: 'rounded-md',\n [`${TagRoundedSize.LG}`]: 'rounded-lg',\n [`${TagRoundedSize.XL}`]: 'rounded-xl',\n [`${TagRoundedSize.XXL}`]: 'rounded-2xl',\n [`${TagRoundedSize.XXXL}`]: 'rounded-3xl',\n [`${TagRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${TagColor.PRIMARY}`]: 'border-primary bg-primary/10 text-primary',\n [`${TagColor.SUCCESS}`]: 'border-success bg-success/10 text-success',\n [`${TagColor.ERROR}`]: 'border-error bg-error/10 text-error',\n [`${TagColor.WARNING}`]: 'border-warning bg-warning/10 text-warning',\n [`${TagColor.NEUTRAL}`]: '/10 border-neutral bg-neutral/10 text-neutral',\n [`${TagColor.TEXT}`]: 'border-text bg-text/10 text-text',\n [`${TagColor.BLUE}`]:\n 'border-blue-500 bg-blue-500/10 text-blue-500 dark:text-blue-300',\n [`${TagColor.YELLOW}`]:\n 'border-yellow-500 bg-yellow-500/10 text-yellow-500 dark:text-yellow-300',\n [`${TagColor.GREEN}`]:\n 'border-green-500 bg-green-500/10 text-green-500 dark:text-green-300',\n [`${TagColor.RED}`]:\n 'border-red-500 bg-red-500/10 text-red-500 dark:text-red-300',\n [`${TagColor.ORANGE}`]:\n 'border-orange-500 bg-orange-500/10 text-orange-500 dark:text-orange-300',\n [`${TagColor.PURPLE}`]:\n 'border-purple-500 bg-purple-500/10 text-purple-500 dark:text-purple-300',\n [`${TagColor.PINK}`]:\n 'border-pink-500 bg-pink-500/10 text-pink-500 dark:text-pink-300',\n [`${TagColor.BROWN}`]:\n 'border-brown-500 bg-brown-500/10 text-brown-500 dark:text-brown-300',\n [`${TagColor.GRAY}`]:\n 'border-gray-500 bg-gray-500/10 text-gray-500 dark:text-gray-300',\n [`${TagColor.BLACK}`]: 'border-black bg-black/10 text-black',\n [`${TagColor.WHITE}`]: 'border-white bg-white/10 text-white',\n },\n size: {\n [`${TagSize.XS}`]: 'border-[1.2px] px-2 py-0.5 text-xs',\n [`${TagSize.SM}`]: 'border-[1.3px] px-2 py-0.5 text-sm',\n [`${TagSize.MD}`]: 'border-2 px-2 py-1 text-base',\n [`${TagSize.LG}`]: 'border-2 px-3 py-2 text-lg',\n [`${TagSize.XL}`]: 'border-2 px-3 py-2 text-xl',\n },\n border: {\n [`${TagBorder.NONE}`]: 'border-none',\n [`${TagBorder.WITH}`]: 'border-[1.3px] border-text',\n },\n background: {\n [`${TagBackground.NONE}`]: 'bg-none',\n [`${TagBackground.WITH}`]: '',\n },\n },\n\n defaultVariants: {\n roundedSize: TagRoundedSize.FULL,\n border: TagBorder.NONE,\n color: TagColor.TEXT,\n size: TagSize.MD,\n },\n});\n\n/**\n * Tag component for displaying labels, categories, status indicators, and badges\n *\n * The Tag component is a versatile labeling element that supports multiple visual variants\n * for different use cases. It provides semantic color options, flexible sizing, and\n * customizable styling options for borders and backgrounds.\n *\n * ## Features\n * - **Semantic Colors**: Success, error, warning, neutral, and text color themes\n * - **Flexible Sizing**: Five size variants from extra small to extra large\n * - **Border Radius Options**: Eight rounding options from none to fully rounded\n * - **Border Control**: Optional borders for enhanced visual separation\n * - **Background Control**: Configurable background styling\n * - **Accessibility**: Proper HTML semantics and keyboard navigation support\n *\n * ## Use Cases\n * - **Status Indicators**: Show completion, error, or pending states\n * - **Category Labels**: Organize and categorize content\n * - **Badges**: Display counts, notifications, or achievements\n * - **Keywords**: Tag content with relevant keywords or topics\n * - **Metadata**: Show additional information like dates, authors, or types\n *\n * ## Design Principles\n * - Maintains readability across all size and color combinations\n * - Uses backdrop blur effect for subtle transparency\n * - Follows consistent spacing and typography scales\n * - Provides sufficient color contrast for accessibility\n *\n * @param {TagProps} props - The properties for the Tag component\n * @returns {JSX.Element} The rendered tag element\n *\n * @example\n * ```tsx\n * // Basic status tags\n * <Tag color={TagColor.SUCCESS}>Completed</Tag>\n * <Tag color={TagColor.ERROR}>Failed</Tag>\n * <Tag color={TagColor.WARNING}>In Progress</Tag>\n *\n * // Category tags with borders\n * <Tag color={TagColor.NEUTRAL} border={TagBorder.WITH}>\n * Technology\n * </Tag>\n * <Tag color={TagColor.TEXT} border={TagBorder.WITH}>\n * Design\n * </Tag>\n *\n * // Size variations for hierarchy\n * <div className=\"flex items-center gap-2\">\n * <Tag size={TagSize.XS} color={TagColor.NEUTRAL}>Minor</Tag>\n * <Tag size={TagSize.SM} color={TagColor.TEXT}>Standard</Tag>\n * <Tag size={TagSize.LG} color={TagColor.SUCCESS}>Important</Tag>\n * </div>\n *\n * // Rounded variations\n * <div className=\"flex gap-2\">\n * <Tag roundedSize={TagRoundedSize.NONE}>Sharp</Tag>\n * <Tag roundedSize={TagRoundedSize.MD}>Rounded</Tag>\n * <Tag roundedSize={TagRoundedSize.FULL}>Pill</Tag>\n * </div>\n *\n * // Custom styled tag\n * <Tag\n * color={TagColor.WARNING}\n * size={TagSize.LG}\n * border={TagBorder.WITH}\n * roundedSize={TagRoundedSize.LG}\n * className=\"font-bold uppercase tracking-wide\"\n * >\n * Custom Style\n * </Tag>\n *\n * // Interactive tags with click handlers\n * <Tag\n * color={TagColor.SUCCESS}\n * onClick={() => console.log('Tag clicked')}\n * className=\"cursor-pointer hover:opacity-80 transition-opacity\"\n * >\n * Clickable Tag\n * </Tag>\n * ```\n *\n * @see {@link TagColor} - Available color theme options\n * @see {@link TagSize} - Available size variants\n * @see {@link TagRoundedSize} - Available border radius options\n * @see {@link TagBorder} - Border visibility options\n * @see {@link TagBackground} - Background styling options\n */\nexport const Tag: FC<TagProps> = ({\n children,\n color,\n roundedSize,\n size,\n border,\n background,\n className,\n ...props\n}) => {\n return (\n <div\n className={containerVariants({\n color,\n roundedSize,\n size,\n border,\n background,\n className,\n })}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,IAAY,iBAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,IAAY,WAAL;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AACF;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAY,UAAL;CACL;CACA;CACA;CACA;CACA;;AACF;;;;;;;;;;;;;;;;AAiBA,IAAY,YAAL;CACL;CACA;;AACF;;;;;;;;;;;;;;;;AAiBA,IAAY,gBAAL;CACL;CACA;;AACF;AAEA,MAAM,oBAAoB,IAAI,uBAAuB;CACnD,UAAU;EACR,aAAa;IACV,SAA2B;IAC3B,OAAyB;IACzB,OAAyB;IACzB,OAAyB;IACzB,OAAyB;IACzB,QAA0B;IAC1B,QAA2B;IAC3B,SAA2B;EAC9B;EACA,OAAO;IACJ,YAAwB;IACxB,YAAwB;IACxB,UAAsB;IACtB,YAAwB;IACxB,YAAwB;IACxB,SAAqB;IACrB,SACC;IACD,WACC;IACD,UACC;IACD,QACC;IACD,WACC;IACD,WACC;IACD,SACC;IACD,UACC;IACD,SACC;IACD,UAAsB;IACtB,UAAsB;EACzB;EACA,MAAM;IACH,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;EACrB;EACA,QAAQ;IACL,SAAsB;IACtB,SAAsB;EACzB;EACA,YAAY;IACT,SAA0B;IAC1B,SAA0B;EAC7B;CACF;CAEA,iBAAiB;EACf;EACA;EACA;EACA;CACF;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFD,MAAa,OAAqB,EAChC,UACA,OACA,aACA,MACA,QACA,YACA,WACA,GAAG,YACC;CACJ,OACE,oBAAC,OAAD;EACE,WAAW,kBAAkB;GAC3B;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,GAAI;EAEH;CACE;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"TechLogo.mjs","names":[],"sources":["../../../../src/components/TechLogo/TechLogo.tsx"],"sourcesContent":["import { type FC, type JSX, lazy, Suspense, type SVGProps } from 'react';\nimport { cn } from '../../utils/cn';\nimport { TechLogoName } from './types';\n\nexport type TechLogoProps = SVGProps<SVGSVGElement> & {\n name: TechLogoName;\n};\n\n/**\n * This ensures React.lazy always receives a valid component.\n */\nconst dynamicLogo = (importFn: () => Promise<any>, exportName: string) =>\n lazy(async () => {\n const module = await importFn();\n const asset = module[exportName];\n\n return { default: asset };\n });\n\nconst logoRecord: Record<TechLogoName, ReturnType<typeof dynamicLogo>> = {\n [TechLogoName.Adonis]: dynamicLogo(\n () => import('./logos/Adonis'),\n 'AdonisLogo'\n ),\n [TechLogoName.Angular]: dynamicLogo(\n () => import('./logos/Angular'),\n 'AngularLogo'\n ),\n [TechLogoName.Astro]: dynamicLogo(() => import('./logos/Astro'), 'AstroLogo'),\n [TechLogoName.Express]: dynamicLogo(\n () => import('./logos/Express'),\n 'ExpressLogo'\n ),\n [TechLogoName.Fastify]: dynamicLogo(\n () => import('./logos/Fastify'),\n 'FastifyLogo'\n ),\n [TechLogoName.Hono]: dynamicLogo(() => import('./logos/Hono'), 'HonoLogo'),\n [TechLogoName.Lynx]: dynamicLogo(() => import('./logos/Lynx'), 'LynxLogo'),\n [TechLogoName.NestJS]: dynamicLogo(\n () => import('./logos/NestJS'),\n 'NestJSLogo'\n ),\n [TechLogoName.Nextjs]: dynamicLogo(\n () => import('./logos/Nextjs'),\n 'NextJSLogo'\n ),\n [TechLogoName.Node]: dynamicLogo(() => import('./logos/Node'), 'NodejsLogo'),\n [TechLogoName.Nuxt]: dynamicLogo(() => import('./logos/Nuxt'), 'NuxtLogo'),\n [TechLogoName.Preact]: dynamicLogo(\n () => import('./logos/Preact'),\n 'PreactLogo'\n ),\n [TechLogoName.React]: dynamicLogo(\n () => import('./logos/Reactjs'),\n 'ReactLogo'\n ),\n [TechLogoName.Solid]: dynamicLogo(() => import('./logos/Solid'), 'SolidLogo'),\n [TechLogoName.Svelte]: dynamicLogo(\n () => import('./logos/Svelte'),\n 'SvelteLogo'\n ),\n [TechLogoName.Tanstack]: dynamicLogo(\n () => import('./logos/Tanstack'),\n 'TanstackLogo'\n ),\n [TechLogoName.Vite]: dynamicLogo(() => import('./logos/Vitejs'), 'ViteLogo'),\n [TechLogoName.Vue]: dynamicLogo(() => import('./logos/Vuejs'), 'VuejsLogo'),\n [TechLogoName.Lit]: dynamicLogo(() => import('./logos/Lit'), 'LitLogo'),\n [TechLogoName.Vanilla]: dynamicLogo(\n () => import('./logos/Vanilla'),\n 'JavaScriptLogo'\n ),\n [TechLogoName.Anthropic]: dynamicLogo(\n () => import('./logos/Anthropic'),\n 'AnthropicLogo'\n ),\n [TechLogoName.Claude]: dynamicLogo(\n () => import('./logos/Claude'),\n 'ClaudeLogo'\n ),\n [TechLogoName.ChatGPT]: dynamicLogo(\n () => import('./logos/ChatGPT'),\n 'ChatGPTLogo'\n ),\n [TechLogoName.DeepSeek]: dynamicLogo(\n () => import('./logos/DeepSeek'),\n 'DeepSeekLogo'\n ),\n [TechLogoName.Gemini]: dynamicLogo(\n () => import('./logos/Gemini'),\n 'GeminiLogo'\n ),\n [TechLogoName.GoogleAI]: dynamicLogo(\n () => import('./logos/GoogleAI'),\n 'GoogleAILogo'\n ),\n [TechLogoName.Grok]: dynamicLogo(() => import('./logos/Grok'), 'GrokLogo'),\n [TechLogoName.Mistral]: dynamicLogo(\n () => import('./logos/Mistral'),\n 'MistralLogo'\n ),\n [TechLogoName.Ollama]: dynamicLogo(\n () => import('./logos/Ollama'),\n 'OllamaLogo'\n ),\n [TechLogoName.OpenAI]: dynamicLogo(\n () => import('./logos/OpenAI'),\n 'OpenAILogo'\n ),\n [TechLogoName.Perplexity]: dynamicLogo(\n () => import('./logos/Perplexity'),\n 'PerplexityLogo'\n ),\n [TechLogoName.GitHub]: dynamicLogo(\n () => import('./logos/GitHub'),\n 'GitHubLogo'\n ),\n [TechLogoName.GitLab]: dynamicLogo(\n () => import('./logos/GitLab'),\n 'GitLabLogo'\n ),\n [TechLogoName.Bitbucket]: dynamicLogo(\n () => import('./logos/Bitbucket'),\n 'BitbucketLogo'\n ),\n [TechLogoName.Google]: dynamicLogo(\n () => import('./logos/Google'),\n 'GoogleLogo'\n ),\n [TechLogoName.LinkedIn]: dynamicLogo(\n () => import('./logos/LinkedIn'),\n 'LinkedInLogo'\n ),\n};\n\nexport const TechLogo: FC<TechLogoProps> = ({\n name,\n ...props\n}): JSX.Element => {\n const LazyLogo = logoRecord[name];\n\n if (!LazyLogo) {\n return <></>;\n }\n\n return (\n <Suspense\n fallback={\n <div className={cn('animate-pulse bg-neutral-200', props.className)} />\n }\n >\n <LazyLogo {...(props as any)} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;AAWA,MAAM,eAAe,UAA8B,eACjD,KAAK,YAAY;CAIf,OAAO,EAAE,UAFK,MADO,UAAU,EACV,aAEI;EACzB;AAEJ,MAAM,aAAmE;aAChD,kBACf,OAAO,uBACb,aACD;cACuB,kBAChB,OAAO,wBACb,cACD;YACqB,kBAAkB,OAAO,sBAAkB,YAAY;cACrD,kBAChB,OAAO,wBACb,cACD;cACuB,kBAChB,OAAO,wBACb,cACD;WACoB,kBAAkB,OAAO,qBAAiB,WAAW;WACrD,kBAAkB,OAAO,qBAAiB,WAAW;aACnD,kBACf,OAAO,uBACb,aACD;aACsB,kBACf,OAAO,uBACb,aACD;WACoB,kBAAkB,OAAO,qBAAiB,aAAa;WACvD,kBAAkB,OAAO,qBAAiB,WAAW;aACnD,kBACf,OAAO,uBACb,aACD;YACqB,kBACd,OAAO,wBACb,YACD;YACqB,kBAAkB,OAAO,sBAAkB,YAAY;aACtD,kBACf,OAAO,uBACb,aACD;eACwB,kBACjB,OAAO,yBACb,eACD;WACoB,kBAAkB,OAAO,uBAAmB,WAAW;UACxD,kBAAkB,OAAO,sBAAkB,YAAY;UACvD,kBAAkB,OAAO,oBAAgB,UAAU;cAC/C,kBAChB,OAAO,wBACb,iBACD;gBACyB,kBAClB,OAAO,0BACb,gBACD;aACsB,kBACf,OAAO,uBACb,aACD;cACuB,kBAChB,OAAO,wBACb,cACD;eACwB,kBACjB,OAAO,yBACb,eACD;aACsB,kBACf,OAAO,uBACb,aACD;eACwB,kBACjB,OAAO,yBACb,eACD;WACoB,kBAAkB,OAAO,qBAAiB,WAAW;cAClD,kBAChB,OAAO,wBACb,cACD;aACsB,kBACf,OAAO,uBACb,aACD;aACsB,kBACf,OAAO,uBACb,aACD;iBAC0B,kBACnB,OAAO,2BACb,iBACD;aACsB,kBACf,OAAO,uBACb,aACD;aACsB,kBACf,OAAO,uBACb,aACD;gBACyB,kBAClB,OAAO,0BACb,gBACD;aACsB,kBACf,OAAO,uBACb,aACD;eACwB,kBACjB,OAAO,yBACb,eACD;CACF;AAED,MAAa,YAA+B,EAC1C,MACA,GAAG,YACc;CACjB,MAAM,WAAW,WAAW;CAE5B,IAAI,CAAC,UACH,OAAO,kCAAK;CAGd,OACE,oBAAC,UAAD;EACE,UACE,oBAAC,OAAD,EAAK,WAAW,GAAG,gCAAgC,MAAM,UAAU,EAAI;YAGzE,oBAAC,UAAD,EAAU,GAAK,OAAiB;EACvB"}
1
+ {"version":3,"file":"TechLogo.mjs","names":[],"sources":["../../../../src/components/TechLogo/TechLogo.tsx"],"sourcesContent":["import { type FC, type JSX, lazy, Suspense, type SVGProps } from 'react';\nimport { cn } from '../../utils/cn';\nimport { TechLogoName } from './types';\n\nexport type TechLogoProps = SVGProps<SVGSVGElement> & {\n name: TechLogoName;\n};\n\n/**\n * This ensures React.lazy always receives a valid component.\n */\nconst dynamicLogo = (importFn: () => Promise<any>, exportName: string) =>\n lazy(async () => {\n const module = await importFn();\n const asset = module[exportName];\n\n return { default: asset };\n });\n\nconst logoRecord: Record<TechLogoName, ReturnType<typeof dynamicLogo>> = {\n [TechLogoName.Adonis]: dynamicLogo(\n () => import('./logos/Adonis'),\n 'AdonisLogo'\n ),\n [TechLogoName.Angular]: dynamicLogo(\n () => import('./logos/Angular'),\n 'AngularLogo'\n ),\n [TechLogoName.Astro]: dynamicLogo(() => import('./logos/Astro'), 'AstroLogo'),\n [TechLogoName.Express]: dynamicLogo(\n () => import('./logos/Express'),\n 'ExpressLogo'\n ),\n [TechLogoName.Fastify]: dynamicLogo(\n () => import('./logos/Fastify'),\n 'FastifyLogo'\n ),\n [TechLogoName.Hono]: dynamicLogo(() => import('./logos/Hono'), 'HonoLogo'),\n [TechLogoName.Lynx]: dynamicLogo(() => import('./logos/Lynx'), 'LynxLogo'),\n [TechLogoName.NestJS]: dynamicLogo(\n () => import('./logos/NestJS'),\n 'NestJSLogo'\n ),\n [TechLogoName.Nextjs]: dynamicLogo(\n () => import('./logos/Nextjs'),\n 'NextJSLogo'\n ),\n [TechLogoName.Node]: dynamicLogo(() => import('./logos/Node'), 'NodejsLogo'),\n [TechLogoName.Nuxt]: dynamicLogo(() => import('./logos/Nuxt'), 'NuxtLogo'),\n [TechLogoName.Preact]: dynamicLogo(\n () => import('./logos/Preact'),\n 'PreactLogo'\n ),\n [TechLogoName.React]: dynamicLogo(\n () => import('./logos/Reactjs'),\n 'ReactLogo'\n ),\n [TechLogoName.Solid]: dynamicLogo(() => import('./logos/Solid'), 'SolidLogo'),\n [TechLogoName.Svelte]: dynamicLogo(\n () => import('./logos/Svelte'),\n 'SvelteLogo'\n ),\n [TechLogoName.Tanstack]: dynamicLogo(\n () => import('./logos/Tanstack'),\n 'TanstackLogo'\n ),\n [TechLogoName.Vite]: dynamicLogo(() => import('./logos/Vitejs'), 'ViteLogo'),\n [TechLogoName.Vue]: dynamicLogo(() => import('./logos/Vuejs'), 'VuejsLogo'),\n [TechLogoName.Lit]: dynamicLogo(() => import('./logos/Lit'), 'LitLogo'),\n [TechLogoName.Vanilla]: dynamicLogo(\n () => import('./logos/Vanilla'),\n 'JavaScriptLogo'\n ),\n [TechLogoName.Anthropic]: dynamicLogo(\n () => import('./logos/Anthropic'),\n 'AnthropicLogo'\n ),\n [TechLogoName.Claude]: dynamicLogo(\n () => import('./logos/Claude'),\n 'ClaudeLogo'\n ),\n [TechLogoName.ChatGPT]: dynamicLogo(\n () => import('./logos/ChatGPT'),\n 'ChatGPTLogo'\n ),\n [TechLogoName.DeepSeek]: dynamicLogo(\n () => import('./logos/DeepSeek'),\n 'DeepSeekLogo'\n ),\n [TechLogoName.Gemini]: dynamicLogo(\n () => import('./logos/Gemini'),\n 'GeminiLogo'\n ),\n [TechLogoName.GoogleAI]: dynamicLogo(\n () => import('./logos/GoogleAI'),\n 'GoogleAILogo'\n ),\n [TechLogoName.Grok]: dynamicLogo(() => import('./logos/Grok'), 'GrokLogo'),\n [TechLogoName.Mistral]: dynamicLogo(\n () => import('./logos/Mistral'),\n 'MistralLogo'\n ),\n [TechLogoName.Ollama]: dynamicLogo(\n () => import('./logos/Ollama'),\n 'OllamaLogo'\n ),\n [TechLogoName.OpenAI]: dynamicLogo(\n () => import('./logos/OpenAI'),\n 'OpenAILogo'\n ),\n [TechLogoName.Perplexity]: dynamicLogo(\n () => import('./logos/Perplexity'),\n 'PerplexityLogo'\n ),\n [TechLogoName.GitHub]: dynamicLogo(\n () => import('./logos/GitHub'),\n 'GitHubLogo'\n ),\n [TechLogoName.GitLab]: dynamicLogo(\n () => import('./logos/GitLab'),\n 'GitLabLogo'\n ),\n [TechLogoName.Bitbucket]: dynamicLogo(\n () => import('./logos/Bitbucket'),\n 'BitbucketLogo'\n ),\n [TechLogoName.Google]: dynamicLogo(\n () => import('./logos/Google'),\n 'GoogleLogo'\n ),\n [TechLogoName.LinkedIn]: dynamicLogo(\n () => import('./logos/LinkedIn'),\n 'LinkedInLogo'\n ),\n};\n\nexport const TechLogo: FC<TechLogoProps> = ({\n name,\n ...props\n}): JSX.Element => {\n const LazyLogo = logoRecord[name];\n\n if (!LazyLogo) {\n return <></>;\n }\n\n return (\n <Suspense\n fallback={\n <div className={cn('animate-pulse bg-neutral-200', props.className)} />\n }\n >\n <LazyLogo {...(props as any)} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;AAWA,MAAM,eAAe,UAA8B,eACjD,KAAK,YAAY;CAIf,OAAO,EAAE,UAFK,MADO,SAAS,GACT,YAEG;AAC1B,CAAC;AAEH,MAAM,aAAmE;aAChD,kBACf,OAAO,uBACb,YACF;cACwB,kBAChB,OAAO,wBACb,aACF;YACsB,kBAAkB,OAAO,sBAAkB,WAAW;cACpD,kBAChB,OAAO,wBACb,aACF;cACwB,kBAChB,OAAO,wBACb,aACF;WACqB,kBAAkB,OAAO,qBAAiB,UAAU;WACpD,kBAAkB,OAAO,qBAAiB,UAAU;aAClD,kBACf,OAAO,uBACb,YACF;aACuB,kBACf,OAAO,uBACb,YACF;WACqB,kBAAkB,OAAO,qBAAiB,YAAY;WACtD,kBAAkB,OAAO,qBAAiB,UAAU;aAClD,kBACf,OAAO,uBACb,YACF;YACsB,kBACd,OAAO,wBACb,WACF;YACsB,kBAAkB,OAAO,sBAAkB,WAAW;aACrD,kBACf,OAAO,uBACb,YACF;eACyB,kBACjB,OAAO,yBACb,cACF;WACqB,kBAAkB,OAAO,uBAAmB,UAAU;UACvD,kBAAkB,OAAO,sBAAkB,WAAW;UACtD,kBAAkB,OAAO,oBAAgB,SAAS;cAC9C,kBAChB,OAAO,wBACb,gBACF;gBAC0B,kBAClB,OAAO,0BACb,eACF;aACuB,kBACf,OAAO,uBACb,YACF;cACwB,kBAChB,OAAO,wBACb,aACF;eACyB,kBACjB,OAAO,yBACb,cACF;aACuB,kBACf,OAAO,uBACb,YACF;eACyB,kBACjB,OAAO,yBACb,cACF;WACqB,kBAAkB,OAAO,qBAAiB,UAAU;cACjD,kBAChB,OAAO,wBACb,aACF;aACuB,kBACf,OAAO,uBACb,YACF;aACuB,kBACf,OAAO,uBACb,YACF;iBAC2B,kBACnB,OAAO,2BACb,gBACF;aACuB,kBACf,OAAO,uBACb,YACF;aACuB,kBACf,OAAO,uBACb,YACF;gBAC0B,kBAClB,OAAO,0BACb,eACF;aACuB,kBACf,OAAO,uBACb,YACF;eACyB,kBACjB,OAAO,yBACb,cACF;AACF;AAEA,MAAa,YAA+B,EAC1C,MACA,GAAG,YACc;CACjB,MAAM,WAAW,WAAW;CAE5B,IAAI,CAAC,UACH,OAAO,iCAAI;CAGb,OACE,oBAAC,UAAD;EACE,UACE,oBAAC,OAAD,EAAK,WAAW,GAAG,gCAAgC,MAAM,SAAS,EAAI;YAGxE,oBAAC,UAAD,EAAU,GAAK,MAAgB;CACvB;AAEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"Adonis.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Adonis.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AdonisLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"2\"\n role=\"img\"\n aria-label=\"Adonis logo\"\n >\n <path\n d=\"M106.812 307.933l78.418-178.207c13.23-30.039 38.692-46.332 70.77-46.332 32.078 0 57.535 16.29 70.773 46.328l78.414 178.211c3.562 8.656 6.617 19.86 6.617 29.531 0 44.297-31.059 75.356-75.36 75.356-15.085 0-27.07-3.848-39.198-7.746-12.43-3.993-25.012-8.036-41.246-8.036-16.047 0-28.938 4.079-41.614 8.09-12.257 3.88-24.316 7.692-38.832 7.692-44.296 0-75.359-31.055-75.359-75.352 0-9.676 3.059-20.879 6.617-29.535z\"\n fill=\"#fff\"\n />\n <path\n d=\"M6 256c0 201.628 48.371 250 250 250 201.628 0 250-48.372 250-250C506 54.37 457.627 6 256 6 54.37 6 6 54.371 6 256zm100.812 51.933l78.418-178.207c13.23-30.039 38.692-46.332 70.77-46.332 32.078 0 57.535 16.29 70.773 46.328l78.414 178.211c3.562 8.656 6.617 19.86 6.617 29.531 0 44.297-31.059 75.356-75.36 75.356-15.085 0-27.07-3.848-39.198-7.746-12.43-3.993-25.012-8.036-41.246-8.036-16.047 0-28.938 4.079-41.614 8.09-12.257 3.88-24.316 7.692-38.832 7.692-44.296 0-75.359-31.055-75.359-75.352 0-9.676 3.059-20.879 6.621-29.535h-.004zM256 160.785L178.605 335.94c22.914-10.695 49.39-15.785 77.395-15.785 26.988 0 54.48 5.09 76.374 15.781L256 160.789v-.004z\"\n fill=\"#5a45ff\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,qBAAC,OAAD;CACE,GAAI;CACJ,SAAQ;CACR,OAAM;CACN,UAAS;CACT,UAAS;CACT,gBAAe;CACf,kBAAiB;CACjB,MAAK;CACL,cAAW;WATb,CAWE,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL,GACF,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL,EACE"}
1
+ {"version":3,"file":"Adonis.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Adonis.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AdonisLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"2\"\n role=\"img\"\n aria-label=\"Adonis logo\"\n >\n <path\n d=\"M106.812 307.933l78.418-178.207c13.23-30.039 38.692-46.332 70.77-46.332 32.078 0 57.535 16.29 70.773 46.328l78.414 178.211c3.562 8.656 6.617 19.86 6.617 29.531 0 44.297-31.059 75.356-75.36 75.356-15.085 0-27.07-3.848-39.198-7.746-12.43-3.993-25.012-8.036-41.246-8.036-16.047 0-28.938 4.079-41.614 8.09-12.257 3.88-24.316 7.692-38.832 7.692-44.296 0-75.359-31.055-75.359-75.352 0-9.676 3.059-20.879 6.617-29.535z\"\n fill=\"#fff\"\n />\n <path\n d=\"M6 256c0 201.628 48.371 250 250 250 201.628 0 250-48.372 250-250C506 54.37 457.627 6 256 6 54.37 6 6 54.371 6 256zm100.812 51.933l78.418-178.207c13.23-30.039 38.692-46.332 70.77-46.332 32.078 0 57.535 16.29 70.773 46.328l78.414 178.211c3.562 8.656 6.617 19.86 6.617 29.531 0 44.297-31.059 75.356-75.36 75.356-15.085 0-27.07-3.848-39.198-7.746-12.43-3.993-25.012-8.036-41.246-8.036-16.047 0-28.938 4.079-41.614 8.09-12.257 3.88-24.316 7.692-38.832 7.692-44.296 0-75.359-31.055-75.359-75.352 0-9.676 3.059-20.879 6.621-29.535h-.004zM256 160.785L178.605 335.94c22.914-10.695 49.39-15.785 77.395-15.785 26.988 0 54.48 5.09 76.374 15.781L256 160.789v-.004z\"\n fill=\"#5a45ff\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,qBAAC,OAAD;CACE,GAAI;CACJ,SAAQ;CACR,OAAM;CACN,UAAS;CACT,UAAS;CACT,gBAAe;CACf,kBAAiB;CACjB,MAAK;CACL,cAAW;WATb,CAWE,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN,IACD,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN,EACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Angular.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Angular.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AngularLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Angular logo\"\n version=\"1.1\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"20 20 210 210\"\n {...props}\n >\n <g>\n <polygon\n style={{\n fill: '#DD0031',\n }}\n points=\"125,30 125,30 125,30 31.9,63.2 46.1,186.3 125,230 125,230 125,230 203.9,186.3 218.1,63.2 \"\n />\n <polygon\n style={{\n fill: '#C3002F',\n }}\n points=\"125,30 125,52.2 125,52.1 125,153.4 125,153.4 125,230 125,230 203.9,186.3 218.1,63.2 125,30 \"\n />\n <path\n style={{\n fill: '#FFFFFF',\n }}\n d=\"M125,52.1L66.8,182.6h0h21.7h0l11.7-29.2h49.4l11.7,29.2h0h21.7h0L125,52.1L125,52.1L125,52.1L125,52.1 L125,52.1z M142,135.4H108l17-40.9L142,135.4z\"\n />\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,OAAM;CACN,MAAK;CACL,cAAW;CACX,SAAQ;CACR,qBAAoB;CACpB,SAAQ;CACR,GAAI;WAEJ,qBAAC,KAAD;EACE,oBAAC,WAAD;GACE,OAAO,EACL,MAAM,WACP;GACD,QAAO;GACP;EACF,oBAAC,WAAD;GACE,OAAO,EACL,MAAM,WACP;GACD,QAAO;GACP;EACF,oBAAC,QAAD;GACE,OAAO,EACL,MAAM,WACP;GACD,GAAE;GACF;EACA;CACA"}
1
+ {"version":3,"file":"Angular.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Angular.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AngularLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Angular logo\"\n version=\"1.1\"\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"20 20 210 210\"\n {...props}\n >\n <g>\n <polygon\n style={{\n fill: '#DD0031',\n }}\n points=\"125,30 125,30 125,30 31.9,63.2 46.1,186.3 125,230 125,230 125,230 203.9,186.3 218.1,63.2 \"\n />\n <polygon\n style={{\n fill: '#C3002F',\n }}\n points=\"125,30 125,52.2 125,52.1 125,153.4 125,153.4 125,230 125,230 203.9,186.3 218.1,63.2 125,30 \"\n />\n <path\n style={{\n fill: '#FFFFFF',\n }}\n d=\"M125,52.1L66.8,182.6h0h21.7h0l11.7-29.2h49.4l11.7,29.2h0h21.7h0L125,52.1L125,52.1L125,52.1L125,52.1 L125,52.1z M142,135.4H108l17-40.9L142,135.4z\"\n />\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,OAAM;CACN,MAAK;CACL,cAAW;CACX,SAAQ;CACR,qBAAoB;CACpB,SAAQ;CACR,GAAI;WAEJ,qBAAC,KAAD;EACE,oBAAC,WAAD;GACE,OAAO,EACL,MAAM,UACR;GACA,QAAO;EACR;EACD,oBAAC,WAAD;GACE,OAAO,EACL,MAAM,UACR;GACA,QAAO;EACR;EACD,oBAAC,QAAD;GACE,OAAO,EACL,MAAM,UACR;GACA,GAAE;EACH;CACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Anthropic.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Anthropic.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AnthropicLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Anthropic logo\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n height=\"24\"\n width=\"24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"m13.788825 3.932 6.43325 16.136075h3.5279L17.316725 3.932H13.788825Z\"\n strokeWidth=\"0.25\"\n />\n <path\n fill=\"currentColor\"\n d=\"m6.325375 13.682775 2.20125 -5.67065 2.201275 5.67065H6.325375ZM6.68225 3.932 0.25 20.068075h3.596525l1.3155 -3.3886h6.729425l1.315275 3.3886h3.59655L10.371 3.932H6.68225Z\"\n strokeWidth=\"0.25\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,OAAM;CACN,MAAK;CACL,cAAW;CACX,MAAK;CACL,SAAQ;CACR,QAAO;CACP,OAAM;CACN,GAAI;WARN,CAUE,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF,aAAY;EACZ,GACF,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF,aAAY;EACZ,EACE"}
1
+ {"version":3,"file":"Anthropic.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Anthropic.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AnthropicLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Anthropic logo\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n height=\"24\"\n width=\"24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"m13.788825 3.932 6.43325 16.136075h3.5279L17.316725 3.932H13.788825Z\"\n strokeWidth=\"0.25\"\n />\n <path\n fill=\"currentColor\"\n d=\"m6.325375 13.682775 2.20125 -5.67065 2.201275 5.67065H6.325375ZM6.68225 3.932 0.25 20.068075h3.596525l1.3155 -3.3886h6.729425l1.315275 3.3886h3.59655L10.371 3.932H6.68225Z\"\n strokeWidth=\"0.25\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,OAAM;CACN,MAAK;CACL,cAAW;CACX,MAAK;CACL,SAAQ;CACR,QAAO;CACP,OAAM;CACN,GAAI;WARN,CAUE,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF,aAAY;CACb,IACD,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF,aAAY;CACb,EACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Astro.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Astro.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AstroLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n viewBox=\"0 0 85 107\"\n role=\"img\"\n aria-label=\"Astro logo\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path\n d=\"M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z\"\n fill=\"url(#paint0_linear_1_59)\"\n />\n <path\n d=\"M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z\"\n fill=\"currentColor\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1_59\"\n x1=\"22.4702\"\n y1=\"107\"\n x2=\"69.1451\"\n y2=\"84.9468\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#D83333\" />\n <stop offset=\"1\" stopColor=\"#F041FF\" />\n </linearGradient>\n </defs>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,aAA0C,UACrD,qBAAC,OAAD;CACE,SAAQ;CACR,MAAK;CACL,cAAW;CACX,OAAM;CACN,MAAK;CACL,GAAI;WANN;EAQE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD,YACE,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;MACZ;EACH"}
1
+ {"version":3,"file":"Astro.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Astro.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AstroLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n viewBox=\"0 0 85 107\"\n role=\"img\"\n aria-label=\"Astro logo\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path\n d=\"M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z\"\n fill=\"url(#paint0_linear_1_59)\"\n />\n <path\n d=\"M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z\"\n fill=\"currentColor\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1_59\"\n x1=\"22.4702\"\n y1=\"107\"\n x2=\"69.1451\"\n y2=\"84.9468\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#D83333\" />\n <stop offset=\"1\" stopColor=\"#F041FF\" />\n </linearGradient>\n </defs>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,aAA0C,UACrD,qBAAC,OAAD;CACE,SAAQ;CACR,MAAK;CACL,cAAW;CACX,OAAM;CACN,MAAK;CACL,GAAI;WANN;EAQE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD,YACE,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;KACZ;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"Atlassian.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Atlassian.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AtlassianLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Atlassian logo\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M11.11 14.918c-.274-.34-.762-.29-.99.096L5.03 24.108a.584.584 0 00.514.862h7.29a.587.587 0 00.527-.329c1.587-3.33.693-7.513-2.252-9.723z\"\n fill=\"#2684FF\"\n />\n <path\n d=\"M15.763 5.125a13.27 13.27 0 00-.17 13.83l3.515 6.688a.586.586 0 00.527.327h7.29a.584.584 0 00.515-.862L16.753 5.22a.585.585 0 00-1.023-.032l.033-.063z\"\n fill=\"#2684FF\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,MAAK;CACL,OAAM;CACN,GAAI;WANN,CAQE,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL,GACF,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL,EACE"}
1
+ {"version":3,"file":"Atlassian.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Atlassian.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const AtlassianLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Atlassian logo\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M11.11 14.918c-.274-.34-.762-.29-.99.096L5.03 24.108a.584.584 0 00.514.862h7.29a.587.587 0 00.527-.329c1.587-3.33.693-7.513-2.252-9.723z\"\n fill=\"#2684FF\"\n />\n <path\n d=\"M15.763 5.125a13.27 13.27 0 00-.17 13.83l3.515 6.688a.586.586 0 00.527.327h7.29a.584.584 0 00.515-.862L16.753 5.22a.585.585 0 00-1.023-.032l.033-.063z\"\n fill=\"#2684FF\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,MAAK;CACL,OAAM;CACN,GAAI;WANN,CAQE,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN,IACD,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN,EACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Bitbucket.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Bitbucket.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const BitbucketLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Bitbucket logo\"\n height=\"2256\"\n preserveAspectRatio=\"xMidYMid\"\n width=\"2500\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-0.9662264221278978 -0.5824607696358868 257.93281329857973 230.8324730411935\"\n {...props}\n >\n <linearGradient\n id=\"bitbucket-gradient\"\n x1=\"108.633%\"\n x2=\"46.927%\"\n y1=\"13.818%\"\n y2=\"78.776%\"\n >\n <stop offset=\".18\" stopColor=\"#0052cc\" />\n <stop offset=\"1\" stopColor=\"#2684ff\" />\n </linearGradient>\n <g fill=\"none\">\n <path d=\"M101.272 152.561h53.449l12.901-75.32H87.06z\" />\n <path\n d=\"M8.308 0A8.202 8.202 0 0 0 .106 9.516l34.819 211.373a11.155 11.155 0 0 0 10.909 9.31h167.04a8.202 8.202 0 0 0 8.201-6.89l34.82-213.752a8.202 8.202 0 0 0-8.203-9.514zm146.616 152.768h-53.315l-14.436-75.42h80.67z\"\n fill=\"#2684ff\"\n />\n <path\n d=\"M244.61 77.242h-76.916l-12.909 75.36h-53.272l-62.902 74.663a11.105 11.105 0 0 0 7.171 2.704H212.73a8.196 8.196 0 0 0 8.196-6.884z\"\n fill=\"url(#bitbucket-gradient)\"\n />\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,QAAO;CACP,qBAAoB;CACpB,OAAM;CACN,OAAM;CACN,SAAQ;CACR,GAAI;WARN,CAUE,qBAAC,kBAAD;EACE,IAAG;EACH,IAAG;EACH,IAAG;EACH,IAAG;EACH,IAAG;YALL,CAOE,oBAAC,QAAD;GAAM,QAAO;GAAM,WAAU;GAAY,GACzC,oBAAC,QAAD;GAAM,QAAO;GAAI,WAAU;GAAY,EACxB;KACjB,qBAAC,KAAD;EAAG,MAAK;YAAR;GACE,oBAAC,QAAD,EAAM,GAAE,+CAAgD;GACxD,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;IACL;GACF,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;IACL;GACA;IACA"}
1
+ {"version":3,"file":"Bitbucket.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Bitbucket.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const BitbucketLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Bitbucket logo\"\n height=\"2256\"\n preserveAspectRatio=\"xMidYMid\"\n width=\"2500\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"-0.9662264221278978 -0.5824607696358868 257.93281329857973 230.8324730411935\"\n {...props}\n >\n <linearGradient\n id=\"bitbucket-gradient\"\n x1=\"108.633%\"\n x2=\"46.927%\"\n y1=\"13.818%\"\n y2=\"78.776%\"\n >\n <stop offset=\".18\" stopColor=\"#0052cc\" />\n <stop offset=\"1\" stopColor=\"#2684ff\" />\n </linearGradient>\n <g fill=\"none\">\n <path d=\"M101.272 152.561h53.449l12.901-75.32H87.06z\" />\n <path\n d=\"M8.308 0A8.202 8.202 0 0 0 .106 9.516l34.819 211.373a11.155 11.155 0 0 0 10.909 9.31h167.04a8.202 8.202 0 0 0 8.201-6.89l34.82-213.752a8.202 8.202 0 0 0-8.203-9.514zm146.616 152.768h-53.315l-14.436-75.42h80.67z\"\n fill=\"#2684ff\"\n />\n <path\n d=\"M244.61 77.242h-76.916l-12.909 75.36h-53.272l-62.902 74.663a11.105 11.105 0 0 0 7.171 2.704H212.73a8.196 8.196 0 0 0 8.196-6.884z\"\n fill=\"url(#bitbucket-gradient)\"\n />\n </g>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,iBAA8C,UACzD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,QAAO;CACP,qBAAoB;CACpB,OAAM;CACN,OAAM;CACN,SAAQ;CACR,GAAI;WARN,CAUE,qBAAC,kBAAD;EACE,IAAG;EACH,IAAG;EACH,IAAG;EACH,IAAG;EACH,IAAG;YALL,CAOE,oBAAC,QAAD;GAAM,QAAO;GAAM,WAAU;EAAW,IACxC,oBAAC,QAAD;GAAM,QAAO;GAAI,WAAU;EAAW,EACxB;KAChB,qBAAC,KAAD;EAAG,MAAK;YAAR;GACE,oBAAC,QAAD,EAAM,GAAE,8CAA+C;GACvD,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;GACN;GACD,oBAAC,QAAD;IACE,GAAE;IACF,MAAK;GACN;EACA;GACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatGPT.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/ChatGPT.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ChatGPTLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"ChatGPT logo\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 320\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m297.06 130.97c7.26-21.79 4.76-45.66-6.85-65.48-17.46-30.4-52.56-46.04-86.84-38.68-15.25-17.18-37.16-26.95-60.13-26.81-35.04-.08-66.13 22.48-76.91 55.82-22.51 4.61-41.94 18.7-53.31 38.67-17.59 30.32-13.58 68.54 9.92 94.54-7.26 21.79-4.76 45.66 6.85 65.48 17.46 30.4 52.56 46.04 86.84 38.68 15.24 17.18 37.16 26.95 60.13 26.8 35.06.09 66.16-22.49 76.94-55.86 22.51-4.61 41.94-18.7 53.31-38.67 17.57-30.32 13.55-68.51-9.94-94.51zm-120.28 168.11c-14.03.02-27.62-4.89-38.39-13.88.49-.26 1.34-.73 1.89-1.07l63.72-36.8c3.26-1.85 5.26-5.32 5.24-9.07v-89.83l26.93 15.55c.29.14.48.42.52.74v74.39c-.04 33.08-26.83 59.9-59.91 59.97zm-128.84-55.03c-7.03-12.14-9.56-26.37-7.15-40.18.47.28 1.3.79 1.89 1.13l63.72 36.8c3.23 1.89 7.23 1.89 10.47 0l77.79-44.92v31.1c.02.32-.13.63-.38.83l-64.41 37.19c-28.69 16.52-65.33 6.7-81.92-21.95zm-16.77-139.09c7-12.16 18.05-21.46 31.21-26.29 0 .55-.03 1.52-.03 2.2v73.61c-.02 3.74 1.98 7.21 5.23 9.06l77.79 44.91-26.93 15.55c-.27.18-.61.21-.91.08l-64.42-37.22c-28.63-16.58-38.45-53.21-21.95-81.89zm221.26 51.49-77.79-44.92 26.93-15.54c.27-.18.61-.21.91-.08l64.42 37.19c28.68 16.57 38.51 53.26 21.94 81.94-7.01 12.14-18.05 21.44-31.2 26.28v-75.81c.03-3.74-1.96-7.2-5.2-9.06zm26.8-40.34c-.47-.29-1.3-.79-1.89-1.13l-63.72-36.8c-3.23-1.89-7.23-1.89-10.47 0l-77.79 44.92v-31.1c-.02-.32.13-.63.38-.83l64.41-37.16c28.69-16.55 65.37-6.7 81.91 22 6.99 12.12 9.52 26.31 7.15 40.1zm-168.51 55.43-26.94-15.55c-.29-.14-.48-.42-.52-.74v-74.39c.02-33.12 26.89-59.96 60.01-59.94 14.01 0 27.57 4.92 38.34 13.88-.49.26-1.33.73-1.89 1.07l-63.72 36.8c-3.26 1.85-5.26 5.31-5.24 9.06l-.04 89.79zm14.63-31.54 34.65-20.01 34.65 20v40.01l-34.65 20-34.65-20z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,OAAM;CACN,SAAQ;CACR,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,2nDAA4nD;CAChoD"}
1
+ {"version":3,"file":"ChatGPT.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/ChatGPT.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ChatGPTLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"ChatGPT logo\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 320\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m297.06 130.97c7.26-21.79 4.76-45.66-6.85-65.48-17.46-30.4-52.56-46.04-86.84-38.68-15.25-17.18-37.16-26.95-60.13-26.81-35.04-.08-66.13 22.48-76.91 55.82-22.51 4.61-41.94 18.7-53.31 38.67-17.59 30.32-13.58 68.54 9.92 94.54-7.26 21.79-4.76 45.66 6.85 65.48 17.46 30.4 52.56 46.04 86.84 38.68 15.24 17.18 37.16 26.95 60.13 26.8 35.06.09 66.16-22.49 76.94-55.86 22.51-4.61 41.94-18.7 53.31-38.67 17.57-30.32 13.55-68.51-9.94-94.51zm-120.28 168.11c-14.03.02-27.62-4.89-38.39-13.88.49-.26 1.34-.73 1.89-1.07l63.72-36.8c3.26-1.85 5.26-5.32 5.24-9.07v-89.83l26.93 15.55c.29.14.48.42.52.74v74.39c-.04 33.08-26.83 59.9-59.91 59.97zm-128.84-55.03c-7.03-12.14-9.56-26.37-7.15-40.18.47.28 1.3.79 1.89 1.13l63.72 36.8c3.23 1.89 7.23 1.89 10.47 0l77.79-44.92v31.1c.02.32-.13.63-.38.83l-64.41 37.19c-28.69 16.52-65.33 6.7-81.92-21.95zm-16.77-139.09c7-12.16 18.05-21.46 31.21-26.29 0 .55-.03 1.52-.03 2.2v73.61c-.02 3.74 1.98 7.21 5.23 9.06l77.79 44.91-26.93 15.55c-.27.18-.61.21-.91.08l-64.42-37.22c-28.63-16.58-38.45-53.21-21.95-81.89zm221.26 51.49-77.79-44.92 26.93-15.54c.27-.18.61-.21.91-.08l64.42 37.19c28.68 16.57 38.51 53.26 21.94 81.94-7.01 12.14-18.05 21.44-31.2 26.28v-75.81c.03-3.74-1.96-7.2-5.2-9.06zm26.8-40.34c-.47-.29-1.3-.79-1.89-1.13l-63.72-36.8c-3.23-1.89-7.23-1.89-10.47 0l-77.79 44.92v-31.1c-.02-.32.13-.63.38-.83l64.41-37.16c28.69-16.55 65.37-6.7 81.91 22 6.99 12.12 9.52 26.31 7.15 40.1zm-168.51 55.43-26.94-15.55c-.29-.14-.48-.42-.52-.74v-74.39c.02-33.12 26.89-59.96 60.01-59.94 14.01 0 27.57 4.92 38.34 13.88-.49.26-1.33.73-1.89 1.07l-63.72 36.8c-3.26 1.85-5.26 5.31-5.24 9.06l-.04 89.79zm14.63-31.54 34.65-20.01 34.65 20v40.01l-34.65 20-34.65-20z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,OAAM;CACN,SAAQ;CACR,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,0nDAA2nD;AAChoD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Claude.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Claude.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ClaudeLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 256 257\"\n role=\"img\"\n aria-label=\"Claude logo\"\n >\n <path\n fill=\"#D97757\"\n d=\"m50.228 170.321 50.357-28.257.843-2.463-.843-1.361h-2.462l-8.426-.518-28.775-.778-24.952-1.037-24.175-1.296-6.092-1.297L0 125.796l.583-3.759 5.12-3.434 7.324.648 16.202 1.101 24.304 1.685 17.629 1.037 26.118 2.722h4.148l.583-1.685-1.426-1.037-1.101-1.037-25.147-17.045-27.22-18.017-14.258-10.37-7.713-5.25-3.888-4.925-1.685-10.758 7-7.713 9.397.649 2.398.648 9.527 7.323 20.35 15.75L94.817 91.9l3.889 3.24 1.555-1.102.195-.777-1.75-2.917-14.453-26.118-15.425-26.572-6.87-11.018-1.814-6.61c-.648-2.723-1.102-4.991-1.102-7.778l7.972-10.823L71.42 0 82.05 1.426l4.472 3.888 6.61 15.101 10.694 23.786 16.591 32.34 4.861 9.592 2.592 8.879.973 2.722h1.685v-1.556l1.36-18.211 2.528-22.36 2.463-28.776.843-8.1 4.018-9.722 7.971-5.25 6.222 2.981 5.12 7.324-.713 4.73-3.046 19.768-5.962 30.98-3.889 20.739h2.268l2.593-2.593 10.499-13.934 17.628-22.036 7.778-8.749 9.073-9.657 5.833-4.601h11.018l8.1 12.055-3.628 12.443-11.342 14.388-9.398 12.184-13.48 18.147-8.426 14.518.778 1.166 2.01-.194 30.46-6.481 16.462-2.982 19.637-3.37 8.88 4.148.971 4.213-3.5 8.62-20.998 5.184-24.628 4.926-36.682 8.685-.454.324.519.648 16.526 1.555 7.065.389h17.304l32.21 2.398 8.426 5.574 5.055 6.805-.843 5.184-12.962 6.611-17.498-4.148-40.83-9.721-14-3.5h-1.944v1.167l11.666 11.406 21.387 19.314 26.767 24.887 1.36 6.157-3.434 4.86-3.63-.518-23.526-17.693-9.073-7.972-20.545-17.304h-1.36v1.814l4.73 6.935 25.017 37.59 1.296 11.536-1.814 3.76-6.481 2.268-7.13-1.297-14.647-20.544-15.1-23.138-12.185-20.739-1.49.843-7.194 77.448-3.37 3.953-7.778 2.981-6.48-4.925-3.436-7.972 3.435-15.749 4.148-20.544 3.37-16.333 3.046-20.285 1.815-6.74-.13-.454-1.49.194-15.295 20.999-23.267 31.433-18.406 19.702-4.407 1.75-7.648-3.954.713-7.064 4.277-6.286 25.47-32.405 15.36-20.092 9.917-11.6-.065-1.686h-.583L44.07 198.125l-12.055 1.555-5.185-4.86.648-7.972 2.463-2.593 20.35-13.999-.064.065Z\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,GAAI;CACJ,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;WAEX,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF;CACE"}
1
+ {"version":3,"file":"Claude.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Claude.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ClaudeLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 256 257\"\n role=\"img\"\n aria-label=\"Claude logo\"\n >\n <path\n fill=\"#D97757\"\n d=\"m50.228 170.321 50.357-28.257.843-2.463-.843-1.361h-2.462l-8.426-.518-28.775-.778-24.952-1.037-24.175-1.296-6.092-1.297L0 125.796l.583-3.759 5.12-3.434 7.324.648 16.202 1.101 24.304 1.685 17.629 1.037 26.118 2.722h4.148l.583-1.685-1.426-1.037-1.101-1.037-25.147-17.045-27.22-18.017-14.258-10.37-7.713-5.25-3.888-4.925-1.685-10.758 7-7.713 9.397.649 2.398.648 9.527 7.323 20.35 15.75L94.817 91.9l3.889 3.24 1.555-1.102.195-.777-1.75-2.917-14.453-26.118-15.425-26.572-6.87-11.018-1.814-6.61c-.648-2.723-1.102-4.991-1.102-7.778l7.972-10.823L71.42 0 82.05 1.426l4.472 3.888 6.61 15.101 10.694 23.786 16.591 32.34 4.861 9.592 2.592 8.879.973 2.722h1.685v-1.556l1.36-18.211 2.528-22.36 2.463-28.776.843-8.1 4.018-9.722 7.971-5.25 6.222 2.981 5.12 7.324-.713 4.73-3.046 19.768-5.962 30.98-3.889 20.739h2.268l2.593-2.593 10.499-13.934 17.628-22.036 7.778-8.749 9.073-9.657 5.833-4.601h11.018l8.1 12.055-3.628 12.443-11.342 14.388-9.398 12.184-13.48 18.147-8.426 14.518.778 1.166 2.01-.194 30.46-6.481 16.462-2.982 19.637-3.37 8.88 4.148.971 4.213-3.5 8.62-20.998 5.184-24.628 4.926-36.682 8.685-.454.324.519.648 16.526 1.555 7.065.389h17.304l32.21 2.398 8.426 5.574 5.055 6.805-.843 5.184-12.962 6.611-17.498-4.148-40.83-9.721-14-3.5h-1.944v1.167l11.666 11.406 21.387 19.314 26.767 24.887 1.36 6.157-3.434 4.86-3.63-.518-23.526-17.693-9.073-7.972-20.545-17.304h-1.36v1.814l4.73 6.935 25.017 37.59 1.296 11.536-1.814 3.76-6.481 2.268-7.13-1.297-14.647-20.544-15.1-23.138-12.185-20.739-1.49.843-7.194 77.448-3.37 3.953-7.778 2.981-6.48-4.925-3.436-7.972 3.435-15.749 4.148-20.544 3.37-16.333 3.046-20.285 1.815-6.74-.13-.454-1.49.194-15.295 20.999-23.267 31.433-18.406 19.702-4.407 1.75-7.648-3.954.713-7.064 4.277-6.286 25.47-32.405 15.36-20.092 9.917-11.6-.065-1.686h-.583L44.07 198.125l-12.055 1.555-5.185-4.86.648-7.972 2.463-2.593 20.35-13.999-.064.065Z\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,GAAI;CACJ,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;WAEX,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;CACH;AACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeepSeek.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/DeepSeek.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const DeepSeekLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"DeepSeek logo\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z\"></path>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,UAAS;CACT,QAAO;CACP,SAAQ;CACR,OAAM;CACN,OAAM;CACN,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,q8DAA28D;CAC/8D"}
1
+ {"version":3,"file":"DeepSeek.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/DeepSeek.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const DeepSeekLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"DeepSeek logo\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z\"></path>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,UAAS;CACT,QAAO;CACP,SAAQ;CACR,OAAM;CACN,OAAM;CACN,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,o8DAA08D;AAC/8D"}
@@ -1 +1 @@
1
- {"version":3,"file":"Express.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Express.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ExpressLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1333.33 773.55\"\n shapeRendering=\"geometricPrecision\"\n textRendering=\"geometricPrecision\"\n imageRendering=\"optimizeQuality\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n role=\"img\"\n aria-label=\"Express logo\"\n fill=\"currentColor\"\n {...props}\n >\n <path\n d=\"M1333.33 753.49c-48.5 12.33-78.5.54-105.41-39.87L1036.5 448.79l-27.67-36.67L785.29 714.5c-25.54 36.38-52.33 52.2-100 39.33l286.25-384.25-266.5-347.09c45.83-8.91 77.5-4.38 105.62 36.67l198.54 268.13 200-266.67c25.62-36.38 53.17-50.2 99.17-36.8l-103.33 137-140 182.29c-16.67 20.83-14.38 35.09.96 55.2l267.33 355.18zM.34 363.16l23.41-115.17c63.75-227.92 325-322.63 505.17-181.8 105.29 82.83 131.46 200 126.25 331.25H61.67C52.76 633.69 222.8 776.27 439.58 703.53c76.04-25.54 120.83-85.09 143.25-159.58 11.38-37.33 30.2-43.17 65.29-32.5-17.91 93.17-58.33 171-143.75 219.71-127.62 72.91-309.8 49.33-405.62-52C41.66 620.36 18.08 545.87 7.5 466.2c-1.67-13.17-5-25.71-7.5-38.33.22-21.56.34-43.11.34-64.67v-.04zm62.41-15.83h536.33c-3.5-170.83-109.87-292.17-255.25-293.2-159.58-1.25-274.17 117.2-281.09 293.2h.01z\"\n fillRule=\"nonzero\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,OAAM;CACN,SAAQ;CACR,gBAAe;CACf,eAAc;CACd,gBAAe;CACf,UAAS;CACT,UAAS;CACT,MAAK;CACL,cAAW;CACX,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,UAAS;EACT;CACE"}
1
+ {"version":3,"file":"Express.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Express.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const ExpressLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1333.33 773.55\"\n shapeRendering=\"geometricPrecision\"\n textRendering=\"geometricPrecision\"\n imageRendering=\"optimizeQuality\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n role=\"img\"\n aria-label=\"Express logo\"\n fill=\"currentColor\"\n {...props}\n >\n <path\n d=\"M1333.33 753.49c-48.5 12.33-78.5.54-105.41-39.87L1036.5 448.79l-27.67-36.67L785.29 714.5c-25.54 36.38-52.33 52.2-100 39.33l286.25-384.25-266.5-347.09c45.83-8.91 77.5-4.38 105.62 36.67l198.54 268.13 200-266.67c25.62-36.38 53.17-50.2 99.17-36.8l-103.33 137-140 182.29c-16.67 20.83-14.38 35.09.96 55.2l267.33 355.18zM.34 363.16l23.41-115.17c63.75-227.92 325-322.63 505.17-181.8 105.29 82.83 131.46 200 126.25 331.25H61.67C52.76 633.69 222.8 776.27 439.58 703.53c76.04-25.54 120.83-85.09 143.25-159.58 11.38-37.33 30.2-43.17 65.29-32.5-17.91 93.17-58.33 171-143.75 219.71-127.62 72.91-309.8 49.33-405.62-52C41.66 620.36 18.08 545.87 7.5 466.2c-1.67-13.17-5-25.71-7.5-38.33.22-21.56.34-43.11.34-64.67v-.04zm62.41-15.83h536.33c-3.5-170.83-109.87-292.17-255.25-293.2-159.58-1.25-274.17 117.2-281.09 293.2h.01z\"\n fillRule=\"nonzero\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,OAAM;CACN,SAAQ;CACR,gBAAe;CACf,eAAc;CACd,gBAAe;CACf,UAAS;CACT,UAAS;CACT,MAAK;CACL,cAAW;CACX,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,UAAS;CACV;AACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Fastify.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Fastify.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const FastifyLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 256 167.509\"\n role=\"img\"\n aria-label=\"Fastify logo\"\n >\n <path\n fill=\"currentColor\"\n d=\"M247.942 23.314 256 2.444l-.35-1.293-79.717 21.003C184.433 9.86 181.513 0 181.513 0s-25.457 16.257-44.709 15.832c-19.251-.426-25.457-5.564-54.977 3.853-29.52 9.41-37.86 38.295-46.419 44.5S0 90.603 0 90.603l.058.359 24.207-7.707S17.625 89.51 3.52 108.52l-.659-.609.025.134s11.336 17.324 22.463 14.121c1.118-.325 2.377-.859 3.753-1.56 4.48 2.495 10.327 4.947 16.783 5.622 0 0-4.37-5.08-8.016-10.86.984-.634 1.994-1.293 3.02-1.96l-.476.334 9.217 3.386-1.017-8.666c.033-.017.058-.042.091-.059l9.059 3.328-1.126-7.882a76.868 76.868 0 0 1 3.436-1.693l9.443-35.717 39.045-26.634-3.103 7.808c-7.916 19.468-22.78 24.064-22.78 24.064l-6.206 2.352c-4.612 5.455-6.556 6.798-8.14 25.107 3.72-.934 7.273-1.16 10.492-.292 16.683 4.496 22.463 24.599 17.967 30.162-1.126 1.393-3.803 3.77-7.181 6.565h-6.773l-.092 5.488c-.234.184-.467.359-.693.542h-6.89l-.083 5.355c-.609.468-1.218.918-1.801 1.36-6.473.133-14.673-5.514-14.673-5.514 0 5.139 4.28 13.046 4.28 13.046s.283-.133.758-.367c-.417.309-.65.476-.65.476s17.324 11.552 28.235 7.273c9.7-3.804 34.816-23.606 56.495-32.981l65.603-17.283 8.65-22.413-49.997 13.17V83.597l58.664-15.457 8.65-22.413-67.297 17.734V43.324z\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,GAAI;CACJ,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;WAEX,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;EACF;CACE"}
1
+ {"version":3,"file":"Fastify.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Fastify.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const FastifyLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n preserveAspectRatio=\"xMidYMid\"\n viewBox=\"0 0 256 167.509\"\n role=\"img\"\n aria-label=\"Fastify logo\"\n >\n <path\n fill=\"currentColor\"\n d=\"M247.942 23.314 256 2.444l-.35-1.293-79.717 21.003C184.433 9.86 181.513 0 181.513 0s-25.457 16.257-44.709 15.832c-19.251-.426-25.457-5.564-54.977 3.853-29.52 9.41-37.86 38.295-46.419 44.5S0 90.603 0 90.603l.058.359 24.207-7.707S17.625 89.51 3.52 108.52l-.659-.609.025.134s11.336 17.324 22.463 14.121c1.118-.325 2.377-.859 3.753-1.56 4.48 2.495 10.327 4.947 16.783 5.622 0 0-4.37-5.08-8.016-10.86.984-.634 1.994-1.293 3.02-1.96l-.476.334 9.217 3.386-1.017-8.666c.033-.017.058-.042.091-.059l9.059 3.328-1.126-7.882a76.868 76.868 0 0 1 3.436-1.693l9.443-35.717 39.045-26.634-3.103 7.808c-7.916 19.468-22.78 24.064-22.78 24.064l-6.206 2.352c-4.612 5.455-6.556 6.798-8.14 25.107 3.72-.934 7.273-1.16 10.492-.292 16.683 4.496 22.463 24.599 17.967 30.162-1.126 1.393-3.803 3.77-7.181 6.565h-6.773l-.092 5.488c-.234.184-.467.359-.693.542h-6.89l-.083 5.355c-.609.468-1.218.918-1.801 1.36-6.473.133-14.673-5.514-14.673-5.514 0 5.139 4.28 13.046 4.28 13.046s.283-.133.758-.367c-.417.309-.65.476-.65.476s17.324 11.552 28.235 7.273c9.7-3.804 34.816-23.606 56.495-32.981l65.603-17.283 8.65-22.413-49.997 13.17V83.597l58.664-15.457 8.65-22.413-67.297 17.734V43.324z\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,eAA4C,UACvD,oBAAC,OAAD;CACE,GAAI;CACJ,qBAAoB;CACpB,SAAQ;CACR,MAAK;CACL,cAAW;WAEX,oBAAC,QAAD;EACE,MAAK;EACL,GAAE;CACH;AACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Gemini.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Gemini.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GeminiLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Gemini logo\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <path\n d=\"M16 8.016A8.522 8.522 0 008.016 16h-.032A8.521 8.521 0 000 8.016v-.032A8.521 8.521 0 007.984 0h.032A8.522 8.522 0 0016 7.984v.032z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,OAAM;CACN,SAAQ;CACR,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;EACL;CACE"}
1
+ {"version":3,"file":"Gemini.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Gemini.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GeminiLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Gemini logo\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <path\n d=\"M16 8.016A8.522 8.522 0 008.016 16h-.032A8.521 8.521 0 000 8.016v-.032A8.521 8.521 0 007.984 0h.032A8.522 8.522 0 0016 7.984v.032z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,OAAM;CACN,SAAQ;CACR,GAAI;WAEJ,oBAAC,QAAD;EACE,GAAE;EACF,MAAK;CACN;AACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitHub.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GitHub.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GitHubLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"GitHub logo\"\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M127.975 10C61.1744 10 7 64.167 7 130.99C7 184.444 41.663 229.787 89.7396 245.786C95.7928 246.9 97.9987 243.164 97.9987 239.955C97.9987 237.088 97.8947 229.475 97.8353 219.382C64.1824 226.69 57.082 203.161 57.082 203.161C51.5784 189.182 43.6461 185.461 43.6461 185.461C32.6612 177.96 44.4779 178.108 44.4779 178.108C56.6215 178.963 63.0089 190.579 63.0089 190.579C73.8007 209.065 91.329 203.725 98.2215 200.628C99.3208 192.814 102.448 187.482 105.901 184.459C79.0369 181.406 50.7911 171.023 50.7911 124.662C50.7911 111.456 55.5074 100.65 63.2466 92.1974C61.9988 89.1374 57.847 76.8304 64.435 60.1785C64.435 60.1785 74.588 56.9254 97.7016 72.582C107.35 69.8934 117.703 68.5565 127.99 68.5045C138.269 68.5565 148.615 69.8934 158.278 72.582C181.377 56.9254 191.515 60.1785 191.515 60.1785C198.118 76.8304 193.966 89.1374 192.726 92.1974C200.48 100.65 205.159 111.456 205.159 124.662C205.159 171.142 176.869 181.369 149.923 184.362C154.26 188.098 158.13 195.481 158.13 206.77C158.13 222.939 157.981 235.989 157.981 239.955C157.981 243.193 160.165 246.959 166.3 245.778C214.339 229.743 248.973 184.429 248.973 130.99C248.973 64.167 194.798 10 127.975 10Z\"></path>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,OAAM;CACN,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,ioCAAuoC;CAC3oC"}
1
+ {"version":3,"file":"GitHub.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GitHub.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GitHubLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"GitHub logo\"\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M127.975 10C61.1744 10 7 64.167 7 130.99C7 184.444 41.663 229.787 89.7396 245.786C95.7928 246.9 97.9987 243.164 97.9987 239.955C97.9987 237.088 97.8947 229.475 97.8353 219.382C64.1824 226.69 57.082 203.161 57.082 203.161C51.5784 189.182 43.6461 185.461 43.6461 185.461C32.6612 177.96 44.4779 178.108 44.4779 178.108C56.6215 178.963 63.0089 190.579 63.0089 190.579C73.8007 209.065 91.329 203.725 98.2215 200.628C99.3208 192.814 102.448 187.482 105.901 184.459C79.0369 181.406 50.7911 171.023 50.7911 124.662C50.7911 111.456 55.5074 100.65 63.2466 92.1974C61.9988 89.1374 57.847 76.8304 64.435 60.1785C64.435 60.1785 74.588 56.9254 97.7016 72.582C107.35 69.8934 117.703 68.5565 127.99 68.5045C138.269 68.5565 148.615 69.8934 158.278 72.582C181.377 56.9254 191.515 60.1785 191.515 60.1785C198.118 76.8304 193.966 89.1374 192.726 92.1974C200.48 100.65 205.159 111.456 205.159 124.662C205.159 171.142 176.869 181.369 149.923 184.362C154.26 188.098 158.13 195.481 158.13 206.77C158.13 222.939 157.981 235.989 157.981 239.955C157.981 243.193 160.165 246.959 166.3 245.778C214.339 229.743 248.973 184.429 248.973 130.99C248.973 64.167 194.798 10 127.975 10Z\"></path>\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,OAAM;CACN,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,goCAAsoC;AAC3oC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitLab.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GitLab.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GitLabLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"GitLab logo\"\n width=\"2500\"\n height=\"2305\"\n viewBox=\"0 0 256 236\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMinYMin meet\"\n {...props}\n >\n <path\n d=\"M128.075 236.075l47.104-144.97H80.97l47.104 144.97z\"\n fill=\"#E24329\"\n />\n <path\n d=\"M128.075 236.074L80.97 91.104H14.956l113.119 144.97z\"\n fill=\"#FC6D26\"\n />\n <path\n d=\"M14.956 91.104L.642 135.16a9.752 9.752 0 0 0 3.542 10.903l123.891 90.012-113.12-144.97z\"\n fill=\"#FCA326\"\n />\n <path\n d=\"M14.956 91.105H80.97L52.601 3.79c-1.46-4.493-7.816-4.492-9.275 0l-28.37 87.315z\"\n fill=\"#E24329\"\n />\n <path\n d=\"M128.075 236.074l47.104-144.97h66.015l-113.12 144.97z\"\n fill=\"#FC6D26\"\n />\n <path\n d=\"M241.194 91.104l14.314 44.056a9.752 9.752 0 0 1-3.543 10.903l-123.89 90.012 113.119-144.97z\"\n fill=\"#FCA326\"\n />\n <path\n d=\"M241.194 91.105h-66.015l28.37-87.315c1.46-4.493 7.816-4.492 9.275 0l28.37 87.315z\"\n fill=\"#E24329\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,OAAM;CACN,QAAO;CACP,SAAQ;CACR,OAAM;CACN,qBAAoB;CACpB,GAAI;WARN;EAUE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACF,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL;EACE"}
1
+ {"version":3,"file":"GitLab.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GitLab.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GitLabLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"GitLab logo\"\n width=\"2500\"\n height=\"2305\"\n viewBox=\"0 0 256 236\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMinYMin meet\"\n {...props}\n >\n <path\n d=\"M128.075 236.075l47.104-144.97H80.97l47.104 144.97z\"\n fill=\"#E24329\"\n />\n <path\n d=\"M128.075 236.074L80.97 91.104H14.956l113.119 144.97z\"\n fill=\"#FC6D26\"\n />\n <path\n d=\"M14.956 91.104L.642 135.16a9.752 9.752 0 0 0 3.542 10.903l123.891 90.012-113.12-144.97z\"\n fill=\"#FCA326\"\n />\n <path\n d=\"M14.956 91.105H80.97L52.601 3.79c-1.46-4.493-7.816-4.492-9.275 0l-28.37 87.315z\"\n fill=\"#E24329\"\n />\n <path\n d=\"M128.075 236.074l47.104-144.97h66.015l-113.12 144.97z\"\n fill=\"#FC6D26\"\n />\n <path\n d=\"M241.194 91.104l14.314 44.056a9.752 9.752 0 0 1-3.543 10.903l-123.89 90.012 113.119-144.97z\"\n fill=\"#FCA326\"\n />\n <path\n d=\"M241.194 91.105h-66.015l28.37-87.315c1.46-4.493 7.816-4.492 9.275 0l28.37 87.315z\"\n fill=\"#E24329\"\n />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,OAAM;CACN,QAAO;CACP,SAAQ;CACR,OAAM;CACN,qBAAoB;CACpB,GAAI;WARN;EAUE,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;EACD,oBAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN;CACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Google.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Google.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GoogleLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Google logo\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 210 210\"\n xmlSpace=\"preserve\"\n {...props}\n >\n <path d=\"M0,105C0,47.103,47.103,0,105,0c23.383,0,45.515,7.523,64.004,21.756l-24.4,31.696C133.172,44.652,119.477,40,105,40 c-35.841,0-65,29.159-65,65s29.159,65,65,65c28.867,0,53.398-18.913,61.852-45H105V85h105v20c0,57.897-47.103,105-105,105 S0,162.897,0,105z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,OAAM;CACN,SAAQ;CACR,UAAS;CACT,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,4PAA6P;CACjQ"}
1
+ {"version":3,"file":"Google.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/Google.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GoogleLogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Google logo\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 210 210\"\n xmlSpace=\"preserve\"\n {...props}\n >\n <path d=\"M0,105C0,47.103,47.103,0,105,0c23.383,0,45.515,7.523,64.004,21.756l-24.4,31.696C133.172,44.652,119.477,40,105,40 c-35.841,0-65,29.159-65,65s29.159,65,65,65c28.867,0,53.398-18.913,61.852-45H105V85h105v20c0,57.897-47.103,105-105,105 S0,162.897,0,105z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,cAA2C,UACtD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,MAAK;CACL,OAAM;CACN,SAAQ;CACR,UAAS;CACT,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,2PAA4P;AACjQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleAI.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GoogleAI.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GoogleAILogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Google AI logo\"\n viewBox=\"0 0 1024 1024\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M915.2 448l-4.2-17.8H524V594h231.2c-24 114-135.4 174-226.4 174-66.2 0-136-27.8-182.2-72.6-47.4-46-77.6-113.8-77.6-183.6 0-69 31-138 76.2-183.4 45-45.2 113.2-70.8 181-70.8 77.6 0 133.2 41.2 154 60l116.4-115.8c-34.2-30-128-105.6-274.2-105.6-112.8 0-221 43.2-300 122C144.4 295.8 104 408 104 512s38.2 210.8 113.8 289c80.8 83.4 195.2 127 313 127 107.2 0 208.8-42 281.2-118.2 71.2-75 108-178.8 108-287.6 0-45.8-4.6-73-4.8-74.2z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,OAAM;CACN,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,yaAA0a;CAC9a"}
1
+ {"version":3,"file":"GoogleAI.mjs","names":[],"sources":["../../../../../src/components/TechLogo/logos/GoogleAI.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nexport const GoogleAILogo: FC<SVGProps<SVGSVGElement>> = (props) => (\n <svg\n role=\"img\"\n aria-label=\"Google AI logo\"\n viewBox=\"0 0 1024 1024\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M915.2 448l-4.2-17.8H524V594h231.2c-24 114-135.4 174-226.4 174-66.2 0-136-27.8-182.2-72.6-47.4-46-77.6-113.8-77.6-183.6 0-69 31-138 76.2-183.4 45-45.2 113.2-70.8 181-70.8 77.6 0 133.2 41.2 154 60l116.4-115.8c-34.2-30-128-105.6-274.2-105.6-112.8 0-221 43.2-300 122C144.4 295.8 104 408 104 512s38.2 210.8 113.8 289c80.8 83.4 195.2 127 313 127 107.2 0 208.8-42 281.2-118.2 71.2-75 108-178.8 108-287.6 0-45.8-4.6-73-4.8-74.2z\" />\n </svg>\n);\n"],"mappings":";;;AAEA,MAAa,gBAA6C,UACxD,oBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,SAAQ;CACR,OAAM;CACN,MAAK;CACL,GAAI;WAEJ,oBAAC,QAAD,EAAM,GAAE,waAAya;AAC9a"}