siesa-ui-kit 1.0.6 → 1.0.7
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 +115 -89
- 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 +1273 -0
- package/dist/siesa-ui-kit.cjs.map +1 -0
- package/dist/siesa-ui-kit.mjs +4510 -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/package.json +93 -92
- package/bin/install.cjs +0 -502
- package/bin/prepare-publish.cjs +0 -28
- package/bin/restore-folders.cjs +0 -28
- package/dist/,Business Logo.png +0 -0
- package/dist/.Siesa Logo.png +0 -0
- package/dist/bg_siesa.png +0 -0
- package/dist/index.cjs +0 -1479
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -1479
- package/dist/index.js.map +0 -1
- package/dist/siesa_logo_mobile.png +0 -0
- package/dist/vite.svg +0 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { BadgeColor } from '../Badge/Badge.types';
|
|
3
|
+
/**
|
|
4
|
+
* Tipo de botón según el sistema de diseño Siesa (Figma node 4001-17240)
|
|
5
|
+
*
|
|
6
|
+
* - `default`: Botón primario con fondo sólido (#0e79fd) y borde (#3c9bf6)
|
|
7
|
+
* - Background: primary-custom-600 (#0e79fd)
|
|
8
|
+
* - Border: primary-inverse-border (#3c9bf6)
|
|
9
|
+
* - Text: primary-inverse-content (#eff8ff)
|
|
10
|
+
* - Sombra interna: shadow-button-inset
|
|
11
|
+
*
|
|
12
|
+
* - `outline-solid`: Botón secundario con borde, sin fondo
|
|
13
|
+
* - Background: transparent
|
|
14
|
+
* - Border: primary-custom-300 (#93d1fd)
|
|
15
|
+
* - Text: primary-custom-600 (#0e79fd)
|
|
16
|
+
* - Sombra: shadow-xs
|
|
17
|
+
*
|
|
18
|
+
* - `plain`: Botón terciario sin borde visible (hover overlay)
|
|
19
|
+
* - Background: transparent
|
|
20
|
+
* - Border: transparent
|
|
21
|
+
* - Text: primary-custom-600 (#0e79fd)
|
|
22
|
+
*
|
|
23
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4001-17240
|
|
24
|
+
*/
|
|
25
|
+
export type ButtonType = 'default' | 'outline' | 'outline-solid' | 'plain';
|
|
26
|
+
/**
|
|
27
|
+
* Tamaños de botón según especificaciones de Figma (node 4001-17240)
|
|
28
|
+
*
|
|
29
|
+
* | Size | Height | Padding H | Padding V | Gap | Font Size |
|
|
30
|
+
* |------|--------|-----------|-----------|------|------------|
|
|
31
|
+
* | xs | 24px | 8px | 4px | 8px | 12px (xs) |
|
|
32
|
+
* | sm | 28px | 8px | 4px | 8px | 14px (sm) |
|
|
33
|
+
* | base | 32px | 10px | 6px | 8px | 14px (sm) |
|
|
34
|
+
* | l | 36px | 12px | 8px | 12px | 14px (sm) |
|
|
35
|
+
* | xl | 40px | 16px | 8px | 12px | 14px (sm) |
|
|
36
|
+
*
|
|
37
|
+
* Icon-only buttons son cuadrados perfectos con el mismo width y height.
|
|
38
|
+
*
|
|
39
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4001-17240
|
|
40
|
+
*/
|
|
41
|
+
export type ButtonSize = 'xs' | 'sm' | 'base' | 'l' | 'xl';
|
|
42
|
+
/**
|
|
43
|
+
* Estados del botón según especificaciones de Figma
|
|
44
|
+
*
|
|
45
|
+
* - `default`: Estado normal con colores base
|
|
46
|
+
* - `hover`: Overlay visual (bg-primary-custom-500 para default, bg-hover-overlay para plain)
|
|
47
|
+
* - `focus`: Focus ring de 4px (#60b6fa) con offset de 2px (#dbeefe)
|
|
48
|
+
* - `disabled`: Opacity 50% con pointer-events-none
|
|
49
|
+
*
|
|
50
|
+
* @note Los estados hover y focus son manejados automáticamente por CSS.
|
|
51
|
+
*/
|
|
52
|
+
export type ButtonState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
53
|
+
/**
|
|
54
|
+
* Props del componente Button
|
|
55
|
+
*
|
|
56
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4001-17240
|
|
57
|
+
*/
|
|
58
|
+
export interface ButtonProps {
|
|
59
|
+
/**
|
|
60
|
+
* Tipo de botón (visual) - determina la jerarquía y estilo del botón
|
|
61
|
+
*
|
|
62
|
+
* - `default`: Acción principal (Guardar, Enviar, Confirmar)
|
|
63
|
+
* - `outline-solid`: Acción secundaria (Cancelar, Volver)
|
|
64
|
+
* - `plain`: Acción terciaria (Cerrar, Ver más, Links)
|
|
65
|
+
*
|
|
66
|
+
* @default 'default'
|
|
67
|
+
*/
|
|
68
|
+
type?: ButtonType;
|
|
69
|
+
/**
|
|
70
|
+
* Tamaño del botón - determina altura, padding y tipografía
|
|
71
|
+
*
|
|
72
|
+
* - `xs`: 24px - Espacios muy compactos, inline actions
|
|
73
|
+
* - `sm`: 28px - Barras de herramientas, acciones secundarias
|
|
74
|
+
* - `base`: 32px - Tamaño estándar para la mayoría de casos
|
|
75
|
+
* - `l`: 36px - Botones destacados, CTAs
|
|
76
|
+
* - `xl`: 40px - Heroes, landing pages
|
|
77
|
+
*
|
|
78
|
+
* @default 'base'
|
|
79
|
+
*/
|
|
80
|
+
size?: ButtonSize;
|
|
81
|
+
/**
|
|
82
|
+
* Si true, el botón solo muestra iconos (sin texto)
|
|
83
|
+
* El botón se vuelve cuadrado perfecto (width = height)
|
|
84
|
+
*
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
iconOnly?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Icono a mostrar antes del texto (izquierda)
|
|
90
|
+
* Todos los iconos son 16x16px según especificaciones de Figma
|
|
91
|
+
*/
|
|
92
|
+
leftIcon?: ReactNode;
|
|
93
|
+
/**
|
|
94
|
+
* Icono a mostrar después del texto (derecha)
|
|
95
|
+
* Todos los iconos son 16x16px según especificaciones de Figma
|
|
96
|
+
*/
|
|
97
|
+
rightIcon?: ReactNode;
|
|
98
|
+
/**
|
|
99
|
+
* Contenido del botón (texto o elementos React)
|
|
100
|
+
*/
|
|
101
|
+
children?: ReactNode;
|
|
102
|
+
/**
|
|
103
|
+
* Si el botón está deshabilitado
|
|
104
|
+
* Aplica opacity: 50% y pointer-events: none
|
|
105
|
+
*
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
disabled?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Clases CSS adicionales para personalización
|
|
111
|
+
*/
|
|
112
|
+
className?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Función callback ejecutada al hacer click
|
|
115
|
+
*/
|
|
116
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
117
|
+
/**
|
|
118
|
+
* Tipo de botón HTML (comportamiento de formulario)
|
|
119
|
+
*
|
|
120
|
+
* - `button`: Botón normal (no envía formularios)
|
|
121
|
+
* - `submit`: Envía el formulario al hacer click
|
|
122
|
+
* - `reset`: Resetea el formulario al hacer click
|
|
123
|
+
*
|
|
124
|
+
* @default 'button'
|
|
125
|
+
*/
|
|
126
|
+
htmlType?: 'button' | 'submit' | 'reset';
|
|
127
|
+
/**
|
|
128
|
+
* Si el botón ocupa todo el ancho disponible de su contenedor
|
|
129
|
+
*
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
132
|
+
fullWidth?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Etiqueta accesible para lectores de pantalla
|
|
135
|
+
* **Requerido** para botones iconOnly para accesibilidad
|
|
136
|
+
*/
|
|
137
|
+
ariaLabel?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Si true, muestra un badge de notificación (dot) en la esquina superior derecha
|
|
140
|
+
*
|
|
141
|
+
* @default false
|
|
142
|
+
*/
|
|
143
|
+
badge?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Número a mostrar en el badge de notificación
|
|
146
|
+
* Si se proporciona, muestra un badge con contador en lugar de un dot
|
|
147
|
+
* Números mayores a 99 se muestran como "99+"
|
|
148
|
+
*/
|
|
149
|
+
badgeCount?: number;
|
|
150
|
+
/**
|
|
151
|
+
* Color del badge de notificación
|
|
152
|
+
* Usa los colores del sistema de diseño
|
|
153
|
+
*
|
|
154
|
+
* @default 'red' (content-extensions-red: #b91c1c)
|
|
155
|
+
*/
|
|
156
|
+
badgeColor?: BadgeColor;
|
|
157
|
+
/**
|
|
158
|
+
* Atributos HTML adicionales para el elemento button
|
|
159
|
+
*/
|
|
160
|
+
[key: string]: unknown;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=Button.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,OAAO,CAAC;AAE3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IconProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Icono Plus (heroicons-micro/plus)
|
|
7
|
+
*/
|
|
8
|
+
export declare const PlusIcon: React.FC<IconProps>;
|
|
9
|
+
/**
|
|
10
|
+
* Icono ChevronDown (heroicons-micro/chevron-down)
|
|
11
|
+
*/
|
|
12
|
+
export declare const ChevronDownIcon: React.FC<IconProps>;
|
|
13
|
+
/**
|
|
14
|
+
* Icono ArrowRight (heroicons-micro/arrow-right)
|
|
15
|
+
*/
|
|
16
|
+
export declare const ArrowRightIcon: React.FC<IconProps>;
|
|
17
|
+
/**
|
|
18
|
+
* Icono Check (heroicons-micro/check)
|
|
19
|
+
*/
|
|
20
|
+
export declare const CheckIcon: React.FC<IconProps>;
|
|
21
|
+
/**
|
|
22
|
+
* Icono X (heroicons-micro/x-mark)
|
|
23
|
+
*/
|
|
24
|
+
export declare const XIcon: React.FC<IconProps>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Button/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CASxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAa/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAa9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAazC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CASrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CheckboxProps } from './Checkbox.types';
|
|
2
|
+
/**
|
|
3
|
+
* Checkbox del sistema de diseño Siesa
|
|
4
|
+
*
|
|
5
|
+
* Componente de checkbox con soporte completo para estados interactivos,
|
|
6
|
+
* indeterminate, y dark mode pixel-perfect según especificaciones de Figma.
|
|
7
|
+
*
|
|
8
|
+
* Mejores prácticas implementadas:
|
|
9
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
10
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
11
|
+
* - Tokens de color consistentes con la documentación
|
|
12
|
+
* - Sombra button-inset para estado checked
|
|
13
|
+
* - Type safety con TypeScript estricto
|
|
14
|
+
* - Accesibilidad con input nativo y ARIA
|
|
15
|
+
*
|
|
16
|
+
* @see docs/colors.md - Sistema de colores
|
|
17
|
+
* @see docs/typography.md - Sistema tipográfico (Label/Paragraph)
|
|
18
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <Checkbox
|
|
23
|
+
* label="Show on Events Page"
|
|
24
|
+
* description="Make this event visible on your profile"
|
|
25
|
+
* checked={true}
|
|
26
|
+
* onChange={(e) => console.log(e.target.checked)}
|
|
27
|
+
* />
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
31
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,QAAQ,4GA8KpB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { InputHTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Estados visuales del Checkbox
|
|
4
|
+
*/
|
|
5
|
+
export type CheckboxState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
6
|
+
/**
|
|
7
|
+
* Props del componente Checkbox
|
|
8
|
+
*
|
|
9
|
+
* Extiende HTMLInputElement con props adicionales específicas del componente.
|
|
10
|
+
* Excluye 'type' y 'size' que son manejados internamente.
|
|
11
|
+
*/
|
|
12
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
13
|
+
/**
|
|
14
|
+
* Etiqueta del checkbox
|
|
15
|
+
* Tipografía: Label/Small (14px, Bold)
|
|
16
|
+
*/
|
|
17
|
+
label?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Descripción debajo del label
|
|
20
|
+
* Tipografía: Paragraph/Small (14px, Regular)
|
|
21
|
+
*/
|
|
22
|
+
description?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Si el checkbox está marcado
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
checked?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Si el checkbox está en estado indeterminado (parcialmente seleccionado)
|
|
30
|
+
* Útil para "select all" cuando solo algunos items están seleccionados
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
indeterminate?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Si el checkbox está deshabilitado
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Clases CSS adicionales para el contenedor principal
|
|
41
|
+
*/
|
|
42
|
+
className?: string;
|
|
43
|
+
/**
|
|
44
|
+
* ID único para el checkbox
|
|
45
|
+
* Si no se proporciona, se genera automáticamente
|
|
46
|
+
*/
|
|
47
|
+
id?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Callback cuando el estado del checkbox cambia
|
|
50
|
+
*/
|
|
51
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=Checkbox.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.types.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjG;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACjE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DescriptionListProps } from './DescriptionList.types';
|
|
2
|
+
/**
|
|
3
|
+
* DescriptionList del sistema de diseño Siesa
|
|
4
|
+
*
|
|
5
|
+
* Componente para mostrar información estructurada en formato clave-valor (term/details).
|
|
6
|
+
* Layout de dos columnas con separador inferior entre items.
|
|
7
|
+
*
|
|
8
|
+
* Mejores prácticas implementadas:
|
|
9
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
10
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
11
|
+
* - Tokens de color consistentes con la documentación
|
|
12
|
+
* - Type safety con TypeScript estricto
|
|
13
|
+
* - Layout flexible y responsive
|
|
14
|
+
* - Tipografía del sistema (Paragraph/Small - 14px)
|
|
15
|
+
*
|
|
16
|
+
* @see docs/colors.md - Sistema de colores (content-primary, content-secondary)
|
|
17
|
+
* @see docs/typography.md - Sistema tipográfico (Paragraph/Small)
|
|
18
|
+
* @see docs/spacing.md - Sistema de espaciado (padding, gaps)
|
|
19
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4103-8449 - Especificaciones Figma
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* // Item básico
|
|
24
|
+
* <DescriptionList
|
|
25
|
+
* term="Customer"
|
|
26
|
+
* details="Jhonatan Diaz"
|
|
27
|
+
* />
|
|
28
|
+
*
|
|
29
|
+
* // Lista completa
|
|
30
|
+
* <div>
|
|
31
|
+
* <DescriptionList term="Event" details="Bear Hug: Live in Concert" />
|
|
32
|
+
* <DescriptionList term="Amount" details="$120,000 COP" />
|
|
33
|
+
* <DescriptionList term="Fee" details="$20,000 COP" />
|
|
34
|
+
* </div>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const DescriptionList: import("react").ForwardRefExoticComponent<DescriptionListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
38
|
+
//# sourceMappingURL=DescriptionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DescriptionList.d.ts","sourceRoot":"","sources":["../../../src/components/DescriptionList/DescriptionList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,eAAe,iHAuD3B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente DescriptionList
|
|
4
|
+
*
|
|
5
|
+
* Componente para mostrar pares clave-valor en formato de dos columnas.
|
|
6
|
+
*/
|
|
7
|
+
export interface DescriptionListProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Término o etiqueta (columna izquierda)
|
|
10
|
+
* Mostrado en color secundario para diferenciarlo del valor
|
|
11
|
+
*
|
|
12
|
+
* @example "Customer", "Event", "Amount"
|
|
13
|
+
*/
|
|
14
|
+
term: string;
|
|
15
|
+
/**
|
|
16
|
+
* Detalles o valor (columna derecha)
|
|
17
|
+
* Mostrado en color primario como información principal
|
|
18
|
+
*
|
|
19
|
+
* @example "Jhonatan Diaz", "Bear Hug: Live in Concert", "$120,000 COP"
|
|
20
|
+
*/
|
|
21
|
+
details: string;
|
|
22
|
+
/**
|
|
23
|
+
* Clases CSS adicionales para el contenedor
|
|
24
|
+
*/
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DescriptionList.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DescriptionList.types.d.ts","sourceRoot":"","sources":["../../../src/components/DescriptionList/DescriptionList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DividerProps } from './Divider.types';
|
|
2
|
+
/**
|
|
3
|
+
* Divider del sistema de diseño Siesa
|
|
4
|
+
*
|
|
5
|
+
* Línea horizontal de 1px para separar contenido visual o semánticamente.
|
|
6
|
+
* Implementa dos variantes con soporte completo de dark mode.
|
|
7
|
+
*
|
|
8
|
+
* Mejores prácticas implementadas:
|
|
9
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
10
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
11
|
+
* - Tokens de color consistentes con la documentación
|
|
12
|
+
* - Type safety con TypeScript estricto
|
|
13
|
+
* - Componente semántico usando elemento <hr>
|
|
14
|
+
*
|
|
15
|
+
* @see docs/colors.md - Sistema de colores (border-primary, border-secondary)
|
|
16
|
+
* @see docs/spacing.md - Sistema de espaciado (altura de 1px)
|
|
17
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4096-8445 - Especificaciones Figma
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* // Default divider (más visible)
|
|
22
|
+
* <Divider />
|
|
23
|
+
* <Divider type="default" />
|
|
24
|
+
*
|
|
25
|
+
* // Soft divider (más sutil)
|
|
26
|
+
* <Divider type="soft" />
|
|
27
|
+
*
|
|
28
|
+
* // Con clases personalizadas
|
|
29
|
+
* <Divider className="my-6" />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare const Divider: import("react").ForwardRefExoticComponent<DividerProps & import("react").RefAttributes<HTMLHRElement>>;
|
|
33
|
+
//# sourceMappingURL=Divider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,OAAO,wGA4CnB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Tipo de divider
|
|
4
|
+
*/
|
|
5
|
+
export type DividerType = 'default' | 'soft';
|
|
6
|
+
/**
|
|
7
|
+
* Props del componente Divider
|
|
8
|
+
*/
|
|
9
|
+
export interface DividerProps extends HTMLAttributes<HTMLHRElement> {
|
|
10
|
+
/**
|
|
11
|
+
* Tipo de divider
|
|
12
|
+
* - default: Línea más visible (border-primary)
|
|
13
|
+
* - soft: Línea más sutil (border-secondary)
|
|
14
|
+
* @default 'default'
|
|
15
|
+
*/
|
|
16
|
+
type?: DividerType;
|
|
17
|
+
/**
|
|
18
|
+
* Clases CSS adicionales
|
|
19
|
+
*/
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Divider.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.types.d.ts","sourceRoot":"","sources":["../../../src/components/Divider/Divider.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,aAAa,CAAC;IACjE;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DropdownProps, DropdownItemProps, DropdownHeadingProps, DropdownDividerProps } from './Dropdown.types';
|
|
3
|
+
/**
|
|
4
|
+
* Componente Dropdown del sistema de diseño Siesa
|
|
5
|
+
* Basado en especificaciones de Figma con Tailwind CSS
|
|
6
|
+
*
|
|
7
|
+
* Mejores prácticas implementadas:
|
|
8
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
9
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
10
|
+
* - Tokens de color consistentes con la documentación
|
|
11
|
+
* - Type safety con TypeScript estricto
|
|
12
|
+
* - Accesibilidad con ARIA labels y keyboard navigation
|
|
13
|
+
* - Cierre automático al hacer click fuera
|
|
14
|
+
*
|
|
15
|
+
* @see docs/colors.md - Sistema de colores
|
|
16
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
17
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
18
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <Dropdown
|
|
23
|
+
* placeholder="Options"
|
|
24
|
+
* items={[
|
|
25
|
+
* { children: 'Account', icon: <UserIcon /> },
|
|
26
|
+
* { children: 'Settings', icon: <CogIcon /> },
|
|
27
|
+
* { isDivider: true },
|
|
28
|
+
* { children: 'Logout' },
|
|
29
|
+
* ]}
|
|
30
|
+
* />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const Dropdown: React.FC<DropdownProps>;
|
|
34
|
+
/**
|
|
35
|
+
* Componente DropdownItem
|
|
36
|
+
* Item individual dentro del menú dropdown
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <DropdownItem icon={<UserIcon />} shortcut="⌘ P">
|
|
41
|
+
* Profile
|
|
42
|
+
* </DropdownItem>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare const DropdownItem: React.FC<DropdownItemProps>;
|
|
46
|
+
/**
|
|
47
|
+
* Componente DropdownHeading
|
|
48
|
+
* Encabezado de sección dentro del menú dropdown
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* <DropdownHeading>My events</DropdownHeading>
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare const DropdownHeading: React.FC<DropdownHeadingProps>;
|
|
56
|
+
/**
|
|
57
|
+
* Componente DropdownDivider
|
|
58
|
+
* Separador visual entre items del menú dropdown
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```tsx
|
|
62
|
+
* <DropdownDivider />
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const DropdownDivider: React.FC<DropdownDividerProps>;
|
|
66
|
+
//# sourceMappingURL=Dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqN5C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqFpD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2B1D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsB1D,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { ReactNode, MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente Dropdown (trigger button)
|
|
4
|
+
*/
|
|
5
|
+
export interface DropdownProps {
|
|
6
|
+
/**
|
|
7
|
+
* Variante visual del dropdown
|
|
8
|
+
* - 'default': Botón con texto + ícono
|
|
9
|
+
* - 'icon-only': Solo ícono (sin texto)
|
|
10
|
+
* @default 'default'
|
|
11
|
+
*/
|
|
12
|
+
variant?: 'default' | 'icon-only';
|
|
13
|
+
/**
|
|
14
|
+
* Texto o contenido del botón trigger
|
|
15
|
+
*/
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Items del menú dropdown
|
|
19
|
+
*/
|
|
20
|
+
items: DropdownItemProps[];
|
|
21
|
+
/**
|
|
22
|
+
* Si el dropdown está abierto (controlado)
|
|
23
|
+
*/
|
|
24
|
+
open?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Callback cuando el dropdown cambia de estado
|
|
27
|
+
*/
|
|
28
|
+
onOpenChange?: (open: boolean) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Si el dropdown está deshabilitado
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Clases CSS adicionales para el trigger
|
|
36
|
+
*/
|
|
37
|
+
className?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Clases CSS adicionales para el menú
|
|
40
|
+
*/
|
|
41
|
+
menuClassName?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Label para accesibilidad (ARIA)
|
|
44
|
+
*/
|
|
45
|
+
ariaLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Placeholder cuando no hay children
|
|
48
|
+
* @default 'Options'
|
|
49
|
+
*/
|
|
50
|
+
placeholder?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Props del componente DropdownItem
|
|
54
|
+
*/
|
|
55
|
+
export interface DropdownItemProps {
|
|
56
|
+
/**
|
|
57
|
+
* Contenido del item
|
|
58
|
+
* No requerido cuando isDivider es true
|
|
59
|
+
*/
|
|
60
|
+
children?: ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Icono a mostrar antes del texto (izquierda)
|
|
63
|
+
*/
|
|
64
|
+
icon?: ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* Descripción secundaria del item
|
|
67
|
+
*/
|
|
68
|
+
description?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Atajo de teclado a mostrar (derecha)
|
|
71
|
+
*/
|
|
72
|
+
shortcut?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Si el item está deshabilitado
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
disabled?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Si el item está seleccionado
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
selected?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Función onClick del item
|
|
85
|
+
*/
|
|
86
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
87
|
+
/**
|
|
88
|
+
* Clases CSS adicionales
|
|
89
|
+
*/
|
|
90
|
+
className?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Indica si este item es un divider (separador)
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
isDivider?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Indica si este item es un heading (encabezado)
|
|
98
|
+
* @default false
|
|
99
|
+
*/
|
|
100
|
+
isHeading?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Props del componente DropdownHeading
|
|
104
|
+
*/
|
|
105
|
+
export interface DropdownHeadingProps {
|
|
106
|
+
/**
|
|
107
|
+
* Texto del heading
|
|
108
|
+
*/
|
|
109
|
+
children: ReactNode;
|
|
110
|
+
/**
|
|
111
|
+
* Clases CSS adicionales
|
|
112
|
+
*/
|
|
113
|
+
className?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Props del componente DropdownDivider
|
|
117
|
+
*/
|
|
118
|
+
export interface DropdownDividerProps {
|
|
119
|
+
/**
|
|
120
|
+
* Clases CSS adicionales
|
|
121
|
+
*/
|
|
122
|
+
className?: string;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=Dropdown.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.types.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/Dropdown.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAE3B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iconos para el componente Dropdown
|
|
3
|
+
* Usando heroicons-micro según especificaciones de Figma
|
|
4
|
+
*/
|
|
5
|
+
export declare const ChevronDownIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const CogIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const UserIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const BellIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare const CreditCardIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/icons.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe,+CAa3B,CAAC;AAEF,eAAO,MAAM,OAAO,+CAanB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CASpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAapB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAU1B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Dropdown, DropdownItem, DropdownHeading, DropdownDivider } from './Dropdown';
|
|
2
|
+
export type { DropdownProps, DropdownItemProps, DropdownHeadingProps, DropdownDividerProps, } from './Dropdown.types';
|
|
3
|
+
export { ChevronDownIcon, CogIcon, UserIcon, BellIcon, CreditCardIcon } from './icons';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtF,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|