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,170 +1,170 @@
|
|
|
1
|
-
import { forwardRef } from 'react';
|
|
2
|
-
import type { RadioProps } from './Radio.types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Radio - Componente de radio button del sistema de diseño Siesa
|
|
6
|
-
*
|
|
7
|
-
* Campo de selección única diseñado para cumplir con las especificaciones
|
|
8
|
-
* de Figma con soporte completo para dark mode y accesibilidad.
|
|
9
|
-
*
|
|
10
|
-
* Mejores prácticas implementadas:
|
|
11
|
-
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
12
|
-
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
13
|
-
* - Tokens de color consistentes con la documentación
|
|
14
|
-
* - Type safety con TypeScript estricto
|
|
15
|
-
* - Accesibilidad con keyboard navigation y ARIA
|
|
16
|
-
* - Inner shadow en estado checked según especificaciones Figma
|
|
17
|
-
*
|
|
18
|
-
* Estados soportados:
|
|
19
|
-
* - Default, Hover, Focus, Disabled
|
|
20
|
-
* - Checked / Unchecked
|
|
21
|
-
* - Label y description opcionales
|
|
22
|
-
*
|
|
23
|
-
* @see docs/colors.md - Sistema de colores
|
|
24
|
-
* @see docs/typography.md - Sistema tipográfico
|
|
25
|
-
* @see docs/spacing.md - Sistema de espaciado
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```tsx
|
|
29
|
-
* // Radio simple
|
|
30
|
-
* <Radio
|
|
31
|
-
* label="Allow tickets to be resold"
|
|
32
|
-
* description="Customers can resell or transfer their tickets"
|
|
33
|
-
* value="resell"
|
|
34
|
-
* name="ticketOptions"
|
|
35
|
-
* checked={true}
|
|
36
|
-
* onChange={(e) => console.log(e.target.checked)}
|
|
37
|
-
* />
|
|
38
|
-
*
|
|
39
|
-
* // Radio group
|
|
40
|
-
* <div>
|
|
41
|
-
* <Radio label="Option 1" name="group" value="1" checked={selected === "1"} onChange={handleChange} />
|
|
42
|
-
* <Radio label="Option 2" name="group" value="2" checked={selected === "2"} onChange={handleChange} />
|
|
43
|
-
* </div>
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export const Radio = forwardRef<HTMLInputElement, RadioProps>(
|
|
47
|
-
(
|
|
48
|
-
{
|
|
49
|
-
label,
|
|
50
|
-
description,
|
|
51
|
-
checked = false,
|
|
52
|
-
disabled = false,
|
|
53
|
-
className = '',
|
|
54
|
-
id,
|
|
55
|
-
onChange,
|
|
56
|
-
value,
|
|
57
|
-
name,
|
|
58
|
-
...props
|
|
59
|
-
},
|
|
60
|
-
ref
|
|
61
|
-
) => {
|
|
62
|
-
// Generar ID único si no se proporciona
|
|
63
|
-
const radioId = id || `radio-${Math.random().toString(36).substr(2, 9)}`;
|
|
64
|
-
|
|
65
|
-
// ===== CLASES BASE DEL RADIO BUTTON =====
|
|
66
|
-
const baseRadioClasses = `
|
|
67
|
-
w-4
|
|
68
|
-
h-4
|
|
69
|
-
rounded-full
|
|
70
|
-
border
|
|
71
|
-
border-border-primary
|
|
72
|
-
bg-bg-primary
|
|
73
|
-
transition-all
|
|
74
|
-
duration-150
|
|
75
|
-
flex
|
|
76
|
-
items-center
|
|
77
|
-
justify-center
|
|
78
|
-
dark:bg-dark-bg-primary
|
|
79
|
-
dark:border-dark-border-primary
|
|
80
|
-
`;
|
|
81
|
-
|
|
82
|
-
// ===== CLASES PARA ESTADOS INTERACTIVOS =====
|
|
83
|
-
const interactiveClasses = !disabled
|
|
84
|
-
? `
|
|
85
|
-
peer-hover:border-primary-custom-600
|
|
86
|
-
peer-focus:ring-2
|
|
87
|
-
peer-focus:ring-primary-custom-400
|
|
88
|
-
peer-focus:border-primary-custom-600
|
|
89
|
-
dark:peer-hover:border-dark-border-custom
|
|
90
|
-
dark:peer-focus:ring-dark-border-custom
|
|
91
|
-
dark:peer-focus:border-dark-border-custom
|
|
92
|
-
`
|
|
93
|
-
: `
|
|
94
|
-
opacity-50
|
|
95
|
-
cursor-not-allowed
|
|
96
|
-
`;
|
|
97
|
-
|
|
98
|
-
// ===== CLASES PARA CHECKED STATE =====
|
|
99
|
-
// Según Figma: bg #0e79fd, border #3c9bf6, inner shadow
|
|
100
|
-
const checkedClasses = checked
|
|
101
|
-
? `
|
|
102
|
-
!bg-primary-custom-600
|
|
103
|
-
!border-primary-inverse-border
|
|
104
|
-
shadow-
|
|
105
|
-
dark:!bg-dark-bg-inverse
|
|
106
|
-
dark:!border-dark-bg-inverse
|
|
107
|
-
`
|
|
108
|
-
: '';
|
|
109
|
-
|
|
110
|
-
return (
|
|
111
|
-
<div className={`flex gap-3 items-start ${className}`}>
|
|
112
|
-
{/* Radio Input Container */}
|
|
113
|
-
<div className="flex items-center justify-center h-5 w-4 shrink-0">
|
|
114
|
-
{/* Native Input (hidden but accessible) */}
|
|
115
|
-
<input
|
|
116
|
-
ref={ref}
|
|
117
|
-
type="radio"
|
|
118
|
-
id={radioId}
|
|
119
|
-
checked={checked}
|
|
120
|
-
disabled={disabled}
|
|
121
|
-
onChange={onChange}
|
|
122
|
-
value={value}
|
|
123
|
-
name={name}
|
|
124
|
-
className="peer sr-only"
|
|
125
|
-
{...props}
|
|
126
|
-
/>
|
|
127
|
-
|
|
128
|
-
{/* Custom Radio Visual */}
|
|
129
|
-
<label
|
|
130
|
-
htmlFor={radioId}
|
|
131
|
-
className={`
|
|
132
|
-
${baseRadioClasses}
|
|
133
|
-
${interactiveClasses}
|
|
134
|
-
${checkedClasses}
|
|
135
|
-
${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}
|
|
136
|
-
`.trim().replace(/\s+/g, ' ')}
|
|
137
|
-
>
|
|
138
|
-
{/* Inner Circle (checked state) - 6px white dot según Figma */}
|
|
139
|
-
{checked && (
|
|
140
|
-
<div className="w-1.5 h-1.5 bg-white rounded-full dark:bg-dark-content-inverse" />
|
|
141
|
-
)}
|
|
142
|
-
</label>
|
|
143
|
-
</div>
|
|
144
|
-
|
|
145
|
-
{/* Label and Description */}
|
|
146
|
-
{(label || description) && (
|
|
147
|
-
<label
|
|
148
|
-
htmlFor={radioId}
|
|
149
|
-
className={`flex-1 flex flex-col gap-1 text-sm leading-5 ${
|
|
150
|
-
disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'
|
|
151
|
-
}`}
|
|
152
|
-
>
|
|
153
|
-
{label && (
|
|
154
|
-
<span className="font-bold text-content-primary dark:text-dark-content-primary">
|
|
155
|
-
{label}
|
|
156
|
-
</span>
|
|
157
|
-
)}
|
|
158
|
-
{description && (
|
|
159
|
-
<span className="font-normal text-content-secondary dark:text-content-secondary">
|
|
160
|
-
{description}
|
|
161
|
-
</span>
|
|
162
|
-
)}
|
|
163
|
-
</label>
|
|
164
|
-
)}
|
|
165
|
-
</div>
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
Radio.displayName = 'Radio';
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import type { RadioProps } from './Radio.types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Radio - Componente de radio button del sistema de diseño Siesa
|
|
6
|
+
*
|
|
7
|
+
* Campo de selección única diseñado para cumplir con las especificaciones
|
|
8
|
+
* de Figma con soporte completo para dark mode y accesibilidad.
|
|
9
|
+
*
|
|
10
|
+
* Mejores prácticas implementadas:
|
|
11
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
12
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
13
|
+
* - Tokens de color consistentes con la documentación
|
|
14
|
+
* - Type safety con TypeScript estricto
|
|
15
|
+
* - Accesibilidad con keyboard navigation y ARIA
|
|
16
|
+
* - Inner shadow en estado checked según especificaciones Figma
|
|
17
|
+
*
|
|
18
|
+
* Estados soportados:
|
|
19
|
+
* - Default, Hover, Focus, Disabled
|
|
20
|
+
* - Checked / Unchecked
|
|
21
|
+
* - Label y description opcionales
|
|
22
|
+
*
|
|
23
|
+
* @see docs/colors.md - Sistema de colores
|
|
24
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
25
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* // Radio simple
|
|
30
|
+
* <Radio
|
|
31
|
+
* label="Allow tickets to be resold"
|
|
32
|
+
* description="Customers can resell or transfer their tickets"
|
|
33
|
+
* value="resell"
|
|
34
|
+
* name="ticketOptions"
|
|
35
|
+
* checked={true}
|
|
36
|
+
* onChange={(e) => console.log(e.target.checked)}
|
|
37
|
+
* />
|
|
38
|
+
*
|
|
39
|
+
* // Radio group
|
|
40
|
+
* <div>
|
|
41
|
+
* <Radio label="Option 1" name="group" value="1" checked={selected === "1"} onChange={handleChange} />
|
|
42
|
+
* <Radio label="Option 2" name="group" value="2" checked={selected === "2"} onChange={handleChange} />
|
|
43
|
+
* </div>
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export const Radio = forwardRef<HTMLInputElement, RadioProps>(
|
|
47
|
+
(
|
|
48
|
+
{
|
|
49
|
+
label,
|
|
50
|
+
description,
|
|
51
|
+
checked = false,
|
|
52
|
+
disabled = false,
|
|
53
|
+
className = '',
|
|
54
|
+
id,
|
|
55
|
+
onChange,
|
|
56
|
+
value,
|
|
57
|
+
name,
|
|
58
|
+
...props
|
|
59
|
+
},
|
|
60
|
+
ref
|
|
61
|
+
) => {
|
|
62
|
+
// Generar ID único si no se proporciona
|
|
63
|
+
const radioId = id || `radio-${Math.random().toString(36).substr(2, 9)}`;
|
|
64
|
+
|
|
65
|
+
// ===== CLASES BASE DEL RADIO BUTTON =====
|
|
66
|
+
const baseRadioClasses = `
|
|
67
|
+
w-4
|
|
68
|
+
h-4
|
|
69
|
+
rounded-full
|
|
70
|
+
border
|
|
71
|
+
border-border-primary
|
|
72
|
+
bg-bg-primary
|
|
73
|
+
transition-all
|
|
74
|
+
duration-150
|
|
75
|
+
flex
|
|
76
|
+
items-center
|
|
77
|
+
justify-center
|
|
78
|
+
dark:bg-dark-bg-primary
|
|
79
|
+
dark:border-dark-border-primary
|
|
80
|
+
`;
|
|
81
|
+
|
|
82
|
+
// ===== CLASES PARA ESTADOS INTERACTIVOS =====
|
|
83
|
+
const interactiveClasses = !disabled
|
|
84
|
+
? `
|
|
85
|
+
peer-hover:border-primary-custom-600
|
|
86
|
+
peer-focus:ring-2
|
|
87
|
+
peer-focus:ring-primary-custom-400
|
|
88
|
+
peer-focus:border-primary-custom-600
|
|
89
|
+
dark:peer-hover:border-dark-border-custom
|
|
90
|
+
dark:peer-focus:ring-dark-border-custom
|
|
91
|
+
dark:peer-focus:border-dark-border-custom
|
|
92
|
+
`
|
|
93
|
+
: `
|
|
94
|
+
opacity-50
|
|
95
|
+
cursor-not-allowed
|
|
96
|
+
`;
|
|
97
|
+
|
|
98
|
+
// ===== CLASES PARA CHECKED STATE =====
|
|
99
|
+
// Según Figma: bg #0e79fd, border #3c9bf6, inner shadow
|
|
100
|
+
const checkedClasses = checked
|
|
101
|
+
? `
|
|
102
|
+
!bg-primary-custom-600
|
|
103
|
+
!border-primary-inverse-border
|
|
104
|
+
shadow-[0px_2px_0px_0px_inset_rgba(255,255,255,0.15)]
|
|
105
|
+
dark:!bg-dark-bg-inverse
|
|
106
|
+
dark:!border-dark-bg-inverse
|
|
107
|
+
`
|
|
108
|
+
: '';
|
|
109
|
+
|
|
110
|
+
return (
|
|
111
|
+
<div className={`flex gap-3 items-start ${className}`}>
|
|
112
|
+
{/* Radio Input Container */}
|
|
113
|
+
<div className="flex items-center justify-center h-5 w-4 shrink-0">
|
|
114
|
+
{/* Native Input (hidden but accessible) */}
|
|
115
|
+
<input
|
|
116
|
+
ref={ref}
|
|
117
|
+
type="radio"
|
|
118
|
+
id={radioId}
|
|
119
|
+
checked={checked}
|
|
120
|
+
disabled={disabled}
|
|
121
|
+
onChange={onChange}
|
|
122
|
+
value={value}
|
|
123
|
+
name={name}
|
|
124
|
+
className="peer sr-only"
|
|
125
|
+
{...props}
|
|
126
|
+
/>
|
|
127
|
+
|
|
128
|
+
{/* Custom Radio Visual */}
|
|
129
|
+
<label
|
|
130
|
+
htmlFor={radioId}
|
|
131
|
+
className={`
|
|
132
|
+
${baseRadioClasses}
|
|
133
|
+
${interactiveClasses}
|
|
134
|
+
${checkedClasses}
|
|
135
|
+
${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}
|
|
136
|
+
`.trim().replace(/\s+/g, ' ')}
|
|
137
|
+
>
|
|
138
|
+
{/* Inner Circle (checked state) - 6px white dot según Figma */}
|
|
139
|
+
{checked && (
|
|
140
|
+
<div className="w-1.5 h-1.5 bg-white rounded-full dark:bg-dark-content-inverse" />
|
|
141
|
+
)}
|
|
142
|
+
</label>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
{/* Label and Description */}
|
|
146
|
+
{(label || description) && (
|
|
147
|
+
<label
|
|
148
|
+
htmlFor={radioId}
|
|
149
|
+
className={`flex-1 flex flex-col gap-1 text-sm leading-5 ${
|
|
150
|
+
disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'
|
|
151
|
+
}`}
|
|
152
|
+
>
|
|
153
|
+
{label && (
|
|
154
|
+
<span className="font-bold text-content-primary dark:text-dark-content-primary">
|
|
155
|
+
{label}
|
|
156
|
+
</span>
|
|
157
|
+
)}
|
|
158
|
+
{description && (
|
|
159
|
+
<span className="font-normal text-content-secondary dark:text-content-secondary">
|
|
160
|
+
{description}
|
|
161
|
+
</span>
|
|
162
|
+
)}
|
|
163
|
+
</label>
|
|
164
|
+
)}
|
|
165
|
+
</div>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
Radio.displayName = 'Radio';
|
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import type { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Estados visuales del Radio Button
|
|
5
|
-
*
|
|
6
|
-
* @see Radio.tsx - Implementación del componente
|
|
7
|
-
*/
|
|
8
|
-
export type RadioState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Props del componente Radio
|
|
12
|
-
*
|
|
13
|
-
* Extiende las props nativas de HTMLInputElement excepto 'type' y 'size'
|
|
14
|
-
* que están manejados internamente por el componente.
|
|
15
|
-
*
|
|
16
|
-
* @see docs/colors.md - Sistema de colores para estados
|
|
17
|
-
* @see docs/typography.md - Tipografía para labels y descriptions
|
|
18
|
-
* @see docs/spacing.md - Espaciado entre elementos
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* // Radio simple
|
|
23
|
-
* <Radio
|
|
24
|
-
* label="Accept terms"
|
|
25
|
-
* value="accept"
|
|
26
|
-
* name="terms"
|
|
27
|
-
* checked={accepted}
|
|
28
|
-
* onChange={(e) => setAccepted(e.target.checked)}
|
|
29
|
-
* />
|
|
30
|
-
*
|
|
31
|
-
* // Radio con description
|
|
32
|
-
* <Radio
|
|
33
|
-
* label="Allow tickets to be resold"
|
|
34
|
-
* description="Customers can resell or transfer their tickets"
|
|
35
|
-
* value="resell"
|
|
36
|
-
* name="ticketOptions"
|
|
37
|
-
* checked={resellAllowed}
|
|
38
|
-
* onChange={(e) => setResellAllowed(e.target.checked)}
|
|
39
|
-
* />
|
|
40
|
-
*
|
|
41
|
-
* // Radio disabled
|
|
42
|
-
* <Radio
|
|
43
|
-
* label="Premium feature"
|
|
44
|
-
* description="Upgrade to access this feature"
|
|
45
|
-
* disabled
|
|
46
|
-
* value="premium"
|
|
47
|
-
* name="features"
|
|
48
|
-
* />
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
52
|
-
/**
|
|
53
|
-
* Etiqueta del radio button
|
|
54
|
-
*
|
|
55
|
-
* Se muestra con tipografía Label Small (14px Bold) según sistema de diseño.
|
|
56
|
-
*
|
|
57
|
-
* @see docs/typography.md - Label Small (text-sm font-bold)
|
|
58
|
-
*/
|
|
59
|
-
label?: string;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Descripción debajo del label
|
|
63
|
-
*
|
|
64
|
-
* Se muestra con tipografía Paragraph Small (14px Regular) según sistema de diseño.
|
|
65
|
-
*
|
|
66
|
-
* @see docs/typography.md - Paragraph Small (text-sm font-normal)
|
|
67
|
-
*/
|
|
68
|
-
description?: string;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Si el radio está seleccionado
|
|
72
|
-
*
|
|
73
|
-
* Controla el estado checked del radio button. En grupos de radio buttons,
|
|
74
|
-
* solo uno puede estar checked a la vez.
|
|
75
|
-
*
|
|
76
|
-
* @default false
|
|
77
|
-
*/
|
|
78
|
-
checked?: boolean;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Valor del radio button (requerido para grupos)
|
|
82
|
-
*
|
|
83
|
-
* Identifica el valor único de este radio button dentro de un grupo.
|
|
84
|
-
* Es esencial para manejar la selección en grupos de radio buttons.
|
|
85
|
-
*/
|
|
86
|
-
value?: string | number;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Nombre del grupo de radio buttons
|
|
90
|
-
*
|
|
91
|
-
* Agrupa múltiples radio buttons para permitir selección única.
|
|
92
|
-
* Todos los radios con el mismo `name` pertenecen al mismo grupo.
|
|
93
|
-
*/
|
|
94
|
-
name?: string;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Clases CSS adicionales
|
|
98
|
-
*
|
|
99
|
-
* Permite extender los estilos del componente con clases de Tailwind CSS
|
|
100
|
-
* o clases personalizadas.
|
|
101
|
-
*/
|
|
102
|
-
className?: string;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Callback cuando el estado del radio cambia
|
|
106
|
-
*
|
|
107
|
-
* Se ejecuta cuando el usuario selecciona o deselecciona el radio button.
|
|
108
|
-
*
|
|
109
|
-
* @param event - Evento de cambio del input nativo
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* ```tsx
|
|
113
|
-
* <Radio
|
|
114
|
-
* onChange={(e) => {
|
|
115
|
-
* console.log('Checked:', e.target.checked);
|
|
116
|
-
* console.log('Value:', e.target.value);
|
|
117
|
-
* }}
|
|
118
|
-
* />
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
122
|
-
}
|
|
1
|
+
import type { InputHTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Estados visuales del Radio Button
|
|
5
|
+
*
|
|
6
|
+
* @see Radio.tsx - Implementación del componente
|
|
7
|
+
*/
|
|
8
|
+
export type RadioState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Props del componente Radio
|
|
12
|
+
*
|
|
13
|
+
* Extiende las props nativas de HTMLInputElement excepto 'type' y 'size'
|
|
14
|
+
* que están manejados internamente por el componente.
|
|
15
|
+
*
|
|
16
|
+
* @see docs/colors.md - Sistema de colores para estados
|
|
17
|
+
* @see docs/typography.md - Tipografía para labels y descriptions
|
|
18
|
+
* @see docs/spacing.md - Espaciado entre elementos
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* // Radio simple
|
|
23
|
+
* <Radio
|
|
24
|
+
* label="Accept terms"
|
|
25
|
+
* value="accept"
|
|
26
|
+
* name="terms"
|
|
27
|
+
* checked={accepted}
|
|
28
|
+
* onChange={(e) => setAccepted(e.target.checked)}
|
|
29
|
+
* />
|
|
30
|
+
*
|
|
31
|
+
* // Radio con description
|
|
32
|
+
* <Radio
|
|
33
|
+
* label="Allow tickets to be resold"
|
|
34
|
+
* description="Customers can resell or transfer their tickets"
|
|
35
|
+
* value="resell"
|
|
36
|
+
* name="ticketOptions"
|
|
37
|
+
* checked={resellAllowed}
|
|
38
|
+
* onChange={(e) => setResellAllowed(e.target.checked)}
|
|
39
|
+
* />
|
|
40
|
+
*
|
|
41
|
+
* // Radio disabled
|
|
42
|
+
* <Radio
|
|
43
|
+
* label="Premium feature"
|
|
44
|
+
* description="Upgrade to access this feature"
|
|
45
|
+
* disabled
|
|
46
|
+
* value="premium"
|
|
47
|
+
* name="features"
|
|
48
|
+
* />
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
52
|
+
/**
|
|
53
|
+
* Etiqueta del radio button
|
|
54
|
+
*
|
|
55
|
+
* Se muestra con tipografía Label Small (14px Bold) según sistema de diseño.
|
|
56
|
+
*
|
|
57
|
+
* @see docs/typography.md - Label Small (text-sm font-bold)
|
|
58
|
+
*/
|
|
59
|
+
label?: string;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Descripción debajo del label
|
|
63
|
+
*
|
|
64
|
+
* Se muestra con tipografía Paragraph Small (14px Regular) según sistema de diseño.
|
|
65
|
+
*
|
|
66
|
+
* @see docs/typography.md - Paragraph Small (text-sm font-normal)
|
|
67
|
+
*/
|
|
68
|
+
description?: string;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Si el radio está seleccionado
|
|
72
|
+
*
|
|
73
|
+
* Controla el estado checked del radio button. En grupos de radio buttons,
|
|
74
|
+
* solo uno puede estar checked a la vez.
|
|
75
|
+
*
|
|
76
|
+
* @default false
|
|
77
|
+
*/
|
|
78
|
+
checked?: boolean;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Valor del radio button (requerido para grupos)
|
|
82
|
+
*
|
|
83
|
+
* Identifica el valor único de este radio button dentro de un grupo.
|
|
84
|
+
* Es esencial para manejar la selección en grupos de radio buttons.
|
|
85
|
+
*/
|
|
86
|
+
value?: string | number;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Nombre del grupo de radio buttons
|
|
90
|
+
*
|
|
91
|
+
* Agrupa múltiples radio buttons para permitir selección única.
|
|
92
|
+
* Todos los radios con el mismo `name` pertenecen al mismo grupo.
|
|
93
|
+
*/
|
|
94
|
+
name?: string;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Clases CSS adicionales
|
|
98
|
+
*
|
|
99
|
+
* Permite extender los estilos del componente con clases de Tailwind CSS
|
|
100
|
+
* o clases personalizadas.
|
|
101
|
+
*/
|
|
102
|
+
className?: string;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Callback cuando el estado del radio cambia
|
|
106
|
+
*
|
|
107
|
+
* Se ejecuta cuando el usuario selecciona o deselecciona el radio button.
|
|
108
|
+
*
|
|
109
|
+
* @param event - Evento de cambio del input nativo
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```tsx
|
|
113
|
+
* <Radio
|
|
114
|
+
* onChange={(e) => {
|
|
115
|
+
* console.log('Checked:', e.target.checked);
|
|
116
|
+
* console.log('Value:', e.target.value);
|
|
117
|
+
* }}
|
|
118
|
+
* />
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
122
|
+
}
|