siesa-ui-kit 1.0.4 → 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.
- package/README.md +89 -115
- package/bin/install.cjs +502 -502
- package/bin/prepare-publish.cjs +28 -28
- package/bin/restore-folders.cjs +28 -28
- package/claude/agents/siesa-ui-kit-specialist.md +2401 -2445
- package/claude/prompts/component-template.md +121 -121
- package/claude/settings.local.json +61 -72
- package/docs/border-radius.md +1261 -1261
- package/docs/colors.md +832 -832
- package/docs/dark-mode-guide.md +1426 -1426
- package/docs/filters.md +1243 -1243
- package/docs/icons.md +1283 -1264
- package/docs/shadows.md +1377 -1377
- package/docs/spacing.md +1684 -1684
- package/docs/typography.md +1268 -1268
- package/package.json +83 -111
- package/postcss.config.cjs +6 -6
- package/src/App.css +42 -42
- package/src/App.tsx +8 -8
- package/src/ButtonTest.tsx +147 -147
- package/src/assets/fonts/README.md +261 -261
- package/src/components/Alert/Alert.stories.tsx +332 -332
- package/src/components/Alert/Alert.tsx +106 -106
- package/src/components/Alert/Alert.types.ts +54 -54
- package/src/components/Avatar/Avatar.stories.tsx +494 -494
- package/src/components/Avatar/Avatar.tsx +143 -143
- package/src/components/Avatar/Avatar.types.ts +53 -53
- package/src/components/Badge/Badge.stories.tsx +339 -339
- package/src/components/Badge/Badge.tsx +278 -278
- package/src/components/Badge/Badge.types.ts +58 -58
- package/src/components/Button/Button.stories.tsx +950 -950
- package/src/components/Button/Button.tsx +337 -337
- package/src/components/Button/Button.types.ts +180 -180
- package/src/components/Button/icons.tsx +87 -48
- package/src/components/Button/index.ts +3 -3
- package/src/components/Checkbox/Checkbox.stories.tsx +453 -453
- package/src/components/Checkbox/Checkbox.tsx +208 -208
- package/src/components/Checkbox/Checkbox.types.ts +61 -61
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -250
- package/src/components/DescriptionList/DescriptionList.tsx +96 -96
- package/src/components/DescriptionList/DescriptionList.types.ts +29 -29
- package/src/components/Divider/Divider.stories.tsx +263 -263
- package/src/components/Divider/Divider.tsx +80 -80
- package/src/components/Divider/Divider.types.ts +24 -24
- package/src/components/Dropdown/Dropdown.stories.tsx +552 -552
- package/src/components/Dropdown/Dropdown.tsx +422 -422
- package/src/components/Dropdown/Dropdown.types.ts +146 -146
- package/src/components/Dropdown/README.md +266 -266
- package/src/components/Dropdown/icons.tsx +72 -72
- package/src/components/Dropdown/index.ts +8 -8
- package/src/components/Input/Input.stories.tsx +583 -583
- package/src/components/Input/Input.tsx +204 -204
- package/src/components/Input/Input.types.ts +80 -80
- package/src/components/Input/icons.tsx +145 -145
- package/src/components/Input/index.ts +2 -2
- package/src/components/LoginView/LoginView.stories.tsx +148 -148
- package/src/components/LoginView/LoginView.tsx +426 -426
- package/src/components/LoginView/LoginView.types.ts +52 -52
- package/src/components/LoginView/README.md +396 -396
- package/src/components/LoginView/icons.tsx +85 -85
- package/src/components/LoginView/index.ts +3 -3
- package/src/components/Navbar/Navbar.stories.tsx +810 -810
- package/src/components/Navbar/Navbar.tsx +755 -755
- package/src/components/Navbar/Navbar.types.ts +219 -219
- package/src/components/Navbar/README.md +279 -279
- package/src/components/Navbar/icons.tsx +102 -102
- package/src/components/Navbar/index.ts +8 -8
- package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -406
- package/src/components/NavigationBar/NavigationBar.tsx +246 -246
- package/src/components/NavigationBar/NavigationBar.types.ts +74 -74
- package/src/components/NavigationBar/README.md +469 -469
- package/src/components/NavigationBar/index.ts +2 -2
- package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -417
- package/src/components/NavigationRail/NavigationRail.tsx +418 -418
- package/src/components/NavigationRail/NavigationRail.types.ts +109 -109
- package/src/components/NavigationRail/README.md +224 -224
- package/src/components/NavigationRail/index.ts +2 -2
- package/src/components/Notification/Notification.stories.tsx +513 -513
- package/src/components/Notification/Notification.tsx +145 -145
- package/src/components/Notification/Notification.types.ts +142 -142
- package/src/components/Notification/README.md +409 -409
- package/src/components/Notification/index.ts +3 -3
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -235
- package/src/components/POSConvention/POSConvention.tsx +129 -129
- package/src/components/POSConvention/POSConvention.types.ts +38 -38
- package/src/components/POSConvention/README.md +123 -123
- package/src/components/POSConvention/icons.tsx +45 -45
- package/src/components/POSConvention/index.ts +3 -3
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -531
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -247
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -87
- package/src/components/POSLocationButton/README.md +253 -253
- package/src/components/POSLocationButton/icons.tsx +120 -120
- package/src/components/POSLocationButton/index.ts +14 -14
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -415
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -179
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -51
- package/src/components/POSNumberButton/README.md +321 -321
- package/src/components/POSNumberButton/index.ts +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -318
- package/src/components/POSProductButton/POSProductButton.tsx +152 -152
- package/src/components/POSProductButton/POSProductButton.types.ts +46 -46
- package/src/components/POSProductButton/README.md +269 -269
- package/src/components/POSProductButton/index.ts +2 -2
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -642
- package/src/components/POSProductCard/POSProductCard.tsx +208 -208
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -76
- package/src/components/POSProductCard/README.md +179 -179
- package/src/components/POSProductCard/icons.tsx +26 -26
- package/src/components/POSProductCard/index.ts +2 -2
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -753
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -332
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -119
- package/src/components/POSProductSidebarItems/README.md +198 -198
- package/src/components/POSProductSidebarItems/icons.tsx +21 -21
- package/src/components/POSProductSidebarItems/index.ts +3 -3
- package/src/components/POSTable/POSTable.stories.tsx +737 -737
- package/src/components/POSTable/POSTable.tsx +401 -401
- package/src/components/POSTable/POSTable.types.ts +83 -83
- package/src/components/POSTable/README.md +286 -286
- package/src/components/POSTable/index.ts +7 -7
- package/src/components/Pagination/Pagination.stories.tsx +555 -555
- package/src/components/Pagination/Pagination.tsx +286 -286
- package/src/components/Pagination/Pagination.types.ts +93 -93
- package/src/components/Pagination/README.md +298 -298
- package/src/components/Pagination/icons.tsx +47 -47
- package/src/components/Pagination/index.ts +3 -3
- package/src/components/Quantity/Quantity.stories.tsx +457 -457
- package/src/components/Quantity/Quantity.tsx +289 -289
- package/src/components/Quantity/Quantity.types.ts +70 -70
- package/src/components/Radio/Radio.stories.tsx +523 -523
- package/src/components/Radio/Radio.tsx +170 -170
- package/src/components/Radio/Radio.types.ts +122 -122
- package/src/components/Select/README.md +299 -299
- package/src/components/Select/Select.stories.tsx +673 -705
- package/src/components/Select/Select.tsx +454 -457
- package/src/components/Select/Select.types.ts +148 -148
- package/src/components/Select/icons.tsx +50 -25
- package/src/components/Select/index.ts +3 -3
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -129
- package/src/components/SignUpView/SignUpView.tsx +503 -503
- package/src/components/SignUpView/SignUpView.types.ts +58 -58
- package/src/components/SignUpView/icons.tsx +71 -71
- package/src/components/SignUpView/index.ts +3 -3
- package/src/components/Switch/README.md +112 -112
- package/src/components/Switch/Switch.stories.tsx +550 -550
- package/src/components/Switch/Switch.tsx +246 -246
- package/src/components/Switch/Switch.types.ts +67 -67
- package/src/components/Table/README.md +369 -369
- package/src/components/Table/Table.stories.tsx +805 -805
- package/src/components/Table/Table.tsx +688 -688
- package/src/components/Table/Table.types.ts +204 -204
- package/src/components/Table/index.ts +9 -9
- package/src/components/Tabs/README.md +201 -201
- package/src/components/Tabs/Tabs.stories.tsx +580 -580
- package/src/components/Tabs/Tabs.tsx +356 -356
- package/src/components/Tabs/Tabs.types.ts +127 -127
- package/src/components/Tabs/icons.tsx +129 -129
- package/src/components/Tabs/index.ts +11 -11
- package/src/components/Textarea/Textarea.stories.tsx +535 -535
- package/src/components/Textarea/Textarea.tsx +188 -188
- package/src/components/Textarea/Textarea.types.ts +54 -54
- package/src/context/ThemeContext.tsx +99 -99
- package/src/context/index.ts +1 -1
- package/src/index.css +29 -29
- package/src/index.ts +39 -133
- package/src/main.tsx +10 -10
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -344
- package/src/views/ProductsView/ProductsView.tsx +480 -480
- package/src/views/ProductsView/ProductsView.types.ts +238 -238
- package/src/views/ProductsView/README.md +312 -312
- package/src/views/ProductsView/icons.tsx +38 -38
- package/src/views/ProductsView/index.ts +8 -8
- package/src/views/RecoverPasswordView/README.md +269 -269
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -131
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -376
- package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -56
- package/src/views/RecoverPasswordView/icons.tsx +17 -17
- package/src/views/RecoverPasswordView/index.ts +2 -2
- package/src/views/TableLayoutView/README.md +268 -268
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -235
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -461
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -209
- package/src/views/TableLayoutView/icons.tsx +113 -113
- package/src/views/TableLayoutView/index.ts +6 -6
- package/storybook/main.ts +19 -19
- package/storybook/preview.tsx +84 -84
- package/storybook/vitest.setup.ts +6 -6
- package/tailwind.config.js +128 -128
- package/claude/prompts/siesa-ui-kit.md +0 -28
- package/dist/ButtonTest.d.ts +0 -6
- package/dist/ButtonTest.d.ts.map +0 -1
- package/dist/components/Alert/Alert.d.ts +0 -23
- package/dist/components/Alert/Alert.d.ts.map +0 -1
- package/dist/components/Alert/Alert.types.d.ts +0 -46
- package/dist/components/Alert/Alert.types.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -41
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.types.d.ts +0 -46
- package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -42
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.types.d.ts +0 -32
- package/dist/components/Badge/Badge.types.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -84
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.types.d.ts +0 -162
- package/dist/components/Button/Button.types.d.ts.map +0 -1
- package/dist/components/Button/icons.d.ts +0 -27
- package/dist/components/Button/icons.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts +0 -4
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -31
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.types.d.ts +0 -53
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.d.ts +0 -38
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.types.d.ts +0 -27
- package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +0 -1
- package/dist/components/Divider/Divider.d.ts +0 -33
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/Divider.types.d.ts +0 -22
- package/dist/components/Divider/Divider.types.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.d.ts +0 -66
- package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.types.d.ts +0 -124
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +0 -1
- package/dist/components/Dropdown/icons.d.ts +0 -10
- package/dist/components/Dropdown/icons.d.ts.map +0 -1
- package/dist/components/Dropdown/index.d.ts +0 -4
- package/dist/components/Dropdown/index.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +0 -101
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +0 -116
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/icons.d.ts +0 -19
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/index.d.ts +0 -9
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +0 -75
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +0 -85
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/icons.d.ts +0 -48
- package/dist/components/DropdownItemHeading/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/index.d.ts +0 -4
- package/dist/components/DropdownItemHeading/index.d.ts.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -40
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.types.d.ts +0 -71
- package/dist/components/Input/Input.types.d.ts.map +0 -1
- package/dist/components/Input/icons.d.ts +0 -15
- package/dist/components/Input/icons.d.ts.map +0 -1
- package/dist/components/Input/index.d.ts +0 -3
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.d.ts +0 -36
- package/dist/components/LoginView/LoginView.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.types.d.ts +0 -46
- package/dist/components/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/components/LoginView/icons.d.ts +0 -18
- package/dist/components/LoginView/icons.d.ts.map +0 -1
- package/dist/components/LoginView/index.d.ts +0 -4
- package/dist/components/LoginView/index.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.d.ts +0 -63
- package/dist/components/Navbar/Navbar.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.types.d.ts +0 -194
- package/dist/components/Navbar/Navbar.types.d.ts.map +0 -1
- package/dist/components/Navbar/icons.d.ts +0 -12
- package/dist/components/Navbar/icons.d.ts.map +0 -1
- package/dist/components/Navbar/index.d.ts +0 -4
- package/dist/components/Navbar/index.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.d.ts +0 -75
- package/dist/components/NavigationBar/NavigationBar.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.types.d.ts +0 -63
- package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +0 -1
- package/dist/components/NavigationBar/index.d.ts +0 -3
- package/dist/components/NavigationBar/index.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.d.ts +0 -7
- package/dist/components/NavigationRail/NavigationRail.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.types.d.ts +0 -92
- package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +0 -1
- package/dist/components/NavigationRail/index.d.ts +0 -3
- package/dist/components/NavigationRail/index.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +0 -122
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +0 -139
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/icons.d.ts +0 -33
- package/dist/components/NavigationRailCommercial/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/index.d.ts +0 -4
- package/dist/components/NavigationRailCommercial/index.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +0 -90
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +0 -162
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/index.d.ts +0 -3
- package/dist/components/NavigationRailItem/index.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +0 -124
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +0 -154
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/index.d.ts +0 -3
- package/dist/components/NavigationRailPanel/index.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +0 -99
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +0 -152
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +0 -44
- package/dist/components/NavigationRailTypes/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/index.d.ts +0 -4
- package/dist/components/NavigationRailTypes/index.d.ts.map +0 -1
- package/dist/components/Notification/Notification.d.ts +0 -52
- package/dist/components/Notification/Notification.d.ts.map +0 -1
- package/dist/components/Notification/Notification.types.d.ts +0 -138
- package/dist/components/Notification/Notification.types.d.ts.map +0 -1
- package/dist/components/Notification/index.d.ts +0 -3
- package/dist/components/Notification/index.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.d.ts +0 -55
- package/dist/components/POSConvention/POSConvention.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.types.d.ts +0 -37
- package/dist/components/POSConvention/POSConvention.types.d.ts.map +0 -1
- package/dist/components/POSConvention/icons.d.ts +0 -21
- package/dist/components/POSConvention/icons.d.ts.map +0 -1
- package/dist/components/POSConvention/index.d.ts +0 -4
- package/dist/components/POSConvention/index.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.d.ts +0 -73
- package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +0 -75
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +0 -1
- package/dist/components/POSLocationButton/icons.d.ts +0 -37
- package/dist/components/POSLocationButton/icons.d.ts.map +0 -1
- package/dist/components/POSLocationButton/index.d.ts +0 -4
- package/dist/components/POSLocationButton/index.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.d.ts +0 -61
- package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +0 -43
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +0 -1
- package/dist/components/POSNumberButton/index.d.ts +0 -3
- package/dist/components/POSNumberButton/index.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.d.ts +0 -59
- package/dist/components/POSProductButton/POSProductButton.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.types.d.ts +0 -40
- package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +0 -1
- package/dist/components/POSProductButton/index.d.ts +0 -3
- package/dist/components/POSProductButton/index.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.d.ts +0 -68
- package/dist/components/POSProductCard/POSProductCard.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.types.d.ts +0 -67
- package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +0 -1
- package/dist/components/POSProductCard/icons.d.ts +0 -10
- package/dist/components/POSProductCard/icons.d.ts.map +0 -1
- package/dist/components/POSProductCard/index.d.ts +0 -3
- package/dist/components/POSProductCard/index.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +0 -57
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +0 -85
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/icons.d.ts +0 -9
- package/dist/components/POSProductSidebarItems/icons.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/index.d.ts +0 -4
- package/dist/components/POSProductSidebarItems/index.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.d.ts +0 -75
- package/dist/components/POSTable/POSTable.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.types.d.ts +0 -71
- package/dist/components/POSTable/POSTable.types.d.ts.map +0 -1
- package/dist/components/POSTable/index.d.ts +0 -3
- package/dist/components/POSTable/index.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.d.ts +0 -29
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.types.d.ts +0 -79
- package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
- package/dist/components/Pagination/icons.d.ts +0 -18
- package/dist/components/Pagination/icons.d.ts.map +0 -1
- package/dist/components/Pagination/index.d.ts +0 -4
- package/dist/components/Pagination/index.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.d.ts +0 -38
- package/dist/components/Quantity/Quantity.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.types.d.ts +0 -59
- package/dist/components/Quantity/Quantity.types.d.ts.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -45
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.types.d.ts +0 -115
- package/dist/components/Radio/Radio.types.d.ts.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -37
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.types.d.ts +0 -124
- package/dist/components/Select/Select.types.d.ts.map +0 -1
- package/dist/components/Select/icons.d.ts +0 -20
- package/dist/components/Select/icons.d.ts.map +0 -1
- package/dist/components/Select/index.d.ts +0 -4
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.d.ts +0 -38
- package/dist/components/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/components/SignUpView/icons.d.ts +0 -18
- package/dist/components/SignUpView/icons.d.ts.map +0 -1
- package/dist/components/SignUpView/index.d.ts +0 -4
- package/dist/components/SignUpView/index.d.ts.map +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -46
- package/dist/components/Switch/Switch.d.ts.map +0 -1
- package/dist/components/Switch/Switch.types.d.ts +0 -58
- package/dist/components/Switch/Switch.types.d.ts.map +0 -1
- package/dist/components/Table/Table.d.ts +0 -64
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.types.d.ts +0 -173
- package/dist/components/Table/Table.types.d.ts.map +0 -1
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -76
- package/dist/components/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.types.d.ts +0 -107
- package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
- package/dist/components/Tabs/icons.d.ts +0 -45
- package/dist/components/Tabs/icons.d.ts.map +0 -1
- package/dist/components/Tabs/index.d.ts +0 -4
- package/dist/components/Tabs/index.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.d.ts +0 -38
- package/dist/components/Textarea/Textarea.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.types.d.ts +0 -46
- package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
- package/dist/context/ThemeContext.d.ts +0 -46
- package/dist/context/ThemeContext.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -88
- package/dist/index.d.ts.map +0 -1
- package/dist/siesa-ui-kit.cjs +0 -1474
- package/dist/siesa-ui-kit.cjs.map +0 -1
- package/dist/siesa-ui-kit.mjs +0 -9580
- package/dist/siesa-ui-kit.mjs.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +0 -48
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +0 -49
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/index.d.ts +0 -3
- package/dist/views/LayoutCommercial/index.d.ts.map +0 -1
- package/dist/views/ListView/ListView.d.ts +0 -47
- package/dist/views/ListView/ListView.d.ts.map +0 -1
- package/dist/views/ListView/ListView.types.d.ts +0 -177
- package/dist/views/ListView/ListView.types.d.ts.map +0 -1
- package/dist/views/ListView/icons.d.ts +0 -60
- package/dist/views/ListView/icons.d.ts.map +0 -1
- package/dist/views/ListView/index.d.ts +0 -3
- package/dist/views/ListView/index.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.d.ts +0 -36
- package/dist/views/LoginView/LoginView.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.types.d.ts +0 -46
- package/dist/views/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/views/LoginView/icons.d.ts +0 -18
- package/dist/views/LoginView/icons.d.ts.map +0 -1
- package/dist/views/LoginView/index.d.ts +0 -4
- package/dist/views/LoginView/index.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.d.ts +0 -56
- package/dist/views/ProductsView/ProductsView.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.types.d.ts +0 -184
- package/dist/views/ProductsView/ProductsView.types.d.ts.map +0 -1
- package/dist/views/ProductsView/icons.d.ts +0 -12
- package/dist/views/ProductsView/icons.d.ts.map +0 -1
- package/dist/views/ProductsView/index.d.ts +0 -3
- package/dist/views/ProductsView/index.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +0 -34
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +0 -50
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/icons.d.ts +0 -9
- package/dist/views/RecoverPasswordView/icons.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/index.d.ts +0 -3
- package/dist/views/RecoverPasswordView/index.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.d.ts +0 -38
- package/dist/views/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/views/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/views/SignUpView/icons.d.ts +0 -18
- package/dist/views/SignUpView/icons.d.ts.map +0 -1
- package/dist/views/SignUpView/index.d.ts +0 -4
- package/dist/views/SignUpView/index.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.d.ts +0 -46
- package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +0 -170
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +0 -1
- package/dist/views/TableLayoutView/icons.d.ts +0 -27
- package/dist/views/TableLayoutView/icons.d.ts.map +0 -1
- package/dist/views/TableLayoutView/index.d.ts +0 -3
- package/dist/views/TableLayoutView/index.d.ts.map +0 -1
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +0 -317
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +0 -307
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +0 -136
- package/src/components/DropdownItemCollapsible/README.md +0 -264
- package/src/components/DropdownItemCollapsible/icons.tsx +0 -57
- package/src/components/DropdownItemCollapsible/index.ts +0 -12
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +0 -386
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +0 -216
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +0 -93
- package/src/components/DropdownItemHeading/README.md +0 -573
- package/src/components/DropdownItemHeading/icons.tsx +0 -125
- package/src/components/DropdownItemHeading/index.ts +0 -3
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +0 -464
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +0 -301
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +0 -162
- package/src/components/NavigationRailCommercial/README.md +0 -251
- package/src/components/NavigationRailCommercial/icons.tsx +0 -54
- package/src/components/NavigationRailCommercial/index.ts +0 -6
- package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +0 -667
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +0 -314
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +0 -175
- package/src/components/NavigationRailItem/README.md +0 -476
- package/src/components/NavigationRailItem/index.ts +0 -2
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +0 -462
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +0 -332
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +0 -178
- package/src/components/NavigationRailPanel/README.md +0 -461
- package/src/components/NavigationRailPanel/index.ts +0 -6
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +0 -682
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +0 -363
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +0 -178
- package/src/components/NavigationRailTypes/README.md +0 -573
- package/src/components/NavigationRailTypes/icons.tsx +0 -76
- package/src/components/NavigationRailTypes/index.ts +0 -7
- package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +0 -374
- package/src/views/LayoutCommercial/LayoutCommercial.tsx +0 -125
- package/src/views/LayoutCommercial/LayoutCommercial.types.ts +0 -54
- package/src/views/LayoutCommercial/README.md +0 -286
- package/src/views/LayoutCommercial/index.ts +0 -2
- package/src/views/ListView/ListView.stories.tsx +0 -329
- package/src/views/ListView/ListView.tsx +0 -570
- package/src/views/ListView/ListView.types.ts +0 -211
- package/src/views/ListView/icons.tsx +0 -282
- package/src/views/ListView/index.ts +0 -11
- package/src/views/LoginView/LoginView.stories.tsx +0 -148
- package/src/views/LoginView/LoginView.tsx +0 -426
- package/src/views/LoginView/LoginView.types.ts +0 -52
- package/src/views/LoginView/README.md +0 -396
- package/src/views/LoginView/icons.tsx +0 -85
- package/src/views/LoginView/index.ts +0 -3
- package/src/views/SignUpView/SignUpView.stories.tsx +0 -129
- package/src/views/SignUpView/SignUpView.tsx +0 -503
- package/src/views/SignUpView/SignUpView.types.ts +0 -58
- package/src/views/SignUpView/icons.tsx +0 -71
- package/src/views/SignUpView/index.ts +0 -3
|
@@ -1,312 +1,312 @@
|
|
|
1
|
-
# ProductsView
|
|
2
|
-
|
|
3
|
-
Vista completa de selección de productos para sistema POS (Punto de Venta).
|
|
4
|
-
|
|
5
|
-
## Descripción
|
|
6
|
-
|
|
7
|
-
Vista especializada para sistemas de restaurante que permite a los meseros/administradores:
|
|
8
|
-
|
|
9
|
-
- Seleccionar menús disponibles
|
|
10
|
-
- Navegar por categorías de productos
|
|
11
|
-
- Visualizar productos con imagen y precio
|
|
12
|
-
- Agregar productos al pedido
|
|
13
|
-
- Gestionar items del pedido (cantidad, eliminar)
|
|
14
|
-
- Ver resumen financiero (subtotal, impuestos, total)
|
|
15
|
-
- Confirmar el pedido final
|
|
16
|
-
|
|
17
|
-
## Estructura de la Vista
|
|
18
|
-
|
|
19
|
-
### 1. Navbar Superior (Componente Navbar)
|
|
20
|
-
- Icono de navegación (heredado del componente Navbar)
|
|
21
|
-
- Logo del negocio
|
|
22
|
-
- Información del usuario (avatar, nombre, rol)
|
|
23
|
-
- Logo de Siesa
|
|
24
|
-
- **Nota**: Utiliza el componente `Navbar` del sistema con `hideActionButtons` para ocultar carrito/notificaciones
|
|
25
|
-
|
|
26
|
-
### 2. Área de Contenido (3 columnas)
|
|
27
|
-
|
|
28
|
-
#### Columna Izquierda: Categorías
|
|
29
|
-
- Título "Categoría"
|
|
30
|
-
- Lista vertical de botones de categoría con imagen
|
|
31
|
-
- Scroll vertical si hay muchas categorías
|
|
32
|
-
- Estado activo visual para categoría seleccionada
|
|
33
|
-
|
|
34
|
-
#### Columna Central: Productos
|
|
35
|
-
- Menú de navegación con botones de menús
|
|
36
|
-
- Título "Productos"
|
|
37
|
-
- Grid de productos (4 columnas)
|
|
38
|
-
- Cada producto muestra:
|
|
39
|
-
- Imagen
|
|
40
|
-
- Nombre
|
|
41
|
-
- Precio
|
|
42
|
-
- Botón "Agregar"
|
|
43
|
-
- Scroll vertical si hay muchos productos
|
|
44
|
-
- Estados: normal, cargando, error, vacío
|
|
45
|
-
|
|
46
|
-
#### Columna Derecha: Pedido
|
|
47
|
-
- Título de la mesa (ej: "Mesa 1")
|
|
48
|
-
- Tabs: "Productos" | "Cliente"
|
|
49
|
-
- Lista de items del pedido con:
|
|
50
|
-
- Badge de categoría (color configurable)
|
|
51
|
-
- Referencia del producto
|
|
52
|
-
- Nombre del producto
|
|
53
|
-
- Precio
|
|
54
|
-
- Descripción opcional con items adicionales
|
|
55
|
-
- Control de cantidad
|
|
56
|
-
- Botón eliminar
|
|
57
|
-
- Resumen financiero:
|
|
58
|
-
- Subtotal
|
|
59
|
-
- Impuestos
|
|
60
|
-
- Total
|
|
61
|
-
- Botón "Confirmar Pedido"
|
|
62
|
-
|
|
63
|
-
## Componentes Utilizados
|
|
64
|
-
|
|
65
|
-
- **Navbar**: Barra de navegación superior con logo, usuario y logo Siesa
|
|
66
|
-
- **POSProductButton**: Botón de categoría con imagen
|
|
67
|
-
- **POSProductCard**: Card de producto con imagen, nombre, precio y botón
|
|
68
|
-
- **POSProductSidebarItems**: Item de pedido con todos sus datos
|
|
69
|
-
- **Button**: Botones de acción (Cambiar Mesa, Confirmar Pedido, Agregar)
|
|
70
|
-
- **Divider**: Separadores entre items del pedido
|
|
71
|
-
- **Quantity**: Control de cantidad en items del pedido (integrado en POSProductSidebarItems)
|
|
72
|
-
|
|
73
|
-
## Props Principales
|
|
74
|
-
|
|
75
|
-
### Datos de Menús
|
|
76
|
-
```typescript
|
|
77
|
-
menus: Menu[] // Lista de menús disponibles
|
|
78
|
-
selectedMenuId: string // ID del menú seleccionado
|
|
79
|
-
onMenuSelect: (id) => void // Handler selección de menú
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Datos de Categorías
|
|
83
|
-
```typescript
|
|
84
|
-
categories: ProductCategory[] // Lista de categorías
|
|
85
|
-
selectedCategoryId: string // ID de categoría seleccionada
|
|
86
|
-
onCategorySelect: (id) => void // Handler selección de categoría
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Datos de Productos
|
|
90
|
-
```typescript
|
|
91
|
-
products: Product[] // Lista de productos
|
|
92
|
-
onAddProduct: (id) => void // Handler agregar producto
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Datos de Pedido
|
|
96
|
-
```typescript
|
|
97
|
-
orderItems: OrderItem[] // Items del pedido
|
|
98
|
-
onOrderItemQuantityChange: (id, qty) => void // Handler cambio cantidad
|
|
99
|
-
onOrderItemDelete: (id) => void // Handler eliminar item
|
|
100
|
-
subtotal: string // Subtotal
|
|
101
|
-
taxes: string // Impuestos
|
|
102
|
-
total: string // Total
|
|
103
|
-
onConfirmOrder: () => void // Handler confirmar
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Configuración
|
|
107
|
-
```typescript
|
|
108
|
-
tableTitle: string // Título de la mesa (ej: "Mesa 1")
|
|
109
|
-
activeTab: 'products' | 'client' // Tab activo en sidebar
|
|
110
|
-
onTabChange: (tab) => void // Handler cambio de tab
|
|
111
|
-
isLoading: boolean // Estado de carga
|
|
112
|
-
errorMessage: string // Mensaje de error
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Tipos de Datos
|
|
116
|
-
|
|
117
|
-
### ProductCategory
|
|
118
|
-
```typescript
|
|
119
|
-
interface ProductCategory {
|
|
120
|
-
id: string;
|
|
121
|
-
label: string;
|
|
122
|
-
image: string;
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### Product
|
|
127
|
-
```typescript
|
|
128
|
-
interface Product {
|
|
129
|
-
id: string;
|
|
130
|
-
name: string;
|
|
131
|
-
price: string;
|
|
132
|
-
image: string;
|
|
133
|
-
categoryId: string;
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### OrderItem
|
|
138
|
-
```typescript
|
|
139
|
-
interface OrderItem {
|
|
140
|
-
productId: string;
|
|
141
|
-
productName: string;
|
|
142
|
-
categoryLabel: string;
|
|
143
|
-
categoryColor?: string;
|
|
144
|
-
productRef: string;
|
|
145
|
-
price: string;
|
|
146
|
-
quantity: number;
|
|
147
|
-
descriptionItems?: Array<{
|
|
148
|
-
description: string;
|
|
149
|
-
price: string;
|
|
150
|
-
}>;
|
|
151
|
-
}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Menu
|
|
155
|
-
```typescript
|
|
156
|
-
interface Menu {
|
|
157
|
-
id: string;
|
|
158
|
-
label: string;
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## Ejemplos de Uso
|
|
163
|
-
|
|
164
|
-
### Uso Básico
|
|
165
|
-
```tsx
|
|
166
|
-
<ProductsView
|
|
167
|
-
tableTitle="Mesa 1"
|
|
168
|
-
categories={categories}
|
|
169
|
-
products={products}
|
|
170
|
-
orderItems={orderItems}
|
|
171
|
-
onAddProduct={(id) => handleAddProduct(id)}
|
|
172
|
-
onConfirmOrder={() => handleConfirmOrder()}
|
|
173
|
-
/>
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Con Pedido Vacío
|
|
177
|
-
```tsx
|
|
178
|
-
<ProductsView
|
|
179
|
-
tableTitle="Mesa 5"
|
|
180
|
-
categories={categories}
|
|
181
|
-
products={products}
|
|
182
|
-
orderItems={[]}
|
|
183
|
-
subtotal="0.00"
|
|
184
|
-
taxes="0.00"
|
|
185
|
-
total="0.00"
|
|
186
|
-
onAddProduct={(id) => handleAddProduct(id)}
|
|
187
|
-
onConfirmOrder={() => handleConfirmOrder()}
|
|
188
|
-
/>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Con Estado de Carga
|
|
192
|
-
```tsx
|
|
193
|
-
<ProductsView
|
|
194
|
-
tableTitle="Mesa 1"
|
|
195
|
-
categories={categories}
|
|
196
|
-
products={[]}
|
|
197
|
-
isLoading={true}
|
|
198
|
-
orderItems={orderItems}
|
|
199
|
-
onAddProduct={(id) => handleAddProduct(id)}
|
|
200
|
-
onConfirmOrder={() => handleConfirmOrder()}
|
|
201
|
-
/>
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### Con Error
|
|
205
|
-
```tsx
|
|
206
|
-
<ProductsView
|
|
207
|
-
tableTitle="Mesa 1"
|
|
208
|
-
categories={categories}
|
|
209
|
-
products={[]}
|
|
210
|
-
errorMessage="Error al cargar productos. Intente nuevamente."
|
|
211
|
-
orderItems={orderItems}
|
|
212
|
-
onAddProduct={(id) => handleAddProduct(id)}
|
|
213
|
-
onConfirmOrder={() => handleConfirmOrder()}
|
|
214
|
-
/>
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Con Tab Cliente Activo
|
|
218
|
-
```tsx
|
|
219
|
-
<ProductsView
|
|
220
|
-
tableTitle="Mesa 1"
|
|
221
|
-
categories={categories}
|
|
222
|
-
products={products}
|
|
223
|
-
orderItems={orderItems}
|
|
224
|
-
activeTab="client"
|
|
225
|
-
onTabChange={(tab) => setActiveTab(tab)}
|
|
226
|
-
onAddProduct={(id) => handleAddProduct(id)}
|
|
227
|
-
onConfirmOrder={() => handleConfirmOrder()}
|
|
228
|
-
/>
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
## Estados Visuales
|
|
232
|
-
|
|
233
|
-
### 1. Vista Completa
|
|
234
|
-
- Todos los elementos visibles
|
|
235
|
-
- Productos en el grid
|
|
236
|
-
- Items en el pedido
|
|
237
|
-
- Resumen con valores
|
|
238
|
-
|
|
239
|
-
### 2. Pedido Vacío
|
|
240
|
-
- Grid de productos visible
|
|
241
|
-
- Sidebar de pedido muestra mensaje "No hay productos en el pedido"
|
|
242
|
-
- Botón "Confirmar Pedido" deshabilitado
|
|
243
|
-
|
|
244
|
-
### 3. Cargando Productos
|
|
245
|
-
- Mensaje "Cargando productos..." en área de productos
|
|
246
|
-
- Sidebar de pedido funcional
|
|
247
|
-
|
|
248
|
-
### 4. Error al Cargar
|
|
249
|
-
- Mensaje de error en área de productos
|
|
250
|
-
- Color rojo para destacar el error
|
|
251
|
-
- Sidebar de pedido funcional
|
|
252
|
-
|
|
253
|
-
### 5. Tab Cliente
|
|
254
|
-
- Sidebar cambia a mostrar información del cliente
|
|
255
|
-
- (Implementación futura)
|
|
256
|
-
|
|
257
|
-
## Flujo de Interacción
|
|
258
|
-
|
|
259
|
-
1. **Usuario selecciona menú** → `onMenuSelect(menuId)`
|
|
260
|
-
2. **Usuario selecciona categoría** → `onCategorySelect(categoryId)`
|
|
261
|
-
3. **Usuario hace clic en "Agregar" en producto** → `onAddProduct(productId)`
|
|
262
|
-
4. **Usuario cambia cantidad de item** → `onOrderItemQuantityChange(itemId, quantity)`
|
|
263
|
-
5. **Usuario elimina item** → `onOrderItemDelete(itemId)`
|
|
264
|
-
6. **Usuario confirma pedido** → `onConfirmOrder()`
|
|
265
|
-
7. **Usuario cambia de tab** → `onTabChange(tab)`
|
|
266
|
-
|
|
267
|
-
## Responsive Design
|
|
268
|
-
|
|
269
|
-
- **Desktop (≥ 768px)**: Layout de 3 columnas según Figma
|
|
270
|
-
- **Mobile (< 768px)**: Layout adaptativo vertical
|
|
271
|
-
- Categorías en sidebar izquierdo
|
|
272
|
-
- Productos en área central con scroll
|
|
273
|
-
- Pedido en sidebar derecho
|
|
274
|
-
|
|
275
|
-
## Dark Mode
|
|
276
|
-
|
|
277
|
-
Soporte completo con tokens del sistema:
|
|
278
|
-
- Fondos: `bg-white` → `dark:bg-dark-bg-primary`
|
|
279
|
-
- Textos: `text-content-primary` → `dark:text-dark-content-primary`
|
|
280
|
-
- Bordes: `border-border-primary` → `dark:border-dark-border-primary`
|
|
281
|
-
|
|
282
|
-
## Accesibilidad
|
|
283
|
-
|
|
284
|
-
- Navegación por teclado habilitada
|
|
285
|
-
- ARIA labels en botones de acción
|
|
286
|
-
- Focus rings visibles
|
|
287
|
-
- Contraste de colores según WCAG
|
|
288
|
-
|
|
289
|
-
## Notas de Implementación
|
|
290
|
-
|
|
291
|
-
1. **Grid de Productos**: Se organizan automáticamente en filas de 4 productos
|
|
292
|
-
2. **Scroll**: Áreas de categorías, productos y pedido tienen scroll independiente
|
|
293
|
-
3. **Validación**: El botón "Confirmar Pedido" se deshabilita si el pedido está vacío
|
|
294
|
-
4. **Estados**: La vista maneja estados de carga, error y vacío
|
|
295
|
-
5. **Tabs**: El tab "Cliente" está preparado para implementación futura
|
|
296
|
-
|
|
297
|
-
## Referencias
|
|
298
|
-
|
|
299
|
-
- **Figma**: [Vista Products / POS](https://www.figma.com/design/peN2etuaXX0pXJgC1yHgGk/Siesa-POS---Comandera?node-id=75-1072)
|
|
300
|
-
- **Componentes**: POSProductButton, POSProductCard, POSProductSidebarItems
|
|
301
|
-
- **Sistema de Diseño**: Siesa UI Kit
|
|
302
|
-
|
|
303
|
-
## Changelog
|
|
304
|
-
|
|
305
|
-
### v1.0.0
|
|
306
|
-
- Implementación inicial de ProductsView
|
|
307
|
-
- Soporte para menús, categorías y productos
|
|
308
|
-
- Gestión de pedido con items
|
|
309
|
-
- Resumen financiero
|
|
310
|
-
- Tabs Productos/Cliente
|
|
311
|
-
- Estados de carga y error
|
|
312
|
-
- Dark mode completo
|
|
1
|
+
# ProductsView
|
|
2
|
+
|
|
3
|
+
Vista completa de selección de productos para sistema POS (Punto de Venta).
|
|
4
|
+
|
|
5
|
+
## Descripción
|
|
6
|
+
|
|
7
|
+
Vista especializada para sistemas de restaurante que permite a los meseros/administradores:
|
|
8
|
+
|
|
9
|
+
- Seleccionar menús disponibles
|
|
10
|
+
- Navegar por categorías de productos
|
|
11
|
+
- Visualizar productos con imagen y precio
|
|
12
|
+
- Agregar productos al pedido
|
|
13
|
+
- Gestionar items del pedido (cantidad, eliminar)
|
|
14
|
+
- Ver resumen financiero (subtotal, impuestos, total)
|
|
15
|
+
- Confirmar el pedido final
|
|
16
|
+
|
|
17
|
+
## Estructura de la Vista
|
|
18
|
+
|
|
19
|
+
### 1. Navbar Superior (Componente Navbar)
|
|
20
|
+
- Icono de navegación (heredado del componente Navbar)
|
|
21
|
+
- Logo del negocio
|
|
22
|
+
- Información del usuario (avatar, nombre, rol)
|
|
23
|
+
- Logo de Siesa
|
|
24
|
+
- **Nota**: Utiliza el componente `Navbar` del sistema con `hideActionButtons` para ocultar carrito/notificaciones
|
|
25
|
+
|
|
26
|
+
### 2. Área de Contenido (3 columnas)
|
|
27
|
+
|
|
28
|
+
#### Columna Izquierda: Categorías
|
|
29
|
+
- Título "Categoría"
|
|
30
|
+
- Lista vertical de botones de categoría con imagen
|
|
31
|
+
- Scroll vertical si hay muchas categorías
|
|
32
|
+
- Estado activo visual para categoría seleccionada
|
|
33
|
+
|
|
34
|
+
#### Columna Central: Productos
|
|
35
|
+
- Menú de navegación con botones de menús
|
|
36
|
+
- Título "Productos"
|
|
37
|
+
- Grid de productos (4 columnas)
|
|
38
|
+
- Cada producto muestra:
|
|
39
|
+
- Imagen
|
|
40
|
+
- Nombre
|
|
41
|
+
- Precio
|
|
42
|
+
- Botón "Agregar"
|
|
43
|
+
- Scroll vertical si hay muchos productos
|
|
44
|
+
- Estados: normal, cargando, error, vacío
|
|
45
|
+
|
|
46
|
+
#### Columna Derecha: Pedido
|
|
47
|
+
- Título de la mesa (ej: "Mesa 1")
|
|
48
|
+
- Tabs: "Productos" | "Cliente"
|
|
49
|
+
- Lista de items del pedido con:
|
|
50
|
+
- Badge de categoría (color configurable)
|
|
51
|
+
- Referencia del producto
|
|
52
|
+
- Nombre del producto
|
|
53
|
+
- Precio
|
|
54
|
+
- Descripción opcional con items adicionales
|
|
55
|
+
- Control de cantidad
|
|
56
|
+
- Botón eliminar
|
|
57
|
+
- Resumen financiero:
|
|
58
|
+
- Subtotal
|
|
59
|
+
- Impuestos
|
|
60
|
+
- Total
|
|
61
|
+
- Botón "Confirmar Pedido"
|
|
62
|
+
|
|
63
|
+
## Componentes Utilizados
|
|
64
|
+
|
|
65
|
+
- **Navbar**: Barra de navegación superior con logo, usuario y logo Siesa
|
|
66
|
+
- **POSProductButton**: Botón de categoría con imagen
|
|
67
|
+
- **POSProductCard**: Card de producto con imagen, nombre, precio y botón
|
|
68
|
+
- **POSProductSidebarItems**: Item de pedido con todos sus datos
|
|
69
|
+
- **Button**: Botones de acción (Cambiar Mesa, Confirmar Pedido, Agregar)
|
|
70
|
+
- **Divider**: Separadores entre items del pedido
|
|
71
|
+
- **Quantity**: Control de cantidad en items del pedido (integrado en POSProductSidebarItems)
|
|
72
|
+
|
|
73
|
+
## Props Principales
|
|
74
|
+
|
|
75
|
+
### Datos de Menús
|
|
76
|
+
```typescript
|
|
77
|
+
menus: Menu[] // Lista de menús disponibles
|
|
78
|
+
selectedMenuId: string // ID del menú seleccionado
|
|
79
|
+
onMenuSelect: (id) => void // Handler selección de menú
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Datos de Categorías
|
|
83
|
+
```typescript
|
|
84
|
+
categories: ProductCategory[] // Lista de categorías
|
|
85
|
+
selectedCategoryId: string // ID de categoría seleccionada
|
|
86
|
+
onCategorySelect: (id) => void // Handler selección de categoría
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Datos de Productos
|
|
90
|
+
```typescript
|
|
91
|
+
products: Product[] // Lista de productos
|
|
92
|
+
onAddProduct: (id) => void // Handler agregar producto
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Datos de Pedido
|
|
96
|
+
```typescript
|
|
97
|
+
orderItems: OrderItem[] // Items del pedido
|
|
98
|
+
onOrderItemQuantityChange: (id, qty) => void // Handler cambio cantidad
|
|
99
|
+
onOrderItemDelete: (id) => void // Handler eliminar item
|
|
100
|
+
subtotal: string // Subtotal
|
|
101
|
+
taxes: string // Impuestos
|
|
102
|
+
total: string // Total
|
|
103
|
+
onConfirmOrder: () => void // Handler confirmar
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Configuración
|
|
107
|
+
```typescript
|
|
108
|
+
tableTitle: string // Título de la mesa (ej: "Mesa 1")
|
|
109
|
+
activeTab: 'products' | 'client' // Tab activo en sidebar
|
|
110
|
+
onTabChange: (tab) => void // Handler cambio de tab
|
|
111
|
+
isLoading: boolean // Estado de carga
|
|
112
|
+
errorMessage: string // Mensaje de error
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Tipos de Datos
|
|
116
|
+
|
|
117
|
+
### ProductCategory
|
|
118
|
+
```typescript
|
|
119
|
+
interface ProductCategory {
|
|
120
|
+
id: string;
|
|
121
|
+
label: string;
|
|
122
|
+
image: string;
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Product
|
|
127
|
+
```typescript
|
|
128
|
+
interface Product {
|
|
129
|
+
id: string;
|
|
130
|
+
name: string;
|
|
131
|
+
price: string;
|
|
132
|
+
image: string;
|
|
133
|
+
categoryId: string;
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### OrderItem
|
|
138
|
+
```typescript
|
|
139
|
+
interface OrderItem {
|
|
140
|
+
productId: string;
|
|
141
|
+
productName: string;
|
|
142
|
+
categoryLabel: string;
|
|
143
|
+
categoryColor?: string;
|
|
144
|
+
productRef: string;
|
|
145
|
+
price: string;
|
|
146
|
+
quantity: number;
|
|
147
|
+
descriptionItems?: Array<{
|
|
148
|
+
description: string;
|
|
149
|
+
price: string;
|
|
150
|
+
}>;
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Menu
|
|
155
|
+
```typescript
|
|
156
|
+
interface Menu {
|
|
157
|
+
id: string;
|
|
158
|
+
label: string;
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Ejemplos de Uso
|
|
163
|
+
|
|
164
|
+
### Uso Básico
|
|
165
|
+
```tsx
|
|
166
|
+
<ProductsView
|
|
167
|
+
tableTitle="Mesa 1"
|
|
168
|
+
categories={categories}
|
|
169
|
+
products={products}
|
|
170
|
+
orderItems={orderItems}
|
|
171
|
+
onAddProduct={(id) => handleAddProduct(id)}
|
|
172
|
+
onConfirmOrder={() => handleConfirmOrder()}
|
|
173
|
+
/>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Con Pedido Vacío
|
|
177
|
+
```tsx
|
|
178
|
+
<ProductsView
|
|
179
|
+
tableTitle="Mesa 5"
|
|
180
|
+
categories={categories}
|
|
181
|
+
products={products}
|
|
182
|
+
orderItems={[]}
|
|
183
|
+
subtotal="0.00"
|
|
184
|
+
taxes="0.00"
|
|
185
|
+
total="0.00"
|
|
186
|
+
onAddProduct={(id) => handleAddProduct(id)}
|
|
187
|
+
onConfirmOrder={() => handleConfirmOrder()}
|
|
188
|
+
/>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Con Estado de Carga
|
|
192
|
+
```tsx
|
|
193
|
+
<ProductsView
|
|
194
|
+
tableTitle="Mesa 1"
|
|
195
|
+
categories={categories}
|
|
196
|
+
products={[]}
|
|
197
|
+
isLoading={true}
|
|
198
|
+
orderItems={orderItems}
|
|
199
|
+
onAddProduct={(id) => handleAddProduct(id)}
|
|
200
|
+
onConfirmOrder={() => handleConfirmOrder()}
|
|
201
|
+
/>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Con Error
|
|
205
|
+
```tsx
|
|
206
|
+
<ProductsView
|
|
207
|
+
tableTitle="Mesa 1"
|
|
208
|
+
categories={categories}
|
|
209
|
+
products={[]}
|
|
210
|
+
errorMessage="Error al cargar productos. Intente nuevamente."
|
|
211
|
+
orderItems={orderItems}
|
|
212
|
+
onAddProduct={(id) => handleAddProduct(id)}
|
|
213
|
+
onConfirmOrder={() => handleConfirmOrder()}
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Con Tab Cliente Activo
|
|
218
|
+
```tsx
|
|
219
|
+
<ProductsView
|
|
220
|
+
tableTitle="Mesa 1"
|
|
221
|
+
categories={categories}
|
|
222
|
+
products={products}
|
|
223
|
+
orderItems={orderItems}
|
|
224
|
+
activeTab="client"
|
|
225
|
+
onTabChange={(tab) => setActiveTab(tab)}
|
|
226
|
+
onAddProduct={(id) => handleAddProduct(id)}
|
|
227
|
+
onConfirmOrder={() => handleConfirmOrder()}
|
|
228
|
+
/>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Estados Visuales
|
|
232
|
+
|
|
233
|
+
### 1. Vista Completa
|
|
234
|
+
- Todos los elementos visibles
|
|
235
|
+
- Productos en el grid
|
|
236
|
+
- Items en el pedido
|
|
237
|
+
- Resumen con valores
|
|
238
|
+
|
|
239
|
+
### 2. Pedido Vacío
|
|
240
|
+
- Grid de productos visible
|
|
241
|
+
- Sidebar de pedido muestra mensaje "No hay productos en el pedido"
|
|
242
|
+
- Botón "Confirmar Pedido" deshabilitado
|
|
243
|
+
|
|
244
|
+
### 3. Cargando Productos
|
|
245
|
+
- Mensaje "Cargando productos..." en área de productos
|
|
246
|
+
- Sidebar de pedido funcional
|
|
247
|
+
|
|
248
|
+
### 4. Error al Cargar
|
|
249
|
+
- Mensaje de error en área de productos
|
|
250
|
+
- Color rojo para destacar el error
|
|
251
|
+
- Sidebar de pedido funcional
|
|
252
|
+
|
|
253
|
+
### 5. Tab Cliente
|
|
254
|
+
- Sidebar cambia a mostrar información del cliente
|
|
255
|
+
- (Implementación futura)
|
|
256
|
+
|
|
257
|
+
## Flujo de Interacción
|
|
258
|
+
|
|
259
|
+
1. **Usuario selecciona menú** → `onMenuSelect(menuId)`
|
|
260
|
+
2. **Usuario selecciona categoría** → `onCategorySelect(categoryId)`
|
|
261
|
+
3. **Usuario hace clic en "Agregar" en producto** → `onAddProduct(productId)`
|
|
262
|
+
4. **Usuario cambia cantidad de item** → `onOrderItemQuantityChange(itemId, quantity)`
|
|
263
|
+
5. **Usuario elimina item** → `onOrderItemDelete(itemId)`
|
|
264
|
+
6. **Usuario confirma pedido** → `onConfirmOrder()`
|
|
265
|
+
7. **Usuario cambia de tab** → `onTabChange(tab)`
|
|
266
|
+
|
|
267
|
+
## Responsive Design
|
|
268
|
+
|
|
269
|
+
- **Desktop (≥ 768px)**: Layout de 3 columnas según Figma
|
|
270
|
+
- **Mobile (< 768px)**: Layout adaptativo vertical
|
|
271
|
+
- Categorías en sidebar izquierdo
|
|
272
|
+
- Productos en área central con scroll
|
|
273
|
+
- Pedido en sidebar derecho
|
|
274
|
+
|
|
275
|
+
## Dark Mode
|
|
276
|
+
|
|
277
|
+
Soporte completo con tokens del sistema:
|
|
278
|
+
- Fondos: `bg-white` → `dark:bg-dark-bg-primary`
|
|
279
|
+
- Textos: `text-content-primary` → `dark:text-dark-content-primary`
|
|
280
|
+
- Bordes: `border-border-primary` → `dark:border-dark-border-primary`
|
|
281
|
+
|
|
282
|
+
## Accesibilidad
|
|
283
|
+
|
|
284
|
+
- Navegación por teclado habilitada
|
|
285
|
+
- ARIA labels en botones de acción
|
|
286
|
+
- Focus rings visibles
|
|
287
|
+
- Contraste de colores según WCAG
|
|
288
|
+
|
|
289
|
+
## Notas de Implementación
|
|
290
|
+
|
|
291
|
+
1. **Grid de Productos**: Se organizan automáticamente en filas de 4 productos
|
|
292
|
+
2. **Scroll**: Áreas de categorías, productos y pedido tienen scroll independiente
|
|
293
|
+
3. **Validación**: El botón "Confirmar Pedido" se deshabilita si el pedido está vacío
|
|
294
|
+
4. **Estados**: La vista maneja estados de carga, error y vacío
|
|
295
|
+
5. **Tabs**: El tab "Cliente" está preparado para implementación futura
|
|
296
|
+
|
|
297
|
+
## Referencias
|
|
298
|
+
|
|
299
|
+
- **Figma**: [Vista Products / POS](https://www.figma.com/design/peN2etuaXX0pXJgC1yHgGk/Siesa-POS---Comandera?node-id=75-1072)
|
|
300
|
+
- **Componentes**: POSProductButton, POSProductCard, POSProductSidebarItems
|
|
301
|
+
- **Sistema de Diseño**: Siesa UI Kit
|
|
302
|
+
|
|
303
|
+
## Changelog
|
|
304
|
+
|
|
305
|
+
### v1.0.0
|
|
306
|
+
- Implementación inicial de ProductsView
|
|
307
|
+
- Soporte para menús, categorías y productos
|
|
308
|
+
- Gestión de pedido con items
|
|
309
|
+
- Resumen financiero
|
|
310
|
+
- Tabs Productos/Cliente
|
|
311
|
+
- Estados de carga y error
|
|
312
|
+
- Dark mode completo
|