siesa-ui-kit 1.0.6 → 1.0.8
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 +57 -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/style.css +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,75 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Estado de disponibilidad de la ubicación POS
|
|
4
|
+
* - available: Disponible (verde/lime)
|
|
5
|
+
* - occupied: Ocupada (naranja/yellow)
|
|
6
|
+
* - reserved: Reservada (morado/purple)
|
|
7
|
+
* - outOfService: Fuera de servicio (gris/zinc)
|
|
8
|
+
*/
|
|
9
|
+
export type POSLocationStatus = 'available' | 'occupied' | 'reserved' | 'outOfService';
|
|
10
|
+
/**
|
|
11
|
+
* Estado visual del botón
|
|
12
|
+
* - enabled: Estado normal (fondo blanco/dark-bg-primary)
|
|
13
|
+
* - actived: Estado activo/seleccionado (fondo con color del badge)
|
|
14
|
+
*/
|
|
15
|
+
export type POSLocationState = 'enabled' | 'actived';
|
|
16
|
+
/**
|
|
17
|
+
* Información de capacidad de la ubicación
|
|
18
|
+
*/
|
|
19
|
+
export interface POSLocationCapacity {
|
|
20
|
+
/**
|
|
21
|
+
* Número actual de mesas/espacios ocupados
|
|
22
|
+
*/
|
|
23
|
+
current: number;
|
|
24
|
+
/**
|
|
25
|
+
* Total de mesas/espacios disponibles
|
|
26
|
+
*/
|
|
27
|
+
total: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Props del componente POSLocationButton
|
|
31
|
+
*/
|
|
32
|
+
export interface POSLocationButtonProps {
|
|
33
|
+
/**
|
|
34
|
+
* Nombre de la ubicación (ej: "Antejardín", "Terraza", "Salón Principal")
|
|
35
|
+
*/
|
|
36
|
+
locationName: string;
|
|
37
|
+
/**
|
|
38
|
+
* Estado de disponibilidad de la ubicación
|
|
39
|
+
* @default 'available'
|
|
40
|
+
*/
|
|
41
|
+
status?: POSLocationStatus;
|
|
42
|
+
/**
|
|
43
|
+
* Estado visual del botón (enabled o actived)
|
|
44
|
+
* @default 'enabled'
|
|
45
|
+
*/
|
|
46
|
+
state?: POSLocationState;
|
|
47
|
+
/**
|
|
48
|
+
* Información de capacidad (mesas ocupadas/total)
|
|
49
|
+
* Ejemplo: { current: 1, total: 8 } → "1/8 mesas"
|
|
50
|
+
*/
|
|
51
|
+
capacity?: POSLocationCapacity;
|
|
52
|
+
/**
|
|
53
|
+
* Función a ejecutar al hacer clic en el botón
|
|
54
|
+
*/
|
|
55
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Si el botón está deshabilitado
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Clases CSS adicionales
|
|
63
|
+
*/
|
|
64
|
+
className?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Label para accesibilidad (ARIA)
|
|
67
|
+
*/
|
|
68
|
+
ariaLabel?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Si el botón ocupa todo el ancho disponible del contenedor padre
|
|
71
|
+
* @default true
|
|
72
|
+
*/
|
|
73
|
+
fullWidth?: boolean;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=POSLocationButton.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSLocationButton.types.d.ts","sourceRoot":"","sources":["../../../src/components/POSLocationButton/POSLocationButton.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEvF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Icono Check (✓) para estado Available
|
|
4
|
+
* Tamaño: 12x12px
|
|
5
|
+
*/
|
|
6
|
+
export declare const CheckIcon: React.FC<{
|
|
7
|
+
className?: string;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Icono X Mark para estado Occupied
|
|
11
|
+
* Tamaño: 12x12px
|
|
12
|
+
*/
|
|
13
|
+
export declare const XMarkIcon: React.FC<{
|
|
14
|
+
className?: string;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Icono Calendar para estado Reserved
|
|
18
|
+
* Tamaño: 12x12px
|
|
19
|
+
*/
|
|
20
|
+
export declare const CalendarIcon: React.FC<{
|
|
21
|
+
className?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Icono No Symbol (Prohibido) para estado Out of Service
|
|
25
|
+
* Tamaño: 12x12px
|
|
26
|
+
*/
|
|
27
|
+
export declare const NoSymbolIcon: React.FC<{
|
|
28
|
+
className?: string;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Icono de Usuario/Personas para mostrar capacidad
|
|
32
|
+
* Tamaño: 13x10px (según especificaciones de Figma)
|
|
33
|
+
*/
|
|
34
|
+
export declare const UsersIcon: React.FC<{
|
|
35
|
+
className?: string;
|
|
36
|
+
}>;
|
|
37
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/POSLocationButton/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { POSLocationButton } from './POSLocationButton';
|
|
2
|
+
export type { POSLocationButtonProps, POSLocationStatus, POSLocationState, POSLocationCapacity, } from './POSLocationButton.types';
|
|
3
|
+
export { CheckIcon, XMarkIcon, CalendarIcon, NoSymbolIcon, UsersIcon, } from './icons';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/POSLocationButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSNumberButtonProps } from './POSNumberButton.types';
|
|
3
|
+
/**
|
|
4
|
+
* Componente POSNumberButton del sistema de diseño Siesa
|
|
5
|
+
* Botón numérico especializado para sistemas POS (Point of Sale)
|
|
6
|
+
*
|
|
7
|
+
* Basado en especificaciones de Figma con Tailwind CSS
|
|
8
|
+
*
|
|
9
|
+
* **Características principales:**
|
|
10
|
+
* - Diseñado para pantallas táctiles y POS
|
|
11
|
+
* - Tipografía Display Tiny (48px Bold) para números grandes
|
|
12
|
+
* - Tres tamaños: Small (40x40), Medium (65x65), Large (80x80)
|
|
13
|
+
* - Opción de borde visible o sin borde
|
|
14
|
+
* - Estados: Default, Hover, Active, Disabled
|
|
15
|
+
* - Touch-friendly: active:scale-95 para feedback táctil
|
|
16
|
+
*
|
|
17
|
+
* **Variantes:**
|
|
18
|
+
* - `border=false`: Botón sin borde, hover cambia a primary
|
|
19
|
+
* - `border=true`: Botón con borde, hover resalta el borde
|
|
20
|
+
*
|
|
21
|
+
* **Tamaños:**
|
|
22
|
+
* - `s` (40x40px): Compacto, para teclados numéricos pequeños
|
|
23
|
+
* - `m` (65x65px): Mediano, tamaño intermedio
|
|
24
|
+
* - `l` (80x80px): Grande, tamaño por defecto para POS
|
|
25
|
+
*
|
|
26
|
+
* **Mejores prácticas implementadas:**
|
|
27
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
28
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
29
|
+
* - Tokens de color consistentes con la documentación
|
|
30
|
+
* - Type safety con TypeScript estricto
|
|
31
|
+
* - Accesibilidad con ARIA labels
|
|
32
|
+
* - Feedback visual inmediato con active:scale-95
|
|
33
|
+
*
|
|
34
|
+
* @see docs/colors.md - Sistema de colores
|
|
35
|
+
* @see docs/typography.md - Sistema tipográfico (Display Tiny)
|
|
36
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
37
|
+
* @see src/components/Button/Button.tsx - Componente Button de referencia
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* // Botón numérico grande (POS)
|
|
42
|
+
* <POSNumberButton size="l">1</POSNumberButton>
|
|
43
|
+
*
|
|
44
|
+
* // Botón con borde
|
|
45
|
+
* <POSNumberButton size="l" border>2</POSNumberButton>
|
|
46
|
+
*
|
|
47
|
+
* // Botón compacto
|
|
48
|
+
* <POSNumberButton size="s">3</POSNumberButton>
|
|
49
|
+
*
|
|
50
|
+
* // Teclado numérico completo
|
|
51
|
+
* <div className="grid grid-cols-3 gap-2">
|
|
52
|
+
* {[1, 2, 3, 4, 5, 6, 7, 8, 9].map((num) => (
|
|
53
|
+
* <POSNumberButton key={num} size="m" onClick={() => handleInput(num)}>
|
|
54
|
+
* {num}
|
|
55
|
+
* </POSNumberButton>
|
|
56
|
+
* ))}
|
|
57
|
+
* </div>
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare const POSNumberButton: React.FC<POSNumberButtonProps>;
|
|
61
|
+
//# sourceMappingURL=POSNumberButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSNumberButton.d.ts","sourceRoot":"","sources":["../../../src/components/POSNumberButton/POSNumberButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsH1D,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ReactNode, MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente POSNumberButton
|
|
4
|
+
*/
|
|
5
|
+
export interface POSNumberButtonProps {
|
|
6
|
+
/**
|
|
7
|
+
* Tamaño del botón
|
|
8
|
+
* @default 'l'
|
|
9
|
+
*/
|
|
10
|
+
size?: 's' | 'm' | 'l';
|
|
11
|
+
/**
|
|
12
|
+
* Si el botón tiene borde visible
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
border?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Contenido del botón (número o texto)
|
|
18
|
+
*/
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Si el botón está deshabilitado
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Clases CSS adicionales
|
|
27
|
+
*/
|
|
28
|
+
className?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Handler para evento click
|
|
31
|
+
*/
|
|
32
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Label para accesibilidad (ARIA)
|
|
35
|
+
*/
|
|
36
|
+
ariaLabel?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Tipo del botón HTML
|
|
39
|
+
* @default 'button'
|
|
40
|
+
*/
|
|
41
|
+
htmlType?: 'button' | 'submit' | 'reset';
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=POSNumberButton.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSNumberButton.types.d.ts","sourceRoot":"","sources":["../../../src/components/POSNumberButton/POSNumberButton.types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,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,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/POSNumberButton/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSProductButtonProps } from './POSProductButton.types';
|
|
3
|
+
/**
|
|
4
|
+
* Componente POSProductButton del sistema de diseño Siesa
|
|
5
|
+
*
|
|
6
|
+
* Botón especializado para sistemas POS que combina una imagen de producto
|
|
7
|
+
* con un label descriptivo. Diseñado para selección rápida de productos.
|
|
8
|
+
*
|
|
9
|
+
* **Estados disponibles:**
|
|
10
|
+
* - `default`: Estado normal con fondo blanco
|
|
11
|
+
* - `active`: Estado seleccionado con fondo azul claro y texto azul
|
|
12
|
+
* - `disabled`: Estado deshabilitado con opacidad reducida
|
|
13
|
+
*
|
|
14
|
+
* **Características:**
|
|
15
|
+
* - Imagen con aspect ratio 158:80 (proporción de Figma)
|
|
16
|
+
* - Label con tipografía Label Small (14px Bold)
|
|
17
|
+
* - Soporte completo de dark mode
|
|
18
|
+
* - Estados hover, active y focus
|
|
19
|
+
* - Transiciones suaves
|
|
20
|
+
*
|
|
21
|
+
* **Mejores prácticas implementadas:**
|
|
22
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
23
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
24
|
+
* - Focus rings adaptativos para light y dark mode
|
|
25
|
+
* - Tokens de color consistentes con la documentación
|
|
26
|
+
* - Estados hover y active completos
|
|
27
|
+
* - Tipografía Label Small (14px Bold) según sistema de diseño
|
|
28
|
+
*
|
|
29
|
+
* @see docs/colors.md - Sistema de colores
|
|
30
|
+
* @see docs/typography.md - Sistema tipográfico (Label)
|
|
31
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
32
|
+
* @see docs/border-radius.md - Border radius
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* // Botón de producto normal
|
|
37
|
+
* <POSProductButton
|
|
38
|
+
* image="/images/parrilla.jpg"
|
|
39
|
+
* label="A la parrilla"
|
|
40
|
+
* onClick={() => console.log('Producto seleccionado')}
|
|
41
|
+
* />
|
|
42
|
+
*
|
|
43
|
+
* // Botón de producto activo/seleccionado
|
|
44
|
+
* <POSProductButton
|
|
45
|
+
* image="/images/parrilla.jpg"
|
|
46
|
+
* label="A la parrilla"
|
|
47
|
+
* active={true}
|
|
48
|
+
* />
|
|
49
|
+
*
|
|
50
|
+
* // Botón de producto deshabilitado
|
|
51
|
+
* <POSProductButton
|
|
52
|
+
* image="/images/parrilla.jpg"
|
|
53
|
+
* label="A la parrilla"
|
|
54
|
+
* disabled={true}
|
|
55
|
+
* />
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const POSProductButton: React.FC<POSProductButtonProps>;
|
|
59
|
+
//# sourceMappingURL=POSProductButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSProductButton.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductButton/POSProductButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6F5D,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente POSProductButton
|
|
4
|
+
*
|
|
5
|
+
* Botón de producto para sistemas POS con imagen y label
|
|
6
|
+
*/
|
|
7
|
+
export interface POSProductButtonProps {
|
|
8
|
+
/**
|
|
9
|
+
* URL de la imagen del producto
|
|
10
|
+
*/
|
|
11
|
+
image: string;
|
|
12
|
+
/**
|
|
13
|
+
* Texto del producto (nombre o descripción)
|
|
14
|
+
* @example "A la parrilla"
|
|
15
|
+
*/
|
|
16
|
+
label: string;
|
|
17
|
+
/**
|
|
18
|
+
* Si el botón está en estado activo/seleccionado
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
active?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Si el botón está deshabilitado
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Handler para evento click
|
|
29
|
+
*/
|
|
30
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Clases CSS adicionales
|
|
33
|
+
*/
|
|
34
|
+
className?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Label para accesibilidad (ARIA)
|
|
37
|
+
*/
|
|
38
|
+
ariaLabel?: string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=POSProductButton.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSProductButton.types.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductButton/POSProductButton.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;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;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSProductCardProps } from './POSProductCard.types';
|
|
3
|
+
/**
|
|
4
|
+
* Componente POSProductCard del sistema de diseño Siesa
|
|
5
|
+
*
|
|
6
|
+
* Card especializado para sistemas POS que muestra información de producto
|
|
7
|
+
* con imagen, nombre, precio y botón de agregar. Diseñado para catálogos
|
|
8
|
+
* de productos y selección rápida en punto de venta.
|
|
9
|
+
*
|
|
10
|
+
* **Estados disponibles:**
|
|
11
|
+
* - `enabled`: Estado normal
|
|
12
|
+
* - Light: fondo blanco (#ffffff), texto negro (#18181b)
|
|
13
|
+
* - Dark: fondo oscuro (#18181b), texto claro (#f4f4f5)
|
|
14
|
+
* - `active`: Estado seleccionado
|
|
15
|
+
* - Light: fondo azul claro (#dbeefe), texto azul (#0e79fd)
|
|
16
|
+
* - Dark: fondo azul oscuro (#112d57), texto celeste (#93d1fd)
|
|
17
|
+
* - `disabled`: Estado deshabilitado con opacidad reducida
|
|
18
|
+
*
|
|
19
|
+
* **Características:**
|
|
20
|
+
* - Imagen de producto con aspect ratio fijo y rounded-lg
|
|
21
|
+
* - Nombre del producto con tipografía Label Small (14px Bold)
|
|
22
|
+
* - Precio con tipografía Heading Small (24px Bold) y letter-spacing -2.5%
|
|
23
|
+
* - Botón "Agregar" reutiliza el componente Button del sistema
|
|
24
|
+
* - Soporte completo de dark mode pixel-perfect
|
|
25
|
+
* - Transiciones suaves
|
|
26
|
+
*
|
|
27
|
+
* **Mejores prácticas implementadas:**
|
|
28
|
+
* - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
|
|
29
|
+
* - Dark mode con estrategia 'class' (darkMode: 'class')
|
|
30
|
+
* - Focus rings adaptativos para light y dark mode
|
|
31
|
+
* - Tokens de color consistentes con Figma
|
|
32
|
+
* - Estados hover y active completos
|
|
33
|
+
*
|
|
34
|
+
* @see docs/colors.md - Sistema de colores
|
|
35
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
36
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
37
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
38
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-31336 - Diseño Figma
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* // Card de producto normal
|
|
43
|
+
* <POSProductCard
|
|
44
|
+
* image="/images/caprese.jpg"
|
|
45
|
+
* productName="Ensalada Caprese"
|
|
46
|
+
* price="$ 40.000"
|
|
47
|
+
* onAddClick={() => console.log('Producto agregado')}
|
|
48
|
+
* />
|
|
49
|
+
*
|
|
50
|
+
* // Card de producto activo/seleccionado
|
|
51
|
+
* <POSProductCard
|
|
52
|
+
* image="/images/caprese.jpg"
|
|
53
|
+
* productName="Ensalada Caprese"
|
|
54
|
+
* price="$ 40.000"
|
|
55
|
+
* active={true}
|
|
56
|
+
* />
|
|
57
|
+
*
|
|
58
|
+
* // Card de producto deshabilitado
|
|
59
|
+
* <POSProductCard
|
|
60
|
+
* image="/images/caprese.jpg"
|
|
61
|
+
* productName="Ensalada Caprese"
|
|
62
|
+
* price="$ 40.000"
|
|
63
|
+
* disabled={true}
|
|
64
|
+
* />
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare const POSProductCard: React.FC<POSProductCardProps>;
|
|
68
|
+
//# sourceMappingURL=POSProductCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSProductCard.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductCard/POSProductCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0IxD,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props del componente POSProductCard
|
|
4
|
+
*
|
|
5
|
+
* Card especializado para sistemas de punto de venta (POS) que muestra
|
|
6
|
+
* información de producto con imagen, nombre, precio y botón de agregar.
|
|
7
|
+
*
|
|
8
|
+
* El botón "Agregar" reutiliza el componente Button del sistema.
|
|
9
|
+
*
|
|
10
|
+
* @see docs/colors.md - Sistema de colores
|
|
11
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
12
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
13
|
+
* @see docs/shadows.md - Sistema de sombras
|
|
14
|
+
* @see src/components/Button - Componente Button reutilizado
|
|
15
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4368-31336 - Diseño Figma
|
|
16
|
+
*/
|
|
17
|
+
export interface POSProductCardProps {
|
|
18
|
+
/**
|
|
19
|
+
* URL de la imagen del producto
|
|
20
|
+
* Se muestra en la parte superior del card con aspect-ratio fijo
|
|
21
|
+
*/
|
|
22
|
+
image: string;
|
|
23
|
+
/**
|
|
24
|
+
* Nombre del producto a mostrar
|
|
25
|
+
* Se muestra con tipografía Label Small (14px Bold)
|
|
26
|
+
*/
|
|
27
|
+
productName: string;
|
|
28
|
+
/**
|
|
29
|
+
* Precio del producto formateado como string
|
|
30
|
+
* Se muestra con tipografía Heading Small (24px Bold)
|
|
31
|
+
* @example "$ 40.000"
|
|
32
|
+
*/
|
|
33
|
+
price: string;
|
|
34
|
+
/**
|
|
35
|
+
* Texto del botón de acción
|
|
36
|
+
* @default "Agregar"
|
|
37
|
+
*/
|
|
38
|
+
buttonText?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Estado activo/seleccionado del card
|
|
41
|
+
* Cuando está activo, el fondo cambia a azul claro y el texto a azul
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
active?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Si el card está deshabilitado
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Handler para cuando se hace clic en el botón "Agregar"
|
|
52
|
+
*/
|
|
53
|
+
onAddClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Handler para cuando se hace clic en el card (no en el botón)
|
|
56
|
+
*/
|
|
57
|
+
onCardClick?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Clases CSS adicionales para el card
|
|
60
|
+
*/
|
|
61
|
+
className?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Label de accesibilidad para el card
|
|
64
|
+
*/
|
|
65
|
+
ariaLabel?: string;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=POSProductCard.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSProductCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductCard/POSProductCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Icono Plus (heroicons-micro/plus)
|
|
4
|
+
* Usado en el botón "Agregar" del POSProductCard
|
|
5
|
+
* Tamaño: 16x16px según especificación de Figma
|
|
6
|
+
*/
|
|
7
|
+
export declare const PlusIcon: React.FC<{
|
|
8
|
+
className?: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductCard/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { POSProductSidebarItemsProps } from './POSProductSidebarItems.types';
|
|
3
|
+
/**
|
|
4
|
+
* POSProductSidebarItems - Componente de item de producto para sidebar POS
|
|
5
|
+
*
|
|
6
|
+
* Componente pixel-perfect basado en Figma (node 4507-28013) para mostrar
|
|
7
|
+
* productos en el sidebar de un sistema POS con soporte completo para dark mode.
|
|
8
|
+
*
|
|
9
|
+
* **Características:**
|
|
10
|
+
* - Badge de categoría con 19 colores configurables
|
|
11
|
+
* - Referencia del producto (text-[10px]/leading-3)
|
|
12
|
+
* - Precio total (text-xs/font-bold)
|
|
13
|
+
* - Nombre del producto (text-xs/font-bold)
|
|
14
|
+
* - Descripción con items opcionales (fondo terciario)
|
|
15
|
+
* - Control de cantidad integrado (Quantity component)
|
|
16
|
+
* - Botón de eliminar con color de error
|
|
17
|
+
*
|
|
18
|
+
* **Especificaciones de Figma:**
|
|
19
|
+
* - Ancho base: 272px
|
|
20
|
+
* - Spacing: gap-1 (4px) entre elementos del producto, gap-2 (8px) entre secciones
|
|
21
|
+
* - Badge: rounded-md (6px), px-1.5, py-1, text-xs/leading-4
|
|
22
|
+
* - Description section: bg-background-tertiary, p-2, rounded-lg
|
|
23
|
+
* - Delete icon: 24x24px, color red-700
|
|
24
|
+
*
|
|
25
|
+
* **Dark Mode:**
|
|
26
|
+
* Los colores se adaptan automáticamente en dark mode:
|
|
27
|
+
* - Textos principales: text-content-primary → dark:text-dark-content-primary
|
|
28
|
+
* - Description background: bg-background-tertiary → dark:bg-zinc-700
|
|
29
|
+
* - Badge colores: Mantienen contraste en ambos modos
|
|
30
|
+
* - Delete button: text-red-700 → dark:text-red-500
|
|
31
|
+
*
|
|
32
|
+
* **Orden de modificadores:** {responsive}:{dark}:{state}:{utility}
|
|
33
|
+
*
|
|
34
|
+
* @see docs/colors.md - Sistema de colores
|
|
35
|
+
* @see docs/typography.md - Sistema tipográfico
|
|
36
|
+
* @see docs/spacing.md - Sistema de espaciado
|
|
37
|
+
* @see https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4507-28013 - Diseño Figma
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* <POSProductSidebarItems
|
|
42
|
+
* categoryLabel="Entradas"
|
|
43
|
+
* productRef="00147258369"
|
|
44
|
+
* price="$ 40,000.00"
|
|
45
|
+
* productName="Nombre producto"
|
|
46
|
+
* descriptionItems={[
|
|
47
|
+
* { description: "Papas limón mediana", price: "$ 40,000.00" },
|
|
48
|
+
* { description: "Papas limón mediana", price: "$ 40,000.00" },
|
|
49
|
+
* ]}
|
|
50
|
+
* quantity={0}
|
|
51
|
+
* onQuantityChange={(qty) => console.log(qty)}
|
|
52
|
+
* onDelete={() => console.log('Eliminar')}
|
|
53
|
+
* />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare const POSProductSidebarItems: React.FC<POSProductSidebarItemsProps>;
|
|
57
|
+
//# sourceMappingURL=POSProductSidebarItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POSProductSidebarItems.d.ts","sourceRoot":"","sources":["../../../src/components/POSProductSidebarItems/POSProductSidebarItems.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA+QxE,CAAC"}
|