siesa-ui-kit 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -115
- package/bin/install.cjs +502 -502
- package/bin/prepare-publish.cjs +28 -28
- package/bin/restore-folders.cjs +28 -28
- package/claude/agents/siesa-ui-kit-specialist.md +2401 -2445
- package/claude/prompts/component-template.md +121 -121
- package/claude/settings.local.json +61 -72
- package/docs/border-radius.md +1261 -1261
- package/docs/colors.md +832 -832
- package/docs/dark-mode-guide.md +1426 -1426
- package/docs/filters.md +1243 -1243
- package/docs/icons.md +1283 -1264
- package/docs/shadows.md +1377 -1377
- package/docs/spacing.md +1684 -1684
- package/docs/typography.md +1268 -1268
- package/package.json +83 -111
- package/postcss.config.cjs +6 -6
- package/src/App.css +42 -42
- package/src/App.tsx +8 -8
- package/src/ButtonTest.tsx +147 -147
- package/src/assets/fonts/README.md +261 -261
- package/src/components/Alert/Alert.stories.tsx +332 -332
- package/src/components/Alert/Alert.tsx +106 -106
- package/src/components/Alert/Alert.types.ts +54 -54
- package/src/components/Avatar/Avatar.stories.tsx +494 -494
- package/src/components/Avatar/Avatar.tsx +143 -143
- package/src/components/Avatar/Avatar.types.ts +53 -53
- package/src/components/Badge/Badge.stories.tsx +339 -339
- package/src/components/Badge/Badge.tsx +278 -278
- package/src/components/Badge/Badge.types.ts +58 -58
- package/src/components/Button/Button.stories.tsx +950 -950
- package/src/components/Button/Button.tsx +337 -337
- package/src/components/Button/Button.types.ts +180 -180
- package/src/components/Button/icons.tsx +87 -48
- package/src/components/Button/index.ts +3 -3
- package/src/components/Checkbox/Checkbox.stories.tsx +453 -453
- package/src/components/Checkbox/Checkbox.tsx +208 -208
- package/src/components/Checkbox/Checkbox.types.ts +61 -61
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -250
- package/src/components/DescriptionList/DescriptionList.tsx +96 -96
- package/src/components/DescriptionList/DescriptionList.types.ts +29 -29
- package/src/components/Divider/Divider.stories.tsx +263 -263
- package/src/components/Divider/Divider.tsx +80 -80
- package/src/components/Divider/Divider.types.ts +24 -24
- package/src/components/Dropdown/Dropdown.stories.tsx +552 -552
- package/src/components/Dropdown/Dropdown.tsx +422 -422
- package/src/components/Dropdown/Dropdown.types.ts +146 -146
- package/src/components/Dropdown/README.md +266 -266
- package/src/components/Dropdown/icons.tsx +72 -72
- package/src/components/Dropdown/index.ts +8 -8
- package/src/components/Input/Input.stories.tsx +583 -583
- package/src/components/Input/Input.tsx +204 -204
- package/src/components/Input/Input.types.ts +80 -80
- package/src/components/Input/icons.tsx +145 -145
- package/src/components/Input/index.ts +2 -2
- package/src/components/LoginView/LoginView.stories.tsx +148 -148
- package/src/components/LoginView/LoginView.tsx +426 -426
- package/src/components/LoginView/LoginView.types.ts +52 -52
- package/src/components/LoginView/README.md +396 -396
- package/src/components/LoginView/icons.tsx +85 -85
- package/src/components/LoginView/index.ts +3 -3
- package/src/components/Navbar/Navbar.stories.tsx +810 -810
- package/src/components/Navbar/Navbar.tsx +755 -755
- package/src/components/Navbar/Navbar.types.ts +219 -219
- package/src/components/Navbar/README.md +279 -279
- package/src/components/Navbar/icons.tsx +102 -102
- package/src/components/Navbar/index.ts +8 -8
- package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -406
- package/src/components/NavigationBar/NavigationBar.tsx +246 -246
- package/src/components/NavigationBar/NavigationBar.types.ts +74 -74
- package/src/components/NavigationBar/README.md +469 -469
- package/src/components/NavigationBar/index.ts +2 -2
- package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -417
- package/src/components/NavigationRail/NavigationRail.tsx +418 -418
- package/src/components/NavigationRail/NavigationRail.types.ts +109 -109
- package/src/components/NavigationRail/README.md +224 -224
- package/src/components/NavigationRail/index.ts +2 -2
- package/src/components/Notification/Notification.stories.tsx +513 -513
- package/src/components/Notification/Notification.tsx +145 -145
- package/src/components/Notification/Notification.types.ts +142 -142
- package/src/components/Notification/README.md +409 -409
- package/src/components/Notification/index.ts +3 -3
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -235
- package/src/components/POSConvention/POSConvention.tsx +129 -129
- package/src/components/POSConvention/POSConvention.types.ts +38 -38
- package/src/components/POSConvention/README.md +123 -123
- package/src/components/POSConvention/icons.tsx +45 -45
- package/src/components/POSConvention/index.ts +3 -3
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -531
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -247
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -87
- package/src/components/POSLocationButton/README.md +253 -253
- package/src/components/POSLocationButton/icons.tsx +120 -120
- package/src/components/POSLocationButton/index.ts +14 -14
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -415
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -179
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -51
- package/src/components/POSNumberButton/README.md +321 -321
- package/src/components/POSNumberButton/index.ts +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -318
- package/src/components/POSProductButton/POSProductButton.tsx +152 -152
- package/src/components/POSProductButton/POSProductButton.types.ts +46 -46
- package/src/components/POSProductButton/README.md +269 -269
- package/src/components/POSProductButton/index.ts +2 -2
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -642
- package/src/components/POSProductCard/POSProductCard.tsx +208 -208
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -76
- package/src/components/POSProductCard/README.md +179 -179
- package/src/components/POSProductCard/icons.tsx +26 -26
- package/src/components/POSProductCard/index.ts +2 -2
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -753
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -332
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -119
- package/src/components/POSProductSidebarItems/README.md +198 -198
- package/src/components/POSProductSidebarItems/icons.tsx +21 -21
- package/src/components/POSProductSidebarItems/index.ts +3 -3
- package/src/components/POSTable/POSTable.stories.tsx +737 -737
- package/src/components/POSTable/POSTable.tsx +401 -401
- package/src/components/POSTable/POSTable.types.ts +83 -83
- package/src/components/POSTable/README.md +286 -286
- package/src/components/POSTable/index.ts +7 -7
- package/src/components/Pagination/Pagination.stories.tsx +555 -555
- package/src/components/Pagination/Pagination.tsx +286 -286
- package/src/components/Pagination/Pagination.types.ts +93 -93
- package/src/components/Pagination/README.md +298 -298
- package/src/components/Pagination/icons.tsx +47 -47
- package/src/components/Pagination/index.ts +3 -3
- package/src/components/Quantity/Quantity.stories.tsx +457 -457
- package/src/components/Quantity/Quantity.tsx +289 -289
- package/src/components/Quantity/Quantity.types.ts +70 -70
- package/src/components/Radio/Radio.stories.tsx +523 -523
- package/src/components/Radio/Radio.tsx +170 -170
- package/src/components/Radio/Radio.types.ts +122 -122
- package/src/components/Select/README.md +299 -299
- package/src/components/Select/Select.stories.tsx +673 -705
- package/src/components/Select/Select.tsx +454 -457
- package/src/components/Select/Select.types.ts +148 -148
- package/src/components/Select/icons.tsx +50 -25
- package/src/components/Select/index.ts +3 -3
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -129
- package/src/components/SignUpView/SignUpView.tsx +503 -503
- package/src/components/SignUpView/SignUpView.types.ts +58 -58
- package/src/components/SignUpView/icons.tsx +71 -71
- package/src/components/SignUpView/index.ts +3 -3
- package/src/components/Switch/README.md +112 -112
- package/src/components/Switch/Switch.stories.tsx +550 -550
- package/src/components/Switch/Switch.tsx +246 -246
- package/src/components/Switch/Switch.types.ts +67 -67
- package/src/components/Table/README.md +369 -369
- package/src/components/Table/Table.stories.tsx +805 -805
- package/src/components/Table/Table.tsx +688 -688
- package/src/components/Table/Table.types.ts +204 -204
- package/src/components/Table/index.ts +9 -9
- package/src/components/Tabs/README.md +201 -201
- package/src/components/Tabs/Tabs.stories.tsx +580 -580
- package/src/components/Tabs/Tabs.tsx +356 -356
- package/src/components/Tabs/Tabs.types.ts +127 -127
- package/src/components/Tabs/icons.tsx +129 -129
- package/src/components/Tabs/index.ts +11 -11
- package/src/components/Textarea/Textarea.stories.tsx +535 -535
- package/src/components/Textarea/Textarea.tsx +188 -188
- package/src/components/Textarea/Textarea.types.ts +54 -54
- package/src/context/ThemeContext.tsx +99 -99
- package/src/context/index.ts +1 -1
- package/src/index.css +29 -29
- package/src/index.ts +39 -133
- package/src/main.tsx +10 -10
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -344
- package/src/views/ProductsView/ProductsView.tsx +480 -480
- package/src/views/ProductsView/ProductsView.types.ts +238 -238
- package/src/views/ProductsView/README.md +312 -312
- package/src/views/ProductsView/icons.tsx +38 -38
- package/src/views/ProductsView/index.ts +8 -8
- package/src/views/RecoverPasswordView/README.md +269 -269
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -131
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -376
- package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -56
- package/src/views/RecoverPasswordView/icons.tsx +17 -17
- package/src/views/RecoverPasswordView/index.ts +2 -2
- package/src/views/TableLayoutView/README.md +268 -268
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -235
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -461
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -209
- package/src/views/TableLayoutView/icons.tsx +113 -113
- package/src/views/TableLayoutView/index.ts +6 -6
- package/storybook/main.ts +19 -19
- package/storybook/preview.tsx +84 -84
- package/storybook/vitest.setup.ts +6 -6
- package/tailwind.config.js +128 -128
- package/claude/prompts/siesa-ui-kit.md +0 -28
- package/dist/ButtonTest.d.ts +0 -6
- package/dist/ButtonTest.d.ts.map +0 -1
- package/dist/components/Alert/Alert.d.ts +0 -23
- package/dist/components/Alert/Alert.d.ts.map +0 -1
- package/dist/components/Alert/Alert.types.d.ts +0 -46
- package/dist/components/Alert/Alert.types.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -41
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.types.d.ts +0 -46
- package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -42
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.types.d.ts +0 -32
- package/dist/components/Badge/Badge.types.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -84
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.types.d.ts +0 -162
- package/dist/components/Button/Button.types.d.ts.map +0 -1
- package/dist/components/Button/icons.d.ts +0 -27
- package/dist/components/Button/icons.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts +0 -4
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -31
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.types.d.ts +0 -53
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.d.ts +0 -38
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.types.d.ts +0 -27
- package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +0 -1
- package/dist/components/Divider/Divider.d.ts +0 -33
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/Divider.types.d.ts +0 -22
- package/dist/components/Divider/Divider.types.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.d.ts +0 -66
- package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.types.d.ts +0 -124
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +0 -1
- package/dist/components/Dropdown/icons.d.ts +0 -10
- package/dist/components/Dropdown/icons.d.ts.map +0 -1
- package/dist/components/Dropdown/index.d.ts +0 -4
- package/dist/components/Dropdown/index.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +0 -101
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +0 -116
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/icons.d.ts +0 -19
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/index.d.ts +0 -9
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +0 -75
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +0 -85
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/icons.d.ts +0 -48
- package/dist/components/DropdownItemHeading/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/index.d.ts +0 -4
- package/dist/components/DropdownItemHeading/index.d.ts.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -40
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.types.d.ts +0 -71
- package/dist/components/Input/Input.types.d.ts.map +0 -1
- package/dist/components/Input/icons.d.ts +0 -15
- package/dist/components/Input/icons.d.ts.map +0 -1
- package/dist/components/Input/index.d.ts +0 -3
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.d.ts +0 -36
- package/dist/components/LoginView/LoginView.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.types.d.ts +0 -46
- package/dist/components/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/components/LoginView/icons.d.ts +0 -18
- package/dist/components/LoginView/icons.d.ts.map +0 -1
- package/dist/components/LoginView/index.d.ts +0 -4
- package/dist/components/LoginView/index.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.d.ts +0 -63
- package/dist/components/Navbar/Navbar.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.types.d.ts +0 -194
- package/dist/components/Navbar/Navbar.types.d.ts.map +0 -1
- package/dist/components/Navbar/icons.d.ts +0 -12
- package/dist/components/Navbar/icons.d.ts.map +0 -1
- package/dist/components/Navbar/index.d.ts +0 -4
- package/dist/components/Navbar/index.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.d.ts +0 -75
- package/dist/components/NavigationBar/NavigationBar.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.types.d.ts +0 -63
- package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +0 -1
- package/dist/components/NavigationBar/index.d.ts +0 -3
- package/dist/components/NavigationBar/index.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.d.ts +0 -7
- package/dist/components/NavigationRail/NavigationRail.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.types.d.ts +0 -92
- package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +0 -1
- package/dist/components/NavigationRail/index.d.ts +0 -3
- package/dist/components/NavigationRail/index.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +0 -122
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +0 -139
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/icons.d.ts +0 -33
- package/dist/components/NavigationRailCommercial/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailCommercial/index.d.ts +0 -4
- package/dist/components/NavigationRailCommercial/index.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +0 -90
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +0 -162
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/index.d.ts +0 -3
- package/dist/components/NavigationRailItem/index.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +0 -124
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +0 -154
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/index.d.ts +0 -3
- package/dist/components/NavigationRailPanel/index.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +0 -99
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +0 -152
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +0 -44
- package/dist/components/NavigationRailTypes/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/index.d.ts +0 -4
- package/dist/components/NavigationRailTypes/index.d.ts.map +0 -1
- package/dist/components/Notification/Notification.d.ts +0 -52
- package/dist/components/Notification/Notification.d.ts.map +0 -1
- package/dist/components/Notification/Notification.types.d.ts +0 -138
- package/dist/components/Notification/Notification.types.d.ts.map +0 -1
- package/dist/components/Notification/index.d.ts +0 -3
- package/dist/components/Notification/index.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.d.ts +0 -55
- package/dist/components/POSConvention/POSConvention.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.types.d.ts +0 -37
- package/dist/components/POSConvention/POSConvention.types.d.ts.map +0 -1
- package/dist/components/POSConvention/icons.d.ts +0 -21
- package/dist/components/POSConvention/icons.d.ts.map +0 -1
- package/dist/components/POSConvention/index.d.ts +0 -4
- package/dist/components/POSConvention/index.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.d.ts +0 -73
- package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +0 -75
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +0 -1
- package/dist/components/POSLocationButton/icons.d.ts +0 -37
- package/dist/components/POSLocationButton/icons.d.ts.map +0 -1
- package/dist/components/POSLocationButton/index.d.ts +0 -4
- package/dist/components/POSLocationButton/index.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.d.ts +0 -61
- package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +0 -43
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +0 -1
- package/dist/components/POSNumberButton/index.d.ts +0 -3
- package/dist/components/POSNumberButton/index.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.d.ts +0 -59
- package/dist/components/POSProductButton/POSProductButton.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.types.d.ts +0 -40
- package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +0 -1
- package/dist/components/POSProductButton/index.d.ts +0 -3
- package/dist/components/POSProductButton/index.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.d.ts +0 -68
- package/dist/components/POSProductCard/POSProductCard.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.types.d.ts +0 -67
- package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +0 -1
- package/dist/components/POSProductCard/icons.d.ts +0 -10
- package/dist/components/POSProductCard/icons.d.ts.map +0 -1
- package/dist/components/POSProductCard/index.d.ts +0 -3
- package/dist/components/POSProductCard/index.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +0 -57
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +0 -85
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/icons.d.ts +0 -9
- package/dist/components/POSProductSidebarItems/icons.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/index.d.ts +0 -4
- package/dist/components/POSProductSidebarItems/index.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.d.ts +0 -75
- package/dist/components/POSTable/POSTable.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.types.d.ts +0 -71
- package/dist/components/POSTable/POSTable.types.d.ts.map +0 -1
- package/dist/components/POSTable/index.d.ts +0 -3
- package/dist/components/POSTable/index.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.d.ts +0 -29
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.types.d.ts +0 -79
- package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
- package/dist/components/Pagination/icons.d.ts +0 -18
- package/dist/components/Pagination/icons.d.ts.map +0 -1
- package/dist/components/Pagination/index.d.ts +0 -4
- package/dist/components/Pagination/index.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.d.ts +0 -38
- package/dist/components/Quantity/Quantity.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.types.d.ts +0 -59
- package/dist/components/Quantity/Quantity.types.d.ts.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -45
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.types.d.ts +0 -115
- package/dist/components/Radio/Radio.types.d.ts.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -37
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.types.d.ts +0 -124
- package/dist/components/Select/Select.types.d.ts.map +0 -1
- package/dist/components/Select/icons.d.ts +0 -20
- package/dist/components/Select/icons.d.ts.map +0 -1
- package/dist/components/Select/index.d.ts +0 -4
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.d.ts +0 -38
- package/dist/components/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/components/SignUpView/icons.d.ts +0 -18
- package/dist/components/SignUpView/icons.d.ts.map +0 -1
- package/dist/components/SignUpView/index.d.ts +0 -4
- package/dist/components/SignUpView/index.d.ts.map +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -46
- package/dist/components/Switch/Switch.d.ts.map +0 -1
- package/dist/components/Switch/Switch.types.d.ts +0 -58
- package/dist/components/Switch/Switch.types.d.ts.map +0 -1
- package/dist/components/Table/Table.d.ts +0 -64
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.types.d.ts +0 -173
- package/dist/components/Table/Table.types.d.ts.map +0 -1
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -76
- package/dist/components/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.types.d.ts +0 -107
- package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
- package/dist/components/Tabs/icons.d.ts +0 -45
- package/dist/components/Tabs/icons.d.ts.map +0 -1
- package/dist/components/Tabs/index.d.ts +0 -4
- package/dist/components/Tabs/index.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.d.ts +0 -38
- package/dist/components/Textarea/Textarea.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.types.d.ts +0 -46
- package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
- package/dist/context/ThemeContext.d.ts +0 -46
- package/dist/context/ThemeContext.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -88
- package/dist/index.d.ts.map +0 -1
- package/dist/siesa-ui-kit.cjs +0 -1474
- package/dist/siesa-ui-kit.cjs.map +0 -1
- package/dist/siesa-ui-kit.mjs +0 -9580
- package/dist/siesa-ui-kit.mjs.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +0 -48
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +0 -49
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +0 -1
- package/dist/views/LayoutCommercial/index.d.ts +0 -3
- package/dist/views/LayoutCommercial/index.d.ts.map +0 -1
- package/dist/views/ListView/ListView.d.ts +0 -47
- package/dist/views/ListView/ListView.d.ts.map +0 -1
- package/dist/views/ListView/ListView.types.d.ts +0 -177
- package/dist/views/ListView/ListView.types.d.ts.map +0 -1
- package/dist/views/ListView/icons.d.ts +0 -60
- package/dist/views/ListView/icons.d.ts.map +0 -1
- package/dist/views/ListView/index.d.ts +0 -3
- package/dist/views/ListView/index.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.d.ts +0 -36
- package/dist/views/LoginView/LoginView.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.types.d.ts +0 -46
- package/dist/views/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/views/LoginView/icons.d.ts +0 -18
- package/dist/views/LoginView/icons.d.ts.map +0 -1
- package/dist/views/LoginView/index.d.ts +0 -4
- package/dist/views/LoginView/index.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.d.ts +0 -56
- package/dist/views/ProductsView/ProductsView.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.types.d.ts +0 -184
- package/dist/views/ProductsView/ProductsView.types.d.ts.map +0 -1
- package/dist/views/ProductsView/icons.d.ts +0 -12
- package/dist/views/ProductsView/icons.d.ts.map +0 -1
- package/dist/views/ProductsView/index.d.ts +0 -3
- package/dist/views/ProductsView/index.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +0 -34
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +0 -50
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/icons.d.ts +0 -9
- package/dist/views/RecoverPasswordView/icons.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/index.d.ts +0 -3
- package/dist/views/RecoverPasswordView/index.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.d.ts +0 -38
- package/dist/views/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/views/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/views/SignUpView/icons.d.ts +0 -18
- package/dist/views/SignUpView/icons.d.ts.map +0 -1
- package/dist/views/SignUpView/index.d.ts +0 -4
- package/dist/views/SignUpView/index.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.d.ts +0 -46
- package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +0 -170
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +0 -1
- package/dist/views/TableLayoutView/icons.d.ts +0 -27
- package/dist/views/TableLayoutView/icons.d.ts.map +0 -1
- package/dist/views/TableLayoutView/index.d.ts +0 -3
- package/dist/views/TableLayoutView/index.d.ts.map +0 -1
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +0 -317
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +0 -307
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +0 -136
- package/src/components/DropdownItemCollapsible/README.md +0 -264
- package/src/components/DropdownItemCollapsible/icons.tsx +0 -57
- package/src/components/DropdownItemCollapsible/index.ts +0 -12
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +0 -386
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +0 -216
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +0 -93
- package/src/components/DropdownItemHeading/README.md +0 -573
- package/src/components/DropdownItemHeading/icons.tsx +0 -125
- package/src/components/DropdownItemHeading/index.ts +0 -3
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +0 -464
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +0 -301
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +0 -162
- package/src/components/NavigationRailCommercial/README.md +0 -251
- package/src/components/NavigationRailCommercial/icons.tsx +0 -54
- package/src/components/NavigationRailCommercial/index.ts +0 -6
- package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +0 -667
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +0 -314
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +0 -175
- package/src/components/NavigationRailItem/README.md +0 -476
- package/src/components/NavigationRailItem/index.ts +0 -2
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +0 -462
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +0 -332
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +0 -178
- package/src/components/NavigationRailPanel/README.md +0 -461
- package/src/components/NavigationRailPanel/index.ts +0 -6
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +0 -682
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +0 -363
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +0 -178
- package/src/components/NavigationRailTypes/README.md +0 -573
- package/src/components/NavigationRailTypes/icons.tsx +0 -76
- package/src/components/NavigationRailTypes/index.ts +0 -7
- package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +0 -374
- package/src/views/LayoutCommercial/LayoutCommercial.tsx +0 -125
- package/src/views/LayoutCommercial/LayoutCommercial.types.ts +0 -54
- package/src/views/LayoutCommercial/README.md +0 -286
- package/src/views/LayoutCommercial/index.ts +0 -2
- package/src/views/ListView/ListView.stories.tsx +0 -329
- package/src/views/ListView/ListView.tsx +0 -570
- package/src/views/ListView/ListView.types.ts +0 -211
- package/src/views/ListView/icons.tsx +0 -282
- package/src/views/ListView/index.ts +0 -11
- package/src/views/LoginView/LoginView.stories.tsx +0 -148
- package/src/views/LoginView/LoginView.tsx +0 -426
- package/src/views/LoginView/LoginView.types.ts +0 -52
- package/src/views/LoginView/README.md +0 -396
- package/src/views/LoginView/icons.tsx +0 -85
- package/src/views/LoginView/index.ts +0 -3
- package/src/views/SignUpView/SignUpView.stories.tsx +0 -129
- package/src/views/SignUpView/SignUpView.tsx +0 -503
- package/src/views/SignUpView/SignUpView.types.ts +0 -58
- package/src/views/SignUpView/icons.tsx +0 -71
- package/src/views/SignUpView/index.ts +0 -3
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
# Tabs
|
|
2
|
-
|
|
3
|
-
Componente de navegación por pestañas del sistema de diseño Siesa UI Kit.
|
|
4
|
-
|
|
5
|
-
## Descripción
|
|
6
|
-
|
|
7
|
-
El componente `Tabs` proporciona una interfaz de navegación horizontal que permite a los usuarios cambiar entre diferentes vistas o secciones de contenido. Está diseñado siguiendo las especificaciones de Figma con soporte completo para dark mode.
|
|
8
|
-
|
|
9
|
-
## Características
|
|
10
|
-
|
|
11
|
-
- ✅ Estados: Default, Hover, Focus, Active, Disabled
|
|
12
|
-
- ✅ Soporte para iconos (Heroicons Micro 16x16)
|
|
13
|
-
- ✅ Badge de notificación con contador
|
|
14
|
-
- ✅ Dark mode completo
|
|
15
|
-
- ✅ Modo controlado y no controlado
|
|
16
|
-
- ✅ Accesibilidad con ARIA roles
|
|
17
|
-
- ✅ TypeScript estricto
|
|
18
|
-
|
|
19
|
-
## Instalación
|
|
20
|
-
|
|
21
|
-
El componente está incluido en el Siesa UI Kit. Importa desde la carpeta de componentes:
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
import { Tabs, Tab } from '@/components/Tabs';
|
|
25
|
-
import type { TabItem } from '@/components/Tabs';
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Uso Básico
|
|
29
|
-
|
|
30
|
-
### Modo No Controlado
|
|
31
|
-
|
|
32
|
-
```tsx
|
|
33
|
-
<Tabs
|
|
34
|
-
items={[
|
|
35
|
-
{ id: 'inicio', label: 'Inicio' },
|
|
36
|
-
{ id: 'perfil', label: 'Perfil' },
|
|
37
|
-
{ id: 'configuracion', label: 'Configuración' },
|
|
38
|
-
]}
|
|
39
|
-
defaultActiveId="inicio"
|
|
40
|
-
/>
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### Modo Controlado
|
|
44
|
-
|
|
45
|
-
```tsx
|
|
46
|
-
const [activeTab, setActiveTab] = useState('inicio');
|
|
47
|
-
|
|
48
|
-
<Tabs
|
|
49
|
-
items={[
|
|
50
|
-
{ id: 'inicio', label: 'Inicio' },
|
|
51
|
-
{ id: 'perfil', label: 'Perfil' },
|
|
52
|
-
{ id: 'configuracion', label: 'Configuración' },
|
|
53
|
-
]}
|
|
54
|
-
activeId={activeTab}
|
|
55
|
-
onChange={setActiveTab}
|
|
56
|
-
/>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Con Iconos
|
|
60
|
-
|
|
61
|
-
```tsx
|
|
62
|
-
import { HomeIcon, UserIcon, CogIcon } from '@/components/Tabs';
|
|
63
|
-
|
|
64
|
-
<Tabs
|
|
65
|
-
items={[
|
|
66
|
-
{ id: 'inicio', label: 'Inicio', icon: <HomeIcon className="w-3 h-3" /> },
|
|
67
|
-
{ id: 'perfil', label: 'Perfil', icon: <UserIcon className="w-3 h-3" /> },
|
|
68
|
-
{ id: 'configuracion', label: 'Configuración', icon: <CogIcon className="w-3 h-3" /> },
|
|
69
|
-
]}
|
|
70
|
-
activeId={activeTab}
|
|
71
|
-
onChange={setActiveTab}
|
|
72
|
-
/>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Con Badges de Notificación
|
|
76
|
-
|
|
77
|
-
```tsx
|
|
78
|
-
<Tabs
|
|
79
|
-
items={[
|
|
80
|
-
{ id: 'mensajes', label: 'Mensajes', badge: 5 },
|
|
81
|
-
{ id: 'notificaciones', label: 'Notificaciones', badge: 12 },
|
|
82
|
-
{ id: 'tareas', label: 'Tareas' },
|
|
83
|
-
]}
|
|
84
|
-
activeId={activeTab}
|
|
85
|
-
onChange={setActiveTab}
|
|
86
|
-
/>
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Full Width
|
|
90
|
-
|
|
91
|
-
```tsx
|
|
92
|
-
<Tabs
|
|
93
|
-
items={[...]}
|
|
94
|
-
activeId={activeTab}
|
|
95
|
-
onChange={setActiveTab}
|
|
96
|
-
fullWidth
|
|
97
|
-
/>
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Props
|
|
101
|
-
|
|
102
|
-
### TabsProps (Contenedor)
|
|
103
|
-
|
|
104
|
-
| Prop | Tipo | Default | Descripción |
|
|
105
|
-
|------|------|---------|-------------|
|
|
106
|
-
| `items` | `TabItem[]` | **requerido** | Lista de tabs a mostrar |
|
|
107
|
-
| `activeId` | `string` | - | ID del tab seleccionado (modo controlado) |
|
|
108
|
-
| `defaultActiveId` | `string` | - | ID del tab inicial (modo no controlado) |
|
|
109
|
-
| `onChange` | `(id: string) => void` | - | Callback al cambiar de tab |
|
|
110
|
-
| `fullWidth` | `boolean` | `false` | Si los tabs ocupan todo el ancho |
|
|
111
|
-
| `size` | `'sm' \| 'base' \| 'lg'` | `'base'` | Tamaño (espaciado entre tabs) |
|
|
112
|
-
| `showBorder` | `boolean` | `true` | Mostrar línea inferior |
|
|
113
|
-
| `className` | `string` | - | Clases CSS adicionales |
|
|
114
|
-
|
|
115
|
-
### TabItem
|
|
116
|
-
|
|
117
|
-
| Prop | Tipo | Default | Descripción |
|
|
118
|
-
|------|------|---------|-------------|
|
|
119
|
-
| `id` | `string` | **requerido** | Identificador único |
|
|
120
|
-
| `label` | `string` | **requerido** | Texto del tab |
|
|
121
|
-
| `icon` | `ReactNode` | - | Icono a la izquierda |
|
|
122
|
-
| `badge` | `number` | - | Número de notificaciones |
|
|
123
|
-
| `disabled` | `boolean` | `false` | Si está deshabilitado |
|
|
124
|
-
|
|
125
|
-
### TabProps (Tab Individual)
|
|
126
|
-
|
|
127
|
-
| Prop | Tipo | Default | Descripción |
|
|
128
|
-
|------|------|---------|-------------|
|
|
129
|
-
| `label` | `string` | **requerido** | Texto del tab |
|
|
130
|
-
| `active` | `boolean` | `false` | Si está activo |
|
|
131
|
-
| `icon` | `ReactNode` | - | Icono a la izquierda |
|
|
132
|
-
| `badge` | `number` | - | Número de notificaciones |
|
|
133
|
-
| `disabled` | `boolean` | `false` | Si está deshabilitado |
|
|
134
|
-
| `onClick` | `() => void` | - | Callback al hacer click |
|
|
135
|
-
| `className` | `string` | - | Clases CSS adicionales |
|
|
136
|
-
| `ariaLabel` | `string` | - | Etiqueta accesible |
|
|
137
|
-
|
|
138
|
-
## Iconos Incluidos
|
|
139
|
-
|
|
140
|
-
El componente incluye los siguientes iconos Heroicons Micro (16x16):
|
|
141
|
-
|
|
142
|
-
- `CheckIcon` - Icono de verificación
|
|
143
|
-
- `HomeIcon` - Icono de inicio
|
|
144
|
-
- `UserIcon` - Icono de usuario
|
|
145
|
-
- `CogIcon` - Icono de configuración
|
|
146
|
-
- `BellIcon` - Icono de notificaciones
|
|
147
|
-
- `DocumentIcon` - Icono de documento
|
|
148
|
-
- `ChartIcon` - Icono de estadísticas
|
|
149
|
-
|
|
150
|
-
## Especificaciones de Diseño
|
|
151
|
-
|
|
152
|
-
### Dimensiones (según Figma)
|
|
153
|
-
|
|
154
|
-
- **Padding interno**: 8px
|
|
155
|
-
- **Gap entre icono y texto**: 4px
|
|
156
|
-
- **Altura del indicador activo**: 2px
|
|
157
|
-
- **Border radius**: 8px (rounded-lg)
|
|
158
|
-
|
|
159
|
-
### Tipografía
|
|
160
|
-
|
|
161
|
-
- **Texto**: Label Small (14px Bold, line-height 20px)
|
|
162
|
-
- **Badge**: 12px Regular
|
|
163
|
-
|
|
164
|
-
### Colores
|
|
165
|
-
|
|
166
|
-
**Light Mode:**
|
|
167
|
-
- Texto inactivo: `#18181b` (content-primary)
|
|
168
|
-
- Texto activo: `#0e79fd` (primary-custom-600)
|
|
169
|
-
- Hover overlay: `rgba(0,0,0,0.03)`
|
|
170
|
-
- Indicador activo: `#0e79fd`
|
|
171
|
-
|
|
172
|
-
**Dark Mode:**
|
|
173
|
-
- Texto inactivo: `#ffffff` (dark-content-primary)
|
|
174
|
-
- Texto activo: `#0e79fd` (primary-custom-600)
|
|
175
|
-
- Hover overlay: `rgba(255,255,255,0.05)`
|
|
176
|
-
- Indicador activo: `#0e79fd`
|
|
177
|
-
|
|
178
|
-
## Accesibilidad
|
|
179
|
-
|
|
180
|
-
El componente implementa las siguientes características de accesibilidad:
|
|
181
|
-
|
|
182
|
-
- `role="tablist"` en el contenedor
|
|
183
|
-
- `role="tab"` en cada tab individual
|
|
184
|
-
- `aria-selected` para indicar el tab activo
|
|
185
|
-
- `aria-disabled` para tabs deshabilitados
|
|
186
|
-
- Navegación con teclado (Tab para focus)
|
|
187
|
-
- Focus visible con anillo de foco
|
|
188
|
-
|
|
189
|
-
## Mejores Prácticas
|
|
190
|
-
|
|
191
|
-
1. **Usa iconos consistentemente** - Si un tab tiene icono, considera agregar iconos a todos
|
|
192
|
-
2. **Badges para notificaciones** - Usa badges solo cuando hay información relevante para el usuario
|
|
193
|
-
3. **Deshabilita en lugar de ocultar** - Si un tab no está disponible, deshabilítalo en lugar de ocultarlo
|
|
194
|
-
4. **Textos cortos** - Mantén los labels de los tabs concisos
|
|
195
|
-
5. **Orden lógico** - Organiza los tabs en orden de importancia o flujo de trabajo
|
|
196
|
-
|
|
197
|
-
## Referencias
|
|
198
|
-
|
|
199
|
-
- **Figma**: [Tabs Component](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4514-29083)
|
|
200
|
-
- **Documentación de colores**: `docs/colors.md`
|
|
201
|
-
- **Documentación de tipografía**: `docs/typography.md`
|
|
1
|
+
# Tabs
|
|
2
|
+
|
|
3
|
+
Componente de navegación por pestañas del sistema de diseño Siesa UI Kit.
|
|
4
|
+
|
|
5
|
+
## Descripción
|
|
6
|
+
|
|
7
|
+
El componente `Tabs` proporciona una interfaz de navegación horizontal que permite a los usuarios cambiar entre diferentes vistas o secciones de contenido. Está diseñado siguiendo las especificaciones de Figma con soporte completo para dark mode.
|
|
8
|
+
|
|
9
|
+
## Características
|
|
10
|
+
|
|
11
|
+
- ✅ Estados: Default, Hover, Focus, Active, Disabled
|
|
12
|
+
- ✅ Soporte para iconos (Heroicons Micro 16x16)
|
|
13
|
+
- ✅ Badge de notificación con contador
|
|
14
|
+
- ✅ Dark mode completo
|
|
15
|
+
- ✅ Modo controlado y no controlado
|
|
16
|
+
- ✅ Accesibilidad con ARIA roles
|
|
17
|
+
- ✅ TypeScript estricto
|
|
18
|
+
|
|
19
|
+
## Instalación
|
|
20
|
+
|
|
21
|
+
El componente está incluido en el Siesa UI Kit. Importa desde la carpeta de componentes:
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { Tabs, Tab } from '@/components/Tabs';
|
|
25
|
+
import type { TabItem } from '@/components/Tabs';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Uso Básico
|
|
29
|
+
|
|
30
|
+
### Modo No Controlado
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<Tabs
|
|
34
|
+
items={[
|
|
35
|
+
{ id: 'inicio', label: 'Inicio' },
|
|
36
|
+
{ id: 'perfil', label: 'Perfil' },
|
|
37
|
+
{ id: 'configuracion', label: 'Configuración' },
|
|
38
|
+
]}
|
|
39
|
+
defaultActiveId="inicio"
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Modo Controlado
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
const [activeTab, setActiveTab] = useState('inicio');
|
|
47
|
+
|
|
48
|
+
<Tabs
|
|
49
|
+
items={[
|
|
50
|
+
{ id: 'inicio', label: 'Inicio' },
|
|
51
|
+
{ id: 'perfil', label: 'Perfil' },
|
|
52
|
+
{ id: 'configuracion', label: 'Configuración' },
|
|
53
|
+
]}
|
|
54
|
+
activeId={activeTab}
|
|
55
|
+
onChange={setActiveTab}
|
|
56
|
+
/>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Con Iconos
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import { HomeIcon, UserIcon, CogIcon } from '@/components/Tabs';
|
|
63
|
+
|
|
64
|
+
<Tabs
|
|
65
|
+
items={[
|
|
66
|
+
{ id: 'inicio', label: 'Inicio', icon: <HomeIcon className="w-3 h-3" /> },
|
|
67
|
+
{ id: 'perfil', label: 'Perfil', icon: <UserIcon className="w-3 h-3" /> },
|
|
68
|
+
{ id: 'configuracion', label: 'Configuración', icon: <CogIcon className="w-3 h-3" /> },
|
|
69
|
+
]}
|
|
70
|
+
activeId={activeTab}
|
|
71
|
+
onChange={setActiveTab}
|
|
72
|
+
/>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Con Badges de Notificación
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
<Tabs
|
|
79
|
+
items={[
|
|
80
|
+
{ id: 'mensajes', label: 'Mensajes', badge: 5 },
|
|
81
|
+
{ id: 'notificaciones', label: 'Notificaciones', badge: 12 },
|
|
82
|
+
{ id: 'tareas', label: 'Tareas' },
|
|
83
|
+
]}
|
|
84
|
+
activeId={activeTab}
|
|
85
|
+
onChange={setActiveTab}
|
|
86
|
+
/>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Full Width
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<Tabs
|
|
93
|
+
items={[...]}
|
|
94
|
+
activeId={activeTab}
|
|
95
|
+
onChange={setActiveTab}
|
|
96
|
+
fullWidth
|
|
97
|
+
/>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Props
|
|
101
|
+
|
|
102
|
+
### TabsProps (Contenedor)
|
|
103
|
+
|
|
104
|
+
| Prop | Tipo | Default | Descripción |
|
|
105
|
+
|------|------|---------|-------------|
|
|
106
|
+
| `items` | `TabItem[]` | **requerido** | Lista de tabs a mostrar |
|
|
107
|
+
| `activeId` | `string` | - | ID del tab seleccionado (modo controlado) |
|
|
108
|
+
| `defaultActiveId` | `string` | - | ID del tab inicial (modo no controlado) |
|
|
109
|
+
| `onChange` | `(id: string) => void` | - | Callback al cambiar de tab |
|
|
110
|
+
| `fullWidth` | `boolean` | `false` | Si los tabs ocupan todo el ancho |
|
|
111
|
+
| `size` | `'sm' \| 'base' \| 'lg'` | `'base'` | Tamaño (espaciado entre tabs) |
|
|
112
|
+
| `showBorder` | `boolean` | `true` | Mostrar línea inferior |
|
|
113
|
+
| `className` | `string` | - | Clases CSS adicionales |
|
|
114
|
+
|
|
115
|
+
### TabItem
|
|
116
|
+
|
|
117
|
+
| Prop | Tipo | Default | Descripción |
|
|
118
|
+
|------|------|---------|-------------|
|
|
119
|
+
| `id` | `string` | **requerido** | Identificador único |
|
|
120
|
+
| `label` | `string` | **requerido** | Texto del tab |
|
|
121
|
+
| `icon` | `ReactNode` | - | Icono a la izquierda |
|
|
122
|
+
| `badge` | `number` | - | Número de notificaciones |
|
|
123
|
+
| `disabled` | `boolean` | `false` | Si está deshabilitado |
|
|
124
|
+
|
|
125
|
+
### TabProps (Tab Individual)
|
|
126
|
+
|
|
127
|
+
| Prop | Tipo | Default | Descripción |
|
|
128
|
+
|------|------|---------|-------------|
|
|
129
|
+
| `label` | `string` | **requerido** | Texto del tab |
|
|
130
|
+
| `active` | `boolean` | `false` | Si está activo |
|
|
131
|
+
| `icon` | `ReactNode` | - | Icono a la izquierda |
|
|
132
|
+
| `badge` | `number` | - | Número de notificaciones |
|
|
133
|
+
| `disabled` | `boolean` | `false` | Si está deshabilitado |
|
|
134
|
+
| `onClick` | `() => void` | - | Callback al hacer click |
|
|
135
|
+
| `className` | `string` | - | Clases CSS adicionales |
|
|
136
|
+
| `ariaLabel` | `string` | - | Etiqueta accesible |
|
|
137
|
+
|
|
138
|
+
## Iconos Incluidos
|
|
139
|
+
|
|
140
|
+
El componente incluye los siguientes iconos Heroicons Micro (16x16):
|
|
141
|
+
|
|
142
|
+
- `CheckIcon` - Icono de verificación
|
|
143
|
+
- `HomeIcon` - Icono de inicio
|
|
144
|
+
- `UserIcon` - Icono de usuario
|
|
145
|
+
- `CogIcon` - Icono de configuración
|
|
146
|
+
- `BellIcon` - Icono de notificaciones
|
|
147
|
+
- `DocumentIcon` - Icono de documento
|
|
148
|
+
- `ChartIcon` - Icono de estadísticas
|
|
149
|
+
|
|
150
|
+
## Especificaciones de Diseño
|
|
151
|
+
|
|
152
|
+
### Dimensiones (según Figma)
|
|
153
|
+
|
|
154
|
+
- **Padding interno**: 8px
|
|
155
|
+
- **Gap entre icono y texto**: 4px
|
|
156
|
+
- **Altura del indicador activo**: 2px
|
|
157
|
+
- **Border radius**: 8px (rounded-lg)
|
|
158
|
+
|
|
159
|
+
### Tipografía
|
|
160
|
+
|
|
161
|
+
- **Texto**: Label Small (14px Bold, line-height 20px)
|
|
162
|
+
- **Badge**: 12px Regular
|
|
163
|
+
|
|
164
|
+
### Colores
|
|
165
|
+
|
|
166
|
+
**Light Mode:**
|
|
167
|
+
- Texto inactivo: `#18181b` (content-primary)
|
|
168
|
+
- Texto activo: `#0e79fd` (primary-custom-600)
|
|
169
|
+
- Hover overlay: `rgba(0,0,0,0.03)`
|
|
170
|
+
- Indicador activo: `#0e79fd`
|
|
171
|
+
|
|
172
|
+
**Dark Mode:**
|
|
173
|
+
- Texto inactivo: `#ffffff` (dark-content-primary)
|
|
174
|
+
- Texto activo: `#0e79fd` (primary-custom-600)
|
|
175
|
+
- Hover overlay: `rgba(255,255,255,0.05)`
|
|
176
|
+
- Indicador activo: `#0e79fd`
|
|
177
|
+
|
|
178
|
+
## Accesibilidad
|
|
179
|
+
|
|
180
|
+
El componente implementa las siguientes características de accesibilidad:
|
|
181
|
+
|
|
182
|
+
- `role="tablist"` en el contenedor
|
|
183
|
+
- `role="tab"` en cada tab individual
|
|
184
|
+
- `aria-selected` para indicar el tab activo
|
|
185
|
+
- `aria-disabled` para tabs deshabilitados
|
|
186
|
+
- Navegación con teclado (Tab para focus)
|
|
187
|
+
- Focus visible con anillo de foco
|
|
188
|
+
|
|
189
|
+
## Mejores Prácticas
|
|
190
|
+
|
|
191
|
+
1. **Usa iconos consistentemente** - Si un tab tiene icono, considera agregar iconos a todos
|
|
192
|
+
2. **Badges para notificaciones** - Usa badges solo cuando hay información relevante para el usuario
|
|
193
|
+
3. **Deshabilita en lugar de ocultar** - Si un tab no está disponible, deshabilítalo en lugar de ocultarlo
|
|
194
|
+
4. **Textos cortos** - Mantén los labels de los tabs concisos
|
|
195
|
+
5. **Orden lógico** - Organiza los tabs en orden de importancia o flujo de trabajo
|
|
196
|
+
|
|
197
|
+
## Referencias
|
|
198
|
+
|
|
199
|
+
- **Figma**: [Tabs Component](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4514-29083)
|
|
200
|
+
- **Documentación de colores**: `docs/colors.md`
|
|
201
|
+
- **Documentación de tipografía**: `docs/typography.md`
|