@julseb-lib/react 0.1.18 → 0.1.20

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 (649) hide show
  1. package/dist/chunk-AOKNHBEF.js +1 -0
  2. package/dist/chunk-AOKNHBEF.js.map +1 -0
  3. package/dist/chunk-F55MXC3Z.js +1 -0
  4. package/dist/chunk-F55MXC3Z.js.map +1 -0
  5. package/dist/chunk-IH6ET7Q6.js +1 -0
  6. package/dist/chunk-IH6ET7Q6.js.map +1 -0
  7. package/dist/chunk-OOIPIHXS.js +1 -0
  8. package/dist/chunk-OOIPIHXS.js.map +1 -0
  9. package/dist/chunk-ZL3Z7QC7.js +1 -0
  10. package/dist/chunk-ZL3Z7QC7.js.map +1 -0
  11. package/dist/global-Bck2LNL3.d.cts +1472 -0
  12. package/dist/global-Bck2LNL3.d.ts +1472 -0
  13. package/dist/index.cjs +11892 -0
  14. package/dist/index.cjs.map +1 -0
  15. package/dist/index.d.cts +3231 -0
  16. package/dist/index.d.ts +3231 -1
  17. package/dist/index.js +11732 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/types/components-items-props.cjs +19 -0
  20. package/dist/types/components-items-props.cjs.map +1 -0
  21. package/dist/types/components-items-props.d.cts +175 -0
  22. package/dist/{lib/types/components-items-props.ts → types/components-items-props.d.ts} +56 -65
  23. package/dist/types/components-items-props.js +2 -0
  24. package/dist/types/components-items-props.js.map +1 -0
  25. package/dist/types/components-props.cjs +19 -0
  26. package/dist/types/components-props.cjs.map +1 -0
  27. package/dist/types/components-props.d.cts +1119 -0
  28. package/dist/types/components-props.d.ts +1119 -0
  29. package/dist/types/components-props.js +2 -0
  30. package/dist/types/components-props.js.map +1 -0
  31. package/dist/types/global.cjs +19 -0
  32. package/dist/types/global.cjs.map +1 -0
  33. package/dist/types/global.d.cts +3 -0
  34. package/dist/types/global.d.ts +3 -0
  35. package/dist/types/global.js +2 -0
  36. package/dist/types/global.js.map +1 -0
  37. package/dist/types/index.cjs +19 -0
  38. package/dist/types/index.cjs.map +1 -0
  39. package/dist/types/index.d.cts +10 -0
  40. package/dist/types/index.d.ts +10 -0
  41. package/dist/types/index.js +6 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/dist/types/require-at-least-one.cjs +19 -0
  44. package/dist/types/require-at-least-one.cjs.map +1 -0
  45. package/dist/types/require-at-least-one.d.cts +5 -0
  46. package/dist/types/require-at-least-one.d.ts +5 -0
  47. package/dist/types/require-at-least-one.js +2 -0
  48. package/dist/types/require-at-least-one.js.map +1 -0
  49. package/dist/types/tailwind.cjs +19 -0
  50. package/dist/types/tailwind.cjs.map +1 -0
  51. package/dist/types/tailwind.d.cts +3259 -0
  52. package/dist/types/tailwind.d.ts +3259 -0
  53. package/dist/types/tailwind.js +2 -0
  54. package/dist/types/tailwind.js.map +1 -0
  55. package/package.json +31 -47
  56. package/LICENSE +0 -21
  57. package/README.md +0 -206
  58. package/dist/julseb-lib-react.cjs.js +0 -17
  59. package/dist/julseb-lib-react.es.js +0 -8977
  60. package/dist/lib/Variables.ts +0 -202
  61. package/dist/lib/components/Accordion/Accordion.tsx +0 -73
  62. package/dist/lib/components/Accordion/AccordionContent.tsx +0 -55
  63. package/dist/lib/components/Accordion/AccordionItem.tsx +0 -66
  64. package/dist/lib/components/Accordion/AccordionTitle.tsx +0 -80
  65. package/dist/lib/components/Accordion/index.ts +0 -2
  66. package/dist/lib/components/Accordion/subtypes.ts +0 -26
  67. package/dist/lib/components/Accordion/types.ts +0 -37
  68. package/dist/lib/components/Alert/Alert.tsx +0 -57
  69. package/dist/lib/components/Alert/index.ts +0 -1
  70. package/dist/lib/components/Alert/types.ts +0 -8
  71. package/dist/lib/components/Aside/Aside.tsx +0 -58
  72. package/dist/lib/components/Aside/index.ts +0 -1
  73. package/dist/lib/components/Aside/types.ts +0 -6
  74. package/dist/lib/components/Autocomplete/Autocomplete.tsx +0 -222
  75. package/dist/lib/components/Autocomplete/index.ts +0 -1
  76. package/dist/lib/components/Autocomplete/types.ts +0 -35
  77. package/dist/lib/components/Avatar/Avatar.tsx +0 -93
  78. package/dist/lib/components/Avatar/AvatarFn.tsx +0 -44
  79. package/dist/lib/components/Avatar/index.ts +0 -1
  80. package/dist/lib/components/Avatar/types.ts +0 -37
  81. package/dist/lib/components/BackToTop/BackToTop.tsx +0 -96
  82. package/dist/lib/components/BackToTop/index.ts +0 -1
  83. package/dist/lib/components/BackToTop/types.ts +0 -9
  84. package/dist/lib/components/Badge/Badge.tsx +0 -61
  85. package/dist/lib/components/Badge/index.ts +0 -1
  86. package/dist/lib/components/Badge/types.ts +0 -7
  87. package/dist/lib/components/Breadcrumbs/Breadcrumbs.tsx +0 -72
  88. package/dist/lib/components/Breadcrumbs/index.ts +0 -1
  89. package/dist/lib/components/Breadcrumbs/types.ts +0 -5
  90. package/dist/lib/components/Burger/Burger.tsx +0 -110
  91. package/dist/lib/components/Burger/index.ts +0 -1
  92. package/dist/lib/components/Burger/types.ts +0 -11
  93. package/dist/lib/components/Button/Button.tsx +0 -109
  94. package/dist/lib/components/Button/index.ts +0 -1
  95. package/dist/lib/components/Button/types.ts +0 -30
  96. package/dist/lib/components/ButtonGroup/ButtonGroup.tsx +0 -126
  97. package/dist/lib/components/ButtonGroup/index.ts +0 -1
  98. package/dist/lib/components/ButtonGroup/types.ts +0 -28
  99. package/dist/lib/components/ButtonIcon/ButtonFn.tsx +0 -76
  100. package/dist/lib/components/ButtonIcon/ButtonIcon.tsx +0 -134
  101. package/dist/lib/components/ButtonIcon/index.ts +0 -1
  102. package/dist/lib/components/ButtonIcon/types.ts +0 -52
  103. package/dist/lib/components/CodeContainer/CodeContainer.tsx +0 -108
  104. package/dist/lib/components/CodeContainer/index.ts +0 -1
  105. package/dist/lib/components/CodeContainer/types.ts +0 -230
  106. package/dist/lib/components/Cover/Cover.tsx +0 -91
  107. package/dist/lib/components/Cover/index.ts +0 -1
  108. package/dist/lib/components/Cover/types.ts +0 -10
  109. package/dist/lib/components/DragList/DragList.tsx +0 -111
  110. package/dist/lib/components/DragList/DragListItem.tsx +0 -114
  111. package/dist/lib/components/DragList/index.ts +0 -2
  112. package/dist/lib/components/DragList/types.ts +0 -55
  113. package/dist/lib/components/Drawer/Drawer.tsx +0 -145
  114. package/dist/lib/components/Drawer/index.ts +0 -1
  115. package/dist/lib/components/Drawer/types.ts +0 -24
  116. package/dist/lib/components/Dropdown/Dropdown.tsx +0 -89
  117. package/dist/lib/components/Dropdown/DropdownItem.tsx +0 -49
  118. package/dist/lib/components/Dropdown/index.ts +0 -2
  119. package/dist/lib/components/Dropdown/types.ts +0 -35
  120. package/dist/lib/components/Fade/Fade.tsx +0 -62
  121. package/dist/lib/components/Fade/index.ts +0 -1
  122. package/dist/lib/components/Fade/types.ts +0 -3
  123. package/dist/lib/components/Fieldset/Fieldset.tsx +0 -85
  124. package/dist/lib/components/Fieldset/index.ts +0 -1
  125. package/dist/lib/components/Fieldset/types.ts +0 -15
  126. package/dist/lib/components/Flexbox/Flexbox.tsx +0 -99
  127. package/dist/lib/components/Flexbox/index.ts +0 -1
  128. package/dist/lib/components/Flexbox/types.ts +0 -23
  129. package/dist/lib/components/Footer/Footer.tsx +0 -103
  130. package/dist/lib/components/Footer/index.ts +0 -1
  131. package/dist/lib/components/Footer/types.ts +0 -54
  132. package/dist/lib/components/Form/Form.tsx +0 -83
  133. package/dist/lib/components/Form/index.ts +0 -1
  134. package/dist/lib/components/Form/types.ts +0 -32
  135. package/dist/lib/components/Grid/Grid.tsx +0 -98
  136. package/dist/lib/components/Grid/index.ts +0 -1
  137. package/dist/lib/components/Grid/types.ts +0 -20
  138. package/dist/lib/components/Header/Header.tsx +0 -241
  139. package/dist/lib/components/Header/HeaderSearch.tsx +0 -50
  140. package/dist/lib/components/Header/index.ts +0 -1
  141. package/dist/lib/components/Header/subtypes.ts +0 -28
  142. package/dist/lib/components/Header/types.ts +0 -57
  143. package/dist/lib/components/Highlight/Highlight.tsx +0 -45
  144. package/dist/lib/components/Highlight/index.ts +0 -1
  145. package/dist/lib/components/Highlight/types.ts +0 -9
  146. package/dist/lib/components/Hr/Hr.tsx +0 -48
  147. package/dist/lib/components/Hr/index.ts +0 -1
  148. package/dist/lib/components/Hr/types.ts +0 -8
  149. package/dist/lib/components/Image/Image.tsx +0 -92
  150. package/dist/lib/components/Image/index.ts +0 -1
  151. package/dist/lib/components/Image/types.ts +0 -25
  152. package/dist/lib/components/Input/Input.tsx +0 -130
  153. package/dist/lib/components/Input/classes.ts +0 -1
  154. package/dist/lib/components/Input/index.ts +0 -1
  155. package/dist/lib/components/Input/subtypes.ts +0 -173
  156. package/dist/lib/components/Input/templates/ColorInput.tsx +0 -44
  157. package/dist/lib/components/Input/templates/DateInput.tsx +0 -63
  158. package/dist/lib/components/Input/templates/FileInput.tsx +0 -42
  159. package/dist/lib/components/Input/templates/PasswordInput.tsx +0 -73
  160. package/dist/lib/components/Input/templates/SearchInput.tsx +0 -89
  161. package/dist/lib/components/Input/templates/SelectInput.tsx +0 -79
  162. package/dist/lib/components/Input/templates/TextInput.tsx +0 -58
  163. package/dist/lib/components/Input/templates/TextareaInput.tsx +0 -27
  164. package/dist/lib/components/Input/templates/TimeInput.tsx +0 -67
  165. package/dist/lib/components/Input/types.ts +0 -22
  166. package/dist/lib/components/InputCheck/InputCheck.tsx +0 -161
  167. package/dist/lib/components/InputCheck/index.ts +0 -1
  168. package/dist/lib/components/InputCheck/types.ts +0 -27
  169. package/dist/lib/components/InputComponents/InputButton.tsx +0 -31
  170. package/dist/lib/components/InputComponents/InputIcon.tsx +0 -28
  171. package/dist/lib/components/InputComponents/InputList.tsx +0 -53
  172. package/dist/lib/components/InputComponents/InputListItem.tsx +0 -68
  173. package/dist/lib/components/InputComponents/InputPrefix.tsx +0 -15
  174. package/dist/lib/components/InputComponents/InputSuffix.tsx +0 -15
  175. package/dist/lib/components/InputComponents/InputValidation.tsx +0 -32
  176. package/dist/lib/components/InputComponents/InputWithListWrapper.tsx +0 -29
  177. package/dist/lib/components/InputComponents/InputWrapper.tsx +0 -45
  178. package/dist/lib/components/InputComponents/classes.ts +0 -101
  179. package/dist/lib/components/InputComponents/index.ts +0 -11
  180. package/dist/lib/components/InputComponents/types.ts +0 -63
  181. package/dist/lib/components/InputContainer/InputContainer.tsx +0 -149
  182. package/dist/lib/components/InputContainer/index.ts +0 -1
  183. package/dist/lib/components/InputContainer/types.ts +0 -11
  184. package/dist/lib/components/InputCounter/InputCounter.tsx +0 -141
  185. package/dist/lib/components/InputCounter/index.ts +0 -1
  186. package/dist/lib/components/InputCounter/types.ts +0 -45
  187. package/dist/lib/components/InputImage/EmptyContainer.tsx +0 -17
  188. package/dist/lib/components/InputImage/HoverContainer.tsx +0 -21
  189. package/dist/lib/components/InputImage/InputImage.tsx +0 -104
  190. package/dist/lib/components/InputImage/index.ts +0 -1
  191. package/dist/lib/components/InputImage/subtypes.ts +0 -7
  192. package/dist/lib/components/InputImage/types.ts +0 -24
  193. package/dist/lib/components/InputPhone/InputPhone.tsx +0 -256
  194. package/dist/lib/components/InputPhone/index.ts +0 -1
  195. package/dist/lib/components/InputPhone/types.ts +0 -32
  196. package/dist/lib/components/InputPhone/utils/countries.ts +0 -646
  197. package/dist/lib/components/InputPhone/utils/flags/ac.svg +0 -76
  198. package/dist/lib/components/InputPhone/utils/flags/bq.svg +0 -5
  199. package/dist/lib/components/InputPhone/utils/flags/bv.svg +0 -13
  200. package/dist/lib/components/InputPhone/utils/flags/cefta.svg +0 -13
  201. package/dist/lib/components/InputPhone/utils/flags/cp.svg +0 -7
  202. package/dist/lib/components/InputPhone/utils/flags/cw.svg +0 -14
  203. package/dist/lib/components/InputPhone/utils/flags/dg.svg +0 -129
  204. package/dist/lib/components/InputPhone/utils/flags/ea.svg +0 -544
  205. package/dist/lib/components/InputPhone/utils/flags/eh.svg +0 -16
  206. package/dist/lib/components/InputPhone/utils/flags/es-ct.svg +0 -4
  207. package/dist/lib/components/InputPhone/utils/flags/es-ga.svg +0 -187
  208. package/dist/lib/components/InputPhone/utils/flags/eu.svg +0 -28
  209. package/dist/lib/components/InputPhone/utils/flags/gb-eng.svg +0 -5
  210. package/dist/lib/components/InputPhone/utils/flags/gb-nir.svg +0 -132
  211. package/dist/lib/components/InputPhone/utils/flags/gb-sct.svg +0 -4
  212. package/dist/lib/components/InputPhone/utils/flags/gb-wls.svg +0 -9
  213. package/dist/lib/components/InputPhone/utils/flags/hm.svg +0 -8
  214. package/dist/lib/components/InputPhone/utils/flags/ic.svg +0 -7
  215. package/dist/lib/components/InputPhone/utils/flags/sx.svg +0 -56
  216. package/dist/lib/components/InputPhone/utils/flags/ta.svg +0 -76
  217. package/dist/lib/components/InputPhone/utils/flags/tf.svg +0 -15
  218. package/dist/lib/components/InputPhone/utils/flags/um.svg +0 -15
  219. package/dist/lib/components/InputPhone/utils/flags/un.svg +0 -16
  220. package/dist/lib/components/InputPhone/utils/flags/xk.svg +0 -8
  221. package/dist/lib/components/InputPhone/utils/flags/xx.svg +0 -4
  222. package/dist/lib/components/InputPin/InputPin.tsx +0 -121
  223. package/dist/lib/components/InputPin/index.ts +0 -1
  224. package/dist/lib/components/InputPin/types.ts +0 -22
  225. package/dist/lib/components/InputSlider/InputSlider.tsx +0 -176
  226. package/dist/lib/components/InputSlider/index.ts +0 -1
  227. package/dist/lib/components/InputSlider/types.ts +0 -22
  228. package/dist/lib/components/Key/Key.tsx +0 -84
  229. package/dist/lib/components/Key/index.ts +0 -1
  230. package/dist/lib/components/Key/types.ts +0 -16
  231. package/dist/lib/components/Linkify/Linkify.tsx +0 -67
  232. package/dist/lib/components/Linkify/index.ts +0 -1
  233. package/dist/lib/components/Linkify/types.ts +0 -8
  234. package/dist/lib/components/ListGroup/ListGroup.tsx +0 -96
  235. package/dist/lib/components/ListGroup/ListGroupItem.tsx +0 -86
  236. package/dist/lib/components/ListGroup/ListGroupTitle.tsx +0 -84
  237. package/dist/lib/components/ListGroup/index.ts +0 -3
  238. package/dist/lib/components/ListGroup/types.ts +0 -69
  239. package/dist/lib/components/Loader/Loader.tsx +0 -38
  240. package/dist/lib/components/Loader/index.ts +0 -1
  241. package/dist/lib/components/Loader/templates/LoaderOne.tsx +0 -27
  242. package/dist/lib/components/Loader/templates/LoaderThree.tsx +0 -47
  243. package/dist/lib/components/Loader/templates/LoaderTwo.tsx +0 -61
  244. package/dist/lib/components/Loader/types.ts +0 -13
  245. package/dist/lib/components/Loader/utils/gen-border-bottom.ts +0 -95
  246. package/dist/lib/components/Main/Main.tsx +0 -63
  247. package/dist/lib/components/Main/index.ts +0 -1
  248. package/dist/lib/components/Main/types.ts +0 -12
  249. package/dist/lib/components/MarkdownContainer/MarkdownContainer.tsx +0 -50
  250. package/dist/lib/components/MarkdownContainer/index.ts +0 -1
  251. package/dist/lib/components/MarkdownContainer/types.ts +0 -8
  252. package/dist/lib/components/MarkdownEditor/MarkdownButtons.tsx +0 -42
  253. package/dist/lib/components/MarkdownEditor/MarkdownEditor.tsx +0 -186
  254. package/dist/lib/components/MarkdownEditor/MarkdownEditorTitles.tsx +0 -86
  255. package/dist/lib/components/MarkdownEditor/MarkdownViewButtons.tsx +0 -48
  256. package/dist/lib/components/MarkdownEditor/buttons/icons.tsx +0 -85
  257. package/dist/lib/components/MarkdownEditor/buttons/markdown-buttons.tsx +0 -176
  258. package/dist/lib/components/MarkdownEditor/index.ts +0 -1
  259. package/dist/lib/components/MarkdownEditor/types.ts +0 -42
  260. package/dist/lib/components/Masonry/Masonry.tsx +0 -83
  261. package/dist/lib/components/Masonry/index.ts +0 -1
  262. package/dist/lib/components/Masonry/types.ts +0 -8
  263. package/dist/lib/components/Masonry/utils.tsx +0 -28
  264. package/dist/lib/components/Meta/Meta.tsx +0 -125
  265. package/dist/lib/components/Meta/index.ts +0 -1
  266. package/dist/lib/components/Meta/types.ts +0 -35
  267. package/dist/lib/components/Modal/Modal.tsx +0 -107
  268. package/dist/lib/components/Modal/index.ts +0 -1
  269. package/dist/lib/components/Modal/types.ts +0 -21
  270. package/dist/lib/components/PageLayout/PageLayout.tsx +0 -64
  271. package/dist/lib/components/PageLayout/index.ts +0 -1
  272. package/dist/lib/components/PageLayout/types.ts +0 -29
  273. package/dist/lib/components/PageLoading/PageLoading.tsx +0 -64
  274. package/dist/lib/components/PageLoading/index.ts +0 -1
  275. package/dist/lib/components/PageLoading/types.ts +0 -13
  276. package/dist/lib/components/Pagination/Pagination.tsx +0 -163
  277. package/dist/lib/components/Pagination/PaginationButton.tsx +0 -65
  278. package/dist/lib/components/Pagination/index.ts +0 -2
  279. package/dist/lib/components/Pagination/types.ts +0 -56
  280. package/dist/lib/components/Paginator/Paginator.tsx +0 -136
  281. package/dist/lib/components/Paginator/index.ts +0 -1
  282. package/dist/lib/components/Paginator/types.ts +0 -16
  283. package/dist/lib/components/ProgressBar/ProgressBar.tsx +0 -87
  284. package/dist/lib/components/ProgressBar/index.ts +0 -1
  285. package/dist/lib/components/ProgressBar/types.ts +0 -14
  286. package/dist/lib/components/ProgressCircle/ProgressCircle.tsx +0 -146
  287. package/dist/lib/components/ProgressCircle/index.ts +0 -1
  288. package/dist/lib/components/ProgressCircle/types.ts +0 -31
  289. package/dist/lib/components/Rating/Rating.tsx +0 -116
  290. package/dist/lib/components/Rating/index.ts +0 -1
  291. package/dist/lib/components/Rating/types.ts +0 -25
  292. package/dist/lib/components/Section/Section.tsx +0 -51
  293. package/dist/lib/components/Section/index.ts +0 -1
  294. package/dist/lib/components/Section/types.ts +0 -5
  295. package/dist/lib/components/Select/Select.tsx +0 -191
  296. package/dist/lib/components/Select/index.ts +0 -1
  297. package/dist/lib/components/Select/types.ts +0 -23
  298. package/dist/lib/components/Skeleton/Skeleton.tsx +0 -57
  299. package/dist/lib/components/Skeleton/SkeletonCard.tsx +0 -60
  300. package/dist/lib/components/Skeleton/index.ts +0 -2
  301. package/dist/lib/components/Skeleton/types.ts +0 -27
  302. package/dist/lib/components/Slideshow/Slideshow.tsx +0 -324
  303. package/dist/lib/components/Slideshow/SlideshowButton.tsx +0 -63
  304. package/dist/lib/components/Slideshow/SlideshowPagination.tsx +0 -111
  305. package/dist/lib/components/Slideshow/index.ts +0 -1
  306. package/dist/lib/components/Slideshow/subtypes.ts +0 -62
  307. package/dist/lib/components/Slideshow/types.ts +0 -41
  308. package/dist/lib/components/SrOnly/SrOnly.tsx +0 -33
  309. package/dist/lib/components/SrOnly/index.ts +0 -1
  310. package/dist/lib/components/SrOnly/types.ts +0 -7
  311. package/dist/lib/components/Sticky/Sticky.tsx +0 -58
  312. package/dist/lib/components/Sticky/index.ts +0 -1
  313. package/dist/lib/components/Sticky/types.ts +0 -5
  314. package/dist/lib/components/Table/Table.tsx +0 -141
  315. package/dist/lib/components/Table/index.ts +0 -1
  316. package/dist/lib/components/Table/types.ts +0 -43
  317. package/dist/lib/components/Tabs/Tabs.tsx +0 -88
  318. package/dist/lib/components/Tabs/TabsButton.tsx +0 -73
  319. package/dist/lib/components/Tabs/TabsButtonsContainer.tsx +0 -58
  320. package/dist/lib/components/Tabs/TabsContainer.tsx +0 -49
  321. package/dist/lib/components/Tabs/TabsContent.tsx +0 -52
  322. package/dist/lib/components/Tabs/index.ts +0 -5
  323. package/dist/lib/components/Tabs/types.ts +0 -46
  324. package/dist/lib/components/Tag/Tag.tsx +0 -77
  325. package/dist/lib/components/Tag/index.ts +0 -1
  326. package/dist/lib/components/Tag/types.ts +0 -13
  327. package/dist/lib/components/Text/Text.tsx +0 -88
  328. package/dist/lib/components/Text/index.ts +0 -1
  329. package/dist/lib/components/Text/templates/Blockquote.tsx +0 -41
  330. package/dist/lib/components/Text/templates/Dl.tsx +0 -42
  331. package/dist/lib/components/Text/templates/Em.tsx +0 -40
  332. package/dist/lib/components/Text/templates/H1.tsx +0 -44
  333. package/dist/lib/components/Text/templates/H2.tsx +0 -44
  334. package/dist/lib/components/Text/templates/H3.tsx +0 -44
  335. package/dist/lib/components/Text/templates/H4.tsx +0 -44
  336. package/dist/lib/components/Text/templates/H5.tsx +0 -44
  337. package/dist/lib/components/Text/templates/H6.tsx +0 -41
  338. package/dist/lib/components/Text/templates/Ol.tsx +0 -41
  339. package/dist/lib/components/Text/templates/P.tsx +0 -40
  340. package/dist/lib/components/Text/templates/Small.tsx +0 -40
  341. package/dist/lib/components/Text/templates/Strong.tsx +0 -40
  342. package/dist/lib/components/Text/templates/Ul.tsx +0 -41
  343. package/dist/lib/components/Text/types.ts +0 -36
  344. package/dist/lib/components/Toast/Toast.tsx +0 -113
  345. package/dist/lib/components/Toast/ToastContainer.tsx +0 -43
  346. package/dist/lib/components/Toast/ToastFn.tsx +0 -236
  347. package/dist/lib/components/Toast/index.ts +0 -3
  348. package/dist/lib/components/Toast/types.ts +0 -18
  349. package/dist/lib/components/Toast/utils.ts +0 -9
  350. package/dist/lib/components/Tooltip/Tooltip.tsx +0 -197
  351. package/dist/lib/components/Tooltip/index.ts +0 -1
  352. package/dist/lib/components/Tooltip/types.ts +0 -23
  353. package/dist/lib/components/Wrapper/Wrapper.tsx +0 -75
  354. package/dist/lib/components/Wrapper/index.ts +0 -1
  355. package/dist/lib/components/Wrapper/types.ts +0 -12
  356. package/dist/lib/context/Theme.context.tsx +0 -66
  357. package/dist/lib/context/index.ts +0 -1
  358. package/dist/lib/hooks/index.ts +0 -15
  359. package/dist/lib/hooks/useClickOutside.tsx +0 -50
  360. package/dist/lib/hooks/useCopyToClipboard.tsx +0 -50
  361. package/dist/lib/hooks/useDebounce.tsx +0 -37
  362. package/dist/lib/hooks/useExportData.tsx +0 -78
  363. package/dist/lib/hooks/useFetch.tsx +0 -42
  364. package/dist/lib/hooks/useForm.tsx +0 -51
  365. package/dist/lib/hooks/useIsOverflow.ts +0 -61
  366. package/dist/lib/hooks/useKeyPress.tsx +0 -110
  367. package/dist/lib/hooks/useMaxWidth.tsx +0 -40
  368. package/dist/lib/hooks/useMergeRefs.ts +0 -45
  369. package/dist/lib/hooks/useMinWidth.tsx +0 -40
  370. package/dist/lib/hooks/usePaginatedData.tsx +0 -52
  371. package/dist/lib/hooks/usePagination.tsx +0 -75
  372. package/dist/lib/hooks/useTouchScreen.tsx +0 -34
  373. package/dist/lib/hooks/useTranslation.tsx +0 -58
  374. package/dist/lib/index.css +0 -539
  375. package/dist/lib/index.ts +0 -129
  376. package/dist/lib/lib-utils/get-highlighted-text.tsx +0 -30
  377. package/dist/lib/lib-utils/index.ts +0 -3
  378. package/dist/lib/lib-utils/transfom-search-keys.ts +0 -13
  379. package/dist/lib/lib-utils/use-keyboard-navigation.tsx +0 -79
  380. package/dist/lib/types/components-props.ts +0 -66
  381. package/dist/lib/types/global.ts +0 -853
  382. package/dist/lib/types/index.ts +0 -4
  383. package/dist/lib/types/require-at-least-one.ts +0 -7
  384. package/dist/lib/types/tailwind.ts +0 -9041
  385. package/dist/lib/utils/clsx.tsx +0 -6
  386. package/dist/lib/utils/design-tokens.ts +0 -784
  387. package/dist/lib/utils/gen-align.ts +0 -24
  388. package/dist/lib/utils/gen-bg-color.ts +0 -158
  389. package/dist/lib/utils/gen-border-color.ts +0 -110
  390. package/dist/lib/utils/gen-border-radius.ts +0 -13
  391. package/dist/lib/utils/gen-border.ts +0 -30
  392. package/dist/lib/utils/gen-box-shadow.ts +0 -12
  393. package/dist/lib/utils/gen-button-color.ts +0 -9
  394. package/dist/lib/utils/gen-gap.ts +0 -34
  395. package/dist/lib/utils/gen-justify.ts +0 -25
  396. package/dist/lib/utils/gen-link-color.ts +0 -29
  397. package/dist/lib/utils/gen-max-width.ts +0 -30
  398. package/dist/lib/utils/gen-object-fit.ts +0 -9
  399. package/dist/lib/utils/gen-ring-color.ts +0 -21
  400. package/dist/lib/utils/gen-text-align.ts +0 -10
  401. package/dist/lib/utils/gen-text-color.ts +0 -111
  402. package/dist/lib/utils/gen-vertical-align.ts +0 -12
  403. package/dist/lib/utils/index.ts +0 -19
  404. package/dist/lib/utils/linkify-text.tsx +0 -26
  405. package/dist/lib/utils/options-markdown.ts +0 -60
  406. package/dist/lib/utils/tools.ts +0 -15
  407. package/dist/react.css +0 -1
  408. package/dist/style.css +0 -539
  409. /package/dist/{lib/components/InputPhone/utils/flags/ad.svg → ad-HTL7GHRB.svg} +0 -0
  410. /package/dist/{lib/components/InputPhone/utils/flags/ae.svg → ae-ICAMTCAR.svg} +0 -0
  411. /package/dist/{lib/components/InputPhone/utils/flags/af.svg → af-MHFH5L72.svg} +0 -0
  412. /package/dist/{lib/components/InputPhone/utils/flags/ag.svg → ag-M7PMJTNC.svg} +0 -0
  413. /package/dist/{lib/components/InputPhone/utils/flags/ai.svg → ai-ETDR2GEU.svg} +0 -0
  414. /package/dist/{lib/components/InputPhone/utils/flags/al.svg → al-RBPPZBOR.svg} +0 -0
  415. /package/dist/{lib/components/InputPhone/utils/flags/am.svg → am-P5ZIE6XV.svg} +0 -0
  416. /package/dist/{lib/components/InputPhone/utils/flags/ao.svg → ao-IDQ66LVW.svg} +0 -0
  417. /package/dist/{lib/components/InputPhone/utils/flags/aq.svg → aq-M762DUH3.svg} +0 -0
  418. /package/dist/{lib/components/InputPhone/utils/flags/ar.svg → ar-DHRVFD4E.svg} +0 -0
  419. /package/dist/{lib/components/InputPhone/utils/flags/as.svg → as-ICEYFBWP.svg} +0 -0
  420. /package/dist/{lib/components/InputPhone/utils/flags/at.svg → at-P53PFVFI.svg} +0 -0
  421. /package/dist/{lib/components/InputPhone/utils/flags/au.svg → au-OMD4QESS.svg} +0 -0
  422. /package/dist/{lib/components/InputPhone/utils/flags/aw.svg → aw-P7SRGNOX.svg} +0 -0
  423. /package/dist/{lib/components/InputPhone/utils/flags/ax.svg → ax-V7XPB664.svg} +0 -0
  424. /package/dist/{lib/components/InputPhone/utils/flags/az.svg → az-JZV3NJUP.svg} +0 -0
  425. /package/dist/{lib/components/InputPhone/utils/flags/ba.svg → ba-POV77HGO.svg} +0 -0
  426. /package/dist/{lib/components/InputPhone/utils/flags/bb.svg → bb-WTDUG7VT.svg} +0 -0
  427. /package/dist/{lib/components/InputPhone/utils/flags/bd.svg → bd-HMCXBQD3.svg} +0 -0
  428. /package/dist/{lib/components/InputPhone/utils/flags/be.svg → be-Y7RGT6WN.svg} +0 -0
  429. /package/dist/{lib/components/InputPhone/utils/flags/bf.svg → bf-IFOTMWPV.svg} +0 -0
  430. /package/dist/{lib/components/InputPhone/utils/flags/bg.svg → bg-QKOWF4RG.svg} +0 -0
  431. /package/dist/{lib/components/InputPhone/utils/flags/bh.svg → bh-F7YG7A6Z.svg} +0 -0
  432. /package/dist/{lib/components/InputPhone/utils/flags/bi.svg → bi-HWA2SSM7.svg} +0 -0
  433. /package/dist/{lib/components/InputPhone/utils/flags/bj.svg → bj-SVZPUB6C.svg} +0 -0
  434. /package/dist/{lib/components/InputPhone/utils/flags/bl.svg → bl-QXYAF6ZV.svg} +0 -0
  435. /package/dist/{lib/components/InputPhone/utils/flags/bm.svg → bm-VAEN3IKJ.svg} +0 -0
  436. /package/dist/{lib/components/InputPhone/utils/flags/bn.svg → bn-CK5FI4T5.svg} +0 -0
  437. /package/dist/{lib/components/InputPhone/utils/flags/bo.svg → bo-HY4TLIQH.svg} +0 -0
  438. /package/dist/{lib/components/InputPhone/utils/flags/br.svg → br-E7SKW6QV.svg} +0 -0
  439. /package/dist/{lib/components/InputPhone/utils/flags/bs.svg → bs-5UC4R4TW.svg} +0 -0
  440. /package/dist/{lib/components/InputPhone/utils/flags/bt.svg → bt-ILNGCG6V.svg} +0 -0
  441. /package/dist/{lib/components/InputPhone/utils/flags/bw.svg → bw-GTCF3QZV.svg} +0 -0
  442. /package/dist/{lib/components/InputPhone/utils/flags/by.svg → by-I2PKD7MG.svg} +0 -0
  443. /package/dist/{lib/components/InputPhone/utils/flags/bz.svg → bz-ZSRW2FFJ.svg} +0 -0
  444. /package/dist/{lib/components/InputPhone/utils/flags/ca.svg → ca-WZPQPA7E.svg} +0 -0
  445. /package/dist/{lib/components/InputPhone/utils/flags/cc.svg → cc-F56DXRNZ.svg} +0 -0
  446. /package/dist/{lib/components/InputPhone/utils/flags/cd.svg → cd-WTKKN7EX.svg} +0 -0
  447. /package/dist/{lib/components/InputPhone/utils/flags/cf.svg → cf-TPKKXILK.svg} +0 -0
  448. /package/dist/{lib/components/InputPhone/utils/flags/cg.svg → cg-CKR7RUC4.svg} +0 -0
  449. /package/dist/{lib/components/InputPhone/utils/flags/ch.svg → ch-USJZZOGC.svg} +0 -0
  450. /package/dist/{lib/components/InputPhone/utils/flags/ci.svg → ci-KFEINJVJ.svg} +0 -0
  451. /package/dist/{lib/components/InputPhone/utils/flags/ck.svg → ck-ATMQHHMA.svg} +0 -0
  452. /package/dist/{lib/components/InputPhone/utils/flags/cl.svg → cl-WMTRWE2W.svg} +0 -0
  453. /package/dist/{lib/components/InputPhone/utils/flags/cm.svg → cm-2BN3OVZK.svg} +0 -0
  454. /package/dist/{lib/components/InputPhone/utils/flags/cn.svg → cn-GFQJIK3L.svg} +0 -0
  455. /package/dist/{lib/components/InputPhone/utils/flags/co.svg → co-NN4OA66V.svg} +0 -0
  456. /package/dist/{lib/components/InputPhone/utils/flags/cr.svg → cr-ZQEISEUX.svg} +0 -0
  457. /package/dist/{lib/components/InputPhone/utils/flags/cu.svg → cu-5GWMND5O.svg} +0 -0
  458. /package/dist/{lib/components/InputPhone/utils/flags/cv.svg → cv-LWSGBQVT.svg} +0 -0
  459. /package/dist/{lib/components/InputPhone/utils/flags/cx.svg → cx-XOUJ6BDY.svg} +0 -0
  460. /package/dist/{lib/components/InputPhone/utils/flags/cy.svg → cy-ELWYQW3B.svg} +0 -0
  461. /package/dist/{lib/components/InputPhone/utils/flags/cz.svg → cz-PSDLWGGB.svg} +0 -0
  462. /package/dist/{lib/components/InputPhone/utils/flags/de.svg → de-UZ33VXB7.svg} +0 -0
  463. /package/dist/{lib/components/InputPhone/utils/flags/dj.svg → dj-6OAOTLZI.svg} +0 -0
  464. /package/dist/{lib/components/InputPhone/utils/flags/dk.svg → dk-JMBRHM34.svg} +0 -0
  465. /package/dist/{lib/components/InputPhone/utils/flags/dm.svg → dm-VNRMBZBS.svg} +0 -0
  466. /package/dist/{lib/components/InputPhone/utils/flags/do.svg → do-BKI25VAP.svg} +0 -0
  467. /package/dist/{lib/components/InputPhone/utils/flags/dz.svg → dz-5TGC2F6O.svg} +0 -0
  468. /package/dist/{lib/components/InputPhone/utils/flags/ec.svg → ec-RVY2TDQY.svg} +0 -0
  469. /package/dist/{lib/components/InputPhone/utils/flags/ee.svg → ee-ESNNK5FI.svg} +0 -0
  470. /package/dist/{lib/components/InputPhone/utils/flags/eg.svg → eg-33P6HVEE.svg} +0 -0
  471. /package/dist/{lib/components/InputPhone/utils/flags/er.svg → er-24JCI44Y.svg} +0 -0
  472. /package/dist/{lib/components/InputPhone/utils/flags/es.svg → es-W6LDJAST.svg} +0 -0
  473. /package/dist/{lib/components/InputPhone/utils/flags/et.svg → et-3S4LEFBY.svg} +0 -0
  474. /package/dist/{lib/components/InputPhone/utils/flags/fi.svg → fi-S5EH7BG6.svg} +0 -0
  475. /package/dist/{lib/components/InputPhone/utils/flags/fj.svg → fj-YBL3EYQL.svg} +0 -0
  476. /package/dist/{lib/components/InputPhone/utils/flags/fk.svg → fk-GOTRGUW5.svg} +0 -0
  477. /package/dist/{lib/components/InputPhone/utils/flags/fm.svg → fm-W22Q42MJ.svg} +0 -0
  478. /package/dist/{lib/components/InputPhone/utils/flags/fo.svg → fo-XAEBEWGY.svg} +0 -0
  479. /package/dist/{lib/components/InputPhone/utils/flags/fr.svg → fr-ZVO4L2CN.svg} +0 -0
  480. /package/dist/{lib/components/InputPhone/utils/flags/ga.svg → ga-YVFEOFTR.svg} +0 -0
  481. /package/dist/{lib/components/InputPhone/utils/flags/gb.svg → gb-SC7363TA.svg} +0 -0
  482. /package/dist/{lib/components/InputPhone/utils/flags/gd.svg → gd-DFU7DED6.svg} +0 -0
  483. /package/dist/{lib/components/InputPhone/utils/flags/ge.svg → ge-YE7BR7QF.svg} +0 -0
  484. /package/dist/{lib/components/InputPhone/utils/flags/gf.svg → gf-NI4GFY3X.svg} +0 -0
  485. /package/dist/{lib/components/InputPhone/utils/flags/gg.svg → gg-7VUU64IM.svg} +0 -0
  486. /package/dist/{lib/components/InputPhone/utils/flags/gh.svg → gh-SZBUUZXW.svg} +0 -0
  487. /package/dist/{lib/components/InputPhone/utils/flags/gi.svg → gi-CXD7K7GM.svg} +0 -0
  488. /package/dist/{lib/components/InputPhone/utils/flags/gl.svg → gl-PA2YIJP7.svg} +0 -0
  489. /package/dist/{lib/components/InputPhone/utils/flags/gm.svg → gm-7ZOEQWBQ.svg} +0 -0
  490. /package/dist/{lib/components/InputPhone/utils/flags/gn.svg → gn-MSN2M353.svg} +0 -0
  491. /package/dist/{lib/components/InputPhone/utils/flags/gp.svg → gp-JP5TO4OX.svg} +0 -0
  492. /package/dist/{lib/components/InputPhone/utils/flags/gq.svg → gq-EYN2DF4Z.svg} +0 -0
  493. /package/dist/{lib/components/InputPhone/utils/flags/gr.svg → gr-YRG5TXUI.svg} +0 -0
  494. /package/dist/{lib/components/InputPhone/utils/flags/gs.svg → gs-EDOECKEF.svg} +0 -0
  495. /package/dist/{lib/components/InputPhone/utils/flags/gt.svg → gt-VFMRVU7E.svg} +0 -0
  496. /package/dist/{lib/components/InputPhone/utils/flags/gu.svg → gu-AXDHACWU.svg} +0 -0
  497. /package/dist/{lib/components/InputPhone/utils/flags/gw.svg → gw-F747MFB6.svg} +0 -0
  498. /package/dist/{lib/components/InputPhone/utils/flags/gy.svg → gy-C6UGO63R.svg} +0 -0
  499. /package/dist/{lib/components/InputPhone/utils/flags/hk.svg → hk-PPVUELHH.svg} +0 -0
  500. /package/dist/{lib/components/InputPhone/utils/flags/hn.svg → hn-IXKFBHL3.svg} +0 -0
  501. /package/dist/{lib/components/InputPhone/utils/flags/hr.svg → hr-7ORLAYLN.svg} +0 -0
  502. /package/dist/{lib/components/InputPhone/utils/flags/ht.svg → ht-HCNXZLPJ.svg} +0 -0
  503. /package/dist/{lib/components/InputPhone/utils/flags/hu.svg → hu-C3DDGX7P.svg} +0 -0
  504. /package/dist/{lib/components/InputPhone/utils/flags/id.svg → id-JSWZPKEB.svg} +0 -0
  505. /package/dist/{lib/components/InputPhone/utils/flags/ie.svg → ie-QFERZM3U.svg} +0 -0
  506. /package/dist/{lib/components/InputPhone/utils/flags/il.svg → il-4AZPYABU.svg} +0 -0
  507. /package/dist/{lib/components/InputPhone/utils/flags/im.svg → im-TRGBU2MA.svg} +0 -0
  508. /package/dist/{lib/components/InputPhone/utils/flags/in.svg → in-QNJVAXMN.svg} +0 -0
  509. /package/dist/{lib/components/InputPhone/utils/flags/io.svg → io-ZTEO44HB.svg} +0 -0
  510. /package/dist/{lib/components/InputPhone/utils/flags/iq.svg → iq-7FWRTP5Y.svg} +0 -0
  511. /package/dist/{lib/components/InputPhone/utils/flags/ir.svg → ir-7QU34OGP.svg} +0 -0
  512. /package/dist/{lib/components/InputPhone/utils/flags/is.svg → is-VFU3W27Q.svg} +0 -0
  513. /package/dist/{lib/components/InputPhone/utils/flags/it.svg → it-SGJZRZTG.svg} +0 -0
  514. /package/dist/{lib/components/InputPhone/utils/flags/je.svg → je-ASNHCFDM.svg} +0 -0
  515. /package/dist/{lib/components/InputPhone/utils/flags/jm.svg → jm-WELCOSBK.svg} +0 -0
  516. /package/dist/{lib/components/InputPhone/utils/flags/jo.svg → jo-4N4SRXFU.svg} +0 -0
  517. /package/dist/{lib/components/InputPhone/utils/flags/jp.svg → jp-IJJOLX65.svg} +0 -0
  518. /package/dist/{lib/components/InputPhone/utils/flags/ke.svg → ke-ZX6MQKG6.svg} +0 -0
  519. /package/dist/{lib/components/InputPhone/utils/flags/kg.svg → kg-RCELGYWY.svg} +0 -0
  520. /package/dist/{lib/components/InputPhone/utils/flags/kh.svg → kh-Z4TCRAR5.svg} +0 -0
  521. /package/dist/{lib/components/InputPhone/utils/flags/ki.svg → ki-4XP6EOEF.svg} +0 -0
  522. /package/dist/{lib/components/InputPhone/utils/flags/km.svg → km-UWFN6S3G.svg} +0 -0
  523. /package/dist/{lib/components/InputPhone/utils/flags/kn.svg → kn-QZWT5L2Z.svg} +0 -0
  524. /package/dist/{lib/components/InputPhone/utils/flags/kp.svg → kp-UEJKAESN.svg} +0 -0
  525. /package/dist/{lib/components/InputPhone/utils/flags/kr.svg → kr-37HGZWST.svg} +0 -0
  526. /package/dist/{lib/components/InputPhone/utils/flags/kw.svg → kw-DW7MW6JR.svg} +0 -0
  527. /package/dist/{lib/components/InputPhone/utils/flags/ky.svg → ky-UE77ZKNR.svg} +0 -0
  528. /package/dist/{lib/components/InputPhone/utils/flags/kz.svg → kz-235M425O.svg} +0 -0
  529. /package/dist/{lib/components/InputPhone/utils/flags/la.svg → la-RJEPE22E.svg} +0 -0
  530. /package/dist/{lib/components/InputPhone/utils/flags/lb.svg → lb-EWVZKLTE.svg} +0 -0
  531. /package/dist/{lib/components/InputPhone/utils/flags/lc.svg → lc-SHXL3I23.svg} +0 -0
  532. /package/dist/{lib/components/InputPhone/utils/flags/li.svg → li-FRDARPUJ.svg} +0 -0
  533. /package/dist/{lib/components/InputPhone/utils/flags/lk.svg → lk-24DJYERD.svg} +0 -0
  534. /package/dist/{lib/components/InputPhone/utils/flags/lr.svg → lr-NOV6G2QP.svg} +0 -0
  535. /package/dist/{lib/components/InputPhone/utils/flags/ls.svg → ls-DQYSLKA4.svg} +0 -0
  536. /package/dist/{lib/components/InputPhone/utils/flags/lt.svg → lt-X5H273BZ.svg} +0 -0
  537. /package/dist/{lib/components/InputPhone/utils/flags/lu.svg → lu-Y7CETSZZ.svg} +0 -0
  538. /package/dist/{lib/components/InputPhone/utils/flags/lv.svg → lv-UD2OKAKZ.svg} +0 -0
  539. /package/dist/{lib/components/InputPhone/utils/flags/ly.svg → ly-HXZ3F2PC.svg} +0 -0
  540. /package/dist/{lib/components/InputPhone/utils/flags/ma.svg → ma-VSPIMR33.svg} +0 -0
  541. /package/dist/{lib/components/InputPhone/utils/flags/mc.svg → mc-IV2TK64Y.svg} +0 -0
  542. /package/dist/{lib/components/InputPhone/utils/flags/md.svg → md-Z2KRCTSL.svg} +0 -0
  543. /package/dist/{lib/components/InputPhone/utils/flags/me.svg → me-GJ5HAC7T.svg} +0 -0
  544. /package/dist/{lib/components/InputPhone/utils/flags/mf.svg → mf-PY7OO34H.svg} +0 -0
  545. /package/dist/{lib/components/InputPhone/utils/flags/mg.svg → mg-7XGP7WEH.svg} +0 -0
  546. /package/dist/{lib/components/InputPhone/utils/flags/mh.svg → mh-7N2SSCJ3.svg} +0 -0
  547. /package/dist/{lib/components/InputPhone/utils/flags/mk.svg → mk-4CGYETXE.svg} +0 -0
  548. /package/dist/{lib/components/InputPhone/utils/flags/ml.svg → ml-REJ3NIH6.svg} +0 -0
  549. /package/dist/{lib/components/InputPhone/utils/flags/mm.svg → mm-G72WDHIA.svg} +0 -0
  550. /package/dist/{lib/components/InputPhone/utils/flags/mn.svg → mn-QUEB3DP2.svg} +0 -0
  551. /package/dist/{lib/components/InputPhone/utils/flags/mo.svg → mo-7RMY33IW.svg} +0 -0
  552. /package/dist/{lib/components/InputPhone/utils/flags/mp.svg → mp-QLHHVVHP.svg} +0 -0
  553. /package/dist/{lib/components/InputPhone/utils/flags/mq.svg → mq-S4653T2D.svg} +0 -0
  554. /package/dist/{lib/components/InputPhone/utils/flags/mr.svg → mr-ZBDE3KJQ.svg} +0 -0
  555. /package/dist/{lib/components/InputPhone/utils/flags/ms.svg → ms-HE6BUCKD.svg} +0 -0
  556. /package/dist/{lib/components/InputPhone/utils/flags/mt.svg → mt-DUA34F2Z.svg} +0 -0
  557. /package/dist/{lib/components/InputPhone/utils/flags/mu.svg → mu-ZHDOJ3TI.svg} +0 -0
  558. /package/dist/{lib/components/InputPhone/utils/flags/mv.svg → mv-6NYHRQLF.svg} +0 -0
  559. /package/dist/{lib/components/InputPhone/utils/flags/mw.svg → mw-AXRAJH26.svg} +0 -0
  560. /package/dist/{lib/components/InputPhone/utils/flags/mx.svg → mx-MSPV6RQM.svg} +0 -0
  561. /package/dist/{lib/components/InputPhone/utils/flags/my.svg → my-AIY7QQBP.svg} +0 -0
  562. /package/dist/{lib/components/InputPhone/utils/flags/mz.svg → mz-3322L3KQ.svg} +0 -0
  563. /package/dist/{lib/components/InputPhone/utils/flags/na.svg → na-EASCPZHA.svg} +0 -0
  564. /package/dist/{lib/components/InputPhone/utils/flags/nc.svg → nc-JJHA6YCG.svg} +0 -0
  565. /package/dist/{lib/components/InputPhone/utils/flags/ne.svg → ne-NIQVZJOH.svg} +0 -0
  566. /package/dist/{lib/components/InputPhone/utils/flags/nf.svg → nf-6GXJMQE5.svg} +0 -0
  567. /package/dist/{lib/components/InputPhone/utils/flags/ng.svg → ng-5QXHJYS4.svg} +0 -0
  568. /package/dist/{lib/components/InputPhone/utils/flags/ni.svg → ni-HNZBL5LK.svg} +0 -0
  569. /package/dist/{lib/components/InputPhone/utils/flags/nl.svg → nl-QVISKFUO.svg} +0 -0
  570. /package/dist/{lib/components/InputPhone/utils/flags/no.svg → no-JTVUCTCT.svg} +0 -0
  571. /package/dist/{lib/components/InputPhone/utils/flags/np.svg → np-UCBDZ5AR.svg} +0 -0
  572. /package/dist/{lib/components/InputPhone/utils/flags/nr.svg → nr-LG6XA46Y.svg} +0 -0
  573. /package/dist/{lib/components/InputPhone/utils/flags/nu.svg → nu-4OUEUAXX.svg} +0 -0
  574. /package/dist/{lib/components/InputPhone/utils/flags/nz.svg → nz-T2NE6YVO.svg} +0 -0
  575. /package/dist/{lib/components/InputPhone/utils/flags/om.svg → om-6JFK3PR4.svg} +0 -0
  576. /package/dist/{lib/components/InputPhone/utils/flags/pa.svg → pa-AT6O5EL5.svg} +0 -0
  577. /package/dist/{lib/components/InputPhone/utils/flags/pe.svg → pe-WVRRE6RF.svg} +0 -0
  578. /package/dist/{lib/components/InputPhone/utils/flags/pf.svg → pf-DLKFAUUG.svg} +0 -0
  579. /package/dist/{lib/components/InputPhone/utils/flags/pg.svg → pg-R7GWNRSB.svg} +0 -0
  580. /package/dist/{lib/components/InputPhone/utils/flags/ph.svg → ph-QSRFK225.svg} +0 -0
  581. /package/dist/{lib/components/InputPhone/utils/flags/pk.svg → pk-FR3SZ2RO.svg} +0 -0
  582. /package/dist/{lib/components/InputPhone/utils/flags/pl.svg → pl-JSSZW3KY.svg} +0 -0
  583. /package/dist/{lib/components/InputPhone/utils/flags/pm.svg → pm-HA37R6HR.svg} +0 -0
  584. /package/dist/{lib/components/InputPhone/utils/flags/pn.svg → pn-4N36OSZ7.svg} +0 -0
  585. /package/dist/{lib/components/InputPhone/utils/flags/pr.svg → pr-NNQH4LK7.svg} +0 -0
  586. /package/dist/{lib/components/InputPhone/utils/flags/ps.svg → ps-OYLD266F.svg} +0 -0
  587. /package/dist/{lib/components/InputPhone/utils/flags/pt.svg → pt-EJEEXNOR.svg} +0 -0
  588. /package/dist/{lib/components/InputPhone/utils/flags/pw.svg → pw-AJH6MUWT.svg} +0 -0
  589. /package/dist/{lib/components/InputPhone/utils/flags/py.svg → py-BBGVETQS.svg} +0 -0
  590. /package/dist/{lib/components/InputPhone/utils/flags/qa.svg → qa-O6NUQ5WE.svg} +0 -0
  591. /package/dist/{lib/components/InputPhone/utils/flags/re.svg → re-UHLBILVM.svg} +0 -0
  592. /package/dist/{lib/components/InputPhone/utils/flags/ro.svg → ro-YBPUPSYC.svg} +0 -0
  593. /package/dist/{lib/components/InputPhone/utils/flags/rs.svg → rs-RTTQJKCP.svg} +0 -0
  594. /package/dist/{lib/components/InputPhone/utils/flags/ru.svg → ru-NVSR5C27.svg} +0 -0
  595. /package/dist/{lib/components/InputPhone/utils/flags/rw.svg → rw-L6HQTLZM.svg} +0 -0
  596. /package/dist/{lib/components/InputPhone/utils/flags/sa.svg → sa-5NCCG3JM.svg} +0 -0
  597. /package/dist/{lib/components/InputPhone/utils/flags/sb.svg → sb-ESFASP4O.svg} +0 -0
  598. /package/dist/{lib/components/InputPhone/utils/flags/sc.svg → sc-V2MOTRIU.svg} +0 -0
  599. /package/dist/{lib/components/InputPhone/utils/flags/sd.svg → sd-ALVTXIOB.svg} +0 -0
  600. /package/dist/{lib/components/InputPhone/utils/flags/se.svg → se-3UJAVTP2.svg} +0 -0
  601. /package/dist/{lib/components/InputPhone/utils/flags/sg.svg → sg-PNK4IWVH.svg} +0 -0
  602. /package/dist/{lib/components/InputPhone/utils/flags/sh.svg → sh-LSKBPKHJ.svg} +0 -0
  603. /package/dist/{lib/components/InputPhone/utils/flags/si.svg → si-DU3RWKLO.svg} +0 -0
  604. /package/dist/{lib/components/InputPhone/utils/flags/sj.svg → sj-EOPZSLCL.svg} +0 -0
  605. /package/dist/{lib/components/InputPhone/utils/flags/sk.svg → sk-Z5T3FAV3.svg} +0 -0
  606. /package/dist/{lib/components/InputPhone/utils/flags/sl.svg → sl-DE7XOWOL.svg} +0 -0
  607. /package/dist/{lib/components/InputPhone/utils/flags/sm.svg → sm-OSI7YZKX.svg} +0 -0
  608. /package/dist/{lib/components/InputPhone/utils/flags/sn.svg → sn-KYWABXNT.svg} +0 -0
  609. /package/dist/{lib/components/InputPhone/utils/flags/so.svg → so-TUA5RNVD.svg} +0 -0
  610. /package/dist/{lib/components/InputPhone/utils/flags/sr.svg → sr-HMODPFV5.svg} +0 -0
  611. /package/dist/{lib/components/InputPhone/utils/flags/ss.svg → ss-R7O73JRT.svg} +0 -0
  612. /package/dist/{lib/components/InputPhone/utils/flags/st.svg → st-NPWJIGHE.svg} +0 -0
  613. /package/dist/{lib/components/InputPhone/utils/flags/sv.svg → sv-NIXV2SRX.svg} +0 -0
  614. /package/dist/{lib/components/InputPhone/utils/flags/sy.svg → sy-HTLBFL4F.svg} +0 -0
  615. /package/dist/{lib/components/InputPhone/utils/flags/sz.svg → sz-FMNXHOEQ.svg} +0 -0
  616. /package/dist/{lib/components/InputPhone/utils/flags/tc.svg → tc-P6VEJX7T.svg} +0 -0
  617. /package/dist/{lib/components/InputPhone/utils/flags/td.svg → td-DN372MP5.svg} +0 -0
  618. /package/dist/{lib/components/InputPhone/utils/flags/tg.svg → tg-5ZT7ZDBZ.svg} +0 -0
  619. /package/dist/{lib/components/InputPhone/utils/flags/th.svg → th-WAHAQKQK.svg} +0 -0
  620. /package/dist/{lib/components/InputPhone/utils/flags/tj.svg → tj-MG5ALKXM.svg} +0 -0
  621. /package/dist/{lib/components/InputPhone/utils/flags/tk.svg → tk-G765JUVP.svg} +0 -0
  622. /package/dist/{lib/components/InputPhone/utils/flags/tl.svg → tl-UF7AWZC6.svg} +0 -0
  623. /package/dist/{lib/components/InputPhone/utils/flags/tm.svg → tm-LGSUDTBO.svg} +0 -0
  624. /package/dist/{lib/components/InputPhone/utils/flags/tn.svg → tn-MJPTN7EW.svg} +0 -0
  625. /package/dist/{lib/components/InputPhone/utils/flags/to.svg → to-4IPHWATD.svg} +0 -0
  626. /package/dist/{lib/components/InputPhone/utils/flags/tr.svg → tr-KC7PK4TT.svg} +0 -0
  627. /package/dist/{lib/components/InputPhone/utils/flags/tt.svg → tt-IVVKXXFH.svg} +0 -0
  628. /package/dist/{lib/components/InputPhone/utils/flags/tv.svg → tv-HASL2ZPX.svg} +0 -0
  629. /package/dist/{lib/components/InputPhone/utils/flags/tw.svg → tw-Z2QVHLNU.svg} +0 -0
  630. /package/dist/{lib/components/InputPhone/utils/flags/tz.svg → tz-FVI6D4BP.svg} +0 -0
  631. /package/dist/{lib/components/InputPhone/utils/flags/ua.svg → ua-6L6MVDVK.svg} +0 -0
  632. /package/dist/{lib/components/InputPhone/utils/flags/ug.svg → ug-F73JMZTS.svg} +0 -0
  633. /package/dist/{lib/components/InputPhone/utils/flags/us.svg → us-VPPAAERF.svg} +0 -0
  634. /package/dist/{lib/components/InputPhone/utils/flags/uy.svg → uy-FJ6XTJUV.svg} +0 -0
  635. /package/dist/{lib/components/InputPhone/utils/flags/uz.svg → uz-FR2J6ZTX.svg} +0 -0
  636. /package/dist/{lib/components/InputPhone/utils/flags/va.svg → va-ZQHHJQ33.svg} +0 -0
  637. /package/dist/{lib/components/InputPhone/utils/flags/vc.svg → vc-F4EKLJYW.svg} +0 -0
  638. /package/dist/{lib/components/InputPhone/utils/flags/ve.svg → ve-TXPQADML.svg} +0 -0
  639. /package/dist/{lib/components/InputPhone/utils/flags/vg.svg → vg-R3B6II5K.svg} +0 -0
  640. /package/dist/{lib/components/InputPhone/utils/flags/vi.svg → vi-7RSQ7357.svg} +0 -0
  641. /package/dist/{lib/components/InputPhone/utils/flags/vn.svg → vn-BMRRXIMR.svg} +0 -0
  642. /package/dist/{lib/components/InputPhone/utils/flags/vu.svg → vu-FZQPUNU3.svg} +0 -0
  643. /package/dist/{lib/components/InputPhone/utils/flags/wf.svg → wf-EYVXQET4.svg} +0 -0
  644. /package/dist/{lib/components/InputPhone/utils/flags/ws.svg → ws-PVUKQ4PE.svg} +0 -0
  645. /package/dist/{lib/components/InputPhone/utils/flags/ye.svg → ye-NQNPF5YD.svg} +0 -0
  646. /package/dist/{lib/components/InputPhone/utils/flags/yt.svg → yt-TGBAMUTW.svg} +0 -0
  647. /package/dist/{lib/components/InputPhone/utils/flags/za.svg → za-HZOQXCXO.svg} +0 -0
  648. /package/dist/{lib/components/InputPhone/utils/flags/zm.svg → zm-NM4WJ5NQ.svg} +0 -0
  649. /package/dist/{lib/components/InputPhone/utils/flags/zw.svg → zw-MIQGG7RP.svg} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/index.ts","#style-inject:#style-inject","../src/lib/index.css","../src/lib/utils/design-tokens.ts","../src/lib/utils/linkify-text.tsx","../src/lib/utils/gen-link-color.ts","../src/lib/utils/gen-text-align.ts","../src/lib/utils/gen-text-color.ts","../src/lib/utils/gen-bg-color.ts","../src/lib/utils/gen-border-color.ts","../src/lib/utils/gen-gap.ts","../src/lib/utils/clsx.tsx","../src/lib/utils/tools.ts","../src/lib/utils/gen-align.ts","../src/lib/utils/gen-justify.ts","../src/lib/utils/gen-max-width.ts","../src/lib/utils/gen-border-radius.ts","../src/lib/utils/gen-object-fit.ts","../src/lib/utils/gen-button-color.ts","../src/lib/utils/gen-box-shadow.ts","../src/lib/utils/gen-vertical-align.ts","../src/lib/components/Text/templates/H1.tsx","../src/lib/components/Text/templates/H2.tsx","../src/lib/components/Text/templates/H3.tsx","../src/lib/components/Text/templates/H4.tsx","../src/lib/components/Text/templates/H5.tsx","../src/lib/components/Text/templates/H6.tsx","../src/lib/components/Text/templates/P.tsx","../src/lib/components/Text/templates/Small.tsx","../src/lib/components/Text/templates/Strong.tsx","../src/lib/components/Text/templates/Em.tsx","../src/lib/components/Text/templates/Blockquote.tsx","../src/lib/components/Text/templates/Ul.tsx","../src/lib/components/Text/templates/Ol.tsx","../src/lib/components/Text/templates/Dl.tsx","../src/lib/components/Text/Text.tsx","../src/lib/components/Table/Table.tsx","../src/lib/utils/options-markdown.ts","../src/lib/utils/gen-ring-color.ts","../src/lib/hooks/useClickOutside.tsx","../src/lib/hooks/useCopyToClipboard.tsx","../src/lib/hooks/useDebounce.tsx","../src/lib/hooks/useExportData.tsx","../src/lib/hooks/useFetch.tsx","../src/lib/hooks/useForm.tsx","../src/lib/hooks/useIsOverflow.ts","../src/lib/hooks/useKeyPress.tsx","../src/lib/hooks/useMaxWidth.tsx","../src/lib/hooks/useMergeRefs.ts","../src/lib/hooks/useMinWidth.tsx","../src/lib/hooks/usePaginatedData.tsx","../src/lib/hooks/usePagination.tsx","../src/lib/hooks/useTouchScreen.tsx","../src/lib/hooks/useTranslation.tsx","../src/lib/Variables.ts","../src/lib/context/Theme.context.tsx","../src/lib/components/Wrapper/Wrapper.tsx","../src/lib/components/Main/Main.tsx","../src/lib/components/Aside/Aside.tsx","../src/lib/components/Section/Section.tsx","../src/lib/components/Grid/Grid.tsx","../src/lib/components/Flexbox/Flexbox.tsx","../src/lib/components/Key/Key.tsx","../src/lib/lib-utils/get-highlighted-text.tsx","../src/lib/lib-utils/transfom-search-keys.ts","../src/lib/lib-utils/use-keyboard-navigation.tsx","../src/lib/components/Highlight/Highlight.tsx","../src/lib/components/Linkify/Linkify.tsx","../src/lib/components/Hr/Hr.tsx","../src/lib/components/Skeleton/Skeleton.tsx","../src/lib/components/Skeleton/SkeletonCard.tsx","../src/lib/components/Tooltip/Tooltip.tsx","../src/lib/components/Image/Image.tsx","../src/lib/components/Masonry/Masonry.tsx","../src/lib/components/Masonry/utils.tsx","../src/lib/components/Badge/Badge.tsx","../src/lib/components/Avatar/AvatarFn.tsx","../src/lib/components/Avatar/Avatar.tsx","../src/lib/components/Loader/utils/gen-border-bottom.ts","../src/lib/components/Loader/templates/LoaderOne.tsx","../src/lib/components/Loader/templates/LoaderTwo.tsx","../src/lib/components/Loader/templates/LoaderThree.tsx","../src/lib/components/Loader/Loader.tsx","../src/lib/components/Burger/Burger.tsx","../src/lib/components/Button/Button.tsx","../src/lib/components/ButtonIcon/ButtonFn.tsx","../src/lib/components/ButtonIcon/ButtonIcon.tsx","../src/lib/components/ButtonGroup/ButtonGroup.tsx","../src/lib/components/Tag/Tag.tsx","../src/lib/components/InputContainer/InputContainer.tsx","../src/lib/components/InputComponents/InputValidation.tsx","../src/lib/components/InputComponents/classes.ts","../src/lib/components/InputComponents/InputButton.tsx","../src/lib/components/InputComponents/InputPrefix.tsx","../src/lib/components/InputComponents/InputSuffix.tsx","../src/lib/components/InputComponents/InputIcon.tsx","../src/lib/components/InputComponents/InputWrapper.tsx","../src/lib/components/InputComponents/InputList.tsx","../src/lib/components/InputComponents/InputWithListWrapper.tsx","../src/lib/components/InputComponents/InputListItem.tsx","../src/lib/components/Input/templates/ColorInput.tsx","../src/lib/components/Input/templates/DateInput.tsx","../src/lib/components/Input/templates/FileInput.tsx","../src/lib/components/Input/templates/PasswordInput.tsx","../src/lib/components/Input/templates/SearchInput.tsx","../src/lib/components/Input/templates/SelectInput.tsx","../src/lib/components/Input/templates/TextareaInput.tsx","../src/lib/components/Input/templates/TextInput.tsx","../src/lib/components/Input/templates/TimeInput.tsx","../src/lib/components/Input/Input.tsx","../src/lib/components/InputImage/InputImage.tsx","../src/lib/components/InputImage/HoverContainer.tsx","../src/lib/components/InputImage/EmptyContainer.tsx","../src/lib/components/InputCheck/InputCheck.tsx","../src/lib/components/InputPhone/InputPhone.tsx","../src/lib/components/InputPhone/utils/countries.ts","../src/lib/components/InputCounter/InputCounter.tsx","../src/lib/components/InputSlider/InputSlider.tsx","../src/lib/components/Select/Select.tsx","../src/lib/components/Autocomplete/Autocomplete.tsx","../src/lib/components/Rating/Rating.tsx","../src/lib/components/InputPin/InputPin.tsx","../src/lib/components/Fieldset/Fieldset.tsx","../src/lib/components/Form/Form.tsx","../src/lib/components/ListGroup/ListGroup.tsx","../src/lib/components/ListGroup/ListGroupTitle.tsx","../src/lib/components/ListGroup/ListGroupItem.tsx","../src/lib/components/Breadcrumbs/Breadcrumbs.tsx","../src/lib/components/Accordion/Accordion.tsx","../src/lib/components/Accordion/AccordionItem.tsx","../src/lib/components/Accordion/AccordionTitle.tsx","../src/lib/components/Accordion/AccordionContent.tsx","../src/lib/components/Dropdown/Dropdown.tsx","../src/lib/components/Dropdown/DropdownItem.tsx","../src/lib/components/Toast/Toast.tsx","../src/lib/components/Toast/utils.ts","../src/lib/components/Toast/ToastContainer.tsx","../src/lib/components/Toast/ToastFn.tsx","../src/lib/components/Alert/Alert.tsx","../src/lib/components/Modal/Modal.tsx","../src/lib/components/DragList/DragList.tsx","../src/lib/components/DragList/DragListItem.tsx","../src/lib/components/Pagination/Pagination.tsx","../src/lib/components/Pagination/PaginationButton.tsx","../src/lib/components/Paginator/Paginator.tsx","../src/lib/components/ProgressBar/ProgressBar.tsx","../src/lib/components/ProgressCircle/ProgressCircle.tsx","../src/lib/components/Tabs/Tabs.tsx","../src/lib/components/Tabs/TabsContainer.tsx","../src/lib/components/Tabs/TabsButtonsContainer.tsx","../src/lib/components/Tabs/TabsButton.tsx","../src/lib/components/Tabs/TabsContent.tsx","../src/lib/components/Slideshow/Slideshow.tsx","../src/lib/components/Slideshow/SlideshowButton.tsx","../src/lib/components/Slideshow/SlideshowPagination.tsx","../src/lib/components/Cover/Cover.tsx","../src/lib/components/PageLoading/PageLoading.tsx","../src/lib/components/Sticky/Sticky.tsx","../src/lib/components/MarkdownEditor/MarkdownEditor.tsx","../src/lib/components/MarkdownEditor/MarkdownEditorTitles.tsx","../src/lib/components/MarkdownEditor/buttons/markdown-buttons.tsx","../src/lib/components/MarkdownEditor/buttons/icons.tsx","../src/lib/components/MarkdownEditor/MarkdownButtons.tsx","../src/lib/components/MarkdownEditor/MarkdownViewButtons.tsx","../src/lib/components/MarkdownContainer/MarkdownContainer.tsx","../src/lib/components/CodeContainer/CodeContainer.tsx","../src/lib/components/Fade/Fade.tsx","../src/lib/components/BackToTop/BackToTop.tsx","../src/lib/components/Drawer/Drawer.tsx","../src/lib/components/Header/Header.tsx","../src/lib/components/Header/HeaderSearch.tsx","../src/lib/components/Footer/Footer.tsx","../src/lib/components/Meta/Meta.tsx","../src/lib/components/PageLayout/PageLayout.tsx","../src/lib/components/SrOnly/SrOnly.tsx"],"sourcesContent":["\"use client\"\nimport \"./index.css\"\nexport * from \"./utils\"\nexport {\n\taddDay,\n\taddMonth,\n\taddYear,\n\tcalculateAverage,\n\tcalculateTotalSum,\n\tcapitalize,\n\tconvertDate,\n\tconvertDateShort,\n\tconvertPrice,\n\tconvertToEmail,\n\tconvertYoutube,\n\tdeleteDuplicates,\n\tdetectLanguage,\n\tdisableScroll,\n\tenableScroll,\n\tfilterObject,\n\tformatDate,\n\tformatHour,\n\tgenerateNumbers,\n\tgetFirstName,\n\tgetInitials,\n\tgetLastName,\n\tgetNextDay,\n\tgetPercentage,\n\tgetRandom,\n\tgetRandomAvatar,\n\tgetRandomDate,\n\tgetRandomNumber,\n\tgetRandomString,\n\tgetRandomTime,\n\tgetTimeNow,\n\tgetToday,\n\tgetTomorrow,\n\tgetYesterday,\n\thexToRgb,\n\temailRegex,\n\tpasswordRegex,\n\trgbToHex,\n\tscrollToTop,\n\tslugify,\n\tsortByFrequency,\n\tstringifyPx,\n\ttoCamelCase,\n\ttoConstantCase,\n\ttoDotCase,\n\ttoKebabCase,\n\ttoPascalCase,\n\ttoPathCase,\n\ttoSentenceCase,\n\ttoSnakeCase,\n\ttoTitleCase,\n\tunslugify,\n\tuuid,\n} from \"@julseb-lib/utils\"\n\nexport * from \"./hooks\"\nexport * from \"./Variables\"\nexport * from \"./context\"\n\nexport * from \"./components/Text\"\nexport * from \"./components/Wrapper\"\nexport * from \"./components/Main\"\nexport * from \"./components/Aside\"\nexport * from \"./components/Section\"\nexport * from \"./components/Grid\"\nexport * from \"./components/Flexbox\"\nexport * from \"./components/Key\"\nexport * from \"./components/Highlight\"\nexport * from \"./components/Linkify\"\nexport * from \"./components/Hr\"\nexport * from \"./components/Skeleton\"\nexport * from \"./components/Tooltip\"\nexport * from \"./components/Image\"\nexport * from \"./components/Masonry\"\nexport * from \"./components/Badge\"\nexport * from \"./components/Avatar\"\nexport * from \"./components/Loader\"\nexport * from \"./components/Burger\"\nexport * from \"./components/Button\"\nexport * from \"./components/ButtonIcon\"\nexport * from \"./components/ButtonGroup\"\nexport * from \"./components/Tag\"\nexport * from \"./components/InputContainer\"\nexport * from \"./components/Input\"\nexport * from \"./components/InputImage\"\nexport * from \"./components/InputCheck\"\nexport * from \"./components/InputPhone\"\nexport * from \"./components/InputCounter\"\nexport * from \"./components/InputSlider\"\nexport * from \"./components/Select\"\nexport * from \"./components/Autocomplete\"\nexport * from \"./components/Rating\"\nexport * from \"./components/InputPin\"\nexport * from \"./components/Fieldset\"\nexport * from \"./components/Form\"\nexport * from \"./components/ListGroup\"\nexport * from \"./components/Breadcrumbs\"\nexport * from \"./components/Accordion\"\nexport * from \"./components/Dropdown\"\nexport * from \"./components/Toast\"\nexport * from \"./components/Alert\"\nexport * from \"./components/Modal\"\nexport * from \"./components/DragList\"\nexport * from \"./components/Pagination\"\nexport * from \"./components/Paginator\"\nexport * from \"./components/ProgressBar\"\nexport * from \"./components/ProgressCircle\"\nexport * from \"./components/Tabs\"\nexport * from \"./components/Slideshow\"\nexport * from \"./components/Cover\"\nexport * from \"./components/Table\"\nexport * from \"./components/PageLoading\"\nexport * from \"./components/Sticky\"\nexport * from \"./components/MarkdownEditor\"\nexport * from \"./components/MarkdownContainer\"\nexport * from \"./components/CodeContainer\"\nexport * from \"./components/Fade\"\nexport * from \"./components/BackToTop\"\nexport * from \"./components/Drawer\"\nexport * from \"./components/Header\"\nexport * from \"./components/Footer\"\nexport * from \"./components/Meta\"\nexport * from \"./components/PageLayout\"\nexport * from \"./components/SrOnly\"\n/* Prepend here - DO NOT REMOVE */\n","\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\"@import \\\"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap\\\";\\n/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\\n@layer properties;\\n@layer theme, base, components, utilities;\\n@layer theme {\\n :root,\\n :host {\\n --font-sans: var(--font-lato);\\n --font-mono: monospace;\\n --color-red-50: oklch(97.1% 0.013 17.38);\\n --color-red-100: oklch(93.6% 0.032 17.717);\\n --color-red-200: oklch(88.5% 0.062 18.334);\\n --color-red-300: oklch(80.8% 0.114 19.571);\\n --color-red-400: oklch(70.4% 0.191 22.216);\\n --color-red-500: oklch(63.7% 0.237 25.331);\\n --color-red-600: oklch(57.7% 0.245 27.325);\\n --color-red-700: oklch(50.5% 0.213 27.518);\\n --color-red-800: oklch(44.4% 0.177 26.899);\\n --color-red-900: oklch(39.6% 0.141 25.723);\\n --color-red-950: oklch(25.8% 0.092 26.042);\\n --color-orange-50: oklch(98% 0.016 73.684);\\n --color-orange-100: oklch(95.4% 0.038 75.164);\\n --color-orange-200: oklch(90.1% 0.076 70.697);\\n --color-orange-300: oklch(83.7% 0.128 66.29);\\n --color-orange-400: oklch(75% 0.183 55.934);\\n --color-orange-500: oklch(70.5% 0.213 47.604);\\n --color-orange-600: oklch(64.6% 0.222 41.116);\\n --color-orange-700: oklch(55.3% 0.195 38.402);\\n --color-orange-800: oklch(47% 0.157 37.304);\\n --color-orange-900: oklch(40.8% 0.123 38.172);\\n --color-orange-950: oklch(26.6% 0.079 36.259);\\n --color-amber-50: oklch(98.7% 0.022 95.277);\\n --color-amber-100: oklch(96.2% 0.059 95.617);\\n --color-amber-200: oklch(92.4% 0.12 95.746);\\n --color-amber-300: oklch(87.9% 0.169 91.605);\\n --color-amber-400: oklch(82.8% 0.189 84.429);\\n --color-amber-500: oklch(76.9% 0.188 70.08);\\n --color-amber-600: oklch(66.6% 0.179 58.318);\\n --color-amber-700: oklch(55.5% 0.163 48.998);\\n --color-amber-800: oklch(47.3% 0.137 46.201);\\n --color-amber-900: oklch(41.4% 0.112 45.904);\\n --color-amber-950: oklch(27.9% 0.077 45.635);\\n --color-yellow-50: oklch(98.7% 0.026 102.212);\\n --color-yellow-100: oklch(97.3% 0.071 103.193);\\n --color-yellow-200: oklch(94.5% 0.129 101.54);\\n --color-yellow-300: oklch(90.5% 0.182 98.111);\\n --color-yellow-400: oklch(85.2% 0.199 91.936);\\n --color-yellow-500: oklch(79.5% 0.184 86.047);\\n --color-yellow-600: oklch(68.1% 0.162 75.834);\\n --color-yellow-700: oklch(55.4% 0.135 66.442);\\n --color-yellow-800: oklch(47.6% 0.114 61.907);\\n --color-yellow-900: oklch(42.1% 0.095 57.708);\\n --color-yellow-950: oklch(28.6% 0.066 53.813);\\n --color-lime-50: oklch(98.6% 0.031 120.757);\\n --color-lime-100: oklch(96.7% 0.067 122.328);\\n --color-lime-200: oklch(93.8% 0.127 124.321);\\n --color-lime-300: oklch(89.7% 0.196 126.665);\\n --color-lime-400: oklch(84.1% 0.238 128.85);\\n --color-lime-500: oklch(76.8% 0.233 130.85);\\n --color-lime-600: oklch(64.8% 0.2 131.684);\\n --color-lime-700: oklch(53.2% 0.157 131.589);\\n --color-lime-800: oklch(45.3% 0.124 130.933);\\n --color-lime-900: oklch(40.5% 0.101 131.063);\\n --color-lime-950: oklch(27.4% 0.072 132.109);\\n --color-green-50: oklch(98.2% 0.018 155.826);\\n --color-green-100: oklch(96.2% 0.044 156.743);\\n --color-green-200: oklch(92.5% 0.084 155.995);\\n --color-green-300: oklch(87.1% 0.15 154.449);\\n --color-green-400: oklch(79.2% 0.209 151.711);\\n --color-green-500: oklch(72.3% 0.219 149.579);\\n --color-green-600: oklch(62.7% 0.194 149.214);\\n --color-green-700: oklch(52.7% 0.154 150.069);\\n --color-green-800: oklch(44.8% 0.119 151.328);\\n --color-green-900: oklch(39.3% 0.095 152.535);\\n --color-green-950: oklch(26.6% 0.065 152.934);\\n --color-emerald-50: oklch(97.9% 0.021 166.113);\\n --color-emerald-100: oklch(95% 0.052 163.051);\\n --color-emerald-200: oklch(90.5% 0.093 164.15);\\n --color-emerald-300: oklch(84.5% 0.143 164.978);\\n --color-emerald-400: oklch(76.5% 0.177 163.223);\\n --color-emerald-500: oklch(69.6% 0.17 162.48);\\n --color-emerald-600: oklch(59.6% 0.145 163.225);\\n --color-emerald-700: oklch(50.8% 0.118 165.612);\\n --color-emerald-800: oklch(43.2% 0.095 166.913);\\n --color-emerald-900: oklch(37.8% 0.077 168.94);\\n --color-emerald-950: oklch(26.2% 0.051 172.552);\\n --color-teal-50: oklch(98.4% 0.014 180.72);\\n --color-teal-100: oklch(95.3% 0.051 180.801);\\n --color-teal-200: oklch(91% 0.096 180.426);\\n --color-teal-300: oklch(85.5% 0.138 181.071);\\n --color-teal-400: oklch(77.7% 0.152 181.912);\\n --color-teal-500: oklch(70.4% 0.14 182.503);\\n --color-teal-600: oklch(60% 0.118 184.704);\\n --color-teal-700: oklch(51.1% 0.096 186.391);\\n --color-teal-800: oklch(43.7% 0.078 188.216);\\n --color-teal-900: oklch(38.6% 0.063 188.416);\\n --color-teal-950: oklch(27.7% 0.046 192.524);\\n --color-cyan-50: oklch(98.4% 0.019 200.873);\\n --color-cyan-100: oklch(95.6% 0.045 203.388);\\n --color-cyan-200: oklch(91.7% 0.08 205.041);\\n --color-cyan-300: oklch(86.5% 0.127 207.078);\\n --color-cyan-400: oklch(78.9% 0.154 211.53);\\n --color-cyan-500: oklch(71.5% 0.143 215.221);\\n --color-cyan-600: oklch(60.9% 0.126 221.723);\\n --color-cyan-700: oklch(52% 0.105 223.128);\\n --color-cyan-800: oklch(45% 0.085 224.283);\\n --color-cyan-900: oklch(39.8% 0.07 227.392);\\n --color-cyan-950: oklch(30.2% 0.056 229.695);\\n --color-sky-50: oklch(97.7% 0.013 236.62);\\n --color-sky-100: oklch(95.1% 0.026 236.824);\\n --color-sky-200: oklch(90.1% 0.058 230.902);\\n --color-sky-300: oklch(82.8% 0.111 230.318);\\n --color-sky-400: oklch(74.6% 0.16 232.661);\\n --color-sky-500: oklch(68.5% 0.169 237.323);\\n --color-sky-600: oklch(58.8% 0.158 241.966);\\n --color-sky-700: oklch(50% 0.134 242.749);\\n --color-sky-800: oklch(44.3% 0.11 240.79);\\n --color-sky-900: oklch(39.1% 0.09 240.876);\\n --color-sky-950: oklch(29.3% 0.066 243.157);\\n --color-blue-50: oklch(97% 0.014 254.604);\\n --color-blue-100: oklch(93.2% 0.032 255.585);\\n --color-blue-200: oklch(88.2% 0.059 254.128);\\n --color-blue-300: oklch(80.9% 0.105 251.813);\\n --color-blue-400: oklch(70.7% 0.165 254.624);\\n --color-blue-500: oklch(62.3% 0.214 259.815);\\n --color-blue-600: oklch(54.6% 0.245 262.881);\\n --color-blue-700: oklch(48.8% 0.243 264.376);\\n --color-blue-800: oklch(42.4% 0.199 265.638);\\n --color-blue-900: oklch(37.9% 0.146 265.522);\\n --color-blue-950: oklch(28.2% 0.091 267.935);\\n --color-indigo-50: oklch(96.2% 0.018 272.314);\\n --color-indigo-100: oklch(93% 0.034 272.788);\\n --color-indigo-200: oklch(87% 0.065 274.039);\\n --color-indigo-300: oklch(78.5% 0.115 274.713);\\n --color-indigo-400: oklch(67.3% 0.182 276.935);\\n --color-indigo-500: oklch(58.5% 0.233 277.117);\\n --color-indigo-600: oklch(51.1% 0.262 276.966);\\n --color-indigo-700: oklch(45.7% 0.24 277.023);\\n --color-indigo-800: oklch(39.8% 0.195 277.366);\\n --color-indigo-900: oklch(35.9% 0.144 278.697);\\n --color-indigo-950: oklch(25.7% 0.09 281.288);\\n --color-violet-50: oklch(96.9% 0.016 293.756);\\n --color-violet-100: oklch(94.3% 0.029 294.588);\\n --color-violet-200: oklch(89.4% 0.057 293.283);\\n --color-violet-300: oklch(81.1% 0.111 293.571);\\n --color-violet-400: oklch(70.2% 0.183 293.541);\\n --color-violet-500: oklch(60.6% 0.25 292.717);\\n --color-violet-600: oklch(54.1% 0.281 293.009);\\n --color-violet-700: oklch(49.1% 0.27 292.581);\\n --color-violet-800: oklch(43.2% 0.232 292.759);\\n --color-violet-900: oklch(38% 0.189 293.745);\\n --color-violet-950: oklch(28.3% 0.141 291.089);\\n --color-purple-50: oklch(97.7% 0.014 308.299);\\n --color-purple-100: oklch(94.6% 0.033 307.174);\\n --color-purple-200: oklch(90.2% 0.063 306.703);\\n --color-purple-300: oklch(82.7% 0.119 306.383);\\n --color-purple-400: oklch(71.4% 0.203 305.504);\\n --color-purple-500: oklch(62.7% 0.265 303.9);\\n --color-purple-600: oklch(55.8% 0.288 302.321);\\n --color-purple-700: oklch(49.6% 0.265 301.924);\\n --color-purple-800: oklch(43.8% 0.218 303.724);\\n --color-purple-900: oklch(38.1% 0.176 304.987);\\n --color-purple-950: oklch(29.1% 0.149 302.717);\\n --color-fuchsia-50: oklch(97.7% 0.017 320.058);\\n --color-fuchsia-100: oklch(95.2% 0.037 318.852);\\n --color-fuchsia-200: oklch(90.3% 0.076 319.62);\\n --color-fuchsia-300: oklch(83.3% 0.145 321.434);\\n --color-fuchsia-400: oklch(74% 0.238 322.16);\\n --color-fuchsia-500: oklch(66.7% 0.295 322.15);\\n --color-fuchsia-600: oklch(59.1% 0.293 322.896);\\n --color-fuchsia-700: oklch(51.8% 0.253 323.949);\\n --color-fuchsia-800: oklch(45.2% 0.211 324.591);\\n --color-fuchsia-900: oklch(40.1% 0.17 325.612);\\n --color-fuchsia-950: oklch(29.3% 0.136 325.661);\\n --color-pink-50: oklch(97.1% 0.014 343.198);\\n --color-pink-100: oklch(94.8% 0.028 342.258);\\n --color-pink-200: oklch(89.9% 0.061 343.231);\\n --color-pink-300: oklch(82.3% 0.12 346.018);\\n --color-pink-400: oklch(71.8% 0.202 349.761);\\n --color-pink-500: oklch(65.6% 0.241 354.308);\\n --color-pink-600: oklch(59.2% 0.249 0.584);\\n --color-pink-700: oklch(52.5% 0.223 3.958);\\n --color-pink-800: oklch(45.9% 0.187 3.815);\\n --color-pink-900: oklch(40.8% 0.153 2.432);\\n --color-pink-950: oklch(28.4% 0.109 3.907);\\n --color-rose-50: oklch(96.9% 0.015 12.422);\\n --color-rose-100: oklch(94.1% 0.03 12.58);\\n --color-rose-200: oklch(89.2% 0.058 10.001);\\n --color-rose-300: oklch(81% 0.117 11.638);\\n --color-rose-400: oklch(71.2% 0.194 13.428);\\n --color-rose-500: oklch(64.5% 0.246 16.439);\\n --color-rose-600: oklch(58.6% 0.253 17.585);\\n --color-rose-700: oklch(51.4% 0.222 16.935);\\n --color-rose-800: oklch(45.5% 0.188 13.697);\\n --color-rose-900: oklch(41% 0.159 10.272);\\n --color-rose-950: oklch(27.1% 0.105 12.094);\\n --color-slate-50: oklch(98.4% 0.003 247.858);\\n --color-slate-100: oklch(96.8% 0.007 247.896);\\n --color-slate-200: oklch(92.9% 0.013 255.508);\\n --color-slate-300: oklch(86.9% 0.022 252.894);\\n --color-slate-400: oklch(70.4% 0.04 256.788);\\n --color-slate-500: oklch(55.4% 0.046 257.417);\\n --color-slate-600: oklch(44.6% 0.043 257.281);\\n --color-slate-700: oklch(37.2% 0.044 257.287);\\n --color-slate-800: oklch(27.9% 0.041 260.031);\\n --color-slate-900: oklch(20.8% 0.042 265.755);\\n --color-slate-950: oklch(12.9% 0.042 264.695);\\n --color-gray-50: var(--color-neutral-50);\\n --color-gray-100: var(--color-neutral-100);\\n --color-gray-200: var(--color-neutral-200);\\n --color-gray-300: var(--color-neutral-300);\\n --color-gray-400: var(--color-neutral-400);\\n --color-gray-500: var(--color-neutral-500);\\n --color-gray-600: var(--color-neutral-600);\\n --color-gray-700: var(--color-neutral-700);\\n --color-gray-800: var(--color-neutral-800);\\n --color-gray-900: var(--color-neutral-900);\\n --color-gray-950: var(--color-neutral-950);\\n --color-zinc-50: oklch(98.5% 0 0);\\n --color-zinc-100: oklch(96.7% 0.001 286.375);\\n --color-zinc-200: oklch(92% 0.004 286.32);\\n --color-zinc-300: oklch(87.1% 0.006 286.286);\\n --color-zinc-400: oklch(70.5% 0.015 286.067);\\n --color-zinc-500: oklch(55.2% 0.016 285.938);\\n --color-zinc-600: oklch(44.2% 0.017 285.786);\\n --color-zinc-700: oklch(37% 0.013 285.805);\\n --color-zinc-800: oklch(27.4% 0.006 286.033);\\n --color-zinc-900: oklch(21% 0.006 285.885);\\n --color-zinc-950: oklch(14.1% 0.005 285.823);\\n --color-neutral-50: oklch(98.5% 0 0);\\n --color-neutral-100: oklch(97% 0 0);\\n --color-neutral-200: oklch(92.2% 0 0);\\n --color-neutral-300: oklch(87% 0 0);\\n --color-neutral-400: oklch(70.8% 0 0);\\n --color-neutral-500: oklch(55.6% 0 0);\\n --color-neutral-600: oklch(43.9% 0 0);\\n --color-neutral-700: oklch(37.1% 0 0);\\n --color-neutral-800: oklch(26.9% 0 0);\\n --color-neutral-900: oklch(20.5% 0 0);\\n --color-neutral-950: oklch(14.5% 0 0);\\n --color-stone-50: oklch(98.5% 0.001 106.423);\\n --color-stone-100: oklch(97% 0.001 106.424);\\n --color-stone-200: oklch(92.3% 0.003 48.717);\\n --color-stone-300: oklch(86.9% 0.005 56.366);\\n --color-stone-400: oklch(70.9% 0.01 56.259);\\n --color-stone-500: oklch(55.3% 0.013 58.071);\\n --color-stone-600: oklch(44.4% 0.011 73.639);\\n --color-stone-700: oklch(37.4% 0.01 67.558);\\n --color-stone-800: oklch(26.8% 0.007 34.298);\\n --color-stone-900: oklch(21.6% 0.006 56.043);\\n --color-stone-950: oklch(14.7% 0.004 49.25);\\n --color-black: #000;\\n --color-white: #fff;\\n --spacing: 0.25rem;\\n --container-3xs: 16rem;\\n --container-2xs: 18rem;\\n --container-xs: 20rem;\\n --container-sm: 24rem;\\n --container-md: 28rem;\\n --container-lg: 32rem;\\n --container-xl: 36rem;\\n --container-2xl: 42rem;\\n --container-3xl: 48rem;\\n --container-4xl: 56rem;\\n --container-5xl: 64rem;\\n --container-6xl: 72rem;\\n --container-7xl: 80rem;\\n --text-sm: 0.875rem;\\n --text-sm--line-height: calc(1.25 / 0.875);\\n --text-base: 1rem;\\n --text-base--line-height: calc(1.5 / 1);\\n --text-xl: 1.25rem;\\n --text-xl--line-height: calc(1.75 / 1.25);\\n --text-2xl: 1.5rem;\\n --text-2xl--line-height: calc(2 / 1.5);\\n --font-weight-thin: 100;\\n --font-weight-extralight: 200;\\n --font-weight-light: 300;\\n --font-weight-normal: 400;\\n --font-weight-medium: 500;\\n --font-weight-semibold: 600;\\n --font-weight-bold: 700;\\n --font-weight-extrabold: 800;\\n --font-weight-black: 900;\\n --leading-tight: 1.25;\\n --leading-snug: 1.375;\\n --leading-normal: 1.5;\\n --leading-relaxed: 1.625;\\n --leading-loose: 2;\\n --radius-xs: 0.125rem;\\n --radius-sm: 0.25rem;\\n --radius-md: 0.375rem;\\n --radius-lg: 0.5rem;\\n --radius-xl: 0.75rem;\\n --radius-2xl: 1rem;\\n --radius-3xl: 1.5rem;\\n --radius-4xl: 2rem;\\n --shadow-2xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow-xs: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n --shadow-sm: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15);\\n --shadow-md: 0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3);\\n --shadow-lg: 0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3);\\n --shadow-xl: 0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3);\\n --shadow-2xl: 0px 10px 14px 8px rgba(0, 0, 0, 0.2), 0px 4px 4px rgba(0, 0, 0, 0.3);\\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\\n --blur-3xl: 64px;\\n --default-transition-duration: 150ms;\\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n --default-font-family: var(--font-sans);\\n --default-mono-font-family: var(--font-mono);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.06);\\n --color-primary-50: var(--color-blue-50);\\n --color-primary-100: var(--color-blue-100);\\n --color-primary-200: var(--color-blue-200);\\n --color-primary-300: var(--color-blue-300);\\n --color-primary-400: var(--color-blue-400);\\n --color-primary-500: var(--color-blue-500);\\n --color-primary-600: var(--color-blue-600);\\n --color-primary-700: var(--color-blue-700);\\n --color-primary-800: var(--color-blue-800);\\n --color-primary-900: var(--color-blue-900);\\n --color-primary-950: var(--color-blue-950);\\n --color-secondary-50: var(--color-cyan-50);\\n --color-secondary-100: var(--color-cyan-100);\\n --color-secondary-200: var(--color-cyan-200);\\n --color-secondary-300: var(--color-cyan-300);\\n --color-secondary-400: var(--color-cyan-400);\\n --color-secondary-500: var(--color-cyan-500);\\n --color-secondary-600: var(--color-cyan-600);\\n --color-secondary-700: var(--color-cyan-700);\\n --color-secondary-800: var(--color-cyan-800);\\n --color-secondary-900: var(--color-cyan-900);\\n --color-secondary-950: var(--color-cyan-950);\\n --color-success-50: var(--color-green-50);\\n --color-success-100: var(--color-green-100);\\n --color-success-200: var(--color-green-200);\\n --color-success-300: var(--color-green-300);\\n --color-success-400: var(--color-green-400);\\n --color-success-500: var(--color-green-500);\\n --color-success-600: var(--color-green-600);\\n --color-success-700: var(--color-green-700);\\n --color-success-800: var(--color-green-800);\\n --color-success-900: var(--color-green-900);\\n --color-success-950: var(--color-green-950);\\n --color-danger-50: var(--color-red-50);\\n --color-danger-100: var(--color-red-100);\\n --color-danger-200: var(--color-red-200);\\n --color-danger-300: var(--color-red-300);\\n --color-danger-400: var(--color-red-400);\\n --color-danger-500: var(--color-red-500);\\n --color-danger-600: var(--color-red-600);\\n --color-danger-700: var(--color-red-700);\\n --color-danger-800: var(--color-red-800);\\n --color-danger-900: var(--color-red-900);\\n --color-danger-950: var(--color-red-950);\\n --color-warning-50: var(--color-amber-50);\\n --color-warning-100: var(--color-amber-100);\\n --color-warning-200: var(--color-amber-200);\\n --color-warning-300: var(--color-amber-300);\\n --color-warning-400: var(--color-amber-400);\\n --color-warning-500: var(--color-amber-500);\\n --color-warning-600: var(--color-amber-600);\\n --color-warning-700: var(--color-amber-700);\\n --color-warning-800: var(--color-amber-800);\\n --color-warning-900: var(--color-amber-900);\\n --color-warning-950: var(--color-amber-950);\\n --color-background: var(--color-white);\\n --color-font: var(--color-black);\\n --color-overlay-black-50: rgba(0, 0, 0, 0.5);\\n --color-overlay-black-80: rgba(0, 0, 0, 0.8);\\n --color-overlay-white-50: rgba(255, 255, 255, 0.5);\\n --color-overlay-white-80: rgba(255, 255, 255, 0.8);\\n --color-overlay-gradient-black:\\n linear-gradient(\\n \\n 180deg,\\n rgba(255, 255, 255, 0) 0%,\\n rgba(0, 0, 0, 0.56) 100% );\\n --color-overlay-gradient-white:\\n linear-gradient(\\n \\n 180deg,\\n rgba(0, 0, 0, 0) 0%,\\n rgba(255, 255, 255, 0.35) 100% );\\n --spacer-2xs: 4px;\\n --spacer-xs: 8px;\\n --spacer-sm: 12px;\\n --spacer-md: 16px;\\n --spacer-lg: 24px;\\n --spacer-xl: 32px;\\n --spacer-2xl: 48px;\\n --main-default: 600px;\\n --main-large: 800px;\\n --main-form: 400px;\\n --main-full: 100%;\\n --aside-default: 250px;\\n --aside-small: 200px;\\n --shadow-none: none;\\n --animate-cubic-bezier: cubic-bezier(0.5, 0, 0.5, 1);\\n --transition-short: all 200ms ease;\\n --transition-long: all 500ms ease;\\n --transition-bezier: all 500ms cubic-bezier(0.25, 0.75, 0, 0.66);\\n --text-display-h1: 5rem;\\n --text-display-h2: 4rem;\\n --text-display-h3: 3.5rem;\\n --text-display-h4: 3rem;\\n --text-display-h5: 2.5rem;\\n --text-h1: 2.5rem;\\n --text-h2: 2rem;\\n --text-h3: 1.8rem;\\n --text-h4: 1.5rem;\\n --text-h5: 1.3rem;\\n --text-h6: 1.1rem;\\n --text-body: 1rem;\\n --text-small: 0.875rem;\\n }\\n}\\n@layer base {\\n *,\\n ::after,\\n ::before,\\n ::backdrop,\\n ::file-selector-button {\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n border: 0 solid;\\n }\\n html,\\n :host {\\n line-height: 1.5;\\n -webkit-text-size-adjust: 100%;\\n -moz-tab-size: 4;\\n -o-tab-size: 4;\\n tab-size: 4;\\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\");\\n font-feature-settings: var(--default-font-feature-settings, normal);\\n font-variation-settings: var(--default-font-variation-settings, normal);\\n -webkit-tap-highlight-color: transparent;\\n }\\n hr {\\n height: 0;\\n color: inherit;\\n border-top-width: 1px;\\n }\\n abbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n a {\\n color: inherit;\\n -webkit-text-decoration: inherit;\\n text-decoration: inherit;\\n }\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n code,\\n kbd,\\n samp,\\n pre {\\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace);\\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\\n font-size: 1em;\\n }\\n small {\\n font-size: 80%;\\n }\\n sub,\\n sup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n }\\n sub {\\n bottom: -0.25em;\\n }\\n sup {\\n top: -0.5em;\\n }\\n table {\\n text-indent: 0;\\n border-color: inherit;\\n border-collapse: collapse;\\n }\\n :-moz-focusring {\\n outline: auto;\\n }\\n progress {\\n vertical-align: baseline;\\n }\\n summary {\\n display: list-item;\\n }\\n ol,\\n ul,\\n menu {\\n list-style: none;\\n }\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n display: block;\\n vertical-align: middle;\\n }\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n button,\\n input,\\n select,\\n optgroup,\\n textarea,\\n ::file-selector-button {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n border-radius: 0;\\n background-color: transparent;\\n opacity: 1;\\n }\\n :where(select:is([multiple], [size])) optgroup {\\n font-weight: bolder;\\n }\\n :where(select:is([multiple], [size])) optgroup option {\\n padding-inline-start: 20px;\\n }\\n ::file-selector-button {\\n margin-inline-end: 4px;\\n }\\n ::-moz-placeholder {\\n opacity: 1;\\n }\\n ::placeholder {\\n opacity: 1;\\n }\\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\\n ::-moz-placeholder {\\n color: currentcolor;\\n @supports (color: color-mix(in lab, red, red)) {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n ::placeholder {\\n color: currentcolor;\\n @supports (color: color-mix(in lab, red, red)) {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n }\\n textarea {\\n resize: vertical;\\n }\\n ::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n ::-webkit-date-and-time-value {\\n min-height: 1lh;\\n text-align: inherit;\\n }\\n ::-webkit-datetime-edit {\\n display: inline-flex;\\n }\\n ::-webkit-datetime-edit-fields-wrapper {\\n padding: 0;\\n }\\n ::-webkit-datetime-edit,\\n ::-webkit-datetime-edit-year-field,\\n ::-webkit-datetime-edit-month-field,\\n ::-webkit-datetime-edit-day-field,\\n ::-webkit-datetime-edit-hour-field,\\n ::-webkit-datetime-edit-minute-field,\\n ::-webkit-datetime-edit-second-field,\\n ::-webkit-datetime-edit-millisecond-field,\\n ::-webkit-datetime-edit-meridiem-field {\\n padding-block: 0;\\n }\\n :-moz-ui-invalid {\\n box-shadow: none;\\n }\\n button,\\n input:where([type=button], [type=reset], [type=submit]),\\n ::file-selector-button {\\n -webkit-appearance: button;\\n -moz-appearance: button;\\n appearance: button;\\n }\\n ::-webkit-inner-spin-button,\\n ::-webkit-outer-spin-button {\\n height: auto;\\n }\\n [hidden]:where(:not([hidden=until-found])) {\\n display: none !important;\\n }\\n}\\n@layer utilities {\\n .\\\\@container {\\n container-type: inline-size;\\n }\\n .\\\\@container-normal {\\n container-type: normal;\\n }\\n .pointer-events-auto {\\n pointer-events: auto;\\n }\\n .pointer-events-none {\\n pointer-events: none;\\n }\\n .collapse {\\n visibility: collapse;\\n }\\n .invisible {\\n visibility: hidden;\\n }\\n .visible {\\n visibility: visible;\\n }\\n .sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n }\\n .not-sr-only {\\n position: static;\\n width: auto;\\n height: auto;\\n padding: 0;\\n margin: 0;\\n overflow: visible;\\n clip: auto;\\n white-space: normal;\\n }\\n .\\\\!relative {\\n position: relative !important;\\n }\\n .absolute {\\n position: absolute;\\n }\\n .fixed {\\n position: fixed;\\n }\\n .relative {\\n position: relative;\\n }\\n .static {\\n position: static;\\n }\\n .sticky {\\n position: sticky;\\n }\\n .inset-0 {\\n inset: calc(var(--spacing) * 0);\\n }\\n .-top-8 {\\n top: calc(var(--spacing) * -8);\\n }\\n .top-0 {\\n top: calc(var(--spacing) * 0);\\n }\\n .top-1 {\\n top: calc(var(--spacing) * 1);\\n }\\n .top-2 {\\n top: calc(var(--spacing) * 2);\\n }\\n .top-3 {\\n top: calc(var(--spacing) * 3);\\n }\\n .top-4 {\\n top: calc(var(--spacing) * 4);\\n }\\n .top-5 {\\n top: calc(var(--spacing) * 5);\\n }\\n .top-8 {\\n top: calc(var(--spacing) * 8);\\n }\\n .top-12 {\\n top: calc(var(--spacing) * 12);\\n }\\n .top-\\\\[-56px\\\\] {\\n top: -56px;\\n }\\n .top-\\\\[-70\\\\%\\\\] {\\n top: -70%;\\n }\\n .top-\\\\[40px\\\\] {\\n top: 40px;\\n }\\n .top-\\\\[50\\\\%\\\\] {\\n top: 50%;\\n }\\n .top-\\\\[56px\\\\] {\\n top: 56px;\\n }\\n .top-\\\\[calc\\\\(\\\\(160px\\\\+56px\\\\)\\\\*-1\\\\)\\\\] {\\n top: calc((160px + 56px) * -1);\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-2xl\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-2xl));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-2xs\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-2xs));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-lg\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-lg));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-md\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-md));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-sm\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-sm));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-xl\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-xl));\\n }\\n .top-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-xs\\\\)\\\\)\\\\)\\\\] {\\n top: calc(-100% - var(--spacer-xs));\\n }\\n .-right-\\\\[80\\\\%\\\\] {\\n right: calc(80% * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-2xl\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-2xl)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-2xs\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-2xs)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-lg\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-lg)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-md\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-md)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-sm\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-sm)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-xl\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-xl)) * -1);\\n }\\n .-right-\\\\[calc\\\\(80\\\\%\\\\+var\\\\(--spacer-xs\\\\)\\\\)\\\\] {\\n right: calc(calc(80% + var(--spacer-xs)) * -1);\\n }\\n .right-0 {\\n right: calc(var(--spacing) * 0);\\n }\\n .right-2 {\\n right: calc(var(--spacing) * 2);\\n }\\n .right-4 {\\n right: calc(var(--spacing) * 4);\\n }\\n .right-5 {\\n right: calc(var(--spacing) * 5);\\n }\\n .right-\\\\[-70\\\\%\\\\] {\\n right: -70%;\\n }\\n .right-\\\\[-100\\\\%\\\\] {\\n right: -100%;\\n }\\n .right-\\\\[calc\\\\(var\\\\(--drawer-max-width\\\\)\\\\*-1\\\\)\\\\] {\\n right: calc(var(--drawer-max-width) * -1);\\n }\\n .\\\\!bottom-0 {\\n bottom: calc(var(--spacing) * 0) !important;\\n }\\n .bottom-0 {\\n bottom: calc(var(--spacing) * 0);\\n }\\n .bottom-1 {\\n bottom: calc(var(--spacing) * 1);\\n }\\n .bottom-5 {\\n bottom: calc(var(--spacing) * 5);\\n }\\n .bottom-\\\\[40px\\\\] {\\n bottom: 40px;\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-0px\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - 0px);\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-2xl\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-2xl));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-2xs\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-2xs));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-lg\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-lg));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-md\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-md));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-sm\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-sm));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-xl\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-xl));\\n }\\n .bottom-\\\\[calc\\\\(-100\\\\%-var\\\\(--spacer-xs\\\\)\\\\)\\\\)\\\\] {\\n bottom: calc(-100% - var(--spacer-xs));\\n }\\n .\\\\!left-0 {\\n left: calc(var(--spacing) * 0) !important;\\n }\\n .-left-\\\\[86\\\\%\\\\] {\\n left: calc(86% * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-2xl\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-2xl)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-2xs\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-2xs)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-lg\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-lg)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-md\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-md)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-sm\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-sm)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-xl\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-xl)) * -1);\\n }\\n .-left-\\\\[calc\\\\(86\\\\%\\\\+var\\\\(--spacer-xs\\\\)\\\\)\\\\] {\\n left: calc(calc(86% + var(--spacer-xs)) * -1);\\n }\\n .left-0 {\\n left: calc(var(--spacing) * 0);\\n }\\n .left-2 {\\n left: calc(var(--spacing) * 2);\\n }\\n .left-\\\\[-70\\\\%\\\\] {\\n left: -70%;\\n }\\n .left-\\\\[-100\\\\%\\\\] {\\n left: -100%;\\n }\\n .left-\\\\[50\\\\%\\\\] {\\n left: 50%;\\n }\\n .left-\\\\[250px\\\\] {\\n left: 250px;\\n }\\n .left-\\\\[calc\\\\(var\\\\(--drawer-max-width\\\\)\\\\*-1\\\\)\\\\] {\\n left: calc(var(--drawer-max-width) * -1);\\n }\\n .isolate {\\n isolation: isolate;\\n }\\n .isolation-auto {\\n isolation: auto;\\n }\\n .z-0 {\\n z-index: 0;\\n }\\n .z-10 {\\n z-index: 10;\\n }\\n .z-20 {\\n z-index: 20;\\n }\\n .z-40 {\\n z-index: 40;\\n }\\n .z-996 {\\n z-index: 996;\\n }\\n .z-999 {\\n z-index: 999;\\n }\\n .container {\\n width: 100%;\\n @media (width >= 40rem) {\\n max-width: 40rem;\\n }\\n @media (width >= 48rem) {\\n max-width: 48rem;\\n }\\n @media (width >= 64rem) {\\n max-width: 64rem;\\n }\\n @media (width >= 80rem) {\\n max-width: 80rem;\\n }\\n @media (width >= 96rem) {\\n max-width: 96rem;\\n }\\n }\\n .m-26 {\\n margin: calc(var(--spacing) * 26);\\n }\\n .m-32 {\\n margin: calc(var(--spacing) * 32);\\n }\\n .m-40 {\\n margin: calc(var(--spacing) * 40);\\n }\\n .m-64 {\\n margin: calc(var(--spacing) * 64);\\n }\\n .m-101 {\\n margin: calc(var(--spacing) * 101);\\n }\\n .m-104\\\\.5 {\\n margin: calc(var(--spacing) * 104.5);\\n }\\n .m-178 {\\n margin: calc(var(--spacing) * 178);\\n }\\n .m-246 {\\n margin: calc(var(--spacing) * 246);\\n }\\n .mx-2 {\\n margin-inline: calc(var(--spacing) * 2);\\n }\\n .mx-auto {\\n margin-inline: auto;\\n }\\n .mt-12 {\\n margin-top: calc(var(--spacing) * 12);\\n }\\n .ml-1 {\\n margin-left: calc(var(--spacing) * 1);\\n }\\n .box-border {\\n box-sizing: border-box;\\n }\\n .box-content {\\n box-sizing: content-box;\\n }\\n .block {\\n display: block;\\n }\\n .contents {\\n display: contents;\\n }\\n .flex {\\n display: flex;\\n }\\n .flow-root {\\n display: flow-root;\\n }\\n .grid {\\n display: grid;\\n }\\n .hidden {\\n display: none;\\n }\\n .inline {\\n display: inline;\\n }\\n .inline-block {\\n display: inline-block;\\n }\\n .inline-flex {\\n display: inline-flex;\\n }\\n .inline-grid {\\n display: inline-grid;\\n }\\n .list-item {\\n display: list-item;\\n }\\n .table {\\n display: table;\\n }\\n .table-cell {\\n display: table-cell;\\n }\\n .field-sizing-content {\\n field-sizing: content;\\n }\\n .field-sizing-fixed {\\n field-sizing: fixed;\\n }\\n .size-2 {\\n width: calc(var(--spacing) * 2);\\n height: calc(var(--spacing) * 2);\\n }\\n .size-4 {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .size-6 {\\n width: calc(var(--spacing) * 6);\\n height: calc(var(--spacing) * 6);\\n }\\n .size-8 {\\n width: calc(var(--spacing) * 8);\\n height: calc(var(--spacing) * 8);\\n }\\n .size-10 {\\n width: calc(var(--spacing) * 10);\\n height: calc(var(--spacing) * 10);\\n }\\n .size-12 {\\n width: calc(var(--spacing) * 12);\\n height: calc(var(--spacing) * 12);\\n }\\n .size-16 {\\n width: calc(var(--spacing) * 16);\\n height: calc(var(--spacing) * 16);\\n }\\n .size-25 {\\n width: calc(var(--spacing) * 25);\\n height: calc(var(--spacing) * 25);\\n }\\n .h-0\\\\.5 {\\n height: calc(var(--spacing) * 0.5);\\n }\\n .h-1 {\\n height: calc(var(--spacing) * 1);\\n }\\n .h-2 {\\n height: calc(var(--spacing) * 2);\\n }\\n .h-4 {\\n height: calc(var(--spacing) * 4);\\n }\\n .h-6 {\\n height: calc(var(--spacing) * 6);\\n }\\n .h-8 {\\n height: calc(var(--spacing) * 8);\\n }\\n .h-10 {\\n height: calc(var(--spacing) * 10);\\n }\\n .h-\\\\[1px\\\\] {\\n height: 1px;\\n }\\n .h-\\\\[15vw\\\\] {\\n height: 15vw;\\n }\\n .h-\\\\[21px\\\\] {\\n height: 21px;\\n }\\n .h-\\\\[90svh\\\\] {\\n height: 90svh;\\n }\\n .h-\\\\[100px\\\\] {\\n height: 100px;\\n }\\n .h-\\\\[100vh\\\\] {\\n height: 100vh;\\n }\\n .h-\\\\[150px\\\\] {\\n height: 150px;\\n }\\n .h-\\\\[300px\\\\] {\\n height: 300px;\\n }\\n .h-\\\\[calc\\\\(100svh-56px\\\\)\\\\] {\\n height: calc(100svh - 56px);\\n }\\n .h-fit {\\n height: -moz-fit-content;\\n height: fit-content;\\n }\\n .h-full {\\n height: 100%;\\n }\\n .h-screen {\\n height: 100vh;\\n }\\n .h-svh {\\n height: 100svh;\\n }\\n .max-h-0 {\\n max-height: calc(var(--spacing) * 0);\\n }\\n .max-h-80 {\\n max-height: calc(var(--spacing) * 80);\\n }\\n .max-h-\\\\[160px\\\\] {\\n max-height: 160px;\\n }\\n .max-h-\\\\[300px\\\\] {\\n max-height: 300px;\\n }\\n .min-h-\\\\[80px\\\\] {\\n min-height: 80px;\\n }\\n .min-h-\\\\[150px\\\\] {\\n min-height: 150px;\\n }\\n .min-h-auto {\\n min-height: auto;\\n }\\n .min-h-dvh {\\n min-height: 100dvh;\\n }\\n .min-h-dvw {\\n min-height: 100dvw;\\n }\\n .min-h-fit {\\n min-height: -moz-fit-content;\\n min-height: fit-content;\\n }\\n .min-h-full {\\n min-height: 100%;\\n }\\n .min-h-lh {\\n min-height: 1lh;\\n }\\n .min-h-lvh {\\n min-height: 100lvh;\\n }\\n .min-h-lvw {\\n min-height: 100lvw;\\n }\\n .min-h-max {\\n min-height: -moz-max-content;\\n min-height: max-content;\\n }\\n .min-h-min {\\n min-height: -moz-min-content;\\n min-height: min-content;\\n }\\n .min-h-px {\\n min-height: 1px;\\n }\\n .min-h-screen {\\n min-height: 100vh;\\n }\\n .min-h-svh {\\n min-height: 100svh;\\n }\\n .min-h-svw {\\n min-height: 100svw;\\n }\\n .w-\\\\(--aside-default\\\\) {\\n width: var(--aside-default);\\n }\\n .w-\\\\(--aside-small\\\\) {\\n width: var(--aside-small);\\n }\\n .w-\\\\(--main-default\\\\) {\\n width: var(--main-default);\\n }\\n .w-\\\\(--main-form\\\\) {\\n width: var(--main-form);\\n }\\n .w-\\\\(--main-full\\\\) {\\n width: var(--main-full);\\n }\\n .w-\\\\(--main-large\\\\) {\\n width: var(--main-large);\\n }\\n .w-0\\\\.5 {\\n width: calc(var(--spacing) * 0.5);\\n }\\n .w-2xl {\\n width: var(--container-2xl);\\n }\\n .w-2xs {\\n width: var(--container-2xs);\\n }\\n .w-3xl {\\n width: var(--container-3xl);\\n }\\n .w-3xs {\\n width: var(--container-3xs);\\n }\\n .w-4xl {\\n width: var(--container-4xl);\\n }\\n .w-5xl {\\n width: var(--container-5xl);\\n }\\n .w-6 {\\n width: calc(var(--spacing) * 6);\\n }\\n .w-6xl {\\n width: var(--container-6xl);\\n }\\n .w-7xl {\\n width: var(--container-7xl);\\n }\\n .w-8 {\\n width: calc(var(--spacing) * 8);\\n }\\n .w-12 {\\n width: calc(var(--spacing) * 12);\\n }\\n .w-18 {\\n width: calc(var(--spacing) * 18);\\n }\\n .w-\\\\[1px\\\\] {\\n width: 1px;\\n }\\n .w-\\\\[70\\\\%\\\\] {\\n width: 70%;\\n }\\n .w-\\\\[81px\\\\] {\\n width: 81px;\\n }\\n .w-\\\\[90\\\\%\\\\] {\\n width: 90%;\\n }\\n .w-\\\\[100\\\\%\\\\] {\\n width: 100%;\\n }\\n .w-\\\\[100px\\\\] {\\n width: 100px;\\n }\\n .w-\\\\[200px\\\\] {\\n width: 200px;\\n }\\n .w-\\\\[250px\\\\] {\\n width: 250px;\\n }\\n .w-\\\\[calc\\\\(2ch\\\\+20px\\\\)\\\\] {\\n width: calc(2ch + 20px);\\n }\\n .w-\\\\[calc\\\\(100\\\\%-16px\\\\)\\\\] {\\n width: calc(100% - 16px);\\n }\\n .w-\\\\[calc\\\\(100\\\\%-250px\\\\)\\\\] {\\n width: calc(100% - 250px);\\n }\\n .w-fit {\\n width: -moz-fit-content;\\n width: fit-content;\\n }\\n .w-full {\\n width: 100%;\\n }\\n .w-lg {\\n width: var(--container-lg);\\n }\\n .w-md {\\n width: var(--container-md);\\n }\\n .w-screen {\\n width: 100vw;\\n }\\n .w-sm {\\n width: var(--container-sm);\\n }\\n .w-xl {\\n width: var(--container-xl);\\n }\\n .w-xs {\\n width: var(--container-xs);\\n }\\n .max-w-\\\\(--drawer-max-width\\\\) {\\n max-width: var(--drawer-max-width);\\n }\\n .max-w-\\\\(--form-max-width\\\\) {\\n max-width: var(--form-max-width);\\n }\\n .max-w-2xl {\\n max-width: var(--container-2xl);\\n }\\n .max-w-2xs {\\n max-width: var(--container-2xs);\\n }\\n .max-w-3xl {\\n max-width: var(--container-3xl);\\n }\\n .max-w-3xs {\\n max-width: var(--container-3xs);\\n }\\n .max-w-4xl {\\n max-width: var(--container-4xl);\\n }\\n .max-w-5xl {\\n max-width: var(--container-5xl);\\n }\\n .max-w-6xl {\\n max-width: var(--container-6xl);\\n }\\n .max-w-7xl {\\n max-width: var(--container-7xl);\\n }\\n .max-w-\\\\[70\\\\%\\\\] {\\n max-width: 70%;\\n }\\n .max-w-\\\\[90\\\\%\\\\] {\\n max-width: 90%;\\n }\\n .max-w-\\\\[400px\\\\] {\\n max-width: 400px;\\n }\\n .max-w-\\\\[800px\\\\] {\\n max-width: 800px;\\n }\\n .max-w-\\\\[unset\\\\] {\\n max-width: unset;\\n }\\n .max-w-dvh {\\n max-width: 100dvh;\\n }\\n .max-w-dvw {\\n max-width: 100dvw;\\n }\\n .max-w-fit {\\n max-width: -moz-fit-content;\\n max-width: fit-content;\\n }\\n .max-w-full {\\n max-width: 100%;\\n }\\n .max-w-lg {\\n max-width: var(--container-lg);\\n }\\n .max-w-lvh {\\n max-width: 100lvh;\\n }\\n .max-w-lvw {\\n max-width: 100lvw;\\n }\\n .max-w-max {\\n max-width: -moz-max-content;\\n max-width: max-content;\\n }\\n .max-w-md {\\n max-width: var(--container-md);\\n }\\n .max-w-min {\\n max-width: -moz-min-content;\\n max-width: min-content;\\n }\\n .max-w-none {\\n max-width: none;\\n }\\n .max-w-px {\\n max-width: 1px;\\n }\\n .max-w-screen {\\n max-width: 100vw;\\n }\\n .max-w-sm {\\n max-width: var(--container-sm);\\n }\\n .max-w-svh {\\n max-width: 100svh;\\n }\\n .max-w-svw {\\n max-width: 100svw;\\n }\\n .max-w-xl {\\n max-width: var(--container-xl);\\n }\\n .max-w-xs {\\n max-width: var(--container-xs);\\n }\\n .min-w-2 {\\n min-width: calc(var(--spacing) * 2);\\n }\\n .min-w-6 {\\n min-width: calc(var(--spacing) * 6);\\n }\\n .min-w-\\\\[80px\\\\] {\\n min-width: 80px;\\n }\\n .min-w-\\\\[150px\\\\] {\\n min-width: 150px;\\n }\\n .min-w-\\\\[300px\\\\] {\\n min-width: 300px;\\n }\\n .min-w-\\\\[calc\\\\(3ch\\\\+16px\\\\)\\\\] {\\n min-width: calc(3ch + 16px);\\n }\\n .shrink {\\n flex-shrink: 1;\\n }\\n .shrink-0 {\\n flex-shrink: 0;\\n }\\n .grow {\\n flex-grow: 1;\\n }\\n .grow-0 {\\n flex-grow: 0;\\n }\\n .table-auto {\\n table-layout: auto;\\n }\\n .table-fixed {\\n table-layout: fixed;\\n }\\n .caption-bottom {\\n caption-side: bottom;\\n }\\n .caption-top {\\n caption-side: top;\\n }\\n .border-collapse {\\n border-collapse: collapse;\\n }\\n .border-separate {\\n border-collapse: separate;\\n }\\n .border-spacing-0 {\\n --tw-border-spacing-x: calc(var(--spacing) * 0);\\n --tw-border-spacing-y: calc(var(--spacing) * 0);\\n border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);\\n }\\n .translate-1\\\\/2 {\\n --tw-translate-x: calc(1/2 * 100%);\\n --tw-translate-y: calc(1/2 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-1\\\\/3 {\\n --tw-translate-x: calc(1/3 * 100%);\\n --tw-translate-y: calc(1/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-1\\\\/4 {\\n --tw-translate-x: calc(1/4 * 100%);\\n --tw-translate-y: calc(1/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-1\\\\/5 {\\n --tw-translate-x: calc(1/5 * 100%);\\n --tw-translate-y: calc(1/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-1\\\\/6 {\\n --tw-translate-x: calc(1/6 * 100%);\\n --tw-translate-y: calc(1/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-1\\\\/12 {\\n --tw-translate-x: calc(1/12 * 100%);\\n --tw-translate-y: calc(1/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-2\\\\/3 {\\n --tw-translate-x: calc(2/3 * 100%);\\n --tw-translate-y: calc(2/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-2\\\\/4 {\\n --tw-translate-x: calc(2/4 * 100%);\\n --tw-translate-y: calc(2/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-2\\\\/5 {\\n --tw-translate-x: calc(2/5 * 100%);\\n --tw-translate-y: calc(2/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-2\\\\/6 {\\n --tw-translate-x: calc(2/6 * 100%);\\n --tw-translate-y: calc(2/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-2\\\\/12 {\\n --tw-translate-x: calc(2/12 * 100%);\\n --tw-translate-y: calc(2/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-3\\\\/4 {\\n --tw-translate-x: calc(3/4 * 100%);\\n --tw-translate-y: calc(3/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-3\\\\/5 {\\n --tw-translate-x: calc(3/5 * 100%);\\n --tw-translate-y: calc(3/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-3\\\\/6 {\\n --tw-translate-x: calc(3/6 * 100%);\\n --tw-translate-y: calc(3/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-3\\\\/12 {\\n --tw-translate-x: calc(3/12 * 100%);\\n --tw-translate-y: calc(3/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-4\\\\/5 {\\n --tw-translate-x: calc(4/5 * 100%);\\n --tw-translate-y: calc(4/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-4\\\\/6 {\\n --tw-translate-x: calc(4/6 * 100%);\\n --tw-translate-y: calc(4/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-4\\\\/12 {\\n --tw-translate-x: calc(4/12 * 100%);\\n --tw-translate-y: calc(4/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-5\\\\/6 {\\n --tw-translate-x: calc(5/6 * 100%);\\n --tw-translate-y: calc(5/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-5\\\\/12 {\\n --tw-translate-x: calc(5/12 * 100%);\\n --tw-translate-y: calc(5/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-6\\\\/12 {\\n --tw-translate-x: calc(6/12 * 100%);\\n --tw-translate-y: calc(6/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-7\\\\/12 {\\n --tw-translate-x: calc(7/12 * 100%);\\n --tw-translate-y: calc(7/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-8\\\\/12 {\\n --tw-translate-x: calc(8/12 * 100%);\\n --tw-translate-y: calc(8/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-9\\\\/12 {\\n --tw-translate-x: calc(9/12 * 100%);\\n --tw-translate-y: calc(9/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-10\\\\/12 {\\n --tw-translate-x: calc(10/12 * 100%);\\n --tw-translate-y: calc(10/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-11\\\\/12 {\\n --tw-translate-x: calc(11/12 * 100%);\\n --tw-translate-y: calc(11/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-full {\\n --tw-translate-x: 100%;\\n --tw-translate-y: 100%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-x-6 {\\n --tw-translate-x: calc(var(--spacing) * -6);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-x-\\\\[50\\\\%\\\\] {\\n --tw-translate-x: calc(50% * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/2 {\\n --tw-translate-x: calc(1/2 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/3 {\\n --tw-translate-x: calc(1/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/4 {\\n --tw-translate-x: calc(1/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/5 {\\n --tw-translate-x: calc(1/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/6 {\\n --tw-translate-x: calc(1/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-1\\\\/12 {\\n --tw-translate-x: calc(1/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2 {\\n --tw-translate-x: calc(var(--spacing) * 2);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2\\\\/3 {\\n --tw-translate-x: calc(2/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2\\\\/4 {\\n --tw-translate-x: calc(2/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2\\\\/5 {\\n --tw-translate-x: calc(2/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2\\\\/6 {\\n --tw-translate-x: calc(2/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-2\\\\/12 {\\n --tw-translate-x: calc(2/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-3\\\\/4 {\\n --tw-translate-x: calc(3/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-3\\\\/5 {\\n --tw-translate-x: calc(3/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-3\\\\/6 {\\n --tw-translate-x: calc(3/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-3\\\\/12 {\\n --tw-translate-x: calc(3/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-4\\\\/5 {\\n --tw-translate-x: calc(4/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-4\\\\/6 {\\n --tw-translate-x: calc(4/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-4\\\\/12 {\\n --tw-translate-x: calc(4/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-5\\\\/6 {\\n --tw-translate-x: calc(5/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-5\\\\/12 {\\n --tw-translate-x: calc(5/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-6\\\\/12 {\\n --tw-translate-x: calc(6/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-7\\\\/12 {\\n --tw-translate-x: calc(7/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-8\\\\/12 {\\n --tw-translate-x: calc(8/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-9\\\\/12 {\\n --tw-translate-x: calc(9/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-10\\\\/12 {\\n --tw-translate-x: calc(10/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-11\\\\/12 {\\n --tw-translate-x: calc(11/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-full {\\n --tw-translate-x: 100%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-y-2 {\\n --tw-translate-y: calc(var(--spacing) * -2);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-y-\\\\[50\\\\%\\\\] {\\n --tw-translate-y: calc(50% * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/2 {\\n --tw-translate-y: calc(1/2 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/3 {\\n --tw-translate-y: calc(1/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/4 {\\n --tw-translate-y: calc(1/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/5 {\\n --tw-translate-y: calc(1/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/6 {\\n --tw-translate-y: calc(1/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-1\\\\/12 {\\n --tw-translate-y: calc(1/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-2\\\\/3 {\\n --tw-translate-y: calc(2/3 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-2\\\\/4 {\\n --tw-translate-y: calc(2/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-2\\\\/5 {\\n --tw-translate-y: calc(2/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-2\\\\/6 {\\n --tw-translate-y: calc(2/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-2\\\\/12 {\\n --tw-translate-y: calc(2/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-3\\\\/4 {\\n --tw-translate-y: calc(3/4 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-3\\\\/5 {\\n --tw-translate-y: calc(3/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-3\\\\/6 {\\n --tw-translate-y: calc(3/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-3\\\\/12 {\\n --tw-translate-y: calc(3/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-4\\\\/5 {\\n --tw-translate-y: calc(4/5 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-4\\\\/6 {\\n --tw-translate-y: calc(4/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-4\\\\/12 {\\n --tw-translate-y: calc(4/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-5\\\\/6 {\\n --tw-translate-y: calc(5/6 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-5\\\\/12 {\\n --tw-translate-y: calc(5/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-6\\\\/12 {\\n --tw-translate-y: calc(6/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-7\\\\/12 {\\n --tw-translate-y: calc(7/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-8\\\\/12 {\\n --tw-translate-y: calc(8/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-9\\\\/12 {\\n --tw-translate-y: calc(9/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-10\\\\/12 {\\n --tw-translate-y: calc(10/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-11\\\\/12 {\\n --tw-translate-y: calc(11/12 * 100%);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-\\\\[1px\\\\] {\\n --tw-translate-y: 1px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-full {\\n --tw-translate-y: 100%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-3d {\\n translate: var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);\\n }\\n .translate-none {\\n translate: none;\\n }\\n .scale-3d {\\n scale: var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z);\\n }\\n .scale-none {\\n scale: none;\\n }\\n .-rotate-90 {\\n rotate: calc(90deg * -1);\\n }\\n .rotate-none {\\n rotate: none;\\n }\\n .transform {\\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\\n }\\n .animate-\\\\[loader-pulse_1200ms_linear_infinite_100ms\\\\] {\\n animation: loader-pulse 1200ms linear infinite 100ms;\\n }\\n .animate-\\\\[loader-pulse_1200ms_linear_infinite_300ms\\\\] {\\n animation: loader-pulse 1200ms linear infinite 300ms;\\n }\\n .animate-\\\\[loader-pulse_1200ms_linear_infinite_500ms\\\\] {\\n animation: loader-pulse 1200ms linear infinite 500ms;\\n }\\n .animate-\\\\[spin_1200ms_linear_infinite\\\\] {\\n animation: spin 1200ms linear infinite;\\n }\\n .animate-\\\\[spin_1200ms_var\\\\(--animate-cubic-bezier\\\\)_infinite_var\\\\(--spinner-delay\\\\)\\\\] {\\n animation: spin 1200ms var(--animate-cubic-bezier) infinite var(--spinner-delay);\\n }\\n .animate-none {\\n animation: none;\\n }\\n .animate-pulse {\\n animation: var(--animate-pulse);\\n }\\n .cursor-grab {\\n cursor: grab;\\n }\\n .cursor-grab\\\\! {\\n cursor: grab !important;\\n }\\n .cursor-not-allowed {\\n cursor: not-allowed;\\n }\\n .cursor-pointer {\\n cursor: pointer;\\n }\\n .resize {\\n resize: both;\\n }\\n .resize-none {\\n resize: none;\\n }\\n .resize-y {\\n resize: vertical;\\n }\\n .snap-always {\\n scroll-snap-stop: always;\\n }\\n .snap-normal {\\n scroll-snap-stop: normal;\\n }\\n .list-inside {\\n list-style-position: inside;\\n }\\n .list-outside {\\n list-style-position: outside;\\n }\\n .list-decimal {\\n list-style-type: decimal;\\n }\\n .list-disc {\\n list-style-type: disc;\\n }\\n .list-image-none {\\n list-style-image: none;\\n }\\n .\\\\[appearance\\\\:textfield\\\\] {\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n }\\n .appearance-auto {\\n -webkit-appearance: auto;\\n -moz-appearance: auto;\\n appearance: auto;\\n }\\n .appearance-none {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n }\\n .grid-flow-col {\\n grid-auto-flow: column;\\n }\\n .grid-cols-1 {\\n grid-template-columns: repeat(1, minmax(0, 1fr));\\n }\\n .grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n .grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n .grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n .grid-cols-5 {\\n grid-template-columns: repeat(5, minmax(0, 1fr));\\n }\\n .grid-cols-6 {\\n grid-template-columns: repeat(6, minmax(0, 1fr));\\n }\\n .grid-cols-7 {\\n grid-template-columns: repeat(7, minmax(0, 1fr));\\n }\\n .grid-cols-8 {\\n grid-template-columns: repeat(8, minmax(0, 1fr));\\n }\\n .grid-cols-9 {\\n grid-template-columns: repeat(9, minmax(0, 1fr));\\n }\\n .grid-cols-10 {\\n grid-template-columns: repeat(10, minmax(0, 1fr));\\n }\\n .grid-cols-11 {\\n grid-template-columns: repeat(11, minmax(0, 1fr));\\n }\\n .grid-cols-12 {\\n grid-template-columns: repeat(12, minmax(0, 1fr));\\n }\\n .grid-cols-\\\\[1fr_2px_1fr\\\\] {\\n grid-template-columns: 1fr 2px 1fr;\\n }\\n .flex-col {\\n flex-direction: column;\\n }\\n .flex-col-reverse {\\n flex-direction: column-reverse;\\n }\\n .flex-row {\\n flex-direction: row;\\n }\\n .flex-row-reverse {\\n flex-direction: row-reverse;\\n }\\n .flex-nowrap {\\n flex-wrap: nowrap;\\n }\\n .flex-wrap {\\n flex-wrap: wrap;\\n }\\n .flex-wrap-reverse {\\n flex-wrap: wrap-reverse;\\n }\\n .content-around {\\n align-content: space-around;\\n }\\n .content-baseline {\\n align-content: baseline;\\n }\\n .content-between {\\n align-content: space-between;\\n }\\n .content-center {\\n align-content: center;\\n }\\n .content-end {\\n align-content: flex-end;\\n }\\n .content-evenly {\\n align-content: space-evenly;\\n }\\n .content-normal {\\n align-content: normal;\\n }\\n .content-start {\\n align-content: flex-start;\\n }\\n .content-stretch {\\n align-content: stretch;\\n }\\n .items-baseline {\\n align-items: baseline;\\n }\\n .items-baseline-last {\\n align-items: last baseline;\\n }\\n .items-center {\\n align-items: center;\\n }\\n .items-center-safe {\\n align-items: safe center;\\n }\\n .items-end {\\n align-items: flex-end;\\n }\\n .items-end-safe {\\n align-items: safe flex-end;\\n }\\n .items-start {\\n align-items: flex-start;\\n }\\n .items-stretch {\\n align-items: stretch;\\n }\\n .justify-around {\\n justify-content: space-around;\\n }\\n .justify-baseline {\\n justify-content: baseline;\\n }\\n .justify-between {\\n justify-content: space-between;\\n }\\n .justify-center {\\n justify-content: center;\\n }\\n .justify-center-safe {\\n justify-content: safe center;\\n }\\n .justify-end {\\n justify-content: flex-end;\\n }\\n .justify-end-safe {\\n justify-content: safe flex-end;\\n }\\n .justify-evenly {\\n justify-content: space-evenly;\\n }\\n .justify-normal {\\n justify-content: normal;\\n }\\n .justify-start {\\n justify-content: flex-start;\\n }\\n .justify-stretch {\\n justify-content: stretch;\\n }\\n .justify-items-center {\\n justify-items: center;\\n }\\n .justify-items-center-safe {\\n justify-items: safe center;\\n }\\n .justify-items-end {\\n justify-items: end;\\n }\\n .justify-items-end-safe {\\n justify-items: safe end;\\n }\\n .justify-items-normal {\\n justify-items: normal;\\n }\\n .justify-items-start {\\n justify-items: start;\\n }\\n .justify-items-stretch {\\n justify-items: stretch;\\n }\\n .gap-0\\\\.5 {\\n gap: calc(var(--spacing) * 0.5);\\n }\\n .gap-1 {\\n gap: calc(var(--spacing) * 1);\\n }\\n .gap-2 {\\n gap: calc(var(--spacing) * 2);\\n }\\n .gap-3 {\\n gap: calc(var(--spacing) * 3);\\n }\\n .gap-4 {\\n gap: calc(var(--spacing) * 4);\\n }\\n .gap-5 {\\n gap: calc(var(--spacing) * 5);\\n }\\n .gap-6 {\\n gap: calc(var(--spacing) * 6);\\n }\\n .gap-8 {\\n gap: calc(var(--spacing) * 8);\\n }\\n .gap-12 {\\n gap: calc(var(--spacing) * 12);\\n }\\n .gap-x-1 {\\n -moz-column-gap: calc(var(--spacing) * 1);\\n column-gap: calc(var(--spacing) * 1);\\n }\\n .gap-x-2 {\\n -moz-column-gap: calc(var(--spacing) * 2);\\n column-gap: calc(var(--spacing) * 2);\\n }\\n .gap-x-3 {\\n -moz-column-gap: calc(var(--spacing) * 3);\\n column-gap: calc(var(--spacing) * 3);\\n }\\n .gap-x-4 {\\n -moz-column-gap: calc(var(--spacing) * 4);\\n column-gap: calc(var(--spacing) * 4);\\n }\\n .gap-x-5 {\\n -moz-column-gap: calc(var(--spacing) * 5);\\n column-gap: calc(var(--spacing) * 5);\\n }\\n .gap-x-8 {\\n -moz-column-gap: calc(var(--spacing) * 8);\\n column-gap: calc(var(--spacing) * 8);\\n }\\n .gap-x-12 {\\n -moz-column-gap: calc(var(--spacing) * 12);\\n column-gap: calc(var(--spacing) * 12);\\n }\\n .gap-y-1 {\\n row-gap: calc(var(--spacing) * 1);\\n }\\n .gap-y-2 {\\n row-gap: calc(var(--spacing) * 2);\\n }\\n .gap-y-3 {\\n row-gap: calc(var(--spacing) * 3);\\n }\\n .gap-y-4 {\\n row-gap: calc(var(--spacing) * 4);\\n }\\n .gap-y-5 {\\n row-gap: calc(var(--spacing) * 5);\\n }\\n .gap-y-8 {\\n row-gap: calc(var(--spacing) * 8);\\n }\\n .gap-y-12 {\\n row-gap: calc(var(--spacing) * 12);\\n }\\n .divide-background {\\n :where(& > :not(:last-child)) {\\n border-color: var(--color-background);\\n }\\n }\\n .self-start {\\n align-self: flex-start;\\n }\\n .justify-self-start {\\n justify-self: flex-start;\\n }\\n .truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n .\\\\!overflow-hidden {\\n overflow: hidden !important;\\n }\\n .overflow-hidden {\\n overflow: hidden;\\n }\\n .overflow-y-scroll {\\n overflow-y: scroll;\\n }\\n .scroll-auto {\\n scroll-behavior: auto;\\n }\\n .scroll-smooth {\\n scroll-behavior: smooth;\\n }\\n .rounded {\\n border-radius: 0.25rem;\\n }\\n .rounded-2xl {\\n border-radius: var(--radius-2xl);\\n }\\n .rounded-3xl {\\n border-radius: var(--radius-3xl);\\n }\\n .rounded-4xl {\\n border-radius: var(--radius-4xl);\\n }\\n .rounded-full {\\n border-radius: calc(infinity * 1px);\\n }\\n .rounded-lg {\\n border-radius: var(--radius-lg);\\n }\\n .rounded-md {\\n border-radius: var(--radius-md);\\n }\\n .rounded-none {\\n border-radius: 0;\\n }\\n .rounded-sm {\\n border-radius: var(--radius-sm);\\n }\\n .rounded-xl {\\n border-radius: var(--radius-xl);\\n }\\n .rounded-xs {\\n border-radius: var(--radius-xs);\\n }\\n .rounded-l-2xl {\\n border-top-left-radius: var(--radius-2xl);\\n border-bottom-left-radius: var(--radius-2xl);\\n }\\n .rounded-l-md {\\n border-top-left-radius: var(--radius-md);\\n border-bottom-left-radius: var(--radius-md);\\n }\\n .rounded-r-md {\\n border-top-right-radius: var(--radius-md);\\n border-bottom-right-radius: var(--radius-md);\\n }\\n .rounded-tr-2xl {\\n border-top-right-radius: var(--radius-2xl);\\n }\\n .border {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-1 {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-2 {\\n border-style: var(--tw-border-style);\\n border-width: 2px;\\n }\\n .border-3 {\\n border-style: var(--tw-border-style);\\n border-width: 3px;\\n }\\n .border-4 {\\n border-style: var(--tw-border-style);\\n border-width: 4px;\\n }\\n .border-5 {\\n border-style: var(--tw-border-style);\\n border-width: 5px;\\n }\\n .border-6 {\\n border-style: var(--tw-border-style);\\n border-width: 6px;\\n }\\n .border-7 {\\n border-style: var(--tw-border-style);\\n border-width: 7px;\\n }\\n .border-8 {\\n border-style: var(--tw-border-style);\\n border-width: 8px;\\n }\\n .border-9 {\\n border-style: var(--tw-border-style);\\n border-width: 9px;\\n }\\n .border-10 {\\n border-style: var(--tw-border-style);\\n border-width: 10px;\\n }\\n .border-11 {\\n border-style: var(--tw-border-style);\\n border-width: 11px;\\n }\\n .border-12 {\\n border-style: var(--tw-border-style);\\n border-width: 12px;\\n }\\n .border-13 {\\n border-style: var(--tw-border-style);\\n border-width: 13px;\\n }\\n .border-14 {\\n border-style: var(--tw-border-style);\\n border-width: 14px;\\n }\\n .border-15 {\\n border-style: var(--tw-border-style);\\n border-width: 15px;\\n }\\n .border-16 {\\n border-style: var(--tw-border-style);\\n border-width: 16px;\\n }\\n .border-17 {\\n border-style: var(--tw-border-style);\\n border-width: 17px;\\n }\\n .border-18 {\\n border-style: var(--tw-border-style);\\n border-width: 18px;\\n }\\n .border-19 {\\n border-style: var(--tw-border-style);\\n border-width: 19px;\\n }\\n .border-20 {\\n border-style: var(--tw-border-style);\\n border-width: 20px;\\n }\\n .border-x-0 {\\n border-inline-style: var(--tw-border-style);\\n border-inline-width: 0px;\\n }\\n .border-x-2 {\\n border-inline-style: var(--tw-border-style);\\n border-inline-width: 2px;\\n }\\n .border-x-4 {\\n border-inline-style: var(--tw-border-style);\\n border-inline-width: 4px;\\n }\\n .border-x-8 {\\n border-inline-style: var(--tw-border-style);\\n border-inline-width: 8px;\\n }\\n .border-y-0 {\\n border-block-style: var(--tw-border-style);\\n border-block-width: 0px;\\n }\\n .border-y-2 {\\n border-block-style: var(--tw-border-style);\\n border-block-width: 2px;\\n }\\n .border-y-4 {\\n border-block-style: var(--tw-border-style);\\n border-block-width: 4px;\\n }\\n .border-y-8 {\\n border-block-style: var(--tw-border-style);\\n border-block-width: 8px;\\n }\\n .border-s-0 {\\n border-inline-start-style: var(--tw-border-style);\\n border-inline-start-width: 0px;\\n }\\n .border-s-1 {\\n border-inline-start-style: var(--tw-border-style);\\n border-inline-start-width: 1px;\\n }\\n .border-s-2 {\\n border-inline-start-style: var(--tw-border-style);\\n border-inline-start-width: 2px;\\n }\\n .border-s-4 {\\n border-inline-start-style: var(--tw-border-style);\\n border-inline-start-width: 4px;\\n }\\n .border-s-8 {\\n border-inline-start-style: var(--tw-border-style);\\n border-inline-start-width: 8px;\\n }\\n .border-e-0 {\\n border-inline-end-style: var(--tw-border-style);\\n border-inline-end-width: 0px;\\n }\\n .border-e-1 {\\n border-inline-end-style: var(--tw-border-style);\\n border-inline-end-width: 1px;\\n }\\n .border-e-2 {\\n border-inline-end-style: var(--tw-border-style);\\n border-inline-end-width: 2px;\\n }\\n .border-e-4 {\\n border-inline-end-style: var(--tw-border-style);\\n border-inline-end-width: 4px;\\n }\\n .border-e-8 {\\n border-inline-end-style: var(--tw-border-style);\\n border-inline-end-width: 8px;\\n }\\n .border-t-0 {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 0px;\\n }\\n .border-t-2 {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 2px;\\n }\\n .border-t-4 {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 4px;\\n }\\n .border-t-8 {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 8px;\\n }\\n .border-r-0 {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 0px;\\n }\\n .border-r-1 {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 1px;\\n }\\n .border-r-2 {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 2px;\\n }\\n .border-r-4 {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 4px;\\n }\\n .border-r-8 {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 8px;\\n }\\n .border-b {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .border-b-0 {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 0px;\\n }\\n .border-b-2 {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 2px;\\n }\\n .border-b-3 {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 3px;\\n }\\n .border-b-4 {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 4px;\\n }\\n .border-b-8 {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 8px;\\n }\\n .border-l-0 {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 0px;\\n }\\n .border-l-2 {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 2px;\\n }\\n .border-l-4 {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 4px;\\n }\\n .border-l-8 {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 8px;\\n }\\n .border-dashed {\\n --tw-border-style: dashed;\\n border-style: dashed;\\n }\\n .border-dotted {\\n --tw-border-style: dotted;\\n border-style: dotted;\\n }\\n .border-double {\\n --tw-border-style: double;\\n border-style: double;\\n }\\n .border-none {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n .border-solid {\\n --tw-border-style: solid;\\n border-style: solid;\\n }\\n .border-background {\\n border-color: var(--color-background);\\n }\\n .border-black {\\n border-color: var(--color-black);\\n }\\n .border-current {\\n border-color: currentcolor;\\n }\\n .border-danger-50 {\\n border-color: var(--color-danger-50);\\n }\\n .border-danger-100 {\\n border-color: var(--color-danger-100);\\n }\\n .border-danger-200 {\\n border-color: var(--color-danger-200);\\n }\\n .border-danger-300 {\\n border-color: var(--color-danger-300);\\n }\\n .border-danger-400 {\\n border-color: var(--color-danger-400);\\n }\\n .border-danger-500 {\\n border-color: var(--color-danger-500);\\n }\\n .border-danger-600 {\\n border-color: var(--color-danger-600);\\n }\\n .border-danger-700 {\\n border-color: var(--color-danger-700);\\n }\\n .border-danger-800 {\\n border-color: var(--color-danger-800);\\n }\\n .border-danger-900 {\\n border-color: var(--color-danger-900);\\n }\\n .border-danger-950 {\\n border-color: var(--color-danger-950);\\n }\\n .border-font {\\n border-color: var(--color-font);\\n }\\n .border-gray-50 {\\n border-color: var(--color-gray-50);\\n }\\n .border-gray-100 {\\n border-color: var(--color-gray-100);\\n }\\n .border-gray-200 {\\n border-color: var(--color-gray-200);\\n }\\n .border-gray-300 {\\n border-color: var(--color-gray-300);\\n }\\n .border-gray-400 {\\n border-color: var(--color-gray-400);\\n }\\n .border-gray-500 {\\n border-color: var(--color-gray-500);\\n }\\n .border-gray-600 {\\n border-color: var(--color-gray-600);\\n }\\n .border-gray-700 {\\n border-color: var(--color-gray-700);\\n }\\n .border-gray-800 {\\n border-color: var(--color-gray-800);\\n }\\n .border-gray-900 {\\n border-color: var(--color-gray-900);\\n }\\n .border-gray-950 {\\n border-color: var(--color-gray-950);\\n }\\n .border-primary-50 {\\n border-color: var(--color-primary-50);\\n }\\n .border-primary-100 {\\n border-color: var(--color-primary-100);\\n }\\n .border-primary-200 {\\n border-color: var(--color-primary-200);\\n }\\n .border-primary-300 {\\n border-color: var(--color-primary-300);\\n }\\n .border-primary-400 {\\n border-color: var(--color-primary-400);\\n }\\n .border-primary-500 {\\n border-color: var(--color-primary-500);\\n }\\n .border-primary-600 {\\n border-color: var(--color-primary-600);\\n }\\n .border-primary-700 {\\n border-color: var(--color-primary-700);\\n }\\n .border-primary-800 {\\n border-color: var(--color-primary-800);\\n }\\n .border-primary-900 {\\n border-color: var(--color-primary-900);\\n }\\n .border-primary-950 {\\n border-color: var(--color-primary-950);\\n }\\n .border-secondary-50 {\\n border-color: var(--color-secondary-50);\\n }\\n .border-secondary-100 {\\n border-color: var(--color-secondary-100);\\n }\\n .border-secondary-200 {\\n border-color: var(--color-secondary-200);\\n }\\n .border-secondary-300 {\\n border-color: var(--color-secondary-300);\\n }\\n .border-secondary-400 {\\n border-color: var(--color-secondary-400);\\n }\\n .border-secondary-500 {\\n border-color: var(--color-secondary-500);\\n }\\n .border-secondary-600 {\\n border-color: var(--color-secondary-600);\\n }\\n .border-secondary-700 {\\n border-color: var(--color-secondary-700);\\n }\\n .border-secondary-800 {\\n border-color: var(--color-secondary-800);\\n }\\n .border-secondary-900 {\\n border-color: var(--color-secondary-900);\\n }\\n .border-secondary-950 {\\n border-color: var(--color-secondary-950);\\n }\\n .border-success-50 {\\n border-color: var(--color-success-50);\\n }\\n .border-success-100 {\\n border-color: var(--color-success-100);\\n }\\n .border-success-200 {\\n border-color: var(--color-success-200);\\n }\\n .border-success-300 {\\n border-color: var(--color-success-300);\\n }\\n .border-success-400 {\\n border-color: var(--color-success-400);\\n }\\n .border-success-500 {\\n border-color: var(--color-success-500);\\n }\\n .border-success-600 {\\n border-color: var(--color-success-600);\\n }\\n .border-success-700 {\\n border-color: var(--color-success-700);\\n }\\n .border-success-800 {\\n border-color: var(--color-success-800);\\n }\\n .border-success-900 {\\n border-color: var(--color-success-900);\\n }\\n .border-success-950 {\\n border-color: var(--color-success-950);\\n }\\n .border-transparent {\\n border-color: transparent;\\n }\\n .border-warning-50 {\\n border-color: var(--color-warning-50);\\n }\\n .border-warning-100 {\\n border-color: var(--color-warning-100);\\n }\\n .border-warning-200 {\\n border-color: var(--color-warning-200);\\n }\\n .border-warning-300 {\\n border-color: var(--color-warning-300);\\n }\\n .border-warning-400 {\\n border-color: var(--color-warning-400);\\n }\\n .border-warning-500 {\\n border-color: var(--color-warning-500);\\n }\\n .border-warning-600 {\\n border-color: var(--color-warning-600);\\n }\\n .border-warning-700 {\\n border-color: var(--color-warning-700);\\n }\\n .border-warning-800 {\\n border-color: var(--color-warning-800);\\n }\\n .border-warning-900 {\\n border-color: var(--color-warning-900);\\n }\\n .border-warning-950 {\\n border-color: var(--color-warning-950);\\n }\\n .border-white {\\n border-color: var(--color-white);\\n }\\n .border-x-background {\\n border-inline-color: var(--color-background);\\n }\\n .border-y-background {\\n border-block-color: var(--color-background);\\n }\\n .border-s-background {\\n border-inline-start-color: var(--color-background);\\n }\\n .border-s-gray-200 {\\n border-inline-start-color: var(--color-gray-200);\\n }\\n .border-e-background {\\n border-inline-end-color: var(--color-background);\\n }\\n .border-e-gray-200 {\\n border-inline-end-color: var(--color-gray-200);\\n }\\n .border-t-background {\\n border-top-color: var(--color-background);\\n }\\n .border-r-background {\\n border-right-color: var(--color-background);\\n }\\n .border-r-gray-200 {\\n border-right-color: var(--color-gray-200);\\n }\\n .border-b-background {\\n border-bottom-color: var(--color-background);\\n }\\n .border-b-black {\\n border-bottom-color: var(--color-black);\\n }\\n .border-b-current {\\n border-bottom-color: currentcolor;\\n }\\n .border-b-danger-50 {\\n border-bottom-color: var(--color-danger-50);\\n }\\n .border-b-danger-100 {\\n border-bottom-color: var(--color-danger-100);\\n }\\n .border-b-danger-200 {\\n border-bottom-color: var(--color-danger-200);\\n }\\n .border-b-danger-300 {\\n border-bottom-color: var(--color-danger-300);\\n }\\n .border-b-danger-400 {\\n border-bottom-color: var(--color-danger-400);\\n }\\n .border-b-danger-500 {\\n border-bottom-color: var(--color-danger-500);\\n }\\n .border-b-danger-600 {\\n border-bottom-color: var(--color-danger-600);\\n }\\n .border-b-danger-700 {\\n border-bottom-color: var(--color-danger-700);\\n }\\n .border-b-danger-800 {\\n border-bottom-color: var(--color-danger-800);\\n }\\n .border-b-danger-900 {\\n border-bottom-color: var(--color-danger-900);\\n }\\n .border-b-danger-950 {\\n border-bottom-color: var(--color-danger-950);\\n }\\n .border-b-font {\\n border-bottom-color: var(--color-font);\\n }\\n .border-b-gray-50 {\\n border-bottom-color: var(--color-gray-50);\\n }\\n .border-b-gray-100 {\\n border-bottom-color: var(--color-gray-100);\\n }\\n .border-b-gray-200 {\\n border-bottom-color: var(--color-gray-200);\\n }\\n .border-b-gray-300 {\\n border-bottom-color: var(--color-gray-300);\\n }\\n .border-b-gray-400 {\\n border-bottom-color: var(--color-gray-400);\\n }\\n .border-b-gray-500 {\\n border-bottom-color: var(--color-gray-500);\\n }\\n .border-b-gray-600 {\\n border-bottom-color: var(--color-gray-600);\\n }\\n .border-b-gray-700 {\\n border-bottom-color: var(--color-gray-700);\\n }\\n .border-b-gray-800 {\\n border-bottom-color: var(--color-gray-800);\\n }\\n .border-b-gray-900 {\\n border-bottom-color: var(--color-gray-900);\\n }\\n .border-b-gray-950 {\\n border-bottom-color: var(--color-gray-950);\\n }\\n .border-b-primary-50 {\\n border-bottom-color: var(--color-primary-50);\\n }\\n .border-b-primary-100 {\\n border-bottom-color: var(--color-primary-100);\\n }\\n .border-b-primary-200 {\\n border-bottom-color: var(--color-primary-200);\\n }\\n .border-b-primary-300 {\\n border-bottom-color: var(--color-primary-300);\\n }\\n .border-b-primary-400 {\\n border-bottom-color: var(--color-primary-400);\\n }\\n .border-b-primary-500 {\\n border-bottom-color: var(--color-primary-500);\\n }\\n .border-b-primary-600 {\\n border-bottom-color: var(--color-primary-600);\\n }\\n .border-b-primary-700 {\\n border-bottom-color: var(--color-primary-700);\\n }\\n .border-b-primary-800 {\\n border-bottom-color: var(--color-primary-800);\\n }\\n .border-b-primary-900 {\\n border-bottom-color: var(--color-primary-900);\\n }\\n .border-b-primary-950 {\\n border-bottom-color: var(--color-primary-950);\\n }\\n .border-b-secondary-50 {\\n border-bottom-color: var(--color-secondary-50);\\n }\\n .border-b-secondary-100 {\\n border-bottom-color: var(--color-secondary-100);\\n }\\n .border-b-secondary-200 {\\n border-bottom-color: var(--color-secondary-200);\\n }\\n .border-b-secondary-300 {\\n border-bottom-color: var(--color-secondary-300);\\n }\\n .border-b-secondary-400 {\\n border-bottom-color: var(--color-secondary-400);\\n }\\n .border-b-secondary-500 {\\n border-bottom-color: var(--color-secondary-500);\\n }\\n .border-b-secondary-600 {\\n border-bottom-color: var(--color-secondary-600);\\n }\\n .border-b-secondary-700 {\\n border-bottom-color: var(--color-secondary-700);\\n }\\n .border-b-secondary-800 {\\n border-bottom-color: var(--color-secondary-800);\\n }\\n .border-b-secondary-900 {\\n border-bottom-color: var(--color-secondary-900);\\n }\\n .border-b-secondary-950 {\\n border-bottom-color: var(--color-secondary-950);\\n }\\n .border-b-success-50 {\\n border-bottom-color: var(--color-success-50);\\n }\\n .border-b-success-100 {\\n border-bottom-color: var(--color-success-100);\\n }\\n .border-b-success-200 {\\n border-bottom-color: var(--color-success-200);\\n }\\n .border-b-success-300 {\\n border-bottom-color: var(--color-success-300);\\n }\\n .border-b-success-400 {\\n border-bottom-color: var(--color-success-400);\\n }\\n .border-b-success-500 {\\n border-bottom-color: var(--color-success-500);\\n }\\n .border-b-success-600 {\\n border-bottom-color: var(--color-success-600);\\n }\\n .border-b-success-700 {\\n border-bottom-color: var(--color-success-700);\\n }\\n .border-b-success-800 {\\n border-bottom-color: var(--color-success-800);\\n }\\n .border-b-success-900 {\\n border-bottom-color: var(--color-success-900);\\n }\\n .border-b-success-950 {\\n border-bottom-color: var(--color-success-950);\\n }\\n .border-b-transparent {\\n border-bottom-color: transparent;\\n }\\n .border-b-warning-50 {\\n border-bottom-color: var(--color-warning-50);\\n }\\n .border-b-warning-100 {\\n border-bottom-color: var(--color-warning-100);\\n }\\n .border-b-warning-200 {\\n border-bottom-color: var(--color-warning-200);\\n }\\n .border-b-warning-300 {\\n border-bottom-color: var(--color-warning-300);\\n }\\n .border-b-warning-400 {\\n border-bottom-color: var(--color-warning-400);\\n }\\n .border-b-warning-500 {\\n border-bottom-color: var(--color-warning-500);\\n }\\n .border-b-warning-600 {\\n border-bottom-color: var(--color-warning-600);\\n }\\n .border-b-warning-700 {\\n border-bottom-color: var(--color-warning-700);\\n }\\n .border-b-warning-800 {\\n border-bottom-color: var(--color-warning-800);\\n }\\n .border-b-warning-900 {\\n border-bottom-color: var(--color-warning-900);\\n }\\n .border-b-warning-950 {\\n border-bottom-color: var(--color-warning-950);\\n }\\n .border-b-white {\\n border-bottom-color: var(--color-white);\\n }\\n .border-l-background {\\n border-left-color: var(--color-background);\\n }\\n .\\\\!bg-danger-500 {\\n background-color: var(--color-danger-500) !important;\\n }\\n .\\\\!bg-gray-500 {\\n background-color: var(--color-gray-500) !important;\\n }\\n .\\\\!bg-primary-500 {\\n background-color: var(--color-primary-500) !important;\\n }\\n .\\\\!bg-success-500 {\\n background-color: var(--color-success-500) !important;\\n }\\n .\\\\!bg-warning-500 {\\n background-color: var(--color-warning-500) !important;\\n }\\n .bg-amber-200 {\\n background-color: var(--color-amber-200);\\n }\\n .bg-background {\\n background-color: var(--color-background);\\n }\\n .bg-black {\\n background-color: var(--color-black);\\n }\\n .bg-blue-500 {\\n background-color: var(--color-blue-500);\\n }\\n .bg-current {\\n background-color: currentcolor;\\n }\\n .bg-danger-50 {\\n background-color: var(--color-danger-50);\\n }\\n .bg-danger-100 {\\n background-color: var(--color-danger-100);\\n }\\n .bg-danger-200 {\\n background-color: var(--color-danger-200);\\n }\\n .bg-danger-300 {\\n background-color: var(--color-danger-300);\\n }\\n .bg-danger-400 {\\n background-color: var(--color-danger-400);\\n }\\n .bg-danger-500 {\\n background-color: var(--color-danger-500);\\n }\\n .bg-danger-600 {\\n background-color: var(--color-danger-600);\\n }\\n .bg-danger-700 {\\n background-color: var(--color-danger-700);\\n }\\n .bg-danger-800 {\\n background-color: var(--color-danger-800);\\n }\\n .bg-danger-900 {\\n background-color: var(--color-danger-900);\\n }\\n .bg-danger-950 {\\n background-color: var(--color-danger-950);\\n }\\n .bg-font {\\n background-color: var(--color-font);\\n }\\n .bg-gray-50 {\\n background-color: var(--color-gray-50);\\n }\\n .bg-gray-100 {\\n background-color: var(--color-gray-100);\\n }\\n .bg-gray-200 {\\n background-color: var(--color-gray-200);\\n }\\n .bg-gray-300 {\\n background-color: var(--color-gray-300);\\n }\\n .bg-gray-400 {\\n background-color: var(--color-gray-400);\\n }\\n .bg-gray-500 {\\n background-color: var(--color-gray-500);\\n }\\n .bg-gray-600 {\\n background-color: var(--color-gray-600);\\n }\\n .bg-gray-700 {\\n background-color: var(--color-gray-700);\\n }\\n .bg-gray-800 {\\n background-color: var(--color-gray-800);\\n }\\n .bg-gray-900 {\\n background-color: var(--color-gray-900);\\n }\\n .bg-gray-950 {\\n background-color: var(--color-gray-950);\\n }\\n .bg-overlay-black-50 {\\n background-color: var(--color-overlay-black-50);\\n }\\n .bg-overlay-black-80 {\\n background-color: var(--color-overlay-black-80);\\n }\\n .bg-overlay-gradient-black {\\n background-color: var(--color-overlay-gradient-black);\\n }\\n .bg-overlay-gradient-white {\\n background-color: var(--color-overlay-gradient-white);\\n }\\n .bg-overlay-white-50 {\\n background-color: var(--color-overlay-white-50);\\n }\\n .bg-overlay-white-80 {\\n background-color: var(--color-overlay-white-80);\\n }\\n .bg-primary-50 {\\n background-color: var(--color-primary-50);\\n }\\n .bg-primary-100 {\\n background-color: var(--color-primary-100);\\n }\\n .bg-primary-200 {\\n background-color: var(--color-primary-200);\\n }\\n .bg-primary-300 {\\n background-color: var(--color-primary-300);\\n }\\n .bg-primary-400 {\\n background-color: var(--color-primary-400);\\n }\\n .bg-primary-500 {\\n background-color: var(--color-primary-500);\\n }\\n .bg-primary-600 {\\n background-color: var(--color-primary-600);\\n }\\n .bg-primary-700 {\\n background-color: var(--color-primary-700);\\n }\\n .bg-primary-800 {\\n background-color: var(--color-primary-800);\\n }\\n .bg-primary-900 {\\n background-color: var(--color-primary-900);\\n }\\n .bg-primary-950 {\\n background-color: var(--color-primary-950);\\n }\\n .bg-secondary-50 {\\n background-color: var(--color-secondary-50);\\n }\\n .bg-secondary-100 {\\n background-color: var(--color-secondary-100);\\n }\\n .bg-secondary-200 {\\n background-color: var(--color-secondary-200);\\n }\\n .bg-secondary-300 {\\n background-color: var(--color-secondary-300);\\n }\\n .bg-secondary-400 {\\n background-color: var(--color-secondary-400);\\n }\\n .bg-secondary-500 {\\n background-color: var(--color-secondary-500);\\n }\\n .bg-secondary-600 {\\n background-color: var(--color-secondary-600);\\n }\\n .bg-secondary-700 {\\n background-color: var(--color-secondary-700);\\n }\\n .bg-secondary-800 {\\n background-color: var(--color-secondary-800);\\n }\\n .bg-secondary-900 {\\n background-color: var(--color-secondary-900);\\n }\\n .bg-secondary-950 {\\n background-color: var(--color-secondary-950);\\n }\\n .bg-success-50 {\\n background-color: var(--color-success-50);\\n }\\n .bg-success-100 {\\n background-color: var(--color-success-100);\\n }\\n .bg-success-200 {\\n background-color: var(--color-success-200);\\n }\\n .bg-success-300 {\\n background-color: var(--color-success-300);\\n }\\n .bg-success-400 {\\n background-color: var(--color-success-400);\\n }\\n .bg-success-500 {\\n background-color: var(--color-success-500);\\n }\\n .bg-success-600 {\\n background-color: var(--color-success-600);\\n }\\n .bg-success-700 {\\n background-color: var(--color-success-700);\\n }\\n .bg-success-800 {\\n background-color: var(--color-success-800);\\n }\\n .bg-success-900 {\\n background-color: var(--color-success-900);\\n }\\n .bg-success-950 {\\n background-color: var(--color-success-950);\\n }\\n .bg-transparent {\\n background-color: transparent;\\n }\\n .bg-warning-50 {\\n background-color: var(--color-warning-50);\\n }\\n .bg-warning-100 {\\n background-color: var(--color-warning-100);\\n }\\n .bg-warning-200 {\\n background-color: var(--color-warning-200);\\n }\\n .bg-warning-300 {\\n background-color: var(--color-warning-300);\\n }\\n .bg-warning-400 {\\n background-color: var(--color-warning-400);\\n }\\n .bg-warning-500 {\\n background-color: var(--color-warning-500);\\n }\\n .bg-warning-600 {\\n background-color: var(--color-warning-600);\\n }\\n .bg-warning-700 {\\n background-color: var(--color-warning-700);\\n }\\n .bg-warning-800 {\\n background-color: var(--color-warning-800);\\n }\\n .bg-warning-900 {\\n background-color: var(--color-warning-900);\\n }\\n .bg-warning-950 {\\n background-color: var(--color-warning-950);\\n }\\n .bg-white {\\n background-color: var(--color-white);\\n }\\n .bg-yellow-200 {\\n background-color: var(--color-yellow-200);\\n }\\n .via-none {\\n --tw-gradient-via-stops: initial;\\n }\\n .from-font {\\n --tw-gradient-from: var(--color-font);\\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\\n }\\n .mask-none {\\n -webkit-mask-image: none;\\n mask-image: none;\\n }\\n .box-decoration-clone {\\n -webkit-box-decoration-break: clone;\\n box-decoration-break: clone;\\n }\\n .box-decoration-slice {\\n -webkit-box-decoration-break: slice;\\n box-decoration-break: slice;\\n }\\n .mask-type-alpha {\\n mask-type: alpha;\\n }\\n .mask-type-luminance {\\n mask-type: luminance;\\n }\\n .object-contain {\\n -o-object-fit: contain;\\n object-fit: contain;\\n }\\n .object-cover {\\n -o-object-fit: cover;\\n object-fit: cover;\\n }\\n .object-fill {\\n -o-object-fit: fill;\\n object-fit: fill;\\n }\\n .object-none {\\n -o-object-fit: none;\\n object-fit: none;\\n }\\n .object-scale-down {\\n -o-object-fit: scale-down;\\n object-fit: scale-down;\\n }\\n .p-1 {\\n padding: calc(var(--spacing) * 1);\\n }\\n .p-2 {\\n padding: calc(var(--spacing) * 2);\\n }\\n .p-3 {\\n padding: calc(var(--spacing) * 3);\\n }\\n .p-4 {\\n padding: calc(var(--spacing) * 4);\\n }\\n .p-6 {\\n padding: calc(var(--spacing) * 6);\\n }\\n .p-12 {\\n padding: calc(var(--spacing) * 12);\\n }\\n .px-0 {\\n padding-inline: calc(var(--spacing) * 0);\\n }\\n .px-1 {\\n padding-inline: calc(var(--spacing) * 1);\\n }\\n .px-2 {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n .px-3 {\\n padding-inline: calc(var(--spacing) * 3);\\n }\\n .px-4 {\\n padding-inline: calc(var(--spacing) * 4);\\n }\\n .px-\\\\[5\\\\%\\\\] {\\n padding-inline: 5%;\\n }\\n .py-0 {\\n padding-block: calc(var(--spacing) * 0);\\n }\\n .py-1 {\\n padding-block: calc(var(--spacing) * 1);\\n }\\n .py-2 {\\n padding-block: calc(var(--spacing) * 2);\\n }\\n .py-4 {\\n padding-block: calc(var(--spacing) * 4);\\n }\\n .py-12 {\\n padding-block: calc(var(--spacing) * 12);\\n }\\n .ps-4 {\\n padding-inline-start: calc(var(--spacing) * 4);\\n }\\n .ps-8 {\\n padding-inline-start: calc(var(--spacing) * 8);\\n }\\n .pt-\\\\(--spacer-2xl\\\\) {\\n padding-top: var(--spacer-2xl);\\n }\\n .pt-4 {\\n padding-top: calc(var(--spacing) * 4);\\n }\\n .pb-4 {\\n padding-bottom: calc(var(--spacing) * 4);\\n }\\n .pl-2 {\\n padding-left: calc(var(--spacing) * 2);\\n }\\n .text-center {\\n text-align: center;\\n }\\n .text-end {\\n text-align: end;\\n }\\n .text-justify {\\n text-align: justify;\\n }\\n .text-left {\\n text-align: left;\\n }\\n .text-right {\\n text-align: right;\\n }\\n .text-start {\\n text-align: start;\\n }\\n .align-baseline {\\n vertical-align: baseline;\\n }\\n .align-bottom {\\n vertical-align: bottom;\\n }\\n .align-middle {\\n vertical-align: middle;\\n }\\n .align-sub {\\n vertical-align: sub;\\n }\\n .align-super {\\n vertical-align: super;\\n }\\n .align-text-bottom {\\n vertical-align: text-bottom;\\n }\\n .align-text-top {\\n vertical-align: text-top;\\n }\\n .align-top {\\n vertical-align: top;\\n }\\n .font-mono {\\n font-family: var(--font-mono);\\n }\\n .font-sans {\\n font-family: var(--font-sans);\\n }\\n .text-2xl {\\n font-size: var(--text-2xl);\\n line-height: var(--tw-leading, var(--text-2xl--line-height));\\n }\\n .text-base {\\n font-size: var(--text-base);\\n line-height: var(--tw-leading, var(--text-base--line-height));\\n }\\n .text-sm {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading, var(--text-sm--line-height));\\n }\\n .text-xl {\\n font-size: var(--text-xl);\\n line-height: var(--tw-leading, var(--text-xl--line-height));\\n }\\n .text-\\\\(length\\\\:--font-size-small\\\\) {\\n font-size: var(--font-size-small);\\n }\\n .text-\\\\(length\\\\:--text-body\\\\) {\\n font-size: var(--text-body);\\n }\\n .text-\\\\(length\\\\:--text-display-h1\\\\) {\\n font-size: var(--text-display-h1);\\n }\\n .text-\\\\(length\\\\:--text-display-h2\\\\) {\\n font-size: var(--text-display-h2);\\n }\\n .text-\\\\(length\\\\:--text-display-h3\\\\) {\\n font-size: var(--text-display-h3);\\n }\\n .text-\\\\(length\\\\:--text-display-h4\\\\) {\\n font-size: var(--text-display-h4);\\n }\\n .text-\\\\(length\\\\:--text-display-h5\\\\) {\\n font-size: var(--text-display-h5);\\n }\\n .text-\\\\(length\\\\:--text-h1\\\\) {\\n font-size: var(--text-h1);\\n }\\n .text-\\\\(length\\\\:--text-h2\\\\) {\\n font-size: var(--text-h2);\\n }\\n .text-\\\\(length\\\\:--text-h3\\\\) {\\n font-size: var(--text-h3);\\n }\\n .text-\\\\(length\\\\:--text-h4\\\\) {\\n font-size: var(--text-h4);\\n }\\n .text-\\\\(length\\\\:--text-h5\\\\) {\\n font-size: var(--text-h5);\\n }\\n .text-\\\\(length\\\\:--text-h6\\\\) {\\n font-size: var(--text-h6);\\n }\\n .text-\\\\(length\\\\:--text-small\\\\) {\\n font-size: var(--text-small);\\n }\\n .leading-3 {\\n --tw-leading: calc(var(--spacing) * 3);\\n line-height: calc(var(--spacing) * 3);\\n }\\n .leading-4 {\\n --tw-leading: calc(var(--spacing) * 4);\\n line-height: calc(var(--spacing) * 4);\\n }\\n .leading-5 {\\n --tw-leading: calc(var(--spacing) * 5);\\n line-height: calc(var(--spacing) * 5);\\n }\\n .leading-6 {\\n --tw-leading: calc(var(--spacing) * 6);\\n line-height: calc(var(--spacing) * 6);\\n }\\n .leading-7 {\\n --tw-leading: calc(var(--spacing) * 7);\\n line-height: calc(var(--spacing) * 7);\\n }\\n .leading-8 {\\n --tw-leading: calc(var(--spacing) * 8);\\n line-height: calc(var(--spacing) * 8);\\n }\\n .leading-9 {\\n --tw-leading: calc(var(--spacing) * 9);\\n line-height: calc(var(--spacing) * 9);\\n }\\n .leading-10 {\\n --tw-leading: calc(var(--spacing) * 10);\\n line-height: calc(var(--spacing) * 10);\\n }\\n .leading-loose {\\n --tw-leading: var(--leading-loose);\\n line-height: var(--leading-loose);\\n }\\n .leading-none {\\n --tw-leading: 1;\\n line-height: 1;\\n }\\n .leading-normal {\\n --tw-leading: var(--leading-normal);\\n line-height: var(--leading-normal);\\n }\\n .leading-relaxed {\\n --tw-leading: var(--leading-relaxed);\\n line-height: var(--leading-relaxed);\\n }\\n .leading-snug {\\n --tw-leading: var(--leading-snug);\\n line-height: var(--leading-snug);\\n }\\n .leading-tight {\\n --tw-leading: var(--leading-tight);\\n line-height: var(--leading-tight);\\n }\\n .font-black {\\n --tw-font-weight: var(--font-weight-black);\\n font-weight: var(--font-weight-black);\\n }\\n .font-bold {\\n --tw-font-weight: var(--font-weight-bold);\\n font-weight: var(--font-weight-bold);\\n }\\n .font-extrabold {\\n --tw-font-weight: var(--font-weight-extrabold);\\n font-weight: var(--font-weight-extrabold);\\n }\\n .font-extralight {\\n --tw-font-weight: var(--font-weight-extralight);\\n font-weight: var(--font-weight-extralight);\\n }\\n .font-light {\\n --tw-font-weight: var(--font-weight-light);\\n font-weight: var(--font-weight-light);\\n }\\n .font-medium {\\n --tw-font-weight: var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .font-normal {\\n --tw-font-weight: var(--font-weight-normal);\\n font-weight: var(--font-weight-normal);\\n }\\n .font-semibold {\\n --tw-font-weight: var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .font-thin {\\n --tw-font-weight: var(--font-weight-thin);\\n font-weight: var(--font-weight-thin);\\n }\\n .overflow-ellipsis {\\n text-overflow: ellipsis;\\n }\\n .text-clip {\\n text-overflow: clip;\\n }\\n .text-ellipsis {\\n text-overflow: ellipsis;\\n }\\n .whitespace-nowrap {\\n white-space: nowrap;\\n }\\n .text-background {\\n color: var(--color-background);\\n }\\n .text-black {\\n color: var(--color-black);\\n }\\n .text-blue-500 {\\n color: var(--color-blue-500);\\n }\\n .text-current {\\n color: currentcolor;\\n }\\n .text-danger-50 {\\n color: var(--color-danger-50);\\n }\\n .text-danger-100 {\\n color: var(--color-danger-100);\\n }\\n .text-danger-200 {\\n color: var(--color-danger-200);\\n }\\n .text-danger-300 {\\n color: var(--color-danger-300);\\n }\\n .text-danger-400 {\\n color: var(--color-danger-400);\\n }\\n .text-danger-500 {\\n color: var(--color-danger-500);\\n }\\n .text-danger-600 {\\n color: var(--color-danger-600);\\n }\\n .text-danger-700 {\\n color: var(--color-danger-700);\\n }\\n .text-danger-800 {\\n color: var(--color-danger-800);\\n }\\n .text-danger-900 {\\n color: var(--color-danger-900);\\n }\\n .text-danger-950 {\\n color: var(--color-danger-950);\\n }\\n .text-font {\\n color: var(--color-font);\\n }\\n .text-gray-50 {\\n color: var(--color-gray-50);\\n }\\n .text-gray-100 {\\n color: var(--color-gray-100);\\n }\\n .text-gray-200 {\\n color: var(--color-gray-200);\\n }\\n .text-gray-300 {\\n color: var(--color-gray-300);\\n }\\n .text-gray-400 {\\n color: var(--color-gray-400);\\n }\\n .text-gray-500 {\\n color: var(--color-gray-500);\\n }\\n .text-gray-600 {\\n color: var(--color-gray-600);\\n }\\n .text-gray-700 {\\n color: var(--color-gray-700);\\n }\\n .text-gray-800 {\\n color: var(--color-gray-800);\\n }\\n .text-gray-900 {\\n color: var(--color-gray-900);\\n }\\n .text-gray-950 {\\n color: var(--color-gray-950);\\n }\\n .text-primary-50 {\\n color: var(--color-primary-50);\\n }\\n .text-primary-100 {\\n color: var(--color-primary-100);\\n }\\n .text-primary-200 {\\n color: var(--color-primary-200);\\n }\\n .text-primary-300 {\\n color: var(--color-primary-300);\\n }\\n .text-primary-400 {\\n color: var(--color-primary-400);\\n }\\n .text-primary-500 {\\n color: var(--color-primary-500);\\n }\\n .text-primary-600 {\\n color: var(--color-primary-600);\\n }\\n .text-primary-700 {\\n color: var(--color-primary-700);\\n }\\n .text-primary-800 {\\n color: var(--color-primary-800);\\n }\\n .text-primary-900 {\\n color: var(--color-primary-900);\\n }\\n .text-primary-950 {\\n color: var(--color-primary-950);\\n }\\n .text-secondary-50 {\\n color: var(--color-secondary-50);\\n }\\n .text-secondary-100 {\\n color: var(--color-secondary-100);\\n }\\n .text-secondary-200 {\\n color: var(--color-secondary-200);\\n }\\n .text-secondary-300 {\\n color: var(--color-secondary-300);\\n }\\n .text-secondary-400 {\\n color: var(--color-secondary-400);\\n }\\n .text-secondary-500 {\\n color: var(--color-secondary-500);\\n }\\n .text-secondary-600 {\\n color: var(--color-secondary-600);\\n }\\n .text-secondary-700 {\\n color: var(--color-secondary-700);\\n }\\n .text-secondary-800 {\\n color: var(--color-secondary-800);\\n }\\n .text-secondary-900 {\\n color: var(--color-secondary-900);\\n }\\n .text-secondary-950 {\\n color: var(--color-secondary-950);\\n }\\n .text-success-50 {\\n color: var(--color-success-50);\\n }\\n .text-success-100 {\\n color: var(--color-success-100);\\n }\\n .text-success-200 {\\n color: var(--color-success-200);\\n }\\n .text-success-300 {\\n color: var(--color-success-300);\\n }\\n .text-success-400 {\\n color: var(--color-success-400);\\n }\\n .text-success-500 {\\n color: var(--color-success-500);\\n }\\n .text-success-600 {\\n color: var(--color-success-600);\\n }\\n .text-success-700 {\\n color: var(--color-success-700);\\n }\\n .text-success-800 {\\n color: var(--color-success-800);\\n }\\n .text-success-900 {\\n color: var(--color-success-900);\\n }\\n .text-success-950 {\\n color: var(--color-success-950);\\n }\\n .text-transparent {\\n color: transparent;\\n }\\n .text-warning-50 {\\n color: var(--color-warning-50);\\n }\\n .text-warning-100 {\\n color: var(--color-warning-100);\\n }\\n .text-warning-200 {\\n color: var(--color-warning-200);\\n }\\n .text-warning-300 {\\n color: var(--color-warning-300);\\n }\\n .text-warning-400 {\\n color: var(--color-warning-400);\\n }\\n .text-warning-500 {\\n color: var(--color-warning-500);\\n }\\n .text-warning-600 {\\n color: var(--color-warning-600);\\n }\\n .text-warning-700 {\\n color: var(--color-warning-700);\\n }\\n .text-warning-800 {\\n color: var(--color-warning-800);\\n }\\n .text-warning-900 {\\n color: var(--color-warning-900);\\n }\\n .text-warning-950 {\\n color: var(--color-warning-950);\\n }\\n .text-white {\\n color: var(--color-white);\\n }\\n .capitalize {\\n text-transform: capitalize;\\n }\\n .lowercase {\\n text-transform: lowercase;\\n }\\n .normal-case {\\n text-transform: none;\\n }\\n .uppercase {\\n text-transform: uppercase;\\n }\\n .italic {\\n font-style: italic;\\n }\\n .not-italic {\\n font-style: normal;\\n }\\n .diagonal-fractions {\\n --tw-numeric-fraction: diagonal-fractions;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .lining-nums {\\n --tw-numeric-figure: lining-nums;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .oldstyle-nums {\\n --tw-numeric-figure: oldstyle-nums;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .ordinal {\\n --tw-ordinal: ordinal;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .proportional-nums {\\n --tw-numeric-spacing: proportional-nums;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .slashed-zero {\\n --tw-slashed-zero: slashed-zero;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .stacked-fractions {\\n --tw-numeric-fraction: stacked-fractions;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .tabular-nums {\\n --tw-numeric-spacing: tabular-nums;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .normal-nums {\\n font-variant-numeric: normal;\\n }\\n .no-underline {\\n text-decoration-line: none;\\n }\\n .overline {\\n text-decoration-line: overline;\\n }\\n .underline {\\n text-decoration-line: underline;\\n }\\n .antialiased {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n }\\n .subpixel-antialiased {\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: auto;\\n }\\n .opacity-0 {\\n opacity: 0%;\\n }\\n .opacity-50 {\\n opacity: 50%;\\n }\\n .opacity-100 {\\n opacity: 100%;\\n }\\n .shadow {\\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-2xl {\\n --tw-shadow: 0px 10px 14px 8px var(--tw-shadow-color, rgba(0, 0, 0, 0.2)), 0px 4px 4px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-2xs {\\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-inner {\\n --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.06));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-lg {\\n --tw-shadow: 0px 6px 10px 4px var(--tw-shadow-color, rgba(0, 0, 0, 0.15)), 0px 2px 3px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-md {\\n --tw-shadow: 0px 4px 8px 3px var(--tw-shadow-color, rgba(0, 0, 0, 0.15)), 0px 1px 3px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-none {\\n --tw-shadow: 0 0 #0000;\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-sm {\\n --tw-shadow: 0px 1px 2px var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0px 2px 6px 2px var(--tw-shadow-color, rgba(0, 0, 0, 0.15));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-xl {\\n --tw-shadow: 0px 8px 12px 6px var(--tw-shadow-color, rgba(0, 0, 0, 0.15)), 0px 4px 4px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-xs {\\n --tw-shadow: 0px 1px 2px var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0px 1px 3px 1px var(--tw-shadow-color, rgba(0, 0, 0, 0.15));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-0 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-1 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-2 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-4 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-8 {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-amber-50 {\\n --tw-shadow-color: oklch(98.7% 0.022 95.277);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-100 {\\n --tw-shadow-color: oklch(96.2% 0.059 95.617);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-200 {\\n --tw-shadow-color: oklch(92.4% 0.12 95.746);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-300 {\\n --tw-shadow-color: oklch(87.9% 0.169 91.605);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-400 {\\n --tw-shadow-color: oklch(82.8% 0.189 84.429);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-500 {\\n --tw-shadow-color: oklch(76.9% 0.188 70.08);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-600 {\\n --tw-shadow-color: oklch(66.6% 0.179 58.318);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-700 {\\n --tw-shadow-color: oklch(55.5% 0.163 48.998);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-800 {\\n --tw-shadow-color: oklch(47.3% 0.137 46.201);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-900 {\\n --tw-shadow-color: oklch(41.4% 0.112 45.904);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-amber-950 {\\n --tw-shadow-color: oklch(27.9% 0.077 45.635);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-amber-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-background {\\n --tw-shadow-color: #fff;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-background) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-black {\\n --tw-shadow-color: #000;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-black) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-50 {\\n --tw-shadow-color: oklch(97% 0.014 254.604);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-100 {\\n --tw-shadow-color: oklch(93.2% 0.032 255.585);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-200 {\\n --tw-shadow-color: oklch(88.2% 0.059 254.128);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-300 {\\n --tw-shadow-color: oklch(80.9% 0.105 251.813);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-400 {\\n --tw-shadow-color: oklch(70.7% 0.165 254.624);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-500 {\\n --tw-shadow-color: oklch(62.3% 0.214 259.815);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-600 {\\n --tw-shadow-color: oklch(54.6% 0.245 262.881);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-700 {\\n --tw-shadow-color: oklch(48.8% 0.243 264.376);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-800 {\\n --tw-shadow-color: oklch(42.4% 0.199 265.638);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-900 {\\n --tw-shadow-color: oklch(37.9% 0.146 265.522);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-blue-950 {\\n --tw-shadow-color: oklch(28.2% 0.091 267.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-blue-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-current {\\n --tw-shadow-color: currentcolor;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, currentcolor var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-50 {\\n --tw-shadow-color: oklch(98.4% 0.019 200.873);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-100 {\\n --tw-shadow-color: oklch(95.6% 0.045 203.388);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-200 {\\n --tw-shadow-color: oklch(91.7% 0.08 205.041);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-300 {\\n --tw-shadow-color: oklch(86.5% 0.127 207.078);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-400 {\\n --tw-shadow-color: oklch(78.9% 0.154 211.53);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-500 {\\n --tw-shadow-color: oklch(71.5% 0.143 215.221);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-600 {\\n --tw-shadow-color: oklch(60.9% 0.126 221.723);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-700 {\\n --tw-shadow-color: oklch(52% 0.105 223.128);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-800 {\\n --tw-shadow-color: oklch(45% 0.085 224.283);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-900 {\\n --tw-shadow-color: oklch(39.8% 0.07 227.392);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-cyan-950 {\\n --tw-shadow-color: oklch(30.2% 0.056 229.695);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-cyan-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-50 {\\n --tw-shadow-color: oklch(97.9% 0.021 166.113);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-100 {\\n --tw-shadow-color: oklch(95% 0.052 163.051);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-200 {\\n --tw-shadow-color: oklch(90.5% 0.093 164.15);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-300 {\\n --tw-shadow-color: oklch(84.5% 0.143 164.978);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-400 {\\n --tw-shadow-color: oklch(76.5% 0.177 163.223);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-500 {\\n --tw-shadow-color: oklch(69.6% 0.17 162.48);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-600 {\\n --tw-shadow-color: oklch(59.6% 0.145 163.225);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-700 {\\n --tw-shadow-color: oklch(50.8% 0.118 165.612);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-800 {\\n --tw-shadow-color: oklch(43.2% 0.095 166.913);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-900 {\\n --tw-shadow-color: oklch(37.8% 0.077 168.94);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-emerald-950 {\\n --tw-shadow-color: oklch(26.2% 0.051 172.552);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-emerald-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-50 {\\n --tw-shadow-color: oklch(97.7% 0.017 320.058);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-100 {\\n --tw-shadow-color: oklch(95.2% 0.037 318.852);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-200 {\\n --tw-shadow-color: oklch(90.3% 0.076 319.62);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-300 {\\n --tw-shadow-color: oklch(83.3% 0.145 321.434);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-400 {\\n --tw-shadow-color: oklch(74% 0.238 322.16);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-500 {\\n --tw-shadow-color: oklch(66.7% 0.295 322.15);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-600 {\\n --tw-shadow-color: oklch(59.1% 0.293 322.896);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-700 {\\n --tw-shadow-color: oklch(51.8% 0.253 323.949);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-800 {\\n --tw-shadow-color: oklch(45.2% 0.211 324.591);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-900 {\\n --tw-shadow-color: oklch(40.1% 0.17 325.612);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-fuchsia-950 {\\n --tw-shadow-color: oklch(29.3% 0.136 325.661);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-fuchsia-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-50 {\\n --tw-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-100 {\\n --tw-shadow-color: oklch(97% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-200 {\\n --tw-shadow-color: oklch(92.2% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-300 {\\n --tw-shadow-color: oklch(87% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-400 {\\n --tw-shadow-color: oklch(70.8% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-500 {\\n --tw-shadow-color: oklch(55.6% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-600 {\\n --tw-shadow-color: oklch(43.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-700 {\\n --tw-shadow-color: oklch(37.1% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-800 {\\n --tw-shadow-color: oklch(26.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-900 {\\n --tw-shadow-color: oklch(20.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-gray-950 {\\n --tw-shadow-color: oklch(14.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-gray-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-50 {\\n --tw-shadow-color: oklch(98.2% 0.018 155.826);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-100 {\\n --tw-shadow-color: oklch(96.2% 0.044 156.743);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-200 {\\n --tw-shadow-color: oklch(92.5% 0.084 155.995);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-300 {\\n --tw-shadow-color: oklch(87.1% 0.15 154.449);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-400 {\\n --tw-shadow-color: oklch(79.2% 0.209 151.711);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-500 {\\n --tw-shadow-color: oklch(72.3% 0.219 149.579);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-600 {\\n --tw-shadow-color: oklch(62.7% 0.194 149.214);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-700 {\\n --tw-shadow-color: oklch(52.7% 0.154 150.069);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-800 {\\n --tw-shadow-color: oklch(44.8% 0.119 151.328);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-900 {\\n --tw-shadow-color: oklch(39.3% 0.095 152.535);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-green-950 {\\n --tw-shadow-color: oklch(26.6% 0.065 152.934);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-green-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-50 {\\n --tw-shadow-color: oklch(96.2% 0.018 272.314);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-100 {\\n --tw-shadow-color: oklch(93% 0.034 272.788);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-200 {\\n --tw-shadow-color: oklch(87% 0.065 274.039);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-300 {\\n --tw-shadow-color: oklch(78.5% 0.115 274.713);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-400 {\\n --tw-shadow-color: oklch(67.3% 0.182 276.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-500 {\\n --tw-shadow-color: oklch(58.5% 0.233 277.117);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-600 {\\n --tw-shadow-color: oklch(51.1% 0.262 276.966);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-700 {\\n --tw-shadow-color: oklch(45.7% 0.24 277.023);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-800 {\\n --tw-shadow-color: oklch(39.8% 0.195 277.366);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-900 {\\n --tw-shadow-color: oklch(35.9% 0.144 278.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-indigo-950 {\\n --tw-shadow-color: oklch(25.7% 0.09 281.288);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-indigo-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-inherit {\\n --tw-shadow-color: inherit;\\n }\\n .shadow-initial {\\n --tw-shadow-color: initial;\\n }\\n .shadow-lime-50 {\\n --tw-shadow-color: oklch(98.6% 0.031 120.757);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-100 {\\n --tw-shadow-color: oklch(96.7% 0.067 122.328);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-200 {\\n --tw-shadow-color: oklch(93.8% 0.127 124.321);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-300 {\\n --tw-shadow-color: oklch(89.7% 0.196 126.665);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-400 {\\n --tw-shadow-color: oklch(84.1% 0.238 128.85);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-500 {\\n --tw-shadow-color: oklch(76.8% 0.233 130.85);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-600 {\\n --tw-shadow-color: oklch(64.8% 0.2 131.684);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-700 {\\n --tw-shadow-color: oklch(53.2% 0.157 131.589);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-800 {\\n --tw-shadow-color: oklch(45.3% 0.124 130.933);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-900 {\\n --tw-shadow-color: oklch(40.5% 0.101 131.063);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-lime-950 {\\n --tw-shadow-color: oklch(27.4% 0.072 132.109);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-lime-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-50 {\\n --tw-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-100 {\\n --tw-shadow-color: oklch(97% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-200 {\\n --tw-shadow-color: oklch(92.2% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-300 {\\n --tw-shadow-color: oklch(87% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-400 {\\n --tw-shadow-color: oklch(70.8% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-500 {\\n --tw-shadow-color: oklch(55.6% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-600 {\\n --tw-shadow-color: oklch(43.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-700 {\\n --tw-shadow-color: oklch(37.1% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-800 {\\n --tw-shadow-color: oklch(26.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-900 {\\n --tw-shadow-color: oklch(20.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-neutral-950 {\\n --tw-shadow-color: oklch(14.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-neutral-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-50 {\\n --tw-shadow-color: oklch(98% 0.016 73.684);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-100 {\\n --tw-shadow-color: oklch(95.4% 0.038 75.164);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-200 {\\n --tw-shadow-color: oklch(90.1% 0.076 70.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-300 {\\n --tw-shadow-color: oklch(83.7% 0.128 66.29);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-400 {\\n --tw-shadow-color: oklch(75% 0.183 55.934);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-500 {\\n --tw-shadow-color: oklch(70.5% 0.213 47.604);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-600 {\\n --tw-shadow-color: oklch(64.6% 0.222 41.116);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-700 {\\n --tw-shadow-color: oklch(55.3% 0.195 38.402);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-800 {\\n --tw-shadow-color: oklch(47% 0.157 37.304);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-900 {\\n --tw-shadow-color: oklch(40.8% 0.123 38.172);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-orange-950 {\\n --tw-shadow-color: oklch(26.6% 0.079 36.259);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-50 {\\n --tw-shadow-color: oklch(97.1% 0.014 343.198);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-100 {\\n --tw-shadow-color: oklch(94.8% 0.028 342.258);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-200 {\\n --tw-shadow-color: oklch(89.9% 0.061 343.231);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-300 {\\n --tw-shadow-color: oklch(82.3% 0.12 346.018);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-400 {\\n --tw-shadow-color: oklch(71.8% 0.202 349.761);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-500 {\\n --tw-shadow-color: oklch(65.6% 0.241 354.308);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-600 {\\n --tw-shadow-color: oklch(59.2% 0.249 0.584);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-700 {\\n --tw-shadow-color: oklch(52.5% 0.223 3.958);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-800 {\\n --tw-shadow-color: oklch(45.9% 0.187 3.815);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-900 {\\n --tw-shadow-color: oklch(40.8% 0.153 2.432);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-pink-950 {\\n --tw-shadow-color: oklch(28.4% 0.109 3.907);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-pink-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-50 {\\n --tw-shadow-color: oklch(97.7% 0.014 308.299);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-100 {\\n --tw-shadow-color: oklch(94.6% 0.033 307.174);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-200 {\\n --tw-shadow-color: oklch(90.2% 0.063 306.703);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-300 {\\n --tw-shadow-color: oklch(82.7% 0.119 306.383);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-400 {\\n --tw-shadow-color: oklch(71.4% 0.203 305.504);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-500 {\\n --tw-shadow-color: oklch(62.7% 0.265 303.9);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-600 {\\n --tw-shadow-color: oklch(55.8% 0.288 302.321);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-700 {\\n --tw-shadow-color: oklch(49.6% 0.265 301.924);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-800 {\\n --tw-shadow-color: oklch(43.8% 0.218 303.724);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-900 {\\n --tw-shadow-color: oklch(38.1% 0.176 304.987);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-purple-950 {\\n --tw-shadow-color: oklch(29.1% 0.149 302.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-purple-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-50 {\\n --tw-shadow-color: oklch(97.1% 0.013 17.38);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-100 {\\n --tw-shadow-color: oklch(93.6% 0.032 17.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-200 {\\n --tw-shadow-color: oklch(88.5% 0.062 18.334);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-300 {\\n --tw-shadow-color: oklch(80.8% 0.114 19.571);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-400 {\\n --tw-shadow-color: oklch(70.4% 0.191 22.216);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-500 {\\n --tw-shadow-color: oklch(63.7% 0.237 25.331);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-600 {\\n --tw-shadow-color: oklch(57.7% 0.245 27.325);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-700 {\\n --tw-shadow-color: oklch(50.5% 0.213 27.518);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-800 {\\n --tw-shadow-color: oklch(44.4% 0.177 26.899);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-900 {\\n --tw-shadow-color: oklch(39.6% 0.141 25.723);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-red-950 {\\n --tw-shadow-color: oklch(25.8% 0.092 26.042);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-red-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-50 {\\n --tw-shadow-color: oklch(96.9% 0.015 12.422);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-100 {\\n --tw-shadow-color: oklch(94.1% 0.03 12.58);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-200 {\\n --tw-shadow-color: oklch(89.2% 0.058 10.001);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-300 {\\n --tw-shadow-color: oklch(81% 0.117 11.638);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-400 {\\n --tw-shadow-color: oklch(71.2% 0.194 13.428);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-500 {\\n --tw-shadow-color: oklch(64.5% 0.246 16.439);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-600 {\\n --tw-shadow-color: oklch(58.6% 0.253 17.585);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-700 {\\n --tw-shadow-color: oklch(51.4% 0.222 16.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-800 {\\n --tw-shadow-color: oklch(45.5% 0.188 13.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-900 {\\n --tw-shadow-color: oklch(41% 0.159 10.272);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-rose-950 {\\n --tw-shadow-color: oklch(27.1% 0.105 12.094);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-rose-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-50 {\\n --tw-shadow-color: oklch(97.7% 0.013 236.62);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-100 {\\n --tw-shadow-color: oklch(95.1% 0.026 236.824);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-200 {\\n --tw-shadow-color: oklch(90.1% 0.058 230.902);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-300 {\\n --tw-shadow-color: oklch(82.8% 0.111 230.318);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-400 {\\n --tw-shadow-color: oklch(74.6% 0.16 232.661);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-500 {\\n --tw-shadow-color: oklch(68.5% 0.169 237.323);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-600 {\\n --tw-shadow-color: oklch(58.8% 0.158 241.966);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-700 {\\n --tw-shadow-color: oklch(50% 0.134 242.749);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-800 {\\n --tw-shadow-color: oklch(44.3% 0.11 240.79);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-900 {\\n --tw-shadow-color: oklch(39.1% 0.09 240.876);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-sky-950 {\\n --tw-shadow-color: oklch(29.3% 0.066 243.157);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-sky-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-50 {\\n --tw-shadow-color: oklch(98.4% 0.003 247.858);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-100 {\\n --tw-shadow-color: oklch(96.8% 0.007 247.896);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-200 {\\n --tw-shadow-color: oklch(92.9% 0.013 255.508);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-300 {\\n --tw-shadow-color: oklch(86.9% 0.022 252.894);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-400 {\\n --tw-shadow-color: oklch(70.4% 0.04 256.788);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-500 {\\n --tw-shadow-color: oklch(55.4% 0.046 257.417);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-600 {\\n --tw-shadow-color: oklch(44.6% 0.043 257.281);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-700 {\\n --tw-shadow-color: oklch(37.2% 0.044 257.287);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-800 {\\n --tw-shadow-color: oklch(27.9% 0.041 260.031);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-900 {\\n --tw-shadow-color: oklch(20.8% 0.042 265.755);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-slate-950 {\\n --tw-shadow-color: oklch(12.9% 0.042 264.695);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-slate-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-50 {\\n --tw-shadow-color: oklch(98.5% 0.001 106.423);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-100 {\\n --tw-shadow-color: oklch(97% 0.001 106.424);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-200 {\\n --tw-shadow-color: oklch(92.3% 0.003 48.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-300 {\\n --tw-shadow-color: oklch(86.9% 0.005 56.366);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-400 {\\n --tw-shadow-color: oklch(70.9% 0.01 56.259);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-500 {\\n --tw-shadow-color: oklch(55.3% 0.013 58.071);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-600 {\\n --tw-shadow-color: oklch(44.4% 0.011 73.639);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-700 {\\n --tw-shadow-color: oklch(37.4% 0.01 67.558);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-800 {\\n --tw-shadow-color: oklch(26.8% 0.007 34.298);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-900 {\\n --tw-shadow-color: oklch(21.6% 0.006 56.043);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-stone-950 {\\n --tw-shadow-color: oklch(14.7% 0.004 49.25);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-stone-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-50 {\\n --tw-shadow-color: oklch(98.4% 0.014 180.72);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-100 {\\n --tw-shadow-color: oklch(95.3% 0.051 180.801);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-200 {\\n --tw-shadow-color: oklch(91% 0.096 180.426);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-300 {\\n --tw-shadow-color: oklch(85.5% 0.138 181.071);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-400 {\\n --tw-shadow-color: oklch(77.7% 0.152 181.912);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-500 {\\n --tw-shadow-color: oklch(70.4% 0.14 182.503);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-600 {\\n --tw-shadow-color: oklch(60% 0.118 184.704);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-700 {\\n --tw-shadow-color: oklch(51.1% 0.096 186.391);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-800 {\\n --tw-shadow-color: oklch(43.7% 0.078 188.216);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-900 {\\n --tw-shadow-color: oklch(38.6% 0.063 188.416);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-teal-950 {\\n --tw-shadow-color: oklch(27.7% 0.046 192.524);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-teal-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-transparent {\\n --tw-shadow-color: transparent;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, transparent var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-50 {\\n --tw-shadow-color: oklch(96.9% 0.016 293.756);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-100 {\\n --tw-shadow-color: oklch(94.3% 0.029 294.588);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-200 {\\n --tw-shadow-color: oklch(89.4% 0.057 293.283);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-300 {\\n --tw-shadow-color: oklch(81.1% 0.111 293.571);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-400 {\\n --tw-shadow-color: oklch(70.2% 0.183 293.541);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-500 {\\n --tw-shadow-color: oklch(60.6% 0.25 292.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-600 {\\n --tw-shadow-color: oklch(54.1% 0.281 293.009);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-700 {\\n --tw-shadow-color: oklch(49.1% 0.27 292.581);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-800 {\\n --tw-shadow-color: oklch(43.2% 0.232 292.759);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-900 {\\n --tw-shadow-color: oklch(38% 0.189 293.745);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-violet-950 {\\n --tw-shadow-color: oklch(28.3% 0.141 291.089);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-violet-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-white {\\n --tw-shadow-color: #fff;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-white) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-50 {\\n --tw-shadow-color: oklch(98.7% 0.026 102.212);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-100 {\\n --tw-shadow-color: oklch(97.3% 0.071 103.193);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-200 {\\n --tw-shadow-color: oklch(94.5% 0.129 101.54);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-300 {\\n --tw-shadow-color: oklch(90.5% 0.182 98.111);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-400 {\\n --tw-shadow-color: oklch(85.2% 0.199 91.936);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-500 {\\n --tw-shadow-color: oklch(79.5% 0.184 86.047);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-600 {\\n --tw-shadow-color: oklch(68.1% 0.162 75.834);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-700 {\\n --tw-shadow-color: oklch(55.4% 0.135 66.442);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-800 {\\n --tw-shadow-color: oklch(47.6% 0.114 61.907);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-900 {\\n --tw-shadow-color: oklch(42.1% 0.095 57.708);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-yellow-950 {\\n --tw-shadow-color: oklch(28.6% 0.066 53.813);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-yellow-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-50 {\\n --tw-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-50) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-100 {\\n --tw-shadow-color: oklch(96.7% 0.001 286.375);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-100) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-200 {\\n --tw-shadow-color: oklch(92% 0.004 286.32);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-200) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-300 {\\n --tw-shadow-color: oklch(87.1% 0.006 286.286);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-300) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-400 {\\n --tw-shadow-color: oklch(70.5% 0.015 286.067);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-400) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-500 {\\n --tw-shadow-color: oklch(55.2% 0.016 285.938);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-500) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-600 {\\n --tw-shadow-color: oklch(44.2% 0.017 285.786);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-600) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-700 {\\n --tw-shadow-color: oklch(37% 0.013 285.805);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-700) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-800 {\\n --tw-shadow-color: oklch(27.4% 0.006 286.033);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-800) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-900 {\\n --tw-shadow-color: oklch(21% 0.006 285.885);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-900) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .shadow-zinc-950 {\\n --tw-shadow-color: oklch(14.1% 0.005 285.823);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-shadow-color: color-mix(in oklab, var(--color-zinc-950) var(--tw-shadow-alpha), transparent);\\n }\\n }\\n .ring-amber-50 {\\n --tw-ring-color: var(--color-amber-50);\\n }\\n .ring-amber-100 {\\n --tw-ring-color: var(--color-amber-100);\\n }\\n .ring-amber-200 {\\n --tw-ring-color: var(--color-amber-200);\\n }\\n .ring-amber-300 {\\n --tw-ring-color: var(--color-amber-300);\\n }\\n .ring-amber-400 {\\n --tw-ring-color: var(--color-amber-400);\\n }\\n .ring-amber-500 {\\n --tw-ring-color: var(--color-amber-500);\\n }\\n .ring-amber-600 {\\n --tw-ring-color: var(--color-amber-600);\\n }\\n .ring-amber-700 {\\n --tw-ring-color: var(--color-amber-700);\\n }\\n .ring-amber-800 {\\n --tw-ring-color: var(--color-amber-800);\\n }\\n .ring-amber-900 {\\n --tw-ring-color: var(--color-amber-900);\\n }\\n .ring-amber-950 {\\n --tw-ring-color: var(--color-amber-950);\\n }\\n .ring-background {\\n --tw-ring-color: var(--color-background);\\n }\\n .ring-black {\\n --tw-ring-color: var(--color-black);\\n }\\n .ring-blue-50 {\\n --tw-ring-color: var(--color-blue-50);\\n }\\n .ring-blue-100 {\\n --tw-ring-color: var(--color-blue-100);\\n }\\n .ring-blue-200 {\\n --tw-ring-color: var(--color-blue-200);\\n }\\n .ring-blue-300 {\\n --tw-ring-color: var(--color-blue-300);\\n }\\n .ring-blue-400 {\\n --tw-ring-color: var(--color-blue-400);\\n }\\n .ring-blue-500 {\\n --tw-ring-color: var(--color-blue-500);\\n }\\n .ring-blue-600 {\\n --tw-ring-color: var(--color-blue-600);\\n }\\n .ring-blue-700 {\\n --tw-ring-color: var(--color-blue-700);\\n }\\n .ring-blue-800 {\\n --tw-ring-color: var(--color-blue-800);\\n }\\n .ring-blue-900 {\\n --tw-ring-color: var(--color-blue-900);\\n }\\n .ring-blue-950 {\\n --tw-ring-color: var(--color-blue-950);\\n }\\n .ring-current {\\n --tw-ring-color: currentcolor;\\n }\\n .ring-cyan-50 {\\n --tw-ring-color: var(--color-cyan-50);\\n }\\n .ring-cyan-100 {\\n --tw-ring-color: var(--color-cyan-100);\\n }\\n .ring-cyan-200 {\\n --tw-ring-color: var(--color-cyan-200);\\n }\\n .ring-cyan-300 {\\n --tw-ring-color: var(--color-cyan-300);\\n }\\n .ring-cyan-400 {\\n --tw-ring-color: var(--color-cyan-400);\\n }\\n .ring-cyan-500 {\\n --tw-ring-color: var(--color-cyan-500);\\n }\\n .ring-cyan-600 {\\n --tw-ring-color: var(--color-cyan-600);\\n }\\n .ring-cyan-700 {\\n --tw-ring-color: var(--color-cyan-700);\\n }\\n .ring-cyan-800 {\\n --tw-ring-color: var(--color-cyan-800);\\n }\\n .ring-cyan-900 {\\n --tw-ring-color: var(--color-cyan-900);\\n }\\n .ring-cyan-950 {\\n --tw-ring-color: var(--color-cyan-950);\\n }\\n .ring-emerald-50 {\\n --tw-ring-color: var(--color-emerald-50);\\n }\\n .ring-emerald-100 {\\n --tw-ring-color: var(--color-emerald-100);\\n }\\n .ring-emerald-200 {\\n --tw-ring-color: var(--color-emerald-200);\\n }\\n .ring-emerald-300 {\\n --tw-ring-color: var(--color-emerald-300);\\n }\\n .ring-emerald-400 {\\n --tw-ring-color: var(--color-emerald-400);\\n }\\n .ring-emerald-500 {\\n --tw-ring-color: var(--color-emerald-500);\\n }\\n .ring-emerald-600 {\\n --tw-ring-color: var(--color-emerald-600);\\n }\\n .ring-emerald-700 {\\n --tw-ring-color: var(--color-emerald-700);\\n }\\n .ring-emerald-800 {\\n --tw-ring-color: var(--color-emerald-800);\\n }\\n .ring-emerald-900 {\\n --tw-ring-color: var(--color-emerald-900);\\n }\\n .ring-emerald-950 {\\n --tw-ring-color: var(--color-emerald-950);\\n }\\n .ring-fuchsia-50 {\\n --tw-ring-color: var(--color-fuchsia-50);\\n }\\n .ring-fuchsia-100 {\\n --tw-ring-color: var(--color-fuchsia-100);\\n }\\n .ring-fuchsia-200 {\\n --tw-ring-color: var(--color-fuchsia-200);\\n }\\n .ring-fuchsia-300 {\\n --tw-ring-color: var(--color-fuchsia-300);\\n }\\n .ring-fuchsia-400 {\\n --tw-ring-color: var(--color-fuchsia-400);\\n }\\n .ring-fuchsia-500 {\\n --tw-ring-color: var(--color-fuchsia-500);\\n }\\n .ring-fuchsia-600 {\\n --tw-ring-color: var(--color-fuchsia-600);\\n }\\n .ring-fuchsia-700 {\\n --tw-ring-color: var(--color-fuchsia-700);\\n }\\n .ring-fuchsia-800 {\\n --tw-ring-color: var(--color-fuchsia-800);\\n }\\n .ring-fuchsia-900 {\\n --tw-ring-color: var(--color-fuchsia-900);\\n }\\n .ring-fuchsia-950 {\\n --tw-ring-color: var(--color-fuchsia-950);\\n }\\n .ring-gray-50 {\\n --tw-ring-color: var(--color-gray-50);\\n }\\n .ring-gray-100 {\\n --tw-ring-color: var(--color-gray-100);\\n }\\n .ring-gray-200 {\\n --tw-ring-color: var(--color-gray-200);\\n }\\n .ring-gray-300 {\\n --tw-ring-color: var(--color-gray-300);\\n }\\n .ring-gray-400 {\\n --tw-ring-color: var(--color-gray-400);\\n }\\n .ring-gray-500 {\\n --tw-ring-color: var(--color-gray-500);\\n }\\n .ring-gray-600 {\\n --tw-ring-color: var(--color-gray-600);\\n }\\n .ring-gray-700 {\\n --tw-ring-color: var(--color-gray-700);\\n }\\n .ring-gray-800 {\\n --tw-ring-color: var(--color-gray-800);\\n }\\n .ring-gray-900 {\\n --tw-ring-color: var(--color-gray-900);\\n }\\n .ring-gray-950 {\\n --tw-ring-color: var(--color-gray-950);\\n }\\n .ring-green-50 {\\n --tw-ring-color: var(--color-green-50);\\n }\\n .ring-green-100 {\\n --tw-ring-color: var(--color-green-100);\\n }\\n .ring-green-200 {\\n --tw-ring-color: var(--color-green-200);\\n }\\n .ring-green-300 {\\n --tw-ring-color: var(--color-green-300);\\n }\\n .ring-green-400 {\\n --tw-ring-color: var(--color-green-400);\\n }\\n .ring-green-500 {\\n --tw-ring-color: var(--color-green-500);\\n }\\n .ring-green-600 {\\n --tw-ring-color: var(--color-green-600);\\n }\\n .ring-green-700 {\\n --tw-ring-color: var(--color-green-700);\\n }\\n .ring-green-800 {\\n --tw-ring-color: var(--color-green-800);\\n }\\n .ring-green-900 {\\n --tw-ring-color: var(--color-green-900);\\n }\\n .ring-green-950 {\\n --tw-ring-color: var(--color-green-950);\\n }\\n .ring-indigo-50 {\\n --tw-ring-color: var(--color-indigo-50);\\n }\\n .ring-indigo-100 {\\n --tw-ring-color: var(--color-indigo-100);\\n }\\n .ring-indigo-200 {\\n --tw-ring-color: var(--color-indigo-200);\\n }\\n .ring-indigo-300 {\\n --tw-ring-color: var(--color-indigo-300);\\n }\\n .ring-indigo-400 {\\n --tw-ring-color: var(--color-indigo-400);\\n }\\n .ring-indigo-500 {\\n --tw-ring-color: var(--color-indigo-500);\\n }\\n .ring-indigo-600 {\\n --tw-ring-color: var(--color-indigo-600);\\n }\\n .ring-indigo-700 {\\n --tw-ring-color: var(--color-indigo-700);\\n }\\n .ring-indigo-800 {\\n --tw-ring-color: var(--color-indigo-800);\\n }\\n .ring-indigo-900 {\\n --tw-ring-color: var(--color-indigo-900);\\n }\\n .ring-indigo-950 {\\n --tw-ring-color: var(--color-indigo-950);\\n }\\n .ring-inherit {\\n --tw-ring-color: inherit;\\n }\\n .ring-lime-50 {\\n --tw-ring-color: var(--color-lime-50);\\n }\\n .ring-lime-100 {\\n --tw-ring-color: var(--color-lime-100);\\n }\\n .ring-lime-200 {\\n --tw-ring-color: var(--color-lime-200);\\n }\\n .ring-lime-300 {\\n --tw-ring-color: var(--color-lime-300);\\n }\\n .ring-lime-400 {\\n --tw-ring-color: var(--color-lime-400);\\n }\\n .ring-lime-500 {\\n --tw-ring-color: var(--color-lime-500);\\n }\\n .ring-lime-600 {\\n --tw-ring-color: var(--color-lime-600);\\n }\\n .ring-lime-700 {\\n --tw-ring-color: var(--color-lime-700);\\n }\\n .ring-lime-800 {\\n --tw-ring-color: var(--color-lime-800);\\n }\\n .ring-lime-900 {\\n --tw-ring-color: var(--color-lime-900);\\n }\\n .ring-lime-950 {\\n --tw-ring-color: var(--color-lime-950);\\n }\\n .ring-neutral-50 {\\n --tw-ring-color: var(--color-neutral-50);\\n }\\n .ring-neutral-100 {\\n --tw-ring-color: var(--color-neutral-100);\\n }\\n .ring-neutral-200 {\\n --tw-ring-color: var(--color-neutral-200);\\n }\\n .ring-neutral-300 {\\n --tw-ring-color: var(--color-neutral-300);\\n }\\n .ring-neutral-400 {\\n --tw-ring-color: var(--color-neutral-400);\\n }\\n .ring-neutral-500 {\\n --tw-ring-color: var(--color-neutral-500);\\n }\\n .ring-neutral-600 {\\n --tw-ring-color: var(--color-neutral-600);\\n }\\n .ring-neutral-700 {\\n --tw-ring-color: var(--color-neutral-700);\\n }\\n .ring-neutral-800 {\\n --tw-ring-color: var(--color-neutral-800);\\n }\\n .ring-neutral-900 {\\n --tw-ring-color: var(--color-neutral-900);\\n }\\n .ring-neutral-950 {\\n --tw-ring-color: var(--color-neutral-950);\\n }\\n .ring-orange-50 {\\n --tw-ring-color: var(--color-orange-50);\\n }\\n .ring-orange-100 {\\n --tw-ring-color: var(--color-orange-100);\\n }\\n .ring-orange-200 {\\n --tw-ring-color: var(--color-orange-200);\\n }\\n .ring-orange-300 {\\n --tw-ring-color: var(--color-orange-300);\\n }\\n .ring-orange-400 {\\n --tw-ring-color: var(--color-orange-400);\\n }\\n .ring-orange-500 {\\n --tw-ring-color: var(--color-orange-500);\\n }\\n .ring-orange-600 {\\n --tw-ring-color: var(--color-orange-600);\\n }\\n .ring-orange-700 {\\n --tw-ring-color: var(--color-orange-700);\\n }\\n .ring-orange-800 {\\n --tw-ring-color: var(--color-orange-800);\\n }\\n .ring-orange-900 {\\n --tw-ring-color: var(--color-orange-900);\\n }\\n .ring-orange-950 {\\n --tw-ring-color: var(--color-orange-950);\\n }\\n .ring-pink-50 {\\n --tw-ring-color: var(--color-pink-50);\\n }\\n .ring-pink-100 {\\n --tw-ring-color: var(--color-pink-100);\\n }\\n .ring-pink-200 {\\n --tw-ring-color: var(--color-pink-200);\\n }\\n .ring-pink-300 {\\n --tw-ring-color: var(--color-pink-300);\\n }\\n .ring-pink-400 {\\n --tw-ring-color: var(--color-pink-400);\\n }\\n .ring-pink-500 {\\n --tw-ring-color: var(--color-pink-500);\\n }\\n .ring-pink-600 {\\n --tw-ring-color: var(--color-pink-600);\\n }\\n .ring-pink-700 {\\n --tw-ring-color: var(--color-pink-700);\\n }\\n .ring-pink-800 {\\n --tw-ring-color: var(--color-pink-800);\\n }\\n .ring-pink-900 {\\n --tw-ring-color: var(--color-pink-900);\\n }\\n .ring-pink-950 {\\n --tw-ring-color: var(--color-pink-950);\\n }\\n .ring-purple-50 {\\n --tw-ring-color: var(--color-purple-50);\\n }\\n .ring-purple-100 {\\n --tw-ring-color: var(--color-purple-100);\\n }\\n .ring-purple-200 {\\n --tw-ring-color: var(--color-purple-200);\\n }\\n .ring-purple-300 {\\n --tw-ring-color: var(--color-purple-300);\\n }\\n .ring-purple-400 {\\n --tw-ring-color: var(--color-purple-400);\\n }\\n .ring-purple-500 {\\n --tw-ring-color: var(--color-purple-500);\\n }\\n .ring-purple-600 {\\n --tw-ring-color: var(--color-purple-600);\\n }\\n .ring-purple-700 {\\n --tw-ring-color: var(--color-purple-700);\\n }\\n .ring-purple-800 {\\n --tw-ring-color: var(--color-purple-800);\\n }\\n .ring-purple-900 {\\n --tw-ring-color: var(--color-purple-900);\\n }\\n .ring-purple-950 {\\n --tw-ring-color: var(--color-purple-950);\\n }\\n .ring-red-50 {\\n --tw-ring-color: var(--color-red-50);\\n }\\n .ring-red-100 {\\n --tw-ring-color: var(--color-red-100);\\n }\\n .ring-red-200 {\\n --tw-ring-color: var(--color-red-200);\\n }\\n .ring-red-300 {\\n --tw-ring-color: var(--color-red-300);\\n }\\n .ring-red-400 {\\n --tw-ring-color: var(--color-red-400);\\n }\\n .ring-red-500 {\\n --tw-ring-color: var(--color-red-500);\\n }\\n .ring-red-600 {\\n --tw-ring-color: var(--color-red-600);\\n }\\n .ring-red-700 {\\n --tw-ring-color: var(--color-red-700);\\n }\\n .ring-red-800 {\\n --tw-ring-color: var(--color-red-800);\\n }\\n .ring-red-900 {\\n --tw-ring-color: var(--color-red-900);\\n }\\n .ring-red-950 {\\n --tw-ring-color: var(--color-red-950);\\n }\\n .ring-rose-50 {\\n --tw-ring-color: var(--color-rose-50);\\n }\\n .ring-rose-100 {\\n --tw-ring-color: var(--color-rose-100);\\n }\\n .ring-rose-200 {\\n --tw-ring-color: var(--color-rose-200);\\n }\\n .ring-rose-300 {\\n --tw-ring-color: var(--color-rose-300);\\n }\\n .ring-rose-400 {\\n --tw-ring-color: var(--color-rose-400);\\n }\\n .ring-rose-500 {\\n --tw-ring-color: var(--color-rose-500);\\n }\\n .ring-rose-600 {\\n --tw-ring-color: var(--color-rose-600);\\n }\\n .ring-rose-700 {\\n --tw-ring-color: var(--color-rose-700);\\n }\\n .ring-rose-800 {\\n --tw-ring-color: var(--color-rose-800);\\n }\\n .ring-rose-900 {\\n --tw-ring-color: var(--color-rose-900);\\n }\\n .ring-rose-950 {\\n --tw-ring-color: var(--color-rose-950);\\n }\\n .ring-sky-50 {\\n --tw-ring-color: var(--color-sky-50);\\n }\\n .ring-sky-100 {\\n --tw-ring-color: var(--color-sky-100);\\n }\\n .ring-sky-200 {\\n --tw-ring-color: var(--color-sky-200);\\n }\\n .ring-sky-300 {\\n --tw-ring-color: var(--color-sky-300);\\n }\\n .ring-sky-400 {\\n --tw-ring-color: var(--color-sky-400);\\n }\\n .ring-sky-500 {\\n --tw-ring-color: var(--color-sky-500);\\n }\\n .ring-sky-600 {\\n --tw-ring-color: var(--color-sky-600);\\n }\\n .ring-sky-700 {\\n --tw-ring-color: var(--color-sky-700);\\n }\\n .ring-sky-800 {\\n --tw-ring-color: var(--color-sky-800);\\n }\\n .ring-sky-900 {\\n --tw-ring-color: var(--color-sky-900);\\n }\\n .ring-sky-950 {\\n --tw-ring-color: var(--color-sky-950);\\n }\\n .ring-slate-50 {\\n --tw-ring-color: var(--color-slate-50);\\n }\\n .ring-slate-100 {\\n --tw-ring-color: var(--color-slate-100);\\n }\\n .ring-slate-200 {\\n --tw-ring-color: var(--color-slate-200);\\n }\\n .ring-slate-300 {\\n --tw-ring-color: var(--color-slate-300);\\n }\\n .ring-slate-400 {\\n --tw-ring-color: var(--color-slate-400);\\n }\\n .ring-slate-500 {\\n --tw-ring-color: var(--color-slate-500);\\n }\\n .ring-slate-600 {\\n --tw-ring-color: var(--color-slate-600);\\n }\\n .ring-slate-700 {\\n --tw-ring-color: var(--color-slate-700);\\n }\\n .ring-slate-800 {\\n --tw-ring-color: var(--color-slate-800);\\n }\\n .ring-slate-900 {\\n --tw-ring-color: var(--color-slate-900);\\n }\\n .ring-slate-950 {\\n --tw-ring-color: var(--color-slate-950);\\n }\\n .ring-stone-50 {\\n --tw-ring-color: var(--color-stone-50);\\n }\\n .ring-stone-100 {\\n --tw-ring-color: var(--color-stone-100);\\n }\\n .ring-stone-200 {\\n --tw-ring-color: var(--color-stone-200);\\n }\\n .ring-stone-300 {\\n --tw-ring-color: var(--color-stone-300);\\n }\\n .ring-stone-400 {\\n --tw-ring-color: var(--color-stone-400);\\n }\\n .ring-stone-500 {\\n --tw-ring-color: var(--color-stone-500);\\n }\\n .ring-stone-600 {\\n --tw-ring-color: var(--color-stone-600);\\n }\\n .ring-stone-700 {\\n --tw-ring-color: var(--color-stone-700);\\n }\\n .ring-stone-800 {\\n --tw-ring-color: var(--color-stone-800);\\n }\\n .ring-stone-900 {\\n --tw-ring-color: var(--color-stone-900);\\n }\\n .ring-stone-950 {\\n --tw-ring-color: var(--color-stone-950);\\n }\\n .ring-teal-50 {\\n --tw-ring-color: var(--color-teal-50);\\n }\\n .ring-teal-100 {\\n --tw-ring-color: var(--color-teal-100);\\n }\\n .ring-teal-200 {\\n --tw-ring-color: var(--color-teal-200);\\n }\\n .ring-teal-300 {\\n --tw-ring-color: var(--color-teal-300);\\n }\\n .ring-teal-400 {\\n --tw-ring-color: var(--color-teal-400);\\n }\\n .ring-teal-500 {\\n --tw-ring-color: var(--color-teal-500);\\n }\\n .ring-teal-600 {\\n --tw-ring-color: var(--color-teal-600);\\n }\\n .ring-teal-700 {\\n --tw-ring-color: var(--color-teal-700);\\n }\\n .ring-teal-800 {\\n --tw-ring-color: var(--color-teal-800);\\n }\\n .ring-teal-900 {\\n --tw-ring-color: var(--color-teal-900);\\n }\\n .ring-teal-950 {\\n --tw-ring-color: var(--color-teal-950);\\n }\\n .ring-transparent {\\n --tw-ring-color: transparent;\\n }\\n .ring-violet-50 {\\n --tw-ring-color: var(--color-violet-50);\\n }\\n .ring-violet-100 {\\n --tw-ring-color: var(--color-violet-100);\\n }\\n .ring-violet-200 {\\n --tw-ring-color: var(--color-violet-200);\\n }\\n .ring-violet-300 {\\n --tw-ring-color: var(--color-violet-300);\\n }\\n .ring-violet-400 {\\n --tw-ring-color: var(--color-violet-400);\\n }\\n .ring-violet-500 {\\n --tw-ring-color: var(--color-violet-500);\\n }\\n .ring-violet-600 {\\n --tw-ring-color: var(--color-violet-600);\\n }\\n .ring-violet-700 {\\n --tw-ring-color: var(--color-violet-700);\\n }\\n .ring-violet-800 {\\n --tw-ring-color: var(--color-violet-800);\\n }\\n .ring-violet-900 {\\n --tw-ring-color: var(--color-violet-900);\\n }\\n .ring-violet-950 {\\n --tw-ring-color: var(--color-violet-950);\\n }\\n .ring-white {\\n --tw-ring-color: var(--color-white);\\n }\\n .ring-yellow-50 {\\n --tw-ring-color: var(--color-yellow-50);\\n }\\n .ring-yellow-100 {\\n --tw-ring-color: var(--color-yellow-100);\\n }\\n .ring-yellow-200 {\\n --tw-ring-color: var(--color-yellow-200);\\n }\\n .ring-yellow-300 {\\n --tw-ring-color: var(--color-yellow-300);\\n }\\n .ring-yellow-400 {\\n --tw-ring-color: var(--color-yellow-400);\\n }\\n .ring-yellow-500 {\\n --tw-ring-color: var(--color-yellow-500);\\n }\\n .ring-yellow-600 {\\n --tw-ring-color: var(--color-yellow-600);\\n }\\n .ring-yellow-700 {\\n --tw-ring-color: var(--color-yellow-700);\\n }\\n .ring-yellow-800 {\\n --tw-ring-color: var(--color-yellow-800);\\n }\\n .ring-yellow-900 {\\n --tw-ring-color: var(--color-yellow-900);\\n }\\n .ring-yellow-950 {\\n --tw-ring-color: var(--color-yellow-950);\\n }\\n .ring-zinc-50 {\\n --tw-ring-color: var(--color-zinc-50);\\n }\\n .ring-zinc-100 {\\n --tw-ring-color: var(--color-zinc-100);\\n }\\n .ring-zinc-200 {\\n --tw-ring-color: var(--color-zinc-200);\\n }\\n .ring-zinc-300 {\\n --tw-ring-color: var(--color-zinc-300);\\n }\\n .ring-zinc-400 {\\n --tw-ring-color: var(--color-zinc-400);\\n }\\n .ring-zinc-500 {\\n --tw-ring-color: var(--color-zinc-500);\\n }\\n .ring-zinc-600 {\\n --tw-ring-color: var(--color-zinc-600);\\n }\\n .ring-zinc-700 {\\n --tw-ring-color: var(--color-zinc-700);\\n }\\n .ring-zinc-800 {\\n --tw-ring-color: var(--color-zinc-800);\\n }\\n .ring-zinc-900 {\\n --tw-ring-color: var(--color-zinc-900);\\n }\\n .ring-zinc-950 {\\n --tw-ring-color: var(--color-zinc-950);\\n }\\n .ring-offset-0 {\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n }\\n .ring-offset-1 {\\n --tw-ring-offset-width: 1px;\\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n }\\n .ring-offset-2 {\\n --tw-ring-offset-width: 2px;\\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n }\\n .ring-offset-4 {\\n --tw-ring-offset-width: 4px;\\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n }\\n .ring-offset-8 {\\n --tw-ring-offset-width: 8px;\\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n }\\n .ring-offset-amber-50 {\\n --tw-ring-offset-color: var(--color-amber-50);\\n }\\n .ring-offset-amber-100 {\\n --tw-ring-offset-color: var(--color-amber-100);\\n }\\n .ring-offset-amber-200 {\\n --tw-ring-offset-color: var(--color-amber-200);\\n }\\n .ring-offset-amber-300 {\\n --tw-ring-offset-color: var(--color-amber-300);\\n }\\n .ring-offset-amber-400 {\\n --tw-ring-offset-color: var(--color-amber-400);\\n }\\n .ring-offset-amber-500 {\\n --tw-ring-offset-color: var(--color-amber-500);\\n }\\n .ring-offset-amber-600 {\\n --tw-ring-offset-color: var(--color-amber-600);\\n }\\n .ring-offset-amber-700 {\\n --tw-ring-offset-color: var(--color-amber-700);\\n }\\n .ring-offset-amber-800 {\\n --tw-ring-offset-color: var(--color-amber-800);\\n }\\n .ring-offset-amber-900 {\\n --tw-ring-offset-color: var(--color-amber-900);\\n }\\n .ring-offset-amber-950 {\\n --tw-ring-offset-color: var(--color-amber-950);\\n }\\n .ring-offset-background {\\n --tw-ring-offset-color: var(--color-background);\\n }\\n .ring-offset-black {\\n --tw-ring-offset-color: var(--color-black);\\n }\\n .ring-offset-blue-50 {\\n --tw-ring-offset-color: var(--color-blue-50);\\n }\\n .ring-offset-blue-100 {\\n --tw-ring-offset-color: var(--color-blue-100);\\n }\\n .ring-offset-blue-200 {\\n --tw-ring-offset-color: var(--color-blue-200);\\n }\\n .ring-offset-blue-300 {\\n --tw-ring-offset-color: var(--color-blue-300);\\n }\\n .ring-offset-blue-400 {\\n --tw-ring-offset-color: var(--color-blue-400);\\n }\\n .ring-offset-blue-500 {\\n --tw-ring-offset-color: var(--color-blue-500);\\n }\\n .ring-offset-blue-600 {\\n --tw-ring-offset-color: var(--color-blue-600);\\n }\\n .ring-offset-blue-700 {\\n --tw-ring-offset-color: var(--color-blue-700);\\n }\\n .ring-offset-blue-800 {\\n --tw-ring-offset-color: var(--color-blue-800);\\n }\\n .ring-offset-blue-900 {\\n --tw-ring-offset-color: var(--color-blue-900);\\n }\\n .ring-offset-blue-950 {\\n --tw-ring-offset-color: var(--color-blue-950);\\n }\\n .ring-offset-current {\\n --tw-ring-offset-color: currentcolor;\\n }\\n .ring-offset-cyan-50 {\\n --tw-ring-offset-color: var(--color-cyan-50);\\n }\\n .ring-offset-cyan-100 {\\n --tw-ring-offset-color: var(--color-cyan-100);\\n }\\n .ring-offset-cyan-200 {\\n --tw-ring-offset-color: var(--color-cyan-200);\\n }\\n .ring-offset-cyan-300 {\\n --tw-ring-offset-color: var(--color-cyan-300);\\n }\\n .ring-offset-cyan-400 {\\n --tw-ring-offset-color: var(--color-cyan-400);\\n }\\n .ring-offset-cyan-500 {\\n --tw-ring-offset-color: var(--color-cyan-500);\\n }\\n .ring-offset-cyan-600 {\\n --tw-ring-offset-color: var(--color-cyan-600);\\n }\\n .ring-offset-cyan-700 {\\n --tw-ring-offset-color: var(--color-cyan-700);\\n }\\n .ring-offset-cyan-800 {\\n --tw-ring-offset-color: var(--color-cyan-800);\\n }\\n .ring-offset-cyan-900 {\\n --tw-ring-offset-color: var(--color-cyan-900);\\n }\\n .ring-offset-cyan-950 {\\n --tw-ring-offset-color: var(--color-cyan-950);\\n }\\n .ring-offset-emerald-50 {\\n --tw-ring-offset-color: var(--color-emerald-50);\\n }\\n .ring-offset-emerald-100 {\\n --tw-ring-offset-color: var(--color-emerald-100);\\n }\\n .ring-offset-emerald-200 {\\n --tw-ring-offset-color: var(--color-emerald-200);\\n }\\n .ring-offset-emerald-300 {\\n --tw-ring-offset-color: var(--color-emerald-300);\\n }\\n .ring-offset-emerald-400 {\\n --tw-ring-offset-color: var(--color-emerald-400);\\n }\\n .ring-offset-emerald-500 {\\n --tw-ring-offset-color: var(--color-emerald-500);\\n }\\n .ring-offset-emerald-600 {\\n --tw-ring-offset-color: var(--color-emerald-600);\\n }\\n .ring-offset-emerald-700 {\\n --tw-ring-offset-color: var(--color-emerald-700);\\n }\\n .ring-offset-emerald-800 {\\n --tw-ring-offset-color: var(--color-emerald-800);\\n }\\n .ring-offset-emerald-900 {\\n --tw-ring-offset-color: var(--color-emerald-900);\\n }\\n .ring-offset-emerald-950 {\\n --tw-ring-offset-color: var(--color-emerald-950);\\n }\\n .ring-offset-fuchsia-50 {\\n --tw-ring-offset-color: var(--color-fuchsia-50);\\n }\\n .ring-offset-fuchsia-100 {\\n --tw-ring-offset-color: var(--color-fuchsia-100);\\n }\\n .ring-offset-fuchsia-200 {\\n --tw-ring-offset-color: var(--color-fuchsia-200);\\n }\\n .ring-offset-fuchsia-300 {\\n --tw-ring-offset-color: var(--color-fuchsia-300);\\n }\\n .ring-offset-fuchsia-400 {\\n --tw-ring-offset-color: var(--color-fuchsia-400);\\n }\\n .ring-offset-fuchsia-500 {\\n --tw-ring-offset-color: var(--color-fuchsia-500);\\n }\\n .ring-offset-fuchsia-600 {\\n --tw-ring-offset-color: var(--color-fuchsia-600);\\n }\\n .ring-offset-fuchsia-700 {\\n --tw-ring-offset-color: var(--color-fuchsia-700);\\n }\\n .ring-offset-fuchsia-800 {\\n --tw-ring-offset-color: var(--color-fuchsia-800);\\n }\\n .ring-offset-fuchsia-900 {\\n --tw-ring-offset-color: var(--color-fuchsia-900);\\n }\\n .ring-offset-fuchsia-950 {\\n --tw-ring-offset-color: var(--color-fuchsia-950);\\n }\\n .ring-offset-gray-50 {\\n --tw-ring-offset-color: var(--color-gray-50);\\n }\\n .ring-offset-gray-100 {\\n --tw-ring-offset-color: var(--color-gray-100);\\n }\\n .ring-offset-gray-200 {\\n --tw-ring-offset-color: var(--color-gray-200);\\n }\\n .ring-offset-gray-300 {\\n --tw-ring-offset-color: var(--color-gray-300);\\n }\\n .ring-offset-gray-400 {\\n --tw-ring-offset-color: var(--color-gray-400);\\n }\\n .ring-offset-gray-500 {\\n --tw-ring-offset-color: var(--color-gray-500);\\n }\\n .ring-offset-gray-600 {\\n --tw-ring-offset-color: var(--color-gray-600);\\n }\\n .ring-offset-gray-700 {\\n --tw-ring-offset-color: var(--color-gray-700);\\n }\\n .ring-offset-gray-800 {\\n --tw-ring-offset-color: var(--color-gray-800);\\n }\\n .ring-offset-gray-900 {\\n --tw-ring-offset-color: var(--color-gray-900);\\n }\\n .ring-offset-gray-950 {\\n --tw-ring-offset-color: var(--color-gray-950);\\n }\\n .ring-offset-green-50 {\\n --tw-ring-offset-color: var(--color-green-50);\\n }\\n .ring-offset-green-100 {\\n --tw-ring-offset-color: var(--color-green-100);\\n }\\n .ring-offset-green-200 {\\n --tw-ring-offset-color: var(--color-green-200);\\n }\\n .ring-offset-green-300 {\\n --tw-ring-offset-color: var(--color-green-300);\\n }\\n .ring-offset-green-400 {\\n --tw-ring-offset-color: var(--color-green-400);\\n }\\n .ring-offset-green-500 {\\n --tw-ring-offset-color: var(--color-green-500);\\n }\\n .ring-offset-green-600 {\\n --tw-ring-offset-color: var(--color-green-600);\\n }\\n .ring-offset-green-700 {\\n --tw-ring-offset-color: var(--color-green-700);\\n }\\n .ring-offset-green-800 {\\n --tw-ring-offset-color: var(--color-green-800);\\n }\\n .ring-offset-green-900 {\\n --tw-ring-offset-color: var(--color-green-900);\\n }\\n .ring-offset-green-950 {\\n --tw-ring-offset-color: var(--color-green-950);\\n }\\n .ring-offset-indigo-50 {\\n --tw-ring-offset-color: var(--color-indigo-50);\\n }\\n .ring-offset-indigo-100 {\\n --tw-ring-offset-color: var(--color-indigo-100);\\n }\\n .ring-offset-indigo-200 {\\n --tw-ring-offset-color: var(--color-indigo-200);\\n }\\n .ring-offset-indigo-300 {\\n --tw-ring-offset-color: var(--color-indigo-300);\\n }\\n .ring-offset-indigo-400 {\\n --tw-ring-offset-color: var(--color-indigo-400);\\n }\\n .ring-offset-indigo-500 {\\n --tw-ring-offset-color: var(--color-indigo-500);\\n }\\n .ring-offset-indigo-600 {\\n --tw-ring-offset-color: var(--color-indigo-600);\\n }\\n .ring-offset-indigo-700 {\\n --tw-ring-offset-color: var(--color-indigo-700);\\n }\\n .ring-offset-indigo-800 {\\n --tw-ring-offset-color: var(--color-indigo-800);\\n }\\n .ring-offset-indigo-900 {\\n --tw-ring-offset-color: var(--color-indigo-900);\\n }\\n .ring-offset-indigo-950 {\\n --tw-ring-offset-color: var(--color-indigo-950);\\n }\\n .ring-offset-inherit {\\n --tw-ring-offset-color: inherit;\\n }\\n .ring-offset-lime-50 {\\n --tw-ring-offset-color: var(--color-lime-50);\\n }\\n .ring-offset-lime-100 {\\n --tw-ring-offset-color: var(--color-lime-100);\\n }\\n .ring-offset-lime-200 {\\n --tw-ring-offset-color: var(--color-lime-200);\\n }\\n .ring-offset-lime-300 {\\n --tw-ring-offset-color: var(--color-lime-300);\\n }\\n .ring-offset-lime-400 {\\n --tw-ring-offset-color: var(--color-lime-400);\\n }\\n .ring-offset-lime-500 {\\n --tw-ring-offset-color: var(--color-lime-500);\\n }\\n .ring-offset-lime-600 {\\n --tw-ring-offset-color: var(--color-lime-600);\\n }\\n .ring-offset-lime-700 {\\n --tw-ring-offset-color: var(--color-lime-700);\\n }\\n .ring-offset-lime-800 {\\n --tw-ring-offset-color: var(--color-lime-800);\\n }\\n .ring-offset-lime-900 {\\n --tw-ring-offset-color: var(--color-lime-900);\\n }\\n .ring-offset-lime-950 {\\n --tw-ring-offset-color: var(--color-lime-950);\\n }\\n .ring-offset-neutral-50 {\\n --tw-ring-offset-color: var(--color-neutral-50);\\n }\\n .ring-offset-neutral-100 {\\n --tw-ring-offset-color: var(--color-neutral-100);\\n }\\n .ring-offset-neutral-200 {\\n --tw-ring-offset-color: var(--color-neutral-200);\\n }\\n .ring-offset-neutral-300 {\\n --tw-ring-offset-color: var(--color-neutral-300);\\n }\\n .ring-offset-neutral-400 {\\n --tw-ring-offset-color: var(--color-neutral-400);\\n }\\n .ring-offset-neutral-500 {\\n --tw-ring-offset-color: var(--color-neutral-500);\\n }\\n .ring-offset-neutral-600 {\\n --tw-ring-offset-color: var(--color-neutral-600);\\n }\\n .ring-offset-neutral-700 {\\n --tw-ring-offset-color: var(--color-neutral-700);\\n }\\n .ring-offset-neutral-800 {\\n --tw-ring-offset-color: var(--color-neutral-800);\\n }\\n .ring-offset-neutral-900 {\\n --tw-ring-offset-color: var(--color-neutral-900);\\n }\\n .ring-offset-neutral-950 {\\n --tw-ring-offset-color: var(--color-neutral-950);\\n }\\n .ring-offset-orange-50 {\\n --tw-ring-offset-color: var(--color-orange-50);\\n }\\n .ring-offset-orange-100 {\\n --tw-ring-offset-color: var(--color-orange-100);\\n }\\n .ring-offset-orange-200 {\\n --tw-ring-offset-color: var(--color-orange-200);\\n }\\n .ring-offset-orange-300 {\\n --tw-ring-offset-color: var(--color-orange-300);\\n }\\n .ring-offset-orange-400 {\\n --tw-ring-offset-color: var(--color-orange-400);\\n }\\n .ring-offset-orange-500 {\\n --tw-ring-offset-color: var(--color-orange-500);\\n }\\n .ring-offset-orange-600 {\\n --tw-ring-offset-color: var(--color-orange-600);\\n }\\n .ring-offset-orange-700 {\\n --tw-ring-offset-color: var(--color-orange-700);\\n }\\n .ring-offset-orange-800 {\\n --tw-ring-offset-color: var(--color-orange-800);\\n }\\n .ring-offset-orange-900 {\\n --tw-ring-offset-color: var(--color-orange-900);\\n }\\n .ring-offset-orange-950 {\\n --tw-ring-offset-color: var(--color-orange-950);\\n }\\n .ring-offset-pink-50 {\\n --tw-ring-offset-color: var(--color-pink-50);\\n }\\n .ring-offset-pink-100 {\\n --tw-ring-offset-color: var(--color-pink-100);\\n }\\n .ring-offset-pink-200 {\\n --tw-ring-offset-color: var(--color-pink-200);\\n }\\n .ring-offset-pink-300 {\\n --tw-ring-offset-color: var(--color-pink-300);\\n }\\n .ring-offset-pink-400 {\\n --tw-ring-offset-color: var(--color-pink-400);\\n }\\n .ring-offset-pink-500 {\\n --tw-ring-offset-color: var(--color-pink-500);\\n }\\n .ring-offset-pink-600 {\\n --tw-ring-offset-color: var(--color-pink-600);\\n }\\n .ring-offset-pink-700 {\\n --tw-ring-offset-color: var(--color-pink-700);\\n }\\n .ring-offset-pink-800 {\\n --tw-ring-offset-color: var(--color-pink-800);\\n }\\n .ring-offset-pink-900 {\\n --tw-ring-offset-color: var(--color-pink-900);\\n }\\n .ring-offset-pink-950 {\\n --tw-ring-offset-color: var(--color-pink-950);\\n }\\n .ring-offset-purple-50 {\\n --tw-ring-offset-color: var(--color-purple-50);\\n }\\n .ring-offset-purple-100 {\\n --tw-ring-offset-color: var(--color-purple-100);\\n }\\n .ring-offset-purple-200 {\\n --tw-ring-offset-color: var(--color-purple-200);\\n }\\n .ring-offset-purple-300 {\\n --tw-ring-offset-color: var(--color-purple-300);\\n }\\n .ring-offset-purple-400 {\\n --tw-ring-offset-color: var(--color-purple-400);\\n }\\n .ring-offset-purple-500 {\\n --tw-ring-offset-color: var(--color-purple-500);\\n }\\n .ring-offset-purple-600 {\\n --tw-ring-offset-color: var(--color-purple-600);\\n }\\n .ring-offset-purple-700 {\\n --tw-ring-offset-color: var(--color-purple-700);\\n }\\n .ring-offset-purple-800 {\\n --tw-ring-offset-color: var(--color-purple-800);\\n }\\n .ring-offset-purple-900 {\\n --tw-ring-offset-color: var(--color-purple-900);\\n }\\n .ring-offset-purple-950 {\\n --tw-ring-offset-color: var(--color-purple-950);\\n }\\n .ring-offset-red-50 {\\n --tw-ring-offset-color: var(--color-red-50);\\n }\\n .ring-offset-red-100 {\\n --tw-ring-offset-color: var(--color-red-100);\\n }\\n .ring-offset-red-200 {\\n --tw-ring-offset-color: var(--color-red-200);\\n }\\n .ring-offset-red-300 {\\n --tw-ring-offset-color: var(--color-red-300);\\n }\\n .ring-offset-red-400 {\\n --tw-ring-offset-color: var(--color-red-400);\\n }\\n .ring-offset-red-500 {\\n --tw-ring-offset-color: var(--color-red-500);\\n }\\n .ring-offset-red-600 {\\n --tw-ring-offset-color: var(--color-red-600);\\n }\\n .ring-offset-red-700 {\\n --tw-ring-offset-color: var(--color-red-700);\\n }\\n .ring-offset-red-800 {\\n --tw-ring-offset-color: var(--color-red-800);\\n }\\n .ring-offset-red-900 {\\n --tw-ring-offset-color: var(--color-red-900);\\n }\\n .ring-offset-red-950 {\\n --tw-ring-offset-color: var(--color-red-950);\\n }\\n .ring-offset-rose-50 {\\n --tw-ring-offset-color: var(--color-rose-50);\\n }\\n .ring-offset-rose-100 {\\n --tw-ring-offset-color: var(--color-rose-100);\\n }\\n .ring-offset-rose-200 {\\n --tw-ring-offset-color: var(--color-rose-200);\\n }\\n .ring-offset-rose-300 {\\n --tw-ring-offset-color: var(--color-rose-300);\\n }\\n .ring-offset-rose-400 {\\n --tw-ring-offset-color: var(--color-rose-400);\\n }\\n .ring-offset-rose-500 {\\n --tw-ring-offset-color: var(--color-rose-500);\\n }\\n .ring-offset-rose-600 {\\n --tw-ring-offset-color: var(--color-rose-600);\\n }\\n .ring-offset-rose-700 {\\n --tw-ring-offset-color: var(--color-rose-700);\\n }\\n .ring-offset-rose-800 {\\n --tw-ring-offset-color: var(--color-rose-800);\\n }\\n .ring-offset-rose-900 {\\n --tw-ring-offset-color: var(--color-rose-900);\\n }\\n .ring-offset-rose-950 {\\n --tw-ring-offset-color: var(--color-rose-950);\\n }\\n .ring-offset-sky-50 {\\n --tw-ring-offset-color: var(--color-sky-50);\\n }\\n .ring-offset-sky-100 {\\n --tw-ring-offset-color: var(--color-sky-100);\\n }\\n .ring-offset-sky-200 {\\n --tw-ring-offset-color: var(--color-sky-200);\\n }\\n .ring-offset-sky-300 {\\n --tw-ring-offset-color: var(--color-sky-300);\\n }\\n .ring-offset-sky-400 {\\n --tw-ring-offset-color: var(--color-sky-400);\\n }\\n .ring-offset-sky-500 {\\n --tw-ring-offset-color: var(--color-sky-500);\\n }\\n .ring-offset-sky-600 {\\n --tw-ring-offset-color: var(--color-sky-600);\\n }\\n .ring-offset-sky-700 {\\n --tw-ring-offset-color: var(--color-sky-700);\\n }\\n .ring-offset-sky-800 {\\n --tw-ring-offset-color: var(--color-sky-800);\\n }\\n .ring-offset-sky-900 {\\n --tw-ring-offset-color: var(--color-sky-900);\\n }\\n .ring-offset-sky-950 {\\n --tw-ring-offset-color: var(--color-sky-950);\\n }\\n .ring-offset-slate-50 {\\n --tw-ring-offset-color: var(--color-slate-50);\\n }\\n .ring-offset-slate-100 {\\n --tw-ring-offset-color: var(--color-slate-100);\\n }\\n .ring-offset-slate-200 {\\n --tw-ring-offset-color: var(--color-slate-200);\\n }\\n .ring-offset-slate-300 {\\n --tw-ring-offset-color: var(--color-slate-300);\\n }\\n .ring-offset-slate-400 {\\n --tw-ring-offset-color: var(--color-slate-400);\\n }\\n .ring-offset-slate-500 {\\n --tw-ring-offset-color: var(--color-slate-500);\\n }\\n .ring-offset-slate-600 {\\n --tw-ring-offset-color: var(--color-slate-600);\\n }\\n .ring-offset-slate-700 {\\n --tw-ring-offset-color: var(--color-slate-700);\\n }\\n .ring-offset-slate-800 {\\n --tw-ring-offset-color: var(--color-slate-800);\\n }\\n .ring-offset-slate-900 {\\n --tw-ring-offset-color: var(--color-slate-900);\\n }\\n .ring-offset-slate-950 {\\n --tw-ring-offset-color: var(--color-slate-950);\\n }\\n .ring-offset-stone-50 {\\n --tw-ring-offset-color: var(--color-stone-50);\\n }\\n .ring-offset-stone-100 {\\n --tw-ring-offset-color: var(--color-stone-100);\\n }\\n .ring-offset-stone-200 {\\n --tw-ring-offset-color: var(--color-stone-200);\\n }\\n .ring-offset-stone-300 {\\n --tw-ring-offset-color: var(--color-stone-300);\\n }\\n .ring-offset-stone-400 {\\n --tw-ring-offset-color: var(--color-stone-400);\\n }\\n .ring-offset-stone-500 {\\n --tw-ring-offset-color: var(--color-stone-500);\\n }\\n .ring-offset-stone-600 {\\n --tw-ring-offset-color: var(--color-stone-600);\\n }\\n .ring-offset-stone-700 {\\n --tw-ring-offset-color: var(--color-stone-700);\\n }\\n .ring-offset-stone-800 {\\n --tw-ring-offset-color: var(--color-stone-800);\\n }\\n .ring-offset-stone-900 {\\n --tw-ring-offset-color: var(--color-stone-900);\\n }\\n .ring-offset-stone-950 {\\n --tw-ring-offset-color: var(--color-stone-950);\\n }\\n .ring-offset-teal-50 {\\n --tw-ring-offset-color: var(--color-teal-50);\\n }\\n .ring-offset-teal-100 {\\n --tw-ring-offset-color: var(--color-teal-100);\\n }\\n .ring-offset-teal-200 {\\n --tw-ring-offset-color: var(--color-teal-200);\\n }\\n .ring-offset-teal-300 {\\n --tw-ring-offset-color: var(--color-teal-300);\\n }\\n .ring-offset-teal-400 {\\n --tw-ring-offset-color: var(--color-teal-400);\\n }\\n .ring-offset-teal-500 {\\n --tw-ring-offset-color: var(--color-teal-500);\\n }\\n .ring-offset-teal-600 {\\n --tw-ring-offset-color: var(--color-teal-600);\\n }\\n .ring-offset-teal-700 {\\n --tw-ring-offset-color: var(--color-teal-700);\\n }\\n .ring-offset-teal-800 {\\n --tw-ring-offset-color: var(--color-teal-800);\\n }\\n .ring-offset-teal-900 {\\n --tw-ring-offset-color: var(--color-teal-900);\\n }\\n .ring-offset-teal-950 {\\n --tw-ring-offset-color: var(--color-teal-950);\\n }\\n .ring-offset-transparent {\\n --tw-ring-offset-color: transparent;\\n }\\n .ring-offset-violet-50 {\\n --tw-ring-offset-color: var(--color-violet-50);\\n }\\n .ring-offset-violet-100 {\\n --tw-ring-offset-color: var(--color-violet-100);\\n }\\n .ring-offset-violet-200 {\\n --tw-ring-offset-color: var(--color-violet-200);\\n }\\n .ring-offset-violet-300 {\\n --tw-ring-offset-color: var(--color-violet-300);\\n }\\n .ring-offset-violet-400 {\\n --tw-ring-offset-color: var(--color-violet-400);\\n }\\n .ring-offset-violet-500 {\\n --tw-ring-offset-color: var(--color-violet-500);\\n }\\n .ring-offset-violet-600 {\\n --tw-ring-offset-color: var(--color-violet-600);\\n }\\n .ring-offset-violet-700 {\\n --tw-ring-offset-color: var(--color-violet-700);\\n }\\n .ring-offset-violet-800 {\\n --tw-ring-offset-color: var(--color-violet-800);\\n }\\n .ring-offset-violet-900 {\\n --tw-ring-offset-color: var(--color-violet-900);\\n }\\n .ring-offset-violet-950 {\\n --tw-ring-offset-color: var(--color-violet-950);\\n }\\n .ring-offset-white {\\n --tw-ring-offset-color: var(--color-white);\\n }\\n .ring-offset-yellow-50 {\\n --tw-ring-offset-color: var(--color-yellow-50);\\n }\\n .ring-offset-yellow-100 {\\n --tw-ring-offset-color: var(--color-yellow-100);\\n }\\n .ring-offset-yellow-200 {\\n --tw-ring-offset-color: var(--color-yellow-200);\\n }\\n .ring-offset-yellow-300 {\\n --tw-ring-offset-color: var(--color-yellow-300);\\n }\\n .ring-offset-yellow-400 {\\n --tw-ring-offset-color: var(--color-yellow-400);\\n }\\n .ring-offset-yellow-500 {\\n --tw-ring-offset-color: var(--color-yellow-500);\\n }\\n .ring-offset-yellow-600 {\\n --tw-ring-offset-color: var(--color-yellow-600);\\n }\\n .ring-offset-yellow-700 {\\n --tw-ring-offset-color: var(--color-yellow-700);\\n }\\n .ring-offset-yellow-800 {\\n --tw-ring-offset-color: var(--color-yellow-800);\\n }\\n .ring-offset-yellow-900 {\\n --tw-ring-offset-color: var(--color-yellow-900);\\n }\\n .ring-offset-yellow-950 {\\n --tw-ring-offset-color: var(--color-yellow-950);\\n }\\n .ring-offset-zinc-50 {\\n --tw-ring-offset-color: var(--color-zinc-50);\\n }\\n .ring-offset-zinc-100 {\\n --tw-ring-offset-color: var(--color-zinc-100);\\n }\\n .ring-offset-zinc-200 {\\n --tw-ring-offset-color: var(--color-zinc-200);\\n }\\n .ring-offset-zinc-300 {\\n --tw-ring-offset-color: var(--color-zinc-300);\\n }\\n .ring-offset-zinc-400 {\\n --tw-ring-offset-color: var(--color-zinc-400);\\n }\\n .ring-offset-zinc-500 {\\n --tw-ring-offset-color: var(--color-zinc-500);\\n }\\n .ring-offset-zinc-600 {\\n --tw-ring-offset-color: var(--color-zinc-600);\\n }\\n .ring-offset-zinc-700 {\\n --tw-ring-offset-color: var(--color-zinc-700);\\n }\\n .ring-offset-zinc-800 {\\n --tw-ring-offset-color: var(--color-zinc-800);\\n }\\n .ring-offset-zinc-900 {\\n --tw-ring-offset-color: var(--color-zinc-900);\\n }\\n .ring-offset-zinc-950 {\\n --tw-ring-offset-color: var(--color-zinc-950);\\n }\\n .outline {\\n outline-style: var(--tw-outline-style);\\n outline-width: 1px;\\n }\\n .blur-3xl {\\n --tw-blur: blur(var(--blur-3xl));\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .brightness-90 {\\n --tw-brightness: brightness(90%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .brightness-95 {\\n --tw-brightness: brightness(95%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .brightness-105 {\\n --tw-brightness: brightness(105%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .brightness-110 {\\n --tw-brightness: brightness(110%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .grayscale {\\n --tw-grayscale: grayscale(100%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .invert {\\n --tw-invert: invert(100%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .sepia {\\n --tw-sepia: sepia(100%);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .filter {\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .backdrop-brightness-90 {\\n --tw-backdrop-brightness: brightness(90%);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n }\\n .backdrop-brightness-95 {\\n --tw-backdrop-brightness: brightness(95%);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n }\\n .backdrop-brightness-105 {\\n --tw-backdrop-brightness: brightness(105%);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n }\\n .backdrop-brightness-110 {\\n --tw-backdrop-brightness: brightness(110%);\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n }\\n .transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to,\\n opacity,\\n box-shadow,\\n transform,\\n translate,\\n scale,\\n rotate,\\n filter,\\n -webkit-backdrop-filter,\\n backdrop-filter,\\n display,\\n visibility,\\n content-visibility,\\n overlay,\\n pointer-events;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-\\\\(--transition-bezier\\\\) {\\n transition-property: var(--transition-bezier);\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-\\\\(--transition-long\\\\) {\\n transition-property: var(--transition-long);\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-\\\\(--transition-short\\\\) {\\n transition-property: var(--transition-short);\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-all {\\n transition-property: all;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-shadow {\\n transition-property: box-shadow;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-transform {\\n transition-property:\\n transform,\\n translate,\\n scale,\\n rotate;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-none {\\n transition-property: none;\\n }\\n .transition-discrete {\\n transition-behavior: allow-discrete;\\n }\\n .transition-normal {\\n transition-behavior: normal;\\n }\\n .duration-200 {\\n --tw-duration: 200ms;\\n transition-duration: 200ms;\\n }\\n .duration-300 {\\n --tw-duration: 300ms;\\n transition-duration: 300ms;\\n }\\n .duration-500 {\\n --tw-duration: 500ms;\\n transition-duration: 500ms;\\n }\\n .ease-in-out {\\n --tw-ease: var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n .ease-out {\\n --tw-ease: var(--ease-out);\\n transition-timing-function: var(--ease-out);\\n }\\n .forced-color-adjust-auto {\\n forced-color-adjust: auto;\\n }\\n .forced-color-adjust-none {\\n forced-color-adjust: none;\\n }\\n .outline-none {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n .\\\\[--dot-delay\\\\:100ms\\\\] {\\n --dot-delay: 100ms;\\n }\\n .\\\\[--dot-delay\\\\:300ms\\\\] {\\n --dot-delay: 300ms;\\n }\\n .\\\\[--dot-delay\\\\:500ms\\\\] {\\n --dot-delay: 500ms;\\n }\\n .\\\\[--spinner-delay\\\\:-150ms\\\\] {\\n --spinner-delay: -150ms;\\n }\\n .\\\\[--spinner-delay\\\\:-300ms\\\\] {\\n --spinner-delay: -300ms;\\n }\\n .\\\\[--spinner-delay\\\\:-450ms\\\\] {\\n --spinner-delay: -450ms;\\n }\\n .backface-hidden {\\n backface-visibility: hidden;\\n }\\n .backface-visible {\\n backface-visibility: visible;\\n }\\n .text-shadow-2xs {\\n text-shadow: 0px 1px 0px var(--tw-text-shadow-color, rgb(0 0 0 / 0.15));\\n }\\n .text-shadow-amber-50 {\\n --tw-text-shadow-color: oklch(98.7% 0.022 95.277);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-100 {\\n --tw-text-shadow-color: oklch(96.2% 0.059 95.617);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-200 {\\n --tw-text-shadow-color: oklch(92.4% 0.12 95.746);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-300 {\\n --tw-text-shadow-color: oklch(87.9% 0.169 91.605);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-400 {\\n --tw-text-shadow-color: oklch(82.8% 0.189 84.429);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-500 {\\n --tw-text-shadow-color: oklch(76.9% 0.188 70.08);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-600 {\\n --tw-text-shadow-color: oklch(66.6% 0.179 58.318);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-700 {\\n --tw-text-shadow-color: oklch(55.5% 0.163 48.998);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-800 {\\n --tw-text-shadow-color: oklch(47.3% 0.137 46.201);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-900 {\\n --tw-text-shadow-color: oklch(41.4% 0.112 45.904);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-amber-950 {\\n --tw-text-shadow-color: oklch(27.9% 0.077 45.635);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-amber-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-background {\\n --tw-text-shadow-color: #fff;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-background) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-black {\\n --tw-text-shadow-color: #000;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-black) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-50 {\\n --tw-text-shadow-color: oklch(97% 0.014 254.604);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-100 {\\n --tw-text-shadow-color: oklch(93.2% 0.032 255.585);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-200 {\\n --tw-text-shadow-color: oklch(88.2% 0.059 254.128);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-300 {\\n --tw-text-shadow-color: oklch(80.9% 0.105 251.813);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-400 {\\n --tw-text-shadow-color: oklch(70.7% 0.165 254.624);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-500 {\\n --tw-text-shadow-color: oklch(62.3% 0.214 259.815);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-600 {\\n --tw-text-shadow-color: oklch(54.6% 0.245 262.881);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-700 {\\n --tw-text-shadow-color: oklch(48.8% 0.243 264.376);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-800 {\\n --tw-text-shadow-color: oklch(42.4% 0.199 265.638);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-900 {\\n --tw-text-shadow-color: oklch(37.9% 0.146 265.522);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-blue-950 {\\n --tw-text-shadow-color: oklch(28.2% 0.091 267.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-blue-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-current {\\n --tw-text-shadow-color: currentcolor;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, currentcolor var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-50 {\\n --tw-text-shadow-color: oklch(98.4% 0.019 200.873);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-100 {\\n --tw-text-shadow-color: oklch(95.6% 0.045 203.388);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-200 {\\n --tw-text-shadow-color: oklch(91.7% 0.08 205.041);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-300 {\\n --tw-text-shadow-color: oklch(86.5% 0.127 207.078);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-400 {\\n --tw-text-shadow-color: oklch(78.9% 0.154 211.53);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-500 {\\n --tw-text-shadow-color: oklch(71.5% 0.143 215.221);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-600 {\\n --tw-text-shadow-color: oklch(60.9% 0.126 221.723);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-700 {\\n --tw-text-shadow-color: oklch(52% 0.105 223.128);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-800 {\\n --tw-text-shadow-color: oklch(45% 0.085 224.283);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-900 {\\n --tw-text-shadow-color: oklch(39.8% 0.07 227.392);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-cyan-950 {\\n --tw-text-shadow-color: oklch(30.2% 0.056 229.695);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-cyan-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-50 {\\n --tw-text-shadow-color: oklch(97.9% 0.021 166.113);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-100 {\\n --tw-text-shadow-color: oklch(95% 0.052 163.051);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-200 {\\n --tw-text-shadow-color: oklch(90.5% 0.093 164.15);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-300 {\\n --tw-text-shadow-color: oklch(84.5% 0.143 164.978);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-400 {\\n --tw-text-shadow-color: oklch(76.5% 0.177 163.223);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-500 {\\n --tw-text-shadow-color: oklch(69.6% 0.17 162.48);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-600 {\\n --tw-text-shadow-color: oklch(59.6% 0.145 163.225);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-700 {\\n --tw-text-shadow-color: oklch(50.8% 0.118 165.612);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-800 {\\n --tw-text-shadow-color: oklch(43.2% 0.095 166.913);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-900 {\\n --tw-text-shadow-color: oklch(37.8% 0.077 168.94);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-emerald-950 {\\n --tw-text-shadow-color: oklch(26.2% 0.051 172.552);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-emerald-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-50 {\\n --tw-text-shadow-color: oklch(97.7% 0.017 320.058);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-100 {\\n --tw-text-shadow-color: oklch(95.2% 0.037 318.852);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-200 {\\n --tw-text-shadow-color: oklch(90.3% 0.076 319.62);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-300 {\\n --tw-text-shadow-color: oklch(83.3% 0.145 321.434);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-400 {\\n --tw-text-shadow-color: oklch(74% 0.238 322.16);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-500 {\\n --tw-text-shadow-color: oklch(66.7% 0.295 322.15);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-600 {\\n --tw-text-shadow-color: oklch(59.1% 0.293 322.896);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-700 {\\n --tw-text-shadow-color: oklch(51.8% 0.253 323.949);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-800 {\\n --tw-text-shadow-color: oklch(45.2% 0.211 324.591);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-900 {\\n --tw-text-shadow-color: oklch(40.1% 0.17 325.612);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-fuchsia-950 {\\n --tw-text-shadow-color: oklch(29.3% 0.136 325.661);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-fuchsia-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-50 {\\n --tw-text-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-100 {\\n --tw-text-shadow-color: oklch(97% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-200 {\\n --tw-text-shadow-color: oklch(92.2% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-300 {\\n --tw-text-shadow-color: oklch(87% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-400 {\\n --tw-text-shadow-color: oklch(70.8% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-500 {\\n --tw-text-shadow-color: oklch(55.6% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-600 {\\n --tw-text-shadow-color: oklch(43.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-700 {\\n --tw-text-shadow-color: oklch(37.1% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-800 {\\n --tw-text-shadow-color: oklch(26.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-900 {\\n --tw-text-shadow-color: oklch(20.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-gray-950 {\\n --tw-text-shadow-color: oklch(14.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-gray-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-50 {\\n --tw-text-shadow-color: oklch(98.2% 0.018 155.826);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-100 {\\n --tw-text-shadow-color: oklch(96.2% 0.044 156.743);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-200 {\\n --tw-text-shadow-color: oklch(92.5% 0.084 155.995);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-300 {\\n --tw-text-shadow-color: oklch(87.1% 0.15 154.449);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-400 {\\n --tw-text-shadow-color: oklch(79.2% 0.209 151.711);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-500 {\\n --tw-text-shadow-color: oklch(72.3% 0.219 149.579);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-600 {\\n --tw-text-shadow-color: oklch(62.7% 0.194 149.214);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-700 {\\n --tw-text-shadow-color: oklch(52.7% 0.154 150.069);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-800 {\\n --tw-text-shadow-color: oklch(44.8% 0.119 151.328);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-900 {\\n --tw-text-shadow-color: oklch(39.3% 0.095 152.535);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-green-950 {\\n --tw-text-shadow-color: oklch(26.6% 0.065 152.934);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-green-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-50 {\\n --tw-text-shadow-color: oklch(96.2% 0.018 272.314);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-100 {\\n --tw-text-shadow-color: oklch(93% 0.034 272.788);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-200 {\\n --tw-text-shadow-color: oklch(87% 0.065 274.039);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-300 {\\n --tw-text-shadow-color: oklch(78.5% 0.115 274.713);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-400 {\\n --tw-text-shadow-color: oklch(67.3% 0.182 276.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-500 {\\n --tw-text-shadow-color: oklch(58.5% 0.233 277.117);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-600 {\\n --tw-text-shadow-color: oklch(51.1% 0.262 276.966);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-700 {\\n --tw-text-shadow-color: oklch(45.7% 0.24 277.023);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-800 {\\n --tw-text-shadow-color: oklch(39.8% 0.195 277.366);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-900 {\\n --tw-text-shadow-color: oklch(35.9% 0.144 278.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-indigo-950 {\\n --tw-text-shadow-color: oklch(25.7% 0.09 281.288);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-indigo-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-inherit {\\n --tw-text-shadow-color: inherit;\\n }\\n .text-shadow-initial {\\n --tw-text-shadow-color: initial;\\n }\\n .text-shadow-lg {\\n text-shadow:\\n 0px 1px 2px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1)),\\n 0px 3px 2px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1)),\\n 0px 4px 8px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1));\\n }\\n .text-shadow-lime-50 {\\n --tw-text-shadow-color: oklch(98.6% 0.031 120.757);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-100 {\\n --tw-text-shadow-color: oklch(96.7% 0.067 122.328);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-200 {\\n --tw-text-shadow-color: oklch(93.8% 0.127 124.321);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-300 {\\n --tw-text-shadow-color: oklch(89.7% 0.196 126.665);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-400 {\\n --tw-text-shadow-color: oklch(84.1% 0.238 128.85);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-500 {\\n --tw-text-shadow-color: oklch(76.8% 0.233 130.85);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-600 {\\n --tw-text-shadow-color: oklch(64.8% 0.2 131.684);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-700 {\\n --tw-text-shadow-color: oklch(53.2% 0.157 131.589);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-800 {\\n --tw-text-shadow-color: oklch(45.3% 0.124 130.933);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-900 {\\n --tw-text-shadow-color: oklch(40.5% 0.101 131.063);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-lime-950 {\\n --tw-text-shadow-color: oklch(27.4% 0.072 132.109);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-lime-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-md {\\n text-shadow:\\n 0px 1px 1px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1)),\\n 0px 1px 2px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1)),\\n 0px 2px 4px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1));\\n }\\n .text-shadow-neutral-50 {\\n --tw-text-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-100 {\\n --tw-text-shadow-color: oklch(97% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-200 {\\n --tw-text-shadow-color: oklch(92.2% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-300 {\\n --tw-text-shadow-color: oklch(87% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-400 {\\n --tw-text-shadow-color: oklch(70.8% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-500 {\\n --tw-text-shadow-color: oklch(55.6% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-600 {\\n --tw-text-shadow-color: oklch(43.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-700 {\\n --tw-text-shadow-color: oklch(37.1% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-800 {\\n --tw-text-shadow-color: oklch(26.9% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-900 {\\n --tw-text-shadow-color: oklch(20.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-neutral-950 {\\n --tw-text-shadow-color: oklch(14.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-neutral-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-none {\\n text-shadow: none;\\n }\\n .text-shadow-orange-50 {\\n --tw-text-shadow-color: oklch(98% 0.016 73.684);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-100 {\\n --tw-text-shadow-color: oklch(95.4% 0.038 75.164);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-200 {\\n --tw-text-shadow-color: oklch(90.1% 0.076 70.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-300 {\\n --tw-text-shadow-color: oklch(83.7% 0.128 66.29);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-400 {\\n --tw-text-shadow-color: oklch(75% 0.183 55.934);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-500 {\\n --tw-text-shadow-color: oklch(70.5% 0.213 47.604);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-600 {\\n --tw-text-shadow-color: oklch(64.6% 0.222 41.116);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-700 {\\n --tw-text-shadow-color: oklch(55.3% 0.195 38.402);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-800 {\\n --tw-text-shadow-color: oklch(47% 0.157 37.304);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-900 {\\n --tw-text-shadow-color: oklch(40.8% 0.123 38.172);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-orange-950 {\\n --tw-text-shadow-color: oklch(26.6% 0.079 36.259);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-orange-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-50 {\\n --tw-text-shadow-color: oklch(97.1% 0.014 343.198);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-100 {\\n --tw-text-shadow-color: oklch(94.8% 0.028 342.258);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-200 {\\n --tw-text-shadow-color: oklch(89.9% 0.061 343.231);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-300 {\\n --tw-text-shadow-color: oklch(82.3% 0.12 346.018);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-400 {\\n --tw-text-shadow-color: oklch(71.8% 0.202 349.761);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-500 {\\n --tw-text-shadow-color: oklch(65.6% 0.241 354.308);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-600 {\\n --tw-text-shadow-color: oklch(59.2% 0.249 0.584);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-700 {\\n --tw-text-shadow-color: oklch(52.5% 0.223 3.958);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-800 {\\n --tw-text-shadow-color: oklch(45.9% 0.187 3.815);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-900 {\\n --tw-text-shadow-color: oklch(40.8% 0.153 2.432);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-pink-950 {\\n --tw-text-shadow-color: oklch(28.4% 0.109 3.907);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-pink-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-50 {\\n --tw-text-shadow-color: oklch(97.7% 0.014 308.299);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-100 {\\n --tw-text-shadow-color: oklch(94.6% 0.033 307.174);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-200 {\\n --tw-text-shadow-color: oklch(90.2% 0.063 306.703);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-300 {\\n --tw-text-shadow-color: oklch(82.7% 0.119 306.383);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-400 {\\n --tw-text-shadow-color: oklch(71.4% 0.203 305.504);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-500 {\\n --tw-text-shadow-color: oklch(62.7% 0.265 303.9);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-600 {\\n --tw-text-shadow-color: oklch(55.8% 0.288 302.321);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-700 {\\n --tw-text-shadow-color: oklch(49.6% 0.265 301.924);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-800 {\\n --tw-text-shadow-color: oklch(43.8% 0.218 303.724);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-900 {\\n --tw-text-shadow-color: oklch(38.1% 0.176 304.987);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-purple-950 {\\n --tw-text-shadow-color: oklch(29.1% 0.149 302.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-purple-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-50 {\\n --tw-text-shadow-color: oklch(97.1% 0.013 17.38);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-100 {\\n --tw-text-shadow-color: oklch(93.6% 0.032 17.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-200 {\\n --tw-text-shadow-color: oklch(88.5% 0.062 18.334);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-300 {\\n --tw-text-shadow-color: oklch(80.8% 0.114 19.571);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-400 {\\n --tw-text-shadow-color: oklch(70.4% 0.191 22.216);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-500 {\\n --tw-text-shadow-color: oklch(63.7% 0.237 25.331);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-600 {\\n --tw-text-shadow-color: oklch(57.7% 0.245 27.325);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-700 {\\n --tw-text-shadow-color: oklch(50.5% 0.213 27.518);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-800 {\\n --tw-text-shadow-color: oklch(44.4% 0.177 26.899);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-900 {\\n --tw-text-shadow-color: oklch(39.6% 0.141 25.723);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-red-950 {\\n --tw-text-shadow-color: oklch(25.8% 0.092 26.042);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-red-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-50 {\\n --tw-text-shadow-color: oklch(96.9% 0.015 12.422);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-100 {\\n --tw-text-shadow-color: oklch(94.1% 0.03 12.58);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-200 {\\n --tw-text-shadow-color: oklch(89.2% 0.058 10.001);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-300 {\\n --tw-text-shadow-color: oklch(81% 0.117 11.638);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-400 {\\n --tw-text-shadow-color: oklch(71.2% 0.194 13.428);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-500 {\\n --tw-text-shadow-color: oklch(64.5% 0.246 16.439);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-600 {\\n --tw-text-shadow-color: oklch(58.6% 0.253 17.585);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-700 {\\n --tw-text-shadow-color: oklch(51.4% 0.222 16.935);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-800 {\\n --tw-text-shadow-color: oklch(45.5% 0.188 13.697);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-900 {\\n --tw-text-shadow-color: oklch(41% 0.159 10.272);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-rose-950 {\\n --tw-text-shadow-color: oklch(27.1% 0.105 12.094);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-rose-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-50 {\\n --tw-text-shadow-color: oklch(97.7% 0.013 236.62);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-100 {\\n --tw-text-shadow-color: oklch(95.1% 0.026 236.824);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-200 {\\n --tw-text-shadow-color: oklch(90.1% 0.058 230.902);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-300 {\\n --tw-text-shadow-color: oklch(82.8% 0.111 230.318);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-400 {\\n --tw-text-shadow-color: oklch(74.6% 0.16 232.661);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-500 {\\n --tw-text-shadow-color: oklch(68.5% 0.169 237.323);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-600 {\\n --tw-text-shadow-color: oklch(58.8% 0.158 241.966);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-700 {\\n --tw-text-shadow-color: oklch(50% 0.134 242.749);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-800 {\\n --tw-text-shadow-color: oklch(44.3% 0.11 240.79);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-900 {\\n --tw-text-shadow-color: oklch(39.1% 0.09 240.876);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sky-950 {\\n --tw-text-shadow-color: oklch(29.3% 0.066 243.157);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-sky-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-50 {\\n --tw-text-shadow-color: oklch(98.4% 0.003 247.858);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-100 {\\n --tw-text-shadow-color: oklch(96.8% 0.007 247.896);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-200 {\\n --tw-text-shadow-color: oklch(92.9% 0.013 255.508);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-300 {\\n --tw-text-shadow-color: oklch(86.9% 0.022 252.894);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-400 {\\n --tw-text-shadow-color: oklch(70.4% 0.04 256.788);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-500 {\\n --tw-text-shadow-color: oklch(55.4% 0.046 257.417);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-600 {\\n --tw-text-shadow-color: oklch(44.6% 0.043 257.281);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-700 {\\n --tw-text-shadow-color: oklch(37.2% 0.044 257.287);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-800 {\\n --tw-text-shadow-color: oklch(27.9% 0.041 260.031);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-900 {\\n --tw-text-shadow-color: oklch(20.8% 0.042 265.755);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-slate-950 {\\n --tw-text-shadow-color: oklch(12.9% 0.042 264.695);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-slate-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-sm {\\n text-shadow:\\n 0px 1px 0px var(--tw-text-shadow-color, rgb(0 0 0 / 0.075)),\\n 0px 1px 1px var(--tw-text-shadow-color, rgb(0 0 0 / 0.075)),\\n 0px 2px 2px var(--tw-text-shadow-color, rgb(0 0 0 / 0.075));\\n }\\n .text-shadow-stone-50 {\\n --tw-text-shadow-color: oklch(98.5% 0.001 106.423);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-100 {\\n --tw-text-shadow-color: oklch(97% 0.001 106.424);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-200 {\\n --tw-text-shadow-color: oklch(92.3% 0.003 48.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-300 {\\n --tw-text-shadow-color: oklch(86.9% 0.005 56.366);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-400 {\\n --tw-text-shadow-color: oklch(70.9% 0.01 56.259);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-500 {\\n --tw-text-shadow-color: oklch(55.3% 0.013 58.071);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-600 {\\n --tw-text-shadow-color: oklch(44.4% 0.011 73.639);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-700 {\\n --tw-text-shadow-color: oklch(37.4% 0.01 67.558);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-800 {\\n --tw-text-shadow-color: oklch(26.8% 0.007 34.298);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-900 {\\n --tw-text-shadow-color: oklch(21.6% 0.006 56.043);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-stone-950 {\\n --tw-text-shadow-color: oklch(14.7% 0.004 49.25);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-stone-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-50 {\\n --tw-text-shadow-color: oklch(98.4% 0.014 180.72);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-100 {\\n --tw-text-shadow-color: oklch(95.3% 0.051 180.801);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-200 {\\n --tw-text-shadow-color: oklch(91% 0.096 180.426);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-300 {\\n --tw-text-shadow-color: oklch(85.5% 0.138 181.071);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-400 {\\n --tw-text-shadow-color: oklch(77.7% 0.152 181.912);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-500 {\\n --tw-text-shadow-color: oklch(70.4% 0.14 182.503);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-600 {\\n --tw-text-shadow-color: oklch(60% 0.118 184.704);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-700 {\\n --tw-text-shadow-color: oklch(51.1% 0.096 186.391);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-800 {\\n --tw-text-shadow-color: oklch(43.7% 0.078 188.216);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-900 {\\n --tw-text-shadow-color: oklch(38.6% 0.063 188.416);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-teal-950 {\\n --tw-text-shadow-color: oklch(27.7% 0.046 192.524);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-teal-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-transparent {\\n --tw-text-shadow-color: transparent;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, transparent var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-50 {\\n --tw-text-shadow-color: oklch(96.9% 0.016 293.756);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-100 {\\n --tw-text-shadow-color: oklch(94.3% 0.029 294.588);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-200 {\\n --tw-text-shadow-color: oklch(89.4% 0.057 293.283);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-300 {\\n --tw-text-shadow-color: oklch(81.1% 0.111 293.571);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-400 {\\n --tw-text-shadow-color: oklch(70.2% 0.183 293.541);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-500 {\\n --tw-text-shadow-color: oklch(60.6% 0.25 292.717);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-600 {\\n --tw-text-shadow-color: oklch(54.1% 0.281 293.009);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-700 {\\n --tw-text-shadow-color: oklch(49.1% 0.27 292.581);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-800 {\\n --tw-text-shadow-color: oklch(43.2% 0.232 292.759);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-900 {\\n --tw-text-shadow-color: oklch(38% 0.189 293.745);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-violet-950 {\\n --tw-text-shadow-color: oklch(28.3% 0.141 291.089);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-violet-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-white {\\n --tw-text-shadow-color: #fff;\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-white) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-xs {\\n text-shadow: 0px 1px 1px var(--tw-text-shadow-color, rgb(0 0 0 / 0.2));\\n }\\n .text-shadow-yellow-50 {\\n --tw-text-shadow-color: oklch(98.7% 0.026 102.212);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-100 {\\n --tw-text-shadow-color: oklch(97.3% 0.071 103.193);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-200 {\\n --tw-text-shadow-color: oklch(94.5% 0.129 101.54);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-300 {\\n --tw-text-shadow-color: oklch(90.5% 0.182 98.111);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-400 {\\n --tw-text-shadow-color: oklch(85.2% 0.199 91.936);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-500 {\\n --tw-text-shadow-color: oklch(79.5% 0.184 86.047);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-600 {\\n --tw-text-shadow-color: oklch(68.1% 0.162 75.834);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-700 {\\n --tw-text-shadow-color: oklch(55.4% 0.135 66.442);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-800 {\\n --tw-text-shadow-color: oklch(47.6% 0.114 61.907);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-900 {\\n --tw-text-shadow-color: oklch(42.1% 0.095 57.708);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-yellow-950 {\\n --tw-text-shadow-color: oklch(28.6% 0.066 53.813);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-yellow-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-50 {\\n --tw-text-shadow-color: oklch(98.5% 0 0);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-50) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-100 {\\n --tw-text-shadow-color: oklch(96.7% 0.001 286.375);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-100) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-200 {\\n --tw-text-shadow-color: oklch(92% 0.004 286.32);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-200) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-300 {\\n --tw-text-shadow-color: oklch(87.1% 0.006 286.286);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-300) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-400 {\\n --tw-text-shadow-color: oklch(70.5% 0.015 286.067);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-400) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-500 {\\n --tw-text-shadow-color: oklch(55.2% 0.016 285.938);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-500) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-600 {\\n --tw-text-shadow-color: oklch(44.2% 0.017 285.786);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-600) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-700 {\\n --tw-text-shadow-color: oklch(37% 0.013 285.805);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-700) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-800 {\\n --tw-text-shadow-color: oklch(27.4% 0.006 286.033);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-800) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-900 {\\n --tw-text-shadow-color: oklch(21% 0.006 285.885);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-900) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .text-shadow-zinc-950 {\\n --tw-text-shadow-color: oklch(14.1% 0.005 285.823);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-text-shadow-color: color-mix(in oklab, var(--color-zinc-950) var(--tw-text-shadow-alpha), transparent);\\n }\\n }\\n .transform-3d {\\n transform-style: preserve-3d;\\n }\\n .transform-flat {\\n transform-style: flat;\\n }\\n .placeholder\\\\:text-gray-500 {\\n &::-moz-placeholder {\\n color: var(--color-gray-500);\\n }\\n &::placeholder {\\n color: var(--color-gray-500);\\n }\\n }\\n .before\\\\:absolute {\\n &::before {\\n content: var(--tw-content);\\n position: absolute;\\n }\\n }\\n .before\\\\:-top-\\\\[200px\\\\] {\\n &::before {\\n content: var(--tw-content);\\n top: calc(200px * -1);\\n }\\n }\\n .before\\\\:top-0 {\\n &::before {\\n content: var(--tw-content);\\n top: calc(var(--spacing) * 0);\\n }\\n }\\n .before\\\\:-bottom-\\\\[200px\\\\] {\\n &::before {\\n content: var(--tw-content);\\n bottom: calc(200px * -1);\\n }\\n }\\n .before\\\\:left-0 {\\n &::before {\\n content: var(--tw-content);\\n left: calc(var(--spacing) * 0);\\n }\\n }\\n .before\\\\:left-\\\\[5\\\\%\\\\] {\\n &::before {\\n content: var(--tw-content);\\n left: 5%;\\n }\\n }\\n .before\\\\:h-2 {\\n &::before {\\n content: var(--tw-content);\\n height: calc(var(--spacing) * 2);\\n }\\n }\\n .before\\\\:h-\\\\[1px\\\\] {\\n &::before {\\n content: var(--tw-content);\\n height: 1px;\\n }\\n }\\n .before\\\\:h-full {\\n &::before {\\n content: var(--tw-content);\\n height: 100%;\\n }\\n }\\n .before\\\\:w-\\\\(--cursor-value\\\\) {\\n &::before {\\n content: var(--tw-content);\\n width: var(--cursor-value);\\n }\\n }\\n .before\\\\:w-\\\\(--meter-value\\\\) {\\n &::before {\\n content: var(--tw-content);\\n width: var(--meter-value);\\n }\\n }\\n .before\\\\:w-\\\\[90\\\\%\\\\] {\\n &::before {\\n content: var(--tw-content);\\n width: 90%;\\n }\\n }\\n .before\\\\:w-\\\\[100px\\\\] {\\n &::before {\\n content: var(--tw-content);\\n width: 100px;\\n }\\n }\\n .before\\\\:-skew-15 {\\n &::before {\\n content: var(--tw-content);\\n --tw-skew-x: skewX(calc(15deg * -1));\\n --tw-skew-y: skewY(calc(15deg * -1));\\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\\n }\\n }\\n .before\\\\:animate-\\\\[progress-bar_calc\\\\(var\\\\(--progress-speed\\\\)\\\\*50ms\\\\)_ease_forwards\\\\] {\\n &::before {\\n content: var(--tw-content);\\n animation: progress-bar calc(var(--progress-speed) * 50ms) ease forwards;\\n }\\n }\\n .before\\\\:animate-\\\\[shine_2000ms_ease-in-out_infinite\\\\] {\\n &::before {\\n content: var(--tw-content);\\n animation: shine 2000ms ease-in-out infinite;\\n }\\n }\\n .before\\\\:rounded-full {\\n &::before {\\n content: var(--tw-content);\\n border-radius: calc(infinity * 1px);\\n }\\n }\\n .before\\\\:bg-danger-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-danger-500);\\n }\\n }\\n .before\\\\:bg-gray-200 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-gray-200);\\n }\\n }\\n .before\\\\:bg-gray-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-gray-500);\\n }\\n }\\n .before\\\\:bg-primary-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-primary-500);\\n }\\n }\\n .before\\\\:bg-secondary-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-secondary-500);\\n }\\n }\\n .before\\\\:bg-success-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-success-500);\\n }\\n }\\n .before\\\\:bg-warning-500 {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-warning-500);\\n }\\n }\\n .before\\\\:bg-white {\\n &::before {\\n content: var(--tw-content);\\n background-color: var(--color-white);\\n }\\n }\\n .before\\\\:opacity-70 {\\n &::before {\\n content: var(--tw-content);\\n opacity: 70%;\\n }\\n }\\n .before\\\\:blur-\\\\[20px\\\\] {\\n &::before {\\n content: var(--tw-content);\\n --tw-blur: blur(20px);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n }\\n .before\\\\:transition-all {\\n &::before {\\n content: var(--tw-content);\\n transition-property: all;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n }\\n .before\\\\:duration-200 {\\n &::before {\\n content: var(--tw-content);\\n --tw-duration: 200ms;\\n transition-duration: 200ms;\\n }\\n }\\n .before\\\\:ease-in-out {\\n &::before {\\n content: var(--tw-content);\\n --tw-ease: var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n }\\n .after\\\\:absolute {\\n &::after {\\n content: var(--tw-content);\\n position: absolute;\\n }\\n }\\n .after\\\\:top-0\\\\.5 {\\n &::after {\\n content: var(--tw-content);\\n top: calc(var(--spacing) * 0.5);\\n }\\n }\\n .after\\\\:top-full {\\n &::after {\\n content: var(--tw-content);\\n top: 100%;\\n }\\n }\\n .after\\\\:right-1 {\\n &::after {\\n content: var(--tw-content);\\n right: calc(var(--spacing) * 1);\\n }\\n }\\n .after\\\\:left-0\\\\.5 {\\n &::after {\\n content: var(--tw-content);\\n left: calc(var(--spacing) * 0.5);\\n }\\n }\\n .after\\\\:left-1 {\\n &::after {\\n content: var(--tw-content);\\n left: calc(var(--spacing) * 1);\\n }\\n }\\n .after\\\\:left-1\\\\/2 {\\n &::after {\\n content: var(--tw-content);\\n left: calc(1/2 * 100%);\\n }\\n }\\n .after\\\\:size-2 {\\n &::after {\\n content: var(--tw-content);\\n width: calc(var(--spacing) * 2);\\n height: calc(var(--spacing) * 2);\\n }\\n }\\n .after\\\\:-translate-x-1\\\\/2 {\\n &::after {\\n content: var(--tw-content);\\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .after\\\\:rounded-full {\\n &::after {\\n content: var(--tw-content);\\n border-radius: calc(infinity * 1px);\\n }\\n }\\n .after\\\\:border-4 {\\n &::after {\\n content: var(--tw-content);\\n border-style: var(--tw-border-style);\\n border-width: 4px;\\n }\\n }\\n .after\\\\:border-transparent {\\n &::after {\\n content: var(--tw-content);\\n border-color: transparent;\\n }\\n }\\n .after\\\\:border-t-overlay-black-80 {\\n &::after {\\n content: var(--tw-content);\\n border-top-color: var(--color-overlay-black-80);\\n }\\n }\\n .after\\\\:bg-danger-500 {\\n &::after {\\n content: var(--tw-content);\\n background-color: var(--color-danger-500);\\n }\\n }\\n .after\\\\:bg-gray-500 {\\n &::after {\\n content: var(--tw-content);\\n background-color: var(--color-gray-500);\\n }\\n }\\n .after\\\\:bg-primary-500 {\\n &::after {\\n content: var(--tw-content);\\n background-color: var(--color-primary-500);\\n }\\n }\\n .after\\\\:opacity-0 {\\n &::after {\\n content: var(--tw-content);\\n opacity: 0%;\\n }\\n }\\n .after\\\\:transition-all {\\n &::after {\\n content: var(--tw-content);\\n transition-property: all;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n }\\n .after\\\\:duration-200 {\\n &::after {\\n content: var(--tw-content);\\n --tw-duration: 200ms;\\n transition-duration: 200ms;\\n }\\n }\\n .after\\\\:ease-in-out {\\n &::after {\\n content: var(--tw-content);\\n --tw-ease: var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n }\\n .focus-within\\\\:border-danger-500 {\\n &:focus-within {\\n border-color: var(--color-danger-500);\\n }\\n }\\n .focus-within\\\\:border-primary-500 {\\n &:focus-within {\\n border-color: var(--color-primary-500);\\n }\\n }\\n .focus-within\\\\:border-success-500 {\\n &:focus-within {\\n border-color: var(--color-success-500);\\n }\\n }\\n .hover\\\\:border-danger-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-danger-300);\\n }\\n }\\n }\\n .hover\\\\:border-gray-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-gray-300);\\n }\\n }\\n }\\n .hover\\\\:border-primary-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-primary-300);\\n }\\n }\\n }\\n .hover\\\\:border-secondary-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-secondary-300);\\n }\\n }\\n }\\n .hover\\\\:border-success-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-success-300);\\n }\\n }\\n }\\n .hover\\\\:border-warning-300 {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-warning-300);\\n }\\n }\\n }\\n .hover\\\\:bg-blue-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-blue-300);\\n }\\n }\\n }\\n .hover\\\\:bg-danger-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-danger-300);\\n }\\n }\\n }\\n .hover\\\\:bg-danger-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-danger-500);\\n }\\n }\\n }\\n .hover\\\\:bg-gray-50 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-50);\\n }\\n }\\n }\\n .hover\\\\:bg-gray-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-300);\\n }\\n }\\n }\\n .hover\\\\:bg-gray-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-500);\\n }\\n }\\n }\\n .hover\\\\:bg-primary-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-primary-300);\\n }\\n }\\n }\\n .hover\\\\:bg-primary-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-primary-500);\\n }\\n }\\n }\\n .hover\\\\:bg-secondary-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-secondary-300);\\n }\\n }\\n }\\n .hover\\\\:bg-secondary-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-secondary-500);\\n }\\n }\\n }\\n .hover\\\\:bg-success-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-success-300);\\n }\\n }\\n }\\n .hover\\\\:bg-success-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-success-500);\\n }\\n }\\n }\\n .hover\\\\:bg-warning-300 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-warning-300);\\n }\\n }\\n }\\n .hover\\\\:bg-warning-500 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-warning-500);\\n }\\n }\\n }\\n .hover\\\\:text-danger-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-danger-300);\\n }\\n }\\n }\\n .hover\\\\:text-gray-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-gray-300);\\n }\\n }\\n }\\n .hover\\\\:text-gray-500 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-gray-500);\\n }\\n }\\n }\\n .hover\\\\:text-primary-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-primary-300);\\n }\\n }\\n }\\n .hover\\\\:text-secondary-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-secondary-300);\\n }\\n }\\n }\\n .hover\\\\:text-success-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-success-300);\\n }\\n }\\n }\\n .hover\\\\:text-warning-300 {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-warning-300);\\n }\\n }\\n }\\n .hover\\\\:text-white {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-white);\\n }\\n }\\n }\\n .hover\\\\:opacity-70 {\\n &:hover {\\n @media (hover: hover) {\\n opacity: 70%;\\n }\\n }\\n }\\n .focus\\\\:border-blue-200 {\\n &:focus {\\n border-color: var(--color-blue-200);\\n }\\n }\\n .focus\\\\:border-danger-500 {\\n &:focus {\\n border-color: var(--color-danger-500);\\n }\\n }\\n .focus\\\\:border-primary-500 {\\n &:focus {\\n border-color: var(--color-primary-500);\\n }\\n }\\n .focus\\\\:border-success-500 {\\n &:focus {\\n border-color: var(--color-success-500);\\n }\\n }\\n .focus\\\\:ring-1 {\\n &:focus {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .focus\\\\:ring-danger-800 {\\n &:focus {\\n --tw-ring-color: var(--color-danger-800);\\n }\\n }\\n .focus\\\\:ring-gray-500 {\\n &:focus {\\n --tw-ring-color: var(--color-gray-500);\\n }\\n }\\n .focus\\\\:ring-gray-800 {\\n &:focus {\\n --tw-ring-color: var(--color-gray-800);\\n }\\n }\\n .focus\\\\:ring-primary-800 {\\n &:focus {\\n --tw-ring-color: var(--color-primary-800);\\n }\\n }\\n .focus\\\\:ring-secondary-800 {\\n &:focus {\\n --tw-ring-color: var(--color-secondary-800);\\n }\\n }\\n .focus\\\\:ring-success-800 {\\n &:focus {\\n --tw-ring-color: var(--color-success-800);\\n }\\n }\\n .focus\\\\:ring-warning-800 {\\n &:focus {\\n --tw-ring-color: var(--color-warning-800);\\n }\\n }\\n .active\\\\:cursor-grabbing {\\n &:active {\\n cursor: grabbing;\\n }\\n }\\n .active\\\\:border-danger-600 {\\n &:active {\\n border-color: var(--color-danger-600);\\n }\\n }\\n .active\\\\:border-gray-100 {\\n &:active {\\n border-color: var(--color-gray-100);\\n }\\n }\\n .active\\\\:border-gray-600 {\\n &:active {\\n border-color: var(--color-gray-600);\\n }\\n }\\n .active\\\\:border-primary-600 {\\n &:active {\\n border-color: var(--color-primary-600);\\n }\\n }\\n .active\\\\:border-secondary-600 {\\n &:active {\\n border-color: var(--color-secondary-600);\\n }\\n }\\n .active\\\\:border-success-600 {\\n &:active {\\n border-color: var(--color-success-600);\\n }\\n }\\n .active\\\\:border-warning-600 {\\n &:active {\\n border-color: var(--color-warning-600);\\n }\\n }\\n .active\\\\:bg-blue-600 {\\n &:active {\\n background-color: var(--color-blue-600);\\n }\\n }\\n .active\\\\:bg-danger-100 {\\n &:active {\\n background-color: var(--color-danger-100);\\n }\\n }\\n .active\\\\:bg-danger-600 {\\n &:active {\\n background-color: var(--color-danger-600);\\n }\\n }\\n .active\\\\:bg-gray-50 {\\n &:active {\\n background-color: var(--color-gray-50);\\n }\\n }\\n .active\\\\:bg-gray-100 {\\n &:active {\\n background-color: var(--color-gray-100);\\n }\\n }\\n .active\\\\:bg-gray-600 {\\n &:active {\\n background-color: var(--color-gray-600);\\n }\\n }\\n .active\\\\:bg-primary-100 {\\n &:active {\\n background-color: var(--color-primary-100);\\n }\\n }\\n .active\\\\:bg-primary-600 {\\n &:active {\\n background-color: var(--color-primary-600);\\n }\\n }\\n .active\\\\:bg-secondary-100 {\\n &:active {\\n background-color: var(--color-secondary-100);\\n }\\n }\\n .active\\\\:bg-secondary-600 {\\n &:active {\\n background-color: var(--color-secondary-600);\\n }\\n }\\n .active\\\\:bg-success-100 {\\n &:active {\\n background-color: var(--color-success-100);\\n }\\n }\\n .active\\\\:bg-success-600 {\\n &:active {\\n background-color: var(--color-success-600);\\n }\\n }\\n .active\\\\:bg-warning-100 {\\n &:active {\\n background-color: var(--color-warning-100);\\n }\\n }\\n .active\\\\:bg-warning-600 {\\n &:active {\\n background-color: var(--color-warning-600);\\n }\\n }\\n .active\\\\:text-danger-600 {\\n &:active {\\n color: var(--color-danger-600);\\n }\\n }\\n .active\\\\:text-gray-100 {\\n &:active {\\n color: var(--color-gray-100);\\n }\\n }\\n .active\\\\:text-gray-600 {\\n &:active {\\n color: var(--color-gray-600);\\n }\\n }\\n .active\\\\:text-primary-600 {\\n &:active {\\n color: var(--color-primary-600);\\n }\\n }\\n .active\\\\:text-secondary-600 {\\n &:active {\\n color: var(--color-secondary-600);\\n }\\n }\\n .active\\\\:text-success-600 {\\n &:active {\\n color: var(--color-success-600);\\n }\\n }\\n .active\\\\:text-warning-600 {\\n &:active {\\n color: var(--color-warning-600);\\n }\\n }\\n .disabled\\\\:cursor-not-allowed {\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n .disabled\\\\:border-gray-500 {\\n &:disabled {\\n border-color: var(--color-gray-500);\\n }\\n }\\n .disabled\\\\:bg-gray-100 {\\n &:disabled {\\n background-color: var(--color-gray-100);\\n }\\n }\\n .disabled\\\\:bg-gray-200 {\\n &:disabled {\\n background-color: var(--color-gray-200);\\n }\\n }\\n .disabled\\\\:text-gray-500 {\\n &:disabled {\\n color: var(--color-gray-500);\\n }\\n }\\n .disabled\\\\:hover\\\\:border-gray-500 {\\n &:disabled {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--color-gray-500);\\n }\\n }\\n }\\n }\\n .disabled\\\\:hover\\\\:bg-background {\\n &:disabled {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-background);\\n }\\n }\\n }\\n }\\n .disabled\\\\:hover\\\\:bg-gray-200 {\\n &:disabled {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-200);\\n }\\n }\\n }\\n }\\n .disabled\\\\:hover\\\\:text-gray-500 {\\n &:disabled {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-gray-500);\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:border-danger-500 {\\n &:has(*:is(input:checked)) {\\n border-color: var(--color-danger-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:border-gray-500 {\\n &:has(*:is(input:checked)) {\\n border-color: var(--color-gray-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:border-primary-500 {\\n &:has(*:is(input:checked)) {\\n border-color: var(--color-primary-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:bg-danger-500 {\\n &:has(*:is(input:checked)) {\\n background-color: var(--color-danger-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:bg-gray-200 {\\n &:has(*:is(input:checked)) {\\n background-color: var(--color-gray-200);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:bg-primary-500 {\\n &:has(*:is(input:checked)) {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:text-gray-500 {\\n &:has(*:is(input:checked)) {\\n color: var(--color-gray-500);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:text-white {\\n &:has(*:is(input:checked)) {\\n color: var(--color-white);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:hover\\\\:bg-danger-300 {\\n &:has(*:is(input:checked)) {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-danger-300);\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:hover\\\\:bg-gray-200 {\\n &:has(*:is(input:checked)) {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-200);\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:hover\\\\:bg-primary-300 {\\n &:has(*:is(input:checked)) {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-primary-300);\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:active\\\\:bg-danger-600 {\\n &:has(*:is(input:checked)) {\\n &:active {\\n background-color: var(--color-danger-600);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:active\\\\:bg-gray-200 {\\n &:has(*:is(input:checked)) {\\n &:active {\\n background-color: var(--color-gray-200);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:active\\\\:bg-primary-600 {\\n &:has(*:is(input:checked)) {\\n &:active {\\n background-color: var(--color-primary-600);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:disabled\\\\]\\\\:cursor-not-allowed {\\n &:has(*:is(input:disabled)) {\\n cursor: not-allowed;\\n }\\n }\\n .has-\\\\[input\\\\:disabled\\\\]\\\\:bg-gray-100 {\\n &:has(*:is(input:disabled)) {\\n background-color: var(--color-gray-100);\\n }\\n }\\n .has-\\\\[input\\\\:disabled\\\\]\\\\:text-gray-500 {\\n &:has(*:is(input:disabled)) {\\n color: var(--color-gray-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-danger-500 {\\n &:has(*:is(input:focus)) {\\n border-color: var(--color-danger-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-primary-500 {\\n &:has(*:is(input:focus)) {\\n border-color: var(--color-primary-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-success-500 {\\n &:has(*:is(input:focus)) {\\n border-color: var(--color-success-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-b-danger-500 {\\n &:has(*:is(input:focus)) {\\n border-bottom-color: var(--color-danger-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-b-primary-500 {\\n &:has(*:is(input:focus)) {\\n border-bottom-color: var(--color-primary-500);\\n }\\n }\\n .has-\\\\[input\\\\:focus\\\\]\\\\:border-b-success-500 {\\n &:has(*:is(input:focus)) {\\n border-bottom-color: var(--color-success-500);\\n }\\n }\\n .has-\\\\[textarea\\\\:focus\\\\]\\\\:border-primary-500 {\\n &:has(*:is(textarea:focus)) {\\n border-color: var(--color-primary-500);\\n }\\n }\\n .sm\\\\:visible {\\n @media (width >= 40rem) {\\n visibility: visible;\\n }\\n }\\n .sm\\\\:max-w-\\\\(--aside-default\\\\) {\\n @media (width >= 40rem) {\\n max-width: var(--aside-default);\\n }\\n }\\n .sm\\\\:max-w-\\\\(--aside-small\\\\) {\\n @media (width >= 40rem) {\\n max-width: var(--aside-small);\\n }\\n }\\n .sm\\\\:max-w-\\\\(--main-default\\\\) {\\n @media (width >= 40rem) {\\n max-width: var(--main-default);\\n }\\n }\\n .sm\\\\:max-w-\\\\(--main-form\\\\) {\\n @media (width >= 40rem) {\\n max-width: var(--main-form);\\n }\\n }\\n .sm\\\\:max-w-\\\\(--main-large\\\\) {\\n @media (width >= 40rem) {\\n max-width: var(--main-large);\\n }\\n }\\n .sm\\\\:flex-row {\\n @media (width >= 40rem) {\\n flex-direction: row;\\n }\\n }\\n .sm\\\\:justify-center-safe {\\n @media (width >= 40rem) {\\n justify-content: safe center;\\n }\\n }\\n .sm\\\\:py-8 {\\n @media (width >= 40rem) {\\n padding-block: calc(var(--spacing) * 8);\\n }\\n }\\n .md\\\\:relative {\\n @media (width >= 48rem) {\\n position: relative;\\n }\\n }\\n .md\\\\:top-\\\\[unset\\\\] {\\n @media (width >= 48rem) {\\n top: unset;\\n }\\n }\\n .md\\\\:right-\\\\[unset\\\\] {\\n @media (width >= 48rem) {\\n right: unset;\\n }\\n }\\n .md\\\\:left-\\\\[unset\\\\] {\\n @media (width >= 48rem) {\\n left: unset;\\n }\\n }\\n .md\\\\:hidden {\\n @media (width >= 48rem) {\\n display: none;\\n }\\n }\\n .md\\\\:h-\\\\[unset\\\\] {\\n @media (width >= 48rem) {\\n height: unset;\\n }\\n }\\n .md\\\\:w-fit {\\n @media (width >= 48rem) {\\n width: -moz-fit-content;\\n width: fit-content;\\n }\\n }\\n .md\\\\:flex-row {\\n @media (width >= 48rem) {\\n flex-direction: row;\\n }\\n }\\n .md\\\\:justify-between {\\n @media (width >= 48rem) {\\n justify-content: space-between;\\n }\\n }\\n .md\\\\:justify-start {\\n @media (width >= 48rem) {\\n justify-content: flex-start;\\n }\\n }\\n .md\\\\:px-0 {\\n @media (width >= 48rem) {\\n padding-inline: calc(var(--spacing) * 0);\\n }\\n }\\n .md\\\\:px-5 {\\n @media (width >= 48rem) {\\n padding-inline: calc(var(--spacing) * 5);\\n }\\n }\\n .md\\\\:py-0 {\\n @media (width >= 48rem) {\\n padding-block: calc(var(--spacing) * 0);\\n }\\n }\\n .md\\\\:py-12 {\\n @media (width >= 48rem) {\\n padding-block: calc(var(--spacing) * 12);\\n }\\n }\\n .lg\\\\:px-12 {\\n @media (width >= 64rem) {\\n padding-inline: calc(var(--spacing) * 12);\\n }\\n }\\n .dark\\\\:bg-black {\\n @media (prefers-color-scheme: dark) {\\n background-color: var(--color-black);\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:border-danger-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n border-color: var(--color-danger-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:border-gray-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n border-color: var(--color-gray-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:border-primary-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n border-color: var(--color-primary-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:bg-danger-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n background-color: var(--color-danger-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:bg-gray-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n background-color: var(--color-gray-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\]\\\\:bg-primary-500 {\\n &:has(*:is(input:checked)) {\\n & .checkbox {\\n background-color: var(--color-primary-500);\\n }\\n }\\n }\\n .has-\\\\[\\\\:not\\\\(input\\\\:checked\\\\)\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\>svg\\\\]\\\\:opacity-0 {\\n &:has(*:is(:not(input:checked))) {\\n & .checkbox > svg {\\n opacity: 0%;\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.checkbox\\\\>svg\\\\]\\\\:opacity-100 {\\n &:has(*:is(input:checked)) {\\n & .checkbox > svg {\\n opacity: 100%;\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.radio\\\\]\\\\:after\\\\:opacity-100 {\\n &:has(*:is(input:checked)) {\\n & .radio {\\n &::after {\\n content: var(--tw-content);\\n opacity: 100%;\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:border-danger-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n border-color: var(--color-danger-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:border-gray-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n border-color: var(--color-gray-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:border-success-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n border-color: var(--color-success-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:bg-danger-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n background-color: var(--color-danger-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:bg-gray-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n background-color: var(--color-gray-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:bg-success-500 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n background-color: var(--color-success-500);\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:after\\\\:left-2\\\\.5 {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n &::after {\\n content: var(--tw-content);\\n left: calc(var(--spacing) * 2.5);\\n }\\n }\\n }\\n }\\n .has-\\\\[input\\\\:checked\\\\]\\\\:\\\\[\\\\&_\\\\.toggle\\\\]\\\\:after\\\\:bg-white {\\n &:has(*:is(input:checked)) {\\n & .toggle {\\n &::after {\\n content: var(--tw-content);\\n background-color: var(--color-white);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_\\\\.tooltip\\\\]\\\\:translate-x-\\\\[-50\\\\%\\\\] {\\n & .tooltip {\\n --tw-translate-x: -50%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .\\\\[\\\\&_\\\\.tooltip\\\\]\\\\:translate-y-\\\\[10px\\\\] {\\n & .tooltip {\\n --tw-translate-y: 10px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:font-black {\\n & a {\\n --tw-font-weight: var(--font-weight-black);\\n font-weight: var(--font-weight-black);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-danger-500 {\\n & a {\\n color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-gray-500 {\\n & a {\\n color: var(--color-gray-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-primary-500 {\\n & a {\\n color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-secondary-500 {\\n & a {\\n color: var(--color-secondary-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-success-500 {\\n & a {\\n color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-warning-500 {\\n & a {\\n color: var(--color-warning-500);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:text-white {\\n & a {\\n color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-danger-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-danger-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-gray-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-gray-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-primary-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-primary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-secondary-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-secondary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-success-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-success-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-warning-300 {\\n & a {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-warning-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-danger-600 {\\n & a {\\n &:active {\\n color: var(--color-danger-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-gray-100 {\\n & a {\\n &:active {\\n color: var(--color-gray-100);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-gray-600 {\\n & a {\\n &:active {\\n color: var(--color-gray-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-primary-600 {\\n & a {\\n &:active {\\n color: var(--color-primary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-secondary-600 {\\n & a {\\n &:active {\\n color: var(--color-secondary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-success-600 {\\n & a {\\n &:active {\\n color: var(--color-success-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:active\\\\:text-warning-600 {\\n & a {\\n &:active {\\n color: var(--color-warning-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:font-black {\\n & button {\\n --tw-font-weight: var(--font-weight-black);\\n font-weight: var(--font-weight-black);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-danger-500 {\\n & button {\\n color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-gray-500 {\\n & button {\\n color: var(--color-gray-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-primary-500 {\\n & button {\\n color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-secondary-500 {\\n & button {\\n color: var(--color-secondary-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-success-500 {\\n & button {\\n color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-warning-500 {\\n & button {\\n color: var(--color-warning-500);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:text-white {\\n & button {\\n color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-danger-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-danger-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-gray-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-gray-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-primary-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-primary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-secondary-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-secondary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-success-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-success-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:hover\\\\:text-warning-300 {\\n & button {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--color-warning-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-danger-600 {\\n & button {\\n &:active {\\n color: var(--color-danger-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-gray-100 {\\n & button {\\n &:active {\\n color: var(--color-gray-100);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-gray-600 {\\n & button {\\n &:active {\\n color: var(--color-gray-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-primary-600 {\\n & button {\\n &:active {\\n color: var(--color-primary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-secondary-600 {\\n & button {\\n &:active {\\n color: var(--color-secondary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-success-600 {\\n & button {\\n &:active {\\n color: var(--color-success-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_button\\\\]\\\\:active\\\\:text-warning-600 {\\n & button {\\n &:active {\\n color: var(--color-warning-600);\\n }\\n }\\n }\\n .\\\\[\\\\&_span\\\\]\\\\:size-2 {\\n & span {\\n width: calc(var(--spacing) * 2);\\n height: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&_span\\\\]\\\\:border-3 {\\n & span {\\n border-style: var(--tw-border-style);\\n border-width: 3px;\\n }\\n }\\n .\\\\[\\\\&_tbody_tr\\\\]\\\\:border-b {\\n & tbody tr {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n }\\n .\\\\[\\\\&_tbody_tr\\\\]\\\\:border-b-gray-200 {\\n & tbody tr {\\n border-bottom-color: var(--color-gray-200);\\n }\\n }\\n .\\\\[\\\\&_tbody_tr\\\\:nth-child\\\\(even\\\\)\\\\]\\\\:bg-gray-100 {\\n & tbody tr:nth-child(even) {\\n background-color: var(--color-gray-100);\\n }\\n }\\n .\\\\[\\\\&_td\\\\]\\\\:overflow-x-scroll {\\n & td {\\n overflow-x: scroll;\\n }\\n }\\n .\\\\[\\\\&_td\\\\]\\\\:border {\\n & td {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n }\\n .\\\\[\\\\&_td\\\\]\\\\:border-gray-200 {\\n & td {\\n border-color: var(--color-gray-200);\\n }\\n }\\n .\\\\[\\\\&_td\\\\]\\\\:px-2 {\\n & td {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&_td\\\\]\\\\:py-1 {\\n & td {\\n padding-block: calc(var(--spacing) * 1);\\n }\\n }\\n .\\\\[\\\\&_td\\\\:last-child\\\\]\\\\:p-0 {\\n & td:last-child {\\n padding: calc(var(--spacing) * 0);\\n }\\n }\\n .\\\\[\\\\&_th\\\\]\\\\:overflow-x-scroll {\\n & th {\\n overflow-x: scroll;\\n }\\n }\\n .\\\\[\\\\&_th\\\\]\\\\:px-2 {\\n & th {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&_th\\\\]\\\\:py-1 {\\n & th {\\n padding-block: calc(var(--spacing) * 1);\\n }\\n }\\n .\\\\[\\\\&_thead\\\\]\\\\:bg-primary-500 {\\n & thead {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&_thead\\\\]\\\\:font-bold {\\n & thead {\\n --tw-font-weight: var(--font-weight-bold);\\n font-weight: var(--font-weight-bold);\\n }\\n }\\n .\\\\[\\\\&_thead\\\\]\\\\:text-white {\\n & thead {\\n color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&_thead_th\\\\:not\\\\(\\\\:last-child\\\\)\\\\]\\\\:border-r {\\n & thead th:not(:last-child) {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 1px;\\n }\\n }\\n .\\\\[\\\\&_thead_th\\\\:not\\\\(\\\\:last-child\\\\)\\\\]\\\\:border-background {\\n & thead th:not(:last-child) {\\n border-color: var(--color-background);\\n }\\n }\\n .\\\\[\\\\&\\\\&\\\\]\\\\:font-normal {\\n && {\\n --tw-font-weight: var(--font-weight-normal);\\n font-weight: var(--font-weight-normal);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:border-b-primary-500 {\\n &.active {\\n border-bottom-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-danger-500 {\\n &.active {\\n background-color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-gray-500 {\\n &.active {\\n background-color: var(--color-gray-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-primary-500 {\\n &.active {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-secondary-500 {\\n &.active {\\n background-color: var(--color-secondary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-success-500 {\\n &.active {\\n background-color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-warning-500 {\\n &.active {\\n background-color: var(--color-warning-500);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:bg-white {\\n &.active {\\n background-color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:font-black {\\n &.active {\\n --tw-font-weight: var(--font-weight-black);\\n font-weight: var(--font-weight-black);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:text-white {\\n &.active {\\n color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:opacity-100 {\\n &.active {\\n opacity: 100%;\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-danger-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-danger-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-gray-100 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-100);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-gray-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-gray-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-primary-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-primary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-secondary-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-secondary-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-success-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-success-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:bg-warning-300 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--color-warning-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:hover\\\\:opacity-70 {\\n &.active {\\n &:hover {\\n @media (hover: hover) {\\n opacity: 70%;\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-danger-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-danger-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-gray-100 {\\n &.active {\\n &:active {\\n background-color: var(--color-gray-100);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-gray-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-gray-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-primary-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-primary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-secondary-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-secondary-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-success-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-success-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.active\\\\]\\\\:active\\\\:bg-warning-600 {\\n &.active {\\n &:active {\\n background-color: var(--color-warning-600);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:visible {\\n &.open {\\n visibility: visible;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:top-\\\\[45\\\\%\\\\] {\\n &.open {\\n top: 45%;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:right-0 {\\n &.open {\\n right: calc(var(--spacing) * 0);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:bottom-\\\\[45\\\\%\\\\] {\\n &.open {\\n bottom: 45%;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:left-0 {\\n &.open {\\n left: calc(var(--spacing) * 0);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:z-20 {\\n &.open {\\n z-index: 20;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:max-h-100 {\\n &.open {\\n max-height: calc(var(--spacing) * 100);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:max-h-\\\\[179px\\\\] {\\n &.open {\\n max-height: 179px;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:max-h-\\\\[300px\\\\] {\\n &.open {\\n max-height: 300px;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:w-0 {\\n &.open {\\n width: calc(var(--spacing) * 0);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:-rotate-45 {\\n &.open {\\n rotate: calc(45deg * -1);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:rotate-45 {\\n &.open {\\n rotate: 45deg;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:rotate-180 {\\n &.open {\\n rotate: 180deg;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:pt-2 {\\n &.open {\\n padding-top: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:pt-8 {\\n &.open {\\n padding-top: calc(var(--spacing) * 8);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:opacity-100 {\\n &.open {\\n opacity: 100%;\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:shadow-sm {\\n &.open {\\n --tw-shadow: 0px 1px 2px var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0px 2px 6px 2px var(--tw-shadow-color, rgba(0, 0, 0, 0.15));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .\\\\[\\\\&\\\\.open\\\\]\\\\:transition-none {\\n &.open {\\n transition-property: none;\\n }\\n }\\n .\\\\[\\\\&\\\\.readOnly\\\\]\\\\:cursor-default\\\\! {\\n &.readOnly {\\n cursor: default !important;\\n }\\n }\\n .\\\\[\\\\&\\\\.visible\\\\]\\\\:z-20 {\\n &.visible {\\n z-index: 20;\\n }\\n }\\n .\\\\[\\\\&\\\\.visible\\\\]\\\\:translate-x-0 {\\n &.visible {\\n --tw-translate-x: calc(var(--spacing) * 0);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .\\\\[\\\\&\\\\.visible\\\\]\\\\:opacity-100 {\\n &.visible {\\n opacity: 100%;\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:absolute {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n position: absolute;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:top-\\\\[50\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n top: 50%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:top-\\\\[100\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n top: 100%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:right-\\\\[100\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n right: 100%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:bottom-\\\\[100\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n bottom: 100%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:left-\\\\[50\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n left: 50%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:left-\\\\[100\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n left: 100%;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:translate-x-\\\\[-50\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n --tw-translate-x: -50%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:translate-y-\\\\[-50\\\\%\\\\] {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n --tw-translate-y: -50%;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-4 {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-style: var(--tw-border-style);\\n border-width: 4px;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-transparent {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-color: transparent;\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-t-\\\\(--color-overlay-black-80\\\\) {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-top-color: var(--color-overlay-black-80);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-r-\\\\(--color-overlay-black-80\\\\) {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-right-color: var(--color-overlay-black-80);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-b-\\\\(--color-overlay-black-80\\\\) {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-bottom-color: var(--color-overlay-black-80);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\.with-arrow\\\\]\\\\:after\\\\:border-l-\\\\(--color-overlay-black-80\\\\) {\\n &.with-arrow {\\n &::after {\\n content: var(--tw-content);\\n border-left-color: var(--color-overlay-black-80);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-meter-bar\\\\]\\\\:border-none {\\n &::-moz-meter-bar {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-meter-bar\\\\]\\\\:bg-none {\\n &::-moz-meter-bar {\\n background-image: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:size-4 {\\n &::-moz-range-thumb {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:cursor-pointer {\\n &::-moz-range-thumb {\\n cursor: pointer;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:appearance-none {\\n &::-moz-range-thumb {\\n -moz-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:rounded-full {\\n &::-moz-range-thumb {\\n border-radius: calc(infinity * 1px);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:border-none {\\n &::-moz-range-thumb {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:bg-danger-500 {\\n &::-moz-range-thumb {\\n background-color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:bg-primary-500 {\\n &::-moz-range-thumb {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:bg-success-500 {\\n &::-moz-range-thumb {\\n background-color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:bg-transparent {\\n &::-moz-range-thumb {\\n background-color: transparent;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:ring-2 {\\n &::-moz-range-thumb {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:ring-white {\\n &::-moz-range-thumb {\\n --tw-ring-color: var(--color-white);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-thumb\\\\]\\\\:outline-none {\\n &::-moz-range-thumb {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-track\\\\]\\\\:appearance-none {\\n &::-moz-range-track {\\n -moz-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-track\\\\]\\\\:border-none {\\n &::-moz-range-track {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-track\\\\]\\\\:bg-transparent {\\n &::-moz-range-track {\\n background-color: transparent;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-moz-range-track\\\\]\\\\:outline-none {\\n &::-moz-range-track {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-calendar-picker-indicator\\\\]\\\\:absolute {\\n &::-webkit-calendar-picker-indicator {\\n position: absolute;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-calendar-picker-indicator\\\\]\\\\:opacity-0 {\\n &::-webkit-calendar-picker-indicator {\\n opacity: 0%;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-inner-spin-button\\\\]\\\\:m-0 {\\n &::-webkit-inner-spin-button {\\n margin: calc(var(--spacing) * 0);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-inner-spin-button\\\\]\\\\:appearance-none {\\n &::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-meter-bar\\\\]\\\\:border-none {\\n &::-webkit-meter-bar {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-meter-bar\\\\]\\\\:bg-none {\\n &::-webkit-meter-bar {\\n background-image: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-meter-even-less-good-value\\\\]\\\\:bg-none {\\n &::-webkit-meter-even-less-good-value {\\n background-image: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-meter-optimum-value\\\\]\\\\:bg-none {\\n &::-webkit-meter-optimum-value {\\n background-image: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-meter-suboptimum-value\\\\]\\\\:bg-none {\\n &::-webkit-meter-suboptimum-value {\\n background-image: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-outer-spin-button\\\\]\\\\:appearance-none {\\n &::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-search-cancel-button\\\\]\\\\:hidden {\\n &::-webkit-search-cancel-button {\\n display: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-search-cancel-button\\\\]\\\\:appearance-none {\\n &::-webkit-search-cancel-button {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-search-decoration\\\\]\\\\:hidden {\\n &::-webkit-search-decoration {\\n display: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-search-decoration\\\\]\\\\:appearance-none {\\n &::-webkit-search-decoration {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:relative {\\n &::-webkit-slider-thumb {\\n position: relative;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:z-20 {\\n &::-webkit-slider-thumb {\\n z-index: 20;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:size-4 {\\n &::-webkit-slider-thumb {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:cursor-pointer {\\n &::-webkit-slider-thumb {\\n cursor: pointer;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:appearance-none {\\n &::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:rounded-full {\\n &::-webkit-slider-thumb {\\n border-radius: calc(infinity * 1px);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:border-none {\\n &::-webkit-slider-thumb {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:bg-danger-500 {\\n &::-webkit-slider-thumb {\\n background-color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:bg-primary-500 {\\n &::-webkit-slider-thumb {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:bg-success-500 {\\n &::-webkit-slider-thumb {\\n background-color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:bg-transparent {\\n &::-webkit-slider-thumb {\\n background-color: transparent;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:ring-2 {\\n &::-webkit-slider-thumb {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:ring-background {\\n &::-webkit-slider-thumb {\\n --tw-ring-color: var(--color-background);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-thumb\\\\]\\\\:outline-none {\\n &::-webkit-slider-thumb {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:h-full {\\n &::-webkit-slider-track {\\n height: 100%;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:appearance-none {\\n &::-webkit-slider-track {\\n -webkit-appearance: none;\\n appearance: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:border-none {\\n &::-webkit-slider-track {\\n --tw-border-style: none;\\n border-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:bg-danger-500 {\\n &::-webkit-slider-track {\\n background-color: var(--color-danger-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:bg-primary-500 {\\n &::-webkit-slider-track {\\n background-color: var(--color-primary-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:bg-success-500 {\\n &::-webkit-slider-track {\\n background-color: var(--color-success-500);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:bg-transparent {\\n &::-webkit-slider-track {\\n background-color: transparent;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:-webkit-slider-track\\\\]\\\\:outline-none {\\n &::-webkit-slider-track {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:mr-2 {\\n &::file-selector-button {\\n margin-right: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:h-8 {\\n &::file-selector-button {\\n height: calc(var(--spacing) * 8);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:cursor-pointer {\\n &::file-selector-button {\\n cursor: pointer;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:bg-gray-200 {\\n &::file-selector-button {\\n background-color: var(--color-gray-200);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:px-2 {\\n &::file-selector-button {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:text-black {\\n &::file-selector-button {\\n color: var(--color-black);\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:transition-all {\\n &::file-selector-button {\\n transition-property: all;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:duration-200 {\\n &::file-selector-button {\\n --tw-duration: 200ms;\\n transition-duration: 200ms;\\n }\\n }\\n .\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:ease-in-out {\\n &::file-selector-button {\\n --tw-ease: var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\:\\\\:file-selector-button\\\\]\\\\:bg-gray-300 {\\n &:hover {\\n @media (hover: hover) {\\n &::file-selector-button {\\n background-color: var(--color-gray-300);\\n }\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\:not\\\\(\\\\:last-child\\\\)\\\\]\\\\:border-b {\\n &:not(:last-child) {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n }\\n .\\\\[\\\\&\\\\:not\\\\(\\\\:last-child\\\\)\\\\]\\\\:border-b-gray-200 {\\n &:not(:last-child) {\\n border-bottom-color: var(--color-gray-200);\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:text-left {\\n & > * {\\n text-align: left;\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-1 {\\n & > * {\\n &:focus {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-danger-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-danger-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-gray-500 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-gray-500);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-gray-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-gray-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-primary-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-primary-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-secondary-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-secondary-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-success-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-success-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:focus\\\\:ring-warning-800 {\\n & > * {\\n &:focus {\\n --tw-ring-color: var(--color-warning-800);\\n }\\n }\\n }\\n .\\\\[\\\\&\\\\>a\\\\]\\\\:outline-none {\\n & > a {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .\\\\[\\\\&\\\\>code\\\\]\\\\:rounded-xs {\\n & > code {\\n border-radius: var(--radius-xs);\\n }\\n }\\n .\\\\[\\\\&\\\\>code\\\\]\\\\:bg-gray-50 {\\n & > code {\\n background-color: var(--color-gray-50);\\n }\\n }\\n .\\\\[\\\\&\\\\>code\\\\]\\\\:p-1 {\\n & > code {\\n padding: calc(var(--spacing) * 1);\\n }\\n }\\n .\\\\[\\\\&\\\\>code\\\\]\\\\:leading-8 {\\n & > code {\\n --tw-leading: calc(var(--spacing) * 8);\\n line-height: calc(var(--spacing) * 8);\\n }\\n }\\n .\\\\[\\\\&\\\\>code\\\\]\\\\:text-blue-500 {\\n & > code {\\n color: var(--color-blue-500);\\n }\\n }\\n .\\\\[\\\\&\\\\>dd\\\\]\\\\:ps-4 {\\n & > dd {\\n padding-inline-start: calc(var(--spacing) * 4);\\n }\\n }\\n .\\\\[\\\\&\\\\>dd\\\\]\\\\:font-normal {\\n & > dd {\\n --tw-font-weight: var(--font-weight-normal);\\n font-weight: var(--font-weight-normal);\\n }\\n }\\n .\\\\[\\\\&\\\\>dt\\\\]\\\\:font-bold {\\n & > dt {\\n --tw-font-weight: var(--font-weight-bold);\\n font-weight: var(--font-weight-bold);\\n }\\n }\\n .\\\\[\\\\&\\\\>pre\\\\]\\\\:bg-gray-800\\\\! {\\n & > pre {\\n background-color: var(--color-gray-800) !important;\\n }\\n }\\n .\\\\[\\\\&\\\\>pre\\\\]\\\\:p-4\\\\! {\\n & > pre {\\n padding: calc(var(--spacing) * 4) !important;\\n }\\n }\\n .\\\\[\\\\&\\\\>span\\\\]\\\\:h-1 {\\n & > span {\\n height: calc(var(--spacing) * 1);\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-danger-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-danger-300);\\n }\\n }\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-gray-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-gray-300);\\n }\\n }\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-primary-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-primary-300);\\n }\\n }\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-secondary-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-secondary-300);\\n }\\n }\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-success-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-success-300);\\n }\\n }\\n }\\n }\\n .hover\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-warning-300 {\\n &:hover {\\n @media (hover: hover) {\\n & > span {\\n background-color: var(--color-warning-300);\\n }\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-danger-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-danger-600);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-gray-100 {\\n &:active {\\n & > span {\\n background-color: var(--color-gray-100);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-gray-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-gray-600);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-primary-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-primary-600);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-secondary-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-secondary-600);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-success-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-success-600);\\n }\\n }\\n }\\n .active\\\\:\\\\[\\\\&\\\\>span\\\\]\\\\:bg-warning-600 {\\n &:active {\\n & > span {\\n background-color: var(--color-warning-600);\\n }\\n }\\n }\\n}\\n:root {\\n --font-lato: \\\"Lato\\\", sans-serif;\\n --font-sans: var(--font-lato);\\n --font-mono: monospace;\\n --color-primary-50: var(--color-blue-50);\\n --color-primary-100: var(--color-blue-100);\\n --color-primary-200: var(--color-blue-200);\\n --color-primary-300: var(--color-blue-300);\\n --color-primary-400: var(--color-blue-400);\\n --color-primary-500: var(--color-blue-500);\\n --color-primary-600: var(--color-blue-600);\\n --color-primary-700: var(--color-blue-700);\\n --color-primary-800: var(--color-blue-800);\\n --color-primary-900: var(--color-blue-900);\\n --color-primary-950: var(--color-blue-950);\\n --color-secondary-50: var(--color-cyan-50);\\n --color-secondary-100: var(--color-cyan-100);\\n --color-secondary-200: var(--color-cyan-200);\\n --color-secondary-300: var(--color-cyan-300);\\n --color-secondary-400: var(--color-cyan-400);\\n --color-secondary-500: var(--color-cyan-500);\\n --color-secondary-600: var(--color-cyan-600);\\n --color-secondary-700: var(--color-cyan-700);\\n --color-secondary-800: var(--color-cyan-800);\\n --color-secondary-900: var(--color-cyan-900);\\n --color-secondary-950: var(--color-cyan-950);\\n --color-success-50: var(--color-green-50);\\n --color-success-100: var(--color-green-100);\\n --color-success-200: var(--color-green-200);\\n --color-success-300: var(--color-green-300);\\n --color-success-400: var(--color-green-400);\\n --color-success-500: var(--color-green-500);\\n --color-success-600: var(--color-green-600);\\n --color-success-700: var(--color-green-700);\\n --color-success-800: var(--color-green-800);\\n --color-success-900: var(--color-green-900);\\n --color-success-950: var(--color-green-950);\\n --color-danger-50: var(--color-red-50);\\n --color-danger-100: var(--color-red-100);\\n --color-danger-200: var(--color-red-200);\\n --color-danger-300: var(--color-red-300);\\n --color-danger-400: var(--color-red-400);\\n --color-danger-500: var(--color-red-500);\\n --color-danger-600: var(--color-red-600);\\n --color-danger-700: var(--color-red-700);\\n --color-danger-800: var(--color-red-800);\\n --color-danger-900: var(--color-red-900);\\n --color-danger-950: var(--color-red-950);\\n --color-warning-50: var(--color-amber-50);\\n --color-warning-100: var(--color-amber-100);\\n --color-warning-200: var(--color-amber-200);\\n --color-warning-300: var(--color-amber-300);\\n --color-warning-400: var(--color-amber-400);\\n --color-warning-500: var(--color-amber-500);\\n --color-warning-600: var(--color-amber-600);\\n --color-warning-700: var(--color-amber-700);\\n --color-warning-800: var(--color-amber-800);\\n --color-warning-900: var(--color-amber-900);\\n --color-warning-950: var(--color-amber-950);\\n --color-gray-50: var(--color-neutral-50);\\n --color-gray-100: var(--color-neutral-100);\\n --color-gray-200: var(--color-neutral-200);\\n --color-gray-300: var(--color-neutral-300);\\n --color-gray-400: var(--color-neutral-400);\\n --color-gray-500: var(--color-neutral-500);\\n --color-gray-600: var(--color-neutral-600);\\n --color-gray-700: var(--color-neutral-700);\\n --color-gray-800: var(--color-neutral-800);\\n --color-gray-900: var(--color-neutral-900);\\n --color-gray-950: var(--color-neutral-950);\\n --color-background: var(--color-white);\\n --color-font: var(--color-black);\\n --font-weight-thin: 100;\\n --font-weight-light: 300;\\n --font-weight-normal: 400;\\n --font-weight-bold: 700;\\n --font-weight-black: 900;\\n --color-overlay-black-50: rgba(0, 0, 0, 0.5);\\n --color-overlay-black-80: rgba(0, 0, 0, 0.8);\\n --color-overlay-white-50: rgba(255, 255, 255, 0.5);\\n --color-overlay-white-80: rgba(255, 255, 255, 0.8);\\n --color-overlay-gradient-black:\\n linear-gradient(\\n \\n 180deg,\\n rgba(255, 255, 255, 0) 0%,\\n rgba(0, 0, 0, 0.56) 100% );\\n --color-overlay-gradient-white:\\n linear-gradient(\\n \\n 180deg,\\n rgba(0, 0, 0, 0) 0%,\\n rgba(255, 255, 255, 0.35) 100% );\\n --font-sans: var(--font-lato);\\n --font-mono: monospace;\\n --spacer-2xs: 4px;\\n --spacer-xs: 8px;\\n --spacer-sm: 12px;\\n --spacer-md: 16px;\\n --spacer-lg: 24px;\\n --spacer-xl: 32px;\\n --spacer-2xl: 48px;\\n --main-default: 600px;\\n --main-large: 800px;\\n --main-form: 400px;\\n --main-full: 100%;\\n --aside-default: 250px;\\n --aside-small: 200px;\\n --shadow-2xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow-xs: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n --shadow-sm: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15);\\n --shadow-md: 0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3);\\n --shadow-lg: 0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3);\\n --shadow-xl: 0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3);\\n --shadow-2xl: 0px 10px 14px 8px rgba(0, 0, 0, 0.2), 0px 4px 4px rgba(0, 0, 0, 0.3);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.06);\\n --shadow-none: none;\\n --animate-cubic-bezier: cubic-bezier(0.5, 0, 0.5, 1);\\n --transition-short: all 200ms ease;\\n --transition-long: all 500ms ease;\\n --transition-bezier: all 500ms cubic-bezier(0.25, 0.75, 0, 0.66);\\n --text-display-h1: 5rem;\\n --text-display-h2: 4rem;\\n --text-display-h3: 3.5rem;\\n --text-display-h4: 3rem;\\n --text-display-h5: 2.5rem;\\n --text-h1: 2.5rem;\\n --text-h2: 2rem;\\n --text-h3: 1.8rem;\\n --text-h4: 1.5rem;\\n --text-h5: 1.3rem;\\n --text-h6: 1.1rem;\\n --text-body: 1rem;\\n --text-small: 0.875rem;\\n}\\nhtml,\\nbody {\\n font-family: var(--font-sans);\\n width: 100%;\\n min-height: 100vh;\\n background-color: var(--color-background);\\n color: var(--color-font);\\n max-width: 100dvw;\\n line-height: var(--leading-normal);\\n &.dark {\\n --color-background: var(--color-black);\\n --color-font: var(--color-white);\\n }\\n}\\n.smooth {\\n scroll-behavior: smooth;\\n}\\na,\\nbutton {\\n cursor: pointer;\\n transition: var(--transition-short);\\n &:disabled {\\n cursor: not-allowed;\\n }\\n}\\nimg,\\nvideo,\\niframe {\\n max-width: 100%;\\n}\\n.no-scrollbar {\\n -ms-overflow-style: none;\\n scrollbar-width: none;\\n &::-webkit-scrollbar {\\n display: none;\\n }\\n}\\n.lato-thin {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-thin);\\n font-style: normal;\\n}\\n.lato-light {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-light);\\n font-style: normal;\\n}\\n.lato-regular {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-normal);\\n font-style: normal;\\n}\\n.lato-bold {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-bold);\\n font-style: normal;\\n}\\n.lato-black {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-black);\\n font-style: normal;\\n}\\n.lato-thin-italic {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-thin);\\n font-style: italic;\\n}\\n.lato-light-italic {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-light);\\n font-style: italic;\\n}\\n.lato-regular-italic {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-normal);\\n font-style: italic;\\n}\\n.lato-bold-italic {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-bold);\\n font-style: italic;\\n}\\n.lato-black-italic {\\n font-family: var(--font-sans);\\n font-weight: var(--font-weight-black);\\n font-style: italic;\\n}\\n.text-primary {\\n color: var(--color-primary-500);\\n}\\n.bg-primary {\\n background-color: var(--color-primary-500);\\n}\\n.text-secondary {\\n color: var(--color-secondary-500);\\n}\\n.bg-secondary {\\n background-color: var(--color-secondary-500);\\n}\\n.text-success {\\n color: var(--color-success-500);\\n}\\n.bg-success {\\n background-color: var(--color-success-500);\\n}\\n.text-danger {\\n color: var(--color-danger-500);\\n}\\n.bg-danger {\\n background-color: var(--color-danger-500);\\n}\\n.text-warning {\\n color: var(--color-warning-500);\\n}\\n.bg-warning {\\n background-color: var(--color-warning-500);\\n}\\n.text-gray {\\n color: var(--color-gray-500);\\n}\\n.bg-gray {\\n background-color: var(--color-gray-500);\\n}\\n.text-white {\\n color: var(--color-white);\\n}\\n.bg-white {\\n background-color: var(--color-white);\\n}\\n.overlay-black-50 {\\n background: var(--color-overlay-black-50);\\n}\\n.overlay-black-80 {\\n background: var(--color-overlay-black-80);\\n}\\n.overlay-white-50 {\\n background: var(--color-overlay-white-50);\\n}\\n.overlay-white-80 {\\n background: var(--color-overlay-white-80);\\n}\\n.overlay-gradient-black {\\n background: var(--color-overlay-gradient-black);\\n}\\n.overlay-gradient-white {\\n background: var(--color-overlay-gradient-white);\\n}\\n@keyframes shine {\\n from {\\n left: -150px;\\n }\\n to {\\n left: 106%;\\n }\\n}\\n@keyframes spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes loader-pulse {\\n 0%, 100% {\\n transform: scale(0);\\n }\\n 50% {\\n transform: scale(1);\\n }\\n}\\n.Toastify__progress-bar--bg {\\n background-color: transparent !important;\\n}\\n@keyframes progress-bar {\\n 0% {\\n width: 0;\\n }\\n 100% {\\n width: var(--meter-value);\\n }\\n}\\n@property --tw-border-spacing-x { syntax: \\\"<length>\\\"; inherits: false; initial-value: 0; }\\n@property --tw-border-spacing-y { syntax: \\\"<length>\\\"; inherits: false; initial-value: 0; }\\n@property --tw-translate-x { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-translate-y { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-translate-z { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-scale-x { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@property --tw-scale-y { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@property --tw-scale-z { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@property --tw-rotate-x { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-rotate-y { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-rotate-z { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-skew-x { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-skew-y { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-border-style { syntax: \\\"*\\\"; inherits: false; initial-value: solid; }\\n@property --tw-gradient-position { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-from { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-via { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-to { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-stops { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-via-stops { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-from-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 0%; }\\n@property --tw-gradient-via-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 50%; }\\n@property --tw-gradient-to-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-leading { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-font-weight { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ordinal { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-slashed-zero { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-numeric-figure { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-numeric-spacing { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-numeric-fraction { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-inset-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-inset-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-inset-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-ring-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ring-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-inset-ring-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-inset-ring-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-ring-inset { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ring-offset-width { syntax: \\\"<length>\\\"; inherits: false; initial-value: 0px; }\\n@property --tw-ring-offset-color { syntax: \\\"*\\\"; inherits: false; initial-value: #fff; }\\n@property --tw-ring-offset-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-outline-style { syntax: \\\"*\\\"; inherits: false; initial-value: solid; }\\n@property --tw-blur { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-brightness { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-contrast { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-grayscale { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-hue-rotate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-invert { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-opacity { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-saturate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-sepia { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-drop-shadow-size { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-blur { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-brightness { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-contrast { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-grayscale { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-hue-rotate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-invert { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-opacity { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-saturate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-sepia { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-duration { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ease { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-text-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-text-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-content { syntax: \\\"*\\\"; initial-value: \\\"\\\"; inherits: false; }\\n@keyframes spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes pulse {\\n 50% {\\n opacity: 0.5;\\n }\\n}\\n@layer properties {\\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\\n *,\\n ::before,\\n ::after,\\n ::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-translate-z: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-scale-z: 1;\\n --tw-rotate-x: initial;\\n --tw-rotate-y: initial;\\n --tw-rotate-z: initial;\\n --tw-skew-x: initial;\\n --tw-skew-y: initial;\\n --tw-border-style: solid;\\n --tw-gradient-position: initial;\\n --tw-gradient-from: #0000;\\n --tw-gradient-via: #0000;\\n --tw-gradient-to: #0000;\\n --tw-gradient-stops: initial;\\n --tw-gradient-via-stops: initial;\\n --tw-gradient-from-position: 0%;\\n --tw-gradient-via-position: 50%;\\n --tw-gradient-to-position: 100%;\\n --tw-leading: initial;\\n --tw-font-weight: initial;\\n --tw-ordinal: initial;\\n --tw-slashed-zero: initial;\\n --tw-numeric-figure: initial;\\n --tw-numeric-spacing: initial;\\n --tw-numeric-fraction: initial;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-color: initial;\\n --tw-shadow-alpha: 100%;\\n --tw-inset-shadow: 0 0 #0000;\\n --tw-inset-shadow-color: initial;\\n --tw-inset-shadow-alpha: 100%;\\n --tw-ring-color: initial;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-inset-ring-color: initial;\\n --tw-inset-ring-shadow: 0 0 #0000;\\n --tw-ring-inset: initial;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-outline-style: solid;\\n --tw-blur: initial;\\n --tw-brightness: initial;\\n --tw-contrast: initial;\\n --tw-grayscale: initial;\\n --tw-hue-rotate: initial;\\n --tw-invert: initial;\\n --tw-opacity: initial;\\n --tw-saturate: initial;\\n --tw-sepia: initial;\\n --tw-drop-shadow: initial;\\n --tw-drop-shadow-color: initial;\\n --tw-drop-shadow-alpha: 100%;\\n --tw-drop-shadow-size: initial;\\n --tw-backdrop-blur: initial;\\n --tw-backdrop-brightness: initial;\\n --tw-backdrop-contrast: initial;\\n --tw-backdrop-grayscale: initial;\\n --tw-backdrop-hue-rotate: initial;\\n --tw-backdrop-invert: initial;\\n --tw-backdrop-opacity: initial;\\n --tw-backdrop-saturate: initial;\\n --tw-backdrop-sepia: initial;\\n --tw-duration: initial;\\n --tw-ease: initial;\\n --tw-text-shadow-color: initial;\\n --tw-text-shadow-alpha: 100%;\\n --tw-content: \\\"\\\";\\n }\\n }\\n}\\n\")","const libTextDisplayTags = {\n\th1: \"h1\",\n\th2: \"h2\",\n\th3: \"h3\",\n\th4: \"h4\",\n\th5: \"h5\",\n}\n\nexport const designTokens = {\n\tlibColors: {\n\t\t\"primary-50\": \"#eff6ff\",\n\t\t\"primary-100\": \"#dbeafe\",\n\t\t\"primary-200\": \"#bfdbfe\",\n\t\t\"primary-300\": \"#93c5fd\",\n\t\t\"primary-400\": \"#60a5fa\",\n\t\t\"primary-500\": \"#3b82f6\",\n\t\t\"primary-600\": \"#2563eb\",\n\t\t\"primary-700\": \"#1d4ed8\",\n\t\t\"primary-800\": \"#1e40af\",\n\t\t\"primary-900\": \"#1e3a8a\",\n\t\t\"primary-950\": \"#172554\",\n\n\t\t\"secondary-50\": \"#ecfeff\",\n\t\t\"secondary-100\": \"#cffafe\",\n\t\t\"secondary-200\": \"#a5f3fc\",\n\t\t\"secondary-300\": \"#67e8f9\",\n\t\t\"secondary-400\": \"#22d3ee\",\n\t\t\"secondary-500\": \"#06b6d4\",\n\t\t\"secondary-600\": \"#0891b2\",\n\t\t\"secondary-700\": \"#0e7490\",\n\t\t\"secondary-800\": \"#155e75\",\n\t\t\"secondary-900\": \"#164e63\",\n\t\t\"secondary-950\": \"#083344\",\n\n\t\t\"success-50\": \"#f0fdf4\",\n\t\t\"success-100\": \"#dcfce7\",\n\t\t\"success-200\": \"#bbf7d0\",\n\t\t\"success-300\": \"#86efac\",\n\t\t\"success-400\": \"#4ade80\",\n\t\t\"success-500\": \"#22c55e\",\n\t\t\"success-600\": \"#16a34a\",\n\t\t\"success-700\": \"#15803d\",\n\t\t\"success-800\": \"#166534\",\n\t\t\"success-900\": \"#14532d\",\n\t\t\"success-950\": \"#052e16\",\n\n\t\t\"danger-50\": \"#fef2f2\",\n\t\t\"danger-100\": \"#fee2e2\",\n\t\t\"danger-200\": \"#fecaca\",\n\t\t\"danger-300\": \"#fca5a5\",\n\t\t\"danger-400\": \"#f87171\",\n\t\t\"danger-500\": \"#ef4444\",\n\t\t\"danger-600\": \"#dc2626\",\n\t\t\"danger-700\": \"#b91c1c\",\n\t\t\"danger-800\": \"#991b1b\",\n\t\t\"danger-900\": \"#7f1d1d\",\n\t\t\"danger-950\": \"#450a0a\",\n\n\t\t\"warning-50\": \"#fffbeb\",\n\t\t\"warning-100\": \"#fef3c7\",\n\t\t\"warning-200\": \"#fde68a\",\n\t\t\"warning-300\": \"#fcd34d\",\n\t\t\"warning-400\": \"#fbbf24\",\n\t\t\"warning-500\": \"#f59e42\",\n\t\t\"warning-600\": \"#d97706\",\n\t\t\"warning-700\": \"#b45309\",\n\t\t\"warning-800\": \"#92400e\",\n\t\t\"warning-900\": \"#78350f\",\n\t\t\"warning-950\": \"#451a03\",\n\n\t\t\"gray-50\": \"#f9fafb\",\n\t\t\"gray-100\": \"#f3f4f6\",\n\t\t\"gray-200\": \"#e5e7eb\",\n\t\t\"gray-300\": \"#d1d5db\",\n\t\t\"gray-400\": \"#9ca3af\",\n\t\t\"gray-500\": \"#6b7280\",\n\t\t\"gray-600\": \"#4b5563\",\n\t\t\"gray-700\": \"#374151\",\n\t\t\"gray-800\": \"#1f2937\",\n\t\t\"gray-900\": \"#111827\",\n\t\t\"gray-950\": \"#030712\",\n\n\t\tblack: \"#000000\",\n\t\twhite: \"#ffffff\",\n\n\t\tcurrent: \"currentColor\",\n\t\ttransparent: \"transparent\",\n\t\tbackground: \"background\",\n\t\tfont: \"font\",\n\t},\n\n\tlibColorsShort: {\n\t\tprimary: \"primary\",\n\t\tsecondary: \"secondary\",\n\t\tsuccess: \"success\",\n\t\tdanger: \"danger\",\n\t\twarning: \"warning\",\n\t\tgray: \"gray\",\n\t\tblack: \"black\",\n\t\twhite: \"white\",\n\t\tcurrent: \"current\",\n\t\ttransparent: \"transparent\",\n\t\tbackground: \"background\",\n\t},\n\n\tlibColorsHover: {\n\t\tprimary: \"primary\",\n\t\tsecondary: \"secondary\",\n\t\tsuccess: \"success\",\n\t\tdanger: \"danger\",\n\t\twarning: \"warning\",\n\t\tgray: \"gray\",\n\t\twhite: \"white\",\n\t},\n\n\tlibOverlays: {\n\t\t\"black-50\": \"black-50\",\n\t\t\"black-80\": \"black-80\",\n\t\t\"white-50\": \"white-50\",\n\t\t\"white-80\": \"white-80\",\n\t\t\"gradient-black\": \"gradient-black\",\n\t\t\"gradient-white\": \"gradient-white\",\n\t},\n\n\tlibFontFamilies: {\n\t\tbody: \"body\",\n\t\tcode: \"code\",\n\t},\n\n\tlibSpacers: {\n\t\t/** 4px */ \"2xs\": \"2xs\",\n\t\t/** 8px */ xs: \"xs\",\n\t\t/** 12px */ sm: \"sm\",\n\t\t/** 16px */ md: \"md\",\n\t\t/** 24px */ lg: \"lg\",\n\t\t/** 32px */ xl: \"xl\",\n\t\t/** 48px */ \"2xl\": \"2xl\",\n\t},\n\n\tlibBreakpoints: {\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t},\n\n\tlibContainer: {\n\t\t\"3xs\": \"3xs\",\n\t\t\"2xs\": \"2xs\",\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\t\"3xl\": \"3xl\",\n\t\t\"4xl\": \"4xl\",\n\t\t\"5xl\": \"5xl\",\n\t\t\"6xl\": \"6xl\",\n\t\t\"7xl\": \"7xl\",\n\t},\n\n\tlibFontSizes: {\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tbase: \"base\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\t\"3xl\": \"3xl\",\n\t\t\"4xl\": \"4xl\",\n\t\t\"5xl\": \"5xl\",\n\t\t\"6xl\": \"6xl\",\n\t\t\"7xl\": \"7xl\",\n\t\t\"8xl\": \"8xl\",\n\t\t\"9xl\": \"9xl\",\n\t},\n\n\tlibLineHeights: {\n\t\txs: \"xs--line-height\",\n\t\tsm: \"sm--line-height\",\n\t\tbase: \"base--line-height\",\n\t\tlg: \"lg--line-height\",\n\t\txl: \"xl--line-height\",\n\t\t\"2xl\": \"2xl--line-height\",\n\t\t\"3xl\": \"3xl--line-height\",\n\t\t\"4xl\": \"4xl--line-height\",\n\t\t\"5xl\": \"5xl--line-height\",\n\t\t\"6xl\": \"6xl--line-height\",\n\t\t\"7xl\": \"7xl--line-height\",\n\t\t\"8xl\": \"8xl--line-height\",\n\t\t\"9xl\": \"9xl--line-height\",\n\t},\n\n\tlibFontWeights: {\n\t\tthin: \"thin\",\n\t\textralight: \"extralight\",\n\t\tlight: \"light\",\n\t\tnormal: \"normal\",\n\t\tmedium: \"medium\",\n\t\tsemibold: \"semibold\",\n\t\tbold: \"bold\",\n\t\textrabold: \"extrabold\",\n\t\tblack: \"black\",\n\t},\n\n\tlibTracking: {\n\t\ttighter: \"tighter\",\n\t\ttight: \"tight\",\n\t\tnormal: \"normal\",\n\t\twide: \"wide\",\n\t\twider: \"wider\",\n\t\twidest: \"widest\",\n\t},\n\n\tlibLeading: {\n\t\ttight: \"tight\",\n\t\tsnug: \"snug\",\n\t\tnormal: \"normal\",\n\t\trelaxed: \"relaxed\",\n\t\tloose: \"loose\",\n\t\tnone: \"none\",\n\t},\n\n\tlibRadius: {\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\t\"3xl\": \"3xl\",\n\t\t\"4xl\": \"4xl\",\n\t\tfull: \"full\",\n\t},\n\n\tlibShadows: {\n\t\t\"2xs\": \"2xs\",\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\tnone: \"none\",\n\t},\n\n\tlibInsetShadows: {\n\t\t\"2xs\": \"2xs\",\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t},\n\n\tlibDropShadows: {\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t},\n\n\tlibTextShadow: {\n\t\t\"2xs\": \"2xs\",\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t},\n\n\tlibTransitionTimingFunctions: {\n\t\t\"--ease-in\": \"--ease-in\",\n\t\t\"--ease-out\": \"--ease-out\",\n\t\t\"--ease-in-out\": \"--ease-in-out\",\n\t},\n\n\tlibAnimate: {\n\t\tspin: \"spin\",\n\t\tping: \"ping\",\n\t\tpulse: \"pulse\",\n\t\tbounce: \"bounce\",\n\t},\n\n\tlibBlur: {\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\t\"3xl\": \"3xl\",\n\t},\n\n\tlibPerspective: {\n\t\tdramatic: \"dramatic\",\n\t\tnear: \"near\",\n\t\tnormal: \"normal\",\n\t\tmidrange: \"midrange\",\n\t\tdistant: \"distant\",\n\t},\n\n\tlibAspectVideo: {},\n\n\tlibTextDisplayTags,\n\n\tlibTextTags: {\n\t\th6: \"h6\",\n\t\tp: \"p\",\n\t\tstrong: \"strong\",\n\t\tem: \"em\",\n\t\tsmall: \"small\",\n\t\tblockquote: \"blockquote\",\n\t\tul: \"ul\",\n\t\tol: \"ol\",\n\t\tdl: \"dl\",\n\t},\n\n\tlibTransitions: {\n\t\tnone: \"none\",\n\t\tall: \"all\",\n\t\tdefault: \"default\",\n\t\tcolors: \"colors\",\n\t\topacity: \"opacity\",\n\t\tshadow: \"shadow\",\n\t\ttransform: \"transform\",\n\t},\n\n\tlibThemes: {\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t},\n\n\tlibInputVariants: {\n\t\trounded: \"rounded\",\n\t\tpill: \"pill\",\n\t},\n\n\tlibInputBackgrounds: {\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t},\n\n\tlibMainSizes: {\n\t\tdefault: \"default\",\n\t\tlarge: \"large\",\n\t\tform: \"form\",\n\t},\n\n\tlibAsideSizes: {\n\t\tdefault: \"default\",\n\t\tsmall: \"small\",\n\t},\n\n\tlibZIndex: {\n\t\t\"0\": \"0\",\n\t\t\"10\": \"10\",\n\t\t\"20\": \"20\",\n\t\t\"30\": \"30\",\n\t\t\"40\": \"40\",\n\t\t\"50\": \"50\",\n\t\t\"-0\": \"-0\",\n\t\t\"-10\": \"-10\",\n\t\t\"-20\": \"-20\",\n\t\t\"-30\": \"-30\",\n\t\t\"-40\": \"-40\",\n\t\t\"-50\": \"-50\",\n\t},\n\n\tlibPosition: {\n\t\trelative: \"relative\",\n\t\tabsolute: \"absolute\",\n\t\tfixed: \"fixed\",\n\t},\n\n\tlibMinHeights: {\n\t\tpx: \"px\",\n\t\tfull: \"full\",\n\t\tscreen: \"screen\",\n\t\tdvh: \"dvh\",\n\t\tdvw: \"dvw\",\n\t\tlvh: \"lvh\",\n\t\tlvw: \"lvw\",\n\t\tsvw: \"svw\",\n\t\tsvh: \"svh\",\n\t\tauto: \"auto\",\n\t\tmin: \"min\",\n\t\tmax: \"max\",\n\t\tfit: \"fit\",\n\t\tlh: \"lh\",\n\t},\n\n\tlibKeySizes: { large: \"large\", small: \"small\" },\n\n\tlibMaxWidths: {\n\t\t\"3xs\": \"3xs\",\n\t\t\"2xs\": \"2xs\",\n\t\txs: \"xs\",\n\t\tsm: \"sm\",\n\t\tmd: \"md\",\n\t\tlg: \"lg\",\n\t\txl: \"xl\",\n\t\t\"2xl\": \"2xl\",\n\t\t\"3xl\": \"3xl\",\n\t\t\"4xl\": \"4xl\",\n\t\t\"5xl\": \"5xl\",\n\t\t\"6xl\": \"6xl\",\n\t\t\"7xl\": \"7xl\",\n\t\tnone: \"none\",\n\t\tpx: \"px\",\n\t\tfull: \"full\",\n\t\tdvw: \"dvw\",\n\t\tdvh: \"dvh\",\n\t\tlvw: \"lvw\",\n\t\tlvh: \"lvh\",\n\t\tsvw: \"svw\",\n\t\tsvh: \"svh\",\n\t\tscreen: \"screen\",\n\t\tmin: \"min\",\n\t\tmax: \"max\",\n\t\tfit: \"fit\",\n\t},\n\n\tlibSkeletonAnimations: { pulse: \"pulse\", shine: \"shine\", none: \"none\" },\n\n\tlibTooltipPositions: {\n\t\ttop: \"top\",\n\t\tbottom: \"bottom\",\n\t\tleft: \"left\",\n\t\tright: \"right\",\n\t},\n\n\tlibTooltipTriggers: { hover: \"hover\", click: \"click\" },\n\n\tlibLoaderVariants: { 1: 1, 2: 2, 3: 3 },\n\n\tlibButtonVariants: {\n\t\tplain: \"plain\",\n\t\tghost: \"ghost\",\n\t\ttransparent: \"transparent\",\n\t},\n\n\tlibButtonSize: { default: \"default\", small: \"small\" },\n\n\tlibButtonGroupToggle: { single: \"single\", multi: \"multi\" },\n\n\tlibTagVariant: { plain: \"plain\", outline: \"outline\" },\n\n\tlibInputTypes: {\n\t\tcolor: \"color\",\n\t\tdate: \"date\",\n\t\t\"datetime-local\": \"datetime-local\",\n\t\tmonth: \"month\",\n\t\tweek: \"week\",\n\t\tfile: \"file\",\n\t\tpassword: \"password\",\n\t\tsearch: \"search\",\n\t\temail: \"email\",\n\t\tnumber: \"number\",\n\t\ttel: \"tel\",\n\t\ttext: \"text\",\n\t\turl: \"url\",\n\t\ttime: \"time\",\n\t\tselect: \"select\",\n\t\ttextarea: \"textarea\",\n\t},\n\n\tlibCheckInputVariants: {\n\t\ttile: \"tile\",\n\t\ttoggle: \"toggle\",\n\t\tselector: \"selector\",\n\t},\n\n\tlibListInputDirections: { up: \"up\", down: \"down\" },\n\n\tlibAccordionVariant: { basic: \"basic\", rounded: \"rounded\" },\n\n\tlibAccordionIcon: { plus: \"plus\", chevron: \"chevron\" },\n\n\tlibToastStatus: {\n\t\tsuccess: \"success\",\n\t\terror: \"error\",\n\t\twarning: \"warning\",\n\t\tinfo: \"info\",\n\t\tloading: \"loading\",\n\t},\n\n\tlibTabsJustify: { start: \"start\", stretch: \"stretch\" },\n\n\tlibTabsVariant: { basic: \"basic\", rounded: \"rounded\" },\n\n\tlibSlideshowPagination: {\n\t\tdots: \"dots\",\n\t\t\"dots-outline\": \"dots-outline\",\n\t\tbars: \"bars\",\n\t\tthumbnails: \"thumbnails\",\n\t},\n\n\tlibSlideshowPaginationPosition: { inside: \"inside\", outside: \"outside\" },\n\n\tlibSlideshowButtonsPositions: { left: \"left\", right: \"right\" },\n\n\tlibSlideshowButtonsSizes: { small: \"small\", large: \"large\" },\n\n\tlibTableVariants: {\n\t\tbordered: \"bordered\",\n\t\tstripped: \"stripped\",\n\t\t\"border-bottom\": \"border-bottom\",\n\t},\n\n\tlibMdEditorViews: { code: \"code\", live: \"live\", preview: \"preview\" },\n\n\tlibMdEditorButtons: {\n\t\tbold: \"bold\",\n\t\titalic: \"italic\",\n\t\tstrikethrough: \"strikethrough\",\n\t\tunderline: \"underline\",\n\t\tul: \"ul\",\n\t\tol: \"ol\",\n\t\tlink: \"link\",\n\t\tquote: \"quote\",\n\t\thr: \"hr\",\n\t\tcode: \"code\",\n\t\tcodeBlock: \"codeBlock\",\n\t\tcomment: \"comment\",\n\t\timage: \"image\",\n\t},\n\n\tlibMdEditorTitles: { ...libTextDisplayTags, h6: \"h6\" },\n\n\tlibDrawerPositions: { left: \"left\", right: \"right\" },\n\n\tlibNavBurgerPositions: { left: \"left\", right: \"right\" },\n\n\tlibNavMobileVariants: { full: \"full\", top: \"top\", drawer: \"drawer\" },\n\n\tlibFooterDirection: { horizontal: \"horizontal\", vertical: \"vertical\" },\n\n\tlibFooterLinksSeparator: { dot: \"dot\", dash: \"dash\" },\n\n\tlibCountryCodes: {\n\t\taf: \"af\",\n\t\tax: \"ax\",\n\t\tal: \"al\",\n\t\tdz: \"dz\",\n\t\tas: \"as\",\n\t\tad: \"ad\",\n\t\tao: \"ao\",\n\t\tai: \"ai\",\n\t\taq: \"aq\",\n\t\tag: \"ag\",\n\t\tar: \"ar\",\n\t\tam: \"am\",\n\t\taw: \"aw\",\n\t\tau: \"au\",\n\t\tat: \"at\",\n\t\taz: \"az\",\n\t\tbs: \"bs\",\n\t\tbh: \"bh\",\n\t\tbd: \"bd\",\n\t\tbb: \"bb\",\n\t\tby: \"by\",\n\t\tbe: \"be\",\n\t\tbz: \"bz\",\n\t\tbj: \"bj\",\n\t\tbm: \"bm\",\n\t\tbt: \"bt\",\n\t\tbo: \"bo\",\n\t\tba: \"ba\",\n\t\tbw: \"bw\",\n\t\tbr: \"br\",\n\t\tio: \"io\",\n\t\tbn: \"bn\",\n\t\tbg: \"bg\",\n\t\tbf: \"bf\",\n\t\tbi: \"bi\",\n\t\tkh: \"kh\",\n\t\tcm: \"cm\",\n\t\tca: \"ca\",\n\t\tcv: \"cv\",\n\t\tky: \"ky\",\n\t\tcf: \"cf\",\n\t\ttd: \"td\",\n\t\tcl: \"cl\",\n\t\tcn: \"cn\",\n\t\tcx: \"cx\",\n\t\tcc: \"cc\",\n\t\tco: \"co\",\n\t\tkm: \"km\",\n\t\tcg: \"cg\",\n\t\tcd: \"cd\",\n\t\tck: \"ck\",\n\t\tcr: \"cr\",\n\t\tci: \"ci\",\n\t\thr: \"hr\",\n\t\tcu: \"cu\",\n\t\tcy: \"cy\",\n\t\tcz: \"cz\",\n\t\tdk: \"dk\",\n\t\tdj: \"dj\",\n\t\tdm: \"dm\",\n\t\tdo: \"do\",\n\t\tec: \"ec\",\n\t\teg: \"eg\",\n\t\tsv: \"sv\",\n\t\tgq: \"gq\",\n\t\ter: \"er\",\n\t\tee: \"ee\",\n\t\tet: \"et\",\n\t\tfk: \"fk\",\n\t\tfo: \"fo\",\n\t\tfj: \"fj\",\n\t\tfi: \"fi\",\n\t\tfr: \"fr\",\n\t\tgf: \"gf\",\n\t\tpf: \"pf\",\n\t\tga: \"ga\",\n\t\tgm: \"gm\",\n\t\tge: \"ge\",\n\t\tde: \"de\",\n\t\tgh: \"gh\",\n\t\tgi: \"gi\",\n\t\tgr: \"gr\",\n\t\tgl: \"gl\",\n\t\tgd: \"gd\",\n\t\tgp: \"gp\",\n\t\tgu: \"gu\",\n\t\tgt: \"gt\",\n\t\tgg: \"gg\",\n\t\tgn: \"gn\",\n\t\tgw: \"gw\",\n\t\tgy: \"gy\",\n\t\tht: \"ht\",\n\t\tva: \"va\",\n\t\thn: \"hn\",\n\t\thk: \"hk\",\n\t\thu: \"hu\",\n\t\tis: \"is\",\n\t\tin: \"in\",\n\t\tid: \"id\",\n\t\tir: \"ir\",\n\t\tiq: \"iq\",\n\t\tie: \"ie\",\n\t\tim: \"im\",\n\t\til: \"il\",\n\t\tit: \"it\",\n\t\tjm: \"jm\",\n\t\tjp: \"jp\",\n\t\tje: \"je\",\n\t\tjo: \"jo\",\n\t\tkz: \"kz\",\n\t\tke: \"ke\",\n\t\tki: \"ki\",\n\t\tkp: \"kp\",\n\t\tkr: \"kr\",\n\t\tkw: \"kw\",\n\t\tkg: \"kg\",\n\t\tla: \"la\",\n\t\tlv: \"lv\",\n\t\tlb: \"lb\",\n\t\tls: \"ls\",\n\t\tlr: \"lr\",\n\t\tly: \"ly\",\n\t\tli: \"li\",\n\t\tlt: \"lt\",\n\t\tlu: \"lu\",\n\t\tmo: \"mo\",\n\t\tmk: \"mk\",\n\t\tmg: \"mg\",\n\t\tmw: \"mw\",\n\t\tmy: \"my\",\n\t\tmv: \"mv\",\n\t\tml: \"ml\",\n\t\tmt: \"mt\",\n\t\tmh: \"mh\",\n\t\tmq: \"mq\",\n\t\tmr: \"mr\",\n\t\tmu: \"mu\",\n\t\tyt: \"yt\",\n\t\tmx: \"mx\",\n\t\tfm: \"fm\",\n\t\tmd: \"md\",\n\t\tmc: \"mc\",\n\t\tmn: \"mn\",\n\t\tme: \"me\",\n\t\tms: \"ms\",\n\t\tma: \"ma\",\n\t\tmz: \"mz\",\n\t\tmm: \"mm\",\n\t\tna: \"na\",\n\t\tnr: \"nr\",\n\t\tnp: \"np\",\n\t\tnl: \"nl\",\n\t\tnc: \"nc\",\n\t\tnz: \"nz\",\n\t\tni: \"ni\",\n\t\tne: \"ne\",\n\t\tng: \"ng\",\n\t\tnu: \"nu\",\n\t\tnf: \"nf\",\n\t\tmp: \"mp\",\n\t\tno: \"no\",\n\t\tom: \"om\",\n\t\tpk: \"pk\",\n\t\tpw: \"pw\",\n\t\tps: \"ps\",\n\t\tpa: \"pa\",\n\t\tpg: \"pg\",\n\t\tpy: \"py\",\n\t\tpe: \"pe\",\n\t\tph: \"ph\",\n\t\tpn: \"pn\",\n\t\tpl: \"pl\",\n\t\tpt: \"pt\",\n\t\tpr: \"pr\",\n\t\tqa: \"qa\",\n\t\tro: \"ro\",\n\t\tru: \"ru\",\n\t\trw: \"rw\",\n\t\tre: \"re\",\n\t\tbl: \"bl\",\n\t\tsh: \"sh\",\n\t\tkn: \"kn\",\n\t\tlc: \"lc\",\n\t\tmf: \"mf\",\n\t\tpm: \"pm\",\n\t\tvc: \"vc\",\n\t\tws: \"ws\",\n\t\tsm: \"sm\",\n\t\tst: \"st\",\n\t\tsa: \"sa\",\n\t\tsn: \"sn\",\n\t\trs: \"rs\",\n\t\tsc: \"sc\",\n\t\tsl: \"sl\",\n\t\tsg: \"sg\",\n\t\tsk: \"sk\",\n\t\tsi: \"si\",\n\t\tsb: \"sb\",\n\t\tso: \"so\",\n\t\tza: \"za\",\n\t\tss: \"ss\",\n\t\tgs: \"gs\",\n\t\tes: \"es\",\n\t\tlk: \"lk\",\n\t\tsd: \"sd\",\n\t\tsr: \"sr\",\n\t\tsj: \"sj\",\n\t\tsz: \"sz\",\n\t\tse: \"se\",\n\t\tch: \"ch\",\n\t\tsy: \"sy\",\n\t\ttw: \"tw\",\n\t\ttj: \"tj\",\n\t\ttz: \"tz\",\n\t\tth: \"th\",\n\t\ttl: \"tl\",\n\t\ttg: \"tg\",\n\t\ttk: \"tk\",\n\t\tto: \"to\",\n\t\ttt: \"tt\",\n\t\ttn: \"tn\",\n\t\ttr: \"tr\",\n\t\ttm: \"tm\",\n\t\ttc: \"tc\",\n\t\ttv: \"tv\",\n\t\tug: \"ug\",\n\t\tua: \"ua\",\n\t\tae: \"ae\",\n\t\tgb: \"gb\",\n\t\tus: \"us\",\n\t\tuy: \"uy\",\n\t\tuz: \"uz\",\n\t\tvu: \"vu\",\n\t\tve: \"ve\",\n\t\tvn: \"vn\",\n\t\tvg: \"vg\",\n\t\tvi: \"vi\",\n\t\twf: \"wf\",\n\t\tye: \"ye\",\n\t\tzm: \"zm\",\n\t\tzw: \"zw\",\n\t},\n} as const\n","import { Fragment } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\n\nexport const URL_REGEX =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/gm\n\nexport const linkifyText = (text: string, blank?: boolean) => {\n const words: Array<string> = text?.split(\" \")\n\n return words?.map((word: string) =>\n word.match(URL_REGEX) ? (\n <Fragment key={uuid()}>\n <a\n href={word}\n target={blank ? \"_blank\" : undefined}\n rel={blank ? \"noreferrer noopener\" : undefined}\n className=\"font-black text-blue-500\"\n >\n {word}\n </a>{\" \"}\n </Fragment>\n ) : (\n word + \" \"\n )\n )\n}\n","import type { LibColorsHover } from \"../types\"\n\nexport const genLinkColor: Record<LibColorsHover, string> = {\n\tprimary:\n\t\t\"[&_a]:font-black [&_a]:text-primary-500 [&_a]:hover:text-primary-300 [&_a]:active:text-primary-600\",\n\tsecondary:\n\t\t\"[&_a]:font-black [&_a]:text-secondary-500 [&_a]:hover:text-secondary-300 [&_a]:active:text-secondary-600\",\n\tsuccess:\n\t\t\"[&_a]:font-black [&_a]:text-success-500 [&_a]:hover:text-success-300 [&_a]:active:text-success-600\",\n\tdanger: \"[&_a]:font-black [&_a]:text-danger-500 [&_a]:hover:text-danger-300 [&_a]:active:text-danger-600\",\n\twarning:\n\t\t\"[&_a]:font-black [&_a]:text-warning-500 [&_a]:hover:text-warning-300 [&_a]:active:text-warning-600\",\n\tgray: \"[&_a]:font-black [&_a]:text-gray-500 [&_a]:hover:text-gray-300 [&_a]:active:text-gray-600\",\n\twhite: \"[&_a]:font-black [&_a]:text-white [&_a]:hover:text-gray-300 [&_a]:active:text-gray-100\",\n}\n\nexport const genButtonColor: Record<LibColorsHover, string> = {\n\tprimary:\n\t\t\"[&_button]:font-black [&_button]:text-primary-500 [&_button]:hover:text-primary-300 [&_button]:active:text-primary-600\",\n\tsecondary:\n\t\t\"[&_button]:font-black [&_button]:text-secondary-500 [&_button]:hover:text-secondary-300 [&_button]:active:text-secondary-600\",\n\tsuccess:\n\t\t\"[&_button]:font-black [&_button]:text-success-500 [&_button]:hover:text-success-300 [&_button]:active:text-success-600\",\n\tdanger: \"[&_button]:font-black [&_button]:text-danger-500 [&_button]:hover:text-danger-300 [&_button]:active:text-danger-600\",\n\twarning:\n\t\t\"[&_button]:font-black [&_button]:text-warning-500 [&_button]:hover:text-warning-300 [&_button]:active:text-warning-600\",\n\tgray: \"[&_button]:font-black [&_button]:text-gray-500 [&_button]:hover:text-gray-300 [&_button]:active:text-gray-600\",\n\twhite: \"[&_button]:font-black [&_button]:text-white [&_button]:hover:text-gray-300 [&_button]:active:text-gray-100\",\n}\n","import type { CssTextAlign } from \"../types\"\n\nexport const genTextAlign: Record<CssTextAlign, string> = {\n\tleft: \"text-left\",\n\tcenter: \"text-center\",\n\tright: \"text-right\",\n\tjustify: \"text-justify\",\n\tstart: \"text-start\",\n\tend: \"text-end\",\n}\n","import type {\n\tLibAllColors,\n\tLibColors,\n\tLibColorsHover,\n\tLibColorsShort,\n} from \"../types\"\n\nexport const genTextColor: Record<LibColors, string> = {\n\tblack: \"text-black\",\n\twhite: \"text-white\",\n\t\"primary-50\": \"text-primary-50\",\n\t\"primary-100\": \"text-primary-100\",\n\t\"primary-200\": \"text-primary-200\",\n\t\"primary-300\": \"text-primary-300\",\n\t\"primary-400\": \"text-primary-400\",\n\t\"primary-500\": \"text-primary-500\",\n\t\"primary-600\": \"text-primary-600\",\n\t\"primary-700\": \"text-primary-700\",\n\t\"primary-800\": \"text-primary-800\",\n\t\"primary-900\": \"text-primary-900\",\n\t\"primary-950\": \"text-primary-950\",\n\t\"secondary-50\": \"text-secondary-50\",\n\t\"secondary-100\": \"text-secondary-100\",\n\t\"secondary-200\": \"text-secondary-200\",\n\t\"secondary-300\": \"text-secondary-300\",\n\t\"secondary-400\": \"text-secondary-400\",\n\t\"secondary-500\": \"text-secondary-500\",\n\t\"secondary-600\": \"text-secondary-600\",\n\t\"secondary-700\": \"text-secondary-700\",\n\t\"secondary-800\": \"text-secondary-800\",\n\t\"secondary-900\": \"text-secondary-900\",\n\t\"secondary-950\": \"text-secondary-950\",\n\t\"success-50\": \"text-success-50\",\n\t\"success-100\": \"text-success-100\",\n\t\"success-200\": \"text-success-200\",\n\t\"success-300\": \"text-success-300\",\n\t\"success-400\": \"text-success-400\",\n\t\"success-500\": \"text-success-500\",\n\t\"success-600\": \"text-success-600\",\n\t\"success-700\": \"text-success-700\",\n\t\"success-800\": \"text-success-800\",\n\t\"success-900\": \"text-success-900\",\n\t\"success-950\": \"text-success-950\",\n\t\"danger-50\": \"text-danger-50\",\n\t\"danger-100\": \"text-danger-100\",\n\t\"danger-200\": \"text-danger-200\",\n\t\"danger-300\": \"text-danger-300\",\n\t\"danger-400\": \"text-danger-400\",\n\t\"danger-500\": \"text-danger-500\",\n\t\"danger-600\": \"text-danger-600\",\n\t\"danger-700\": \"text-danger-700\",\n\t\"danger-800\": \"text-danger-800\",\n\t\"danger-900\": \"text-danger-900\",\n\t\"danger-950\": \"text-danger-950\",\n\t\"warning-50\": \"text-warning-50\",\n\t\"warning-100\": \"text-warning-100\",\n\t\"warning-200\": \"text-warning-200\",\n\t\"warning-300\": \"text-warning-300\",\n\t\"warning-400\": \"text-warning-400\",\n\t\"warning-500\": \"text-warning-500\",\n\t\"warning-600\": \"text-warning-600\",\n\t\"warning-700\": \"text-warning-700\",\n\t\"warning-800\": \"text-warning-800\",\n\t\"warning-900\": \"text-warning-900\",\n\t\"warning-950\": \"text-warning-950\",\n\t\"gray-50\": \"text-gray-50\",\n\t\"gray-100\": \"text-gray-100\",\n\t\"gray-200\": \"text-gray-200\",\n\t\"gray-300\": \"text-gray-300\",\n\t\"gray-400\": \"text-gray-400\",\n\t\"gray-500\": \"text-gray-500\",\n\t\"gray-600\": \"text-gray-600\",\n\t\"gray-700\": \"text-gray-700\",\n\t\"gray-800\": \"text-gray-800\",\n\t\"gray-900\": \"text-gray-900\",\n\t\"gray-950\": \"text-gray-950\",\n\tcurrent: \"text-current\",\n\ttransparent: \"text-transparent\",\n\tbackground: \"text-background\",\n\tfont: \"text-font\",\n}\n\nexport const genTextColorShort: Record<LibColorsShort, string> = {\n\tprimary: \"text-primary-500\",\n\tsecondary: \"text-secondary-500\",\n\tsuccess: \"text-success-500\",\n\tdanger: \"text-danger-500\",\n\twarning: \"text-warning-500\",\n\tgray: \"text-gray-500\",\n\tblack: \"text-black\",\n\twhite: \"text-white\",\n\tcurrent: \"text-current\",\n\ttransparent: \"text-transparent\",\n\tbackground: \"text-background\",\n}\n\nexport const genTextColorHover: Record<LibColorsHover, string> = {\n\tprimary: \"text-primary-500 hover:text-primary-300 active:text-primary-600\",\n\tsecondary:\n\t\t\"text-secondary-500 hover:text-secondary-300 active:text-secondary-600\",\n\tsuccess: \"text-success-500 hover:text-success-300 active:text-success-600\",\n\tdanger: \"text-danger-500 hover:text-danger-300 active:text-danger-600\",\n\twarning: \"text-warning-500 hover:text-warning-300 active:text-warning-600\",\n\tgray: \"text-gray-500 hover:text-gray-300 active:text-gray-600\",\n\twhite: \"text-white hover:text-gray-300 active:text-gray-100\",\n}\n\nexport const genTextAllColor: Record<LibAllColors, string> = {\n\t...genTextColor,\n\t...genTextColorShort,\n}\n","import type {\n\tLibAllColors,\n\tLibAllColorsAndOverlays,\n\tLibColors,\n\tLibColorsHover,\n\tLibColorsShort,\n\tLibOverlays,\n} from \"../types\"\n\nexport const genBgColor: Record<LibColors, string> = {\n\tblack: \"bg-black\",\n\twhite: \"bg-white\",\n\t\"primary-50\": \"bg-primary-50\",\n\t\"primary-100\": \"bg-primary-100\",\n\t\"primary-200\": \"bg-primary-200\",\n\t\"primary-300\": \"bg-primary-300\",\n\t\"primary-400\": \"bg-primary-400\",\n\t\"primary-500\": \"bg-primary-500\",\n\t\"primary-600\": \"bg-primary-600\",\n\t\"primary-700\": \"bg-primary-700\",\n\t\"primary-800\": \"bg-primary-800\",\n\t\"primary-900\": \"bg-primary-900\",\n\t\"primary-950\": \"bg-primary-950\",\n\n\t\"secondary-50\": \"bg-secondary-50\",\n\t\"secondary-100\": \"bg-secondary-100\",\n\t\"secondary-200\": \"bg-secondary-200\",\n\t\"secondary-300\": \"bg-secondary-300\",\n\t\"secondary-400\": \"bg-secondary-400\",\n\t\"secondary-500\": \"bg-secondary-500\",\n\t\"secondary-600\": \"bg-secondary-600\",\n\t\"secondary-700\": \"bg-secondary-700\",\n\t\"secondary-800\": \"bg-secondary-800\",\n\t\"secondary-900\": \"bg-secondary-900\",\n\t\"secondary-950\": \"bg-secondary-950\",\n\n\t\"success-50\": \"bg-success-50\",\n\t\"success-100\": \"bg-success-100\",\n\t\"success-200\": \"bg-success-200\",\n\t\"success-300\": \"bg-success-300\",\n\t\"success-400\": \"bg-success-400\",\n\t\"success-500\": \"bg-success-500\",\n\t\"success-600\": \"bg-success-600\",\n\t\"success-700\": \"bg-success-700\",\n\t\"success-800\": \"bg-success-800\",\n\t\"success-900\": \"bg-success-900\",\n\t\"success-950\": \"bg-success-950\",\n\n\t\"danger-50\": \"bg-danger-50\",\n\t\"danger-100\": \"bg-danger-100\",\n\t\"danger-200\": \"bg-danger-200\",\n\t\"danger-300\": \"bg-danger-300\",\n\t\"danger-400\": \"bg-danger-400\",\n\t\"danger-500\": \"bg-danger-500\",\n\t\"danger-600\": \"bg-danger-600\",\n\t\"danger-700\": \"bg-danger-700\",\n\t\"danger-800\": \"bg-danger-800\",\n\t\"danger-900\": \"bg-danger-900\",\n\t\"danger-950\": \"bg-danger-950\",\n\n\t\"warning-50\": \"bg-warning-50\",\n\t\"warning-100\": \"bg-warning-100\",\n\t\"warning-200\": \"bg-warning-200\",\n\t\"warning-300\": \"bg-warning-300\",\n\t\"warning-400\": \"bg-warning-400\",\n\t\"warning-500\": \"bg-warning-500\",\n\t\"warning-600\": \"bg-warning-600\",\n\t\"warning-700\": \"bg-warning-700\",\n\t\"warning-800\": \"bg-warning-800\",\n\t\"warning-900\": \"bg-warning-900\",\n\t\"warning-950\": \"bg-warning-950\",\n\n\t\"gray-50\": \"bg-gray-50\",\n\t\"gray-100\": \"bg-gray-100\",\n\t\"gray-200\": \"bg-gray-200\",\n\t\"gray-300\": \"bg-gray-300\",\n\t\"gray-400\": \"bg-gray-400\",\n\t\"gray-500\": \"bg-gray-500\",\n\t\"gray-600\": \"bg-gray-600\",\n\t\"gray-700\": \"bg-gray-700\",\n\t\"gray-800\": \"bg-gray-800\",\n\t\"gray-900\": \"bg-gray-900\",\n\t\"gray-950\": \"bg-gray-950\",\n\tcurrent: \"bg-current\",\n\ttransparent: \"bg-transparent\",\n\tbackground: \"bg-background\",\n\tfont: \"bg-font\",\n}\n\nexport const genBgColorShort: Record<LibColorsShort, string> = {\n\tprimary: \"bg-primary-500\",\n\tsecondary: \"bg-secondary-500\",\n\tsuccess: \"bg-success-500\",\n\tdanger: \"bg-danger-500\",\n\twarning: \"bg-warning-500\",\n\tgray: \"bg-gray-500\",\n\tblack: \"bg-black\",\n\twhite: \"bg-white\",\n\tcurrent: \"bg-current\",\n\ttransparent: \"bg-transparent\",\n\tbackground: \"bg-background\",\n}\n\nexport const genBgColor50: Record<\n\tExclude<LibColorsShort, \"black\" | \"transparent\" | \"background\" | \"current\">,\n\tstring\n> = {\n\tprimary: \"bg-primary-50\",\n\tsecondary: \"bg-secondary-50\",\n\tsuccess: \"bg-success-50\",\n\tdanger: \"bg-danger-50\",\n\twarning: \"bg-warning-50\",\n\tgray: \"bg-gray-50\",\n\twhite: \"bg-white\",\n}\n\nexport const genBgColorHover: Record<LibColorsHover, string> = {\n\tprimary: \"bg-primary-500 hover:bg-primary-300 active:bg-primary-600\",\n\tsecondary:\n\t\t\"bg-secondary-500 hover:bg-secondary-300 active:bg-secondary-600\",\n\tsuccess: \"bg-success-500 hover:bg-success-300 active:bg-success-600\",\n\tdanger: \"bg-danger-500 hover:bg-danger-300 active:bg-danger-600\",\n\twarning: \"bg-warning-500 hover:bg-warning-300 active:bg-warning-600\",\n\tgray: \"bg-gray-500 hover:bg-gray-300 active:bg-gray-600\",\n\twhite: \"bg-white hover:bg-gray-300 active:bg-gray-100\",\n}\n\nexport const genBgColorGhostHover: Record<LibColorsHover, string> = {\n\tprimary: \"bg-primary-50 hover:bg-primary-300 active:bg-primary-100\",\n\tsecondary: \"bg-secondary-50 hover:bg-secondary-300 active:bg-secondary-100\",\n\tsuccess: \"bg-success-50 hover:bg-success-300 active:bg-success-100\",\n\tdanger: \"bg-danger-50 hover:bg-danger-300 active:bg-danger-100\",\n\twarning: \"bg-warning-50 hover:bg-warning-300 active:bg-warning-100\",\n\tgray: \"bg-gray-50 hover:bg-gray-300 active:bg-gray-100\",\n\twhite: \"bg-white hover:bg-gray-300 active:bg-gray-100\",\n}\n\nexport const genBgOverlay: Record<LibOverlays, string> = {\n\t\"black-50\": \"bg-overlay-black-50\",\n\t\"black-80\": \"bg-overlay-black-80\",\n\t\"white-50\": \"bg-overlay-white-50\",\n\t\"white-80\": \"bg-overlay-white-80\",\n\t\"gradient-black\": \"overlay-gradient-black\",\n\t\"gradient-white\": \"overlay-gradient-white\",\n}\n\nexport const genBgAllColors: Record<LibAllColors, string> = {\n\t...genBgColor,\n\t...genBgColorShort,\n}\n\nexport const genBgAllColorsAndOverlays: Record<\n\tLibAllColorsAndOverlays,\n\tstring\n> = {\n\t...genBgAllColors,\n\t...genBgOverlay,\n}\n","import type {\n\tLibAllColors,\n\tLibColors,\n\tLibColorsHover,\n\tLibColorsShort,\n} from \"../types\"\n\nexport const genBorderColor: Record<LibColors, string> = {\n\tblack: \"border-black\",\n\twhite: \"border-white\",\n\t\"primary-50\": \"border-primary-50\",\n\t\"primary-100\": \"border-primary-100\",\n\t\"primary-200\": \"border-primary-200\",\n\t\"primary-300\": \"border-primary-300\",\n\t\"primary-400\": \"border-primary-400\",\n\t\"primary-500\": \"border-primary-500\",\n\t\"primary-600\": \"border-primary-600\",\n\t\"primary-700\": \"border-primary-700\",\n\t\"primary-800\": \"border-primary-800\",\n\t\"primary-900\": \"border-primary-900\",\n\t\"primary-950\": \"border-primary-950\",\n\t\"secondary-50\": \"border-secondary-50\",\n\t\"secondary-100\": \"border-secondary-100\",\n\t\"secondary-200\": \"border-secondary-200\",\n\t\"secondary-300\": \"border-secondary-300\",\n\t\"secondary-400\": \"border-secondary-400\",\n\t\"secondary-500\": \"border-secondary-500\",\n\t\"secondary-600\": \"border-secondary-600\",\n\t\"secondary-700\": \"border-secondary-700\",\n\t\"secondary-800\": \"border-secondary-800\",\n\t\"secondary-900\": \"border-secondary-900\",\n\t\"secondary-950\": \"border-secondary-950\",\n\t\"success-50\": \"border-success-50\",\n\t\"success-100\": \"border-success-100\",\n\t\"success-200\": \"border-success-200\",\n\t\"success-300\": \"border-success-300\",\n\t\"success-400\": \"border-success-400\",\n\t\"success-500\": \"border-success-500\",\n\t\"success-600\": \"border-success-600\",\n\t\"success-700\": \"border-success-700\",\n\t\"success-800\": \"border-success-800\",\n\t\"success-900\": \"border-success-900\",\n\t\"success-950\": \"border-success-950\",\n\t\"danger-50\": \"border-danger-50\",\n\t\"danger-100\": \"border-danger-100\",\n\t\"danger-200\": \"border-danger-200\",\n\t\"danger-300\": \"border-danger-300\",\n\t\"danger-400\": \"border-danger-400\",\n\t\"danger-500\": \"border-danger-500\",\n\t\"danger-600\": \"border-danger-600\",\n\t\"danger-700\": \"border-danger-700\",\n\t\"danger-800\": \"border-danger-800\",\n\t\"danger-900\": \"border-danger-900\",\n\t\"danger-950\": \"border-danger-950\",\n\t\"warning-50\": \"border-warning-50\",\n\t\"warning-100\": \"border-warning-100\",\n\t\"warning-200\": \"border-warning-200\",\n\t\"warning-300\": \"border-warning-300\",\n\t\"warning-400\": \"border-warning-400\",\n\t\"warning-500\": \"border-warning-500\",\n\t\"warning-600\": \"border-warning-600\",\n\t\"warning-700\": \"border-warning-700\",\n\t\"warning-800\": \"border-warning-800\",\n\t\"warning-900\": \"border-warning-900\",\n\t\"warning-950\": \"border-warning-950\",\n\t\"gray-50\": \"border-gray-50\",\n\t\"gray-100\": \"border-gray-100\",\n\t\"gray-200\": \"border-gray-200\",\n\t\"gray-300\": \"border-gray-300\",\n\t\"gray-400\": \"border-gray-400\",\n\t\"gray-500\": \"border-gray-500\",\n\t\"gray-600\": \"border-gray-600\",\n\t\"gray-700\": \"border-gray-700\",\n\t\"gray-800\": \"border-gray-800\",\n\t\"gray-900\": \"border-gray-900\",\n\t\"gray-950\": \"border-gray-950\",\n\tcurrent: \"border-current\",\n\ttransparent: \"border-transparent\",\n\tbackground: \"border-background\",\n\tfont: \"border-font\",\n}\n\nexport const genBorderColorShort: Record<LibColorsShort, string> = {\n\tprimary: \"border-primary-500\",\n\tsecondary: \"border-secondary-500\",\n\tsuccess: \"border-success-500\",\n\tdanger: \"border-danger-500\",\n\twarning: \"border-warning-500\",\n\tgray: \"border-gray-500\",\n\tblack: \"border-black\",\n\twhite: \"border-white\",\n\tcurrent: \"border-current\",\n\ttransparent: \"border-transparent\",\n\tbackground: \"border-background\",\n}\n\nexport const genBorderColorHover: Record<LibColorsHover, string> = {\n\tprimary: \"border-primary-500 hover:border-primary-300 active:border-primary-600\",\n\tsecondary: \"border-secondary-500 hover:border-secondary-300 active:border-secondary-600\",\n\tsuccess: \"border-success-500 hover:border-success-300 active:border-success-600\",\n\tdanger: \"border-danger-500 hover:border-danger-300 active:border-danger-600\",\n\twarning: \"border-warning-500 hover:border-warning-300 active:border-warning-600\",\n\tgray: \"border-gray-500 hover:border-gray-300 active:border-gray-600\",\n\twhite: \"border-white hover:border-gray-300 active:border-gray-100\",\n}\n\nexport const genBorderAllColors: Record<LibAllColors, string> = {\n\t...genBorderColor,\n\t...genBorderColorShort,\n}\n","import type { LibSpacers } from \"../types\"\n\nexport const genGap: Record<LibSpacers, string> = {\n\t\"2xl\": \"gap-12\",\n\txl: \"gap-8\",\n\tlg: \"gap-5\",\n\tmd: \"gap-4\",\n\tsm: \"gap-3\",\n\txs: \"gap-2\",\n\t\"2xs\": \"gap-1\",\n\t\"0px\": \"0px\",\n}\n\nexport const genRowGap: Record<LibSpacers, string> = {\n\t\"2xl\": \"gap-y-12\",\n\txl: \"gap-y-8\",\n\tlg: \"gap-y-5\",\n\tmd: \"gap-y-4\",\n\tsm: \"gap-y-3\",\n\txs: \"gap-y-2\",\n\t\"2xs\": \"gap-y-1\",\n\t\"0px\": \"0px\",\n}\n\nexport const genColGap: Record<LibSpacers, string> = {\n\t\"2xl\": \"gap-x-12\",\n\txl: \"gap-x-8\",\n\tlg: \"gap-x-5\",\n\tmd: \"gap-x-4\",\n\tsm: \"gap-x-3\",\n\txs: \"gap-x-2\",\n\t\"2xs\": \"gap-x-1\",\n\t\"0px\": \"0px\",\n}\n","import classNameX from \"clsx\"\nimport type { ClassNameValue } from \"tailwind-merge\"\nimport { tw } from \"./tools\"\n\nexport const clsx = (...classes: Array<ClassNameValue>) =>\n\tclassNameX(tw.def(classes))\n","import { createTools, type CreateTailwindest } from \"tailwindest\"\nimport type { Tailwind, TailwindNestGroups } from \"../types\"\nimport { twMerge } from \"tailwind-merge\"\n\ntype Tailwindest = CreateTailwindest<{\n\ttailwind: Tailwind\n\ttailwindNestGroups: TailwindNestGroups\n\tgroupPrefix: \"$\" // prefix for nest groups, [optional]\n\tuseArbitrary: true // use arbitrary values, [optional]\n}>\n\n// @ts-ignore\nexport const tw = createTools<Tailwindest>({\n\tmerger: twMerge, // set tailwind-merge as merger, [optional]\n})\n","import type { CssAlignContent, CssAlignItems } from \"../types\"\n\nexport const genAlignContent: Record<CssAlignContent, string> = {\n\tnormal: \"content-normal\",\n\tcenter: \"content-center\",\n\tstart: \"content-start\",\n\tend: \"content-end\",\n\t\"space-between\": \"content-between\",\n\t\"space-around\": \"content-around\",\n\t\"space-evenly\": \"content-evenly\",\n\tbaseline: \"content-baseline\",\n\tstretch: \"content-stretch\",\n}\n\nexport const genAlignItems: Record<CssAlignItems, string> = {\n\tstart: \"items-start\",\n\tend: \"items-end\",\n\t\"end-safe\": \"items-end-safe\",\n\tcenter: \"items-center\",\n\t\"center-safe\": \"items-center-safe\",\n\tbaseline: \"items-baseline\",\n\t\"baseline-start\": \"items-baseline-last\",\n\tstretch: \"items-stretch\",\n}\n","import type { CssJustifyContent, CssJustifyItems } from \"../types\"\n\nexport const genJustifyContent: Record<CssJustifyContent, string> = {\n\tstart: \"justify-start\",\n\tend: \"justify-end\",\n\t\"end-safe\": \"justify-end-safe\",\n\tcenter: \"justify-center\",\n\t\"center-sage\": \"justify-center-safe\",\n\t\"space-between\": \"justify-between\",\n\t\"space-around\": \"justify-around\",\n\t\"space-evenly\": \"justify-evenly\",\n\tstretch: \"justify-stretch\",\n\tbaseline: \"justify-baseline\",\n\tnormal: \"justify-normal\",\n}\n\nexport const genJustifyItems: Record<CssJustifyItems, string> = {\n\tstart: \"justify-items-start\",\n\tend: \"justify-items-end\",\n\t\"end-safe\": \"justify-items-end-safe\",\n\tcenter: \"justify-items-center\",\n\t\"center-safe\": \"justify-items-center-safe\",\n\tstretch: \"justify-items-stretch\",\n\tnormal: \"justify-items-normal\",\n}\n","import type { LibMaxWidth } from \"../types\"\n\nexport const genMaxWidth: Record<LibMaxWidth, string> = {\n\t\"3xs\": \"max-w-3xs\",\n\t\"2xs\": \"max-w-2xs\",\n\txs: \"max-w-xs\",\n\tsm: \"max-w-sm\",\n\tmd: \"max-w-md\",\n\tlg: \"max-w-lg\",\n\txl: \"max-w-xl\",\n\t\"2xl\": \"max-w-2xl\",\n\t\"3xl\": \"max-w-3xl\",\n\t\"4xl\": \"max-w-4xl\",\n\t\"5xl\": \"max-w-5xl\",\n\t\"6xl\": \"max-w-6xl\",\n\t\"7xl\": \"max-w-7xl\",\n\tnone: \"max-w-none\",\n\tpx: \"max-w-px\",\n\tfull: \"max-w-full\",\n\tdvw: \"max-w-dvw\",\n\tdvh: \"max-w-dvh\",\n\tlvw: \"max-w-lvw\",\n\tlvh: \"max-w-lvh\",\n\tsvw: \"max-w-svw\",\n\tsvh: \"max-w-svh\",\n\tscreen: \"max-w-screen\",\n\tmin: \"max-w-min\",\n\tmax: \"max-w-max\",\n\tfit: \"max-w-fit\",\n}\n","import type { LibRadiuses } from \"../types\"\n\nexport const genBorderRadius: Record<LibRadiuses, string> = {\n\txs: \"rounded-xs\",\n\tsm: \"rounded-sm\",\n\tmd: \"rounded-md\",\n\tlg: \"rounded-lg\",\n\txl: \"rounded-xl\",\n\t\"2xl\": \"rounded-2xl\",\n\t\"3xl\": \"rounded-3xl\",\n\t\"4xl\": \"rounded-4xl\",\n\tfull: \"rounded-full\",\n}\n","import type { CssObjectFit } from \"../types\"\n\nexport const genObjectFit: Record<CssObjectFit, string> = {\n\tcontain: \"object-contain\",\n\tcover: \"object-cover\",\n\tfill: \"object-fill\",\n\tnone: \"object-none\",\n\t\"scale-down\": \"object-scale-down\",\n}\n","import type { LibButtonVariantExtended } from \"../types\"\n\nexport const genButtonDisabled: Record<LibButtonVariantExtended, string> = {\n\tplain: \"disabled:bg-gray-200 disabled:hover:bg-gray-200 disabled:text-gray-500\",\n\tghost: \"disabled:bg-gray-200 disabled:hover:bg-gray-200 disabled:text-gray-500\",\n\toutline:\n\t\t\"disabled:border-gray-500 disabled:text-gray-500 disabled:hover:border-gray-500 disabled:hover:text-gray-500\",\n\ttransparent: \"disabled:text-gray-500 disabled:hover:text-gray-500\",\n}\n","import type { LibShadows } from \"../types\"\n\nexport const genBoxShadow: Record<LibShadows, string> = {\n\t\"2xs\": \"shadow-2xs\",\n\txs: \"shadow-xs\",\n\tsm: \"shadow-sm\",\n\tmd: \"shadow-md\",\n\tlg: \"shadow-lg\",\n\txl: \"shadow-xl\",\n\t\"2xl\": \"shadow-2xl\",\n\tnone: \"shadow-none\",\n}\n","import type { CssVerticalAlign } from \"../types\"\n\nexport const genVAlign: Record<CssVerticalAlign, string> = {\n\t\"align-baseline\": \"align-baseline\",\n\t\"align-top\": \"align-top\",\n\t\"align-middle\": \"align-middle\",\n\t\"align-bottom\": \"align-bottom\",\n\t\"align-text-top\": \"align-text-top\",\n\t\"align-text-bottom\": \"align-text-bottom\",\n\t\"align-sub\": \"align-sub\",\n\t\"align-super\": \"align-super\",\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H1: FC<ILibText> = ({\n\telement = \"h1\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\tdisplay,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tdisplay\n\t\t\t\t\t? \"text-(length:--text-display-h1)\"\n\t\t\t\t\t: \"text-(length:--text-h1)\",\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H2: FC<ILibText> = ({\n\telement = \"h2\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\tdisplay,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\tdisplay\n\t\t\t\t\t? \"text-(length:--text-display-h2)\"\n\t\t\t\t\t: \"text-(length:--text-h2)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H3: FC<ILibText> = ({\n\telement = \"h3\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\tdisplay,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\tdisplay\n\t\t\t\t\t? \"text-(length:--text-display-h3)\"\n\t\t\t\t\t: \"text-(length:--text-h3)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h3\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H4: FC<ILibText> = ({\n\telement = \"h4\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\tdisplay,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\tdisplay\n\t\t\t\t\t? \"text-(length:--text-display-h4)\"\n\t\t\t\t\t: \"text-(length:--text-h4)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H5: FC<ILibText> = ({\n\telement = \"h5\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\tdisplay,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\tdisplay\n\t\t\t\t\t? \"text-(length:--text-display-h5)\"\n\t\t\t\t\t: \"text-(length:--text-h5)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h5\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const H6: FC<ILibText> = ({\n\telement = \"h6\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-h6)\",\n\t\t\t\t\"font-black\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"h6\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const P: FC<ILibText> = ({\n\telement = \"p\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-body)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"p\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Small: FC<ILibText> = ({\n\telement = \"small\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-small)\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"small\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Strong: FC<ILibText> = ({\n\telement = \"strong\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"font-black\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"strong\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Em: FC<ILibText> = ({\n\telement = \"em\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"italic\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"em\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenButtonColor,\n\tgenTextAllColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Blockquote: FC<ILibText> = ({\n\telement = \"blockquote\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-h6)\",\n\t\t\t\t\"italic ps-4\",\n\t\t\t\tgenTextAlign[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"blockquote\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Ul: FC<ILibText> = ({\n\telement = \"ul\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-body)\",\n\t\t\t\t\"list-disc ps-8\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"ul\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Ol: FC<ILibText> = ({\n\telement = \"ol\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-body)\",\n\t\t\t\t\"list-decimal ps-8\",\n\t\t\t\t(genTextAlign as any)[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"ol\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import type { FC } from \"react\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport {\n\tclsx,\n\tgenLinkColor,\n\tgenTextAlign,\n\tgenTextAllColor,\n\tgenButtonColor,\n} from \"../../../utils\"\nimport type { ILibText } from \"../types\"\n\nexport const Dl: FC<ILibText> = ({\n\telement = \"dl\",\n\tclassName,\n\tchildren,\n\tcolor = \"currentColor\",\n\tlinkColor = \"primary\",\n\ttextAlign = \"left\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--text-body)\",\n\t\t\t\t\"[&>dt]:font-bold\",\n\t\t\t\t\"[&>dd]:font-normal [&>dd]:ps-4\",\n\t\t\t\tgenTextAlign[textAlign],\n\t\t\t\t(genTextAllColor as any)[color],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tgenButtonColor[linkColor],\n\t\t\t\t\"dl\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { H1 } from \"./templates/H1\"\nimport { H2 } from \"./templates/H2\"\nimport { H3 } from \"./templates/H3\"\nimport { H4 } from \"./templates/H4\"\nimport { H5 } from \"./templates/H5\"\nimport { H6 } from \"./templates/H6\"\nimport { P } from \"./templates/P\"\nimport { Small } from \"./templates/Small\"\nimport { Strong } from \"./templates/Strong\"\nimport { Em } from \"./templates/Em\"\nimport { Blockquote } from \"./templates/Blockquote\"\nimport { Ul } from \"./templates/Ul\"\nimport { Ol } from \"./templates/Ol\"\nimport { Dl } from \"./templates/Dl\"\nimport type { ILibText } from \"./types\"\n\nexport const TEXT_BASE_CLASSES = clsx(\n\t\"font-family-body\",\n\t\"[&>code]:font-family-code [&>code]:leading-8 [&>code]:p-1 [&>code]:text-blue-500 [&>code]:bg-gray-50 [&>code]:rounded-xs\",\n)\n\n/**\n * Text component for rendering semantic HTML text elements with consistent styles.\n *\n * Renders the appropriate semantic element based on the `tag` prop, such as headings, paragraphs, lists, blockquotes, etc.\n *\n * @component\n * @example\n * <Text tag=\"h2\">Section title</Text>\n * <Text tag=\"p\">Paragraph content</Text>\n * <Text tag=\"ul\">\n * <li>Item 1</li>\n * <li>Item 2</li>\n * </Text>\n *\n * @extends HTMLHeadingElement & HTMLParagraphElement & HTMLQuoteElement & HTMLDListElement & HTMLOListElement & HTMLUListElement\n *\n * @prop {object} props - Component props.\n * @prop {ElementType} [props.element=\"p\"] - The HTML element or React component to render.\n * @prop {\"h1\"|\"h2\"|\"h3\"|\"h4\"|\"h5\"|\"h6\"|\"p\"|\"small\"|\"strong\"|\"em\"|\"blockquote\"|\"ul\"|\"ol\"|\"dl\"} [props.tag=\"p\"] - The semantic HTML tag to render.\n * @prop {string} [props.color=\"currentColor\"] - Any color from the library.\n * @prop {\"red\"|\"orange\"|\"amber\"|\"yellow\"|\"lime\"|\"green\"|\"emerald\"|\"teal\"|\"cyan\"|\"sky\"|\"blue\"|\"indigo\"|\"violet\"|\"purple\"|\"fuchsia\"|\"pink\"|\"rose\"|\"slate\"} [props.linkColor=\"blue\"] - Any hover color.\n * @prop {\"text-left\"|\"text-center\"|\"text-right\"|\"text-justify\"|\"text-start\"|\"text-end\"} [props.textAlign=\"left\"] - Text alignment.\n * @prop {boolean} [props.display=false] - Whether to use display block.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {RefObject<any>} [props.ref] - Ref for the rendered element.\n * @prop {ReactNode} props.children - Text content.\n * @prop {object} [props.rest] - Additional props spread to the rendered element.\n *\n * @returns {JSX.Element} The rendered text element.\n *\n * @see https://doc-julseb-lib-react.vercel.app/styles/text\n */\nexport const Text: FC<ILibText> = ({ tag = \"p\", ...rest }) => {\n\tswitch (tag) {\n\t\tcase \"h1\":\n\t\t\treturn <H1 {...rest} />\n\t\tcase \"h2\":\n\t\t\treturn <H2 {...rest} />\n\t\tcase \"h3\":\n\t\t\treturn <H3 {...rest} />\n\t\tcase \"h4\":\n\t\t\treturn <H4 {...rest} />\n\t\tcase \"h5\":\n\t\t\treturn <H5 {...rest} />\n\t\tcase \"h6\":\n\t\t\treturn <H6 {...rest} />\n\t\tcase \"small\":\n\t\t\treturn <Small {...rest} />\n\t\tcase \"strong\":\n\t\t\treturn <Strong {...rest} />\n\t\tcase \"em\":\n\t\t\treturn <Em {...rest} />\n\t\tcase \"blockquote\":\n\t\t\treturn <Blockquote {...rest} />\n\t\tcase \"ul\":\n\t\t\treturn <Ul {...rest} />\n\t\tcase \"ol\":\n\t\t\treturn <Ol {...rest} />\n\t\tcase \"dl\":\n\t\t\treturn <Dl {...rest} />\n\t\tcase \"p\":\n\t\tdefault:\n\t\t\treturn <P {...rest} />\n\t}\n}\n","import { type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport {\n\tclsx,\n\tlinkifyText,\n\tgenLinkColor,\n\tgenButtonColor,\n\tgenTextAlign,\n\tgenVAlign,\n} from \"../../utils\"\nimport { TEXT_BASE_CLASSES } from \"../Text\"\nimport type { ILibTable } from \"./types\"\n\n/**\n * Table component for creating structured data tables with customizable styling, variants, and automatic link detection.\n *\n * @component\n *\n * @example\n * <Table\n * variant=\"bordered\"\n * headers={[\"Name\", \"Email\", \"Role\"]}\n * data={[\n * [\"John Doe\", \"john@example.com\", \"Admin\"],\n * [\"Jane Smith\", \"jane@example.com\", \"User\"]\n * ]}\n * footers={[\"Total: 2 users\", \"\", \"\"]}\n * linkify\n * />\n *\n * @extends HTMLTableElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the table.\n * @prop {React.Ref<HTMLTableElement>} [props.ref] - Ref to the table element.\n * @prop {React.ReactNode} [props.children] - Table content when not using data prop.\n * @prop {\"bordered\" | \"stripped\" | \"border-bottom\"} [props.variant=\"bordered\"] - Visual variant for table styling.\n * @prop {\"align-baseline\" | \"align-top\" | \"align-middle\" | \"align-bottom\" | \"align-text-top\" | \"align-text-bottom\" | \"align-sub\" | \"align-super\"} [props.vAlign=\"align-top\"] - Vertical alignment for table cells.\n * @prop {\"left\" | \"center\" | \"right\" | \"justify\"} [props.textAlign=\"left\"] - Text alignment for table content.\n * @prop {boolean} [props.linkify] - Whether to automatically convert URLs in text to clickable links.\n * @prop {boolean} [props.blank] - Whether links should open in new tab when linkify is enabled.\n * @prop {Array<React.ReactNode>} [props.headers] - Array of header content for table columns.\n * @prop {Array<React.ReactNode>} [props.footers] - Array of footer content for table columns.\n * @prop {Array<Array<React.ReactNode>>} [props.data] - 2D array of table data for automatic table generation.\n *\n * @returns {JSX.Element} The rendered Table component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/table\n */\nexport const Table: FC<ILibTable> = ({\n\tclassName,\n\tref,\n\tchildren,\n\tvariant = \"bordered\",\n\tvAlign = \"align-top\",\n\ttextAlign = \"left\",\n\tlinkify,\n\tblank,\n\theaders,\n\tfooters,\n\tdata,\n\t...rest\n}) => {\n\treturn (\n\t\t<table\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"table w-full h-[1px] border-collapse border-spacing-0 table-fixed\",\n\t\t\t\tTEXT_BASE_CLASSES,\n\t\t\t\t\"text-(length:--font-size-small)\",\n\t\t\t\tgenLinkColor[\"primary\"],\n\t\t\t\tgenButtonColor[\"primary\"],\n\t\t\t\t\"[&_thead]:bg-primary-500 [&_thead]:text-white [&_thead]:font-bold\",\n\t\t\t\t\"[&_td]:overflow-x-scroll [&_td]:px-2 [&_td]:py-1 [&_th]:overflow-x-scroll [&_th]:px-2 [&_th]:py-1\",\n\t\t\t\tvariant === \"bordered\" && [\n\t\t\t\t\t\"border border-gray-200\",\n\t\t\t\t\t\"[&_thead_th:not(:last-child)]:border-r [&_thead_th:not(:last-child)]:border-background [&_td]:border [&_td]:border-gray-200\",\n\t\t\t\t],\n\t\t\t\tvariant === \"stripped\" && [\n\t\t\t\t\t\"[&_tbody_tr:nth-child(even)]:bg-gray-100\",\n\t\t\t\t],\n\t\t\t\tvariant === \"border-bottom\" && [\n\t\t\t\t\t\"[&_tbody_tr]:border-b [&_tbody_tr]:border-b-gray-200\",\n\t\t\t\t],\n\t\t\t\tgenVAlign[vAlign],\n\t\t\t\tgenTextAlign[textAlign],\n\t\t\t\t\"table\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{headers && (\n\t\t\t\t<thead className={clsx(genVAlign[vAlign])}>\n\t\t\t\t\t<tr className={clsx(genVAlign[vAlign])}>\n\t\t\t\t\t\t{headers.map(header => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName={clsx(genVAlign[vAlign])}\n\t\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{linkify && typeof header === \"string\"\n\t\t\t\t\t\t\t\t\t? linkifyText(header, blank)\n\t\t\t\t\t\t\t\t\t: header}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t)}\n\n\t\t\t{data ? (\n\t\t\t\t<tbody className={clsx(genVAlign[vAlign])}>\n\t\t\t\t\t{data.map(row => (\n\t\t\t\t\t\t<tr key={uuid()}>\n\t\t\t\t\t\t\t{row.map(col => (\n\t\t\t\t\t\t\t\t<td key={uuid()}>\n\t\t\t\t\t\t\t\t\t{linkify && typeof col === \"string\"\n\t\t\t\t\t\t\t\t\t\t? linkifyText(col, blank)\n\t\t\t\t\t\t\t\t\t\t: col}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t))}\n\t\t\t\t</tbody>\n\t\t\t) : (\n\t\t\t\t<tbody>{children}</tbody>\n\t\t\t)}\n\n\t\t\t{footers && (\n\t\t\t\t<tfoot>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{footers.map(footer => (\n\t\t\t\t\t\t\t<td key={uuid()}>\n\t\t\t\t\t\t\t\t{linkify && typeof footer === \"string\"\n\t\t\t\t\t\t\t\t\t? linkifyText(footer, blank)\n\t\t\t\t\t\t\t\t\t: footer}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t</tfoot>\n\t\t\t)}\n\t\t</table>\n\t)\n}\n","import type { MarkdownToJSX } from \"markdown-to-jsx\"\nimport { Text } from \"../components/Text\"\nimport { Table } from \"../components/Table\"\nimport type { LibMdEditorOptions } from \"../types\"\n\nexport const libOptionsMarkdown: MarkdownToJSX.Options = {\n\tforceBlock: true,\n\twrapper: \"div\",\n\toverrides: {\n\t\th1: { component: Text, props: { tag: \"h1\" } },\n\n\t\th2: { component: Text, props: { tag: \"h2\" } },\n\n\t\th3: { component: Text, props: { tag: \"h3\" } },\n\n\t\th4: { component: Text, props: { tag: \"h4\" } },\n\n\t\th5: { component: Text, props: { tag: \"h5\" } },\n\n\t\th6: { component: Text, props: { tag: \"h6\" } },\n\n\t\tp: { component: Text, props: { tag: \"p\" } },\n\n\t\tstrong: { component: Text, props: { tag: \"strong\" } },\n\n\t\tem: { component: Text, props: { tag: \"em\" } },\n\n\t\tul: { component: Text, props: { tag: \"ul\" } },\n\n\t\tol: { component: Text, props: { tag: \"ol\" } },\n\n\t\tdl: { component: Text, props: { tag: \"dl\" } },\n\n\t\tsmall: { component: Text, props: { tag: \"small\" } },\n\n\t\tblockquote: { component: Text, props: { tag: \"blockquote\" } },\n\n\t\ttable: { component: Table },\n\t},\n}\n\nexport const libMarkdownEditorOptions: LibMdEditorOptions = {\n\tbold: true,\n\titalic: true,\n\tstrikethrough: true,\n\tunderline: true,\n\tul: true,\n\tol: true,\n\tlink: true,\n\tquote: true,\n\thr: true,\n\tcode: true,\n\tcodeBlock: true,\n\tcomment: true,\n\timage: true,\n\tviewCode: true,\n\tviewLive: true,\n\tviewPreview: true,\n\ttitles: true,\n}\n","import type { LibColorsHover } from \"../types\"\n\nexport const genRingColor: Record<LibColorsHover, string> = {\n\tprimary: \"focus:ring-1 focus:ring-primary-800\",\n\tsecondary: \"focus:ring-1 focus:ring-secondary-800\",\n\tsuccess: \"focus:ring-1 focus:ring-success-800\",\n\tdanger: \"focus:ring-1 focus:ring-danger-800\",\n\twarning: \"focus:ring-1 focus:ring-warning-800\",\n\tgray: \"focus:ring-1 focus:ring-gray-800\",\n\twhite: \"focus:ring-1 focus:ring-gray-500\",\n}\n\nexport const genRingColorChildren: Record<LibColorsHover, string> = {\n\tprimary: \"[&>*]:focus:ring-1 [&>*]:focus:ring-primary-800\",\n\tsecondary: \"[&>*]:focus:ring-1 [&>*]:focus:ring-secondary-800\",\n\tsuccess: \"[&>*]:focus:ring-1 [&>*]:focus:ring-success-800\",\n\tdanger: \"[&>*]:focus:ring-1 [&>*]:focus:ring-danger-800\",\n\twarning: \"[&>*]:focus:ring-1 [&>*]:focus:ring-warning-800\",\n\tgray: \"[&>*]:focus:ring-1 [&>*]:focus:ring-gray-800\",\n\twhite: \"[&>*]:focus:ring-1 [&>*]:focus:ring-gray-500\",\n}\n","import { useEffect, type RefObject } from \"react\"\n\ntype Event = MouseEvent | TouchEvent\n\n/**\n * Hook to trigger a function when clicking outside a referenced element.\n *\n * @hook\n *\n * @example\n * const ref = useRef<HTMLDivElement>(null)\n * useClickOutside(ref, () => {\n * console.log('Clicked outside!')\n * setIsOpen(false)\n * })\n *\n * @template T - HTML element type that extends HTMLElement\n * @param {RefObject<T>} ref - React ref object pointing to the target element\n * @param {function} handler - Callback function to execute when clicking outside the element\n * @param {Event} handler.event - The mouse or touch event that triggered the outside click\n *\n * @returns {void} This hook doesn't return anything\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useClickOutside\n */\nexport const useClickOutside = <T extends HTMLElement = HTMLElement>(\n\tref: RefObject<T>,\n\thandler: (event: Event) => void,\n) => {\n\tuseEffect(() => {\n\t\tconst listener = (e: Event) => {\n\t\t\tconst target = e.target as HTMLElement\n\n\t\t\tif (target.getAttribute(\"href\")) return false\n\n\t\t\tconst el = ref?.current\n\t\t\tif (!el || el.contains((e?.target as Node) || null)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\thandler(e)\n\t\t}\n\n\t\tdocument.addEventListener(\"mousedown\", listener)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"mousedown\", listener)\n\t\t}\n\t}, [ref, handler])\n}\n","import { useState } from \"react\"\n\ntype CopiedValue = string | null\ntype CopyFn = (text: string) => Promise<boolean>\n\n/**\n * Hook to copy text to clipboard and track the copied value state.\n *\n * @hook\n *\n * @example\n * const [copiedText, copy] = useCopyToClipboard()\n *\n * const handleCopy = async () => {\n * const success = await copy('Hello, World!')\n * if (success) {\n * console.log('Copied:', copiedText)\n * }\n * }\n *\n * @returns {[CopiedValue, CopyFn]} Array containing the last copied text and copy function\n * @returns {string | null} returns[0] - The last successfully copied text, or null if no text copied or copy failed\n * @returns {function} returns[1] - Async function to copy text to clipboard\n * @returns {string} returns[1].text - Text to copy to clipboard\n * @returns {Promise<boolean>} returns[1].Promise - Promise that resolves to true if copy succeeded, false otherwise\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useCopyToClipboard\n */\nexport const useCopyToClipboard = (): [CopiedValue, CopyFn] => {\n\tconst [copiedText, setCopiedText] = useState<CopiedValue>(null)\n\n\tconst copy: CopyFn = async text => {\n\t\tif (!navigator?.clipboard) {\n\t\t\tconsole.warn(\"Clipboard not supported\")\n\t\t\treturn false\n\t\t}\n\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(text)\n\t\t\tsetCopiedText(text)\n\t\t\treturn true\n\t\t} catch (error) {\n\t\t\tconsole.warn(\"Copy failed\", error)\n\t\t\tsetCopiedText(null)\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn [copiedText, copy]\n}\n","import { useState, useEffect } from \"react\"\n\n/**\n * Hook to delay the update of a value until after a specified delay period has passed without changes.\n *\n * @hook\n *\n * @example\n * const [searchTerm, setSearchTerm] = useState('')\n * const debouncedSearchTerm = useDebounce(searchTerm, 500)\n *\n * useEffect(() => {\n * if (debouncedSearchTerm) {\n * // Perform search API call\n * searchAPI(debouncedSearchTerm)\n * }\n * }, [debouncedSearchTerm])\n *\n * @template T - Type of the value being debounced\n * @param {T} value - The value to debounce\n * @param {number} [delay=1000] - Delay in milliseconds before updating the debounced value\n *\n * @returns {T} The debounced value that updates after the delay period\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useDebounce\n */\nexport const useDebounce = <T,>(value: T, delay: number = 1000) => {\n\tconst [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n\tuseEffect(() => {\n\t\tconst timedValue = setTimeout(() => setDebouncedValue(value), delay)\n\n\t\treturn () => clearTimeout(timedValue)\n\t}, [value, delay])\n\n\treturn debouncedValue\n}\n","interface IDownloadFile {\n\tblob: Blob\n\tfileName: string\n}\n\nconst downloadFile = ({ blob, fileName }: IDownloadFile) => {\n\tconst a = document.createElement(\"a\")\n\ta.download = fileName\n\ta.href = window.URL.createObjectURL(blob)\n\tconst clickEvt = new MouseEvent(\"click\", {\n\t\tview: window,\n\t\tbubbles: true,\n\t\tcancelable: true,\n\t})\n\ta.dispatchEvent(clickEvt)\n\ta.remove()\n}\n\n/**\n * Hook to export data to JSON or CSV format with automatic file download functionality.\n *\n * @hook\n *\n * @example\n * const { exportToJson, exportToCsv } = useExportData()\n *\n * // Export to JSON\n * const users = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }]\n * exportToJson(users, 'users-data')\n *\n * // Export to CSV\n * const headers = ['ID', 'Name']\n * exportToCsv(users, 'users-data', headers)\n *\n * @template T - Type of the data objects being exported\n *\n * @returns {object} Object containing export functions\n * @returns {function} returns.exportToJson - Function to export data as JSON file\n * @returns {Array<T>} returns.exportToJson.data - Array of data objects to export\n * @returns {string} returns.exportToJson.fileName - Name for the downloaded file (without extension)\n * @returns {function} returns.exportToCsv - Function to export data as CSV file\n * @returns {Array<T>} returns.exportToCsv.data - Array of data objects to export\n * @returns {string} returns.exportToCsv.fileName - Name for the downloaded file (without extension)\n * @returns {Array<string>} returns.exportToCsv.headers - Array of column headers for the CSV file\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useExportData\n */\nexport const useExportData = <T,>() => {\n\tconst exportToJson = (data: Array<T>, fileName: string) =>\n\t\tdownloadFile({\n\t\t\tblob: new Blob([JSON.stringify(data)], {\n\t\t\t\ttype: \"application/json\",\n\t\t\t}),\n\t\t\tfileName: `${fileName}.json`,\n\t\t})\n\n\tconst exportToCsv = (\n\t\tdata: Array<T>,\n\t\tfileName: string,\n\t\theaders: Array<string>,\n\t) => {\n\t\tconst rows = [headers.join(\",\"), ...data].join(\"\\n\")\n\n\t\tconst blob = new Blob([rows], {\n\t\t\ttype: \"text/csv\",\n\t\t})\n\n\t\treturn downloadFile({\n\t\t\tblob,\n\t\t\tfileName: `${fileName}.csv`,\n\t\t})\n\t}\n\n\treturn {\n\t\texportToCsv,\n\t\texportToJson,\n\t}\n}\n","import { useEffect, useState } from \"react\"\n\n/**\n * Hook to fetch data from a Promise with loading and error state management.\n *\n * @hook\n *\n * @example\n * const { response, error, loading } = useFetch(\n * fetch('/api/users').then(res => res.json()),\n * [userId]\n * )\n *\n * if (loading) return <div>Loading...</div>\n * if (error) return <div>Error: {error.message}</div>\n * return <div>{response?.name}</div>\n *\n * @template T - Type of the data returned by the fetch function\n * @param {Promise<T>} fetchFunction - Promise that resolves to the data to be fetched\n * @param {any} [dependencies] - Dependency array to trigger re-fetching when values change\n *\n * @returns {object} Object containing fetch state\n * @returns {T | null} returns.response - The fetched data, or null if not yet loaded or failed\n * @returns {any} returns.error - Error object if the fetch failed, undefined otherwise\n * @returns {boolean} returns.loading - Whether the fetch operation is currently in progress\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useFetch\n */\nexport const useFetch = <T,>(fetchFunction: Promise<T>, dependencies?: any) => {\n\tconst [response, setResponse] = useState<T | null>(null)\n\tconst [loading, setLoading] = useState(true)\n\tconst [error, setError] = useState<any>(undefined)\n\n\tuseEffect(() => {\n\t\tfetchFunction\n\t\t\t.then((res: T) => setResponse(res))\n\t\t\t.catch((err: any) => setError(err))\n\t\t\t.finally(() => setLoading(false))\n\t}, [dependencies])\n\n\treturn { response, error, loading } as const\n}\n","import { useState, type ChangeEvent } from \"react\"\n\n/**\n * Hook to manage form state with input handling, validation, and submission functionality.\n *\n * @hook\n *\n * @example\n * interface FormData {\n * email: string\n * password: string\n * }\n *\n * const { formData, handleInputs, resetForm, handleSubmit } = useForm<FormData>(\n * { email: '', password: '' },\n * (data) => console.log('Form submitted:', data)\n * )\n *\n * @template T - Type of the form data object\n * @param {T} [initialState={}] - Initial state of the form data\n * @param {function} [onSubmit] - Optional callback function called on form submission\n * @param {T} onSubmit.formData - The current form data when submitted\n *\n * @returns {object} Object containing form state and handlers\n * @returns {T} returns.formData - Current form data state\n * @returns {function} returns.handleInputs - Function to handle input changes\n * @returns {ChangeEvent<HTMLInputElement>} returns.handleInputs.e - Input change event\n * @returns {function} returns.resetForm - Function to reset form to initial state\n * @returns {function} returns.handleSubmit - Function to handle form submission\n * @returns {ChangeEvent<HTMLFormElement>} returns.handleSubmit.e - Form submit event\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useForm\n */\nexport const useForm = <T,>(\n\tinitialState = {} as T,\n\tonSubmit?: (formData: T) => void,\n) => {\n\tconst [formData, setFormData] = useState(initialState)\n\n\tconst handleInputs = (e: ChangeEvent<HTMLInputElement>) =>\n\t\tsetFormData({ ...formData, [e.target.id]: e.target.value })\n\n\tconst resetForm = () => setFormData(initialState)\n\n\tconst handleSubmit = (e: ChangeEvent<HTMLFormElement>) => {\n\t\te.preventDefault()\n\t\tonSubmit?.(formData)\n\t}\n\n\treturn { formData, handleInputs, resetForm, handleSubmit }\n}\n","import {\n\tuseState,\n\tuseLayoutEffect,\n\ttype RefCallback,\n\ttype RefObject,\n} from \"react\"\n\n/**\n * Hook to detect if an element is overflowing its container bounds with optional callback functionality.\n *\n * @hook\n *\n * @example\n * const ref = useRef<HTMLDivElement>(null)\n * const isOverflow = useIsOverflow(ref, {\n * callback: (overflow) => console.log('Overflow detected:', overflow),\n * check: 'width'\n * })\n *\n * if (isOverflow) {\n * // Handle overflow state\n * }\n *\n * @param {RefObject<HTMLElement>} ref - React ref object pointing to the element to check for overflow\n * @param {object} [options] - Configuration options for overflow detection\n * @param {RefCallback<boolean>} [options.callback] - Callback function called when overflow state changes\n * @param {\"width\" | \"height\"} [options.check=\"width\"] - Which dimension to check for overflow\n *\n * @returns {boolean | undefined} Whether the element is overflowing, or undefined if not yet determined\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useIsOverflow\n */\nexport const useIsOverflow = (\n\tref: RefObject<HTMLElement>,\n\toptions?: {\n\t\tcallback: RefCallback<boolean>\n\t\tcheck?: \"width\" | \"height\"\n\t},\n) => {\n\tconst [isOverflow, setIsOverflow] = useState<undefined | boolean>(undefined)\n\n\tuseLayoutEffect(() => {\n\t\tconst { current } = ref\n\n\t\tconst trigger = () => {\n\t\t\tif (current) {\n\t\t\t\tconst hasOverflow =\n\t\t\t\t\toptions?.check === \"height\"\n\t\t\t\t\t\t? current.scrollHeight > current.clientHeight\n\t\t\t\t\t\t: current.scrollWidth > current.clientWidth\n\t\t\t\tsetIsOverflow(hasOverflow)\n\n\t\t\t\tif (options?.callback) options.callback(hasOverflow)\n\t\t\t}\n\t\t}\n\n\t\ttrigger()\n\t}, [ref, options])\n\n\treturn isOverflow\n}\n","import { useEffect } from \"react\"\n\n/**\n * Hook to trigger functions on specific key press events with support for modifier keys and exclusions.\n *\n * @hook\n *\n * @example\n * // Single key press\n * useKeyPress('Escape', () => setIsOpen(false))\n *\n * // Modifier key combination\n * useKeyPress(['Control', 'KeyS'], () => saveDocument())\n *\n * // With excluded keys\n * useKeyPress('Enter', handleSubmit, ['Shift'])\n *\n * @param {string | Array<string>} keyCodes - Single key code or array of key codes for combinations\n * @param {function} callback - Function to execute when the key combination is pressed\n * @param {Array<string>} [excludeKeys] - Array of modifier keys to exclude from triggering the callback\n *\n * @returns {void} This hook doesn't return anything\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useKeyPress\n */\nexport const useKeyPress = (\n\tkeyCodes: string | Array<string>,\n\tcallback: () => void,\n\texcludeKeys?: Array<string>,\n): void => {\n\tuseEffect(() => {\n\t\tconst singleHandler = ({ code }: KeyboardEvent) => {\n\t\t\tif (keyCodes.includes(code)) {\n\t\t\t\tcallback()\n\t\t\t}\n\t\t}\n\n\t\tconst multiHandler = (e: KeyboardEvent) => {\n\t\t\tif (typeof keyCodes !== \"string\") {\n\t\t\t\tconst metaKey =\n\t\t\t\t\tkeyCodes[0] === \"Command\" ? e.metaKey : undefined\n\t\t\t\tconst ctrlKey =\n\t\t\t\t\tkeyCodes[0] === \"Control\" ? e.ctrlKey : undefined\n\t\t\t\tconst shiftKey =\n\t\t\t\t\tkeyCodes[0] === \"Shift\" ? e.shiftKey : undefined\n\t\t\t\tconst altKey = keyCodes[0] === \"Alt\" ? e.altKey : undefined\n\n\t\t\t\tconst excludedMetaKey =\n\t\t\t\t\texcludeKeys && excludeKeys[0] === \"Command\"\n\t\t\t\t\t\t? e.metaKey\n\t\t\t\t\t\t: undefined\n\t\t\t\tconst excludedCtrlKey =\n\t\t\t\t\texcludeKeys && excludeKeys[0] === \"Control\"\n\t\t\t\t\t\t? e.ctrlKey\n\t\t\t\t\t\t: undefined\n\t\t\t\tconst excludedShiftKey =\n\t\t\t\t\texcludeKeys && excludeKeys[0] === \"Shift\"\n\t\t\t\t\t\t? e.shiftKey\n\t\t\t\t\t\t: undefined\n\t\t\t\tconst excludedAltKey =\n\t\t\t\t\texcludeKeys && excludeKeys[0] === \"Alt\"\n\t\t\t\t\t\t? e.altKey\n\t\t\t\t\t\t: undefined\n\n\t\t\t\tif (\n\t\t\t\t\tkeyCodes.length === 1 &&\n\t\t\t\t\t!(\n\t\t\t\t\t\texcludedMetaKey ||\n\t\t\t\t\t\texcludedCtrlKey ||\n\t\t\t\t\t\texcludedShiftKey ||\n\t\t\t\t\t\texcludedAltKey\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tsingleHandler(e)\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\texcludedMetaKey ||\n\t\t\t\t\texcludedCtrlKey ||\n\t\t\t\t\texcludedShiftKey ||\n\t\t\t\t\texcludedAltKey\n\t\t\t\t) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(metaKey || ctrlKey || shiftKey || altKey) &&\n\t\t\t\t\te.code === keyCodes[1]\n\t\t\t\t) {\n\t\t\t\t\tcallback()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twindow.addEventListener(\n\t\t\t\"keydown\",\n\t\t\ttypeof keyCodes !== \"string\" || (keyCodes && excludeKeys)\n\t\t\t\t? multiHandler\n\t\t\t\t: singleHandler,\n\t\t)\n\n\t\treturn () =>\n\t\t\twindow.removeEventListener(\n\t\t\t\t\"keydown\",\n\t\t\t\ttypeof keyCodes !== \"string\" && keyCodes.length > 1\n\t\t\t\t\t? multiHandler\n\t\t\t\t\t: singleHandler,\n\t\t\t)\n\t}, [callback, keyCodes])\n}\n","import { useState, useEffect } from \"react\"\n\n/**\n * Hook to detect if the viewport width is smaller than or equal to a specified width breakpoint.\n *\n * @hook\n *\n * @example\n * const isMobile = useMaxWidth(768)\n * const isTablet = useMaxWidth(1024)\n *\n * if (isMobile) {\n * // Render mobile layout\n * }\n *\n * @param {number} width - The maximum width breakpoint to check against\n *\n * @returns {boolean} Whether the current viewport width is smaller than or equal to the specified width\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useMaxWidth\n */\nexport const useMaxWidth = (width: number): boolean => {\n\tconst [isMax, setIsMax] = useState<boolean>(false)\n\n\tuseEffect(() => {\n\t\tconst detectSize = () => {\n\t\t\tif (window.innerWidth <= width) {\n\t\t\t\tsetIsMax(true)\n\t\t\t} else {\n\t\t\t\tsetIsMax(false)\n\t\t\t}\n\t\t}\n\n\t\tdetectSize()\n\n\t\twindow.addEventListener(\"resize\", () => detectSize())\n\t}, [width])\n\n\treturn isMax\n}\n","import {\n\tuseMemo,\n\ttype Ref,\n\ttype RefCallback,\n\ttype MutableRefObject,\n} from \"react\"\n\n/**\n * Hook to merge multiple refs into a single ref callback for use on a single element.\n *\n * @hook\n *\n * @example\n * const ref1 = useRef<HTMLDivElement>(null)\n * const ref2 = useRef<HTMLDivElement>(null)\n * const mergedRef = useMergeRefs([ref1, ref2])\n *\n * return <div ref={mergedRef}>Content</div>\n *\n * @template Instance - Type of the element instance being referenced\n * @param {Array<Ref<Instance> | undefined>} refs - Array of refs to merge together\n *\n * @returns {RefCallback<Instance> | null} Merged ref callback or null if all refs are null/undefined\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useMergeRefs\n */\nexport const useMergeRefs = <Instance>(\n\trefs: Array<Ref<Instance> | undefined>,\n): RefCallback<Instance> | null => {\n\treturn useMemo(() => {\n\t\tif (refs.every(ref => ref == null)) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn value => {\n\t\t\trefs.forEach(ref => {\n\t\t\t\tif (typeof ref === \"function\") {\n\t\t\t\t\tref(value)\n\t\t\t\t} else if (ref != null) {\n\t\t\t\t\t;(ref as MutableRefObject<Instance | null>).current = value\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}, refs)\n}\n","import { useState, useEffect } from \"react\"\n\n/**\n * Hook to detect if the viewport width is greater than or equal to a specified width breakpoint.\n *\n * @hook\n *\n * @example\n * const isDesktop = useMinWidth(1024)\n * const isTablet = useMinWidth(768)\n *\n * if (isDesktop) {\n * // Render desktop layout\n * }\n *\n * @param {number} width - The minimum width breakpoint to check against\n *\n * @returns {boolean} Whether the current viewport width is greater than or equal to the specified width\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useMinWidth\n */\nexport const useMinWidth = (width: number): boolean => {\n\tconst [isMin, setIsMin] = useState<boolean>(false)\n\n\tuseEffect(() => {\n\t\tconst detectSize = () => {\n\t\t\tif (window.innerWidth >= width) {\n\t\t\t\tsetIsMin(true)\n\t\t\t} else {\n\t\t\t\tsetIsMin(false)\n\t\t\t}\n\t\t}\n\n\t\tdetectSize()\n\n\t\twindow.addEventListener(\"resize\", () => detectSize())\n\t}, [width])\n\n\treturn isMin\n}\n","interface IUsePaginatedData<T> {\n\tpaginatedData: Array<T>\n\ttotalPages: number\n}\n\n/**\n * Hook to paginate data with URL parameter integration for use with Pagination or Paginator components.\n *\n * @hook\n *\n * @example\n * const users = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, ...]\n * const { paginatedData, totalPages } = usePaginatedData(users, 1, 10)\n *\n * return (\n * <div>\n * {paginatedData.map(user => <UserCard key={user.id} user={user} />)}\n * <Pagination totalPages={totalPages} />\n * </div>\n * )\n *\n * @template T - Type of the data items being paginated\n * @param {Array<T>} data - Array of data to paginate\n * @param {number} page - Current page number (1-indexed)\n * @param {number} [defaultLimit=20] - Number of items per page\n *\n * @returns {object} Object containing paginated data and pagination info\n * @returns {Array<T>} returns.paginatedData - Current page's data items\n * @returns {number} returns.totalPages - Total number of pages based on data length and limit\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#usePaginatedData\n */\nexport const usePaginatedData = <T,>(\n\tdata: Array<T>,\n\tpage: number,\n\tdefaultLimit = 20,\n): IUsePaginatedData<T> => {\n\tconst currentPage: number = page ?? 1\n\n\tconst getPaginatedData = () => {\n\t\tconst startIndex = currentPage * defaultLimit - defaultLimit\n\t\tconst endIndex = startIndex + defaultLimit\n\t\treturn data?.slice(startIndex, endIndex)\n\t}\n\n\tconst getNumberOfPages = () => Math.ceil((data?.length || 0) / defaultLimit)\n\n\treturn {\n\t\tpaginatedData: getPaginatedData(),\n\t\ttotalPages: getNumberOfPages(),\n\t}\n}\n","import { scrollToTop } from \"@julseb-lib/utils\"\nimport type { DispatchState } from \"../types\"\n\ninterface ILibUsePaginationNavigation {\n\tcurrentPage: number\n\tsetCurrentPage: DispatchState<number>\n\ttotalPages?: number\n}\n\n/**\n * Hook to manage pagination navigation with URL parameter integration and automatic scrolling.\n *\n * @hook\n *\n * @example\n * const [currentPage, setCurrentPage] = useState(1)\n * const { handlePrev, handleNext, handlePage } = usePagination({\n * currentPage,\n * setCurrentPage,\n * totalPages: 10\n * })\n *\n * return (\n * <div>\n * <button onClick={handlePrev}>Previous</button>\n * <button onClick={() => handlePage(5)}>Go to page 5</button>\n * <button onClick={handleNext}>Next</button>\n * </div>\n * )\n *\n * @param {object} params - Configuration object for pagination\n * @param {number} params.currentPage - Current active page number\n * @param {DispatchState<number>} params.setCurrentPage - State setter function for current page\n * @param {number} [params.totalPages] - Total number of pages available\n *\n * @returns {object} Object containing pagination navigation functions\n * @returns {function} returns.handlePrev - Function to navigate to the previous page\n * @returns {function} returns.handleNext - Function to navigate to the next page\n * @returns {function} returns.handlePage - Function to navigate to a specific page number\n * @returns {number} returns.handlePage.n - Page number to navigate to\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#usePagination\n */\nexport const usePagination = ({\n\tcurrentPage,\n\tsetCurrentPage,\n\ttotalPages,\n}: ILibUsePaginationNavigation) => {\n\tconst handlePrev = () => {\n\t\tsetCurrentPage(currentPage - 1)\n\t\tscrollToTop()\n\t}\n\n\tconst handleNext = () => {\n\t\tsetCurrentPage(currentPage + 1)\n\t\tscrollToTop()\n\t}\n\n\tconst handlePage = (n: number) => {\n\t\tif (n < 1) {\n\t\t\tsetCurrentPage(1)\n\t\t\treturn\n\t\t}\n\n\t\tif (totalPages && n > totalPages) {\n\t\t\tsetCurrentPage(totalPages)\n\t\t\treturn\n\t\t}\n\n\t\tsetCurrentPage(n)\n\t\tscrollToTop()\n\t}\n\n\treturn { handlePrev, handleNext, handlePage }\n}\n","import { useState, useLayoutEffect } from \"react\"\n\n/**\n * Hook to detect if the current device supports touch screen interaction.\n *\n * @hook\n *\n * @example\n * const isTouchScreen = useTouchScreen()\n *\n * if (isTouchScreen) {\n * // Render touch-optimized UI\n * return <TouchOptimizedComponent />\n * }\n *\n * return <DesktopComponent />\n *\n * @returns {boolean} Whether the current device supports touch screen interaction\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useTouchScreen\n */\nexport const useTouchScreen = (): boolean => {\n\tconst [isTouchScreen, setIsTouchScreen] = useState<boolean>(false)\n\n\tuseLayoutEffect(() => {\n\t\tconst isTouchDevice = () => {\n\t\t\treturn \"ontouchstart\" in window || navigator.maxTouchPoints > 0\n\t\t}\n\n\t\tsetIsTouchScreen(isTouchDevice())\n\t}, [])\n\n\treturn isTouchScreen\n}\n","import { useState, useEffect } from \"react\"\nimport { detectLanguage } from \"@julseb-lib/utils\"\nimport type { TranslateLang } from \"../types\"\n\nlet currentLanguage = detectLanguage() || \"en\"\n\n/**\n * Hook to detect the language and return translated content with language switching functionality.\n *\n * @hook\n *\n * @example\n * const translations = {\n * en: { greeting: 'Hello', goodbye: 'Goodbye' },\n * fr: { greeting: 'Bonjour', goodbye: 'Au revoir' },\n * es: { greeting: 'Hola', goodbye: 'Adiós' }\n * }\n *\n * const { translate, setLanguage, language, languages } = useTranslation(translations)\n *\n * return (\n * <div>\n * <p>{translate('greeting')}</p>\n * <button onClick={() => setLanguage('fr')}>Switch to French</button>\n * </div>\n * )\n *\n * @param {TranslateLang} translations - Object containing translations for each language\n * @param {object} translations[language] - Translation object for a specific language\n * @param {string} translations[language][key] - Translated string for a specific key\n *\n * @returns {object} Object containing translation utilities\n * @returns {function} returns.translate - Function to get translated text for a given key\n * @returns {string} returns.translate.key - Translation key to look up\n * @returns {function} returns.setLanguage - Function to change the current language\n * @returns {string} returns.setLanguage.lang - Language code to switch to\n * @returns {string} returns.language - Current active language code\n * @returns {Array<string>} returns.languages - Array of available language codes\n *\n * @see https://doc-julseb-lib-react.vercel.app/helpers/hooks#useTranslation\n */\nexport const useTranslation = (translations: TranslateLang) => {\n\tconst [language, setLanguage] = useState<string>(currentLanguage)\n\tconst languages = Object.keys(translations)\n\n\tuseEffect(() => {\n\t\tcurrentLanguage = language || \"en\"\n\t}, [language])\n\n\tconst translate = (key: string) => translations?.[language]?.[key]\n\n\treturn {\n\t\ttranslate,\n\t\tsetLanguage,\n\t\tlanguage,\n\t\tlanguages,\n\t}\n}\n","export enum COLORS {\n\t/** #EFF6FF */ PRIMARY_50 = \"var(--color-primary-50)\",\n\t/** #DBEAFE */ PRIMARY_100 = \"var(--color-primary-100)\",\n\t/** #BFDBFE */ PRIMARY_200 = \"var(--color-primary-200)\",\n\t/** #93C5FD */ PRIMARY_300 = \"var(--color-primary-300)\",\n\t/** #60A5FA */ PRIMARY_400 = \"var(--color-primary-400)\",\n\t/** #3B82F6 */ PRIMARY_500 = \"var(--color-primary-500)\",\n\t/** #2563EB */ PRIMARY_600 = \"var(--color-primary-600)\",\n\t/** #1D4ED8 */ PRIMARY_700 = \"var(--color-primary-700)\",\n\t/** #1E40AF */ PRIMARY_800 = \"var(--color-primary-800)\",\n\t/** #1E3A8A */ PRIMARY_900 = \"var(--color-primary-900)\",\n\t/** #172554 */ PRIMARY_950 = \"var(--color-primary-950)\",\n\t/** #ECFEFF */ SECONDARY_50 = \"var(--color-secondary-50)\",\n\t/** #CFFAFE */ SECONDARY_100 = \"var(--color-secondary-100)\",\n\t/** #A5F3FC */ SECONDARY_200 = \"var(--color-secondary-200)\",\n\t/** #67E8F9 */ SECONDARY_300 = \"var(--color-secondary-300)\",\n\t/** #22D3EE */ SECONDARY_400 = \"var(--color-secondary-400)\",\n\t/** #06B6D4 */ SECONDARY_500 = \"var(--color-secondary-500)\",\n\t/** #0891B2 */ SECONDARY_600 = \"var(--color-secondary-600)\",\n\t/** #0E7490 */ SECONDARY_700 = \"var(--color-secondary-700)\",\n\t/** #155E75 */ SECONDARY_800 = \"var(--color-secondary-800)\",\n\t/** #164E63 */ SECONDARY_900 = \"var(--color-secondary-900)\",\n\t/** #083344 */ SECONDARY_950 = \"var(--color-secondary-950)\",\n\t/** #F0FDF4 */ SUCCESS_50 = \"var(--color-success-50)\",\n\t/** #DCFCE7 */ SUCCESS_100 = \"var(--color-success-100)\",\n\t/** #BBF7D0 */ SUCCESS_200 = \"var(--color-success-200)\",\n\t/** #86EFAC */ SUCCESS_300 = \"var(--color-success-300)\",\n\t/** #4ADE80 */ SUCCESS_400 = \"var(--color-success-400)\",\n\t/** #22C55E */ SUCCESS_500 = \"var(--color-success-500)\",\n\t/** #16A34A */ SUCCESS_600 = \"var(--color-success-600)\",\n\t/** #15803D */ SUCCESS_700 = \"var(--color-success-700)\",\n\t/** #166534 */ SUCCESS_800 = \"var(--color-success-800)\",\n\t/** #14532D */ SUCCESS_900 = \"var(--color-success-900)\",\n\t/** #052E16 */ SUCCESS_950 = \"var(--color-success-950)\",\n\t/** #FEF2F2 */ DANGER_50 = \"var(--color-danger-50)\",\n\t/** #FEE2E2 */ DANGER_100 = \"var(--color-danger-100)\",\n\t/** #FECACA */ DANGER_200 = \"var(--color-danger-200)\",\n\t/** #FCA5A5 */ DANGER_300 = \"var(--color-danger-300)\",\n\t/** #F87171 */ DANGER_400 = \"var(--color-danger-400)\",\n\t/** #EF4444 */ DANGER_500 = \"var(--color-danger-500)\",\n\t/** #DC2626 */ DANGER_600 = \"var(--color-danger-600)\",\n\t/** #B91C1C */ DANGER_700 = \"var(--color-danger-700)\",\n\t/** #991B1B */ DANGER_800 = \"var(--color-danger-800)\",\n\t/** #7F1D1D */ DANGER_900 = \"var(--color-danger-900)\",\n\t/** #450A0A */ DANGER_950 = \"var(--color-danger-950)\",\n\t/** #FFFBEB */ WARNING_50 = \"var(--color-warning-50)\",\n\t/** #FEF3C7 */ WARNING_100 = \"var(--color-warning-100)\",\n\t/** #FDE68A */ WARNING_200 = \"var(--color-warning-200)\",\n\t/** #FCD34D */ WARNING_300 = \"var(--color-warning-300)\",\n\t/** #FBBF24 */ WARNING_400 = \"var(--color-warning-400)\",\n\t/** #F59E0B */ WARNING_500 = \"var(--color-warning-500)\",\n\t/** #D97706 */ WARNING_600 = \"var(--color-warning-600)\",\n\t/** #B45309 */ WARNING_700 = \"var(--color-warning-700)\",\n\t/** #92400E */ WARNING_800 = \"var(--color-warning-800)\",\n\t/** #78350F */ WARNING_900 = \"var(--color-warning-900)\",\n\t/** #451A03 */ WARNING_950 = \"var(--color-warning-950)\",\n\t/** #FAFAFA */ GRAY_50 = \"var(--color-gray-50)\",\n\t/** #F5F5F5 */ GRAY_100 = \"var(--color-gray-100)\",\n\t/** #E5E5E5 */ GRAY_200 = \"var(--color-gray-200)\",\n\t/** #D4D4D4 */ GRAY_300 = \"var(--color-gray-300)\",\n\t/** #A3A3A3 */ GRAY_400 = \"var(--color-gray-400)\",\n\t/** #737373 */ GRAY_500 = \"var(--color-gray-500)\",\n\t/** #525252 */ GRAY_600 = \"var(--color-gray-600)\",\n\t/** #404040 */ GRAY_700 = \"var(--color-gray-700)\",\n\t/** #262626 */ GRAY_800 = \"var(--color-gray-800)\",\n\t/** #171717 */ GRAY_900 = \"var(--color-gray-900)\",\n\t/** #0A0A0A */ GRAY_950 = \"var(--color-gray-950)\",\n\t/** #000000 */ BLACK = \"var(--color-black)\",\n\t/** #FFFFFF */ WHITE = \"var(--color-white)\",\n\tTRANSPARENT = \"transparent\",\n\tCURRENT_COLOR = \"currentColor\",\n}\n\nexport enum OVERLAYS {\n\t/** rgba(0, 0, 0, 0.5) */ BLACK_50 = \"var(--color-overlay-black-50)\",\n\t/** rgba(0, 0, 0, 0.8) */ BLACK_80 = \"var(--color-overlay-black-80)\",\n\t/** rgba(255, 255, 255, 0.5) */ WHITE_50 = \"var(--color-overlay-white-50)\",\n\t/** rgba(69, 35, 35, 0.8) */ WHITE_80 = \"var(--color-overlay-white-80)\",\n\t/** linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.56) 100%) */ GRADIENT_BLACK = \"var(--color-overlay-gradient-black)\",\n\t/** linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(255, 255, 255, 0.35) 100%) */ GRADIENT_WHITE = \"var(--color-overlay-gradient-white)\",\n}\n\nexport enum FONT_FAMILIES {\n\t/** Primary font family for body text */ SANS = \"var(--font-sans)\",\n\t/** Font family for code and monospaced text */ MONO = \"var(--font-mono)\",\n}\n\nexport enum FONT_SIZES {\n\t/** 5rem */ DISPLAY_H1 = \"var(--text-display-h1)\",\n\t/** 4rem */ DISPLAY_H2 = \"var(--text-display-h2)\",\n\t/** 3.5rem */ DISPLAY_H3 = \"var(--text-display-h3)\",\n\t/** 3rem */ DISPLAY_H4 = \"var(--text-display-h4)\",\n\t/** 2.5rem */ DISPLAY_H5 = \"var(--text-display-h5)\",\n\t/** 2.5rem */ H1 = \"var(--text-h1)\",\n\t/** 2rem */ H2 = \"var(--text-h2)\",\n\t/** 1.8rem */ H3 = \"var(--text-h3)\",\n\t/** 1.5rem */ H4 = \"var(--text-h4)\",\n\t/** 1.3rem */ H5 = \"var(--text-h5)\",\n\t/** 1.1rem */ H6 = \"var(--text-h6)\",\n\t/** 1rem */ BODY = \"var(--text-body)\",\n\t/** 0.875rem */ SMALL = \"var(--text-small)\",\n}\n\nexport enum FONT_WEIGHTS {\n\t/** 100 */ THIN = \"var(--font-weight-thin)\",\n\t/** 200 */ EXTRA_LIGHT = \"var(--font-weight-extralight)\",\n\t/** 300 */ LIGHT = \"var(--font-weight-light)\",\n\t/** 400 */ NORMAL = \"var(--font-weight-normal)\",\n\t/** 500 */ MEDIUM = \"var(--font-weight-medium)\",\n\t/** 600 */ SEMI_BOLD = \"var(--font-weight-semibold)\",\n\t/** 700 */ BOLD = \"var(--font-weight-bold)\",\n\t/** 800 */ EXTRA_BOLD = \"var(--font-weight-extrabold)\",\n\t/** 900 */ BLACK = \"var(--font-weight-black)\",\n}\n\nexport enum LINE_HEIGHTS {\n\t/** 1 */ NONE = \"var(--line-height-none)\",\n\t/** 1.25 */ TIGHT = \"var(--line-height-tight)\",\n\t/** 1.375 */ SNUG = \"var(--line-height-snug)\",\n\t/** 1.5 */ NORMAL = \"var(--line-height-normal)\",\n\t/** 1.625 */ RELAXED = \"var(--line-height-relaxed)\",\n\t/** 2 */ LOOSE = \"var(--line-height-loose)\",\n\t/** 0.75rem (12px) */ _3 = \"var(--line-height-3)\",\n\t/** 1rem (16px) */ _4 = \"var(--line-height-4)\",\n\t/** 1.25rem (20px) */ _5 = \"var(--line-height-5)\",\n\t/** 1.5rem (24px) */ _6 = \"var(--line-height-6)\",\n\t/** 1.75rem (28px) */ _7 = \"var(--line-height-7)\",\n\t/** 2rem (32px) */ _8 = \"var(--line-height-8)\",\n\t/** 2.25rem (36px) */ _9 = \"var(--line-height-9)\",\n\t/** 2.5rem (40px) */ _10 = \"var(--line-height-10)\",\n}\n\nexport enum SHADOWS {\n\t/** 0 1px 2px 0 rgba(0, 0, 0, 0.05) */ \"2XS\" = \"var(--shadow-2xs)\",\n\t/** 0 1px 2px 0 rgba(0, 0, 0, 0.05) */ XS = \"var(--shadow-xs)\",\n\t/** 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) */ SM = \"var(--shadow-sm)\",\n\t/** 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) */ MD = \"var(--shadow-md)\",\n\t/** 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) */ LG = \"var(--shadow-lg)\",\n\t/** 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) */ XL = \"var(--shadow-xl)\",\n\t/** 0 25px 50px -12px rgba(0, 0, 0, 0.25) */ \"2XL\" = \"var(--shadow-2xl)\",\n\t/** inset 0 2px 4px 0 rgb(0 0 0 / 0.06) */ INNER = \"var(--shadow-inner)\",\n\t/** none */ NONE = \"var(--shadow-none)\",\n}\n\nexport enum INSET_SHADOWS {}\n\nexport enum DROP_SHADOWS {}\n\nexport enum TEXT_SHADOWS {}\n\nexport enum SPACERS {\n\t/** 48px */ \"2XL\" = \"var(--spacer-2xl)\",\n\t/** 32px */ XL = \"var(--spacer-xl)\",\n\t/** 24px */ LG = \"var(--spacer-lg)\",\n\t/** 16px */ MD = \"var(--spacer-md)\",\n\t/** 12px */ SM = \"var(--spacer-sm)\",\n\t/** 8px */ XS = \"var(--spacer-xs)\",\n\t/** 4px */ \"2XS\" = \"var(--spacer-2xs)\",\n}\n\nexport enum RADIUS {\n\t/** 0px */ NONE = \"var(--radius-none)\",\n\t/** */ XS = \"var(--radius-xs)\",\n\t/** 0.125rem (2px) */ SM = \"var(--radius-sm)\",\n\t/** 0.25rem (4px) */ DEFAULT = \"var(--radius)\",\n\t/** 0.375rem (6px) */ MD = \"var(--radius-md)\",\n\t/** 0.5rem (8px) */ LG = \"var(--radius-lg)\",\n\t/** 0.75rem (12px) */ XL = \"var(--radius-xl)\",\n\t/** 1rem (16px) */ \"2XL\" = \"var(--radius-2xl)\",\n\t/** 1.5rem (24px) */ \"3XL\" = \"var(--radius-3xl)\",\n\t/** */ \"4XL\" = \"var(--radius-4xl)\",\n\t/** 9999px */ FULL = \"var(--radius-full)\",\n}\n\nexport enum LAYOUTS {\n\t/** 600px */ MAIN_DEFAULT = \"var(--main-default)\",\n\t/** 800px */ MAIN_LARGE = \"var(--main-large)\",\n\t/** 400px */ MAIN_FORM = \"var(--main-form)\",\n\t/** 100% */ MAIN_FULL = \"var(--main-full)\",\n\t/** 250px */ ASIDE_DEFAULT = \"var(--aside-default)\",\n\t/** 200px */ ASIDE_SMALL = \"var(--aside-small)\",\n}\n\nexport enum TRANSITIONS {\n\t/** all 200ms ease */ SHORT = \"var(--transition-short)\",\n\t/** all 500ms ease */ LONG = \"var(--transition-long)\",\n\t/** all 500ms cubic-bezier(0.25, 0.75, 0, 0.66) */ BEZIER = \"var(--transition-bezier)\",\n}\n\nexport enum MEDIA {\n\tBREAKPOINT_TABLET_LARGE = \"(max-width: 1024px)\",\n\tBREAKPOINT_TABLET_SMALL = \"(max-width: 768px)\",\n\tBREAKPOINT_MOBILE = \"(max-width: 600px)\",\n\tTOUCH = \"(hover: none) and (pointer: coarse)\",\n\tHOVER = \"(hover: hover)\",\n\tPREFERS_LIGHT = \"(prefers-color-scheme: light)\",\n\tPREFERS_DARK = \"(prefers-color-scheme: dark)\",\n}\n\nexport const ICON_MULTIPLIER = 0.6 as const\n\nexport const INPUT_HEIGHT = 32 as const\n","import { useState, useEffect, createContext, useContext } from \"react\"\nimport type { LibThemeNames, ReactChildren, DispatchState } from \"../types\"\n\ntype ILibThemeContext = {\n\ttheme: LibThemeNames\n\tsetTheme: DispatchState<LibThemeNames>\n\tswitchTheme: () => void\n}\n\nconst ThemeContext = createContext<ILibThemeContext | null>(null)\n\ninterface ILibThemeProvider {\n\tchildren?: ReactChildren\n}\n\nexport const ThemeProviderWrapper = ({ children }: ILibThemeProvider) => {\n\tconst storedTheme = localStorage.getItem(\"theme\") as LibThemeNames\n\tconst [theme, setTheme] = useState(storedTheme ?? \"light\")\n\n\tconst docEl = document.documentElement\n\n\tconst switchToLight = () => {\n\t\tdocEl.classList.add(\"light\")\n\t\tdocEl.classList.remove(\"dark\")\n\t\tsetTheme(\"light\")\n\t\tlocalStorage.setItem(\"theme\", \"light\")\n\t}\n\n\tconst switchToDark = () => {\n\t\tdocEl.classList.remove(\"light\")\n\t\tdocEl.classList.add(\"dark\")\n\t\tsetTheme(\"dark\")\n\t\tlocalStorage.setItem(\"theme\", \"dark\")\n\t}\n\n\tuseEffect(() => {\n\t\tif (storedTheme) {\n\t\t\tif (theme === \"light\") switchToLight()\n\t\t\telse switchToDark()\n\t\t} else {\n\t\t\tif (window.matchMedia(\"(prefers-color-scheme: dark)\").matches)\n\t\t\t\tswitchToDark()\n\t\t\telse switchToLight()\n\t\t}\n\t}, [theme, localStorage.getItem(\"theme\"), docEl])\n\n\tconst switchTheme = () => {\n\t\tif (theme === \"light\") switchToDark()\n\t\telse switchToLight()\n\t}\n\n\treturn (\n\t\t<ThemeContext.Provider value={{ theme, setTheme, switchTheme }}>\n\t\t\t{children}\n\t\t</ThemeContext.Provider>\n\t)\n}\n\n/**\n * Custom hook to access the theme context.\n *\n * @returns {ILibThemeContext} The current theme, a setter for the theme, and a function to toggle between light and dark themes.\n * @example\n * const { theme, setTheme, switchTheme } = useLibTheme()\n */\nexport const useLibTheme = () => useContext(ThemeContext) as ILibThemeContext\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors, genGap } from \"../../utils\"\nimport type { ILibWrapper } from \"./types\"\n\n/**\n * Wrapper component for providing a responsive layout container.\n *\n * @component\n * @example\n * <Wrapper>\n * <Main>Content</Main>\n * </Wrapper>\n *\n * @extends HTMLDivElement\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"section\"] - The HTML element or React component to render as the wrapper container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the wrapper container.\n * @prop {ReactNode} props.children - Wrapper content.\n * @prop {\"px\"|\"full\"|\"screen\"|\"dvh\"|\"dvw\"|\"lvh\"|\"lvw\"|\"svw\"|\"svh\"|\"auto\"|\"min\"|\"max\"|\"fit\"|\"lh\"|} [props.minHeight=\"svh\"] - Minimum height class (uses Tailwind min-h-* utilities).\n * @prop {string} [props.backgroundColor=\"background\"] - Any color from the library.\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.gap=\"lg\"] - Gap between children (uses library spacers).\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered wrapper container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/styles/wrapper\n */\nexport const Wrapper: FC<ILibWrapper> = ({\n\tclassName,\n\telement = \"section\",\n\tchildren,\n\tref,\n\tminHeight = \"svh\",\n\tbackgroundColor = \"background\",\n\tgap = \"lg\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"z-10 relative flex sm:flex-row flex-col justify-stretch sm:justify-center-safe gap-5 px-4 md:px-5 lg:px-12 w-full\",\n\t\t\t\t(genBgAllColors as any)[backgroundColor],\n\t\t\t\tgenMinHeight[minHeight],\n\t\t\t\tgenGap[gap],\n\t\t\t\t\"wrapper\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst genMinHeight = {\n\tpx: \"min-h-px\",\n\tfull: \"min-h-full\",\n\tscreen: \"min-h-screen\",\n\tdvh: \"min-h-dvh\",\n\tdvw: \"min-h-dvw\",\n\tlvh: \"min-h-lvh\",\n\tlvw: \"min-h-lvw\",\n\tsvw: \"min-h-svw\",\n\tsvh: \"min-h-svh\",\n\tauto: \"min-h-auto\",\n\tmin: \"min-h-min\",\n\tmax: \"min-h-max\",\n\tfit: \"min-h-fit\",\n\tlh: \"min-h-lh\",\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors, genGap } from \"../../utils\"\nimport type { ILibMain } from \"./types\"\n\n/**\n * Main component for rendering the primary content area.\n *\n * @component\n *\n * @example\n * <Main size=\"large\" gap=\"xl\" backgroundColor=\"white\">\n * <p>Main content</p>\n * </Main>\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"main\"] - The HTML element or React component to render as the main container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the main container.\n * @prop {ReactNode} props.children - Main content.\n * @prop {\"default\"|\"large\"|\"form\"} [props.size=\"default\"] - Main width size.\n * @prop {string} [props.backgroundColor=\"white\"] - Any color from the library.\n * @prop {\"2xl\"|\"xl\"|\"lg\"|\"md\"|\"sm\"|\"xs\"|\"2xs\"} [props.gap=\"lg\"] - Gap between children (uses spacer tokens).\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered main container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/styles/main\n */\nexport const Main: FC<ILibMain> = ({\n\tclassName,\n\telement = \"main\",\n\tref,\n\tchildren,\n\tgap = \"lg\",\n\tbackgroundColor = \"background\",\n\tsize = \"default\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col py-4 sm:py-8 md:py-12 w-full\",\n\t\t\t\t(genBgAllColors as any)[backgroundColor],\n\t\t\t\tgenGap[gap],\n\t\t\t\tmaxWidth[size],\n\t\t\t\t\"main\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst maxWidth = {\n\tdefault: \"sm:max-w-(--main-default)\",\n\tlarge: \"sm:max-w-(--main-large)\",\n\tform: \"sm:max-w-(--main-form)\",\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors } from \"../../utils\"\nimport type { ILibAside } from \"./types\"\n\n/**\n * Aside component for rendering a sidebar or secondary content area.\n *\n * @component\n * @example\n * <Aside size=\"small\" backgroundColor=\"white\">\n * <p>Sidebar content</p>\n * </Aside>\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"aside\"] - The HTML element or React component to render as the aside container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the aside container.\n * @prop {ReactNode} props.children - Aside content.\n * @prop {\"default\"|\"small\"} [props.size=\"default\"] - Aside width size.\n * @prop {string} [props.backgroundColor=\"white\"] - Any color from the library.\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered aside container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/styles/aside\n */\nexport const Aside: FC<ILibAside> = ({\n\tclassName,\n\telement = \"aside\",\n\tref,\n\tchildren,\n\tsize = \"default\",\n\tbackgroundColor = \"background\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"py-4 sm:py-8 md:py-12 w-full\",\n\t\t\t\t(genBgAllColors as any)[backgroundColor],\n\t\t\t\tasideSize[size],\n\t\t\t\t\"aside\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst asideSize = {\n\tdefault: \"sm:max-w-(--aside-default)\",\n\tsmall: \"sm:max-w-(--aside-small)\",\n}\n","import { type FC } from \"react\"\nimport { clsx, genGap } from \"../../utils\"\nimport type { ILibSection } from \"./types\"\n\n/**\n * Section component for grouping related content in a flexible layout.\n *\n * @component\n * @example\n * <Section gap=\"lg\">\n * <h2>Section title</h2>\n * <p>Section content</p>\n * </Section>\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"section\"] - The HTML element or React component to render as the section container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the section container.\n * @prop {ReactNode} props.children - Section content.\n * @prop {\"2xl\"|\"xl\"|\"lg\"|\"md\"|\"sm\"|\"xs\"|\"2xs\"|\"0px\"} [props.gap=\"md\"] - Gap between children (uses spacer tokens).\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered section container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/section\n */\nexport const Section: FC<ILibSection> = ({\n\tclassName,\n\telement = \"section\",\n\tref,\n\tchildren,\n\tgap = \"md\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col items-stretch\",\n\t\t\t\tgenGap[gap],\n\t\t\t\t\"section\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenGap,\n\tgenRowGap,\n\tgenColGap,\n\tgenJustifyItems,\n\tgenAlignItems,\n\tgenJustifyContent,\n\tgenAlignContent,\n} from \"../../utils\"\nimport type { ILibGrid } from \"./types\"\n\n/**\n * Grid component for flexible CSS grid layouts.\n *\n * @component\n * @example\n * <Grid cols={3} gap=\"md\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Grid>\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"div\"] - The HTML element or React component to render as the grid container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the grid container.\n * @prop {ReactNode} props.children - Grid content.\n * @prop {boolean} [props.inline] - Use inline-grid instead of grid.\n * @prop {1|2|3|4|5|6|7|8|9|10|11|12} [props.cols=1] - Number of columns (1-12).\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.gap=\"0px\"] - Gap between rows and columns (can use spacer tokens).\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.rowGap=\"0px\"] - Row gap (can use spacer tokens).\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.colGap=\"0px\"] - Column gap (can use spacer tokens).\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-sage\"|\"space-between\"|\"space-around\"|\"space-evenly\"|\"stretch\"|\"baseline\"|\"normal\"} [props.justifyContent=\"start\"] - Justify content property.\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-safe\"|\"stretch\"|\"normal\"} [props.justifyItems=\"stretch\"] - Justify items property.\n * @prop {\"normal\"|\"center\"|\"start\"|\"end\"|\"space-between\"|\"space-around\"|\"space-evenly\"|\"baseline\"|\"stretch\"} [props.alignContent=\"start\"] - Align content property.\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-safe\"|\"baseline\"|\"baseline-start\"|\"stretch\"} [props.alignItems=\"stretch\"] - Align items property.\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered grid container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/grid\n */\nexport const Grid: FC<ILibGrid> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tinline,\n\tcols = 1,\n\tgap = \"0px\",\n\trowGap = \"0px\",\n\tcolGap = \"0px\",\n\tjustifyItems = \"stretch\",\n\talignItems = \"stretch\",\n\tjustifyContent = \"auto\",\n\talignContent = \"normal\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\tinline ? \"inline-grid\" : \"grid\",\n\t\t\t\tgenGridColumns[cols],\n\t\t\t\tgenGap[gap],\n\t\t\t\tgenRowGap[rowGap],\n\t\t\t\tgenColGap[colGap],\n\t\t\t\tgenJustifyItems[justifyItems],\n\t\t\t\tgenAlignItems[alignItems],\n\t\t\t\t(genJustifyContent as any)[justifyContent],\n\t\t\t\tgenAlignContent[alignContent],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst genGridColumns = {\n\t1: \"grid-cols-1\",\n\t2: \"grid-cols-2\",\n\t3: \"grid-cols-3\",\n\t4: \"grid-cols-4\",\n\t5: \"grid-cols-5\",\n\t6: \"grid-cols-6\",\n\t7: \"grid-cols-7\",\n\t8: \"grid-cols-8\",\n\t9: \"grid-cols-9\",\n\t10: \"grid-cols-10\",\n\t11: \"grid-cols-11\",\n\t12: \"grid-cols-12\",\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenJustifyContent,\n\tgenAlignItems,\n\tgenAlignContent,\n\tgenColGap,\n\tgenGap,\n\tgenJustifyItems,\n\tgenRowGap,\n} from \"../../utils\"\nimport type { ILibFlexbox } from \"./types\"\n\n/**\n * Flexbox component for flexible layouts using CSS flexbox.\n *\n * @component\n * @example\n * <Flexbox flexDirection=\"row\" gap=\"md\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * </Flexbox>\n *\n * @prop {object} props - Component props.\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"div\"] - The HTML element or React component to render as the flex container.\n * @prop {RefObject<HTMLDivElement>} [props.ref] - Ref for the flex container.\n * @prop {ReactNode} props.children - Flexbox content.\n * @prop {boolean} [props.inline] - Use inline-flex instead of flex.\n * @prop {\"row\"|\"row-reverse\"|\"col\"|\"col-reverse\"} [props.flexDirection=\"row\"] - Flex direction.\n * @prop {\"nowrap\"|\"wrap\"|\"wrap-reverse\"} [props.flexWrap=\"nowrap\"] - Flex wrap.\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-sage\"|\"space-between\"|\"space-around\"|\"space-evenly\"|\"stretch\"|\"baseline\"|\"normal\"} [props.justifyContent=\"start\"] - Justify content property.\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-safe\"|\"baseline\"|\"baseline-start\"|\"stretch\"} [props.alignItems=\"stretch\"] - Align items property.\n * @prop {\"start\"|\"end\"|\"end-safe\"|\"center\"|\"center-safe\"|\"stretch\"|\"normal\"} [props.justifyItems=\"stretch\"] - Justify items property.\n * @prop {\"normal\"|\"center\"|\"start\"|\"end\"|\"space-between\"|\"space-around\"|\"space-evenly\"|\"baseline\"|\"stretch\"} [props.alignContent=\"normal\"] - Align content property.\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.gap=\"0px\"] - Gap between items (can use spacer tokens).\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.colGap=\"0px\"] - Column gap (can use spacer tokens).\n * @prop {\"2xs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"2xl\"|\"0px\"} [props.rowGap=\"0px\"] - Row gap (can use spacer tokens).\n * @prop {object} [props.rest] - Additional props spread to the container.\n *\n * @returns {JSX.Element} The rendered flexbox container.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/flexbox\n */\nexport const Flexbox: FC<ILibFlexbox> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tinline,\n\tflexDirection = \"row\",\n\tflexWrap = \"nowrap\",\n\tjustifyContent = \"start\",\n\talignItems = \"stretch\",\n\tjustifyItems = \"stretch\",\n\talignContent = \"normal\",\n\tgap = \"0px\",\n\tcolGap = \"0px\",\n\trowGap = \"0px\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\tinline ? \"inline-flex\" : \"flex\",\n\t\t\t\tgenFlexWrap[flexWrap],\n\t\t\t\tgenFlexDirection[flexDirection],\n\t\t\t\tgenJustifyContent[justifyContent],\n\t\t\t\tgenAlignItems[alignItems],\n\t\t\t\tgenJustifyItems[justifyItems],\n\t\t\t\tgenAlignContent[alignContent],\n\t\t\t\tgenGap[gap],\n\t\t\t\tgenColGap[colGap],\n\t\t\t\tgenRowGap[rowGap],\n\t\t\t\t\"flexbox\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst genFlexDirection = {\n\trow: \"flex-row\",\n\t\"row-reverse\": \"flex-row-reverse\",\n\tcol: \"flex-col\",\n\t\"col-reverse\": \"flex-col-reverse\",\n}\n\nconst genFlexWrap = {\n\tnowrap: \"flex-nowrap\",\n\twrap: \"flex-wrap\",\n\t\"wrap-reverse\": \"flex-wrap-reverse\",\n}\n","import { Children, Fragment, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx, genBgColor50, genBorderColorShort } from \"../../utils\"\nimport type { ILibKey } from \"./types\"\n\n/**\n * Key component for displaying keyboard keys or shortcuts.\n *\n * @component\n *\n * @example\n * <Key keys={[\"Ctrl\", \"C\"]} size=\"large\" accentColor=\"blue\" />\n *\n * @prop {Array<string>} keys - The list of keys to display.\n * @prop {boolean} [withSeparator] - If true, displays a separator between keys.\n * @prop {\"default\" | \"large\" | \"form\"} [size] - The size of the key component.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\"} [accentColor] - Accent color for the key, excluding black, white, transparent, background, and current.\n *\n * @returns {JSX.Element} The rendered Key component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/key\n */\nexport const Key: FC<ILibKey> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tchildren,\n\twithSeparator,\n\tsize = \"small\",\n\taccentColor = \"primary\",\n\t...rest\n}) => {\n\tconst Element = element\n\tconst childrenArray = Children.toArray(\n\t\tchildren?.toString().replaceAll(\",\", \"\").split(\"\"),\n\t)\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"justify-self-start self-start border text-black\",\n\t\t\t\tgenBorderRadius[size],\n\t\t\t\tgenFontSize[size],\n\t\t\t\tgenPadding[size],\n\t\t\t\tgenBgColor50[accentColor],\n\t\t\t\tgenBorderColorShort[accentColor],\n\t\t\t\tgenBorderBottom[size],\n\t\t\t\t\"key\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{childrenArray.map((child, i) => (\n\t\t\t\t<Fragment key={uuid()}>\n\t\t\t\t\t{child}\n\t\t\t\t\t{withSeparator && i !== childrenArray.length - 1 && \" + \"}\n\t\t\t\t</Fragment>\n\t\t\t))}\n\t\t</Element>\n\t)\n}\n\ntype Gen = Record<\"small\" | \"large\", string>\n\nconst genBorderRadius: Gen = {\n\tsmall: \"rounded-xs\",\n\tlarge: \"rounded-sm\",\n}\n\nconst genFontSize: Gen = {\n\tsmall: \"text-sm\",\n\tlarge: \"text-base\",\n}\n\nconst genPadding: Gen = {\n\tsmall: \"py-0 px-1\",\n\tlarge: \"py-1 px-2\",\n}\n\nconst genBorderBottom: Gen = {\n\tsmall: \"border-b-3\",\n\tlarge: \"border-b-4\",\n}\n","import { Fragment, type CSSProperties } from \"react\"\nimport { uuid, slugify } from \"@julseb-lib/utils\"\nimport { clsx } from \"../utils\"\nimport { Text } from \"..\"\nimport type { ReactChildren } from \"../types\"\n\nexport const getHighlightedText = (\n\ttext: ReactChildren,\n\tvalue: string,\n\thighlightStyle?: CSSProperties,\n\tclassName?: string | Array<string>\n) => {\n\tconst parts = text?.toString().split(new RegExp(`(${value})`, \"gi\"))\n\n\treturn (parts as Array<string>).map(part => (\n\t\t<Fragment key={uuid()}>\n\t\t\t{slugify(part) === slugify(value) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"strong\"\n\t\t\t\t\tclassName={clsx(className)}\n\t\t\t\t\tstyle={highlightStyle}\n\t\t\t\t>\n\t\t\t\t\t{part}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\tpart\n\t\t\t)}\n\t\t</Fragment>\n\t))\n}\n","export const transformSearchKeys = (keys: Array<string>): Array<string> => {\n return keys.map(key =>\n key.includes(\"Key\")\n ? key.replace(\"Key\", \"\")\n : key === \"Command\"\n ? \"⌘\"\n : key === \"Enter\"\n ? \"↵\"\n : key === \"Control\"\n ? \"Ctrl\"\n : key\n )\n}\n","import { useState, useCallback, useRef, useEffect } from \"react\"\nimport type { DispatchState } from \"../types\"\n\ninterface ILibKeyboardNav<T> {\n\tdata: T\n\tvalue: string\n\tsetValue: DispatchState<string>\n}\n\nexport const useKeyboardNavigation = <T,>({\n\tdata,\n\tvalue,\n\tsetValue,\n}: ILibKeyboardNav<T>) => {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [cursor, setCursor] = useState(0)\n\tconst listRef = useRef<HTMLDivElement>(null)\n\n\tconst handleKeyboardNavigation = useCallback(\n\t\t(e: KeyboardEvent) => {\n\t\t\tconst { key } = e\n\t\t\tconst dataArr: Array<T> = data as Array<T>\n\n\t\t\tif (isOpen) {\n\t\t\t\tif (key === \"ArrowDown\") {\n\t\t\t\t\te.preventDefault()\n\n\t\t\t\t\tif (dataArr.length) {\n\t\t\t\t\t\tsetCursor(prev =>\n\t\t\t\t\t\t\tprev < dataArr.length ? prev + 1 : 0,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (cursor === dataArr.length)\n\t\t\t\t\t\t\tlistRef?.current?.scrollTo({ top: 0 })\n\t\t\t\t\t\telse listRef?.current?.scrollTo({ top: cursor * 40 })\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === \"ArrowUp\") {\n\t\t\t\t\te.preventDefault()\n\n\t\t\t\t\tif (dataArr.length) {\n\t\t\t\t\t\tsetCursor(prev =>\n\t\t\t\t\t\t\tprev > 0 ? prev - 1 : dataArr.length,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (cursor === 0)\n\t\t\t\t\t\t\tlistRef?.current?.scrollTo({\n\t\t\t\t\t\t\t\ttop: listRef?.current?.scrollHeight,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\telse listRef?.current?.scrollTo({ top: cursor * 40 })\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === \"Tab\" || key === \"Enter\") {\n\t\t\t\t\te.preventDefault()\n\n\t\t\t\t\tif (cursor === dataArr.length) {\n\t\t\t\t\t\tsetValue(value)\n\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetValue((data as Array<any>)[cursor])\n\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[isOpen, cursor, data, value, setValue],\n\t)\n\n\tuseEffect(() => {\n\t\tdocument.addEventListener(\"keydown\", handleKeyboardNavigation)\n\n\t\treturn () =>\n\t\t\tdocument.removeEventListener(\"keydown\", handleKeyboardNavigation)\n\t}, [handleKeyboardNavigation])\n\n\treturn { isOpen, setIsOpen, cursor, listRef, handleKeyboardNavigation }\n}\n","import { type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport { getHighlightedText } from \"../../lib-utils\"\nimport type { ILibHighlight } from \"./types\"\n\n/**\n * Highlight component for emphasizing parts of text.\n *\n * @component\n *\n * @example\n * <Highlight highlightedText=\"important\" highlightClasses=\"bg-yellow-200\" />\n *\n * @prop {string} highlightedText - The substring to highlight within the children.\n * @prop {CSSProperties} [highlightStyle] - Inline style to apply to the highlighted text.\n * @prop {string} [highlightClasses] - Additional class names to apply to the highlighted text.\n *\n * @returns {JSX.Element} The rendered Highlight component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/highlight\n */\nexport const Highlight: FC<ILibHighlight> = ({\n\tclassName,\n\telement = Text,\n\tref,\n\tchildren,\n\thighlightedText,\n\thighlightClasses,\n\thighlightStyle,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element ref={ref} className={clsx(\"highlight\", className)} {...rest}>\n\t\t\t{getHighlightedText(\n\t\t\t\tchildren,\n\t\t\t\thighlightedText,\n\t\t\t\thighlightStyle,\n\t\t\t\thighlightClasses,\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { Fragment, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibLinkify } from \"./types\"\n\nconst URL_REGEX =\n\t/^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/gm\n\n/**\n * Linkify component that automatically detects URLs in the provided text and wraps them in anchor tags.\n *\n * @component\n *\n * @example\n * <Linkify>\n * Visit https://github.com for more information.\n * </Linkify>\n *\n * @extends ILibText\n *\n * @prop {string} [props.className] - Additional class names to apply to the container element.\n * @prop {ElementType} [props.element=Text] - The HTML element or React component to render as the container. Default is `Text`.\n * @prop {RefObject<HTMLHeadingElement | HTMLParagraphElement | HTMLQuoteElement | HTMLDListElement | HTMLOListElement | HTMLUListElement>} [props.ref] - Ref for the container element.\n * @prop {string} props.children - The text content to parse and linkify.\n * @prop {boolean} [props.blank] - If true, links open in a new tab (`_blank`). Default is `false`.\n * @prop {string} [props.linkClasses] - Additional class names to apply to the generated anchor tags.\n * @prop {object} [props.rest] - Additional props spread to the container element.\n *\n * @returns {ReactElement} The rendered Linkify component with URLs converted to clickable links.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/linkify\n */\nexport const Linkify: FC<ILibLinkify> = ({\n\tclassName,\n\telement = Text,\n\tref,\n\tchildren,\n\tblank,\n\tlinkClasses,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst words: Array<string> = children ? children.split(\" \") : []\n\n\treturn (\n\t\t<Element ref={ref} className={clsx(\"linkify\",className)} {...rest}>\n\t\t\t{words?.map((word: string) =>\n\t\t\t\tword.match(URL_REGEX) ? (\n\t\t\t\t\t<Fragment key={uuid()}>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={word}\n\t\t\t\t\t\t\ttarget={blank ? \"_blank\" : undefined}\n\t\t\t\t\t\t\trel={blank ? \"noreferrer noopener\" : undefined}\n\t\t\t\t\t\t\tclassName={clsx(linkClasses, \"linkify-link\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{word}\n\t\t\t\t\t\t</a>{\" \"}\n\t\t\t\t\t</Fragment>\n\t\t\t\t) : (\n\t\t\t\t\tword + \" \"\n\t\t\t\t),\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors, genMaxWidth } from \"../../utils\"\nimport type { ILibHr } from \"./types\"\n\n/**\n * Hr component for rendering a horizontal rule with custom color, width, and border radius.\n *\n * @component\n *\n * @example\n * <Hr maxWidth=\"lg\" color=\"gray-200\" isRounded />\n *\n * @extends HTMLHrElement\n *\n * @prop {\"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"6xl\" | \"7xl\" | \"none\" | \"px\" | \"full\" | \"dvw\" | \"dvh\" | \"lvw\" | \"lvh\" | \"svw\" | \"svh\" | \"screen\" | \"min\" | \"max\" | \"fit\"} [maxWidth=\"full\"] - Maximum width of the hr.\n * @prop {string} [color=\"gray-200\"] - Background color of the hr.\n * @prop {boolean} [isRounded] - If true, the hr will have fully rounded borders.\n *\n * @returns {JSX.Element} The rendered Hr component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/hr\n */\nexport const Hr: FC<ILibHr> = ({\n\tclassName,\n\telement = \"hr\",\n\tref,\n\tmaxWidth = \"full\",\n\tcolor = \"gray-200\",\n\tisRounded,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"border-none h-[1px]\",\n\t\t\t\tisRounded ? \"rounded-full\" : \"rounded-none\",\n\t\t\t\tgenBgAllColors[color],\n\t\t\t\tgenMaxWidth[maxWidth],\n\t\t\t\t\"hr\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors, genBorderRadius } from \"../../utils\"\nimport type { ILibSkeleton } from \"./types\"\nimport type { LibSkeletonAnimation } from \"../../types\"\n\n/**\n * Skeleton component for displaying a loading placeholder.\n *\n * @component\n * @extends HTMLDivElement\n *\n * @example\n * <Skeleton backgroundColor=\"gray-100\" borderRadius=\"lg\" animation=\"pulse\" />\n *\n * @prop {LibAllColors} [backgroundColor] - Background color of the skeleton.\n * @prop {LibRadiuses} [borderRadius] - Border radius of the skeleton.\n * @prop {LibSkeletonAnimation} [animation] - Animation style for the skeleton. Possible values: \"pulse\", \"shine\".\n *\n * @returns {JSX.Element} The rendered Skeleton component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/skeleton\n */\nexport const Skeleton: FC<ILibSkeleton> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tanimation = \"none\",\n\tbackgroundColor = \"gray-200\",\n\tborderRadius = \"lg\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"w-[100px] h-[100px]\",\n\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\tgenAnimation[animation],\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\"skeleton\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n\nconst genAnimation: Record<LibSkeletonAnimation, string | Array<string>> = {\n\tnone: \"animate-none\",\n\tpulse: \"animate-pulse\",\n\tshine: [\n\t\t\"relative overflow-hidden\",\n\t\t\"before:absolute before:-top-[200px] before:-bottom-[200px] before:bg-white before:opacity-70 before:blur-[20px] before:w-[100px] before:-skew-15 before:animate-[shine_2000ms_ease-in-out_infinite]\",\n\t],\n}\n","import { Flexbox } from \"../Flexbox\"\nimport { clsx, genBgAllColors, genBorderRadius } from \"../../utils\"\nimport type { ILibSkeletonCard } from \"./types\"\n\n/**\n * SkeletonCard component for displaying a loading placeholder in the shape of a card.\n *\n * @component\n * @extends HTMLDivElement\n *\n * @example\n * <SkeletonCard isShiny backgroundColor=\"gray-100\" borderRadius=\"lg\" gap=\"md\" />\n *\n * @prop {boolean} [inline] - Use inline-flex instead of flex for the skeleton card.\n * @prop {CssFlexDirection} [flexDirection] - Flex direction for the skeleton card content.\n * @prop {CssFlexWrap} [flexWrap] - Flex wrap for the skeleton card content.\n * @prop {CssJustifyContent} [justifyContent] - Justify content property for the skeleton card content.\n * @prop {CssAlignItems} [alignItems] - Align items property for the skeleton card content.\n * @prop {CssJustifyItems} [justifyItems] - Justify items property for the skeleton card content.\n * @prop {CssAlignContent} [alignContent] - Align content property for the skeleton card content.\n * @prop {LibSpacers} [gap] - Gap between skeleton card children.\n * @prop {LibSpacers} [colGap] - Column gap between skeleton card children.\n * @prop {LibSpacers} [rowGap] - Row gap between skeleton card children.\n * @prop {LibAllColors} [backgroundColor] - Background color of the skeleton card.\n * @prop {LibRadiuses} [borderRadius] - Border radius of the skeleton card.\n * @prop {boolean} [isShiny] - If true, applies a shiny animation to the skeleton card.\n *\n * @returns {JSX.Element} The rendered SkeletonCard component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/skeletoncard\n */\nexport const SkeletonCard: FC<ILibSkeletonCard> = ({\n\telement = \"div\",\n\tclassName,\n\tchildren,\n\tisShiny,\n\tbackgroundColor = \"background\",\n\tborderRadius = \"lg\",\n\t...rest\n}) => {\n\treturn (\n\t\t<Flexbox\n\t\t\telement={element}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative overflow-hidden\",\n\t\t\t\tisShiny && [\n\t\t\t\t\t\"relative overflow-hidden\",\n\t\t\t\t\t\"before:absolute before:-top-[200px] before:-bottom-[200px] before:bg-white before:opacity-70 before:blur-[20px] before:w-[100px] before:-skew-15 before:animate-[shine_2000ms_ease-in-out_infinite]\",\n\t\t\t\t],\n\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\"skeleton-card\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Flexbox>\n\t)\n}\n","import { useCallback, useRef, useState, type FC, type RefObject } from \"react\"\nimport { clsx, genBgAllColorsAndOverlays, genTextAllColor } from \"../../utils\"\nimport type { ILibTooltip } from \"./types\"\nimport { useClickOutside, useTouchScreen } from \"../../hooks\"\nimport type {\n\tLibSpacers,\n\tLibTooltipPosition,\n\tLibTooltipTrigger,\n} from \"../../types\"\n\n/**\n * Tooltip component for displaying contextual information on hover or click interactions.\n *\n * @component\n *\n * @example\n * <Tooltip\n * tooltip=\"This is a helpful tooltip\"\n * position=\"top\"\n * trigger=\"hover\"\n * backgroundColor=\"black-80\"\n * textColor=\"white\"\n * >\n * <button>Hover me</button>\n * </Tooltip>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tooltip container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the tooltip container element.\n * @prop {React.ReactNode} [props.children] - The element that triggers the tooltip on interaction.\n * @prop {string} [props.tooltip] - The tooltip text content to display.\n * @prop {\"top\" | \"bottom\" | \"left\" | \"right\"} [props.position=\"top\"] - Position of the tooltip relative to the trigger element.\n * @prop {boolean} [props.hideArrow] - Whether to hide the tooltip arrow pointer.\n * @prop {\"hover\" | \"click\"} [props.trigger=\"hover\"] - Event that triggers the tooltip display.\n * @prop {LibAllColorsAndOverlays} [props.backgroundColor=\"black-80\"] - Background color for the tooltip.\n * @prop {LibAllColors} [props.textColor=\"white\"] - Text color for the tooltip content.\n * @prop {LibSpacers} [props.offset=\"xs\"] - Distance offset between tooltip and trigger element.\n * @prop {string} [props.tooltipClasses] - Additional CSS classes for the tooltip element.\n * @prop {React.CSSProperties} [props.tooltipStyle] - Additional inline styles for the tooltip element.\n * @prop {function} [props.onClick] - Click event handler for the trigger element.\n * @prop {function} [props.onMouseEnter] - Mouse enter event handler for the trigger element.\n * @prop {function} [props.onMouseLeave] - Mouse leave event handler for the trigger element.\n *\n * @returns {JSX.Element} The rendered Tooltip component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tooltip\n */\nexport const Tooltip: FC<ILibTooltip> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\ttooltip,\n\tposition = \"top\",\n\thideArrow,\n\ttrigger = \"hover\",\n\tbackgroundColor = \"black-80\",\n\ttextColor = \"white\",\n\toffset = \"xs\",\n\ttooltipClasses,\n\ttooltipStyle,\n\tonClick,\n\tonMouseEnter,\n\tonMouseLeave,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst isTouchScreen = useTouchScreen()\n\tconst defaultTrigger: LibTooltipTrigger =\n\t\ttrigger === \"click\" || isTouchScreen ? \"click\" : \"hover\"\n\n\tconst [isVisible, setIsVisible] = useState(false)\n\n\tconst el = useRef<HTMLDivElement>(null)\n\tuseClickOutside(el as RefObject<HTMLElement>, () => {\n\t\tif (isVisible && defaultTrigger === \"click\") setIsVisible(false)\n\t})\n\n\tconst handleClick = useCallback(() => {\n\t\tsetIsVisible(!isVisible)\n\t}, [isVisible])\n\n\tconst handleHover = useCallback(() => {\n\t\tsetIsVisible(true)\n\t}, [])\n\n\tconst handleLeave = useCallback(() => {\n\t\tsetIsVisible(false)\n\t}, [])\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-block relative w-fit\",\n\t\t\t\tisVisible && \"visible\",\n\t\t\t\t\"[&.visible]:z-20\",\n\t\t\t\t\"tooltip-wrapper\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={\n\t\t\t\tonClick\n\t\t\t\t\t? onClick\n\t\t\t\t\t: defaultTrigger === \"click\"\n\t\t\t\t\t\t? handleClick\n\t\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMouseEnter={\n\t\t\t\tonMouseEnter\n\t\t\t\t\t? onMouseEnter\n\t\t\t\t\t: defaultTrigger === \"hover\"\n\t\t\t\t\t\t? handleHover\n\t\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMouseLeave={\n\t\t\t\tonMouseLeave\n\t\t\t\t\t? onMouseLeave\n\t\t\t\t\t: defaultTrigger === \"hover\"\n\t\t\t\t\t\t? handleLeave\n\t\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"absolute px-2 py-1 rounded-md max-w-[unset] text-sm whitespace-nowrap transition-all duration-200 ease-in-out\",\n\t\t\t\t\tgenBgAllColorsAndOverlays[backgroundColor],\n\t\t\t\t\tgenTextAllColor[textColor],\n\t\t\t\t\tisVisible ? \"opacity-100 visible\" : \"opacity-0 invisible\",\n\t\t\t\t\t!hideArrow && \"with-arrow\",\n\t\t\t\t\tgenPosition[offset][position],\n\t\t\t\t\ttooltipClasses,\n\t\t\t\t\t\"tooltip\",\n\t\t\t\t)}\n\t\t\t\tstyle={tooltipStyle}\n\t\t\t>\n\t\t\t\t{tooltip}\n\t\t\t</span>\n\t\t</Element>\n\t)\n}\n\nconst genPosition: Record<LibSpacers, Record<LibTooltipPosition, string>> = {\n\t\"0px\": {\n\t\tleft: \"top-0 -left-[86%] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[-70%] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[80%] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-0px))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\t\"2xs\": {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-2xs))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-2xs)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-2xs))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-2xs)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\txs: {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-xs))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-xs)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-xs))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-xs)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\tsm: {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-sm))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-sm)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-sm))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-sm)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\tmd: {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-md))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-md)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-md))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-md)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\tlg: {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-lg))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-lg)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-lg))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-lg)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\txl: {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-xl))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-xl)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-xl))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-xl)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n\t\"2xl\": {\n\t\tleft: \"top-0 -left-[calc(86%+var(--spacer-2xl))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:left-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-l-(--color-overlay-black-80)\",\n\t\ttop: \"left-[50%] -translate-x-[50%] top-[calc(-100%-var(--spacer-2xl)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-t-(--color-overlay-black-80)\",\n\t\tright: \"top-0 -right-[calc(80%+var(--spacer-2xl))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:top-[50%] [&.with-arrow]:after:right-[100%] [&.with-arrow]:after:translate-y-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-r-(--color-overlay-black-80)\",\n\t\tbottom: \"left-[50%] -translate-x-[50%] bottom-[calc(-100%-var(--spacer-2xl)))] [&.with-arrow]:after:absolute [&.with-arrow]:after:border-4 [&.with-arrow]:after:bottom-[100%] [&.with-arrow]:after:left-[50%] [&.with-arrow]:after:translate-x-[-50%] [&.with-arrow]:after:border-transparent [&.with-arrow]:after:border-b-(--color-overlay-black-80)\",\n\t},\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBorderRadius,\n\tgenBgAllColorsAndOverlays,\n\tgenTextAllColor,\n\tgenObjectFit,\n} from \"../../utils\"\nimport type { ILibImage } from \"./types\"\n\n/**\n * Image component for displaying images with optional styling, captions, and accessibility features.\n *\n * @component\n *\n * @example\n * <Image src=\"https://example.com/image.jpg\" alt=\"Example image\" borderRadius=\"lg\" fit=\"cover\" caption=\"Example caption\" />\n *\n * @extends HTMLImageElement\n *\n * @prop {string} [className] - Additional class names to apply to the image or figure element.\n * @prop {React.RefObject<HTMLImageElement | HTMLFigureElement>} [ref] - Ref for the image or figure element.\n * @prop {string | { text: string, backgroundColor?: LibAllColorsAndOverlays, textColor?: LibAllColors, imgClasses?: string, captionClasses?: string }} [caption] - Caption for the image. Can be a string or an object with text and optional styling.\n * @prop {LibRadiuses} [borderRadius] - Border radius for the image or figure.\n * @prop {\"contain\" | \"cover\" | \"fill\" | \"none\" | \"scale-down\"} [fit] - How the image should fit within its container.\n *\n * @returns {JSX.Element} The rendered Image component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/layouts/image\n */\nexport const Image: FC<ILibImage> = ({\n\tclassName,\n\tref,\n\tcaption,\n\tborderRadius,\n\tfit,\n\t...rest\n}) => {\n\tconst Element = caption ? \"figure\" : \"img\"\n\n\tif (caption) {\n\t\treturn (\n\t\t\t<Element\n\t\t\t\tref={ref}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"relative overflow-hidden image-container\",\n\t\t\t\t\tborderRadius && genBorderRadius[borderRadius],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"z-0 relative\",\n\t\t\t\t\t\tfit && genObjectFit[fit],\n\t\t\t\t\t\ttypeof caption === \"object\" && caption.imgClasses,\n\t\t\t\t\t\t\"image\",\n\t\t\t\t\t)}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\n\t\t\t\t<figcaption\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"bottom-0 left-0 z-10 absolute bg-overlay-black-80 px-2 px-4 w-full text-white\",\n\t\t\t\t\t\ttypeof caption === \"object\" &&\n\t\t\t\t\t\t\tcaption.backgroundColor &&\n\t\t\t\t\t\t\tgenBgAllColorsAndOverlays[caption.backgroundColor],\n\t\t\t\t\t\ttypeof caption === \"object\" &&\n\t\t\t\t\t\t\tcaption.textColor &&\n\t\t\t\t\t\t\tgenTextAllColor[caption.textColor],\n\t\t\t\t\t\ttypeof caption === \"object\" && caption.captionClasses,\n\t\t\t\t\t\t\"figcaption\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{typeof caption === \"object\" ? caption.text : caption}\n\t\t\t\t</figcaption>\n\t\t\t</Element>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\tborderRadius && genBorderRadius[borderRadius],\n\t\t\t\tfit && genObjectFit[fit],\n\t\t\t\tclassName,\n\t\t\t\t\"image\",\n\t\t\t)}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n","import { type FC, useCallback, useEffect, useRef, useState } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx, genGap } from \"../../utils\"\nimport { useMergeRefs } from \"../../hooks\"\nimport { fillCols, useEventListener } from \"./utils\"\nimport type { ILibMasonry } from \"./types\"\n\n/**\n * Masonry component for displaying content in a responsive masonry grid layout.\n *\n * @component\n *\n * @example\n * <Masonry col={3} gap=\"md\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Masonry>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional class names to apply.\n * @prop {ElementType} [props.element=\"div\"] - The HTML element or React component to render as the container.\n * @prop {React.RefObject<HTMLDivElement>} [props.ref] - Ref for the container element.\n * @prop {React.ReactNode[]} [props.children=[]] - The content to display in the masonry grid.\n * @prop {number} [props.col=4] - Number of columns in the masonry grid.\n * @prop {\"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"} [props.gap=\"lg\"] - Gap between grid items.\n *\n * @returns {JSX.Element} The rendered Masonry component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/masonry\n */\nexport const Masonry: FC<ILibMasonry> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren = [],\n\tcol = 4,\n\tgap = \"lg\",\n\t...rest\n}) => {\n\tconst el = useRef<HTMLDivElement>(null as any)\n\n\tconst [numCols, setNumCols] = useState(col)\n\tconst cols = [...Array(col)].map(() => [])\n\tfillCols(children, cols)\n\n\tconst resizeHandler = useCallback(\n\t\t() =>\n\t\t\tsetNumCols(\n\t\t\t\tMath.ceil(window.innerWidth / (window.innerWidth / numCols)),\n\t\t\t),\n\t\t[numCols],\n\t)\n\n\tuseEffect(resizeHandler, [numCols, resizeHandler])\n\n\tuseEventListener(\"resize\", resizeHandler)\n\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={useMergeRefs([el, ref])}\n\t\t\tclassName={clsx(\n\t\t\t\t\"grid grid-flow-col\",\n\t\t\t\tgenGap[gap],\n\t\t\t\t\"masonry\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{[...Array(numCols)].map((_, i) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName={clsx(\"grid h-fit\", genGap[gap], \"masonry-item\")}\n\t\t\t\t\tkey={uuid()}\n\t\t\t\t>\n\t\t\t\t\t{cols[i]}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</Element>\n\t)\n}\n","import { useEffect, useRef, type ReactNode } from \"react\"\n\nexport function useEventListener(\n\teventNames: keyof GlobalEventHandlersEventMap,\n\thandler: () => void,\n\telement = globalThis,\n) {\n\tconst savedHandler = useRef<() => void>(null)\n\tuseEffect(() => (savedHandler.current = handler), [handler])\n\n\tuseEffect(() => {\n\t\tif (!element.addEventListener) return\n\n\t\tconst listener = (e: EventListenerOrEventListenerObject) =>\n\t\t\t(savedHandler as any).current(e!)\n\n\t\tfor (const e of eventNames as any) element.addEventListener(e, listener)\n\n\t\treturn () => {\n\t\t\tfor (const e of eventNames as any)\n\t\t\t\telement.removeEventListener(e, listener)\n\t\t}\n\t}, [element, eventNames])\n}\n\nexport function fillCols(children: Array<ReactNode>, cols: Array<any>) {\n\tchildren.forEach((child, i) => cols[i % cols.length].push(child))\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBgAllColors,\n\tgenTextAllColor,\n\tgenBorderRadius,\n} from \"../../utils\"\nimport type { ILibBadge } from \"./types\"\n\n/**\n * Badge component for displaying a colored label or status.\n *\n * @component\n *\n * @example\n * <Badge backgroundColor=\"primary\" contentColor=\"white\" borderRadius=\"full\">New</Badge>\n *\n * @extends HTMLSpanElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the badge.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"span\"] - The HTML element to render as the badge.\n * @prop {React.Ref<HTMLSpanElement>} [props.ref] - Ref to the badge element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the badge.\n * @prop {LibAllColors} [props.color=\"primary\"] - Background color of the badge.\n * @prop {LibAllColors} [props.contentColor=\"white\"] - Text color of the badge.\n * @prop {LibRadius} [props.borderRadius=\"full\"] - Border radius of the badge.\n * @prop {any} [props.rest] - Additional props spread to the badge element.\n *\n * @returns {JSX.Element} The rendered Badge component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/badge\n */\nexport const Badge: FC<ILibBadge> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tchildren,\n\tcolor = \"primary\",\n\tcontentColor = \"white\",\n\tborderRadius = \"full\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex justify-center items-center w-fit min-w-6 h-6\",\n\t\t\t\tgenBgAllColors[color],\n\t\t\t\tgenTextAllColor[contentColor],\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\"badge\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBorderRadius,\n\tgenBorderAllColors,\n\tgenBgAllColors,\n\tgenTextAllColor,\n} from \"../../utils\"\nimport type { ILibAvatar } from \"./types\"\n\nexport const AvatarFn: FC<\n\tOmit<ILibAvatar, \"badge\" | \"containerStyle\" | \"containerClassName\">\n> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tchildren,\n\tborderRadius = \"full\",\n\tbackgroundColor = \"primary\",\n\tborderColor = \"transparent\",\n\tcontentColor = \"white\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex justify-center items-center rounded-full size-12 overflow-hidden font-bold text-xl\",\n\t\t\t\tborderColor !== \"transparent\" && \"border\",\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\tgenBorderAllColors[borderColor],\n\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\tgenTextAllColor[contentColor],\n\t\t\t\t\"avatar\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Badge } from \"../Badge\"\nimport { clsx } from \"../../utils\"\nimport { AvatarFn } from \"./AvatarFn\"\nimport type { ILibAvatar } from \"./types\"\n\n/**\n * Avatar component for displaying a user image, initials, or icon, with optional badge and custom styles.\n *\n * @component\n *\n * @example\n * <Avatar backgroundColor=\"primary\" contentColor=\"white\" borderRadius=\"full\" badge=\"New\">JS</Avatar>\n *\n * @extends HTMLSpanElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the avatar.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"span\"] - The HTML element to render as the avatar.\n * @prop {React.Ref<HTMLSpanElement>} [props.ref] - Ref to the avatar element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the avatar (image, initials, or icon).\n * @prop {string | { content?: React.ReactNode; backgroundColor?: string; contentColor?: string; className?: string }} [props.badge] - Badge to display on the avatar, can be a string or an object with content and colors.\n * @prop {React.CSSProperties} [props.containerStyle] - Inline styles for the avatar container.\n * @prop {string} [props.containerClassName] - Additional CSS classes for the avatar container.\n * @prop {string} [props.borderRadius] - Border radius of the avatar.\n * @prop {string} [props.borderColor] - Border color of the avatar.\n * @prop {string} [props.backgroundColor] - Background color of the avatar.\n * @prop {string} [props.contentColor] - Text color of the avatar.\n * @prop {any} [props.rest] - Additional props spread to the avatar element.\n *\n * @returns {JSX.Element} The rendered Avatar component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/avatar\n */\nexport const Avatar: FC<ILibAvatar> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tchildren,\n\tbadge,\n\tcontainerStyle,\n\tcontainerClassName,\n\tborderRadius,\n\tborderColor,\n\tbackgroundColor,\n\tcontentColor,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst avatarProps = {\n\t\tclassName,\n\t\tref,\n\t\tchildren,\n\t\tborderRadius,\n\t\tborderColor,\n\t\tbackgroundColor,\n\t\tcontentColor,\n\t\t...rest,\n\t}\n\n\tif (badge) {\n\t\treturn (\n\t\t\t<Element\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"relative w-fit h-fit\",\n\t\t\t\t\t\"avatar-container\",\n\t\t\t\t\tcontainerClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={containerStyle}\n\t\t\t>\n\t\t\t\t<Badge\n\t\t\t\t\tcontentColor={\n\t\t\t\t\t\ttypeof badge === \"object\" ? badge.contentColor : \"white\"\n\t\t\t\t\t}\n\t\t\t\t\tcolor={typeof badge === \"object\" ? badge.color : \"primary\"}\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"top-0 right-0 absolute -translate-y-2 translate-x-2\",\n\t\t\t\t\t\ttypeof badge === \"object\"\n\t\t\t\t\t\t\t? badge.className\n\t\t\t\t\t\t\t: (undefined as any),\n\t\t\t\t\t\t\"avatar-badge\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{typeof badge === \"object\" ? badge.content : badge}\n\t\t\t\t</Badge>\n\n\t\t\t\t<AvatarFn {...avatarProps} />\n\t\t\t</Element>\n\t\t)\n\t}\n\n\treturn <AvatarFn {...avatarProps} />\n}\n","import type { LibColors, LibColorsShort } from \"../../../types\"\n\nconst genBorderBottomColorAll: Record<LibColors, string> = {\n\tblack: \"border-b-black\",\n\twhite: \"border-b-white\",\n\t\"primary-50\": \"border-b-primary-50\",\n\t\"primary-100\": \"border-b-primary-100\",\n\t\"primary-200\": \"border-b-primary-200\",\n\t\"primary-300\": \"border-b-primary-300\",\n\t\"primary-400\": \"border-b-primary-400\",\n\t\"primary-500\": \"border-b-primary-500\",\n\t\"primary-600\": \"border-b-primary-600\",\n\t\"primary-700\": \"border-b-primary-700\",\n\t\"primary-800\": \"border-b-primary-800\",\n\t\"primary-900\": \"border-b-primary-900\",\n\t\"primary-950\": \"border-b-primary-950\",\n\t\"secondary-50\": \"border-b-secondary-50\",\n\t\"secondary-100\": \"border-b-secondary-100\",\n\t\"secondary-200\": \"border-b-secondary-200\",\n\t\"secondary-300\": \"border-b-secondary-300\",\n\t\"secondary-400\": \"border-b-secondary-400\",\n\t\"secondary-500\": \"border-b-secondary-500\",\n\t\"secondary-600\": \"border-b-secondary-600\",\n\t\"secondary-700\": \"border-b-secondary-700\",\n\t\"secondary-800\": \"border-b-secondary-800\",\n\t\"secondary-900\": \"border-b-secondary-900\",\n\t\"secondary-950\": \"border-b-secondary-950\",\n\t\"success-50\": \"border-b-success-50\",\n\t\"success-100\": \"border-b-success-100\",\n\t\"success-200\": \"border-b-success-200\",\n\t\"success-300\": \"border-b-success-300\",\n\t\"success-400\": \"border-b-success-400\",\n\t\"success-500\": \"border-b-success-500\",\n\t\"success-600\": \"border-b-success-600\",\n\t\"success-700\": \"border-b-success-700\",\n\t\"success-800\": \"border-b-success-800\",\n\t\"success-900\": \"border-b-success-900\",\n\t\"success-950\": \"border-b-success-950\",\n\t\"danger-50\": \"border-b-danger-50\",\n\t\"danger-100\": \"border-b-danger-100\",\n\t\"danger-200\": \"border-b-danger-200\",\n\t\"danger-300\": \"border-b-danger-300\",\n\t\"danger-400\": \"border-b-danger-400\",\n\t\"danger-500\": \"border-b-danger-500\",\n\t\"danger-600\": \"border-b-danger-600\",\n\t\"danger-700\": \"border-b-danger-700\",\n\t\"danger-800\": \"border-b-danger-800\",\n\t\"danger-900\": \"border-b-danger-900\",\n\t\"danger-950\": \"border-b-danger-950\",\n\t\"warning-50\": \"border-b-warning-50\",\n\t\"warning-100\": \"border-b-warning-100\",\n\t\"warning-200\": \"border-b-warning-200\",\n\t\"warning-300\": \"border-b-warning-300\",\n\t\"warning-400\": \"border-b-warning-400\",\n\t\"warning-500\": \"border-b-warning-500\",\n\t\"warning-600\": \"border-b-warning-600\",\n\t\"warning-700\": \"border-b-warning-700\",\n\t\"warning-800\": \"border-b-warning-800\",\n\t\"warning-900\": \"border-b-warning-900\",\n\t\"warning-950\": \"border-b-warning-950\",\n\t\"gray-50\": \"border-b-gray-50\",\n\t\"gray-100\": \"border-b-gray-100\",\n\t\"gray-200\": \"border-b-gray-200\",\n\t\"gray-300\": \"border-b-gray-300\",\n\t\"gray-400\": \"border-b-gray-400\",\n\t\"gray-500\": \"border-b-gray-500\",\n\t\"gray-600\": \"border-b-gray-600\",\n\t\"gray-700\": \"border-b-gray-700\",\n\t\"gray-800\": \"border-b-gray-800\",\n\t\"gray-900\": \"border-b-gray-900\",\n\t\"gray-950\": \"border-b-gray-950\",\n\tcurrent: \"border-b-current\",\n\ttransparent: \"border-b-transparent\",\n\tbackground: \"border-b-background\",\n\tfont: \"border-b-font\",\n}\n\nconst genBorderBottomColorShort: Record<LibColorsShort, string> = {\n\tprimary: \"border-b-primary-500\",\n\tsecondary: \"border-b-secondary-500\",\n\tsuccess: \"border-b-success-500\",\n\tdanger: \"border-b-danger-500\",\n\twarning: \"border-b-warning-500\",\n\tgray: \"border-b-gray-500\",\n\tblack: \"border-b-black\",\n\twhite: \"border-b-white\",\n\tcurrent: \"border-b-current\",\n\ttransparent: \"border-b-transparent\",\n\tbackground: \"border-b-background\",\n}\n\nexport const genBorderBottomColor = {\n\t...genBorderBottomColorAll,\n\t...genBorderBottomColorShort,\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport { genBorderBottomColor } from \"../utils/gen-border-bottom\"\nimport type { ILibLoader } from \"../types\"\n\nexport const LoaderOne: FC<Omit<ILibLoader, \"variant\">> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tcolor = \"primary\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-block relative border-8 border-transparent rounded-full size-12 animate-[spin_1200ms_linear_infinite]\",\n\t\t\t\tgenBorderBottomColor[color],\n\t\t\t\t\"loader loader-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport { genBorderBottomColor } from \"../utils/gen-border-bottom\"\nimport type { ILibLoader } from \"../types\"\n\nconst SPAN_COMMON =\n\t\"block absolute w-full h-full border-8 border-transparent rounded-full animate-[spin_1200ms_var(--animate-cubic-bezier)_infinite_var(--spinner-delay)]\"\n\nexport const LoaderTwo: FC<Omit<ILibLoader, \"variant\">> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tcolor = \"primary\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-block relative rounded-full size-12 animate-[spin_1200ms_linear_infinite]\",\n\t\t\t\t\"loader loader-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\tgenBorderBottomColor[color],\n\t\t\t\t\t\"[--spinner-delay:-450ms]\",\n\t\t\t\t\t\"loader-2-border\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\tgenBorderBottomColor[color],\n\t\t\t\t\t\"[--spinner-delay:-300ms]\",\n\t\t\t\t\t\"loader-2-border\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\tgenBorderBottomColor[color],\n\t\t\t\t\t\"loader-2-border\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\tgenBorderBottomColor[color],\n\t\t\t\t\t\"[--spinner-delay:-150ms]\",\n\t\t\t\t\t\"loader-2-border\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors } from \"../../../utils\"\nimport type { ILibLoader } from \"../types\"\n\nexport const LoaderThree: FC<Omit<ILibLoader, \"variant\">> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tcolor = \"primary\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex items-center gap-2 w-fit h-4\",\n\t\t\t\t\"loader loader-3\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"block rounded-full size-4 animate-[loader-pulse_1200ms_linear_infinite_100ms] dot [--dot-delay:100ms]\",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\t\"loader-3-dot\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"block rounded-full size-4 animate-[loader-pulse_1200ms_linear_infinite_300ms] dot [--dot-delay:300ms]\",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\t\"loader-3-dot\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"block rounded-full size-4 animate-[loader-pulse_1200ms_linear_infinite_500ms] dot [--dot-delay:500ms]\",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\t\"loader-3-dot\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { LoaderOne } from \"./templates/LoaderOne\"\nimport { LoaderTwo } from \"./templates/LoaderTwo\"\nimport { LoaderThree } from \"./templates/LoaderThree\"\nimport type { ILibLoader } from \"./types\"\n\n/**\n * Loader component for displaying a loading indicator with multiple style variants and color options.\n *\n * @component\n *\n * @example\n * <Loader variant={2} color=\"primary\" />\n *\n * @extends HTMLSpanElement\n *\n * @prop {1 | 2 | 3} [props.variant=1] Possible values: 1, 2, 3. - Loader variant style.\n * @prop {string} [props.color=\"primary\"] Any color from the library. - Loader color.\n * @prop {string} [props.className] - Additional CSS classes to apply to the loader.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"span\"] - The HTML element to render as the loader.\n * @prop {React.Ref<HTMLSpanElement>} [props.ref] - Ref to the loader element.\n * @prop {any} [props.rest] - Additional props spread to the loader element.\n *\n * @returns {JSX.Element} The rendered Loader component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/loader\n */\nexport const Loader: FC<ILibLoader> = ({ variant, ...rest }) => {\n\tswitch (variant) {\n\t\tcase 2:\n\t\t\treturn <LoaderTwo {...rest} />\n\t\tcase 3:\n\t\t\treturn <LoaderThree {...rest} />\n\t\tcase 1:\n\t\tdefault:\n\t\t\treturn <LoaderOne {...rest} />\n\t}\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgAllColors, genRingColor } from \"../../utils\"\nimport type { ILibBurger } from \"./types\"\nimport type { LibColorsHover } from \"../../types\"\n\nconst SPAN_COMMON =\n\t\"left-0 absolute w-full h-0.5 transition-all duration-200 ease-in-out\"\n\n/**\n * Burger component for displaying a hamburger menu icon with open/closed states and hover effects.\n *\n * @component\n *\n * @example\n * <Burger\n * isOpen={isMenuOpen}\n * color=\"primary\"\n * onClick={toggleMenu}\n * />\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the burger.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"button\"] - The HTML element to render as the burger.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the burger element.\n * @prop {string} [props.role=\"button\"] - ARIA role for accessibility.\n * @prop {string} [props.aria-label=\"Burger\"] - ARIA label for accessibility.\n * @prop {boolean} [props.isOpen] - Whether the burger menu is open or closed.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Color of the burger lines.\n * @prop {string} [props.type=\"button\"] - Button type attribute.\n * @prop {boolean} [props.noHover] - Whether to disable hover effects.\n * @prop {any} [props.rest] - Additional props spread to the burger element.\n *\n * @returns {JSX.Element} The rendered Burger component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/burger\n */\nexport const Burger: FC<ILibBurger> = ({\n\tclassName,\n\telement = \"button\",\n\tref,\n\trole = \"button\",\n\t\"aria-label\": ariaLabel = \"Burger\",\n\tisOpen,\n\tcolor = \"primary\",\n\ttype = \"button\",\n\tnoHover,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative w-8 h-6\",\n\t\t\t\t!noHover && genHover[color],\n\t\t\t\t!noHover && genRingColor[color],\n\t\t\t\t\"burger\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\trole={role}\n\t\t\taria-label={ariaLabel}\n\t\t\ttype={type}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\t\"top-0\",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\"[&.open]:rotate-45 [&.open]:top-[45%]\",\n\t\t\t\t\t\"burger-span\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\t\"top-[50%] -translate-y-[50%]\",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\"[&.open]:w-0\",\n\t\t\t\t\t\"burger-span\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tSPAN_COMMON,\n\t\t\t\t\t\"bottom-0 \",\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\"[&.open]:-rotate-45 [&.open]:bottom-[45%]\",\n\t\t\t\t\t\"burger-span\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t</Element>\n\t)\n}\n\nconst genHover: Record<LibColorsHover, string> = {\n\tprimary: \"hover:[&>span]:bg-primary-300 active:[&>span]:bg-primary-600\",\n\tsecondary:\n\t\t\"hover:[&>span]:bg-secondary-300 active:[&>span]:bg-secondary-600\",\n\tsuccess: \"hover:[&>span]:bg-success-300 active:[&>span]:bg-success-600\",\n\tdanger: \"hover:[&>span]:bg-danger-300 active:[&>span]:bg-danger-600\",\n\twarning: \"hover:[&>span]:bg-warning-300 active:[&>span]:bg-warning-600\",\n\tgray: \"hover:[&>span]:bg-gray-300 active:[&>span]:bg-gray-600\",\n\twhite: \"hover:[&>span]:bg-gray-300 active:[&>span]:bg-gray-100\",\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBgColorHover,\n\tgenTextAllColor,\n\tgenBorderColorHover,\n\tgenTextColorHover,\n\tgenBgColorGhostHover,\n\tgenBorderRadius,\n\tgenButtonDisabled,\n\tgenRingColor,\n} from \"../../utils\"\nimport { Loader } from \"../Loader\"\nimport type { ILibButton } from \"./types\"\n\n/**\n * Button component for user interactions with multiple variants, colors, and loading states.\n *\n * @component\n *\n * @example\n * <Button variant=\"plain\" color=\"primary\" size=\"default\">Click me</Button>\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the button.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"button\"] - The HTML element to render as the button.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the button element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the button.\n * @prop {\"plain\" | \"ghost\" | \"outline\" | \"transparent\"} [props.variant=\"plain\"] - Button variant style.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Button color theme.\n * @prop {\"default\" | \"small\"} [props.size=\"default\"] - Button size.\n * @prop {boolean} [props.isLoading] - Whether the button is in a loading state.\n * @prop {1 | 2 | 3} [props.loaderVariant] - Loader variant to display when loading.\n * @prop {boolean} [props.disabled] - Whether the button is disabled.\n * @prop {any} [props.rest] - Additional props spread to the button element.\n *\n * @returns {JSX.Element} The rendered Button component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/button\n */\nexport const Button: FC<ILibButton> = ({\n\tclassName,\n\telement = \"button\",\n\tref,\n\tchildren,\n\tvariant = \"plain\",\n\tcolor = \"primary\",\n\tsize = \"default\",\n\tisLoading,\n\tloaderVariant = 1,\n\tdisabled,\n\tborderRadius = \"md\",\n\ttype = \"button\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex items-center self-start gap-2 px-4 py-2 outline-none font-bold text-base\",\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\tvariant === \"plain\" && [\n\t\t\t\t\tgenBgColorHover[color],\n\t\t\t\t\tcolor !== \"white\" && \"text-white\",\n\t\t\t\t\tcolor === \"white\" && \"text-primary\",\n\t\t\t\t],\n\t\t\t\tvariant === \"ghost\" && [\n\t\t\t\t\tgenTextAllColor[color],\n\t\t\t\t\tcolor === \"white\" && \"text-primary\",\n\t\t\t\t\tgenBgColorGhostHover[color],\n\t\t\t\t],\n\t\t\t\tvariant === \"outline\" && [\n\t\t\t\t\t\"border\",\n\t\t\t\t\tgenBorderColorHover[color],\n\t\t\t\t\tgenTextColorHover[color],\n\t\t\t\t],\n\t\t\t\tvariant === \"transparent\" && [genTextColorHover[color]],\n\t\t\t\tsize === \"small\" && \"text-sm px-2 py-1\",\n\t\t\t\tgenRingColor[color],\n\t\t\t\tgenButtonDisabled[variant],\n\t\t\t\t\"button\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttype={type}\n\t\t\tdisabled={disabled || isLoading}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{isLoading && (\n\t\t\t\t<Loader\n\t\t\t\t\tvariant={loaderVariant}\n\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\tloaderVariant === 1\n\t\t\t\t\t\t\t? \"border-3 size-4\"\n\t\t\t\t\t\t\t: loaderVariant === 2\n\t\t\t\t\t\t\t\t? \"size-4 [&_span]:border-3\"\n\t\t\t\t\t\t\t\t: loaderVariant === 3 && \"[&_span]:size-2\",\n\t\t\t\t\t\t\"button-loader\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBorderRadius,\n\tgenBgColorHover,\n\tgenBgColorGhostHover,\n\tgenTextAllColor,\n\tgenTextColorHover,\n\tgenButtonDisabled,\n\tgenRingColor,\n} from \"../../utils\"\nimport type { ILibButtonIcon } from \"./types\"\nimport { Loader } from \"../Loader\"\n\nexport const ButtonIconFn: FC<\n\tOmit<\n\t\tILibButtonIcon,\n\t\t\"tooltip\" | \"showTooltip\" | \"containerStyle\" | \"containerClasses\"\n\t>\n> = ({\n\tclassName,\n\telement = \"button\",\n\tref,\n\ticon,\n\tcolor = \"primary\",\n\tborderRadius = \"full\",\n\tvariant = \"plain\",\n\tisLoading,\n\tloaderVariant = 1,\n\tloaderClasses,\n\tdisabled,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex justify-center items-center outline-none size-12\",\n\t\t\t\tgenButtonDisabled[variant],\n\t\t\t\tgenRingColor[color],\n\t\t\t\tvariant === \"plain\" && [\n\t\t\t\t\tgenBgColorHover[color],\n\t\t\t\t\t\"text-white\",\n\t\t\t\t\tcolor === \"white\" && \"text-primary-500\",\n\t\t\t\t],\n\t\t\t\tvariant === \"ghost\" && [\n\t\t\t\t\tgenBgColorGhostHover[color],\n\t\t\t\t\tgenTextAllColor[color],\n\t\t\t\t\tcolor === \"white\" && \"text-primary-500\",\n\t\t\t\t],\n\t\t\t\tvariant === \"transparent\" && [genTextColorHover[color]],\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\"button-icon\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdisabled={disabled || isLoading}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{isLoading ? (\n\t\t\t\t<Loader\n\t\t\t\t\tvariant={loaderVariant}\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"border-5 size-8\",\n\t\t\t\t\t\t\"button-icon-loader\",\n\t\t\t\t\t\tloaderClasses,\n\t\t\t\t\t)}\n\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\ticon\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { Tooltip } from \"../Tooltip\"\nimport { ButtonIconFn } from \"./ButtonFn\"\nimport type { ILibButtonIcon } from \"./types\"\n\n/**\n * ButtonIcon component for displaying an icon button with optional tooltip and loading states.\n *\n * @component\n *\n * @example\n * <ButtonIcon\n * icon={<BiUser />}\n * color=\"primary\"\n * variant=\"plain\"\n * tooltip=\"User profile\"\n * showTooltip\n * />\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the button.\n * @prop {keyof JSX.IntrinsicElements} [props.element=\"button\"] - The HTML element to render as the button.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the button element.\n * @prop {React.ReactNode} [props.icon] - Icon element to display inside the button.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Button color theme.\n * @prop {string} [props.borderRadius=\"full\"] - Border radius of the button.\n * @prop {\"plain\" | \"ghost\" | \"outline\" | \"transparent\"} [props.variant=\"plain\"] - Button variant style.\n * @prop {boolean} [props.isLoading] - Whether the button is in a loading state.\n * @prop {1 | 2 | 3} [props.loaderVariant=1] - Loader variant to display when loading.\n * @prop {string} [props.loaderClasses] - Additional CSS classes for the loader.\n * @prop {string} [props.tooltip] - Tooltip text to display.\n * @prop {boolean | object} [props.showTooltip] - Whether to show tooltip or tooltip configuration object.\n * @prop {React.CSSProperties} [props.containerStyle] - Inline styles for the container.\n * @prop {string} [props.containerClasses] - Additional CSS classes for the container.\n * @prop {string} [props.aria-label] - ARIA label for accessibility, defaults to tooltip value.\n * @prop {string} [props.type=\"button\"] - Button type attribute.\n * @prop {any} [props.rest] - Additional props spread to the button element.\n *\n * @returns {JSX.Element} The rendered ButtonIcon component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/button-icon\n */\nexport const ButtonIcon: FC<ILibButtonIcon> = ({\n\tclassName,\n\telement = \"button\",\n\tref,\n\ticon,\n\tcolor = \"primary\",\n\tborderRadius = \"full\",\n\tvariant = \"plain\",\n\tisLoading,\n\tloaderVariant = 1,\n\tloaderClasses,\n\ttooltip,\n\tshowTooltip,\n\tcontainerStyle,\n\tcontainerClasses,\n\t\"aria-label\": ariaLabel = tooltip,\n\ttype = \"button\",\n\t...rest\n}) => {\n\tconst buttonProps = {\n\t\telement,\n\t\tclassName,\n\t\tref,\n\t\ticon,\n\t\tcolor,\n\t\tborderRadius,\n\t\tvariant,\n\t\tisLoading,\n\t\tloaderVariant,\n\t\t\"aria-label\": ariaLabel,\n\t\ttype,\n\t\t...rest,\n\t}\n\n\tif (tooltip && showTooltip) {\n\t\treturn (\n\t\t\t<Tooltip\n\t\t\t\ttooltip={tooltip}\n\t\t\t\tposition={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.position\n\t\t\t\t\t\t: \"top\"\n\t\t\t\t}\n\t\t\t\toffset={\n\t\t\t\t\ttypeof showTooltip === \"object\" ? showTooltip.offset : \"0px\"\n\t\t\t\t}\n\t\t\t\tbackgroundColor={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.backgroundColor\n\t\t\t\t\t\t: \"black-80\"\n\t\t\t\t}\n\t\t\t\ttextColor={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.textColor\n\t\t\t\t\t\t: \"white\"\n\t\t\t\t}\n\t\t\t\thideArrow={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.hideArrow\n\t\t\t\t\t\t: false\n\t\t\t\t}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? (showTooltip.className as any)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\"button-icon-tooltip\",\n\t\t\t\t)}\n\t\t\t\tstyle={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.style\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltipClasses={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.tooltipClassName\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltipStyle={\n\t\t\t\t\ttypeof showTooltip === \"object\"\n\t\t\t\t\t\t? showTooltip.tooltipStyle\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ButtonIconFn {...(buttonProps as any)} />\n\t\t\t</Tooltip>\n\t\t)\n\t}\n\n\treturn <ButtonIconFn {...(buttonProps as any)} />\n}\n","import { Fragment, type FC } from \"react\"\nimport { Flexbox } from \"../Flexbox\"\nimport {\n\tclsx,\n\tgenBorderColorShort,\n\tgenBorderRadius,\n\tgenBgColorShort,\n\tgenBgColorHover,\n\tgenBgColorGhostHover,\n\tgenButtonDisabled,\n\tgenTextColorShort,\n\tgenTextColorHover,\n\tgenRingColor,\n} from \"../../utils\"\nimport type { ILibButtonGroup } from \"./types\"\n\n/**\n * ButtonGroup component for displaying a group of related buttons with consistent styling and optional separators.\n *\n * @component\n *\n * @example\n * <ButtonGroup\n * buttons={[\n * { id: \"1\", buttonContent: \"Save\" },\n * { id: \"2\", buttonContent: \"Cancel\" }\n * ]}\n * variant=\"plain\"\n * color=\"primary\"\n * />\n *\n * @extends ILibFlexbox\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the button group.\n * @prop {React.ComponentType} [props.element=Flexbox] - The component to render as the container element.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the button group element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the button group when not using buttons prop.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Color theme for the button group.\n * @prop {\"plain\" | \"ghost\" | \"outline\" | \"transparent\"} [props.variant=\"plain\"] - Visual variant style of the button group.\n * @prop {string} [props.borderRadius=\"md\"] - Border radius of the button group container.\n * @prop {\"default\" | \"small\"} [props.size=\"default\"] - Size of the buttons in the group.\n * @prop {Array<LibButtonGroupButtonItem>} [props.buttons] - Array of button items to render in the group.\n * @prop {any} [props.rest] - Additional props spread to the container element.\n *\n * @returns {JSX.Element} The rendered ButtonGroup component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/button-group\n */\nexport const ButtonGroup: FC<ILibButtonGroup> = ({\n\tclassName,\n\telement = Flexbox,\n\tref,\n\tchildren,\n\tcolor = \"primary\",\n\tvariant = \"plain\",\n\tborderRadius = \"md\",\n\tsize = \"default\",\n\tbuttons,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst elementProps = {\n\t\tref,\n\t\tclassName: clsx(\n\t\t\t\"w-fit overflow-hidden\",\n\t\t\tgenBorderRadius[borderRadius],\n\t\t\tvariant === \"transparent\" && [\"border\", genBorderColorShort[color]],\n\t\t\t\"button-group\",\n\t\t\tclassName,\n\t\t),\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t\talignItems: \"center\",\n\t\t...rest,\n\t}\n\n\tif (buttons)\n\t\treturn (\n\t\t\t<Element {...elementProps}>\n\t\t\t\t{buttons.map((button, i) => (\n\t\t\t\t\t<Fragment key={button.id}>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"px-2 py-1 outline-none h-full\",\n\t\t\t\t\t\t\t\tsize === \"small\" && \"text-sm px-2 py-1\",\n\t\t\t\t\t\t\t\tgenButtonDisabled[variant],\n\t\t\t\t\t\t\t\tgenRingColor[color],\n\t\t\t\t\t\t\t\tvariant === \"plain\" && [\n\t\t\t\t\t\t\t\t\tcolor === \"white\"\n\t\t\t\t\t\t\t\t\t\t? \"text-primary-500\"\n\t\t\t\t\t\t\t\t\t\t: \"text-white\",\n\t\t\t\t\t\t\t\t\tgenBgColorHover[color],\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tvariant === \"ghost\" && [\n\t\t\t\t\t\t\t\t\tgenBgColorGhostHover[color],\n\t\t\t\t\t\t\t\t\tgenTextColorShort[color],\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tvariant === \"transparent\" && [\n\t\t\t\t\t\t\t\t\tgenTextColorHover[color],\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\"button-group-button\",\n\t\t\t\t\t\t\t\tbutton.className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{...(button as any)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{button.content}\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t{variant === \"transparent\" &&\n\t\t\t\t\t\t\ti !== buttons.length - 1 && (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\t\"inline-block w-[1px] h-full\",\n\t\t\t\t\t\t\t\t\t\tgenBgColorShort[color],\n\t\t\t\t\t\t\t\t\t\t\"button-group-separator\",\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t))}\n\t\t\t</Element>\n\t\t)\n\n\treturn <Element {...elementProps}>{children}</Element>\n}\n","import { type FC } from \"react\"\nimport {\n\tclsx,\n\tgenBgAllColors,\n\tgenTextAllColor,\n\tgenBorderRadius,\n\tgenBorderAllColors,\n} from \"../../utils\"\nimport type { ILibTag } from \"./types\"\n\n/**\n * Tag component for displaying labeled content with customizable colors, variants, and styling options.\n *\n * @component\n *\n * @example\n * <Tag color=\"primary\" variant=\"plain\">\n * New Feature\n * </Tag>\n * <Tag color=\"success\" variant=\"outline\" borderRadius=\"md\">\n * Approved\n * </Tag>\n *\n * @extends HTMLSpanElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tag container.\n * @prop {React.ElementType} [props.element=\"span\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLSpanElement>} [props.ref] - Ref to the tag element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the tag.\n * @prop {LibAllColors} [props.color=\"primary\"] - Background or border color of the tag.\n * @prop {LibAllColors} [props.contentColor] - Text color of the tag content.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [props.borderRadius=\"full\"] - Border radius size of the tag.\n * @prop {\"plain\" | \"outline\"} [props.variant=\"plain\"] - Visual style variant of the tag.\n *\n * @returns {JSX.Element} The rendered Tag component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tag\n */\nexport const Tag: FC<ILibTag> = ({\n\tclassName,\n\telement = \"span\",\n\tref,\n\tchildren,\n\tcolor = \"primary\",\n\tcontentColor,\n\tborderRadius = \"full\",\n\tvariant = \"plain\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex items-center self-start gap-2 px-4 py-1\",\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\tvariant === \"plain\" && [\n\t\t\t\t\tgenBgAllColors[color],\n\t\t\t\t\tcolor === \"white\"\n\t\t\t\t\t\t? \"text-primary\"\n\t\t\t\t\t\t: genTextAllColor[contentColor ?? \"white\"],\n\t\t\t\t],\n\t\t\t\tvariant === \"outline\" && [\n\t\t\t\t\t\"border\",\n\t\t\t\t\tgenBorderAllColors[color],\n\t\t\t\t\tgenTextAllColor[contentColor || color],\n\t\t\t\t],\n\t\t\t\t\"tag\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiXCircle, BiCheckCircle } from \"react-icons/bi\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibInputContainer } from \"./types\"\n\n/**\n * InputContainer component for wrapping input elements with labels, helper text, validation messages, and character counters.\n *\n * @component\n *\n * @example\n * <InputContainer\n * label=\"Email\"\n * helper=\"Enter your email address\"\n * validation={{ status: true, message: \"Valid email\" }}\n * >\n * <input type=\"email\" />\n * </InputContainer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the container.\n * @prop {React.ComponentType | string} [props.element=\"div\"] - The HTML element or component to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the container element.\n * @prop {React.ReactNode} [props.children] - Input elements or other content to display inside the container.\n * @prop {string} [props.label] - Label text to display above the input.\n * @prop {string} [props.labelComment] - Additional comment text next to the label in gray italic text.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the container.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object with status, message, and custom icons.\n * @prop {string | number} [props.value] - Current value for character counter calculation.\n * @prop {boolean | object} [props.counter] - Whether to show character counter or counter configuration.\n * @prop {number} [props.maxLength] - Maximum character length for counter display.\n * @prop {boolean} [props.hasListOpen] - Whether a dropdown list is open (adds z-index styling).\n * @prop {string} [props.id] - Unique identifier to associate label with input element.\n * @prop {any} [props.rest] - Additional props spread to the container element.\n *\n * @returns {JSX.Element} The rendered InputContainer component or just children if no wrapper content is needed.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input\n */\nexport const InputContainer: FC<ILibInputContainer> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tvalidation,\n\tvalue,\n\tcounter,\n\tmaxLength,\n\thasListOpen,\n\tid,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tif (!label && !helper && !helperBottom && !validation && !counter)\n\t\treturn children\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col gap-1\",\n\t\t\t\thasListOpen && \"z-40\",\n\t\t\t\t\"input-container\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={id}\n\t\t\t\t\tclassName=\"font-bold text-primary-500 input-container-label\"\n\t\t\t\t>\n\t\t\t\t\t{label}{\" \"}\n\t\t\t\t\t{labelComment && (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"small\"\n\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\tclassName=\"italic input-container-label-comment\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{labelComment}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t{helper && <Text className=\"input-container-helper\">{helper}</Text>}\n\n\t\t\t{children}\n\n\t\t\t{helperBottom && (\n\t\t\t\t<Text tag=\"small\" className=\"input-container-helper-bottom\">\n\t\t\t\t\t{helperBottom}\n\t\t\t\t</Text>\n\t\t\t)}\n\n\t\t\t{validation &&\n\t\t\t\tvalidation.status !== undefined &&\n\t\t\t\tvalidation.message && (\n\t\t\t\t\t<div className=\"flex items-start gap-1 input-container-validation-container\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"inline-flex items-center h-[21px]\",\n\t\t\t\t\t\t\t\tvalidation.status === false\n\t\t\t\t\t\t\t\t\t? \"text-danger-500\"\n\t\t\t\t\t\t\t\t\t: \"text-success-500\",\n\t\t\t\t\t\t\t\t\"input-container-validation-icon-container\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{validation.status === false\n\t\t\t\t\t\t\t\t? (validation.iconNotPassed ?? (\n\t\t\t\t\t\t\t\t\t\t<BiXCircle\n\t\t\t\t\t\t\t\t\t\t\tsize={14}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"input-container-validation-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t: (validation.iconPassed ?? (\n\t\t\t\t\t\t\t\t\t\t<BiCheckCircle\n\t\t\t\t\t\t\t\t\t\t\tsize={14}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"input-container-validation-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"small\"\n\t\t\t\t\t\t\tclassName=\"input-container-validation-message\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{validation.message}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t{counter && (\n\t\t\t\t<Text tag=\"small\" className=\"input-container-counter\">\n\t\t\t\t\t{value?.length}\n\t\t\t\t\t{maxLength && `/${maxLength}`}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { BiXCircle, BiCheckCircle } from \"react-icons/bi\"\nimport { clsx } from \"../../utils\"\nimport { INPUT_VALIDATION_CONTAINER } from \"./classes\"\nimport type { LibInputValidation } from \"../../types\"\n\nexport const InputValidation: FC<IInputValidation> = ({ validation }) => {\n\tif (!validation || validation.status === undefined) return null\n\n\treturn (\n\t\t<span\n\t\t\tclassName={clsx(\n\t\t\t\tINPUT_VALIDATION_CONTAINER,\n\t\t\t\tvalidation.status === false\n\t\t\t\t\t? \"text-danger-500\"\n\t\t\t\t\t: \"text-success-500\",\n\t\t\t\t\"input-validation-container\",\n\t\t\t)}\n\t\t>\n\t\t\t{validation.status === false\n\t\t\t\t? (validation.iconNotPassed ?? (\n\t\t\t\t\t\t<BiXCircle className=\"input-validation-icon\" />\n\t\t\t\t\t))\n\t\t\t\t: (validation.iconPassed ?? (\n\t\t\t\t\t\t<BiCheckCircle className=\"input-validation-icon\" />\n\t\t\t\t\t))}\n\t\t</span>\n\t)\n}\n\ninterface IInputValidation {\n\tvalidation: LibInputValidation | undefined\n}\n","import { genTextColorHover } from \"../../utils\"\nimport type {\n\tLibInputBackground,\n\tLibInputVariant,\n\tLibInputValidation,\n\tLibInputListDirection,\n} from \"../../types\"\n\nexport const INPUT_COMMON_CLASSES = ({\n\tinputBackground,\n\tvalidationStatus,\n}: {\n\tinputBackground: LibInputBackground | undefined\n\tvalidationStatus: boolean | undefined\n}) => [\n\t\"relative z-10 text-font\",\n\t\"grow h-full px-2\",\n\t\"outline-none\",\n\t\"placeholder:text-gray-500\",\n\t\"disabled:cursor-not-allowed disabled:bg-gray-100 disabled:text-gray-500\",\n\tvalidationStatus === false\n\t\t? \"bg-danger-50 text-black\"\n\t\t: validationStatus === true\n\t\t\t? \"bg-success-50 text-black\"\n\t\t\t: inputBackground === \"dark\"\n\t\t\t\t? \"bg-black text-white\"\n\t\t\t\t: inputBackground === \"light\"\n\t\t\t\t\t? \"bg-white text-black\"\n\t\t\t\t\t: \"bg-background text-font\",\n]\n\nexport const INPUT_VALIDATION_CONTAINER = [\"px-2\"]\n\nexport const INPUT_BUTTON_CLASSES = [\"px-2\", genTextColorHover[\"primary\"]]\n\nexport const PREFIX_CLASSES = [\n\t\"px-2 bg-gray-100 h-full inline-flex items-center border-e-1 border-e-gray-200 text-black\",\n]\n\nexport const SUFFIX_CLASSES = [\n\t\"px-2 bg-gray-100 h-full inline-flex items-center border-s-1 border-s-gray-200 text-black\",\n]\n\nexport const INPUT_ICON_CONTAINER_CLASSES = [\n\t\"size-8 inline-flex items-center justify-center border-e-1 border-e-gray-200\",\n]\n\nexport const INPUT_CONTAINER_CLASSES = ({\n\tvalidation,\n\tinputVariant,\n\tinputBackground,\n\thasListOpen,\n}: {\n\tvalidation: LibInputValidation | undefined\n\tinputVariant: LibInputVariant | undefined\n\tinputBackground: LibInputBackground | undefined\n\thasListOpen?: boolean\n}) => [\n\t\"w-full h-8 border border-gray-200 flex items-center gap-1 rounded-md overflow-hidden relative bg-background\",\n\t\"has-[input:focus]:border-primary-500\",\n\t\"has-[input:disabled]:cursor-not-allowed has-[input:disabled]:bg-gray-100 has-[input:disabled]:text-gray-500\",\n\tvalidation &&\n\t\t(validation.status === false\n\t\t\t? \"bg-danger-50 has-[input:focus]:border-danger-500 text-black\"\n\t\t\t: validation.status === true &&\n\t\t\t\t\"bg-success-50 has-[input:focus]:border-success-500 text-black\"),\n\tinputVariant === \"pill\" && \"rounded-full\",\n\tinputBackground === \"light\" && \"bg-white text-black\",\n\tinputBackground === \"dark\" && \"bg-black text-white\",\n\thasListOpen && \"open\",\n\t\"[&.open]:z-20\",\n]\n\nexport const INPUT_LIST_CLASSES = ({\n\tisOpen,\n\tlistDirection,\n\tinputVariant,\n\tinputBackground,\n\tvalidation,\n}: {\n\tisOpen: boolean\n\tlistDirection: LibInputListDirection | undefined\n\tinputVariant: LibInputVariant | undefined\n\tinputBackground: LibInputBackground | undefined\n\tvalidation: LibInputValidation | undefined\n}) => [\n\t\"left-0 absolute flex flex-col items-start opacity-0 border border-primary-500 rounded-md w-full max-h-0 overflow-hidden overflow-y-scroll transition-all duration-200 ease-in-out z-0\",\n\tisOpen && \"open\",\n\t\"[&.open]:opacity-100 [&.open]:max-h-[300px]\",\n\t(listDirection === \"down\" || !listDirection) && \"top-0 [&.open]:pt-8\",\n\tlistDirection === \"up\" && [\"bottom-0 [&.open]:pt-2\"],\n\tinputVariant === \"pill\" && \"rounded-l-2xl rounded-tr-2xl\",\n\tinputBackground === \"dark\"\n\t\t? \"bg-black text-white\"\n\t\t: inputBackground === \"light\"\n\t\t\t? \"bg-white text-black\"\n\t\t\t: \"bg-background text-font\",\n\tvalidation?.status === false\n\t\t? \"bg-danger-50 border-danger-500\"\n\t\t: validation?.status === true && \"bg-success-50 border-success-500\",\n]\n","import type { FC, MouseEventHandler } from \"react\"\nimport { clsx, genRingColor } from \"../../utils\"\nimport { INPUT_BUTTON_CLASSES } from \"./classes\"\nimport type { ClassNames, ReactChildren } from \"../../types\"\n\nexport const InputButton: FC<IInputButton> = ({\n\tonClick,\n\tchildren,\n\tclassName,\n}) => {\n\treturn (\n\t\t<button\n\t\t\tonClick={onClick}\n\t\t\tclassName={clsx(\n\t\t\t\tINPUT_BUTTON_CLASSES,\n\t\t\t\tgenRingColor[\"primary\"],\n\t\t\t\t\"input-button\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t)\n}\n\ninterface IInputButton {\n\tonClick?: MouseEventHandler<HTMLButtonElement>\n\tchildren?: ReactChildren\n\tclassName?: ClassNames\n}\n","import type { FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { PREFIX_CLASSES } from \"./classes\"\n\nexport const InputPrefix: FC<IInputPrefix> = ({ prefix }) => {\n\tif (!prefix) return null\n\n\treturn (\n\t\t<span className={clsx(PREFIX_CLASSES, \"input-prefix\")}>{prefix}</span>\n\t)\n}\n\ninterface IInputPrefix {\n\tprefix: string | undefined\n}\n","import type { FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { SUFFIX_CLASSES } from \"./classes\"\n\nexport const InputSuffix: FC<IInputSuffix> = ({ suffix }) => {\n\tif (!suffix) return null\n\n\treturn (\n\t\t<span className={clsx(SUFFIX_CLASSES, \"input-suffix\")}>{suffix}</span>\n\t)\n}\n\ninterface IInputSuffix {\n\tsuffix: string | undefined\n}\n","import type { FC } from \"react\"\nimport { INPUT_ICON_CONTAINER_CLASSES } from \"./classes\"\nimport { clsx } from \"../../utils\"\nimport type { ReactElement, LibInputVariant } from \"../../types\"\n\nexport const InputIcon: FC<IInputIcon> = ({ icon, inputVariant, disabled }) => {\n\tif (!icon) return null\n\n\treturn (\n\t\t<span\n\t\t\tclassName={clsx(\n\t\t\t\t\"text-primary-500\",\n\t\t\t\tINPUT_ICON_CONTAINER_CLASSES,\n\t\t\t\tinputVariant === \"pill\" && \"ml-1\",\n\t\t\t\tdisabled && \"text-gray-500\",\n\t\t\t\t\"input-icon-container\",\n\t\t\t)}\n\t\t>\n\t\t\t{icon}\n\t\t</span>\n\t)\n}\n\ninterface IInputIcon {\n\ticon: ReactElement | undefined\n\tinputVariant: LibInputVariant | undefined\n\tdisabled: boolean | undefined\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { INPUT_CONTAINER_CLASSES } from \"./classes\"\nimport type {\n\tClassNames,\n\tLibInputBackground,\n\tLibInputValidation,\n\tLibInputVariant,\n\tReactChildren,\n} from \"../../types\"\n\nexport const InputWrapper: FC<IInputWrapper> = ({\n\tchildren,\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\tclassName,\n\thasListOpen,\n}) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(\n\t\t\t\tINPUT_CONTAINER_CLASSES({\n\t\t\t\t\tvalidation,\n\t\t\t\t\tinputBackground,\n\t\t\t\t\tinputVariant,\n\t\t\t\t\thasListOpen,\n\t\t\t\t}),\n\t\t\t\t\"input-wrapper\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\ninterface IInputWrapper {\n\tchildren?: ReactChildren\n\tvalidation: LibInputValidation | undefined\n\tinputBackground: LibInputBackground | undefined\n\tinputVariant: LibInputVariant | undefined\n\tclassName: ClassNames | undefined\n\thasListOpen?: boolean\n}\n","import type { Ref, FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { INPUT_LIST_CLASSES } from \"./classes\"\nimport type {\n\tClassNames,\n\tLibInputBackground,\n\tLibInputListDirection,\n\tLibInputValidation,\n\tLibInputVariant,\n\tReactChildren,\n} from \"../../types\"\n\nexport const InputList: FC<IInputList> = ({\n\tref,\n\tclassName,\n\tlistDirection,\n\tinputVariant,\n\tinputBackground,\n\tvalidation,\n\tchildren,\n\tisOpen,\n}) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(\n\t\t\t\tINPUT_LIST_CLASSES({\n\t\t\t\t\tisOpen,\n\t\t\t\t\tlistDirection,\n\t\t\t\t\tinputVariant,\n\t\t\t\t\tinputBackground,\n\t\t\t\t\tvalidation,\n\t\t\t\t}),\n\t\t\t\t\"z-0\",\n\t\t\t\t\"input-list\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tref={ref}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\ninterface IInputList {\n\tref?: Ref<HTMLDivElement>\n\tclassName?: ClassNames\n\tlistDirection: LibInputListDirection | undefined\n\tinputVariant: LibInputVariant | undefined\n\tinputBackground: LibInputBackground | undefined\n\tvalidation: LibInputValidation | undefined\n\tchildren?: ReactChildren\n\tisOpen: boolean\n}\n","import type { FC, Ref } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { ReactChildren } from \"../../types\"\n\nexport const InputWithListWrapper: FC<IInputWithListWrapper> = ({\n\tisOpen,\n\tchildren,\n\tref,\n}) => {\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"z-10 relative\",\n\t\t\t\tisOpen && \"open\",\n\t\t\t\t\"[&.open]:z-20\",\n\t\t\t\t\"input-with-list-wrapper\",\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\ninterface IInputWithListWrapper {\n\tref?: Ref<HTMLDivElement>\n\tisOpen: boolean\n\tchildren?: ReactChildren\n}\n","import type { FC, MouseEventHandler } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type {\n\tClassNames,\n\tLibValidationStatus,\n\tReactChildren,\n} from \"../../types\"\n\nexport const InputListItem: FC<IInputListItem> = ({\n\tonClick,\n\tcontent,\n\tcursor,\n\tindex,\n\tvalidationStatus,\n\tvalue,\n\t\"aria-label\": ariaLabel,\n\tchildren,\n\tisActive,\n\tclassName,\n}) => {\n\treturn (\n\t\t<button\n\t\t\trole=\"button\"\n\t\t\tonClick={onClick}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex items-center gap-2 p-2 w-full text-left\",\n\t\t\t\tvalidationStatus === false\n\t\t\t\t\t? \"hover:bg-danger-300 active:bg-danger-600\"\n\t\t\t\t\t: validationStatus === true\n\t\t\t\t\t\t? \"hover:bg-success-300 active:bg-success-600\"\n\t\t\t\t\t\t: \"hover:bg-primary-300 active:bg-primary-600\",\n\t\t\t\t(cursor === index || isActive) &&\n\t\t\t\t\t(validationStatus === false\n\t\t\t\t\t\t? \"bg-danger-300\"\n\t\t\t\t\t\t: validationStatus === true\n\t\t\t\t\t\t\t? \"bg-success-300\"\n\t\t\t\t\t\t\t: \"bg-primary-300\"),\n\t\t\t\t(content === value || isActive) && \"text-white\",\n\t\t\t\t(content === value || isActive) &&\n\t\t\t\t\t(validationStatus === false\n\t\t\t\t\t\t? \"bg-danger-500\"\n\t\t\t\t\t\t: validationStatus === true\n\t\t\t\t\t\t\t? \"bg-success-500\"\n\t\t\t\t\t\t\t: \"bg-primary-500\"),\n\t\t\t\t\"input-list-item\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-label={ariaLabel}\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t{content}\n\t\t\t{children}\n\t\t</button>\n\t)\n}\n\ninterface IInputListItem {\n\tonClick: MouseEventHandler<HTMLButtonElement>\n\tcontent: string | undefined\n\tvalue: string\n\tcursor: number | undefined\n\tindex: number | undefined\n\tvalidationStatus: LibValidationStatus | undefined\n\t\"aria-label\": string\n\tisActive?: boolean\n\tchildren?: ReactChildren\n\tclassName?: ClassNames\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport {\n\tInputValidation,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibColorInput } from \"../subtypes\"\n\nexport const ColorInput: FC<ILibColorInput> = ({\n\tclassName,\n\ttype = \"color\",\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\tvalue,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t{value && <span className=\"pl-2\">{value}</span>}\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\ttype={type}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"input-color\",\n\t\t\t\t)}\n\t\t\t\tvalue={value}\n\t\t\t/>\n\n\t\t\t<InputValidation validation={validation} />\n\t\t</InputWrapper>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { BiCalendar } from \"react-icons/bi\"\nimport { clsx } from \"../../../utils\"\nimport { useMergeRefs } from \"../../../hooks\"\nimport {\n\tInputValidation,\n\tInputButton,\n\tInputIcon,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibDateInput } from \"../subtypes\"\n\nexport const DateInput: FC<ILibDateInput> = ({\n\tref,\n\tclassName,\n\ttype = \"date\",\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\ticon,\n\ticonCalendar = <BiCalendar size={16} />,\n\tdisabled,\n\t...rest\n}) => {\n\tconst el = useRef<HTMLInputElement>(null)\n\tconst showPicker = () => el.current?.showPicker()\n\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\ttype={type}\n\t\t\t\tref={useMergeRefs([ref, el])}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"cursor-pointer\",\n\t\t\t\t\t\"[&::-webkit-calendar-picker-indicator]:opacity-0 [&::-webkit-calendar-picker-indicator]:absolute [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\",\n\t\t\t\t\t\"input-date\",\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<InputButton onClick={showPicker}>{iconCalendar}</InputButton>\n\n\t\t\t<InputValidation validation={validation} />\n\t\t</InputWrapper>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport {\n\tInputValidation,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibFileInput } from \"../subtypes\"\n\nexport const FileInput: FC<ILibFileInput> = ({\n\tclassName,\n\ttype = \"file\",\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\ttype={type}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"cursor-pointer px-0\",\n\t\t\t\t\t\"[&::file-selector-button]:bg-gray-200 [&::file-selector-button]:px-2 hover:[&::file-selector-button]:bg-gray-300 [&::file-selector-button]:cursor-pointer [&::file-selector-button]:transition-all [&::file-selector-button]:duration-200 [&::file-selector-button]:ease-in-out [&::file-selector-button]:h-8 [&::file-selector-button]:mr-2 [&::file-selector-button]:text-black\",\n\t\t\t\t\t\"input-file\",\n\t\t\t\t)}\n\t\t\t/>\n\n\t\t\t<InputValidation validation={validation} />\n\t\t</InputWrapper>\n\t)\n}\n","import { useState, type FC } from \"react\"\nimport { BiShow, BiHide } from \"react-icons/bi\"\nimport { clsx } from \"../../../utils\"\nimport {\n\tInputValidation,\n\tInputButton,\n\tInputPrefix,\n\tInputIcon,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibPasswordInput } from \"../subtypes\"\n\nexport const PasswordInput: FC<ILibPasswordInput> = ({\n\tclassName,\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\thideButton,\n\tbutton,\n\tprefix,\n\ticon,\n\tdisabled,\n\t...rest\n}) => {\n\tconst [inputType, setInputType] = useState<\"password\" | \"text\">(\"password\")\n\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputPrefix prefix={prefix} />\n\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"input-password\",\n\t\t\t\t)}\n\t\t\t\ttype={inputType}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t{!hideButton && (\n\t\t\t\t<InputButton\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tsetInputType(\n\t\t\t\t\t\t\tinputType === \"password\" ? \"text\" : \"password\",\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{inputType === \"password\"\n\t\t\t\t\t\t? (button?.textShow ?? button?.iconShow ?? <BiHide />)\n\t\t\t\t\t\t: (button?.textHide ?? button?.iconHide ?? <BiShow />)}\n\t\t\t\t</InputButton>\n\t\t\t)}\n\n\t\t\t<InputValidation validation={validation} />\n\t\t</InputWrapper>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { BiX } from \"react-icons/bi\"\nimport { clsx } from \"../../../utils\"\nimport { transformSearchKeys } from \"../../../lib-utils\"\nimport { Key } from \"../../Key\"\nimport {\n\tInputButton,\n\tInputIcon,\n\tInputPrefix,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport { useTouchScreen, useMergeRefs, useKeyPress } from \"../../../hooks\"\nimport type { ILibSearchInput } from \"../subtypes\"\n\nexport const SearchInput: FC<ILibSearchInput> = ({\n\tref,\n\tclassName,\n\tinputBackground,\n\tinputVariant,\n\ttype = \"search\",\n\tclearSearch,\n\ticon,\n\ticonClear,\n\tfocusKeys,\n\tshowKeys,\n\tvalue,\n\tprefix,\n\tdisabled,\n\t...rest\n}) => {\n\tconst isTouchScreen = useTouchScreen()\n\n\tconst el = useRef<HTMLInputElement>(null)\n\n\tconst handleFocus = () => el?.current?.focus()\n\tconst keys = focusKeys ?? [\"\"]\n\tuseKeyPress(keys, handleFocus)\n\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={undefined}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputPrefix prefix={prefix} />\n\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\tref={useMergeRefs([ref, el])}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: undefined,\n\t\t\t\t\t}),\n\t\t\t\t\t\"[&::-webkit-search-cancel-button]:appearance-none\",\n\t\t\t\t\t\"[&::-webkit-search-cancel-button]:hidden\",\n\t\t\t\t\t\"[&::-webkit-search-decoration]:appearance-none\",\n\t\t\t\t\t\"[&::-webkit-search-decoration]:hidden\",\n\t\t\t\t\t\"input-search\",\n\t\t\t\t)}\n\t\t\t\ttype={type}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tvalue={value}\n\t\t\t/>\n\n\t\t\t{clearSearch && value?.length > 0 && (\n\t\t\t\t<InputButton onClick={clearSearch}>\n\t\t\t\t\t<BiX className=\"input-clear-icon\" />\n\t\t\t\t</InputButton>\n\t\t\t)}\n\n\t\t\t{!isTouchScreen && showKeys && (\n\t\t\t\t<span className=\"inline-flex items-center px-2 input-key-container\">\n\t\t\t\t\t<Key size=\"small\" className=\"input-key\">\n\t\t\t\t\t\t{transformSearchKeys(keys)}\n\t\t\t\t\t</Key>\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</InputWrapper>\n\t)\n}\n","import { useRef, type FC, type MouseEvent } from \"react\"\nimport { BiChevronDown } from \"react-icons/bi\"\nimport { clsx } from \"../../../utils\"\nimport { useMergeRefs } from \"../../../hooks\"\nimport {\n\tInputIcon,\n\tInputValidation,\n\tInputButton,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibSelectInput } from \"../subtypes\"\n\nexport const SelectInput: FC<ILibSelectInput> = ({\n\tref,\n\tchildren,\n\tclassName,\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\ticon,\n\ticonSelect = <BiChevronDown size={16} />,\n\tdisabled,\n\t...rest\n}) => {\n\tconst el = useRef<HTMLSelectElement>(null)\n\n\tconst handleContainerClick = () => {\n\t\tif (!disabled && el.current) {\n\t\t\tel.current.focus()\n\n\t\t\tif (\"showPicker\" in el.current) {\n\t\t\t\tel.current.showPicker()\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleIconClick = (e: MouseEvent) => {\n\t\te.preventDefault()\n\t\thandleContainerClick()\n\t}\n\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<select\n\t\t\t\t{...rest}\n\t\t\t\tref={useMergeRefs([ref, el])}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"appearance-none cursor-pointer\",\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"input-select\",\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</select>\n\n\t\t\t<InputValidation validation={validation} />\n\n\t\t\t<InputButton className=\"text-gray-500\" onClick={handleIconClick}>\n\t\t\t\t{iconSelect}\n\t\t\t</InputButton>\n\t\t</InputWrapper>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport { INPUT_CONTAINER_CLASSES } from \"../../InputComponents/classes\"\nimport type { ILibTextareaInput } from \"../subtypes\"\n\nexport const TextareaInput: FC<ILibTextareaInput> = ({\n\tclassName,\n\tvalidation,\n\tinputBackground,\n\t...rest\n}) => {\n\treturn (\n\t\t<textarea\n\t\t\t{...rest}\n\t\t\tclassName={clsx(\n\t\t\t\tINPUT_CONTAINER_CLASSES({\n\t\t\t\t\tvalidation,\n\t\t\t\t\tinputBackground,\n\t\t\t\t\tinputVariant: undefined,\n\t\t\t\t}),\n\t\t\t\t\"min-h-[80px] max-h-[160px] field-sizing-content h-fit resize-y p-1\",\n\t\t\t\t\"input-textarea\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t/>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../../utils\"\nimport {\n\tInputPrefix,\n\tInputValidation,\n\tInputSuffix,\n\tInputIcon,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibTextInput } from \"../subtypes\"\n\nexport const TextInput: FC<ILibTextInput> = ({\n\tclassName,\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\tprefix,\n\tsuffix,\n\ttype = \"text\",\n\ticon,\n\tdisabled,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputPrefix prefix={prefix} />\n\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"input-text\"\n\t\t\t\t)}\n\t\t\t\ttype={type}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<InputValidation validation={validation} />\n\n\t\t\t<InputSuffix suffix={suffix} />\n\t\t</InputWrapper>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { BiTime } from \"react-icons/bi\"\nimport { clsx } from \"../../../utils\"\nimport { useMergeRefs } from \"../../../hooks\"\nimport {\n\tInputValidation,\n\tInputButton,\n\tInputIcon,\n\tInputPrefix,\n\tInputWrapper,\n\tINPUT_COMMON_CLASSES,\n} from \"../../InputComponents\"\nimport type { ILibTimeInput } from \"../subtypes\"\n\nexport const TimeInput: FC<ILibTimeInput> = ({\n\tref,\n\tclassName,\n\tvalidation,\n\tinputBackground,\n\tinputVariant,\n\ttype = \"time\",\n\ticon,\n\ticonClock = <BiTime size={16} />,\n\tdisabled,\n\tprefix,\n\t...rest\n}) => {\n\tconst el = useRef<HTMLInputElement>(null)\n\tconst showPicker = () => el.current?.showPicker()\n\n\treturn (\n\t\t<InputWrapper\n\t\t\tclassName={className}\n\t\t\tvalidation={validation}\n\t\t\tinputBackground={inputBackground}\n\t\t\tinputVariant={inputVariant}\n\t\t>\n\t\t\t<InputPrefix prefix={prefix} />\n\n\t\t\t<InputIcon\n\t\t\t\ticon={icon}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<input\n\t\t\t\t{...rest}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t}),\n\t\t\t\t\t\"[&::-webkit-calendar-picker-indicator]:opacity-0\",\n\t\t\t\t\t\"[&::-webkit-calendar-picker-indicator]:absolute\",\n\t\t\t\t\t\"input-time\",\n\t\t\t\t)}\n\t\t\t\tref={useMergeRefs([el, ref])}\n\t\t\t\ttype={type}\n\t\t\t\tdisabled={disabled}\n\t\t\t/>\n\n\t\t\t<InputButton onClick={showPicker}>{iconClock}</InputButton>\n\n\t\t\t<InputValidation validation={validation} />\n\t\t</InputWrapper>\n\t)\n}\n","import { type FC } from \"react\"\nimport { InputContainer } from \"../InputContainer\"\nimport { ColorInput } from \"./templates/ColorInput\"\nimport { DateInput } from \"./templates/DateInput\"\nimport { FileInput } from \"./templates/FileInput\"\nimport { PasswordInput } from \"./templates/PasswordInput\"\nimport { SearchInput } from \"./templates/SearchInput\"\nimport { SelectInput } from \"./templates/SelectInput\"\nimport { TextareaInput } from \"./templates/TextareaInput\"\nimport { TextInput } from \"./templates/TextInput\"\nimport { TimeInput } from \"./templates/TimeInput\"\nimport type { LibInputType } from \"../../types\"\nimport type { ILibInput } from \"./types\"\n\nconst renderComponent = (props: any, type: LibInputType) => {\n\tswitch (type) {\n\t\tcase \"color\":\n\t\t\treturn <ColorInput type={type} {...props} />\n\t\tcase \"date\":\n\t\tcase \"datetime-local\":\n\t\tcase \"week\":\n\t\tcase \"month\":\n\t\t\treturn <DateInput type={type} {...props} />\n\t\tcase \"file\":\n\t\t\treturn <FileInput type={type} {...props} />\n\t\tcase \"password\":\n\t\t\treturn <PasswordInput type={type} {...props} />\n\t\tcase \"search\":\n\t\t\treturn <SearchInput type={type} {...props} />\n\t\tcase \"select\":\n\t\t\treturn <SelectInput type={type} {...props} />\n\t\tcase \"textarea\":\n\t\t\treturn <TextareaInput type={type} {...props} />\n\t\tcase \"time\":\n\t\t\treturn <TimeInput type={type} {...props} />\n\t\tcase \"text\":\n\t\tcase \"email\":\n\t\tcase \"number\":\n\t\tcase \"tel\":\n\t\tcase \"url\":\n\t\tdefault:\n\t\t\treturn <TextInput type={type} {...props} />\n\t}\n}\n\n// @ts-ignore\nconst InputFunction: FC<ILibInput> = ({ type, ...rest }) =>\n\trenderComponent(rest, type as LibInputType)\n\n/**\n * Input component with multiple types and variants for form data collection.\n *\n * @component\n *\n * @example\n * <Input type=\"text\" label=\"Name\" placeholder=\"Enter your name\" />\n * <Input type=\"email\" label=\"Email\" validation={{ status: true }} />\n * <Input type=\"select\" label=\"Country\">\n * <option value=\"us\">United States</option>\n * <option value=\"ca\">Canada</option>\n * </Input>\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the input.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the input element.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {string} [props.label] - Label text to display above the input.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the input.\n * @prop {\"color\" | \"date\" | \"datetime-local\" | \"month\" | \"week\" | \"file\" | \"password\" | \"search\" | \"email\" | \"number\" | \"tel\" | \"text\" | \"url\" | \"time\" | \"select\" | \"textarea\"} [props.type=\"text\"] - Type of input to render.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {string | number} [props.value] - Current value of the input.\n * @prop {boolean | object} [props.counter] - Whether to show character counter or counter configuration.\n * @prop {number} [props.maxLength] - Maximum number of characters allowed.\n * @prop {\"rounded\" | \"pill\"} [props.inputVariant] - Visual variant of the input.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the input.\n * @prop {React.ReactNode} [props.icon] - Icon element to display inside the input.\n * @prop {string} [props.placeholder] - Placeholder text for the input.\n * @prop {boolean} [props.disabled] - Whether the input is disabled.\n * @prop {React.ReactNode} [props.children] - Child elements for select and textarea types.\n * @prop {any} [props.rest] - Additional props spread to the input element.\n *\n * @returns {JSX.Element} The rendered Input component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input\n */\nexport const Input: FC<ILibInput> = ({\n\tclassName,\n\tref,\n\tid,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\t// @ts-ignore\n\tvalidation,\n\tvalue,\n\t// @ts-ignore\n\tcounter,\n\t// @ts-ignore\n\tmaxLength,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tvalidation={validation}\n\t\t\tvalue={value}\n\t\t\tcounter={counter as any}\n\t\t\tmaxLength={maxLength}\n\t\t\tid={id}\n\t\t>\n\t\t\t<InputFunction\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tmaxLength={maxLength as any}\n\t\t\t\tclassName={className}\n\t\t\t\tid={id}\n\t\t\t\t// @ts-ignore\n\t\t\t\tvalidation={validation as any}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</InputContainer>\n\t)\n}\n","import { useState, type FC } from \"react\"\nimport { InputContainer } from \"../InputContainer\"\nimport { HoverContainer } from \"./HoverContainer\"\nimport { EmptyContainer } from \"./EmptyContainer\"\nimport { clsx, genBorderRadius } from \"../../utils\"\nimport type { ILibInputImage } from \"./types\"\n\n/**\n * InputImage component for uploading and displaying image files with hover interactions and validation states.\n *\n * @component\n *\n * @example\n * <InputImage\n * id=\"profile-image\"\n * label=\"Profile Picture\"\n * value={imageUrl}\n * icons={{ upload: <BiUpload />, edit: <BiEdit /> }}\n * />\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the input image container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the label element.\n * @prop {string} [props.label] - Label text to display above the input.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the input.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {string} [props.value] - Current image URL or base64 string value.\n * @prop {object} [props.icons] - Icon configuration object for upload and edit states.\n * @prop {\"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"full\"} [props.borderRadius=\"md\"] - Border radius of the image container.\n * @prop {boolean} [props.disabled] - Whether the input is disabled.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {any} [props.rest] - Additional props spread to the file input element.\n *\n * @returns {JSX.Element} The rendered InputImage component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-image\n */\nexport const InputImage: FC<ILibInputImage> = ({\n\tclassName,\n\tref,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tvalidation,\n\tvalue,\n\ticons,\n\tborderRadius = \"md\",\n\tdisabled,\n\tid,\n\t...rest\n}) => {\n\tconst [isHovered, setIsHovered] = useState(false)\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tvalidation={validation}\n\t\t>\n\t\t\t<label\n\t\t\t\thtmlFor={id}\n\t\t\t\tref={ref}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"relative flex justify-center items-center size-16 overflow-hidden text-primary-500 cursor-pointer\",\n\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t? \"bg-danger-50 text-danger-500\"\n\t\t\t\t\t\t: \"bg-gray-100\",\n\t\t\t\t\tdisabled && \"cursor-not-allowed text-gray-500\",\n\t\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\t\"input-image-container\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonMouseEnter={() => !disabled && setIsHovered(true)}\n\t\t\t\tonMouseLeave={() => !disabled && setIsHovered(false)}\n\t\t\t>\n\t\t\t\t{value === \"\" || !value ? (\n\t\t\t\t\t<EmptyContainer icons={icons} />\n\t\t\t\t) : (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={value}\n\t\t\t\t\t\talt=\"Image input\"\n\t\t\t\t\t\tclassName=\"input-image-image\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<HoverContainer isVisible={isHovered} icons={icons} />\n\n\t\t\t\t<input\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tid={id}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclassName=\"hidden input-image-input\"\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t</label>\n\t\t</InputContainer>\n\t)\n}\n","import type { FC } from \"react\"\nimport { BiEdit } from \"react-icons/bi\"\nimport { clsx } from \"../../utils\"\nimport type { ILibHoverContainer } from \"./subtypes\"\n\nexport const HoverContainer: FC<ILibHoverContainer> = ({\n\ticons,\n\tisVisible,\n}) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex top-0 left-0 absolute justify-center items-center bg-overlay-white-80 w-full h-full transition-all duration-200 ease\",\n\t\t\t\tisVisible ? \"opacity-100\" : \"opacity-0\",\n\t\t\t\t\"hover-container\",\n\t\t\t)}\n\t\t>\n\t\t\t{icons?.hover ?? <BiEdit size={32} />}\n\t\t</div>\n\t)\n}\n","import type { FC } from \"react\"\nimport { BiImage } from \"react-icons/bi\"\nimport { clsx } from \"../../utils\"\nimport type { ILibEmptyContainer } from \"./subtypes\"\n\nexport const EmptyContainer: FC<ILibEmptyContainer> = ({ icons }) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex justify-center items-center w-full h-full\",\n\t\t\t\t\"empty-container\",\n\t\t\t)}\n\t\t>\n\t\t\t{icons?.empty ?? <BiImage size={48} />}\n\t\t</div>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiCheck } from \"react-icons/bi\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibInputCheck } from \"./types\"\n\n/**\n * InputCheck component for creating interactive checkbox, radio, and toggle inputs with multiple visual variants.\n *\n * @component\n *\n * @example\n * <InputCheck id=\"terms\" type=\"checkbox\">\n * I agree to the terms and conditions\n * </InputCheck>\n * <InputCheck id=\"newsletter\" type=\"checkbox\" variant=\"tile\">\n * Subscribe to newsletter\n * </InputCheck>\n * <InputCheck id=\"notifications\" variant=\"toggle\">\n * Enable notifications\n * </InputCheck>\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the input check container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the label element.\n * @prop {React.ReactNode} [props.children] - Content to display next to the input check.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {\"checkbox\" | \"radio\"} [props.type=\"checkbox\"] - Type of input check to render.\n * @prop {React.ReactElement} [props.iconCheck=<BiCheck size={16} />] - Icon element to display in checkbox variant.\n * @prop {\"tile\" | \"toggle\" | \"selector\"} [props.variant] - Visual variant style of the input check.\n * @prop {boolean} [props.validation] - Validation state for error styling.\n * @prop {boolean} [props.disabled] - Whether the input check is disabled.\n * @prop {boolean} [props.checked] - Whether the input check is checked (controlled).\n * @prop {boolean} [props.defaultChecked] - Whether the input check is initially checked (uncontrolled).\n * @prop {any} [props.rest] - Additional props spread to the input element.\n *\n * @returns {JSX.Element} The rendered InputCheck component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-check\n */\nexport const InputCheck: FC<ILibInputCheck> = ({\n\tclassName,\n\tref,\n\tchildren,\n\tid,\n\ttype = \"checkbox\",\n\ticonCheck = <BiCheck size={16} className=\"input-check-icon\" />,\n\tvariant,\n\tvalidation,\n\tdisabled,\n\tchecked,\n\tdefaultChecked,\n\t...rest\n}) => {\n\treturn (\n\t\t<label\n\t\t\tref={ref}\n\t\t\thtmlFor={id}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex items-start gap-1 outline-none cursor-pointer\",\n\t\t\t\tvariant === \"tile\" && [\n\t\t\t\t\t\"w-full border-gray-200 border p-2 rounded-lg\",\n\t\t\t\t\t\"has-[input:checked]:border-primary-500\",\n\t\t\t\t\tvalidation === false &&\n\t\t\t\t\t\t\"has-[input:checked]:border-danger-500\",\n\t\t\t\t\tdisabled && \"has-[input:checked]:border-gray-500\",\n\t\t\t\t],\n\t\t\t\tvariant === \"toggle\" && [\n\t\t\t\t\t\"has-[input:checked]:[&_.toggle]:border-success-500 has-[input:checked]:[&_.toggle]:bg-success-500 has-[input:checked]:[&_.toggle]:after:left-2.5 has-[input:checked]:[&_.toggle]:after:bg-white\",\n\t\t\t\t\tvalidation === false &&\n\t\t\t\t\t\t\"has-[input:checked]:[&_.toggle]:bg-danger-500 has-[input:checked]:[&_.toggle]:border-danger-500\",\n\t\t\t\t\tdisabled &&\n\t\t\t\t\t\t\"has-[input:checked]:[&_.toggle]:bg-gray-500 has-[input:checked]:[&_.toggle]:border-gray-500\",\n\t\t\t\t],\n\t\t\t\tvariant === \"selector\" && [\n\t\t\t\t\t\"bg-gray-100 py-1 px-3 rounded-full hover:bg-primary-300 hover:text-white active:bg-primary-600 transition-all duration-200 ease-in-out\",\n\t\t\t\t\t\"has-[input:checked]:bg-primary-500 has-[input:checked]:text-white has-[input:checked]:hover:bg-primary-300 has-[input:checked]:active:bg-primary-600\",\n\t\t\t\t\tvalidation === false && [\n\t\t\t\t\t\t\"bg-danger-50 hover:bg-danger-300 active:bg-danger-600\",\n\t\t\t\t\t\t\"has-[input:checked]:bg-danger-500 has-[input:checked]:hover:bg-danger-300 has-[input:checked]:active:bg-danger-600 has-[input:checked]:text-white\",\n\t\t\t\t\t],\n\t\t\t\t\tdisabled && [\n\t\t\t\t\t\t\"bg-gray-50 text-gray-500 hover:bg-gray-50 active:bg-gray-50 hover:text-gray-500\",\n\t\t\t\t\t\t\"has-[input:checked]:bg-gray-200 has-[input:checked]:text-gray-500 has-[input:checked]:hover:bg-gray-200 has-[input:checked]:active:bg-gray-200\",\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t\t\"has-[input:checked]:[&_.radio]:after:opacity-100\",\n\t\t\t\t\"has-[:not(input:checked)]:[&_.checkbox>svg]:opacity-0\",\n\t\t\t\t\"has-[input:checked]:[&_.checkbox>svg]:opacity-100 has-[input:checked]:[&_.checkbox]:bg-primary-500 has-[input:checked]:[&_.checkbox]:border-primary-500\",\n\t\t\t\tvalidation === false &&\n\t\t\t\t\t\"has-[input:checked]:[&_.checkbox]:bg-danger-500 has-[input:checked]:[&_.checkbox]:border-danger-500\",\n\t\t\t\tdisabled && [\n\t\t\t\t\t\"cursor-not-allowed\",\n\t\t\t\t\t\"has-[input:checked]:[&_.checkbox]:border-gray-500 has-[input:checked]:[&_.checkbox]:bg-gray-500\",\n\t\t\t\t],\n\t\t\t\t\"input-check-container\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype={type}\n\t\t\t\tid={id}\n\t\t\t\tclassName=\"hidden input-check\"\n\t\t\t\tdisabled={disabled}\n\t\t\t\tchecked={checked}\n\t\t\t\tdefaultChecked={defaultChecked}\n\t\t\t\t{...rest}\n\t\t\t/>\n\n\t\t\t{variant !== \"selector\" && (\n\t\t\t\t<span className=\"inline-flex items-center h-6 check-container\">\n\t\t\t\t\t{variant === \"toggle\" ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"toggle\",\n\t\t\t\t\t\t\t\t\"w-6 h-4 rounded-full border-2 border-primary-500 relative\",\n\t\t\t\t\t\t\t\t\"after:size-2 after:bg-primary-500 after:absolute after:rounded-full after:top-0.5 after:left-0.5 after:duration-200 after:ease-in-out after:transition-all\",\n\t\t\t\t\t\t\t\tvalidation === false &&\n\t\t\t\t\t\t\t\t\t\"border-danger-500 after:bg-danger-500\",\n\t\t\t\t\t\t\t\tdisabled && \"border-gray-500 after:bg-gray-500\",\n\t\t\t\t\t\t\t\t\"input-toggle\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : type === \"radio\" ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"radio\",\n\t\t\t\t\t\t\t\t\"size-4 rounded-full relative\",\n\t\t\t\t\t\t\t\t\"after:absolute after:size-2 after:bg-primary-500 after:rounded-full after:top-0.5 after:left-0.5 after:opacity-0\",\n\t\t\t\t\t\t\t\t\"border-2 border-primary-500\",\n\t\t\t\t\t\t\t\tvalidation === false &&\n\t\t\t\t\t\t\t\t\t\"border-danger-500 after:bg-danger-500\",\n\t\t\t\t\t\t\t\tdisabled && \"border-gray-500 after:bg-gray-500\",\n\t\t\t\t\t\t\t\t\"input-radio\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttype === \"checkbox\" && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\"checkbox\",\n\t\t\t\t\t\t\t\t\t\"size-4 rounded-sm relative text-white\",\n\t\t\t\t\t\t\t\t\t\"border-2 border-primary-500\",\n\t\t\t\t\t\t\t\t\t\"inline-flex items-center justify-center\",\n\t\t\t\t\t\t\t\t\tvalidation === false && \"border-danger-500\",\n\t\t\t\t\t\t\t\t\tdisabled && \"border-gray-500\",\n\t\t\t\t\t\t\t\t\t\"input-checkbox\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{iconCheck}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<Text className=\"input-check-content\">{children}</Text>\n\t\t</label>\n\t)\n}\n","import { useState, useMemo, useRef, type FC } from \"react\"\nimport { BiCaretDown, BiSearch } from \"react-icons/bi\"\nimport { InputContainer } from \"../InputContainer\"\nimport { Text } from \"../Text\"\nimport {\n\tInputValidation,\n\tInputWrapper,\n\tInputList,\n\tInputWithListWrapper,\n\tINPUT_COMMON_CLASSES,\n\tInputListItem,\n} from \"../InputComponents\"\nimport { useClickOutside } from \"../../hooks\"\nimport { clsx } from \"../../utils\"\nimport { countries } from \"./utils/countries\"\nimport type { ILibInputPhone } from \"./types\"\n\n/**\n * InputPhone component for phone number input with country selection dropdown and search functionality.\n *\n * @component\n *\n * @example\n * <InputPhone\n * id=\"phone\"\n * label=\"Phone Number\"\n * selectedCountry={selectedCountry}\n * setSelectedCountry={setSelectedCountry}\n * defaultCountry=\"us\"\n * />\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the input phone container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the input element.\n * @prop {object} [props.selectedCountry] - Currently selected country object with code, name, flag, and dial_code.\n * @prop {function} [props.setSelectedCountry] - Function to update the selected country state.\n * @prop {string} [props.defaultCountry=\"fr\"] - Default country code to display when no country is selected.\n * @prop {object} [props.icons] - Icon configuration object for customizing dropdown caret icon.\n * @prop {string} [props.searchPlaceholder=\"Search country...\"] - Placeholder text for the country search input.\n * @prop {\"up\" | \"down\"} [props.listDirection=\"down\"] - Direction for the dropdown list to appear.\n * @prop {string} [props.countryButtonAriaLabel=\"Select country\"] - Aria label for the country selection button.\n * @prop {string} [props.textNoResult=\"Your search did not return any result.\"] - Text to display when no search results are found.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {string} [props.label] - Label text to display above the input.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the input.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {\"rounded\" | \"pill\"} [props.inputVariant] - Visual variant of the input.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the input.\n * @prop {any} [props.rest] - Additional props spread to the input element.\n *\n * @returns {JSX.Element} The rendered InputPhone component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-phone\n */\nexport const InputPhone: FC<ILibInputPhone> = ({\n\tclassName,\n\tref,\n\tselectedCountry,\n\tsetSelectedCountry,\n\tdefaultCountry = \"fr\",\n\ticons,\n\tsearchPlaceholder = \"Search country...\",\n\tlistDirection = \"down\",\n\tcountryButtonAriaLabel = \"Select country\",\n\ttextNoResult = \"Your search did not return any result.\",\n\tid,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tvalidation,\n\tinputVariant,\n\tinputBackground,\n\t...rest\n}) => {\n\tconst [isOpen, setIsOpen] = useState(false)\n\n\tconst country = useMemo(() => {\n\t\tif (selectedCountry) return selectedCountry\n\t\telse return countries.find(country => country?.code === defaultCountry)\n\t}, [defaultCountry, selectedCountry])\n\n\tconst listRef = useRef<HTMLDivElement>(null)\n\n\tuseClickOutside(listRef as any, () => {\n\t\tif (isOpen) setIsOpen(false)\n\t})\n\n\tconst [search, setSearch] = useState(\"\")\n\tconst results = countries.filter(\n\t\tcountry =>\n\t\t\tcountry?.name.toLowerCase().includes(search.toLowerCase()) ||\n\t\t\tcountry?.dial_code.toLowerCase().includes(search.toLowerCase()) ||\n\t\t\tcountry?.code.toLowerCase().includes(search.toLowerCase()),\n\t)\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tvalidation={validation}\n\t\t\thasListOpen={isOpen}\n\t\t>\n\t\t\t<InputWithListWrapper isOpen={isOpen}>\n\t\t\t\t<InputWrapper\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"z-10 relative\",\n\t\t\t\t\t\tisOpen &&\n\t\t\t\t\t\t\t(validation?.status === false\n\t\t\t\t\t\t\t\t? \"border-danger-500\"\n\t\t\t\t\t\t\t\t: validation?.status === true\n\t\t\t\t\t\t\t\t\t? \"border-success-500\"\n\t\t\t\t\t\t\t\t\t: \"border-primary-500\"),\n\t\t\t\t\t\tinputBackground === \"dark\"\n\t\t\t\t\t\t\t? \"bg-black text-white\"\n\t\t\t\t\t\t\t: inputBackground === \"light\" &&\n\t\t\t\t\t\t\t\t\t\"bg-white text-black\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"inline-flex items-center gap-1 px-2 border-r-1 border-r-gray-200 w-[81px] h-full\",\n\t\t\t\t\t\t\t\"input-phone-country-button\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={() => setIsOpen(!isOpen)}\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label={countryButtonAriaLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={country?.flag}\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\tclassName=\"object-contain input-phone-flag\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{icons?.caret ?? (\n\t\t\t\t\t\t\t<BiCaretDown\n\t\t\t\t\t\t\t\tsize={12}\n\t\t\t\t\t\t\t\tclassName=\"input-phone-caret\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{country?.dial_code}\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\"input-phone-input\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<InputValidation validation={validation} />\n\t\t\t\t</InputWrapper>\n\n\t\t\t\t<InputList\n\t\t\t\t\tlistDirection={listDirection}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tisOpen={isOpen}\n\t\t\t\t\tref={listRef}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"inline-flex items-center gap-2 mx-2 border-b border-b-gray-200 w-[calc(100%-16px)]\",\n\t\t\t\t\t\t\t\"has-[input:focus]:border-b-primary-500\",\n\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t? \"has-[input:focus]:border-b-danger-500\"\n\t\t\t\t\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\t\t\t\t\"has-[input:focus]:border-b-success-500\",\n\t\t\t\t\t\t\t\"input-phone-search-container\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icons?.search ?? (\n\t\t\t\t\t\t\t<BiSearch\n\t\t\t\t\t\t\t\tsize={16}\n\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\"text-primary-500\",\n\t\t\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t\t\t? \"text-danger-500\"\n\t\t\t\t\t\t\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\t\t\t\t\t\t\"text-success-500\",\n\t\t\t\t\t\t\t\t\t\"input-phone-search-icon\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName=\"outline-none w-full input-phone-search\"\n\t\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t\t\tvalue={search}\n\t\t\t\t\t\t\tonChange={e => setSearch(e.target.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{!results.length ? (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"em\"\n\t\t\t\t\t\t\tcolor=\"gray-500\"\n\t\t\t\t\t\t\tclassName=\"p-2 input-search-no-result\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{textNoResult}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tresults.map((result, i) => (\n\t\t\t\t\t\t\t<InputListItem\n\t\t\t\t\t\t\t\tkey={result.code}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tsetSelectedCountry(result)\n\t\t\t\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\taria-label={result?.name}\n\t\t\t\t\t\t\t\tcontent={undefined}\n\t\t\t\t\t\t\t\tvalue={result.code}\n\t\t\t\t\t\t\t\tcursor={undefined}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tvalidationStatus={validation?.status}\n\t\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\t\tresult?.code ===\n\t\t\t\t\t\t\t\t\t(selectedCountry?.code || defaultCountry)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\tsrc={result?.flag}\n\t\t\t\t\t\t\t\t\talt={`Flag ${result?.name}`}\n\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\tclassName=\"input-phone-list-flag\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{result?.name}\n\t\t\t\t\t\t\t</InputListItem>\n\t\t\t\t\t\t))\n\t\t\t\t\t)}\n\t\t\t\t</InputList>\n\t\t\t</InputWithListWrapper>\n\t\t</InputContainer>\n\t)\n}\n","import AF from \"./flags/af.svg\"\nimport AX from \"./flags/ax.svg\"\nimport AL from \"./flags/al.svg\"\nimport DZ from \"./flags/dz.svg\"\nimport AS from \"./flags/as.svg\"\nimport AD from \"./flags/ad.svg\"\nimport AO from \"./flags/ao.svg\"\nimport AI from \"./flags/ai.svg\"\nimport AQ from \"./flags/aq.svg\"\nimport AG from \"./flags/ag.svg\"\nimport AR from \"./flags/ar.svg\"\nimport AM from \"./flags/am.svg\"\nimport AW from \"./flags/aw.svg\"\nimport AU from \"./flags/au.svg\"\nimport AT from \"./flags/at.svg\"\nimport AZ from \"./flags/az.svg\"\nimport BS from \"./flags/bs.svg\"\nimport BH from \"./flags/bh.svg\"\nimport BD from \"./flags/bd.svg\"\nimport BB from \"./flags/bb.svg\"\nimport BY from \"./flags/by.svg\"\nimport BE from \"./flags/be.svg\"\nimport BZ from \"./flags/bz.svg\"\nimport BJ from \"./flags/bj.svg\"\nimport BM from \"./flags/bm.svg\"\nimport BT from \"./flags/bt.svg\"\nimport BO from \"./flags/bo.svg\"\nimport BA from \"./flags/ba.svg\"\nimport BW from \"./flags/bw.svg\"\nimport BR from \"./flags/br.svg\"\nimport IO from \"./flags/io.svg\"\nimport BN from \"./flags/bn.svg\"\nimport BG from \"./flags/bg.svg\"\nimport BF from \"./flags/bf.svg\"\nimport BI from \"./flags/bi.svg\"\nimport KH from \"./flags/kh.svg\"\nimport CM from \"./flags/cm.svg\"\nimport CA from \"./flags/ca.svg\"\nimport CV from \"./flags/cv.svg\"\nimport KY from \"./flags/ky.svg\"\nimport CF from \"./flags/cf.svg\"\nimport TD from \"./flags/td.svg\"\nimport CL from \"./flags/cl.svg\"\nimport CN from \"./flags/cn.svg\"\nimport CX from \"./flags/cx.svg\"\nimport CC from \"./flags/cc.svg\"\nimport CO from \"./flags/co.svg\"\nimport KM from \"./flags/km.svg\"\nimport CG from \"./flags/cg.svg\"\nimport CD from \"./flags/cd.svg\"\nimport CK from \"./flags/ck.svg\"\nimport CR from \"./flags/cr.svg\"\nimport CI from \"./flags/ci.svg\"\nimport HR from \"./flags/hr.svg\"\nimport CU from \"./flags/cu.svg\"\nimport CY from \"./flags/cy.svg\"\nimport CZ from \"./flags/cz.svg\"\nimport DK from \"./flags/dk.svg\"\nimport DJ from \"./flags/dj.svg\"\nimport DM from \"./flags/dm.svg\"\nimport DO from \"./flags/do.svg\"\nimport EC from \"./flags/ec.svg\"\nimport EG from \"./flags/eg.svg\"\nimport SV from \"./flags/sv.svg\"\nimport GQ from \"./flags/gq.svg\"\nimport ER from \"./flags/er.svg\"\nimport EE from \"./flags/ee.svg\"\nimport ET from \"./flags/et.svg\"\nimport FK from \"./flags/fk.svg\"\nimport FO from \"./flags/fo.svg\"\nimport FJ from \"./flags/fj.svg\"\nimport FI from \"./flags/fi.svg\"\nimport FR from \"./flags/fr.svg\"\nimport GF from \"./flags/gf.svg\"\nimport PF from \"./flags/pf.svg\"\nimport GA from \"./flags/ga.svg\"\nimport GM from \"./flags/gm.svg\"\nimport GE from \"./flags/ge.svg\"\nimport DE from \"./flags/de.svg\"\nimport GH from \"./flags/gh.svg\"\nimport GI from \"./flags/gi.svg\"\nimport GR from \"./flags/gr.svg\"\nimport GL from \"./flags/gl.svg\"\nimport GD from \"./flags/gd.svg\"\nimport GP from \"./flags/gp.svg\"\nimport GU from \"./flags/gu.svg\"\nimport GT from \"./flags/gt.svg\"\nimport GG from \"./flags/gg.svg\"\nimport GN from \"./flags/gn.svg\"\nimport GW from \"./flags/gw.svg\"\nimport GY from \"./flags/gy.svg\"\nimport HT from \"./flags/ht.svg\"\nimport VA from \"./flags/va.svg\"\nimport HN from \"./flags/hn.svg\"\nimport HK from \"./flags/hk.svg\"\nimport HU from \"./flags/hu.svg\"\nimport IS from \"./flags/is.svg\"\nimport IN from \"./flags/in.svg\"\nimport ID from \"./flags/id.svg\"\nimport IR from \"./flags/ir.svg\"\nimport IQ from \"./flags/iq.svg\"\nimport IE from \"./flags/ie.svg\"\nimport IM from \"./flags/im.svg\"\nimport IL from \"./flags/il.svg\"\nimport IT from \"./flags/it.svg\"\nimport JM from \"./flags/jm.svg\"\nimport JP from \"./flags/jp.svg\"\nimport JE from \"./flags/je.svg\"\nimport JO from \"./flags/jo.svg\"\nimport KZ from \"./flags/kz.svg\"\nimport KE from \"./flags/ke.svg\"\nimport KI from \"./flags/ki.svg\"\nimport KP from \"./flags/kp.svg\"\nimport KR from \"./flags/kr.svg\"\nimport KW from \"./flags/kw.svg\"\nimport KG from \"./flags/kg.svg\"\nimport LA from \"./flags/la.svg\"\nimport LV from \"./flags/lv.svg\"\nimport LB from \"./flags/lb.svg\"\nimport LS from \"./flags/ls.svg\"\nimport LR from \"./flags/lr.svg\"\nimport LY from \"./flags/ly.svg\"\nimport LI from \"./flags/li.svg\"\nimport LT from \"./flags/lt.svg\"\nimport LU from \"./flags/lu.svg\"\nimport MO from \"./flags/mo.svg\"\nimport MK from \"./flags/mk.svg\"\nimport MG from \"./flags/mg.svg\"\nimport MW from \"./flags/mw.svg\"\nimport MY from \"./flags/my.svg\"\nimport MV from \"./flags/mv.svg\"\nimport ML from \"./flags/ml.svg\"\nimport MT from \"./flags/mt.svg\"\nimport MH from \"./flags/mh.svg\"\nimport MQ from \"./flags/mq.svg\"\nimport MR from \"./flags/mr.svg\"\nimport MU from \"./flags/mu.svg\"\nimport YT from \"./flags/yt.svg\"\nimport MX from \"./flags/mx.svg\"\nimport FM from \"./flags/fm.svg\"\nimport MD from \"./flags/md.svg\"\nimport MC from \"./flags/mc.svg\"\nimport MN from \"./flags/mn.svg\"\nimport ME from \"./flags/me.svg\"\nimport MS from \"./flags/ms.svg\"\nimport MA from \"./flags/ma.svg\"\nimport MZ from \"./flags/mz.svg\"\nimport MM from \"./flags/mm.svg\"\nimport NA from \"./flags/na.svg\"\nimport NR from \"./flags/nr.svg\"\nimport NP from \"./flags/np.svg\"\nimport NL from \"./flags/nl.svg\"\nimport NC from \"./flags/nc.svg\"\nimport NZ from \"./flags/nz.svg\"\nimport NI from \"./flags/ni.svg\"\nimport NE from \"./flags/ne.svg\"\nimport NG from \"./flags/ng.svg\"\nimport NU from \"./flags/nu.svg\"\nimport NF from \"./flags/nf.svg\"\nimport MP from \"./flags/mp.svg\"\nimport NO from \"./flags/no.svg\"\nimport OM from \"./flags/om.svg\"\nimport PK from \"./flags/pk.svg\"\nimport PW from \"./flags/pw.svg\"\nimport PS from \"./flags/ps.svg\"\nimport PA from \"./flags/pa.svg\"\nimport PG from \"./flags/pg.svg\"\nimport PY from \"./flags/py.svg\"\nimport PE from \"./flags/pe.svg\"\nimport PH from \"./flags/ph.svg\"\nimport PN from \"./flags/pn.svg\"\nimport PL from \"./flags/pl.svg\"\nimport PT from \"./flags/pt.svg\"\nimport PR from \"./flags/pr.svg\"\nimport QA from \"./flags/qa.svg\"\nimport RO from \"./flags/ro.svg\"\nimport RU from \"./flags/ru.svg\"\nimport RW from \"./flags/rw.svg\"\nimport RE from \"./flags/re.svg\"\nimport BL from \"./flags/bl.svg\"\nimport SH from \"./flags/sh.svg\"\nimport KN from \"./flags/kn.svg\"\nimport LC from \"./flags/lc.svg\"\nimport MF from \"./flags/mf.svg\"\nimport PM from \"./flags/pm.svg\"\nimport VC from \"./flags/vc.svg\"\nimport WS from \"./flags/ws.svg\"\nimport SM from \"./flags/sm.svg\"\nimport ST from \"./flags/st.svg\"\nimport SA from \"./flags/sa.svg\"\nimport SN from \"./flags/sn.svg\"\nimport RS from \"./flags/rs.svg\"\nimport SC from \"./flags/sc.svg\"\nimport SL from \"./flags/sl.svg\"\nimport SG from \"./flags/sg.svg\"\nimport SK from \"./flags/sk.svg\"\nimport SI from \"./flags/si.svg\"\nimport SB from \"./flags/sb.svg\"\nimport SO from \"./flags/so.svg\"\nimport ZA from \"./flags/za.svg\"\nimport SS from \"./flags/ss.svg\"\nimport GS from \"./flags/gs.svg\"\nimport ES from \"./flags/es.svg\"\nimport LK from \"./flags/lk.svg\"\nimport SD from \"./flags/sd.svg\"\nimport SR from \"./flags/sr.svg\"\nimport SJ from \"./flags/sj.svg\"\nimport SZ from \"./flags/sz.svg\"\nimport SE from \"./flags/se.svg\"\nimport CH from \"./flags/ch.svg\"\nimport SY from \"./flags/sy.svg\"\nimport TW from \"./flags/tw.svg\"\nimport TJ from \"./flags/tj.svg\"\nimport TZ from \"./flags/tz.svg\"\nimport TH from \"./flags/th.svg\"\nimport TL from \"./flags/tl.svg\"\nimport TG from \"./flags/tg.svg\"\nimport TK from \"./flags/tk.svg\"\nimport TO from \"./flags/to.svg\"\nimport TT from \"./flags/tt.svg\"\nimport TN from \"./flags/tn.svg\"\nimport TR from \"./flags/tr.svg\"\nimport TM from \"./flags/tm.svg\"\nimport TC from \"./flags/tc.svg\"\nimport TV from \"./flags/tv.svg\"\nimport UG from \"./flags/ug.svg\"\nimport UA from \"./flags/ua.svg\"\nimport AE from \"./flags/ae.svg\"\nimport GB from \"./flags/gb.svg\"\nimport US from \"./flags/us.svg\"\nimport UY from \"./flags/uy.svg\"\nimport UZ from \"./flags/uz.svg\"\nimport VU from \"./flags/vu.svg\"\nimport VE from \"./flags/ve.svg\"\nimport VN from \"./flags/vn.svg\"\nimport VG from \"./flags/vg.svg\"\nimport VI from \"./flags/vi.svg\"\nimport WF from \"./flags/wf.svg\"\nimport YE from \"./flags/ye.svg\"\nimport ZM from \"./flags/zm.svg\"\nimport ZW from \"./flags/zw.svg\"\nimport type { LibCountry } from \"../../../types\"\n\nexport const countries: Array<LibCountry> = [\n { name: \"Afghanistan\", dial_code: \"+93\", code: \"af\", flag: AF },\n { name: \"Aland Islands\", dial_code: \"+358\", code: \"ax\", flag: AX },\n { name: \"Albania\", dial_code: \"+355\", code: \"al\", flag: AL },\n { name: \"Algeria\", dial_code: \"+213\", code: \"dz\", flag: DZ },\n { name: \"AmericanSamoa\", dial_code: \"+1684\", code: \"as\", flag: AS },\n { name: \"Andorra\", dial_code: \"+376\", code: \"ad\", flag: AD },\n { name: \"Angola\", dial_code: \"+244\", code: \"ao\", flag: AO },\n { name: \"Anguilla\", dial_code: \"+1264\", code: \"ai\", flag: AI },\n { name: \"Antarctica\", dial_code: \"+672\", code: \"aq\", flag: AQ },\n {\n name: \"Antigua and Barbuda\",\n dial_code: \"+1268\",\n code: \"ag\",\n flag: AG,\n },\n { name: \"Argentina\", dial_code: \"+54\", code: \"ar\", flag: AR },\n { name: \"Armenia\", dial_code: \"+374\", code: \"am\", flag: AM },\n { name: \"Aruba\", dial_code: \"+297\", code: \"aw\", flag: AW },\n { name: \"Australia\", dial_code: \"+61\", code: \"au\", flag: AU },\n { name: \"Austria\", dial_code: \"+43\", code: \"at\", flag: AT },\n { name: \"Azerbaijan\", dial_code: \"+994\", code: \"az\", flag: AZ },\n { name: \"Bahamas\", dial_code: \"+1242\", code: \"bs\", flag: BS },\n { name: \"Bahrain\", dial_code: \"+973\", code: \"bh\", flag: BH },\n { name: \"Bangladesh\", dial_code: \"+880\", code: \"bd\", flag: BD },\n { name: \"Barbados\", dial_code: \"+1246\", code: \"bb\", flag: BB },\n { name: \"Belarus\", dial_code: \"+375\", code: \"by\", flag: BY },\n { name: \"Belgium\", dial_code: \"+32\", code: \"be\", flag: BE },\n { name: \"Belize\", dial_code: \"+501\", code: \"bz\", flag: BZ },\n { name: \"Benin\", dial_code: \"+229\", code: \"bj\", flag: BJ },\n { name: \"Bermuda\", dial_code: \"+1441\", code: \"bm\", flag: BM },\n { name: \"Bhutan\", dial_code: \"+975\", code: \"bt\", flag: BT },\n {\n name: \"Bolivia, Plurinational State of\",\n dial_code: \"+591\",\n code: \"bo\",\n flag: BO,\n },\n {\n name: \"Bosnia and Herzegovina\",\n dial_code: \"+387\",\n code: \"ba\",\n flag: BA,\n },\n { name: \"Botswana\", dial_code: \"+267\", code: \"bw\", flag: BW },\n { name: \"Brazil\", dial_code: \"+55\", code: \"br\", flag: BR },\n {\n name: \"British Indian Ocean Territory\",\n dial_code: \"+246\",\n code: \"io\",\n flag: IO,\n },\n { name: \"Brunei Darussalam\", dial_code: \"+673\", code: \"bn\", flag: BN },\n { name: \"Bulgaria\", dial_code: \"+359\", code: \"bg\", flag: BG },\n { name: \"Burkina Faso\", dial_code: \"+226\", code: \"bf\", flag: BF },\n { name: \"Burundi\", dial_code: \"+257\", code: \"bi\", flag: BI },\n { name: \"Cambodia\", dial_code: \"+855\", code: \"kh\", flag: KH },\n { name: \"Cameroon\", dial_code: \"+237\", code: \"cm\", flag: CM },\n { name: \"Canada\", dial_code: \"+1\", code: \"ca\", flag: CA },\n { name: \"Cape Verde\", dial_code: \"+238\", code: \"cv\", flag: CV },\n { name: \"Cayman Islands\", dial_code: \"+ 345\", code: \"ky\", flag: KY },\n {\n name: \"Central African Republic\",\n dial_code: \"+236\",\n code: \"cf\",\n flag: CF,\n },\n { name: \"Chad\", dial_code: \"+235\", code: \"td\", flag: TD },\n { name: \"Chile\", dial_code: \"+56\", code: \"cl\", flag: CL },\n { name: \"China\", dial_code: \"+86\", code: \"cn\", flag: CN },\n { name: \"Christmas Island\", dial_code: \"+61\", code: \"cx\", flag: CX },\n {\n name: \"Cocos (Keeling) Islands\",\n dial_code: \"+61\",\n code: \"cc\",\n flag: CC,\n },\n { name: \"Colombia\", dial_code: \"+57\", code: \"co\", flag: CO },\n { name: \"Comoros\", dial_code: \"+269\", code: \"km\", flag: KM },\n { name: \"Congo\", dial_code: \"+242\", code: \"cg\", flag: CG },\n {\n name: \"Congo, The Democratic Republic of the Congo\",\n dial_code: \"+243\",\n code: \"cd\",\n flag: CD,\n },\n { name: \"Cook Islands\", dial_code: \"+682\", code: \"ck\", flag: CK },\n { name: \"Costa Rica\", dial_code: \"+506\", code: \"cr\", flag: CR },\n { name: \"Cote d'Ivoire\", dial_code: \"+225\", code: \"ci\", flag: CI },\n { name: \"Croatia\", dial_code: \"+385\", code: \"hr\", flag: HR },\n { name: \"Cuba\", dial_code: \"+53\", code: \"cu\", flag: CU },\n { name: \"Cyprus\", dial_code: \"+357\", code: \"cy\", flag: CY },\n { name: \"Czech Republic\", dial_code: \"+420\", code: \"cz\", flag: CZ },\n { name: \"Denmark\", dial_code: \"+45\", code: \"dk\", flag: DK },\n { name: \"Djibouti\", dial_code: \"+253\", code: \"dj\", flag: DJ },\n { name: \"Dominica\", dial_code: \"+1767\", code: \"dm\", flag: DM },\n {\n name: \"Dominican Republic\",\n dial_code: \"+1849\",\n code: \"do\",\n flag: DO,\n },\n { name: \"Ecuador\", dial_code: \"+593\", code: \"ec\", flag: EC },\n { name: \"Egypt\", dial_code: \"+20\", code: \"eg\", flag: EG },\n { name: \"El Salvador\", dial_code: \"+503\", code: \"sv\", flag: SV },\n { name: \"Equatorial Guinea\", dial_code: \"+240\", code: \"gq\", flag: GQ },\n { name: \"Eritrea\", dial_code: \"+291\", code: \"er\", flag: ER },\n { name: \"Estonia\", dial_code: \"+372\", code: \"ee\", flag: EE },\n { name: \"Ethiopia\", dial_code: \"+251\", code: \"et\", flag: ET },\n {\n name: \"Falkland Islands (Malvinas)\",\n dial_code: \"+500\",\n code: \"fk\",\n flag: FK,\n },\n { name: \"Faroe Islands\", dial_code: \"+298\", code: \"fo\", flag: FO },\n { name: \"Fiji\", dial_code: \"+679\", code: \"fj\", flag: FJ },\n { name: \"Finland\", dial_code: \"+358\", code: \"fi\", flag: FI },\n { name: \"France\", dial_code: \"+33\", code: \"fr\", flag: FR },\n { name: \"French Guiana\", dial_code: \"+594\", code: \"gf\", flag: GF },\n { name: \"French Polynesia\", dial_code: \"+689\", code: \"pf\", flag: PF },\n { name: \"Gabon\", dial_code: \"+241\", code: \"ga\", flag: GA },\n { name: \"Gambia\", dial_code: \"+220\", code: \"gm\", flag: GM },\n { name: \"Georgia\", dial_code: \"+995\", code: \"ge\", flag: GE },\n { name: \"Germany\", dial_code: \"+49\", code: \"de\", flag: DE },\n { name: \"Ghana\", dial_code: \"+233\", code: \"gh\", flag: GH },\n { name: \"Gibraltar\", dial_code: \"+350\", code: \"gi\", flag: GI },\n { name: \"Greece\", dial_code: \"+30\", code: \"gr\", flag: GR },\n { name: \"Greenland\", dial_code: \"+299\", code: \"gl\", flag: GL },\n { name: \"Grenada\", dial_code: \"+1473\", code: \"gd\", flag: GD },\n { name: \"Guadeloupe\", dial_code: \"+590\", code: \"gp\", flag: GP },\n { name: \"Guam\", dial_code: \"+1671\", code: \"gu\", flag: GU },\n { name: \"Guatemala\", dial_code: \"+502\", code: \"gt\", flag: GT },\n { name: \"Guernsey\", dial_code: \"+44\", code: \"gg\", flag: GG },\n { name: \"Guinea\", dial_code: \"+224\", code: \"gn\", flag: GN },\n { name: \"Guinea-Bissau\", dial_code: \"+245\", code: \"gw\", flag: GW },\n { name: \"Guyana\", dial_code: \"+595\", code: \"gy\", flag: GY },\n { name: \"Haiti\", dial_code: \"+509\", code: \"ht\", flag: HT },\n {\n name: \"Holy See (Vatican City State)\",\n dial_code: \"+379\",\n code: \"va\",\n flag: VA,\n },\n { name: \"Honduras\", dial_code: \"+504\", code: \"hn\", flag: HN },\n { name: \"Hong Kong\", dial_code: \"+852\", code: \"hk\", flag: HK },\n { name: \"Hungary\", dial_code: \"+36\", code: \"hu\", flag: HU },\n { name: \"Iceland\", dial_code: \"+354\", code: \"is\", flag: IS },\n { name: \"India\", dial_code: \"+91\", code: \"in\", flag: IN },\n { name: \"Indonesia\", dial_code: \"+62\", code: \"id\", flag: ID },\n {\n name: \"Iran, Islamic Republic of Persian Gulf\",\n dial_code: \"+98\",\n code: \"ir\",\n flag: IR,\n },\n { name: \"Iraq\", dial_code: \"+964\", code: \"iq\", flag: IQ },\n { name: \"Ireland\", dial_code: \"+353\", code: \"ie\", flag: IE },\n { name: \"Isle of Man\", dial_code: \"+44\", code: \"im\", flag: IM },\n { name: \"Israel\", dial_code: \"+972\", code: \"il\", flag: IL },\n { name: \"Italy\", dial_code: \"+39\", code: \"it\", flag: IT },\n { name: \"Jamaica\", dial_code: \"+1876\", code: \"jm\", flag: JM },\n { name: \"Japan\", dial_code: \"+81\", code: \"jp\", flag: JP },\n { name: \"Jersey\", dial_code: \"+44\", code: \"je\", flag: JE },\n { name: \"Jordan\", dial_code: \"+962\", code: \"jo\", flag: JO },\n { name: \"Kazakhstan\", dial_code: \"+77\", code: \"kz\", flag: KZ },\n { name: \"Kenya\", dial_code: \"+254\", code: \"ke\", flag: KE },\n { name: \"Kiribati\", dial_code: \"+686\", code: \"ki\", flag: KI },\n {\n name: \"Korea, Democratic People's Republic of Korea\",\n dial_code: \"+850\",\n code: \"kp\",\n flag: KP,\n },\n {\n name: \"Korea, Republic of South Korea\",\n dial_code: \"+82\",\n code: \"kr\",\n flag: KR,\n },\n { name: \"Kuwait\", dial_code: \"+965\", code: \"kw\", flag: KW },\n { name: \"Kyrgyzstan\", dial_code: \"+996\", code: \"kg\", flag: KG },\n { name: \"Laos\", dial_code: \"+856\", code: \"la\", flag: LA },\n { name: \"Latvia\", dial_code: \"+371\", code: \"lv\", flag: LV },\n { name: \"Lebanon\", dial_code: \"+961\", code: \"lb\", flag: LB },\n { name: \"Lesotho\", dial_code: \"+266\", code: \"ls\", flag: LS },\n { name: \"Liberia\", dial_code: \"+231\", code: \"lr\", flag: LR },\n {\n name: \"Libyan Arab Jamahiriya\",\n dial_code: \"+218\",\n code: \"ly\",\n flag: LY,\n },\n { name: \"Liechtenstein\", dial_code: \"+423\", code: \"li\", flag: LI },\n { name: \"Lithuania\", dial_code: \"+370\", code: \"lt\", flag: LT },\n { name: \"Luxembourg\", dial_code: \"+352\", code: \"lu\", flag: LU },\n { name: \"Macao\", dial_code: \"+853\", code: \"mo\", flag: MO },\n { name: \"Macedonia\", dial_code: \"+389\", code: \"mk\", flag: MK },\n { name: \"Madagascar\", dial_code: \"+261\", code: \"mg\", flag: MG },\n { name: \"Malawi\", dial_code: \"+265\", code: \"mw\", flag: MW },\n { name: \"Malaysia\", dial_code: \"+60\", code: \"my\", flag: MY },\n { name: \"Maldives\", dial_code: \"+960\", code: \"mv\", flag: MV },\n { name: \"Mali\", dial_code: \"+223\", code: \"ml\", flag: ML },\n { name: \"Malta\", dial_code: \"+356\", code: \"mt\", flag: MT },\n { name: \"Marshall Islands\", dial_code: \"+692\", code: \"mh\", flag: MH },\n { name: \"Martinique\", dial_code: \"+596\", code: \"mq\", flag: MQ },\n { name: \"Mauritania\", dial_code: \"+222\", code: \"mr\", flag: MR },\n { name: \"Mauritius\", dial_code: \"+230\", code: \"mu\", flag: MU },\n { name: \"Mayotte\", dial_code: \"+262\", code: \"yt\", flag: YT },\n { name: \"Mexico\", dial_code: \"+52\", code: \"mx\", flag: MX },\n {\n name: \"Micronesia, Federated States of Micronesia\",\n dial_code: \"+691\",\n code: \"fm\",\n flag: FM,\n },\n { name: \"Moldova\", dial_code: \"+373\", code: \"md\", flag: MD },\n { name: \"Monaco\", dial_code: \"+377\", code: \"mc\", flag: MC },\n { name: \"Mongolia\", dial_code: \"+976\", code: \"mn\", flag: MN },\n { name: \"Montenegro\", dial_code: \"+382\", code: \"me\", flag: ME },\n { name: \"Montserrat\", dial_code: \"+1664\", code: \"ms\", flag: MS },\n { name: \"Morocco\", dial_code: \"+212\", code: \"ma\", flag: MA },\n { name: \"Mozambique\", dial_code: \"+258\", code: \"mz\", flag: MZ },\n { name: \"Myanmar\", dial_code: \"+95\", code: \"mm\", flag: MM },\n { name: \"Namibia\", dial_code: \"+264\", code: \"na\", flag: NA },\n { name: \"Nauru\", dial_code: \"+674\", code: \"nr\", flag: NR },\n { name: \"Nepal\", dial_code: \"+977\", code: \"np\", flag: NP },\n { name: \"Netherlands\", dial_code: \"+31\", code: \"nl\", flag: NL },\n { name: \"New Caledonia\", dial_code: \"+687\", code: \"nc\", flag: NC },\n { name: \"New Zealand\", dial_code: \"+64\", code: \"nz\", flag: NZ },\n { name: \"Nicaragua\", dial_code: \"+505\", code: \"ni\", flag: NI },\n { name: \"Niger\", dial_code: \"+227\", code: \"ne\", flag: NE },\n { name: \"Nigeria\", dial_code: \"+234\", code: \"ng\", flag: NG },\n { name: \"Niue\", dial_code: \"+683\", code: \"nu\", flag: NU },\n { name: \"Norfolk Island\", dial_code: \"+672\", code: \"nf\", flag: NF },\n {\n name: \"Northern Mariana Islands\",\n dial_code: \"+1670\",\n code: \"mp\",\n flag: MP,\n },\n { name: \"Norway\", dial_code: \"+47\", code: \"no\", flag: NO },\n { name: \"Oman\", dial_code: \"+968\", code: \"om\", flag: OM },\n { name: \"Pakistan\", dial_code: \"+92\", code: \"pk\", flag: PK },\n { name: \"Palau\", dial_code: \"+680\", code: \"pw\", flag: PW },\n {\n name: \"Palestinian Territory, Occupied\",\n dial_code: \"+970\",\n code: \"ps\",\n flag: PS,\n },\n { name: \"Panama\", dial_code: \"+507\", code: \"pa\", flag: PA },\n { name: \"Papua New Guinea\", dial_code: \"+675\", code: \"pg\", flag: PG },\n { name: \"Paraguay\", dial_code: \"+595\", code: \"py\", flag: PY },\n { name: \"Peru\", dial_code: \"+51\", code: \"pe\", flag: PE },\n { name: \"Philippines\", dial_code: \"+63\", code: \"ph\", flag: PH },\n { name: \"Pitcairn\", dial_code: \"+872\", code: \"pn\", flag: PN },\n { name: \"Poland\", dial_code: \"+48\", code: \"pl\", flag: PL },\n { name: \"Portugal\", dial_code: \"+351\", code: \"pt\", flag: PT },\n { name: \"Puerto Rico\", dial_code: \"+1939\", code: \"pr\", flag: PR },\n { name: \"Qatar\", dial_code: \"+974\", code: \"qa\", flag: QA },\n { name: \"Romania\", dial_code: \"+40\", code: \"ro\", flag: RO },\n { name: \"Russia\", dial_code: \"+7\", code: \"ru\", flag: RU },\n { name: \"Rwanda\", dial_code: \"+250\", code: \"rw\", flag: RW },\n { name: \"Reunion\", dial_code: \"+262\", code: \"re\", flag: RE },\n { name: \"Saint Barthelemy\", dial_code: \"+590\", code: \"bl\", flag: BL },\n {\n name: \"Saint Helena, Ascension and Tristan Da Cunha\",\n dial_code: \"+290\",\n code: \"sh\",\n flag: SH,\n },\n {\n name: \"Saint Kitts and Nevis\",\n dial_code: \"+1869\",\n code: \"kn\",\n flag: KN,\n },\n { name: \"Saint Lucia\", dial_code: \"+1758\", code: \"lc\", flag: LC },\n { name: \"Saint Martin\", dial_code: \"+590\", code: \"mf\", flag: MF },\n {\n name: \"Saint Pierre and Miquelon\",\n dial_code: \"+508\",\n code: \"pm\",\n flag: PM,\n },\n {\n name: \"Saint Vincent and the Grenadines\",\n dial_code: \"+1784\",\n code: \"vc\",\n flag: VC,\n },\n { name: \"Samoa\", dial_code: \"+685\", code: \"ws\", flag: WS },\n { name: \"San Marino\", dial_code: \"+378\", code: \"sm\", flag: SM },\n {\n name: \"Sao Tome and Principe\",\n dial_code: \"+239\",\n code: \"st\",\n flag: ST,\n },\n { name: \"Saudi Arabia\", dial_code: \"+966\", code: \"sa\", flag: SA },\n { name: \"Senegal\", dial_code: \"+221\", code: \"sn\", flag: SN },\n { name: \"Serbia\", dial_code: \"+381\", code: \"rs\", flag: RS },\n { name: \"Seychelles\", dial_code: \"+248\", code: \"sc\", flag: SC },\n { name: \"Sierra Leone\", dial_code: \"+232\", code: \"sl\", flag: SL },\n { name: \"Singapore\", dial_code: \"+65\", code: \"sg\", flag: SG },\n { name: \"Slovakia\", dial_code: \"+421\", code: \"sk\", flag: SK },\n { name: \"Slovenia\", dial_code: \"+386\", code: \"si\", flag: SI },\n { name: \"Solomon Islands\", dial_code: \"+677\", code: \"sb\", flag: SB },\n { name: \"Somalia\", dial_code: \"+252\", code: \"so\", flag: SO },\n { name: \"South Africa\", dial_code: \"+27\", code: \"za\", flag: ZA },\n { name: \"South Sudan\", dial_code: \"+211\", code: \"ss\", flag: SS },\n {\n name: \"South Georgia and the South Sandwich Islands\",\n dial_code: \"+500\",\n code: \"gs\",\n flag: GS,\n },\n { name: \"Spain\", dial_code: \"+34\", code: \"es\", flag: ES },\n { name: \"Sri Lanka\", dial_code: \"+94\", code: \"lk\", flag: LK },\n { name: \"Sudan\", dial_code: \"+249\", code: \"sd\", flag: SD },\n { name: \"Suriname\", dial_code: \"+597\", code: \"sr\", flag: SR },\n {\n name: \"Svalbard and Jan Mayen\",\n dial_code: \"+47\",\n code: \"sj\",\n flag: SJ,\n },\n { name: \"Swaziland\", dial_code: \"+268\", code: \"sz\", flag: SZ },\n { name: \"Sweden\", dial_code: \"+46\", code: \"se\", flag: SE },\n { name: \"Switzerland\", dial_code: \"+41\", code: \"ch\", flag: CH },\n {\n name: \"Syrian Arab Republic\",\n dial_code: \"+963\",\n code: \"sy\",\n flag: SY,\n },\n { name: \"Taiwan\", dial_code: \"+886\", code: \"tw\", flag: TW },\n { name: \"Tajikistan\", dial_code: \"+992\", code: \"tj\", flag: TJ },\n {\n name: \"Tanzania, United Republic of Tanzania\",\n dial_code: \"+255\",\n code: \"tz\",\n flag: TZ,\n },\n { name: \"Thailand\", dial_code: \"+66\", code: \"th\", flag: TH },\n { name: \"Timor-Leste\", dial_code: \"+670\", code: \"tl\", flag: TL },\n { name: \"Togo\", dial_code: \"+228\", code: \"tg\", flag: TG },\n { name: \"Tokelau\", dial_code: \"+690\", code: \"tk\", flag: TK },\n { name: \"Tonga\", dial_code: \"+676\", code: \"to\", flag: TO },\n {\n name: \"Trinidad and Tobago\",\n dial_code: \"+1868\",\n code: \"tt\",\n flag: TT,\n },\n { name: \"Tunisia\", dial_code: \"+216\", code: \"tn\", flag: TN },\n { name: \"Turkey\", dial_code: \"+90\", code: \"tr\", flag: TR },\n { name: \"Turkmenistan\", dial_code: \"+993\", code: \"tm\", flag: TM },\n {\n name: \"Turks and Caicos Islands\",\n dial_code: \"+1649\",\n code: \"tc\",\n flag: TC,\n },\n { name: \"Tuvalu\", dial_code: \"+688\", code: \"tv\", flag: TV },\n { name: \"Uganda\", dial_code: \"+256\", code: \"ug\", flag: UG },\n { name: \"Ukraine\", dial_code: \"+380\", code: \"ua\", flag: UA },\n {\n name: \"United Arab Emirates\",\n dial_code: \"+971\",\n code: \"ae\",\n flag: AE,\n },\n { name: \"United Kingdom\", dial_code: \"+44\", code: \"gb\", flag: GB },\n { name: \"United States\", dial_code: \"+1\", code: \"us\", flag: US },\n { name: \"Uruguay\", dial_code: \"+598\", code: \"uy\", flag: UY },\n { name: \"Uzbekistan\", dial_code: \"+998\", code: \"uz\", flag: UZ },\n { name: \"Vanuatu\", dial_code: \"+678\", code: \"vu\", flag: VU },\n {\n name: \"Venezuela, Bolivarian Republic of Venezuela\",\n dial_code: \"+58\",\n code: \"ve\",\n flag: VE,\n },\n { name: \"Vietnam\", dial_code: \"+84\", code: \"vn\", flag: VN },\n {\n name: \"Virgin Islands, British\",\n dial_code: \"+1284\",\n code: \"vg\",\n flag: VG,\n },\n {\n name: \"Virgin Islands, U.S.\",\n dial_code: \"+1340\",\n code: \"vi\",\n flag: VI,\n },\n { name: \"Wallis and Futuna\", dial_code: \"+681\", code: \"wf\", flag: WF },\n { name: \"Yemen\", dial_code: \"+967\", code: \"ye\", flag: YE },\n { name: \"Zambia\", dial_code: \"+260\", code: \"zm\", flag: ZM },\n { name: \"Zimbabwe\", dial_code: \"+263\", code: \"zw\", flag: ZW },\n]\n","import { type FC } from \"react\"\nimport { BiPlus, BiMinus } from \"react-icons/bi\"\nimport { clsx } from \"../../utils\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport { InputContainer } from \"../InputContainer\"\nimport type { ILibInputCounter } from \"./types\"\n\n/**\n * InputCounter component for numeric input with increment/decrement buttons and optional display-only mode.\n *\n * @component\n *\n * @example\n * <InputCounter\n * value={count}\n * setValue={setCount}\n * min={0}\n * max={10}\n * label=\"Quantity\"\n * />\n * <InputCounter\n * value={amount}\n * setValue={setAmount}\n * noInput\n * buttonsColor=\"secondary\"\n * />\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the counter container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the input or span element.\n * @prop {number} [props.value] - Current numeric value of the counter.\n * @prop {function} [props.setValue] - Function to update the counter value.\n * @prop {\"plain\" | \"ghost\" | \"outline\" | \"transparent\"} [props.buttonVariant] - Visual variant style of the increment/decrement buttons.\n * @prop {object} [props.icons] - Icon configuration object with minus and plus icons.\n * @prop {object} [props.labelButtons] - Aria labels and tooltip text for the buttons.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"black\" | \"white\"} [props.buttonsColor=\"primary\"] - Color theme of the increment/decrement buttons.\n * @prop {boolean} [props.showButtonsTooltip] - Whether to show tooltips on button hover.\n * @prop {boolean} [props.noInput] - Whether to display value as text instead of editable input.\n * @prop {\"rounded\" | \"pill\"} [props.inputVariant] - Visual variant of the input field.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the input field.\n * @prop {string} [props.label] - Label text to display above the counter.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the counter.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {number} [props.min=1] - Minimum allowed value for the counter.\n * @prop {number} [props.max=100] - Maximum allowed value for the counter.\n * @prop {number} [props.step=1] - Increment/decrement step value.\n * @prop {any} [props.rest] - Additional props spread to the input or span element.\n *\n * @returns {JSX.Element} The rendered InputCounter component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-counter\n */\nexport const InputCounter: FC<ILibInputCounter> = ({\n\tclassName,\n\tref,\n\tvalue,\n\tsetValue,\n\tbuttonVariant,\n\ticons,\n\tlabelButtons,\n\tbuttonsColor = \"primary\",\n\tshowButtonsTooltip,\n\tnoInput,\n\tinputVariant,\n\tinputBackground,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tmin = 1,\n\tmax = 100,\n\tstep = 1,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tid={id}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"inline-flex items-center\",\n\t\t\t\t\tnoInput ? \"gap-4\" : \"gap-2\",\n\t\t\t\t\t\"input-counter\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<ButtonIcon\n\t\t\t\t\ticon={icons?.minus ?? <BiMinus />}\n\t\t\t\t\tclassName=\"size-6 input-counter-button\"\n\t\t\t\t\tcolor={buttonsColor}\n\t\t\t\t\tvariant={buttonVariant}\n\t\t\t\t\taria-label={labelButtons?.minus}\n\t\t\t\t\ttooltip={labelButtons?.minus}\n\t\t\t\t\tshowTooltip={showButtonsTooltip}\n\t\t\t\t\tonClick={() => setValue(prev => prev - step)}\n\t\t\t\t\tdisabled={value === min}\n\t\t\t\t/>\n\n\t\t\t\t{noInput ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tclassName=\"inline-flex items-center h-8 font-black text-2xl input-counter-number\"\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={e => setValue(Number(e.target.value))}\n\t\t\t\t\t\tclassName=\"px-2 border border-gray-200 focus:border-primary-500 rounded-md outline-none min-w-[calc(3ch+16px)] text-center input-counter-input\"\n\t\t\t\t\t\tsize={value.toString().length + 1}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<ButtonIcon\n\t\t\t\t\ticon={icons?.minus ?? <BiPlus />}\n\t\t\t\t\tclassName=\"size-6 input-counter-button\"\n\t\t\t\t\tcolor={buttonsColor}\n\t\t\t\t\tvariant={buttonVariant}\n\t\t\t\t\taria-label={labelButtons?.plus}\n\t\t\t\t\ttooltip={labelButtons?.plus}\n\t\t\t\t\tshowTooltip={showButtonsTooltip}\n\t\t\t\t\tonClick={() => setValue(prev => prev + step)}\n\t\t\t\t\tdisabled={value === max}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</InputContainer>\n\t)\n}\n","import { useState, type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport { InputContainer } from \"../InputContainer\"\nimport type { ILibInputSlider } from \"./types\"\n\n/**\n * InputSlider component for creating range input sliders with customizable appearance, tooltips, and min/max value display.\n *\n * @component\n *\n * @example\n * <InputSlider\n * value={50}\n * min={0}\n * max={100}\n * label=\"Volume\"\n * showValue=\"hover\"\n * showMinMax\n * />\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the slider container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the input element.\n * @prop {string} [props.label] - Label text to display above the slider.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the slider.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {boolean} [props.showMinMax] - Whether to display min and max values on the sides of the slider.\n * @prop {\"never\" | \"always\" | \"hover\"} [props.showValue=\"never\"] - When to show the current value tooltip.\n * @prop {number} [props.min=0] - Minimum value for the slider range.\n * @prop {number} [props.max=100] - Maximum value for the slider range.\n * @prop {number} [props.value] - Current value of the slider.\n * @prop {any} [props.rest] - Additional props spread to the input element.\n *\n * @returns {JSX.Element} The rendered InputSlider component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-slider\n */\nexport const InputSlider: FC<ILibInputSlider> = ({\n\tclassName,\n\tref,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tvalidation,\n\tshowMinMax,\n\tshowValue = \"never\",\n\tmin = 0,\n\tmax = 100,\n\tvalue,\n\t...rest\n}) => {\n\tconst percentage = ((Number(value) - min) / (max - min)) * 100\n\n\tconst [isTooltipVisible, setIsTooltipVisible] = useState(\n\t\t!!(showValue === \"always\"),\n\t)\n\n\tconst inputProps = {\n\t\tref,\n\t\tid,\n\t\ttype: \"range\",\n\t\tclassName: clsx(\n\t\t\t\"bg-transparent border-none outline-none w-full appearance-none\",\n\t\t\t\"w-full h-2 rounded-full relative z-0\",\n\t\t\t\"before:absolute before:h-2 before:bg-primary-500 before:w-(--cursor-value) before:rounded-full\",\n\n\t\t\t\"[&::-webkit-slider-track]:appearance-none [&::-webkit-slider-track]:bg-transparent [&::-webkit-slider-track]:border-none [&::-webkit-slider-track]:outline-none\",\n\t\t\t\"[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:bg-transparent [&::-webkit-slider-thumb]:border-none [&::-webkit-slider-thumb]:outline-none [&::-webkit-slider-thumb]:cursor-pointer\",\n\t\t\t\"[&::-webkit-slider-track]:bg-primary-500 [&::-webkit-slider-track]:h-full\",\n\t\t\t\"[&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:bg-primary-500 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:relative [&::-webkit-slider-thumb]:z-20 [&::-webkit-slider-thumb]:ring-background [&::-webkit-slider-thumb]:ring-2\",\n\n\t\t\t\"[&::-moz-range-track]:appearance-none [&::-moz-range-track]:bg-transparent [&::-moz-range-track]:border-none [&::-moz-range-track]:outline-none\",\n\t\t\t\"[&::-moz-range-thumb]:appearance-none [&::-moz-range-thumb]:bg-transparent [&::-moz-range-thumb]:border-none [&::-moz-range-thumb]:outline-none [&::-moz-range-thumb]:cursor-pointer\",\n\t\t\t\"[&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:bg-primary-500 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:ring-2 [&::-moz-range-thumb]:ring-white\",\n\n\t\t\tvalidation?.status === false\n\t\t\t\t? \"before:bg-danger-500 [&::-webkit-slider-track]:bg-danger-500 [&::-webkit-slider-thumb]:bg-danger-500 [&::-moz-range-thumb]:bg-danger-500\"\n\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\"before:bg-success-500 [&::-webkit-slider-track]:bg-success-500 [&::-webkit-slider-thumb]:bg-success-500 [&::-moz-range-thumb]:bg-success-500\",\n\t\t\t\"input-slider\",\n\t\t),\n\t\tmin,\n\t\tmax,\n\t\tvalue,\n\t\t...rest,\n\t}\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tid={id}\n\t\t\tvalidation={validation}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"flex items-center gap-2 w-full input-slider-container\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonMouseEnter={() => {\n\t\t\t\t\tif (showValue === \"hover\") setIsTooltipVisible(true)\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={() => {\n\t\t\t\t\tif (showValue === \"hover\") setIsTooltipVisible(false)\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{showMinMax && (\n\t\t\t\t\t<Text tag=\"small\" color=\"gray\" className=\"min-max\">\n\t\t\t\t\t\t{min}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"relative w-full slider-wrapper\">\n\t\t\t\t\t{showValue !== \"never\" && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"-top-8 z-10 absolute bg-overlay-black-80 px-2 py-1 rounded-md text-white\",\n\t\t\t\t\t\t\t\t\"after:absolute after:top-full after:border-4 after:border-transparent after:border-t-overlay-black-80\",\n\t\t\t\t\t\t\t\tpercentage <= 5\n\t\t\t\t\t\t\t\t\t? \"after:left-1\"\n\t\t\t\t\t\t\t\t\t: percentage >= 95\n\t\t\t\t\t\t\t\t\t\t? \"after:right-1\"\n\t\t\t\t\t\t\t\t\t\t: \"after:left-1/2 after:-translate-x-1/2\",\n\t\t\t\t\t\t\t\tshowValue === \"hover\" &&\n\t\t\t\t\t\t\t\t\t(isTooltipVisible\n\t\t\t\t\t\t\t\t\t\t? \"opacity-100\"\n\t\t\t\t\t\t\t\t\t\t: \"opacity-0\"),\n\t\t\t\t\t\t\t\tshowValue === \"always\" && \"opacity-100\",\n\t\t\t\t\t\t\t\t\"slider-value\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tleft: `${percentage}%`,\n\t\t\t\t\t\t\t\ttransform: `translateX(${\n\t\t\t\t\t\t\t\t\tpercentage <= 5\n\t\t\t\t\t\t\t\t\t\t? \"0%\"\n\t\t\t\t\t\t\t\t\t\t: percentage >= 95\n\t\t\t\t\t\t\t\t\t\t\t? \"-100%\"\n\t\t\t\t\t\t\t\t\t\t\t: \"-50%\"\n\t\t\t\t\t\t\t\t})`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t\t<input\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t[\"--cursor-value\" as any]: `${percentage}%`,\n\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t\t? `linear-gradient(to right, rgb(239 68 68) 0%, rgb(239 68 68) ${percentage}%, rgb(229 231 235) ${percentage}%, rgb(229 231 235) 100%)`\n\t\t\t\t\t\t\t\t\t: validation?.status === true\n\t\t\t\t\t\t\t\t\t\t? `linear-gradient(to right, rgb(34 197 94) 0%, rgb(34 197 94) ${percentage}%, rgb(229 231 235) ${percentage}%, rgb(229 231 235) 100%)`\n\t\t\t\t\t\t\t\t\t\t: `linear-gradient(to right, rgb(59 130 246) 0%, rgb(59 130 246) ${percentage}%, rgb(229 231 235) ${percentage}%, rgb(229 231 235) 100%)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{showMinMax && (\n\t\t\t\t\t<Text tag=\"small\" color=\"gray\" className=\"min-max\">\n\t\t\t\t\t\t{max}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { BiCaretDown } from \"react-icons/bi\"\nimport { useClickOutside } from \"../../hooks\"\nimport { useKeyboardNavigation } from \"../../lib-utils\"\nimport { InputContainer } from \"../InputContainer\"\nimport {\n\tInputWithListWrapper,\n\tInputList,\n\tInputValidation,\n\tInputIcon,\n\tInputWrapper,\n\tInputListItem,\n} from \"../InputComponents\"\nimport { clsx } from \"../../utils\"\nimport type { ILibSelect } from \"./types\"\n\n/**\n * Select component for creating dropdown selection inputs with keyboard navigation, validation states, and customizable styling.\n *\n * @component\n *\n * @example\n * <Select\n * value={selectedValue}\n * setValue={setSelectedValue}\n * options={[\"Option 1\", \"Option 2\", \"Option 3\"]}\n * label=\"Choose an option\"\n * placeholder=\"Select...\"\n * />\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the select container.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the button element.\n * @prop {string} [props.value] - Currently selected value.\n * @prop {function} [props.setValue] - Function to update the selected value.\n * @prop {string[]} [props.options] - Array of options to display in the dropdown.\n * @prop {\"up\" | \"down\"} [props.listDirection] - Direction for the dropdown list to appear.\n * @prop {object} [props.icons] - Icon configuration object with left icon and caret icon.\n * @prop {\"rounded\" | \"pill\"} [props.inputVariant] - Visual variant of the select input.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the select input.\n * @prop {string} [props.label] - Label text to display above the select.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the select.\n * @prop {string} [props.id] - Unique identifier for the select element.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {boolean} [props.disabled] - Whether the select is disabled.\n * @prop {any} [props.rest] - Additional props spread to the button element.\n *\n * @returns {JSX.Element} The rendered Select component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/select\n */\nexport const Select: FC<ILibSelect> = ({\n\tclassName,\n\tref,\n\tvalue,\n\tsetValue,\n\toptions,\n\tlistDirection,\n\ticons,\n\tinputVariant,\n\tinputBackground,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tvalidation,\n\tdisabled,\n\t...rest\n}) => {\n\tconst el = useRef<HTMLDivElement>(null)\n\n\tuseClickOutside(el as any, () => {\n\t\tif (isOpen) setIsOpen(false)\n\t})\n\n\tconst { isOpen, setIsOpen, cursor, listRef } = useKeyboardNavigation({\n\t\tdata: options || [],\n\t\tvalue: value,\n\t\tsetValue: setValue,\n\t})\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\thasListOpen={isOpen}\n\t\t\tvalidation={validation}\n\t\t>\n\t\t\t<InputWithListWrapper ref={el} isOpen={isOpen}>\n\t\t\t\t<InputWrapper\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"z-10 relative\",\n\t\t\t\t\t\tisOpen &&\n\t\t\t\t\t\t\t(validation?.status === false\n\t\t\t\t\t\t\t\t? \"border-danger-500 focus-within:border-danger-500\"\n\t\t\t\t\t\t\t\t: validation?.status === true\n\t\t\t\t\t\t\t\t\t? \"border-success-500 focus-within:border-success-500\"\n\t\t\t\t\t\t\t\t\t: \"border-primary-500 focus-within:border-primary-500\"),\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"flex items-center gap-2 outline-none w-full\",\n\t\t\t\t\t\t\tinputBackground === \"light\"\n\t\t\t\t\t\t\t\t? \"bg-white\"\n\t\t\t\t\t\t\t\t: inputBackground === \"dark\"\n\t\t\t\t\t\t\t\t\t? \"bg-black\"\n\t\t\t\t\t\t\t\t\t: \"bg-background\",\n\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t? \"bg-danger-50\"\n\t\t\t\t\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\t\t\t\t\"bg-success-50\",\n\t\t\t\t\t\t\t\"select-button\",\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={() => setIsOpen(!isOpen)}\n\t\t\t\t\t\tonFocus={() => setIsOpen(true)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputIcon\n\t\t\t\t\t\t\ticon={icons?.left}\n\t\t\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<span className=\"px-2 text-left select-value grow\">\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t<InputValidation validation={validation} />\n\n\t\t\t\t\t\t{icons?.caret ?? (\n\t\t\t\t\t\t\t<span className=\"px-2 select-caret-container\">\n\t\t\t\t\t\t\t\t<BiCaretDown\n\t\t\t\t\t\t\t\t\tsize={16}\n\t\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t\t\t\t? \"text-danger-500\"\n\t\t\t\t\t\t\t\t\t\t\t: validation?.status === true\n\t\t\t\t\t\t\t\t\t\t\t\t? \"text-success-500\"\n\t\t\t\t\t\t\t\t\t\t\t\t: \"text-primary-500\",\n\t\t\t\t\t\t\t\t\t\t\"select-caret\",\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</button>\n\t\t\t\t</InputWrapper>\n\n\t\t\t\t<InputList\n\t\t\t\t\tlistDirection={listDirection}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tisOpen={isOpen}\n\t\t\t\t\tref={listRef}\n\t\t\t\t>\n\t\t\t\t\t{options?.map((option, i) => (\n\t\t\t\t\t\t<InputListItem\n\t\t\t\t\t\t\tkey={option}\n\t\t\t\t\t\t\tcontent={option}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetValue(option)\n\t\t\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalidationStatus={validation?.status}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tcursor={cursor}\n\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\taria-label={option}\n\t\t\t\t\t\t\tisActive={option === value}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</InputList>\n\t\t\t</InputWithListWrapper>\n\t\t</InputContainer>\n\t)\n}\n","import { useRef, useMemo, type FC } from \"react\"\nimport Fuse from \"fuse.js\"\nimport { BiX } from \"react-icons/bi\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { useTouchScreen, useKeyPress, useMergeRefs } from \"../../hooks\"\nimport { transformSearchKeys, useKeyboardNavigation } from \"../../lib-utils\"\nimport { Key } from \"../Key\"\nimport { Highlight } from \"../Highlight\"\nimport { Text } from \"../Text\"\nimport { InputContainer } from \"../InputContainer\"\nimport {\n\tInputWrapper,\n\tInputWithListWrapper,\n\tInputIcon,\n\tInputButton,\n\tInputValidation,\n\tInputList,\n\tINPUT_COMMON_CLASSES,\n\tInputListItem,\n} from \"../InputComponents\"\nimport { clsx } from \"../../utils\"\nimport type { ILibAutocomplete } from \"./types\"\n\n/**\n * Autocomplete component for text input with fuzzy search functionality, keyboard navigation, and customizable dropdown results.\n *\n * @component\n *\n * @example\n * <Autocomplete\n * value={searchValue}\n * setValue={setSearchValue}\n * listResults={[\"React\", \"Vue\", \"Angular\", \"Svelte\"]}\n * label=\"Framework\"\n * placeholder=\"Search frameworks...\"\n * focusKeys={[\"cmd+k\"]}\n * />\n *\n * @extends HTMLInputElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the autocomplete container.\n * @prop {React.Ref<HTMLInputElement>} [props.ref] - Ref to the input element.\n * @prop {string} [props.label] - Label text to display above the autocomplete.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the autocomplete.\n * @prop {string} [props.value] - Current input value for searching.\n * @prop {function} [props.setValue] - Function to update the input value.\n * @prop {\"rounded\" | \"pill\"} [props.inputVariant] - Visual variant of the input field.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the input field.\n * @prop {string} [props.id] - Unique identifier for the input element.\n * @prop {string[]} [props.listResults] - Array of items to search through and display as results.\n * @prop {\"up\" | \"down\"} [props.listDirection] - Direction for the dropdown results to appear.\n * @prop {object} [props.fuzzyOptions={}] - Configuration options for Fuse.js fuzzy search.\n * @prop {object} [props.icons] - Icon configuration object with left icon and clear icon.\n * @prop {string[]} [props.focusKeys=[\"\"]] - Array of keyboard shortcuts to focus the input.\n * @prop {boolean} [props.showKeys] - Whether to display the keyboard shortcut keys.\n * @prop {string} [props.textNoResult=\"No result.\"] - Text to display when no search results are found.\n * @prop {boolean} [props.disabled] - Whether the autocomplete is disabled.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {any} [props.rest] - Additional props spread to the input element.\n *\n * @returns {JSX.Element} The rendered Autocomplete component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/autocomplete\n */\nexport const Autocomplete: FC<ILibAutocomplete> = ({\n\tclassName,\n\tref,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tvalue,\n\tsetValue,\n\tinputVariant,\n\tinputBackground,\n\tid,\n\tlistResults,\n\tlistDirection,\n\tfuzzyOptions = {},\n\ticons,\n\tfocusKeys = [\"\"],\n\tshowKeys,\n\ttextNoResult = \"No result.\",\n\tdisabled,\n\tvalidation,\n\t...rest\n}) => {\n\tconst isTouchScreen = useTouchScreen()\n\tconst inputRef = useRef<HTMLInputElement>(null)\n\n\tconst keys = focusKeys\n\tuseKeyPress(keys, () => inputRef?.current?.focus())\n\n\tconst fuzzyResults = useMemo(() => {\n\t\tconst fuse = new Fuse(listResults, fuzzyOptions) as any\n\n\t\treturn fuse\n\t\t\t?.search(value)\n\t\t\t?.slice(0, 20)\n\t\t\t?.map((res: any) => res.item)\n\t}, [fuzzyOptions, listResults, value])\n\n\tconst { isOpen, setIsOpen, cursor, listRef } = useKeyboardNavigation<\n\t\ttypeof fuzzyResults\n\t>({\n\t\tdata: fuzzyResults,\n\t\tvalue,\n\t\tsetValue,\n\t})\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tvalue={validation}\n\t\t\tid={id}\n\t\t\tvalidation={validation}\n\t\t\thasListOpen={isOpen}\n\t\t>\n\t\t\t<InputWithListWrapper isOpen={isOpen}>\n\t\t\t\t<InputWrapper\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\tclassName={clsx(className)}\n\t\t\t\t\thasListOpen={isOpen}\n\t\t\t\t>\n\t\t\t\t\t<InputIcon\n\t\t\t\t\t\ticon={icons?.left}\n\t\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={useMergeRefs([ref, inputRef])}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\"autocomplete-input\",\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={e => setValue(e.target.value)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonFocus={() => setIsOpen(true)}\n\t\t\t\t\t\tonBlur={() => setTimeout(() => setIsOpen(false), 100)}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{value?.length ? (\n\t\t\t\t\t\t<InputButton\n\t\t\t\t\t\t\tonClick={() => setValue(\"\")}\n\t\t\t\t\t\t\tclassName=\"input-clear-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{icons?.clear ?? (\n\t\t\t\t\t\t\t\t<BiX size={16} className=\"input-clear-icon\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</InputButton>\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{!isTouchScreen && showKeys && !disabled && (\n\t\t\t\t\t\t<span className=\"inline-flex items-center px-2 input-key-container\">\n\t\t\t\t\t\t\t<Key size=\"small\" className=\"input-key\">\n\t\t\t\t\t\t\t\t{transformSearchKeys(keys)}\n\t\t\t\t\t\t\t</Key>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<InputValidation validation={validation} />\n\t\t\t\t</InputWrapper>\n\n\t\t\t\t<InputList\n\t\t\t\t\tisOpen={isOpen && value.length}\n\t\t\t\t\tlistDirection={listDirection}\n\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\tinputVariant={inputVariant}\n\t\t\t\t\tvalidation={validation}\n\t\t\t\t\tref={listRef}\n\t\t\t\t>\n\t\t\t\t\t{fuzzyResults?.length ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{fuzzyResults.map((result: string, i: number) => (\n\t\t\t\t\t\t\t\t<InputListItem\n\t\t\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\t\t\tonClick={() => setValue(result)}\n\t\t\t\t\t\t\t\t\tcursor={cursor}\n\t\t\t\t\t\t\t\t\tvalidationStatus={validation?.status}\n\t\t\t\t\t\t\t\t\tcontent={undefined}\n\t\t\t\t\t\t\t\t\tvalue={result}\n\t\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\t\taria-label={result}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Highlight\n\t\t\t\t\t\t\t\t\t\tclassName=\"autocomplete-result\"\n\t\t\t\t\t\t\t\t\t\thighlightedText={value}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{result}\n\t\t\t\t\t\t\t\t\t</Highlight>\n\t\t\t\t\t\t\t\t</InputListItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"em\"\n\t\t\t\t\t\t\tcolor=\"gray-500\"\n\t\t\t\t\t\t\tclassName={clsx(\"p-2\", \"autocomplete-no-result\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{textNoResult}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</InputList>\n\t\t\t</InputWithListWrapper>\n\t\t</InputContainer>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiStar, BiSolidStar } from \"react-icons/bi\"\nimport { generateNumbers } from \"@julseb-lib/utils\"\nimport { InputContainer } from \"../InputContainer\"\nimport { clsx, genTextColorHover } from \"../../utils\"\nimport type { ILibRating } from \"./types\"\n\n/**\n * Rating component for displaying and selecting star ratings with customizable icons, read-only mode, and validation states.\n *\n * @component\n *\n * @example\n * <Rating\n * rating={3}\n * setRating={setRating}\n * label=\"Rate this product\"\n * />\n * <Rating\n * rating={4}\n * readOnly\n * icons={{ default: <BiHeart />, checked: <BiSolidHeart /> }}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the rating container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the rating container div element.\n * @prop {number} [props.rating] - Current rating value (1-5 stars).\n * @prop {function} [props.setRating] - Function to update the rating value when not in read-only mode.\n * @prop {object} [props.icons] - Icon configuration object with default and checked icon variants.\n * @prop {boolean} [props.readOnly] - Whether the rating is in read-only mode (no interaction).\n * @prop {string} [props.label] - Label text to display above the rating.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the rating.\n * @prop {string} [props.id] - Unique identifier for the rating element.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {any} [props.rest] - Additional props spread to the rating container.\n *\n * @returns {JSX.Element} The rendered Rating component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/rating\n */\nexport const Rating: FC<ILibRating> = ({\n\tclassName,\n\tref,\n\trating,\n\tsetRating,\n\ticons,\n\treadOnly,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tvalidation,\n\t...rest\n}) => {\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tid={id}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tid={id}\n\t\t\t\tclassName={clsx(\"flex gap-2\", \"rating\", className)}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{generateNumbers(0, 4).map(n => {\n\t\t\t\t\tconst Element = readOnly ? \"span\" : \"button\"\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Element\n\t\t\t\t\t\t\tkey={n}\n\t\t\t\t\t\t\tonClick={() => !readOnly && setRating!(n + 1)}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t\t\t? \"text-primary-500\"\n\t\t\t\t\t\t\t\t\t: genTextColorHover[\"primary\"],\n\t\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t\t? readOnly\n\t\t\t\t\t\t\t\t\t\t? \"text-danger-500\"\n\t\t\t\t\t\t\t\t\t\t: genTextColorHover[\"danger\"]\n\t\t\t\t\t\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\t\t\t\t\t(readOnly\n\t\t\t\t\t\t\t\t\t\t\t\t? \"text-success-500\"\n\t\t\t\t\t\t\t\t\t\t\t\t: genTextColorHover[\"success\"]),\n\t\t\t\t\t\t\t\t\"rating-item\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{n >= rating\n\t\t\t\t\t\t\t\t? (icons?.default ?? (\n\t\t\t\t\t\t\t\t\t\t<BiStar\n\t\t\t\t\t\t\t\t\t\t\tsize={32}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rating-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t: (icons?.checked ?? (\n\t\t\t\t\t\t\t\t\t\t<BiSolidStar\n\t\t\t\t\t\t\t\t\t\t\tsize={32}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rating-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Element>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</InputContainer>\n\t)\n}\n","import { useState, createRef, type FC, type Ref, type ChangeEvent } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { InputContainer } from \"../InputContainer\"\nimport { INPUT_COMMON_CLASSES } from \"../InputComponents\"\nimport type { ILibInputPin } from \"./types\"\n\n/**\n * InputPin component for creating PIN code or verification code inputs with multiple individual input fields.\n *\n * @component\n *\n * @example\n * <InputPin\n * values={{ pin1: \"\", pin2: \"\", pin3: \"\", pin4: \"\" }}\n * setValues={setValues}\n * label=\"Enter PIN Code\"\n * hideValues\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the pin input container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the pin input container div element.\n * @prop {string} [props.label] - Label text to display above the pin inputs.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the pin inputs.\n * @prop {string} [props.id] - Unique identifier for the pin input container.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {object} [props.values] - Object containing the current values for each pin input field.\n * @prop {function} [props.setValues] - Function to update the pin input values.\n * @prop {string[]} [props.placeholders] - Array of placeholder texts for each pin input field.\n * @prop {boolean} [props.hideValues] - Whether to hide the input values (password mode).\n * @prop {boolean} [props.disabled] - Whether the pin inputs are disabled.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme of the input fields.\n * @prop {any} [props.rest] - Additional props spread to the pin input container.\n *\n * @returns {JSX.Element} The rendered InputPin component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/input-pin\n */\nexport const InputPin: FC<ILibInputPin> = ({\n\tclassName,\n\tref,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tvalidation,\n\tvalues,\n\tsetValues,\n\tplaceholders,\n\thideValues,\n\tdisabled,\n\tinputBackground,\n\tautoFocus,\n\t...rest\n}) => {\n\tconst [inputsRefsArr] = useState<Array<Ref<HTMLInputElement>>>(() =>\n\t\tArray.from({ length: Object.keys(values).length }, () => createRef()),\n\t)\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>, i: number) => {\n\t\tsetValues({ ...values, [e.target.id]: e.target.value })\n\n\t\tif (i !== Object.keys(values).length - 1) {\n\t\t\t;(inputsRefsArr[i + 1] as any).current.focus()\n\t\t}\n\t}\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tid={id}\n\t\t\tvalidation={validation}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tid={id}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"flex items-center gap-2 w-fit input-pin-container\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{inputsRefsArr.map((inputRef, i) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\tid={Object.keys(values)[i]}\n\t\t\t\t\t\t\tonChange={e => handleChange(e, i)}\n\t\t\t\t\t\t\tvalue={Object.values(values)[i]}\n\t\t\t\t\t\t\tplaceholder={placeholders && placeholders[i]}\n\t\t\t\t\t\t\ttype={hideValues ? \"password\" : \"text\"}\n\t\t\t\t\t\t\tmaxLength={1}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tautoFocus={autoFocus && i === 0}\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\tINPUT_COMMON_CLASSES({\n\t\t\t\t\t\t\t\t\tinputBackground,\n\t\t\t\t\t\t\t\t\tvalidationStatus: validation?.status,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\"border border-gray-200 size-12 rounded-lg text-center focus:border-primary-500\",\n\t\t\t\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t\t\t\t? \"focus:border-danger-500\"\n\t\t\t\t\t\t\t\t\t: validation?.status === true &&\n\t\t\t\t\t\t\t\t\t\t\t\"focus:border-success-500\",\n\t\t\t\t\t\t\t\t\"input-pin\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</InputContainer>\n\t)\n}\n","import { type FC } from \"react\"\nimport { InputContainer } from \"../InputContainer\"\nimport { clsx, genBorderRadius } from \"../../utils\"\nimport type { ILibFieldset } from \"./types\"\n\n/**\n * Fieldset component for grouping related form controls with a legend, validation states, and customizable styling.\n *\n * @component\n *\n * @example\n * <Fieldset\n * legend=\"Personal Information\"\n * label=\"User Details\"\n * borderRadius=\"lg\"\n * >\n * <Input label=\"First Name\" />\n * <Input label=\"Last Name\" />\n * <Input label=\"Email\" />\n * </Fieldset>\n *\n * @extends HTMLFieldSetElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the fieldset container.\n * @prop {React.Ref<HTMLFieldSetElement>} [props.ref] - Ref to the fieldset element.\n * @prop {React.ReactNode} [props.children] - Form controls and content to display inside the fieldset.\n * @prop {string} [props.label] - Label text to display above the fieldset.\n * @prop {string} [props.labelComment] - Additional comment text next to the label.\n * @prop {string} [props.helper] - Helper text to display below the label.\n * @prop {string} [props.helperBottom] - Helper text to display at the bottom of the fieldset.\n * @prop {string} [props.id] - Unique identifier for the fieldset element.\n * @prop {LibValidation} [props.validation] - Validation state and configuration object.\n * @prop {string} [props.legend] - Legend text to display as the fieldset title.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [props.borderRadius=\"md\"] - Border radius size for the fieldset.\n * @prop {any} [props.rest] - Additional props spread to the fieldset element.\n *\n * @returns {JSX.Element} The rendered Fieldset component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/fieldset\n */\nexport const Fieldset: FC<ILibFieldset> = ({\n\tclassName,\n\tref,\n\tchildren,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tid,\n\tvalidation,\n\tlegend,\n\tborderRadius = \"md\",\n\t...rest\n}) => {\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tid={id}\n\t\t\tvalidation={validation}\n\t\t>\n\t\t\t<fieldset\n\t\t\t\tref={ref}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"flex flex-wrap gap-4 p-3 border border-gray-200\",\n\t\t\t\t\tvalidation?.status === false\n\t\t\t\t\t\t? \"border-danger-500\"\n\t\t\t\t\t\t: validation?.status === true && \"border-success-500\",\n\t\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\t\"fieldset\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t<legend className=\"px-3 font-bold fieldset-legend\">\n\t\t\t\t\t{legend}\n\t\t\t\t</legend>\n\n\t\t\t\t{children}\n\t\t\t</fieldset>\n\t\t</InputContainer>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Button } from \"../Button\"\nimport { clsx } from \"../../utils\"\nimport type { ILibForm } from \"./types\"\n\n/**\n * Form component for creating forms with built-in submit and secondary action buttons, loading states, and validation support.\n *\n * @component\n *\n * @example\n * <Form\n * buttonPrimary=\"Submit\"\n * buttonSecondary={{ content: \"Cancel\", onClick: handleCancel }}\n * isLoading={isSubmitting}\n * disabled={!isValid}\n * >\n * <Input label=\"Name\" value={name} setValue={setName} />\n * <Input label=\"Email\" value={email} setValue={setEmail} />\n * </Form>\n *\n * @extends HTMLFormElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the form container.\n * @prop {React.Ref<HTMLFormElement>} [props.ref] - Ref to the form element.\n * @prop {React.ReactNode} [props.children] - Form fields and content to display inside the form.\n * @prop {boolean} [props.isLoading] - Whether the form is in a loading state (shows loader on primary button).\n * @prop {boolean} [props.disabled] - Whether the form and its primary button are disabled.\n * @prop {string} [props.buttonPrimary] - Text content for the primary submit button.\n * @prop {object} [props.buttonSecondary] - Configuration object for the secondary button with content and additional props.\n * @prop {1 | 2 | 3} [props.loaderVariant] - Type of loader animation to display on the primary button when loading.\n * @prop {any} [props.rest] - Additional props spread to the form element.\n *\n * @returns {JSX.Element} The rendered Form component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/form\n */\nexport const Form: FC<ILibForm> = ({\n\tclassName,\n\tref,\n\tchildren,\n\tisLoading,\n\tdisabled,\n\tbuttonPrimary,\n\tbuttonSecondary,\n\tloaderVariant,\n\t...rest\n}) => {\n\treturn (\n\t\t<form\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\"flex flex-col gap-4\", \"form\", className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{buttonPrimary && (\n\t\t\t\t<div className=\"flex items-center gap-2 form-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\tloaderVariant={loaderVariant}\n\t\t\t\t\t\tclassName=\"form-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{buttonPrimary}\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t{buttonSecondary && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...(buttonSecondary as any)}\n\t\t\t\t\t\t\ttype={buttonSecondary.type ?? \"button\"}\n\t\t\t\t\t\t\tvariant=\"transparent\"\n\t\t\t\t\t\t\tclassName=\"form-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{buttonSecondary.content}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</form>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport { useMergeRefs } from \"../../hooks\"\nimport { ListGroupTitle } from \"./ListGroupTitle\"\nimport { ListGroupItem } from \"./ListGroupItem\"\nimport type { ILibListGroup } from \"./types\"\n\n/**\n * ListGroup component for displaying a structured list of items with optional title, numbering, and separators.\n *\n * @component\n *\n * @example\n * <ListGroup\n * title=\"My List\"\n * items={[\n * { title: \"Item 1\", body: \"Description 1\" },\n * { title: \"Item 2\", body: \"Description 2\" }\n * ]}\n * showNumbers\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the list group container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the list group container element.\n * @prop {React.ReactNode} [props.children] - Child components to render inside the list group.\n * @prop {string | object} [props.title] - Title text or configuration object for the list group header.\n * @prop {boolean} [props.noSeparator] - Whether to hide separators between list items.\n * @prop {boolean} [props.showNumbers] - Whether to display numbers next to each list item.\n * @prop {Array} [props.items] - Array of item objects to render as list items.\n *\n * @returns {JSX.Element} The rendered ListGroup component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/list-group\n */\nexport const ListGroup: FC<ILibListGroup> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\ttitle,\n\tnoSeparator,\n\tshowNumbers,\n\titems,\n\t...rest\n}) => {\n\tconst Element = element\n\tconst listRef = useRef<HTMLDivElement>(null)\n\n\treturn (\n\t\t<Element\n\t\t\tref={useMergeRefs([ref, listRef])}\n\t\t\tclassName={clsx(\n\t\t\t\t\"border border-gray-200 rounded-lg overflow-y-scroll\",\n\t\t\t\t\"list-group-container\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{title && (\n\t\t\t\t<ListGroupTitle\n\t\t\t\t\t{...(title as any)}\n\t\t\t\t\tisFixed={typeof title === \"object\" ? title.isFixed : false}\n\t\t\t\t\tnoSeparator={noSeparator}\n\t\t\t\t\tlistRef={listRef}\n\t\t\t\t\tclassName={typeof title === \"object\" && title.className}\n\t\t\t\t\tref={typeof title === \"object\" ? title.ref : null}\n\t\t\t\t\tshadow={\n\t\t\t\t\t\ttypeof title === \"object\"\n\t\t\t\t\t\t\t? title.shadowOnScroll\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{typeof title === \"object\" ? title.text : title}\n\t\t\t\t</ListGroupTitle>\n\t\t\t)}\n\n\t\t\t{items\n\t\t\t\t? items.map((item, i) => (\n\t\t\t\t\t\t<ListGroupItem\n\t\t\t\t\t\t\t{...(item as any)}\n\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\ttitle={item.title}\n\t\t\t\t\t\t\tnumber={showNumbers ? i + 1 : undefined}\n\t\t\t\t\t\t\tbody={item.body}\n\t\t\t\t\t\t\tcontentRight={item.contentRight}\n\t\t\t\t\t\t\tnoSeparator={noSeparator}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))\n\t\t\t\t: children}\n\t\t</Element>\n\t)\n}\n","import { useEffect, useState, type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx, genBoxShadow } from \"../../utils\"\nimport type { ILibListGroupTitle } from \"./types\"\n\n/**\n * ListGroupTitle component for rendering a styled header/title for list groups with optional fixed positioning and shadow effects.\n *\n * @component\n *\n * @example\n * <ListGroupTitle\n * isFixed\n * shadow=\"lg\"\n * listRef={listRef}\n * >\n * My List Title\n * </ListGroupTitle>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the title container.\n * @prop {React.ElementType} [props.element=Text] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the title element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the title.\n * @prop {boolean} [props.isFixed] - Whether the title should be sticky positioned at the top.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"inner\" | \"none\"} [props.shadow] - Shadow variant to apply when scrolled.\n * @prop {React.RefObject} [props.listRef] - Ref to the scrollable list container for scroll detection.\n * @prop {boolean} [props.noSeparator] - Whether to hide the bottom border separator.\n *\n * @returns {JSX.Element} The rendered ListGroupTitle component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/list-group\n */\nexport const ListGroupTitle: FC<ILibListGroupTitle> = ({\n\tclassName,\n\telement = Text,\n\tref,\n\tchildren,\n\tisFixed,\n\tshadow,\n\tlistRef,\n\tnoSeparator,\n\t...rest\n}) => {\n\tconst Element = element\n\tconst [isScrolled, setIsScrolled] = useState(false)\n\n\tuseEffect(() => {\n\t\tif (listRef && typeof listRef !== \"function\" && listRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tconst scroll = listRef.current?.scrollTop\n\n\t\t\t\tif (scroll && scroll >= 24) {\n\t\t\t\t\tsetIsScrolled(true)\n\t\t\t\t} else {\n\t\t\t\t\tsetIsScrolled(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tlistRef.current.addEventListener(\"scroll\", handleScroll)\n\t\t\treturn () => {\n\t\t\t\tlistRef.current?.removeEventListener(\"scroll\", handleScroll)\n\t\t\t}\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\ttag=\"h6\"\n\t\t\tclassName={clsx(\n\t\t\t\t\"bg-primary-500 p-3 w-full font-black text-white text-left transition-shadow duration-200\",\n\t\t\t\t!noSeparator && \"border-b-gray-200 border-b\",\n\t\t\t\tisFixed && \"sticky top-0 left-0\",\n\t\t\t\tisScrolled && shadow && genBoxShadow[shadow],\n\t\t\t\t\"list-group-title\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibListGroupItem } from \"./types\"\n\n/**\n * ListGroupItem component for rendering individual items within a list group with optional numbering, content, and separators.\n *\n * @component\n *\n * @example\n * <ListGroupItem\n * title=\"Item Title\"\n * body=\"Item description\"\n * number={1}\n * contentRight={<Button>Action</Button>}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the list item container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the list item container element.\n * @prop {React.ReactNode} [props.children] - Child components to render inside the list item.\n * @prop {string} [props.title] - Title text to display for the list item.\n * @prop {string} [props.body] - Body text or description to display below the title.\n * @prop {React.ReactNode} [props.contentRight] - Content to display on the right side of the list item.\n * @prop {boolean} [props.noSeparator] - Whether to hide the separator border between list items.\n * @prop {number} [props.number] - Number to display before the title when using numbered lists.\n *\n * @returns {JSX.Element} The rendered ListGroupItem component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/list-group\n */\nexport const ListGroupItem: FC<ILibListGroupItem> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\ttitle,\n\tbody,\n\tcontentRight,\n\tnoSeparator,\n\tnumber,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex justify-between gap-2 p-2 w-full\",\n\t\t\t\t!noSeparator &&\n\t\t\t\t\t\"[&:not(:last-child)]:border-b [&:not(:last-child)]:border-b-gray-200\",\n\t\t\t\t\"disabled:bg-gray-200 disabled:text-gray-500\",\n\t\t\t\t\"list-group-item\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children ?? (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"flex flex-col gap-0.5 content-wrapper grow\">\n\t\t\t\t\t\t{number ? (\n\t\t\t\t\t\t\t<span className=\"inline-flex gap-2 title-wrapper\">\n\t\t\t\t\t\t\t\t<span className=\"number\">{number}</span>\n\t\t\t\t\t\t\t\t<Text tag=\"h6\" className=\"title\">\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Text tag=\"h6\" className=\"title\">\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{body && <Text className=\"body\">{body}</Text>}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{contentRight}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { Children, Fragment, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibBreadcrumbs } from \"./types\"\n\n/**\n * Breadcrumbs component for displaying navigational breadcrumb trails with customizable separators and flexible content.\n *\n * @component\n *\n * @example\n * <Breadcrumbs separator=\">\">\n * <Link to=\"/\">Home</Link>\n * <Link to=\"/products\">Products</Link>\n * <Text>Current Page</Text>\n * </Breadcrumbs>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the breadcrumbs container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the breadcrumbs container element.\n * @prop {React.ReactNode} [props.children] - Navigation items to display in the breadcrumb trail.\n * @prop {string | React.ReactNode} [props.separator=\"/\"] - Separator to display between breadcrumb items.\n * @prop {any} [props.rest] - Additional props spread to the container element.\n *\n * @returns {JSX.Element} The rendered Breadcrumbs component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/breadcrumbs\n */\nexport const Breadcrumbs: FC<ILibBreadcrumbs> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tseparator = \"/\",\n\t...rest\n}) => {\n\tconst Element = element\n\tconst childrenArray = Children.toArray(children)\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-wrap items-center gap-2\",\n\t\t\t\t\"breadcrumbs\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{childrenArray.map((child, i) => (\n\t\t\t\t<Fragment key={uuid()}>\n\t\t\t\t\t{child}\n\n\t\t\t\t\t{i !== childrenArray.length - 1 &&\n\t\t\t\t\t\t(typeof separator === \"string\" ? (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\telement=\"span\"\n\t\t\t\t\t\t\t\tclassName=\"breadcrumbs-separator\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseparator\n\t\t\t\t\t\t))}\n\t\t\t\t</Fragment>\n\t\t\t))}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport { AccordionItem } from \"./AccordionItem\"\nimport type { ILibAccordion } from \"./types\"\n\n/**\n * Accordion component for creating collapsible content sections with customizable styling and expandable items.\n *\n * @component\n *\n * @example\n * <Accordion\n * variant=\"rounded\"\n * icon=\"plus\"\n * items={[\n * { title: \"Section 1\", content: <p>Content 1</p>, defaultOpen: true },\n * { title: \"Section 2\", content: <p>Content 2</p> }\n * ]}\n * />\n *\n * @extends ILibAccordion\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the accordion container.\n * @prop {React.ReactNode} [props.children] - Child AccordionItem components to render when not using items prop.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the accordion container element.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual style variant of the accordion.\n * @prop {\"plus\" | \"chevron\"} [props.icon=\"plus\"] - Type of icon to display for expand/collapse indicators.\n * @prop {Array} [props.items] - Array of accordion items with title, content, and defaultOpen properties.\n *\n * @returns {JSX.Element} The rendered Accordion component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/accordion\n */\nexport const Accordion: FC<ILibAccordion> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tvariant = \"basic\",\n\ticon = \"plus\",\n\titems,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col\",\n\t\t\t\tvariant === \"rounded\"\n\t\t\t\t\t? \"rounded-md overflow-hidden border border-gray-200\"\n\t\t\t\t\t: \"gap-2\",\n\t\t\t\t\"accordion\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{items?.map(item => (\n\t\t\t\t<AccordionItem\n\t\t\t\t\tkey={uuid()}\n\t\t\t\t\ticon={icon}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\ttitle={item.title}\n\t\t\t\t\tdefaultOpen={item.defaultOpen}\n\t\t\t\t>\n\t\t\t\t\t{item.content}\n\t\t\t\t</AccordionItem>\n\t\t\t)) ?? children}\n\t\t</Element>\n\t)\n}\n","import { useState, type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { AccordionTitle } from \"./AccordionTitle\"\nimport { AccordionContent } from \"./AccordionContent\"\nimport type { ILibAccordionItem } from \"./types\"\n\n/**\n * AccordionItem component for creating individual collapsible sections with title, content, and customizable styling.\n *\n * @component\n *\n * @example\n * <AccordionItem\n * title=\"Section Title\"\n * icon=\"plus\"\n * variant=\"rounded\"\n * defaultOpen={false}\n * >\n * <p>This is the accordion content that can be expanded or collapsed.</p>\n * </AccordionItem>\n *\n * @extends HTMLDivElement\n *\n * @prop {React.ReactNode} [props.title] - Title content to display in the accordion header.\n * @prop {\"plus\" | \"chevron\"} [props.icon=\"chevron\"] - Type of icon to display for expand/collapse indicator.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual style variant of the accordion item.\n * @prop {boolean} [props.defaultOpen=false] - Whether the accordion should be open by default.\n *\n * @returns {JSX.Element} The rendered AccordionItem component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/accordion\n */\nexport const AccordionItem: FC<ILibAccordionItem> = ({\n\telement = \"div\",\n\ttitle,\n\tchildren,\n\ticon = \"plus\",\n\tvariant,\n\tdefaultOpen = false,\n\tclassName,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst [isOpen, setIsOpen] = useState(defaultOpen)\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\"flex flex-col\", \"accordion-item\", className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<AccordionTitle\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tsetIsOpen={setIsOpen}\n\t\t\t\ticon={icon}\n\t\t\t\tvariant={variant}\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</AccordionTitle>\n\n\t\t\t<AccordionContent variant={variant} isOpen={isOpen}>\n\t\t\t\t{children}\n\t\t\t</AccordionContent>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiPlus, BiChevronDown } from \"react-icons/bi\"\nimport { clsx, genRingColor, genTextColorHover } from \"../../utils\"\nimport type { ILibAccordionTitle } from \"./subtypes\"\n\n/**\n * AccordionTitle component for rendering clickable headers in accordion sections with animated icons and customizable styling.\n *\n * @component\n *\n * @example\n * <AccordionTitle\n * variant=\"rounded\"\n * icon=\"plus\"\n * isOpen={isOpen}\n * setIsOpen={setIsOpen}\n * >\n * Section Title\n * </AccordionTitle>\n *\n * @extends ILibAccordionTitle\n *\n * @prop {\"plus\" | \"chevron\"} [props.icon=\"chevron\"] - Type of icon to display for expand/collapse indicator.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual style variant of the accordion title.\n * @prop {boolean} [props.isOpen] - Whether the accordion section is currently expanded.\n * @prop {function} [props.setIsOpen] - Function to toggle the accordion section open/closed state.\n *\n * @returns {JSX.Element} The rendered AccordionTitle component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/accordion\n */\nexport const AccordionTitle: FC<ILibAccordionTitle> = ({\n\tref,\n\tclassName,\n\ticon = \"plus\",\n\tvariant = \"basic\",\n\tisOpen,\n\tsetIsOpen,\n\tchildren,\n\t...rest\n}) => {\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex justify-between items-center border-b outline-none w-full\",\n\t\t\t\tvariant === \"rounded\"\n\t\t\t\t\t? \"bg-primary-500 text-white py-1 px-2 border-b-white\"\n\t\t\t\t\t: [genTextColorHover[\"primary\"], \"border-b-gray-200 \"],\n\t\t\t\tgenRingColor[\"primary\"],\n\t\t\t\t\"accordion-title\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={() => setIsOpen(!isOpen)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<span className=\"accordion-title-content\">{children}</span>\n\n\t\t\t{icon === \"plus\" ? (\n\t\t\t\t<BiPlus\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"transition-all duration-200 ease-in-out\",\n\t\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\t\"[&.open]:rotate-45\",\n\t\t\t\t\t\t\"accordion-title-icon\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<BiChevronDown\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"transition-all duration-200 ease-in-out\",\n\t\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\t\"[&.open]:rotate-180\",\n\t\t\t\t\t\t\"accordion-title-icon\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</button>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibAccordionContent } from \"./subtypes\"\n\n/**\n * AccordionContent component for rendering the collapsible content area of accordion sections with smooth animations.\n *\n * @component\n *\n * @example\n * <AccordionContent\n * variant=\"rounded\"\n * isOpen={isOpen}\n * >\n * <p>This is the accordion content that can be expanded or collapsed.</p>\n * </AccordionContent>\n *\n * @extends ILibText\n *\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual style variant of the accordion content.\n * @prop {boolean} [props.isOpen] - Whether the accordion content is currently visible/expanded.\n *\n * @returns {JSX.Element} The rendered AccordionContent component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/accordion\n */\nexport const AccordionContent: FC<ILibAccordionContent> = ({\n\telement = Text,\n\tref,\n\tclassName,\n\tvariant = \"basic\",\n\tisOpen,\n\tchildren,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"overflow-hidden transition-all duration-200 ease\",\n\t\t\t\t\"py-0 max-h-0 opacity-0\",\n\t\t\t\tvariant === \"rounded\" && \"px-2\",\n\t\t\t\tisOpen && \"open py-2 max-h-auto opacity-100\",\n\t\t\t\t\"accordion-content\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { useClickOutside, useMergeRefs } from \"../../hooks\"\nimport { DropdownItem } from \"./DropdownItem\"\nimport { clsx, genBorderRadius, genBoxShadow } from \"../../utils\"\nimport type { ILibDropdown } from \"./types\"\n\n/**\n * Dropdown component for creating contextual menus and popover content with customizable positioning and animations.\n *\n * @component\n *\n * @example\n * <Dropdown\n * isOpen={isOpen}\n * setIsOpen={setIsOpen}\n * direction=\"down\"\n * shadow=\"lg\"\n * items={[\n * { content: \"Profile\", onClick: handleProfile },\n * { content: \"Settings\", onClick: handleSettings },\n * { content: \"Logout\", onClick: handleLogout }\n * ]}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the dropdown container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.ReactNode} [props.children] - Child DropdownItem components to render when not using items prop.\n * @prop {boolean} [props.isOpen] - Whether the dropdown is currently visible.\n * @prop {function} [props.setIsOpen] - Function to control the dropdown open/closed state.\n * @prop {\"up\" | \"down\"} [props.direction=\"down\"] - Direction for the dropdown to appear relative to its trigger.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"inner\" | \"none\"} [props.shadow] - Shadow variant to apply when dropdown is open.\n * @prop {Array} [props.items] - Array of dropdown item objects with content and click handlers.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [props.borderRadius=\"md\"] - Border radius size for the dropdown container.\n *\n * @returns {JSX.Element} The rendered Dropdown component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/dropdown\n */\nexport const Dropdown: FC<ILibDropdown> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tisOpen,\n\tsetIsOpen,\n\tdirection = \"down\",\n\tshadow,\n\titems,\n\tborderRadius = \"md\",\n\t...rest\n}) => {\n\tconst Element = element\n\tconst el = useRef<HTMLDivElement>(null)\n\n\tuseClickOutside(el as any, () => {\n\t\tif (isOpen) setIsOpen(false)\n\t})\n\n\treturn (\n\t\t<Element\n\t\t\tref={useMergeRefs([ref, el])}\n\t\t\tclassName={clsx(\n\t\t\t\t\"left-0 absolute flex flex-col bg-background overflow-hidden overflow-y-scroll transition-all duration-200 ease no-scrollbar\",\n\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\tisOpen && \"open\",\n\t\t\t\t\"max-h-0 [&.open]:max-h-100\",\n\t\t\t\tdirection === \"down\" ? \"top-[40px]\" : \"bottom-[40px]\",\n\t\t\t\tisOpen && shadow && genBoxShadow[shadow],\n\t\t\t\t\"dropdown\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{items?.map(item => (\n\t\t\t\t<DropdownItem\n\t\t\t\t\t{...(item as any)}\n\t\t\t\t\tkey={uuid()}\n\t\t\t\t\telement={item.element ?? \"button\"}\n\t\t\t\t\tcontent={undefined}\n\t\t\t\t>\n\t\t\t\t\t{item.content}\n\t\t\t\t</DropdownItem>\n\t\t\t)) ?? children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { ILibDropdownItem } from \"./types\"\n\n/**\n * DropdownItem component for rendering individual items within dropdown menus with hover states and customizable content.\n *\n * @component\n *\n * @example\n * <DropdownItem onClick={handleClick}>\n * Menu Item\n * </DropdownItem>\n * <DropdownItem element=\"a\" href=\"/profile\">\n * Profile\n * </DropdownItem>\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the dropdown item.\n * @prop {React.ElementType} [props.element=\"button\"] - HTML element type to render as the item container.\n * @prop {React.ReactNode} [props.children] - Content to display inside the dropdown item.\n *\n * @returns {JSX.Element} The rendered DropdownItem component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/dropdown\n */\nexport const DropdownItem: FC<ILibDropdownItem> = ({\n\telement = \"button\",\n\tchildren,\n\tclassName,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex items-center gap-2 bg-background hover:bg-primary-300 active:bg-primary-600 disabled:hover:bg-background p-2 min-w-[300px] font-bold text-primary-500 disabled:text-gray-500\",\n\t\t\t\t\"dropdown-item\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tcontent={undefined}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiX } from \"react-icons/bi\"\nimport { Text } from \"../Text\"\nimport { Loader } from \"../Loader\"\nimport { clsx, genRingColor, genTextColorHover } from \"../../utils\"\nimport { genToastColors } from \"./utils\"\nimport type { ILibToast } from \"./types\"\n\n/**\n * Toast component for displaying temporary notification messages with different status types and optional close functionality.\n *\n * @component\n *\n * @example\n * <Toast\n * title=\"Success!\"\n * body=\"Your changes have been saved.\"\n * status=\"success\"\n * closeToast={handleClose}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the toast container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the toast element.\n * @prop {React.ReactNode} [props.body] - Body content to display below the title.\n * @prop {React.ReactNode} [props.title] - Title content to display in the toast header.\n * @prop {\"success\" | \"error\" | \"warning\" | \"info\" | \"loading\"} [props.status=\"success\"] - Status type that determines the toast appearance and behavior.\n * @prop {boolean} [props.hideCloseButton] - Whether to hide the close button in the toast.\n * @prop {function} [props.closeToast] - Function to call when the close button is clicked.\n * @prop {React.ReactElement} [props.iconClose] - Custom icon for the close button.\n * @prop {1 | 2 | 3} [props.loaderVariant] - Variant of the loader shown when status is \"loading\".\n *\n * @returns {JSX.Element} The rendered Toast component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/toast\n */\nexport const Toast: FC<ILibToast> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tbody,\n\ttitle,\n\tstatus = \"success\",\n\thideCloseButton,\n\tcloseToast,\n\ticonClose,\n\tloaderVariant,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative p-3 border rounded-lg w-full max-w-[400px] overflow-hidden text-black\",\n\t\t\t\tgenToastColors[status],\n\t\t\t\t\"toast\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{!hideCloseButton || status === \"loading\" ? (\n\t\t\t\t<div className=\"flex justify-between gap-2 w-full toast-content-wrapper\">\n\t\t\t\t\t{status === \"loading\" ? (\n\t\t\t\t\t\t<span className=\"inline-flex items-center gap-2 toast-title-wrapper\">\n\t\t\t\t\t\t\t<Text tag=\"strong\" className=\"toast-title\">\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Loader\n\t\t\t\t\t\t\t\tclassName=\"border-2 size-4 toast-loader\"\n\t\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\t\tvariant={loaderVariant}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Text tag=\"strong\" className=\"toast-title\">\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tonClick={closeToast}\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"inline-flex justify-center items-center rounded-md outline-none size-6\",\n\t\t\t\t\t\t\t\tgenTextColorHover[\"gray\"],\n\t\t\t\t\t\t\t\tgenRingColor[\"gray\"],\n\t\t\t\t\t\t\t\t\"toast-close-button\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{iconClose ?? (\n\t\t\t\t\t\t\t\t<BiX size={20} className=\"toast-close-icon\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<Text tag=\"strong\" className=\"toast-title\">\n\t\t\t\t\t{title}\n\t\t\t\t</Text>\n\t\t\t)}\n\n\t\t\t{typeof body === \"string\" ? (\n\t\t\t\t<Text className=\"toast-body\">{body}</Text>\n\t\t\t) : (\n\t\t\t\tbody\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import type { LibToastStatus } from \"../../types\"\n\nexport const genToastColors: Record<LibToastStatus, string> = {\n\tsuccess: \"border-success-500 bg-success-50\",\n\terror: \"border-danger-500 bg-danger-50\",\n\twarning: \"border-warning-500 bg-warning-50\",\n\tinfo: \"border-primary-500 bg-primary-50\",\n\tloading: \"border-gray-500 bg-gray-50\",\n}\n","import type { FC } from \"react\"\nimport {\n\tToastContainer as Container,\n\ttype ToastContainerProps,\n} from \"react-toastify\"\n\n/**\n * ToastContainer component for managing and displaying toast notifications with customizable positioning and behavior.\n *\n * @component\n *\n * @example\n * <ToastContainer\n * position=\"top-right\"\n * autoClose={5000}\n * hideProgressBar={false}\n * />\n *\n * @extends ToastContainerProps from \"react-toastify\"\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the toast container.\n * @prop {\"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\"} [props.position=\"bottom-right\"] - Position where toasts will appear on the screen.\n * @prop {number | false} [props.autoClose] - Time in milliseconds before toasts auto-close, or false to disable.\n * @prop {boolean} [props.hideProgressBar] - Whether to hide the progress bar on toasts.\n * @prop {boolean} [props.newestOnTop] - Whether to display newest toasts at the top.\n * @prop {boolean} [props.closeOnClick] - Whether toasts close when clicked.\n * @prop {boolean} [props.rtl] - Whether to use right-to-left layout.\n * @prop {boolean} [props.pauseOnFocusLoss] - Whether to pause toast timers when window loses focus.\n * @prop {boolean} [props.draggable] - Whether toasts can be dragged to dismiss.\n * @prop {boolean} [props.pauseOnHover] - Whether to pause toast timers on hover.\n * @prop {\"default\" | \"colored\" | \"dark\"} [props.theme] - Visual theme for the toast container.\n * @prop {number} [props.limit] - Maximum number of toasts to display at once.\n *\n * @returns {JSX.Element} The rendered ToastContainer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/toast\n */\nexport const ToastContainer: FC<ToastContainerProps> = ({\n\tposition = \"bottom-right\",\n\t...rest\n}) => {\n\treturn <Container position={position} {...rest} />\n}\n","import { toast as toastFn, type ToastOptions } from \"react-toastify\"\nimport { Toast } from \"./Toast\"\nimport type { ILibToast } from \"./types\"\nimport type { LibLoaderVariant, ReactElement } from \"../../types\"\n\n/**\n * Toast utility functions for displaying different types of notification messages with customizable options and automatic styling.\n *\n * @namespace toast\n *\n * @example\n * // Success toast\n * toast.success(\"Operation completed!\", {\n * body: \"Your changes have been saved.\",\n * duration: 5000\n * })\n *\n * // Error toast\n * toast.error(\"Something went wrong!\", {\n * body: \"Please try again later.\"\n * })\n *\n * // Close all toasts\n * toast.close()\n *\n * @prop {function} success - Display a success toast notification with green styling.\n * @prop {function} error - Display an error toast notification with red styling.\n * @prop {function} warning - Display a warning toast notification with yellow styling.\n * @prop {function} info - Display an info toast notification with blue styling.\n * @prop {function} loading - Display a loading toast notification with gray styling.\n * @prop {function} close - Close/dismiss all active toast notifications.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/toast\n */\nexport const toast = {\n\tsuccess: (\n\t\ttitle: string,\n\t\toptions?: Omit<ILibToast, \"status\" | \"closeToast\" | \"title\"> &\n\t\t\tOmit<\n\t\t\t\tToastOptions,\n\t\t\t\t| \"icon\"\n\t\t\t\t| \"closeButton\"\n\t\t\t\t| \"style\"\n\t\t\t\t| \"autoClose\"\n\t\t\t\t| \"className\"\n\t\t\t\t| \"progressClassName\"\n\t\t\t> & { duration?: number; iconClose?: ReactElement },\n\t) =>\n\t\ttoastFn.success(\n\t\t\t({ closeToast }) => (\n\t\t\t\t<Toast\n\t\t\t\t\t{...options}\n\t\t\t\t\tcloseToast={closeToast}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tstatus=\"success\"\n\t\t\t\t\ticonClose={options?.iconClose}\n\t\t\t\t/>\n\t\t\t),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ticon: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tstyle: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\theight: \"unset\",\n\t\t\t\t\tminHeight: \"unset\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t},\n\t\t\t\tautoClose: options?.duration,\n\t\t\t\tclassName: \"!relative !overflow-hidden\",\n\t\t\t\tprogressClassName: \"!bg-success-500 absolute !left-0 !bottom-0\",\n\t\t\t},\n\t\t),\n\terror: (\n\t\ttitle: string,\n\t\toptions?: Omit<ILibToast, \"status\" | \"closeToast\" | \"title\"> &\n\t\t\tOmit<\n\t\t\t\tToastOptions,\n\t\t\t\t| \"icon\"\n\t\t\t\t| \"closeButton\"\n\t\t\t\t| \"style\"\n\t\t\t\t| \"autoClose\"\n\t\t\t\t| \"className\"\n\t\t\t\t| \"progressClassName\"\n\t\t\t> & { duration?: number; iconClose?: ReactElement },\n\t) =>\n\t\ttoastFn.error(\n\t\t\t({ closeToast }) => (\n\t\t\t\t<Toast\n\t\t\t\t\t{...options}\n\t\t\t\t\tcloseToast={closeToast}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tstatus=\"error\"\n\t\t\t\t\ticonClose={options?.iconClose}\n\t\t\t\t/>\n\t\t\t),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ticon: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tstyle: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\theight: \"unset\",\n\t\t\t\t\tminHeight: \"unset\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t},\n\t\t\t\thideProgressBar: false,\n\t\t\t\tautoClose: options?.duration,\n\t\t\t\tclassName: \"!relative !overflow-hidden\",\n\t\t\t\tprogressClassName: \"!bg-danger-500 absolute !left-0 !bottom-0\",\n\t\t\t},\n\t\t),\n\twarning: (\n\t\ttitle: string,\n\t\toptions?: Omit<ILibToast, \"status\" | \"closeToast\" | \"title\"> &\n\t\t\tOmit<\n\t\t\t\tToastOptions,\n\t\t\t\t| \"icon\"\n\t\t\t\t| \"closeButton\"\n\t\t\t\t| \"style\"\n\t\t\t\t| \"autoClose\"\n\t\t\t\t| \"className\"\n\t\t\t\t| \"progressClassName\"\n\t\t\t> & { duration?: number; iconClose?: ReactElement },\n\t) =>\n\t\ttoastFn.warning(\n\t\t\t({ closeToast }) => (\n\t\t\t\t<Toast\n\t\t\t\t\t{...options}\n\t\t\t\t\tcloseToast={closeToast}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\ticonClose={options?.iconClose}\n\t\t\t\t/>\n\t\t\t),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ticon: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tstyle: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\theight: \"unset\",\n\t\t\t\t\tminHeight: \"unset\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t},\n\t\t\t\thideProgressBar: false,\n\t\t\t\tautoClose: options?.duration,\n\t\t\t\tclassName: \"!relative !overflow-hidden\",\n\t\t\t\tprogressClassName: \"!bg-warning-500 absolute !left-0 !bottom-0\",\n\t\t\t},\n\t\t),\n\tinfo: (\n\t\ttitle: string,\n\t\toptions?: Omit<ILibToast, \"status\" | \"closeToast\" | \"title\"> &\n\t\t\tOmit<\n\t\t\t\tToastOptions,\n\t\t\t\t| \"icon\"\n\t\t\t\t| \"closeButton\"\n\t\t\t\t| \"style\"\n\t\t\t\t| \"autoClose\"\n\t\t\t\t| \"className\"\n\t\t\t\t| \"progressClassName\"\n\t\t\t> & { duration?: number; iconClose?: ReactElement },\n\t) =>\n\t\ttoastFn.info(\n\t\t\t({ closeToast }) => (\n\t\t\t\t<Toast\n\t\t\t\t\t{...options}\n\t\t\t\t\tcloseToast={closeToast}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tstatus=\"info\"\n\t\t\t\t\ticonClose={options?.iconClose}\n\t\t\t\t/>\n\t\t\t),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ticon: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tstyle: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\theight: \"unset\",\n\t\t\t\t\tminHeight: \"unset\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t},\n\t\t\t\thideProgressBar: false,\n\t\t\t\tautoClose: options?.duration,\n\t\t\t\tclassName: \"!relative !overflow-hidden\",\n\t\t\t\tprogressClassName: \"!bg-primary-500 absolute !left-0 !bottom-0\",\n\t\t\t},\n\t\t),\n\tloading: (\n\t\ttitle: string,\n\t\toptions?: Omit<ILibToast, \"status\" | \"closeToast\" | \"title\"> &\n\t\t\tOmit<\n\t\t\t\tToastOptions,\n\t\t\t\t| \"icon\"\n\t\t\t\t| \"closeButton\"\n\t\t\t\t| \"style\"\n\t\t\t\t| \"autoClose\"\n\t\t\t\t| \"className\"\n\t\t\t\t| \"progressClassName\"\n\t\t\t> & {\n\t\t\t\tduration?: number\n\t\t\t\ticonClose?: ReactElement\n\t\t\t\tloaderVariant?: LibLoaderVariant\n\t\t\t},\n\t) =>\n\t\ttoastFn.loading(\n\t\t\t({ closeToast }) => (\n\t\t\t\t<Toast\n\t\t\t\t\t{...options}\n\t\t\t\t\tcloseToast={closeToast}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tstatus=\"loading\"\n\t\t\t\t\tloaderVariant={options?.loaderVariant}\n\t\t\t\t\ticonClose={options?.iconClose}\n\t\t\t\t/>\n\t\t\t),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ticon: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tstyle: {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\theight: \"unset\",\n\t\t\t\t\tminHeight: \"unset\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t},\n\t\t\t\thideProgressBar: false,\n\t\t\t\tautoClose: options?.duration,\n\t\t\t\tclassName: \"!relative !overflow-hidden\",\n\t\t\t\tprogressClassName: \"!bg-gray-500 absolute !left-0 !bottom-0\",\n\t\t\t},\n\t\t),\n\tclose: () => toastFn.dismiss(),\n}\n","import { type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx, genBgColor50, genBorderColorShort } from \"../../utils\"\nimport type { ILibAlert } from \"./types\"\n\n/**\n * Alert component for displaying informational messages with customizable colors and styling.\n *\n * @component\n *\n * @example\n * <Alert color=\"success\">\n * Operation completed successfully!\n * </Alert>\n * <Alert color=\"danger\">\n * <Text>Error occurred</Text>\n * <Text>Please try again</Text>\n * </Alert>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the alert container.\n * @prop {React.ElementType} [props.element=typeof children === \"string\" ? Text : \"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the alert element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the alert.\n * @prop {LibAllColors} [props.color=\"primary\"] - Color theme for the alert background and border.\n *\n * @returns {JSX.Element} The rendered Alert component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/alert\n */\nexport const Alert: FC<ILibAlert> = ({\n\tchildren,\n\tclassName,\n\telement = typeof children === \"string\" ? Text : \"div\",\n\tref,\n\tcolor = \"primary\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col gap-2 px-4 py-2 border rounded-md w-full max-w-[400px]\",\n\t\t\t\tgenBgColor50[color],\n\t\t\t\tgenBorderColorShort[color],\n\t\t\t\t\"alert\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { BiX } from \"react-icons/bi\"\nimport { enableScroll } from \"@julseb-lib/utils\"\nimport { useKeyPress, useClickOutside } from \"../../hooks\"\nimport { clsx } from \"../../utils\"\nimport type { ILibModal } from \"./types\"\n\n/**\n * Modal component for displaying overlay content with backdrop, close functionality, and keyboard navigation support.\n *\n * @component\n *\n * @example\n * <Modal\n * isOpen={isOpen}\n * setIsOpen={setIsOpen}\n * labelClose=\"Close dialog\"\n * >\n * <div className=\"bg-white p-6 rounded-lg\">\n * <h2>Modal Content</h2>\n * <p>This is a modal dialog.</p>\n * </div>\n * </Modal>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the modal container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the modal element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the modal.\n * @prop {boolean} [props.isOpen] - Whether the modal is currently visible.\n * @prop {function} [props.setIsOpen] - Function to control the modal open/closed state.\n * @prop {boolean} [props.disableEsc] - Whether to disable closing the modal with the Escape key.\n * @prop {boolean} [props.hideCloseButton] - Whether to hide the close button in the modal.\n * @prop {React.ReactNode} [props.closeIcon=<BiX size={32} />] - Custom close icon for the modal.\n * @prop {string} [props.labelClose=\"Close modal\"] - Aria label for the close button.\n *\n * @returns {JSX.Element} The rendered Modal component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/modal\n */\nexport const Modal: FC<ILibModal> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tisOpen,\n\tsetIsOpen,\n\tdisableEsc,\n\thideCloseButton,\n\tcloseIcon = <BiX size={32} />,\n\tlabelClose = \"Close modal\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst el = useRef<HTMLDivElement>(null)\n\n\tconst handleClose = () => {\n\t\tif (isOpen) {\n\t\t\tsetIsOpen(false)\n\t\t\tenableScroll()\n\t\t}\n\t}\n\n\tuseClickOutside(el as any, handleClose)\n\tuseKeyPress(\"Escape\", () => {\n\t\tif (isOpen && !disableEsc) handleClose()\n\t})\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"top-0 left-0 z-999 fixed flex justify-center items-center bg-overlay-black-80 w-full h-svh\",\n\t\t\t\tisOpen && \"open\",\n\t\t\t\t\"invisible opacity-0 [&.open]:visible [&.open]:opacity-100\",\n\t\t\t\t\"modal\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<button\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"top-2 right-2 z-10 absolute flex justify-center items-center size-12 text-white hover:text-gray-300 active:text-gray-100\",\n\t\t\t\t\t\"modal-close\",\n\t\t\t\t)}\n\t\t\t\tonClick={() => setIsOpen(false)}\n\t\t\t\taria-label={labelClose}\n\t\t\t\trole=\"button\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{closeIcon}\n\t\t\t</button>\n\n\t\t\t<div\n\t\t\t\tref={el}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"z-0 relative flex justify-center items-center w-full max-w-[90%]\",\n\t\t\t\t\t\"modal-content\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</Element>\n\t)\n}\n","import { useRef, useState, Fragment, type FC, type DragEvent } from \"react\"\nimport { Hr } from \"../Hr\"\nimport { DragListItem } from \"./DragListItem\"\nimport { clsx } from \"../../utils\"\nimport type { ILibDragList } from \"./types\"\n\n/**\n * DragList component for creating draggable and reorderable lists with customizable items and separators.\n *\n * @component\n *\n * @example\n * <DragList\n * items={dragItems}\n * setItems={setDragItems}\n * iconDrag={<GripVertical />}\n * hideSeparator={false}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the drag list container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the drag list element.\n * @prop {React.ReactNode} [props.children] - Child components to render when not using items prop.\n * @prop {React.ReactNode} [props.iconDrag] - Icon to display as the drag handle for each item.\n * @prop {\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [props.borderRadius] - Border radius size for the drag list container.\n * @prop {Array} [props.items] - Array of draggable items with id, title, and body properties.\n * @prop {function} [props.setItems] - Function to update the items array when items are reordered.\n * @prop {boolean} [props.hideSeparator] - Whether to hide separators between draggable items.\n *\n * @returns {JSX.Element} The rendered DragList component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/drag-list\n */\nexport const DragList: FC<ILibDragList> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\ticonDrag,\n\tborderRadius,\n\titems,\n\tsetItems,\n\thideSeparator,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst [dragIndex, setDragIndex] = useState(-1)\n\tconst dragNode = useRef<HTMLDivElement>(null)\n\n\tconst handleDragStart = (e: DragEvent<HTMLDivElement>, i: number) => {\n\t\tconst { target } = e\n\t\tsetDragIndex(i)\n\n\t\tif (dragNode && dragNode.current) {\n\t\t\t// @ts-ignore\n\t\t\tdragNode.current = target as HTMLDivElement\n\t\t\te.dataTransfer.effectAllowed = \"move\"\n\n\t\t\tif (target instanceof HTMLElement) {\n\t\t\t\te.dataTransfer.setData(\"text/html\", target.outerHTML)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleDragOver = (e: DragEvent<HTMLDivElement>, i: number) => {\n\t\te.preventDefault()\n\n\t\tif (dragNode.current !== e.target && items) {\n\t\t\tconst newItems = [...items]\n\t\t\tnewItems.splice(i, 0, newItems.splice(dragIndex, 1)[0])\n\t\t\tsetDragIndex(i)\n\t\t\tsetItems(newItems)\n\t\t}\n\t}\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col items-stretch gap-3 p-3 border border-gray-200 rounded-md w-full\",\n\t\t\t\t\"drag-list\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{items\n\t\t\t\t? items.map((item, i) => (\n\t\t\t\t\t\t<Fragment key={item.id}>\n\t\t\t\t\t\t\t<DragListItem\n\t\t\t\t\t\t\t\t{...item}\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\tid={item.id}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\thandleDragStart={handleDragStart}\n\t\t\t\t\t\t\t\thandleDragOver={handleDragOver}\n\t\t\t\t\t\t\t\ticonDrag={iconDrag}\n\t\t\t\t\t\t\t\tclassName={clsx(item.className)}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{!hideSeparator && i !== items.length - 1 && (\n\t\t\t\t\t\t\t\t<Hr className=\"drag-list-separator\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t))\n\t\t\t\t: children}\n\t\t</Element>\n\t)\n}\n","import { type FC, type DragEvent } from \"react\"\nimport { BiDotsVerticalRounded } from \"react-icons/bi\"\nimport { Text } from \"../Text\"\nimport { clsx, genRingColor } from \"../../utils\"\nimport type { ILibDragListItem } from \"./types\"\n\n/**\n * DragListItem component for rendering individual draggable items within a drag list with drag handles and content.\n *\n * @component\n *\n * @example\n * <DragListItem\n * item={{ id: \"1\", title: \"Item Title\", body: \"Item description\" }}\n * index={0}\n * handleDragStart={handleDragStart}\n * handleDragOver={handleDragOver}\n * iconDrag={<GripVertical />}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the drag list item.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the drag list item element.\n * @prop {React.ReactNode} [props.children] - Child components to render when not using item prop.\n * @prop {number} [props.index] - Index position of the item in the drag list.\n * @prop {React.ReactNode} [props.iconDrag=<BiDotsVerticalRounded size={24} />] - Icon to display as the drag handle.\n * @prop {function} [props.handleDragStart] - Function called when drag operation starts.\n * @prop {function} [props.handleDragOver] - Function called when dragging over this item.\n * @prop {object} [props.item] - Item object containing id, title, and body properties.\n * @prop {string} [props.id] - Unique identifier for the drag list item.\n * @prop {string} [props.iconLabel=\"Drag\"] - Aria label for the drag handle button.\n *\n * @returns {JSX.Element} The rendered DragListItem component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/drag-list\n */\nexport const DragListItem: FC<ILibDragListItem> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tindex,\n\ticonDrag = <BiDotsVerticalRounded size={24} />,\n\thandleDragStart,\n\thandleDragOver,\n\titem,\n\tid,\n\ticonLabel = \"Drag\",\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex items-start gap-2 w-full cursor-grab active:cursor-grabbing\",\n\t\t\t\t\"drag-list-item\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tid={item?.id ?? id}\n\t\t\tdraggable\n\t\t\tonDragStart={(e: DragEvent<HTMLDivElement>) =>\n\t\t\t\thandleDragStart(e, index)\n\t\t\t}\n\t\t\tonDragOver={(e: DragEvent<HTMLDivElement>) =>\n\t\t\t\thandleDragOver(e, index)\n\t\t\t}\n\t\t>\n\t\t\t<button\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={iconLabel}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"outline-none cursor-grab! active:cursor-grabbing\",\n\t\t\t\t\t\"drag-list-item-button\",\n\t\t\t\t\tgenRingColor[\"gray\"],\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{iconDrag}\n\t\t\t</button>\n\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"flex flex-col gap-1 grow\",\n\t\t\t\t\t\"drag-list-item-content\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{item ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{typeof item.title === \"string\" ? (\n\t\t\t\t\t\t\t<Text tag=\"h6\" className=\"drag-list-item-title\">\n\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{item.body &&\n\t\t\t\t\t\t\t(typeof item.body === \"string\" ? (\n\t\t\t\t\t\t\t\t<Text className=\"drag-list-item-body\">\n\t\t\t\t\t\t\t\t\t{item.body}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\titem.body\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiLeftArrowAlt, BiRightArrowAlt } from \"react-icons/bi\"\nimport { usePagination, useMaxWidth } from \"../../hooks\"\nimport { PaginationButton } from \"./PaginationButton\"\nimport { clsx } from \"../../utils\"\nimport type { ILibPagination } from \"./types\"\n\n/**\n * Pagination component for navigating through multiple pages of content with customizable styling and navigation controls.\n *\n * @component\n *\n * @example\n * <Pagination\n * currentPage={currentPage}\n * setCurrentPage={setCurrentPage}\n * totalPages={20}\n * accentColor=\"primary\"\n * pageLimit={5}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the pagination container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the pagination element.\n * @prop {React.ReactNode} [props.children] - Child components to render when not using totalPages prop.\n * @prop {LibAllColors} [props.accentColor=\"primary\"] - Color theme for active page and hover states.\n * @prop {number} [props.totalPages] - Total number of pages available for navigation.\n * @prop {object} [props.icons] - Custom icons for previous and next navigation buttons.\n * @prop {React.ReactNode} [props.icons.prev] - Custom icon for the previous page button.\n * @prop {React.ReactNode} [props.icons.next] - Custom icon for the next page button.\n * @prop {number} [props.pageLimit=5] - Maximum number of page buttons to display at once.\n * @prop {number} [props.currentPage] - Current active page number.\n * @prop {function} [props.setCurrentPage] - Function to update the current page state.\n *\n * @returns {JSX.Element} The rendered Pagination component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/pagination\n */\nexport const Pagination: FC<ILibPagination> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\taccentColor = \"primary\",\n\ttotalPages,\n\ticons,\n\tpageLimit = 5,\n\tcurrentPage,\n\tsetCurrentPage,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst { handlePrev, handlePage, handleNext } = usePagination({\n\t\tcurrentPage: currentPage!,\n\t\tsetCurrentPage: setCurrentPage!,\n\t\ttotalPages,\n\t})\n\n\tconst getPaginationGroup = () => {\n\t\tconst start = Math.floor((currentPage! - 1) / pageLimit) * pageLimit\n\n\t\treturn new Array(pageLimit)\n\t\t\t.fill(totalPages)\n\t\t\t.map((_, i) => start + i + 1)\n\t\t\t.filter(item => item <= (totalPages || 0))\n\t}\n\n\tconst paginationGroup = getPaginationGroup()\n\n\tconst isMobile = useMaxWidth(600)\n\n\tif (totalPages && totalPages <= 1) return null\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex justify-center w-full\",\n\t\t\t\tisMobile ? \"gap-1\" : \"gap-2\",\n\t\t\t\t\"pagination\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{totalPages ? (\n\t\t\t\t<>\n\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\tonClick={handlePrev}\n\t\t\t\t\t\tisActive={false}\n\t\t\t\t\t\tdisabled={currentPage === 1}\n\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icons?.prev ?? <BiLeftArrowAlt size={24} />}\n\t\t\t\t\t</PaginationButton>\n\n\t\t\t\t\t{paginationGroup[0] !== 1 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\t\t\tisActive={currentPage === 1}\n\t\t\t\t\t\t\t\tonClick={() => handlePage(1)}\n\t\t\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t1\n\t\t\t\t\t\t\t</PaginationButton>\n\n\t\t\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t...\n\t\t\t\t\t\t\t</PaginationButton>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{paginationGroup.map(n => (\n\t\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\t\tisActive={n === currentPage}\n\t\t\t\t\t\t\tonClick={() => handlePage(n)}\n\t\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t\t\tkey={n}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{n}\n\t\t\t\t\t\t</PaginationButton>\n\t\t\t\t\t))}\n\n\t\t\t\t\t{paginationGroup[paginationGroup.length - 1] !==\n\t\t\t\t\t\ttotalPages && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t...\n\t\t\t\t\t\t\t</PaginationButton>\n\n\t\t\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\t\t\tisActive={currentPage === totalPages}\n\t\t\t\t\t\t\t\tonClick={() => handlePage(totalPages)}\n\t\t\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{totalPages}\n\t\t\t\t\t\t\t</PaginationButton>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<PaginationButton\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\tisActive={false}\n\t\t\t\t\t\tdisabled={currentPage === totalPages}\n\t\t\t\t\t\taccentColor={accentColor}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icons?.next ?? <BiRightArrowAlt size={24} />}\n\t\t\t\t\t</PaginationButton>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx, genBgColorHover, genTextColorHover } from \"../../utils\"\nimport type { ILibPaginationButton } from \"./types\"\n\n/**\n * PaginationButton component for rendering individual page navigation buttons with active states and styling.\n *\n * @component\n *\n * @example\n * <PaginationButton\n * accentColor=\"primary\"\n * isActive={currentPage === 5}\n * onClick={() => handlePage(5)}\n * >\n * 5\n * </PaginationButton>\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the pagination button.\n * @prop {React.ElementType} [props.element=\"button\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the pagination button element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the button (usually page number).\n * @prop {LibAllColors} [props.accentColor=\"primary\"] - Color theme for active and hover states.\n * @prop {boolean} [props.isActive] - Whether this button represents the current active page.\n * @prop {boolean} [props.readOnly] - Whether the button is in read-only mode (non-interactive).\n *\n * @returns {JSX.Element} The rendered PaginationButton component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/pagination\n */\nexport const PaginationButton: FC<ILibPaginationButton> = ({\n\tclassName,\n\telement = \"button\",\n\tref,\n\tchildren,\n\taccentColor = \"primary\",\n\tisActive,\n\treadOnly,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex justify-center items-center rounded-full size-8 font-bold\",\n\t\t\t\t\"disabled:text-gray-500\",\n\t\t\t\treadOnly && \"readOnly\",\n\t\t\t\tisActive && \"active\",\n\t\t\t\t!readOnly && !isActive && genTextColorHover[accentColor],\n\t\t\t\t!readOnly &&\n\t\t\t\t\tisActive && [genBgColorHover[accentColor], \"text-white\"],\n\t\t\t\t\"[&.readOnly]:cursor-default!\",\n\t\t\t\t\"pagination-button\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC, type ChangeEvent } from \"react\"\nimport { BiLeftArrowAlt, BiRightArrowAlt } from \"react-icons/bi\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport { Text } from \"../Text\"\nimport { usePagination } from \"../../hooks\"\nimport { clsx } from \"../../utils\"\nimport type { ILibPaginator } from \"./types\"\n\n/**\n * Paginator component for simple page navigation with input field and next/previous buttons.\n *\n * @component\n *\n * @example\n * <Paginator\n * currentPage={currentPage}\n * setCurrentPage={setCurrentPage}\n * totalPages={20}\n * texts={{ page: \"Page\", of: \"of\" }}\n * labels={{ prev: \"Previous\", next: \"Next\" }}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the paginator container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the paginator element.\n * @prop {number} [props.totalPages] - Total number of pages available for navigation.\n * @prop {number} [props.currentPage] - Current active page number.\n * @prop {function} [props.setCurrentPage] - Function to update the current page state.\n * @prop {boolean} [props.noInput] - Whether to hide the page input field and show read-only text.\n * @prop {object} [props.texts] - Custom text labels for page display.\n * @prop {string} [props.texts.page=\"Page\"] - Text label for \"Page\".\n * @prop {string} [props.texts.of=\"of\"] - Text label for \"of\".\n * @prop {object} [props.icons] - Custom icons for navigation buttons.\n * @prop {React.ReactNode} [props.icons.prev] - Custom icon for the previous page button.\n * @prop {React.ReactNode} [props.icons.next] - Custom icon for the next page button.\n * @prop {object} [props.labels] - Custom aria labels and tooltips for navigation buttons.\n * @prop {string} [props.labels.prev=\"Previous\"] - Label for the previous page button.\n * @prop {string} [props.labels.next=\"Next\"] - Label for the next page button.\n * @prop {boolean} [props.hideButtonsTooltip] - Whether to hide tooltips on navigation buttons.\n * @prop {function} [props.handlePrev] - Custom handler for previous page navigation.\n * @prop {function} [props.handleNext] - Custom handler for next page navigation.\n * @prop {function} [props.handlePage] - Custom handler for direct page navigation.\n *\n * @returns {JSX.Element} The rendered Paginator component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/paginator\n */\nexport const Paginator: FC<ILibPaginator> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\ttotalPages,\n\tcurrentPage,\n\tsetCurrentPage,\n\tnoInput,\n\ttexts,\n\ticons,\n\tlabels,\n\thideButtonsTooltip,\n\thandlePrev,\n\thandleNext,\n\thandlePage,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst {\n\t\thandlePrev: handlePrevPage,\n\t\thandlePage: handleNewPage,\n\t\thandleNext: handleNextPage,\n\t} = usePagination({ currentPage, setCurrentPage, totalPages })\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) =>\n\t\thandlePage\n\t\t\t? handlePage(Number(e.target.value))\n\t\t\t: handleNewPage(Number(e.target.value))\n\n\tif (totalPages && totalPages <= 1) return null\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\"flex gap-2\", \"paginator\", className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{noInput ? (\n\t\t\t\t<Text className=\"paginator-text\">\n\t\t\t\t\t{texts?.page ?? \"Page\"} {currentPage} {texts?.of ?? \"of\"}{\" \"}\n\t\t\t\t\t{totalPages}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\t<span className=\"paginator-text-wrapper\">\n\t\t\t\t\t{texts?.page ?? \"Page\"}{\" \"}\n\t\t\t\t\t<input\n\t\t\t\t\t\tvalue={currentPage}\n\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tstep={1}\n\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\tmax={totalPages}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"px-2 border border-gray-200 rounded-md outline-none w-[calc(2ch+20px)]\",\n\t\t\t\t\t\t\t\"focus:border-primary-500\",\n\t\t\t\t\t\t\t\"[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 [appearance:textfield]\",\n\t\t\t\t\t\t\t\"paginator-input\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tsize={currentPage.toString().length + 1}\n\t\t\t\t\t/>{\" \"}\n\t\t\t\t\t{texts?.of ?? \"of\"} {totalPages}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<ButtonIcon\n\t\t\t\ticon={icons?.prev ?? <BiLeftArrowAlt />}\n\t\t\t\tclassName=\"size-6 paginator-button\"\n\t\t\t\tdisabled={currentPage === 1}\n\t\t\t\tonClick={handlePrev ?? handlePrevPage}\n\t\t\t\taria-label={labels?.prev ?? \"Previous\"}\n\t\t\t\ttooltip={labels?.prev ?? \"Previous\"}\n\t\t\t\tshowTooltip={!hideButtonsTooltip && { offset: \"xs\" }}\n\t\t\t/>\n\n\t\t\t<ButtonIcon\n\t\t\t\ticon={icons?.next ?? <BiRightArrowAlt />}\n\t\t\t\tclassName=\"size-6 paginator-button\"\n\t\t\t\tdisabled={currentPage === totalPages}\n\t\t\t\tonClick={handleNext ?? handleNextPage}\n\t\t\t\taria-label={labels?.next ?? \"Next\"}\n\t\t\t\ttooltip={labels?.next ?? \"Next\"}\n\t\t\t\tshowTooltip={!hideButtonsTooltip && { offset: \"xs\" }}\n\t\t\t/>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { getPercentage } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport type { ILibProgressBar } from \"./types\"\nimport type { LibColorsShort } from \"../../types\"\n\n/**\n * ProgressBar component for displaying progress with customizable colors and animations using a meter element.\n *\n * @component\n *\n * @example\n * <ProgressBar\n * value={75}\n * color=\"primary\"\n * max={100}\n * />\n *\n * @extends HTMLMeterElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the progress bar.\n * @prop {React.Ref<HTMLMeterElement>} [props.ref] - Ref to the progress bar element.\n * @prop {number} [props.value] - Current progress value.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Color theme for the progress bar fill.\n * @prop {boolean} [props.noAnimation] - Whether to disable the progress animation.\n * @prop {number} [props.min=0] - Minimum value for the progress bar.\n * @prop {number} [props.max=100] - Maximum value for the progress bar.\n * @prop {string} [props.id] - Unique identifier for the progress bar element.\n *\n * @returns {JSX.Element} The rendered ProgressBar component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/progress-bar\n */\nexport const ProgressBar: FC<ILibProgressBar> = ({\n\tclassName,\n\tref,\n\tvalue,\n\tcolor = \"primary\",\n\tnoAnimation,\n\tmin = 0,\n\tmax = 100,\n\tid,\n\t...rest\n}) => {\n\tconst percent = getPercentage(value, Number(max))\n\n\treturn (\n\t\t<meter\n\t\t\tref={ref}\n\t\t\tid={id}\n\t\t\tclassName={clsx(\n\t\t\t\t\"block relative bg-gray-200 border-none rounded-full w-full h-4 overflow-hidden\",\n\t\t\t\t\"before:h-full before:absolute before:top-0 before:left-0 before:rounded-full before:transition-all before:ease-in-out before:duration-200\",\n\t\t\t\t\"appearance-none [&::-webkit-meter-bar]:bg-none [&::-webkit-meter-bar]:border-none\",\n\t\t\t\t\"[&::-webkit-meter-optimum-value]:bg-none [&::-webkit-meter-suboptimum-value]:bg-none [&::-webkit-meter-even-less-good-value]:bg-none\",\n\t\t\t\t\"[&::-moz-meter-bar]:bg-none [&::-moz-meter-bar]:border-none\",\n\t\t\t\t!noAnimation &&\n\t\t\t\t\t\"before:animate-[progress-bar_calc(var(--progress-speed)*50ms)_ease_forwards]\",\n\t\t\t\tnoAnimation && \"before:w-(--meter-value)\",\n\t\t\t\tgenProgressColor[color],\n\t\t\t\t\"progress-bar\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={{\n\t\t\t\t[\"--meter-value\" as any]: `${percent}%`,\n\t\t\t\t[\"--progress-speed\" as any]: value,\n\t\t\t}}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tvalue={value}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n\nconst genProgressColor: Record<\n\tExclude<LibColorsShort, \"transparent\" | \"current\" | \"black\" | \"background\">,\n\tstring\n> = {\n\tprimary: \"before:bg-primary-500\",\n\tsecondary: \"before:bg-secondary-500\",\n\tsuccess: \"before:bg-success-500\",\n\tdanger: \"before:bg-danger-500\",\n\twarning: \"before:bg-warning-500\",\n\tgray: \"before:bg-gray-500\",\n\twhite: \"before:bg-white\",\n}\n","import { useEffect, useState, type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { COLORS } from \"../../Variables\"\nimport { clsx, designTokens } from \"../../utils\"\nimport type { ILibProgressCircle } from \"./types\"\nimport type { LibColorsShort } from \"../../types\"\n\n/**\n * ProgressCircle component for displaying circular progress with customizable colors and smooth animations using SVG.\n *\n * @component\n *\n * @example\n * <ProgressCircle\n * value={75}\n * color=\"primary\"\n * size={120}\n * showValue\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the progress circle.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the progress circle element.\n * @prop {number} [props.value] - Current progress value (0-100).\n * @prop {number} [props.size=48] - Size of the progress circle in pixels.\n * @prop {number} [props.strokeWidth=4] - Width of the progress stroke.\n * @prop {boolean} [props.noAnimation] - Whether to disable the progress animation.\n * @prop {\"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"gray\" | \"white\"} [props.color=\"primary\"] - Color theme for the progress circle stroke.\n * @prop {boolean} [props.showValue] - Whether to display the percentage value in the center.\n * @prop {React.ReactNode} [props.icon] - Custom icon to display in the center instead of value.\n *\n * @returns {JSX.Element} The rendered ProgressCircle component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/progress-circle\n */\nexport const ProgressCircle: FC<ILibProgressCircle> = ({\n\telement = \"div\",\n\tclassName,\n\tref,\n\tvalue,\n\tsize = 48,\n\tstrokeWidth = 4,\n\tnoAnimation,\n\tcolor = \"primary\",\n\tshowValue,\n\ticon,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst [animatedValue, setAnimatedValue] = useState(noAnimation ? value : 0)\n\tconst radius = (size - strokeWidth) / 2\n\tconst circumference = 2 * Math.PI * radius\n\tconst strokeDashoffset =\n\t\tcircumference - (animatedValue / 100) * circumference\n\tconst backgroundColor = designTokens.libColors[\"gray-200\"]\n\tconst strokeColor = genStrokeColor[color]\n\n\tuseEffect(() => {\n\t\tif (!noAnimation) {\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tsetAnimatedValue(value)\n\t\t\t}, 50)\n\t\t\treturn () => clearTimeout(timer)\n\t\t} else {\n\t\t\tsetAnimatedValue(value)\n\t\t}\n\t}, [value, noAnimation])\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"inline-flex relative justify-center items-center\",\n\t\t\t\t\"progress-circle-wrapper\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<svg\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tclassName=\"-rotate-90 transform progress-circle\"\n\t\t\t>\n\t\t\t\t<circle\n\t\t\t\t\tcx={size / 2}\n\t\t\t\t\tcy={size / 2}\n\t\t\t\t\tr={radius}\n\t\t\t\t\tstroke={backgroundColor}\n\t\t\t\t\tstrokeWidth={strokeWidth}\n\t\t\t\t\tfill=\"transparent\"\n\t\t\t\t\tclassName=\"progress-circle-background\"\n\t\t\t\t/>\n\n\t\t\t\t<circle\n\t\t\t\t\tcx={size / 2}\n\t\t\t\t\tcy={size / 2}\n\t\t\t\t\tr={radius}\n\t\t\t\t\tstroke={strokeColor}\n\t\t\t\t\tstrokeWidth={strokeWidth}\n\t\t\t\t\tfill=\"transparent\"\n\t\t\t\t\tstrokeDasharray={circumference}\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tstrokeDashoffset: strokeDashoffset,\n\t\t\t\t\t\ttransition: noAnimation\n\t\t\t\t\t\t\t? \"none\"\n\t\t\t\t\t\t\t: `stroke-dashoffset ${value * 20}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"progress-circle-value\"\n\t\t\t\t/>\n\t\t\t</svg>\n\n\t\t\t{(showValue || icon) && (\n\t\t\t\t<div className=\"absolute inset-0 flex justify-center items-center progress-circle-center\">\n\t\t\t\t\t{icon && icon}\n\n\t\t\t\t\t{showValue && (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"small\"\n\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\tclassName=\"progress-circle-value\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}%\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n\nconst genStrokeColor: Record<\n\tExclude<LibColorsShort, \"transparent\" | \"current\" | \"black\" | \"background\">,\n\tstring\n> = {\n\tprimary: COLORS.PRIMARY_500,\n\tsecondary: COLORS.SECONDARY_500,\n\tsuccess: COLORS.SUCCESS_500,\n\tdanger: COLORS.DANGER_500,\n\twarning: COLORS.WARNING_500,\n\tgray: COLORS.GRAY_500,\n\twhite: COLORS.WHITE,\n}\n","import { useState, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { TabsContainer } from \"./TabsContainer\"\nimport { TabsButtonsContainer } from \"./TabsButtonsContainer\"\nimport { TabsButton } from \"./TabsButton\"\nimport { TabsContent } from \"./TabsContent\"\nimport { clsx } from \"../../utils\"\nimport type { ILibTabs } from \"./types\"\n\n/**\n * Tabs component for creating tabbed interfaces with automatic state management and customizable styling.\n *\n * @component\n *\n * @example\n * const tabItems = [\n * { title: \"Tab 1\", content: \"Content for tab 1\" },\n * { title: \"Tab 2\", content: \"Content for tab 2\" },\n * { title: \"Tab 3\", content: \"Content for tab 3\" }\n * ]\n *\n * <Tabs\n * items={tabItems}\n * justify=\"stretch\"\n * variant=\"rounded\"\n * activeTab={0}\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tabs container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the tabs container element.\n * @prop {Array<LibTabItem>} [props.items] - Array of tab items containing title and content for each tab.\n * @prop {\"start\" | \"stretch\"} [props.justify=\"start\"] - Justification for positioning tabs within their container.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual variant for styling the tab buttons.\n * @prop {number} [props.activeTab=0] - Index of the initially active tab.\n *\n * @returns {JSX.Element} The rendered Tabs component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tabs\n */\nexport const Tabs: FC<ILibTabs> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\titems,\n\tjustify = \"start\",\n\tvariant = \"basic\",\n\tactiveTab = 0,\n\t...rest\n}) => {\n\tconst [tab, setTab] = useState(activeTab)\n\n\treturn (\n\t\t<TabsContainer\n\t\t\telement={element}\n\t\t\tref={ref}\n\t\t\tclassName={clsx(className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<TabsButtonsContainer justify={justify} variant={variant}>\n\t\t\t\t{items?.map((item, i) => (\n\t\t\t\t\t<TabsButton\n\t\t\t\t\t\t{...(item as any)}\n\t\t\t\t\t\tkey={item.id ?? uuid()}\n\t\t\t\t\t\tisActive={tab === i}\n\t\t\t\t\t\tonClick={() => setTab(i)}\n\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\tjustify={justify}\n\t\t\t\t\t>\n\t\t\t\t\t\t{item.title}\n\t\t\t\t\t</TabsButton>\n\t\t\t\t))}\n\t\t\t</TabsButtonsContainer>\n\n\t\t\t{items?.map((item, i) => (\n\t\t\t\t<TabsContent\n\t\t\t\t\t{...(item as any)}\n\t\t\t\t\tkey={uuid()}\n\t\t\t\t\tisActive={tab === i}\n\t\t\t\t>\n\t\t\t\t\t{item.content}\n\t\t\t\t</TabsContent>\n\t\t\t))}\n\t\t</TabsContainer>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { ILibTabsContainer } from \"./types\"\n\n/**\n * TabsContainer component for wrapping tab navigation and content panels with customizable styling.\n *\n * @component\n *\n * @example\n * <TabsContainer>\n * <TabsButtonsContainer>\n * <TabsButton>Tab 1</TabsButton>\n * <TabsButton>Tab 2</TabsButton>\n * </TabsButtonsContainer>\n * <TabsContent>Content 1</TabsContent>\n * <TabsContent>Content 2</TabsContent>\n * </TabsContainer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tabs container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the tabs container element.\n * @prop {React.ReactNode} [props.children] - Child components (typically TabsNav and TabsContent).\n *\n * @returns {JSX.Element} The rendered TabsContainer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tabs\n */\nexport const TabsContainer: FC<ILibTabsContainer> = ({\n\telement = \"div\",\n\tref,\n\tclassName,\n\tchildren,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\"flex flex-col gap-4\", \"tabs-container\", className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { ILibTabsButtonsContainer } from \"./types\"\n\n/**\n * TabsButtonsContainer component for wrapping tab navigation buttons with customizable layout and styling.\n *\n * @component\n *\n * @example\n * <TabsButtonsContainer justify=\"stretch\" variant=\"rounded\">\n * <TabsButton>Tab 1</TabsButton>\n * <TabsButton>Tab 2</TabsButton>\n * <TabsButton>Tab 3</TabsButton>\n * </TabsButtonsContainer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tabs buttons container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the tabs buttons container element.\n * @prop {React.ReactNode} [props.children] - Child components (typically TabsButton components).\n * @prop {\"start\" | \"stretch\"} [props.justify=\"start\"] - Justification for positioning tabs within their container.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual variant for styling the tab buttons.\n *\n * @returns {JSX.Element} The rendered TabsButtonsContainer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tabs\n */\nexport const TabsButtonsContainer: FC<ILibTabsButtonsContainer> = ({\n\telement = \"div\",\n\tref,\n\tclassName,\n\tchildren,\n\tjustify = \"start\",\n\tvariant = \"basic\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex gap-2\",\n\t\t\t\tvariant === \"basic\" && \"border-b border-b-gray-200\",\n\t\t\t\tvariant === \"rounded\" && \"bg-gray-200 rounded-md p-2\",\n\t\t\t\tjustify === \"start\" && \"justify-start\",\n\t\t\t\tjustify === \"stretch\" && \"justify-stretch\",\n\t\t\t\t\"tabs-buttons-container\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx, genRingColor } from \"../../utils\"\nimport type { ILibTabsButton } from \"./types\"\n\n/**\n * TabsButton component for individual tab navigation buttons with active states and customizable styling.\n *\n * @component\n *\n * @example\n * <TabsButton\n * isActive={activeTab === 'tab1'}\n * onClick={() => setActiveTab('tab1')}\n * variant=\"rounded\"\n * >\n * Tab 1\n * </TabsButton>\n *\n * @extends HTMLButtonElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tab button.\n * @prop {React.ElementType} [props.element=\"button\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the tab button element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the tab button.\n * @prop {\"start\" | \"stretch\"} [props.justify=\"start\"] - Justification for positioning the button content.\n * @prop {\"basic\" | \"rounded\"} [props.variant=\"basic\"] - Visual variant for styling the tab button.\n * @prop {boolean} [props.isActive] - Whether this tab button is currently active/selected.\n * @prop {function} [props.onClick] - Click handler function for tab selection.\n *\n * @returns {JSX.Element} The rendered TabsButton component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tabs\n */\nexport const TabsButton: FC<ILibTabsButton> = ({\n\telement = \"button\",\n\tref,\n\tclassName,\n\tchildren,\n\tjustify = \"start\",\n\tvariant = \"basic\",\n\tisActive,\n\tonClick,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"outline-none\",\n\t\t\t\tgenRingColor[\"primary\"],\n\t\t\t\tisActive && \"active\",\n\t\t\t\tvariant === \"basic\" && [\n\t\t\t\t\t\"text-left border-b border-b-transparent translate-y-[1px]\",\n\t\t\t\t\t\"[&.active]:border-b-primary-500\",\n\t\t\t\t],\n\t\t\t\tvariant === \"rounded\" && [\n\t\t\t\t\t\"rounded-md bg-transparent hover:bg-primary-300 active:bg-primary-600 hover:text-white py-1\",\n\t\t\t\t\t\"[&.active]:bg-primary-500 [&.active]:text-white\",\n\t\t\t\t],\n\t\t\t\tjustify === \"start\" && [\"min-w-[80px]\"],\n\t\t\t\tjustify === \"stretch\" && [\"grow\"],\n\t\t\t\t\"tabs-button\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Text } from \"../Text\"\nimport { clsx } from \"../../utils\"\nimport type { ILibTabContent } from \"./types\"\n\n/**\n * TabsContent component for displaying individual tab panel content with conditional rendering based on active state.\n *\n * @component\n *\n * @example\n * <TabsContent isActive={activeTab === 'tab1'}>\n * <h3>Tab 1 Content</h3>\n * <p>This is the content for the first tab.</p>\n * </TabsContent>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the tab content container.\n * @prop {React.ElementType} [props.element] - HTML element type to render as the container. Defaults to Text if children is string, otherwise \"div\".\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the tab content element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the tab panel.\n * @prop {boolean} [props.isActive] - Whether this tab content is currently active/visible.\n *\n * @returns {JSX.Element} The rendered TabsContent component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/tabs\n */\nexport const TabsContent: FC<ILibTabContent> = ({\n\tchildren,\n\telement = typeof children === \"string\" ? Text : \"div\",\n\tref,\n\tclassName,\n\tisActive,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\tisActive ? \"visible\" : \"hidden\",\n\t\t\t\t\"tabs-content\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import {\n\tChildren,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\ttype FC,\n\ttype TouchEvent,\n} from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx, genObjectFit, genBorderRadius } from \"../../utils\"\nimport { SlideshowButton } from \"./SlideshowButton\"\nimport { SlideshowPagination } from \"./SlideshowPagination\"\nimport type { ILibSlideshow } from \"./types\"\n\n/**\n * Slideshow component for displaying images or content with navigation controls, pagination, and touch/swipe support.\n *\n * @component\n *\n * @example\n * <Slideshow\n * images={[\"image1.jpg\", \"image2.jpg\", \"image3.jpg\"]}\n * controls={{ prev: <BiChevronLeft />, next: <BiChevronRight /> }}\n * pagination={{ type: \"dots\", position: \"outside\" }}\n * options={{ autoPlay: 3000, speed: 500 }}\n * imgFit=\"cover\"\n * borderRadius=\"md\"\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the slideshow container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the slideshow element.\n * @prop {React.ReactNode} [props.children] - Child components to display as slides when not using images prop.\n * @prop {\"cover\" | \"contain\" | \"fill\"} [props.imgFit=\"cover\"] - Object fit property for images in the slideshow.\n * @prop {object} [props.controls] - Configuration object for navigation control buttons.\n * @prop {boolean} [props.hideControls=false] - Whether to hide the navigation control buttons.\n * @prop {ILibPaginationOptions} [props.options] - Configuration options for autoplay timing and transition speed.\n * @prop {string[]} [props.images] - Array of image URLs to display in the slideshow.\n * @prop {object} [props.pagination] - Configuration object for pagination indicators and behavior.\n * @prop {boolean} [props.hidePagination] - Whether to hide the pagination indicators.\n * @prop {LibBorderRadius} [props.borderRadius] - Border radius variant for the slideshow container.\n *\n * @returns {JSX.Element} The rendered Slideshow component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/slideshow\n */\nexport const Slideshow: FC<ILibSlideshow> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\timgFit = \"cover\",\n\tcontrols,\n\thideControls = false,\n\toptions,\n\timages,\n\tpagination,\n\thidePagination,\n\tborderRadius,\n\t...rest\n}) => {\n\tconst Element = element\n\tconst childrenArray = Children.toArray(children)\n\tconst slides = images ?? childrenArray\n\tconst totalSlides = slides.length\n\n\tconst [currentSlide, setCurrentSlide] = useState(0)\n\tconst [isTransitioning, setIsTransitioning] = useState(false)\n\n\tconst touchStartX = useRef<number>(0)\n\tconst touchEndX = useRef<number>(0)\n\tconst touchStartY = useRef<number>(0)\n\tconst touchEndY = useRef<number>(0)\n\n\tconst [isDragging, setIsDragging] = useState(false)\n\tconst slidesRef = useRef<HTMLDivElement>(null)\n\n\tuseEffect(() => {\n\t\tif (totalSlides > 1) {\n\t\t\tlet intervalId: NodeJS.Timeout | null = null\n\n\t\t\tif (hideControls && hidePagination && !options?.autoPlay) {\n\t\t\t\tintervalId = setInterval(() => handleNext(), 2000)\n\t\t\t} else if (options?.autoPlay) {\n\t\t\t\tintervalId = setInterval(() => handleNext(), options.autoPlay)\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tif (intervalId) {\n\t\t\t\t\tclearInterval(intervalId)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [options?.autoPlay, totalSlides, hideControls, hidePagination])\n\n\tconst handleNext = () => {\n\t\tif (isTransitioning) return\n\n\t\tsetIsTransitioning(true)\n\t\tsetCurrentSlide(prev => (prev + 1) % totalSlides)\n\n\t\tsetTimeout(() => setIsTransitioning(false), options?.speed ?? 300)\n\t}\n\n\tconst handlePrev = () => {\n\t\tif (isTransitioning) return\n\n\t\tsetIsTransitioning(true)\n\t\tsetCurrentSlide(prev => (prev - 1 + totalSlides) % totalSlides)\n\n\t\tsetTimeout(() => setIsTransitioning(false), options?.speed ?? 300)\n\t}\n\n\tconst goToSlide = (n: number) => {\n\t\tif (isTransitioning || n === currentSlide) return\n\n\t\tsetIsTransitioning(true)\n\t\tsetCurrentSlide(n)\n\n\t\tsetTimeout(() => setIsTransitioning(false), options?.speed ?? 300)\n\t}\n\n\tconst handleTouchStart = (e: TouchEvent) => {\n\t\tconst touch = e.touches[0]\n\t\ttouchStartX.current = touch.clientX\n\t\ttouchStartY.current = touch.clientY\n\t\tsetIsDragging(true)\n\t}\n\n\tconst handleTouchMove = (e: TouchEvent) => {\n\t\tif (!isDragging) return\n\n\t\tconst touch = e.touches[0]\n\t\ttouchEndX.current = touch.clientX\n\t\ttouchEndY.current = touch.clientY\n\n\t\tconst deltaX = Math.abs(touchEndX.current - touchStartX.current)\n\t\tconst deltaY = Math.abs(touchEndY.current - touchStartY.current)\n\n\t\tif (deltaX > deltaY && deltaX > 10) {\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\tconst handleTouchEnd = () => {\n\t\tif (!isDragging) return\n\n\t\tsetIsDragging(false)\n\n\t\tconst deltaX = touchStartX.current - touchEndX.current\n\t\tconst deltaY = Math.abs(touchStartY.current - touchEndY.current)\n\t\tconst minSwipeDistance = 50\n\n\t\tif (Math.abs(deltaX) > deltaY && Math.abs(deltaX) > minSwipeDistance) {\n\t\t\tif (deltaX > 0) {\n\t\t\t\thandleNext()\n\t\t\t} else {\n\t\t\t\thandlePrev()\n\t\t\t}\n\t\t}\n\n\t\ttouchStartX.current = 0\n\t\ttouchEndX.current = 0\n\t\ttouchStartY.current = 0\n\t\ttouchEndY.current = 0\n\t}\n\n\tconst handleMouseDown = (e: React.MouseEvent) => {\n\t\ttouchStartX.current = e.clientX\n\t\ttouchStartY.current = e.clientY\n\t\tsetIsDragging(true)\n\t}\n\n\tconst handleMouseMove = (e: React.MouseEvent) => {\n\t\tif (!isDragging) return\n\n\t\ttouchEndX.current = e.clientX\n\t\ttouchEndY.current = e.clientY\n\t}\n\n\tconst handleMouseUp = () => {\n\t\tif (!isDragging) return\n\n\t\tsetIsDragging(false)\n\n\t\tconst deltaX = touchStartX.current - touchEndX.current\n\t\tconst deltaY = Math.abs(touchStartY.current - touchEndY.current)\n\t\tconst minSwipeDistance = 50\n\n\t\tif (Math.abs(deltaX) > deltaY && Math.abs(deltaX) > minSwipeDistance) {\n\t\t\tif (deltaX > 0) {\n\t\t\t\thandleNext()\n\t\t\t} else {\n\t\t\t\thandlePrev()\n\t\t\t}\n\t\t}\n\n\t\ttouchStartX.current = 0\n\t\ttouchEndX.current = 0\n\t\ttouchStartY.current = 0\n\t\ttouchEndY.current = 0\n\t}\n\n\tif (totalSlides === 0) return null\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative flex flex-col gap-2\",\n\t\t\t\t\"slideshow\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"relative w-full h-full overflow-hidden\",\n\t\t\t\t\t\"slides-wrapper\",\n\t\t\t\t)}\n\t\t\t\tonTouchStart={handleTouchStart}\n\t\t\t\tonTouchMove={handleTouchMove}\n\t\t\t\tonTouchEnd={handleTouchEnd}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\tonMouseUp={handleMouseUp}\n\t\t\t\tonMouseLeave={handleMouseUp}\n\t\t\t\tstyle={{\n\t\t\t\t\ttouchAction: pagination?.hideOnTouch\n\t\t\t\t\t\t? \"pan-y\"\n\t\t\t\t\t\t: \"pan-y pinch-zoom\",\n\t\t\t\t\tuserSelect: \"none\",\n\t\t\t\t\tWebkitUserSelect: \"none\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={slidesRef}\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"z-0 relative flex h-full transition-transform duration-300 ease-in-out\",\n\t\t\t\t\t\t\"slides-container\",\n\t\t\t\t\t\tisDragging && \"transition-none\",\n\t\t\t\t\t)}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: `translateX(-${currentSlide * 100}%)`,\n\t\t\t\t\t\ttransitionDuration: `${options?.speed ?? 300}ms`,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{images\n\t\t\t\t\t\t? images.map((img, i) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\t\"flex w-full h-full overflow-hidden shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\"slideshow-images-container\",\n\t\t\t\t\t\t\t\t\t\tborderRadius &&\n\t\t\t\t\t\t\t\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\t\t\t\tsrc={img}\n\t\t\t\t\t\t\t\t\t\talt={`Slideshow image ${i + 1}`}\n\t\t\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\t\t\"w-full h-full\",\n\t\t\t\t\t\t\t\t\t\t\tgenObjectFit[imgFit],\n\t\t\t\t\t\t\t\t\t\t\t\"slideshow-image\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\tdraggable={false}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t: childrenArray.map(child => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={uuid()}\n\t\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\t\"w-full h-full shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\"slideshow-images-container\",\n\t\t\t\t\t\t\t\t\t\tborderRadius &&\n\t\t\t\t\t\t\t\t\t\t\tgenBorderRadius[borderRadius],\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{child}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!hideControls && totalSlides > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t<SlideshowButton\n\t\t\t\t\t\tposition=\"left\"\n\t\t\t\t\t\tonClick={handlePrev}\n\t\t\t\t\t\tcontrols={controls}\n\t\t\t\t\t\thideControls={hideControls}\n\t\t\t\t\t/>\n\t\t\t\t\t<SlideshowButton\n\t\t\t\t\t\tposition=\"right\"\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\tcontrols={controls}\n\t\t\t\t\t\thideControls={hideControls}\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{!hidePagination && totalSlides > 1 && (\n\t\t\t\t<SlideshowPagination\n\t\t\t\t\tactive={currentSlide}\n\t\t\t\t\tsetActive={setCurrentSlide}\n\t\t\t\t\tcontentLength={totalSlides}\n\t\t\t\t\thandleClick={goToSlide}\n\t\t\t\t\tpagination={{\n\t\t\t\t\t\ttype: (pagination?.type ?? \"dots\") as any,\n\t\t\t\t\t\thideOnTouch: pagination?.hideOnTouch ?? false,\n\t\t\t\t\t\tposition: pagination?.position ?? \"outside\",\n\t\t\t\t\t\tcolor: pagination?.color ?? \"primary\",\n\t\t\t\t\t}}\n\t\t\t\t\timages={images}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { BiChevronLeft, BiChevronRight } from \"react-icons/bi\"\nimport { useTouchScreen } from \"../../hooks\"\nimport { clsx, genBgColorHover } from \"../../utils\"\nimport type { ILibSlideshowButton } from \"./subtypes\"\n\nexport const SlideshowButton: FC<ILibSlideshowButton> = ({\n\tclassName,\n\tcontrols,\n\tposition,\n\tonClick,\n\thideControls,\n}) => {\n\tconst isTouchScreen = useTouchScreen()\n\n\tif (hideControls || (isTouchScreen && controls?.hideOnTouch)) return null\n\n\treturn (\n\t\t<button\n\t\t\tclassName={clsx(\n\t\t\t\t\"top-[50%] z-10 absolute flex justify-center items-center -translate-y-[50%]\",\n\t\t\t\tgenBgColorHover[controls?.color ?? \"primary\"],\n\t\t\t\tcontrols?.color === \"white\" ? \"text-primary-500\" : \"text-white\",\n\t\t\t\tcontrols?.size === \"large\" ? \"size-12\" : \"size-8\",\n\t\t\t\tcontrols?.size === \"large\"\n\t\t\t\t\t? position === \"left\"\n\t\t\t\t\t\t? \"rounded-r-md\"\n\t\t\t\t\t\t: \"rounded-l-md\"\n\t\t\t\t\t: \"rounded-full\",\n\t\t\t\tposition === \"left\"\n\t\t\t\t\t? controls?.size === \"large\"\n\t\t\t\t\t\t? \"left-0\"\n\t\t\t\t\t\t: \"left-2\"\n\t\t\t\t\t: controls?.size === \"large\"\n\t\t\t\t\t\t? \"right-0\"\n\t\t\t\t\t\t: \"right-2\",\n\t\t\t\t\"slideshow-button\",\n\t\t\t\tcontrols?.className,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\taria-label={\n\t\t\t\tposition === \"left\"\n\t\t\t\t\t? (controls?.labelPrev ?? \"Previous\")\n\t\t\t\t\t: (controls?.labelNext ?? \"Next\")\n\t\t\t}\n\t\t\ttype=\"button\"\n\t\t\trole=\"button\"\n\t\t>\n\t\t\t{position === \"left\"\n\t\t\t\t? (controls?.icons?.prev ?? (\n\t\t\t\t\t\t<BiChevronLeft\n\t\t\t\t\t\t\tsize={controls?.size === \"small\" ? 24 : 32}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))\n\t\t\t\t: (controls?.icons?.next ?? (\n\t\t\t\t\t\t<BiChevronRight\n\t\t\t\t\t\t\tsize={controls?.size === \"small\" ? 24 : 32}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t</button>\n\t)\n}\n","import { type FC } from \"react\"\nimport { generateNumbers } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport { useTouchScreen } from \"../../hooks\"\nimport type { ILibSlideshowPagination } from \"./subtypes\"\nimport type { LibColorsHover } from \"../../types\"\n\nexport const SlideshowPagination: FC<ILibSlideshowPagination> = ({\n\tclassName,\n\tpagination,\n\timages,\n\tactive,\n\tsetActive,\n\tcontentLength,\n}) => {\n\tconst isTouchScreen = useTouchScreen()\n\n\tif ((isTouchScreen && pagination?.hideOnTouch) || contentLength === 0)\n\t\treturn null\n\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex justify-center gap-2 mx-auto px-2 w-full max-w-[70%]\",\n\t\t\t\tpagination?.position === \"outside\"\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: \"absolute bottom-1 left-[50%] -translate-x-[50%]\",\n\t\t\t\t\"slideshow-controls\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{pagination?.type === \"thumbnails\"\n\t\t\t\t? images?.map((image, i) => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"opacity-50 size-12\",\n\t\t\t\t\t\t\t\t\"hover:opacity-70\",\n\t\t\t\t\t\t\t\t\"[&.active]:opacity-100 [&.active]:hover:opacity-70\",\n\t\t\t\t\t\t\t\tactive === i && \"active\",\n\t\t\t\t\t\t\t\t\"slideshow-thumbnail-container\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={() => setActive(i)}\n\t\t\t\t\t\t\tkey={image}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={image}\n\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\t\"w-full h-full object-cover\",\n\t\t\t\t\t\t\t\t\t\"slideshow-thumbnail\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))\n\t\t\t\t: generateNumbers(0, contentLength - 1).map(n => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={n}\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\tpagination?.type === \"dots-outline\"\n\t\t\t\t\t\t\t\t\t? outlineColor[\n\t\t\t\t\t\t\t\t\t\t\tpagination?.color ?? \"primary\"\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t: genBgColor[\n\t\t\t\t\t\t\t\t\t\t\tpagination?.color ?? \"primary\"\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tactive === n && \"active\",\n\t\t\t\t\t\t\t\tpagination?.type === \"dots\" && [\n\t\t\t\t\t\t\t\t\t\"size-2 rounded-full block\",\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tpagination?.type === \"dots-outline\" && [\n\t\t\t\t\t\t\t\t\t\"size-2 rounded-full border-1\",\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tpagination?.type === \"bars\" && [\n\t\t\t\t\t\t\t\t\t\"grow h-1 rounded-full\",\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\"slideshow-control\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={() => setActive(n)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t</div>\n\t)\n}\n\nconst genBgColor: Record<LibColorsHover, string> = {\n\tprimary:\n\t\t\"bg-primary-300 hover:bg-primary-500 active:bg-primary-600 [&.active]:bg-primary-500 [&.active]:hover:bg-primary-300\",\n\tsecondary:\n\t\t\"bg-secondary-300 hover:bg-secondary-500 active:bg-secondary-600 [&.active]:bg-secondary-500 [&.active]:hover:bg-secondary-300\",\n\tsuccess:\n\t\t\"bg-success-300 hover:bg-success-500 active:bg-success-600 [&.active]:bg-success-500 [&.active]:hover:bg-success-300\",\n\tdanger: \"bg-danger-300 hover:bg-danger-500 active:bg-danger-600 [&.active]:bg-danger-500 [&.active]:hover:bg-danger-300\",\n\twarning:\n\t\t\"bg-warning-300 hover:bg-warning-500 active:bg-warning-600 [&.active]:bg-warning-500 [&.active]:hover:bg-warning-300\",\n\tgray: \"bg-gray-300 hover:bg-gray-500 active:bg-gray-600 [&.active]:bg-gray-500 [&.active]:hover:bg-gray-300\",\n\twhite: \"bg-gray-200 hover:bg-gray-300 active:bg-gray-100 [&.active]:bg-white [&.active]:hover:bg-gray-100\",\n}\n\nconst outlineColor: Record<LibColorsHover, string> = {\n\tprimary:\n\t\t\"border-primary-500 hover:border-primary-300 active:border-primary-600 [&.active]:bg-primary-500 [&.active]:hover:bg-primary-300 [&.active]:active:bg-primary-600\",\n\tsecondary:\n\t\t\"border-secondary-500 hover:border-secondary-300 active:border-secondary-600 [&.active]:bg-secondary-500 [&.active]:hover:bg-secondary-300 [&.active]:active:bg-secondary-600\",\n\tsuccess:\n\t\t\"border-success-500 hover:border-success-300 active:border-success-600 [&.active]:bg-success-500 [&.active]:hover:bg-success-300 [&.active]:active:bg-success-600\",\n\tdanger: \"border-danger-500 hover:border-danger-300 active:border-danger-600 [&.active]:bg-danger-500 [&.active]:hover:bg-danger-300 [&.active]:active:bg-danger-600\",\n\twarning:\n\t\t\"border-warning-500 hover:border-warning-300 active:border-warning-600 [&.active]:bg-warning-500 [&.active]:hover:bg-warning-300 [&.active]:active:bg-warning-600\",\n\tgray: \"border-gray-500 hover:border-gray-300 active:border-gray-600 [&.active]:bg-gray-500 [&.active]:hover:bg-gray-300 [&.active]:active:bg-gray-600\",\n\twhite: \"border-white hover:border-gray-300 active:border-gray-100 [&.active]:bg-white [&.active]:hover:bg-gray-300 [&.active]:active:bg-gray-100\",\n}\n","import { type FC } from \"react\"\nimport { Image } from \"../Image\"\nimport { Flexbox } from \"../Flexbox\"\nimport { clsx, genBgOverlay } from \"../../utils\"\nimport type { ILibCover } from \"./types\"\n\n/**\n * Cover component for creating full-screen layouts with background images, overlays, and content positioning.\n *\n * @component\n *\n * @example\n * <Cover\n * img=\"/images/hero-bg.jpg\"\n * alt=\"Hero background\"\n * overlay=\"gradient-black\"\n * alignItems=\"center\"\n * justifyContent=\"center\"\n * >\n * <Text tag=\"h1\" display className=\"text-white\">\n * Welcome to our site\n * </Text>\n * </Cover>\n *\n * @extends ILibFlexbox\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the cover container.\n * @prop {React.ElementType} [props.element=Flexbox] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the cover element.\n * @prop {string} [props.img] - URL of the background image to display.\n * @prop {string} [props.alt] - Alt text for the background image.\n * @prop {LibBgOverlay} [props.overlay] - Overlay variant to apply over the background image.\n * @prop {React.ReactNode} [props.children] - Content to display over the background image.\n *\n * @returns {JSX.Element} The rendered Cover component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/cover\n */\nexport const Cover: FC<ILibCover> = ({\n\tclassName,\n\telement = Flexbox,\n\tref,\n\timg,\n\talt,\n\toverlay,\n\tchildren,\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"z-0 relative p-12 w-full h-svh\",\n\t\t\t\t\"cover\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<Image\n\t\t\t\tsrc={img}\n\t\t\t\talt={alt}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"top-0 left-0 z-0 fixed w-full h-full\",\n\t\t\t\t\t\"cover-image\",\n\t\t\t\t)}\n\t\t\t\tfit=\"cover\"\n\t\t\t/>\n\n\t\t\t{overlay && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"top-0 left-0 z-10 absolute w-full h-full\",\n\t\t\t\t\t\tgenBgOverlay[overlay],\n\t\t\t\t\t\t\"overlay\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"top-0 left-0 z-20 relative w-fit h-fit\",\n\t\t\t\t\t\"cover-content\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</Element>\n\t)\n}\n","import { useEffect, type FC } from \"react\"\nimport { disableScroll } from \"@julseb-lib/utils\"\nimport { Loader } from \"../Loader\"\nimport { clsx, genBgAllColors } from \"../../utils\"\nimport type { ILibPageLoading } from \"./types\"\n\n/**\n * PageLoading component for displaying a full-screen loading overlay with customizable background and loader.\n *\n * @component\n *\n * @example\n * <PageLoading\n * backgroundColor=\"primary-500\"\n * loaderColor=\"white\"\n * loaderVariant={2}\n * stopScrolling\n * />\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the page loading container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the page loading element.\n * @prop {LibColors} [props.backgroundColor=\"primary-500\"] - Background color for the loading overlay.\n * @prop {LibColorsShort} [props.loaderColor=\"white\"] - Color of the loading spinner.\n * @prop {1 | 2 | 3} [props.loaderVariant=1] - Visual variant of the loading spinner.\n * @prop {boolean} [props.stopScrolling] - Whether to disable page scrolling while loading is visible.\n *\n * @returns {JSX.Element} The rendered PageLoading component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/page-loading\n */\nexport const PageLoading: FC<ILibPageLoading> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tbackgroundColor = \"primary-500\",\n\tloaderColor = \"white\",\n\tloaderVariant = 1,\n\tstopScrolling,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tuseEffect(() => {\n\t\tif (stopScrolling) disableScroll()\n\t}, [stopScrolling])\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"top-0 left-0 z-999 fixed flex justify-center items-center w-full h-svh\",\n\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\t\"page-loading\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<Loader variant={loaderVariant} color={loaderColor} />\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { LibSpacers } from \"../../types\"\nimport type { ILibSticky } from \"./types\"\n\n/**\n * Sticky component for creating elements that stick to a specified position during scroll.\n *\n * @component\n *\n * @example\n * <Sticky top=\"md\">\n * <nav>Navigation content</nav>\n * </Sticky>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the sticky container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the sticky element.\n * @prop {React.ReactNode} [props.children] - Content to be positioned sticky.\n * @prop {\"0px\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"} [props.top=\"sm\"] - Distance from top when sticky positioning is active.\n *\n * @returns {JSX.Element} The rendered Sticky component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/sticky\n */\nexport const Sticky: FC<ILibSticky> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\ttop = \"sm\",\n\t...rest\n}) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\"sticky\", genTop[top], className)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n\nconst genTop: Record<LibSpacers, string> = {\n\t\"0px\": \"top-0\",\n\t\"2xs\": \"top-1\",\n\txs: \"top-2\",\n\tsm: \"top-3\",\n\tmd: \"top-4\",\n\tlg: \"top-5\",\n\txl: \"top-8\",\n\t\"2xl\": \"top-12\",\n}\n","import { useState, useRef, type FC } from \"react\"\nimport Markdown from \"markdown-to-jsx\"\nimport { InputContainer } from \"../InputContainer\"\nimport { MarkdownEditorTitles } from \"./MarkdownEditorTitles\"\nimport { MarkdownButtons } from \"./MarkdownButtons\"\nimport { MarkdownViewButtons } from \"./MarkdownViewButtons\"\nimport { useMergeRefs } from \"../../hooks\"\nimport { clsx, libOptionsMarkdown } from \"../../utils\"\nimport type { ILibMarkdownEditor } from \"./types\"\nimport type { LibMdEditorViews } from \"../../types\"\n\n/**\n * MarkdownEditor component for creating rich text content with live preview and customizable toolbar.\n *\n * @component\n *\n * @example\n * <MarkdownEditor\n * value={content}\n * setValue={setContent}\n * label=\"Article Content\"\n * defaultView=\"live\"\n * options={{\n * bold: true,\n * italic: true,\n * code: true,\n * editorPreview: true\n * }}\n * />\n *\n * @extends HTMLTextAreaElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the textarea.\n * @prop {React.Ref<HTMLTextAreaElement>} [props.ref] - Ref to the textarea element.\n * @prop {string} [props.value] - Current markdown content value.\n * @prop {function} [props.setValue] - Function to update the markdown content.\n * @prop {string} [props.label] - Label text for the editor.\n * @prop {string} [props.labelComment] - Additional comment text for the label.\n * @prop {string} [props.helper] - Helper text displayed above the editor.\n * @prop {string} [props.helperBottom] - Helper text displayed below the editor.\n * @prop {LibValidation} [props.validation] - Validation state and messages.\n * @prop {\"light\" | \"dark\"} [props.inputBackground] - Background theme for the editor.\n * @prop {string} [props.id] - HTML id attribute for the textarea.\n * @prop {\"code\" | \"live\" | \"preview\"} [props.defaultView=\"live\"] - Initial view mode for the editor.\n * @prop {LibMarkdownEditorOptions} [props.options] - Configuration for which toolbar buttons to show.\n * @prop {string} [props.textButtonTitles=\"Titles\"] - Text for the titles dropdown button.\n * @prop {object} [props.icons] - Custom icons for toolbar buttons.\n *\n * @returns {JSX.Element} The rendered MarkdownEditor component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/markdown-editor\n */\nexport const MarkdownEditor: FC<ILibMarkdownEditor> = ({\n\tclassName,\n\tref,\n\tvalue,\n\tsetValue,\n\tlabel,\n\tlabelComment,\n\thelper,\n\thelperBottom,\n\tvalidation,\n\tinputBackground,\n\tid,\n\tdefaultView = \"live\",\n\toptions,\n\ttextButtonTitles = \"Titles\",\n\ticons,\n\t...rest\n}) => {\n\tconst [view, setView] = useState<LibMdEditorViews>(defaultView)\n\tconst [isTitlesOpen, setIsTitlesOpen] = useState(false)\n\n\tconst el = useRef<HTMLTextAreaElement>(null)\n\n\tconst addCode = (code: string) => {\n\t\tsetValue(`${value}${code}`)\n\t\tel?.current?.focus()\n\t}\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelComment={labelComment}\n\t\t\thelper={helper}\n\t\t\thelperBottom={helperBottom}\n\t\t\tvalidation={validation}\n\t\t\thasListOpen={isTitlesOpen}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"border border-gray-200 rounded-lg w-full\",\n\t\t\t\t\tisTitlesOpen && \"z-20\",\n\t\t\t\t\tinputBackground === \"dark\"\n\t\t\t\t\t\t? \"bg-black text-white\"\n\t\t\t\t\t\t: inputBackground === \"light\"\n\t\t\t\t\t\t\t? \"bg-white text-black\"\n\t\t\t\t\t\t\t: \"bg-background text-font\",\n\t\t\t\t\tvalidation?.status === false && \"bg-danger-50 text-black\",\n\t\t\t\t\t\"has-[textarea:focus]:border-primary-500\",\n\t\t\t\t\t\"md-editor-wrapper\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"flex justify-between gap-2 p-2 border-b border-b-gray-200\",\n\t\t\t\t\t\t\"md-buttons-container\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"flex items-center gap-2\",\n\t\t\t\t\t\t\t\"md-buttons\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MarkdownEditorTitles\n\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\ttextButtonTitles={textButtonTitles}\n\t\t\t\t\t\t\taddCode={addCode}\n\t\t\t\t\t\t\tinputBackground={inputBackground}\n\t\t\t\t\t\t\tisOpen={isTitlesOpen}\n\t\t\t\t\t\t\tsetIsOpen={setIsTitlesOpen}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<MarkdownButtons\n\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\ticons={icons}\n\t\t\t\t\t\t\taddCode={addCode}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className={clsx(\"flex gap-1\", \"md-views\")}>\n\t\t\t\t\t\t<MarkdownViewButtons\n\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\ticons={icons}\n\t\t\t\t\t\t\tview={view}\n\t\t\t\t\t\t\tsetView={setView}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"grid min-h-[150px]\",\n\t\t\t\t\t\tview === \"live\"\n\t\t\t\t\t\t\t? \"grid-cols-[1fr_2px_1fr]\"\n\t\t\t\t\t\t\t: \"grid-cols-1\",\n\t\t\t\t\t\t\"md-editor-content\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tref={useMergeRefs([ref, el])}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"p-2 outline-none h-fit field-sizing-content resize-none\",\n\t\t\t\t\t\t\tview === \"preview\" && \"hidden\",\n\t\t\t\t\t\t\t\"md-editor-input\",\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={e => setValue(e.target.value)}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{view === \"live\" && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\"bg-gray-200 w-0.5 h-full\",\n\t\t\t\t\t\t\t\t\"separator\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{(view === \"live\" || view === \"preview\") && (\n\t\t\t\t\t\t<Markdown\n\t\t\t\t\t\t\toptions={libOptionsMarkdown}\n\t\t\t\t\t\t\tclassName={clsx(\"p-2\", \"md-editor-markdown\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Markdown>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</InputContainer>\n\t)\n}\n","import { useRef, type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport { Button } from \"../Button\"\nimport { useClickOutside } from \"../../hooks\"\nimport {\n\tgetFontSizeButton,\n\tlibMdTitleButtons,\n} from \"./buttons/markdown-buttons\"\nimport type { ILibMarkdownEditor } from \"./types\"\nimport type { DispatchState } from \"../../types\"\n\nexport const MarkdownEditorTitles: FC<IMarkdownEditorTitles> = ({\n\toptions,\n\ttextButtonTitles,\n\taddCode,\n\tinputBackground,\n\tisOpen,\n\tsetIsOpen,\n}) => {\n\tif (options?.titles === false) return null\n\n\tconst el = useRef<HTMLDivElement>(null)\n\tuseClickOutside(el as any, () => setIsOpen(false))\n\n\treturn (\n\t\t<div className={clsx(\"relative\", \"dropdown-container\")} ref={el}>\n\t\t\t<Button\n\t\t\t\tclassName={clsx(\"\", \"button-titles\")}\n\t\t\t\tonClick={e => {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tsetIsOpen(!isOpen)\n\t\t\t\t}}\n\t\t\t\tsize=\"small\"\n\t\t\t\tvariant=\"transparent\"\n\t\t\t>\n\t\t\t\t{textButtonTitles}\n\t\t\t</Button>\n\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"left-2 absolute flex flex-col rounded-md w-fit min-w-[150px] overflow-hidden font-bold transition-all duration-200 ease-in-out\",\n\t\t\t\t\tinputBackground === \"dark\"\n\t\t\t\t\t\t? \"bg-black text-white\"\n\t\t\t\t\t\t: inputBackground === \"light\"\n\t\t\t\t\t\t\t? \"bg-white\"\n\t\t\t\t\t\t\t: \"bg-background\",\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\"max-h-0 [&.open]:max-h-[179px] [&.open]:shadow-sm\",\n\t\t\t\t\t\"titles-dropdown\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{libMdTitleButtons.map(button => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={button.name}\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"px-2 py-1 w-full text-left whitespace-nowrap\",\n\t\t\t\t\t\t\t\"hover:bg-primary-300 active:bg-primary-600 hover:text-white\",\n\t\t\t\t\t\t\t\"title-button\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\taddCode(button.code)\n\t\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: getFontSizeButton(\n\t\t\t\t\t\t\t\tbutton.name as any,\n\t\t\t\t\t\t\t) as number,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{button.displayName ?? button.name}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\ninterface IMarkdownEditorTitles\n\textends Pick<\n\t\tILibMarkdownEditor,\n\t\t\"options\" | \"textButtonTitles\" | \"inputBackground\"\n\t> {\n\taddCode: (code: string) => void\n\tisOpen: boolean\n\tsetIsOpen: DispatchState<boolean>\n}\n","import {\n\tBiBold,\n\tBiItalic,\n\tBiStrikethrough,\n\tBiUnderline,\n\tBiListUl,\n\tBiListOl,\n\tBiLink,\n\tBiSolidQuoteAltLeft,\n\tBiCode,\n\tBiCodeBlock,\n\tBiComment,\n\tBiImage,\n} from \"react-icons/bi\"\nimport { IconSeparator, IconCode, IconLive, IconPreview } from \"./icons\"\nimport type {\n\tReactElement,\n\tLibMdEditorViews,\n\tLibMdEditorTitles,\n\tLibMdEditorButtons,\n} from \"../../../types\"\n\nconst DEFAULT_ICON_SIZE = 16\n\ntype LibMdButtonBase = {\n\tname: LibMdEditorViews | LibMdEditorTitles | LibMdEditorButtons\n\tdisplayName?: string\n}\n\ntype LibMdButtonWithIcon = LibMdButtonBase & {\n\tdefaultIcon: ReactElement\n}\n\ntype LibMdButtonWithCode = LibMdButtonBase & {\n\tcode: string\n}\n\nexport const libMdButtons: Array<LibMdButtonWithIcon & LibMdButtonWithCode> = [\n\t{\n\t\tname: \"bold\",\n\t\tcode: \"** **\",\n\t\tdefaultIcon: <BiBold size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"italic\",\n\t\tcode: \"* *\",\n\t\tdefaultIcon: <BiItalic size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"strikethrough\",\n\t\tcode: \"~~ ~~\",\n\t\tdefaultIcon: <BiStrikethrough size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"underline\",\n\t\tcode: \"<u> </u>\",\n\t\tdefaultIcon: <BiUnderline size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tdisplayName: \"Unordered list\",\n\t\tname: \"ul\",\n\t\tcode: \"\\n- \",\n\t\tdefaultIcon: <BiListUl size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tdisplayName: \"Ordered list\",\n\t\tname: \"ol\",\n\t\tcode: \"\\n1. \",\n\t\tdefaultIcon: <BiListOl size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"link\",\n\t\tcode: \"[](URL here)\",\n\t\tdefaultIcon: <BiLink size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"quote\",\n\t\tdisplayName: \"Blockquote\",\n\t\tcode: \"\\n> \",\n\t\tdefaultIcon: <BiSolidQuoteAltLeft size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tdisplayName: \"Separator\",\n\t\tname: \"hr\",\n\t\tcode: \"\\n\\n---\\n\\n\",\n\t\tdefaultIcon: <IconSeparator size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"code\",\n\t\tcode: \"``\",\n\t\tdefaultIcon: <BiCode size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tdisplayName: \"Code block\",\n\t\tname: \"codeBlock\",\n\t\tcode: \"\\n```\\n\\n```\\n\",\n\t\tdefaultIcon: <BiCodeBlock size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"comment\",\n\t\tcode: \"\\n<!-- -->\\n\",\n\t\tdefaultIcon: <BiComment size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"image\",\n\t\tcode: \"![](https://example.com/your-image.png)\",\n\t\tdefaultIcon: <BiImage size={DEFAULT_ICON_SIZE} />,\n\t},\n]\n\nexport const libMdViewButtons: Array<LibMdButtonWithIcon> = [\n\t{\n\t\tname: \"code\",\n\t\tdefaultIcon: <IconCode size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"live\",\n\t\tdefaultIcon: <IconLive size={DEFAULT_ICON_SIZE} />,\n\t},\n\t{\n\t\tname: \"preview\",\n\t\tdefaultIcon: <IconPreview size={DEFAULT_ICON_SIZE} />,\n\t},\n]\n\nexport const libMdTitleButtons: Array<LibMdButtonWithCode> = [\n\t{\n\t\tdisplayName: \"Title 1\",\n\t\tname: \"h1\",\n\t\tcode: \"\\n# \",\n\t},\n\t{\n\t\tdisplayName: \"Title 2\",\n\t\tname: \"h2\",\n\t\tcode: \"\\n## \",\n\t},\n\t{\n\t\tdisplayName: \"Title 3\",\n\t\tname: \"h3\",\n\t\tcode: \"\\n### \",\n\t},\n\t{\n\t\tdisplayName: \"Title 4\",\n\t\tname: \"h4\",\n\t\tcode: \"\\n#### \",\n\t},\n\t{\n\t\tdisplayName: \"Title 5\",\n\t\tname: \"h5\",\n\t\tcode: \"\\n##### \",\n\t},\n\t{\n\t\tdisplayName: \"Title 6\",\n\t\tname: \"h6\",\n\t\tcode: \"\\n###### \",\n\t},\n]\n\nexport const getFontSizeButton = (tag: LibMdEditorTitles): number | null => {\n\tswitch (tag) {\n\t\tcase \"h1\":\n\t\t\treturn 17\n\t\tcase \"h2\":\n\t\t\treturn 16\n\t\tcase \"h3\":\n\t\t\treturn 15\n\t\tcase \"h4\":\n\t\t\treturn 14\n\t\tcase \"h5\":\n\t\t\treturn 13\n\t\tcase \"h6\":\n\t\t\treturn 12\n\t\tdefault:\n\t\t\treturn null\n\t}\n}\n","import { type FC } from \"react\"\n\ninterface IIcon {\n\tsize: number\n}\n\nexport const IconCode: FC<IIcon> = ({ size }) => {\n\treturn (\n\t\t<svg\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M3 5V6.74198H14.0423V16.1893H3V18L15.8769 17.9899V5H3Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M17.85 5H21V6.74198L19.65 6.77634V16.155H21V18L17.85 17.9899V5Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t)\n}\n\nexport const IconLive: FC<IIcon> = ({ size }) => {\n\treturn (\n\t\t<svg\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M3 5V6.74198H9.19615V16.1893H3V18L11.0308 17.9899V5H3Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M13.0038 5H21V6.74198L14.8038 6.77634V16.155H21V18L13.0038 17.9899V5Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t)\n}\n\nexport const IconPreview: FC<IIcon> = ({ size }) => {\n\treturn (\n\t\t<svg\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M3 5V6.73874L4.31618 6.77303V16.2028L3 16.1685V17.9758L6.1508 18V5.03429L3 5Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M8.12387 5.03429L21 5V6.73874L9.92387 6.80732V16.1685L21 16.1342V17.9758L8.12387 18V5.03429Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t)\n}\n\nexport const IconSeparator: FC<IIcon> = ({ size }) => {\n\treturn (\n\t\t<svg\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M3 11H6V13H3V11ZM8 11H11V13H8V11ZM13 11H16V13H13V11ZM18 11H21V13H18V11Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t)\n}\n","import { type FC } from \"react\"\nimport { toSentenceCase } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport { libMdButtons } from \"./buttons/markdown-buttons\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport type { ILibMarkdownEditor } from \"./types\"\nimport type { ReactElement } from \"../../types\"\n\nexport const MarkdownButtons: FC<IMarkdownButtons> = ({\n\toptions,\n\ticons,\n\taddCode,\n}) => {\n\treturn libMdButtons.map(button => {\n\t\tif (options && options[button.name as keyof typeof options] === false) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst icon =\n\t\t\ticons && icons[button.name as keyof typeof icons]\n\t\t\t\t? icons[button.name as keyof typeof icons]\n\t\t\t\t: button.defaultIcon\n\n\t\treturn (\n\t\t\t<ButtonIcon\n\t\t\t\tclassName={clsx(\"size-6\", \"md-button\")}\n\t\t\t\tkey={button.name}\n\t\t\t\ticon={icon as ReactElement}\n\t\t\t\tonClick={() => addCode(button.code)}\n\t\t\t\ttooltip={button.displayName ?? toSentenceCase(button.name)}\n\t\t\t\taria-label={button.displayName ?? toSentenceCase(button.name)}\n\t\t\t\tvariant=\"transparent\"\n\t\t\t\tshowTooltip={{ offset: \"2xs\" }}\n\t\t\t/>\n\t\t)\n\t})\n}\n\ninterface IMarkdownButtons\n\textends Pick<ILibMarkdownEditor, \"options\" | \"icons\"> {\n\taddCode: (code: string) => void\n}\n","import { type FC } from \"react\"\nimport { toSentenceCase } from \"@julseb-lib/utils\"\nimport { clsx } from \"../../utils\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport { libMdViewButtons } from \"./buttons/markdown-buttons\"\nimport type { DispatchState, LibMdEditorViews, ReactElement } from \"../../types\"\nimport type { ILibMarkdownEditor } from \"./types\"\n\nexport const MarkdownViewButtons: FC<IMarkdownViewButtons> = ({\n\toptions,\n\ticons,\n\tview,\n\tsetView,\n}) => {\n\treturn libMdViewButtons.map(button => {\n\t\tif (options && options[button.name as keyof typeof options] === false) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst icon =\n\t\t\ticons && icons[button.name as keyof typeof icons]\n\t\t\t\t? icons[button.name as keyof typeof icons]\n\t\t\t\t: button.defaultIcon\n\n\t\treturn (\n\t\t\t<ButtonIcon\n\t\t\t\tkey={button.name}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"size-6\",\n\t\t\t\t\tview === button.name && \"\",\n\t\t\t\t\t\"button-view\",\n\t\t\t\t)}\n\t\t\t\tvariant={view === button.name ? \"plain\" : \"transparent\"}\n\t\t\t\ticon={icon as ReactElement}\n\t\t\t\tonClick={() => setView(button.name as LibMdEditorViews)}\n\t\t\t\taria-label={button.displayName ?? toSentenceCase(button.name)}\n\t\t\t\ttooltip={button.displayName ?? toSentenceCase(button.name)}\n\t\t\t\tshowTooltip={{ offset: \"2xs\" }}\n\t\t\t/>\n\t\t)\n\t})\n}\n\ninterface IMarkdownViewButtons\n\textends Pick<ILibMarkdownEditor, \"options\" | \"icons\"> {\n\tview: LibMdEditorViews\n\tsetView: DispatchState<LibMdEditorViews>\n}\n","import { type FC } from \"react\"\nimport Markdown from \"markdown-to-jsx\"\nimport { clsx, libOptionsMarkdown } from \"../../utils\"\nimport type { ILibMarkdownContainer } from \"./types\"\n\n/**\n * MarkdownContainer component for rendering markdown content with customizable parsing options and styling.\n *\n * @component\n *\n * @example\n * <MarkdownContainer>\n * # Hello World\n * This is **bold** and *italic* text.\n * </MarkdownContainer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the markdown container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the markdown container element.\n * @prop {string} [props.children] - Markdown content to parse and render.\n * @prop {object} [props.options=libOptionsMarkdown] - Markdown parsing options and configurations.\n *\n * @returns {JSX.Element} The rendered MarkdownContainer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/markdown-container\n */\nexport const MarkdownContainer: FC<ILibMarkdownContainer> = ({\n\tclassName,\n\tref,\n\tchildren,\n\toptions = libOptionsMarkdown,\n\t...rest\n}) => {\n\treturn (\n\t\t<Markdown\n\t\t\t// @ts-ignore\n\t\t\tref={ref as any}\n\t\t\tclassName={clsx(\n\t\t\t\t\"flex flex-col items-stretch gap-3\",\n\t\t\t\t\"markdown-container\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\toptions={options}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children as any}\n\t\t</Markdown>\n\t)\n}\n","import { useState, type FC } from \"react\"\nimport SyntaxHighlighter from \"react-syntax-highlighter\"\nimport { atomOneDark } from \"react-syntax-highlighter/dist/esm/styles/hljs\"\nimport { BiCheck, BiClipboard } from \"react-icons/bi\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport { clsx, genRingColor, genTextAllColor } from \"../../utils\"\nimport type { ILibCodeContainer } from \"./types\"\n\n/**\n * CodeContainer component for displaying syntax-highlighted code with optional copy functionality.\n *\n * @component\n *\n * @example\n * <CodeContainer>\n * const hello = \"world\";\n * console.log(hello);\n * </CodeContainer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the code container.\n * @prop {React.ElementType} [props.element] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the code container element.\n * @prop {React.ReactNode} [props.children] - Code content to display and highlight.\n * @prop {object} [props.highlighterProps] - Additional props to pass to the syntax highlighter.\n * @prop {LibAllColors} [props.textColor] - Text color for the code content.\n * @prop {LibAllColors} [props.backgroundColor] - Background color for the code content.\n * @prop {object} [props.style=atomOneDark] - Custom styles for the syntax highlighter.\n * @prop {boolean} [props.hideCopyButton] - Whether to hide the copy to clipboard button.\n * @prop {object} [props.tooltipTexts] - Custom tooltip texts for copy button states.\n * @prop {object} [props.icons] - Custom icons for copy button states.\n *\n * @returns {JSX.Element} The rendered CodeContainer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/code-container\n */\nexport const CodeContainer: FC<ILibCodeContainer> = ({\n\tclassName,\n\telement,\n\tref,\n\tchildren,\n\thighlighterProps,\n\ttextColor,\n\tbackgroundColor,\n\tstyle = atomOneDark,\n\thideCopyButton,\n\ttooltipTexts,\n\ticons,\n\t...rest\n}) => {\n\tconst Element = element ?? (textColor || backgroundColor ? \"pre\" : \"div\")\n\n\tconst [hasCopied, setHasCopied] = useState(false)\n\n\tconst copyToClipboard = () => {\n\t\tif (children) {\n\t\t\tlet copyString = children.toString()\n\n\t\t\tif (copyString[0] === \"$\") {\n\t\t\t\tcopyString = copyString.replace(\"$ \", \"\")\n\t\t\t}\n\n\t\t\tnavigator.clipboard.writeText(copyString)\n\t\t\tsetHasCopied(true)\n\t\t}\n\n\t\tsetTimeout(() => setHasCopied(false), 1000)\n\t}\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative outline-none\",\n\t\t\t\t\"code-container-wrapper\",\n\t\t\t\t\"[&>pre]:bg-gray-800! [&>pre]:p-4!\",\n\t\t\t\ttextColor && genTextAllColor[textColor],\n\t\t\t\tgenRingColor[\"primary\"],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<SyntaxHighlighter style={style}>\n\t\t\t\t{children as any}\n\t\t\t</SyntaxHighlighter>\n\n\t\t\t{!hideCopyButton && (\n\t\t\t\t<ButtonIcon\n\t\t\t\t\tclassName={clsx(\"size-8\", \"copy-button\")}\n\t\t\t\t\tonClick={copyToClipboard}\n\t\t\t\t\ticon={\n\t\t\t\t\t\thasCopied\n\t\t\t\t\t\t\t? (icons?.copied ?? <BiCheck size={16} />)\n\t\t\t\t\t\t\t: (icons?.copy ?? <BiClipboard size={16} />)\n\t\t\t\t\t}\n\t\t\t\t\ttooltip={\n\t\t\t\t\t\thasCopied\n\t\t\t\t\t\t\t? (tooltipTexts?.copied ?? \"Copied!\")\n\t\t\t\t\t\t\t: (tooltipTexts?.copy ?? \"Copy\")\n\t\t\t\t\t}\n\t\t\t\t\tcolor={hasCopied ? \"success\" : \"primary\"}\n\t\t\t\t\tshowTooltip={{ className: \"absolute top-4 right-4\" }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { useState, useRef, type FC, useEffect } from \"react\"\nimport { useMergeRefs } from \"../../hooks\"\nimport { clsx } from \"../../utils\"\nimport type { ILibFade } from \"./types\"\n\n/**\n * Fade component for creating smooth fade-in animations when elements enter the viewport.\n *\n * @component\n *\n * @example\n * <Fade>\n * <h1>This content will fade in when visible</h1>\n * </Fade>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the fade container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the fade element.\n * @prop {React.ReactNode} [props.children] - Content to animate with fade effect.\n *\n * @returns {JSX.Element} The rendered Fade component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/fade\n */\nexport const Fade: FC<ILibFade> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst [isVisible, setIsVisible] = useState(true)\n\tconst fadeRef = useRef<Element>(null)\n\n\tuseEffect(() => {\n\t\tconst observer = new IntersectionObserver(entries => {\n\t\t\tentries.forEach(entry => setIsVisible(entry.isIntersecting))\n\t\t})\n\n\t\tobserver.observe((fadeRef as any).current)\n\t}, [])\n\n\treturn (\n\t\t<Element\n\t\t\tref={useMergeRefs([ref, fadeRef])}\n\t\t\tclassName={clsx(\n\t\t\t\t\"opacity-0 transition-all -translate-x-6 duration-500 ease-out\",\n\t\t\t\tisVisible && \"visible\",\n\t\t\t\t\"[&.visible]:opacity-100 [&.visible]:translate-x-0\",\n\t\t\t\t\"fade\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n","import { useEffect, useState, type FC } from \"react\"\nimport { BiUpArrowAlt } from \"react-icons/bi\"\nimport { scrollToTop } from \"@julseb-lib/utils\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport { clsx, genRingColor } from \"../../utils\"\nimport type { ILibBackToTop } from \"./types\"\n\n/**\n * BackToTop component for providing a smooth scroll-to-top functionality with customizable styling and positioning.\n *\n * @component\n *\n * @example\n * <BackToTop\n * color=\"primary\"\n * tooltip=\"Back to top\"\n * showTooltip={{ position: \"left\" }}\n * />\n *\n * @extends ILibButtonIcon\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the back-to-top button.\n * @prop {React.Ref<HTMLButtonElement>} [props.ref] - Ref to the button element.\n * @prop {React.ReactElement} [props.icon=<BiUpArrowAlt />] - Custom icon for the back-to-top button.\n * @prop {LibColorsShort} [props.color=\"primary\"] - Color theme for the button styling.\n * @prop {string} [props.tooltip=\"Back to top\"] - Tooltip text displayed on hover.\n * @prop {LibTooltipPositionOptions} [props.showTooltip] - Configuration for tooltip positioning and styling.\n *\n * @returns {JSX.Element} The rendered BackToTop component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/back-to-top\n */\nexport const BackToTop: FC<ILibBackToTop> = ({\n\tclassName,\n\tref,\n\ticon = <BiUpArrowAlt />,\n\tcolor = \"primary\",\n\ttooltip = \"Back to top\",\n\tshowTooltip,\n\t...rest\n}) => {\n\tconst [isVisible, setIsVisible] = useState(false)\n\n\tuseEffect(() => {\n\t\tconst scrollFn = () => {\n\t\t\tif (window.scrollY >= 200) {\n\t\t\t\tsetIsVisible(true)\n\t\t\t} else {\n\t\t\t\tsetIsVisible(false)\n\t\t\t}\n\t\t}\n\n\t\twindow.addEventListener(\"scroll\", scrollFn)\n\n\t\treturn () => window.removeEventListener(\"scroll\", scrollFn)\n\t}, [])\n\n\tconst smoothScroll = () => {\n\t\tdocument.body.classList.add(\"smooth\")\n\t\tdocument.documentElement.classList.add(\"smooth\")\n\n\t\tsetTimeout(() => scrollToTop(), 100)\n\n\t\tsetTimeout(() => {\n\t\t\tdocument.body.classList.remove(\"smooth\")\n\t\t\tdocument.documentElement.classList.remove(\"smooth\")\n\t\t}, 1000)\n\t}\n\n\treturn (\n\t\t<ButtonIcon\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\tisVisible ? \"opacity-100 visible \" : \"opacity-0 invisible\",\n\t\t\t\tgenRingColor[color],\n\t\t\t\t\"back-to-top\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ticon={icon}\n\t\t\tcolor={color}\n\t\t\ttooltip={tooltip as any}\n\t\t\tshowTooltip={\n\t\t\t\tshowTooltip && {\n\t\t\t\t\tposition: \"left\",\n\t\t\t\t\tclassName: [\n\t\t\t\t\t\t\"fixed bottom-5 right-5 [&_.tooltip]:translate-y-[10px] [&_.tooltip]:translate-x-[-50%] transition-all duration-200 ease-in-out\",\n\t\t\t\t\t\tisVisible ? \"opacity-100\" : \"opacity-0\",\n\t\t\t\t\t],\n\t\t\t\t\t...(showTooltip as any),\n\t\t\t\t}\n\t\t\t}\n\t\t\tonClick={smoothScroll}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n","import { useEffect, useRef, type FC } from \"react\"\nimport { BiX } from \"react-icons/bi\"\nimport { disableScroll, enableScroll, stringifyPx } from \"@julseb-lib/utils\"\nimport { useClickOutside, useKeyPress } from \"../../hooks\"\nimport { ButtonIcon } from \"../ButtonIcon\"\nimport {\n\tclsx,\n\tgenBgAllColors,\n\tgenBgAllColorsAndOverlays,\n\tgenButtonColor,\n\tgenGap,\n\tgenLinkColor,\n\tgenTextAllColor,\n} from \"../../utils\"\nimport type { ILibDrawer } from \"./types\"\n\n/**\n * Drawer component for creating slide-out panels with customizable positioning, styling, and overlay functionality.\n *\n * @component\n *\n * @example\n * <Drawer\n * isOpen={isDrawerOpen}\n * setIsOpen={setIsDrawerOpen}\n * position=\"right\"\n * backgroundColor=\"primary\"\n * contentColor=\"white\"\n * >\n * <h2>Drawer Content</h2>\n * <p>This is the drawer content.</p>\n * </Drawer>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the drawer container.\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the drawer element.\n * @prop {React.ReactNode} [props.children] - Content to display inside the drawer.\n * @prop {boolean} [props.isOpen] - Whether the drawer is currently open.\n * @prop {function} [props.setIsOpen] - Function to control the drawer's open/closed state.\n * @prop {\"left\" | \"right\"} [props.position=\"right\"] - Position of the drawer relative to the viewport.\n * @prop {boolean} [props.enableScrollingOpen] - Whether to allow page scrolling when drawer is open.\n * @prop {boolean} [props.disableEsc] - Whether to disable closing the drawer with the Escape key.\n * @prop {LibAllColors} [props.backgroundColor=\"primary\"] - Background color for the drawer content area.\n * @prop {LibAllColors} [props.contentColor=\"white\"] - Text color for the drawer content.\n * @prop {LibAllColors} [props.linksColor=\"white\"] - Color for links and buttons within the drawer.\n * @prop {LibSpacers} [props.gap=\"md\"] - Gap between child elements in the drawer.\n * @prop {number} [props.maxWidth=400] - Maximum width of the drawer in pixels.\n * @prop {LibAllColorsAndOverlays} [props.overlayColor=\"black-80\"] - Background color for the overlay behind the drawer.\n * @prop {boolean} [props.hideCloseButton] - Whether to hide the close button in the drawer.\n *\n * @returns {JSX.Element} The rendered Drawer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/drawer\n */\nexport const Drawer: FC<ILibDrawer> = ({\n\tclassName,\n\telement = \"div\",\n\tref,\n\tchildren,\n\tisOpen,\n\tsetIsOpen,\n\tposition = \"right\",\n\tenableScrollingOpen,\n\tdisableEsc,\n\tbackgroundColor = \"primary\",\n\tcontentColor = \"white\",\n\tlinksColor = \"white\",\n\tgap = \"md\",\n\tmaxWidth = 400,\n\toverlayColor = \"black-80\",\n\thideCloseButton,\n\t...rest\n}) => {\n\tconst Element = element\n\n\tconst el = useRef<HTMLDivElement>(null)\n\n\tuseClickOutside(el as any, () => isOpen && setIsOpen(false))\n\n\tuseKeyPress(\"Escape\", () => {\n\t\tif (!disableEsc && isOpen) setIsOpen(false)\n\t})\n\n\tuseEffect(() => {\n\t\tif (!enableScrollingOpen && isOpen) disableScroll()\n\t\telse enableScroll()\n\t}, [enableScrollingOpen, isOpen])\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"invisible top-0 left-0 z-999 fixed opacity-0 w-full h-svh transition-all duration-200 ease-in-out\",\n\t\t\t\tisOpen && \"open\",\n\t\t\t\t\"[&.open]:opacity-100 [&.open]:visible [&.open]:transition-none\",\n\t\t\t\t\"drawer\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tgenBgAllColorsAndOverlays[overlayColor],\n\t\t\t\t\t\"absolute top-0 left-0 z-0 w-full h-full transition-all duration-200 ease-in-out invisible opacity-0\",\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\t\"[&.open]:opacity-100 [&.open]:visible\",\n\t\t\t\t\t\"overlay\",\n\t\t\t\t)}\n\t\t\t\tonClick={() => setIsOpen(false)}\n\t\t\t/>\n\n\t\t\t<div\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"top-0 z-10 absolute flex flex-col items-stretch gap-2 p-4 w-full max-w-(--drawer-max-width) h-full [&>*]:text-left transition-all duration-200 ease-in-out\",\n\t\t\t\t\tgenGap[gap],\n\t\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\t\tgenTextAllColor[contentColor],\n\t\t\t\t\tgenLinkColor[linksColor],\n\t\t\t\t\tgenButtonColor[linksColor],\n\t\t\t\t\tisOpen && \"open\",\n\t\t\t\t\tposition === \"left\"\n\t\t\t\t\t\t? \"left-[calc(var(--drawer-max-width)*-1)] [&.open]:left-0\"\n\t\t\t\t\t\t: \"right-[calc(var(--drawer-max-width)*-1)] [&.open]:right-0\",\n\t\t\t\t\t\"drawer-content\",\n\t\t\t\t)}\n\t\t\t\tstyle={{ [\"--drawer-max-width\" as any]: stringifyPx(maxWidth) }}\n\t\t\t\tref={el}\n\t\t\t>\n\t\t\t\t{children}\n\n\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t<ButtonIcon\n\t\t\t\t\t\ticon={<BiX size={24} />}\n\t\t\t\t\t\tcolor=\"white\"\n\t\t\t\t\t\tvariant=\"transparent\"\n\t\t\t\t\t\tclassName=\"top-2 right-2 absolute size-12\"\n\t\t\t\t\t\tonClick={() => setIsOpen(false)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</Element>\n\t)\n}\n","import { useState, useEffect, useRef, type FC } from \"react\"\nimport { enableScroll, disableScroll } from \"@julseb-lib/utils\"\nimport { useClickOutside, useMaxWidth, useKeyPress } from \"../../hooks\"\nimport { Burger } from \"../Burger\"\nimport { HeaderSearch } from \"./HeaderSearch\"\nimport {\n\tclsx,\n\tgenBgAllColors,\n\tgenLinkColor,\n\tgenRingColorChildren,\n\tgenTextAllColor,\n} from \"../../utils\"\nimport type { ILibHeader } from \"./types\"\n\n/**\n * Header component for creating responsive navigation headers with customizable positioning, mobile menu variants, and search functionality.\n *\n * @component\n *\n * @example\n * <Header\n * logo={<img src=\"/logo.png\" alt=\"Logo\" />}\n * burgerPosition=\"right\"\n * navDesktopPosition=\"right\"\n * navMobileVariant=\"drawer\"\n * backgroundColor=\"primary\"\n * textColor=\"white\"\n * >\n * <nav>\n * <a href=\"/\">Home</a>\n * <a href=\"/about\">About</a>\n * </nav>\n * </Header>\n *\n * @extends HTMLDivElement\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the header container.\n * @prop {React.ElementType} [props.element=\"header\"] - HTML element type to render as the container.\n * @prop {React.Ref<HTMLDivElement>} [props.ref] - Ref to the header element.\n * @prop {React.ReactNode} [props.logo] - Logo content to display in the header.\n * @prop {\"left\" | \"right\"} [props.burgerPosition=\"right\"] - Position of the burger menu button.\n * @prop {LibColorsHover | object} [props.burgerColor=\"white\"] - Color for the burger menu button, can be a single color or object with open/closed states.\n * @prop {React.ReactNode} [props.children] - Content to display in the navigation area.\n * @prop {\"left\" | \"right\"} [props.navDesktopPosition=\"right\"] - Position of the navigation on desktop screens.\n * @prop {\"drawer\" | \"fullscreen\"} [props.navMobileVariant=\"drawer\"] - Variant for mobile navigation display.\n * @prop {boolean} [props.enableScrollingOpen] - Whether to allow page scrolling when mobile menu is open.\n * @prop {React.ReactNode} [props.search] - Search component to display in the header.\n * @prop {\"relative\" | \"absolute\" | \"fixed\"} [props.position=\"relative\"] - CSS position property for the header.\n * @prop {boolean | number} [props.hideOnScroll] - Whether to hide header on scroll, or scroll threshold in pixels.\n * @prop {Array<React.ReactNode>} [props.links] - Array of link elements for navigation.\n * @prop {React.ReactNode} [props.nav] - Navigation content to display.\n * @prop {LibAllColors} [props.backgroundColor=\"primary\"] - Background color for the header.\n * @prop {LibAllColors} [props.textColor=\"white\"] - Text color for header content.\n * @prop {LibColorsHover} [props.linkColor=\"white\"] - Color for navigation links.\n *\n * @returns {JSX.Element} The rendered Header component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/header\n */\nexport const Header: FC<ILibHeader> = ({\n\tclassName,\n\telement = \"header\",\n\tref,\n\tlogo,\n\tburgerPosition = \"right\",\n\tburgerColor = \"white\",\n\tchildren,\n\tnavDesktopPosition = \"right\",\n\tnavMobileVariant = \"drawer\",\n\tenableScrollingOpen,\n\tsearch,\n\tposition = \"relative\",\n\thideOnScroll,\n\tlinks,\n\tnav,\n\tbackgroundColor = \"primary\",\n\ttextColor = \"white\",\n\tlinkColor = \"white\",\n\t...rest\n}) => {\n\tconst Element = element\n\tconst isMobile = useMaxWidth(16 * 48)\n\tconst el = useRef<HTMLDivElement>(null)\n\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [isHidden, setIsHidden] = useState(false)\n\n\tconst handleOpen = () => {\n\t\tif (!enableScrollingOpen) disableScroll()\n\t\tsetIsOpen(true)\n\t}\n\n\tconst handleClose = () => {\n\t\tif (!enableScrollingOpen) enableScroll()\n\t\tsetTimeout(() => setIsOpen(false), 10)\n\t}\n\n\tuseEffect(() => {\n\t\tconst handleHideScroll = () => {\n\t\t\tconst hidePosition =\n\t\t\t\ttypeof hideOnScroll === \"number\" ? hideOnScroll : 400\n\n\t\t\tif (window.pageYOffset >= hidePosition) {\n\t\t\t\tsetIsHidden(true)\n\t\t\t} else {\n\t\t\t\tsetIsHidden(false)\n\t\t\t}\n\t\t}\n\n\t\tif (hideOnScroll && typeof window !== \"undefined\") {\n\t\t\twindow.addEventListener(\"scroll\", handleHideScroll)\n\n\t\t\treturn () => window.removeEventListener(\"scroll\", handleHideScroll)\n\t\t}\n\t}, [hideOnScroll])\n\n\tconst burgerProps = {\n\t\tisOpen,\n\t\tonClick: () => {\n\t\t\tif (isOpen) handleClose()\n\t\t\telse handleOpen()\n\t\t},\n\t\tcolor:\n\t\t\ttypeof burgerColor === \"object\"\n\t\t\t\t? isOpen\n\t\t\t\t\t? burgerColor.open\n\t\t\t\t\t: burgerColor.closed\n\t\t\t\t: burgerColor,\n\t\tclassName: clsx(\"md:hidden block z-999\", \"header-burger\"),\n\t}\n\n\tconst searchProps = { search, handleClose }\n\n\tconst navProps = {\n\t\tchildren: (\n\t\t\t<>\n\t\t\t\t{links ? links.map(link => link) : nav ? nav : children}\n\n\t\t\t\t{isMobile && <HeaderSearch {...searchProps} />}\n\t\t\t</>\n\t\t),\n\t\tclassName: clsx(\n\t\t\t\"z-999 flex gap-2 [&>a]:outline-none transition-all duration-200 ease-in-out\",\n\t\t\t\"fixed md:relative\",\n\t\t\t\"flex-col md:flex-row px-[5%] md:px-0\",\n\t\t\tgenRingColorChildren[linkColor],\n\t\t\tnavDesktopPosition === \"left\" && \"grow\",\n\t\t\tgenBgAllColors[backgroundColor],\n\t\t\tnavMobileVariant === \"drawer\" && [\n\t\t\t\t\"top-[56px] md:top-[unset] w-[70%] md:w-fit h-[calc(100svh-56px)] md:h-[unset]\",\n\t\t\t\tnavDesktopPosition === \"left\"\n\t\t\t\t\t? isOpen\n\t\t\t\t\t\t? \"left-0 md:left-[unset]\"\n\t\t\t\t\t\t: \"left-[-70%] md:left-[unset]\"\n\t\t\t\t\t: isOpen\n\t\t\t\t\t\t? \"right-0 md:right-[unset]\"\n\t\t\t\t\t\t: \"right-[-70%] md:right-[unset]\",\n\t\t\t],\n\t\t\tnavMobileVariant === \"full\" && [\n\t\t\t\t\"top-[56px] md:top-[unset] w-[100%] md:w-fit h-[calc(100svh-56px)] md:h-[unset]\",\n\t\t\t\tnavDesktopPosition === \"left\"\n\t\t\t\t\t? isOpen\n\t\t\t\t\t\t? \"left-0 md:left-[unset]\"\n\t\t\t\t\t\t: \"left-[-100%] md:left-[unset]\"\n\t\t\t\t\t: isOpen\n\t\t\t\t\t\t? \"right-0 md:right-[unset]\"\n\t\t\t\t\t\t: \"right-[-100%] md:right-[unset]\",\n\t\t\t],\n\t\t\tnavMobileVariant === \"top\" && [\n\t\t\t\t\"md:top-[unset] w-[100%] md:w-fit h-fit md:h-[unset] left-0 md:left-[unset] py-4 md:py-0\",\n\t\t\t\tisOpen ? \"top-[56px] \" : \"top-[calc((160px+56px)*-1)]\",\n\t\t\t],\n\t\t\t\"nav\",\n\t\t),\n\t\tref: el,\n\t}\n\n\tuseKeyPress(\"Escape\", handleClose)\n\tuseClickOutside(el as any, () => {\n\t\tif (isOpen) handleClose()\n\t})\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"z-999 flex items-center px-[5%] py-4 w-full transition-all duration-200 ease-in-out\",\n\t\t\t\tnavDesktopPosition === \"left\"\n\t\t\t\t\t? \"justify-between md:justify-start gap-8\"\n\t\t\t\t\t: \"justify-between\",\n\t\t\t\tburgerPosition === \"left\" &&\n\t\t\t\t\t\"justify-start gap-4 md:justify-between\",\n\t\t\t\tposition,\n\t\t\t\tgenBgAllColors[backgroundColor],\n\t\t\t\tgenTextAllColor[textColor],\n\t\t\t\tgenLinkColor[linkColor],\n\t\t\t\tisHidden ? \"top-[-56px]\" : \"top-0\",\n\t\t\t\t\"header\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{burgerPosition === \"left\" && <Burger {...burgerProps} />}\n\n\t\t\t<span\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t\"z-999 outline-none [&>a]:outline-none\",\n\t\t\t\t\tgenRingColorChildren[linkColor],\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{logo}\n\t\t\t</span>\n\n\t\t\t{navDesktopPosition === \"left\" && <nav {...navProps} />}\n\n\t\t\t{!isMobile && navDesktopPosition === \"right\" && (\n\t\t\t\t<HeaderSearch {...searchProps} />\n\t\t\t)}\n\n\t\t\t{burgerPosition === \"right\" && <Burger {...burgerProps} />}\n\n\t\t\t{isMobile && navMobileVariant === \"drawer\" && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"md:hidden sm:visible transition-all duration-200 ease-in-out\",\n\t\t\t\t\t\t\"absolute w-full h-[calc(100svh-56px)] top-[56px] left-0 z-996 bg-overlay-black-50\",\n\t\t\t\t\t\tisOpen ? \"visible opacity-100\" : \"invisible opacity-0\",\n\t\t\t\t\t\t\"drawer-overlay\",\n\t\t\t\t\t)}\n\t\t\t\t\tonClick={handleClose}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{navDesktopPosition === \"right\" && <nav {...navProps} />}\n\n\t\t\t{!isMobile && navDesktopPosition === \"left\" && (\n\t\t\t\t<HeaderSearch {...searchProps} />\n\t\t\t)}\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport { stringifyPx } from \"@julseb-lib/utils\"\nimport { Input } from \"../Input\"\nimport { clsx } from \"../../utils\"\nimport type { ILibHeaderSearch } from \"./subtypes\"\n\nexport const HeaderSearch: FC<ILibHeaderSearch> = ({ search, handleClose }) => {\n\tif (!search) return null\n\n\tconst {\n\t\tvalue,\n\t\tsetValue,\n\t\thandleSubmit,\n\t\tplaceholder,\n\t\ticonLeft,\n\t\ticonClear,\n\t\tfocusKeys,\n\t\tshowKeys,\n\t\tinputBackground,\n\t\tinputVariant,\n\t\tmaxWidth = 400,\n\t\tclearSearch,\n\t} = search\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={e => {\n\t\t\t\thandleSubmit(e)\n\t\t\t\thandleClose()\n\t\t\t}}\n\t\t\tclassName={clsx(\"w-full max-w-(--form-max-width)\", \"search-form\")}\n\t\t\tstyle={{ [\"--form-max-width\" as any]: stringifyPx(maxWidth) }}\n\t\t>\n\t\t\t<Input\n\t\t\t\ttype=\"search\"\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={e => setValue(e.target.value)}\n\t\t\t\ticon={iconLeft}\n\t\t\t\ticonClear={iconClear}\n\t\t\t\tfocusKeys={focusKeys}\n\t\t\t\tshowKeys={showKeys}\n\t\t\t\tinputBackground={inputBackground}\n\t\t\t\tinputVariant={inputVariant}\n\t\t\t\tclassName=\"search-input\"\n\t\t\t\tclearSearch={clearSearch}\n\t\t\t/>\n\t\t</form>\n\t)\n}\n","import { Children, Fragment, type FC } from \"react\"\nimport { uuid } from \"@julseb-lib/utils\"\nimport { clsx, genTextAllColor } from \"../../utils\"\nimport type { ILibFooter } from \"./types\"\n\n/**\n * Footer component for displaying a page footer with logo, links, and customizable layout options.\n *\n * @component\n *\n * @example\n * <Footer\n * logo={<img src=\"/logo.png\" alt=\"Logo\" />}\n * direction=\"horizontal\"\n * linksSeparator=\"dot\"\n * items={[\n * <a href=\"/privacy\">Privacy</a>,\n * <a href=\"/terms\">Terms</a>,\n * <a href=\"/contact\">Contact</a>\n * ]}\n * />\n *\n * @extends ILibFooter\n *\n * @prop {string} [props.className] - Additional CSS classes to apply to the footer container.\n * @prop {React.ElementType} [props.element=\"footer\"] - HTML element type to render as the container.\n * @prop {React.Ref<any>} [props.ref] - Ref to the footer element.\n * @prop {React.ReactNode} [props.children] - Child elements to display in the footer links section.\n * @prop {boolean} [props.hideSeparator] - Whether to hide the top border separator line.\n * @prop {boolean} [props.hideLinksSeparator] - Whether to hide separators between footer links.\n * @prop {\"dot\" | \"dash\"} [props.linksSeparator=\"dot\"] - Type of separator to display between links.\n * @prop {Array<React.ReactNode>} [props.items] - Array of footer link items to display.\n * @prop {React.ReactNode} [props.logo] - Logo element to display in the footer.\n * @prop {\"horizontal\" | \"vertical\"} [props.direction=\"horizontal\"] - Layout direction for footer content.\n * @prop {LibAllColors} [props.linksSeparatorColor=\"gray-500\"] - Color for the separator between links.\n *\n * @returns {JSX.Element} The rendered Footer component.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/footer\n */\nexport const Footer: FC<ILibFooter> = ({\n\tclassName,\n\telement = \"footer\",\n\tref,\n\tchildren,\n\thideSeparator,\n\thideLinksSeparator,\n\tlinksSeparator = \"dot\",\n\titems,\n\tlogo,\n\tdirection = \"horizontal\",\n\tlinksSeparatorColor = \"gray-500\",\n\t...rest\n}) => {\n\tconst Element = element\n\tconst childrenArray = Children.toArray(children)\n\n\treturn (\n\t\t<Element\n\t\t\tref={ref}\n\t\t\tclassName={clsx(\n\t\t\t\t\"relative flex px-[5%] pb-4\",\n\t\t\t\tdirection === \"horizontal\"\n\t\t\t\t\t? \"flex-row justify-between\"\n\t\t\t\t\t: \"flex-col items-center gap-2\",\n\t\t\t\t!hideSeparator &&\n\t\t\t\t\t\"before:w-[90%] before:h-[1px] before:absolute before:top-0 before:left-[5%] before:bg-gray-200 pt-4\",\n\t\t\t\t\"footer\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{logo}\n\n\t\t\t<div className=\"flex items-container gap-2\">\n\t\t\t\t{items?.map((item, i) => (\n\t\t\t\t\t<Fragment key={uuid()}>\n\t\t\t\t\t\t{item}\n\n\t\t\t\t\t\t{i !== items.length - 1 && !hideLinksSeparator && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\t\tgenTextAllColor[linksSeparatorColor],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{linksSeparator === \"dot\" ? \"•\" : \"-\"}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t)) ??\n\t\t\t\t\tchildrenArray.map((child, i) => (\n\t\t\t\t\t\t<Fragment key={uuid()}>\n\t\t\t\t\t\t\t{child}\n\n\t\t\t\t\t\t\t{i !== childrenArray.length - 1 &&\n\t\t\t\t\t\t\t\t!hideLinksSeparator &&\n\t\t\t\t\t\t\t\t(linksSeparator === \"dot\" ? \"•\" : \"-\")}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t))}\n\t\t\t</div>\n\t\t</Element>\n\t)\n}\n","import { type FC } from \"react\"\nimport type { ILibMeta } from \"./types\"\n\n/**\n * Meta component for managing HTML head metadata including SEO, Open Graph, and Twitter Card properties.\n *\n * @component\n *\n * @example\n * <Meta\n * title=\"My Website\"\n * description=\"A description of my website\"\n * favicon=\"/favicon.ico\"\n * cover=\"/og-image.jpg\"\n * siteName=\"My Site\"\n * author=\"John Doe\"\n * url=\"https://mywebsite.com\"\n * />\n *\n * @prop {React.ReactNode} [props.children] - Additional meta tags or head elements to include.\n * @prop {string} [props.title] - Page title for the document and social media.\n * @prop {string} [props.favicon] - URL path to the favicon icon file.\n * @prop {string} [props.description] - Page description for SEO and social media.\n * @prop {string} [props.generator] - Name of the generator used to create the page.\n * @prop {string[]} [props.keywords] - Array of keywords for SEO purposes.\n * @prop {string} [props.author] - Author name for the page content.\n * @prop {string} [props.authorUrl] - URL to the author's profile or website.\n * @prop {string} [props.publisher] - Publisher name for the content.\n * @prop {string} [props.type] - Open Graph type (e.g., \"website\", \"article\").\n * @prop {string} [props.cover] - URL to the cover image for social media sharing.\n * @prop {string} [props.siteName] - Name of the website or application.\n * @prop {string} [props.language] - Language locale code (e.g., \"en-US\").\n * @prop {string} [props.url] - Canonical URL of the page.\n * @prop {string} [props.email] - Contact email address.\n * @prop {string} [props.creator] - Creator name for the content.\n * @prop {string} [props.manifest] - URL path to the web app manifest file.\n * @prop {string} [props.category] - Category classification for the content.\n * @prop {string} [props.twitterCard] - Twitter Card type (e.g., \"summary\", \"summary_large_image\").\n *\n * @returns {JSX.Element} The rendered Meta component with HTML head elements.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/meta\n */\nexport const Meta: FC<ILibMeta> = ({\n\tchildren,\n\ttitle,\n\tfavicon,\n\tdescription,\n\tgenerator,\n\tkeywords,\n\tauthor,\n\tauthorUrl,\n\tpublisher,\n\ttype = \"website\",\n\tcover,\n\tsiteName,\n\tlanguage,\n\turl,\n\temail,\n\tcreator,\n\tmanifest,\n\tcategory,\n\ttwitterCard = \"summary\",\n}) => {\n\treturn (\n\t\t<>\n\t\t\t<meta charSet=\"utf-8\" />\n\t\t\t<meta\n\t\t\t\tname=\"viewport\"\n\t\t\t\tcontent=\"width=device-width, initial-scale=1\"\n\t\t\t/>\n\t\t\t{title && (\n\t\t\t\t<>\n\t\t\t\t\t<title>{title}</title>\n\t\t\t\t\t<meta property=\"og:title\" content={title} />\n\t\t\t\t\t<meta name=\"twitter:title\" content={title} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{description && (\n\t\t\t\t<>\n\t\t\t\t\t<meta name=\"description\" content={description} />\n\t\t\t\t\t<meta property=\"og:description\" content={description} />\n\t\t\t\t\t<meta name=\"twitter:description\" content={description} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{siteName && (\n\t\t\t\t<>\n\t\t\t\t\t<meta name=\"application-name\" content={siteName} />\n\t\t\t\t\t<meta property=\"og:site_name\" content={siteName} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{author && (\n\t\t\t\t<>\n\t\t\t\t\t<meta name=\"author\" content={author} />\n\t\t\t\t\t<meta name=\"twitter:creator\" content={author} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{url && (\n\t\t\t\t<>\n\t\t\t\t\t<meta property=\"og:url\" content={url} />\n\t\t\t\t\t<meta name=\"twitter:site\" content={url} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{cover && (\n\t\t\t\t<>\n\t\t\t\t\t<meta property=\"og:image\" content={cover} />\n\t\t\t\t\t<meta name=\"twitter:image\" content={cover} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t{authorUrl && <link rel=\"author\" href={authorUrl} />}\n\t\t\t{manifest && <link rel=\"manifest\" href={manifest} />}\n\t\t\t{generator && <meta name=\"generator\" content={generator} />}\n\t\t\t{keywords && <meta name=\"keywords\" content={keywords?.join(\",\")} />}\n\t\t\t{creator && <meta name=\"creator\" content={creator} />}\n\t\t\t{publisher && <meta name=\"publisher\" content={publisher} />}\n\t\t\t{category && <meta name=\"category\" content={category} />}\n\t\t\t{language && <meta property=\"og:locale\" content={language} />}\n\t\t\t{email && <meta property=\"og:email\" content={email} />}\n\t\t\t{type && <meta property=\"og:type\" content={type} />}\n\t\t\t{twitterCard && <meta name=\"twitter:card\" content={twitterCard} />}\n\t\t\t{favicon && <link rel=\"icon\" href={favicon} />}\n\t\t\t{children}\n\t\t</>\n\t)\n}\n","import { type FC } from \"react\"\nimport { Meta } from \"../Meta\"\nimport { Header } from \"../Header\"\nimport { Wrapper } from \"../Wrapper\"\nimport { Main } from \"../Main\"\nimport { Footer } from \"../Footer\"\nimport type { ILibPageLayout } from \"./types\"\n\n/**\n * PageLayout component for creating a complete page structure with optional header, footer, wrapper, and meta tags.\n *\n * @component\n *\n * @example\n * <PageLayout\n * meta={{ title: \"My Page\", description: \"Page description\" }}\n * header={{ logo: <Logo />, nav: <Nav /> }}\n * footer={{ logo: <Logo />, items: [<Link href=\"/privacy\">Privacy</Link>] }}\n * wrapperProps={{ maxWidth: \"px\" }}\n * mainProps={{ className: \"large\" }}\n * >\n * <h1>Page Content</h1>\n * </PageLayout>\n *\n * @prop {React.ReactNode} [props.children] - The main content to be rendered inside the page layout.\n * @prop {ILibMeta} [props.meta] - Meta component props for HTML head metadata including SEO and social media tags.\n * @prop {ILibHeader} [props.header] - Header component props for displaying the page header with logo and navigation.\n * @prop {ILibWrapper} [props.wrapperProps] - Wrapper component props for controlling the page container styling and layout.\n * @prop {ILibMain} [props.mainProps] - Main component props for styling the main content area.\n * @prop {ILibFooter} [props.footer] - Footer component props for displaying the page footer with links and logo.\n * @prop {boolean} [props.noWrapper] - Whether to skip rendering the Wrapper component around the main content.\n * @prop {boolean} [props.noMain] - Whether to skip rendering the Main component wrapper around children.\n *\n * @returns {JSX.Element} The rendered PageLayout component with complete page structure.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/page-layout\n */\nexport const PageLayout: FC<ILibPageLayout> = ({\n\tchildren,\n\tmeta,\n\theader,\n\twrapperProps,\n\tmainProps,\n\tfooter,\n\tnoWrapper,\n\tnoMain,\n}) => {\n\treturn (\n\t\t<>\n\t\t\t{meta && <Meta {...meta} />}\n\t\t\t{header && <Header {...header} />}\n\t\t\t{!noWrapper && (\n\t\t\t\t<Wrapper {...wrapperProps}>\n\t\t\t\t\t{!noMain ? (\n\t\t\t\t\t\t<Main {...mainProps}>{children}</Main>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tchildren\n\t\t\t\t\t)}\n\t\t\t\t</Wrapper>\n\t\t\t)}\n\t\t\t{footer && <Footer {...footer} />}\n\t\t</>\n\t)\n}\n","import { type FC } from \"react\"\nimport { clsx } from \"../../utils\"\nimport type { ILibSrOnly } from \"./types\"\n\n/**\n * SrOnly component for creating screen reader only content that is visually hidden but accessible to assistive technologies.\n *\n * @component\n *\n * @example\n * <SrOnly>\n * This text is only visible to screen readers\n * </SrOnly>\n *\n * @extends ILibSrOnly\n *\n * @prop {React.ElementType} [props.element=\"div\"] - HTML element type to render as the container.\n * @prop {React.Ref<any>} [props.ref] - Ref to the sr-only element.\n * @prop {React.ReactNode} [props.children] - Content to be hidden visually but accessible to screen readers.\n *\n * @returns {JSX.Element} The rendered SrOnly component with screen reader accessible content.\n *\n * @see https://doc-julseb-lib-react.vercel.app/components/sr-only\n */\nexport const SrOnly: FC<ILibSrOnly> = ({ element = \"div\", ref, children }) => {\n\tconst Element = element\n\n\treturn (\n\t\t<Element ref={ref} className={clsx(\"sr-only\")}>\n\t\t\t{children}\n\t\t</Element>\n\t)\n}\n"],"mappings":"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AAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;A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","names":["classNameX","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_utils","import_jsx_runtime","import_utils","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_react","import_utils","import_react","import_react","import_utils","COLORS","OVERLAYS","FONT_FAMILIES","FONT_SIZES","FONT_WEIGHTS","LINE_HEIGHTS","SHADOWS","INSET_SHADOWS","DROP_SHADOWS","TEXT_SHADOWS","SPACERS","RADIUS","LAYOUTS","TRANSITIONS","MEDIA","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_utils","import_jsx_runtime","genBorderRadius","import_react","import_utils","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_utils","import_jsx_runtime","URL_REGEX","import_jsx_runtime","maxWidth","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_utils","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","SPAN_COMMON","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","_a","_b","import_bi","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","_a","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","_a","_b","import_react","import_bi","import_jsx_runtime","_a","import_react","import_bi","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","_a","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","import_bi","import_jsx_runtime","import_jsx_runtime","import_bi","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","_a","_b","country","import_bi","import_jsx_runtime","_a","_b","import_react","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","_a","import_react","import_bi","import_utils","import_jsx_runtime","_a","_b","Fuse","import_bi","import_utils","import_jsx_runtime","_a","_b","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","_a","import_react","import_utils","import_react","import_jsx_runtime","_a","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_utils","import_jsx_runtime","import_utils","import_react","import_bi","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","_a","import_react","import_utils","import_jsx_runtime","import_jsx_runtime","import_react","_a","import_bi","import_jsx_runtime","import_jsx_runtime","Container","import_react_toastify","import_jsx_runtime","toastFn","import_jsx_runtime","import_react","import_bi","import_utils","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","import_jsx_runtime","import_react","import_bi","import_jsx_runtime","import_jsx_runtime","_a","_b","import_bi","import_jsx_runtime","_a","_b","import_utils","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_utils","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","_a","import_react","import_utils","import_bi","import_jsx_runtime","import_utils","import_jsx_runtime","genBgColor","import_jsx_runtime","_a","_b","import_jsx_runtime","import_react","import_utils","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_bi","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_utils","import_jsx_runtime","import_utils","import_jsx_runtime","import_jsx_runtime","_a","Markdown","import_markdown_to_jsx","import_jsx_runtime","Markdown","import_react","import_bi","import_jsx_runtime","_a","_b","SyntaxHighlighter","import_react","import_jsx_runtime","import_react","import_bi","import_utils","import_jsx_runtime","import_react","import_bi","import_utils","import_jsx_runtime","maxWidth","import_react","import_utils","import_utils","import_jsx_runtime","maxWidth","import_jsx_runtime","import_react","import_utils","import_jsx_runtime","_a","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}