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,301 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
NavigationRailCommercialProps,
|
|
4
|
-
NavigationRailCommercialMenuItem,
|
|
5
|
-
} from './NavigationRailCommercial.types';
|
|
6
|
-
import { NavigationRailTypes } from '../NavigationRailTypes/NavigationRailTypes';
|
|
7
|
-
import { NavigationRailPanel } from '../NavigationRailPanel/NavigationRailPanel';
|
|
8
|
-
import { MagnifyingGlassIcon } from './icons';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* NavigationRailCommercial del sistema de diseño Siesa
|
|
12
|
-
*
|
|
13
|
-
* Componente de navegación lateral especializado para aplicaciones comerciales
|
|
14
|
-
* que combina NavigationRailTypes y NavigationRailPanel para crear una experiencia
|
|
15
|
-
* de navegación completa con múltiples estados:
|
|
16
|
-
*
|
|
17
|
-
* - **Collapsed**: Barra compacta de 80px con solo iconos
|
|
18
|
-
* - **Expanded**: Barra expandida de 215px con labels
|
|
19
|
-
* - **Hover**: Panel lateral con submenú del item (se muestra al hacer hover)
|
|
20
|
-
* - **Searcher**: Panel lateral con búsqueda y recientes
|
|
21
|
-
*
|
|
22
|
-
* **Características:**
|
|
23
|
-
* - Reutiliza NavigationRailTypes para la barra lateral principal
|
|
24
|
-
* - Reutiliza NavigationRailPanel para los paneles de hover y búsqueda
|
|
25
|
-
* - Gestión de estado integrada (collapsed, expanded, hover, searcher)
|
|
26
|
-
* - Dark mode completo en todos los elementos
|
|
27
|
-
* - Focus rings adaptativos
|
|
28
|
-
* - Transiciones suaves entre estados
|
|
29
|
-
*
|
|
30
|
-
* **Especificaciones de Figma:**
|
|
31
|
-
* - NavigationRailTypes: 80px (collapsed) / 215px (expanded)
|
|
32
|
-
* - NavigationRailPanel: 248px width, altura variable
|
|
33
|
-
* - Posición panel: left 80px desde el rail
|
|
34
|
-
* - Transiciones: 300ms ease-in-out
|
|
35
|
-
*
|
|
36
|
-
* **Estructura:**
|
|
37
|
-
* ```
|
|
38
|
-
* ┌────────────────────────────────────┐
|
|
39
|
-
* │ NavigationRailCommercial │
|
|
40
|
-
* │ ┌──────────┬─────────────────┐ │
|
|
41
|
-
* │ │ Rail │ Panel │ │
|
|
42
|
-
* │ │ Types │ (hover/search) │ │
|
|
43
|
-
* │ │ (base) │ (opcional) │ │
|
|
44
|
-
* │ └──────────┴─────────────────┘ │
|
|
45
|
-
* └────────────────────────────────────┘
|
|
46
|
-
* ```
|
|
47
|
-
*
|
|
48
|
-
* **Estados de Items:**
|
|
49
|
-
* - `default`: Sin interacción
|
|
50
|
-
* - `hover`: Muestra panel con submenú (si tiene children)
|
|
51
|
-
* - `active`: Item seleccionado, fondo custom-primary
|
|
52
|
-
* - `disabled`: Opacity 50%, sin interacción
|
|
53
|
-
*
|
|
54
|
-
* **Colores (Light Mode):**
|
|
55
|
-
* - Background rail: #ffffff (bg-primary)
|
|
56
|
-
* - Background panel: #ffffff (bg-primary)
|
|
57
|
-
* - Borders: #e4e4e7 (border-primary)
|
|
58
|
-
* - Text: #18181b (content-primary)
|
|
59
|
-
* - Icons: #a1a1aa (content-secondary)
|
|
60
|
-
* - Search button: #0e79fd (primary-custom-600)
|
|
61
|
-
*
|
|
62
|
-
* **Colores (Dark Mode):**
|
|
63
|
-
* - Background rail: #18181b (dark-bg-primary)
|
|
64
|
-
* - Background panel: #18181b (dark-bg-primary)
|
|
65
|
-
* - Borders: #71717a (dark-border-primary)
|
|
66
|
-
* - Text: #f4f4f5 (dark-content-primary)
|
|
67
|
-
* - Icons: #a1a1aa (content-secondary)
|
|
68
|
-
*
|
|
69
|
-
* **Tipografía:**
|
|
70
|
-
* - Items: Paragraph/Small (14px Regular, line-height 20px)
|
|
71
|
-
* - Panel heading: Label/Small (14px Bold)
|
|
72
|
-
* - Section headings: Paragraph/Tiny (12px Regular)
|
|
73
|
-
*
|
|
74
|
-
* **Implementación de Estados:**
|
|
75
|
-
* - `collapsed` + hover en item → state='hover' + muestra panel
|
|
76
|
-
* - `collapsed` + click en search → state='searcher' + muestra panel búsqueda
|
|
77
|
-
* - `expanded` → NavigationRailTypes expandido con Input integrado
|
|
78
|
-
* - Click en "Colapsar" → vuelve a collapsed
|
|
79
|
-
*
|
|
80
|
-
* @see docs/colors.md - Sistema de colores
|
|
81
|
-
* @see docs/typography.md - Sistema tipográfico
|
|
82
|
-
* @see docs/spacing.md - Sistema de espaciado
|
|
83
|
-
* @see ../NavigationRailTypes - Componente reutilizado para barra lateral
|
|
84
|
-
* @see ../NavigationRailPanel - Componente reutilizado para paneles
|
|
85
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6146-34487
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* ```tsx
|
|
89
|
-
* // Uso básico en modo collapsed
|
|
90
|
-
* const items = [
|
|
91
|
-
* {
|
|
92
|
-
* id: 'admin',
|
|
93
|
-
* label: 'Administración',
|
|
94
|
-
* icon: <Cog6ToothIcon />,
|
|
95
|
-
* isCollapsible: true,
|
|
96
|
-
* children: [
|
|
97
|
-
* { id: 'users', label: 'Usuarios' },
|
|
98
|
-
* { id: 'roles', label: 'Roles' },
|
|
99
|
-
* ],
|
|
100
|
-
* },
|
|
101
|
-
* {
|
|
102
|
-
* id: 'sales',
|
|
103
|
-
* label: 'Ventas',
|
|
104
|
-
* icon: <ShoppingCartIcon />,
|
|
105
|
-
* },
|
|
106
|
-
* ];
|
|
107
|
-
*
|
|
108
|
-
* <NavigationRailCommercial
|
|
109
|
-
* state="collapsed"
|
|
110
|
-
* items={items}
|
|
111
|
-
* onItemClick={(item) => console.log('Clicked:', item.label)}
|
|
112
|
-
* onItemHover={(item) => console.log('Hover:', item.label)}
|
|
113
|
-
* />
|
|
114
|
-
*
|
|
115
|
-
* // Uso con control de estado externo
|
|
116
|
-
* const [state, setState] = useState('collapsed');
|
|
117
|
-
*
|
|
118
|
-
* <NavigationRailCommercial
|
|
119
|
-
* state={state}
|
|
120
|
-
* items={items}
|
|
121
|
-
* onStateChange={setState}
|
|
122
|
-
* />
|
|
123
|
-
* ```
|
|
124
|
-
*
|
|
125
|
-
* @see NavigationRailCommercial.types.ts - Props e interfaces
|
|
126
|
-
*/
|
|
127
|
-
export const NavigationRailCommercial = React.forwardRef<
|
|
128
|
-
HTMLDivElement,
|
|
129
|
-
NavigationRailCommercialProps
|
|
130
|
-
>(
|
|
131
|
-
(
|
|
132
|
-
{
|
|
133
|
-
state = 'collapsed',
|
|
134
|
-
items = [],
|
|
135
|
-
onStateChange,
|
|
136
|
-
onItemClick,
|
|
137
|
-
onItemHover,
|
|
138
|
-
labels = {},
|
|
139
|
-
className,
|
|
140
|
-
showSearchButton = true,
|
|
141
|
-
},
|
|
142
|
-
ref
|
|
143
|
-
) => {
|
|
144
|
-
// Estado local para controlar el panel
|
|
145
|
-
const [showPanel, setShowPanel] = useState(false);
|
|
146
|
-
const [panelType, setPanelType] = useState<'hover' | 'searcher'>('hover');
|
|
147
|
-
const [hoveredItem, setHoveredItem] = useState<NavigationRailCommercialMenuItem | null>(null);
|
|
148
|
-
|
|
149
|
-
// Labels con valores por defecto
|
|
150
|
-
const finalLabels = {
|
|
151
|
-
searchPlaceholder: labels.searchPlaceholder ?? 'Buscar módulo',
|
|
152
|
-
collapseButton: labels.collapseButton ?? 'Colapsar',
|
|
153
|
-
recentSection: labels.recentSection ?? 'Recientes',
|
|
154
|
-
frequentSection: labels.frequentSection ?? 'Opciones frecuentes',
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
// Controlar el estado collapsed/expanded
|
|
158
|
-
const isCollapsed = state === 'collapsed' || state === 'hover' || state === 'searcher';
|
|
159
|
-
|
|
160
|
-
// Manejar cambio de estado collapsed/expanded
|
|
161
|
-
const handleCollapsedChange = (collapsed: boolean) => {
|
|
162
|
-
const newState = collapsed ? 'collapsed' : 'expanded';
|
|
163
|
-
onStateChange?.(newState);
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
// Manejar click en item
|
|
167
|
-
const handleItemClick = (index: number) => {
|
|
168
|
-
const commercialItem = items[index];
|
|
169
|
-
if (commercialItem) {
|
|
170
|
-
onItemClick?.(commercialItem);
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
// Manejar hover en item desde NavigationRailTypes
|
|
175
|
-
const handleItemHoverFromRail = (index: number) => {
|
|
176
|
-
const commercialItem = items[index];
|
|
177
|
-
if (commercialItem && isCollapsed) {
|
|
178
|
-
handleItemHover(commercialItem);
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
// Manejar hover en item (solo en modo collapsed)
|
|
183
|
-
const handleItemHover = (item: NavigationRailCommercialMenuItem) => {
|
|
184
|
-
if (isCollapsed && item.isCollapsible && item.children) {
|
|
185
|
-
setHoveredItem(item);
|
|
186
|
-
setPanelType('hover');
|
|
187
|
-
setShowPanel(true);
|
|
188
|
-
onItemHover?.(item);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
// Manejar click en botón de búsqueda
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
// Convertir items a formato NavigationRailTypes
|
|
196
|
-
const railItems = items.map((item) => ({
|
|
197
|
-
id: item.id,
|
|
198
|
-
label: item.label,
|
|
199
|
-
icon: item.icon,
|
|
200
|
-
active: item.active,
|
|
201
|
-
disabled: item.disabled,
|
|
202
|
-
badge: item.badge,
|
|
203
|
-
badgeCount: item.badgeCount,
|
|
204
|
-
children: item.children,
|
|
205
|
-
defaultOpen: item.defaultOpen,
|
|
206
|
-
onClick: () => {
|
|
207
|
-
item.onClick?.();
|
|
208
|
-
},
|
|
209
|
-
}));
|
|
210
|
-
|
|
211
|
-
return (
|
|
212
|
-
<div
|
|
213
|
-
ref={ref}
|
|
214
|
-
className={`relative flex items-start h-full ${className || ''}`}
|
|
215
|
-
data-testid="navigation-rail-commercial"
|
|
216
|
-
>
|
|
217
|
-
{/* NavigationRailTypes - Barra lateral principal */}
|
|
218
|
-
<NavigationRailTypes
|
|
219
|
-
collapsed={isCollapsed}
|
|
220
|
-
items={railItems}
|
|
221
|
-
showRecentButton={false}
|
|
222
|
-
showSearchButton={showSearchButton}
|
|
223
|
-
onCollapsedChange={handleCollapsedChange}
|
|
224
|
-
onItemClick={handleItemClick}
|
|
225
|
-
onItemHover={handleItemHoverFromRail}
|
|
226
|
-
labels={{
|
|
227
|
-
searchButton: finalLabels.searchPlaceholder,
|
|
228
|
-
searchPlaceholder: finalLabels.searchPlaceholder,
|
|
229
|
-
collapseButton: finalLabels.collapseButton,
|
|
230
|
-
}}
|
|
231
|
-
/>
|
|
232
|
-
|
|
233
|
-
{/* NavigationRailPanel - Panel lateral (hover o searcher) */}
|
|
234
|
-
{showPanel && isCollapsed && (
|
|
235
|
-
<div
|
|
236
|
-
className="absolute left-[80px] top-0 z-10 h-full"
|
|
237
|
-
onMouseLeave={() => setShowPanel(false)}
|
|
238
|
-
>
|
|
239
|
-
<NavigationRailPanel
|
|
240
|
-
height="100%"
|
|
241
|
-
width={248}
|
|
242
|
-
showHeading={panelType === 'hover' && hoveredItem !== null}
|
|
243
|
-
heading={
|
|
244
|
-
panelType === 'hover' && hoveredItem
|
|
245
|
-
? {
|
|
246
|
-
label: hoveredItem.label,
|
|
247
|
-
iconName: 'cog-6-tooth',
|
|
248
|
-
showDescription: false,
|
|
249
|
-
showAction: false,
|
|
250
|
-
}
|
|
251
|
-
: undefined
|
|
252
|
-
}
|
|
253
|
-
showSearch={panelType === 'searcher'}
|
|
254
|
-
search={{
|
|
255
|
-
placeholder: finalLabels.searchPlaceholder,
|
|
256
|
-
}}
|
|
257
|
-
sections={
|
|
258
|
-
panelType === 'hover' && hoveredItem?.children
|
|
259
|
-
? [
|
|
260
|
-
{
|
|
261
|
-
items: hoveredItem.children.map((child) => ({
|
|
262
|
-
label: child.label,
|
|
263
|
-
icon: child.icon,
|
|
264
|
-
onClick: child.onClick,
|
|
265
|
-
disabled: child.disabled,
|
|
266
|
-
})),
|
|
267
|
-
},
|
|
268
|
-
]
|
|
269
|
-
: panelType === 'searcher'
|
|
270
|
-
? [
|
|
271
|
-
{
|
|
272
|
-
heading: finalLabels.recentSection,
|
|
273
|
-
items: [
|
|
274
|
-
{
|
|
275
|
-
label: 'Configuración',
|
|
276
|
-
icon: <MagnifyingGlassIcon className="size-4" />,
|
|
277
|
-
},
|
|
278
|
-
],
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
heading: finalLabels.frequentSection,
|
|
282
|
-
items: [
|
|
283
|
-
{
|
|
284
|
-
label: 'Item',
|
|
285
|
-
},
|
|
286
|
-
],
|
|
287
|
-
},
|
|
288
|
-
]
|
|
289
|
-
: []
|
|
290
|
-
}
|
|
291
|
-
/>
|
|
292
|
-
</div>
|
|
293
|
-
)}
|
|
294
|
-
</div>
|
|
295
|
-
);
|
|
296
|
-
}
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
NavigationRailCommercial.displayName = 'NavigationRailCommercial';
|
|
300
|
-
|
|
301
|
-
export default NavigationRailCommercial;
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Definición de un item de menú para el NavigationRailCommercial
|
|
5
|
-
*/
|
|
6
|
-
export interface NavigationRailCommercialMenuItem {
|
|
7
|
-
/**
|
|
8
|
-
* Identificador único del item
|
|
9
|
-
*/
|
|
10
|
-
id: string;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Etiqueta/texto del item (visible en modo expanded)
|
|
14
|
-
*/
|
|
15
|
-
label: string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Icono del item (16x16px recomendado)
|
|
19
|
-
*/
|
|
20
|
-
icon: ReactNode;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Si el item es colapsable (tiene submenu)
|
|
24
|
-
* @default false
|
|
25
|
-
*/
|
|
26
|
-
isCollapsible?: boolean;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Items hijos (solo si isCollapsible es true)
|
|
30
|
-
*/
|
|
31
|
-
children?: NavigationRailCommercialMenuItem[];
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Si el item colapsable está abierto por defecto (solo si isCollapsible es true)
|
|
35
|
-
* @default false
|
|
36
|
-
*/
|
|
37
|
-
defaultOpen?: boolean;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Si el item está seleccionado/activo
|
|
41
|
-
* @default false
|
|
42
|
-
*/
|
|
43
|
-
active?: boolean;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Si el item está deshabilitado
|
|
47
|
-
* @default false
|
|
48
|
-
*/
|
|
49
|
-
disabled?: boolean;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Callback cuando se hace click en el item
|
|
53
|
-
*/
|
|
54
|
-
onClick?: () => void;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Badge de notificación
|
|
58
|
-
* @default false
|
|
59
|
-
*/
|
|
60
|
-
badge?: boolean;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Contador de notificaciones (si badge es true)
|
|
64
|
-
*/
|
|
65
|
-
badgeCount?: number;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Props del componente NavigationRailCommercial
|
|
70
|
-
*
|
|
71
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6146-34487
|
|
72
|
-
*/
|
|
73
|
-
export interface NavigationRailCommercialProps {
|
|
74
|
-
/**
|
|
75
|
-
* Estado del rail:
|
|
76
|
-
* - `collapsed`: 80px width, solo iconos
|
|
77
|
-
* - `expanded`: 215px width, con labels
|
|
78
|
-
* - `hover`: muestra panel lateral con submenu (estado temporal)
|
|
79
|
-
* - `searcher`: muestra panel lateral con búsqueda (estado temporal)
|
|
80
|
-
* @default 'collapsed'
|
|
81
|
-
*/
|
|
82
|
-
state?: 'collapsed' | 'expanded' | 'hover' | 'searcher';
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Items de menú a mostrar en la barra
|
|
86
|
-
*/
|
|
87
|
-
items?: NavigationRailCommercialMenuItem[];
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Panel lateral que se muestra en estados hover/searcher
|
|
91
|
-
* Contiene el menú detallado del item seleccionado
|
|
92
|
-
*/
|
|
93
|
-
panelContent?: {
|
|
94
|
-
/**
|
|
95
|
-
* Título del panel (ej: "Administración")
|
|
96
|
-
*/
|
|
97
|
-
heading?: string;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Items del panel
|
|
101
|
-
*/
|
|
102
|
-
items?: NavigationRailCommercialMenuItem[];
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Callback cuando cambia el estado del rail
|
|
107
|
-
* @param state - nuevo estado
|
|
108
|
-
*/
|
|
109
|
-
onStateChange?: (state: NavigationRailCommercialProps['state']) => void;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Callback cuando se hace click en un item
|
|
113
|
-
* @param item - item clickeado
|
|
114
|
-
*/
|
|
115
|
-
onItemClick?: (item: NavigationRailCommercialMenuItem) => void;
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Callback cuando se hace hover en un item (para mostrar panel)
|
|
119
|
-
* @param item - item con hover
|
|
120
|
-
*/
|
|
121
|
-
onItemHover?: (item: NavigationRailCommercialMenuItem) => void;
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Labels de internacionalización
|
|
125
|
-
*/
|
|
126
|
-
labels?: {
|
|
127
|
-
/**
|
|
128
|
-
* Placeholder del input de búsqueda
|
|
129
|
-
* @default 'Buscar módulo'
|
|
130
|
-
*/
|
|
131
|
-
searchPlaceholder?: string;
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Label del botón colapsar
|
|
135
|
-
* @default 'Colapsar'
|
|
136
|
-
*/
|
|
137
|
-
collapseButton?: string;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Label sección recientes (panel búsqueda)
|
|
141
|
-
* @default 'Recientes'
|
|
142
|
-
*/
|
|
143
|
-
recentSection?: string;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Label sección opciones frecuentes (panel búsqueda)
|
|
147
|
-
* @default 'Opciones frecuentes'
|
|
148
|
-
*/
|
|
149
|
-
frequentSection?: string;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Clases CSS adicionales
|
|
154
|
-
*/
|
|
155
|
-
className?: string;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Si mostrar el botón de búsqueda (en modo collapsed)
|
|
159
|
-
* @default true
|
|
160
|
-
*/
|
|
161
|
-
showSearchButton?: boolean;
|
|
162
|
-
}
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
# NavigationRailCommercial
|
|
2
|
-
|
|
3
|
-
Componente de navegación lateral especializado para aplicaciones comerciales que combina `NavigationRailTypes` y `NavigationRailPanel` para proporcionar una experiencia de navegación completa con múltiples estados.
|
|
4
|
-
|
|
5
|
-
## Características
|
|
6
|
-
|
|
7
|
-
- **4 Estados**: collapsed, expanded, hover y searcher
|
|
8
|
-
- **Reutiliza componentes**: NavigationRailTypes y NavigationRailPanel
|
|
9
|
-
- **Dark mode completo**: Soporte total para modo oscuro
|
|
10
|
-
- **Responsive**: Se adapta según el viewport
|
|
11
|
-
- **Focus rings adaptativos**: Anillos de foco según el contexto
|
|
12
|
-
- **TypeScript estricto**: Tipos completos y seguros
|
|
13
|
-
- **Accesibilidad**: ARIA labels y navegación por teclado
|
|
14
|
-
|
|
15
|
-
## Estados del Componente
|
|
16
|
-
|
|
17
|
-
### 1. Collapsed (Colapsado)
|
|
18
|
-
- Ancho: 80px
|
|
19
|
-
- Solo muestra iconos
|
|
20
|
-
- Botón de búsqueda en la parte superior
|
|
21
|
-
- Al hacer hover en un item con submenú, muestra panel lateral
|
|
22
|
-
|
|
23
|
-
### 2. Expanded (Expandido)
|
|
24
|
-
- Ancho: 215px
|
|
25
|
-
- Muestra iconos y labels
|
|
26
|
-
- Input de búsqueda integrado en la parte superior
|
|
27
|
-
- Items colapsables con chevron down
|
|
28
|
-
|
|
29
|
-
### 3. Hover
|
|
30
|
-
- Estado temporal cuando se hace hover en un item con submenú
|
|
31
|
-
- Muestra panel lateral (248px) con los items hijos
|
|
32
|
-
- El panel desaparece cuando el mouse sale del área
|
|
33
|
-
|
|
34
|
-
### 4. Searcher (Búsqueda)
|
|
35
|
-
- Estado temporal cuando se hace click en el botón de búsqueda
|
|
36
|
-
- Muestra panel lateral con input de búsqueda
|
|
37
|
-
- Incluye sección de recientes y opciones frecuentes
|
|
38
|
-
|
|
39
|
-
## Instalación
|
|
40
|
-
|
|
41
|
-
Este componente está incluido en el paquete `siesa-ui-kit`.
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
npm install siesa-ui-kit
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Uso Básico
|
|
48
|
-
|
|
49
|
-
```tsx
|
|
50
|
-
import { NavigationRailCommercial } from 'siesa-ui-kit';
|
|
51
|
-
import {
|
|
52
|
-
Cog6ToothIcon,
|
|
53
|
-
ShoppingCartIcon,
|
|
54
|
-
CubeIcon,
|
|
55
|
-
DocumentIcon,
|
|
56
|
-
} from '@heroicons/react/24/outline';
|
|
57
|
-
|
|
58
|
-
const items = [
|
|
59
|
-
{
|
|
60
|
-
id: 'admin',
|
|
61
|
-
label: 'Administración',
|
|
62
|
-
icon: <Cog6ToothIcon className="size-4" />,
|
|
63
|
-
isCollapsible: true,
|
|
64
|
-
children: [
|
|
65
|
-
{ id: 'users', label: 'Usuarios' },
|
|
66
|
-
{ id: 'roles', label: 'Roles y Permisos' },
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
id: 'sales',
|
|
71
|
-
label: 'Ventas',
|
|
72
|
-
icon: <ShoppingCartIcon className="size-4" />,
|
|
73
|
-
},
|
|
74
|
-
];
|
|
75
|
-
|
|
76
|
-
function App() {
|
|
77
|
-
return (
|
|
78
|
-
<NavigationRailCommercial
|
|
79
|
-
state="collapsed"
|
|
80
|
-
items={items}
|
|
81
|
-
onItemClick={(item) => console.log('Clicked:', item.label)}
|
|
82
|
-
/>
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Con Control de Estado
|
|
88
|
-
|
|
89
|
-
```tsx
|
|
90
|
-
import { useState } from 'react';
|
|
91
|
-
import { NavigationRailCommercial } from 'siesa-ui-kit';
|
|
92
|
-
|
|
93
|
-
function App() {
|
|
94
|
-
const [state, setState] = useState('collapsed');
|
|
95
|
-
|
|
96
|
-
return (
|
|
97
|
-
<NavigationRailCommercial
|
|
98
|
-
state={state}
|
|
99
|
-
items={items}
|
|
100
|
-
onStateChange={setState}
|
|
101
|
-
onItemClick={(item) => {
|
|
102
|
-
console.log('Item clicked:', item.label);
|
|
103
|
-
// Navegar a la ruta correspondiente
|
|
104
|
-
}}
|
|
105
|
-
onItemHover={(item) => {
|
|
106
|
-
console.log('Item hovered:', item.label);
|
|
107
|
-
// Precargar datos del submenú si es necesario
|
|
108
|
-
}}
|
|
109
|
-
/>
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Props
|
|
115
|
-
|
|
116
|
-
### NavigationRailCommercialProps
|
|
117
|
-
|
|
118
|
-
| Prop | Tipo | Default | Descripción |
|
|
119
|
-
|------|------|---------|-------------|
|
|
120
|
-
| `state` | `'collapsed' \| 'expanded' \| 'hover' \| 'searcher'` | `'collapsed'` | Estado visual del componente |
|
|
121
|
-
| `items` | `NavigationRailCommercialMenuItem[]` | `[]` | Items de menú a mostrar |
|
|
122
|
-
| `panelContent` | `object` | - | Contenido del panel lateral (hover/searcher) |
|
|
123
|
-
| `onStateChange` | `(state) => void` | - | Callback cuando cambia el estado |
|
|
124
|
-
| `onItemClick` | `(item) => void` | - | Callback cuando se hace click en un item |
|
|
125
|
-
| `onItemHover` | `(item) => void` | - | Callback cuando se hace hover en un item |
|
|
126
|
-
| `labels` | `object` | - | Labels de internacionalización |
|
|
127
|
-
| `className` | `string` | - | Clases CSS adicionales |
|
|
128
|
-
| `showSearchButton` | `boolean` | `true` | Si mostrar el botón de búsqueda |
|
|
129
|
-
|
|
130
|
-
### NavigationRailCommercialMenuItem
|
|
131
|
-
|
|
132
|
-
| Prop | Tipo | Default | Descripción |
|
|
133
|
-
|------|------|---------|-------------|
|
|
134
|
-
| `id` | `string` | - | Identificador único del item |
|
|
135
|
-
| `label` | `string` | - | Etiqueta/texto del item |
|
|
136
|
-
| `icon` | `ReactNode` | - | Icono del item (16x16px) |
|
|
137
|
-
| `isCollapsible` | `boolean` | `false` | Si el item tiene submenú |
|
|
138
|
-
| `children` | `NavigationRailCommercialMenuItem[]` | - | Items hijos (si isCollapsible es true) |
|
|
139
|
-
| `active` | `boolean` | `false` | Si el item está seleccionado |
|
|
140
|
-
| `disabled` | `boolean` | `false` | Si el item está deshabilitado |
|
|
141
|
-
| `onClick` | `() => void` | - | Callback cuando se hace click |
|
|
142
|
-
| `badge` | `boolean` | `false` | Si mostrar badge de notificación |
|
|
143
|
-
| `badgeCount` | `number` | - | Contador de notificaciones |
|
|
144
|
-
|
|
145
|
-
## Ejemplos
|
|
146
|
-
|
|
147
|
-
### Con Items Activos
|
|
148
|
-
|
|
149
|
-
```tsx
|
|
150
|
-
<NavigationRailCommercial
|
|
151
|
-
state="collapsed"
|
|
152
|
-
items={items.map((item, index) => ({
|
|
153
|
-
...item,
|
|
154
|
-
active: index === 0, // Primer item activo
|
|
155
|
-
}))}
|
|
156
|
-
/>
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Con Badges de Notificación
|
|
160
|
-
|
|
161
|
-
```tsx
|
|
162
|
-
<NavigationRailCommercial
|
|
163
|
-
state="collapsed"
|
|
164
|
-
items={items.map((item, index) => ({
|
|
165
|
-
...item,
|
|
166
|
-
badge: index === 1,
|
|
167
|
-
badgeCount: 5,
|
|
168
|
-
}))}
|
|
169
|
-
/>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Con Internacionalización
|
|
173
|
-
|
|
174
|
-
```tsx
|
|
175
|
-
<NavigationRailCommercial
|
|
176
|
-
state="collapsed"
|
|
177
|
-
items={items}
|
|
178
|
-
labels={{
|
|
179
|
-
searchPlaceholder: 'Search module',
|
|
180
|
-
collapseButton: 'Collapse',
|
|
181
|
-
recentSection: 'Recent',
|
|
182
|
-
frequentSection: 'Frequent options',
|
|
183
|
-
}}
|
|
184
|
-
/>
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## Componentes Reutilizados
|
|
188
|
-
|
|
189
|
-
- **NavigationRailTypes**: Barra lateral principal con estados collapsed/expanded
|
|
190
|
-
- **NavigationRailPanel**: Panel lateral para hover y búsqueda
|
|
191
|
-
- **Button**: Botón de búsqueda
|
|
192
|
-
- **Input**: Input de búsqueda en el panel
|
|
193
|
-
- **Divider**: Separadores entre secciones
|
|
194
|
-
- **DropdownItemCollapsible**: Items colapsables en modo expanded
|
|
195
|
-
|
|
196
|
-
## Tokens de Color
|
|
197
|
-
|
|
198
|
-
### Light Mode
|
|
199
|
-
- Background rail: `bg-bg-primary` (#ffffff)
|
|
200
|
-
- Background panel: `bg-bg-primary` (#ffffff)
|
|
201
|
-
- Borders: `border-border-primary` (#e4e4e7)
|
|
202
|
-
- Text: `text-content-primary` (#18181b)
|
|
203
|
-
- Icons: `text-content-secondary` (#a1a1aa)
|
|
204
|
-
|
|
205
|
-
### Dark Mode
|
|
206
|
-
- Background rail: `dark:bg-dark-bg-primary` (#18181b)
|
|
207
|
-
- Background panel: `dark:bg-dark-bg-primary` (#18181b)
|
|
208
|
-
- Borders: `dark:border-dark-border-primary` (#71717a)
|
|
209
|
-
- Text: `dark:text-dark-content-primary` (#f4f4f5)
|
|
210
|
-
- Icons: `dark:text-content-secondary` (#a1a1aa)
|
|
211
|
-
|
|
212
|
-
## Mejores Prácticas
|
|
213
|
-
|
|
214
|
-
1. **Usa items colapsables para navegación jerárquica**
|
|
215
|
-
```tsx
|
|
216
|
-
{
|
|
217
|
-
id: 'admin',
|
|
218
|
-
label: 'Administración',
|
|
219
|
-
isCollapsible: true,
|
|
220
|
-
children: [/* subitems */],
|
|
221
|
-
}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
2. **Gestiona el estado externamente para control total**
|
|
225
|
-
```tsx
|
|
226
|
-
const [state, setState] = useState('collapsed');
|
|
227
|
-
<NavigationRailCommercial state={state} onStateChange={setState} />
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
3. **Usa badges para notificaciones importantes**
|
|
231
|
-
```tsx
|
|
232
|
-
{ id: 'orders', label: 'Pedidos', badge: true, badgeCount: 12 }
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
4. **Proporciona callbacks para tracking de eventos**
|
|
236
|
-
```tsx
|
|
237
|
-
onItemClick={(item) => analytics.track('nav_item_clicked', { item: item.id })}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
## Accesibilidad
|
|
241
|
-
|
|
242
|
-
- Navegación por teclado con Tab y Enter
|
|
243
|
-
- ARIA labels en todos los elementos interactivos
|
|
244
|
-
- Focus rings visibles y adaptativos
|
|
245
|
-
- Soporte completo para screen readers
|
|
246
|
-
|
|
247
|
-
## Referencias
|
|
248
|
-
|
|
249
|
-
- **Figma Design**: [Navigation Rail Commercial](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6146-34487)
|
|
250
|
-
- **Storybook**: Ver todas las variantes en Storybook
|
|
251
|
-
- **Documentación**: `docs/colors.md`, `docs/typography.md`, `docs/spacing.md`
|