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,246 +1,246 @@
1
- import React from 'react';
2
- import type { NavigationBarProps, NavigationBarItem } from './NavigationBar.types';
3
-
4
- /**
5
- * NavigationBar del sistema de diseño Siesa
6
- *
7
- * **Componente de navegación inferior (Bottom Navigation Bar) para móvil.**
8
- * Permite al usuario navegar entre vistas principales de la aplicación.
9
- * Diseñado para contener 3-5 ítems de navegación.
10
- *
11
- * **🔄 Navegación Responsive:**
12
- * El NavigationRail (navegación lateral vertical) se convierte en NavigationBar
13
- * (navegación inferior horizontal) cuando la pantalla es móvil. Esta es una
14
- * práctica recomendada de UX para aprovechar mejor el espacio en diferentes
15
- * dispositivos:
16
- * - **Desktop/Tablet**: Usar NavigationRail (lateral)
17
- * - **Mobile**: Usar NavigationBar (inferior)
18
- *
19
- * **Características:**
20
- * - Soporta hasta 5 ítems de navegación (recomendado: 3-5)
21
- * - Cada ítem tiene icono + label
22
- * - Indicador visual de ítem activo (fondo azul claro)
23
- * - Estados: active, hover, disabled
24
- * - Dark mode completo
25
- * - Accesibilidad con ARIA labels
26
- *
27
- * **Mejores prácticas implementadas:**
28
- * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
29
- * - Dark mode con estrategia 'class' (darkMode: 'class')
30
- * - Tokens de color consistentes con la documentación
31
- * - Type safety con TypeScript estricto
32
- * - Tipografía Label XXSmall (10px Bold) según sistema de diseño
33
- * - Iconos de 16x16px según especificaciones de Figma
34
- *
35
- * @see docs/colors.md - Sistema de colores
36
- * @see docs/typography.md - Sistema tipográfico (Label XXSmall)
37
- * @see docs/spacing.md - Sistema de espaciado
38
- * @see NavigationRail - Componente de navegación lateral para desktop
39
- *
40
- * @example
41
- * ```tsx
42
- * const items = [
43
- * { id: 'home', icon: <HomeIcon />, label: 'Inicio', active: true },
44
- * { id: 'search', icon: <SearchIcon />, label: 'Buscar' },
45
- * { id: 'profile', icon: <ProfileIcon />, label: 'Perfil' },
46
- * ];
47
- *
48
- * <NavigationBar
49
- * items={items}
50
- * activeItemId="home"
51
- * onItemClick={(id) => console.log('Clicked:', id)}
52
- * />
53
- * ```
54
- *
55
- * @example
56
- * // Patrón responsive: NavigationRail en desktop, NavigationBar en mobile
57
- * ```tsx
58
- * function ResponsiveNav() {
59
- * return (
60
- * <>
61
- * // NavigationRail para desktop/tablet
62
- * <div className="hidden md:block">
63
- * <NavigationRail items={items} />
64
- * </div>
65
- *
66
- * // NavigationBar para móvil
67
- * <div className="md:hidden fixed bottom-0 left-0 right-0 z-50">
68
- * <NavigationBar items={items} />
69
- * </div>
70
- * </>
71
- * );
72
- * }
73
- * ```
74
- */
75
- export const NavigationBar: React.FC<NavigationBarProps> = ({
76
- items,
77
- activeItemId,
78
- onItemClick,
79
- className = '',
80
- ariaLabel = 'Navegación Principal',
81
- }) => {
82
- // ===== VALIDACIÓN: Máximo 5 ítems =====
83
- if (items.length > 5) {
84
- console.warn('NavigationBar: Se recomienda un máximo de 5 ítems para mejor UX');
85
- }
86
-
87
- // ===== HANDLER DE CLICK =====
88
- const handleItemClick = (item: NavigationBarItem) => {
89
- if (item.disabled) return;
90
-
91
- // Llamar onClick del ítem individual si existe
92
- if (item.onClick) {
93
- item.onClick(item.id);
94
- }
95
-
96
- // Llamar onItemClick global si existe
97
- if (onItemClick) {
98
- onItemClick(item.id);
99
- }
100
- };
101
-
102
- // ===== RENDERIZAR ÍTEM =====
103
- const renderItem = (item: NavigationBarItem) => {
104
- const isActive = item.active || item.id === activeItemId;
105
-
106
- // ===== CLASES DEL CONTENEDOR DEL ÍTEM =====
107
- const itemContainerClasses = `
108
- flex-1
109
- flex
110
- flex-col
111
- items-center
112
- gap-1
113
- px-0.5
114
- py-0
115
- min-w-0
116
- cursor-pointer
117
- transition-all
118
- duration-150
119
- ${item.disabled ? 'opacity-50 cursor-not-allowed pointer-events-none' : ''}
120
- `
121
- .replace(/\s+/g, ' ')
122
- .trim();
123
-
124
- // ===== CLASES DEL ICON CONTAINER =====
125
- // Fondo azul claro cuando está activo (rgb(219, 238, 254) = #dbeefe = primary-custom-100)
126
- // En dark mode usa el mismo color opaco según Figma
127
- const iconContainerClasses = `
128
- flex
129
- items-center
130
- justify-center
131
- px-4
132
- py-1
133
- rounded-full
134
- overflow-hidden
135
- transition-all
136
- duration-150
137
- ${
138
- isActive
139
- ? 'bg-primary-custom-100 dark:bg-primary-custom-100'
140
- : 'bg-transparent hover:bg-hover-overlay dark:hover:bg-hover-overlay-dark'
141
- }
142
- `
143
- .replace(/\s+/g, ' ')
144
- .trim();
145
-
146
- // ===== CLASES DEL LABEL =====
147
- // Label XXSmall: 10px Bold, line-height 12px (según typography.md y Figma)
148
- const labelClasses = `
149
- font-['SiesaBT:Bold',sans-serif]
150
- text-[10px]
151
- leading-[12px]
152
- font-bold
153
- text-center
154
- w-full
155
- min-w-0
156
- text-content-primary
157
- dark:text-dark-content-primary
158
- transition-colors
159
- duration-150
160
- `
161
- .replace(/\s+/g, ' ')
162
- .trim();
163
-
164
- // ===== CLASES DEL ICONO =====
165
- // Iconos de 16x16px según Figma
166
- const iconClasses = `
167
- w-4
168
- h-4
169
- shrink-0
170
- text-content-primary
171
- dark:text-dark-content-primary
172
- transition-colors
173
- duration-150
174
- `
175
- .replace(/\s+/g, ' ')
176
- .trim();
177
-
178
- return (
179
- <button
180
- key={item.id}
181
- type="button"
182
- className={itemContainerClasses}
183
- onClick={() => handleItemClick(item)}
184
- disabled={item.disabled}
185
- aria-label={item.ariaLabel || item.label}
186
- aria-current={isActive ? 'page' : undefined}
187
- >
188
- {/* Icon Container */}
189
- <div className={iconContainerClasses}>
190
- <span className={iconClasses}>{item.icon}</span>
191
- </div>
192
-
193
- {/* Label */}
194
- <span className={labelClasses}>{item.label}</span>
195
- </button>
196
- );
197
- };
198
-
199
- // ===== CLASES DEL CONTENEDOR PRINCIPAL =====
200
- const containerClasses = `
201
- bg-bg-primary
202
- dark:bg-dark-bg-primary
203
- p-4
204
- w-full
205
- transition-colors
206
- duration-150
207
- `
208
- .replace(/\s+/g, ' ')
209
- .trim();
210
-
211
- // ===== CLASES DEL MENU (Contenedor de ítems) =====
212
- const menuClasses = `
213
- flex
214
- items-start
215
- justify-center
216
- w-full
217
- `
218
- .replace(/\s+/g, ' ')
219
- .trim();
220
-
221
- // ===== CLASES DEL DESTINATIONS (Contenedor con gap) =====
222
- const destinationsClasses = `
223
- flex-1
224
- flex
225
- items-start
226
- gap-2
227
- min-h-0
228
- min-w-0
229
- `
230
- .replace(/\s+/g, ' ')
231
- .trim();
232
-
233
- return (
234
- <nav
235
- className={`${containerClasses} ${className}`.trim()}
236
- role="navigation"
237
- aria-label={ariaLabel}
238
- >
239
- <div className={menuClasses}>
240
- <div className={destinationsClasses}>
241
- {items.map((item) => renderItem(item))}
242
- </div>
243
- </div>
244
- </nav>
245
- );
246
- };
1
+ import React from 'react';
2
+ import type { NavigationBarProps, NavigationBarItem } from './NavigationBar.types';
3
+
4
+ /**
5
+ * NavigationBar del sistema de diseño Siesa
6
+ *
7
+ * **Componente de navegación inferior (Bottom Navigation Bar) para móvil.**
8
+ * Permite al usuario navegar entre vistas principales de la aplicación.
9
+ * Diseñado para contener 3-5 ítems de navegación.
10
+ *
11
+ * **🔄 Navegación Responsive:**
12
+ * El NavigationRail (navegación lateral vertical) se convierte en NavigationBar
13
+ * (navegación inferior horizontal) cuando la pantalla es móvil. Esta es una
14
+ * práctica recomendada de UX para aprovechar mejor el espacio en diferentes
15
+ * dispositivos:
16
+ * - **Desktop/Tablet**: Usar NavigationRail (lateral)
17
+ * - **Mobile**: Usar NavigationBar (inferior)
18
+ *
19
+ * **Características:**
20
+ * - Soporta hasta 5 ítems de navegación (recomendado: 3-5)
21
+ * - Cada ítem tiene icono + label
22
+ * - Indicador visual de ítem activo (fondo azul claro)
23
+ * - Estados: active, hover, disabled
24
+ * - Dark mode completo
25
+ * - Accesibilidad con ARIA labels
26
+ *
27
+ * **Mejores prácticas implementadas:**
28
+ * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
29
+ * - Dark mode con estrategia 'class' (darkMode: 'class')
30
+ * - Tokens de color consistentes con la documentación
31
+ * - Type safety con TypeScript estricto
32
+ * - Tipografía Label XXSmall (10px Bold) según sistema de diseño
33
+ * - Iconos de 16x16px según especificaciones de Figma
34
+ *
35
+ * @see docs/colors.md - Sistema de colores
36
+ * @see docs/typography.md - Sistema tipográfico (Label XXSmall)
37
+ * @see docs/spacing.md - Sistema de espaciado
38
+ * @see NavigationRail - Componente de navegación lateral para desktop
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * const items = [
43
+ * { id: 'home', icon: <HomeIcon />, label: 'Inicio', active: true },
44
+ * { id: 'search', icon: <SearchIcon />, label: 'Buscar' },
45
+ * { id: 'profile', icon: <ProfileIcon />, label: 'Perfil' },
46
+ * ];
47
+ *
48
+ * <NavigationBar
49
+ * items={items}
50
+ * activeItemId="home"
51
+ * onItemClick={(id) => console.log('Clicked:', id)}
52
+ * />
53
+ * ```
54
+ *
55
+ * @example
56
+ * // Patrón responsive: NavigationRail en desktop, NavigationBar en mobile
57
+ * ```tsx
58
+ * function ResponsiveNav() {
59
+ * return (
60
+ * <>
61
+ * // NavigationRail para desktop/tablet
62
+ * <div className="hidden md:block">
63
+ * <NavigationRail items={items} />
64
+ * </div>
65
+ *
66
+ * // NavigationBar para móvil
67
+ * <div className="md:hidden fixed bottom-0 left-0 right-0 z-50">
68
+ * <NavigationBar items={items} />
69
+ * </div>
70
+ * </>
71
+ * );
72
+ * }
73
+ * ```
74
+ */
75
+ export const NavigationBar: React.FC<NavigationBarProps> = ({
76
+ items,
77
+ activeItemId,
78
+ onItemClick,
79
+ className = '',
80
+ ariaLabel = 'Navegación Principal',
81
+ }) => {
82
+ // ===== VALIDACIÓN: Máximo 5 ítems =====
83
+ if (items.length > 5) {
84
+ console.warn('NavigationBar: Se recomienda un máximo de 5 ítems para mejor UX');
85
+ }
86
+
87
+ // ===== HANDLER DE CLICK =====
88
+ const handleItemClick = (item: NavigationBarItem) => {
89
+ if (item.disabled) return;
90
+
91
+ // Llamar onClick del ítem individual si existe
92
+ if (item.onClick) {
93
+ item.onClick(item.id);
94
+ }
95
+
96
+ // Llamar onItemClick global si existe
97
+ if (onItemClick) {
98
+ onItemClick(item.id);
99
+ }
100
+ };
101
+
102
+ // ===== RENDERIZAR ÍTEM =====
103
+ const renderItem = (item: NavigationBarItem) => {
104
+ const isActive = item.active || item.id === activeItemId;
105
+
106
+ // ===== CLASES DEL CONTENEDOR DEL ÍTEM =====
107
+ const itemContainerClasses = `
108
+ flex-1
109
+ flex
110
+ flex-col
111
+ items-center
112
+ gap-1
113
+ px-0.5
114
+ py-0
115
+ min-w-0
116
+ cursor-pointer
117
+ transition-all
118
+ duration-150
119
+ ${item.disabled ? 'opacity-50 cursor-not-allowed pointer-events-none' : ''}
120
+ `
121
+ .replace(/\s+/g, ' ')
122
+ .trim();
123
+
124
+ // ===== CLASES DEL ICON CONTAINER =====
125
+ // Fondo azul claro cuando está activo (rgb(219, 238, 254) = #dbeefe = primary-custom-100)
126
+ // En dark mode usa el mismo color opaco según Figma
127
+ const iconContainerClasses = `
128
+ flex
129
+ items-center
130
+ justify-center
131
+ px-4
132
+ py-1
133
+ rounded-full
134
+ overflow-hidden
135
+ transition-all
136
+ duration-150
137
+ ${
138
+ isActive
139
+ ? 'bg-primary-custom-100 dark:bg-primary-custom-100'
140
+ : 'bg-transparent hover:bg-hover-overlay dark:hover:bg-hover-overlay-dark'
141
+ }
142
+ `
143
+ .replace(/\s+/g, ' ')
144
+ .trim();
145
+
146
+ // ===== CLASES DEL LABEL =====
147
+ // Label XXSmall: 10px Bold, line-height 12px (según typography.md y Figma)
148
+ const labelClasses = `
149
+ font-['SiesaBT:Bold',sans-serif]
150
+ text-[10px]
151
+ leading-[12px]
152
+ font-bold
153
+ text-center
154
+ w-full
155
+ min-w-0
156
+ text-content-primary
157
+ dark:text-dark-content-primary
158
+ transition-colors
159
+ duration-150
160
+ `
161
+ .replace(/\s+/g, ' ')
162
+ .trim();
163
+
164
+ // ===== CLASES DEL ICONO =====
165
+ // Iconos de 16x16px según Figma
166
+ const iconClasses = `
167
+ w-4
168
+ h-4
169
+ shrink-0
170
+ text-content-primary
171
+ dark:text-dark-content-primary
172
+ transition-colors
173
+ duration-150
174
+ `
175
+ .replace(/\s+/g, ' ')
176
+ .trim();
177
+
178
+ return (
179
+ <button
180
+ key={item.id}
181
+ type="button"
182
+ className={itemContainerClasses}
183
+ onClick={() => handleItemClick(item)}
184
+ disabled={item.disabled}
185
+ aria-label={item.ariaLabel || item.label}
186
+ aria-current={isActive ? 'page' : undefined}
187
+ >
188
+ {/* Icon Container */}
189
+ <div className={iconContainerClasses}>
190
+ <span className={iconClasses}>{item.icon}</span>
191
+ </div>
192
+
193
+ {/* Label */}
194
+ <span className={labelClasses}>{item.label}</span>
195
+ </button>
196
+ );
197
+ };
198
+
199
+ // ===== CLASES DEL CONTENEDOR PRINCIPAL =====
200
+ const containerClasses = `
201
+ bg-bg-primary
202
+ dark:bg-dark-bg-primary
203
+ p-4
204
+ w-full
205
+ transition-colors
206
+ duration-150
207
+ `
208
+ .replace(/\s+/g, ' ')
209
+ .trim();
210
+
211
+ // ===== CLASES DEL MENU (Contenedor de ítems) =====
212
+ const menuClasses = `
213
+ flex
214
+ items-start
215
+ justify-center
216
+ w-full
217
+ `
218
+ .replace(/\s+/g, ' ')
219
+ .trim();
220
+
221
+ // ===== CLASES DEL DESTINATIONS (Contenedor con gap) =====
222
+ const destinationsClasses = `
223
+ flex-1
224
+ flex
225
+ items-start
226
+ gap-2
227
+ min-h-0
228
+ min-w-0
229
+ `
230
+ .replace(/\s+/g, ' ')
231
+ .trim();
232
+
233
+ return (
234
+ <nav
235
+ className={`${containerClasses} ${className}`.trim()}
236
+ role="navigation"
237
+ aria-label={ariaLabel}
238
+ >
239
+ <div className={menuClasses}>
240
+ <div className={destinationsClasses}>
241
+ {items.map((item) => renderItem(item))}
242
+ </div>
243
+ </div>
244
+ </nav>
245
+ );
246
+ };
@@ -1,74 +1,74 @@
1
- import type { ReactNode } from 'react';
2
-
3
- /**
4
- * Interfaz para un ítem individual del Navigation Bar
5
- */
6
- export interface NavigationBarItem {
7
- /**
8
- * Identificador único del ítem
9
- */
10
- id: string;
11
-
12
- /**
13
- * Icono del ítem (componente React)
14
- */
15
- icon: ReactNode;
16
-
17
- /**
18
- * Label del ítem (texto debajo del icono)
19
- */
20
- label: string;
21
-
22
- /**
23
- * Si el ítem está activo
24
- * @default false
25
- */
26
- active?: boolean;
27
-
28
- /**
29
- * Si el ítem está deshabilitado
30
- * @default false
31
- */
32
- disabled?: boolean;
33
-
34
- /**
35
- * Función onClick del ítem
36
- */
37
- onClick?: (id: string) => void;
38
-
39
- /**
40
- * Etiqueta accesible para lectores de pantalla
41
- */
42
- ariaLabel?: string;
43
- }
44
-
45
- /**
46
- * Props del componente NavigationBar
47
- */
48
- export interface NavigationBarProps {
49
- /**
50
- * Lista de ítems del navigation bar (máximo 5 ítems recomendado)
51
- */
52
- items: NavigationBarItem[];
53
-
54
- /**
55
- * ID del ítem actualmente activo
56
- */
57
- activeItemId?: string;
58
-
59
- /**
60
- * Función que se ejecuta cuando se hace click en un ítem
61
- */
62
- onItemClick?: (id: string) => void;
63
-
64
- /**
65
- * Clases CSS adicionales para el contenedor
66
- */
67
- className?: string;
68
-
69
- /**
70
- * Etiqueta accesible para el navigation bar
71
- * @default 'Navigation Bar'
72
- */
73
- ariaLabel?: string;
74
- }
1
+ import type { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Interfaz para un ítem individual del Navigation Bar
5
+ */
6
+ export interface NavigationBarItem {
7
+ /**
8
+ * Identificador único del ítem
9
+ */
10
+ id: string;
11
+
12
+ /**
13
+ * Icono del ítem (componente React)
14
+ */
15
+ icon: ReactNode;
16
+
17
+ /**
18
+ * Label del ítem (texto debajo del icono)
19
+ */
20
+ label: string;
21
+
22
+ /**
23
+ * Si el ítem está activo
24
+ * @default false
25
+ */
26
+ active?: boolean;
27
+
28
+ /**
29
+ * Si el ítem está deshabilitado
30
+ * @default false
31
+ */
32
+ disabled?: boolean;
33
+
34
+ /**
35
+ * Función onClick del ítem
36
+ */
37
+ onClick?: (id: string) => void;
38
+
39
+ /**
40
+ * Etiqueta accesible para lectores de pantalla
41
+ */
42
+ ariaLabel?: string;
43
+ }
44
+
45
+ /**
46
+ * Props del componente NavigationBar
47
+ */
48
+ export interface NavigationBarProps {
49
+ /**
50
+ * Lista de ítems del navigation bar (máximo 5 ítems recomendado)
51
+ */
52
+ items: NavigationBarItem[];
53
+
54
+ /**
55
+ * ID del ítem actualmente activo
56
+ */
57
+ activeItemId?: string;
58
+
59
+ /**
60
+ * Función que se ejecuta cuando se hace click en un ítem
61
+ */
62
+ onItemClick?: (id: string) => void;
63
+
64
+ /**
65
+ * Clases CSS adicionales para el contenedor
66
+ */
67
+ className?: string;
68
+
69
+ /**
70
+ * Etiqueta accesible para el navigation bar
71
+ * @default 'Navigation Bar'
72
+ */
73
+ ariaLabel?: string;
74
+ }