siesa-ui-kit 1.0.2 → 1.0.4
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 -115
- package/bin/install.cjs +502 -502
- package/bin/prepare-publish.cjs +28 -28
- package/bin/restore-folders.cjs +28 -28
- package/claude/agents/siesa-ui-kit-specialist.md +2445 -0
- package/claude/prompts/component-template.md +121 -0
- package/claude/prompts/siesa-ui-kit.md +28 -0
- package/claude/settings.local.json +67 -2
- package/dist/components/Button/icons.d.ts +6 -5
- package/dist/components/Button/icons.d.ts.map +1 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +21 -0
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -1
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts +122 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts +139 -0
- package/dist/components/NavigationRailCommercial/NavigationRailCommercial.types.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/icons.d.ts +33 -0
- package/dist/components/NavigationRailCommercial/icons.d.ts.map +1 -0
- package/dist/components/NavigationRailCommercial/index.d.ts +4 -0
- package/dist/components/NavigationRailCommercial/index.d.ts.map +1 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +7 -0
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +41 -0
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +15 -29
- package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/icons.d.ts +6 -2
- package/dist/components/Select/icons.d.ts.map +1 -1
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/siesa-ui-kit.cjs +404 -190
- package/dist/siesa-ui-kit.cjs.map +1 -1
- package/dist/siesa-ui-kit.mjs +6590 -1506
- package/dist/siesa-ui-kit.mjs.map +1 -1
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts +48 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.d.ts.map +1 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts +49 -0
- package/dist/views/LayoutCommercial/LayoutCommercial.types.d.ts.map +1 -0
- package/dist/views/LayoutCommercial/index.d.ts +3 -0
- package/dist/views/LayoutCommercial/index.d.ts.map +1 -0
- package/docs/icons.md +12 -31
- package/package.json +111 -110
- package/src/components/Avatar/Avatar.stories.tsx +494 -494
- package/src/components/Button/Button.stories.tsx +950 -950
- package/src/components/Button/Button.tsx +337 -337
- package/src/components/Button/Button.types.ts +180 -180
- package/src/components/Button/icons.tsx +23 -62
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -250
- package/src/components/Divider/Divider.stories.tsx +263 -263
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.stories.tsx +317 -317
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.tsx +307 -287
- package/src/components/DropdownItemCollapsible/DropdownItemCollapsible.types.ts +136 -111
- package/src/components/DropdownItemCollapsible/README.md +264 -264
- package/src/components/DropdownItemCollapsible/icons.tsx +57 -57
- package/src/components/DropdownItemCollapsible/index.ts +12 -12
- package/src/components/DropdownItemHeading/DropdownItemHeading.stories.tsx +386 -386
- package/src/components/DropdownItemHeading/DropdownItemHeading.tsx +216 -216
- package/src/components/DropdownItemHeading/DropdownItemHeading.types.ts +93 -93
- package/src/components/DropdownItemHeading/README.md +573 -573
- package/src/components/DropdownItemHeading/icons.tsx +125 -125
- package/src/components/DropdownItemHeading/index.ts +3 -3
- package/src/components/Input/Input.stories.tsx +583 -583
- package/src/components/LoginView/LoginView.stories.tsx +148 -148
- package/src/components/LoginView/LoginView.tsx +426 -426
- package/src/components/LoginView/LoginView.types.ts +52 -52
- package/src/components/LoginView/README.md +396 -396
- package/src/components/LoginView/icons.tsx +85 -85
- package/src/components/LoginView/index.ts +3 -3
- package/src/components/Navbar/Navbar.stories.tsx +810 -810
- package/src/components/Navbar/Navbar.tsx +755 -755
- package/src/components/Navbar/Navbar.types.ts +219 -219
- package/src/components/Navbar/README.md +279 -279
- package/src/components/Navbar/index.ts +8 -8
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.stories.tsx +464 -0
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.tsx +301 -0
- package/src/components/NavigationRailCommercial/NavigationRailCommercial.types.ts +162 -0
- package/src/components/NavigationRailCommercial/README.md +251 -0
- package/src/components/NavigationRailCommercial/icons.tsx +54 -0
- package/src/components/NavigationRailCommercial/index.ts +6 -0
- package/src/components/NavigationRailItem/NavigationRailItem.stories.tsx +667 -667
- package/src/components/NavigationRailItem/NavigationRailItem.tsx +314 -313
- package/src/components/NavigationRailItem/NavigationRailItem.types.ts +175 -167
- package/src/components/NavigationRailItem/README.md +476 -476
- package/src/components/NavigationRailItem/index.ts +2 -2
- package/src/components/NavigationRailPanel/NavigationRailPanel.stories.tsx +462 -462
- package/src/components/NavigationRailPanel/NavigationRailPanel.tsx +332 -332
- package/src/components/NavigationRailPanel/NavigationRailPanel.types.ts +178 -178
- package/src/components/NavigationRailPanel/README.md +461 -461
- package/src/components/NavigationRailPanel/index.ts +6 -6
- package/src/components/NavigationRailTypes/NavigationRailTypes.stories.tsx +682 -528
- package/src/components/NavigationRailTypes/NavigationRailTypes.tsx +363 -378
- package/src/components/NavigationRailTypes/NavigationRailTypes.types.ts +178 -130
- package/src/components/NavigationRailTypes/README.md +573 -573
- package/src/components/NavigationRailTypes/icons.tsx +76 -141
- package/src/components/NavigationRailTypes/index.ts +7 -7
- package/src/components/Notification/Notification.stories.tsx +513 -513
- package/src/components/Notification/Notification.tsx +145 -145
- package/src/components/Notification/Notification.types.ts +142 -142
- package/src/components/Notification/README.md +409 -409
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -235
- package/src/components/POSConvention/POSConvention.tsx +129 -129
- package/src/components/POSConvention/POSConvention.types.ts +38 -38
- package/src/components/POSConvention/README.md +123 -123
- package/src/components/POSConvention/icons.tsx +45 -45
- package/src/components/POSConvention/index.ts +3 -3
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -531
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -247
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -87
- package/src/components/POSLocationButton/README.md +253 -253
- package/src/components/POSLocationButton/icons.tsx +120 -120
- package/src/components/POSLocationButton/index.ts +14 -14
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -415
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -179
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -51
- package/src/components/POSNumberButton/README.md +321 -321
- package/src/components/POSNumberButton/index.ts +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -318
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -642
- package/src/components/POSProductCard/POSProductCard.tsx +208 -208
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -76
- package/src/components/POSProductCard/README.md +179 -179
- package/src/components/POSProductCard/icons.tsx +26 -26
- package/src/components/POSProductCard/index.ts +2 -2
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -753
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -332
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -119
- package/src/components/POSProductSidebarItems/README.md +198 -198
- package/src/components/POSProductSidebarItems/icons.tsx +21 -21
- package/src/components/POSProductSidebarItems/index.ts +3 -3
- package/src/components/POSTable/POSTable.stories.tsx +737 -737
- package/src/components/POSTable/POSTable.tsx +401 -401
- package/src/components/POSTable/README.md +286 -286
- package/src/components/Quantity/Quantity.stories.tsx +457 -457
- package/src/components/Radio/Radio.stories.tsx +523 -523
- package/src/components/Radio/Radio.tsx +1 -1
- package/src/components/Select/Select.stories.tsx +32 -0
- package/src/components/Select/Select.tsx +457 -454
- package/src/components/Select/icons.tsx +16 -41
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -129
- package/src/components/SignUpView/SignUpView.tsx +503 -503
- package/src/components/SignUpView/SignUpView.types.ts +58 -58
- package/src/components/SignUpView/icons.tsx +71 -71
- package/src/components/SignUpView/index.ts +3 -3
- package/src/components/Switch/README.md +112 -112
- package/src/components/Switch/Switch.stories.tsx +550 -550
- package/src/components/Switch/Switch.tsx +246 -246
- package/src/components/Switch/Switch.types.ts +67 -67
- package/src/components/Table/Table.stories.tsx +805 -805
- package/src/components/Tabs/README.md +201 -201
- package/src/components/Tabs/Tabs.stories.tsx +580 -580
- package/src/components/Tabs/Tabs.tsx +356 -356
- package/src/components/Tabs/Tabs.types.ts +127 -127
- package/src/components/Tabs/icons.tsx +129 -129
- package/src/components/Tabs/index.ts +11 -11
- package/src/components/Textarea/Textarea.stories.tsx +535 -535
- package/src/index.ts +133 -102
- package/src/views/LayoutCommercial/LayoutCommercial.stories.tsx +374 -0
- package/src/views/LayoutCommercial/LayoutCommercial.tsx +125 -0
- package/src/views/LayoutCommercial/LayoutCommercial.types.ts +54 -0
- package/src/views/LayoutCommercial/README.md +286 -0
- package/src/views/LayoutCommercial/index.ts +2 -0
- package/src/views/ListView/ListView.stories.tsx +329 -329
- package/src/views/ListView/ListView.tsx +570 -570
- package/src/views/ListView/ListView.types.ts +211 -211
- package/src/views/ListView/icons.tsx +282 -282
- package/src/views/ListView/index.ts +11 -11
- package/src/views/LoginView/LoginView.tsx +426 -426
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -344
- package/src/views/ProductsView/ProductsView.tsx +480 -480
- package/src/views/ProductsView/ProductsView.types.ts +238 -238
- package/src/views/ProductsView/README.md +312 -312
- package/src/views/ProductsView/icons.tsx +38 -38
- package/src/views/ProductsView/index.ts +8 -8
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -376
- package/src/views/SignUpView/SignUpView.tsx +503 -503
- package/src/views/TableLayoutView/README.md +268 -268
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -235
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -461
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -209
- package/src/views/TableLayoutView/icons.tsx +113 -113
- package/src/views/TableLayoutView/index.ts +6 -6
- package/storybook/main.ts +19 -19
- package/storybook/preview.tsx +84 -84
- package/storybook/vitest.setup.ts +6 -6
- package/tailwind.config.js +128 -128
|
@@ -1,209 +1,209 @@
|
|
|
1
|
-
import type { ConventionStatus } from '../../components/POSConvention/POSConvention.types';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Estado de una ubicación/salón
|
|
5
|
-
*/
|
|
6
|
-
export interface Location {
|
|
7
|
-
/**
|
|
8
|
-
* ID único de la ubicación
|
|
9
|
-
*/
|
|
10
|
-
id: string;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Nombre de la ubicación (ej: "Antejardín", "Terraza", "Bar")
|
|
14
|
-
*/
|
|
15
|
-
name: string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Estado general de la ubicación
|
|
19
|
-
*/
|
|
20
|
-
status: ConventionStatus;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Capacidad actual (mesas ocupadas/total)
|
|
24
|
-
*/
|
|
25
|
-
capacity: {
|
|
26
|
-
current: number;
|
|
27
|
-
total: number;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Estado de mesa compatible con POSTable
|
|
33
|
-
* Nota: 'busy' se usa en lugar de 'occupied' para mantener compatibilidad con POSTable
|
|
34
|
-
*/
|
|
35
|
-
export type TableStatus = 'available' | 'busy' | 'reserved';
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Mesa en el layout
|
|
39
|
-
*/
|
|
40
|
-
export interface TableItem {
|
|
41
|
-
/**
|
|
42
|
-
* Número de la mesa (ej: "01", "02")
|
|
43
|
-
*/
|
|
44
|
-
tableNumber: string;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Estado actual de la mesa
|
|
48
|
-
* Nota: usa 'busy' en lugar de 'occupied' para POSTable
|
|
49
|
-
*/
|
|
50
|
-
status: TableStatus;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Forma de la mesa
|
|
54
|
-
*/
|
|
55
|
-
shape: 'square' | 'circle' | 'rectangle' | 'oval';
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Cantidad de sillas (2, 4, 6, 8)
|
|
59
|
-
*/
|
|
60
|
-
chairs: 2 | 4 | 6 | 8;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Si la mesa está actualmente seleccionada
|
|
64
|
-
*/
|
|
65
|
-
isActive?: boolean;
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Posición en el grid (opcional, para layout libre)
|
|
69
|
-
*/
|
|
70
|
-
position?: {
|
|
71
|
-
x: number;
|
|
72
|
-
y: number;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Props del componente TableLayoutView
|
|
78
|
-
*/
|
|
79
|
-
export interface TableLayoutViewProps {
|
|
80
|
-
/**
|
|
81
|
-
* Lista de ubicaciones/salones disponibles
|
|
82
|
-
*/
|
|
83
|
-
locations?: Location[];
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* ID de la ubicación actualmente seleccionada
|
|
87
|
-
*/
|
|
88
|
-
activeLocationId?: string;
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Lista de mesas en el layout actual
|
|
92
|
-
*/
|
|
93
|
-
tables?: TableItem[];
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Título del área de mesas (ej: "Mesas de Antejardín")
|
|
97
|
-
*/
|
|
98
|
-
tablesTitle?: string;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Si se está mostrando el panel de selección de personas
|
|
102
|
-
*/
|
|
103
|
-
showPeopleCountPanel?: boolean;
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Información de la mesa seleccionada para el panel
|
|
107
|
-
*/
|
|
108
|
-
selectedTable?: {
|
|
109
|
-
locationName: string;
|
|
110
|
-
tableName: string;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Cantidad de personas seleccionada
|
|
115
|
-
*/
|
|
116
|
-
peopleCount?: number;
|
|
117
|
-
|
|
118
|
-
// ===== CALLBACKS =====
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Callback cuando se selecciona una ubicación/salón
|
|
122
|
-
*/
|
|
123
|
-
onLocationSelect?: (locationId: string) => void;
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Callback cuando se selecciona una mesa
|
|
127
|
-
*/
|
|
128
|
-
onTableSelect?: (tableNumber: string) => void;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Callback cuando se hace clic en "Crear Mesas"
|
|
132
|
-
*/
|
|
133
|
-
onCreateTables?: () => void;
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Callback cuando se hace clic en "Unir Mesas"
|
|
137
|
-
*/
|
|
138
|
-
onMergeTables?: () => void;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Callback cuando se hace clic en "Separar Mesas"
|
|
142
|
-
*/
|
|
143
|
-
onSplitTables?: () => void;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Callback cuando se selecciona un número de personas
|
|
147
|
-
*/
|
|
148
|
-
onPeopleCountSelect?: (count: number) => void;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Callback cuando se hace clic en "Asignar"
|
|
152
|
-
*/
|
|
153
|
-
onAssignTable?: () => void;
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Callback cuando se hace clic en "Transferir"
|
|
157
|
-
*/
|
|
158
|
-
onTransferTable?: () => void;
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Callback cuando se hace clic en "Cubiertos"
|
|
162
|
-
*/
|
|
163
|
-
onSetCutlery?: () => void;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Callback cuando se cierra el panel de personas
|
|
167
|
-
*/
|
|
168
|
-
onClosePeoplePanel?: () => void;
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Callback cuando cambia el switch de la mesa
|
|
172
|
-
*/
|
|
173
|
-
onTableSwitchChange?: (checked: boolean) => void;
|
|
174
|
-
|
|
175
|
-
// ===== ESTADOS DE CARGA =====
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Si se está cargando información
|
|
179
|
-
*/
|
|
180
|
-
isLoading?: boolean;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Mensaje de error (si existe)
|
|
184
|
-
*/
|
|
185
|
-
errorMessage?: string;
|
|
186
|
-
|
|
187
|
-
// ===== CUSTOMIZACIÓN =====
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Tipo de layout para las mesas:
|
|
191
|
-
* - 'grid': Grid automático con separación uniforme (por defecto)
|
|
192
|
-
* - 'free': Posicionamiento libre usando position.x/y de cada mesa
|
|
193
|
-
*/
|
|
194
|
-
tableLayout?: 'grid' | 'free';
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Clases CSS adicionales para el contenedor
|
|
198
|
-
*/
|
|
199
|
-
className?: string;
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Información del usuario para el navbar
|
|
203
|
-
*/
|
|
204
|
-
userInfo?: {
|
|
205
|
-
avatar: string;
|
|
206
|
-
name: string;
|
|
207
|
-
role: string;
|
|
208
|
-
};
|
|
209
|
-
}
|
|
1
|
+
import type { ConventionStatus } from '../../components/POSConvention/POSConvention.types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Estado de una ubicación/salón
|
|
5
|
+
*/
|
|
6
|
+
export interface Location {
|
|
7
|
+
/**
|
|
8
|
+
* ID único de la ubicación
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Nombre de la ubicación (ej: "Antejardín", "Terraza", "Bar")
|
|
14
|
+
*/
|
|
15
|
+
name: string;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Estado general de la ubicación
|
|
19
|
+
*/
|
|
20
|
+
status: ConventionStatus;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Capacidad actual (mesas ocupadas/total)
|
|
24
|
+
*/
|
|
25
|
+
capacity: {
|
|
26
|
+
current: number;
|
|
27
|
+
total: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Estado de mesa compatible con POSTable
|
|
33
|
+
* Nota: 'busy' se usa en lugar de 'occupied' para mantener compatibilidad con POSTable
|
|
34
|
+
*/
|
|
35
|
+
export type TableStatus = 'available' | 'busy' | 'reserved';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Mesa en el layout
|
|
39
|
+
*/
|
|
40
|
+
export interface TableItem {
|
|
41
|
+
/**
|
|
42
|
+
* Número de la mesa (ej: "01", "02")
|
|
43
|
+
*/
|
|
44
|
+
tableNumber: string;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Estado actual de la mesa
|
|
48
|
+
* Nota: usa 'busy' en lugar de 'occupied' para POSTable
|
|
49
|
+
*/
|
|
50
|
+
status: TableStatus;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Forma de la mesa
|
|
54
|
+
*/
|
|
55
|
+
shape: 'square' | 'circle' | 'rectangle' | 'oval';
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Cantidad de sillas (2, 4, 6, 8)
|
|
59
|
+
*/
|
|
60
|
+
chairs: 2 | 4 | 6 | 8;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Si la mesa está actualmente seleccionada
|
|
64
|
+
*/
|
|
65
|
+
isActive?: boolean;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Posición en el grid (opcional, para layout libre)
|
|
69
|
+
*/
|
|
70
|
+
position?: {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Props del componente TableLayoutView
|
|
78
|
+
*/
|
|
79
|
+
export interface TableLayoutViewProps {
|
|
80
|
+
/**
|
|
81
|
+
* Lista de ubicaciones/salones disponibles
|
|
82
|
+
*/
|
|
83
|
+
locations?: Location[];
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* ID de la ubicación actualmente seleccionada
|
|
87
|
+
*/
|
|
88
|
+
activeLocationId?: string;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Lista de mesas en el layout actual
|
|
92
|
+
*/
|
|
93
|
+
tables?: TableItem[];
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Título del área de mesas (ej: "Mesas de Antejardín")
|
|
97
|
+
*/
|
|
98
|
+
tablesTitle?: string;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Si se está mostrando el panel de selección de personas
|
|
102
|
+
*/
|
|
103
|
+
showPeopleCountPanel?: boolean;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Información de la mesa seleccionada para el panel
|
|
107
|
+
*/
|
|
108
|
+
selectedTable?: {
|
|
109
|
+
locationName: string;
|
|
110
|
+
tableName: string;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Cantidad de personas seleccionada
|
|
115
|
+
*/
|
|
116
|
+
peopleCount?: number;
|
|
117
|
+
|
|
118
|
+
// ===== CALLBACKS =====
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Callback cuando se selecciona una ubicación/salón
|
|
122
|
+
*/
|
|
123
|
+
onLocationSelect?: (locationId: string) => void;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Callback cuando se selecciona una mesa
|
|
127
|
+
*/
|
|
128
|
+
onTableSelect?: (tableNumber: string) => void;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Callback cuando se hace clic en "Crear Mesas"
|
|
132
|
+
*/
|
|
133
|
+
onCreateTables?: () => void;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Callback cuando se hace clic en "Unir Mesas"
|
|
137
|
+
*/
|
|
138
|
+
onMergeTables?: () => void;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Callback cuando se hace clic en "Separar Mesas"
|
|
142
|
+
*/
|
|
143
|
+
onSplitTables?: () => void;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Callback cuando se selecciona un número de personas
|
|
147
|
+
*/
|
|
148
|
+
onPeopleCountSelect?: (count: number) => void;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Callback cuando se hace clic en "Asignar"
|
|
152
|
+
*/
|
|
153
|
+
onAssignTable?: () => void;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Callback cuando se hace clic en "Transferir"
|
|
157
|
+
*/
|
|
158
|
+
onTransferTable?: () => void;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Callback cuando se hace clic en "Cubiertos"
|
|
162
|
+
*/
|
|
163
|
+
onSetCutlery?: () => void;
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Callback cuando se cierra el panel de personas
|
|
167
|
+
*/
|
|
168
|
+
onClosePeoplePanel?: () => void;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Callback cuando cambia el switch de la mesa
|
|
172
|
+
*/
|
|
173
|
+
onTableSwitchChange?: (checked: boolean) => void;
|
|
174
|
+
|
|
175
|
+
// ===== ESTADOS DE CARGA =====
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Si se está cargando información
|
|
179
|
+
*/
|
|
180
|
+
isLoading?: boolean;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Mensaje de error (si existe)
|
|
184
|
+
*/
|
|
185
|
+
errorMessage?: string;
|
|
186
|
+
|
|
187
|
+
// ===== CUSTOMIZACIÓN =====
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Tipo de layout para las mesas:
|
|
191
|
+
* - 'grid': Grid automático con separación uniforme (por defecto)
|
|
192
|
+
* - 'free': Posicionamiento libre usando position.x/y de cada mesa
|
|
193
|
+
*/
|
|
194
|
+
tableLayout?: 'grid' | 'free';
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Clases CSS adicionales para el contenedor
|
|
198
|
+
*/
|
|
199
|
+
className?: string;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Información del usuario para el navbar
|
|
203
|
+
*/
|
|
204
|
+
userInfo?: {
|
|
205
|
+
avatar: string;
|
|
206
|
+
name: string;
|
|
207
|
+
role: string;
|
|
208
|
+
};
|
|
209
|
+
}
|
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Iconos para TableLayoutView
|
|
5
|
-
* Basados en Heroicons Micro (16x16px)
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Icono Plus (heroicons-micro/plus)
|
|
9
|
-
export const PlusIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
10
|
-
<svg
|
|
11
|
-
className={className}
|
|
12
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
-
viewBox="0 0 16 16"
|
|
14
|
-
fill="currentColor"
|
|
15
|
-
aria-hidden="true"
|
|
16
|
-
>
|
|
17
|
-
<path d="M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z" />
|
|
18
|
-
</svg>
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
// Icono Arrows Pointing In (heroicons-micro/arrows-pointing-in)
|
|
22
|
-
export const ArrowsPointingInIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
23
|
-
<svg
|
|
24
|
-
className={className}
|
|
25
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
26
|
-
viewBox="0 0 16 16"
|
|
27
|
-
fill="currentColor"
|
|
28
|
-
aria-hidden="true"
|
|
29
|
-
>
|
|
30
|
-
<path
|
|
31
|
-
fillRule="evenodd"
|
|
32
|
-
d="M2.22 2.22a.75.75 0 0 1 1.06 0l2 2a.75.75 0 1 1-1.06 1.06l-.72-.72v2.69a.75.75 0 0 1-1.5 0V2.5c0-.69.56-1.25 1.25-1.25h4.75a.75.75 0 0 1 0 1.5H4.81l.72.72a.75.75 0 0 1-1.06 1.06l-2-2a.75.75 0 0 1 0-1.06ZM9 2.75a.75.75 0 0 1 .75-.75h4.75C15.19 2 15.75 2.56 15.75 3.25v4.75a.75.75 0 0 1-1.5 0V5.31l-.72.72a.75.75 0 1 1-1.06-1.06l2-2a.75.75 0 0 1 1.06 0l2 2a.75.75 0 1 1-1.06 1.06l-.72-.72V8a.75.75 0 0 1-1.5 0V3.5H9.75A.75.75 0 0 1 9 2.75ZM2.75 9a.75.75 0 0 1 .75.75v2.69l.72-.72a.75.75 0 1 1 1.06 1.06l-2 2a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 1 1 1.06-1.06l.72.72V9.75c0-.41.34-.75.75-.75Zm10.5 0a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-4.75c-.69 0-1.25-.56-1.25-1.25V9.75a.75.75 0 0 1 .75-.75Z"
|
|
33
|
-
clipRule="evenodd"
|
|
34
|
-
/>
|
|
35
|
-
</svg>
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
// Icono Arrows Pointing Out (heroicons-micro/arrows-pointing-out)
|
|
39
|
-
export const ArrowsPointingOutIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
40
|
-
<svg
|
|
41
|
-
className={className}
|
|
42
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
43
|
-
viewBox="0 0 16 16"
|
|
44
|
-
fill="currentColor"
|
|
45
|
-
aria-hidden="true"
|
|
46
|
-
>
|
|
47
|
-
<path
|
|
48
|
-
fillRule="evenodd"
|
|
49
|
-
d="M2.75 2a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 1.5 0V3.81l2.47 2.47a.75.75 0 1 0 1.06-1.06L4.56 2.75h2.69a.75.75 0 0 0 0-1.5h-4.5ZM9 2.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-2.69l2.47 2.47a.75.75 0 1 1-1.06 1.06L10.5 4.56v2.69a.75.75 0 0 1-1.5 0v-4.5ZM2.75 9a.75.75 0 0 1 .75.75v2.69l2.47-2.47a.75.75 0 1 1 1.06 1.06L4.56 13.5h2.69a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75Zm10.5 0a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1 0-1.5h2.69l-2.47-2.47a.75.75 0 1 1 1.06-1.06l2.47 2.47V9.75a.75.75 0 0 1 .75-.75Z"
|
|
50
|
-
clipRule="evenodd"
|
|
51
|
-
/>
|
|
52
|
-
</svg>
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
// Icono Arrow Right End On Rectangle (heroicons-micro/arrow-right-end-on-rectangle)
|
|
56
|
-
export const ArrowRightEndOnRectangleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
57
|
-
<svg
|
|
58
|
-
className={className}
|
|
59
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
-
viewBox="0 0 16 16"
|
|
61
|
-
fill="currentColor"
|
|
62
|
-
aria-hidden="true"
|
|
63
|
-
>
|
|
64
|
-
<path
|
|
65
|
-
fillRule="evenodd"
|
|
66
|
-
d="M2 4.75A2.75 2.75 0 0 1 4.75 2h3a2.75 2.75 0 0 1 2.75 2.75v.5a.75.75 0 0 1-1.5 0v-.5c0-.69-.56-1.25-1.25-1.25h-3c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h3c.69 0 1.25-.56 1.25-1.25v-.5a.75.75 0 0 1 1.5 0v.5A2.75 2.75 0 0 1 7.75 14h-3A2.75 2.75 0 0 1 2 11.25v-6.5Zm10.58 2.96-1.72-1.72a.75.75 0 1 1 1.06-1.06l2.78 2.78c.3.29.3.76 0 1.06l-2.78 2.78a.75.75 0 1 1-1.06-1.06l1.72-1.72H7.25a.75.75 0 0 1 0-1.5h5.33Z"
|
|
67
|
-
clipRule="evenodd"
|
|
68
|
-
/>
|
|
69
|
-
</svg>
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// Icono Arrows Right Left (heroicons-micro/arrows-right-left)
|
|
73
|
-
export const ArrowsRightLeftIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
74
|
-
<svg
|
|
75
|
-
className={className}
|
|
76
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
77
|
-
viewBox="0 0 16 16"
|
|
78
|
-
fill="currentColor"
|
|
79
|
-
aria-hidden="true"
|
|
80
|
-
>
|
|
81
|
-
<path
|
|
82
|
-
fillRule="evenodd"
|
|
83
|
-
d="M13.78 10.47a.75.75 0 0 1 0 1.06l-2.25 2.25a.75.75 0 1 1-1.06-1.06l.97-.97H5.75a.75.75 0 0 1 0-1.5h5.69l-.97-.97a.75.75 0 0 1 1.06-1.06l2.25 2.25ZM2.22 5.53a.75.75 0 0 1 0-1.06l2.25-2.25a.75.75 0 0 1 1.06 1.06l-.97.97h5.69a.75.75 0 0 1 0 1.5H4.56l.97.97a.75.75 0 1 1-1.06 1.06L2.22 5.53Z"
|
|
84
|
-
clipRule="evenodd"
|
|
85
|
-
/>
|
|
86
|
-
</svg>
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
// Icono Rectangle Group (heroicons-micro/rectangle-group)
|
|
90
|
-
export const RectangleGroupIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
91
|
-
<svg
|
|
92
|
-
className={className}
|
|
93
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
94
|
-
viewBox="0 0 16 16"
|
|
95
|
-
fill="currentColor"
|
|
96
|
-
aria-hidden="true"
|
|
97
|
-
>
|
|
98
|
-
<path d="M2.5 3.5h3v3h-3v-3ZM6.5 2a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-4ZM2.5 10.5h3v3h-3v-3ZM6.5 9a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-4ZM10.5 3.5h3v3h-3v-3ZM13.5 2h-3a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-.5ZM10.5 10.5h3v3h-3v-3Z" />
|
|
99
|
-
</svg>
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
// Icono X Mark (heroicons-micro/x-mark)
|
|
103
|
-
export const XMarkIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
104
|
-
<svg
|
|
105
|
-
className={className}
|
|
106
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
107
|
-
viewBox="0 0 16 16"
|
|
108
|
-
fill="currentColor"
|
|
109
|
-
aria-hidden="true"
|
|
110
|
-
>
|
|
111
|
-
<path d="M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z" />
|
|
112
|
-
</svg>
|
|
113
|
-
);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Iconos para TableLayoutView
|
|
5
|
+
* Basados en Heroicons Micro (16x16px)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Icono Plus (heroicons-micro/plus)
|
|
9
|
+
export const PlusIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
10
|
+
<svg
|
|
11
|
+
className={className}
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
viewBox="0 0 16 16"
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
aria-hidden="true"
|
|
16
|
+
>
|
|
17
|
+
<path d="M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z" />
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
// Icono Arrows Pointing In (heroicons-micro/arrows-pointing-in)
|
|
22
|
+
export const ArrowsPointingInIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
23
|
+
<svg
|
|
24
|
+
className={className}
|
|
25
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
26
|
+
viewBox="0 0 16 16"
|
|
27
|
+
fill="currentColor"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>
|
|
30
|
+
<path
|
|
31
|
+
fillRule="evenodd"
|
|
32
|
+
d="M2.22 2.22a.75.75 0 0 1 1.06 0l2 2a.75.75 0 1 1-1.06 1.06l-.72-.72v2.69a.75.75 0 0 1-1.5 0V2.5c0-.69.56-1.25 1.25-1.25h4.75a.75.75 0 0 1 0 1.5H4.81l.72.72a.75.75 0 0 1-1.06 1.06l-2-2a.75.75 0 0 1 0-1.06ZM9 2.75a.75.75 0 0 1 .75-.75h4.75C15.19 2 15.75 2.56 15.75 3.25v4.75a.75.75 0 0 1-1.5 0V5.31l-.72.72a.75.75 0 1 1-1.06-1.06l2-2a.75.75 0 0 1 1.06 0l2 2a.75.75 0 1 1-1.06 1.06l-.72-.72V8a.75.75 0 0 1-1.5 0V3.5H9.75A.75.75 0 0 1 9 2.75ZM2.75 9a.75.75 0 0 1 .75.75v2.69l.72-.72a.75.75 0 1 1 1.06 1.06l-2 2a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 1 1 1.06-1.06l.72.72V9.75c0-.41.34-.75.75-.75Zm10.5 0a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-4.75c-.69 0-1.25-.56-1.25-1.25V9.75a.75.75 0 0 1 .75-.75Z"
|
|
33
|
+
clipRule="evenodd"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
// Icono Arrows Pointing Out (heroicons-micro/arrows-pointing-out)
|
|
39
|
+
export const ArrowsPointingOutIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
40
|
+
<svg
|
|
41
|
+
className={className}
|
|
42
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
43
|
+
viewBox="0 0 16 16"
|
|
44
|
+
fill="currentColor"
|
|
45
|
+
aria-hidden="true"
|
|
46
|
+
>
|
|
47
|
+
<path
|
|
48
|
+
fillRule="evenodd"
|
|
49
|
+
d="M2.75 2a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 1.5 0V3.81l2.47 2.47a.75.75 0 1 0 1.06-1.06L4.56 2.75h2.69a.75.75 0 0 0 0-1.5h-4.5ZM9 2.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-2.69l2.47 2.47a.75.75 0 1 1-1.06 1.06L10.5 4.56v2.69a.75.75 0 0 1-1.5 0v-4.5ZM2.75 9a.75.75 0 0 1 .75.75v2.69l2.47-2.47a.75.75 0 1 1 1.06 1.06L4.56 13.5h2.69a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 .75-.75Zm10.5 0a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1 0-1.5h2.69l-2.47-2.47a.75.75 0 1 1 1.06-1.06l2.47 2.47V9.75a.75.75 0 0 1 .75-.75Z"
|
|
50
|
+
clipRule="evenodd"
|
|
51
|
+
/>
|
|
52
|
+
</svg>
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
// Icono Arrow Right End On Rectangle (heroicons-micro/arrow-right-end-on-rectangle)
|
|
56
|
+
export const ArrowRightEndOnRectangleIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
57
|
+
<svg
|
|
58
|
+
className={className}
|
|
59
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
+
viewBox="0 0 16 16"
|
|
61
|
+
fill="currentColor"
|
|
62
|
+
aria-hidden="true"
|
|
63
|
+
>
|
|
64
|
+
<path
|
|
65
|
+
fillRule="evenodd"
|
|
66
|
+
d="M2 4.75A2.75 2.75 0 0 1 4.75 2h3a2.75 2.75 0 0 1 2.75 2.75v.5a.75.75 0 0 1-1.5 0v-.5c0-.69-.56-1.25-1.25-1.25h-3c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h3c.69 0 1.25-.56 1.25-1.25v-.5a.75.75 0 0 1 1.5 0v.5A2.75 2.75 0 0 1 7.75 14h-3A2.75 2.75 0 0 1 2 11.25v-6.5Zm10.58 2.96-1.72-1.72a.75.75 0 1 1 1.06-1.06l2.78 2.78c.3.29.3.76 0 1.06l-2.78 2.78a.75.75 0 1 1-1.06-1.06l1.72-1.72H7.25a.75.75 0 0 1 0-1.5h5.33Z"
|
|
67
|
+
clipRule="evenodd"
|
|
68
|
+
/>
|
|
69
|
+
</svg>
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
// Icono Arrows Right Left (heroicons-micro/arrows-right-left)
|
|
73
|
+
export const ArrowsRightLeftIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
74
|
+
<svg
|
|
75
|
+
className={className}
|
|
76
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
77
|
+
viewBox="0 0 16 16"
|
|
78
|
+
fill="currentColor"
|
|
79
|
+
aria-hidden="true"
|
|
80
|
+
>
|
|
81
|
+
<path
|
|
82
|
+
fillRule="evenodd"
|
|
83
|
+
d="M13.78 10.47a.75.75 0 0 1 0 1.06l-2.25 2.25a.75.75 0 1 1-1.06-1.06l.97-.97H5.75a.75.75 0 0 1 0-1.5h5.69l-.97-.97a.75.75 0 0 1 1.06-1.06l2.25 2.25ZM2.22 5.53a.75.75 0 0 1 0-1.06l2.25-2.25a.75.75 0 0 1 1.06 1.06l-.97.97h5.69a.75.75 0 0 1 0 1.5H4.56l.97.97a.75.75 0 1 1-1.06 1.06L2.22 5.53Z"
|
|
84
|
+
clipRule="evenodd"
|
|
85
|
+
/>
|
|
86
|
+
</svg>
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
// Icono Rectangle Group (heroicons-micro/rectangle-group)
|
|
90
|
+
export const RectangleGroupIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
91
|
+
<svg
|
|
92
|
+
className={className}
|
|
93
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
94
|
+
viewBox="0 0 16 16"
|
|
95
|
+
fill="currentColor"
|
|
96
|
+
aria-hidden="true"
|
|
97
|
+
>
|
|
98
|
+
<path d="M2.5 3.5h3v3h-3v-3ZM6.5 2a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-4ZM2.5 10.5h3v3h-3v-3ZM6.5 9a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-4ZM10.5 3.5h3v3h-3v-3ZM13.5 2h-3a.5.5 0 0 0-.5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-.5-.5h-.5ZM10.5 10.5h3v3h-3v-3Z" />
|
|
99
|
+
</svg>
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
// Icono X Mark (heroicons-micro/x-mark)
|
|
103
|
+
export const XMarkIcon: React.FC<{ className?: string }> = ({ className = '' }) => (
|
|
104
|
+
<svg
|
|
105
|
+
className={className}
|
|
106
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
107
|
+
viewBox="0 0 16 16"
|
|
108
|
+
fill="currentColor"
|
|
109
|
+
aria-hidden="true"
|
|
110
|
+
>
|
|
111
|
+
<path d="M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z" />
|
|
112
|
+
</svg>
|
|
113
|
+
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { TableLayoutView } from './TableLayoutView';
|
|
2
|
-
export type {
|
|
3
|
-
TableLayoutViewProps,
|
|
4
|
-
Location,
|
|
5
|
-
TableItem,
|
|
6
|
-
} from './TableLayoutView.types';
|
|
1
|
+
export { TableLayoutView } from './TableLayoutView';
|
|
2
|
+
export type {
|
|
3
|
+
TableLayoutViewProps,
|
|
4
|
+
Location,
|
|
5
|
+
TableItem,
|
|
6
|
+
} from './TableLayoutView.types';
|