@me1a/ui 2.2.1 → 2.2.2

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 (376) hide show
  1. package/dist/atoms/accordion.d.mts +94 -0
  2. package/dist/atoms/accordion.d.ts +94 -0
  3. package/dist/atoms/accordion.js +2 -0
  4. package/dist/atoms/accordion.js.map +1 -0
  5. package/dist/atoms/accordion.mjs +2 -0
  6. package/dist/atoms/accordion.mjs.map +1 -0
  7. package/dist/atoms/avatar.d.mts +34 -0
  8. package/dist/atoms/avatar.d.ts +34 -0
  9. package/dist/atoms/avatar.js +2 -0
  10. package/dist/atoms/avatar.js.map +1 -0
  11. package/dist/atoms/avatar.mjs +2 -0
  12. package/dist/atoms/avatar.mjs.map +1 -0
  13. package/dist/atoms/badge.d.mts +40 -0
  14. package/dist/atoms/badge.d.ts +40 -0
  15. package/dist/atoms/badge.js +2 -0
  16. package/dist/atoms/badge.js.map +1 -0
  17. package/dist/atoms/badge.mjs +2 -0
  18. package/dist/atoms/badge.mjs.map +1 -0
  19. package/dist/atoms/box.d.mts +50 -0
  20. package/dist/atoms/box.d.ts +50 -0
  21. package/dist/atoms/box.js +2 -0
  22. package/dist/atoms/box.js.map +1 -0
  23. package/dist/atoms/box.mjs +2 -0
  24. package/dist/atoms/box.mjs.map +1 -0
  25. package/dist/atoms/breadcrumb.d.mts +35 -0
  26. package/dist/atoms/breadcrumb.d.ts +35 -0
  27. package/dist/atoms/breadcrumb.js +2 -0
  28. package/dist/atoms/breadcrumb.js.map +1 -0
  29. package/dist/atoms/breadcrumb.mjs +2 -0
  30. package/dist/atoms/breadcrumb.mjs.map +1 -0
  31. package/dist/{tooltip-B4jzaurK.d.mts → atoms/button.d.mts} +1 -23
  32. package/dist/{tooltip-B4jzaurK.d.ts → atoms/button.d.ts} +1 -23
  33. package/dist/atoms/button.js +2 -0
  34. package/dist/atoms/button.js.map +1 -0
  35. package/dist/atoms/button.mjs +2 -0
  36. package/dist/atoms/button.mjs.map +1 -0
  37. package/dist/atoms/checkbox.d.mts +21 -0
  38. package/dist/atoms/checkbox.d.ts +21 -0
  39. package/dist/atoms/checkbox.js +2 -0
  40. package/dist/atoms/checkbox.js.map +1 -0
  41. package/dist/atoms/checkbox.mjs +2 -0
  42. package/dist/atoms/checkbox.mjs.map +1 -0
  43. package/dist/atoms/collapsible.d.mts +26 -0
  44. package/dist/atoms/collapsible.d.ts +26 -0
  45. package/dist/atoms/collapsible.js +2 -0
  46. package/dist/atoms/collapsible.js.map +1 -0
  47. package/dist/atoms/collapsible.mjs +2 -0
  48. package/dist/atoms/collapsible.mjs.map +1 -0
  49. package/dist/atoms/command.d.mts +122 -0
  50. package/dist/atoms/command.d.ts +122 -0
  51. package/dist/atoms/command.js +2 -0
  52. package/dist/atoms/command.js.map +1 -0
  53. package/dist/atoms/command.mjs +2 -0
  54. package/dist/atoms/command.mjs.map +1 -0
  55. package/dist/atoms/container.js +2 -0
  56. package/dist/atoms/container.js.map +1 -0
  57. package/dist/atoms/container.mjs +2 -0
  58. package/dist/atoms/container.mjs.map +1 -0
  59. package/dist/atoms/dialog.d.mts +35 -0
  60. package/dist/atoms/dialog.d.ts +35 -0
  61. package/dist/atoms/dialog.js +2 -0
  62. package/dist/atoms/dialog.js.map +1 -0
  63. package/dist/atoms/dialog.mjs +2 -0
  64. package/dist/atoms/dialog.mjs.map +1 -0
  65. package/dist/atoms/input.d.mts +12 -0
  66. package/dist/atoms/input.d.ts +12 -0
  67. package/dist/atoms/input.js +2 -0
  68. package/dist/atoms/input.js.map +1 -0
  69. package/dist/atoms/input.mjs +2 -0
  70. package/dist/atoms/input.mjs.map +1 -0
  71. package/dist/atoms/label.d.mts +18 -0
  72. package/dist/atoms/label.d.ts +18 -0
  73. package/dist/atoms/label.js +2 -0
  74. package/dist/atoms/label.js.map +1 -0
  75. package/dist/atoms/label.mjs +2 -0
  76. package/dist/atoms/label.mjs.map +1 -0
  77. package/dist/atoms/page-loader.d.mts +29 -0
  78. package/dist/atoms/page-loader.d.ts +29 -0
  79. package/dist/atoms/page-loader.js +2 -0
  80. package/dist/atoms/page-loader.js.map +1 -0
  81. package/dist/atoms/page-loader.mjs +2 -0
  82. package/dist/atoms/page-loader.mjs.map +1 -0
  83. package/dist/atoms/pagination.d.mts +105 -0
  84. package/dist/atoms/pagination.d.ts +105 -0
  85. package/dist/atoms/pagination.js +2 -0
  86. package/dist/atoms/pagination.js.map +1 -0
  87. package/dist/atoms/pagination.mjs +2 -0
  88. package/dist/atoms/pagination.mjs.map +1 -0
  89. package/dist/atoms/popover.d.mts +30 -0
  90. package/dist/atoms/popover.d.ts +30 -0
  91. package/dist/atoms/popover.js +2 -0
  92. package/dist/atoms/popover.js.map +1 -0
  93. package/dist/atoms/popover.mjs +2 -0
  94. package/dist/atoms/popover.mjs.map +1 -0
  95. package/dist/{checkbox-DxgDKaHx.d.mts → atoms/radio-group.d.mts} +4 -50
  96. package/dist/{checkbox-DxgDKaHx.d.ts → atoms/radio-group.d.ts} +4 -50
  97. package/dist/atoms/radio-group.js +2 -0
  98. package/dist/atoms/radio-group.js.map +1 -0
  99. package/dist/atoms/radio-group.mjs +2 -0
  100. package/dist/atoms/radio-group.mjs.map +1 -0
  101. package/dist/atoms/resizable.d.mts +53 -0
  102. package/dist/atoms/resizable.d.ts +53 -0
  103. package/dist/atoms/resizable.js +2 -0
  104. package/dist/atoms/resizable.js.map +1 -0
  105. package/dist/atoms/resizable.mjs +2 -0
  106. package/dist/atoms/resizable.mjs.map +1 -0
  107. package/dist/atoms/separator.d.mts +13 -0
  108. package/dist/atoms/separator.d.ts +13 -0
  109. package/dist/atoms/separator.js +2 -0
  110. package/dist/atoms/separator.js.map +1 -0
  111. package/dist/atoms/separator.mjs +2 -0
  112. package/dist/atoms/separator.mjs.map +1 -0
  113. package/dist/atoms/sheet.d.mts +42 -0
  114. package/dist/atoms/sheet.d.ts +42 -0
  115. package/dist/atoms/sheet.js +2 -0
  116. package/dist/atoms/sheet.js.map +1 -0
  117. package/dist/atoms/sheet.mjs +2 -0
  118. package/dist/atoms/sheet.mjs.map +1 -0
  119. package/dist/atoms/skeleton.js +2 -0
  120. package/dist/atoms/skeleton.js.map +1 -0
  121. package/dist/atoms/skeleton.mjs +2 -0
  122. package/dist/atoms/skeleton.mjs.map +1 -0
  123. package/dist/atoms/stack.d.mts +121 -0
  124. package/dist/atoms/stack.d.ts +121 -0
  125. package/dist/atoms/stack.js +2 -0
  126. package/dist/atoms/stack.js.map +1 -0
  127. package/dist/atoms/stack.mjs +2 -0
  128. package/dist/atoms/stack.mjs.map +1 -0
  129. package/dist/atoms/switch.d.mts +21 -0
  130. package/dist/atoms/switch.d.ts +21 -0
  131. package/dist/atoms/switch.js +2 -0
  132. package/dist/atoms/switch.js.map +1 -0
  133. package/dist/atoms/switch.mjs +2 -0
  134. package/dist/atoms/switch.mjs.map +1 -0
  135. package/dist/atoms/table.d.mts +53 -0
  136. package/dist/atoms/table.d.ts +53 -0
  137. package/dist/atoms/table.js +2 -0
  138. package/dist/atoms/table.js.map +1 -0
  139. package/dist/atoms/table.mjs +2 -0
  140. package/dist/atoms/table.mjs.map +1 -0
  141. package/dist/atoms/text-field.d.mts +65 -0
  142. package/dist/atoms/text-field.d.ts +65 -0
  143. package/dist/atoms/text-field.js +2 -0
  144. package/dist/atoms/text-field.js.map +1 -0
  145. package/dist/atoms/text-field.mjs +2 -0
  146. package/dist/atoms/text-field.mjs.map +1 -0
  147. package/dist/atoms/textarea.js +2 -0
  148. package/dist/atoms/textarea.js.map +1 -0
  149. package/dist/atoms/textarea.mjs +2 -0
  150. package/dist/atoms/textarea.mjs.map +1 -0
  151. package/dist/{toast-2xT7L1tJ.d.mts → atoms/toast.d.mts} +1 -1
  152. package/dist/{toast-2xT7L1tJ.d.ts → atoms/toast.d.ts} +1 -1
  153. package/dist/atoms/toast.js +2 -0
  154. package/dist/atoms/toast.js.map +1 -0
  155. package/dist/atoms/toast.mjs +2 -0
  156. package/dist/atoms/toast.mjs.map +1 -0
  157. package/dist/atoms/toaster.d.mts +26 -0
  158. package/dist/atoms/toaster.d.ts +26 -0
  159. package/dist/atoms/toaster.js +2 -0
  160. package/dist/atoms/toaster.js.map +1 -0
  161. package/dist/atoms/toaster.mjs +2 -0
  162. package/dist/atoms/toaster.mjs.map +1 -0
  163. package/dist/atoms/tooltip.d.mts +25 -0
  164. package/dist/atoms/tooltip.d.ts +25 -0
  165. package/dist/atoms/tooltip.js +2 -0
  166. package/dist/atoms/tooltip.js.map +1 -0
  167. package/dist/atoms/tooltip.mjs +2 -0
  168. package/dist/atoms/tooltip.mjs.map +1 -0
  169. package/dist/atoms/typography.d.mts +24 -0
  170. package/dist/atoms/typography.d.ts +24 -0
  171. package/dist/atoms/typography.js +2 -0
  172. package/dist/atoms/typography.js.map +1 -0
  173. package/dist/atoms/typography.mjs +2 -0
  174. package/dist/atoms/typography.mjs.map +1 -0
  175. package/dist/atoms.d.mts +213 -27
  176. package/dist/atoms.d.ts +213 -27
  177. package/dist/atoms.js +2 -0
  178. package/dist/atoms.js.map +1 -0
  179. package/dist/atoms.mjs +2 -0
  180. package/dist/atoms.mjs.map +1 -0
  181. package/dist/hooks.d.mts +10 -4
  182. package/dist/hooks.d.ts +10 -4
  183. package/dist/hooks.js +2 -0
  184. package/dist/hooks.js.map +1 -0
  185. package/dist/hooks.mjs +2 -0
  186. package/dist/hooks.mjs.map +1 -0
  187. package/dist/index.d.mts +2619 -30
  188. package/dist/index.d.ts +2619 -30
  189. package/dist/index.js +2 -0
  190. package/dist/index.js.map +1 -0
  191. package/dist/index.mjs +2 -0
  192. package/dist/index.mjs.map +1 -0
  193. package/dist/molecules/card.d.mts +72 -0
  194. package/dist/molecules/card.d.ts +72 -0
  195. package/dist/molecules/card.js +2 -0
  196. package/dist/molecules/card.js.map +1 -0
  197. package/dist/molecules/card.mjs +2 -0
  198. package/dist/molecules/card.mjs.map +1 -0
  199. package/dist/molecules/navigation-menu.d.mts +103 -0
  200. package/dist/molecules/navigation-menu.d.ts +103 -0
  201. package/dist/molecules/navigation-menu.js +2 -0
  202. package/dist/molecules/navigation-menu.js.map +1 -0
  203. package/dist/molecules/navigation-menu.mjs +2 -0
  204. package/dist/molecules/navigation-menu.mjs.map +1 -0
  205. package/dist/molecules/tabs.d.mts +32 -0
  206. package/dist/molecules/tabs.d.ts +32 -0
  207. package/dist/molecules/tabs.js +2 -0
  208. package/dist/molecules/tabs.js.map +1 -0
  209. package/dist/molecules/tabs.mjs +2 -0
  210. package/dist/molecules/tabs.mjs.map +1 -0
  211. package/dist/molecules.d.mts +1 -1
  212. package/dist/molecules.d.ts +1 -1
  213. package/dist/molecules.js +2 -0
  214. package/dist/molecules.js.map +1 -0
  215. package/dist/molecules.mjs +2 -0
  216. package/dist/molecules.mjs.map +1 -0
  217. package/dist/organisms/drawer.d.mts +63 -0
  218. package/dist/organisms/drawer.d.ts +63 -0
  219. package/dist/organisms/drawer.js +2 -0
  220. package/dist/organisms/drawer.js.map +1 -0
  221. package/dist/organisms/drawer.mjs +2 -0
  222. package/dist/organisms/drawer.mjs.map +1 -0
  223. package/dist/organisms/dropdown-menu.d.mts +335 -0
  224. package/dist/organisms/dropdown-menu.d.ts +335 -0
  225. package/dist/organisms/dropdown-menu.js +2 -0
  226. package/dist/organisms/dropdown-menu.js.map +1 -0
  227. package/dist/organisms/dropdown-menu.mjs +2 -0
  228. package/dist/organisms/dropdown-menu.mjs.map +1 -0
  229. package/dist/organisms/sidebar.d.mts +328 -0
  230. package/dist/organisms/sidebar.d.ts +328 -0
  231. package/dist/organisms/sidebar.js +2 -0
  232. package/dist/organisms/sidebar.js.map +1 -0
  233. package/dist/organisms/sidebar.mjs +2 -0
  234. package/dist/organisms/sidebar.mjs.map +1 -0
  235. package/dist/organisms.d.mts +56 -12
  236. package/dist/organisms.d.ts +56 -12
  237. package/dist/organisms.js +2 -0
  238. package/dist/organisms.js.map +1 -0
  239. package/dist/organisms.mjs +2 -0
  240. package/dist/organisms.mjs.map +1 -0
  241. package/dist/rhf/form.d.mts +96 -0
  242. package/dist/rhf/form.d.ts +96 -0
  243. package/dist/rhf/form.js +2 -0
  244. package/dist/rhf/form.js.map +1 -0
  245. package/dist/rhf/form.mjs +2 -0
  246. package/dist/rhf/form.mjs.map +1 -0
  247. package/dist/rhf/rhf-checkbox.d.mts +57 -0
  248. package/dist/rhf/rhf-checkbox.d.ts +57 -0
  249. package/dist/rhf/rhf-checkbox.js +2 -0
  250. package/dist/rhf/rhf-checkbox.js.map +1 -0
  251. package/dist/rhf/rhf-checkbox.mjs +2 -0
  252. package/dist/rhf/rhf-checkbox.mjs.map +1 -0
  253. package/dist/rhf/rhf-multi-select.d.mts +84 -0
  254. package/dist/rhf/rhf-multi-select.d.ts +84 -0
  255. package/dist/rhf/rhf-multi-select.js +2 -0
  256. package/dist/rhf/rhf-multi-select.js.map +1 -0
  257. package/dist/rhf/rhf-multi-select.mjs +2 -0
  258. package/dist/rhf/rhf-multi-select.mjs.map +1 -0
  259. package/dist/rhf/rhf-radio-button-group.d.mts +73 -0
  260. package/dist/rhf/rhf-radio-button-group.d.ts +73 -0
  261. package/dist/rhf/rhf-radio-button-group.js +2 -0
  262. package/dist/rhf/rhf-radio-button-group.js.map +1 -0
  263. package/dist/rhf/rhf-radio-button-group.mjs +2 -0
  264. package/dist/rhf/rhf-radio-button-group.mjs.map +1 -0
  265. package/dist/rhf/rhf-radio-group.d.mts +103 -0
  266. package/dist/rhf/rhf-radio-group.d.ts +103 -0
  267. package/dist/rhf/rhf-radio-group.js +2 -0
  268. package/dist/rhf/rhf-radio-group.js.map +1 -0
  269. package/dist/rhf/rhf-radio-group.mjs +2 -0
  270. package/dist/rhf/rhf-radio-group.mjs.map +1 -0
  271. package/dist/rhf/rhf-select.d.mts +80 -0
  272. package/dist/rhf/rhf-select.d.ts +80 -0
  273. package/dist/rhf/rhf-select.js +2 -0
  274. package/dist/rhf/rhf-select.js.map +1 -0
  275. package/dist/rhf/rhf-select.mjs +2 -0
  276. package/dist/rhf/rhf-select.mjs.map +1 -0
  277. package/dist/rhf/rhf-switch.d.mts +57 -0
  278. package/dist/rhf/rhf-switch.d.ts +57 -0
  279. package/dist/rhf/rhf-switch.js +2 -0
  280. package/dist/rhf/rhf-switch.js.map +1 -0
  281. package/dist/rhf/rhf-switch.mjs +2 -0
  282. package/dist/rhf/rhf-switch.mjs.map +1 -0
  283. package/dist/rhf/rhf-textarea.d.mts +66 -0
  284. package/dist/rhf/rhf-textarea.d.ts +66 -0
  285. package/dist/rhf/rhf-textarea.js +2 -0
  286. package/dist/rhf/rhf-textarea.js.map +1 -0
  287. package/dist/rhf/rhf-textarea.mjs +2 -0
  288. package/dist/rhf/rhf-textarea.mjs.map +1 -0
  289. package/dist/rhf.d.mts +213 -7
  290. package/dist/rhf.d.ts +213 -7
  291. package/dist/rhf.js +2 -0
  292. package/dist/rhf.js.map +1 -0
  293. package/dist/rhf.mjs +2 -0
  294. package/dist/rhf.mjs.map +1 -0
  295. package/dist/types.js +2 -0
  296. package/dist/{types.cjs.js.map → types.js.map} +1 -1
  297. package/dist/types.mjs +2 -0
  298. package/dist/{types.esm.js.map → types.mjs.map} +1 -1
  299. package/dist/{chunk-SL2ZUI4G.cjs.js → utils.js} +2 -2
  300. package/dist/utils.js.map +1 -0
  301. package/dist/utils.mjs +2 -0
  302. package/dist/utils.mjs.map +1 -0
  303. package/package.json +241 -15
  304. package/dist/atoms.cjs.js +0 -2
  305. package/dist/atoms.cjs.js.map +0 -1
  306. package/dist/atoms.esm.js +0 -2
  307. package/dist/atoms.esm.js.map +0 -1
  308. package/dist/chunk-23T2PH5G.esm.js +0 -2
  309. package/dist/chunk-23T2PH5G.esm.js.map +0 -1
  310. package/dist/chunk-2QG3QTSW.cjs.js +0 -2
  311. package/dist/chunk-2QG3QTSW.cjs.js.map +0 -1
  312. package/dist/chunk-C26U3FL4.esm.js +0 -2
  313. package/dist/chunk-C26U3FL4.esm.js.map +0 -1
  314. package/dist/chunk-DTM5LZHM.cjs.js +0 -2
  315. package/dist/chunk-DTM5LZHM.cjs.js.map +0 -1
  316. package/dist/chunk-HW32JE75.cjs.js +0 -2
  317. package/dist/chunk-HW32JE75.cjs.js.map +0 -1
  318. package/dist/chunk-JIRS6MWF.cjs.js +0 -2
  319. package/dist/chunk-JIRS6MWF.cjs.js.map +0 -1
  320. package/dist/chunk-JKTYFZ5M.esm.js +0 -2
  321. package/dist/chunk-JKTYFZ5M.esm.js.map +0 -1
  322. package/dist/chunk-JUZG25DH.esm.js +0 -2
  323. package/dist/chunk-JUZG25DH.esm.js.map +0 -1
  324. package/dist/chunk-KOYJODOP.cjs.js +0 -2
  325. package/dist/chunk-KOYJODOP.cjs.js.map +0 -1
  326. package/dist/chunk-M4S5YZ56.esm.js +0 -2
  327. package/dist/chunk-M4S5YZ56.esm.js.map +0 -1
  328. package/dist/chunk-MOYOCJW6.esm.js +0 -2
  329. package/dist/chunk-MOYOCJW6.esm.js.map +0 -1
  330. package/dist/chunk-MVWMLXLL.cjs.js +0 -2
  331. package/dist/chunk-MVWMLXLL.cjs.js.map +0 -1
  332. package/dist/chunk-SL2ZUI4G.cjs.js.map +0 -1
  333. package/dist/chunk-STRDPP3B.esm.js +0 -2
  334. package/dist/chunk-STRDPP3B.esm.js.map +0 -1
  335. package/dist/chunk-U4NMIMU7.esm.js +0 -2
  336. package/dist/chunk-U4NMIMU7.esm.js.map +0 -1
  337. package/dist/chunk-UK47BFA3.cjs.js +0 -2
  338. package/dist/chunk-UK47BFA3.cjs.js.map +0 -1
  339. package/dist/chunk-UTVXFZLD.esm.js +0 -2
  340. package/dist/chunk-UTVXFZLD.esm.js.map +0 -1
  341. package/dist/chunk-WJNYKJP6.cjs.js +0 -2
  342. package/dist/chunk-WJNYKJP6.cjs.js.map +0 -1
  343. package/dist/chunk-YEZB7AOJ.esm.js +0 -2
  344. package/dist/chunk-YEZB7AOJ.esm.js.map +0 -1
  345. package/dist/chunk-YGLYFSF6.cjs.js +0 -2
  346. package/dist/chunk-YGLYFSF6.cjs.js.map +0 -1
  347. package/dist/hooks.cjs.js +0 -2
  348. package/dist/hooks.cjs.js.map +0 -1
  349. package/dist/hooks.esm.js +0 -2
  350. package/dist/hooks.esm.js.map +0 -1
  351. package/dist/index.cjs.js +0 -2
  352. package/dist/index.cjs.js.map +0 -1
  353. package/dist/index.esm.js +0 -2
  354. package/dist/index.esm.js.map +0 -1
  355. package/dist/molecules.cjs.js +0 -2
  356. package/dist/molecules.cjs.js.map +0 -1
  357. package/dist/molecules.esm.js +0 -2
  358. package/dist/molecules.esm.js.map +0 -1
  359. package/dist/organisms.cjs.js +0 -2
  360. package/dist/organisms.cjs.js.map +0 -1
  361. package/dist/organisms.esm.js +0 -2
  362. package/dist/organisms.esm.js.map +0 -1
  363. package/dist/rhf.cjs.js +0 -2
  364. package/dist/rhf.cjs.js.map +0 -1
  365. package/dist/rhf.esm.js +0 -2
  366. package/dist/rhf.esm.js.map +0 -1
  367. package/dist/types.cjs.js +0 -2
  368. package/dist/types.d.mts +0 -2
  369. package/dist/types.d.ts +0 -2
  370. package/dist/types.esm.js +0 -2
  371. package/dist/utils.cjs.js +0 -2
  372. package/dist/utils.cjs.js.map +0 -1
  373. package/dist/utils.d.mts +0 -5
  374. package/dist/utils.d.ts +0 -5
  375. package/dist/utils.esm.js +0 -2
  376. package/dist/utils.esm.js.map +0 -1
@@ -0,0 +1,121 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Stack is a layout component that arranges its children in a vertical or horizontal stack
5
+ * with consistent spacing between items. It's built on top of Flexbox and provides
6
+ * a simple way to create consistent layouts.
7
+ *
8
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-stack--docs
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic vertical stack
13
+ * <Stack>
14
+ * <div>Item 1</div>
15
+ * <div>Item 2</div>
16
+ * <div>Item 3</div>
17
+ * </Stack>
18
+ *
19
+ * // Horizontal stack with custom spacing
20
+ * <Stack direction="horizontal" spacing="lg">
21
+ * <div>Item 1</div>
22
+ * <div>Item 2</div>
23
+ * </Stack>
24
+ *
25
+ * // Centered stack with wrapping
26
+ * <Stack direction="horizontal" center wrap>
27
+ * <div>Item 1</div>
28
+ * <div>Item 2</div>
29
+ * <div>Item 3</div>
30
+ * </Stack>
31
+ *
32
+ * // Stack with custom alignment
33
+ * <Stack align="center" justify="between">
34
+ * <div>Left</div>
35
+ * <div>Center</div>
36
+ * <div>Right</div>
37
+ * </Stack>
38
+ *
39
+ * // Stack with custom dimensions
40
+ * <Stack width="100%" height="200px">
41
+ * <div>Full width, fixed height stack</div>
42
+ * </Stack>
43
+ * ```
44
+ */
45
+
46
+ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
47
+ /**
48
+ * The direction in which to stack the items.
49
+ * - "vertical": Items are stacked top to bottom
50
+ * - "horizontal": Items are stacked left to right
51
+ *
52
+ * @default "vertical"
53
+ */
54
+ direction?: "vertical" | "horizontal";
55
+ /**
56
+ * The spacing between items in the stack.
57
+ * - "none": 0px
58
+ * - "xs": 0.25rem (4px)
59
+ * - "sm": 0.5rem (8px)
60
+ * - "md": 1rem (16px)
61
+ * - "lg": 1.5rem (24px)
62
+ * - "xl": 2rem (32px)
63
+ *
64
+ * @default "md"
65
+ */
66
+ spacing?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
67
+ /**
68
+ * Whether to allow items to wrap to the next line when they don't fit.
69
+ * Only applies to horizontal stacks.
70
+ *
71
+ * @default false
72
+ */
73
+ wrap?: boolean;
74
+ /**
75
+ * Whether to center items both horizontally and vertically.
76
+ * This is a shorthand for setting both align and justify to "center".
77
+ *
78
+ * @default false
79
+ */
80
+ center?: boolean;
81
+ /**
82
+ * How to justify items along the main axis.
83
+ * - "start": Items are packed toward the start
84
+ * - "end": Items are packed toward the end
85
+ * - "center": Items are centered
86
+ * - "between": Items are evenly distributed with first item at start and last at end
87
+ * - "around": Items are evenly distributed with equal space around them
88
+ * - "evenly": Items are distributed so that the spacing between any two items is equal
89
+ *
90
+ * @default undefined
91
+ */
92
+ justify?: "start" | "end" | "center" | "between" | "around" | "evenly";
93
+ /**
94
+ * How to align items along the cross axis.
95
+ * - "start": Items are aligned at the start
96
+ * - "end": Items are aligned at the end
97
+ * - "center": Items are centered
98
+ * - "stretch": Items are stretched to fill the container
99
+ * - "baseline": Items are aligned at their baselines
100
+ *
101
+ * @default undefined
102
+ */
103
+ align?: "start" | "end" | "center" | "stretch" | "baseline";
104
+ /**
105
+ * The width of the stack container.
106
+ * Can be any valid CSS width value (e.g., "100%", "200px", "50vw").
107
+ *
108
+ * @default undefined
109
+ */
110
+ width?: string;
111
+ /**
112
+ * The height of the stack container.
113
+ * Can be any valid CSS height value (e.g., "100%", "200px", "50vh").
114
+ *
115
+ * @default undefined
116
+ */
117
+ height?: string;
118
+ }
119
+ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
120
+
121
+ export { Stack, type StackProps };
@@ -0,0 +1,2 @@
1
+ 'use strict';var a=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);function s(...n){return tailwindMerge.twMerge(clsx.clsx(n))}var b=a__namespace.forwardRef(({className:n,direction:o="vertical",spacing:t="md",wrap:l=false,center:c=false,justify:e,align:r,width:m,height:i,style:f,...d},p)=>jsxRuntime.jsx("div",{ref:p,className:s("flex",o==="vertical"?"flex-col":"flex-row",{"gap-0":t==="none","gap-1":t==="xs","gap-2":t==="sm","gap-4":t==="md","gap-6":t==="lg","gap-8":t==="xl"},l&&"flex-wrap",c&&"items-center justify-center",e&&{"justify-start":e==="start","justify-end":e==="end","justify-center":e==="center","justify-between":e==="between","justify-around":e==="around","justify-evenly":e==="evenly"},r&&{"items-start":r==="start","items-end":r==="end","items-center":r==="center","items-stretch":r==="stretch","items-baseline":r==="baseline"},n),style:{width:m,height:i,...f},...d}));b.displayName="Stack";exports.Stack=b;//# sourceMappingURL=stack.js.map
2
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/stack/stack.tsx"],"names":["cn","inputs","twMerge","clsx","Stack","a","className","direction","spacing","wrap","center","justify","align","width","height","style","props","ref","jsx"],"mappings":"+eAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,qBAAAA,CAAQC,SAAKF,CAAAA,CAAM,CAAC,CAC7B,CCkHA,IAAMG,CAAc,CAAAC,YAAA,CAAA,UAAA,CAClB,CACE,CACE,SAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,EAAY,UACZ,CAAA,OAAA,CAAAC,CAAU,CAAA,IAAA,CACV,IAAAC,CAAAA,CAAAA,CAAO,KACP,CAAA,MAAA,CAAAC,EAAS,KACT,CAAA,OAAA,CAAAC,CACA,CAAA,KAAA,CAAAC,EACA,KAAAC,CAAAA,CAAAA,CACA,MAAAC,CAAAA,CAAAA,CACA,MAAAC,CACA,CAAA,GAAGC,CACL,CAAA,CACAC,CAGEC,GAAAA,cAAAA,CAAC,KACC,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWjB,CAAAA,CAAAA,CAET,MAEAO,CAAAA,CAAAA,GAAc,WAAa,UAAa,CAAA,UAAA,CAExC,CACE,OAAA,CAASC,IAAY,MACrB,CAAA,OAAA,CAASA,CAAY,GAAA,IAAA,CACrB,OAASA,CAAAA,CAAAA,GAAY,IACrB,CAAA,OAAA,CAASA,IAAY,IACrB,CAAA,OAAA,CAASA,CAAY,GAAA,IAAA,CACrB,QAASA,CAAY,GAAA,IACvB,CAEAC,CAAAA,CAAAA,EAAQ,YAERC,CAAU,EAAA,6BAAA,CAEVC,CAAW,EAAA,CACT,eAAiBA,CAAAA,CAAAA,GAAY,OAC7B,CAAA,aAAA,CAAeA,IAAY,KAC3B,CAAA,gBAAA,CAAkBA,CAAY,GAAA,QAAA,CAC9B,kBAAmBA,CAAY,GAAA,SAAA,CAC/B,gBAAkBA,CAAAA,CAAAA,GAAY,SAC9B,gBAAkBA,CAAAA,CAAAA,GAAY,QAChC,CAAA,CAEAC,CAAS,EAAA,CACP,aAAeA,CAAAA,CAAAA,GAAU,QACzB,WAAaA,CAAAA,CAAAA,GAAU,KACvB,CAAA,cAAA,CAAgBA,IAAU,QAC1B,CAAA,eAAA,CAAiBA,CAAU,GAAA,SAAA,CAC3B,iBAAkBA,CAAU,GAAA,UAC9B,CACAN,CAAAA,CACF,CACA,CAAA,KAAA,CAAO,CACL,KAAA,CAAAO,EACA,MAAAC,CAAAA,CAAAA,CACA,GAAGC,CACL,EACC,GAAGC,CAAAA,CACN,CAGN,EAEAZ,EAAM,WAAc,CAAA,OAAA","file":"stack.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Stack is a layout component that arranges its children in a vertical or horizontal stack\n * with consistent spacing between items. It's built on top of Flexbox and provides\n * a simple way to create consistent layouts.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-stack--docs\n *\n * @example\n * ```tsx\n * // Basic vertical stack\n * <Stack>\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Stack>\n *\n * // Horizontal stack with custom spacing\n * <Stack direction=\"horizontal\" spacing=\"lg\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * </Stack>\n *\n * // Centered stack with wrapping\n * <Stack direction=\"horizontal\" center wrap>\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Stack>\n *\n * // Stack with custom alignment\n * <Stack align=\"center\" justify=\"between\">\n * <div>Left</div>\n * <div>Center</div>\n * <div>Right</div>\n * </Stack>\n *\n * // Stack with custom dimensions\n * <Stack width=\"100%\" height=\"200px\">\n * <div>Full width, fixed height stack</div>\n * </Stack>\n * ```\n */\nimport * as React from \"react\"\nimport { cn } from \"@/utils\"\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The direction in which to stack the items.\n * - \"vertical\": Items are stacked top to bottom\n * - \"horizontal\": Items are stacked left to right\n *\n * @default \"vertical\"\n */\n direction?: \"vertical\" | \"horizontal\"\n /**\n * The spacing between items in the stack.\n * - \"none\": 0px\n * - \"xs\": 0.25rem (4px)\n * - \"sm\": 0.5rem (8px)\n * - \"md\": 1rem (16px)\n * - \"lg\": 1.5rem (24px)\n * - \"xl\": 2rem (32px)\n *\n * @default \"md\"\n */\n spacing?: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n /**\n * Whether to allow items to wrap to the next line when they don't fit.\n * Only applies to horizontal stacks.\n *\n * @default false\n */\n wrap?: boolean\n /**\n * Whether to center items both horizontally and vertically.\n * This is a shorthand for setting both align and justify to \"center\".\n *\n * @default false\n */\n center?: boolean\n /**\n * How to justify items along the main axis.\n * - \"start\": Items are packed toward the start\n * - \"end\": Items are packed toward the end\n * - \"center\": Items are centered\n * - \"between\": Items are evenly distributed with first item at start and last at end\n * - \"around\": Items are evenly distributed with equal space around them\n * - \"evenly\": Items are distributed so that the spacing between any two items is equal\n *\n * @default undefined\n */\n justify?: \"start\" | \"end\" | \"center\" | \"between\" | \"around\" | \"evenly\"\n /**\n * How to align items along the cross axis.\n * - \"start\": Items are aligned at the start\n * - \"end\": Items are aligned at the end\n * - \"center\": Items are centered\n * - \"stretch\": Items are stretched to fill the container\n * - \"baseline\": Items are aligned at their baselines\n *\n * @default undefined\n */\n align?: \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\"\n /**\n * The width of the stack container.\n * Can be any valid CSS width value (e.g., \"100%\", \"200px\", \"50vw\").\n *\n * @default undefined\n */\n width?: string\n /**\n * The height of the stack container.\n * Can be any valid CSS height value (e.g., \"100%\", \"200px\", \"50vh\").\n *\n * @default undefined\n */\n height?: string\n}\n\nconst Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n className,\n direction = \"vertical\",\n spacing = \"md\",\n wrap = false,\n center = false,\n justify,\n align,\n width,\n height,\n style,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"flex\",\n // Direction\n direction === \"vertical\" ? \"flex-col\" : \"flex-row\",\n // Spacing\n {\n \"gap-0\": spacing === \"none\",\n \"gap-1\": spacing === \"xs\",\n \"gap-2\": spacing === \"sm\",\n \"gap-4\": spacing === \"md\",\n \"gap-6\": spacing === \"lg\",\n \"gap-8\": spacing === \"xl\"\n },\n // Wrap\n wrap && \"flex-wrap\",\n // Center\n center && \"items-center justify-center\",\n // Justify\n justify && {\n \"justify-start\": justify === \"start\",\n \"justify-end\": justify === \"end\",\n \"justify-center\": justify === \"center\",\n \"justify-between\": justify === \"between\",\n \"justify-around\": justify === \"around\",\n \"justify-evenly\": justify === \"evenly\"\n },\n // Align\n align && {\n \"items-start\": align === \"start\",\n \"items-end\": align === \"end\",\n \"items-center\": align === \"center\",\n \"items-stretch\": align === \"stretch\",\n \"items-baseline\": align === \"baseline\"\n },\n className\n )}\n style={{\n width,\n height,\n ...style\n }}\n {...props}\n />\n )\n }\n)\n\nStack.displayName = \"Stack\"\n\nexport { Stack }\n"]}
@@ -0,0 +1,2 @@
1
+ import*as a from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function s(...n){return twMerge(clsx(n))}var b=a.forwardRef(({className:n,direction:o="vertical",spacing:t="md",wrap:l=false,center:c=false,justify:e,align:r,width:m,height:i,style:f,...d},p)=>jsx("div",{ref:p,className:s("flex",o==="vertical"?"flex-col":"flex-row",{"gap-0":t==="none","gap-1":t==="xs","gap-2":t==="sm","gap-4":t==="md","gap-6":t==="lg","gap-8":t==="xl"},l&&"flex-wrap",c&&"items-center justify-center",e&&{"justify-start":e==="start","justify-end":e==="end","justify-center":e==="center","justify-between":e==="between","justify-around":e==="around","justify-evenly":e==="evenly"},r&&{"items-start":r==="start","items-end":r==="end","items-center":r==="center","items-stretch":r==="stretch","items-baseline":r==="baseline"},n),style:{width:m,height:i,...f},...d}));b.displayName="Stack";export{b as Stack};//# sourceMappingURL=stack.mjs.map
2
+ //# sourceMappingURL=stack.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/stack/stack.tsx"],"names":["cn","inputs","twMerge","clsx","Stack","className","direction","spacing","wrap","center","justify","align","width","height","style","props","ref","jsx"],"mappings":"yHAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,OAAAA,CAAQC,IAAKF,CAAAA,CAAM,CAAC,CAC7B,CCkHA,IAAMG,CAAc,CAAA,CAAA,CAAA,UAAA,CAClB,CACE,CACE,SAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,EAAY,UACZ,CAAA,OAAA,CAAAC,CAAU,CAAA,IAAA,CACV,IAAAC,CAAAA,CAAAA,CAAO,KACP,CAAA,MAAA,CAAAC,EAAS,KACT,CAAA,OAAA,CAAAC,CACA,CAAA,KAAA,CAAAC,EACA,KAAAC,CAAAA,CAAAA,CACA,MAAAC,CAAAA,CAAAA,CACA,MAAAC,CACA,CAAA,GAAGC,CACL,CAAA,CACAC,CAGEC,GAAAA,GAAAA,CAAC,KACC,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWhB,CAAAA,CAAAA,CAET,MAEAM,CAAAA,CAAAA,GAAc,WAAa,UAAa,CAAA,UAAA,CAExC,CACE,OAAA,CAASC,IAAY,MACrB,CAAA,OAAA,CAASA,CAAY,GAAA,IAAA,CACrB,OAASA,CAAAA,CAAAA,GAAY,IACrB,CAAA,OAAA,CAASA,IAAY,IACrB,CAAA,OAAA,CAASA,CAAY,GAAA,IAAA,CACrB,QAASA,CAAY,GAAA,IACvB,CAEAC,CAAAA,CAAAA,EAAQ,YAERC,CAAU,EAAA,6BAAA,CAEVC,CAAW,EAAA,CACT,eAAiBA,CAAAA,CAAAA,GAAY,OAC7B,CAAA,aAAA,CAAeA,IAAY,KAC3B,CAAA,gBAAA,CAAkBA,CAAY,GAAA,QAAA,CAC9B,kBAAmBA,CAAY,GAAA,SAAA,CAC/B,gBAAkBA,CAAAA,CAAAA,GAAY,SAC9B,gBAAkBA,CAAAA,CAAAA,GAAY,QAChC,CAAA,CAEAC,CAAS,EAAA,CACP,aAAeA,CAAAA,CAAAA,GAAU,QACzB,WAAaA,CAAAA,CAAAA,GAAU,KACvB,CAAA,cAAA,CAAgBA,IAAU,QAC1B,CAAA,eAAA,CAAiBA,CAAU,GAAA,SAAA,CAC3B,iBAAkBA,CAAU,GAAA,UAC9B,CACAN,CAAAA,CACF,CACA,CAAA,KAAA,CAAO,CACL,KAAA,CAAAO,EACA,MAAAC,CAAAA,CAAAA,CACA,GAAGC,CACL,EACC,GAAGC,CAAAA,CACN,CAGN,EAEAX,EAAM,WAAc,CAAA,OAAA","file":"stack.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Stack is a layout component that arranges its children in a vertical or horizontal stack\n * with consistent spacing between items. It's built on top of Flexbox and provides\n * a simple way to create consistent layouts.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-stack--docs\n *\n * @example\n * ```tsx\n * // Basic vertical stack\n * <Stack>\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Stack>\n *\n * // Horizontal stack with custom spacing\n * <Stack direction=\"horizontal\" spacing=\"lg\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * </Stack>\n *\n * // Centered stack with wrapping\n * <Stack direction=\"horizontal\" center wrap>\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </Stack>\n *\n * // Stack with custom alignment\n * <Stack align=\"center\" justify=\"between\">\n * <div>Left</div>\n * <div>Center</div>\n * <div>Right</div>\n * </Stack>\n *\n * // Stack with custom dimensions\n * <Stack width=\"100%\" height=\"200px\">\n * <div>Full width, fixed height stack</div>\n * </Stack>\n * ```\n */\nimport * as React from \"react\"\nimport { cn } from \"@/utils\"\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The direction in which to stack the items.\n * - \"vertical\": Items are stacked top to bottom\n * - \"horizontal\": Items are stacked left to right\n *\n * @default \"vertical\"\n */\n direction?: \"vertical\" | \"horizontal\"\n /**\n * The spacing between items in the stack.\n * - \"none\": 0px\n * - \"xs\": 0.25rem (4px)\n * - \"sm\": 0.5rem (8px)\n * - \"md\": 1rem (16px)\n * - \"lg\": 1.5rem (24px)\n * - \"xl\": 2rem (32px)\n *\n * @default \"md\"\n */\n spacing?: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n /**\n * Whether to allow items to wrap to the next line when they don't fit.\n * Only applies to horizontal stacks.\n *\n * @default false\n */\n wrap?: boolean\n /**\n * Whether to center items both horizontally and vertically.\n * This is a shorthand for setting both align and justify to \"center\".\n *\n * @default false\n */\n center?: boolean\n /**\n * How to justify items along the main axis.\n * - \"start\": Items are packed toward the start\n * - \"end\": Items are packed toward the end\n * - \"center\": Items are centered\n * - \"between\": Items are evenly distributed with first item at start and last at end\n * - \"around\": Items are evenly distributed with equal space around them\n * - \"evenly\": Items are distributed so that the spacing between any two items is equal\n *\n * @default undefined\n */\n justify?: \"start\" | \"end\" | \"center\" | \"between\" | \"around\" | \"evenly\"\n /**\n * How to align items along the cross axis.\n * - \"start\": Items are aligned at the start\n * - \"end\": Items are aligned at the end\n * - \"center\": Items are centered\n * - \"stretch\": Items are stretched to fill the container\n * - \"baseline\": Items are aligned at their baselines\n *\n * @default undefined\n */\n align?: \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\"\n /**\n * The width of the stack container.\n * Can be any valid CSS width value (e.g., \"100%\", \"200px\", \"50vw\").\n *\n * @default undefined\n */\n width?: string\n /**\n * The height of the stack container.\n * Can be any valid CSS height value (e.g., \"100%\", \"200px\", \"50vh\").\n *\n * @default undefined\n */\n height?: string\n}\n\nconst Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n className,\n direction = \"vertical\",\n spacing = \"md\",\n wrap = false,\n center = false,\n justify,\n align,\n width,\n height,\n style,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"flex\",\n // Direction\n direction === \"vertical\" ? \"flex-col\" : \"flex-row\",\n // Spacing\n {\n \"gap-0\": spacing === \"none\",\n \"gap-1\": spacing === \"xs\",\n \"gap-2\": spacing === \"sm\",\n \"gap-4\": spacing === \"md\",\n \"gap-6\": spacing === \"lg\",\n \"gap-8\": spacing === \"xl\"\n },\n // Wrap\n wrap && \"flex-wrap\",\n // Center\n center && \"items-center justify-center\",\n // Justify\n justify && {\n \"justify-start\": justify === \"start\",\n \"justify-end\": justify === \"end\",\n \"justify-center\": justify === \"center\",\n \"justify-between\": justify === \"between\",\n \"justify-around\": justify === \"around\",\n \"justify-evenly\": justify === \"evenly\"\n },\n // Align\n align && {\n \"items-start\": align === \"start\",\n \"items-end\": align === \"end\",\n \"items-center\": align === \"center\",\n \"items-stretch\": align === \"stretch\",\n \"items-baseline\": align === \"baseline\"\n },\n className\n )}\n style={{\n width,\n height,\n ...style\n }}\n {...props}\n />\n )\n }\n)\n\nStack.displayName = \"Stack\"\n\nexport { Stack }\n"]}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
+
4
+ /**
5
+ * Switch component that provides a toggle input control.
6
+ * Built on top of Radix UI's Switch primitive.
7
+ *
8
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-switch--docs
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Switch />
13
+ * <Switch defaultChecked />
14
+ * <Switch disabled />
15
+ * ```
16
+ */
17
+ declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
18
+
19
+ type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>;
20
+
21
+ export { Switch, type SwitchProps };
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
+
4
+ /**
5
+ * Switch component that provides a toggle input control.
6
+ * Built on top of Radix UI's Switch primitive.
7
+ *
8
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-switch--docs
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Switch />
13
+ * <Switch defaultChecked />
14
+ * <Switch disabled />
15
+ * ```
16
+ */
17
+ declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
18
+
19
+ type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>;
20
+
21
+ export { Switch, type SwitchProps };
@@ -0,0 +1,2 @@
1
+ 'use strict';var o=require('react'),t=require('@radix-ui/react-switch'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var o__namespace=/*#__PURE__*/_interopNamespace(o);var t__namespace=/*#__PURE__*/_interopNamespace(t);function e(...i){return tailwindMerge.twMerge(clsx.clsx(i))}var s=o__namespace.forwardRef(({className:i,...a},c)=>jsxRuntime.jsx(t__namespace.Root,{className:e("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",i),...a,ref:c,children:jsxRuntime.jsx(t__namespace.Thumb,{className:e("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));s.displayName=t__namespace.Root.displayName;exports.Switch=s;//# sourceMappingURL=switch.js.map
2
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/switch/switch.tsx"],"names":["cn","inputs","twMerge","clsx","Switch","o","className","props","ref","jsx","t"],"mappings":"skBAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,qBAAQC,CAAAA,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCcA,IAAMG,EAAeC,YACnB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAC,CAAW,CAAA,GAAGC,CAAM,CAAA,CAAGC,CACxBC,GAAAA,cAAAA,CAAkBC,YAAjB,CAAA,IAAA,CAAA,CACC,SAAWV,CAAAA,CAAAA,CACT,6XACAM,CAAAA,CACF,EACC,GAAGC,CAAAA,CACJ,GAAKC,CAAAA,CAAAA,CAEL,QAAAC,CAAAA,cAAAA,CAAkBC,YAAjB,CAAA,KAAA,CAAA,CACC,SAAWV,CAAAA,CAAAA,CACT,4KACF,CAAA,CACF,CACF,CAAA,CAEJ,EACAI,CAAAA,CAAO,YAA+BM,YAAK,CAAA,IAAA,CAAA,WAAA","file":"switch.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/utils/index\"\nimport { SwitchProps } from \"./switch.types\"\n\n/**\n * Switch component that provides a toggle input control.\n * Built on top of Radix UI's Switch primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-switch--docs\n *\n * @example\n * ```tsx\n * <Switch />\n * <Switch defaultChecked />\n * <Switch disabled />\n * ```\n */\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n )\n)\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n"]}
@@ -0,0 +1,2 @@
1
+ import*as o from'react';import*as t from'@radix-ui/react-switch';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function e(...i){return twMerge(clsx(i))}var s=o.forwardRef(({className:i,...a},c)=>jsx(t.Root,{className:e("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",i),...a,ref:c,children:jsx(t.Thumb,{className:e("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));s.displayName=t.Root.displayName;export{s as Switch};//# sourceMappingURL=switch.mjs.map
2
+ //# sourceMappingURL=switch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/switch/switch.tsx"],"names":["cn","inputs","twMerge","clsx","Switch","className","props","ref","jsx"],"mappings":"kKAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCcA,IAAMG,EAAe,CACnB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAC,CAAW,CAAA,GAAGC,CAAM,CAAA,CAAGC,CACxBC,GAAAA,GAAAA,CAAkB,CAAjB,CAAA,IAAA,CAAA,CACC,SAAWR,CAAAA,CAAAA,CACT,6XACAK,CAAAA,CACF,EACC,GAAGC,CAAAA,CACJ,GAAKC,CAAAA,CAAAA,CAEL,QAAAC,CAAAA,GAAAA,CAAkB,CAAjB,CAAA,KAAA,CAAA,CACC,SAAWR,CAAAA,CAAAA,CACT,4KACF,CAAA,CACF,CACF,CAAA,CAEJ,EACAI,CAAAA,CAAO,YAA+B,CAAK,CAAA,IAAA,CAAA,WAAA","file":"switch.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/utils/index\"\nimport { SwitchProps } from \"./switch.types\"\n\n/**\n * Switch component that provides a toggle input control.\n * Built on top of Radix UI's Switch primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-switch--docs\n *\n * @example\n * ```tsx\n * <Switch />\n * <Switch defaultChecked />\n * <Switch disabled />\n * ```\n */\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n )\n)\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n"]}
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+
3
+ interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
4
+ }
5
+ interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
6
+ }
7
+ interface TableBodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
8
+ }
9
+ interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement> {
10
+ }
11
+ interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
12
+ }
13
+ interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
14
+ }
15
+ interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
16
+ }
17
+ interface TableCaptionProps extends React.HTMLAttributes<HTMLTableCaptionElement> {
18
+ }
19
+
20
+ /**
21
+ * Table component that provides a structured way to display data in rows and columns.
22
+ * Built on top of native HTML table elements with enhanced styling and accessibility.
23
+ *
24
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-table--docs
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <Table>
29
+ * <TableHeader>
30
+ * <TableRow>
31
+ * <TableHead>Name</TableHead>
32
+ * <TableHead>Email</TableHead>
33
+ * </TableRow>
34
+ * </TableHeader>
35
+ * <TableBody>
36
+ * <TableRow>
37
+ * <TableCell>John Doe</TableCell>
38
+ * <TableCell>john@example.com</TableCell>
39
+ * </TableRow>
40
+ * </TableBody>
41
+ * </Table>
42
+ * ```
43
+ */
44
+ declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
45
+ declare const TableHeader: React.ForwardRefExoticComponent<TableHeaderProps & React.RefAttributes<HTMLTableSectionElement>>;
46
+ declare const TableBody: React.ForwardRefExoticComponent<TableBodyProps & React.RefAttributes<HTMLTableSectionElement>>;
47
+ declare const TableFooter: React.ForwardRefExoticComponent<TableFooterProps & React.RefAttributes<HTMLTableSectionElement>>;
48
+ declare const TableRow: React.ForwardRefExoticComponent<TableRowProps & React.RefAttributes<HTMLTableRowElement>>;
49
+ declare const TableHead: React.ForwardRefExoticComponent<TableHeadProps & React.RefAttributes<HTMLTableCellElement>>;
50
+ declare const TableCell: React.ForwardRefExoticComponent<TableCellProps & React.RefAttributes<HTMLTableCellElement>>;
51
+ declare const TableCaption: React.ForwardRefExoticComponent<TableCaptionProps & React.RefAttributes<HTMLTableCaptionElement>>;
52
+
53
+ export { Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps };
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+
3
+ interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
4
+ }
5
+ interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
6
+ }
7
+ interface TableBodyProps extends React.HTMLAttributes<HTMLTableSectionElement> {
8
+ }
9
+ interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement> {
10
+ }
11
+ interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
12
+ }
13
+ interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
14
+ }
15
+ interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
16
+ }
17
+ interface TableCaptionProps extends React.HTMLAttributes<HTMLTableCaptionElement> {
18
+ }
19
+
20
+ /**
21
+ * Table component that provides a structured way to display data in rows and columns.
22
+ * Built on top of native HTML table elements with enhanced styling and accessibility.
23
+ *
24
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-table--docs
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <Table>
29
+ * <TableHeader>
30
+ * <TableRow>
31
+ * <TableHead>Name</TableHead>
32
+ * <TableHead>Email</TableHead>
33
+ * </TableRow>
34
+ * </TableHeader>
35
+ * <TableBody>
36
+ * <TableRow>
37
+ * <TableCell>John Doe</TableCell>
38
+ * <TableCell>john@example.com</TableCell>
39
+ * </TableRow>
40
+ * </TableBody>
41
+ * </Table>
42
+ * ```
43
+ */
44
+ declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
45
+ declare const TableHeader: React.ForwardRefExoticComponent<TableHeaderProps & React.RefAttributes<HTMLTableSectionElement>>;
46
+ declare const TableBody: React.ForwardRefExoticComponent<TableBodyProps & React.RefAttributes<HTMLTableSectionElement>>;
47
+ declare const TableFooter: React.ForwardRefExoticComponent<TableFooterProps & React.RefAttributes<HTMLTableSectionElement>>;
48
+ declare const TableRow: React.ForwardRefExoticComponent<TableRowProps & React.RefAttributes<HTMLTableRowElement>>;
49
+ declare const TableHead: React.ForwardRefExoticComponent<TableHeadProps & React.RefAttributes<HTMLTableCellElement>>;
50
+ declare const TableCell: React.ForwardRefExoticComponent<TableCellProps & React.RefAttributes<HTMLTableCellElement>>;
51
+ declare const TableCaption: React.ForwardRefExoticComponent<TableCaptionProps & React.RefAttributes<HTMLTableCaptionElement>>;
52
+
53
+ export { Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps };
@@ -0,0 +1,2 @@
1
+ 'use strict';var t=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var t__namespace=/*#__PURE__*/_interopNamespace(t);function l(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var s=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("div",{className:"relative w-full overflow-auto",children:jsxRuntime.jsx("table",{ref:o,className:l("w-full caption-bottom text-sm",e),...a})}));s.displayName="Table";var b=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("thead",{ref:o,className:l("[&_tr]:border-b",e),...a}));b.displayName="TableHeader";var T=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("tbody",{ref:o,className:l("[&_tr:last-child]:border-0",e),...a}));T.displayName="TableBody";var d=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("tfoot",{ref:o,className:l("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...a}));d.displayName="TableFooter";var p=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("tr",{ref:o,className:l("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...a}));p.displayName="TableRow";var m=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("th",{ref:o,className:l("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));m.displayName="TableHead";var c=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("td",{ref:o,className:l("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));c.displayName="TableCell";var n=t__namespace.forwardRef(({className:e,...a},o)=>jsxRuntime.jsx("caption",{ref:o,className:l("mt-4 text-sm text-muted-foreground",e),...a}));n.displayName="TableCaption";exports.Table=s;exports.TableBody=T;exports.TableCaption=n;exports.TableCell=c;exports.TableFooter=d;exports.TableHead=m;exports.TableHeader=b;exports.TableRow=p;//# sourceMappingURL=table.js.map
2
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/table/table.tsx"],"names":["cn","inputs","twMerge","clsx","Table","t","className","props","ref","jsx","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":"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","file":"table.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cn } from \"@/utils/index\"\nimport {\n TableProps,\n TableHeaderProps,\n TableBodyProps,\n TableFooterProps,\n TableRowProps,\n TableHeadProps,\n TableCellProps,\n TableCaptionProps\n} from \"./table.types\"\n\n/**\n * Table component that provides a structured way to display data in rows and columns.\n * Built on top of native HTML table elements with enhanced styling and accessibility.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-table--docs\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Email</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>john@example.com</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n )\n)\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n )\n)\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n)\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n)\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n)\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n)\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, TableCaptionProps>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nTableCaption.displayName = \"TableCaption\"\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n"]}
@@ -0,0 +1,2 @@
1
+ import*as t from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsx}from'react/jsx-runtime';function l(...e){return twMerge(clsx(e))}var s=t.forwardRef(({className:e,...a},o)=>jsx("div",{className:"relative w-full overflow-auto",children:jsx("table",{ref:o,className:l("w-full caption-bottom text-sm",e),...a})}));s.displayName="Table";var b=t.forwardRef(({className:e,...a},o)=>jsx("thead",{ref:o,className:l("[&_tr]:border-b",e),...a}));b.displayName="TableHeader";var T=t.forwardRef(({className:e,...a},o)=>jsx("tbody",{ref:o,className:l("[&_tr:last-child]:border-0",e),...a}));T.displayName="TableBody";var d=t.forwardRef(({className:e,...a},o)=>jsx("tfoot",{ref:o,className:l("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...a}));d.displayName="TableFooter";var p=t.forwardRef(({className:e,...a},o)=>jsx("tr",{ref:o,className:l("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...a}));p.displayName="TableRow";var m=t.forwardRef(({className:e,...a},o)=>jsx("th",{ref:o,className:l("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));m.displayName="TableHead";var c=t.forwardRef(({className:e,...a},o)=>jsx("td",{ref:o,className:l("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));c.displayName="TableCell";var n=t.forwardRef(({className:e,...a},o)=>jsx("caption",{ref:o,className:l("mt-4 text-sm text-muted-foreground",e),...a}));n.displayName="TableCaption";export{s as Table,T as TableBody,n as TableCaption,c as TableCell,d as TableFooter,m as TableHead,b as TableHeader,p as TableRow};//# sourceMappingURL=table.mjs.map
2
+ //# sourceMappingURL=table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/table/table.tsx"],"names":["cn","inputs","twMerge","clsx","Table","className","props","ref","jsx","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":"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","file":"table.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cn } from \"@/utils/index\"\nimport {\n TableProps,\n TableHeaderProps,\n TableBodyProps,\n TableFooterProps,\n TableRowProps,\n TableHeadProps,\n TableCellProps,\n TableCaptionProps\n} from \"./table.types\"\n\n/**\n * Table component that provides a structured way to display data in rows and columns.\n * Built on top of native HTML table elements with enhanced styling and accessibility.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-table--docs\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Email</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>john@example.com</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n )\n)\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n )\n)\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n)\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n)\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n)\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n)\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, TableCaptionProps>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nTableCaption.displayName = \"TableCaption\"\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n"]}
@@ -0,0 +1,65 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /**
6
+ * Props interface for the TextField component.
7
+ * Extends the native input HTML attributes and adds support for variants and icons.
8
+ *
9
+ * @interface TextFieldProps
10
+ * @extends {React.InputHTMLAttributes<HTMLInputElement>}
11
+ * @extends {VariantProps<typeof textFieldVariants>}
12
+ *
13
+ * @property {string} [variant] - The visual style variant of the text field.
14
+ * @property {string} [size] - The size variant of the text field.
15
+ * @property {string} [className] - Additional CSS classes to apply to the text field.
16
+ * @property {React.ReactNode} [startIcon] - Icon to display before the input.
17
+ * @property {React.ReactNode} [endIcon] - Icon to display after the input.
18
+ * @property {boolean} [loading] - Whether the text field is in a loading state.
19
+ * @property {string} [error] - Error message to display below the text field.
20
+ * @property {string} [label] - Label text for the text field.
21
+ * @property {string} [helperText] - Helper text to display below the text field.
22
+ */
23
+ interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof textFieldVariants> {
24
+ startIcon?: React.ReactNode;
25
+ endIcon?: React.ReactNode;
26
+ loading?: boolean;
27
+ error?: string;
28
+ label?: string;
29
+ helperText?: string;
30
+ }
31
+
32
+ /**
33
+ * Text field variant styles using class-variance-authority.
34
+ * Defines the visual styles for different text field variants and sizes.
35
+ */
36
+ declare const textFieldVariants: (props?: ({
37
+ variant?: "default" | "error" | null | undefined;
38
+ size?: "default" | "sm" | "lg" | null | undefined;
39
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
40
+ /**
41
+ * A versatile text field component that supports multiple variants, sizes, and icons.
42
+ * Built on top of shadcn/ui's Input component.
43
+ *
44
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-text-field--docs
45
+ *
46
+ * @component
47
+ * @example
48
+ * ```tsx
49
+ * // Default text field
50
+ * <TextField placeholder="Enter text" />
51
+ *
52
+ * // With icons
53
+ * <TextField startIcon={<SearchIcon />} placeholder="Search..." />
54
+ * <TextField endIcon={<CalendarIcon />} placeholder="Select date" />
55
+ *
56
+ * // With loading state
57
+ * <TextField loading placeholder="Loading..." />
58
+ *
59
+ * // With error
60
+ * <TextField error="Invalid input" placeholder="Enter text" />
61
+ * ```
62
+ */
63
+ declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement>>;
64
+
65
+ export { TextField, type TextFieldProps };
@@ -0,0 +1,65 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /**
6
+ * Props interface for the TextField component.
7
+ * Extends the native input HTML attributes and adds support for variants and icons.
8
+ *
9
+ * @interface TextFieldProps
10
+ * @extends {React.InputHTMLAttributes<HTMLInputElement>}
11
+ * @extends {VariantProps<typeof textFieldVariants>}
12
+ *
13
+ * @property {string} [variant] - The visual style variant of the text field.
14
+ * @property {string} [size] - The size variant of the text field.
15
+ * @property {string} [className] - Additional CSS classes to apply to the text field.
16
+ * @property {React.ReactNode} [startIcon] - Icon to display before the input.
17
+ * @property {React.ReactNode} [endIcon] - Icon to display after the input.
18
+ * @property {boolean} [loading] - Whether the text field is in a loading state.
19
+ * @property {string} [error] - Error message to display below the text field.
20
+ * @property {string} [label] - Label text for the text field.
21
+ * @property {string} [helperText] - Helper text to display below the text field.
22
+ */
23
+ interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof textFieldVariants> {
24
+ startIcon?: React.ReactNode;
25
+ endIcon?: React.ReactNode;
26
+ loading?: boolean;
27
+ error?: string;
28
+ label?: string;
29
+ helperText?: string;
30
+ }
31
+
32
+ /**
33
+ * Text field variant styles using class-variance-authority.
34
+ * Defines the visual styles for different text field variants and sizes.
35
+ */
36
+ declare const textFieldVariants: (props?: ({
37
+ variant?: "default" | "error" | null | undefined;
38
+ size?: "default" | "sm" | "lg" | null | undefined;
39
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
40
+ /**
41
+ * A versatile text field component that supports multiple variants, sizes, and icons.
42
+ * Built on top of shadcn/ui's Input component.
43
+ *
44
+ * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-text-field--docs
45
+ *
46
+ * @component
47
+ * @example
48
+ * ```tsx
49
+ * // Default text field
50
+ * <TextField placeholder="Enter text" />
51
+ *
52
+ * // With icons
53
+ * <TextField startIcon={<SearchIcon />} placeholder="Search..." />
54
+ * <TextField endIcon={<CalendarIcon />} placeholder="Select date" />
55
+ *
56
+ * // With loading state
57
+ * <TextField loading placeholder="Loading..." />
58
+ *
59
+ * // With error
60
+ * <TextField error="Invalid input" placeholder="Enter text" />
61
+ * ```
62
+ */
63
+ declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement>>;
64
+
65
+ export { TextField, type TextFieldProps };
@@ -0,0 +1,2 @@
1
+ 'use strict';var m=require('react'),classVarianceAuthority=require('class-variance-authority'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),lucideReact=require('lucide-react'),jsxRuntime=require('react/jsx-runtime'),n=require('@radix-ui/react-label');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var m__namespace=/*#__PURE__*/_interopNamespace(m);var n__namespace=/*#__PURE__*/_interopNamespace(n);function e(...t){return tailwindMerge.twMerge(clsx.clsx(t))}var f=m__namespace.forwardRef(({className:t,type:o,...a},i)=>jsxRuntime.jsx("input",{type:o,className:e("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:i,...a}));f.displayName="Input";var V=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),p=m__namespace.forwardRef(({className:t,...o},a)=>jsxRuntime.jsx(n__namespace.Root,{ref:a,className:e(V(),t),...o}));p.displayName=n__namespace.Root.displayName;var M=classVarianceAuthority.cva("w-full",{variants:{variant:{default:"",error:"border-destructive focus-visible:ring-destructive"},size:{default:"h-10",sm:"h-8 text-xs",lg:"h-12 text-base"}},defaultVariants:{variant:"default",size:"default"}}),R=m__namespace.forwardRef(({className:t,variant:o,size:a,startIcon:i,endIcon:d,loading:s=false,error:l,label:u,helperText:c,disabled:L,...P},N)=>{let b=m__namespace.useId();return jsxRuntime.jsxs("div",{className:"w-full space-y-2",children:[u&&jsxRuntime.jsx(p,{htmlFor:b,children:u}),jsxRuntime.jsxs("div",{className:"relative",children:[i&&jsxRuntime.jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground",children:i}),jsxRuntime.jsx(f,{id:b,className:e(M({variant:l?"error":o,size:a,className:t}),i&&"pl-9",(d||s)&&"pr-9"),ref:N,disabled:L||s,...P}),(d||s)&&jsxRuntime.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground",children:s?jsxRuntime.jsx(lucideReact.Loader2,{className:"h-4 w-4 animate-spin"}):d})]}),(l||c)&&jsxRuntime.jsx("p",{className:e("text-sm",l?"text-destructive":"text-muted-foreground"),children:l||c})]})});R.displayName="TextField";exports.TextField=R;//# sourceMappingURL=text-field.js.map
2
+ //# sourceMappingURL=text-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/input/input.tsx","../../src/components/atoms/label/label.tsx","../../src/components/atoms/text-field/text-field.tsx"],"names":["cn","inputs","twMerge","clsx","Input","x","className","type","props","ref","jsx","labelVariants","cva","Label","v","n","textFieldVariants","TextField","m","variant","size","startIcon","endIcon","loading","error","label","helperText","disabled","id","jsxs","Loader2"],"mappings":"oqBAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,qBAAQC,CAAAA,SAAAA,CAAKF,CAAM,CAAC,CAC7B,CCMA,IAAMG,CAAAA,CAAcC,YAClB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAAC,CAAAA,CAAAA,CAAW,IAAAC,CAAAA,CAAAA,CAAM,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GAE5BC,eAAC,OACC,CAAA,CAAA,IAAA,CAAMH,CACN,CAAA,SAAA,CAAWP,CACT,CAAA,yWAAA,CACAM,CACF,CAAA,CACA,IAAKG,CACJ,CAAA,GAAGD,CACN,CAAA,CAGN,CACAJ,CAAAA,CAAAA,CAAM,WAAc,CAAA,OAAA,CCpBpB,IAAMO,CAAgBC,CAAAA,0BAAAA,CACpB,4FACF,CAAA,CAaMC,EAAcC,YAClB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAR,CAAW,CAAA,GAAGE,CAAM,CAAA,CAAGC,IACxBC,cAAgB,CAAAK,YAAA,CAAA,IAAA,CAAf,CAAoB,GAAA,CAAKN,CAAK,CAAA,SAAA,CAAWT,CAAGW,CAAAA,CAAAA,GAAiBL,CAAS,CAAA,CAAI,GAAGE,CAAAA,CAAO,CAEzF,CAAA,CACAK,CAAM,CAAA,WAAA,CAA6BE,kBAAK,WCgDtB,CA9DZC,IAAAA,CAAAA,CAAoBJ,2BAAI,QAAU,CAAA,CACtC,QAAU,CAAA,CACR,OAAS,CAAA,CACP,OAAS,CAAA,EAAA,CACT,MAAO,mDACT,CAAA,CACA,IAAM,CAAA,CACJ,OAAS,CAAA,MAAA,CACT,EAAI,CAAA,aAAA,CACJ,GAAI,gBACN,CACF,CACA,CAAA,eAAA,CAAiB,CACf,OAAA,CAAS,SACT,CAAA,IAAA,CAAM,SACR,CACF,CAAC,CAAA,CAyBKK,CAAkB,CAAAC,YAAA,CAAA,UAAA,CACtB,CACE,CACE,UAAAZ,CACA,CAAA,OAAA,CAAAa,CACA,CAAA,IAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,CACA,CAAA,OAAA,CAAAC,EACA,OAAAC,CAAAA,CAAAA,CAAU,KACV,CAAA,KAAA,CAAAC,CACA,CAAA,KAAA,CAAAC,CACA,CAAA,UAAA,CAAAC,EACA,QAAAC,CAAAA,CAAAA,CACA,GAAGnB,CACL,CACAC,CAAAA,CAAAA,GACG,CACH,IAAMmB,EAAWV,YAAM,CAAA,KAAA,EAAA,CAEvB,OACEW,eAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,kBACZ,CAAA,QAAA,CAAA,CAAAJ,GAASf,cAACG,CAAAA,CAAAA,CAAA,CAAM,OAAA,CAASe,CAAK,CAAA,QAAA,CAAAH,CAAM,CAAA,CAAA,CACrCI,gBAAC,KAAI,CAAA,CAAA,SAAA,CAAU,UACZ,CAAA,QAAA,CAAA,CAAAR,CACCX,EAAAA,cAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,iEACZ,QAAAW,CAAAA,CAAAA,CACH,CAEFX,CAAAA,cAAAA,CAACN,CAAA,CAAA,CACC,EAAIwB,CAAAA,CAAAA,CACJ,UAAW5B,CACTgB,CAAAA,CAAAA,CAAkB,CAAE,OAAA,CAASQ,CAAQ,CAAA,OAAA,CAAUL,CAAS,CAAA,IAAA,CAAAC,EAAM,SAAAd,CAAAA,CAAU,CAAC,CAAA,CACzEe,CAAa,EAAA,MAAA,CAAA,CACZC,CAAWC,EAAAA,CAAAA,GAAY,MAC1B,CACA,CAAA,GAAA,CAAKd,CACL,CAAA,QAAA,CAAUkB,CAAYJ,EAAAA,CAAAA,CACrB,GAAGf,CAAAA,CACN,GACEc,CAAWC,EAAAA,CAAAA,GACXb,cAAC,CAAA,KAAA,CAAA,CAAI,SAAU,CAAA,iEAAA,CACZ,QAAAa,CAAAA,CAAAA,CAAUb,eAACoB,mBAAA,CAAA,CAAQ,SAAU,CAAA,sBAAA,CAAuB,CAAKR,CAAAA,CAAAA,CAC5D,CAEJ,CAAA,CAAA,CAAA,CAAA,CACEE,GAASE,CACThB,GAAAA,cAAAA,CAAC,GAAE,CAAA,CAAA,SAAA,CAAWV,CAAG,CAAA,SAAA,CAAWwB,CAAQ,CAAA,kBAAA,CAAqB,uBAAuB,CAC7E,CAAA,QAAA,CAAAA,CAASE,EAAAA,CAAAA,CACZ,CAEJ,CAAA,CAAA,CAEJ,CACF,EAEAT,EAAU,WAAc,CAAA,WAAA","file":"text-field.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/utils/cn\"\n\n/**\n * Input component for creating accessible input fields.\n * Built on top of shadcn/ui's Input component.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-input--docs\n *\n */\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils/index\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nexport interface LabelProps\n extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {}\n\n/**\n * Label component for creating accessible labels.\n * Built on top of Radix UI's Label primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-label--docs\n *\n */\nconst Label = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, LabelProps>(\n ({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n )\n)\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/utils/cn\"\nimport { TextFieldProps } from \"./text-field.types\"\nimport { Loader2 } from \"lucide-react\"\nimport { Input } from \"../input\"\nimport { Label } from \"../label\"\n\n/**\n * Text field variant styles using class-variance-authority.\n * Defines the visual styles for different text field variants and sizes.\n */\nconst textFieldVariants = cva(\"w-full\", {\n variants: {\n variant: {\n default: \"\",\n error: \"border-destructive focus-visible:ring-destructive\"\n },\n size: {\n default: \"h-10\",\n sm: \"h-8 text-xs\",\n lg: \"h-12 text-base\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n})\n\n/**\n * A versatile text field component that supports multiple variants, sizes, and icons.\n * Built on top of shadcn/ui's Input component.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-text-field--docs\n *\n * @component\n * @example\n * ```tsx\n * // Default text field\n * <TextField placeholder=\"Enter text\" />\n *\n * // With icons\n * <TextField startIcon={<SearchIcon />} placeholder=\"Search...\" />\n * <TextField endIcon={<CalendarIcon />} placeholder=\"Select date\" />\n *\n * // With loading state\n * <TextField loading placeholder=\"Loading...\" />\n *\n * // With error\n * <TextField error=\"Invalid input\" placeholder=\"Enter text\" />\n * ```\n */\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n variant,\n size,\n startIcon,\n endIcon,\n loading = false,\n error,\n label,\n helperText,\n disabled,\n ...props\n },\n ref\n ) => {\n const id = React.useId()\n\n return (\n <div className=\"w-full space-y-2\">\n {label && <Label htmlFor={id}>{label}</Label>}\n <div className=\"relative\">\n {startIcon && (\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\">\n {startIcon}\n </div>\n )}\n <Input\n id={id}\n className={cn(\n textFieldVariants({ variant: error ? \"error\" : variant, size, className }),\n startIcon && \"pl-9\",\n (endIcon || loading) && \"pr-9\"\n )}\n ref={ref}\n disabled={disabled || loading}\n {...props}\n />\n {(endIcon || loading) && (\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground\">\n {loading ? <Loader2 className=\"h-4 w-4 animate-spin\" /> : endIcon}\n </div>\n )}\n </div>\n {(error || helperText) && (\n <p className={cn(\"text-sm\", error ? \"text-destructive\" : \"text-muted-foreground\")}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n }\n)\n\nTextField.displayName = \"TextField\"\n\nexport { TextField, textFieldVariants }\n"]}
@@ -0,0 +1,2 @@
1
+ import*as m from'react';import {cva}from'class-variance-authority';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {Loader2}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';import*as n from'@radix-ui/react-label';function e(...t){return twMerge(clsx(t))}var f=m.forwardRef(({className:t,type:o,...a},i)=>jsx("input",{type:o,className:e("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:i,...a}));f.displayName="Input";var V=cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),p=m.forwardRef(({className:t,...o},a)=>jsx(n.Root,{ref:a,className:e(V(),t),...o}));p.displayName=n.Root.displayName;var M=cva("w-full",{variants:{variant:{default:"",error:"border-destructive focus-visible:ring-destructive"},size:{default:"h-10",sm:"h-8 text-xs",lg:"h-12 text-base"}},defaultVariants:{variant:"default",size:"default"}}),R=m.forwardRef(({className:t,variant:o,size:a,startIcon:i,endIcon:d,loading:s=false,error:l,label:u,helperText:c,disabled:L,...P},N)=>{let b=m.useId();return jsxs("div",{className:"w-full space-y-2",children:[u&&jsx(p,{htmlFor:b,children:u}),jsxs("div",{className:"relative",children:[i&&jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground",children:i}),jsx(f,{id:b,className:e(M({variant:l?"error":o,size:a,className:t}),i&&"pl-9",(d||s)&&"pr-9"),ref:N,disabled:L||s,...P}),(d||s)&&jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground",children:s?jsx(Loader2,{className:"h-4 w-4 animate-spin"}):d})]}),(l||c)&&jsx("p",{className:e("text-sm",l?"text-destructive":"text-muted-foreground"),children:l||c})]})});R.displayName="TextField";export{R as TextField};//# sourceMappingURL=text-field.mjs.map
2
+ //# sourceMappingURL=text-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/cn.ts","../../src/components/atoms/input/input.tsx","../../src/components/atoms/label/label.tsx","../../src/components/atoms/text-field/text-field.tsx"],"names":["cn","inputs","twMerge","clsx","Input","x","className","type","props","ref","jsx","labelVariants","cva","Label","v","textFieldVariants","TextField","variant","size","startIcon","endIcon","loading","error","label","helperText","disabled","id","jsxs","Loader2"],"mappings":"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","file":"text-field.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/utils/cn\"\n\n/**\n * Input component for creating accessible input fields.\n * Built on top of shadcn/ui's Input component.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-input--docs\n *\n */\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils/index\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nexport interface LabelProps\n extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {}\n\n/**\n * Label component for creating accessible labels.\n * Built on top of Radix UI's Label primitive.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-label--docs\n *\n */\nconst Label = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, LabelProps>(\n ({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n )\n)\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/utils/cn\"\nimport { TextFieldProps } from \"./text-field.types\"\nimport { Loader2 } from \"lucide-react\"\nimport { Input } from \"../input\"\nimport { Label } from \"../label\"\n\n/**\n * Text field variant styles using class-variance-authority.\n * Defines the visual styles for different text field variants and sizes.\n */\nconst textFieldVariants = cva(\"w-full\", {\n variants: {\n variant: {\n default: \"\",\n error: \"border-destructive focus-visible:ring-destructive\"\n },\n size: {\n default: \"h-10\",\n sm: \"h-8 text-xs\",\n lg: \"h-12 text-base\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n})\n\n/**\n * A versatile text field component that supports multiple variants, sizes, and icons.\n * Built on top of shadcn/ui's Input component.\n *\n * @url https://sergii-melnykov.github.io/ui/?path=/docs/atoms-text-field--docs\n *\n * @component\n * @example\n * ```tsx\n * // Default text field\n * <TextField placeholder=\"Enter text\" />\n *\n * // With icons\n * <TextField startIcon={<SearchIcon />} placeholder=\"Search...\" />\n * <TextField endIcon={<CalendarIcon />} placeholder=\"Select date\" />\n *\n * // With loading state\n * <TextField loading placeholder=\"Loading...\" />\n *\n * // With error\n * <TextField error=\"Invalid input\" placeholder=\"Enter text\" />\n * ```\n */\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n variant,\n size,\n startIcon,\n endIcon,\n loading = false,\n error,\n label,\n helperText,\n disabled,\n ...props\n },\n ref\n ) => {\n const id = React.useId()\n\n return (\n <div className=\"w-full space-y-2\">\n {label && <Label htmlFor={id}>{label}</Label>}\n <div className=\"relative\">\n {startIcon && (\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\">\n {startIcon}\n </div>\n )}\n <Input\n id={id}\n className={cn(\n textFieldVariants({ variant: error ? \"error\" : variant, size, className }),\n startIcon && \"pl-9\",\n (endIcon || loading) && \"pr-9\"\n )}\n ref={ref}\n disabled={disabled || loading}\n {...props}\n />\n {(endIcon || loading) && (\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground\">\n {loading ? <Loader2 className=\"h-4 w-4 animate-spin\" /> : endIcon}\n </div>\n )}\n </div>\n {(error || helperText) && (\n <p className={cn(\"text-sm\", error ? \"text-destructive\" : \"text-muted-foreground\")}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n }\n)\n\nTextField.displayName = \"TextField\"\n\nexport { TextField, textFieldVariants }\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var e=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);function o(...r){return tailwindMerge.twMerge(clsx.clsx(r))}var c=e__namespace.forwardRef(({className:r,autoResize:n=false,...i},l)=>{let s=e__namespace.useRef(null);return e__namespace.useEffect(()=>{if(!n||!s.current)return;let t=s.current,a=()=>{t.style.height="auto",t.style.height=`${t.scrollHeight}px`;};return t.addEventListener("input",a),a(),()=>t.removeEventListener("input",a)},[n]),jsxRuntime.jsx("textarea",{className:o("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:l,...i})});c.displayName="Textarea";exports.Textarea=c;//# sourceMappingURL=textarea.js.map
2
+ //# sourceMappingURL=textarea.js.map