siesa-ui-kit 1.0.0 → 1.0.2
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 +54 -28
- package/claude/settings.local.json +7 -61
- package/dist/ButtonTest.d.ts +6 -0
- package/dist/ButtonTest.d.ts.map +1 -0
- package/dist/components/Alert/Alert.d.ts +23 -0
- package/dist/components/Alert/Alert.d.ts.map +1 -0
- package/dist/components/Alert/Alert.types.d.ts +46 -0
- package/dist/components/Alert/Alert.types.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +41 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.types.d.ts +46 -0
- package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
- package/dist/components/Badge/Badge.d.ts +42 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.types.d.ts +32 -0
- package/dist/components/Badge/Badge.types.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +84 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.types.d.ts +162 -0
- package/dist/components/Button/Button.types.d.ts.map +1 -0
- package/dist/components/Button/icons.d.ts +26 -0
- package/dist/components/Button/icons.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +4 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +31 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts +53 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts +38 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.types.d.ts +27 -0
- package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +1 -0
- package/dist/components/Divider/Divider.d.ts +33 -0
- package/dist/components/Divider/Divider.d.ts.map +1 -0
- package/dist/components/Divider/Divider.types.d.ts +22 -0
- package/dist/components/Divider/Divider.types.d.ts.map +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +66 -0
- package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/Dropdown/Dropdown.types.d.ts +124 -0
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -0
- package/dist/components/Dropdown/icons.d.ts +10 -0
- package/dist/components/Dropdown/icons.d.ts.map +1 -0
- package/dist/components/Dropdown/index.d.ts +4 -0
- package/dist/components/Dropdown/index.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +101 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +95 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/icons.d.ts +19 -0
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +1 -0
- package/dist/components/DropdownItemCollapsible/index.d.ts +9 -0
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +75 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +85 -0
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/icons.d.ts +48 -0
- package/dist/components/DropdownItemHeading/icons.d.ts.map +1 -0
- package/dist/components/DropdownItemHeading/index.d.ts +4 -0
- package/dist/components/DropdownItemHeading/index.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +40 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/Input.types.d.ts +71 -0
- package/dist/components/Input/Input.types.d.ts.map +1 -0
- package/dist/components/Input/icons.d.ts +15 -0
- package/dist/components/Input/icons.d.ts.map +1 -0
- package/dist/components/Input/index.d.ts +3 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/LoginView/LoginView.d.ts +36 -0
- package/dist/components/LoginView/LoginView.d.ts.map +1 -0
- package/dist/components/LoginView/LoginView.types.d.ts +46 -0
- package/dist/components/LoginView/LoginView.types.d.ts.map +1 -0
- package/dist/components/LoginView/icons.d.ts +18 -0
- package/dist/components/LoginView/icons.d.ts.map +1 -0
- package/dist/components/LoginView/index.d.ts +4 -0
- package/dist/components/LoginView/index.d.ts.map +1 -0
- package/dist/components/Navbar/Navbar.d.ts +63 -0
- package/dist/components/Navbar/Navbar.d.ts.map +1 -0
- package/dist/components/Navbar/Navbar.types.d.ts +194 -0
- package/dist/components/Navbar/Navbar.types.d.ts.map +1 -0
- package/dist/components/Navbar/icons.d.ts +12 -0
- package/dist/components/Navbar/icons.d.ts.map +1 -0
- package/dist/components/Navbar/index.d.ts +4 -0
- package/dist/components/Navbar/index.d.ts.map +1 -0
- package/dist/components/NavigationBar/NavigationBar.d.ts +75 -0
- package/dist/components/NavigationBar/NavigationBar.d.ts.map +1 -0
- package/dist/components/NavigationBar/NavigationBar.types.d.ts +63 -0
- package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +1 -0
- package/dist/components/NavigationBar/index.d.ts +3 -0
- package/dist/components/NavigationBar/index.d.ts.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.d.ts +7 -0
- package/dist/components/NavigationRail/NavigationRail.d.ts.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.types.d.ts +92 -0
- package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +1 -0
- package/dist/components/NavigationRail/index.d.ts +3 -0
- package/dist/components/NavigationRail/index.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +90 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +155 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/index.d.ts +3 -0
- package/dist/components/NavigationRailItem/index.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +124 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +154 -0
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +1 -0
- package/dist/components/NavigationRailPanel/index.d.ts +3 -0
- package/dist/components/NavigationRailPanel/index.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +99 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +111 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/icons.d.ts +58 -0
- package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -0
- package/dist/components/NavigationRailTypes/index.d.ts +4 -0
- package/dist/components/NavigationRailTypes/index.d.ts.map +1 -0
- package/dist/components/Notification/Notification.d.ts +52 -0
- package/dist/components/Notification/Notification.d.ts.map +1 -0
- package/dist/components/Notification/Notification.types.d.ts +138 -0
- package/dist/components/Notification/Notification.types.d.ts.map +1 -0
- package/dist/components/Notification/index.d.ts +3 -0
- package/dist/components/Notification/index.d.ts.map +1 -0
- package/dist/components/POSConvention/POSConvention.d.ts +55 -0
- package/dist/components/POSConvention/POSConvention.d.ts.map +1 -0
- package/dist/components/POSConvention/POSConvention.types.d.ts +37 -0
- package/dist/components/POSConvention/POSConvention.types.d.ts.map +1 -0
- package/dist/components/POSConvention/icons.d.ts +21 -0
- package/dist/components/POSConvention/icons.d.ts.map +1 -0
- package/dist/components/POSConvention/index.d.ts +4 -0
- package/dist/components/POSConvention/index.d.ts.map +1 -0
- package/dist/components/POSLocationButton/POSLocationButton.d.ts +73 -0
- package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +1 -0
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +75 -0
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +1 -0
- package/dist/components/POSLocationButton/icons.d.ts +37 -0
- package/dist/components/POSLocationButton/icons.d.ts.map +1 -0
- package/dist/components/POSLocationButton/index.d.ts +4 -0
- package/dist/components/POSLocationButton/index.d.ts.map +1 -0
- package/dist/components/POSNumberButton/POSNumberButton.d.ts +61 -0
- package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +1 -0
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +43 -0
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +1 -0
- package/dist/components/POSNumberButton/index.d.ts +3 -0
- package/dist/components/POSNumberButton/index.d.ts.map +1 -0
- package/dist/components/POSProductButton/POSProductButton.d.ts +59 -0
- package/dist/components/POSProductButton/POSProductButton.d.ts.map +1 -0
- package/dist/components/POSProductButton/POSProductButton.types.d.ts +40 -0
- package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +1 -0
- package/dist/components/POSProductButton/index.d.ts +3 -0
- package/dist/components/POSProductButton/index.d.ts.map +1 -0
- package/dist/components/POSProductCard/POSProductCard.d.ts +68 -0
- package/dist/components/POSProductCard/POSProductCard.d.ts.map +1 -0
- package/dist/components/POSProductCard/POSProductCard.types.d.ts +67 -0
- package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +1 -0
- package/dist/components/POSProductCard/icons.d.ts +10 -0
- package/dist/components/POSProductCard/icons.d.ts.map +1 -0
- package/dist/components/POSProductCard/index.d.ts +3 -0
- package/dist/components/POSProductCard/index.d.ts.map +1 -0
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +57 -0
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +1 -0
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +85 -0
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +1 -0
- package/dist/components/POSProductSidebarItems/icons.d.ts +9 -0
- package/dist/components/POSProductSidebarItems/icons.d.ts.map +1 -0
- package/dist/components/POSProductSidebarItems/index.d.ts +4 -0
- package/dist/components/POSProductSidebarItems/index.d.ts.map +1 -0
- package/dist/components/POSTable/POSTable.d.ts +75 -0
- package/dist/components/POSTable/POSTable.d.ts.map +1 -0
- package/dist/components/POSTable/POSTable.types.d.ts +71 -0
- package/dist/components/POSTable/POSTable.types.d.ts.map +1 -0
- package/dist/components/POSTable/index.d.ts +3 -0
- package/dist/components/POSTable/index.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.d.ts +29 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.types.d.ts +79 -0
- package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
- package/dist/components/Pagination/icons.d.ts +18 -0
- package/dist/components/Pagination/icons.d.ts.map +1 -0
- package/dist/components/Pagination/index.d.ts +4 -0
- package/dist/components/Pagination/index.d.ts.map +1 -0
- package/dist/components/Quantity/Quantity.d.ts +38 -0
- package/dist/components/Quantity/Quantity.d.ts.map +1 -0
- package/dist/components/Quantity/Quantity.types.d.ts +59 -0
- package/dist/components/Quantity/Quantity.types.d.ts.map +1 -0
- package/dist/components/Radio/Radio.d.ts +45 -0
- package/dist/components/Radio/Radio.d.ts.map +1 -0
- package/dist/components/Radio/Radio.types.d.ts +115 -0
- package/dist/components/Radio/Radio.types.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +37 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.types.d.ts +124 -0
- package/dist/components/Select/Select.types.d.ts.map +1 -0
- package/dist/components/Select/icons.d.ts +16 -0
- package/dist/components/Select/icons.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +4 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/SignUpView/SignUpView.d.ts +38 -0
- package/dist/components/SignUpView/SignUpView.d.ts.map +1 -0
- package/dist/components/SignUpView/SignUpView.types.d.ts +51 -0
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +1 -0
- package/dist/components/SignUpView/icons.d.ts +18 -0
- package/dist/components/SignUpView/icons.d.ts.map +1 -0
- package/dist/components/SignUpView/index.d.ts +4 -0
- package/dist/components/SignUpView/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +46 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.types.d.ts +58 -0
- package/dist/components/Switch/Switch.types.d.ts.map +1 -0
- package/dist/components/Table/Table.d.ts +64 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Table/Table.types.d.ts +173 -0
- package/dist/components/Table/Table.types.d.ts.map +1 -0
- package/dist/components/Table/index.d.ts +3 -0
- package/dist/components/Table/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +76 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.types.d.ts +107 -0
- package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
- package/dist/components/Tabs/icons.d.ts +45 -0
- package/dist/components/Tabs/icons.d.ts.map +1 -0
- package/dist/components/Tabs/index.d.ts +4 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +38 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.types.d.ts +46 -0
- package/dist/components/Textarea/Textarea.types.d.ts.map +1 -0
- package/dist/context/ThemeContext.d.ts +46 -0
- package/dist/context/ThemeContext.d.ts.map +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/siesa-ui-kit.cjs +1260 -0
- package/dist/siesa-ui-kit.cjs.map +1 -0
- package/dist/siesa-ui-kit.mjs +4496 -0
- package/dist/siesa-ui-kit.mjs.map +1 -0
- package/dist/views/ListView/ListView.d.ts +47 -0
- package/dist/views/ListView/ListView.d.ts.map +1 -0
- package/dist/views/ListView/ListView.types.d.ts +177 -0
- package/dist/views/ListView/ListView.types.d.ts.map +1 -0
- package/dist/views/ListView/icons.d.ts +60 -0
- package/dist/views/ListView/icons.d.ts.map +1 -0
- package/dist/views/ListView/index.d.ts +3 -0
- package/dist/views/ListView/index.d.ts.map +1 -0
- package/dist/views/LoginView/LoginView.d.ts +36 -0
- package/dist/views/LoginView/LoginView.d.ts.map +1 -0
- package/dist/views/LoginView/LoginView.types.d.ts +46 -0
- package/dist/views/LoginView/LoginView.types.d.ts.map +1 -0
- package/dist/views/LoginView/icons.d.ts +18 -0
- package/dist/views/LoginView/icons.d.ts.map +1 -0
- package/dist/views/LoginView/index.d.ts +4 -0
- package/dist/views/LoginView/index.d.ts.map +1 -0
- package/dist/views/ProductsView/ProductsView.d.ts +56 -0
- package/dist/views/ProductsView/ProductsView.d.ts.map +1 -0
- package/dist/views/ProductsView/ProductsView.types.d.ts +184 -0
- package/dist/views/ProductsView/ProductsView.types.d.ts.map +1 -0
- package/dist/views/ProductsView/icons.d.ts +12 -0
- package/dist/views/ProductsView/icons.d.ts.map +1 -0
- package/dist/views/ProductsView/index.d.ts +3 -0
- package/dist/views/ProductsView/index.d.ts.map +1 -0
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +34 -0
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +1 -0
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +50 -0
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +1 -0
- package/dist/views/RecoverPasswordView/icons.d.ts +9 -0
- package/dist/views/RecoverPasswordView/icons.d.ts.map +1 -0
- package/dist/views/RecoverPasswordView/index.d.ts +3 -0
- package/dist/views/RecoverPasswordView/index.d.ts.map +1 -0
- package/dist/views/SignUpView/SignUpView.d.ts +38 -0
- package/dist/views/SignUpView/SignUpView.d.ts.map +1 -0
- package/dist/views/SignUpView/SignUpView.types.d.ts +51 -0
- package/dist/views/SignUpView/SignUpView.types.d.ts.map +1 -0
- package/dist/views/SignUpView/icons.d.ts +18 -0
- package/dist/views/SignUpView/icons.d.ts.map +1 -0
- package/dist/views/SignUpView/index.d.ts +4 -0
- package/dist/views/SignUpView/index.d.ts.map +1 -0
- package/dist/views/TableLayoutView/TableLayoutView.d.ts +46 -0
- package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +1 -0
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +170 -0
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +1 -0
- package/dist/views/TableLayoutView/icons.d.ts +27 -0
- package/dist/views/TableLayoutView/icons.d.ts.map +1 -0
- package/dist/views/TableLayoutView/index.d.ts +3 -0
- package/dist/views/TableLayoutView/index.d.ts.map +1 -0
- 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 -1283
- package/docs/shadows.md +1377 -1377
- package/docs/spacing.md +1684 -1684
- package/docs/typography.md +1268 -1268
- package/package.json +33 -6
- 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.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/icons.tsx +87 -87
- 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.tsx +96 -96
- package/src/components/DescriptionList/DescriptionList.types.ts +29 -29
- 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/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +317 -0
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +287 -0
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +111 -0
- package/src/components/DropdownItemCollapsible/README.md +264 -0
- package/src/components/DropdownItemCollapsible/icons.tsx +57 -0
- package/src/components/DropdownItemCollapsible/index.ts +12 -0
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +386 -0
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +216 -0
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +93 -0
- package/src/components/DropdownItemHeading/README.md +573 -0
- package/src/components/DropdownItemHeading/icons.tsx +125 -0
- package/src/components/DropdownItemHeading/index.ts +3 -0
- 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/Navbar/icons.tsx +102 -102
- 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/NavigationRailItem/NavigationRailItem.stories.tsx +667 -0
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +313 -0
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +167 -0
- package/src/components/NavigationRailItem/README.md +476 -0
- package/src/components/NavigationRailItem/index.ts +2 -0
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +462 -0
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +332 -0
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +178 -0
- package/src/components/NavigationRailPanel/README.md +461 -0
- package/src/components/NavigationRailPanel/index.ts +6 -0
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +528 -0
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +378 -0
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +130 -0
- package/src/components/NavigationRailTypes/README.md +573 -0
- package/src/components/NavigationRailTypes/icons.tsx +141 -0
- package/src/components/NavigationRailTypes/index.ts +7 -0
- package/src/components/Notification/index.ts +3 -3
- 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/POSTable/POSTable.types.ts +83 -83
- 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.tsx +289 -289
- package/src/components/Quantity/Quantity.types.ts +70 -70
- 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 -673
- package/src/components/Select/Select.types.ts +148 -148
- package/src/components/Select/icons.tsx +50 -50
- package/src/components/Select/index.ts +3 -3
- package/src/components/Table/README.md +369 -369
- 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/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 +63 -0
- package/src/main.tsx +10 -10
- package/src/views/ListView/ListView.stories.tsx +329 -0
- package/src/views/ListView/ListView.tsx +570 -0
- package/src/views/ListView/ListView.types.ts +211 -0
- package/src/views/ListView/icons.tsx +282 -0
- package/src/views/ListView/index.ts +11 -0
- package/src/views/LoginView/LoginView.stories.tsx +148 -0
- package/src/views/LoginView/LoginView.tsx +426 -0
- package/src/views/LoginView/LoginView.types.ts +52 -0
- package/src/views/LoginView/README.md +396 -0
- package/src/views/LoginView/icons.tsx +85 -0
- package/src/views/LoginView/index.ts +3 -0
- package/src/views/RecoverPasswordView/README.md +269 -269
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -131
- 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/SignUpView/SignUpView.stories.tsx +129 -0
- package/src/views/SignUpView/SignUpView.tsx +503 -0
- package/src/views/SignUpView/SignUpView.types.ts +58 -0
- package/src/views/SignUpView/icons.tsx +71 -0
- package/src/views/SignUpView/index.ts +3 -0
- package/claude/agents/siesa-ui-kit-specialist.md +0 -2401
- package/claude/prompts/component-template.md +0 -121
|
@@ -1,208 +1,208 @@
|
|
|
1
|
-
import { forwardRef, useEffect, useRef } from 'react';
|
|
2
|
-
import type { CheckboxProps } from './Checkbox.types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Checkbox del sistema de diseño Siesa
|
|
6
|
-
*
|
|
7
|
-
* Componente de checkbox con soporte completo para estados interactivos,
|
|
8
|
-
* indeterminate, y dark mode pixel-perfect según especificaciones de Figma.
|
|
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
|
-
* - Sombra button-inset para estado checked
|
|
15
|
-
* - Type safety con TypeScript estricto
|
|
16
|
-
* - Accesibilidad con input nativo y ARIA
|
|
17
|
-
*
|
|
18
|
-
* @see docs/colors.md - Sistema de colores
|
|
19
|
-
* @see docs/typography.md - Sistema tipográfico (Label/Paragraph)
|
|
20
|
-
* @see docs/spacing.md - Sistema de espaciado
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```tsx
|
|
24
|
-
* <Checkbox
|
|
25
|
-
* label="Show on Events Page"
|
|
26
|
-
* description="Make this event visible on your profile"
|
|
27
|
-
* checked={true}
|
|
28
|
-
* onChange={(e) => console.log(e.target.checked)}
|
|
29
|
-
* />
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
|
|
33
|
-
(
|
|
34
|
-
{
|
|
35
|
-
label,
|
|
36
|
-
description,
|
|
37
|
-
checked = false,
|
|
38
|
-
indeterminate = false,
|
|
39
|
-
disabled = false,
|
|
40
|
-
className = '',
|
|
41
|
-
id,
|
|
42
|
-
onChange,
|
|
43
|
-
...props
|
|
44
|
-
},
|
|
45
|
-
ref
|
|
46
|
-
) => {
|
|
47
|
-
const inputRef = useRef<HTMLInputElement>(null);
|
|
48
|
-
const combinedRef = (ref as any) || inputRef;
|
|
49
|
-
|
|
50
|
-
// Generar ID único si no se proporciona
|
|
51
|
-
const checkboxId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
52
|
-
|
|
53
|
-
// Manejar el estado indeterminate
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
if (combinedRef.current) {
|
|
56
|
-
combinedRef.current.indeterminate = indeterminate;
|
|
57
|
-
}
|
|
58
|
-
}, [indeterminate, combinedRef]);
|
|
59
|
-
|
|
60
|
-
// ===== CLASES BASE DEL CHECKBOX =====
|
|
61
|
-
const baseCheckboxClasses = `
|
|
62
|
-
w-4
|
|
63
|
-
h-4
|
|
64
|
-
rounded
|
|
65
|
-
border
|
|
66
|
-
border-border-primary
|
|
67
|
-
bg-bg-primary
|
|
68
|
-
transition-all
|
|
69
|
-
duration-150
|
|
70
|
-
flex
|
|
71
|
-
items-center
|
|
72
|
-
justify-center
|
|
73
|
-
dark:bg-dark-bg-primary
|
|
74
|
-
dark:border-dark-border-primary
|
|
75
|
-
`;
|
|
76
|
-
|
|
77
|
-
// ===== CLASES PARA ESTADOS INTERACTIVOS =====
|
|
78
|
-
const interactiveClasses = !disabled
|
|
79
|
-
? (checked || indeterminate)
|
|
80
|
-
? `
|
|
81
|
-
peer-hover:border-[#50a5f7]
|
|
82
|
-
peer-focus:ring-2
|
|
83
|
-
peer-focus:ring-primary-custom-400/20
|
|
84
|
-
peer-focus:border-primary-custom-600
|
|
85
|
-
dark:peer-hover:border-[#50a5f7]
|
|
86
|
-
dark:peer-focus:border-dark-border-custom
|
|
87
|
-
dark:peer-focus:ring-dark-border-custom/20
|
|
88
|
-
`
|
|
89
|
-
: `
|
|
90
|
-
peer-hover:border-[#b6b6b9]
|
|
91
|
-
peer-focus:ring-2
|
|
92
|
-
peer-focus:ring-primary-custom-400/20
|
|
93
|
-
peer-focus:border-primary-custom-600
|
|
94
|
-
dark:peer-hover:border-[#b6b6b9]
|
|
95
|
-
dark:peer-focus:border-dark-border-custom
|
|
96
|
-
dark:peer-focus:ring-dark-border-custom/20
|
|
97
|
-
`
|
|
98
|
-
: `
|
|
99
|
-
opacity-50
|
|
100
|
-
cursor-not-allowed
|
|
101
|
-
`;
|
|
102
|
-
|
|
103
|
-
// ===== CLASES PARA ESTADO CHECKED/INDETERMINATE =====
|
|
104
|
-
// Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
105
|
-
const checkedClasses = checked || indeterminate
|
|
106
|
-
? `
|
|
107
|
-
!bg-primary-custom-600
|
|
108
|
-
!border-primary-custom-500
|
|
109
|
-
shadow-button-inset
|
|
110
|
-
dark:!bg-dark-bg-inverse
|
|
111
|
-
dark:!border-dark-bg-inverse
|
|
112
|
-
`
|
|
113
|
-
: '';
|
|
114
|
-
|
|
115
|
-
// ===== COMBINAR TODAS LAS CLASES DEL CHECKBOX =====
|
|
116
|
-
const checkboxClasses = [
|
|
117
|
-
baseCheckboxClasses,
|
|
118
|
-
interactiveClasses,
|
|
119
|
-
checkedClasses,
|
|
120
|
-
disabled ? 'cursor-not-allowed' : 'cursor-pointer',
|
|
121
|
-
]
|
|
122
|
-
.join(' ')
|
|
123
|
-
.replace(/\s+/g, ' ')
|
|
124
|
-
.trim();
|
|
125
|
-
|
|
126
|
-
return (
|
|
127
|
-
<div className={`inline-flex gap-3 items-start ${className}`}>
|
|
128
|
-
{/* Checkbox Input Container */}
|
|
129
|
-
<div className="flex items-center justify-center h-5 w-4 shrink-0">
|
|
130
|
-
{/* Native Input (hidden but accessible) */}
|
|
131
|
-
<input
|
|
132
|
-
ref={combinedRef}
|
|
133
|
-
type="checkbox"
|
|
134
|
-
id={checkboxId}
|
|
135
|
-
checked={checked}
|
|
136
|
-
disabled={disabled}
|
|
137
|
-
onChange={onChange}
|
|
138
|
-
className="peer sr-only"
|
|
139
|
-
{...props}
|
|
140
|
-
/>
|
|
141
|
-
|
|
142
|
-
{/* Custom Checkbox Visual */}
|
|
143
|
-
<label htmlFor={checkboxId} className={checkboxClasses}>
|
|
144
|
-
{/* Check Icon - Usar primary-inverse-content para consistencia */}
|
|
145
|
-
{checked && !indeterminate && (
|
|
146
|
-
<svg
|
|
147
|
-
className="w-3 h-3 text-primary-inverse-content pointer-events-none"
|
|
148
|
-
viewBox="0 0 12 12"
|
|
149
|
-
fill="none"
|
|
150
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
151
|
-
>
|
|
152
|
-
<path
|
|
153
|
-
d="M10 3L4.5 8.5L2 6"
|
|
154
|
-
stroke="currentColor"
|
|
155
|
-
strokeWidth="2"
|
|
156
|
-
strokeLinecap="round"
|
|
157
|
-
strokeLinejoin="round"
|
|
158
|
-
/>
|
|
159
|
-
</svg>
|
|
160
|
-
)}
|
|
161
|
-
|
|
162
|
-
{/* Indeterminate Icon (minus) - Usar primary-inverse-content */}
|
|
163
|
-
{indeterminate && (
|
|
164
|
-
<svg
|
|
165
|
-
className="w-3 h-3 text-primary-inverse-content pointer-events-none"
|
|
166
|
-
viewBox="0 0 12 12"
|
|
167
|
-
fill="none"
|
|
168
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
169
|
-
>
|
|
170
|
-
<path
|
|
171
|
-
d="M2 6H10"
|
|
172
|
-
stroke="currentColor"
|
|
173
|
-
strokeWidth="2"
|
|
174
|
-
strokeLinecap="round"
|
|
175
|
-
/>
|
|
176
|
-
</svg>
|
|
177
|
-
)}
|
|
178
|
-
</label>
|
|
179
|
-
</div>
|
|
180
|
-
|
|
181
|
-
{/* Label and Description */}
|
|
182
|
-
{(label || description) && (
|
|
183
|
-
<label
|
|
184
|
-
htmlFor={checkboxId}
|
|
185
|
-
className={`flex-1 flex flex-col gap-1 text-sm leading-5 ${
|
|
186
|
-
disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'
|
|
187
|
-
}`}
|
|
188
|
-
>
|
|
189
|
-
{/* Label - Label/Small (14px, Bold) */}
|
|
190
|
-
{label && (
|
|
191
|
-
<span className="font-bold text-content-primary dark:text-dark-content-primary">
|
|
192
|
-
{label}
|
|
193
|
-
</span>
|
|
194
|
-
)}
|
|
195
|
-
{/* Description - Paragraph/Small (14px, Regular) */}
|
|
196
|
-
{description && (
|
|
197
|
-
<span className="font-normal text-content-secondary dark:text-content-secondary">
|
|
198
|
-
{description}
|
|
199
|
-
</span>
|
|
200
|
-
)}
|
|
201
|
-
</label>
|
|
202
|
-
)}
|
|
203
|
-
</div>
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
);
|
|
207
|
-
|
|
208
|
-
Checkbox.displayName = 'Checkbox';
|
|
1
|
+
import { forwardRef, useEffect, useRef } from 'react';
|
|
2
|
+
import type { CheckboxProps } from './Checkbox.types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Checkbox del sistema de diseño Siesa
|
|
6
|
+
*
|
|
7
|
+
* Componente de checkbox con soporte completo para estados interactivos,
|
|
8
|
+
* indeterminate, y dark mode pixel-perfect según especificaciones de Figma.
|
|
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
|
+
* - Sombra button-inset para estado checked
|
|
15
|
+
* - Type safety con TypeScript estricto
|
|
16
|
+
* - Accesibilidad con input nativo y ARIA
|
|
17
|
+
*
|
|
18
|
+
* @see docs/colors.md - Sistema de colores
|
|
19
|
+
* @see docs/typography.md - Sistema tipográfico (Label/Paragraph)
|
|
20
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <Checkbox
|
|
25
|
+
* label="Show on Events Page"
|
|
26
|
+
* description="Make this event visible on your profile"
|
|
27
|
+
* checked={true}
|
|
28
|
+
* onChange={(e) => console.log(e.target.checked)}
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
|
|
33
|
+
(
|
|
34
|
+
{
|
|
35
|
+
label,
|
|
36
|
+
description,
|
|
37
|
+
checked = false,
|
|
38
|
+
indeterminate = false,
|
|
39
|
+
disabled = false,
|
|
40
|
+
className = '',
|
|
41
|
+
id,
|
|
42
|
+
onChange,
|
|
43
|
+
...props
|
|
44
|
+
},
|
|
45
|
+
ref
|
|
46
|
+
) => {
|
|
47
|
+
const inputRef = useRef<HTMLInputElement>(null);
|
|
48
|
+
const combinedRef = (ref as any) || inputRef;
|
|
49
|
+
|
|
50
|
+
// Generar ID único si no se proporciona
|
|
51
|
+
const checkboxId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
52
|
+
|
|
53
|
+
// Manejar el estado indeterminate
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (combinedRef.current) {
|
|
56
|
+
combinedRef.current.indeterminate = indeterminate;
|
|
57
|
+
}
|
|
58
|
+
}, [indeterminate, combinedRef]);
|
|
59
|
+
|
|
60
|
+
// ===== CLASES BASE DEL CHECKBOX =====
|
|
61
|
+
const baseCheckboxClasses = `
|
|
62
|
+
w-4
|
|
63
|
+
h-4
|
|
64
|
+
rounded
|
|
65
|
+
border
|
|
66
|
+
border-border-primary
|
|
67
|
+
bg-bg-primary
|
|
68
|
+
transition-all
|
|
69
|
+
duration-150
|
|
70
|
+
flex
|
|
71
|
+
items-center
|
|
72
|
+
justify-center
|
|
73
|
+
dark:bg-dark-bg-primary
|
|
74
|
+
dark:border-dark-border-primary
|
|
75
|
+
`;
|
|
76
|
+
|
|
77
|
+
// ===== CLASES PARA ESTADOS INTERACTIVOS =====
|
|
78
|
+
const interactiveClasses = !disabled
|
|
79
|
+
? (checked || indeterminate)
|
|
80
|
+
? `
|
|
81
|
+
peer-hover:border-[#50a5f7]
|
|
82
|
+
peer-focus:ring-2
|
|
83
|
+
peer-focus:ring-primary-custom-400/20
|
|
84
|
+
peer-focus:border-primary-custom-600
|
|
85
|
+
dark:peer-hover:border-[#50a5f7]
|
|
86
|
+
dark:peer-focus:border-dark-border-custom
|
|
87
|
+
dark:peer-focus:ring-dark-border-custom/20
|
|
88
|
+
`
|
|
89
|
+
: `
|
|
90
|
+
peer-hover:border-[#b6b6b9]
|
|
91
|
+
peer-focus:ring-2
|
|
92
|
+
peer-focus:ring-primary-custom-400/20
|
|
93
|
+
peer-focus:border-primary-custom-600
|
|
94
|
+
dark:peer-hover:border-[#b6b6b9]
|
|
95
|
+
dark:peer-focus:border-dark-border-custom
|
|
96
|
+
dark:peer-focus:ring-dark-border-custom/20
|
|
97
|
+
`
|
|
98
|
+
: `
|
|
99
|
+
opacity-50
|
|
100
|
+
cursor-not-allowed
|
|
101
|
+
`;
|
|
102
|
+
|
|
103
|
+
// ===== CLASES PARA ESTADO CHECKED/INDETERMINATE =====
|
|
104
|
+
// Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
105
|
+
const checkedClasses = checked || indeterminate
|
|
106
|
+
? `
|
|
107
|
+
!bg-primary-custom-600
|
|
108
|
+
!border-primary-custom-500
|
|
109
|
+
shadow-button-inset
|
|
110
|
+
dark:!bg-dark-bg-inverse
|
|
111
|
+
dark:!border-dark-bg-inverse
|
|
112
|
+
`
|
|
113
|
+
: '';
|
|
114
|
+
|
|
115
|
+
// ===== COMBINAR TODAS LAS CLASES DEL CHECKBOX =====
|
|
116
|
+
const checkboxClasses = [
|
|
117
|
+
baseCheckboxClasses,
|
|
118
|
+
interactiveClasses,
|
|
119
|
+
checkedClasses,
|
|
120
|
+
disabled ? 'cursor-not-allowed' : 'cursor-pointer',
|
|
121
|
+
]
|
|
122
|
+
.join(' ')
|
|
123
|
+
.replace(/\s+/g, ' ')
|
|
124
|
+
.trim();
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div className={`inline-flex gap-3 items-start ${className}`}>
|
|
128
|
+
{/* Checkbox Input Container */}
|
|
129
|
+
<div className="flex items-center justify-center h-5 w-4 shrink-0">
|
|
130
|
+
{/* Native Input (hidden but accessible) */}
|
|
131
|
+
<input
|
|
132
|
+
ref={combinedRef}
|
|
133
|
+
type="checkbox"
|
|
134
|
+
id={checkboxId}
|
|
135
|
+
checked={checked}
|
|
136
|
+
disabled={disabled}
|
|
137
|
+
onChange={onChange}
|
|
138
|
+
className="peer sr-only"
|
|
139
|
+
{...props}
|
|
140
|
+
/>
|
|
141
|
+
|
|
142
|
+
{/* Custom Checkbox Visual */}
|
|
143
|
+
<label htmlFor={checkboxId} className={checkboxClasses}>
|
|
144
|
+
{/* Check Icon - Usar primary-inverse-content para consistencia */}
|
|
145
|
+
{checked && !indeterminate && (
|
|
146
|
+
<svg
|
|
147
|
+
className="w-3 h-3 text-primary-inverse-content pointer-events-none"
|
|
148
|
+
viewBox="0 0 12 12"
|
|
149
|
+
fill="none"
|
|
150
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
151
|
+
>
|
|
152
|
+
<path
|
|
153
|
+
d="M10 3L4.5 8.5L2 6"
|
|
154
|
+
stroke="currentColor"
|
|
155
|
+
strokeWidth="2"
|
|
156
|
+
strokeLinecap="round"
|
|
157
|
+
strokeLinejoin="round"
|
|
158
|
+
/>
|
|
159
|
+
</svg>
|
|
160
|
+
)}
|
|
161
|
+
|
|
162
|
+
{/* Indeterminate Icon (minus) - Usar primary-inverse-content */}
|
|
163
|
+
{indeterminate && (
|
|
164
|
+
<svg
|
|
165
|
+
className="w-3 h-3 text-primary-inverse-content pointer-events-none"
|
|
166
|
+
viewBox="0 0 12 12"
|
|
167
|
+
fill="none"
|
|
168
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
169
|
+
>
|
|
170
|
+
<path
|
|
171
|
+
d="M2 6H10"
|
|
172
|
+
stroke="currentColor"
|
|
173
|
+
strokeWidth="2"
|
|
174
|
+
strokeLinecap="round"
|
|
175
|
+
/>
|
|
176
|
+
</svg>
|
|
177
|
+
)}
|
|
178
|
+
</label>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
{/* Label and Description */}
|
|
182
|
+
{(label || description) && (
|
|
183
|
+
<label
|
|
184
|
+
htmlFor={checkboxId}
|
|
185
|
+
className={`flex-1 flex flex-col gap-1 text-sm leading-5 ${
|
|
186
|
+
disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'
|
|
187
|
+
}`}
|
|
188
|
+
>
|
|
189
|
+
{/* Label - Label/Small (14px, Bold) */}
|
|
190
|
+
{label && (
|
|
191
|
+
<span className="font-bold text-content-primary dark:text-dark-content-primary">
|
|
192
|
+
{label}
|
|
193
|
+
</span>
|
|
194
|
+
)}
|
|
195
|
+
{/* Description - Paragraph/Small (14px, Regular) */}
|
|
196
|
+
{description && (
|
|
197
|
+
<span className="font-normal text-content-secondary dark:text-content-secondary">
|
|
198
|
+
{description}
|
|
199
|
+
</span>
|
|
200
|
+
)}
|
|
201
|
+
</label>
|
|
202
|
+
)}
|
|
203
|
+
</div>
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
Checkbox.displayName = 'Checkbox';
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import type { InputHTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Estados visuales del Checkbox
|
|
5
|
-
*/
|
|
6
|
-
export type CheckboxState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Props del componente Checkbox
|
|
10
|
-
*
|
|
11
|
-
* Extiende HTMLInputElement con props adicionales específicas del componente.
|
|
12
|
-
* Excluye 'type' y 'size' que son manejados internamente.
|
|
13
|
-
*/
|
|
14
|
-
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
15
|
-
/**
|
|
16
|
-
* Etiqueta del checkbox
|
|
17
|
-
* Tipografía: Label/Small (14px, Bold)
|
|
18
|
-
*/
|
|
19
|
-
label?: string;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Descripción debajo del label
|
|
23
|
-
* Tipografía: Paragraph/Small (14px, Regular)
|
|
24
|
-
*/
|
|
25
|
-
description?: string;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Si el checkbox está marcado
|
|
29
|
-
* @default false
|
|
30
|
-
*/
|
|
31
|
-
checked?: boolean;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Si el checkbox está en estado indeterminado (parcialmente seleccionado)
|
|
35
|
-
* Útil para "select all" cuando solo algunos items están seleccionados
|
|
36
|
-
* @default false
|
|
37
|
-
*/
|
|
38
|
-
indeterminate?: boolean;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Si el checkbox está deshabilitado
|
|
42
|
-
* @default false
|
|
43
|
-
*/
|
|
44
|
-
disabled?: boolean;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Clases CSS adicionales para el contenedor principal
|
|
48
|
-
*/
|
|
49
|
-
className?: string;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* ID único para el checkbox
|
|
53
|
-
* Si no se proporciona, se genera automáticamente
|
|
54
|
-
*/
|
|
55
|
-
id?: string;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Callback cuando el estado del checkbox cambia
|
|
59
|
-
*/
|
|
60
|
-
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
61
|
-
}
|
|
1
|
+
import type { InputHTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Estados visuales del Checkbox
|
|
5
|
+
*/
|
|
6
|
+
export type CheckboxState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Props del componente Checkbox
|
|
10
|
+
*
|
|
11
|
+
* Extiende HTMLInputElement con props adicionales específicas del componente.
|
|
12
|
+
* Excluye 'type' y 'size' que son manejados internamente.
|
|
13
|
+
*/
|
|
14
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
15
|
+
/**
|
|
16
|
+
* Etiqueta del checkbox
|
|
17
|
+
* Tipografía: Label/Small (14px, Bold)
|
|
18
|
+
*/
|
|
19
|
+
label?: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Descripción debajo del label
|
|
23
|
+
* Tipografía: Paragraph/Small (14px, Regular)
|
|
24
|
+
*/
|
|
25
|
+
description?: string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Si el checkbox está marcado
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
checked?: boolean;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Si el checkbox está en estado indeterminado (parcialmente seleccionado)
|
|
35
|
+
* Útil para "select all" cuando solo algunos items están seleccionados
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
indeterminate?: boolean;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Si el checkbox está deshabilitado
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Clases CSS adicionales para el contenedor principal
|
|
48
|
+
*/
|
|
49
|
+
className?: string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* ID único para el checkbox
|
|
53
|
+
* Si no se proporciona, se genera automáticamente
|
|
54
|
+
*/
|
|
55
|
+
id?: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Callback cuando el estado del checkbox cambia
|
|
59
|
+
*/
|
|
60
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
61
|
+
}
|