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,145 +1,145 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { NotificationProps } from './Notification.types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Componente Notification del sistema de diseño Siesa
|
|
6
|
-
*
|
|
7
|
-
* Badge de notificación para indicar alertas, mensajes o notificaciones pendientes.
|
|
8
|
-
* Puede mostrar un punto simple o un contador numérico con límite automático a 99+.
|
|
9
|
-
*
|
|
10
|
-
* **Especificaciones de Figma:**
|
|
11
|
-
* - Badge con número: 27px × 13px (aprox), Label/XXSmall (10px Bold, line-height 12px)
|
|
12
|
-
* - Badge simple (dot): 13px × 13px
|
|
13
|
-
* - Color: `content-extensions-red` (#b91c1c) por defecto
|
|
14
|
-
* - Border radius: Pill (rounded-full)
|
|
15
|
-
* - Padding: 4px horizontal
|
|
16
|
-
*
|
|
17
|
-
* **Variantes:**
|
|
18
|
-
* - Sin count: Muestra punto circular (dot)
|
|
19
|
-
* - Con count: Muestra badge con número (máximo 99+)
|
|
20
|
-
*
|
|
21
|
-
* **Uso típico:**
|
|
22
|
-
* - Como overlay en iconos o botones
|
|
23
|
-
* - En elementos de menú o navegación
|
|
24
|
-
* - Standalone para indicar estado
|
|
25
|
-
*
|
|
26
|
-
* @see docs/colors.md - Sistema de colores (token content-extensions-red)
|
|
27
|
-
* @see docs/typography.md - Sistema tipográfico (Label/XXSmall)
|
|
28
|
-
* @see src/components/Button/Button.tsx - Referencia de badges en botones
|
|
29
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4310-22651
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```tsx
|
|
33
|
-
* // Badge simple (punto)
|
|
34
|
-
* <Notification />
|
|
35
|
-
*
|
|
36
|
-
* // Badge con número
|
|
37
|
-
* <Notification count={5} />
|
|
38
|
-
*
|
|
39
|
-
* // Badge con muchos (muestra 99+)
|
|
40
|
-
* <Notification count={150} />
|
|
41
|
-
*
|
|
42
|
-
* // Con color personalizado
|
|
43
|
-
* <Notification count={3} color="green" />
|
|
44
|
-
*
|
|
45
|
-
* // Como overlay en botón
|
|
46
|
-
* <button className="relative">
|
|
47
|
-
* <BellIcon />
|
|
48
|
-
* <Notification count={5} className="absolute -top-1 -right-1" />
|
|
49
|
-
* </button>
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export const Notification: React.FC<NotificationProps> = ({
|
|
53
|
-
count,
|
|
54
|
-
color = 'red',
|
|
55
|
-
className = '',
|
|
56
|
-
ariaLabel,
|
|
57
|
-
}) => {
|
|
58
|
-
// ===== MAPA DE COLORES =====
|
|
59
|
-
// Sistema de colores consistente con Button y Badge
|
|
60
|
-
const colorClasses: Record<string, { bg: string; text: string }> = {
|
|
61
|
-
zinc: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
62
|
-
red: { bg: 'bg-content-extensions-red', text: 'text-white' },
|
|
63
|
-
orange: { bg: 'bg-orange-700', text: 'text-white' },
|
|
64
|
-
amber: { bg: 'bg-amber-700', text: 'text-white' },
|
|
65
|
-
yellow: { bg: 'bg-yellow-700', text: 'text-white' },
|
|
66
|
-
lime: { bg: 'bg-lime-700', text: 'text-white' },
|
|
67
|
-
green: { bg: 'bg-green-700', text: 'text-white' },
|
|
68
|
-
emerald: { bg: 'bg-emerald-700', text: 'text-white' },
|
|
69
|
-
teal: { bg: 'bg-teal-700', text: 'text-white' },
|
|
70
|
-
cyan: { bg: 'bg-cyan-700', text: 'text-white' },
|
|
71
|
-
sky: { bg: 'bg-sky-700', text: 'text-white' },
|
|
72
|
-
blue: { bg: 'bg-blue-700', text: 'text-white' },
|
|
73
|
-
indigo: { bg: 'bg-indigo-700', text: 'text-white' },
|
|
74
|
-
violet: { bg: 'bg-violet-700', text: 'text-white' },
|
|
75
|
-
purple: { bg: 'bg-purple-700', text: 'text-white' },
|
|
76
|
-
fuchsia: { bg: 'bg-fuchsia-700', text: 'text-white' },
|
|
77
|
-
pink: { bg: 'bg-pink-700', text: 'text-white' },
|
|
78
|
-
rose: { bg: 'bg-rose-700', text: 'text-white' },
|
|
79
|
-
primary: { bg: 'bg-primary-custom-600', text: 'text-white' },
|
|
80
|
-
secondary: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
81
|
-
tertiary: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const colors = colorClasses[color] || colorClasses.red;
|
|
85
|
-
|
|
86
|
-
// ===== ARIA LABEL DINÁMICO =====
|
|
87
|
-
const dynamicAriaLabel = ariaLabel ||
|
|
88
|
-
(count !== undefined && count > 0
|
|
89
|
-
? `${count} notificaci${count === 1 ? 'ón' : 'ones'}`
|
|
90
|
-
: 'Notificación pendiente');
|
|
91
|
-
|
|
92
|
-
// ===== BADGE CON NÚMERO =====
|
|
93
|
-
if (count !== undefined && count > 0) {
|
|
94
|
-
const displayCount = count > 99 ? '99+' : count.toString();
|
|
95
|
-
|
|
96
|
-
return (
|
|
97
|
-
<span
|
|
98
|
-
className={`
|
|
99
|
-
inline-flex
|
|
100
|
-
items-center
|
|
101
|
-
justify-center
|
|
102
|
-
min-w-[16px]
|
|
103
|
-
h-4
|
|
104
|
-
px-1
|
|
105
|
-
rounded-full
|
|
106
|
-
text-[10px]
|
|
107
|
-
font-bold
|
|
108
|
-
leading-none
|
|
109
|
-
${colors.bg}
|
|
110
|
-
${colors.text}
|
|
111
|
-
pointer-events-none
|
|
112
|
-
dark:${colors.bg}
|
|
113
|
-
dark:${colors.text}
|
|
114
|
-
${className}
|
|
115
|
-
`
|
|
116
|
-
.trim()
|
|
117
|
-
.replace(/\s+/g, ' ')}
|
|
118
|
-
role="status"
|
|
119
|
-
aria-label={dynamicAriaLabel}
|
|
120
|
-
>
|
|
121
|
-
{displayCount}
|
|
122
|
-
</span>
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// ===== BADGE SIMPLE (DOT) =====
|
|
127
|
-
return (
|
|
128
|
-
<span
|
|
129
|
-
className={`
|
|
130
|
-
inline-block
|
|
131
|
-
w-2
|
|
132
|
-
h-2
|
|
133
|
-
rounded-full
|
|
134
|
-
${colors.bg}
|
|
135
|
-
pointer-events-none
|
|
136
|
-
dark:${colors.bg}
|
|
137
|
-
${className}
|
|
138
|
-
`
|
|
139
|
-
.trim()
|
|
140
|
-
.replace(/\s+/g, ' ')}
|
|
141
|
-
role="status"
|
|
142
|
-
aria-label={dynamicAriaLabel}
|
|
143
|
-
/>
|
|
144
|
-
);
|
|
145
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { NotificationProps } from './Notification.types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Componente Notification del sistema de diseño Siesa
|
|
6
|
+
*
|
|
7
|
+
* Badge de notificación para indicar alertas, mensajes o notificaciones pendientes.
|
|
8
|
+
* Puede mostrar un punto simple o un contador numérico con límite automático a 99+.
|
|
9
|
+
*
|
|
10
|
+
* **Especificaciones de Figma:**
|
|
11
|
+
* - Badge con número: 27px × 13px (aprox), Label/XXSmall (10px Bold, line-height 12px)
|
|
12
|
+
* - Badge simple (dot): 13px × 13px
|
|
13
|
+
* - Color: `content-extensions-red` (#b91c1c) por defecto
|
|
14
|
+
* - Border radius: Pill (rounded-full)
|
|
15
|
+
* - Padding: 4px horizontal
|
|
16
|
+
*
|
|
17
|
+
* **Variantes:**
|
|
18
|
+
* - Sin count: Muestra punto circular (dot)
|
|
19
|
+
* - Con count: Muestra badge con número (máximo 99+)
|
|
20
|
+
*
|
|
21
|
+
* **Uso típico:**
|
|
22
|
+
* - Como overlay en iconos o botones
|
|
23
|
+
* - En elementos de menú o navegación
|
|
24
|
+
* - Standalone para indicar estado
|
|
25
|
+
*
|
|
26
|
+
* @see docs/colors.md - Sistema de colores (token content-extensions-red)
|
|
27
|
+
* @see docs/typography.md - Sistema tipográfico (Label/XXSmall)
|
|
28
|
+
* @see src/components/Button/Button.tsx - Referencia de badges en botones
|
|
29
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4310-22651
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* // Badge simple (punto)
|
|
34
|
+
* <Notification />
|
|
35
|
+
*
|
|
36
|
+
* // Badge con número
|
|
37
|
+
* <Notification count={5} />
|
|
38
|
+
*
|
|
39
|
+
* // Badge con muchos (muestra 99+)
|
|
40
|
+
* <Notification count={150} />
|
|
41
|
+
*
|
|
42
|
+
* // Con color personalizado
|
|
43
|
+
* <Notification count={3} color="green" />
|
|
44
|
+
*
|
|
45
|
+
* // Como overlay en botón
|
|
46
|
+
* <button className="relative">
|
|
47
|
+
* <BellIcon />
|
|
48
|
+
* <Notification count={5} className="absolute -top-1 -right-1" />
|
|
49
|
+
* </button>
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export const Notification: React.FC<NotificationProps> = ({
|
|
53
|
+
count,
|
|
54
|
+
color = 'red',
|
|
55
|
+
className = '',
|
|
56
|
+
ariaLabel,
|
|
57
|
+
}) => {
|
|
58
|
+
// ===== MAPA DE COLORES =====
|
|
59
|
+
// Sistema de colores consistente con Button y Badge
|
|
60
|
+
const colorClasses: Record<string, { bg: string; text: string }> = {
|
|
61
|
+
zinc: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
62
|
+
red: { bg: 'bg-content-extensions-red', text: 'text-white' },
|
|
63
|
+
orange: { bg: 'bg-orange-700', text: 'text-white' },
|
|
64
|
+
amber: { bg: 'bg-amber-700', text: 'text-white' },
|
|
65
|
+
yellow: { bg: 'bg-yellow-700', text: 'text-white' },
|
|
66
|
+
lime: { bg: 'bg-lime-700', text: 'text-white' },
|
|
67
|
+
green: { bg: 'bg-green-700', text: 'text-white' },
|
|
68
|
+
emerald: { bg: 'bg-emerald-700', text: 'text-white' },
|
|
69
|
+
teal: { bg: 'bg-teal-700', text: 'text-white' },
|
|
70
|
+
cyan: { bg: 'bg-cyan-700', text: 'text-white' },
|
|
71
|
+
sky: { bg: 'bg-sky-700', text: 'text-white' },
|
|
72
|
+
blue: { bg: 'bg-blue-700', text: 'text-white' },
|
|
73
|
+
indigo: { bg: 'bg-indigo-700', text: 'text-white' },
|
|
74
|
+
violet: { bg: 'bg-violet-700', text: 'text-white' },
|
|
75
|
+
purple: { bg: 'bg-purple-700', text: 'text-white' },
|
|
76
|
+
fuchsia: { bg: 'bg-fuchsia-700', text: 'text-white' },
|
|
77
|
+
pink: { bg: 'bg-pink-700', text: 'text-white' },
|
|
78
|
+
rose: { bg: 'bg-rose-700', text: 'text-white' },
|
|
79
|
+
primary: { bg: 'bg-primary-custom-600', text: 'text-white' },
|
|
80
|
+
secondary: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
81
|
+
tertiary: { bg: 'bg-zinc-600', text: 'text-white' },
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const colors = colorClasses[color] || colorClasses.red;
|
|
85
|
+
|
|
86
|
+
// ===== ARIA LABEL DINÁMICO =====
|
|
87
|
+
const dynamicAriaLabel = ariaLabel ||
|
|
88
|
+
(count !== undefined && count > 0
|
|
89
|
+
? `${count} notificaci${count === 1 ? 'ón' : 'ones'}`
|
|
90
|
+
: 'Notificación pendiente');
|
|
91
|
+
|
|
92
|
+
// ===== BADGE CON NÚMERO =====
|
|
93
|
+
if (count !== undefined && count > 0) {
|
|
94
|
+
const displayCount = count > 99 ? '99+' : count.toString();
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<span
|
|
98
|
+
className={`
|
|
99
|
+
inline-flex
|
|
100
|
+
items-center
|
|
101
|
+
justify-center
|
|
102
|
+
min-w-[16px]
|
|
103
|
+
h-4
|
|
104
|
+
px-1
|
|
105
|
+
rounded-full
|
|
106
|
+
text-[10px]
|
|
107
|
+
font-bold
|
|
108
|
+
leading-none
|
|
109
|
+
${colors.bg}
|
|
110
|
+
${colors.text}
|
|
111
|
+
pointer-events-none
|
|
112
|
+
dark:${colors.bg}
|
|
113
|
+
dark:${colors.text}
|
|
114
|
+
${className}
|
|
115
|
+
`
|
|
116
|
+
.trim()
|
|
117
|
+
.replace(/\s+/g, ' ')}
|
|
118
|
+
role="status"
|
|
119
|
+
aria-label={dynamicAriaLabel}
|
|
120
|
+
>
|
|
121
|
+
{displayCount}
|
|
122
|
+
</span>
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// ===== BADGE SIMPLE (DOT) =====
|
|
127
|
+
return (
|
|
128
|
+
<span
|
|
129
|
+
className={`
|
|
130
|
+
inline-block
|
|
131
|
+
w-2
|
|
132
|
+
h-2
|
|
133
|
+
rounded-full
|
|
134
|
+
${colors.bg}
|
|
135
|
+
pointer-events-none
|
|
136
|
+
dark:${colors.bg}
|
|
137
|
+
${className}
|
|
138
|
+
`
|
|
139
|
+
.trim()
|
|
140
|
+
.replace(/\s+/g, ' ')}
|
|
141
|
+
role="status"
|
|
142
|
+
aria-label={dynamicAriaLabel}
|
|
143
|
+
/>
|
|
144
|
+
);
|
|
145
|
+
};
|
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props del componente Notification
|
|
3
|
-
*
|
|
4
|
-
* Badge de notificación para mostrar alertas, mensajes o notificaciones pendientes.
|
|
5
|
-
* Alineado pixel-perfect con el diseño de Figma.
|
|
6
|
-
*
|
|
7
|
-
* @see src/components/Notification/Notification.tsx - Implementación del componente
|
|
8
|
-
* @see docs/colors.md - Sistema de colores (token content-extensions-red)
|
|
9
|
-
* @see docs/typography.md - Sistema tipográfico (Label/XXSmall)
|
|
10
|
-
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4310-22651
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```tsx
|
|
14
|
-
* // Badge simple (punto)
|
|
15
|
-
* const simpleProps: NotificationProps = {};
|
|
16
|
-
*
|
|
17
|
-
* // Badge con número
|
|
18
|
-
* const withCountProps: NotificationProps = {
|
|
19
|
-
* count: 5,
|
|
20
|
-
* color: 'red',
|
|
21
|
-
* };
|
|
22
|
-
*
|
|
23
|
-
* // Como overlay
|
|
24
|
-
* <button className="relative">
|
|
25
|
-
* <Icon />
|
|
26
|
-
* <Notification count={3} className="absolute -top-1 -right-1" />
|
|
27
|
-
* </button>
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export interface NotificationProps {
|
|
31
|
-
/**
|
|
32
|
-
* Número de notificaciones a mostrar
|
|
33
|
-
*
|
|
34
|
-
* **Comportamiento:**
|
|
35
|
-
* - `undefined`: Muestra badge simple (punto rojo de 8px)
|
|
36
|
-
* - `1-99`: Muestra el número exacto en el badge
|
|
37
|
-
* - `100+`: Muestra "99+" en el badge
|
|
38
|
-
* - `0` o menor: Muestra badge simple (punto)
|
|
39
|
-
*
|
|
40
|
-
* **Nota:** El badge ajusta su ancho automáticamente según el contenido,
|
|
41
|
-
* con un mínimo de 16px y padding de 4px horizontal.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```tsx
|
|
45
|
-
* <Notification /> // Punto rojo simple
|
|
46
|
-
* <Notification count={5} /> // Muestra "5"
|
|
47
|
-
* <Notification count={99} /> // Muestra "99"
|
|
48
|
-
* <Notification count={150} /> // Muestra "99+"
|
|
49
|
-
* <Notification count={0} /> // Punto rojo simple
|
|
50
|
-
* ```
|
|
51
|
-
*
|
|
52
|
-
* @see src/components/Notification/Notification.tsx:93-123 - Renderizado con número
|
|
53
|
-
*/
|
|
54
|
-
count?: number;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Color del badge
|
|
58
|
-
*
|
|
59
|
-
* Define el color de fondo del badge. Permite personalizar según el contexto
|
|
60
|
-
* o tipo de notificación.
|
|
61
|
-
*
|
|
62
|
-
* **Colores disponibles:**
|
|
63
|
-
* - `red` (default): Notificaciones de error, alertas críticas
|
|
64
|
-
* - `orange`: Advertencias importantes
|
|
65
|
-
* - `yellow`: Avisos, atención requerida
|
|
66
|
-
* - `green`: Notificaciones positivas, éxito
|
|
67
|
-
* - `blue`: Información general
|
|
68
|
-
* - `purple`: Notificaciones especiales o premium
|
|
69
|
-
* - `zinc`: Notificaciones neutras
|
|
70
|
-
* - Y 15+ colores adicionales de Tailwind
|
|
71
|
-
*
|
|
72
|
-
* **Nota:** El texto siempre será blanco para mantener contraste adecuado.
|
|
73
|
-
*
|
|
74
|
-
* @default 'red'
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```tsx
|
|
78
|
-
* <Notification count={5} color="red" /> // Error/Crítico
|
|
79
|
-
* <Notification count={2} color="orange" /> // Advertencia
|
|
80
|
-
* <Notification count={8} color="green" /> // Éxito
|
|
81
|
-
* <Notification count={3} color="blue" /> // Info
|
|
82
|
-
* <Notification count={1} color="purple" /> // Especial
|
|
83
|
-
* ```
|
|
84
|
-
*
|
|
85
|
-
* @see src/components/Button/Button.tsx:220-244 - Referencia de colores
|
|
86
|
-
*/
|
|
87
|
-
color?: 'zinc' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' |
|
|
88
|
-
'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' |
|
|
89
|
-
'purple' | 'fuchsia' | 'pink' | 'rose' | 'primary' | 'secondary' | 'tertiary';
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Clases CSS adicionales para posicionamiento o personalización
|
|
93
|
-
*
|
|
94
|
-
* Útil para posicionar el badge como overlay usando absolute positioning.
|
|
95
|
-
*
|
|
96
|
-
* **Advertencia:** Evita sobrescribir tamaños, colores o formas core del badge.
|
|
97
|
-
* Usa solo para posicionamiento, márgenes o efectos adicionales.
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
* ```tsx
|
|
101
|
-
* // Como overlay en botón
|
|
102
|
-
* <button className="relative">
|
|
103
|
-
* <BellIcon />
|
|
104
|
-
* <Notification count={5} className="absolute -top-1 -right-1" />
|
|
105
|
-
* </button>
|
|
106
|
-
*
|
|
107
|
-
* // Con margen personalizado
|
|
108
|
-
* <Notification count={3} className="ml-2" />
|
|
109
|
-
*
|
|
110
|
-
* // Con sombra adicional
|
|
111
|
-
* <Notification count={7} className="shadow-lg" />
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
className?: string;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Label de accesibilidad (ARIA) personalizado
|
|
118
|
-
*
|
|
119
|
-
* Si no se proporciona, se genera automáticamente:
|
|
120
|
-
* - Con count: "{count} notificación(es)"
|
|
121
|
-
* - Sin count: "Notificación pendiente"
|
|
122
|
-
*
|
|
123
|
-
* **Mejores prácticas:**
|
|
124
|
-
* - Describe el tipo de notificación si es específico
|
|
125
|
-
* - Incluye contexto relevante para screen readers
|
|
126
|
-
* - Mantén el texto conciso pero descriptivo
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
* ```tsx
|
|
130
|
-
* // Auto-generado (recomendado)
|
|
131
|
-
* <Notification count={5} />
|
|
132
|
-
* // → aria-label="5 notificaciones"
|
|
133
|
-
*
|
|
134
|
-
* // Personalizado
|
|
135
|
-
* <Notification count={3} ariaLabel="3 mensajes no leídos" />
|
|
136
|
-
* <Notification ariaLabel="Nueva alerta de seguridad" />
|
|
137
|
-
* ```
|
|
138
|
-
*
|
|
139
|
-
* @see https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html
|
|
140
|
-
*/
|
|
141
|
-
ariaLabel?: string;
|
|
142
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Props del componente Notification
|
|
3
|
+
*
|
|
4
|
+
* Badge de notificación para mostrar alertas, mensajes o notificaciones pendientes.
|
|
5
|
+
* Alineado pixel-perfect con el diseño de Figma.
|
|
6
|
+
*
|
|
7
|
+
* @see src/components/Notification/Notification.tsx - Implementación del componente
|
|
8
|
+
* @see docs/colors.md - Sistema de colores (token content-extensions-red)
|
|
9
|
+
* @see docs/typography.md - Sistema tipográfico (Label/XXSmall)
|
|
10
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4310-22651
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Badge simple (punto)
|
|
15
|
+
* const simpleProps: NotificationProps = {};
|
|
16
|
+
*
|
|
17
|
+
* // Badge con número
|
|
18
|
+
* const withCountProps: NotificationProps = {
|
|
19
|
+
* count: 5,
|
|
20
|
+
* color: 'red',
|
|
21
|
+
* };
|
|
22
|
+
*
|
|
23
|
+
* // Como overlay
|
|
24
|
+
* <button className="relative">
|
|
25
|
+
* <Icon />
|
|
26
|
+
* <Notification count={3} className="absolute -top-1 -right-1" />
|
|
27
|
+
* </button>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export interface NotificationProps {
|
|
31
|
+
/**
|
|
32
|
+
* Número de notificaciones a mostrar
|
|
33
|
+
*
|
|
34
|
+
* **Comportamiento:**
|
|
35
|
+
* - `undefined`: Muestra badge simple (punto rojo de 8px)
|
|
36
|
+
* - `1-99`: Muestra el número exacto en el badge
|
|
37
|
+
* - `100+`: Muestra "99+" en el badge
|
|
38
|
+
* - `0` o menor: Muestra badge simple (punto)
|
|
39
|
+
*
|
|
40
|
+
* **Nota:** El badge ajusta su ancho automáticamente según el contenido,
|
|
41
|
+
* con un mínimo de 16px y padding de 4px horizontal.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* <Notification /> // Punto rojo simple
|
|
46
|
+
* <Notification count={5} /> // Muestra "5"
|
|
47
|
+
* <Notification count={99} /> // Muestra "99"
|
|
48
|
+
* <Notification count={150} /> // Muestra "99+"
|
|
49
|
+
* <Notification count={0} /> // Punto rojo simple
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @see src/components/Notification/Notification.tsx:93-123 - Renderizado con número
|
|
53
|
+
*/
|
|
54
|
+
count?: number;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Color del badge
|
|
58
|
+
*
|
|
59
|
+
* Define el color de fondo del badge. Permite personalizar según el contexto
|
|
60
|
+
* o tipo de notificación.
|
|
61
|
+
*
|
|
62
|
+
* **Colores disponibles:**
|
|
63
|
+
* - `red` (default): Notificaciones de error, alertas críticas
|
|
64
|
+
* - `orange`: Advertencias importantes
|
|
65
|
+
* - `yellow`: Avisos, atención requerida
|
|
66
|
+
* - `green`: Notificaciones positivas, éxito
|
|
67
|
+
* - `blue`: Información general
|
|
68
|
+
* - `purple`: Notificaciones especiales o premium
|
|
69
|
+
* - `zinc`: Notificaciones neutras
|
|
70
|
+
* - Y 15+ colores adicionales de Tailwind
|
|
71
|
+
*
|
|
72
|
+
* **Nota:** El texto siempre será blanco para mantener contraste adecuado.
|
|
73
|
+
*
|
|
74
|
+
* @default 'red'
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```tsx
|
|
78
|
+
* <Notification count={5} color="red" /> // Error/Crítico
|
|
79
|
+
* <Notification count={2} color="orange" /> // Advertencia
|
|
80
|
+
* <Notification count={8} color="green" /> // Éxito
|
|
81
|
+
* <Notification count={3} color="blue" /> // Info
|
|
82
|
+
* <Notification count={1} color="purple" /> // Especial
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @see src/components/Button/Button.tsx:220-244 - Referencia de colores
|
|
86
|
+
*/
|
|
87
|
+
color?: 'zinc' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' |
|
|
88
|
+
'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' |
|
|
89
|
+
'purple' | 'fuchsia' | 'pink' | 'rose' | 'primary' | 'secondary' | 'tertiary';
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Clases CSS adicionales para posicionamiento o personalización
|
|
93
|
+
*
|
|
94
|
+
* Útil para posicionar el badge como overlay usando absolute positioning.
|
|
95
|
+
*
|
|
96
|
+
* **Advertencia:** Evita sobrescribir tamaños, colores o formas core del badge.
|
|
97
|
+
* Usa solo para posicionamiento, márgenes o efectos adicionales.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* // Como overlay en botón
|
|
102
|
+
* <button className="relative">
|
|
103
|
+
* <BellIcon />
|
|
104
|
+
* <Notification count={5} className="absolute -top-1 -right-1" />
|
|
105
|
+
* </button>
|
|
106
|
+
*
|
|
107
|
+
* // Con margen personalizado
|
|
108
|
+
* <Notification count={3} className="ml-2" />
|
|
109
|
+
*
|
|
110
|
+
* // Con sombra adicional
|
|
111
|
+
* <Notification count={7} className="shadow-lg" />
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
className?: string;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Label de accesibilidad (ARIA) personalizado
|
|
118
|
+
*
|
|
119
|
+
* Si no se proporciona, se genera automáticamente:
|
|
120
|
+
* - Con count: "{count} notificación(es)"
|
|
121
|
+
* - Sin count: "Notificación pendiente"
|
|
122
|
+
*
|
|
123
|
+
* **Mejores prácticas:**
|
|
124
|
+
* - Describe el tipo de notificación si es específico
|
|
125
|
+
* - Incluye contexto relevante para screen readers
|
|
126
|
+
* - Mantén el texto conciso pero descriptivo
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```tsx
|
|
130
|
+
* // Auto-generado (recomendado)
|
|
131
|
+
* <Notification count={5} />
|
|
132
|
+
* // → aria-label="5 notificaciones"
|
|
133
|
+
*
|
|
134
|
+
* // Personalizado
|
|
135
|
+
* <Notification count={3} ariaLabel="3 mensajes no leídos" />
|
|
136
|
+
* <Notification ariaLabel="Nueva alerta de seguridad" />
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* @see https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html
|
|
140
|
+
*/
|
|
141
|
+
ariaLabel?: string;
|
|
142
|
+
}
|