siesa-ui-kit 1.0.0 → 1.0.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 (420) hide show
  1. package/README.md +54 -28
  2. package/claude/settings.local.json +7 -61
  3. package/dist/ButtonTest.d.ts +6 -0
  4. package/dist/ButtonTest.d.ts.map +1 -0
  5. package/dist/components/Alert/Alert.d.ts +23 -0
  6. package/dist/components/Alert/Alert.d.ts.map +1 -0
  7. package/dist/components/Alert/Alert.types.d.ts +46 -0
  8. package/dist/components/Alert/Alert.types.d.ts.map +1 -0
  9. package/dist/components/Avatar/Avatar.d.ts +41 -0
  10. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  11. package/dist/components/Avatar/Avatar.types.d.ts +46 -0
  12. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  13. package/dist/components/Badge/Badge.d.ts +42 -0
  14. package/dist/components/Badge/Badge.d.ts.map +1 -0
  15. package/dist/components/Badge/Badge.types.d.ts +32 -0
  16. package/dist/components/Badge/Badge.types.d.ts.map +1 -0
  17. package/dist/components/Button/Button.d.ts +84 -0
  18. package/dist/components/Button/Button.d.ts.map +1 -0
  19. package/dist/components/Button/Button.types.d.ts +162 -0
  20. package/dist/components/Button/Button.types.d.ts.map +1 -0
  21. package/dist/components/Button/icons.d.ts +26 -0
  22. package/dist/components/Button/icons.d.ts.map +1 -0
  23. package/dist/components/Button/index.d.ts +4 -0
  24. package/dist/components/Button/index.d.ts.map +1 -0
  25. package/dist/components/Checkbox/Checkbox.d.ts +31 -0
  26. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  27. package/dist/components/Checkbox/Checkbox.types.d.ts +53 -0
  28. package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  29. package/dist/components/DescriptionList/DescriptionList.d.ts +38 -0
  30. package/dist/components/DescriptionList/DescriptionList.d.ts.map +1 -0
  31. package/dist/components/DescriptionList/DescriptionList.types.d.ts +27 -0
  32. package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +1 -0
  33. package/dist/components/Divider/Divider.d.ts +33 -0
  34. package/dist/components/Divider/Divider.d.ts.map +1 -0
  35. package/dist/components/Divider/Divider.types.d.ts +22 -0
  36. package/dist/components/Divider/Divider.types.d.ts.map +1 -0
  37. package/dist/components/Dropdown/Dropdown.d.ts +66 -0
  38. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
  39. package/dist/components/Dropdown/Dropdown.types.d.ts +124 -0
  40. package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -0
  41. package/dist/components/Dropdown/icons.d.ts +10 -0
  42. package/dist/components/Dropdown/icons.d.ts.map +1 -0
  43. package/dist/components/Dropdown/index.d.ts +4 -0
  44. package/dist/components/Dropdown/index.d.ts.map +1 -0
  45. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +101 -0
  46. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -0
  47. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +95 -0
  48. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -0
  49. package/dist/components/DropdownItemCollapsible/icons.d.ts +19 -0
  50. package/dist/components/DropdownItemCollapsible/icons.d.ts.map +1 -0
  51. package/dist/components/DropdownItemCollapsible/index.d.ts +9 -0
  52. package/dist/components/DropdownItemCollapsible/index.d.ts.map +1 -0
  53. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +75 -0
  54. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +1 -0
  55. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +85 -0
  56. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +1 -0
  57. package/dist/components/DropdownItemHeading/icons.d.ts +48 -0
  58. package/dist/components/DropdownItemHeading/icons.d.ts.map +1 -0
  59. package/dist/components/DropdownItemHeading/index.d.ts +4 -0
  60. package/dist/components/DropdownItemHeading/index.d.ts.map +1 -0
  61. package/dist/components/Input/Input.d.ts +40 -0
  62. package/dist/components/Input/Input.d.ts.map +1 -0
  63. package/dist/components/Input/Input.types.d.ts +71 -0
  64. package/dist/components/Input/Input.types.d.ts.map +1 -0
  65. package/dist/components/Input/icons.d.ts +15 -0
  66. package/dist/components/Input/icons.d.ts.map +1 -0
  67. package/dist/components/Input/index.d.ts +3 -0
  68. package/dist/components/Input/index.d.ts.map +1 -0
  69. package/dist/components/LoginView/LoginView.d.ts +36 -0
  70. package/dist/components/LoginView/LoginView.d.ts.map +1 -0
  71. package/dist/components/LoginView/LoginView.types.d.ts +46 -0
  72. package/dist/components/LoginView/LoginView.types.d.ts.map +1 -0
  73. package/dist/components/LoginView/icons.d.ts +18 -0
  74. package/dist/components/LoginView/icons.d.ts.map +1 -0
  75. package/dist/components/LoginView/index.d.ts +4 -0
  76. package/dist/components/LoginView/index.d.ts.map +1 -0
  77. package/dist/components/Navbar/Navbar.d.ts +63 -0
  78. package/dist/components/Navbar/Navbar.d.ts.map +1 -0
  79. package/dist/components/Navbar/Navbar.types.d.ts +194 -0
  80. package/dist/components/Navbar/Navbar.types.d.ts.map +1 -0
  81. package/dist/components/Navbar/icons.d.ts +12 -0
  82. package/dist/components/Navbar/icons.d.ts.map +1 -0
  83. package/dist/components/Navbar/index.d.ts +4 -0
  84. package/dist/components/Navbar/index.d.ts.map +1 -0
  85. package/dist/components/NavigationBar/NavigationBar.d.ts +75 -0
  86. package/dist/components/NavigationBar/NavigationBar.d.ts.map +1 -0
  87. package/dist/components/NavigationBar/NavigationBar.types.d.ts +63 -0
  88. package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +1 -0
  89. package/dist/components/NavigationBar/index.d.ts +3 -0
  90. package/dist/components/NavigationBar/index.d.ts.map +1 -0
  91. package/dist/components/NavigationRail/NavigationRail.d.ts +7 -0
  92. package/dist/components/NavigationRail/NavigationRail.d.ts.map +1 -0
  93. package/dist/components/NavigationRail/NavigationRail.types.d.ts +92 -0
  94. package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +1 -0
  95. package/dist/components/NavigationRail/index.d.ts +3 -0
  96. package/dist/components/NavigationRail/index.d.ts.map +1 -0
  97. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +90 -0
  98. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -0
  99. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +155 -0
  100. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -0
  101. package/dist/components/NavigationRailItem/index.d.ts +3 -0
  102. package/dist/components/NavigationRailItem/index.d.ts.map +1 -0
  103. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +124 -0
  104. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +1 -0
  105. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +154 -0
  106. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +1 -0
  107. package/dist/components/NavigationRailPanel/index.d.ts +3 -0
  108. package/dist/components/NavigationRailPanel/index.d.ts.map +1 -0
  109. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +99 -0
  110. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -0
  111. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +111 -0
  112. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -0
  113. package/dist/components/NavigationRailTypes/icons.d.ts +58 -0
  114. package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -0
  115. package/dist/components/NavigationRailTypes/index.d.ts +4 -0
  116. package/dist/components/NavigationRailTypes/index.d.ts.map +1 -0
  117. package/dist/components/Notification/Notification.d.ts +52 -0
  118. package/dist/components/Notification/Notification.d.ts.map +1 -0
  119. package/dist/components/Notification/Notification.types.d.ts +138 -0
  120. package/dist/components/Notification/Notification.types.d.ts.map +1 -0
  121. package/dist/components/Notification/index.d.ts +3 -0
  122. package/dist/components/Notification/index.d.ts.map +1 -0
  123. package/dist/components/POSConvention/POSConvention.d.ts +55 -0
  124. package/dist/components/POSConvention/POSConvention.d.ts.map +1 -0
  125. package/dist/components/POSConvention/POSConvention.types.d.ts +37 -0
  126. package/dist/components/POSConvention/POSConvention.types.d.ts.map +1 -0
  127. package/dist/components/POSConvention/icons.d.ts +21 -0
  128. package/dist/components/POSConvention/icons.d.ts.map +1 -0
  129. package/dist/components/POSConvention/index.d.ts +4 -0
  130. package/dist/components/POSConvention/index.d.ts.map +1 -0
  131. package/dist/components/POSLocationButton/POSLocationButton.d.ts +73 -0
  132. package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +1 -0
  133. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +75 -0
  134. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +1 -0
  135. package/dist/components/POSLocationButton/icons.d.ts +37 -0
  136. package/dist/components/POSLocationButton/icons.d.ts.map +1 -0
  137. package/dist/components/POSLocationButton/index.d.ts +4 -0
  138. package/dist/components/POSLocationButton/index.d.ts.map +1 -0
  139. package/dist/components/POSNumberButton/POSNumberButton.d.ts +61 -0
  140. package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +1 -0
  141. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +43 -0
  142. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +1 -0
  143. package/dist/components/POSNumberButton/index.d.ts +3 -0
  144. package/dist/components/POSNumberButton/index.d.ts.map +1 -0
  145. package/dist/components/POSProductButton/POSProductButton.d.ts +59 -0
  146. package/dist/components/POSProductButton/POSProductButton.d.ts.map +1 -0
  147. package/dist/components/POSProductButton/POSProductButton.types.d.ts +40 -0
  148. package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +1 -0
  149. package/dist/components/POSProductButton/index.d.ts +3 -0
  150. package/dist/components/POSProductButton/index.d.ts.map +1 -0
  151. package/dist/components/POSProductCard/POSProductCard.d.ts +68 -0
  152. package/dist/components/POSProductCard/POSProductCard.d.ts.map +1 -0
  153. package/dist/components/POSProductCard/POSProductCard.types.d.ts +67 -0
  154. package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +1 -0
  155. package/dist/components/POSProductCard/icons.d.ts +10 -0
  156. package/dist/components/POSProductCard/icons.d.ts.map +1 -0
  157. package/dist/components/POSProductCard/index.d.ts +3 -0
  158. package/dist/components/POSProductCard/index.d.ts.map +1 -0
  159. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +57 -0
  160. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +1 -0
  161. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +85 -0
  162. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +1 -0
  163. package/dist/components/POSProductSidebarItems/icons.d.ts +9 -0
  164. package/dist/components/POSProductSidebarItems/icons.d.ts.map +1 -0
  165. package/dist/components/POSProductSidebarItems/index.d.ts +4 -0
  166. package/dist/components/POSProductSidebarItems/index.d.ts.map +1 -0
  167. package/dist/components/POSTable/POSTable.d.ts +75 -0
  168. package/dist/components/POSTable/POSTable.d.ts.map +1 -0
  169. package/dist/components/POSTable/POSTable.types.d.ts +71 -0
  170. package/dist/components/POSTable/POSTable.types.d.ts.map +1 -0
  171. package/dist/components/POSTable/index.d.ts +3 -0
  172. package/dist/components/POSTable/index.d.ts.map +1 -0
  173. package/dist/components/Pagination/Pagination.d.ts +29 -0
  174. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  175. package/dist/components/Pagination/Pagination.types.d.ts +79 -0
  176. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
  177. package/dist/components/Pagination/icons.d.ts +18 -0
  178. package/dist/components/Pagination/icons.d.ts.map +1 -0
  179. package/dist/components/Pagination/index.d.ts +4 -0
  180. package/dist/components/Pagination/index.d.ts.map +1 -0
  181. package/dist/components/Quantity/Quantity.d.ts +38 -0
  182. package/dist/components/Quantity/Quantity.d.ts.map +1 -0
  183. package/dist/components/Quantity/Quantity.types.d.ts +59 -0
  184. package/dist/components/Quantity/Quantity.types.d.ts.map +1 -0
  185. package/dist/components/Radio/Radio.d.ts +45 -0
  186. package/dist/components/Radio/Radio.d.ts.map +1 -0
  187. package/dist/components/Radio/Radio.types.d.ts +115 -0
  188. package/dist/components/Radio/Radio.types.d.ts.map +1 -0
  189. package/dist/components/Select/Select.d.ts +37 -0
  190. package/dist/components/Select/Select.d.ts.map +1 -0
  191. package/dist/components/Select/Select.types.d.ts +124 -0
  192. package/dist/components/Select/Select.types.d.ts.map +1 -0
  193. package/dist/components/Select/icons.d.ts +16 -0
  194. package/dist/components/Select/icons.d.ts.map +1 -0
  195. package/dist/components/Select/index.d.ts +4 -0
  196. package/dist/components/Select/index.d.ts.map +1 -0
  197. package/dist/components/SignUpView/SignUpView.d.ts +38 -0
  198. package/dist/components/SignUpView/SignUpView.d.ts.map +1 -0
  199. package/dist/components/SignUpView/SignUpView.types.d.ts +51 -0
  200. package/dist/components/SignUpView/SignUpView.types.d.ts.map +1 -0
  201. package/dist/components/SignUpView/icons.d.ts +18 -0
  202. package/dist/components/SignUpView/icons.d.ts.map +1 -0
  203. package/dist/components/SignUpView/index.d.ts +4 -0
  204. package/dist/components/SignUpView/index.d.ts.map +1 -0
  205. package/dist/components/Switch/Switch.d.ts +46 -0
  206. package/dist/components/Switch/Switch.d.ts.map +1 -0
  207. package/dist/components/Switch/Switch.types.d.ts +58 -0
  208. package/dist/components/Switch/Switch.types.d.ts.map +1 -0
  209. package/dist/components/Table/Table.d.ts +64 -0
  210. package/dist/components/Table/Table.d.ts.map +1 -0
  211. package/dist/components/Table/Table.types.d.ts +173 -0
  212. package/dist/components/Table/Table.types.d.ts.map +1 -0
  213. package/dist/components/Table/index.d.ts +3 -0
  214. package/dist/components/Table/index.d.ts.map +1 -0
  215. package/dist/components/Tabs/Tabs.d.ts +76 -0
  216. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  217. package/dist/components/Tabs/Tabs.types.d.ts +107 -0
  218. package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
  219. package/dist/components/Tabs/icons.d.ts +45 -0
  220. package/dist/components/Tabs/icons.d.ts.map +1 -0
  221. package/dist/components/Tabs/index.d.ts +4 -0
  222. package/dist/components/Tabs/index.d.ts.map +1 -0
  223. package/dist/components/Textarea/Textarea.d.ts +38 -0
  224. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  225. package/dist/components/Textarea/Textarea.types.d.ts +46 -0
  226. package/dist/components/Textarea/Textarea.types.d.ts.map +1 -0
  227. package/dist/context/ThemeContext.d.ts +46 -0
  228. package/dist/context/ThemeContext.d.ts.map +1 -0
  229. package/dist/context/index.d.ts +2 -0
  230. package/dist/context/index.d.ts.map +1 -0
  231. package/dist/index.d.ts +56 -0
  232. package/dist/index.d.ts.map +1 -0
  233. package/dist/siesa-ui-kit.cjs +1260 -0
  234. package/dist/siesa-ui-kit.cjs.map +1 -0
  235. package/dist/siesa-ui-kit.mjs +4496 -0
  236. package/dist/siesa-ui-kit.mjs.map +1 -0
  237. package/dist/views/ListView/ListView.d.ts +47 -0
  238. package/dist/views/ListView/ListView.d.ts.map +1 -0
  239. package/dist/views/ListView/ListView.types.d.ts +177 -0
  240. package/dist/views/ListView/ListView.types.d.ts.map +1 -0
  241. package/dist/views/ListView/icons.d.ts +60 -0
  242. package/dist/views/ListView/icons.d.ts.map +1 -0
  243. package/dist/views/ListView/index.d.ts +3 -0
  244. package/dist/views/ListView/index.d.ts.map +1 -0
  245. package/dist/views/LoginView/LoginView.d.ts +36 -0
  246. package/dist/views/LoginView/LoginView.d.ts.map +1 -0
  247. package/dist/views/LoginView/LoginView.types.d.ts +46 -0
  248. package/dist/views/LoginView/LoginView.types.d.ts.map +1 -0
  249. package/dist/views/LoginView/icons.d.ts +18 -0
  250. package/dist/views/LoginView/icons.d.ts.map +1 -0
  251. package/dist/views/LoginView/index.d.ts +4 -0
  252. package/dist/views/LoginView/index.d.ts.map +1 -0
  253. package/dist/views/ProductsView/ProductsView.d.ts +56 -0
  254. package/dist/views/ProductsView/ProductsView.d.ts.map +1 -0
  255. package/dist/views/ProductsView/ProductsView.types.d.ts +184 -0
  256. package/dist/views/ProductsView/ProductsView.types.d.ts.map +1 -0
  257. package/dist/views/ProductsView/icons.d.ts +12 -0
  258. package/dist/views/ProductsView/icons.d.ts.map +1 -0
  259. package/dist/views/ProductsView/index.d.ts +3 -0
  260. package/dist/views/ProductsView/index.d.ts.map +1 -0
  261. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +34 -0
  262. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +1 -0
  263. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +50 -0
  264. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +1 -0
  265. package/dist/views/RecoverPasswordView/icons.d.ts +9 -0
  266. package/dist/views/RecoverPasswordView/icons.d.ts.map +1 -0
  267. package/dist/views/RecoverPasswordView/index.d.ts +3 -0
  268. package/dist/views/RecoverPasswordView/index.d.ts.map +1 -0
  269. package/dist/views/SignUpView/SignUpView.d.ts +38 -0
  270. package/dist/views/SignUpView/SignUpView.d.ts.map +1 -0
  271. package/dist/views/SignUpView/SignUpView.types.d.ts +51 -0
  272. package/dist/views/SignUpView/SignUpView.types.d.ts.map +1 -0
  273. package/dist/views/SignUpView/icons.d.ts +18 -0
  274. package/dist/views/SignUpView/icons.d.ts.map +1 -0
  275. package/dist/views/SignUpView/index.d.ts +4 -0
  276. package/dist/views/SignUpView/index.d.ts.map +1 -0
  277. package/dist/views/TableLayoutView/TableLayoutView.d.ts +46 -0
  278. package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +1 -0
  279. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +170 -0
  280. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +1 -0
  281. package/dist/views/TableLayoutView/icons.d.ts +27 -0
  282. package/dist/views/TableLayoutView/icons.d.ts.map +1 -0
  283. package/dist/views/TableLayoutView/index.d.ts +3 -0
  284. package/dist/views/TableLayoutView/index.d.ts.map +1 -0
  285. package/docs/border-radius.md +1261 -1261
  286. package/docs/colors.md +832 -832
  287. package/docs/dark-mode-guide.md +1426 -1426
  288. package/docs/filters.md +1243 -1243
  289. package/docs/icons.md +1283 -1283
  290. package/docs/shadows.md +1377 -1377
  291. package/docs/spacing.md +1684 -1684
  292. package/docs/typography.md +1268 -1268
  293. package/package.json +33 -6
  294. package/postcss.config.cjs +6 -6
  295. package/src/App.css +42 -42
  296. package/src/App.tsx +8 -8
  297. package/src/ButtonTest.tsx +147 -147
  298. package/src/assets/fonts/README.md +261 -261
  299. package/src/components/Alert/Alert.stories.tsx +332 -332
  300. package/src/components/Alert/Alert.tsx +106 -106
  301. package/src/components/Alert/Alert.types.ts +54 -54
  302. package/src/components/Avatar/Avatar.tsx +143 -143
  303. package/src/components/Avatar/Avatar.types.ts +53 -53
  304. package/src/components/Badge/Badge.stories.tsx +339 -339
  305. package/src/components/Badge/Badge.tsx +278 -278
  306. package/src/components/Badge/Badge.types.ts +58 -58
  307. package/src/components/Button/icons.tsx +87 -87
  308. package/src/components/Button/index.ts +3 -3
  309. package/src/components/Checkbox/Checkbox.stories.tsx +453 -453
  310. package/src/components/Checkbox/Checkbox.tsx +208 -208
  311. package/src/components/Checkbox/Checkbox.types.ts +61 -61
  312. package/src/components/DescriptionList/DescriptionList.tsx +96 -96
  313. package/src/components/DescriptionList/DescriptionList.types.ts +29 -29
  314. package/src/components/Divider/Divider.tsx +80 -80
  315. package/src/components/Divider/Divider.types.ts +24 -24
  316. package/src/components/Dropdown/Dropdown.stories.tsx +552 -552
  317. package/src/components/Dropdown/Dropdown.tsx +422 -422
  318. package/src/components/Dropdown/Dropdown.types.ts +146 -146
  319. package/src/components/Dropdown/README.md +266 -266
  320. package/src/components/Dropdown/icons.tsx +72 -72
  321. package/src/components/Dropdown/index.ts +8 -8
  322. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +317 -0
  323. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +287 -0
  324. package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +111 -0
  325. package/src/components/DropdownItemCollapsible/README.md +264 -0
  326. package/src/components/DropdownItemCollapsible/icons.tsx +57 -0
  327. package/src/components/DropdownItemCollapsible/index.ts +12 -0
  328. package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +386 -0
  329. package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +216 -0
  330. package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +93 -0
  331. package/src/components/DropdownItemHeading/README.md +573 -0
  332. package/src/components/DropdownItemHeading/icons.tsx +125 -0
  333. package/src/components/DropdownItemHeading/index.ts +3 -0
  334. package/src/components/Input/Input.tsx +204 -204
  335. package/src/components/Input/Input.types.ts +80 -80
  336. package/src/components/Input/icons.tsx +145 -145
  337. package/src/components/Input/index.ts +2 -2
  338. package/src/components/Navbar/icons.tsx +102 -102
  339. package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -406
  340. package/src/components/NavigationBar/NavigationBar.tsx +246 -246
  341. package/src/components/NavigationBar/NavigationBar.types.ts +74 -74
  342. package/src/components/NavigationBar/README.md +469 -469
  343. package/src/components/NavigationBar/index.ts +2 -2
  344. package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -417
  345. package/src/components/NavigationRail/NavigationRail.tsx +418 -418
  346. package/src/components/NavigationRail/NavigationRail.types.ts +109 -109
  347. package/src/components/NavigationRail/README.md +224 -224
  348. package/src/components/NavigationRail/index.ts +2 -2
  349. package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +667 -0
  350. package/src/components/NavigationRailItem/NavigationRailItem.tsx +313 -0
  351. package/src/components/NavigationRailItem/NavigationRailItem.types.ts +167 -0
  352. package/src/components/NavigationRailItem/README.md +476 -0
  353. package/src/components/NavigationRailItem/index.ts +2 -0
  354. package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +462 -0
  355. package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +332 -0
  356. package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +178 -0
  357. package/src/components/NavigationRailPanel/README.md +461 -0
  358. package/src/components/NavigationRailPanel/index.ts +6 -0
  359. package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +528 -0
  360. package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +378 -0
  361. package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +130 -0
  362. package/src/components/NavigationRailTypes/README.md +573 -0
  363. package/src/components/NavigationRailTypes/icons.tsx +141 -0
  364. package/src/components/NavigationRailTypes/index.ts +7 -0
  365. package/src/components/Notification/index.ts +3 -3
  366. package/src/components/POSProductButton/POSProductButton.tsx +152 -152
  367. package/src/components/POSProductButton/POSProductButton.types.ts +46 -46
  368. package/src/components/POSProductButton/README.md +269 -269
  369. package/src/components/POSProductButton/index.ts +2 -2
  370. package/src/components/POSTable/POSTable.types.ts +83 -83
  371. package/src/components/POSTable/index.ts +7 -7
  372. package/src/components/Pagination/Pagination.stories.tsx +555 -555
  373. package/src/components/Pagination/Pagination.tsx +286 -286
  374. package/src/components/Pagination/Pagination.types.ts +93 -93
  375. package/src/components/Pagination/README.md +298 -298
  376. package/src/components/Pagination/icons.tsx +47 -47
  377. package/src/components/Pagination/index.ts +3 -3
  378. package/src/components/Quantity/Quantity.tsx +289 -289
  379. package/src/components/Quantity/Quantity.types.ts +70 -70
  380. package/src/components/Radio/Radio.tsx +170 -170
  381. package/src/components/Radio/Radio.types.ts +122 -122
  382. package/src/components/Select/README.md +299 -299
  383. package/src/components/Select/Select.stories.tsx +673 -673
  384. package/src/components/Select/Select.types.ts +148 -148
  385. package/src/components/Select/icons.tsx +50 -50
  386. package/src/components/Select/index.ts +3 -3
  387. package/src/components/Table/README.md +369 -369
  388. package/src/components/Table/Table.tsx +688 -688
  389. package/src/components/Table/Table.types.ts +204 -204
  390. package/src/components/Table/index.ts +9 -9
  391. package/src/components/Textarea/Textarea.tsx +188 -188
  392. package/src/components/Textarea/Textarea.types.ts +54 -54
  393. package/src/context/ThemeContext.tsx +99 -99
  394. package/src/context/index.ts +1 -1
  395. package/src/index.css +29 -29
  396. package/src/index.ts +63 -0
  397. package/src/main.tsx +10 -10
  398. package/src/views/ListView/ListView.stories.tsx +329 -0
  399. package/src/views/ListView/ListView.tsx +570 -0
  400. package/src/views/ListView/ListView.types.ts +211 -0
  401. package/src/views/ListView/icons.tsx +282 -0
  402. package/src/views/ListView/index.ts +11 -0
  403. package/src/views/LoginView/LoginView.stories.tsx +148 -0
  404. package/src/views/LoginView/LoginView.tsx +426 -0
  405. package/src/views/LoginView/LoginView.types.ts +52 -0
  406. package/src/views/LoginView/README.md +396 -0
  407. package/src/views/LoginView/icons.tsx +85 -0
  408. package/src/views/LoginView/index.ts +3 -0
  409. package/src/views/RecoverPasswordView/README.md +269 -269
  410. package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -131
  411. package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -56
  412. package/src/views/RecoverPasswordView/icons.tsx +17 -17
  413. package/src/views/RecoverPasswordView/index.ts +2 -2
  414. package/src/views/SignUpView/SignUpView.stories.tsx +129 -0
  415. package/src/views/SignUpView/SignUpView.tsx +503 -0
  416. package/src/views/SignUpView/SignUpView.types.ts +58 -0
  417. package/src/views/SignUpView/icons.tsx +71 -0
  418. package/src/views/SignUpView/index.ts +3 -0
  419. package/claude/agents/siesa-ui-kit-specialist.md +0 -2401
  420. package/claude/prompts/component-template.md +0 -121
@@ -1,204 +1,204 @@
1
- import React, { forwardRef, cloneElement } from 'react';
2
- import type { InputProps } from './Input.types';
3
-
4
- /**
5
- * Input - Componente de campo de entrada del sistema de diseño Siesa
6
- * Basado en especificaciones de Figma con Tailwind CSS
7
- *
8
- * Mejores prácticas implementadas:
9
- * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
10
- * - Dark mode con estrategia 'class' (darkMode: 'class')
11
- * - Focus rings adaptativos para light y dark mode
12
- * - Tokens de color consistentes con la documentación
13
- * - Sombra base para inputs con focus
14
- * - Estados hover, focus, disabled y error completos
15
- * - Typography: Paragraph Regular para texto, Label Bold para labels
16
- *
17
- * Campo de entrada de texto con soporte para:
18
- * - Estados: default, hover, focus, filled, disabled
19
- * - Validación con mensajes de error
20
- * - Iconos izquierdo y derecho
21
- * - Label y helper text
22
- * - Dark mode completo
23
- * - Accesibilidad completa
24
- *
25
- * @see docs/colors.md - Sistema de colores
26
- * @see docs/shadows.md - Sistema de sombras
27
- * @see docs/typography.md - Sistema tipográfico (Paragraph, Label)
28
- * @see docs/spacing.md - Sistema de espaciado
29
- *
30
- * @example
31
- * ```tsx
32
- * <Input
33
- * label="Email"
34
- * placeholder="tu@email.com"
35
- * leftIcon={<EnvelopeIcon />}
36
- * helperText="Ingresa tu correo electrónico"
37
- * />
38
- * ```
39
- */
40
- export const Input = forwardRef<HTMLInputElement, InputProps>(
41
- (
42
- {
43
- label,
44
- labelSecondary,
45
- helperText,
46
- error = false,
47
- errorMessage,
48
- leftIcon,
49
- rightIcon,
50
- fullWidth = false,
51
- className = '',
52
- disabled = false,
53
- id,
54
- ...props
55
- },
56
- ref
57
- ) => {
58
- // Generar ID único si no se proporciona
59
- const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;
60
-
61
- // ===== CLASES BASE DEL INPUT =====
62
- // Usando el sistema tipográfico Paragraph Regular (14px = text-sm)
63
- // Border radius rounded-md (6px) consistente con Button
64
- const baseInputClasses = `
65
- w-full
66
- px-3
67
- py-1.5
68
- text-sm
69
- leading-6
70
- font-normal
71
- text-content-primary
72
- bg-bg-primary
73
- border
74
- border-border-primary
75
- rounded-md
76
- outline-none
77
- transition-all
78
- duration-150
79
- placeholder:text-content-tertiary
80
- dark:bg-dark-bg-primary
81
- dark:border-dark-border-primary
82
- dark:text-dark-content-primary
83
- dark:placeholder:text-dark-content-tertiary
84
- `;
85
-
86
- // ===== CLASES PARA ESTADOS INTERACTIVOS =====
87
- // Orden de modificadores: {responsive}:{dark}:{state}:{utility}
88
- // Focus rings adaptativos siguiendo el patrón de Button
89
- const interactiveClasses = !disabled
90
- ? `
91
- hover:border-primary-custom-600
92
- focus:border-primary-custom-600
93
- focus:ring-2
94
- focus:ring-primary-custom-400
95
- focus:ring-offset-2
96
- dark:hover:border-dark-border-custom
97
- dark:focus:border-dark-border-custom
98
- dark:focus:ring-dark-border-custom
99
- dark:focus:ring-offset-dark-bg-primary
100
- `
101
- : `
102
- opacity-50
103
- cursor-not-allowed
104
- bg-bg-secondary
105
- dark:bg-dark-bg-secondary
106
- `;
107
-
108
- // ===== CLASES PARA ESTADO DE ERROR =====
109
- // Los colores de error son los mismos en light y dark mode
110
- const errorClasses = error
111
- ? `
112
- !border-error-border
113
- focus:!ring-error-border/30
114
- focus:!ring-offset-2
115
- dark:!border-error-border
116
- dark:focus:!ring-error-border/30
117
- dark:focus:!ring-offset-dark-bg-primary
118
- `
119
- : '';
120
-
121
- // ===== CLASES DEL CONTENEDOR =====
122
- const containerClasses = fullWidth ? 'w-full' : 'w-[265px]';
123
-
124
- // ===== RENDERIZAR ICONOS =====
125
- // Clonar iconos con estilos apropiados y dark mode completo
126
- const renderIcon = (icon: React.ReactElement | undefined) => {
127
- if (!icon) return null;
128
- const existingClassName = (icon.props as any).className || '';
129
- return cloneElement(icon as React.ReactElement<any>, {
130
- className: `w-4 h-4 text-content-tertiary dark:text-dark-content-tertiary ${existingClassName}`,
131
- });
132
- };
133
-
134
- return (
135
- <div className={`flex flex-col gap-2 ${containerClasses} ${className}`}>
136
- {/* Label */}
137
- {label && (
138
- <label
139
- htmlFor={inputId}
140
- className="flex items-center w-full font-bold text-sm leading-5 text-content-primary dark:text-dark-content-primary"
141
- >
142
- <span className="flex-1">{label}</span>
143
- {labelSecondary && (
144
- <span className="text-xs leading-4 text-primary-custom-600 dark:text-primary-custom-600">
145
- {labelSecondary}
146
- </span>
147
- )}
148
- </label>
149
- )}
150
-
151
- {/* Input Container */}
152
- <div className="relative flex items-center">
153
- {/* Left Icon */}
154
- {leftIcon && (
155
- <div className="absolute left-3 pointer-events-none">
156
- {renderIcon(leftIcon)}
157
- </div>
158
- )}
159
-
160
- {/* Input Field */}
161
- <input
162
- ref={ref}
163
- id={inputId}
164
- disabled={disabled}
165
- className={`
166
- ${baseInputClasses}
167
- ${interactiveClasses}
168
- ${errorClasses}
169
- ${leftIcon ? 'pl-9' : ''}
170
- ${rightIcon ? 'pr-9' : ''}
171
- `.trim().replace(/\s+/g, ' ')}
172
- {...props}
173
- />
174
-
175
- {/* Right Icon */}
176
- {rightIcon && (
177
- <div className="absolute right-3 pointer-events-none">
178
- {renderIcon(rightIcon)}
179
- </div>
180
- )}
181
- </div>
182
-
183
- {/* Helper Text or Error Message */}
184
- {(helperText || errorMessage) && (
185
- <p
186
- className={`
187
- text-xs
188
- leading-5
189
- ${
190
- error
191
- ? 'text-error-content dark:text-error-content'
192
- : 'text-content-tertiary dark:text-dark-content-tertiary'
193
- }
194
- `.trim().replace(/\s+/g, ' ')}
195
- >
196
- {error && errorMessage ? errorMessage : helperText}
197
- </p>
198
- )}
199
- </div>
200
- );
201
- }
202
- );
203
-
204
- Input.displayName = 'Input';
1
+ import React, { forwardRef, cloneElement } from 'react';
2
+ import type { InputProps } from './Input.types';
3
+
4
+ /**
5
+ * Input - Componente de campo de entrada del sistema de diseño Siesa
6
+ * Basado en especificaciones de Figma con Tailwind CSS
7
+ *
8
+ * Mejores prácticas implementadas:
9
+ * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
10
+ * - Dark mode con estrategia 'class' (darkMode: 'class')
11
+ * - Focus rings adaptativos para light y dark mode
12
+ * - Tokens de color consistentes con la documentación
13
+ * - Sombra base para inputs con focus
14
+ * - Estados hover, focus, disabled y error completos
15
+ * - Typography: Paragraph Regular para texto, Label Bold para labels
16
+ *
17
+ * Campo de entrada de texto con soporte para:
18
+ * - Estados: default, hover, focus, filled, disabled
19
+ * - Validación con mensajes de error
20
+ * - Iconos izquierdo y derecho
21
+ * - Label y helper text
22
+ * - Dark mode completo
23
+ * - Accesibilidad completa
24
+ *
25
+ * @see docs/colors.md - Sistema de colores
26
+ * @see docs/shadows.md - Sistema de sombras
27
+ * @see docs/typography.md - Sistema tipográfico (Paragraph, Label)
28
+ * @see docs/spacing.md - Sistema de espaciado
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <Input
33
+ * label="Email"
34
+ * placeholder="tu@email.com"
35
+ * leftIcon={<EnvelopeIcon />}
36
+ * helperText="Ingresa tu correo electrónico"
37
+ * />
38
+ * ```
39
+ */
40
+ export const Input = forwardRef<HTMLInputElement, InputProps>(
41
+ (
42
+ {
43
+ label,
44
+ labelSecondary,
45
+ helperText,
46
+ error = false,
47
+ errorMessage,
48
+ leftIcon,
49
+ rightIcon,
50
+ fullWidth = false,
51
+ className = '',
52
+ disabled = false,
53
+ id,
54
+ ...props
55
+ },
56
+ ref
57
+ ) => {
58
+ // Generar ID único si no se proporciona
59
+ const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;
60
+
61
+ // ===== CLASES BASE DEL INPUT =====
62
+ // Usando el sistema tipográfico Paragraph Regular (14px = text-sm)
63
+ // Border radius rounded-md (6px) consistente con Button
64
+ const baseInputClasses = `
65
+ w-full
66
+ px-3
67
+ py-1.5
68
+ text-sm
69
+ leading-6
70
+ font-normal
71
+ text-content-primary
72
+ bg-bg-primary
73
+ border
74
+ border-border-primary
75
+ rounded-md
76
+ outline-none
77
+ transition-all
78
+ duration-150
79
+ placeholder:text-content-tertiary
80
+ dark:bg-dark-bg-primary
81
+ dark:border-dark-border-primary
82
+ dark:text-dark-content-primary
83
+ dark:placeholder:text-dark-content-tertiary
84
+ `;
85
+
86
+ // ===== CLASES PARA ESTADOS INTERACTIVOS =====
87
+ // Orden de modificadores: {responsive}:{dark}:{state}:{utility}
88
+ // Focus rings adaptativos siguiendo el patrón de Button
89
+ const interactiveClasses = !disabled
90
+ ? `
91
+ hover:border-primary-custom-600
92
+ focus:border-primary-custom-600
93
+ focus:ring-2
94
+ focus:ring-primary-custom-400
95
+ focus:ring-offset-2
96
+ dark:hover:border-dark-border-custom
97
+ dark:focus:border-dark-border-custom
98
+ dark:focus:ring-dark-border-custom
99
+ dark:focus:ring-offset-dark-bg-primary
100
+ `
101
+ : `
102
+ opacity-50
103
+ cursor-not-allowed
104
+ bg-bg-secondary
105
+ dark:bg-dark-bg-secondary
106
+ `;
107
+
108
+ // ===== CLASES PARA ESTADO DE ERROR =====
109
+ // Los colores de error son los mismos en light y dark mode
110
+ const errorClasses = error
111
+ ? `
112
+ !border-error-border
113
+ focus:!ring-error-border/30
114
+ focus:!ring-offset-2
115
+ dark:!border-error-border
116
+ dark:focus:!ring-error-border/30
117
+ dark:focus:!ring-offset-dark-bg-primary
118
+ `
119
+ : '';
120
+
121
+ // ===== CLASES DEL CONTENEDOR =====
122
+ const containerClasses = fullWidth ? 'w-full' : 'w-[265px]';
123
+
124
+ // ===== RENDERIZAR ICONOS =====
125
+ // Clonar iconos con estilos apropiados y dark mode completo
126
+ const renderIcon = (icon: React.ReactElement | undefined) => {
127
+ if (!icon) return null;
128
+ const existingClassName = (icon.props as any).className || '';
129
+ return cloneElement(icon as React.ReactElement<any>, {
130
+ className: `w-4 h-4 text-content-tertiary dark:text-dark-content-tertiary ${existingClassName}`,
131
+ });
132
+ };
133
+
134
+ return (
135
+ <div className={`flex flex-col gap-2 ${containerClasses} ${className}`}>
136
+ {/* Label */}
137
+ {label && (
138
+ <label
139
+ htmlFor={inputId}
140
+ className="flex items-center w-full font-bold text-sm leading-5 text-content-primary dark:text-dark-content-primary"
141
+ >
142
+ <span className="flex-1">{label}</span>
143
+ {labelSecondary && (
144
+ <span className="text-xs leading-4 text-primary-custom-600 dark:text-primary-custom-600">
145
+ {labelSecondary}
146
+ </span>
147
+ )}
148
+ </label>
149
+ )}
150
+
151
+ {/* Input Container */}
152
+ <div className="relative flex items-center">
153
+ {/* Left Icon */}
154
+ {leftIcon && (
155
+ <div className="absolute left-3 pointer-events-none">
156
+ {renderIcon(leftIcon)}
157
+ </div>
158
+ )}
159
+
160
+ {/* Input Field */}
161
+ <input
162
+ ref={ref}
163
+ id={inputId}
164
+ disabled={disabled}
165
+ className={`
166
+ ${baseInputClasses}
167
+ ${interactiveClasses}
168
+ ${errorClasses}
169
+ ${leftIcon ? 'pl-9' : ''}
170
+ ${rightIcon ? 'pr-9' : ''}
171
+ `.trim().replace(/\s+/g, ' ')}
172
+ {...props}
173
+ />
174
+
175
+ {/* Right Icon */}
176
+ {rightIcon && (
177
+ <div className="absolute right-3 pointer-events-none">
178
+ {renderIcon(rightIcon)}
179
+ </div>
180
+ )}
181
+ </div>
182
+
183
+ {/* Helper Text or Error Message */}
184
+ {(helperText || errorMessage) && (
185
+ <p
186
+ className={`
187
+ text-xs
188
+ leading-5
189
+ ${
190
+ error
191
+ ? 'text-error-content dark:text-error-content'
192
+ : 'text-content-tertiary dark:text-dark-content-tertiary'
193
+ }
194
+ `.trim().replace(/\s+/g, ' ')}
195
+ >
196
+ {error && errorMessage ? errorMessage : helperText}
197
+ </p>
198
+ )}
199
+ </div>
200
+ );
201
+ }
202
+ );
203
+
204
+ Input.displayName = 'Input';
@@ -1,80 +1,80 @@
1
- import type { ReactElement, InputHTMLAttributes } from 'react';
2
-
3
- /**
4
- * Estados visuales del Input
5
- * @description Tipo de referencia para documentar los estados posibles del Input.
6
- * Los estados se manejan automáticamente mediante props (disabled) y pseudo-clases CSS (:hover, :focus)
7
- */
8
- export type InputState = 'default' | 'hover' | 'focus' | 'filled' | 'disabled';
9
-
10
- /**
11
- * Props del componente Input
12
- *
13
- * @see docs/colors.md - Sistema de colores
14
- * @see docs/typography.md - Sistema tipográfico
15
- * @see docs/spacing.md - Sistema de espaciado
16
- * @see docs/shadows.md - Sistema de sombras
17
- */
18
- export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
19
- /**
20
- * Etiqueta del campo de entrada
21
- * @description Texto descriptivo que se muestra encima del input
22
- * @example "Email", "Nombre completo", "Contraseña"
23
- */
24
- label?: string;
25
-
26
- /**
27
- * Texto secundario junto al label (opcional)
28
- * @description Se muestra alineado a la derecha del label, útil para indicar campos opcionales
29
- * @example "Optional", "Opcional"
30
- */
31
- labelSecondary?: string;
32
-
33
- /**
34
- * Texto de ayuda debajo del input
35
- * @description Proporciona información adicional o instrucciones para el usuario
36
- * @example "Ingresa tu correo electrónico", "Mínimo 8 caracteres"
37
- */
38
- helperText?: string;
39
-
40
- /**
41
- * Indica si hay un error de validación
42
- * @description Cambia el estilo del input para indicar error (borde rojo)
43
- * @default false
44
- */
45
- error?: boolean;
46
-
47
- /**
48
- * Mensaje de error a mostrar (reemplaza helperText cuando error=true)
49
- * @description Se muestra en rojo debajo del input cuando hay un error
50
- * @example "Este campo es requerido", "Formato de email inválido"
51
- */
52
- errorMessage?: string;
53
-
54
- /**
55
- * Icono a mostrar a la izquierda del input
56
- * @description Ayuda a identificar el tipo de campo visualmente
57
- * @example <EnvelopeIcon />, <UserIcon />, <LockClosedIcon />
58
- */
59
- leftIcon?: ReactElement;
60
-
61
- /**
62
- * Icono a mostrar a la derecha del input
63
- * @description Útil para acciones como mostrar/ocultar contraseña o limpiar campo
64
- * @example <EyeIcon />, <XMarkIcon />, <CheckIcon />
65
- */
66
- rightIcon?: ReactElement;
67
-
68
- /**
69
- * Si el input ocupa todo el ancho del contenedor
70
- * @description Por defecto usa w-[265px], con fullWidth usa w-full
71
- * @default false
72
- */
73
- fullWidth?: boolean;
74
-
75
- /**
76
- * Clases CSS adicionales para personalizar el componente
77
- * @description Se aplican al contenedor principal del input
78
- */
79
- className?: string;
80
- }
1
+ import type { ReactElement, InputHTMLAttributes } from 'react';
2
+
3
+ /**
4
+ * Estados visuales del Input
5
+ * @description Tipo de referencia para documentar los estados posibles del Input.
6
+ * Los estados se manejan automáticamente mediante props (disabled) y pseudo-clases CSS (:hover, :focus)
7
+ */
8
+ export type InputState = 'default' | 'hover' | 'focus' | 'filled' | 'disabled';
9
+
10
+ /**
11
+ * Props del componente Input
12
+ *
13
+ * @see docs/colors.md - Sistema de colores
14
+ * @see docs/typography.md - Sistema tipográfico
15
+ * @see docs/spacing.md - Sistema de espaciado
16
+ * @see docs/shadows.md - Sistema de sombras
17
+ */
18
+ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
19
+ /**
20
+ * Etiqueta del campo de entrada
21
+ * @description Texto descriptivo que se muestra encima del input
22
+ * @example "Email", "Nombre completo", "Contraseña"
23
+ */
24
+ label?: string;
25
+
26
+ /**
27
+ * Texto secundario junto al label (opcional)
28
+ * @description Se muestra alineado a la derecha del label, útil para indicar campos opcionales
29
+ * @example "Optional", "Opcional"
30
+ */
31
+ labelSecondary?: string;
32
+
33
+ /**
34
+ * Texto de ayuda debajo del input
35
+ * @description Proporciona información adicional o instrucciones para el usuario
36
+ * @example "Ingresa tu correo electrónico", "Mínimo 8 caracteres"
37
+ */
38
+ helperText?: string;
39
+
40
+ /**
41
+ * Indica si hay un error de validación
42
+ * @description Cambia el estilo del input para indicar error (borde rojo)
43
+ * @default false
44
+ */
45
+ error?: boolean;
46
+
47
+ /**
48
+ * Mensaje de error a mostrar (reemplaza helperText cuando error=true)
49
+ * @description Se muestra en rojo debajo del input cuando hay un error
50
+ * @example "Este campo es requerido", "Formato de email inválido"
51
+ */
52
+ errorMessage?: string;
53
+
54
+ /**
55
+ * Icono a mostrar a la izquierda del input
56
+ * @description Ayuda a identificar el tipo de campo visualmente
57
+ * @example <EnvelopeIcon />, <UserIcon />, <LockClosedIcon />
58
+ */
59
+ leftIcon?: ReactElement;
60
+
61
+ /**
62
+ * Icono a mostrar a la derecha del input
63
+ * @description Útil para acciones como mostrar/ocultar contraseña o limpiar campo
64
+ * @example <EyeIcon />, <XMarkIcon />, <CheckIcon />
65
+ */
66
+ rightIcon?: ReactElement;
67
+
68
+ /**
69
+ * Si el input ocupa todo el ancho del contenedor
70
+ * @description Por defecto usa w-[265px], con fullWidth usa w-full
71
+ * @default false
72
+ */
73
+ fullWidth?: boolean;
74
+
75
+ /**
76
+ * Clases CSS adicionales para personalizar el componente
77
+ * @description Se aplican al contenedor principal del input
78
+ */
79
+ className?: string;
80
+ }