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,386 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { DropdownItemHeading } from './DropdownItemHeading';
3
+
4
+ /**
5
+ * El componente DropdownItemHeading es un encabezado especializado para menús dropdown.
6
+ * Muestra un icono, un label principal, descripción opcional y una acción opcional.
7
+ *
8
+ * Casos de uso:
9
+ * - Encabezados de secciones en dropdowns
10
+ * - Información de usuario con opciones de acción
11
+ * - Configuraciones rápidas en menús
12
+ *
13
+ * **Características:**
14
+ * - Icono opcional (16x16px) - especifica el nombre del icono como string
15
+ * - Label principal (14px Bold)
16
+ * - Descripción opcional (12px Regular)
17
+ * - Acción opcional en la derecha (10px Regular)
18
+ * - Soporte completo para dark mode
19
+ * - Focus rings adaptativos
20
+ */
21
+ const meta: Meta<typeof DropdownItemHeading> = {
22
+ title: 'Components/DropdownItemHeading',
23
+ component: DropdownItemHeading,
24
+ parameters: {
25
+ layout: 'centered',
26
+ docs: {
27
+ description: {
28
+ component:
29
+ 'Encabezado para menús dropdown con icono, label, descripción y acción. Implementa pixel-perfect según Figma node 6135:32539 con soporte completo para dark mode.',
30
+ },
31
+ },
32
+ },
33
+ tags: ['autodocs'],
34
+ argTypes: {
35
+ label: {
36
+ control: 'text',
37
+ description: 'Texto del label principal (Label/Small - 14px Bold)',
38
+ },
39
+ description: {
40
+ control: 'text',
41
+ description: 'Texto de descripción secundaria (Paragraph/Tiny - 12px Regular)',
42
+ },
43
+ showDescription: {
44
+ control: 'boolean',
45
+ description: 'Si se debe mostrar la descripción',
46
+ },
47
+ iconName: {
48
+ control: 'select',
49
+ options: ['cog-6-tooth', 'check', 'x', 'chevron-down', null],
50
+ description: 'Nombre del icono a mostrar (nombre de heroicons como string)',
51
+ },
52
+ showIcon: {
53
+ control: 'boolean',
54
+ description: 'Si se debe mostrar el icono',
55
+ },
56
+ showAction: {
57
+ control: 'boolean',
58
+ description: 'Si se debe mostrar la acción',
59
+ },
60
+ actionLabel: {
61
+ control: 'text',
62
+ description: 'Texto de la acción (Paragraph/XXSmall - 10px Regular)',
63
+ },
64
+ onActionClick: {
65
+ action: 'onActionClick',
66
+ description: 'Callback ejecutado al hacer click en la acción',
67
+ },
68
+ className: {
69
+ control: 'text',
70
+ description: 'Clases CSS adicionales',
71
+ },
72
+ },
73
+ };
74
+
75
+ export default meta;
76
+
77
+ type Story = StoryObj<typeof meta>;
78
+
79
+ /**
80
+ * Ejemplo por defecto con todos los elementos (icono cog-6-tooth)
81
+ */
82
+ export const Default: Story = {
83
+ args: {
84
+ label: 'Label',
85
+ description: 'Description',
86
+ showDescription: true,
87
+ iconName: 'cog-6-tooth',
88
+ showIcon: true,
89
+ actionLabel: 'Clear',
90
+ showAction: true,
91
+ },
92
+ };
93
+
94
+ /**
95
+ * Con icono y label, sin descripción ni acción
96
+ */
97
+ export const LabelOnly: Story = {
98
+ args: {
99
+ label: 'Quick Actions',
100
+ showDescription: false,
101
+ iconName: 'cog-6-tooth',
102
+ showIcon: true,
103
+ showAction: false,
104
+ },
105
+ };
106
+
107
+ /**
108
+ * Con label y descripción, sin icono ni acción
109
+ */
110
+ export const WithDescription: Story = {
111
+ args: {
112
+ label: 'Settings',
113
+ description: 'Configure your preferences',
114
+ showDescription: true,
115
+ iconName: null,
116
+ showIcon: false,
117
+ showAction: false,
118
+ },
119
+ };
120
+
121
+ /**
122
+ * Solo label y descripción con icono (sin acción)
123
+ */
124
+ export const WithIconAndDescription: Story = {
125
+ args: {
126
+ label: 'My Account',
127
+ description: 'user@example.com',
128
+ showDescription: true,
129
+ iconName: 'cog-6-tooth',
130
+ showIcon: true,
131
+ showAction: false,
132
+ },
133
+ };
134
+
135
+ /**
136
+ * Con todos los elementos (completo)
137
+ */
138
+ export const Complete: Story = {
139
+ args: {
140
+ label: 'My Account',
141
+ description: 'user@example.com',
142
+ showDescription: true,
143
+ iconName: 'cog-6-tooth',
144
+ showIcon: true,
145
+ actionLabel: 'Clear',
146
+ showAction: true,
147
+ onActionClick: (e) => {
148
+ console.log('Action clicked!', e);
149
+ alert('Clear action triggered!');
150
+ },
151
+ },
152
+ };
153
+
154
+ /**
155
+ * Variante con label largo
156
+ */
157
+ export const LongLabel: Story = {
158
+ args: {
159
+ label: 'Very Long Label That Might Overflow',
160
+ description: 'This is a description for the long label',
161
+ showDescription: true,
162
+ iconName: 'cog-6-tooth',
163
+ showIcon: true,
164
+ actionLabel: 'Clear',
165
+ showAction: true,
166
+ },
167
+ };
168
+
169
+ /**
170
+ * Variante con descripción largo
171
+ */
172
+ export const LongDescription: Story = {
173
+ args: {
174
+ label: 'Settings',
175
+ description:
176
+ 'Configure your preferences and settings for the application. This is a very long description that demonstrates text wrapping behavior.',
177
+ showDescription: true,
178
+ iconName: 'cog-6-tooth',
179
+ showIcon: true,
180
+ actionLabel: 'Reset',
181
+ showAction: true,
182
+ },
183
+ };
184
+
185
+ /**
186
+ * Sin mostrar icono (showIcon = false)
187
+ */
188
+ export const NoIcon: Story = {
189
+ args: {
190
+ label: 'Menu Item',
191
+ description: 'Detailed description here',
192
+ showDescription: true,
193
+ iconName: 'cog-6-tooth',
194
+ showIcon: false,
195
+ actionLabel: 'Action',
196
+ showAction: true,
197
+ },
198
+ };
199
+
200
+ /**
201
+ * Sin acción (solo visualización)
202
+ */
203
+ export const NoAction: Story = {
204
+ args: {
205
+ label: 'Profile',
206
+ description: 'user.profile@example.com',
207
+ showDescription: true,
208
+ iconName: 'cog-6-tooth',
209
+ showIcon: true,
210
+ showAction: false,
211
+ },
212
+ };
213
+
214
+ /**
215
+ * Minimal (solo label)
216
+ */
217
+ export const Minimal: Story = {
218
+ args: {
219
+ label: 'Menu',
220
+ showDescription: false,
221
+ iconName: 'cog-6-tooth',
222
+ showIcon: false,
223
+ showAction: false,
224
+ },
225
+ };
226
+
227
+ /**
228
+ * Con icono check
229
+ */
230
+ export const WithCheckIcon: Story = {
231
+ args: {
232
+ label: 'Completed',
233
+ description: 'Task finished successfully',
234
+ showDescription: true,
235
+ iconName: 'check',
236
+ showIcon: true,
237
+ actionLabel: 'Dismiss',
238
+ showAction: true,
239
+ },
240
+ };
241
+
242
+ /**
243
+ * Con icono x
244
+ */
245
+ export const WithXIcon: Story = {
246
+ args: {
247
+ label: 'Close',
248
+ description: 'Click to close',
249
+ showDescription: true,
250
+ iconName: 'x',
251
+ showIcon: true,
252
+ actionLabel: 'Undo',
253
+ showAction: true,
254
+ },
255
+ };
256
+
257
+ /**
258
+ * Con icono chevron-down
259
+ */
260
+ export const WithChevronIcon: Story = {
261
+ args: {
262
+ label: 'Expand',
263
+ description: 'Show more options',
264
+ showDescription: true,
265
+ iconName: 'chevron-down',
266
+ showIcon: true,
267
+ actionLabel: 'Collapse',
268
+ showAction: true,
269
+ },
270
+ };
271
+
272
+ /**
273
+ * Sin icono (iconName = null)
274
+ */
275
+ export const NoIconType: Story = {
276
+ args: {
277
+ label: 'Menu Item',
278
+ description: 'Without icon',
279
+ showDescription: true,
280
+ iconName: null,
281
+ showIcon: true,
282
+ actionLabel: 'Action',
283
+ showAction: true,
284
+ },
285
+ };
286
+
287
+ /**
288
+ * Estado disabled (visual - el componente no controla esto)
289
+ * En un dropdown, la deshabilitación se maneja a nivel del parent
290
+ */
291
+ export const DisabledState: Story = {
292
+ args: {
293
+ label: 'Disabled Item',
294
+ description: 'This item is not available',
295
+ showDescription: true,
296
+ iconName: 'cog-6-tooth',
297
+ showIcon: true,
298
+ actionLabel: 'N/A',
299
+ showAction: true,
300
+ className: 'opacity-50 pointer-events-none',
301
+ },
302
+ };
303
+
304
+ /**
305
+ * En contexto de dropdown (múltiples items)
306
+ */
307
+ export const InDropdownContext: Story = {
308
+ render: () => (
309
+ <div className="w-full max-w-sm border border-border-primary rounded-lg shadow-lg p-2 bg-bg-primary dark:bg-dark-bg-primary">
310
+ <DropdownItemHeading
311
+ label="My Account"
312
+ description="user@example.com"
313
+ showDescription={true}
314
+ iconName="cog-6-tooth"
315
+ showIcon={true}
316
+ actionLabel="Clear"
317
+ showAction={true}
318
+ />
319
+ <div className="h-px bg-border-primary dark:bg-dark-border-primary my-2" />
320
+ <div className="px-4 py-2 text-content-secondary dark:text-dark-content-secondary text-sm">
321
+ Other items would go here...
322
+ </div>
323
+ </div>
324
+ ),
325
+ };
326
+
327
+ /**
328
+ * Demostración de dark mode
329
+ */
330
+ export const DarkModeShowcase: Story = {
331
+ decorators: [
332
+ (Story) => (
333
+ <div className="dark">
334
+ <div className="bg-dark-bg-primary p-8 rounded-lg">
335
+ <Story />
336
+ </div>
337
+ </div>
338
+ ),
339
+ ],
340
+ args: {
341
+ label: 'Dark Mode Label',
342
+ description: 'Dark mode description text',
343
+ showDescription: true,
344
+ iconName: 'cog-6-tooth',
345
+ showIcon: true,
346
+ actionLabel: 'Clear',
347
+ showAction: true,
348
+ },
349
+ };
350
+
351
+ /**
352
+ * Comparación lado a lado (Light vs Dark)
353
+ */
354
+ export const LightVsDark: Story = {
355
+ render: () => (
356
+ <div className="flex gap-8 p-8">
357
+ {/* Light Mode */}
358
+ <div className="bg-bg-primary p-4 rounded-lg border border-border-primary">
359
+ <p className="text-content-secondary text-sm mb-4 font-semibold">Light Mode</p>
360
+ <DropdownItemHeading
361
+ label="My Account"
362
+ description="user@example.com"
363
+ showDescription={true}
364
+ iconName="cog-6-tooth"
365
+ showIcon={true}
366
+ actionLabel="Clear"
367
+ showAction={true}
368
+ />
369
+ </div>
370
+
371
+ {/* Dark Mode */}
372
+ <div className="dark bg-dark-bg-primary p-4 rounded-lg border border-dark-border-primary">
373
+ <p className="text-dark-content-secondary text-sm mb-4 font-semibold">Dark Mode</p>
374
+ <DropdownItemHeading
375
+ label="My Account"
376
+ description="user@example.com"
377
+ showDescription={true}
378
+ iconName="cog-6-tooth"
379
+ showIcon={true}
380
+ actionLabel="Clear"
381
+ showAction={true}
382
+ />
383
+ </div>
384
+ </div>
385
+ ),
386
+ };
@@ -0,0 +1,216 @@
1
+ import React from 'react';
2
+ import type { DropdownItemHeadingProps } from './DropdownItemHeading.types';
3
+ import { getIcon } from './icons';
4
+
5
+ /**
6
+ * Componente DropdownItemHeading del sistema de diseño Siesa
7
+ *
8
+ * Implementación pixel-perfect basada en Figma (node 6135:32539)
9
+ * para encabezados en menús dropdown con icono, label, descripción y acción.
10
+ *
11
+ * **Estructura:**
12
+ * - Icon Wrapper: Opcional, icono de 16x16px
13
+ * - Content Wrapper: Label + Description (flexible)
14
+ * - Action Wrapper: Opcional, texto de acción en la derecha
15
+ *
16
+ * **Dimensiones:**
17
+ * - Altura flexible (contenido vertical)
18
+ * - Width mínimo: 224px
19
+ * - Padding: 8px vertical, 16px horizontal
20
+ * - Border radius: 8px (rounded-lg)
21
+ *
22
+ * **Tipografía:**
23
+ * - Label: Label/Small (14px Bold) - content-primary
24
+ * - Description: Paragraph/Tiny (12px Regular) - content-secondary
25
+ * - Action: Paragraph/XXSmall (10px Regular) - content-secondary
26
+ *
27
+ * **Dark Mode:**
28
+ * - Label: #18181b (light) → #bfe2fe (dark)
29
+ * - Description: #a1a1aa (light) → #93d1fd (dark)
30
+ * - Icon: #0e79fd (light) → #bfe2fe (dark)
31
+ * - Action: #a1a1aa (light) → #93d1fd (dark)
32
+ *
33
+ * **Estados:**
34
+ * - Default: Sin hover/focus
35
+ * - Hover: Overlay sutil (managed by parent Dropdown)
36
+ * - Disabled: Opacity 50% (managed by parent Dropdown)
37
+ *
38
+ * **Especificaciones de Figma:**
39
+ * - Gap entre elementos: 12px
40
+ * - Gap entre label y description: 2px
41
+ * - Rounded: 8px (rounded-lg)
42
+ *
43
+ * @see docs/colors.md - Sistema de colores
44
+ * @see docs/typography.md - Sistema tipográfico (Label/Small, Paragraph/Tiny)
45
+ * @see docs/spacing.md - Sistema de espaciado
46
+ * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-32539 - Diseño Figma
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * // Con icono, label, descripción y acción
51
+ * <DropdownItemHeading
52
+ * label="Settings"
53
+ * description="Configure your preferences"
54
+ * showDescription={true}
55
+ * icon={<SettingsIcon />}
56
+ * showIcon={true}
57
+ * actionLabel="Clear"
58
+ * showAction={true}
59
+ * onActionClick={handleClear}
60
+ * />
61
+ *
62
+ * // Solo label y descripción (sin icono ni acción)
63
+ * <DropdownItemHeading
64
+ * label="My Account"
65
+ * description="user@example.com"
66
+ * showDescription={true}
67
+ * />
68
+ *
69
+ * // Solo label
70
+ * <DropdownItemHeading
71
+ * label="Quick Actions"
72
+ * showDescription={false}
73
+ * />
74
+ * ```
75
+ */
76
+ export const DropdownItemHeading: React.FC<DropdownItemHeadingProps> = ({
77
+ label = 'Label',
78
+ description,
79
+ showDescription = true,
80
+ iconName = 'cog-6-tooth',
81
+ showIcon = true,
82
+ actionLabel,
83
+ showAction = false,
84
+ onActionClick,
85
+ className = '',
86
+ ...rest
87
+ }) => {
88
+
89
+ return (
90
+ <div
91
+ className={`
92
+ flex
93
+ gap-3
94
+ items-center
95
+ px-4
96
+ py-2
97
+ rounded-lg
98
+ w-56
99
+ ${className}
100
+ `}
101
+ data-testid="dropdown-item-heading"
102
+ {...rest}
103
+ >
104
+ {/* ===== ICON WRAPPER ===== */}
105
+ {showIcon && iconName && (
106
+ <div
107
+ className="
108
+ flex
109
+ items-center
110
+ justify-center
111
+ shrink-0
112
+ w-4
113
+ h-4
114
+ "
115
+ data-testid="icon-wrapper"
116
+ >
117
+ <div className="text-primary-custom-600 dark:text-dark-content-inverse">
118
+ {getIcon(iconName, 'w-4 h-4')}
119
+ </div>
120
+ </div>
121
+ )}
122
+
123
+ {/* ===== CONTENT WRAPPER ===== */}
124
+ <div
125
+ className="
126
+ flex
127
+ flex-1
128
+ flex-col
129
+ gap-0.5
130
+ items-start
131
+ justify-center
132
+ min-w-0
133
+ "
134
+ data-testid="content-wrapper"
135
+ >
136
+ {/* Label */}
137
+ <p
138
+ className="
139
+ font-bold
140
+ text-sm
141
+ leading-5
142
+ text-content-primary
143
+ dark:text-dark-content-inverse
144
+ whitespace-nowrap
145
+ overflow-hidden
146
+ text-ellipsis
147
+ "
148
+ data-testid="label"
149
+ >
150
+ {label}
151
+ </p>
152
+
153
+ {/* Description */}
154
+ {showDescription && description && (
155
+ <p
156
+ className="
157
+ font-normal
158
+ text-xs
159
+ leading-4
160
+ text-content-secondary
161
+ dark:text-dark-border-inverse
162
+ w-full
163
+ whitespace-pre-wrap
164
+ overflow-hidden
165
+ text-ellipsis
166
+ "
167
+ data-testid="description"
168
+ >
169
+ {description}
170
+ </p>
171
+ )}
172
+ </div>
173
+
174
+ {/* ===== ACTION WRAPPER ===== */}
175
+ {showAction && actionLabel && (
176
+ <div
177
+ className="
178
+ flex
179
+ items-center
180
+ justify-center
181
+ shrink-0
182
+ cursor-pointer
183
+ hover:opacity-80
184
+ transition-opacity
185
+ duration-150
186
+ "
187
+ data-testid="action-wrapper"
188
+ onClick={onActionClick}
189
+ role="button"
190
+ tabIndex={0}
191
+ onKeyDown={(e) => {
192
+ if (e.key === 'Enter' || e.key === ' ') {
193
+ onActionClick?.(e as any);
194
+ }
195
+ }}
196
+ >
197
+ <p
198
+ className="
199
+ font-normal
200
+ text-xs
201
+ leading-3
202
+ text-content-secondary
203
+ dark:text-dark-border-inverse
204
+ whitespace-nowrap
205
+ "
206
+ data-testid="action-label"
207
+ >
208
+ {actionLabel}
209
+ </p>
210
+ </div>
211
+ )}
212
+ </div>
213
+ );
214
+ };
215
+
216
+ DropdownItemHeading.displayName = 'DropdownItemHeading';
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Props del componente DropdownItemHeading
3
+ *
4
+ * Especificaciones de Figma: node 6135:32539
5
+ * @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-32539&m=dev
6
+ */
7
+ export interface DropdownItemHeadingProps {
8
+ /**
9
+ * Texto del label principal del heading
10
+ * Tipografía: Label/Small (14px, Bold)
11
+ * Color: content-primary (#18181b light, #bfe2fe dark)
12
+ *
13
+ * @default 'Label'
14
+ */
15
+ label?: string;
16
+
17
+ /**
18
+ * Texto de descripción secundaria bajo el label
19
+ * Tipografía: Paragraph/Tiny (12px, Regular)
20
+ * Color: content-secondary (#a1a1aa light, #93d1fd dark)
21
+ *
22
+ * @default undefined
23
+ */
24
+ description?: string;
25
+
26
+ /**
27
+ * Si se debe mostrar la descripción
28
+ * Cuando es false, solo muestra el label
29
+ *
30
+ * @default true
31
+ */
32
+ showDescription?: boolean;
33
+
34
+ /**
35
+ * Nombre del icono a mostrar (string)
36
+ * Iconos disponibles:
37
+ * - `'cog-6-tooth'`: Icono de engranaje (por defecto)
38
+ * - `'check'`: Icono de check
39
+ * - `'x'`: Icono de cerrar
40
+ * - `'chevron-down'`: Icono de chevron hacia abajo
41
+ *
42
+ * Tamaño: 16x16px
43
+ * Color: primary-custom-600 (#0e79fd light, #bfe2fe dark)
44
+ *
45
+ * Si no se proporciona, se usa 'cog-6-tooth' por defecto
46
+ *
47
+ * @default 'cog-6-tooth'
48
+ * @see icons.tsx para ver los iconos disponibles
49
+ */
50
+ iconName?: string | null;
51
+
52
+ /**
53
+ * Si se debe mostrar el icono en la izquierda
54
+ *
55
+ * @default true
56
+ */
57
+ showIcon?: boolean;
58
+
59
+ /**
60
+ * Texto de acción a mostrar en la derecha
61
+ * Tipografía: Paragraph/XXSmall (10px, Regular)
62
+ * Color: content-secondary (#a1a1aa light, #93d1fd dark)
63
+ *
64
+ * Comúnmente usado para "Clear", "Reset", etc.
65
+ *
66
+ * @default undefined
67
+ */
68
+ actionLabel?: string;
69
+
70
+ /**
71
+ * Si se debe mostrar el action label en la derecha
72
+ *
73
+ * @default false
74
+ */
75
+ showAction?: boolean;
76
+
77
+ /**
78
+ * Callback ejecutado al hacer click en el action label
79
+ */
80
+ onActionClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
81
+
82
+ /**
83
+ * Clases CSS adicionales para personalización
84
+ *
85
+ * @default ''
86
+ */
87
+ className?: string;
88
+
89
+ /**
90
+ * Atributos HTML adicionales
91
+ */
92
+ [key: string]: unknown;
93
+ }