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,268 +1,268 @@
|
|
|
1
|
-
# TableLayoutView
|
|
2
|
-
|
|
3
|
-
Vista completa de administración de layout de mesas para restaurantes (sistema POS).
|
|
4
|
-
|
|
5
|
-
## Descripción
|
|
6
|
-
|
|
7
|
-
TableLayoutView es una vista pixel-perfect según especificaciones de Figma que proporciona una interfaz completa para gestionar el layout de mesas de un restaurante. Incluye:
|
|
8
|
-
|
|
9
|
-
- **Navbar superior**: Con información de usuario y acciones
|
|
10
|
-
- **Sidebar izquierdo (245px)**: Lista de salones/ubicaciones con sus estados
|
|
11
|
-
- **Área central (flex)**: Grid de mesas con controles de gestión y leyenda
|
|
12
|
-
- **Sidebar derecho (304px)**: Panel de selección de cantidad de personas (condicional)
|
|
13
|
-
|
|
14
|
-
## Características
|
|
15
|
-
|
|
16
|
-
- ✅ Layout responsive (mobile-first)
|
|
17
|
-
- ✅ Dark mode completo
|
|
18
|
-
- ✅ Múltiples estados visuales para mesas (disponible, ocupada, reservada, fuera de servicio)
|
|
19
|
-
- ✅ Posicionamiento libre de mesas con coordenadas
|
|
20
|
-
- ✅ Panel de teclado numérico para selección de personas
|
|
21
|
-
- ✅ Callbacks para todas las acciones principales
|
|
22
|
-
- ✅ Estados de carga y error
|
|
23
|
-
- ✅ TypeScript strict
|
|
24
|
-
- ✅ Accesibilidad (ARIA labels)
|
|
25
|
-
|
|
26
|
-
## Uso Básico
|
|
27
|
-
|
|
28
|
-
```tsx
|
|
29
|
-
import { TableLayoutView } from './views/TableLayoutView';
|
|
30
|
-
|
|
31
|
-
function App() {
|
|
32
|
-
const [activeLocation, setActiveLocation] = useState('1');
|
|
33
|
-
const [selectedTable, setSelectedTable] = useState<string | null>(null);
|
|
34
|
-
|
|
35
|
-
const locations = [
|
|
36
|
-
{ id: '1', name: 'Antejardín', status: 'available', capacity: { current: 1, total: 8 } },
|
|
37
|
-
{ id: '2', name: 'Terraza', status: 'occupied', capacity: { current: 8, total: 8 } },
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
const tables = [
|
|
41
|
-
{
|
|
42
|
-
tableNumber: '01',
|
|
43
|
-
status: 'available',
|
|
44
|
-
shape: 'square',
|
|
45
|
-
chairs: 8,
|
|
46
|
-
position: { x: 25, y: 30 },
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
tableNumber: '02',
|
|
50
|
-
status: 'occupied',
|
|
51
|
-
shape: 'circle',
|
|
52
|
-
chairs: 4,
|
|
53
|
-
position: { x: 50, y: 30 },
|
|
54
|
-
},
|
|
55
|
-
];
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<TableLayoutView
|
|
59
|
-
locations={locations}
|
|
60
|
-
activeLocationId={activeLocation}
|
|
61
|
-
tables={tables}
|
|
62
|
-
tablesTitle="Mesas de Antejardín"
|
|
63
|
-
showPeopleCountPanel={!!selectedTable}
|
|
64
|
-
userInfo={{
|
|
65
|
-
avatar: '/path/to/avatar.jpg',
|
|
66
|
-
name: 'Juan Pérez',
|
|
67
|
-
role: 'Administrador',
|
|
68
|
-
}}
|
|
69
|
-
onLocationSelect={setActiveLocation}
|
|
70
|
-
onTableSelect={setSelectedTable}
|
|
71
|
-
onCreateTables={() => console.log('Crear mesas')}
|
|
72
|
-
onAssignTable={() => console.log('Asignar mesa')}
|
|
73
|
-
/>
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Props
|
|
79
|
-
|
|
80
|
-
### Datos de Ubicaciones
|
|
81
|
-
|
|
82
|
-
- **locations** (`Location[]`): Lista de salones/ubicaciones
|
|
83
|
-
- **activeLocationId** (`string`): ID de la ubicación actualmente seleccionada
|
|
84
|
-
- **tables** (`TableItem[]`): Lista de mesas en el layout actual
|
|
85
|
-
- **tablesTitle** (`string`): Título del área de mesas (default: "Mesas de Antejardín")
|
|
86
|
-
|
|
87
|
-
### Panel de Personas
|
|
88
|
-
|
|
89
|
-
- **showPeopleCountPanel** (`boolean`): Si se muestra el panel de selección de personas
|
|
90
|
-
- **selectedTable** (`{ locationName: string; tableName: string }`): Info de la mesa seleccionada
|
|
91
|
-
- **peopleCount** (`number`): Cantidad de personas seleccionada
|
|
92
|
-
|
|
93
|
-
### Callbacks de Acciones
|
|
94
|
-
|
|
95
|
-
- **onLocationSelect** (`(locationId: string) => void`): Al seleccionar una ubicación
|
|
96
|
-
- **onTableSelect** (`(tableNumber: string) => void`): Al seleccionar una mesa
|
|
97
|
-
- **onCreateTables** (`() => void`): Al hacer clic en "Crear Mesas"
|
|
98
|
-
- **onMergeTables** (`() => void`): Al hacer clic en "Unir Mesas"
|
|
99
|
-
- **onSplitTables** (`() => void`): Al hacer clic en "Separar Mesas"
|
|
100
|
-
- **onPeopleCountSelect** (`(count: number) => void`): Al seleccionar cantidad de personas
|
|
101
|
-
- **onAssignTable** (`() => void`): Al hacer clic en "Asignar"
|
|
102
|
-
- **onTransferTable** (`() => void`): Al hacer clic en "Transferir"
|
|
103
|
-
- **onSetCutlery** (`() => void`): Al hacer clic en "Cubiertos"
|
|
104
|
-
- **onClosePeoplePanel** (`() => void`): Al cerrar el panel de personas
|
|
105
|
-
- **onTableSwitchChange** (`(checked: boolean) => void`): Al cambiar el switch de mesa
|
|
106
|
-
|
|
107
|
-
### Estados
|
|
108
|
-
|
|
109
|
-
- **isLoading** (`boolean`): Si se está cargando información
|
|
110
|
-
- **errorMessage** (`string`): Mensaje de error (si existe)
|
|
111
|
-
|
|
112
|
-
### Customización
|
|
113
|
-
|
|
114
|
-
- **className** (`string`): Clases CSS adicionales
|
|
115
|
-
- **userInfo** (`{ avatar: string; name: string; role: string }`): Información del usuario para navbar
|
|
116
|
-
|
|
117
|
-
## Tipos de Datos
|
|
118
|
-
|
|
119
|
-
### Location
|
|
120
|
-
|
|
121
|
-
```typescript
|
|
122
|
-
interface Location {
|
|
123
|
-
id: string;
|
|
124
|
-
name: string;
|
|
125
|
-
status: 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
126
|
-
capacity: {
|
|
127
|
-
current: number;
|
|
128
|
-
total: number;
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### TableItem
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
interface TableItem {
|
|
137
|
-
tableNumber: string;
|
|
138
|
-
status: 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
139
|
-
shape: 'square' | 'circle' | 'rectangle' | 'oval';
|
|
140
|
-
chairs: 2 | 4 | 6 | 8;
|
|
141
|
-
isActive?: boolean;
|
|
142
|
-
position?: {
|
|
143
|
-
x: number; // Porcentaje 0-100
|
|
144
|
-
y: number; // Porcentaje 0-100
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Ejemplos de Uso
|
|
150
|
-
|
|
151
|
-
### Vista Completa (con panel de personas)
|
|
152
|
-
|
|
153
|
-
```tsx
|
|
154
|
-
<TableLayoutView
|
|
155
|
-
locations={locations}
|
|
156
|
-
activeLocationId="1"
|
|
157
|
-
tables={tables}
|
|
158
|
-
tablesTitle="Mesas de Antejardín"
|
|
159
|
-
showPeopleCountPanel={true}
|
|
160
|
-
selectedTable={{
|
|
161
|
-
locationName: 'Antejardín',
|
|
162
|
-
tableName: 'Mesa 1',
|
|
163
|
-
}}
|
|
164
|
-
userInfo={userInfo}
|
|
165
|
-
onPeopleCountSelect={(count) => console.log('Personas:', count)}
|
|
166
|
-
onAssignTable={() => console.log('Asignar')}
|
|
167
|
-
/>
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Vista sin Panel de Personas
|
|
171
|
-
|
|
172
|
-
```tsx
|
|
173
|
-
<TableLayoutView
|
|
174
|
-
locations={locations}
|
|
175
|
-
activeLocationId="1"
|
|
176
|
-
tables={tables}
|
|
177
|
-
showPeopleCountPanel={false}
|
|
178
|
-
userInfo={userInfo}
|
|
179
|
-
/>
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Estado de Carga
|
|
183
|
-
|
|
184
|
-
```tsx
|
|
185
|
-
<TableLayoutView
|
|
186
|
-
locations={[]}
|
|
187
|
-
tables={[]}
|
|
188
|
-
isLoading={true}
|
|
189
|
-
userInfo={userInfo}
|
|
190
|
-
/>
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### Estado de Error
|
|
194
|
-
|
|
195
|
-
```tsx
|
|
196
|
-
<TableLayoutView
|
|
197
|
-
locations={locations}
|
|
198
|
-
activeLocationId="1"
|
|
199
|
-
tables={[]}
|
|
200
|
-
errorMessage="Error al cargar las mesas"
|
|
201
|
-
userInfo={userInfo}
|
|
202
|
-
/>
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Posicionamiento de Mesas
|
|
206
|
-
|
|
207
|
-
Las mesas usan un sistema de coordenadas porcentuales (0-100) para posicionamiento libre:
|
|
208
|
-
|
|
209
|
-
```typescript
|
|
210
|
-
const tables: TableItem[] = [
|
|
211
|
-
{
|
|
212
|
-
tableNumber: '01',
|
|
213
|
-
status: 'available',
|
|
214
|
-
shape: 'square',
|
|
215
|
-
chairs: 8,
|
|
216
|
-
position: { x: 25, y: 30 }, // 25% desde izquierda, 30% desde arriba
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
tableNumber: '02',
|
|
220
|
-
status: 'occupied',
|
|
221
|
-
shape: 'circle',
|
|
222
|
-
chairs: 4,
|
|
223
|
-
position: { x: 75, y: 70 }, // 75% desde izquierda, 70% desde arriba
|
|
224
|
-
},
|
|
225
|
-
];
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## Estados Visuales de Mesas
|
|
229
|
-
|
|
230
|
-
- **available** (Disponible): Verde/Lime
|
|
231
|
-
- **occupied** (Ocupada): Naranja/Yellow
|
|
232
|
-
- **reserved** (Reservada): Morado/Purple
|
|
233
|
-
- **outOfService** (Fuera de servicio): Gris/Zinc
|
|
234
|
-
|
|
235
|
-
## Responsive Design
|
|
236
|
-
|
|
237
|
-
La vista es completamente responsive:
|
|
238
|
-
|
|
239
|
-
- **Mobile**: Las tres columnas se apilan verticalmente
|
|
240
|
-
- **Desktop**: Layout de 3 columnas (245px + flex + 304px)
|
|
241
|
-
|
|
242
|
-
## Dark Mode
|
|
243
|
-
|
|
244
|
-
Todos los elementos tienen soporte completo para dark mode con tokens del sistema.
|
|
245
|
-
|
|
246
|
-
## Accesibilidad
|
|
247
|
-
|
|
248
|
-
- ARIA labels en botones y acciones
|
|
249
|
-
- Navegación por teclado en todos los elementos interactivos
|
|
250
|
-
- Estados de focus visibles
|
|
251
|
-
- Contraste de colores según WCAG
|
|
252
|
-
|
|
253
|
-
## Componentes Relacionados
|
|
254
|
-
|
|
255
|
-
- `POSLocationButton`: Botones de salones en sidebar izquierdo
|
|
256
|
-
- `POSTable`: Visualización de mesas con sillas
|
|
257
|
-
- `POSNumberButton`: Teclado numérico para cantidad de personas
|
|
258
|
-
- `POSConvention`: Leyendas de convención de colores
|
|
259
|
-
- `Switch`: Selector de mesa en panel de personas
|
|
260
|
-
- `Button`: Botones de acción
|
|
261
|
-
- `Navbar`: Barra de navegación superior
|
|
262
|
-
|
|
263
|
-
## Notas Técnicas
|
|
264
|
-
|
|
265
|
-
- Diseño pixel-perfect según especificaciones de Figma
|
|
266
|
-
- Usa tokens del sistema para colores, espaciados y tipografía
|
|
267
|
-
- TypeScript strict para type safety
|
|
268
|
-
- Componentes reutilizables del sistema de diseño
|
|
1
|
+
# TableLayoutView
|
|
2
|
+
|
|
3
|
+
Vista completa de administración de layout de mesas para restaurantes (sistema POS).
|
|
4
|
+
|
|
5
|
+
## Descripción
|
|
6
|
+
|
|
7
|
+
TableLayoutView es una vista pixel-perfect según especificaciones de Figma que proporciona una interfaz completa para gestionar el layout de mesas de un restaurante. Incluye:
|
|
8
|
+
|
|
9
|
+
- **Navbar superior**: Con información de usuario y acciones
|
|
10
|
+
- **Sidebar izquierdo (245px)**: Lista de salones/ubicaciones con sus estados
|
|
11
|
+
- **Área central (flex)**: Grid de mesas con controles de gestión y leyenda
|
|
12
|
+
- **Sidebar derecho (304px)**: Panel de selección de cantidad de personas (condicional)
|
|
13
|
+
|
|
14
|
+
## Características
|
|
15
|
+
|
|
16
|
+
- ✅ Layout responsive (mobile-first)
|
|
17
|
+
- ✅ Dark mode completo
|
|
18
|
+
- ✅ Múltiples estados visuales para mesas (disponible, ocupada, reservada, fuera de servicio)
|
|
19
|
+
- ✅ Posicionamiento libre de mesas con coordenadas
|
|
20
|
+
- ✅ Panel de teclado numérico para selección de personas
|
|
21
|
+
- ✅ Callbacks para todas las acciones principales
|
|
22
|
+
- ✅ Estados de carga y error
|
|
23
|
+
- ✅ TypeScript strict
|
|
24
|
+
- ✅ Accesibilidad (ARIA labels)
|
|
25
|
+
|
|
26
|
+
## Uso Básico
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import { TableLayoutView } from './views/TableLayoutView';
|
|
30
|
+
|
|
31
|
+
function App() {
|
|
32
|
+
const [activeLocation, setActiveLocation] = useState('1');
|
|
33
|
+
const [selectedTable, setSelectedTable] = useState<string | null>(null);
|
|
34
|
+
|
|
35
|
+
const locations = [
|
|
36
|
+
{ id: '1', name: 'Antejardín', status: 'available', capacity: { current: 1, total: 8 } },
|
|
37
|
+
{ id: '2', name: 'Terraza', status: 'occupied', capacity: { current: 8, total: 8 } },
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
const tables = [
|
|
41
|
+
{
|
|
42
|
+
tableNumber: '01',
|
|
43
|
+
status: 'available',
|
|
44
|
+
shape: 'square',
|
|
45
|
+
chairs: 8,
|
|
46
|
+
position: { x: 25, y: 30 },
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
tableNumber: '02',
|
|
50
|
+
status: 'occupied',
|
|
51
|
+
shape: 'circle',
|
|
52
|
+
chairs: 4,
|
|
53
|
+
position: { x: 50, y: 30 },
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<TableLayoutView
|
|
59
|
+
locations={locations}
|
|
60
|
+
activeLocationId={activeLocation}
|
|
61
|
+
tables={tables}
|
|
62
|
+
tablesTitle="Mesas de Antejardín"
|
|
63
|
+
showPeopleCountPanel={!!selectedTable}
|
|
64
|
+
userInfo={{
|
|
65
|
+
avatar: '/path/to/avatar.jpg',
|
|
66
|
+
name: 'Juan Pérez',
|
|
67
|
+
role: 'Administrador',
|
|
68
|
+
}}
|
|
69
|
+
onLocationSelect={setActiveLocation}
|
|
70
|
+
onTableSelect={setSelectedTable}
|
|
71
|
+
onCreateTables={() => console.log('Crear mesas')}
|
|
72
|
+
onAssignTable={() => console.log('Asignar mesa')}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Props
|
|
79
|
+
|
|
80
|
+
### Datos de Ubicaciones
|
|
81
|
+
|
|
82
|
+
- **locations** (`Location[]`): Lista de salones/ubicaciones
|
|
83
|
+
- **activeLocationId** (`string`): ID de la ubicación actualmente seleccionada
|
|
84
|
+
- **tables** (`TableItem[]`): Lista de mesas en el layout actual
|
|
85
|
+
- **tablesTitle** (`string`): Título del área de mesas (default: "Mesas de Antejardín")
|
|
86
|
+
|
|
87
|
+
### Panel de Personas
|
|
88
|
+
|
|
89
|
+
- **showPeopleCountPanel** (`boolean`): Si se muestra el panel de selección de personas
|
|
90
|
+
- **selectedTable** (`{ locationName: string; tableName: string }`): Info de la mesa seleccionada
|
|
91
|
+
- **peopleCount** (`number`): Cantidad de personas seleccionada
|
|
92
|
+
|
|
93
|
+
### Callbacks de Acciones
|
|
94
|
+
|
|
95
|
+
- **onLocationSelect** (`(locationId: string) => void`): Al seleccionar una ubicación
|
|
96
|
+
- **onTableSelect** (`(tableNumber: string) => void`): Al seleccionar una mesa
|
|
97
|
+
- **onCreateTables** (`() => void`): Al hacer clic en "Crear Mesas"
|
|
98
|
+
- **onMergeTables** (`() => void`): Al hacer clic en "Unir Mesas"
|
|
99
|
+
- **onSplitTables** (`() => void`): Al hacer clic en "Separar Mesas"
|
|
100
|
+
- **onPeopleCountSelect** (`(count: number) => void`): Al seleccionar cantidad de personas
|
|
101
|
+
- **onAssignTable** (`() => void`): Al hacer clic en "Asignar"
|
|
102
|
+
- **onTransferTable** (`() => void`): Al hacer clic en "Transferir"
|
|
103
|
+
- **onSetCutlery** (`() => void`): Al hacer clic en "Cubiertos"
|
|
104
|
+
- **onClosePeoplePanel** (`() => void`): Al cerrar el panel de personas
|
|
105
|
+
- **onTableSwitchChange** (`(checked: boolean) => void`): Al cambiar el switch de mesa
|
|
106
|
+
|
|
107
|
+
### Estados
|
|
108
|
+
|
|
109
|
+
- **isLoading** (`boolean`): Si se está cargando información
|
|
110
|
+
- **errorMessage** (`string`): Mensaje de error (si existe)
|
|
111
|
+
|
|
112
|
+
### Customización
|
|
113
|
+
|
|
114
|
+
- **className** (`string`): Clases CSS adicionales
|
|
115
|
+
- **userInfo** (`{ avatar: string; name: string; role: string }`): Información del usuario para navbar
|
|
116
|
+
|
|
117
|
+
## Tipos de Datos
|
|
118
|
+
|
|
119
|
+
### Location
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
interface Location {
|
|
123
|
+
id: string;
|
|
124
|
+
name: string;
|
|
125
|
+
status: 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
126
|
+
capacity: {
|
|
127
|
+
current: number;
|
|
128
|
+
total: number;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### TableItem
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
interface TableItem {
|
|
137
|
+
tableNumber: string;
|
|
138
|
+
status: 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
139
|
+
shape: 'square' | 'circle' | 'rectangle' | 'oval';
|
|
140
|
+
chairs: 2 | 4 | 6 | 8;
|
|
141
|
+
isActive?: boolean;
|
|
142
|
+
position?: {
|
|
143
|
+
x: number; // Porcentaje 0-100
|
|
144
|
+
y: number; // Porcentaje 0-100
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Ejemplos de Uso
|
|
150
|
+
|
|
151
|
+
### Vista Completa (con panel de personas)
|
|
152
|
+
|
|
153
|
+
```tsx
|
|
154
|
+
<TableLayoutView
|
|
155
|
+
locations={locations}
|
|
156
|
+
activeLocationId="1"
|
|
157
|
+
tables={tables}
|
|
158
|
+
tablesTitle="Mesas de Antejardín"
|
|
159
|
+
showPeopleCountPanel={true}
|
|
160
|
+
selectedTable={{
|
|
161
|
+
locationName: 'Antejardín',
|
|
162
|
+
tableName: 'Mesa 1',
|
|
163
|
+
}}
|
|
164
|
+
userInfo={userInfo}
|
|
165
|
+
onPeopleCountSelect={(count) => console.log('Personas:', count)}
|
|
166
|
+
onAssignTable={() => console.log('Asignar')}
|
|
167
|
+
/>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Vista sin Panel de Personas
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
<TableLayoutView
|
|
174
|
+
locations={locations}
|
|
175
|
+
activeLocationId="1"
|
|
176
|
+
tables={tables}
|
|
177
|
+
showPeopleCountPanel={false}
|
|
178
|
+
userInfo={userInfo}
|
|
179
|
+
/>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Estado de Carga
|
|
183
|
+
|
|
184
|
+
```tsx
|
|
185
|
+
<TableLayoutView
|
|
186
|
+
locations={[]}
|
|
187
|
+
tables={[]}
|
|
188
|
+
isLoading={true}
|
|
189
|
+
userInfo={userInfo}
|
|
190
|
+
/>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Estado de Error
|
|
194
|
+
|
|
195
|
+
```tsx
|
|
196
|
+
<TableLayoutView
|
|
197
|
+
locations={locations}
|
|
198
|
+
activeLocationId="1"
|
|
199
|
+
tables={[]}
|
|
200
|
+
errorMessage="Error al cargar las mesas"
|
|
201
|
+
userInfo={userInfo}
|
|
202
|
+
/>
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Posicionamiento de Mesas
|
|
206
|
+
|
|
207
|
+
Las mesas usan un sistema de coordenadas porcentuales (0-100) para posicionamiento libre:
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
const tables: TableItem[] = [
|
|
211
|
+
{
|
|
212
|
+
tableNumber: '01',
|
|
213
|
+
status: 'available',
|
|
214
|
+
shape: 'square',
|
|
215
|
+
chairs: 8,
|
|
216
|
+
position: { x: 25, y: 30 }, // 25% desde izquierda, 30% desde arriba
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
tableNumber: '02',
|
|
220
|
+
status: 'occupied',
|
|
221
|
+
shape: 'circle',
|
|
222
|
+
chairs: 4,
|
|
223
|
+
position: { x: 75, y: 70 }, // 75% desde izquierda, 70% desde arriba
|
|
224
|
+
},
|
|
225
|
+
];
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Estados Visuales de Mesas
|
|
229
|
+
|
|
230
|
+
- **available** (Disponible): Verde/Lime
|
|
231
|
+
- **occupied** (Ocupada): Naranja/Yellow
|
|
232
|
+
- **reserved** (Reservada): Morado/Purple
|
|
233
|
+
- **outOfService** (Fuera de servicio): Gris/Zinc
|
|
234
|
+
|
|
235
|
+
## Responsive Design
|
|
236
|
+
|
|
237
|
+
La vista es completamente responsive:
|
|
238
|
+
|
|
239
|
+
- **Mobile**: Las tres columnas se apilan verticalmente
|
|
240
|
+
- **Desktop**: Layout de 3 columnas (245px + flex + 304px)
|
|
241
|
+
|
|
242
|
+
## Dark Mode
|
|
243
|
+
|
|
244
|
+
Todos los elementos tienen soporte completo para dark mode con tokens del sistema.
|
|
245
|
+
|
|
246
|
+
## Accesibilidad
|
|
247
|
+
|
|
248
|
+
- ARIA labels en botones y acciones
|
|
249
|
+
- Navegación por teclado en todos los elementos interactivos
|
|
250
|
+
- Estados de focus visibles
|
|
251
|
+
- Contraste de colores según WCAG
|
|
252
|
+
|
|
253
|
+
## Componentes Relacionados
|
|
254
|
+
|
|
255
|
+
- `POSLocationButton`: Botones de salones en sidebar izquierdo
|
|
256
|
+
- `POSTable`: Visualización de mesas con sillas
|
|
257
|
+
- `POSNumberButton`: Teclado numérico para cantidad de personas
|
|
258
|
+
- `POSConvention`: Leyendas de convención de colores
|
|
259
|
+
- `Switch`: Selector de mesa en panel de personas
|
|
260
|
+
- `Button`: Botones de acción
|
|
261
|
+
- `Navbar`: Barra de navegación superior
|
|
262
|
+
|
|
263
|
+
## Notas Técnicas
|
|
264
|
+
|
|
265
|
+
- Diseño pixel-perfect según especificaciones de Figma
|
|
266
|
+
- Usa tokens del sistema para colores, espaciados y tipografía
|
|
267
|
+
- TypeScript strict para type safety
|
|
268
|
+
- Componentes reutilizables del sistema de diseño
|