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,208 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSProductCardProps } from './POSProductCard.types';
|
|
3
|
+
import { Button } from '../Button';
|
|
4
|
+
import { PlusIcon } from './icons';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Componente POSProductCard del sistema de diseño Siesa
|
|
8
|
+
*
|
|
9
|
+
* Card especializado para sistemas POS que muestra información de producto
|
|
10
|
+
* con imagen, nombre, precio y botón de agregar. Diseñado para catálogos
|
|
11
|
+
* de productos y selección rápida en punto de venta.
|
|
12
|
+
*
|
|
13
|
+
* **Estados disponibles:**
|
|
14
|
+
* - `enabled`: Estado normal
|
|
15
|
+
* - Light: fondo blanco (#ffffff), texto negro (#18181b)
|
|
16
|
+
* - Dark: fondo oscuro (#18181b), texto claro (#f4f4f5)
|
|
17
|
+
* - `active`: Estado seleccionado
|
|
18
|
+
* - Light: fondo azul claro (#dbeefe), texto azul (#0e79fd)
|
|
19
|
+
* - Dark: fondo azul oscuro (#112d57), texto celeste (#93d1fd)
|
|
20
|
+
* - `disabled`: Estado deshabilitado con opacidad reducida
|
|
21
|
+
*
|
|
22
|
+
* **Características:**
|
|
23
|
+
* - Imagen de producto con aspect ratio fijo y rounded-lg
|
|
24
|
+
* - Nombre del producto con tipografía Label Small (14px Bold)
|
|
25
|
+
* - Precio con tipografía Heading Small (24px Bold) y letter-spacing -2.5%
|
|
26
|
+
* - Botón "Agregar" reutiliza el componente Button del sistema
|
|
27
|
+
* - Soporte completo de dark mode pixel-perfect
|
|
28
|
+
* - Transiciones suaves
|
|
29
|
+
*
|
|
30
|
+
* **Mejores prácticas implementadas:**
|
|
31
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
32
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
33
|
+
* - Focus rings adaptativos para light y dark mode
|
|
34
|
+
* - Tokens de color consistentes con Figma
|
|
35
|
+
* - Estados hover y active completos
|
|
36
|
+
*
|
|
37
|
+
* @see docs/colors.md - Sistema de colores
|
|
38
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
39
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
40
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
41
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-31336 - Diseño Figma
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* // Card de producto normal
|
|
46
|
+
* <POSProductCard
|
|
47
|
+
* image="/images/caprese.jpg"
|
|
48
|
+
* productName="Ensalada Caprese"
|
|
49
|
+
* price="$ 40.000"
|
|
50
|
+
* onAddClick={() => console.log('Producto agregado')}
|
|
51
|
+
* />
|
|
52
|
+
*
|
|
53
|
+
* // Card de producto activo/seleccionado
|
|
54
|
+
* <POSProductCard
|
|
55
|
+
* image="/images/caprese.jpg"
|
|
56
|
+
* productName="Ensalada Caprese"
|
|
57
|
+
* price="$ 40.000"
|
|
58
|
+
* active={true}
|
|
59
|
+
* />
|
|
60
|
+
*
|
|
61
|
+
* // Card de producto deshabilitado
|
|
62
|
+
* <POSProductCard
|
|
63
|
+
* image="/images/caprese.jpg"
|
|
64
|
+
* productName="Ensalada Caprese"
|
|
65
|
+
* price="$ 40.000"
|
|
66
|
+
* disabled={true}
|
|
67
|
+
* />
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export const POSProductCard: React.FC<POSProductCardProps> = ({
|
|
71
|
+
image,
|
|
72
|
+
productName,
|
|
73
|
+
price,
|
|
74
|
+
buttonText = 'Agregar',
|
|
75
|
+
active = false,
|
|
76
|
+
disabled = false,
|
|
77
|
+
onAddClick,
|
|
78
|
+
onCardClick,
|
|
79
|
+
className = '',
|
|
80
|
+
ariaLabel,
|
|
81
|
+
}) => {
|
|
82
|
+
// ===== CLASES BASE DEL CARD =====
|
|
83
|
+
const baseClasses = `
|
|
84
|
+
flex
|
|
85
|
+
flex-col
|
|
86
|
+
gap-2
|
|
87
|
+
p-3
|
|
88
|
+
rounded-lg
|
|
89
|
+
w-[170px]
|
|
90
|
+
transition-all
|
|
91
|
+
duration-150
|
|
92
|
+
focus:outline-none
|
|
93
|
+
focus:ring-2
|
|
94
|
+
focus:ring-primary-custom-400
|
|
95
|
+
focus:ring-offset-2
|
|
96
|
+
dark:focus:ring-dark-border-custom
|
|
97
|
+
dark:focus:ring-offset-dark-bg-primary
|
|
98
|
+
`;
|
|
99
|
+
|
|
100
|
+
// ===== CLASES DE ESTADO DEL CARD =====
|
|
101
|
+
// Light: enabled=#ffffff, active=#dbeefe
|
|
102
|
+
// Dark: enabled=#18181b, active=#112d57
|
|
103
|
+
const stateClasses = disabled
|
|
104
|
+
? `
|
|
105
|
+
bg-white
|
|
106
|
+
opacity-55
|
|
107
|
+
cursor-not-allowed
|
|
108
|
+
dark:bg-dark-bg-primary
|
|
109
|
+
`
|
|
110
|
+
: active
|
|
111
|
+
? `
|
|
112
|
+
bg-primary-custom-100
|
|
113
|
+
cursor-pointer
|
|
114
|
+
dark:bg-dark-bg-custom
|
|
115
|
+
`
|
|
116
|
+
: `
|
|
117
|
+
bg-white
|
|
118
|
+
cursor-pointer
|
|
119
|
+
dark:bg-dark-bg-primary
|
|
120
|
+
`;
|
|
121
|
+
|
|
122
|
+
// ===== CLASES DE TEXTO SEGÚN ESTADO =====
|
|
123
|
+
// Light: enabled=#18181b, active=#0e79fd
|
|
124
|
+
// Dark: enabled=#f4f4f5, active=#93d1fd
|
|
125
|
+
const textClasses = disabled
|
|
126
|
+
? `
|
|
127
|
+
text-content-primary
|
|
128
|
+
dark:text-dark-content-primary
|
|
129
|
+
`
|
|
130
|
+
: active
|
|
131
|
+
? `
|
|
132
|
+
text-primary-custom-600
|
|
133
|
+
dark:text-dark-content-custom
|
|
134
|
+
`
|
|
135
|
+
: `
|
|
136
|
+
text-content-primary
|
|
137
|
+
dark:text-dark-content-primary
|
|
138
|
+
`;
|
|
139
|
+
|
|
140
|
+
// ===== COMBINAR CLASES DEL CARD =====
|
|
141
|
+
const cardClasses = [baseClasses, stateClasses, className]
|
|
142
|
+
.join(' ')
|
|
143
|
+
.replace(/\s+/g, ' ')
|
|
144
|
+
.trim();
|
|
145
|
+
|
|
146
|
+
// ===== HANDLER DEL CLICK EN EL CARD =====
|
|
147
|
+
const handleCardClick = (event: React.MouseEvent<HTMLDivElement>) => {
|
|
148
|
+
if (disabled) return;
|
|
149
|
+
// Solo propagar si no se hizo clic en el botón
|
|
150
|
+
if ((event.target as HTMLElement).closest('button')) return;
|
|
151
|
+
onCardClick?.(event);
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// ===== HANDLER DEL CLICK EN EL BOTÓN =====
|
|
155
|
+
const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {
|
|
156
|
+
event.stopPropagation();
|
|
157
|
+
if (disabled) return;
|
|
158
|
+
onAddClick?.(event);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
return (
|
|
162
|
+
<div
|
|
163
|
+
className={cardClasses}
|
|
164
|
+
onClick={handleCardClick}
|
|
165
|
+
role="article"
|
|
166
|
+
aria-label={ariaLabel || `${productName} - ${price}`}
|
|
167
|
+
tabIndex={disabled ? -1 : 0}
|
|
168
|
+
>
|
|
169
|
+
{/* Sección de información del producto */}
|
|
170
|
+
<div className="flex flex-col gap-3 w-full">
|
|
171
|
+
{/* Imagen del producto */}
|
|
172
|
+
<div className="h-[88px] w-full rounded-lg overflow-hidden">
|
|
173
|
+
<img
|
|
174
|
+
src={image}
|
|
175
|
+
alt={productName}
|
|
176
|
+
className="w-full h-full object-cover"
|
|
177
|
+
/>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
{/* Datos del producto (nombre y precio) */}
|
|
181
|
+
<div className={`flex flex-col w-full font-bold ${textClasses}`.trim().replace(/\s+/g, ' ')}>
|
|
182
|
+
{/* Nombre del producto - Label Small (14px) */}
|
|
183
|
+
<div className="text-sm leading-5">
|
|
184
|
+
{productName}
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
{/* Precio - Heading Small (24px) con letter-spacing -2.5% (tracking-tighter) */}
|
|
188
|
+
<div className="text-2xl leading-8 tracking-tighter">
|
|
189
|
+
{price}
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
{/* Botón Agregar - Reutiliza el componente Button del sistema */}
|
|
195
|
+
<Button
|
|
196
|
+
type="default"
|
|
197
|
+
size="sm"
|
|
198
|
+
leftIcon={<PlusIcon className="w-4 h-4" />}
|
|
199
|
+
onClick={handleButtonClick}
|
|
200
|
+
disabled={disabled}
|
|
201
|
+
fullWidth
|
|
202
|
+
ariaLabel={`${buttonText} ${productName}`}
|
|
203
|
+
>
|
|
204
|
+
{buttonText}
|
|
205
|
+
</Button>
|
|
206
|
+
</div>
|
|
207
|
+
);
|
|
208
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Props del componente POSProductCard
|
|
5
|
+
*
|
|
6
|
+
* Card especializado para sistemas de punto de venta (POS) que muestra
|
|
7
|
+
* información de producto con imagen, nombre, precio y botón de agregar.
|
|
8
|
+
*
|
|
9
|
+
* El botón "Agregar" reutiliza el componente Button del sistema.
|
|
10
|
+
*
|
|
11
|
+
* @see docs/colors.md - Sistema de colores
|
|
12
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
13
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
14
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
15
|
+
* @see src/components/Button - Componente Button reutilizado
|
|
16
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-31336 - Diseño Figma
|
|
17
|
+
*/
|
|
18
|
+
export interface POSProductCardProps {
|
|
19
|
+
/**
|
|
20
|
+
* URL de la imagen del producto
|
|
21
|
+
* Se muestra en la parte superior del card con aspect-ratio fijo
|
|
22
|
+
*/
|
|
23
|
+
image: string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Nombre del producto a mostrar
|
|
27
|
+
* Se muestra con tipografía Label Small (14px Bold)
|
|
28
|
+
*/
|
|
29
|
+
productName: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Precio del producto formateado como string
|
|
33
|
+
* Se muestra con tipografía Heading Small (24px Bold)
|
|
34
|
+
* @example "$ 40.000"
|
|
35
|
+
*/
|
|
36
|
+
price: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Texto del botón de acción
|
|
40
|
+
* @default "Agregar"
|
|
41
|
+
*/
|
|
42
|
+
buttonText?: string;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Estado activo/seleccionado del card
|
|
46
|
+
* Cuando está activo, el fondo cambia a azul claro y el texto a azul
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
active?: boolean;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Si el card está deshabilitado
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Handler para cuando se hace clic en el botón "Agregar"
|
|
59
|
+
*/
|
|
60
|
+
onAddClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Handler para cuando se hace clic en el card (no en el botón)
|
|
64
|
+
*/
|
|
65
|
+
onCardClick?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Clases CSS adicionales para el card
|
|
69
|
+
*/
|
|
70
|
+
className?: string;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Label de accesibilidad para el card
|
|
74
|
+
*/
|
|
75
|
+
ariaLabel?: string;
|
|
76
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# POSProductCard
|
|
2
|
+
|
|
3
|
+
Card de producto especializado para sistemas de punto de venta (POS). Muestra información de producto con imagen, nombre, precio y botón de agregar.
|
|
4
|
+
|
|
5
|
+
## Características
|
|
6
|
+
|
|
7
|
+
- Imagen de producto con aspect ratio fijo (146x88px)
|
|
8
|
+
- Nombre del producto (Label Small - 14px Bold)
|
|
9
|
+
- Precio con tipografía destacada (Heading Small - 24px Bold, tracking-tighter)
|
|
10
|
+
- **Botón "Agregar" reutiliza el componente Button del sistema**
|
|
11
|
+
- 3 estados: enabled, active, disabled
|
|
12
|
+
- **Soporte completo de dark mode pixel-perfect**
|
|
13
|
+
- Focus rings adaptativos para accesibilidad
|
|
14
|
+
- Transiciones suaves
|
|
15
|
+
|
|
16
|
+
## Uso Básico
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
import { POSProductCard } from './components/POSProductCard';
|
|
20
|
+
|
|
21
|
+
// Card normal
|
|
22
|
+
<POSProductCard
|
|
23
|
+
image="/images/ensalada.jpg"
|
|
24
|
+
productName="Ensalada Caprese"
|
|
25
|
+
price="$ 40.000"
|
|
26
|
+
onAddClick={() => console.log('Producto agregado')}
|
|
27
|
+
/>
|
|
28
|
+
|
|
29
|
+
// Card activo/seleccionado
|
|
30
|
+
<POSProductCard
|
|
31
|
+
image="/images/ensalada.jpg"
|
|
32
|
+
productName="Ensalada Caprese"
|
|
33
|
+
price="$ 40.000"
|
|
34
|
+
active={true}
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
// Card deshabilitado
|
|
38
|
+
<POSProductCard
|
|
39
|
+
image="/images/ensalada.jpg"
|
|
40
|
+
productName="Ensalada Caprese"
|
|
41
|
+
price="$ 40.000"
|
|
42
|
+
disabled={true}
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Props
|
|
47
|
+
|
|
48
|
+
| Prop | Tipo | Default | Descripción |
|
|
49
|
+
|------|------|---------|-------------|
|
|
50
|
+
| `image` | `string` | - | URL de la imagen del producto |
|
|
51
|
+
| `productName` | `string` | - | Nombre del producto |
|
|
52
|
+
| `price` | `string` | - | Precio formateado (ej: "$ 40.000") |
|
|
53
|
+
| `buttonText` | `string` | "Agregar" | Texto del botón de acción |
|
|
54
|
+
| `active` | `boolean` | `false` | Estado activo/seleccionado |
|
|
55
|
+
| `disabled` | `boolean` | `false` | Estado deshabilitado |
|
|
56
|
+
| `onAddClick` | `function` | - | Handler del clic en botón |
|
|
57
|
+
| `onCardClick` | `function` | - | Handler del clic en card |
|
|
58
|
+
| `className` | `string` | - | Clases CSS adicionales |
|
|
59
|
+
| `ariaLabel` | `string` | - | Label de accesibilidad |
|
|
60
|
+
|
|
61
|
+
## Estados y Colores
|
|
62
|
+
|
|
63
|
+
### Enabled (Normal)
|
|
64
|
+
|
|
65
|
+
| Elemento | Light Mode | Dark Mode |
|
|
66
|
+
|----------|------------|-----------|
|
|
67
|
+
| Fondo card | `#ffffff` | `#18181b` |
|
|
68
|
+
| Texto | `#18181b` | `#f4f4f5` |
|
|
69
|
+
|
|
70
|
+
### Active (Seleccionado)
|
|
71
|
+
|
|
72
|
+
| Elemento | Light Mode | Dark Mode |
|
|
73
|
+
|----------|------------|-----------|
|
|
74
|
+
| Fondo card | `#dbeefe` | `#112d57` |
|
|
75
|
+
| Texto | `#0e79fd` | `#93d1fd` |
|
|
76
|
+
|
|
77
|
+
### Disabled
|
|
78
|
+
|
|
79
|
+
- Opacidad reducida (55%)
|
|
80
|
+
- No interactivo
|
|
81
|
+
- Para productos no disponibles
|
|
82
|
+
|
|
83
|
+
### Botón "Agregar" (Dark Mode Invertido)
|
|
84
|
+
|
|
85
|
+
El botón invierte sus colores en dark mode según especificación de Figma:
|
|
86
|
+
|
|
87
|
+
| Elemento | Light Mode | Dark Mode |
|
|
88
|
+
|----------|------------|-----------|
|
|
89
|
+
| Fondo | `#0e79fd` (azul) | `#bfe2fe` (celeste claro) |
|
|
90
|
+
| Texto | `#eff8ff` (blanco) | `#0e79fd` (azul) |
|
|
91
|
+
| Borde | `#3c9bf6` | `#93d1fd` |
|
|
92
|
+
|
|
93
|
+
## Especificaciones de Figma
|
|
94
|
+
|
|
95
|
+
| Propiedad | Valor |
|
|
96
|
+
|-----------|-------|
|
|
97
|
+
| **Tamaño** | 170 x 212px |
|
|
98
|
+
| **Padding** | 12px (p-3) |
|
|
99
|
+
| **Gap** | 8px (gap-2) |
|
|
100
|
+
| **Border Radius** | 8px (rounded-lg) |
|
|
101
|
+
| **Imagen** | 146 x 88px |
|
|
102
|
+
| **Tipografía nombre** | Label Small (14px Bold) |
|
|
103
|
+
| **Tipografía precio** | Heading Small (24px Bold, tracking-tighter) |
|
|
104
|
+
| **Botón** | Button default size xs (reutilizado) |
|
|
105
|
+
|
|
106
|
+
## Reutilización del Componente Button
|
|
107
|
+
|
|
108
|
+
El botón "Agregar" **reutiliza el componente Button existente** del sistema. Esto garantiza:
|
|
109
|
+
|
|
110
|
+
- Consistencia visual con el resto del sistema
|
|
111
|
+
- Mantenimiento centralizado de estilos
|
|
112
|
+
- Soporte automático de dark mode
|
|
113
|
+
- Focus rings y accesibilidad heredados
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
<Button
|
|
117
|
+
type="default"
|
|
118
|
+
size="xs"
|
|
119
|
+
leftIcon={<PlusIcon />}
|
|
120
|
+
onClick={handleButtonClick}
|
|
121
|
+
disabled={disabled}
|
|
122
|
+
fullWidth
|
|
123
|
+
>
|
|
124
|
+
{buttonText}
|
|
125
|
+
</Button>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Tokens de Tailwind Utilizados
|
|
129
|
+
|
|
130
|
+
### Card
|
|
131
|
+
|
|
132
|
+
```js
|
|
133
|
+
// Card - Light Mode
|
|
134
|
+
'bg-white' // Fondo enabled
|
|
135
|
+
'primary-custom-100' // Fondo active (#dbeefe)
|
|
136
|
+
'content-primary' // Texto enabled (#18181b)
|
|
137
|
+
'primary-custom-600' // Texto active (#0e79fd)
|
|
138
|
+
|
|
139
|
+
// Card - Dark Mode
|
|
140
|
+
'dark-bg-primary' // Fondo enabled (#18181b)
|
|
141
|
+
'dark-bg-custom' // Fondo active (#112d57)
|
|
142
|
+
'dark-content-primary' // Texto enabled (#f4f4f5)
|
|
143
|
+
'dark-content-custom' // Texto active (#93d1fd)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Botón (Dark Mode Invertido)
|
|
147
|
+
|
|
148
|
+
```js
|
|
149
|
+
// Botón - Light Mode
|
|
150
|
+
'bg-primary-custom-600' // Fondo (#0e79fd)
|
|
151
|
+
'text-primary-inverse-content' // Texto (#eff8ff)
|
|
152
|
+
'border-primary-inverse-border' // Borde (#3c9bf6)
|
|
153
|
+
|
|
154
|
+
// Botón - Dark Mode (invertido)
|
|
155
|
+
'dark:bg-dark-bg-inverse' // Fondo (#bfe2fe)
|
|
156
|
+
'dark:text-dark-content-inverse' // Texto (#0e79fd)
|
|
157
|
+
'dark:border-dark-border-inverse' // Borde (#93d1fd)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Archivos
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
POSProductCard/
|
|
164
|
+
├── POSProductCard.tsx # Componente principal
|
|
165
|
+
├── POSProductCard.types.ts # Tipos TypeScript
|
|
166
|
+
├── POSProductCard.stories.tsx # Stories de Storybook
|
|
167
|
+
├── icons.tsx # Icono Plus
|
|
168
|
+
├── index.ts # Exports
|
|
169
|
+
└── README.md # Esta documentación
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Referencias
|
|
173
|
+
|
|
174
|
+
- [Figma: POS Product Card](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-31336)
|
|
175
|
+
- [src/components/Button](../Button) - Componente Button reutilizado
|
|
176
|
+
- [docs/colors.md](../../docs/colors.md) - Sistema de colores
|
|
177
|
+
- [docs/typography.md](../../docs/typography.md) - Tipografía
|
|
178
|
+
- [docs/spacing.md](../../docs/spacing.md) - Espaciado
|
|
179
|
+
- [docs/shadows.md](../../docs/shadows.md) - Sombras
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Icono Plus (heroicons-micro/plus)
|
|
5
|
+
* Usado en el botón "Agregar" del POSProductCard
|
|
6
|
+
* Tamaño: 16x16px según especificación de Figma
|
|
7
|
+
*/
|
|
8
|
+
export const PlusIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
9
|
+
<svg
|
|
10
|
+
width="16"
|
|
11
|
+
height="16"
|
|
12
|
+
viewBox="0 0 16 16"
|
|
13
|
+
fill="none"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
className={className}
|
|
16
|
+
aria-hidden="true"
|
|
17
|
+
>
|
|
18
|
+
<path
|
|
19
|
+
d="M8 3V13M3 8H13"
|
|
20
|
+
stroke="currentColor"
|
|
21
|
+
strokeWidth="1.5"
|
|
22
|
+
strokeLinecap="round"
|
|
23
|
+
strokeLinejoin="round"
|
|
24
|
+
/>
|
|
25
|
+
</svg>
|
|
26
|
+
);
|
package/{dist/components/POSProductCard/index.d.ts → src/components/POSProductCard/index.ts}
RENAMED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export { POSProductCard } from './POSProductCard';
|
|
2
|
-
export type { POSProductCardProps } from './POSProductCard.types';
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
|
1
|
+
export { POSProductCard } from './POSProductCard';
|
|
2
|
+
export type { POSProductCardProps } from './POSProductCard.types';
|