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,253 +1,253 @@
|
|
|
1
|
-
# POSLocationButton
|
|
2
|
-
|
|
3
|
-
Botón especializado para punto de venta (POS) que muestra el estado de disponibilidad de una ubicación física (mesa, salón, terraza, etc.) con indicadores visuales claros.
|
|
4
|
-
|
|
5
|
-
## 📋 Características
|
|
6
|
-
|
|
7
|
-
- ✅ **4 estados de disponibilidad**: Available, Occupied, Reserved, Out of Service
|
|
8
|
-
- ✅ **2 estados visuales**: Enabled (normal) y Actived (seleccionado)
|
|
9
|
-
- ✅ **Información de capacidad**: Muestra mesas ocupadas/total
|
|
10
|
-
- ✅ **Iconos visuales**: Cada estado tiene su icono distintivo
|
|
11
|
-
- ✅ **Dark mode completo**: Todos los estados adaptados para modo oscuro
|
|
12
|
-
- ✅ **Tamaño fijo**: 189x68px optimizado para interfaces POS
|
|
13
|
-
- ✅ **Accesibilidad**: ARIA labels y estados semánticos
|
|
14
|
-
- ✅ **TypeScript**: Type safety completo
|
|
15
|
-
|
|
16
|
-
## 🎨 Estados de Disponibilidad
|
|
17
|
-
|
|
18
|
-
| Status | Color | Icono | Uso |
|
|
19
|
-
|--------|-------|-------|-----|
|
|
20
|
-
| `available` | Verde/Lime | ✓ | Ubicación disponible para asignar |
|
|
21
|
-
| `occupied` | Naranja/Yellow | ✗ | Ubicación actualmente en uso |
|
|
22
|
-
| `reserved` | Morado/Purple | 📅 | Ubicación reservada para uso futuro |
|
|
23
|
-
| `outOfService` | Gris/Zinc | 🚫 | Ubicación fuera de servicio temporalmente |
|
|
24
|
-
|
|
25
|
-
## 🔧 Estados Visuales
|
|
26
|
-
|
|
27
|
-
| State | Descripción | Uso |
|
|
28
|
-
|-------|-------------|-----|
|
|
29
|
-
| `enabled` | Estado normal con fondo blanco/dark | Vista por defecto |
|
|
30
|
-
| `actived` | Estado seleccionado con fondo coloreado | Ubicación actualmente seleccionada en la interfaz |
|
|
31
|
-
|
|
32
|
-
## 📦 Instalación
|
|
33
|
-
|
|
34
|
-
```tsx
|
|
35
|
-
import { POSLocationButton } from '@/components/POSLocationButton';
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## 🚀 Uso Básico
|
|
39
|
-
|
|
40
|
-
```tsx
|
|
41
|
-
// Ubicación disponible
|
|
42
|
-
<POSLocationButton
|
|
43
|
-
locationName="Antejardín"
|
|
44
|
-
status="available"
|
|
45
|
-
capacity={{ current: 1, total: 8 }}
|
|
46
|
-
onClick={() => console.log('Seleccionado')}
|
|
47
|
-
/>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## 📖 Ejemplos
|
|
51
|
-
|
|
52
|
-
### Dashboard de Restaurante
|
|
53
|
-
|
|
54
|
-
```tsx
|
|
55
|
-
<div className="grid grid-cols-2 gap-3">
|
|
56
|
-
<POSLocationButton
|
|
57
|
-
locationName="Antejardín"
|
|
58
|
-
status="available"
|
|
59
|
-
capacity={{ current: 1, total: 8 }}
|
|
60
|
-
/>
|
|
61
|
-
<POSLocationButton
|
|
62
|
-
locationName="Terraza"
|
|
63
|
-
status="occupied"
|
|
64
|
-
capacity={{ current: 5, total: 8 }}
|
|
65
|
-
/>
|
|
66
|
-
<POSLocationButton
|
|
67
|
-
locationName="Salón Principal"
|
|
68
|
-
status="reserved"
|
|
69
|
-
capacity={{ current: 3, total: 12 }}
|
|
70
|
-
/>
|
|
71
|
-
<POSLocationButton
|
|
72
|
-
locationName="Bar"
|
|
73
|
-
status="outOfService"
|
|
74
|
-
disabled
|
|
75
|
-
/>
|
|
76
|
-
</div>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Ubicación Seleccionada
|
|
80
|
-
|
|
81
|
-
```tsx
|
|
82
|
-
// Estado normal
|
|
83
|
-
<POSLocationButton
|
|
84
|
-
locationName="Terraza"
|
|
85
|
-
status="available"
|
|
86
|
-
capacity={{ current: 2, total: 10 }}
|
|
87
|
-
/>
|
|
88
|
-
|
|
89
|
-
// Estado seleccionado (actived)
|
|
90
|
-
<POSLocationButton
|
|
91
|
-
locationName="Salón VIP"
|
|
92
|
-
status="available"
|
|
93
|
-
state="actived"
|
|
94
|
-
capacity={{ current: 1, total: 6 }}
|
|
95
|
-
/>
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Sin Información de Capacidad
|
|
99
|
-
|
|
100
|
-
```tsx
|
|
101
|
-
<POSLocationButton
|
|
102
|
-
locationName="Área de Espera"
|
|
103
|
-
status="available"
|
|
104
|
-
/>
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Ubicación Deshabilitada
|
|
108
|
-
|
|
109
|
-
```tsx
|
|
110
|
-
<POSLocationButton
|
|
111
|
-
locationName="Bar"
|
|
112
|
-
status="outOfService"
|
|
113
|
-
disabled
|
|
114
|
-
/>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## 🎯 Props
|
|
118
|
-
|
|
119
|
-
### POSLocationButtonProps
|
|
120
|
-
|
|
121
|
-
| Prop | Tipo | Default | Descripción |
|
|
122
|
-
|------|------|---------|-------------|
|
|
123
|
-
| `locationName` | `string` | **requerido** | Nombre de la ubicación (ej: "Antejardín", "Terraza") |
|
|
124
|
-
| `status` | `POSLocationStatus` | `'available'` | Estado de disponibilidad |
|
|
125
|
-
| `state` | `POSLocationState` | `'enabled'` | Estado visual del botón |
|
|
126
|
-
| `capacity` | `POSLocationCapacity` | `undefined` | Información de capacidad (mesas ocupadas/total) |
|
|
127
|
-
| `onClick` | `(event) => void` | `undefined` | Función a ejecutar al hacer clic |
|
|
128
|
-
| `disabled` | `boolean` | `false` | Si el botón está deshabilitado |
|
|
129
|
-
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
130
|
-
| `ariaLabel` | `string` | `undefined` | Label para accesibilidad (ARIA) |
|
|
131
|
-
|
|
132
|
-
### POSLocationStatus
|
|
133
|
-
|
|
134
|
-
```typescript
|
|
135
|
-
type POSLocationStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### POSLocationState
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
type POSLocationState = 'enabled' | 'actived';
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### POSLocationCapacity
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
interface POSLocationCapacity {
|
|
148
|
-
current: number; // Número actual de mesas/espacios ocupados
|
|
149
|
-
total: number; // Total de mesas/espacios disponibles
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
## 🎨 Especificaciones de Diseño
|
|
154
|
-
|
|
155
|
-
### Tamaños
|
|
156
|
-
|
|
157
|
-
- **Ancho**: 189px (fijo)
|
|
158
|
-
- **Alto**: 68px (fijo)
|
|
159
|
-
- **Padding**: 8px
|
|
160
|
-
- **Border radius**: 8px (rounded-lg)
|
|
161
|
-
|
|
162
|
-
### Tipografía
|
|
163
|
-
|
|
164
|
-
- **Título (locationName)**: 16px Bold (text-base font-bold), line-height 24px
|
|
165
|
-
- **Capacidad**: 10px Regular, line-height 12px
|
|
166
|
-
- **Badge**: 12px Regular (text-xs), line-height 16px
|
|
167
|
-
|
|
168
|
-
### Colores (Light Mode)
|
|
169
|
-
|
|
170
|
-
| Status | Texto | Badge Fondo | Badge Texto |
|
|
171
|
-
|--------|-------|-------------|-------------|
|
|
172
|
-
| `available` | `#4d7c0f` (lime-700) | `#ecfccb` (lime-100) | `#4d7c0f` (lime-700) |
|
|
173
|
-
| `occupied` | `#af460e` (orange-700) | `#fcedc9` (yellow-100) | `#af460e` (orange-700) |
|
|
174
|
-
| `reserved` | `#7e22ce` (purple-700) | `#f3e8ff` (purple-100) | `#7e22ce` (purple-700) |
|
|
175
|
-
| `outOfService` | `#3f3f46` (zinc-700) | `#f4f4f5` (zinc-100) | `#71717a` (zinc-500) |
|
|
176
|
-
|
|
177
|
-
### Colores (Dark Mode)
|
|
178
|
-
|
|
179
|
-
| Status | Texto | Badge Fondo | Badge Texto |
|
|
180
|
-
|--------|-------|-------------|-------------|
|
|
181
|
-
| `available` | `#4d7c0f` (lime-700) | `lime-900/30` | `#a3e635` (lime-400) |
|
|
182
|
-
| `occupied` | `#af460e` (orange-700) | `yellow-900/30` | `#facc15` (yellow-400) |
|
|
183
|
-
| `reserved` | `#7e22ce` (purple-700) | `purple-900/30` | `#c084fc` (purple-400) |
|
|
184
|
-
| `outOfService` | `#3f3f46` (zinc-700) | `zinc-800/30` | `#a1a1aa` (zinc-400) |
|
|
185
|
-
|
|
186
|
-
## ♿ Accesibilidad
|
|
187
|
-
|
|
188
|
-
- **ARIA labels**: Cada botón incluye un aria-label descriptivo por defecto
|
|
189
|
-
- **Estados semánticos**: Los estados disabled y actived son accesibles
|
|
190
|
-
- **Contraste**: Todos los colores cumplen con WCAG AA
|
|
191
|
-
- **Focus ring**: Anillo de enfoque visible y adaptativo
|
|
192
|
-
|
|
193
|
-
## 🌓 Dark Mode
|
|
194
|
-
|
|
195
|
-
El componente se adapta automáticamente al modo oscuro usando la estrategia `class` de Tailwind CSS. Todos los colores tienen variantes dark optimizadas para mantener la legibilidad y el contraste.
|
|
196
|
-
|
|
197
|
-
## 🔗 Archivos Relacionados
|
|
198
|
-
|
|
199
|
-
- `POSLocationButton.tsx` - Componente principal
|
|
200
|
-
- `POSLocationButton.types.ts` - TypeScript types
|
|
201
|
-
- `POSLocationButton.stories.tsx` - Stories de Storybook
|
|
202
|
-
- `icons.tsx` - Iconos del componente
|
|
203
|
-
- `index.ts` - Exports
|
|
204
|
-
|
|
205
|
-
## 📚 Referencias
|
|
206
|
-
|
|
207
|
-
- **Figma**: [POSLocationButton Specs](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-30644)
|
|
208
|
-
- **Documentación**: `docs/colors.md`, `docs/typography.md`, `docs/spacing.md`
|
|
209
|
-
- **Referencia**: `src/components/Button/` - Patrón de implementación
|
|
210
|
-
|
|
211
|
-
## ✅ Checklist de Implementación
|
|
212
|
-
|
|
213
|
-
- [x] Componente con JSDoc completo
|
|
214
|
-
- [x] Dark mode en todos los estados
|
|
215
|
-
- [x] TypeScript types estrictos
|
|
216
|
-
- [x] 4 estados de disponibilidad (available, occupied, reserved, outOfService)
|
|
217
|
-
- [x] 2 estados visuales (enabled, actived)
|
|
218
|
-
- [x] Información de capacidad opcional
|
|
219
|
-
- [x] Iconos visuales distintivos
|
|
220
|
-
- [x] Focus rings adaptativos
|
|
221
|
-
- [x] Stories de Storybook completas
|
|
222
|
-
- [x] README con ejemplos
|
|
223
|
-
- [x] Accesibilidad (ARIA)
|
|
224
|
-
- [x] Validación con build
|
|
225
|
-
|
|
226
|
-
## 🎯 Casos de Uso
|
|
227
|
-
|
|
228
|
-
### ✅ Ideal para:
|
|
229
|
-
|
|
230
|
-
- Sistemas POS de restaurantes
|
|
231
|
-
- Gestión de mesas y ubicaciones
|
|
232
|
-
- Dashboards de disponibilidad
|
|
233
|
-
- Interfaces de asignación de recursos
|
|
234
|
-
- Aplicaciones de reservas
|
|
235
|
-
|
|
236
|
-
### ❌ No usar para:
|
|
237
|
-
|
|
238
|
-
- Botones de acción genéricos (usar `Button` en su lugar)
|
|
239
|
-
- Navegación principal (usar `NavigationBar` o `NavigationRail`)
|
|
240
|
-
- Formularios (usar `Button` estándar)
|
|
241
|
-
|
|
242
|
-
## 📝 Notas
|
|
243
|
-
|
|
244
|
-
- El componente tiene un tamaño fijo de 189x68px optimizado para interfaces POS
|
|
245
|
-
- Si no se proporciona `capacity`, solo se muestra el nombre y el estado
|
|
246
|
-
- El estado `actived` es puramente visual y debe ser manejado por el componente padre
|
|
247
|
-
- Para interfaces responsive, considera usar un grid adaptativo para organizar múltiples botones
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
**Versión**: 1.0.0
|
|
252
|
-
**Última actualización**: 2025-11-24
|
|
253
|
-
**Mantenido por**: Equipo Siesa UI Kit
|
|
1
|
+
# POSLocationButton
|
|
2
|
+
|
|
3
|
+
Botón especializado para punto de venta (POS) que muestra el estado de disponibilidad de una ubicación física (mesa, salón, terraza, etc.) con indicadores visuales claros.
|
|
4
|
+
|
|
5
|
+
## 📋 Características
|
|
6
|
+
|
|
7
|
+
- ✅ **4 estados de disponibilidad**: Available, Occupied, Reserved, Out of Service
|
|
8
|
+
- ✅ **2 estados visuales**: Enabled (normal) y Actived (seleccionado)
|
|
9
|
+
- ✅ **Información de capacidad**: Muestra mesas ocupadas/total
|
|
10
|
+
- ✅ **Iconos visuales**: Cada estado tiene su icono distintivo
|
|
11
|
+
- ✅ **Dark mode completo**: Todos los estados adaptados para modo oscuro
|
|
12
|
+
- ✅ **Tamaño fijo**: 189x68px optimizado para interfaces POS
|
|
13
|
+
- ✅ **Accesibilidad**: ARIA labels y estados semánticos
|
|
14
|
+
- ✅ **TypeScript**: Type safety completo
|
|
15
|
+
|
|
16
|
+
## 🎨 Estados de Disponibilidad
|
|
17
|
+
|
|
18
|
+
| Status | Color | Icono | Uso |
|
|
19
|
+
|--------|-------|-------|-----|
|
|
20
|
+
| `available` | Verde/Lime | ✓ | Ubicación disponible para asignar |
|
|
21
|
+
| `occupied` | Naranja/Yellow | ✗ | Ubicación actualmente en uso |
|
|
22
|
+
| `reserved` | Morado/Purple | 📅 | Ubicación reservada para uso futuro |
|
|
23
|
+
| `outOfService` | Gris/Zinc | 🚫 | Ubicación fuera de servicio temporalmente |
|
|
24
|
+
|
|
25
|
+
## 🔧 Estados Visuales
|
|
26
|
+
|
|
27
|
+
| State | Descripción | Uso |
|
|
28
|
+
|-------|-------------|-----|
|
|
29
|
+
| `enabled` | Estado normal con fondo blanco/dark | Vista por defecto |
|
|
30
|
+
| `actived` | Estado seleccionado con fondo coloreado | Ubicación actualmente seleccionada en la interfaz |
|
|
31
|
+
|
|
32
|
+
## 📦 Instalación
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { POSLocationButton } from '@/components/POSLocationButton';
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 🚀 Uso Básico
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
// Ubicación disponible
|
|
42
|
+
<POSLocationButton
|
|
43
|
+
locationName="Antejardín"
|
|
44
|
+
status="available"
|
|
45
|
+
capacity={{ current: 1, total: 8 }}
|
|
46
|
+
onClick={() => console.log('Seleccionado')}
|
|
47
|
+
/>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 📖 Ejemplos
|
|
51
|
+
|
|
52
|
+
### Dashboard de Restaurante
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<div className="grid grid-cols-2 gap-3">
|
|
56
|
+
<POSLocationButton
|
|
57
|
+
locationName="Antejardín"
|
|
58
|
+
status="available"
|
|
59
|
+
capacity={{ current: 1, total: 8 }}
|
|
60
|
+
/>
|
|
61
|
+
<POSLocationButton
|
|
62
|
+
locationName="Terraza"
|
|
63
|
+
status="occupied"
|
|
64
|
+
capacity={{ current: 5, total: 8 }}
|
|
65
|
+
/>
|
|
66
|
+
<POSLocationButton
|
|
67
|
+
locationName="Salón Principal"
|
|
68
|
+
status="reserved"
|
|
69
|
+
capacity={{ current: 3, total: 12 }}
|
|
70
|
+
/>
|
|
71
|
+
<POSLocationButton
|
|
72
|
+
locationName="Bar"
|
|
73
|
+
status="outOfService"
|
|
74
|
+
disabled
|
|
75
|
+
/>
|
|
76
|
+
</div>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Ubicación Seleccionada
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
// Estado normal
|
|
83
|
+
<POSLocationButton
|
|
84
|
+
locationName="Terraza"
|
|
85
|
+
status="available"
|
|
86
|
+
capacity={{ current: 2, total: 10 }}
|
|
87
|
+
/>
|
|
88
|
+
|
|
89
|
+
// Estado seleccionado (actived)
|
|
90
|
+
<POSLocationButton
|
|
91
|
+
locationName="Salón VIP"
|
|
92
|
+
status="available"
|
|
93
|
+
state="actived"
|
|
94
|
+
capacity={{ current: 1, total: 6 }}
|
|
95
|
+
/>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Sin Información de Capacidad
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
<POSLocationButton
|
|
102
|
+
locationName="Área de Espera"
|
|
103
|
+
status="available"
|
|
104
|
+
/>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Ubicación Deshabilitada
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
<POSLocationButton
|
|
111
|
+
locationName="Bar"
|
|
112
|
+
status="outOfService"
|
|
113
|
+
disabled
|
|
114
|
+
/>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## 🎯 Props
|
|
118
|
+
|
|
119
|
+
### POSLocationButtonProps
|
|
120
|
+
|
|
121
|
+
| Prop | Tipo | Default | Descripción |
|
|
122
|
+
|------|------|---------|-------------|
|
|
123
|
+
| `locationName` | `string` | **requerido** | Nombre de la ubicación (ej: "Antejardín", "Terraza") |
|
|
124
|
+
| `status` | `POSLocationStatus` | `'available'` | Estado de disponibilidad |
|
|
125
|
+
| `state` | `POSLocationState` | `'enabled'` | Estado visual del botón |
|
|
126
|
+
| `capacity` | `POSLocationCapacity` | `undefined` | Información de capacidad (mesas ocupadas/total) |
|
|
127
|
+
| `onClick` | `(event) => void` | `undefined` | Función a ejecutar al hacer clic |
|
|
128
|
+
| `disabled` | `boolean` | `false` | Si el botón está deshabilitado |
|
|
129
|
+
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
130
|
+
| `ariaLabel` | `string` | `undefined` | Label para accesibilidad (ARIA) |
|
|
131
|
+
|
|
132
|
+
### POSLocationStatus
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
type POSLocationStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### POSLocationState
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
type POSLocationState = 'enabled' | 'actived';
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### POSLocationCapacity
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
interface POSLocationCapacity {
|
|
148
|
+
current: number; // Número actual de mesas/espacios ocupados
|
|
149
|
+
total: number; // Total de mesas/espacios disponibles
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 🎨 Especificaciones de Diseño
|
|
154
|
+
|
|
155
|
+
### Tamaños
|
|
156
|
+
|
|
157
|
+
- **Ancho**: 189px (fijo)
|
|
158
|
+
- **Alto**: 68px (fijo)
|
|
159
|
+
- **Padding**: 8px
|
|
160
|
+
- **Border radius**: 8px (rounded-lg)
|
|
161
|
+
|
|
162
|
+
### Tipografía
|
|
163
|
+
|
|
164
|
+
- **Título (locationName)**: 16px Bold (text-base font-bold), line-height 24px
|
|
165
|
+
- **Capacidad**: 10px Regular, line-height 12px
|
|
166
|
+
- **Badge**: 12px Regular (text-xs), line-height 16px
|
|
167
|
+
|
|
168
|
+
### Colores (Light Mode)
|
|
169
|
+
|
|
170
|
+
| Status | Texto | Badge Fondo | Badge Texto |
|
|
171
|
+
|--------|-------|-------------|-------------|
|
|
172
|
+
| `available` | `#4d7c0f` (lime-700) | `#ecfccb` (lime-100) | `#4d7c0f` (lime-700) |
|
|
173
|
+
| `occupied` | `#af460e` (orange-700) | `#fcedc9` (yellow-100) | `#af460e` (orange-700) |
|
|
174
|
+
| `reserved` | `#7e22ce` (purple-700) | `#f3e8ff` (purple-100) | `#7e22ce` (purple-700) |
|
|
175
|
+
| `outOfService` | `#3f3f46` (zinc-700) | `#f4f4f5` (zinc-100) | `#71717a` (zinc-500) |
|
|
176
|
+
|
|
177
|
+
### Colores (Dark Mode)
|
|
178
|
+
|
|
179
|
+
| Status | Texto | Badge Fondo | Badge Texto |
|
|
180
|
+
|--------|-------|-------------|-------------|
|
|
181
|
+
| `available` | `#4d7c0f` (lime-700) | `lime-900/30` | `#a3e635` (lime-400) |
|
|
182
|
+
| `occupied` | `#af460e` (orange-700) | `yellow-900/30` | `#facc15` (yellow-400) |
|
|
183
|
+
| `reserved` | `#7e22ce` (purple-700) | `purple-900/30` | `#c084fc` (purple-400) |
|
|
184
|
+
| `outOfService` | `#3f3f46` (zinc-700) | `zinc-800/30` | `#a1a1aa` (zinc-400) |
|
|
185
|
+
|
|
186
|
+
## ♿ Accesibilidad
|
|
187
|
+
|
|
188
|
+
- **ARIA labels**: Cada botón incluye un aria-label descriptivo por defecto
|
|
189
|
+
- **Estados semánticos**: Los estados disabled y actived son accesibles
|
|
190
|
+
- **Contraste**: Todos los colores cumplen con WCAG AA
|
|
191
|
+
- **Focus ring**: Anillo de enfoque visible y adaptativo
|
|
192
|
+
|
|
193
|
+
## 🌓 Dark Mode
|
|
194
|
+
|
|
195
|
+
El componente se adapta automáticamente al modo oscuro usando la estrategia `class` de Tailwind CSS. Todos los colores tienen variantes dark optimizadas para mantener la legibilidad y el contraste.
|
|
196
|
+
|
|
197
|
+
## 🔗 Archivos Relacionados
|
|
198
|
+
|
|
199
|
+
- `POSLocationButton.tsx` - Componente principal
|
|
200
|
+
- `POSLocationButton.types.ts` - TypeScript types
|
|
201
|
+
- `POSLocationButton.stories.tsx` - Stories de Storybook
|
|
202
|
+
- `icons.tsx` - Iconos del componente
|
|
203
|
+
- `index.ts` - Exports
|
|
204
|
+
|
|
205
|
+
## 📚 Referencias
|
|
206
|
+
|
|
207
|
+
- **Figma**: [POSLocationButton Specs](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-30644)
|
|
208
|
+
- **Documentación**: `docs/colors.md`, `docs/typography.md`, `docs/spacing.md`
|
|
209
|
+
- **Referencia**: `src/components/Button/` - Patrón de implementación
|
|
210
|
+
|
|
211
|
+
## ✅ Checklist de Implementación
|
|
212
|
+
|
|
213
|
+
- [x] Componente con JSDoc completo
|
|
214
|
+
- [x] Dark mode en todos los estados
|
|
215
|
+
- [x] TypeScript types estrictos
|
|
216
|
+
- [x] 4 estados de disponibilidad (available, occupied, reserved, outOfService)
|
|
217
|
+
- [x] 2 estados visuales (enabled, actived)
|
|
218
|
+
- [x] Información de capacidad opcional
|
|
219
|
+
- [x] Iconos visuales distintivos
|
|
220
|
+
- [x] Focus rings adaptativos
|
|
221
|
+
- [x] Stories de Storybook completas
|
|
222
|
+
- [x] README con ejemplos
|
|
223
|
+
- [x] Accesibilidad (ARIA)
|
|
224
|
+
- [x] Validación con build
|
|
225
|
+
|
|
226
|
+
## 🎯 Casos de Uso
|
|
227
|
+
|
|
228
|
+
### ✅ Ideal para:
|
|
229
|
+
|
|
230
|
+
- Sistemas POS de restaurantes
|
|
231
|
+
- Gestión de mesas y ubicaciones
|
|
232
|
+
- Dashboards de disponibilidad
|
|
233
|
+
- Interfaces de asignación de recursos
|
|
234
|
+
- Aplicaciones de reservas
|
|
235
|
+
|
|
236
|
+
### ❌ No usar para:
|
|
237
|
+
|
|
238
|
+
- Botones de acción genéricos (usar `Button` en su lugar)
|
|
239
|
+
- Navegación principal (usar `NavigationBar` o `NavigationRail`)
|
|
240
|
+
- Formularios (usar `Button` estándar)
|
|
241
|
+
|
|
242
|
+
## 📝 Notas
|
|
243
|
+
|
|
244
|
+
- El componente tiene un tamaño fijo de 189x68px optimizado para interfaces POS
|
|
245
|
+
- Si no se proporciona `capacity`, solo se muestra el nombre y el estado
|
|
246
|
+
- El estado `actived` es puramente visual y debe ser manejado por el componente padre
|
|
247
|
+
- Para interfaces responsive, considera usar un grid adaptativo para organizar múltiples botones
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
**Versión**: 1.0.0
|
|
252
|
+
**Última actualización**: 2025-11-24
|
|
253
|
+
**Mantenido por**: Equipo Siesa UI Kit
|