siesa-ui-kit 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -115
- package/bin/install.cjs +502 -502
- package/bin/prepare-publish.cjs +28 -28
- package/bin/restore-folders.cjs +28 -28
- package/dist/index.cjs +1479 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +1479 -0
- package/dist/index.js.map +1 -0
- package/package.json +92 -111
- package/claude/agents/siesa-ui-kit-specialist.md +0 -2445
- package/claude/prompts/component-template.md +0 -121
- package/claude/prompts/siesa-ui-kit.md +0 -28
- package/claude/settings.local.json +0 -72
- package/dist/ButtonTest.d.ts +0 -6
- package/dist/ButtonTest.d.ts.map +0 -1
- package/dist/components/Alert/Alert.d.ts +0 -23
- package/dist/components/Alert/Alert.d.ts.map +0 -1
- package/dist/components/Alert/Alert.types.d.ts +0 -46
- package/dist/components/Alert/Alert.types.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -41
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.types.d.ts +0 -46
- package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -42
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.types.d.ts +0 -32
- package/dist/components/Badge/Badge.types.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -84
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.types.d.ts +0 -162
- package/dist/components/Button/Button.types.d.ts.map +0 -1
- package/dist/components/Button/icons.d.ts +0 -27
- package/dist/components/Button/icons.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts +0 -4
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -31
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.types.d.ts +0 -53
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.d.ts +0 -38
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.types.d.ts +0 -27
- package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +0 -1
- package/dist/components/Divider/Divider.d.ts +0 -33
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/Divider.types.d.ts +0 -22
- package/dist/components/Divider/Divider.types.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.d.ts +0 -66
- package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.types.d.ts +0 -124
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +0 -1
- package/dist/components/Dropdown/icons.d.ts +0 -10
- package/dist/components/Dropdown/icons.d.ts.map +0 -1
- package/dist/components/Dropdown/index.d.ts +0 -4
- package/dist/components/Dropdown/index.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +0 -101
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +0 -116
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/icons.d.ts +0 -19
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/index.d.ts +0 -9
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +0 -75
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +0 -85
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/icons.d.ts +0 -48
- package/dist/components/DropdownItemHeading/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/index.d.ts +0 -4
- package/dist/components/DropdownItemHeading/index.d.ts.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -40
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.types.d.ts +0 -71
- package/dist/components/Input/Input.types.d.ts.map +0 -1
- package/dist/components/Input/icons.d.ts +0 -15
- package/dist/components/Input/icons.d.ts.map +0 -1
- package/dist/components/Input/index.d.ts +0 -3
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.d.ts +0 -36
- package/dist/components/LoginView/LoginView.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.types.d.ts +0 -46
- package/dist/components/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/components/LoginView/icons.d.ts +0 -18
- package/dist/components/LoginView/icons.d.ts.map +0 -1
- package/dist/components/LoginView/index.d.ts +0 -4
- package/dist/components/LoginView/index.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.d.ts +0 -63
- package/dist/components/Navbar/Navbar.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.types.d.ts +0 -194
- package/dist/components/Navbar/Navbar.types.d.ts.map +0 -1
- package/dist/components/Navbar/icons.d.ts +0 -12
- package/dist/components/Navbar/icons.d.ts.map +0 -1
- package/dist/components/Navbar/index.d.ts +0 -4
- package/dist/components/Navbar/index.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.d.ts +0 -75
- package/dist/components/NavigationBar/NavigationBar.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.types.d.ts +0 -63
- package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +0 -1
- package/dist/components/NavigationBar/index.d.ts +0 -3
- package/dist/components/NavigationBar/index.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.d.ts +0 -7
- package/dist/components/NavigationRail/NavigationRail.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.types.d.ts +0 -92
- package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +0 -1
- package/dist/components/NavigationRail/index.d.ts +0 -3
- package/dist/components/NavigationRail/index.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +0 -122
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +0 -139
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/icons.d.ts +0 -33
- package/dist/components/NavigationRailCommercial/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/index.d.ts +0 -4
- package/dist/components/NavigationRailCommercial/index.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +0 -90
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +0 -162
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/index.d.ts +0 -3
- package/dist/components/NavigationRailItem/index.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +0 -124
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +0 -154
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/index.d.ts +0 -3
- package/dist/components/NavigationRailPanel/index.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +0 -99
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +0 -152
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +0 -44
- package/dist/components/NavigationRailTypes/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/index.d.ts +0 -4
- package/dist/components/NavigationRailTypes/index.d.ts.map +0 -1
- package/dist/components/Notification/Notification.d.ts +0 -52
- package/dist/components/Notification/Notification.d.ts.map +0 -1
- package/dist/components/Notification/Notification.types.d.ts +0 -138
- package/dist/components/Notification/Notification.types.d.ts.map +0 -1
- package/dist/components/Notification/index.d.ts +0 -3
- package/dist/components/Notification/index.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.d.ts +0 -55
- package/dist/components/POSConvention/POSConvention.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.types.d.ts +0 -37
- package/dist/components/POSConvention/POSConvention.types.d.ts.map +0 -1
- package/dist/components/POSConvention/icons.d.ts +0 -21
- package/dist/components/POSConvention/icons.d.ts.map +0 -1
- package/dist/components/POSConvention/index.d.ts +0 -4
- package/dist/components/POSConvention/index.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.d.ts +0 -73
- package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +0 -75
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +0 -1
- package/dist/components/POSLocationButton/icons.d.ts +0 -37
- package/dist/components/POSLocationButton/icons.d.ts.map +0 -1
- package/dist/components/POSLocationButton/index.d.ts +0 -4
- package/dist/components/POSLocationButton/index.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.d.ts +0 -61
- package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +0 -43
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +0 -1
- package/dist/components/POSNumberButton/index.d.ts +0 -3
- package/dist/components/POSNumberButton/index.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.d.ts +0 -59
- package/dist/components/POSProductButton/POSProductButton.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.types.d.ts +0 -40
- package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +0 -1
- package/dist/components/POSProductButton/index.d.ts +0 -3
- package/dist/components/POSProductButton/index.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.d.ts +0 -68
- package/dist/components/POSProductCard/POSProductCard.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.types.d.ts +0 -67
- package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +0 -1
- package/dist/components/POSProductCard/icons.d.ts +0 -10
- package/dist/components/POSProductCard/icons.d.ts.map +0 -1
- package/dist/components/POSProductCard/index.d.ts +0 -3
- package/dist/components/POSProductCard/index.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +0 -57
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +0 -85
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/icons.d.ts +0 -9
- package/dist/components/POSProductSidebarItems/icons.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/index.d.ts +0 -4
- package/dist/components/POSProductSidebarItems/index.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.d.ts +0 -75
- package/dist/components/POSTable/POSTable.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.types.d.ts +0 -71
- package/dist/components/POSTable/POSTable.types.d.ts.map +0 -1
- package/dist/components/POSTable/index.d.ts +0 -3
- package/dist/components/POSTable/index.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.d.ts +0 -29
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.types.d.ts +0 -79
- package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
- package/dist/components/Pagination/icons.d.ts +0 -18
- package/dist/components/Pagination/icons.d.ts.map +0 -1
- package/dist/components/Pagination/index.d.ts +0 -4
- package/dist/components/Pagination/index.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.d.ts +0 -38
- package/dist/components/Quantity/Quantity.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.types.d.ts +0 -59
- package/dist/components/Quantity/Quantity.types.d.ts.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -45
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.types.d.ts +0 -115
- package/dist/components/Radio/Radio.types.d.ts.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -37
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.types.d.ts +0 -124
- package/dist/components/Select/Select.types.d.ts.map +0 -1
- package/dist/components/Select/icons.d.ts +0 -20
- package/dist/components/Select/icons.d.ts.map +0 -1
- package/dist/components/Select/index.d.ts +0 -4
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.d.ts +0 -38
- package/dist/components/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/components/SignUpView/icons.d.ts +0 -18
- package/dist/components/SignUpView/icons.d.ts.map +0 -1
- package/dist/components/SignUpView/index.d.ts +0 -4
- package/dist/components/SignUpView/index.d.ts.map +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -46
- package/dist/components/Switch/Switch.d.ts.map +0 -1
- package/dist/components/Switch/Switch.types.d.ts +0 -58
- package/dist/components/Switch/Switch.types.d.ts.map +0 -1
- package/dist/components/Table/Table.d.ts +0 -64
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.types.d.ts +0 -173
- package/dist/components/Table/Table.types.d.ts.map +0 -1
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -76
- package/dist/components/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.types.d.ts +0 -107
- package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
- package/dist/components/Tabs/icons.d.ts +0 -45
- package/dist/components/Tabs/icons.d.ts.map +0 -1
- package/dist/components/Tabs/index.d.ts +0 -4
- package/dist/components/Tabs/index.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.d.ts +0 -38
- package/dist/components/Textarea/Textarea.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.types.d.ts +0 -46
- package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
- package/dist/context/ThemeContext.d.ts +0 -46
- package/dist/context/ThemeContext.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -88
- package/dist/index.d.ts.map +0 -1
- package/dist/siesa-ui-kit.cjs +0 -1474
- package/dist/siesa-ui-kit.cjs.map +0 -1
- package/dist/siesa-ui-kit.mjs +0 -9580
- package/dist/siesa-ui-kit.mjs.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +0 -48
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +0 -49
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/index.d.ts +0 -3
- package/dist/views/LayoutCommercial/index.d.ts.map +0 -1
- package/dist/views/ListView/ListView.d.ts +0 -47
- package/dist/views/ListView/ListView.d.ts.map +0 -1
- package/dist/views/ListView/ListView.types.d.ts +0 -177
- package/dist/views/ListView/ListView.types.d.ts.map +0 -1
- package/dist/views/ListView/icons.d.ts +0 -60
- package/dist/views/ListView/icons.d.ts.map +0 -1
- package/dist/views/ListView/index.d.ts +0 -3
- package/dist/views/ListView/index.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.d.ts +0 -36
- package/dist/views/LoginView/LoginView.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.types.d.ts +0 -46
- package/dist/views/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/views/LoginView/icons.d.ts +0 -18
- package/dist/views/LoginView/icons.d.ts.map +0 -1
- package/dist/views/LoginView/index.d.ts +0 -4
- package/dist/views/LoginView/index.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.d.ts +0 -56
- package/dist/views/ProductsView/ProductsView.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.types.d.ts +0 -184
- package/dist/views/ProductsView/ProductsView.types.d.ts.map +0 -1
- package/dist/views/ProductsView/icons.d.ts +0 -12
- package/dist/views/ProductsView/icons.d.ts.map +0 -1
- package/dist/views/ProductsView/index.d.ts +0 -3
- package/dist/views/ProductsView/index.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +0 -34
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +0 -50
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/icons.d.ts +0 -9
- package/dist/views/RecoverPasswordView/icons.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/index.d.ts +0 -3
- package/dist/views/RecoverPasswordView/index.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.d.ts +0 -38
- package/dist/views/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/views/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/views/SignUpView/icons.d.ts +0 -18
- package/dist/views/SignUpView/icons.d.ts.map +0 -1
- package/dist/views/SignUpView/index.d.ts +0 -4
- package/dist/views/SignUpView/index.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.d.ts +0 -46
- package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +0 -170
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +0 -1
- package/dist/views/TableLayoutView/icons.d.ts +0 -27
- package/dist/views/TableLayoutView/icons.d.ts.map +0 -1
- package/dist/views/TableLayoutView/index.d.ts +0 -3
- package/dist/views/TableLayoutView/index.d.ts.map +0 -1
- package/docs/border-radius.md +0 -1261
- package/docs/colors.md +0 -832
- package/docs/dark-mode-guide.md +0 -1426
- package/docs/filters.md +0 -1243
- package/docs/icons.md +0 -1264
- package/docs/shadows.md +0 -1377
- package/docs/spacing.md +0 -1684
- package/docs/typography.md +0 -1268
- package/postcss.config.cjs +0 -6
- package/src/App.css +0 -42
- package/src/App.tsx +0 -8
- package/src/ButtonTest.tsx +0 -147
- package/src/assets/fonts/README.md +0 -261
- 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 +0 -1
- package/src/components/Alert/Alert.stories.tsx +0 -332
- package/src/components/Alert/Alert.tsx +0 -106
- package/src/components/Alert/Alert.types.ts +0 -54
- package/src/components/Avatar/Avatar.stories.tsx +0 -494
- package/src/components/Avatar/Avatar.tsx +0 -143
- package/src/components/Avatar/Avatar.types.ts +0 -53
- package/src/components/Badge/Badge.stories.tsx +0 -339
- package/src/components/Badge/Badge.tsx +0 -278
- package/src/components/Badge/Badge.types.ts +0 -58
- package/src/components/Button/Button.stories.tsx +0 -950
- package/src/components/Button/Button.tsx +0 -337
- package/src/components/Button/Button.types.ts +0 -180
- package/src/components/Button/icons.tsx +0 -48
- package/src/components/Button/index.ts +0 -3
- package/src/components/Checkbox/Checkbox.stories.tsx +0 -453
- package/src/components/Checkbox/Checkbox.tsx +0 -208
- package/src/components/Checkbox/Checkbox.types.ts +0 -61
- package/src/components/DescriptionList/DescriptionList.stories.tsx +0 -250
- package/src/components/DescriptionList/DescriptionList.tsx +0 -96
- package/src/components/DescriptionList/DescriptionList.types.ts +0 -29
- package/src/components/Divider/Divider.stories.tsx +0 -263
- package/src/components/Divider/Divider.tsx +0 -80
- package/src/components/Divider/Divider.types.ts +0 -24
- package/src/components/Dropdown/Dropdown.stories.tsx +0 -552
- package/src/components/Dropdown/Dropdown.tsx +0 -422
- package/src/components/Dropdown/Dropdown.types.ts +0 -146
- package/src/components/Dropdown/README.md +0 -266
- package/src/components/Dropdown/icons.tsx +0 -72
- package/src/components/Dropdown/index.ts +0 -8
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +0 -317
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +0 -307
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +0 -136
- package/src/components/DropdownItemCollapsible/README.md +0 -264
- package/src/components/DropdownItemCollapsible/icons.tsx +0 -57
- package/src/components/DropdownItemCollapsible/index.ts +0 -12
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +0 -386
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +0 -216
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +0 -93
- package/src/components/DropdownItemHeading/README.md +0 -573
- package/src/components/DropdownItemHeading/icons.tsx +0 -125
- package/src/components/DropdownItemHeading/index.ts +0 -3
- package/src/components/Input/Input.stories.tsx +0 -583
- package/src/components/Input/Input.tsx +0 -204
- package/src/components/Input/Input.types.ts +0 -80
- package/src/components/Input/icons.tsx +0 -145
- package/src/components/Input/index.ts +0 -2
- package/src/components/LoginView/LoginView.stories.tsx +0 -148
- package/src/components/LoginView/LoginView.tsx +0 -426
- package/src/components/LoginView/LoginView.types.ts +0 -52
- package/src/components/LoginView/README.md +0 -396
- package/src/components/LoginView/icons.tsx +0 -85
- package/src/components/LoginView/index.ts +0 -3
- package/src/components/Navbar/Navbar.stories.tsx +0 -810
- package/src/components/Navbar/Navbar.tsx +0 -755
- package/src/components/Navbar/Navbar.types.ts +0 -219
- package/src/components/Navbar/README.md +0 -279
- package/src/components/Navbar/icons.tsx +0 -102
- package/src/components/Navbar/index.ts +0 -8
- package/src/components/NavigationBar/NavigationBar.stories.tsx +0 -406
- package/src/components/NavigationBar/NavigationBar.tsx +0 -246
- package/src/components/NavigationBar/NavigationBar.types.ts +0 -74
- package/src/components/NavigationBar/README.md +0 -469
- package/src/components/NavigationBar/index.ts +0 -2
- package/src/components/NavigationRail/NavigationRail.stories.tsx +0 -417
- package/src/components/NavigationRail/NavigationRail.tsx +0 -418
- package/src/components/NavigationRail/NavigationRail.types.ts +0 -109
- package/src/components/NavigationRail/README.md +0 -224
- package/src/components/NavigationRail/index.ts +0 -2
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +0 -464
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +0 -301
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +0 -162
- package/src/components/NavigationRailCommercial/README.md +0 -251
- package/src/components/NavigationRailCommercial/icons.tsx +0 -54
- package/src/components/NavigationRailCommercial/index.ts +0 -6
- package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +0 -667
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +0 -314
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +0 -175
- package/src/components/NavigationRailItem/README.md +0 -476
- package/src/components/NavigationRailItem/index.ts +0 -2
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +0 -462
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +0 -332
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +0 -178
- package/src/components/NavigationRailPanel/README.md +0 -461
- package/src/components/NavigationRailPanel/index.ts +0 -6
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +0 -682
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +0 -363
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +0 -178
- package/src/components/NavigationRailTypes/README.md +0 -573
- package/src/components/NavigationRailTypes/icons.tsx +0 -76
- package/src/components/NavigationRailTypes/index.ts +0 -7
- package/src/components/Notification/Notification.stories.tsx +0 -513
- package/src/components/Notification/Notification.tsx +0 -145
- package/src/components/Notification/Notification.types.ts +0 -142
- package/src/components/Notification/README.md +0 -409
- package/src/components/Notification/index.ts +0 -3
- package/src/components/POSConvention/POSConvention.stories.tsx +0 -235
- package/src/components/POSConvention/POSConvention.tsx +0 -129
- package/src/components/POSConvention/POSConvention.types.ts +0 -38
- package/src/components/POSConvention/README.md +0 -123
- package/src/components/POSConvention/icons.tsx +0 -45
- package/src/components/POSConvention/index.ts +0 -3
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +0 -531
- package/src/components/POSLocationButton/POSLocationButton.tsx +0 -247
- package/src/components/POSLocationButton/POSLocationButton.types.ts +0 -87
- package/src/components/POSLocationButton/README.md +0 -253
- package/src/components/POSLocationButton/icons.tsx +0 -120
- package/src/components/POSLocationButton/index.ts +0 -14
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +0 -415
- package/src/components/POSNumberButton/POSNumberButton.tsx +0 -179
- package/src/components/POSNumberButton/POSNumberButton.types.ts +0 -51
- package/src/components/POSNumberButton/README.md +0 -321
- package/src/components/POSNumberButton/index.ts +0 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +0 -318
- package/src/components/POSProductButton/POSProductButton.tsx +0 -152
- package/src/components/POSProductButton/POSProductButton.types.ts +0 -46
- package/src/components/POSProductButton/README.md +0 -269
- package/src/components/POSProductButton/index.ts +0 -2
- package/src/components/POSProductCard/POSProductCard.stories.tsx +0 -642
- package/src/components/POSProductCard/POSProductCard.tsx +0 -208
- package/src/components/POSProductCard/POSProductCard.types.ts +0 -76
- package/src/components/POSProductCard/README.md +0 -179
- package/src/components/POSProductCard/icons.tsx +0 -26
- package/src/components/POSProductCard/index.ts +0 -2
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +0 -753
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +0 -332
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +0 -119
- package/src/components/POSProductSidebarItems/README.md +0 -198
- package/src/components/POSProductSidebarItems/icons.tsx +0 -21
- package/src/components/POSProductSidebarItems/index.ts +0 -3
- package/src/components/POSTable/POSTable.stories.tsx +0 -737
- package/src/components/POSTable/POSTable.tsx +0 -401
- package/src/components/POSTable/POSTable.types.ts +0 -83
- package/src/components/POSTable/README.md +0 -286
- package/src/components/POSTable/index.ts +0 -7
- package/src/components/Pagination/Pagination.stories.tsx +0 -555
- package/src/components/Pagination/Pagination.tsx +0 -286
- package/src/components/Pagination/Pagination.types.ts +0 -93
- package/src/components/Pagination/README.md +0 -298
- package/src/components/Pagination/icons.tsx +0 -47
- package/src/components/Pagination/index.ts +0 -3
- package/src/components/Quantity/Quantity.stories.tsx +0 -457
- package/src/components/Quantity/Quantity.tsx +0 -289
- package/src/components/Quantity/Quantity.types.ts +0 -70
- package/src/components/Radio/Radio.stories.tsx +0 -523
- package/src/components/Radio/Radio.tsx +0 -170
- package/src/components/Radio/Radio.types.ts +0 -122
- package/src/components/Select/README.md +0 -299
- package/src/components/Select/Select.stories.tsx +0 -705
- package/src/components/Select/Select.tsx +0 -457
- package/src/components/Select/Select.types.ts +0 -148
- package/src/components/Select/icons.tsx +0 -25
- package/src/components/Select/index.ts +0 -3
- package/src/components/SignUpView/SignUpView.stories.tsx +0 -129
- package/src/components/SignUpView/SignUpView.tsx +0 -503
- package/src/components/SignUpView/SignUpView.types.ts +0 -58
- package/src/components/SignUpView/icons.tsx +0 -71
- package/src/components/SignUpView/index.ts +0 -3
- package/src/components/Switch/README.md +0 -112
- package/src/components/Switch/Switch.stories.tsx +0 -550
- package/src/components/Switch/Switch.tsx +0 -246
- package/src/components/Switch/Switch.types.ts +0 -67
- package/src/components/Table/README.md +0 -369
- package/src/components/Table/Table.stories.tsx +0 -805
- package/src/components/Table/Table.tsx +0 -688
- package/src/components/Table/Table.types.ts +0 -204
- package/src/components/Table/index.ts +0 -9
- package/src/components/Tabs/README.md +0 -201
- package/src/components/Tabs/Tabs.stories.tsx +0 -580
- package/src/components/Tabs/Tabs.tsx +0 -356
- package/src/components/Tabs/Tabs.types.ts +0 -127
- package/src/components/Tabs/icons.tsx +0 -129
- package/src/components/Tabs/index.ts +0 -11
- package/src/components/Textarea/Textarea.stories.tsx +0 -535
- package/src/components/Textarea/Textarea.tsx +0 -188
- package/src/components/Textarea/Textarea.types.ts +0 -54
- package/src/context/ThemeContext.tsx +0 -99
- package/src/context/index.ts +0 -1
- package/src/index.css +0 -29
- package/src/index.ts +0 -133
- package/src/main.tsx +0 -10
- package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +0 -374
- package/src/views/LayoutCommercial/LayoutCommercial.tsx +0 -125
- package/src/views/LayoutCommercial/LayoutCommercial.types.ts +0 -54
- package/src/views/LayoutCommercial/README.md +0 -286
- package/src/views/LayoutCommercial/index.ts +0 -2
- package/src/views/ListView/ListView.stories.tsx +0 -329
- package/src/views/ListView/ListView.tsx +0 -570
- package/src/views/ListView/ListView.types.ts +0 -211
- package/src/views/ListView/icons.tsx +0 -282
- package/src/views/ListView/index.ts +0 -11
- package/src/views/LoginView/LoginView.stories.tsx +0 -148
- package/src/views/LoginView/LoginView.tsx +0 -426
- package/src/views/LoginView/LoginView.types.ts +0 -52
- package/src/views/LoginView/README.md +0 -396
- package/src/views/LoginView/icons.tsx +0 -85
- package/src/views/LoginView/index.ts +0 -3
- package/src/views/ProductsView/ProductsView.stories.tsx +0 -344
- package/src/views/ProductsView/ProductsView.tsx +0 -480
- package/src/views/ProductsView/ProductsView.types.ts +0 -238
- package/src/views/ProductsView/README.md +0 -312
- package/src/views/ProductsView/icons.tsx +0 -38
- package/src/views/ProductsView/index.ts +0 -8
- package/src/views/RecoverPasswordView/README.md +0 -269
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +0 -131
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +0 -376
- package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +0 -56
- package/src/views/RecoverPasswordView/icons.tsx +0 -17
- package/src/views/RecoverPasswordView/index.ts +0 -2
- package/src/views/SignUpView/SignUpView.stories.tsx +0 -129
- package/src/views/SignUpView/SignUpView.tsx +0 -503
- package/src/views/SignUpView/SignUpView.types.ts +0 -58
- package/src/views/SignUpView/icons.tsx +0 -71
- package/src/views/SignUpView/index.ts +0 -3
- package/src/views/TableLayoutView/README.md +0 -268
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +0 -235
- package/src/views/TableLayoutView/TableLayoutView.tsx +0 -461
- package/src/views/TableLayoutView/TableLayoutView.types.ts +0 -209
- package/src/views/TableLayoutView/icons.tsx +0 -113
- package/src/views/TableLayoutView/index.ts +0 -6
- package/storybook/main.ts +0 -20
- package/storybook/preview.tsx +0 -84
- package/storybook/vitest.setup.ts +0 -7
- package/tailwind.config.js +0 -128
- /package/{public → dist}/,Business Logo.png +0 -0
- /package/{public → dist}/.Siesa Logo.png +0 -0
- /package/{public → dist}/bg_siesa.png +0 -0
- /package/{public → dist}/siesa_logo_mobile.png +0 -0
- /package/{public → dist}/vite.svg +0 -0
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
# LoginView
|
|
2
|
-
|
|
3
|
-
Vista completa de inicio de sesión del sistema de diseño Siesa.
|
|
4
|
-
|
|
5
|
-
## 📋 Descripción
|
|
6
|
-
|
|
7
|
-
LoginView es una vista lista para usar que implementa una pantalla de autenticación completa con todos los elementos necesarios para login de usuarios: logo, campos de entrada (email y contraseña), validación de formulario, estados de carga y error, y enlaces secundarios.
|
|
8
|
-
|
|
9
|
-
## ✨ Características
|
|
10
|
-
|
|
11
|
-
- ✅ **Dark mode completo** - Adaptación automática a modo claro/oscuro
|
|
12
|
-
- ✅ **Validación de formulario** - Validación de email con feedback visual
|
|
13
|
-
- ✅ **Estados múltiples** - Normal, loading, error
|
|
14
|
-
- ✅ **TypeScript strict** - Type safety completo
|
|
15
|
-
- ✅ **Accesibilidad** - ARIA labels y manejo semántico de formulario
|
|
16
|
-
- ✅ **Responsive design** - Mobile-first approach
|
|
17
|
-
- ✅ **Toggle password** - Mostrar/ocultar contraseña
|
|
18
|
-
- ✅ **Links secundarios** - Recuperar contraseña y registro
|
|
19
|
-
|
|
20
|
-
## 🎨 Diseño
|
|
21
|
-
|
|
22
|
-
Basado en las especificaciones de Figma:
|
|
23
|
-
- **Node ID**: `2015-19772`
|
|
24
|
-
- **Frame**: Desktop / Login (1440x1024)
|
|
25
|
-
- **Archivo**: [Siesa UI Kit en Figma](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=2015-19772)
|
|
26
|
-
|
|
27
|
-
## 📦 Composición
|
|
28
|
-
|
|
29
|
-
Esta vista está compuesta por los siguientes elementos del sistema de diseño:
|
|
30
|
-
|
|
31
|
-
### Componentes
|
|
32
|
-
- **Inputs personalizados** con iconos integrados
|
|
33
|
-
- **Botones** con variantes primary y ghost
|
|
34
|
-
- **Iconos** (EnvelopeIcon, LockClosedIcon, EyeIcon)
|
|
35
|
-
|
|
36
|
-
### Tokens del sistema
|
|
37
|
-
- **Typography**:
|
|
38
|
-
- Heading/Tiny (20px, bold) para título
|
|
39
|
-
- Paragraph/Tiny (12px) para subtítulo
|
|
40
|
-
- Label/Small (14px, bold) para labels
|
|
41
|
-
- Paragraph/Base (16px) para inputs
|
|
42
|
-
|
|
43
|
-
- **Colors**:
|
|
44
|
-
- `bg-primary` / `dark:bg-dark-bg-primary` (fondos)
|
|
45
|
-
- `text-content-primary` / `dark:text-dark-content-primary` (textos)
|
|
46
|
-
- `border-border-primary` / `dark:border-dark-border-primary` (bordes)
|
|
47
|
-
- `bg-[#dbeefe]` / `dark:bg-gray-900` (fondo decorativo)
|
|
48
|
-
|
|
49
|
-
- **Spacing**:
|
|
50
|
-
- Padding interno card: `64px` (p-16)
|
|
51
|
-
- Gap entre elementos: `16px` (gap-4)
|
|
52
|
-
|
|
53
|
-
- **Shadows**:
|
|
54
|
-
- Card: `shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)]`
|
|
55
|
-
|
|
56
|
-
- **Border radius**:
|
|
57
|
-
- Card: `16px` (rounded-2xl)
|
|
58
|
-
- Inputs/Botones: `8px` (rounded-lg) / `6px` (rounded-md)
|
|
59
|
-
|
|
60
|
-
## 🚀 Uso
|
|
61
|
-
|
|
62
|
-
### Importación
|
|
63
|
-
|
|
64
|
-
```tsx
|
|
65
|
-
import { LoginView } from '@/components/LoginView';
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Ejemplo básico
|
|
69
|
-
|
|
70
|
-
```tsx
|
|
71
|
-
import { LoginView } from '@/components/LoginView';
|
|
72
|
-
|
|
73
|
-
function App() {
|
|
74
|
-
const handleLogin = async (email: string, password: string) => {
|
|
75
|
-
try {
|
|
76
|
-
const response = await fetch('/api/login', {
|
|
77
|
-
method: 'POST',
|
|
78
|
-
headers: { 'Content-Type': 'application/json' },
|
|
79
|
-
body: JSON.stringify({ email, password }),
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
if (response.ok) {
|
|
83
|
-
// Redirigir al dashboard
|
|
84
|
-
window.location.href = '/dashboard';
|
|
85
|
-
} else {
|
|
86
|
-
// Mostrar error
|
|
87
|
-
console.error('Login failed');
|
|
88
|
-
}
|
|
89
|
-
} catch (error) {
|
|
90
|
-
console.error('Error:', error);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
const handleForgotPassword = () => {
|
|
95
|
-
window.location.href = '/forgot-password';
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
const handleSignUp = () => {
|
|
99
|
-
window.location.href = '/register';
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
return (
|
|
103
|
-
<LoginView
|
|
104
|
-
onSubmit={handleLogin}
|
|
105
|
-
onForgotPassword={handleForgotPassword}
|
|
106
|
-
onSignUp={handleSignUp}
|
|
107
|
-
/>
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Con estados de carga y error
|
|
113
|
-
|
|
114
|
-
```tsx
|
|
115
|
-
import { useState } from 'react';
|
|
116
|
-
import { LoginView } from '@/components/LoginView';
|
|
117
|
-
|
|
118
|
-
function LoginPage() {
|
|
119
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
120
|
-
const [error, setError] = useState<string | null>(null);
|
|
121
|
-
|
|
122
|
-
const handleLogin = async (email: string, password: string) => {
|
|
123
|
-
setIsLoading(true);
|
|
124
|
-
setError(null);
|
|
125
|
-
|
|
126
|
-
try {
|
|
127
|
-
const response = await fetch('/api/auth/login', {
|
|
128
|
-
method: 'POST',
|
|
129
|
-
headers: { 'Content-Type': 'application/json' },
|
|
130
|
-
body: JSON.stringify({ email, password }),
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
const data = await response.json();
|
|
134
|
-
|
|
135
|
-
if (response.ok) {
|
|
136
|
-
// Guardar token y redirigir
|
|
137
|
-
localStorage.setItem('token', data.token);
|
|
138
|
-
window.location.href = '/dashboard';
|
|
139
|
-
} else {
|
|
140
|
-
setError(data.message || 'Credenciales incorrectas');
|
|
141
|
-
}
|
|
142
|
-
} catch (err) {
|
|
143
|
-
setError('Error de conexión. Intenta nuevamente.');
|
|
144
|
-
} finally {
|
|
145
|
-
setIsLoading(false);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
<LoginView
|
|
151
|
-
onSubmit={handleLogin}
|
|
152
|
-
onForgotPassword={() => window.location.href = '/forgot-password'}
|
|
153
|
-
onSignUp={() => window.location.href = '/register'}
|
|
154
|
-
isLoading={isLoading}
|
|
155
|
-
errorMessage={error || undefined}
|
|
156
|
-
/>
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Sin fondo decorativo
|
|
162
|
-
|
|
163
|
-
```tsx
|
|
164
|
-
<LoginView
|
|
165
|
-
onSubmit={handleLogin}
|
|
166
|
-
onForgotPassword={handleForgotPassword}
|
|
167
|
-
onSignUp={handleSignUp}
|
|
168
|
-
showBackground={false}
|
|
169
|
-
/>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## 🎯 Props
|
|
173
|
-
|
|
174
|
-
| Prop | Tipo | Default | Descripción |
|
|
175
|
-
|------|------|---------|-------------|
|
|
176
|
-
| `onSubmit` | `(email: string, password: string) => void` | - | **Opcional**. Handler cuando se envía el formulario |
|
|
177
|
-
| `onForgotPassword` | `() => void` | - | **Opcional**. Handler cuando se hace clic en "Olvidé mi Contraseña" |
|
|
178
|
-
| `onSignUp` | `() => void` | - | **Opcional**. Handler cuando se hace clic en "¿No tienes una cuenta?" |
|
|
179
|
-
| `isLoading` | `boolean` | `false` | Si el formulario está en estado de carga |
|
|
180
|
-
| `errorMessage` | `string` | - | **Opcional**. Mensaje de error general a mostrar |
|
|
181
|
-
| `showBackground` | `boolean` | `true` | Si se muestra el fondo decorativo con imagen |
|
|
182
|
-
| `className` | `string` | `''` | Clases CSS adicionales para el contenedor principal |
|
|
183
|
-
|
|
184
|
-
## 📱 Responsive (Pixel-Perfect vs Figma)
|
|
185
|
-
|
|
186
|
-
La vista implementa responsive design según las especificaciones de Figma con comportamiento diferenciado:
|
|
187
|
-
|
|
188
|
-
### Mobile (< 768px)
|
|
189
|
-
- ❌ **SIN card/contenedor** - Contenido directamente sobre fondo
|
|
190
|
-
- ❌ **SIN fondo decorativo** - Solo fondo blanco/oscuro
|
|
191
|
-
- ❌ **SIN sombras ni border-radius**
|
|
192
|
-
- ✅ **Padding lateral**: `64px` (px-16)
|
|
193
|
-
- ✅ **Width**: `100%` (ocupa todo el ancho disponible)
|
|
194
|
-
- ✅ Layout: Contenido centrado verticalmente
|
|
195
|
-
|
|
196
|
-
### Desktop (≥ 768px)
|
|
197
|
-
- ✅ **CON card/contenedor** - Card de `400px` de ancho
|
|
198
|
-
- ✅ **CON fondo decorativo** - Imagen + color de fondo
|
|
199
|
-
- ✅ **CON sombras y border-radius** - `16px` (rounded-2xl)
|
|
200
|
-
- ✅ **Padding**: `64px` (p-16) en todas direcciones
|
|
201
|
-
- ✅ Layout: Card centrado en viewport
|
|
202
|
-
|
|
203
|
-
**Breakpoint**: `md` (768px) - Tailwind CSS
|
|
204
|
-
|
|
205
|
-
Esta implementación asegura que:
|
|
206
|
-
- En mobile la vista ocupe toda la pantalla sin distracciones visuales
|
|
207
|
-
- En desktop tenga el look & feel de una modal/card flotante
|
|
208
|
-
- Sea pixel-perfect con ambos diseños de Figma
|
|
209
|
-
|
|
210
|
-
## 🎨 Dark Mode
|
|
211
|
-
|
|
212
|
-
La vista tiene soporte completo para dark mode según especificaciones de Figma:
|
|
213
|
-
|
|
214
|
-
### Light Mode
|
|
215
|
-
- **Fondo**: `#dbeefe` (azul claro) con imagen al 10% de opacidad
|
|
216
|
-
- **Card**: `#ffffff` (blanco) con sombra suave
|
|
217
|
-
- **Textos**: `#18181b` (negro zinc)
|
|
218
|
-
- **Inputs**: Fondo blanco con borde `#e4e4e7` (gris claro)
|
|
219
|
-
- **Botón Primary**: `#0e79fd` (azul) con texto blanco `#eff8ff`
|
|
220
|
-
- **Links**: `#0e79fd` (azul)
|
|
221
|
-
|
|
222
|
-
### Dark Mode (Pixel-Perfect vs Figma)
|
|
223
|
-
- **Fondo**: `#112d57` (azul oscuro marino) con imagen al 10% de opacidad
|
|
224
|
-
- **Card**: `#3f3f46` (zinc-700) con borde `#71717a` y sombra intensa
|
|
225
|
-
- **Textos**: `#f4f4f5` (zinc-100, casi blanco)
|
|
226
|
-
- **Inputs**:
|
|
227
|
-
- Fondo: `#3f3f46` (mismo que card)
|
|
228
|
-
- Borde: `#71717a` (zinc-500)
|
|
229
|
-
- Placeholder: `#a1a1aa` (zinc-400)
|
|
230
|
-
- **Botón Primary**:
|
|
231
|
-
- Fondo: `#bfe2fe` (azul claro)
|
|
232
|
-
- Texto: `#0e79fd` (azul)
|
|
233
|
-
- Borde: `#93d1fd` (azul claro)
|
|
234
|
-
- **Links**: `#93d1fd` (azul claro)
|
|
235
|
-
|
|
236
|
-
## ✅ Validación
|
|
237
|
-
|
|
238
|
-
La vista incluye validación básica de email:
|
|
239
|
-
|
|
240
|
-
1. **Validación de formato**: Verifica que el email tenga formato válido (`email@domain.com`)
|
|
241
|
-
2. **Feedback visual**: Borde rojo y mensaje de error cuando el formato es inválido
|
|
242
|
-
3. **Validación en tiempo real**: El error desaparece cuando el usuario corrige el input
|
|
243
|
-
|
|
244
|
-
**Nota**: La vista solo valida el formato. La autenticación real debe implementarse en el backend.
|
|
245
|
-
|
|
246
|
-
## 🔒 Seguridad
|
|
247
|
-
|
|
248
|
-
### Mejores prácticas implementadas
|
|
249
|
-
|
|
250
|
-
✅ **Tipo de input correcto**:
|
|
251
|
-
- Email: `type="email"` con autoComplete="email"
|
|
252
|
-
- Password: `type="password"` con autoComplete="current-password"
|
|
253
|
-
|
|
254
|
-
✅ **No guarda credenciales**: La vista no almacena email ni contraseña
|
|
255
|
-
|
|
256
|
-
✅ **Validación client-side**: Solo para UX, no reemplaza validación server-side
|
|
257
|
-
|
|
258
|
-
### Recomendaciones adicionales
|
|
259
|
-
|
|
260
|
-
⚠️ **Implementa en el backend**:
|
|
261
|
-
- Rate limiting para prevenir ataques de fuerza bruta
|
|
262
|
-
- Hashing seguro de contraseñas (bcrypt, argon2)
|
|
263
|
-
- Tokens de sesión seguros (JWT con expiración)
|
|
264
|
-
- HTTPS para todas las comunicaciones
|
|
265
|
-
- Protección CSRF
|
|
266
|
-
- Logs de intentos fallidos
|
|
267
|
-
|
|
268
|
-
⚠️ **No confíes solo en validación client-side**: Siempre valida en el servidor
|
|
269
|
-
|
|
270
|
-
## 🎭 Estados
|
|
271
|
-
|
|
272
|
-
La vista maneja los siguientes estados:
|
|
273
|
-
|
|
274
|
-
### 1. Normal
|
|
275
|
-
Estado inicial con formulario listo para entrada de datos.
|
|
276
|
-
|
|
277
|
-
### 2. Loading
|
|
278
|
-
- Formulario deshabilitado
|
|
279
|
-
- Botón muestra "Iniciando sesión..."
|
|
280
|
-
- Previene múltiples envíos
|
|
281
|
-
|
|
282
|
-
### 3. Error
|
|
283
|
-
- Muestra banner de error arriba del formulario
|
|
284
|
-
- Color rojo con borde y fondo de error
|
|
285
|
-
- Mensaje personalizable vía prop `errorMessage`
|
|
286
|
-
|
|
287
|
-
### 4. Validación de email
|
|
288
|
-
- Borde rojo en input de email
|
|
289
|
-
- Mensaje de error debajo del input
|
|
290
|
-
- Se activa al enviar formulario con email inválido
|
|
291
|
-
|
|
292
|
-
## 📖 Storybook
|
|
293
|
-
|
|
294
|
-
La vista incluye las siguientes stories en Storybook:
|
|
295
|
-
|
|
296
|
-
1. **Desktop**: Vista completa en pantalla de escritorio
|
|
297
|
-
2. **Loading**: Estado de carga durante autenticación
|
|
298
|
-
3. **WithError**: Con mensaje de error visible
|
|
299
|
-
4. **WithoutBackground**: Sin fondo decorativo
|
|
300
|
-
5. **Mobile**: Vista responsive en viewport móvil
|
|
301
|
-
|
|
302
|
-
Para ver las stories:
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
npm run storybook
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
Navega a: **Siesa UI Kit → LoginView**
|
|
309
|
-
|
|
310
|
-
## 🏗️ Estructura de archivos
|
|
311
|
-
|
|
312
|
-
```
|
|
313
|
-
src/components/LoginView/
|
|
314
|
-
├── LoginView.tsx # Componente principal (393 líneas)
|
|
315
|
-
├── LoginView.types.ts # TypeScript types
|
|
316
|
-
├── LoginView.stories.tsx # Storybook stories (5 stories)
|
|
317
|
-
├── icons.tsx # Iconos SVG (EnvelopeIcon, LockClosedIcon, EyeIcon)
|
|
318
|
-
├── index.ts # Exports públicos
|
|
319
|
-
└── README.md # Este archivo
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
## 🔗 Archivos relacionados
|
|
323
|
-
|
|
324
|
-
- **Sistema de colores**: `/docs/colors.md`
|
|
325
|
-
- **Tipografía**: `/docs/typography.md`
|
|
326
|
-
- **Espaciado**: `/docs/spacing.md`
|
|
327
|
-
- **Sombras**: `/docs/shadows.md`
|
|
328
|
-
- **Configuración Tailwind**: `/tailwind.config.js`
|
|
329
|
-
|
|
330
|
-
## 🐛 Troubleshooting
|
|
331
|
-
|
|
332
|
-
### El logo no se muestra
|
|
333
|
-
Verifica que el archivo `/public/.Siesa Logo.png` existe. Si usas Vite, asegúrate de que la ruta sea correcta.
|
|
334
|
-
|
|
335
|
-
### La imagen de fondo no aparece
|
|
336
|
-
Verifica que el archivo `/public/bg_siesa.jpg` existe. Puedes cambiar el path en `LoginView.tsx:97` o deshabilitar el fondo con `showBackground={false}`.
|
|
337
|
-
|
|
338
|
-
### Dark mode no funciona
|
|
339
|
-
Asegúrate de que:
|
|
340
|
-
1. Storybook tiene el addon de dark mode instalado
|
|
341
|
-
2. Tu aplicación tiene el toggle de dark mode que agrega/remueve la clase `dark` del HTML
|
|
342
|
-
|
|
343
|
-
### Errores de TypeScript
|
|
344
|
-
Ejecuta `npm run build` para verificar errores de tipos. Todos los props están correctamente tipados en `LoginView.types.ts`.
|
|
345
|
-
|
|
346
|
-
## 🎓 Mejores prácticas
|
|
347
|
-
|
|
348
|
-
### ✅ DO (Hacer)
|
|
349
|
-
- Implementa autenticación segura en el backend
|
|
350
|
-
- Usa HTTPS en producción
|
|
351
|
-
- Muestra mensajes de error claros y específicos
|
|
352
|
-
- Implementa rate limiting
|
|
353
|
-
- Usa estados de loading durante peticiones async
|
|
354
|
-
- Valida en cliente Y servidor
|
|
355
|
-
- Implementa manejo de errores robusto
|
|
356
|
-
- Usa tokens seguros para sesiones
|
|
357
|
-
|
|
358
|
-
### ❌ DON'T (No hacer)
|
|
359
|
-
- No guardes contraseñas en texto plano
|
|
360
|
-
- No confíes solo en validación client-side
|
|
361
|
-
- No muestres mensajes de error que revelen información sensible
|
|
362
|
-
- No almacenes credenciales en localStorage sin encriptar
|
|
363
|
-
- No uses HTTP en producción
|
|
364
|
-
- No implementes tu propio hashing de contraseñas
|
|
365
|
-
|
|
366
|
-
## 📝 Changelog
|
|
367
|
-
|
|
368
|
-
### v1.1.0 (2025-11-12)
|
|
369
|
-
- ✅ **Responsive design pixel-perfect** según Figma
|
|
370
|
-
- Mobile (< 768px): Sin card, sin fondo decorativo, padding 64px
|
|
371
|
-
- Desktop (≥ 768px): Con card 400px, fondo decorativo, sombras
|
|
372
|
-
- ✅ **Dark mode corregido** según diseño de Figma
|
|
373
|
-
- Fondo: `#112d57` (azul marino)
|
|
374
|
-
- Botón Primary: `#bfe2fe` con texto `#0e79fd`
|
|
375
|
-
- Links: `#93d1fd` (azul claro)
|
|
376
|
-
- ✅ Logo actualizado a `.Siesa Logo.png`
|
|
377
|
-
|
|
378
|
-
### v1.0.0 (2025-11-12)
|
|
379
|
-
- ✅ Implementación inicial basada en diseño de Figma
|
|
380
|
-
- ✅ Dark mode completo
|
|
381
|
-
- ✅ Validación de email
|
|
382
|
-
- ✅ Estados: normal, loading, error
|
|
383
|
-
- ✅ Toggle mostrar/ocultar contraseña
|
|
384
|
-
- ✅ Responsive design
|
|
385
|
-
- ✅ 5 stories en Storybook
|
|
386
|
-
- ✅ Documentación completa
|
|
387
|
-
|
|
388
|
-
## 📄 Licencia
|
|
389
|
-
|
|
390
|
-
Este componente es parte del Siesa UI Kit.
|
|
391
|
-
|
|
392
|
-
---
|
|
393
|
-
|
|
394
|
-
**Mantenido por**: Equipo Siesa UI Kit
|
|
395
|
-
**Última actualización**: 2025-11-12
|
|
396
|
-
**Versión**: 1.0.0
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Icono de sobre (envelope) para el input de email
|
|
5
|
-
*/
|
|
6
|
-
export const EnvelopeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
7
|
-
<svg
|
|
8
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
-
viewBox="0 0 16 16"
|
|
10
|
-
fill="currentColor"
|
|
11
|
-
{...props}
|
|
12
|
-
>
|
|
13
|
-
<path d="M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z" />
|
|
14
|
-
<path d="M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z" />
|
|
15
|
-
</svg>
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Icono de candado cerrado (lock) para el input de contraseña
|
|
20
|
-
*/
|
|
21
|
-
export const LockClosedIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
22
|
-
<svg
|
|
23
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
-
viewBox="0 0 16 16"
|
|
25
|
-
fill="currentColor"
|
|
26
|
-
{...props}
|
|
27
|
-
>
|
|
28
|
-
<path
|
|
29
|
-
fillRule="evenodd"
|
|
30
|
-
d="M8 1a3.5 3.5 0 0 0-3.5 3.5V7A1.5 1.5 0 0 0 3 8.5v5A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 11.5 7V4.5A3.5 3.5 0 0 0 8 1Zm2 6V4.5a2 2 0 1 0-4 0V7h4Z"
|
|
31
|
-
clipRule="evenodd"
|
|
32
|
-
/>
|
|
33
|
-
</svg>
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Icono de ojo (eye) para mostrar/ocultar contraseña
|
|
38
|
-
*/
|
|
39
|
-
export const EyeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
40
|
-
<svg
|
|
41
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
-
viewBox="0 0 16 16"
|
|
43
|
-
fill="currentColor"
|
|
44
|
-
{...props}
|
|
45
|
-
>
|
|
46
|
-
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" />
|
|
47
|
-
<path
|
|
48
|
-
fillRule="evenodd"
|
|
49
|
-
d="M1.38 8.28a.87.87 0 0 1 0-.566 7.003 7.003 0 0 1 13.238.006.87.87 0 0 1 0 .56A7.003 7.003 0 0 1 1.379 8.28ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
|
50
|
-
clipRule="evenodd"
|
|
51
|
-
/>
|
|
52
|
-
</svg>
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Logo de Siesa
|
|
57
|
-
*/
|
|
58
|
-
export const SiesaLogo: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
|
|
59
|
-
<svg
|
|
60
|
-
width="200"
|
|
61
|
-
height="50"
|
|
62
|
-
viewBox="0 0 200 50"
|
|
63
|
-
fill="none"
|
|
64
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
65
|
-
{...props}
|
|
66
|
-
>
|
|
67
|
-
{/* Símbolo de Siesa (cuadrados azules) */}
|
|
68
|
-
<rect x="0" y="0" width="15" height="20" fill="#0e79fd" />
|
|
69
|
-
<rect x="0" y="30" width="10" height="20" fill="#0e79fd" />
|
|
70
|
-
<rect x="20" y="0" width="15" height="20" fill="#0e79fd" />
|
|
71
|
-
<rect x="30" y="30" width="10" height="20" fill="#0e79fd" />
|
|
72
|
-
|
|
73
|
-
{/* Texto "Siesa" */}
|
|
74
|
-
<text
|
|
75
|
-
x="68"
|
|
76
|
-
y="35"
|
|
77
|
-
fontFamily="SiesaBT, sans-serif"
|
|
78
|
-
fontSize="32"
|
|
79
|
-
fontWeight="400"
|
|
80
|
-
fill="#0e79fd"
|
|
81
|
-
>
|
|
82
|
-
Siesa
|
|
83
|
-
</text>
|
|
84
|
-
</svg>
|
|
85
|
-
);
|