siesa-ui-kit 1.0.3 → 1.0.5

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 (459) hide show
  1. package/README.md +28 -54
  2. package/claude/agents/siesa-ui-kit-specialist.md +2401 -0
  3. package/claude/prompts/component-template.md +121 -0
  4. package/claude/settings.local.json +61 -0
  5. package/docs/border-radius.md +1261 -0
  6. package/docs/colors.md +832 -0
  7. package/docs/dark-mode-guide.md +1426 -0
  8. package/docs/filters.md +1243 -0
  9. package/docs/icons.md +1283 -0
  10. package/docs/shadows.md +1377 -0
  11. package/docs/spacing.md +1684 -0
  12. package/docs/typography.md +1268 -0
  13. package/package.json +14 -34
  14. package/postcss.config.cjs +6 -0
  15. package/public/,Business Logo.png +0 -0
  16. package/public/.Siesa Logo.png +0 -0
  17. package/public/bg_siesa.png +0 -0
  18. package/public/siesa_logo_mobile.png +0 -0
  19. package/public/vite.svg +1 -0
  20. package/src/App.css +42 -0
  21. package/src/App.tsx +8 -0
  22. package/src/ButtonTest.tsx +147 -0
  23. package/src/assets/fonts/README.md +261 -0
  24. package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
  25. package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
  26. package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
  27. package/src/assets/react.svg +1 -0
  28. package/src/components/Alert/Alert.stories.tsx +332 -0
  29. package/src/components/Alert/Alert.tsx +106 -0
  30. package/src/components/Alert/Alert.types.ts +54 -0
  31. package/src/components/Avatar/Avatar.stories.tsx +494 -0
  32. package/src/components/Avatar/Avatar.tsx +143 -0
  33. package/src/components/Avatar/Avatar.types.ts +53 -0
  34. package/src/components/Badge/Badge.stories.tsx +339 -0
  35. package/src/components/Badge/Badge.tsx +278 -0
  36. package/src/components/Badge/Badge.types.ts +58 -0
  37. package/src/components/Button/Button.stories.tsx +950 -0
  38. package/src/components/Button/Button.tsx +337 -0
  39. package/src/components/Button/Button.types.ts +180 -0
  40. package/src/components/Button/icons.tsx +87 -0
  41. package/{dist/components/Button/index.d.ts → src/components/Button/index.ts} +3 -4
  42. package/src/components/Checkbox/Checkbox.stories.tsx +453 -0
  43. package/src/components/Checkbox/Checkbox.tsx +208 -0
  44. package/src/components/Checkbox/Checkbox.types.ts +61 -0
  45. package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -0
  46. package/src/components/DescriptionList/DescriptionList.tsx +96 -0
  47. package/src/components/DescriptionList/DescriptionList.types.ts +29 -0
  48. package/src/components/Divider/Divider.stories.tsx +263 -0
  49. package/src/components/Divider/Divider.tsx +80 -0
  50. package/src/components/Divider/Divider.types.ts +24 -0
  51. package/src/components/Dropdown/Dropdown.stories.tsx +552 -0
  52. package/src/components/Dropdown/Dropdown.tsx +422 -0
  53. package/src/components/Dropdown/Dropdown.types.ts +146 -0
  54. package/src/components/Dropdown/README.md +266 -0
  55. package/src/components/Dropdown/icons.tsx +72 -0
  56. package/{dist/components/Dropdown/index.d.ts → src/components/Dropdown/index.ts} +8 -4
  57. package/src/components/Input/Input.stories.tsx +583 -0
  58. package/src/components/Input/Input.tsx +204 -0
  59. package/src/components/Input/Input.types.ts +80 -0
  60. package/src/components/Input/icons.tsx +145 -0
  61. package/{dist/components/Input/index.d.ts → src/components/Input/index.ts} +2 -3
  62. package/src/components/LoginView/LoginView.stories.tsx +148 -0
  63. package/src/components/LoginView/LoginView.tsx +426 -0
  64. package/src/components/LoginView/LoginView.types.ts +52 -0
  65. package/src/components/LoginView/README.md +396 -0
  66. package/src/components/LoginView/icons.tsx +85 -0
  67. package/{dist/components/LoginView/index.d.ts → src/components/LoginView/index.ts} +3 -4
  68. package/src/components/Navbar/Navbar.stories.tsx +810 -0
  69. package/src/components/Navbar/Navbar.tsx +755 -0
  70. package/src/components/Navbar/Navbar.types.ts +219 -0
  71. package/src/components/Navbar/README.md +279 -0
  72. package/src/components/Navbar/icons.tsx +102 -0
  73. package/src/components/Navbar/index.ts +8 -0
  74. package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -0
  75. package/src/components/NavigationBar/NavigationBar.tsx +246 -0
  76. package/src/components/NavigationBar/NavigationBar.types.ts +74 -0
  77. package/src/components/NavigationBar/README.md +469 -0
  78. package/{dist/components/NavigationBar/index.d.ts → src/components/NavigationBar/index.ts} +2 -3
  79. package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -0
  80. package/src/components/NavigationRail/NavigationRail.tsx +418 -0
  81. package/src/components/NavigationRail/NavigationRail.types.ts +109 -0
  82. package/src/components/NavigationRail/README.md +224 -0
  83. package/{dist/components/NavigationRail/index.d.ts → src/components/NavigationRail/index.ts} +2 -3
  84. package/src/components/Notification/Notification.stories.tsx +513 -0
  85. package/src/components/Notification/Notification.tsx +145 -0
  86. package/src/components/Notification/Notification.types.ts +142 -0
  87. package/src/components/Notification/README.md +409 -0
  88. package/{dist/components/Notification/index.d.ts → src/components/Notification/index.ts} +3 -3
  89. package/src/components/POSConvention/POSConvention.stories.tsx +235 -0
  90. package/src/components/POSConvention/POSConvention.tsx +129 -0
  91. package/{dist/components/POSConvention/POSConvention.types.d.ts → src/components/POSConvention/POSConvention.types.ts} +38 -37
  92. package/src/components/POSConvention/README.md +123 -0
  93. package/src/components/POSConvention/icons.tsx +45 -0
  94. package/{dist/components/POSConvention/index.d.ts → src/components/POSConvention/index.ts} +3 -4
  95. package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -0
  96. package/src/components/POSLocationButton/POSLocationButton.tsx +247 -0
  97. package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -0
  98. package/src/components/POSLocationButton/README.md +253 -0
  99. package/src/components/POSLocationButton/icons.tsx +120 -0
  100. package/src/components/POSLocationButton/index.ts +14 -0
  101. package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -0
  102. package/src/components/POSNumberButton/POSNumberButton.tsx +179 -0
  103. package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -0
  104. package/src/components/POSNumberButton/README.md +321 -0
  105. package/{dist/components/POSNumberButton/index.d.ts → src/components/POSNumberButton/index.ts} +3 -3
  106. package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -0
  107. package/src/components/POSProductButton/POSProductButton.tsx +152 -0
  108. package/src/components/POSProductButton/POSProductButton.types.ts +46 -0
  109. package/src/components/POSProductButton/README.md +269 -0
  110. package/{dist/components/POSProductButton/index.d.ts → src/components/POSProductButton/index.ts} +2 -3
  111. package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -0
  112. package/src/components/POSProductCard/POSProductCard.tsx +208 -0
  113. package/src/components/POSProductCard/POSProductCard.types.ts +76 -0
  114. package/src/components/POSProductCard/README.md +179 -0
  115. package/src/components/POSProductCard/icons.tsx +26 -0
  116. package/{dist/components/POSProductCard/index.d.ts → src/components/POSProductCard/index.ts} +2 -3
  117. package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -0
  118. package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -0
  119. package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -0
  120. package/src/components/POSProductSidebarItems/README.md +198 -0
  121. package/src/components/POSProductSidebarItems/icons.tsx +21 -0
  122. package/{dist/components/POSProductSidebarItems/index.d.ts → src/components/POSProductSidebarItems/index.ts} +3 -4
  123. package/src/components/POSTable/POSTable.stories.tsx +737 -0
  124. package/src/components/POSTable/POSTable.tsx +401 -0
  125. package/src/components/POSTable/POSTable.types.ts +83 -0
  126. package/src/components/POSTable/README.md +286 -0
  127. package/src/components/POSTable/index.ts +7 -0
  128. package/src/components/Pagination/Pagination.stories.tsx +555 -0
  129. package/src/components/Pagination/Pagination.tsx +286 -0
  130. package/src/components/Pagination/Pagination.types.ts +93 -0
  131. package/src/components/Pagination/README.md +298 -0
  132. package/src/components/Pagination/icons.tsx +47 -0
  133. package/{dist/components/Pagination/index.d.ts → src/components/Pagination/index.ts} +3 -4
  134. package/src/components/Quantity/Quantity.stories.tsx +457 -0
  135. package/src/components/Quantity/Quantity.tsx +289 -0
  136. package/src/components/Quantity/Quantity.types.ts +70 -0
  137. package/src/components/Radio/Radio.stories.tsx +523 -0
  138. package/src/components/Radio/Radio.tsx +170 -0
  139. package/src/components/Radio/Radio.types.ts +122 -0
  140. package/src/components/Select/README.md +299 -0
  141. package/src/components/Select/Select.stories.tsx +673 -0
  142. package/src/components/Select/Select.tsx +454 -0
  143. package/src/components/Select/Select.types.ts +148 -0
  144. package/src/components/Select/icons.tsx +50 -0
  145. package/{dist/components/Select/index.d.ts → src/components/Select/index.ts} +3 -4
  146. package/src/components/SignUpView/SignUpView.stories.tsx +129 -0
  147. package/src/components/SignUpView/SignUpView.tsx +503 -0
  148. package/src/components/SignUpView/SignUpView.types.ts +58 -0
  149. package/src/components/SignUpView/icons.tsx +71 -0
  150. package/{dist/components/SignUpView/index.d.ts → src/components/SignUpView/index.ts} +3 -4
  151. package/src/components/Switch/README.md +112 -0
  152. package/src/components/Switch/Switch.stories.tsx +550 -0
  153. package/src/components/Switch/Switch.tsx +246 -0
  154. package/src/components/Switch/Switch.types.ts +67 -0
  155. package/src/components/Table/README.md +369 -0
  156. package/src/components/Table/Table.stories.tsx +805 -0
  157. package/src/components/Table/Table.tsx +688 -0
  158. package/src/components/Table/Table.types.ts +204 -0
  159. package/src/components/Table/index.ts +9 -0
  160. package/src/components/Tabs/README.md +201 -0
  161. package/src/components/Tabs/Tabs.stories.tsx +580 -0
  162. package/src/components/Tabs/Tabs.tsx +356 -0
  163. package/src/components/Tabs/Tabs.types.ts +127 -0
  164. package/src/components/Tabs/icons.tsx +129 -0
  165. package/src/components/Tabs/index.ts +11 -0
  166. package/src/components/Textarea/Textarea.stories.tsx +535 -0
  167. package/src/components/Textarea/Textarea.tsx +188 -0
  168. package/src/components/Textarea/Textarea.types.ts +54 -0
  169. package/src/context/ThemeContext.tsx +99 -0
  170. package/{dist/context/index.d.ts → src/context/index.ts} +1 -2
  171. package/src/index.css +29 -0
  172. package/src/index.ts +39 -0
  173. package/src/main.tsx +10 -0
  174. package/src/views/ProductsView/ProductsView.stories.tsx +344 -0
  175. package/src/views/ProductsView/ProductsView.tsx +480 -0
  176. package/src/views/ProductsView/ProductsView.types.ts +238 -0
  177. package/src/views/ProductsView/README.md +312 -0
  178. package/src/views/ProductsView/icons.tsx +38 -0
  179. package/src/views/ProductsView/index.ts +8 -0
  180. package/src/views/RecoverPasswordView/README.md +269 -0
  181. package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -0
  182. package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -0
  183. package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -0
  184. package/src/views/RecoverPasswordView/icons.tsx +17 -0
  185. package/{dist/views/RecoverPasswordView/index.d.ts → src/views/RecoverPasswordView/index.ts} +2 -3
  186. package/src/views/TableLayoutView/README.md +268 -0
  187. package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -0
  188. package/src/views/TableLayoutView/TableLayoutView.tsx +461 -0
  189. package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -0
  190. package/src/views/TableLayoutView/icons.tsx +113 -0
  191. package/src/views/TableLayoutView/index.ts +6 -0
  192. package/storybook/main.ts +20 -0
  193. package/storybook/preview.tsx +84 -0
  194. package/storybook/vitest.setup.ts +7 -0
  195. package/tailwind.config.js +128 -0
  196. package/dist/ButtonTest.d.ts +0 -6
  197. package/dist/ButtonTest.d.ts.map +0 -1
  198. package/dist/components/Alert/Alert.d.ts +0 -23
  199. package/dist/components/Alert/Alert.d.ts.map +0 -1
  200. package/dist/components/Alert/Alert.types.d.ts +0 -46
  201. package/dist/components/Alert/Alert.types.d.ts.map +0 -1
  202. package/dist/components/Avatar/Avatar.d.ts +0 -41
  203. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  204. package/dist/components/Avatar/Avatar.types.d.ts +0 -46
  205. package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
  206. package/dist/components/Badge/Badge.d.ts +0 -42
  207. package/dist/components/Badge/Badge.d.ts.map +0 -1
  208. package/dist/components/Badge/Badge.types.d.ts +0 -32
  209. package/dist/components/Badge/Badge.types.d.ts.map +0 -1
  210. package/dist/components/Button/Button.d.ts +0 -84
  211. package/dist/components/Button/Button.d.ts.map +0 -1
  212. package/dist/components/Button/Button.types.d.ts +0 -162
  213. package/dist/components/Button/Button.types.d.ts.map +0 -1
  214. package/dist/components/Button/icons.d.ts +0 -26
  215. package/dist/components/Button/icons.d.ts.map +0 -1
  216. package/dist/components/Button/index.d.ts.map +0 -1
  217. package/dist/components/Checkbox/Checkbox.d.ts +0 -31
  218. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  219. package/dist/components/Checkbox/Checkbox.types.d.ts +0 -53
  220. package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
  221. package/dist/components/DescriptionList/DescriptionList.d.ts +0 -38
  222. package/dist/components/DescriptionList/DescriptionList.d.ts.map +0 -1
  223. package/dist/components/DescriptionList/DescriptionList.types.d.ts +0 -27
  224. package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +0 -1
  225. package/dist/components/Divider/Divider.d.ts +0 -33
  226. package/dist/components/Divider/Divider.d.ts.map +0 -1
  227. package/dist/components/Divider/Divider.types.d.ts +0 -22
  228. package/dist/components/Divider/Divider.types.d.ts.map +0 -1
  229. package/dist/components/Dropdown/Dropdown.d.ts +0 -66
  230. package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
  231. package/dist/components/Dropdown/Dropdown.types.d.ts +0 -124
  232. package/dist/components/Dropdown/Dropdown.types.d.ts.map +0 -1
  233. package/dist/components/Dropdown/icons.d.ts +0 -10
  234. package/dist/components/Dropdown/icons.d.ts.map +0 -1
  235. package/dist/components/Dropdown/index.d.ts.map +0 -1
  236. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +0 -101
  237. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +0 -1
  238. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +0 -95
  239. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +0 -1
  240. package/dist/components/DropdownItemCollapsible/icons.d.ts +0 -19
  241. package/dist/components/DropdownItemCollapsible/icons.d.ts.map +0 -1
  242. package/dist/components/DropdownItemCollapsible/index.d.ts +0 -9
  243. package/dist/components/DropdownItemCollapsible/index.d.ts.map +0 -1
  244. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +0 -75
  245. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +0 -1
  246. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +0 -85
  247. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +0 -1
  248. package/dist/components/DropdownItemHeading/icons.d.ts +0 -48
  249. package/dist/components/DropdownItemHeading/icons.d.ts.map +0 -1
  250. package/dist/components/DropdownItemHeading/index.d.ts +0 -4
  251. package/dist/components/DropdownItemHeading/index.d.ts.map +0 -1
  252. package/dist/components/Input/Input.d.ts +0 -40
  253. package/dist/components/Input/Input.d.ts.map +0 -1
  254. package/dist/components/Input/Input.types.d.ts +0 -71
  255. package/dist/components/Input/Input.types.d.ts.map +0 -1
  256. package/dist/components/Input/icons.d.ts +0 -15
  257. package/dist/components/Input/icons.d.ts.map +0 -1
  258. package/dist/components/Input/index.d.ts.map +0 -1
  259. package/dist/components/LoginView/LoginView.d.ts +0 -36
  260. package/dist/components/LoginView/LoginView.d.ts.map +0 -1
  261. package/dist/components/LoginView/LoginView.types.d.ts +0 -46
  262. package/dist/components/LoginView/LoginView.types.d.ts.map +0 -1
  263. package/dist/components/LoginView/icons.d.ts +0 -18
  264. package/dist/components/LoginView/icons.d.ts.map +0 -1
  265. package/dist/components/LoginView/index.d.ts.map +0 -1
  266. package/dist/components/Navbar/Navbar.d.ts +0 -63
  267. package/dist/components/Navbar/Navbar.d.ts.map +0 -1
  268. package/dist/components/Navbar/Navbar.types.d.ts +0 -194
  269. package/dist/components/Navbar/Navbar.types.d.ts.map +0 -1
  270. package/dist/components/Navbar/icons.d.ts +0 -12
  271. package/dist/components/Navbar/icons.d.ts.map +0 -1
  272. package/dist/components/Navbar/index.d.ts +0 -4
  273. package/dist/components/Navbar/index.d.ts.map +0 -1
  274. package/dist/components/NavigationBar/NavigationBar.d.ts +0 -75
  275. package/dist/components/NavigationBar/NavigationBar.d.ts.map +0 -1
  276. package/dist/components/NavigationBar/NavigationBar.types.d.ts +0 -63
  277. package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +0 -1
  278. package/dist/components/NavigationBar/index.d.ts.map +0 -1
  279. package/dist/components/NavigationRail/NavigationRail.d.ts +0 -7
  280. package/dist/components/NavigationRail/NavigationRail.d.ts.map +0 -1
  281. package/dist/components/NavigationRail/NavigationRail.types.d.ts +0 -92
  282. package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +0 -1
  283. package/dist/components/NavigationRail/index.d.ts.map +0 -1
  284. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +0 -90
  285. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +0 -1
  286. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +0 -155
  287. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +0 -1
  288. package/dist/components/NavigationRailItem/index.d.ts +0 -3
  289. package/dist/components/NavigationRailItem/index.d.ts.map +0 -1
  290. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +0 -124
  291. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +0 -1
  292. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +0 -154
  293. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +0 -1
  294. package/dist/components/NavigationRailPanel/index.d.ts +0 -3
  295. package/dist/components/NavigationRailPanel/index.d.ts.map +0 -1
  296. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +0 -99
  297. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +0 -1
  298. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +0 -111
  299. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
  300. package/dist/components/NavigationRailTypes/icons.d.ts +0 -58
  301. package/dist/components/NavigationRailTypes/icons.d.ts.map +0 -1
  302. package/dist/components/NavigationRailTypes/index.d.ts +0 -4
  303. package/dist/components/NavigationRailTypes/index.d.ts.map +0 -1
  304. package/dist/components/Notification/Notification.d.ts +0 -52
  305. package/dist/components/Notification/Notification.d.ts.map +0 -1
  306. package/dist/components/Notification/Notification.types.d.ts +0 -138
  307. package/dist/components/Notification/Notification.types.d.ts.map +0 -1
  308. package/dist/components/Notification/index.d.ts.map +0 -1
  309. package/dist/components/POSConvention/POSConvention.d.ts +0 -55
  310. package/dist/components/POSConvention/POSConvention.d.ts.map +0 -1
  311. package/dist/components/POSConvention/POSConvention.types.d.ts.map +0 -1
  312. package/dist/components/POSConvention/icons.d.ts +0 -21
  313. package/dist/components/POSConvention/icons.d.ts.map +0 -1
  314. package/dist/components/POSConvention/index.d.ts.map +0 -1
  315. package/dist/components/POSLocationButton/POSLocationButton.d.ts +0 -73
  316. package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +0 -1
  317. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +0 -75
  318. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +0 -1
  319. package/dist/components/POSLocationButton/icons.d.ts +0 -37
  320. package/dist/components/POSLocationButton/icons.d.ts.map +0 -1
  321. package/dist/components/POSLocationButton/index.d.ts +0 -4
  322. package/dist/components/POSLocationButton/index.d.ts.map +0 -1
  323. package/dist/components/POSNumberButton/POSNumberButton.d.ts +0 -61
  324. package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +0 -1
  325. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +0 -43
  326. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +0 -1
  327. package/dist/components/POSNumberButton/index.d.ts.map +0 -1
  328. package/dist/components/POSProductButton/POSProductButton.d.ts +0 -59
  329. package/dist/components/POSProductButton/POSProductButton.d.ts.map +0 -1
  330. package/dist/components/POSProductButton/POSProductButton.types.d.ts +0 -40
  331. package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +0 -1
  332. package/dist/components/POSProductButton/index.d.ts.map +0 -1
  333. package/dist/components/POSProductCard/POSProductCard.d.ts +0 -68
  334. package/dist/components/POSProductCard/POSProductCard.d.ts.map +0 -1
  335. package/dist/components/POSProductCard/POSProductCard.types.d.ts +0 -67
  336. package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +0 -1
  337. package/dist/components/POSProductCard/icons.d.ts +0 -10
  338. package/dist/components/POSProductCard/icons.d.ts.map +0 -1
  339. package/dist/components/POSProductCard/index.d.ts.map +0 -1
  340. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +0 -57
  341. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +0 -1
  342. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +0 -85
  343. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +0 -1
  344. package/dist/components/POSProductSidebarItems/icons.d.ts +0 -9
  345. package/dist/components/POSProductSidebarItems/icons.d.ts.map +0 -1
  346. package/dist/components/POSProductSidebarItems/index.d.ts.map +0 -1
  347. package/dist/components/POSTable/POSTable.d.ts +0 -75
  348. package/dist/components/POSTable/POSTable.d.ts.map +0 -1
  349. package/dist/components/POSTable/POSTable.types.d.ts +0 -71
  350. package/dist/components/POSTable/POSTable.types.d.ts.map +0 -1
  351. package/dist/components/POSTable/index.d.ts +0 -3
  352. package/dist/components/POSTable/index.d.ts.map +0 -1
  353. package/dist/components/Pagination/Pagination.d.ts +0 -29
  354. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  355. package/dist/components/Pagination/Pagination.types.d.ts +0 -79
  356. package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
  357. package/dist/components/Pagination/icons.d.ts +0 -18
  358. package/dist/components/Pagination/icons.d.ts.map +0 -1
  359. package/dist/components/Pagination/index.d.ts.map +0 -1
  360. package/dist/components/Quantity/Quantity.d.ts +0 -38
  361. package/dist/components/Quantity/Quantity.d.ts.map +0 -1
  362. package/dist/components/Quantity/Quantity.types.d.ts +0 -59
  363. package/dist/components/Quantity/Quantity.types.d.ts.map +0 -1
  364. package/dist/components/Radio/Radio.d.ts +0 -45
  365. package/dist/components/Radio/Radio.d.ts.map +0 -1
  366. package/dist/components/Radio/Radio.types.d.ts +0 -115
  367. package/dist/components/Radio/Radio.types.d.ts.map +0 -1
  368. package/dist/components/Select/Select.d.ts +0 -37
  369. package/dist/components/Select/Select.d.ts.map +0 -1
  370. package/dist/components/Select/Select.types.d.ts +0 -124
  371. package/dist/components/Select/Select.types.d.ts.map +0 -1
  372. package/dist/components/Select/icons.d.ts +0 -16
  373. package/dist/components/Select/icons.d.ts.map +0 -1
  374. package/dist/components/Select/index.d.ts.map +0 -1
  375. package/dist/components/SignUpView/SignUpView.d.ts +0 -38
  376. package/dist/components/SignUpView/SignUpView.d.ts.map +0 -1
  377. package/dist/components/SignUpView/SignUpView.types.d.ts +0 -51
  378. package/dist/components/SignUpView/SignUpView.types.d.ts.map +0 -1
  379. package/dist/components/SignUpView/icons.d.ts +0 -18
  380. package/dist/components/SignUpView/icons.d.ts.map +0 -1
  381. package/dist/components/SignUpView/index.d.ts.map +0 -1
  382. package/dist/components/Switch/Switch.d.ts +0 -46
  383. package/dist/components/Switch/Switch.d.ts.map +0 -1
  384. package/dist/components/Switch/Switch.types.d.ts +0 -58
  385. package/dist/components/Switch/Switch.types.d.ts.map +0 -1
  386. package/dist/components/Table/Table.d.ts +0 -64
  387. package/dist/components/Table/Table.d.ts.map +0 -1
  388. package/dist/components/Table/Table.types.d.ts +0 -173
  389. package/dist/components/Table/Table.types.d.ts.map +0 -1
  390. package/dist/components/Table/index.d.ts +0 -3
  391. package/dist/components/Table/index.d.ts.map +0 -1
  392. package/dist/components/Tabs/Tabs.d.ts +0 -76
  393. package/dist/components/Tabs/Tabs.d.ts.map +0 -1
  394. package/dist/components/Tabs/Tabs.types.d.ts +0 -107
  395. package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
  396. package/dist/components/Tabs/icons.d.ts +0 -45
  397. package/dist/components/Tabs/icons.d.ts.map +0 -1
  398. package/dist/components/Tabs/index.d.ts +0 -4
  399. package/dist/components/Tabs/index.d.ts.map +0 -1
  400. package/dist/components/Textarea/Textarea.d.ts +0 -38
  401. package/dist/components/Textarea/Textarea.d.ts.map +0 -1
  402. package/dist/components/Textarea/Textarea.types.d.ts +0 -46
  403. package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
  404. package/dist/context/ThemeContext.d.ts +0 -46
  405. package/dist/context/ThemeContext.d.ts.map +0 -1
  406. package/dist/context/index.d.ts.map +0 -1
  407. package/dist/index.d.ts +0 -56
  408. package/dist/index.d.ts.map +0 -1
  409. package/dist/siesa-ui-kit.cjs +0 -1260
  410. package/dist/siesa-ui-kit.cjs.map +0 -1
  411. package/dist/siesa-ui-kit.mjs +0 -4496
  412. package/dist/siesa-ui-kit.mjs.map +0 -1
  413. package/dist/views/ListView/ListView.d.ts +0 -47
  414. package/dist/views/ListView/ListView.d.ts.map +0 -1
  415. package/dist/views/ListView/ListView.types.d.ts +0 -177
  416. package/dist/views/ListView/ListView.types.d.ts.map +0 -1
  417. package/dist/views/ListView/icons.d.ts +0 -60
  418. package/dist/views/ListView/icons.d.ts.map +0 -1
  419. package/dist/views/ListView/index.d.ts +0 -3
  420. package/dist/views/ListView/index.d.ts.map +0 -1
  421. package/dist/views/LoginView/LoginView.d.ts +0 -36
  422. package/dist/views/LoginView/LoginView.d.ts.map +0 -1
  423. package/dist/views/LoginView/LoginView.types.d.ts +0 -46
  424. package/dist/views/LoginView/LoginView.types.d.ts.map +0 -1
  425. package/dist/views/LoginView/icons.d.ts +0 -18
  426. package/dist/views/LoginView/icons.d.ts.map +0 -1
  427. package/dist/views/LoginView/index.d.ts +0 -4
  428. package/dist/views/LoginView/index.d.ts.map +0 -1
  429. package/dist/views/ProductsView/ProductsView.d.ts +0 -56
  430. package/dist/views/ProductsView/ProductsView.d.ts.map +0 -1
  431. package/dist/views/ProductsView/ProductsView.types.d.ts +0 -184
  432. package/dist/views/ProductsView/ProductsView.types.d.ts.map +0 -1
  433. package/dist/views/ProductsView/icons.d.ts +0 -12
  434. package/dist/views/ProductsView/icons.d.ts.map +0 -1
  435. package/dist/views/ProductsView/index.d.ts +0 -3
  436. package/dist/views/ProductsView/index.d.ts.map +0 -1
  437. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +0 -34
  438. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +0 -1
  439. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +0 -50
  440. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +0 -1
  441. package/dist/views/RecoverPasswordView/icons.d.ts +0 -9
  442. package/dist/views/RecoverPasswordView/icons.d.ts.map +0 -1
  443. package/dist/views/RecoverPasswordView/index.d.ts.map +0 -1
  444. package/dist/views/SignUpView/SignUpView.d.ts +0 -38
  445. package/dist/views/SignUpView/SignUpView.d.ts.map +0 -1
  446. package/dist/views/SignUpView/SignUpView.types.d.ts +0 -51
  447. package/dist/views/SignUpView/SignUpView.types.d.ts.map +0 -1
  448. package/dist/views/SignUpView/icons.d.ts +0 -18
  449. package/dist/views/SignUpView/icons.d.ts.map +0 -1
  450. package/dist/views/SignUpView/index.d.ts +0 -4
  451. package/dist/views/SignUpView/index.d.ts.map +0 -1
  452. package/dist/views/TableLayoutView/TableLayoutView.d.ts +0 -46
  453. package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +0 -1
  454. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +0 -170
  455. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +0 -1
  456. package/dist/views/TableLayoutView/icons.d.ts +0 -27
  457. package/dist/views/TableLayoutView/icons.d.ts.map +0 -1
  458. package/dist/views/TableLayoutView/index.d.ts +0 -3
  459. package/dist/views/TableLayoutView/index.d.ts.map +0 -1
@@ -0,0 +1,235 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { POSConvention } from './POSConvention';
3
+
4
+ /**
5
+ * Stories para POSConvention
6
+ *
7
+ * Componente de leyenda/convención para mostrar el estado de las mesas en el sistema POS.
8
+ * Basado en especificaciones de Figma (node-id: 4418-40139).
9
+ */
10
+ const meta = {
11
+ title: 'Siesa UI Kit/POSConvention',
12
+ component: POSConvention,
13
+ parameters: {
14
+ layout: 'centered',
15
+ docs: {
16
+ description: {
17
+ component:
18
+ 'Componente de leyenda para mostrar los estados de mesas en el sistema POS. Incluye 4 estados: Disponible (azul), Ocupada (naranja), Reservada (morado) y Fuera de Servicio (gris).',
19
+ },
20
+ },
21
+ },
22
+ tags: ['autodocs'],
23
+ argTypes: {
24
+ status: {
25
+ control: 'select',
26
+ options: ['available', 'occupied', 'reserved', 'outOfService'],
27
+ description: 'Estado de la convención a mostrar',
28
+ table: {
29
+ type: { summary: 'ConventionStatus' },
30
+ defaultValue: { summary: 'available' },
31
+ category: 'Contenido',
32
+ },
33
+ },
34
+ className: {
35
+ control: 'text',
36
+ description: 'Clases CSS adicionales para el contenedor',
37
+ table: {
38
+ type: { summary: 'string' },
39
+ category: 'Apariencia',
40
+ },
41
+ },
42
+ },
43
+ } satisfies Meta<typeof POSConvention>;
44
+
45
+ export default meta;
46
+ type Story = StoryObj<typeof meta>;
47
+
48
+ // ============================================
49
+ // 1. PLAYGROUND INTERACTIVO
50
+ // ============================================
51
+ /**
52
+ * Playground interactivo para probar el componente con diferentes estados.
53
+ */
54
+ export const Playground: Story = {
55
+ args: {
56
+ status: 'available',
57
+ },
58
+ };
59
+
60
+ // ============================================
61
+ // 2. TODOS LOS ESTADOS
62
+ // ============================================
63
+ /**
64
+ * Muestra todos los estados disponibles del componente POSConvention.
65
+ */
66
+ export const TodosLosEstados: Story = {
67
+ render: () => (
68
+ <div className="space-y-8 p-6">
69
+ <div>
70
+ <h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
71
+ Estados de Mesas
72
+ </h3>
73
+ <div className="flex flex-col gap-4">
74
+ <div className="flex items-center gap-6">
75
+ <POSConvention status="available" />
76
+ <span className="text-xs text-content-secondary dark:text-content-secondary">
77
+ Mesa lista para recibir clientes
78
+ </span>
79
+ </div>
80
+ <div className="flex items-center gap-6">
81
+ <POSConvention status="occupied" />
82
+ <span className="text-xs text-content-secondary dark:text-content-secondary">
83
+ Mesa actualmente en uso
84
+ </span>
85
+ </div>
86
+ <div className="flex items-center gap-6">
87
+ <POSConvention status="reserved" />
88
+ <span className="text-xs text-content-secondary dark:text-content-secondary">
89
+ Mesa con reservación confirmada
90
+ </span>
91
+ </div>
92
+ <div className="flex items-center gap-6">
93
+ <POSConvention status="outOfService" />
94
+ <span className="text-xs text-content-secondary dark:text-content-secondary">
95
+ Mesa no disponible temporalmente
96
+ </span>
97
+ </div>
98
+ </div>
99
+ </div>
100
+
101
+ {/* Tips */}
102
+ <div className="mt-6 p-4 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg">
103
+ <p className="text-xs text-gray-600 dark:text-gray-300">
104
+ <strong>💡 Consejo:</strong>
105
+ <br />• Usa este componente para crear leyendas en la vista de mesas del POS
106
+ <br />• Los colores son consistentes con el diseño de Figma
107
+ </p>
108
+ </div>
109
+ </div>
110
+ ),
111
+ };
112
+
113
+ // ============================================
114
+ // 3. LEYENDA COMPLETA (COMO EN FIGMA)
115
+ // ============================================
116
+ /**
117
+ * Leyenda completa con borde punteado como se muestra en Figma.
118
+ */
119
+ export const LeyendaCompleta: Story = {
120
+ render: () => (
121
+ <div className="space-y-8 p-6">
122
+ <div>
123
+ <h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
124
+ Leyenda de Convenciones (Figma)
125
+ </h3>
126
+
127
+ {/* Contenedor con borde punteado como en Figma */}
128
+ <div className="p-5 rounded-lg border-2 border-dashed border-primary-custom-300 dark:border-dark-border-custom inline-block">
129
+ <div className="flex flex-col gap-9">
130
+ <POSConvention status="available" />
131
+ <POSConvention status="occupied" />
132
+ <POSConvention status="reserved" />
133
+ <POSConvention status="outOfService" />
134
+ </div>
135
+ </div>
136
+ </div>
137
+
138
+ <p className="text-xs text-content-secondary dark:text-content-secondary">
139
+ Diseño exacto según especificaciones de Figma (node-id: 4418-40139)
140
+ </p>
141
+ </div>
142
+ ),
143
+ };
144
+
145
+ // ============================================
146
+ // 4. USO EN HORIZONTAL
147
+ // ============================================
148
+ /**
149
+ * Ejemplo de uso horizontal para barras de estado o headers.
150
+ */
151
+ export const UsoHorizontal: Story = {
152
+ render: () => (
153
+ <div className="space-y-8 p-6">
154
+ <div>
155
+ <h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
156
+ Disposición Horizontal
157
+ </h3>
158
+
159
+ {/* Disposición horizontal con separadores */}
160
+ <div className="flex items-center gap-6 p-4 bg-white dark:bg-dark-bg-primary rounded-lg border border-border-primary dark:border-dark-border-primary">
161
+ <POSConvention status="available" />
162
+ <div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
163
+ <POSConvention status="occupied" />
164
+ <div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
165
+ <POSConvention status="reserved" />
166
+ <div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
167
+ <POSConvention status="outOfService" />
168
+ </div>
169
+ </div>
170
+
171
+ <p className="text-xs text-content-secondary dark:text-content-secondary">
172
+ Útil para barras de herramientas o encabezados de sección
173
+ </p>
174
+ </div>
175
+ ),
176
+ };
177
+
178
+ // ============================================
179
+ // 5. INTEGRACIÓN CON CONTADORES
180
+ // ============================================
181
+ /**
182
+ * Ejemplo de integración con contadores de mesas.
183
+ */
184
+ export const ConContadores: Story = {
185
+ render: () => (
186
+ <div className="space-y-8 p-6">
187
+ <div>
188
+ <h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
189
+ Leyenda con Contadores
190
+ </h3>
191
+
192
+ <div className="flex flex-col gap-3 p-4 bg-white dark:bg-dark-bg-primary rounded-lg border border-border-primary dark:border-dark-border-primary">
193
+ <div className="flex items-center justify-between min-w-[200px]">
194
+ <POSConvention status="available" />
195
+ <span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
196
+ 12
197
+ </span>
198
+ </div>
199
+ <div className="flex items-center justify-between">
200
+ <POSConvention status="occupied" />
201
+ <span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
202
+ 8
203
+ </span>
204
+ </div>
205
+ <div className="flex items-center justify-between">
206
+ <POSConvention status="reserved" />
207
+ <span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
208
+ 3
209
+ </span>
210
+ </div>
211
+ <div className="flex items-center justify-between">
212
+ <POSConvention status="outOfService" />
213
+ <span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
214
+ 2
215
+ </span>
216
+ </div>
217
+
218
+ {/* Total */}
219
+ <div className="mt-2 pt-3 border-t border-border-primary dark:border-dark-border-primary flex items-center justify-between">
220
+ <span className="text-xs font-bold text-content-secondary dark:text-content-secondary">
221
+ Total de mesas
222
+ </span>
223
+ <span className="text-sm font-bold text-primary-custom-600 dark:text-primary-custom-600">
224
+ 25
225
+ </span>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ <p className="text-xs text-content-secondary dark:text-content-secondary">
231
+ Ejemplo de uso con contadores para panel de resumen
232
+ </p>
233
+ </div>
234
+ ),
235
+ };
@@ -0,0 +1,129 @@
1
+ import React from 'react';
2
+ import type { POSConventionProps } from './POSConvention.types';
3
+ import { ConventionIcon } from './icons';
4
+
5
+ /**
6
+ * POSConvention - Componente de leyenda/convención para estados de mesas POS
7
+ *
8
+ * Muestra un indicador circular de color con su respectiva etiqueta según el diseño de Figma.
9
+ * Se usa típicamente para crear leyendas que explican el significado de colores en el sistema POS.
10
+ *
11
+ * **Colores según Figma (node-id: 4418-40139):**
12
+ *
13
+ * | Estado | Light Mode | Dark Mode |
14
+ * |--------|------------|-----------|
15
+ * | Available | #0e79fd (azul) | #93d1fd (azul claro) |
16
+ * | Occupied | #af460e (naranja) | #f5a927 (amarillo) |
17
+ * | Reserved | #7e22ce (morado) | #c084fc (morado claro) |
18
+ * | Out of Service | #3f3f46 (gris) | #a1a1aa (gris claro) |
19
+ *
20
+ * **Dimensiones según Figma:**
21
+ * - Icono: 16x16px (círculo con fill)
22
+ * - Texto: 12px (Paragraph/Tiny - text-xs)
23
+ * - Gap: 4px (gap-1)
24
+ * - Line-height: 16px (leading-4)
25
+ *
26
+ * Mejores prácticas implementadas:
27
+ * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
28
+ * - Dark mode con estrategia 'class' (darkMode: 'class')
29
+ * - Colores exactos de Figma para Light y Dark mode
30
+ * - Type safety con TypeScript estricto
31
+ * - Accesibilidad con aria-label
32
+ *
33
+ * @see docs/colors.md - Sistema de colores
34
+ * @see docs/typography.md - Sistema tipográfico (Paragraph Tiny)
35
+ * @see docs/spacing.md - Sistema de espaciado
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Indicador de disponible
40
+ * <POSConvention status="available" />
41
+ *
42
+ * // Indicador de ocupada
43
+ * <POSConvention status="occupied" />
44
+ *
45
+ * // Leyenda completa en contenedor
46
+ * <div className="p-5 rounded-lg border border-dashed border-primary-custom-300">
47
+ * <div className="flex flex-col gap-9">
48
+ * <POSConvention status="available" />
49
+ * <POSConvention status="occupied" />
50
+ * <POSConvention status="reserved" />
51
+ * <POSConvention status="outOfService" />
52
+ * </div>
53
+ * </div>
54
+ * ```
55
+ */
56
+ export const POSConvention: React.FC<POSConventionProps> = ({
57
+ status = 'available',
58
+ className = '',
59
+ }) => {
60
+ // ===== CONFIGURACIÓN DE COLORES Y LABELS SEGÚN FIGMA =====
61
+ // Colores extraídos del nodo 4418-40139 (Light) y 4418-40349 (Dark) de Figma
62
+ // Variables de Figma: contentCustomPrimary, contentYellow, contentPurple, contentZinc
63
+ const conventionConfig = {
64
+ available: {
65
+ lightColor: '#0e79fd', // Azul - contentCustomPrimary Light
66
+ darkColor: '#93d1fd', // Azul claro - contentCustomPrimary Dark
67
+ label: 'Disponible',
68
+ },
69
+ occupied: {
70
+ lightColor: '#af460e', // Naranja - contentOrange Light
71
+ darkColor: '#f5a927', // Amarillo - contentYellow Dark
72
+ label: 'Ocupada',
73
+ },
74
+ reserved: {
75
+ lightColor: '#7e22ce', // Morado - contentPurple Light
76
+ darkColor: '#c084fc', // Morado claro - contentPurple Dark
77
+ label: 'Reservada',
78
+ },
79
+ outOfService: {
80
+ lightColor: '#3f3f46', // Gris - contentZinc Light (zinc-700)
81
+ darkColor: '#a1a1aa', // Gris claro - contentZinc Dark (zinc-400)
82
+ label: 'Fuera de Servicio',
83
+ },
84
+ };
85
+
86
+ const config = conventionConfig[status];
87
+
88
+ // ===== CLASES BASE =====
89
+ const baseClasses = `
90
+ inline-flex
91
+ items-center
92
+ gap-1
93
+ shrink-0
94
+ `;
95
+
96
+ // ===== COMBINAR CLASES =====
97
+ const finalClasses = [baseClasses, className]
98
+ .join(' ')
99
+ .replace(/\s+/g, ' ')
100
+ .trim();
101
+
102
+ return (
103
+ <div
104
+ className={finalClasses}
105
+ role="presentation"
106
+ aria-label={`Estado: ${config.label}`}
107
+ >
108
+ {/* Icono circular 16x16 con colores para Light y Dark mode */}
109
+ <ConventionIcon lightColor={config.lightColor} darkColor={config.darkColor} />
110
+
111
+ {/* Label de texto según Figma: Paragraph/Tiny 12px */}
112
+ {/* Light: contentPrimary #18181b, Dark: contentPrimary #f4f4f5 */}
113
+ <span
114
+ className={`
115
+ text-xs
116
+ leading-4
117
+ font-normal
118
+ text-content-primary
119
+ dark:text-dark-content-primary
120
+ whitespace-nowrap
121
+ `
122
+ .replace(/\s+/g, ' ')
123
+ .trim()}
124
+ >
125
+ {config.label}
126
+ </span>
127
+ </div>
128
+ );
129
+ };
@@ -1,37 +1,38 @@
1
- /**
2
- * Tipo para los estados de convención posibles en el sistema POS
3
- *
4
- * Colores según Figma:
5
- *
6
- * | Estado | Light Mode | Dark Mode |
7
- * |--------|------------|-----------|
8
- * | `available` | #0e79fd (azul) | #93d1fd (azul claro) |
9
- * | `occupied` | #af460e (naranja) | #f5a927 (amarillo) |
10
- * | `reserved` | #7e22ce (morado) | #c084fc (morado claro) |
11
- * | `outOfService` | #3f3f46 (gris) | #a1a1aa (gris claro) |
12
- */
13
- export type ConventionStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
14
- /**
15
- * Props del componente POSConvention
16
- *
17
- * Componente de leyenda para mostrar el estado de las mesas en el sistema POS.
18
- * Muestra un indicador circular de color con su respectiva etiqueta.
19
- */
20
- export interface POSConventionProps {
21
- /**
22
- * Estado de la convención a mostrar
23
- *
24
- * - `available`: Disponible (Azul)
25
- * - `occupied`: Ocupada (Naranja)
26
- * - `reserved`: Reservada (Morado)
27
- * - `outOfService`: F. de Servicio (Gris)
28
- *
29
- * @default 'available'
30
- */
31
- status?: ConventionStatus;
32
- /**
33
- * Clases CSS adicionales para el contenedor
34
- */
35
- className?: string;
36
- }
37
- //# sourceMappingURL=POSConvention.types.d.ts.map
1
+ /**
2
+ * Tipo para los estados de convención posibles en el sistema POS
3
+ *
4
+ * Colores según Figma:
5
+ *
6
+ * | Estado | Light Mode | Dark Mode |
7
+ * |--------|------------|-----------|
8
+ * | `available` | #0e79fd (azul) | #93d1fd (azul claro) |
9
+ * | `occupied` | #af460e (naranja) | #f5a927 (amarillo) |
10
+ * | `reserved` | #7e22ce (morado) | #c084fc (morado claro) |
11
+ * | `outOfService` | #3f3f46 (gris) | #a1a1aa (gris claro) |
12
+ */
13
+ export type ConventionStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
14
+
15
+ /**
16
+ * Props del componente POSConvention
17
+ *
18
+ * Componente de leyenda para mostrar el estado de las mesas en el sistema POS.
19
+ * Muestra un indicador circular de color con su respectiva etiqueta.
20
+ */
21
+ export interface POSConventionProps {
22
+ /**
23
+ * Estado de la convención a mostrar
24
+ *
25
+ * - `available`: Disponible (Azul)
26
+ * - `occupied`: Ocupada (Naranja)
27
+ * - `reserved`: Reservada (Morado)
28
+ * - `outOfService`: F. de Servicio (Gris)
29
+ *
30
+ * @default 'available'
31
+ */
32
+ status?: ConventionStatus;
33
+
34
+ /**
35
+ * Clases CSS adicionales para el contenedor
36
+ */
37
+ className?: string;
38
+ }
@@ -0,0 +1,123 @@
1
+ # POSConvention
2
+
3
+ Componente de leyenda/convención para mostrar el estado de las mesas en el sistema POS.
4
+
5
+ ## Descripción
6
+
7
+ El componente `POSConvention` muestra un indicador circular de color con su respectiva etiqueta según el diseño de Figma. Se usa típicamente para crear leyendas que explican el significado de colores en el sistema de Punto de Venta.
8
+
9
+ ## Instalación
10
+
11
+ ```tsx
12
+ import { POSConvention } from '@siesa/ui-kit';
13
+ ```
14
+
15
+ ## Estados Disponibles
16
+
17
+ | Estado | Light Mode | Dark Mode | Etiqueta | Uso |
18
+ |--------|------------|-----------|----------|-----|
19
+ | `available` | `#0e79fd` (azul) | `#93d1fd` (azul claro) | Disponible | Mesa lista para clientes |
20
+ | `occupied` | `#af460e` (naranja) | `#f5a927` (amarillo) | Ocupada | Mesa actualmente en uso |
21
+ | `reserved` | `#7e22ce` (morado) | `#c084fc` (morado claro) | Reservada | Mesa con reservación |
22
+ | `outOfService` | `#3f3f46` (gris) | `#a1a1aa` (gris claro) | F. de Servicio | Mesa no disponible |
23
+
24
+ ## Uso Básico
25
+
26
+ ```tsx
27
+ // Indicador individual
28
+ <POSConvention status="available" />
29
+
30
+ // Leyenda completa
31
+ <div className="flex flex-col gap-4">
32
+ <POSConvention status="available" />
33
+ <POSConvention status="occupied" />
34
+ <POSConvention status="reserved" />
35
+ <POSConvention status="outOfService" />
36
+ </div>
37
+ ```
38
+
39
+ ## Props
40
+
41
+ | Prop | Tipo | Default | Descripción |
42
+ |------|------|---------|-------------|
43
+ | `status` | `'available' \| 'occupied' \| 'reserved' \| 'outOfService'` | `'available'` | Estado a mostrar |
44
+ | `className` | `string` | `''` | Clases CSS adicionales |
45
+
46
+ ## Especificaciones de Figma
47
+
48
+ - **Node ID**: `4418-40139`
49
+ - **Icono**: 16x16px (círculo con fill)
50
+ - **Texto**: 12px (Paragraph/Tiny)
51
+ - **Gap**: 4px
52
+ - **Line-height**: 16px
53
+
54
+ ## Dark Mode
55
+
56
+ El componente soporta dark mode automáticamente:
57
+ - El texto cambia de `content-primary` a `dark-content-primary`
58
+ - Los colores de los iconos permanecen constantes para mantener la identificación visual
59
+
60
+ ## Ejemplos Avanzados
61
+
62
+ ### Leyenda con Borde Punteado (Como en Figma)
63
+
64
+ ```tsx
65
+ <div className="p-5 rounded-lg border-2 border-dashed border-primary-custom-300">
66
+ <div className="flex flex-col gap-9">
67
+ <POSConvention status="available" />
68
+ <POSConvention status="occupied" />
69
+ <POSConvention status="reserved" />
70
+ <POSConvention status="outOfService" />
71
+ </div>
72
+ </div>
73
+ ```
74
+
75
+ ### Leyenda Horizontal
76
+
77
+ ```tsx
78
+ <div className="flex items-center gap-6">
79
+ <POSConvention status="available" />
80
+ <POSConvention status="occupied" />
81
+ <POSConvention status="reserved" />
82
+ <POSConvention status="outOfService" />
83
+ </div>
84
+ ```
85
+
86
+ ### Con Contadores
87
+
88
+ ```tsx
89
+ <div className="flex flex-col gap-3">
90
+ <div className="flex items-center justify-between">
91
+ <POSConvention status="available" />
92
+ <span className="font-bold">12</span>
93
+ </div>
94
+ <div className="flex items-center justify-between">
95
+ <POSConvention status="occupied" />
96
+ <span className="font-bold">8</span>
97
+ </div>
98
+ </div>
99
+ ```
100
+
101
+ ## Accesibilidad
102
+
103
+ - El componente incluye `role="presentation"` ya que es puramente visual
104
+ - Incluye `aria-label` con el estado actual para lectores de pantalla
105
+ - Los iconos SVG tienen `aria-hidden="true"`
106
+
107
+ ## Archivos del Componente
108
+
109
+ ```
110
+ POSConvention/
111
+ ├── POSConvention.tsx # Componente principal
112
+ ├── POSConvention.types.ts # Tipos TypeScript
113
+ ├── POSConvention.stories.tsx # Stories de Storybook
114
+ ├── icons.tsx # Icono SVG del círculo
115
+ ├── index.ts # Exports
116
+ └── README.md # Esta documentación
117
+ ```
118
+
119
+ ## Referencias
120
+
121
+ - **Figma**: [POS Convention](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4418-40139)
122
+ - **Documentación de Colores**: `docs/colors.md`
123
+ - **Documentación de Tipografía**: `docs/typography.md`
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * Icono de convención para POSConvention
5
+ *
6
+ * Círculo SVG de 16x16px con colores diferentes para Light y Dark mode.
7
+ * Basado en especificaciones de Figma:
8
+ * - Light mode: node-id 4418-40139
9
+ * - Dark mode: node-id 4418-40349
10
+ *
11
+ * Usa dos círculos superpuestos con clases CSS para alternar entre modos.
12
+ *
13
+ * @param lightColor - Color hexadecimal para Light mode
14
+ * @param darkColor - Color hexadecimal para Dark mode
15
+ * @param className - Clases CSS adicionales (opcional)
16
+ */
17
+ export const ConventionIcon: React.FC<{
18
+ lightColor: string;
19
+ darkColor: string;
20
+ className?: string;
21
+ }> = ({ lightColor, darkColor, className = '' }) => (
22
+ <svg
23
+ className={`w-4 h-4 shrink-0 ${className}`.trim()}
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ viewBox="0 0 16 16"
26
+ aria-hidden="true"
27
+ >
28
+ {/* Círculo para Light mode - visible por defecto, oculto en dark */}
29
+ <circle
30
+ cx="8"
31
+ cy="8"
32
+ r="8"
33
+ fill={lightColor}
34
+ className="dark:hidden"
35
+ />
36
+ {/* Círculo para Dark mode - oculto por defecto, visible en dark */}
37
+ <circle
38
+ cx="8"
39
+ cy="8"
40
+ r="8"
41
+ fill={darkColor}
42
+ className="hidden dark:block"
43
+ />
44
+ </svg>
45
+ );
@@ -1,4 +1,3 @@
1
- export { POSConvention } from './POSConvention';
2
- export { ConventionIcon } from './icons';
3
- export type { POSConventionProps, ConventionStatus } from './POSConvention.types';
4
- //# sourceMappingURL=index.d.ts.map
1
+ export { POSConvention } from './POSConvention';
2
+ export { ConventionIcon } from './icons';
3
+ export type { POSConventionProps, ConventionStatus } from './POSConvention.types';