siesa-ui-kit 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -54
- package/claude/agents/siesa-ui-kit-specialist.md +2401 -0
- package/claude/prompts/component-template.md +121 -0
- package/claude/settings.local.json +61 -0
- package/docs/border-radius.md +1261 -0
- package/docs/colors.md +832 -0
- package/docs/dark-mode-guide.md +1426 -0
- package/docs/filters.md +1243 -0
- package/docs/icons.md +1283 -0
- package/docs/shadows.md +1377 -0
- package/docs/spacing.md +1684 -0
- package/docs/typography.md +1268 -0
- package/package.json +14 -34
- package/postcss.config.cjs +6 -0
- package/public/,Business Logo.png +0 -0
- package/public/.Siesa Logo.png +0 -0
- package/public/bg_siesa.png +0 -0
- package/public/siesa_logo_mobile.png +0 -0
- package/public/vite.svg +1 -0
- package/src/App.css +42 -0
- package/src/App.tsx +8 -0
- package/src/ButtonTest.tsx +147 -0
- package/src/assets/fonts/README.md +261 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
- package/src/assets/react.svg +1 -0
- package/src/components/Alert/Alert.stories.tsx +332 -0
- package/src/components/Alert/Alert.tsx +106 -0
- package/src/components/Alert/Alert.types.ts +54 -0
- package/src/components/Avatar/Avatar.stories.tsx +494 -0
- package/src/components/Avatar/Avatar.tsx +143 -0
- package/src/components/Avatar/Avatar.types.ts +53 -0
- package/src/components/Badge/Badge.stories.tsx +339 -0
- package/src/components/Badge/Badge.tsx +278 -0
- package/src/components/Badge/Badge.types.ts +58 -0
- package/src/components/Button/Button.stories.tsx +950 -0
- package/src/components/Button/Button.tsx +337 -0
- package/src/components/Button/Button.types.ts +180 -0
- package/src/components/Button/icons.tsx +87 -0
- package/{dist/components/Button/index.d.ts → src/components/Button/index.ts} +3 -4
- package/src/components/Checkbox/Checkbox.stories.tsx +453 -0
- package/src/components/Checkbox/Checkbox.tsx +208 -0
- package/src/components/Checkbox/Checkbox.types.ts +61 -0
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -0
- package/src/components/DescriptionList/DescriptionList.tsx +96 -0
- package/src/components/DescriptionList/DescriptionList.types.ts +29 -0
- package/src/components/Divider/Divider.stories.tsx +263 -0
- package/src/components/Divider/Divider.tsx +80 -0
- package/src/components/Divider/Divider.types.ts +24 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +552 -0
- package/src/components/Dropdown/Dropdown.tsx +422 -0
- package/src/components/Dropdown/Dropdown.types.ts +146 -0
- package/src/components/Dropdown/README.md +266 -0
- package/src/components/Dropdown/icons.tsx +72 -0
- package/{dist/components/Dropdown/index.d.ts → src/components/Dropdown/index.ts} +8 -4
- package/src/components/Input/Input.stories.tsx +583 -0
- package/src/components/Input/Input.tsx +204 -0
- package/src/components/Input/Input.types.ts +80 -0
- package/src/components/Input/icons.tsx +145 -0
- package/{dist/components/Input/index.d.ts → src/components/Input/index.ts} +2 -3
- package/src/components/LoginView/LoginView.stories.tsx +148 -0
- package/src/components/LoginView/LoginView.tsx +426 -0
- package/src/components/LoginView/LoginView.types.ts +52 -0
- package/src/components/LoginView/README.md +396 -0
- package/src/components/LoginView/icons.tsx +85 -0
- package/{dist/components/LoginView/index.d.ts → src/components/LoginView/index.ts} +3 -4
- package/src/components/Navbar/Navbar.stories.tsx +810 -0
- package/src/components/Navbar/Navbar.tsx +755 -0
- package/src/components/Navbar/Navbar.types.ts +219 -0
- package/src/components/Navbar/README.md +279 -0
- package/src/components/Navbar/icons.tsx +102 -0
- package/src/components/Navbar/index.ts +8 -0
- package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -0
- package/src/components/NavigationBar/NavigationBar.tsx +246 -0
- package/src/components/NavigationBar/NavigationBar.types.ts +74 -0
- package/src/components/NavigationBar/README.md +469 -0
- package/{dist/components/NavigationBar/index.d.ts → src/components/NavigationBar/index.ts} +2 -3
- package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -0
- package/src/components/NavigationRail/NavigationRail.tsx +418 -0
- package/src/components/NavigationRail/NavigationRail.types.ts +109 -0
- package/src/components/NavigationRail/README.md +224 -0
- package/{dist/components/NavigationRail/index.d.ts → src/components/NavigationRail/index.ts} +2 -3
- package/src/components/Notification/Notification.stories.tsx +513 -0
- package/src/components/Notification/Notification.tsx +145 -0
- package/src/components/Notification/Notification.types.ts +142 -0
- package/src/components/Notification/README.md +409 -0
- package/{dist/components/Notification/index.d.ts → src/components/Notification/index.ts} +3 -3
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -0
- package/src/components/POSConvention/POSConvention.tsx +129 -0
- package/{dist/components/POSConvention/POSConvention.types.d.ts → src/components/POSConvention/POSConvention.types.ts} +38 -37
- package/src/components/POSConvention/README.md +123 -0
- package/src/components/POSConvention/icons.tsx +45 -0
- package/{dist/components/POSConvention/index.d.ts → src/components/POSConvention/index.ts} +3 -4
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -0
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -0
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -0
- package/src/components/POSLocationButton/README.md +253 -0
- package/src/components/POSLocationButton/icons.tsx +120 -0
- package/src/components/POSLocationButton/index.ts +14 -0
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -0
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -0
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -0
- package/src/components/POSNumberButton/README.md +321 -0
- package/{dist/components/POSNumberButton/index.d.ts → src/components/POSNumberButton/index.ts} +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -0
- package/src/components/POSProductButton/POSProductButton.tsx +152 -0
- package/src/components/POSProductButton/POSProductButton.types.ts +46 -0
- package/src/components/POSProductButton/README.md +269 -0
- package/{dist/components/POSProductButton/index.d.ts → src/components/POSProductButton/index.ts} +2 -3
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -0
- package/src/components/POSProductCard/POSProductCard.tsx +208 -0
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -0
- package/src/components/POSProductCard/README.md +179 -0
- package/src/components/POSProductCard/icons.tsx +26 -0
- package/{dist/components/POSProductCard/index.d.ts → src/components/POSProductCard/index.ts} +2 -3
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -0
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -0
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -0
- package/src/components/POSProductSidebarItems/README.md +198 -0
- package/src/components/POSProductSidebarItems/icons.tsx +21 -0
- package/{dist/components/POSProductSidebarItems/index.d.ts → src/components/POSProductSidebarItems/index.ts} +3 -4
- package/src/components/POSTable/POSTable.stories.tsx +737 -0
- package/src/components/POSTable/POSTable.tsx +401 -0
- package/src/components/POSTable/POSTable.types.ts +83 -0
- package/src/components/POSTable/README.md +286 -0
- package/src/components/POSTable/index.ts +7 -0
- package/src/components/Pagination/Pagination.stories.tsx +555 -0
- package/src/components/Pagination/Pagination.tsx +286 -0
- package/src/components/Pagination/Pagination.types.ts +93 -0
- package/src/components/Pagination/README.md +298 -0
- package/src/components/Pagination/icons.tsx +47 -0
- package/{dist/components/Pagination/index.d.ts → src/components/Pagination/index.ts} +3 -4
- package/src/components/Quantity/Quantity.stories.tsx +457 -0
- package/src/components/Quantity/Quantity.tsx +289 -0
- package/src/components/Quantity/Quantity.types.ts +70 -0
- package/src/components/Radio/Radio.stories.tsx +523 -0
- package/src/components/Radio/Radio.tsx +170 -0
- package/src/components/Radio/Radio.types.ts +122 -0
- package/src/components/Select/README.md +299 -0
- package/src/components/Select/Select.stories.tsx +673 -0
- package/src/components/Select/Select.tsx +454 -0
- package/src/components/Select/Select.types.ts +148 -0
- package/src/components/Select/icons.tsx +50 -0
- package/{dist/components/Select/index.d.ts → src/components/Select/index.ts} +3 -4
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -0
- package/src/components/SignUpView/SignUpView.tsx +503 -0
- package/src/components/SignUpView/SignUpView.types.ts +58 -0
- package/src/components/SignUpView/icons.tsx +71 -0
- package/{dist/components/SignUpView/index.d.ts → src/components/SignUpView/index.ts} +3 -4
- package/src/components/Switch/README.md +112 -0
- package/src/components/Switch/Switch.stories.tsx +550 -0
- package/src/components/Switch/Switch.tsx +246 -0
- package/src/components/Switch/Switch.types.ts +67 -0
- package/src/components/Table/README.md +369 -0
- package/src/components/Table/Table.stories.tsx +805 -0
- package/src/components/Table/Table.tsx +688 -0
- package/src/components/Table/Table.types.ts +204 -0
- package/src/components/Table/index.ts +9 -0
- package/src/components/Tabs/README.md +201 -0
- package/src/components/Tabs/Tabs.stories.tsx +580 -0
- package/src/components/Tabs/Tabs.tsx +356 -0
- package/src/components/Tabs/Tabs.types.ts +127 -0
- package/src/components/Tabs/icons.tsx +129 -0
- package/src/components/Tabs/index.ts +11 -0
- package/src/components/Textarea/Textarea.stories.tsx +535 -0
- package/src/components/Textarea/Textarea.tsx +188 -0
- package/src/components/Textarea/Textarea.types.ts +54 -0
- package/src/context/ThemeContext.tsx +99 -0
- package/{dist/context/index.d.ts → src/context/index.ts} +1 -2
- package/src/index.css +29 -0
- package/src/index.ts +39 -0
- package/src/main.tsx +10 -0
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -0
- package/src/views/ProductsView/ProductsView.tsx +480 -0
- package/src/views/ProductsView/ProductsView.types.ts +238 -0
- package/src/views/ProductsView/README.md +312 -0
- package/src/views/ProductsView/icons.tsx +38 -0
- package/src/views/ProductsView/index.ts +8 -0
- package/src/views/RecoverPasswordView/README.md +269 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -0
- package/src/views/RecoverPasswordView/icons.tsx +17 -0
- package/{dist/views/RecoverPasswordView/index.d.ts → src/views/RecoverPasswordView/index.ts} +2 -3
- package/src/views/TableLayoutView/README.md +268 -0
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -0
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -0
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -0
- package/src/views/TableLayoutView/icons.tsx +113 -0
- package/src/views/TableLayoutView/index.ts +6 -0
- package/storybook/main.ts +20 -0
- package/storybook/preview.tsx +84 -0
- package/storybook/vitest.setup.ts +7 -0
- package/tailwind.config.js +128 -0
- 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 -26
- package/dist/components/Button/icons.d.ts.map +0 -1
- 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.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 -95
- 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.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.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.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.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 -155
- 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 -111
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +0 -58
- 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.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.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.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.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.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.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.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.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 -16
- package/dist/components/Select/icons.d.ts.map +0 -1
- 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.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.map +0 -1
- package/dist/index.d.ts +0 -56
- package/dist/index.d.ts.map +0 -1
- package/dist/siesa-ui-kit.cjs +0 -1260
- package/dist/siesa-ui-kit.cjs.map +0 -1
- package/dist/siesa-ui-kit.mjs +0 -4496
- package/dist/siesa-ui-kit.mjs.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.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
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { POSConvention } from './POSConvention';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Stories para POSConvention
|
|
6
|
+
*
|
|
7
|
+
* Componente de leyenda/convención para mostrar el estado de las mesas en el sistema POS.
|
|
8
|
+
* Basado en especificaciones de Figma (node-id: 4418-40139).
|
|
9
|
+
*/
|
|
10
|
+
const meta = {
|
|
11
|
+
title: 'Siesa UI Kit/POSConvention',
|
|
12
|
+
component: POSConvention,
|
|
13
|
+
parameters: {
|
|
14
|
+
layout: 'centered',
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component:
|
|
18
|
+
'Componente de leyenda para mostrar los estados de mesas en el sistema POS. Incluye 4 estados: Disponible (azul), Ocupada (naranja), Reservada (morado) y Fuera de Servicio (gris).',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
tags: ['autodocs'],
|
|
23
|
+
argTypes: {
|
|
24
|
+
status: {
|
|
25
|
+
control: 'select',
|
|
26
|
+
options: ['available', 'occupied', 'reserved', 'outOfService'],
|
|
27
|
+
description: 'Estado de la convención a mostrar',
|
|
28
|
+
table: {
|
|
29
|
+
type: { summary: 'ConventionStatus' },
|
|
30
|
+
defaultValue: { summary: 'available' },
|
|
31
|
+
category: 'Contenido',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
className: {
|
|
35
|
+
control: 'text',
|
|
36
|
+
description: 'Clases CSS adicionales para el contenedor',
|
|
37
|
+
table: {
|
|
38
|
+
type: { summary: 'string' },
|
|
39
|
+
category: 'Apariencia',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
} satisfies Meta<typeof POSConvention>;
|
|
44
|
+
|
|
45
|
+
export default meta;
|
|
46
|
+
type Story = StoryObj<typeof meta>;
|
|
47
|
+
|
|
48
|
+
// ============================================
|
|
49
|
+
// 1. PLAYGROUND INTERACTIVO
|
|
50
|
+
// ============================================
|
|
51
|
+
/**
|
|
52
|
+
* Playground interactivo para probar el componente con diferentes estados.
|
|
53
|
+
*/
|
|
54
|
+
export const Playground: Story = {
|
|
55
|
+
args: {
|
|
56
|
+
status: 'available',
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// ============================================
|
|
61
|
+
// 2. TODOS LOS ESTADOS
|
|
62
|
+
// ============================================
|
|
63
|
+
/**
|
|
64
|
+
* Muestra todos los estados disponibles del componente POSConvention.
|
|
65
|
+
*/
|
|
66
|
+
export const TodosLosEstados: Story = {
|
|
67
|
+
render: () => (
|
|
68
|
+
<div className="space-y-8 p-6">
|
|
69
|
+
<div>
|
|
70
|
+
<h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
|
|
71
|
+
Estados de Mesas
|
|
72
|
+
</h3>
|
|
73
|
+
<div className="flex flex-col gap-4">
|
|
74
|
+
<div className="flex items-center gap-6">
|
|
75
|
+
<POSConvention status="available" />
|
|
76
|
+
<span className="text-xs text-content-secondary dark:text-content-secondary">
|
|
77
|
+
Mesa lista para recibir clientes
|
|
78
|
+
</span>
|
|
79
|
+
</div>
|
|
80
|
+
<div className="flex items-center gap-6">
|
|
81
|
+
<POSConvention status="occupied" />
|
|
82
|
+
<span className="text-xs text-content-secondary dark:text-content-secondary">
|
|
83
|
+
Mesa actualmente en uso
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
|
+
<div className="flex items-center gap-6">
|
|
87
|
+
<POSConvention status="reserved" />
|
|
88
|
+
<span className="text-xs text-content-secondary dark:text-content-secondary">
|
|
89
|
+
Mesa con reservación confirmada
|
|
90
|
+
</span>
|
|
91
|
+
</div>
|
|
92
|
+
<div className="flex items-center gap-6">
|
|
93
|
+
<POSConvention status="outOfService" />
|
|
94
|
+
<span className="text-xs text-content-secondary dark:text-content-secondary">
|
|
95
|
+
Mesa no disponible temporalmente
|
|
96
|
+
</span>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
{/* Tips */}
|
|
102
|
+
<div className="mt-6 p-4 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg">
|
|
103
|
+
<p className="text-xs text-gray-600 dark:text-gray-300">
|
|
104
|
+
<strong>💡 Consejo:</strong>
|
|
105
|
+
<br />• Usa este componente para crear leyendas en la vista de mesas del POS
|
|
106
|
+
<br />• Los colores son consistentes con el diseño de Figma
|
|
107
|
+
</p>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
),
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// ============================================
|
|
114
|
+
// 3. LEYENDA COMPLETA (COMO EN FIGMA)
|
|
115
|
+
// ============================================
|
|
116
|
+
/**
|
|
117
|
+
* Leyenda completa con borde punteado como se muestra en Figma.
|
|
118
|
+
*/
|
|
119
|
+
export const LeyendaCompleta: Story = {
|
|
120
|
+
render: () => (
|
|
121
|
+
<div className="space-y-8 p-6">
|
|
122
|
+
<div>
|
|
123
|
+
<h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
|
|
124
|
+
Leyenda de Convenciones (Figma)
|
|
125
|
+
</h3>
|
|
126
|
+
|
|
127
|
+
{/* Contenedor con borde punteado como en Figma */}
|
|
128
|
+
<div className="p-5 rounded-lg border-2 border-dashed border-primary-custom-300 dark:border-dark-border-custom inline-block">
|
|
129
|
+
<div className="flex flex-col gap-9">
|
|
130
|
+
<POSConvention status="available" />
|
|
131
|
+
<POSConvention status="occupied" />
|
|
132
|
+
<POSConvention status="reserved" />
|
|
133
|
+
<POSConvention status="outOfService" />
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<p className="text-xs text-content-secondary dark:text-content-secondary">
|
|
139
|
+
Diseño exacto según especificaciones de Figma (node-id: 4418-40139)
|
|
140
|
+
</p>
|
|
141
|
+
</div>
|
|
142
|
+
),
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// ============================================
|
|
146
|
+
// 4. USO EN HORIZONTAL
|
|
147
|
+
// ============================================
|
|
148
|
+
/**
|
|
149
|
+
* Ejemplo de uso horizontal para barras de estado o headers.
|
|
150
|
+
*/
|
|
151
|
+
export const UsoHorizontal: Story = {
|
|
152
|
+
render: () => (
|
|
153
|
+
<div className="space-y-8 p-6">
|
|
154
|
+
<div>
|
|
155
|
+
<h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
|
|
156
|
+
Disposición Horizontal
|
|
157
|
+
</h3>
|
|
158
|
+
|
|
159
|
+
{/* Disposición horizontal con separadores */}
|
|
160
|
+
<div className="flex items-center gap-6 p-4 bg-white dark:bg-dark-bg-primary rounded-lg border border-border-primary dark:border-dark-border-primary">
|
|
161
|
+
<POSConvention status="available" />
|
|
162
|
+
<div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
|
|
163
|
+
<POSConvention status="occupied" />
|
|
164
|
+
<div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
|
|
165
|
+
<POSConvention status="reserved" />
|
|
166
|
+
<div className="w-px h-4 bg-border-primary dark:bg-dark-border-primary" />
|
|
167
|
+
<POSConvention status="outOfService" />
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
171
|
+
<p className="text-xs text-content-secondary dark:text-content-secondary">
|
|
172
|
+
Útil para barras de herramientas o encabezados de sección
|
|
173
|
+
</p>
|
|
174
|
+
</div>
|
|
175
|
+
),
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
// ============================================
|
|
179
|
+
// 5. INTEGRACIÓN CON CONTADORES
|
|
180
|
+
// ============================================
|
|
181
|
+
/**
|
|
182
|
+
* Ejemplo de integración con contadores de mesas.
|
|
183
|
+
*/
|
|
184
|
+
export const ConContadores: Story = {
|
|
185
|
+
render: () => (
|
|
186
|
+
<div className="space-y-8 p-6">
|
|
187
|
+
<div>
|
|
188
|
+
<h3 className="text-sm font-bold mb-4 text-content-primary dark:text-dark-content-primary">
|
|
189
|
+
Leyenda con Contadores
|
|
190
|
+
</h3>
|
|
191
|
+
|
|
192
|
+
<div className="flex flex-col gap-3 p-4 bg-white dark:bg-dark-bg-primary rounded-lg border border-border-primary dark:border-dark-border-primary">
|
|
193
|
+
<div className="flex items-center justify-between min-w-[200px]">
|
|
194
|
+
<POSConvention status="available" />
|
|
195
|
+
<span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
|
|
196
|
+
12
|
|
197
|
+
</span>
|
|
198
|
+
</div>
|
|
199
|
+
<div className="flex items-center justify-between">
|
|
200
|
+
<POSConvention status="occupied" />
|
|
201
|
+
<span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
|
|
202
|
+
8
|
|
203
|
+
</span>
|
|
204
|
+
</div>
|
|
205
|
+
<div className="flex items-center justify-between">
|
|
206
|
+
<POSConvention status="reserved" />
|
|
207
|
+
<span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
|
|
208
|
+
3
|
|
209
|
+
</span>
|
|
210
|
+
</div>
|
|
211
|
+
<div className="flex items-center justify-between">
|
|
212
|
+
<POSConvention status="outOfService" />
|
|
213
|
+
<span className="text-sm font-bold text-content-primary dark:text-dark-content-primary">
|
|
214
|
+
2
|
|
215
|
+
</span>
|
|
216
|
+
</div>
|
|
217
|
+
|
|
218
|
+
{/* Total */}
|
|
219
|
+
<div className="mt-2 pt-3 border-t border-border-primary dark:border-dark-border-primary flex items-center justify-between">
|
|
220
|
+
<span className="text-xs font-bold text-content-secondary dark:text-content-secondary">
|
|
221
|
+
Total de mesas
|
|
222
|
+
</span>
|
|
223
|
+
<span className="text-sm font-bold text-primary-custom-600 dark:text-primary-custom-600">
|
|
224
|
+
25
|
|
225
|
+
</span>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
|
|
230
|
+
<p className="text-xs text-content-secondary dark:text-content-secondary">
|
|
231
|
+
Ejemplo de uso con contadores para panel de resumen
|
|
232
|
+
</p>
|
|
233
|
+
</div>
|
|
234
|
+
),
|
|
235
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSConventionProps } from './POSConvention.types';
|
|
3
|
+
import { ConventionIcon } from './icons';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* POSConvention - Componente de leyenda/convención para estados de mesas POS
|
|
7
|
+
*
|
|
8
|
+
* Muestra un indicador circular de color con su respectiva etiqueta según el diseño de Figma.
|
|
9
|
+
* Se usa típicamente para crear leyendas que explican el significado de colores en el sistema POS.
|
|
10
|
+
*
|
|
11
|
+
* **Colores según Figma (node-id: 4418-40139):**
|
|
12
|
+
*
|
|
13
|
+
* | Estado | Light Mode | Dark Mode |
|
|
14
|
+
* |--------|------------|-----------|
|
|
15
|
+
* | Available | #0e79fd (azul) | #93d1fd (azul claro) |
|
|
16
|
+
* | Occupied | #af460e (naranja) | #f5a927 (amarillo) |
|
|
17
|
+
* | Reserved | #7e22ce (morado) | #c084fc (morado claro) |
|
|
18
|
+
* | Out of Service | #3f3f46 (gris) | #a1a1aa (gris claro) |
|
|
19
|
+
*
|
|
20
|
+
* **Dimensiones según Figma:**
|
|
21
|
+
* - Icono: 16x16px (círculo con fill)
|
|
22
|
+
* - Texto: 12px (Paragraph/Tiny - text-xs)
|
|
23
|
+
* - Gap: 4px (gap-1)
|
|
24
|
+
* - Line-height: 16px (leading-4)
|
|
25
|
+
*
|
|
26
|
+
* Mejores prácticas implementadas:
|
|
27
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
28
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
29
|
+
* - Colores exactos de Figma para Light y Dark mode
|
|
30
|
+
* - Type safety con TypeScript estricto
|
|
31
|
+
* - Accesibilidad con aria-label
|
|
32
|
+
*
|
|
33
|
+
* @see docs/colors.md - Sistema de colores
|
|
34
|
+
* @see docs/typography.md - Sistema tipográfico (Paragraph Tiny)
|
|
35
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Indicador de disponible
|
|
40
|
+
* <POSConvention status="available" />
|
|
41
|
+
*
|
|
42
|
+
* // Indicador de ocupada
|
|
43
|
+
* <POSConvention status="occupied" />
|
|
44
|
+
*
|
|
45
|
+
* // Leyenda completa en contenedor
|
|
46
|
+
* <div className="p-5 rounded-lg border border-dashed border-primary-custom-300">
|
|
47
|
+
* <div className="flex flex-col gap-9">
|
|
48
|
+
* <POSConvention status="available" />
|
|
49
|
+
* <POSConvention status="occupied" />
|
|
50
|
+
* <POSConvention status="reserved" />
|
|
51
|
+
* <POSConvention status="outOfService" />
|
|
52
|
+
* </div>
|
|
53
|
+
* </div>
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export const POSConvention: React.FC<POSConventionProps> = ({
|
|
57
|
+
status = 'available',
|
|
58
|
+
className = '',
|
|
59
|
+
}) => {
|
|
60
|
+
// ===== CONFIGURACIÓN DE COLORES Y LABELS SEGÚN FIGMA =====
|
|
61
|
+
// Colores extraídos del nodo 4418-40139 (Light) y 4418-40349 (Dark) de Figma
|
|
62
|
+
// Variables de Figma: contentCustomPrimary, contentYellow, contentPurple, contentZinc
|
|
63
|
+
const conventionConfig = {
|
|
64
|
+
available: {
|
|
65
|
+
lightColor: '#0e79fd', // Azul - contentCustomPrimary Light
|
|
66
|
+
darkColor: '#93d1fd', // Azul claro - contentCustomPrimary Dark
|
|
67
|
+
label: 'Disponible',
|
|
68
|
+
},
|
|
69
|
+
occupied: {
|
|
70
|
+
lightColor: '#af460e', // Naranja - contentOrange Light
|
|
71
|
+
darkColor: '#f5a927', // Amarillo - contentYellow Dark
|
|
72
|
+
label: 'Ocupada',
|
|
73
|
+
},
|
|
74
|
+
reserved: {
|
|
75
|
+
lightColor: '#7e22ce', // Morado - contentPurple Light
|
|
76
|
+
darkColor: '#c084fc', // Morado claro - contentPurple Dark
|
|
77
|
+
label: 'Reservada',
|
|
78
|
+
},
|
|
79
|
+
outOfService: {
|
|
80
|
+
lightColor: '#3f3f46', // Gris - contentZinc Light (zinc-700)
|
|
81
|
+
darkColor: '#a1a1aa', // Gris claro - contentZinc Dark (zinc-400)
|
|
82
|
+
label: 'Fuera de Servicio',
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const config = conventionConfig[status];
|
|
87
|
+
|
|
88
|
+
// ===== CLASES BASE =====
|
|
89
|
+
const baseClasses = `
|
|
90
|
+
inline-flex
|
|
91
|
+
items-center
|
|
92
|
+
gap-1
|
|
93
|
+
shrink-0
|
|
94
|
+
`;
|
|
95
|
+
|
|
96
|
+
// ===== COMBINAR CLASES =====
|
|
97
|
+
const finalClasses = [baseClasses, className]
|
|
98
|
+
.join(' ')
|
|
99
|
+
.replace(/\s+/g, ' ')
|
|
100
|
+
.trim();
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div
|
|
104
|
+
className={finalClasses}
|
|
105
|
+
role="presentation"
|
|
106
|
+
aria-label={`Estado: ${config.label}`}
|
|
107
|
+
>
|
|
108
|
+
{/* Icono circular 16x16 con colores para Light y Dark mode */}
|
|
109
|
+
<ConventionIcon lightColor={config.lightColor} darkColor={config.darkColor} />
|
|
110
|
+
|
|
111
|
+
{/* Label de texto según Figma: Paragraph/Tiny 12px */}
|
|
112
|
+
{/* Light: contentPrimary #18181b, Dark: contentPrimary #f4f4f5 */}
|
|
113
|
+
<span
|
|
114
|
+
className={`
|
|
115
|
+
text-xs
|
|
116
|
+
leading-4
|
|
117
|
+
font-normal
|
|
118
|
+
text-content-primary
|
|
119
|
+
dark:text-dark-content-primary
|
|
120
|
+
whitespace-nowrap
|
|
121
|
+
`
|
|
122
|
+
.replace(/\s+/g, ' ')
|
|
123
|
+
.trim()}
|
|
124
|
+
>
|
|
125
|
+
{config.label}
|
|
126
|
+
</span>
|
|
127
|
+
</div>
|
|
128
|
+
);
|
|
129
|
+
};
|
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tipo para los estados de convención posibles en el sistema POS
|
|
3
|
-
*
|
|
4
|
-
* Colores según Figma:
|
|
5
|
-
*
|
|
6
|
-
* | Estado | Light Mode | Dark Mode |
|
|
7
|
-
* |--------|------------|-----------|
|
|
8
|
-
* | `available` | #0e79fd (azul) | #93d1fd (azul claro) |
|
|
9
|
-
* | `occupied` | #af460e (naranja) | #f5a927 (amarillo) |
|
|
10
|
-
* | `reserved` | #7e22ce (morado) | #c084fc (morado claro) |
|
|
11
|
-
* | `outOfService` | #3f3f46 (gris) | #a1a1aa (gris claro) |
|
|
12
|
-
*/
|
|
13
|
-
export type ConventionStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Tipo para los estados de convención posibles en el sistema POS
|
|
3
|
+
*
|
|
4
|
+
* Colores según Figma:
|
|
5
|
+
*
|
|
6
|
+
* | Estado | Light Mode | Dark Mode |
|
|
7
|
+
* |--------|------------|-----------|
|
|
8
|
+
* | `available` | #0e79fd (azul) | #93d1fd (azul claro) |
|
|
9
|
+
* | `occupied` | #af460e (naranja) | #f5a927 (amarillo) |
|
|
10
|
+
* | `reserved` | #7e22ce (morado) | #c084fc (morado claro) |
|
|
11
|
+
* | `outOfService` | #3f3f46 (gris) | #a1a1aa (gris claro) |
|
|
12
|
+
*/
|
|
13
|
+
export type ConventionStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Props del componente POSConvention
|
|
17
|
+
*
|
|
18
|
+
* Componente de leyenda para mostrar el estado de las mesas en el sistema POS.
|
|
19
|
+
* Muestra un indicador circular de color con su respectiva etiqueta.
|
|
20
|
+
*/
|
|
21
|
+
export interface POSConventionProps {
|
|
22
|
+
/**
|
|
23
|
+
* Estado de la convención a mostrar
|
|
24
|
+
*
|
|
25
|
+
* - `available`: Disponible (Azul)
|
|
26
|
+
* - `occupied`: Ocupada (Naranja)
|
|
27
|
+
* - `reserved`: Reservada (Morado)
|
|
28
|
+
* - `outOfService`: F. de Servicio (Gris)
|
|
29
|
+
*
|
|
30
|
+
* @default 'available'
|
|
31
|
+
*/
|
|
32
|
+
status?: ConventionStatus;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Clases CSS adicionales para el contenedor
|
|
36
|
+
*/
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# POSConvention
|
|
2
|
+
|
|
3
|
+
Componente de leyenda/convención para mostrar el estado de las mesas en el sistema POS.
|
|
4
|
+
|
|
5
|
+
## Descripción
|
|
6
|
+
|
|
7
|
+
El componente `POSConvention` muestra un indicador circular de color con su respectiva etiqueta según el diseño de Figma. Se usa típicamente para crear leyendas que explican el significado de colores en el sistema de Punto de Venta.
|
|
8
|
+
|
|
9
|
+
## Instalación
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { POSConvention } from '@siesa/ui-kit';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Estados Disponibles
|
|
16
|
+
|
|
17
|
+
| Estado | Light Mode | Dark Mode | Etiqueta | Uso |
|
|
18
|
+
|--------|------------|-----------|----------|-----|
|
|
19
|
+
| `available` | `#0e79fd` (azul) | `#93d1fd` (azul claro) | Disponible | Mesa lista para clientes |
|
|
20
|
+
| `occupied` | `#af460e` (naranja) | `#f5a927` (amarillo) | Ocupada | Mesa actualmente en uso |
|
|
21
|
+
| `reserved` | `#7e22ce` (morado) | `#c084fc` (morado claro) | Reservada | Mesa con reservación |
|
|
22
|
+
| `outOfService` | `#3f3f46` (gris) | `#a1a1aa` (gris claro) | F. de Servicio | Mesa no disponible |
|
|
23
|
+
|
|
24
|
+
## Uso Básico
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
// Indicador individual
|
|
28
|
+
<POSConvention status="available" />
|
|
29
|
+
|
|
30
|
+
// Leyenda completa
|
|
31
|
+
<div className="flex flex-col gap-4">
|
|
32
|
+
<POSConvention status="available" />
|
|
33
|
+
<POSConvention status="occupied" />
|
|
34
|
+
<POSConvention status="reserved" />
|
|
35
|
+
<POSConvention status="outOfService" />
|
|
36
|
+
</div>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Props
|
|
40
|
+
|
|
41
|
+
| Prop | Tipo | Default | Descripción |
|
|
42
|
+
|------|------|---------|-------------|
|
|
43
|
+
| `status` | `'available' \| 'occupied' \| 'reserved' \| 'outOfService'` | `'available'` | Estado a mostrar |
|
|
44
|
+
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
45
|
+
|
|
46
|
+
## Especificaciones de Figma
|
|
47
|
+
|
|
48
|
+
- **Node ID**: `4418-40139`
|
|
49
|
+
- **Icono**: 16x16px (círculo con fill)
|
|
50
|
+
- **Texto**: 12px (Paragraph/Tiny)
|
|
51
|
+
- **Gap**: 4px
|
|
52
|
+
- **Line-height**: 16px
|
|
53
|
+
|
|
54
|
+
## Dark Mode
|
|
55
|
+
|
|
56
|
+
El componente soporta dark mode automáticamente:
|
|
57
|
+
- El texto cambia de `content-primary` a `dark-content-primary`
|
|
58
|
+
- Los colores de los iconos permanecen constantes para mantener la identificación visual
|
|
59
|
+
|
|
60
|
+
## Ejemplos Avanzados
|
|
61
|
+
|
|
62
|
+
### Leyenda con Borde Punteado (Como en Figma)
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
<div className="p-5 rounded-lg border-2 border-dashed border-primary-custom-300">
|
|
66
|
+
<div className="flex flex-col gap-9">
|
|
67
|
+
<POSConvention status="available" />
|
|
68
|
+
<POSConvention status="occupied" />
|
|
69
|
+
<POSConvention status="reserved" />
|
|
70
|
+
<POSConvention status="outOfService" />
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Leyenda Horizontal
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
<div className="flex items-center gap-6">
|
|
79
|
+
<POSConvention status="available" />
|
|
80
|
+
<POSConvention status="occupied" />
|
|
81
|
+
<POSConvention status="reserved" />
|
|
82
|
+
<POSConvention status="outOfService" />
|
|
83
|
+
</div>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Con Contadores
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<div className="flex flex-col gap-3">
|
|
90
|
+
<div className="flex items-center justify-between">
|
|
91
|
+
<POSConvention status="available" />
|
|
92
|
+
<span className="font-bold">12</span>
|
|
93
|
+
</div>
|
|
94
|
+
<div className="flex items-center justify-between">
|
|
95
|
+
<POSConvention status="occupied" />
|
|
96
|
+
<span className="font-bold">8</span>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Accesibilidad
|
|
102
|
+
|
|
103
|
+
- El componente incluye `role="presentation"` ya que es puramente visual
|
|
104
|
+
- Incluye `aria-label` con el estado actual para lectores de pantalla
|
|
105
|
+
- Los iconos SVG tienen `aria-hidden="true"`
|
|
106
|
+
|
|
107
|
+
## Archivos del Componente
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
POSConvention/
|
|
111
|
+
├── POSConvention.tsx # Componente principal
|
|
112
|
+
├── POSConvention.types.ts # Tipos TypeScript
|
|
113
|
+
├── POSConvention.stories.tsx # Stories de Storybook
|
|
114
|
+
├── icons.tsx # Icono SVG del círculo
|
|
115
|
+
├── index.ts # Exports
|
|
116
|
+
└── README.md # Esta documentación
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Referencias
|
|
120
|
+
|
|
121
|
+
- **Figma**: [POS Convention](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4418-40139)
|
|
122
|
+
- **Documentación de Colores**: `docs/colors.md`
|
|
123
|
+
- **Documentación de Tipografía**: `docs/typography.md`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Icono de convención para POSConvention
|
|
5
|
+
*
|
|
6
|
+
* Círculo SVG de 16x16px con colores diferentes para Light y Dark mode.
|
|
7
|
+
* Basado en especificaciones de Figma:
|
|
8
|
+
* - Light mode: node-id 4418-40139
|
|
9
|
+
* - Dark mode: node-id 4418-40349
|
|
10
|
+
*
|
|
11
|
+
* Usa dos círculos superpuestos con clases CSS para alternar entre modos.
|
|
12
|
+
*
|
|
13
|
+
* @param lightColor - Color hexadecimal para Light mode
|
|
14
|
+
* @param darkColor - Color hexadecimal para Dark mode
|
|
15
|
+
* @param className - Clases CSS adicionales (opcional)
|
|
16
|
+
*/
|
|
17
|
+
export const ConventionIcon: React.FC<{
|
|
18
|
+
lightColor: string;
|
|
19
|
+
darkColor: string;
|
|
20
|
+
className?: string;
|
|
21
|
+
}> = ({ lightColor, darkColor, className = '' }) => (
|
|
22
|
+
<svg
|
|
23
|
+
className={`w-4 h-4 shrink-0 ${className}`.trim()}
|
|
24
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
25
|
+
viewBox="0 0 16 16"
|
|
26
|
+
aria-hidden="true"
|
|
27
|
+
>
|
|
28
|
+
{/* Círculo para Light mode - visible por defecto, oculto en dark */}
|
|
29
|
+
<circle
|
|
30
|
+
cx="8"
|
|
31
|
+
cy="8"
|
|
32
|
+
r="8"
|
|
33
|
+
fill={lightColor}
|
|
34
|
+
className="dark:hidden"
|
|
35
|
+
/>
|
|
36
|
+
{/* Círculo para Dark mode - oculto por defecto, visible en dark */}
|
|
37
|
+
<circle
|
|
38
|
+
cx="8"
|
|
39
|
+
cy="8"
|
|
40
|
+
r="8"
|
|
41
|
+
fill={darkColor}
|
|
42
|
+
className="hidden dark:block"
|
|
43
|
+
/>
|
|
44
|
+
</svg>
|
|
45
|
+
);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { POSConvention } from './POSConvention';
|
|
2
|
-
export { ConventionIcon } from './icons';
|
|
3
|
-
export type { POSConventionProps, ConventionStatus } from './POSConvention.types';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
1
|
+
export { POSConvention } from './POSConvention';
|
|
2
|
+
export { ConventionIcon } from './icons';
|
|
3
|
+
export type { POSConventionProps, ConventionStatus } from './POSConvention.types';
|