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,307 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
DropdownItemCollapsibleProps,
|
|
4
|
-
DropdownItemCollapsibleChildProps,
|
|
5
|
-
} from './DropdownItemCollapsible.types';
|
|
6
|
-
import { ChevronDownIcon } from './icons';
|
|
7
|
-
import { Badge } from '../Badge/Badge';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Componente DropdownItemCollapsible del sistema de diseño Siesa
|
|
11
|
-
*
|
|
12
|
-
* Item colapsable para uso dentro de Dropdowns que permite agrupar
|
|
13
|
-
* items relacionados en secciones expandibles.
|
|
14
|
-
*
|
|
15
|
-
* **Características:**
|
|
16
|
-
* - Soporte completo para expandir/colapsar
|
|
17
|
-
* - Iconos personalizables en header y children
|
|
18
|
-
* - Items anidados indentados automáticamente
|
|
19
|
-
* - Dark mode completo con inversión de colores
|
|
20
|
-
* - Estados: default, hover, active, disabled
|
|
21
|
-
* - Focus rings adaptativos
|
|
22
|
-
* - Animación suave de rotación del chevron
|
|
23
|
-
*
|
|
24
|
-
* **Estados visuales:**
|
|
25
|
-
* - `collapsed`: Muestra solo el header con chevron apuntando down
|
|
26
|
-
* - `expanded`: Muestra header y lista de items anidados
|
|
27
|
-
* - `disabled`: Opacidad 50%, sin interacción
|
|
28
|
-
* - `hover`: Fondo de hover sutil, color primario del icono
|
|
29
|
-
* - `active`: Item anidado seleccionado con fondo custom-primary
|
|
30
|
-
*
|
|
31
|
-
* **Espaciado según Figma:**
|
|
32
|
-
* - Header padding: px-4 py-2 (16px horizontal, 8px vertical)
|
|
33
|
-
* - Item anidado padding: pl-6 pr-4 py-2 (24px left, 16px right, 8px vertical)
|
|
34
|
-
* - Gap entre elementos: gap-3 (12px)
|
|
35
|
-
* - Gap interno (icon + text): gap-3 (12px)
|
|
36
|
-
* - Indent entre niveles: 8px adicional por nivel
|
|
37
|
-
* - Divisor: borde top de 1px con spacing-0.5 (2px) arriba
|
|
38
|
-
* - Sección heading: pt-3 pb-1 px-0 (12px top, 4px bottom, sin horizontal)
|
|
39
|
-
*
|
|
40
|
-
* **Tipografía:**
|
|
41
|
-
* - Header: Paragraph/Small (14px, Regular, line-height 20px) - text-content-primary
|
|
42
|
-
* - Items anidados: Paragraph/Small (14px, Regular, line-height 20px) - text-content-primary
|
|
43
|
-
* - Heading: Paragraph/Tiny (12px, Regular, line-height 16px) - text-content-tertiary
|
|
44
|
-
*
|
|
45
|
-
* **Colores (Light Mode):**
|
|
46
|
-
* - Header text: content-primary (#18181b)
|
|
47
|
-
* - Header icon: content-secondary (#a1a1aa)
|
|
48
|
-
* - Header hover: bg-background-custom-primary (#dbeefe)
|
|
49
|
-
* - Header text hover: content-custom-primary (#0e79fd)
|
|
50
|
-
* - Item text: content-primary (#18181b)
|
|
51
|
-
* - Item hover: bg-transparent (sin fondo)
|
|
52
|
-
* - Divider: border-border-primary (#e4e4e7)
|
|
53
|
-
* - Heading text: content-tertiary (#71717a)
|
|
54
|
-
*
|
|
55
|
-
* **Colores (Dark Mode):**
|
|
56
|
-
* - Header text: content-primary/dark (#fafafa)
|
|
57
|
-
* - Header icon: content-secondary/dark (#a1a1aa)
|
|
58
|
-
* - Header hover: bg-background-custom-primary/dark (#0e5ab0)
|
|
59
|
-
* - Header text hover: content-custom-primary/dark (#bfe2fe)
|
|
60
|
-
* - Item text: content-primary/dark (#fafafa)
|
|
61
|
-
* - Divider: border-border-primary/dark (#3f3f46)
|
|
62
|
-
* - Heading text: content-tertiary/dark (#a1a1aa)
|
|
63
|
-
*
|
|
64
|
-
* **Border radius:**
|
|
65
|
-
* - Todos los items: rounded-lg (8px)
|
|
66
|
-
*
|
|
67
|
-
* **Sombras:**
|
|
68
|
-
* - Ninguna (usado dentro de dropdowns)
|
|
69
|
-
*
|
|
70
|
-
* @see docs/colors.md - Sistema de colores
|
|
71
|
-
* @see docs/typography.md - Sistema tipográfico
|
|
72
|
-
* @see docs/spacing.md - Sistema de espaciado
|
|
73
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```tsx
|
|
77
|
-
* // Item colapsable simple
|
|
78
|
-
* <DropdownItemCollapsible
|
|
79
|
-
* label="Users"
|
|
80
|
-
* icon={<UserIcon />}
|
|
81
|
-
* children={[
|
|
82
|
-
* { label: "Active Users", icon: <CheckIcon /> },
|
|
83
|
-
* { label: "Inactive Users", icon: <CloseIcon /> },
|
|
84
|
-
* ]}
|
|
85
|
-
* />
|
|
86
|
-
*
|
|
87
|
-
* // Con encabezado de sección
|
|
88
|
-
* <DropdownItemCollapsible
|
|
89
|
-
* label="Customers"
|
|
90
|
-
* icon={<BuildingIcon />}
|
|
91
|
-
* showHeading={true}
|
|
92
|
-
* headingLabel="SECTION 1"
|
|
93
|
-
* children={[...]}
|
|
94
|
-
* />
|
|
95
|
-
*
|
|
96
|
-
* // Item no colapsable (actúa como botón normal)
|
|
97
|
-
* <DropdownItemCollapsible
|
|
98
|
-
* label="Single Item"
|
|
99
|
-
* icon={<StarIcon />}
|
|
100
|
-
* isCollapsible={false}
|
|
101
|
-
* onClick={() => console.log('clicked')}
|
|
102
|
-
* />
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
export const DropdownItemCollapsible: React.FC<DropdownItemCollapsibleProps> = ({
|
|
106
|
-
label,
|
|
107
|
-
icon,
|
|
108
|
-
children = [],
|
|
109
|
-
defaultOpen = false,
|
|
110
|
-
disabled = false,
|
|
111
|
-
onOpenChange,
|
|
112
|
-
onClick,
|
|
113
|
-
isCollapsible = children.length > 0,
|
|
114
|
-
showHeading = false,
|
|
115
|
-
headingLabel,
|
|
116
|
-
showDivider = true,
|
|
117
|
-
selected = false,
|
|
118
|
-
badge = false,
|
|
119
|
-
badgeCount,
|
|
120
|
-
badgeColor = 'red',
|
|
121
|
-
className = '',
|
|
122
|
-
}) => {
|
|
123
|
-
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
124
|
-
|
|
125
|
-
const handleToggle = () => {
|
|
126
|
-
if (disabled || !isCollapsible) return;
|
|
127
|
-
|
|
128
|
-
const newOpen = !isOpen;
|
|
129
|
-
setIsOpen(newOpen);
|
|
130
|
-
onOpenChange?.(newOpen);
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const handleHeaderClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
|
134
|
-
if (disabled) return;
|
|
135
|
-
|
|
136
|
-
if (isCollapsible) {
|
|
137
|
-
handleToggle();
|
|
138
|
-
} else {
|
|
139
|
-
onClick?.(e);
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
const handleChildClick = (child: DropdownItemCollapsibleChildProps) => (
|
|
144
|
-
e: React.MouseEvent<HTMLDivElement>,
|
|
145
|
-
) => {
|
|
146
|
-
if (child.disabled) return;
|
|
147
|
-
child.onClick?.(e);
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
return (
|
|
151
|
-
<div className={`flex flex-col gap-0.5 w-full ${className}`}>
|
|
152
|
-
{/* Section Heading */}
|
|
153
|
-
{showHeading && headingLabel && (
|
|
154
|
-
<div className="flex flex-col gap-0 items-start pb-1 pt-3 px-0 w-full">
|
|
155
|
-
<p className="font-['Inter:Regular',sans-serif] font-normal leading-4 not-italic text-xs text-content-tertiary dark:text-content-tertiary w-full">
|
|
156
|
-
{headingLabel}
|
|
157
|
-
</p>
|
|
158
|
-
</div>
|
|
159
|
-
)}
|
|
160
|
-
|
|
161
|
-
{/* Header Button */}
|
|
162
|
-
<button
|
|
163
|
-
onClick={handleHeaderClick}
|
|
164
|
-
disabled={disabled}
|
|
165
|
-
className={[
|
|
166
|
-
// Base
|
|
167
|
-
'flex items-center gap-3 px-4 py-2 w-full',
|
|
168
|
-
'rounded-lg cursor-pointer',
|
|
169
|
-
'transition-all duration-150',
|
|
170
|
-
|
|
171
|
-
// Colores y estados (Light Mode)
|
|
172
|
-
selected && !disabled && 'bg-primary-custom-100 text-primary-custom-600',
|
|
173
|
-
!selected && !disabled && 'text-content-primary',
|
|
174
|
-
!disabled && 'hover:bg-primary-custom-100',
|
|
175
|
-
!disabled && 'hover:text-primary-custom-600',
|
|
176
|
-
|
|
177
|
-
// Dark Mode
|
|
178
|
-
selected && !disabled && 'dark:bg-dark-bg-custom dark:text-dark-content-custom',
|
|
179
|
-
!selected && !disabled && 'dark:text-content-primary',
|
|
180
|
-
!disabled && 'dark:hover:bg-dark-bg-custom',
|
|
181
|
-
!disabled && 'dark:hover:text-dark-content-custom',
|
|
182
|
-
|
|
183
|
-
// Focus ring
|
|
184
|
-
!disabled && 'focus:outline-none',
|
|
185
|
-
!disabled && 'focus:ring-2',
|
|
186
|
-
!disabled && 'focus:ring-offset-2',
|
|
187
|
-
!disabled && 'focus:ring-primary-custom-400',
|
|
188
|
-
!disabled && 'focus:ring-offset-bg-primary',
|
|
189
|
-
!disabled && 'dark:focus:ring-offset-dark-bg-primary',
|
|
190
|
-
|
|
191
|
-
// Disabled
|
|
192
|
-
disabled && 'opacity-50',
|
|
193
|
-
disabled && 'cursor-not-allowed',
|
|
194
|
-
]
|
|
195
|
-
.filter(Boolean)
|
|
196
|
-
.join(' ')}
|
|
197
|
-
aria-expanded={isOpen && isCollapsible}
|
|
198
|
-
aria-disabled={disabled}
|
|
199
|
-
>
|
|
200
|
-
{/* Icon Wrapper */}
|
|
201
|
-
{icon && (
|
|
202
|
-
<div className="flex items-center justify-center w-4 h-4 shrink-0 text-content-secondary dark:text-content-secondary">
|
|
203
|
-
{icon}
|
|
204
|
-
</div>
|
|
205
|
-
)}
|
|
206
|
-
|
|
207
|
-
{/* Content Wrapper */}
|
|
208
|
-
<div className="flex flex-1 flex-col items-start justify-center gap-0.5">
|
|
209
|
-
<p className="font-['Inter:Regular',sans-serif] font-normal leading-5 not-italic text-sm text-left">
|
|
210
|
-
{label}
|
|
211
|
-
</p>
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
{/* Badge */}
|
|
215
|
-
{(badge || badgeCount) && (
|
|
216
|
-
<div className="flex items-center justify-center shrink-0">
|
|
217
|
-
{badgeCount ? (
|
|
218
|
-
<div className="flex items-center justify-center px-1.5 py-0.5 rounded-full bg-red-500 dark:bg-red-600 text-white text-xs font-bold min-w-6 h-6">
|
|
219
|
-
{badgeCount > 99 ? '99+' : badgeCount}
|
|
220
|
-
</div>
|
|
221
|
-
) : (
|
|
222
|
-
<div className="w-2 h-2 rounded-full bg-red-500 dark:bg-red-600 shrink-0" />
|
|
223
|
-
)}
|
|
224
|
-
</div>
|
|
225
|
-
)}
|
|
226
|
-
|
|
227
|
-
{/* Chevron (solo visible si es colapsable) */}
|
|
228
|
-
{isCollapsible && (
|
|
229
|
-
<div
|
|
230
|
-
className={[
|
|
231
|
-
'flex items-center justify-center w-4 h-4 shrink-0',
|
|
232
|
-
'text-content-secondary dark:text-content-secondary',
|
|
233
|
-
'transition-transform duration-200',
|
|
234
|
-
isOpen ? 'rotate-180' : 'rotate-0',
|
|
235
|
-
].join(' ')}
|
|
236
|
-
>
|
|
237
|
-
<ChevronDownIcon className="w-4 h-4" />
|
|
238
|
-
</div>
|
|
239
|
-
)}
|
|
240
|
-
</button>
|
|
241
|
-
|
|
242
|
-
{/* Divider */}
|
|
243
|
-
{showDivider && <div className="w-full h-px bg-border-primary dark:bg-dark-border-primary" />}
|
|
244
|
-
|
|
245
|
-
{/* Children Container (expanded) */}
|
|
246
|
-
{isOpen && isCollapsible && children.length > 0 && (
|
|
247
|
-
<div className="flex flex-col gap-0.5 w-full py-2 px-0">
|
|
248
|
-
{children.map((child, index) => (
|
|
249
|
-
<div
|
|
250
|
-
key={index}
|
|
251
|
-
onClick={handleChildClick(child)}
|
|
252
|
-
className={[
|
|
253
|
-
// Base
|
|
254
|
-
'flex gap-3 items-center pl-6 pr-4 py-2 w-full',
|
|
255
|
-
'rounded-lg cursor-pointer',
|
|
256
|
-
'transition-all duration-150',
|
|
257
|
-
|
|
258
|
-
// Colores y estados (Light Mode)
|
|
259
|
-
!child.disabled && 'text-content-primary',
|
|
260
|
-
!child.disabled && 'hover:bg-primary-custom-100',
|
|
261
|
-
!child.disabled && 'hover:text-primary-custom-600',
|
|
262
|
-
|
|
263
|
-
// Dark Mode
|
|
264
|
-
!child.disabled && 'dark:text-content-primary',
|
|
265
|
-
!child.disabled && 'dark:hover:bg-dark-bg-custom',
|
|
266
|
-
!child.disabled && 'dark:hover:text-dark-content-custom',
|
|
267
|
-
|
|
268
|
-
// Focus ring
|
|
269
|
-
!child.disabled && 'focus:outline-none',
|
|
270
|
-
!child.disabled && 'focus:ring-2',
|
|
271
|
-
!child.disabled && 'focus:ring-offset-2',
|
|
272
|
-
!child.disabled && 'focus:ring-primary-custom-400',
|
|
273
|
-
!child.disabled && 'focus:ring-offset-bg-primary',
|
|
274
|
-
!child.disabled && 'dark:focus:ring-offset-dark-bg-primary',
|
|
275
|
-
|
|
276
|
-
// Disabled
|
|
277
|
-
child.disabled && 'opacity-50',
|
|
278
|
-
child.disabled && 'cursor-not-allowed',
|
|
279
|
-
|
|
280
|
-
// Custom classes
|
|
281
|
-
child.className,
|
|
282
|
-
]
|
|
283
|
-
.filter(Boolean)
|
|
284
|
-
.join(' ')}
|
|
285
|
-
>
|
|
286
|
-
{/* Child Icon Wrapper */}
|
|
287
|
-
{child.icon && (
|
|
288
|
-
<div className="flex items-center justify-center w-4 h-4 shrink-0 text-content-secondary dark:text-content-secondary">
|
|
289
|
-
{child.icon}
|
|
290
|
-
</div>
|
|
291
|
-
)}
|
|
292
|
-
|
|
293
|
-
{/* Child Content Wrapper */}
|
|
294
|
-
<div className="flex flex-1 flex-col items-start justify-center gap-0.5">
|
|
295
|
-
<p className="font-['Inter:Regular',sans-serif] font-normal leading-5 not-italic text-sm text-left">
|
|
296
|
-
{child.label}
|
|
297
|
-
</p>
|
|
298
|
-
</div>
|
|
299
|
-
</div>
|
|
300
|
-
))}
|
|
301
|
-
</div>
|
|
302
|
-
)}
|
|
303
|
-
</div>
|
|
304
|
-
);
|
|
305
|
-
};
|
|
306
|
-
|
|
307
|
-
export default DropdownItemCollapsible;
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props del componente DropdownItemCollapsible
|
|
5
|
-
*
|
|
6
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374
|
|
7
|
-
*/
|
|
8
|
-
export interface DropdownItemCollapsibleProps {
|
|
9
|
-
/**
|
|
10
|
-
* Texto o contenido principal del item
|
|
11
|
-
* Ejemplo: "Users", "Customers", "Departments"
|
|
12
|
-
*/
|
|
13
|
-
label: string;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Icono a mostrar antes del texto (izquierda)
|
|
17
|
-
* Recomendado: 16x16px
|
|
18
|
-
*/
|
|
19
|
-
icon?: ReactNode;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Items anidados que se muestran cuando el item está expandido
|
|
23
|
-
* Cada item anidado tiene label e icono opcional
|
|
24
|
-
*/
|
|
25
|
-
children?: DropdownItemCollapsibleChildProps[];
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Si el item está expandido inicialmente
|
|
29
|
-
* @default false
|
|
30
|
-
*/
|
|
31
|
-
defaultOpen?: boolean;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Si el item está deshabilitado
|
|
35
|
-
* @default false
|
|
36
|
-
*/
|
|
37
|
-
disabled?: boolean;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Callback cuando el item se expande/contrae
|
|
41
|
-
* @param open - nuevo estado de expansión
|
|
42
|
-
*/
|
|
43
|
-
onOpenChange?: (open: boolean) => void;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Callback cuando se hace click en el item (sin expandir)
|
|
47
|
-
* Útil para items que actúan como botones normales
|
|
48
|
-
*/
|
|
49
|
-
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Si el item debería actuar como un botón normal sin colapsable
|
|
53
|
-
* @default false
|
|
54
|
-
*/
|
|
55
|
-
isCollapsible?: boolean;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Si mostrar un encabezado de sección antes del item
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
showHeading?: boolean;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Texto del encabezado de sección
|
|
65
|
-
* Se usa cuando showHeading es true
|
|
66
|
-
* Ejemplo: "Section Title"
|
|
67
|
-
*/
|
|
68
|
-
headingLabel?: string;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Si mostrar divisor después del item/encabezado
|
|
72
|
-
* @default true
|
|
73
|
-
*/
|
|
74
|
-
showDivider?: boolean;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Si el item está seleccionado (activo)
|
|
78
|
-
* Útil para NavigationRailTypes en modo expandido
|
|
79
|
-
* @default false
|
|
80
|
-
*/
|
|
81
|
-
selected?: boolean;
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Si mostrar un badge de notificación (dot rojo)
|
|
85
|
-
* @default false
|
|
86
|
-
*/
|
|
87
|
-
badge?: boolean;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Número a mostrar en el badge (máximo 99+)
|
|
91
|
-
* Si se proporciona, se muestra en lugar del dot rojo
|
|
92
|
-
*/
|
|
93
|
-
badgeCount?: number;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Color del badge ('red', 'blue', etc.)
|
|
97
|
-
* @default 'red'
|
|
98
|
-
*/
|
|
99
|
-
badgeColor?: 'red' | 'blue' | 'amber' | 'green' | 'purple';
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Clases CSS adicionales
|
|
103
|
-
*/
|
|
104
|
-
className?: string;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Props de items anidados dentro del colapsable
|
|
109
|
-
*/
|
|
110
|
-
export interface DropdownItemCollapsibleChildProps {
|
|
111
|
-
/**
|
|
112
|
-
* Texto del item anidado
|
|
113
|
-
*/
|
|
114
|
-
label: string;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Icono opcional del item anidado
|
|
118
|
-
*/
|
|
119
|
-
icon?: ReactNode;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Si el item anidado está deshabilitado
|
|
123
|
-
* @default false
|
|
124
|
-
*/
|
|
125
|
-
disabled?: boolean;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Callback cuando se hace click en el item anidado
|
|
129
|
-
*/
|
|
130
|
-
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Clases CSS adicionales
|
|
134
|
-
*/
|
|
135
|
-
className?: string;
|
|
136
|
-
}
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
# DropdownItemCollapsible
|
|
2
|
-
|
|
3
|
-
Item colapsable para uso dentro de Dropdowns que permite agrupar items relacionados en secciones expandibles.
|
|
4
|
-
|
|
5
|
-
## 🎯 Propósito
|
|
6
|
-
|
|
7
|
-
El componente `DropdownItemCollapsible` es un item especializado de dropdown que:
|
|
8
|
-
|
|
9
|
-
- Agrupa items relacionados en secciones expandibles
|
|
10
|
-
- Muestra/oculta items anidados con animación suave
|
|
11
|
-
- Mantiene jerarquía visual clara con indentación
|
|
12
|
-
- Soporta iconos personalizables
|
|
13
|
-
- Proporciona feedback visual completo (hover, focus, active, disabled)
|
|
14
|
-
- Implementa dark mode completo
|
|
15
|
-
|
|
16
|
-
## 📋 Uso
|
|
17
|
-
|
|
18
|
-
### Básico
|
|
19
|
-
|
|
20
|
-
```tsx
|
|
21
|
-
import { DropdownItemCollapsible } from '@/components/DropdownItemCollapsible';
|
|
22
|
-
import { UserIcon } from '@/components/DropdownItemCollapsible/icons';
|
|
23
|
-
|
|
24
|
-
<DropdownItemCollapsible
|
|
25
|
-
label="Users"
|
|
26
|
-
icon={<UserIcon />}
|
|
27
|
-
children={[
|
|
28
|
-
{ label: 'Active Users' },
|
|
29
|
-
{ label: 'Inactive Users' },
|
|
30
|
-
]}
|
|
31
|
-
/>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Con Encabezado de Sección
|
|
35
|
-
|
|
36
|
-
```tsx
|
|
37
|
-
<DropdownItemCollapsible
|
|
38
|
-
label="Customers"
|
|
39
|
-
icon={<CustomerIcon />}
|
|
40
|
-
showHeading={true}
|
|
41
|
-
headingLabel="SECTION 1"
|
|
42
|
-
children={[
|
|
43
|
-
{ label: 'Enterprise' },
|
|
44
|
-
{ label: 'SMB' },
|
|
45
|
-
{ label: 'Startup' },
|
|
46
|
-
]}
|
|
47
|
-
showDivider={true}
|
|
48
|
-
/>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Expandido por Defecto
|
|
52
|
-
|
|
53
|
-
```tsx
|
|
54
|
-
<DropdownItemCollapsible
|
|
55
|
-
label="Departments"
|
|
56
|
-
icon={<DepartmentIcon />}
|
|
57
|
-
defaultOpen={true}
|
|
58
|
-
children={[
|
|
59
|
-
{ label: 'Sales' },
|
|
60
|
-
{ label: 'Marketing' },
|
|
61
|
-
{ label: 'Engineering' },
|
|
62
|
-
]}
|
|
63
|
-
/>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Item Simple (No Colapsable)
|
|
67
|
-
|
|
68
|
-
```tsx
|
|
69
|
-
<DropdownItemCollapsible
|
|
70
|
-
label="Settings"
|
|
71
|
-
icon={<SettingsIcon />}
|
|
72
|
-
isCollapsible={false}
|
|
73
|
-
onClick={() => console.log('Settings clicked')}
|
|
74
|
-
/>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Con Callbacks
|
|
78
|
-
|
|
79
|
-
```tsx
|
|
80
|
-
<DropdownItemCollapsible
|
|
81
|
-
label="Actions"
|
|
82
|
-
children={[
|
|
83
|
-
{
|
|
84
|
-
label: 'Edit',
|
|
85
|
-
onClick: (e) => console.log('Edit clicked'),
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
label: 'Delete',
|
|
89
|
-
onClick: (e) => console.log('Delete clicked'),
|
|
90
|
-
},
|
|
91
|
-
]}
|
|
92
|
-
onOpenChange={(open) => console.log('Toggle:', open)}
|
|
93
|
-
/>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## 🎨 Props
|
|
97
|
-
|
|
98
|
-
### Interfaz `DropdownItemCollapsibleProps`
|
|
99
|
-
|
|
100
|
-
| Prop | Tipo | Defecto | Descripción |
|
|
101
|
-
|------|------|---------|-------------|
|
|
102
|
-
| `label` | `string` | **Requerido** | Texto principal del item |
|
|
103
|
-
| `icon` | `ReactNode` | `undefined` | Icono a mostrar antes del texto (16x16px recomendado) |
|
|
104
|
-
| `children` | `DropdownItemCollapsibleChildProps[]` | `[]` | Items anidados cuando está expandido |
|
|
105
|
-
| `defaultOpen` | `boolean` | `false` | Si el item está expandido inicialmente |
|
|
106
|
-
| `disabled` | `boolean` | `false` | Si el item está deshabilitado |
|
|
107
|
-
| `onOpenChange` | `(open: boolean) => void` | `undefined` | Callback cuando se expande/contrae |
|
|
108
|
-
| `onClick` | `(e: React.MouseEvent) => void` | `undefined` | Callback cuando se hace click (para items no colapsables) |
|
|
109
|
-
| `isCollapsible` | `boolean` | `true si children.length > 0` | Si el item puede expanderse/contraerse |
|
|
110
|
-
| `showHeading` | `boolean` | `false` | Si mostrar encabezado de sección |
|
|
111
|
-
| `headingLabel` | `string` | `undefined` | Texto del encabezado (se usa si showHeading es true) |
|
|
112
|
-
| `showDivider` | `boolean` | `true` | Si mostrar divisor después del item |
|
|
113
|
-
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
114
|
-
|
|
115
|
-
### Interfaz `DropdownItemCollapsibleChildProps`
|
|
116
|
-
|
|
117
|
-
| Prop | Tipo | Defecto | Descripción |
|
|
118
|
-
|------|------|---------|-------------|
|
|
119
|
-
| `label` | `string` | **Requerido** | Texto del item anidado |
|
|
120
|
-
| `icon` | `ReactNode` | `undefined` | Icono opcional (16x16px recomendado) |
|
|
121
|
-
| `disabled` | `boolean` | `false` | Si el item está deshabilitado |
|
|
122
|
-
| `onClick` | `(e: React.MouseEvent) => void` | `undefined` | Callback cuando se hace click |
|
|
123
|
-
| `className` | `string` | `''` | Clases CSS adicionales |
|
|
124
|
-
|
|
125
|
-
## 🎯 Estados
|
|
126
|
-
|
|
127
|
-
### Visual States
|
|
128
|
-
|
|
129
|
-
- **Default**: Colores base del sistema
|
|
130
|
-
- **Hover**: Fondo `background-custom-primary`, texto `content-custom-primary`
|
|
131
|
-
- **Focus**: Ring de 2px con offset (adaptive dark mode)
|
|
132
|
-
- **Active**: Animación scale-95 para feedback táctil
|
|
133
|
-
- **Disabled**: Opacidad 50%, sin interacción
|
|
134
|
-
|
|
135
|
-
### Colapsable States
|
|
136
|
-
|
|
137
|
-
- **Collapsed**: Solo muestra header, chevron apunta down
|
|
138
|
-
- **Expanded**: Muestra header + lista de items anidados
|
|
139
|
-
- **Chevron Animation**: Rotación suave de 180° al expandir/contraer
|
|
140
|
-
|
|
141
|
-
## 🌓 Dark Mode
|
|
142
|
-
|
|
143
|
-
El componente soporta dark mode completo:
|
|
144
|
-
|
|
145
|
-
| Elemento | Light | Dark |
|
|
146
|
-
|----------|-------|------|
|
|
147
|
-
| Header text | `content-primary` | `content-primary/dark` |
|
|
148
|
-
| Header icon | `content-secondary` | `content-secondary/dark` |
|
|
149
|
-
| Header hover | `bg-background-custom-primary` | `bg-background-custom-primary/dark` |
|
|
150
|
-
| Item text | `content-primary` | `content-primary/dark` |
|
|
151
|
-
| Divider | `border-border-primary` | `border-border-primary/dark` |
|
|
152
|
-
| Heading | `content-tertiary` | `content-tertiary/dark` |
|
|
153
|
-
| Focus ring offset | `background-primary` | `background-primary/dark` |
|
|
154
|
-
|
|
155
|
-
## 📐 Espaciado
|
|
156
|
-
|
|
157
|
-
Basado en especificaciones de Figma:
|
|
158
|
-
|
|
159
|
-
```
|
|
160
|
-
┌─────────────────────────────────────┐
|
|
161
|
-
│ Section Heading (pt-3 pb-1) │
|
|
162
|
-
├─────────────────────────────────────┤
|
|
163
|
-
│ ┌───────────────────────────────┐ │
|
|
164
|
-
│ │ 🎯 Header (px-4 py-2) │ │ gap-3
|
|
165
|
-
│ └───────────────────────────────┘ │
|
|
166
|
-
├─────────────────────────────────────┤
|
|
167
|
-
│ ┌───────────────────────────────┐ │
|
|
168
|
-
│ │ ├─ Item 1 (pl-6 pr-4 py-2) │ │ gap-0.5
|
|
169
|
-
│ │ ├─ Item 2 │ │
|
|
170
|
-
│ │ └─ Item 3 │ │
|
|
171
|
-
│ └───────────────────────────────┘ │
|
|
172
|
-
├─────────────────────────────────────┤
|
|
173
|
-
│ Divider (h-px, color: border-primary)│
|
|
174
|
-
└─────────────────────────────────────┘
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## 🔧 Personalización
|
|
178
|
-
|
|
179
|
-
### Con Tailwind CSS
|
|
180
|
-
|
|
181
|
-
```tsx
|
|
182
|
-
<DropdownItemCollapsible
|
|
183
|
-
label="Custom Styled"
|
|
184
|
-
className="my-custom-class"
|
|
185
|
-
children={[
|
|
186
|
-
{
|
|
187
|
-
label: "Item",
|
|
188
|
-
className: "custom-child-class"
|
|
189
|
-
}
|
|
190
|
-
]}
|
|
191
|
-
/>
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Iconos Personalizados
|
|
195
|
-
|
|
196
|
-
```tsx
|
|
197
|
-
import { MyCustomIcon } from '@/icons';
|
|
198
|
-
|
|
199
|
-
<DropdownItemCollapsible
|
|
200
|
-
label="Custom Icon"
|
|
201
|
-
icon={<MyCustomIcon className="w-4 h-4" />}
|
|
202
|
-
children={[
|
|
203
|
-
{
|
|
204
|
-
label: "Child",
|
|
205
|
-
icon={<AnotherIcon className="w-4 h-4" />}
|
|
206
|
-
}
|
|
207
|
-
]}
|
|
208
|
-
/>
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## 🎬 Transiciones
|
|
212
|
-
|
|
213
|
-
- **Chevron rotation**: 200ms ease-in-out
|
|
214
|
-
- **Color hover**: 150ms ease-in-out
|
|
215
|
-
- **Scale active**: Inmediato
|
|
216
|
-
|
|
217
|
-
## ♿ Accesibilidad
|
|
218
|
-
|
|
219
|
-
- `aria-expanded`: Indica si el item está expandido
|
|
220
|
-
- `aria-disabled`: Indica si el item está deshabilitado
|
|
221
|
-
- Soporte completo para navegación por teclado
|
|
222
|
-
- Focus rings visibles y adaptativos
|
|
223
|
-
- Colores con suficiente contraste (WCAG AA)
|
|
224
|
-
|
|
225
|
-
## 📚 Integración con Dropdown
|
|
226
|
-
|
|
227
|
-
Se diseñó para integrar perfectamente dentro del componente Dropdown:
|
|
228
|
-
|
|
229
|
-
```tsx
|
|
230
|
-
<Dropdown
|
|
231
|
-
items={[
|
|
232
|
-
{
|
|
233
|
-
children: (
|
|
234
|
-
<DropdownItemCollapsible
|
|
235
|
-
label="Users"
|
|
236
|
-
children={[...]}
|
|
237
|
-
/>
|
|
238
|
-
)
|
|
239
|
-
}
|
|
240
|
-
]}
|
|
241
|
-
/>
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## 🔗 Referencias
|
|
245
|
-
|
|
246
|
-
- **Figma**: [node-id=6135-34374](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=6135-34374)
|
|
247
|
-
- **Colors**: [docs/colors.md](../../docs/colors.md)
|
|
248
|
-
- **Typography**: [docs/typography.md](../../docs/typography.md)
|
|
249
|
-
- **Spacing**: [docs/spacing.md](../../docs/spacing.md)
|
|
250
|
-
- **Shadows**: [docs/shadows.md](../../docs/shadows.md)
|
|
251
|
-
|
|
252
|
-
## 📝 Historial de Cambios
|
|
253
|
-
|
|
254
|
-
### v1.0.0 (2025-12-23)
|
|
255
|
-
|
|
256
|
-
- ✅ Componente inicial creado
|
|
257
|
-
- ✅ Soporte completo para expandir/contraer
|
|
258
|
-
- ✅ Dark mode completo
|
|
259
|
-
- ✅ States: hover, focus, active, disabled
|
|
260
|
-
- ✅ Iconos personalizables
|
|
261
|
-
- ✅ Items anidados con indentación
|
|
262
|
-
- ✅ Animaciones suaves
|
|
263
|
-
- ✅ Stories Storybook completas
|
|
264
|
-
- ✅ Accesibilidad (ARIA labels)
|