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
@@ -0,0 +1,378 @@
1
+ import React, { useState } from 'react';
2
+ import type { NavigationRailTypesProps, NavigationRailItem } from './NavigationRailTypes.types';
3
+ import { ChevronRightIcon, ChevronLeftIcon, ClockIcon, MagnifyingGlassIcon } from './icons';
4
+ import { Button } from '../Button/Button';
5
+ import { Divider } from '../Divider/Divider';
6
+ import { DropdownItemCollapsible } from '../DropdownItemCollapsible/DropdownItemCollapsible';
7
+
8
+ /**
9
+ * Componente NavigationRailTypes del sistema de diseño Siesa
10
+ *
11
+ * Barra de navegación lateral que permite dos modos visuales:
12
+ * - **Collapsed (Colapsado)**: 80px width, solo iconos con botón de búsqueda
13
+ * - **Expanded (Expandido)**: 215px width, con labels y búsqueda integrada
14
+ *
15
+ * **Características:**
16
+ * - Dos modos: collapsed e expanded (toggle con botón "Colapsar")
17
+ * - Soporta items con badges de notificación
18
+ * - Items colapsables para agrupar navegación relacionada
19
+ * - Botón "Recientes" en footer
20
+ * - Búsqueda integrada (solo en modo expanded)
21
+ * - Dark mode completo
22
+ * - Focus rings adaptativos
23
+ *
24
+ * **Especificaciones de Figma:**
25
+ * - Collapsed: 80px width, items con height 44px + gap 12px
26
+ * - Expanded: 215px width, items reutilizan DropdownItemCollapsible
27
+ * - Icono search: 16x16px, azul (#0e79fd)
28
+ * - Borde derecho: 1px solid #e4e4e7 (collapsed)
29
+ * - Borde izquierdo: 1px solid #e4e4e7 (expanded)
30
+ * - Height total: 900px (scroll si necesario)
31
+ *
32
+ * **Estructura:**
33
+ * 1. Header (Search en expanded) - altura variable
34
+ * 2. Menu & Destinations - flex 1 con items scrollables
35
+ * 3. Footer - Actions con divider y botones
36
+ *
37
+ * **Estados de Items:**
38
+ * - `default`: Text color content-primary
39
+ * - `hover`: Fondo hover-overlay, icon color content-custom-primary
40
+ * - `active`: Fondo custom-primary, text color custom-primary
41
+ * - `disabled`: Opacity 50%, sin interacción
42
+ *
43
+ * **Colores (Light Mode):**
44
+ * - Background: background-primary (#ffffff)
45
+ * - Borders: border-primary (#e4e4e7)
46
+ * - Text: content-primary (#18181b)
47
+ * - Icons: content-secondary (#a1a1aa)
48
+ * - Icon hover: content-custom-primary (#0e79fd)
49
+ * - Divider: border-primary (#e4e4e7)
50
+ * - Search input: bg-primary, border-primary, placeholder: content-tertiary
51
+ *
52
+ * **Colores (Dark Mode):**
53
+ * - Background: background-primary/dark (#09090b)
54
+ * - Borders: border-primary/dark (#3f3f46)
55
+ * - Text: content-primary/dark (#fafafa)
56
+ * - Icons: content-secondary/dark (#a1a1aa)
57
+ * - Icon hover: content-custom-primary/dark (#bfe2fe)
58
+ * - Divider: border-primary/dark (#3f3f46)
59
+ *
60
+ * **Tipografía:**
61
+ * - Items labels: Paragraph/Small (14px, Regular, line-height 20px)
62
+ * - Heading: Paragraph/Tiny (12px, Regular, line-height 16px) - si aplica
63
+ * - Button labels: Label Small (14px, Bold)
64
+ *
65
+ * @see docs/colors.md - Sistema de colores
66
+ * @see docs/typography.md - Sistema tipográfico
67
+ * @see docs/spacing.md - Sistema de espaciado (gap-3, px-4, py-2, etc)
68
+ * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-36219
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * const navItems: NavigationRailItem[] = [
73
+ * {
74
+ * id: 'home',
75
+ * label: 'Home',
76
+ * icon: <HomeIcon />,
77
+ * active: true,
78
+ * onClick: () => navigate('/home'),
79
+ * },
80
+ * {
81
+ * id: 'users',
82
+ * label: 'Users',
83
+ * icon: <UsersIcon />,
84
+ * badge: true,
85
+ * onClick: () => navigate('/users'),
86
+ * },
87
+ * ];
88
+ *
89
+ * const [isCollapsed, setIsCollapsed] = useState(true);
90
+ *
91
+ * <NavigationRailTypes
92
+ * collapsed={isCollapsed}
93
+ * items={navItems}
94
+ * showRecentButton={true}
95
+ * onCollapsedChange={setIsCollapsed}
96
+ * onItemClick={(index, item) => console.log('Selected:', item.id)}
97
+ * />
98
+ * ```
99
+ *
100
+ * @see NavigationRailTypes.types.ts - Props e interfaces
101
+ */
102
+ export const NavigationRailTypes = React.forwardRef<
103
+ HTMLDivElement,
104
+ NavigationRailTypesProps
105
+ >(
106
+ (
107
+ {
108
+ collapsed = true,
109
+ items = [],
110
+ showRecentButton = true,
111
+ onCollapsedChange,
112
+ onItemClick,
113
+ className,
114
+ },
115
+ ref
116
+ ) => {
117
+ const [searchQuery, setSearchQuery] = useState('');
118
+
119
+ const handleCollapsedToggle = () => {
120
+ onCollapsedChange?.(!collapsed);
121
+ };
122
+
123
+ const handleItemClick = (index: number, item: NavigationRailItem) => {
124
+ item.onClick?.(new Event('click') as any);
125
+ onItemClick?.(index, item);
126
+ };
127
+
128
+ return (
129
+ <div
130
+ ref={ref}
131
+ className={`
132
+ ${collapsed ? 'w-[80px]' : 'w-[215px]'}
133
+ bg-background-primary dark:bg-background-primary
134
+ dark:border-border-primary dark:border-l
135
+ ${collapsed ? 'border-r dark:border-border-primary border-border-primary' : 'border-l dark:border-border-primary border-border-primary'}
136
+ border-solid
137
+ h-[900px]
138
+ flex flex-col
139
+ items-center
140
+ relative
141
+ transition-all duration-300
142
+ ${className || ''}
143
+ `}
144
+ >
145
+ {/* Sección de búsqueda - solo en modo expandido */}
146
+ {!collapsed && (
147
+ <div className="w-full flex flex-col gap-3 px-3 py-3 relative shrink-0">
148
+ <div className="w-full flex flex-col gap-2 items-start relative shrink-0">
149
+ <div className="w-full bg-background-primary dark:bg-background-primary border border-border-primary dark:border-border-primary border-solid flex items-center overflow-hidden px-3 py-1.5 relative rounded-lg shadow-sm shrink-0">
150
+ <div className="flex flex-1 gap-2 items-center min-h-px min-w-px relative shrink-0">
151
+ <MagnifyingGlassIcon className="opacity-50 overflow-clip relative shrink-0 size-4 text-content-secondary dark:text-content-secondary" />
152
+ <input
153
+ type="text"
154
+ placeholder="Buscar módulo"
155
+ value={searchQuery}
156
+ onChange={(e) => setSearchQuery(e.target.value)}
157
+ className="
158
+ flex-1 bg-transparent
159
+ font-['SiesaBT',sans-serif] font-normal text-sm leading-5
160
+ text-content-primary dark:text-content-primary
161
+ placeholder:text-content-tertiary dark:placeholder:text-content-tertiary
162
+ outline-none
163
+ "
164
+ />
165
+ </div>
166
+ </div>
167
+ </div>
168
+ <Divider className="w-full" />
169
+ </div>
170
+ )}
171
+
172
+ {/* Main content - Menu & Destinations */}
173
+ <div
174
+ className={`
175
+ flex-1 flex flex-col
176
+ items-center min-h-px min-w-px
177
+ relative shrink-0
178
+ px-0
179
+ ${collapsed
180
+ ? 'gap-7 py-2 w-[80px]'
181
+ : 'gap-0.5 p-3 w-full bg-background-primary dark:bg-background-primary border-l dark:border-border-primary border-border-primary border-solid'
182
+ }
183
+ `}
184
+ >
185
+ {/* Botón Search en collapsed */}
186
+ {collapsed && (
187
+ <Button
188
+ type="default"
189
+ size="xl"
190
+ iconOnly
191
+ leftIcon={<MagnifyingGlassIcon className="overflow-clip relative shrink-0 size-4 text-primary-inverse-content dark:text-primary-inverse-content" />}
192
+ ariaLabel="Search"
193
+ />
194
+ )}
195
+
196
+ {/* Items container */}
197
+ <div
198
+ className={`
199
+ flex flex-col items-center min-h-px min-w-px
200
+ relative shrink-0
201
+ flex-1
202
+ overflow-y-auto
203
+ ${collapsed
204
+ ? 'gap-3 leading-none w-[80px]'
205
+ : 'gap-0.5 p-3 w-full'
206
+ }
207
+ `}
208
+ >
209
+ {items.length === 0 ? (
210
+ // Items de demo/ejemplo
211
+ <>
212
+ {collapsed &&
213
+ Array.from({ length: 4 }).map((_, idx) => (
214
+ <div
215
+ key={`demo-collapsed-${idx}`}
216
+ className={`
217
+ flex flex-col gap-1 items-center
218
+ px-0.5 py-0 relative
219
+ `}
220
+ >
221
+ <div className="flex flex-col items-center justify-center overflow-clip px-4 py-1 relative rounded-full shrink-0">
222
+ <svg
223
+ className="overflow-clip relative shrink-0 size-4 text-content-secondary dark:text-content-secondary"
224
+ fill="none"
225
+ viewBox="0 0 24 24"
226
+ stroke="currentColor"
227
+ >
228
+ <path
229
+ strokeLinecap="round"
230
+ strokeLinejoin="round"
231
+ strokeWidth={2}
232
+ d="M3 12a9 9 0 1118 0 9 9 0 01-18 0z"
233
+ />
234
+ </svg>
235
+ </div>
236
+ </div>
237
+ ))}
238
+
239
+ {!collapsed &&
240
+ Array.from({ length: 6 }).map((_, idx) => (
241
+ <DropdownItemCollapsible
242
+ key={`demo-expanded-${idx}`}
243
+ label="Item"
244
+ showDivider={false}
245
+ showHeading={false}
246
+ />
247
+ ))}
248
+ </>
249
+ ) : collapsed ? (
250
+ // Items reales - collapsed mode
251
+ <>
252
+ {items.map((item, idx) => (
253
+ <button
254
+ key={item.id}
255
+ onClick={() => handleItemClick(idx, item)}
256
+ disabled={item.disabled}
257
+ className={`
258
+ flex flex-col gap-1 items-center
259
+ px-0.5 py-0
260
+ relative
261
+ rounded-full
262
+ focus:outline-none focus:ring-4 focus:ring-offset-2
263
+ focus:ring-primary-custom-400 focus:ring-offset-background-primary
264
+ dark:focus:ring-offset-background-primary
265
+ hover:opacity-80
266
+ disabled:opacity-50 disabled:pointer-events-none
267
+ transition-all duration-200
268
+ ${item.active ? 'text-background-inverse-custom-primary dark:text-background-inverse-custom-primary' : 'text-content-secondary dark:text-content-secondary'}
269
+ `}
270
+ aria-label={item.ariaLabel || item.label}
271
+ >
272
+ <div className="flex flex-col items-center justify-center overflow-clip px-4 py-1 relative rounded-full shrink-0">
273
+ {item.icon}
274
+ </div>
275
+ {(item.badge || item.badgeCount) && (
276
+ <div
277
+ className={`
278
+ absolute top-0 right-0
279
+ ${item.badgeCount
280
+ ? 'w-5 h-5 text-xs font-bold flex items-center justify-center rounded-full'
281
+ : 'w-2 h-2 rounded-full'
282
+ }
283
+ ${item.badgeColor === 'blue'
284
+ ? 'bg-primary-custom-600 dark:bg-primary-custom-600 text-primary-inverse-content'
285
+ : 'bg-red-600 dark:bg-red-600 text-white'
286
+ }
287
+ `}
288
+ >
289
+ {item.badgeCount ? (item.badgeCount > 99 ? '99+' : item.badgeCount) : ''}
290
+ </div>
291
+ )}
292
+ </button>
293
+ ))}
294
+ </>
295
+ ) : (
296
+ // Items reales - expanded mode
297
+ <>
298
+ {items.map((item, idx) => (
299
+ <div key={item.id} className="w-full">
300
+ {/* TODO: Implementar items expandidos usando DropdownItemCollapsible */}
301
+ <DropdownItemCollapsible
302
+ label={item.label}
303
+ icon={item.icon}
304
+ showDivider={idx < items.length - 1}
305
+ showHeading={false}
306
+ disabled={item.disabled}
307
+ onClick={() => handleItemClick(idx, item)}
308
+ />
309
+ </div>
310
+ ))}
311
+ </>
312
+ )}
313
+ </div>
314
+
315
+ {/* Footer - Actions */}
316
+ <div className={`w-full flex flex-col gap-3 items-center relative shrink-0 ${!collapsed ? 'px-3' : ''}`}>
317
+ <Divider className="w-full" />
318
+
319
+ <div
320
+ className={`
321
+ flex flex-col gap-3 relative shrink-0
322
+ ${collapsed ? 'items-start px-3' : 'w-full items-stretch'}
323
+ `}
324
+ >
325
+ {/* Botón Recientes */}
326
+ {showRecentButton && collapsed && (
327
+ <Button
328
+ type="outline"
329
+ size="base"
330
+ iconOnly
331
+ leftIcon={<ClockIcon className="size-4 text-primary-custom-600 dark:text-primary-custom-600" />}
332
+ ariaLabel="Recientes"
333
+ />
334
+ )}
335
+
336
+ {showRecentButton && !collapsed && (
337
+ <Button
338
+ type="outline"
339
+ size="base"
340
+ leftIcon={<ClockIcon className="size-4 text-primary-custom-600 dark:text-primary-custom-600" />}
341
+ fullWidth
342
+ >
343
+ Recientes
344
+ </Button>
345
+ )}
346
+
347
+ {/* Botón Colapsar/Expandir */}
348
+ {collapsed ? (
349
+ <Button
350
+ type="plain"
351
+ size="base"
352
+ iconOnly
353
+ leftIcon={<ChevronRightIcon className="overflow-clip relative shrink-0 size-4 text-background-inverse-custom-primary dark:text-background-inverse-custom-primary" />}
354
+ onClick={handleCollapsedToggle}
355
+ ariaLabel="Expandir"
356
+ />
357
+ ) : (
358
+ <Button
359
+ type="outline"
360
+ size="base"
361
+ leftIcon={<ChevronLeftIcon className="overflow-clip relative shrink-0 size-4 text-content-custom-primary dark:text-content-custom-primary" />}
362
+ onClick={handleCollapsedToggle}
363
+ fullWidth
364
+ >
365
+ Colapsar
366
+ </Button>
367
+ )}
368
+ </div>
369
+ </div>
370
+ </div>
371
+ </div>
372
+ );
373
+ }
374
+ );
375
+
376
+ NavigationRailTypes.displayName = 'NavigationRailTypes';
377
+
378
+ export default NavigationRailTypes;
@@ -0,0 +1,130 @@
1
+ import type { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Props del componente NavigationRailTypes
5
+ *
6
+ * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-36219
7
+ */
8
+ export interface NavigationRailTypesProps {
9
+ /**
10
+ * Determina si el rail está colapsado (iconos solo) o expandido (con labels)
11
+ * - `true`: Modo colapsado (80px width, solo iconos)
12
+ * - `false`: Modo expandido (215px width, con labels)
13
+ * @default true
14
+ */
15
+ collapsed?: boolean;
16
+
17
+ /**
18
+ * Items de navegación a mostrar en la barra
19
+ * Se muestran en modo comprimido (iconos) o expandido (con descripción)
20
+ */
21
+ items?: NavigationRailItem[];
22
+
23
+ /**
24
+ * Si mostrar el botón "Recientes" en el footer
25
+ * @default true
26
+ */
27
+ showRecentButton?: boolean;
28
+
29
+ /**
30
+ * Callback cuando el estado collapsed cambia
31
+ * Útil para sincronizar con estado global
32
+ */
33
+ onCollapsedChange?: (collapsed: boolean) => void;
34
+
35
+ /**
36
+ * Callback cuando se clickea un item
37
+ * @param index - índice del item clickeado
38
+ * @param item - datos del item
39
+ */
40
+ onItemClick?: (index: number, item: NavigationRailItem) => void;
41
+
42
+ /**
43
+ * Classes CSS adicionales
44
+ */
45
+ className?: string;
46
+ }
47
+
48
+ /**
49
+ * Props para cada item de navegación en el rail
50
+ */
51
+ export interface NavigationRailItem {
52
+ /**
53
+ * Identificador único del item
54
+ */
55
+ id: string;
56
+
57
+ /**
58
+ * Etiqueta del item (visible en modo expandido)
59
+ */
60
+ label: string;
61
+
62
+ /**
63
+ * Icono a mostrar (16x16px recomendado)
64
+ */
65
+ icon: ReactNode;
66
+
67
+ /**
68
+ * Si el item está activo/seleccionado
69
+ * @default false
70
+ */
71
+ active?: boolean;
72
+
73
+ /**
74
+ * Si el item está deshabilitado
75
+ * @default false
76
+ */
77
+ disabled?: boolean;
78
+
79
+ /**
80
+ * Callback cuando se hace click en el item
81
+ */
82
+ onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
83
+
84
+ /**
85
+ * URL para navigation (si se usa como link)
86
+ */
87
+ href?: string;
88
+
89
+ /**
90
+ * Atributos ARIA para accesibilidad
91
+ */
92
+ ariaLabel?: string;
93
+
94
+ /**
95
+ * Badge de notificación (dot rojo pequeño)
96
+ */
97
+ badge?: boolean;
98
+
99
+ /**
100
+ * Contador de notificaciones (99+ para >99)
101
+ */
102
+ badgeCount?: number;
103
+
104
+ /**
105
+ * Color del badge
106
+ * @default 'red'
107
+ */
108
+ badgeColor?: 'red' | 'blue' | 'green' | 'yellow' | 'orange';
109
+ }
110
+
111
+ /**
112
+ * Props para el item colapsable (reutiliza DropdownItemCollapsible)
113
+ * Solo se usa en modo expandido
114
+ */
115
+ export interface NavigationRailCollapsibleItem extends NavigationRailItem {
116
+ /**
117
+ * Items anidados (solo en modo expandido)
118
+ */
119
+ children?: NavigationRailItem[];
120
+
121
+ /**
122
+ * Si el item está expandido inicialmente
123
+ */
124
+ defaultOpen?: boolean;
125
+
126
+ /**
127
+ * Si el item es colapsable
128
+ */
129
+ isCollapsible?: boolean;
130
+ }