venuekit 0.10.2 → 0.11.0

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/dist/react.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as Layout, S as SellableUnit, f as LockViolation, w as PieceKind, F as PlanSummary, A as PlaceTypeOption } from './place-types-Dc0eabAi.cjs';
1
+ import { a as Layout, S as SellableUnit, f as LockViolation, w as PieceKind, F as PlanSummary, A as PlaceTypeOption } from './place-types-DNfiQXGU.cjs';
2
2
  import { CSSProperties, ReactElement, ReactNode } from 'react';
3
3
  import 'zod';
4
4
 
@@ -51,6 +51,19 @@ type Messages = {
51
51
  focusHintSeats: string;
52
52
  focusHintPlaces: string;
53
53
  focusHintTables: string;
54
+ /** Final del nombre accesible de uno que el público no puede comprar. */
55
+ notForSale: string;
56
+ inviteOnlySeat: string;
57
+ inviteOnlyTable: string;
58
+ inviteOnlyPlace: string;
59
+ /** Con `allowInviteOnly`: final del nombre accesible y leyenda. */
60
+ inviteOnly: string;
61
+ legendInviteOnly: string;
62
+ statusSold: string;
63
+ statusCourtesy: string;
64
+ statusHeld: string;
65
+ legendCourtesy: string;
66
+ legendHeld: string;
54
67
  };
55
68
  declare const es: Messages;
56
69
  declare const en: Messages;
@@ -68,6 +81,16 @@ type MessageOverrides = {
68
81
  /** Copy final: es-AR pisado por lo que mande el host. Un `undefined` no pisa nada. */
69
82
  declare function mergeMessages(overrides?: MessageOverrides): Messages;
70
83
 
84
+ /** Qué le pasó a un lugar, para el mapa del panel de la productora. */
85
+ type UnitStatusKind = "sold" | "courtesy" | "held";
86
+ /** `label` es lo que se dice al tocarlo («Cortesía de Ana Pérez», «Lista Amigos de Juan»). */
87
+ type UnitStatus = {
88
+ kind: UnitStatusKind;
89
+ label?: string | undefined;
90
+ };
91
+ /** Por id de unidad (`SellableUnit.id`). */
92
+ type UnitStatusMap = Readonly<Record<string, UnitStatus>>;
93
+
71
94
  type SeatMapPlaceType = {
72
95
  ref: string;
73
96
  label: string;
@@ -106,6 +129,20 @@ type SeatMapProps = {
106
129
  onBack?: () => void;
107
130
  /** Tocaron una zona o un lugar de OTRO tipo de `placeTypes`: el host decide si cambia `focusRef`. */
108
131
  onFocusChange?: (ref: string) => void;
132
+ /**
133
+ * Se eligen lugares de cualquier tipo de `placeTypes` a la vez: tocar uno de otro tipo lo suma
134
+ * a la selección en vez de cambiar el foco, y nada se atenúa. `focusRef` sólo encuadra.
135
+ * El resumen y `maxSelection` cuentan todo lo elegido.
136
+ */
137
+ multiType?: boolean;
138
+ /**
139
+ * Para el panel de la productora: vendida, regalada o apartada, por id de unidad. Cada estado
140
+ * se pinta distinto (con una marca que no depende del color), la leyenda suma los presentes y
141
+ * tocar uno anuncia su `label` sin elegirlo.
142
+ */
143
+ unitStatus?: UnitStatusMap;
144
+ /** Los lugares «sólo con invitación» se pueden elegir (el panel). Sin esto se ven como no disponibles. */
145
+ allowInviteOnly?: boolean;
109
146
  /** Alto fijo del mapa en píxeles. Sin esto, la caja sigue la proporción del plano. */
110
147
  height?: number;
111
148
  messages?: MessageOverrides;
@@ -149,7 +186,7 @@ declare function selectionSummary(units: SellableUnit[], ids: readonly string[],
149
186
  * las lee `<VenueCanvas>` con `getComputedStyle` y se las pasa al render, así
150
187
  * que el mapa sigue al tema igual que el resto.
151
188
  */
152
- declare const PICKER_CSS = "\n:where(.vk-root){\n --vk-fg:#0f172a;\n --vk-muted:#64748b;\n --vk-line:#e2e8f0;\n --vk-bg:#ffffff;\n --vk-surface:#f8fafc;\n --vk-accent:#0f172a;\n --vk-accent-fg:#ffffff;\n --vk-radius:8px;\n --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n /* S\u00F3lo las dibuja el lienzo (y la leyenda). */\n --vk-taken:#cbd5e1;\n --vk-taken-stroke:#94a3b8;\n --vk-held-stroke:#b45309;\n --vk-shape:#94a3b8;\n --vk-shape-fill:#e2e8f0;\n --vk-unassigned:#9ca3af;\n --vk-zone-alpha:38;\n /* Mapa del comprador: tuya, vendida, numero sobre la butaca y referencias. */\n --vk-zone-alpha-selected:66;\n --vk-mine:#ffffff;\n --vk-sold:#2a2a31;\n --vk-sold-stroke:#3a3a44;\n --vk-sold-fg:#6a6a74;\n --vk-unit-fg:#0b0b0d;\n --vk-landmark:#23232a;\n --vk-landmark-stroke:#34343c;\n --vk-landmark-fg:#d6d6dc;\n}\n.vk-root{display:flex;flex-direction:column;gap:12px;font:var(--vk-font);\n color:var(--vk-fg);background:var(--vk-bg);position:relative;box-sizing:border-box;\n /* Sin alto propio: embebido en la pagina de un host, mide lo que mide su\n contenido. El alto de pantalla completa esta detras de data-fill.\n (Sin acentos graves en este comentario: vive adentro de un template literal\n de TypeScript y cada uno lo cortaria al medio.) */\n }\n.vk-root[data-fill=\"true\"]{height:100vh;height:100dvh;max-height:100dvh}\n.vk-root *{box-sizing:border-box}\n/* El alto sale de la proporcion del plano (--vk-plan-ratio, lo pone el\n componente), acotado para que un plano muy alto no empuje la barra fuera\n de la pantalla ni uno muy apaisado quede en una tira. */\n.vk-map{position:relative;flex:none;width:100%;aspect-ratio:var(--vk-plan-ratio, 3 / 2);\n min-height:300px;max-height:70vh;background:var(--vk-surface);\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);overflow:hidden;touch-action:none}\n.vk-root[data-fill=\"true\"] .vk-map{flex:1;aspect-ratio:auto;min-height:0;max-height:none}\n.vk-map[data-cooperative=\"true\"]{touch-action:pan-y}\n.vk-canvas{display:block;width:100%;height:100%}\n.vk-a11y{position:absolute;inset:0;pointer-events:none}\n.vk-seat{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;background:transparent;\n border-radius:50%;cursor:pointer;color:transparent;overflow:hidden}\n.vk-seat:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-choose{position:absolute;left:8px;top:8px;max-width:calc(100% - 64px);min-height:44px;padding:8px 12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;font-size:14px;text-align:left;cursor:pointer;opacity:0}\n.vk-choose:focus{opacity:1;pointer-events:auto;outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;max-width:calc(100% - 32px);\n padding:8px 12px;border-radius:var(--vk-radius);background:rgba(0,0,0,.72);color:#fff;font-size:14px;\n text-align:center;pointer-events:none}\n.vk-zoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px}\n.vk-zoom button{width:36px;height:36px;border:1px solid var(--vk-line);background:var(--vk-bg);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:16px;line-height:1;cursor:pointer}\n.vk-type{margin:0;display:flex;align-items:center;gap:8px;font-weight:600}\n.vk-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;\n color:var(--vk-muted);font-size:13px}\n.vk-legend li{display:flex;align-items:center;gap:6px}\n.vk-dot{width:14px;height:14px;border-radius:50%;flex:none;box-sizing:border-box}\n.vk-dot[data-state=\"selected\"]{background:var(--vk-mine);border:3px solid var(--vk-accent)}\n.vk-dot[data-state=\"taken\"]{background:var(--vk-sold);border:1px solid var(--vk-sold-stroke)}\n.vk-cta{border:1px solid var(--vk-accent);background:var(--vk-accent);color:var(--vk-accent-fg);\n border-radius:var(--vk-radius);padding:10px 16px;cursor:pointer;font-size:14px;font-weight:600;min-height:44px}\n.vk-cta:disabled{opacity:.5;cursor:default}\n.vk-bar{flex:none;display:flex;align-items:center;gap:12px;padding:12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);background:var(--vk-bg)}\n.vk-bar-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}\n.vk-bar-summary{font-weight:600}\n.vk-bar-total{font-variant-numeric:tabular-nums}\n.vk-bar-hold{color:var(--vk-muted);font-size:13px}\n.vk-notice{margin:0;padding:8px 12px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);color:var(--vk-fg);font-size:13px}\n.vk-notice:empty{display:none}\n.vk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n/* El mapa entero: debajo, un boton por entrada (lo que usa el teclado y el lector). */\n.vk-types{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.vk-type-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;text-align:left;cursor:pointer}\n.vk-type-btn:hover{border-color:var(--vk-accent)}\n.vk-type-btn:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-type-btn[aria-disabled=\"true\"]{cursor:default;opacity:.55}\n.vk-type-btn[aria-disabled=\"true\"]:hover{border-color:var(--vk-line)}\n.vk-type-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}\n.vk-type-price{flex:none;font-variant-numeric:tabular-nums;color:var(--vk-muted)}\n.vk-type-out{flex:none;font-size:13px;font-weight:600;color:var(--vk-muted)}\n/* Embebido en una tarjeta del host: sin borde propio, encabezado arriba y leyenda abajo. */\n.vk-root[data-embedded=\"true\"]{gap:0}\n.vk-root[data-embedded=\"true\"] .vk-map{border:0;border-radius:0}\n.vk-root[data-embedded=\"true\"] .vk-legend{padding:12px 16px;border-top:1px solid var(--vk-line)}\n.vk-root[data-embedded=\"true\"] .vk-notice{margin:8px 14px 0}\n.vk-head{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:52px;padding:8px 14px;\n border-bottom:1px solid var(--vk-line)}\n.vk-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:transparent;color:var(--vk-fg);font:inherit;cursor:pointer}\n.vk-back:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-head-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:700;overflow-wrap:anywhere}\n.vk-head-hint{min-width:0;color:var(--vk-muted);font-size:13px}\n/* Con hideList la lista sigue para el teclado y el lector, oculta hasta que un boton toma el foco. */\n.vk-types[data-hidden=\"true\"]:not(:focus-within){position:absolute;width:1px;height:1px;margin:-1px;padding:0;\n overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-types[data-hidden=\"true\"]:focus-within{padding:12px 14px;border-top:1px solid var(--vk-line)}\n.vk-type-btn[data-selected=\"true\"]{border-color:var(--vk-accent)}\n";
189
+ declare const PICKER_CSS = "\n:where(.vk-root){\n --vk-fg:#0f172a;\n --vk-muted:#64748b;\n --vk-line:#e2e8f0;\n --vk-bg:#ffffff;\n --vk-surface:#f8fafc;\n --vk-accent:#0f172a;\n --vk-accent-fg:#ffffff;\n --vk-radius:8px;\n --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n /* S\u00F3lo las dibuja el lienzo (y la leyenda). */\n --vk-taken:#cbd5e1;\n --vk-taken-stroke:#94a3b8;\n --vk-held-stroke:#b45309;\n --vk-shape:#94a3b8;\n --vk-shape-fill:#e2e8f0;\n --vk-unassigned:#9ca3af;\n --vk-zone-alpha:38;\n /* Mapa del comprador: tuya, vendida, numero sobre la butaca y referencias. */\n --vk-zone-alpha-selected:66;\n --vk-mine:#ffffff;\n --vk-sold:#2a2a31;\n --vk-sold-stroke:#3a3a44;\n --vk-sold-fg:#6a6a74;\n --vk-unit-fg:#0b0b0d;\n --vk-landmark:#23232a;\n --vk-landmark-stroke:#34343c;\n --vk-landmark-fg:#d6d6dc;\n /* Panel de la productora: regalada, apartada y la marca que las distingue sin color. */\n --vk-courtesy:#7c3aed;\n --vk-courtesy-fg:#ffffff;\n --vk-held-for:#f59e0b;\n --vk-held-for-fg:#0b0b0d;\n --vk-status-mark:#ffffff;\n}\n.vk-root{display:flex;flex-direction:column;gap:12px;font:var(--vk-font);\n color:var(--vk-fg);background:var(--vk-bg);position:relative;box-sizing:border-box;\n /* Sin alto propio: embebido en la pagina de un host, mide lo que mide su\n contenido. El alto de pantalla completa esta detras de data-fill.\n (Sin acentos graves en este comentario: vive adentro de un template literal\n de TypeScript y cada uno lo cortaria al medio.) */\n }\n.vk-root[data-fill=\"true\"]{height:100vh;height:100dvh;max-height:100dvh}\n.vk-root *{box-sizing:border-box}\n/* El alto sale de la proporcion del plano (--vk-plan-ratio, lo pone el\n componente), acotado para que un plano muy alto no empuje la barra fuera\n de la pantalla ni uno muy apaisado quede en una tira. */\n.vk-map{position:relative;flex:none;width:100%;aspect-ratio:var(--vk-plan-ratio, 3 / 2);\n min-height:300px;max-height:70vh;background:var(--vk-surface);\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);overflow:hidden;touch-action:none}\n.vk-root[data-fill=\"true\"] .vk-map{flex:1;aspect-ratio:auto;min-height:0;max-height:none}\n.vk-map[data-cooperative=\"true\"]{touch-action:pan-y}\n.vk-canvas{display:block;width:100%;height:100%}\n.vk-a11y{position:absolute;inset:0;pointer-events:none}\n.vk-seat{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;background:transparent;\n border-radius:50%;cursor:pointer;color:transparent;overflow:hidden}\n.vk-seat:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-choose{position:absolute;left:8px;top:8px;max-width:calc(100% - 64px);min-height:44px;padding:8px 12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;font-size:14px;text-align:left;cursor:pointer;opacity:0}\n.vk-choose:focus{opacity:1;pointer-events:auto;outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;max-width:calc(100% - 32px);\n padding:8px 12px;border-radius:var(--vk-radius);background:rgba(0,0,0,.72);color:#fff;font-size:14px;\n text-align:center;pointer-events:none}\n.vk-zoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px}\n.vk-zoom button{width:36px;height:36px;border:1px solid var(--vk-line);background:var(--vk-bg);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:16px;line-height:1;cursor:pointer}\n.vk-type{margin:0;display:flex;align-items:center;gap:8px;font-weight:600}\n.vk-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;\n color:var(--vk-muted);font-size:13px}\n.vk-legend li{display:flex;align-items:center;gap:6px}\n.vk-dot{width:14px;height:14px;border-radius:50%;flex:none;box-sizing:border-box}\n.vk-dot[data-state=\"selected\"]{background:var(--vk-mine);border:3px solid var(--vk-accent)}\n.vk-dot[data-state=\"taken\"]{background:var(--vk-sold);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"courtesy\"]{background:radial-gradient(circle at 70% 30%,var(--vk-status-mark,#fff) 0 2.5px,transparent 3px),var(--vk-courtesy,#7c3aed);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"held-for\"]{background:linear-gradient(var(--vk-status-mark,#fff),var(--vk-status-mark,#fff)) 80% 20%/5px 5px no-repeat,var(--vk-held-for,#f59e0b);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"invite-only\"]{border:2px dashed var(--vk-fg)}\n.vk-cta{border:1px solid var(--vk-accent);background:var(--vk-accent);color:var(--vk-accent-fg);\n border-radius:var(--vk-radius);padding:10px 16px;cursor:pointer;font-size:14px;font-weight:600;min-height:44px}\n.vk-cta:disabled{opacity:.5;cursor:default}\n.vk-bar{flex:none;display:flex;align-items:center;gap:12px;padding:12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);background:var(--vk-bg)}\n.vk-bar-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}\n.vk-bar-summary{font-weight:600}\n.vk-bar-total{font-variant-numeric:tabular-nums}\n.vk-bar-hold{color:var(--vk-muted);font-size:13px}\n.vk-notice{margin:0;padding:8px 12px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);color:var(--vk-fg);font-size:13px}\n.vk-notice:empty{display:none}\n.vk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n/* El mapa entero: debajo, un boton por entrada (lo que usa el teclado y el lector). */\n.vk-types{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.vk-type-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;text-align:left;cursor:pointer}\n.vk-type-btn:hover{border-color:var(--vk-accent)}\n.vk-type-btn:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-type-btn[aria-disabled=\"true\"]{cursor:default;opacity:.55}\n.vk-type-btn[aria-disabled=\"true\"]:hover{border-color:var(--vk-line)}\n.vk-type-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}\n.vk-type-price{flex:none;font-variant-numeric:tabular-nums;color:var(--vk-muted)}\n.vk-type-out{flex:none;font-size:13px;font-weight:600;color:var(--vk-muted)}\n/* Embebido en una tarjeta del host: sin borde propio, encabezado arriba y leyenda abajo. */\n.vk-root[data-embedded=\"true\"]{gap:0}\n.vk-root[data-embedded=\"true\"] .vk-map{border:0;border-radius:0}\n.vk-root[data-embedded=\"true\"] .vk-legend{padding:12px 16px;border-top:1px solid var(--vk-line)}\n.vk-root[data-embedded=\"true\"] .vk-notice{margin:8px 14px 0}\n.vk-head{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:52px;padding:8px 14px;\n border-bottom:1px solid var(--vk-line)}\n.vk-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:transparent;color:var(--vk-fg);font:inherit;cursor:pointer}\n.vk-back:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-head-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:700;overflow-wrap:anywhere}\n.vk-head-hint{min-width:0;color:var(--vk-muted);font-size:13px}\n/* Con hideList la lista sigue para el teclado y el lector, oculta hasta que un boton toma el foco. */\n.vk-types[data-hidden=\"true\"]:not(:focus-within){position:absolute;width:1px;height:1px;margin:-1px;padding:0;\n overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-types[data-hidden=\"true\"]:focus-within{padding:12px 14px;border-top:1px solid var(--vk-line)}\n.vk-type-btn[data-selected=\"true\"]{border-color:var(--vk-accent)}\n";
153
190
 
154
191
  type VenueOverviewPlaceType = {
155
192
  ref: string;
@@ -179,6 +216,10 @@ type VenueOverviewProps = {
179
216
  takenUnitIds?: readonly string[];
180
217
  /** Lugares que eligió el comprador, para verlos en miniatura. */
181
218
  selectedUnitIds?: readonly string[];
219
+ /** Panel de la productora: vendida, regalada o apartada, por id de unidad (como en `<SeatMap />`). */
220
+ unitStatus?: UnitStatusMap;
221
+ /** Los «sólo con invitación» se ven como cualquier otro (el panel). Sin esto, como no disponibles. */
222
+ allowInviteOnly?: boolean;
182
223
  /** Alto fijo en píxeles. Sin esto, la caja sigue la proporción del plano. */
183
224
  height?: number;
184
225
  messages?: MessageOverrides;
@@ -371,6 +412,19 @@ type DesignerMessages = {
371
412
  seatName: string;
372
413
  seatNameRemoved: string;
373
414
  seatNameSold: string;
415
+ seatNameReserved: string;
416
+ /** «Al tocar: Reservar · Sacar (pasillo)» en la numeración de un bloque. */
417
+ tapMode: string;
418
+ tapReserve: string;
419
+ tapRemove: string;
420
+ /** Qué significa reservar: lo lee la productora antes de tocar. */
421
+ reservedNotice: string;
422
+ legendReserved: string;
423
+ reservedOne: string;
424
+ reservedMany: string;
425
+ tableInviteOnly: string;
426
+ placesInviteOnly: string;
427
+ placeInviteOnly: string;
374
428
  assignTitle: string;
375
429
  noPlaceTypes: string;
376
430
  capacityCount: string;
@@ -578,7 +632,7 @@ declare function VenueDesigner(props: VenueDesignerProps): ReactElement;
578
632
  * (Sin acentos graves en los comentarios: esto es un template literal y cada
579
633
  * uno lo cortaria al medio.)
580
634
  */
581
- declare const DESIGNER_CSS = "\n:where(.vk-designer){\n --vk-fg:#0f172a; --vk-muted:#64748b; --vk-line:#e2e8f0; --vk-bg:#ffffff;\n --vk-surface:#f8fafc; --vk-panel:#ffffff; --vk-raised:#ffffff; --vk-field:#ffffff;\n --vk-accent:#0f172a; --vk-accent-fg:#ffffff; --vk-primary-bg:var(--vk-accent);\n --vk-danger:#b91c1c; --vk-warn:#b45309; --vk-ok:#047857; --vk-link:var(--vk-accent);\n --vk-seg:#f1f5f9; --vk-seg-on:#ffffff; --vk-canvas:#f8fafc; --vk-canvas-dot:transparent;\n --vk-overlay:rgba(15,23,42,.35); --vk-shadow:0 12px 32px rgba(15,23,42,.18);\n --vk-radius:8px; --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n}\n:where(.vk-designer[data-theme=\"dark\"]){\n --vk-fg:#f2f2f3; --vk-muted:#a3a3aa; --vk-line:#26262b; --vk-bg:#0b0b0d;\n --vk-surface:#121215; --vk-panel:#0f0f12; --vk-raised:#1a1a1f; --vk-field:#0b0b0d;\n --vk-accent:#e5482c; --vk-accent-fg:#ffffff; --vk-primary-bg:linear-gradient(90deg,#2f6fe0,#e5482c);\n --vk-danger:#ff8a7a; --vk-warn:#ffb36b; --vk-ok:#6fd3a7; --vk-link:#ff8a6e;\n --vk-seg:#17171b; --vk-seg-on:#2a2a31; --vk-canvas:#141418; --vk-canvas-dot:#2a2a31;\n --vk-overlay:rgba(5,5,7,.8); --vk-shadow:0 16px 40px rgba(0,0,0,.5);\n --vk-shape:#4a4a55; --vk-shape-fill:#2c2c34; --vk-unassigned:#6a6a74;\n --vk-taken:#3a3a44; --vk-taken-stroke:#5a5a66; --vk-held-stroke:#ffb36b;\n --vk-radius:10px; --vk-radius-lg:14px;\n color-scheme:dark;\n}\n:where(.vk-designer){height:100%}\n.vk-designer{display:flex;flex-direction:column;font:var(--vk-font);min-height:0;\n color:var(--vk-fg);background:var(--vk-bg);box-sizing:border-box;min-width:0}\n.vk-designer *{box-sizing:border-box}\n/* Un solo anillo de foco para todo el editor: sin esto, dentro de un panel\n oscuro el foco del navegador se pierde contra el fondo. */\n.vk-designer :focus-visible{outline:2px solid var(--vk-accent);outline-offset:2px}\n.vk-d-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;\n clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-d-ico{flex:none;display:block}\n\n/* Barra de arriba */\n.vk-d-top{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;\n padding:12px 16px;border-bottom:1px solid var(--vk-line);flex:none}\n.vk-d-name{margin:0;font-size:17px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-history{display:flex;gap:6px;margin-left:4px}\n.vk-d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}\n.vk-d-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;\n border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);\n border-radius:var(--vk-radius);padding:0 14px;font:inherit;cursor:pointer;min-height:40px}\n.vk-d-btn:disabled,.vk-d-icon-btn:disabled{opacity:.4;cursor:default}\n.vk-d-btn[aria-pressed=\"true\"]{background:var(--vk-accent);color:var(--vk-accent-fg);border-color:var(--vk-accent)}\n.vk-d-primary{border:0;background:var(--vk-primary-bg);color:var(--vk-accent-fg);font-weight:600;padding:0 18px}\n.vk-d-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;\n padding:0;border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);border-radius:var(--vk-radius);cursor:pointer}\n.vk-d-danger{color:var(--vk-danger)}\n.vk-d-link{border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:var(--vk-link);cursor:pointer}\n.vk-d-link:hover{text-decoration:underline}\n\n.vk-d-popover{position:absolute;z-index:20;top:calc(100% + 6px);right:16px;width:360px;max-width:calc(100% - 32px);\n max-height:70vh;overflow:auto;padding:14px;border-radius:var(--vk-radius-lg);border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);box-shadow:var(--vk-shadow)}\n.vk-d-popover:focus{outline:none}\n.vk-d-popover-landmarks{width:420px}\n\n.vk-d-notice{display:flex;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 12px;flex:none;\n border-radius:var(--vk-radius);border:1px solid var(--vk-danger);background:var(--vk-surface)}\n.vk-d-notice p{margin:0;flex:1}\n.vk-d-close{border:0;background:none;color:var(--vk-muted);font-size:18px;line-height:1;\n width:32px;height:32px;border-radius:var(--vk-radius);cursor:pointer}\n\n/* Cuerpo: entradas a la izquierda, lienzo al medio */\n.vk-d-body{display:flex;flex:1;min-height:0;min-width:0}\n.vk-d-left{width:340px;flex:none;overflow:auto;border-right:1px solid var(--vk-line);background:var(--vk-panel)}\n\n.vk-d-panel{min-width:0}\n.vk-d-panel-title{margin:0;font-size:17px;font-weight:600}\n.vk-d-hint{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--vk-muted)}\n.vk-d-group{margin:14px 0 6px;font-size:12px;font-weight:600;color:var(--vk-muted)}\n\n.vk-d-types-panel{display:flex;flex-direction:column;gap:14px;padding:20px;min-height:100%}\n.vk-d-types-head{display:flex;flex-direction:column;gap:2px}\n.vk-d-empty{margin:0;padding:14px;border-radius:var(--vk-radius-lg);border:1px dashed var(--vk-line);color:var(--vk-muted)}\n.vk-d-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n.vk-d-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--vk-radius-lg);\n border:1px solid var(--vk-line);background:var(--vk-surface)}\n.vk-d-card[data-active]{border-color:var(--vk-type);background:color-mix(in srgb,var(--vk-type) 9%,var(--vk-surface))}\n.vk-d-card-head{display:flex;align-items:center;gap:10px}\n.vk-d-dot{flex:none;width:12px;height:12px;border-radius:999px;background:var(--vk-type,var(--vk-muted))}\n.vk-d-card-name{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis}\n.vk-d-ok{font-size:13px;font-weight:600;color:var(--vk-ok);white-space:nowrap}\n.vk-d-missing{font-size:13px;font-weight:600;color:var(--vk-warn);white-space:nowrap}\n.vk-d-card-detail{font-size:13px;color:var(--vk-muted)}\n.vk-d-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.vk-d-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 8px;white-space:nowrap;font-size:13px;\n border:1px solid color-mix(in srgb,var(--vk-type) 35%,var(--vk-line));border-radius:var(--vk-radius);\n background:color-mix(in srgb,var(--vk-type) 14%,transparent);color:var(--vk-fg);font-family:inherit;font-weight:600;cursor:pointer;overflow:hidden}\n.vk-d-add-btn:hover{background:color-mix(in srgb,var(--vk-type) 24%,transparent)}\n.vk-d-add-btn:disabled{opacity:.45;cursor:default;background:transparent}\n.vk-d-full{margin:0;font-size:13px;color:var(--vk-muted)}\n.vk-d-zones{display:flex;flex-direction:column;gap:10px;padding-top:4px}\n.vk-d-dot-zone{border-radius:3px}\n.vk-d-wide{grid-column:1 / -1}\n.vk-d-types-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--vk-line)}\n.vk-d-onplan{display:flex;justify-content:space-between;gap:8px}\n.vk-d-onplan span{color:var(--vk-muted)}\n.vk-d-missing-line{margin:0;font-size:13px;color:var(--vk-warn)}\n.vk-d-warn{margin:4px 0 0;padding:8px 10px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);font-size:12px;line-height:1.4}\n.vk-d-error{margin:8px 0 0;font-size:13px;color:var(--vk-danger)}\n\n/* Lienzo */\n.vk-d-stage{position:relative;flex:1;min-width:0;min-height:420px;overflow:hidden;touch-action:none;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-stage[data-armed=\"true\"]{cursor:crosshair}\n.vk-d-stage[data-background-editing=\"true\"]{cursor:move}\n.vk-d-canvas{display:block;width:100%;height:100%;position:absolute;inset:0}\n.vk-d-layer{position:absolute;inset:0;pointer-events:none}\n.vk-d-target{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;color:transparent;overflow:hidden;border-radius:4px}\n.vk-d-target:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-d-handle{position:absolute;z-index:1;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;touch-action:none;cursor:nwse-resize}\n.vk-d-handle[data-corner=\"ne\"],.vk-d-handle[data-corner=\"sw\"]{cursor:nesw-resize}\n.vk-d-handle::after{content:\"\";position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);\n box-sizing:border-box;border-radius:3px;border:2px solid var(--vk-accent);background:var(--vk-raised)}\n.vk-d-handle:focus-visible{outline:3px solid var(--vk-accent);outline-offset:-8px;border-radius:8px}\n.vk-d-banner{position:absolute;z-index:2;top:10px;left:50%;transform:translateX(-50%);\n display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);\n padding:6px 6px 6px 12px;border-radius:999px;border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);font-size:12px;box-shadow:var(--vk-shadow)}\n.vk-d-banner .vk-d-btn{padding:4px 10px;min-height:28px;border-radius:999px;font-size:12px}\n.vk-d-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;z-index:1}\n.vk-d-zoom button{width:40px;height:40px;border:1px solid var(--vk-line);background:var(--vk-surface);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:18px;line-height:1;cursor:pointer}\n\n/* Panel de la pieza, flotando junto a ella */\n.vk-d-float{position:absolute;z-index:3;padding:14px;border-radius:var(--vk-radius-lg);\n background:var(--vk-raised);border:1px solid var(--vk-line);box-shadow:var(--vk-shadow);color:var(--vk-fg)}\n.vk-d-inspector{display:flex;flex-direction:column;gap:12px;min-width:0}\n.vk-d-insp-head{display:flex;align-items:center;gap:8px}\n.vk-d-insp-head .vk-d-dot{width:10px;height:10px}\n.vk-d-insp-head .vk-d-icon-btn{width:36px;height:36px}\n.vk-d-insp-title{flex:1;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}\n.vk-d-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}\n.vk-d-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--vk-muted);min-width:0}\n.vk-d-field > input,.vk-d-field select,.vk-d-input{border:1px solid var(--vk-line);background:var(--vk-field);\n color:var(--vk-fg);border-radius:var(--vk-radius);padding:0 10px;font:inherit;font-size:14px;min-height:40px;width:100%}\n.vk-d-stepper{display:flex;align-items:center;height:40px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-field)}\n.vk-d-stepper button{flex:none;width:34px;height:38px;border:0;background:transparent;color:var(--vk-fg);font-size:16px;cursor:pointer;border-radius:var(--vk-radius)}\n.vk-d-stepper button:disabled{opacity:.35;cursor:default}\n.vk-d-stepper input{flex:1;min-width:0;width:100%;height:38px;border:0;background:transparent;color:var(--vk-fg);\n text-align:center;font:inherit;font-weight:600;font-size:14px}\n.vk-d-stepper-value{flex:1;min-width:0;text-align:center;font-weight:600;font-size:14px;color:var(--vk-fg);white-space:nowrap}\n.vk-d-seg{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-height:40px;padding:3px;border-radius:var(--vk-radius);background:var(--vk-seg)}\n.vk-d-seg button{border:0;border-radius:calc(var(--vk-radius) - 2px);background:transparent;color:var(--vk-muted);\n font:inherit;font-size:13px;cursor:pointer;padding:0 6px}\n.vk-d-seg button[aria-pressed=\"true\"]{background:var(--vk-seg-on);color:var(--vk-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}\n.vk-d-insp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}\n.vk-d-assign .vk-d-hint{margin:0 0 6px}\n.vk-d-chips{display:flex;flex-wrap:wrap;gap:6px}\n.vk-d-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;\n border:1px solid var(--vk-line);background:var(--vk-surface);color:var(--vk-fg);font:inherit;font-size:13px;cursor:pointer}\n\n/* Referencias */\n.vk-d-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:var(--vk-field);color:var(--vk-muted)}\n.vk-d-search input{flex:1;min-width:0;min-height:40px;border:0;background:transparent;color:var(--vk-fg);font:inherit;outline:none}\n.vk-d-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}\n.vk-d-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:76px;\n padding:8px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-surface);\n color:var(--vk-fg);font:inherit;font-size:12px;text-align:center;cursor:pointer}\n.vk-d-tile .vk-d-ico{color:var(--vk-muted)}\n.vk-d-tile:hover{border-color:var(--vk-accent)}\n\n/* Imagen de fondo (el control de siempre, adentro de su panel) */\n.vk-d-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}\n.vk-d-field input[type=\"range\"]{border:0;padding:0;background:none;accent-color:var(--vk-accent);min-height:0}\n.vk-d-range-head{display:flex;justify-content:space-between;gap:8px}\n.vk-d-range-head output{color:var(--vk-fg);font-variant-numeric:tabular-nums}\n.vk-d-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}\n\n/* Numeracion y pasillos */\n.vk-d-numbering{display:flex;width:100%;height:100%;min-height:0;color:var(--vk-fg)}\n.vk-d-num-preview{flex:1;min-width:0;display:flex;flex-direction:column;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-num-head{padding:20px 24px;background:var(--vk-surface);border-bottom:1px solid var(--vk-line)}\n.vk-d-num-title{margin:0;font-size:20px;font-weight:600}\n.vk-d-num-stage{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:24px}\n.vk-d-num-grid{display:flex;flex-direction:column;gap:10px}\n.vk-d-num-row{display:flex;align-items:center;gap:10px}\n.vk-d-num-label{width:28px;flex:none;text-align:right;font-size:14px;font-weight:600;color:var(--vk-link)}\n.vk-d-num-seat{flex:none;width:34px;height:34px;border-radius:999px;border:0;padding:0;background:var(--vk-type);\n color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}\n.vk-d-num-seat[data-removed]{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66);color:var(--vk-muted)}\n.vk-d-num-seat[data-sold]{cursor:not-allowed;opacity:.55}\n.vk-d-legend{display:flex;gap:18px;font-size:13px;color:var(--vk-muted)}\n.vk-d-legend > span{display:flex;align-items:center;gap:6px}\n.vk-d-legend-dot{width:12px;height:12px;border-radius:999px;background:var(--vk-type)}\n.vk-d-legend-out{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66)}\n.vk-d-num-side{width:340px;flex:none;border-left:1px solid var(--vk-line);padding:24px;display:flex;flex-direction:column;gap:20px;overflow:auto;background:var(--vk-surface)}\n.vk-d-num-group{display:flex;flex-direction:column;gap:8px}\n.vk-d-num-group .vk-d-field > span,.vk-d-num-group-title{font-size:15px;font-weight:600;color:var(--vk-fg)}\n.vk-d-sub{font-size:13px;color:var(--vk-muted)}\n.vk-d-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--vk-fg);cursor:pointer}\n.vk-d-check input{width:20px;height:20px;margin:0}\n.vk-d-trim{min-height:44px}\n.vk-d-input{min-height:44px;font-size:16px}\n.vk-d-input[aria-invalid=\"true\"]{border-color:var(--vk-danger)}\n.vk-d-result{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--vk-radius-lg);background:var(--vk-seg);font-size:14px}\n.vk-d-num-actions{margin-top:auto;display:flex;gap:10px}\n.vk-d-num-actions .vk-d-btn{flex:1;min-height:46px}\n\n/* Hojas y dialogos */\n.vk-d-dock{display:contents}\n.vk-d-sheet-root{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end}\n.vk-d-sheet-root[hidden]{display:none}\n.vk-d-backdrop{position:absolute;inset:0;background:var(--vk-overlay)}\n.vk-d-sheet{position:relative;max-height:75vh;max-height:75dvh;display:flex;flex-direction:column;\n background:var(--vk-surface);color:var(--vk-fg);border-radius:var(--vk-radius-lg) var(--vk-radius-lg) 0 0;\n box-shadow:var(--vk-shadow);padding-bottom:env(safe-area-inset-bottom)}\n.vk-d-sheet:focus{outline:none}\n.vk-d-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;\n padding:8px 8px 8px 16px;border-bottom:1px solid var(--vk-line)}\n.vk-d-sheet-body{overflow:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}\n.vk-d-sheet .vk-d-types-panel{padding:0;min-height:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet{height:100%;max-height:none;border-radius:0}\n.vk-d-sheet-root[data-variant=\"center\"]{justify-content:center;align-items:center;padding:24px}\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet{width:min(1040px,100%);height:min(700px,100%);max-height:none;\n border-radius:20px;overflow:hidden;border:1px solid var(--vk-line);padding-bottom:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet-body,\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet-body{padding:0;flex:1;min-height:0;overflow:hidden}\n\n/* Celular (contenedor angosto): el lienzo ocupa todo y lo demas va en hojas. */\n.vk-designer[data-layout=\"compact\"] .vk-d-top{padding:8px 10px;gap:6px;flex-wrap:nowrap}\n.vk-designer[data-layout=\"compact\"] .vk-d-name{flex:1;font-size:15px}\n.vk-designer[data-layout=\"compact\"] .vk-d-actions{margin-left:0;flex:none}\n.vk-designer[data-layout=\"compact\"] .vk-d-history{margin-left:0}\n.vk-designer[data-layout=\"compact\"] .vk-d-body{flex-direction:column}\n.vk-designer[data-layout=\"compact\"] .vk-d-stage{min-height:320px}\n.vk-designer[data-layout=\"compact\"] .vk-d-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-field > input,\n.vk-designer[data-layout=\"compact\"] .vk-d-field select,\n.vk-designer[data-layout=\"compact\"] .vk-d-add-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-seg,\n.vk-designer[data-layout=\"compact\"] .vk-d-chip{min-height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-icon-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-insp-head .vk-d-icon-btn{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper{height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper button{width:44px;height:42px}\n.vk-designer[data-layout=\"compact\"] .vk-d-close{min-width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-banner .vk-d-btn{min-height:44px;padding:4px 14px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom{right:10px;bottom:10px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom button{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-numbering{flex-direction:column;overflow:auto}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-preview{flex:none;min-height:300px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-side{width:auto;border-left:0;border-top:1px solid var(--vk-line);overflow:visible;padding:16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-head{padding:14px 16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-actions{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--vk-surface)}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-title{font-size:17px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-stage{justify-content:flex-start;align-items:flex-start;padding:16px}\n.vk-d-toolbar{display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--vk-line);flex:none}\n.vk-d-toolbar .vk-d-btn{flex:1;padding:0 10px}\n.vk-d-toolbar .vk-d-btn[aria-label]{flex:none;width:48px}\n.vk-d-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;\n border-radius:999px;background:var(--vk-warn);color:#1a1206;font-size:12px;font-weight:700}\n.vk-d-arrange{display:flex;flex-direction:column;gap:4px;min-width:0}\n.vk-d-arrange-label{font-size:12px;font-weight:600;color:var(--vk-muted)}\n.vk-d-arrange-btns{display:flex;flex-wrap:wrap;gap:4px}\n.vk-d-dock{flex:none;padding:12px 12px 4px;border-top:1px solid var(--vk-line);background:var(--vk-surface);max-height:45vh;overflow:auto}\n.vk-d-dock .vk-d-arrange-btns{gap:6px}\n.vk-d-stage[data-pan-ready] .vk-d-canvas{cursor:grab}\n.vk-d-stage[data-pan-ready] .vk-d-canvas:active{cursor:grabbing}\n";
635
+ declare const DESIGNER_CSS = "\n:where(.vk-designer){\n --vk-fg:#0f172a; --vk-muted:#64748b; --vk-line:#e2e8f0; --vk-bg:#ffffff;\n --vk-surface:#f8fafc; --vk-panel:#ffffff; --vk-raised:#ffffff; --vk-field:#ffffff;\n --vk-accent:#0f172a; --vk-accent-fg:#ffffff; --vk-primary-bg:var(--vk-accent);\n --vk-danger:#b91c1c; --vk-warn:#b45309; --vk-ok:#047857; --vk-link:var(--vk-accent);\n --vk-seg:#f1f5f9; --vk-seg-on:#ffffff; --vk-canvas:#f8fafc; --vk-canvas-dot:transparent;\n --vk-overlay:rgba(15,23,42,.35); --vk-shadow:0 12px 32px rgba(15,23,42,.18);\n --vk-radius:8px; --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n}\n:where(.vk-designer[data-theme=\"dark\"]){\n --vk-fg:#f2f2f3; --vk-muted:#a3a3aa; --vk-line:#26262b; --vk-bg:#0b0b0d;\n --vk-surface:#121215; --vk-panel:#0f0f12; --vk-raised:#1a1a1f; --vk-field:#0b0b0d;\n --vk-accent:#e5482c; --vk-accent-fg:#ffffff; --vk-primary-bg:linear-gradient(90deg,#2f6fe0,#e5482c);\n --vk-danger:#ff8a7a; --vk-warn:#ffb36b; --vk-ok:#6fd3a7; --vk-link:#ff8a6e;\n --vk-seg:#17171b; --vk-seg-on:#2a2a31; --vk-canvas:#141418; --vk-canvas-dot:#2a2a31;\n --vk-overlay:rgba(5,5,7,.8); --vk-shadow:0 16px 40px rgba(0,0,0,.5);\n --vk-shape:#4a4a55; --vk-shape-fill:#2c2c34; --vk-unassigned:#6a6a74;\n --vk-taken:#3a3a44; --vk-taken-stroke:#5a5a66; --vk-held-stroke:#ffb36b;\n --vk-radius:10px; --vk-radius-lg:14px;\n color-scheme:dark;\n}\n:where(.vk-designer){height:100%}\n.vk-designer{display:flex;flex-direction:column;font:var(--vk-font);min-height:0;\n color:var(--vk-fg);background:var(--vk-bg);box-sizing:border-box;min-width:0}\n.vk-designer *{box-sizing:border-box}\n/* Un solo anillo de foco para todo el editor: sin esto, dentro de un panel\n oscuro el foco del navegador se pierde contra el fondo. */\n.vk-designer :focus-visible{outline:2px solid var(--vk-accent);outline-offset:2px}\n.vk-d-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;\n clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-d-ico{flex:none;display:block}\n\n/* Barra de arriba */\n.vk-d-top{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;\n padding:12px 16px;border-bottom:1px solid var(--vk-line);flex:none}\n.vk-d-name{margin:0;font-size:17px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-history{display:flex;gap:6px;margin-left:4px}\n.vk-d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}\n.vk-d-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;\n border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);\n border-radius:var(--vk-radius);padding:0 14px;font:inherit;cursor:pointer;min-height:40px}\n.vk-d-btn:disabled,.vk-d-icon-btn:disabled{opacity:.4;cursor:default}\n.vk-d-btn[aria-pressed=\"true\"]{background:var(--vk-accent);color:var(--vk-accent-fg);border-color:var(--vk-accent)}\n.vk-d-primary{border:0;background:var(--vk-primary-bg);color:var(--vk-accent-fg);font-weight:600;padding:0 18px}\n.vk-d-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;\n padding:0;border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);border-radius:var(--vk-radius);cursor:pointer}\n.vk-d-danger{color:var(--vk-danger)}\n.vk-d-link{border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:var(--vk-link);cursor:pointer}\n.vk-d-link:hover{text-decoration:underline}\n\n.vk-d-popover{position:absolute;z-index:20;top:calc(100% + 6px);right:16px;width:360px;max-width:calc(100% - 32px);\n max-height:70vh;overflow:auto;padding:14px;border-radius:var(--vk-radius-lg);border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);box-shadow:var(--vk-shadow)}\n.vk-d-popover:focus{outline:none}\n.vk-d-popover-landmarks{width:420px}\n\n.vk-d-notice{display:flex;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 12px;flex:none;\n border-radius:var(--vk-radius);border:1px solid var(--vk-danger);background:var(--vk-surface)}\n.vk-d-notice p{margin:0;flex:1}\n.vk-d-close{border:0;background:none;color:var(--vk-muted);font-size:18px;line-height:1;\n width:32px;height:32px;border-radius:var(--vk-radius);cursor:pointer}\n\n/* Cuerpo: entradas a la izquierda, lienzo al medio */\n.vk-d-body{display:flex;flex:1;min-height:0;min-width:0}\n.vk-d-left{width:340px;flex:none;overflow:auto;border-right:1px solid var(--vk-line);background:var(--vk-panel)}\n\n.vk-d-panel{min-width:0}\n.vk-d-panel-title{margin:0;font-size:17px;font-weight:600}\n.vk-d-hint{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--vk-muted)}\n.vk-d-group{margin:14px 0 6px;font-size:12px;font-weight:600;color:var(--vk-muted)}\n\n.vk-d-types-panel{display:flex;flex-direction:column;gap:14px;padding:20px;min-height:100%}\n.vk-d-types-head{display:flex;flex-direction:column;gap:2px}\n.vk-d-empty{margin:0;padding:14px;border-radius:var(--vk-radius-lg);border:1px dashed var(--vk-line);color:var(--vk-muted)}\n.vk-d-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n.vk-d-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--vk-radius-lg);\n border:1px solid var(--vk-line);background:var(--vk-surface)}\n.vk-d-card[data-active]{border-color:var(--vk-type);background:color-mix(in srgb,var(--vk-type) 9%,var(--vk-surface))}\n.vk-d-card-head{display:flex;align-items:center;gap:10px}\n.vk-d-dot{flex:none;width:12px;height:12px;border-radius:999px;background:var(--vk-type,var(--vk-muted))}\n.vk-d-card-name{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis}\n.vk-d-ok{font-size:13px;font-weight:600;color:var(--vk-ok);white-space:nowrap}\n.vk-d-missing{font-size:13px;font-weight:600;color:var(--vk-warn);white-space:nowrap}\n.vk-d-card-detail{font-size:13px;color:var(--vk-muted)}\n.vk-d-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.vk-d-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 8px;white-space:nowrap;font-size:13px;\n border:1px solid color-mix(in srgb,var(--vk-type) 35%,var(--vk-line));border-radius:var(--vk-radius);\n background:color-mix(in srgb,var(--vk-type) 14%,transparent);color:var(--vk-fg);font-family:inherit;font-weight:600;cursor:pointer;overflow:hidden}\n.vk-d-add-btn:hover{background:color-mix(in srgb,var(--vk-type) 24%,transparent)}\n.vk-d-add-btn:disabled{opacity:.45;cursor:default;background:transparent}\n.vk-d-full{margin:0;font-size:13px;color:var(--vk-muted)}\n.vk-d-zones{display:flex;flex-direction:column;gap:10px;padding-top:4px}\n.vk-d-dot-zone{border-radius:3px}\n.vk-d-wide{grid-column:1 / -1}\n.vk-d-types-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--vk-line)}\n.vk-d-onplan{display:flex;justify-content:space-between;gap:8px}\n.vk-d-onplan span{color:var(--vk-muted)}\n.vk-d-missing-line{margin:0;font-size:13px;color:var(--vk-warn)}\n.vk-d-warn{margin:4px 0 0;padding:8px 10px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);font-size:12px;line-height:1.4}\n.vk-d-error{margin:8px 0 0;font-size:13px;color:var(--vk-danger)}\n\n/* Lienzo */\n.vk-d-stage{position:relative;flex:1;min-width:0;min-height:420px;overflow:hidden;touch-action:none;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-stage[data-armed=\"true\"]{cursor:crosshair}\n.vk-d-stage[data-background-editing=\"true\"]{cursor:move}\n.vk-d-canvas{display:block;width:100%;height:100%;position:absolute;inset:0}\n.vk-d-layer{position:absolute;inset:0;pointer-events:none}\n.vk-d-target{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;color:transparent;overflow:hidden;border-radius:4px}\n.vk-d-target:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-d-handle{position:absolute;z-index:1;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;touch-action:none;cursor:nwse-resize}\n.vk-d-handle[data-corner=\"ne\"],.vk-d-handle[data-corner=\"sw\"]{cursor:nesw-resize}\n.vk-d-handle::after{content:\"\";position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);\n box-sizing:border-box;border-radius:3px;border:2px solid var(--vk-accent);background:var(--vk-raised)}\n.vk-d-handle:focus-visible{outline:3px solid var(--vk-accent);outline-offset:-8px;border-radius:8px}\n.vk-d-banner{position:absolute;z-index:2;top:10px;left:50%;transform:translateX(-50%);\n display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);\n padding:6px 6px 6px 12px;border-radius:999px;border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);font-size:12px;box-shadow:var(--vk-shadow)}\n.vk-d-banner .vk-d-btn{padding:4px 10px;min-height:28px;border-radius:999px;font-size:12px}\n.vk-d-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;z-index:1}\n.vk-d-zoom button{width:40px;height:40px;border:1px solid var(--vk-line);background:var(--vk-surface);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:18px;line-height:1;cursor:pointer}\n\n/* Panel de la pieza, flotando junto a ella */\n.vk-d-float{position:absolute;z-index:3;padding:14px;border-radius:var(--vk-radius-lg);\n background:var(--vk-raised);border:1px solid var(--vk-line);box-shadow:var(--vk-shadow);color:var(--vk-fg)}\n.vk-d-inspector{display:flex;flex-direction:column;gap:12px;min-width:0}\n.vk-d-insp-head{display:flex;align-items:center;gap:8px}\n.vk-d-insp-head .vk-d-dot{width:10px;height:10px}\n.vk-d-insp-head .vk-d-icon-btn{width:36px;height:36px}\n.vk-d-insp-title{flex:1;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}\n.vk-d-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}\n.vk-d-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--vk-muted);min-width:0}\n.vk-d-field > input,.vk-d-field select,.vk-d-input{border:1px solid var(--vk-line);background:var(--vk-field);\n color:var(--vk-fg);border-radius:var(--vk-radius);padding:0 10px;font:inherit;font-size:14px;min-height:40px;width:100%}\n.vk-d-stepper{display:flex;align-items:center;height:40px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-field)}\n.vk-d-stepper button{flex:none;width:34px;height:38px;border:0;background:transparent;color:var(--vk-fg);font-size:16px;cursor:pointer;border-radius:var(--vk-radius)}\n.vk-d-stepper button:disabled{opacity:.35;cursor:default}\n.vk-d-stepper input{flex:1;min-width:0;width:100%;height:38px;border:0;background:transparent;color:var(--vk-fg);\n text-align:center;font:inherit;font-weight:600;font-size:14px}\n.vk-d-stepper-value{flex:1;min-width:0;text-align:center;font-weight:600;font-size:14px;color:var(--vk-fg);white-space:nowrap}\n.vk-d-seg{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-height:40px;padding:3px;border-radius:var(--vk-radius);background:var(--vk-seg)}\n.vk-d-seg button{border:0;border-radius:calc(var(--vk-radius) - 2px);background:transparent;color:var(--vk-muted);\n font:inherit;font-size:13px;cursor:pointer;padding:0 6px}\n.vk-d-seg button[aria-pressed=\"true\"]{background:var(--vk-seg-on);color:var(--vk-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}\n.vk-d-insp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}\n.vk-d-assign .vk-d-hint{margin:0 0 6px}\n.vk-d-chips{display:flex;flex-wrap:wrap;gap:6px}\n.vk-d-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;\n border:1px solid var(--vk-line);background:var(--vk-surface);color:var(--vk-fg);font:inherit;font-size:13px;cursor:pointer}\n\n/* Referencias */\n.vk-d-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:var(--vk-field);color:var(--vk-muted)}\n.vk-d-search input{flex:1;min-width:0;min-height:40px;border:0;background:transparent;color:var(--vk-fg);font:inherit;outline:none}\n.vk-d-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}\n.vk-d-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:76px;\n padding:8px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-surface);\n color:var(--vk-fg);font:inherit;font-size:12px;text-align:center;cursor:pointer}\n.vk-d-tile .vk-d-ico{color:var(--vk-muted)}\n.vk-d-tile:hover{border-color:var(--vk-accent)}\n\n/* Imagen de fondo (el control de siempre, adentro de su panel) */\n.vk-d-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}\n.vk-d-field input[type=\"range\"]{border:0;padding:0;background:none;accent-color:var(--vk-accent);min-height:0}\n.vk-d-range-head{display:flex;justify-content:space-between;gap:8px}\n.vk-d-range-head output{color:var(--vk-fg);font-variant-numeric:tabular-nums}\n.vk-d-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}\n\n/* Numeracion y pasillos */\n.vk-d-numbering{display:flex;width:100%;height:100%;min-height:0;color:var(--vk-fg)}\n.vk-d-num-preview{flex:1;min-width:0;display:flex;flex-direction:column;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-num-head{padding:20px 24px;background:var(--vk-surface);border-bottom:1px solid var(--vk-line)}\n.vk-d-num-title{margin:0;font-size:20px;font-weight:600}\n.vk-d-num-stage{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:24px}\n.vk-d-num-grid{display:flex;flex-direction:column;gap:10px}\n.vk-d-num-row{display:flex;align-items:center;gap:10px}\n.vk-d-num-label{width:28px;flex:none;text-align:right;font-size:14px;font-weight:600;color:var(--vk-link)}\n.vk-d-num-seat{flex:none;width:34px;height:34px;border-radius:999px;border:0;padding:0;background:var(--vk-type);\n color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}\n.vk-d-num-seat[data-removed]{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66);color:var(--vk-muted)}\n.vk-d-num-seat[data-reserved]{background:repeating-linear-gradient(45deg,var(--vk-type) 0 4px,var(--vk-surface,#fff) 4px 7px);border:2px solid var(--vk-fg);color:var(--vk-fg)}\n.vk-d-num-seat[data-sold]{cursor:not-allowed;opacity:.55}\n.vk-d-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:13px;color:var(--vk-muted)}\n.vk-d-legend > span{display:flex;align-items:center;gap:6px}\n.vk-d-legend-dot{width:12px;height:12px;border-radius:999px;background:var(--vk-type)}\n.vk-d-places{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}\n.vk-d-place{min-width:44px;min-height:44px;border-radius:999px;border:1px solid var(--vk-line);background:var(--vk-seg,transparent);color:var(--vk-fg);font:inherit;font-weight:600;cursor:pointer}\n.vk-d-place[aria-pressed=\"true\"]{background:repeating-linear-gradient(45deg,var(--vk-type,#9ca3af) 0 4px,var(--vk-surface,#fff) 4px 7px);border:2px solid var(--vk-fg)}\n.vk-d-legend-reserved{background:repeating-linear-gradient(45deg,var(--vk-type) 0 3px,var(--vk-surface,#fff) 3px 5px);border:2px solid var(--vk-fg)}\n.vk-d-legend-out{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66)}\n.vk-d-num-side{width:340px;flex:none;border-left:1px solid var(--vk-line);padding:24px;display:flex;flex-direction:column;gap:20px;overflow:auto;background:var(--vk-surface)}\n.vk-d-num-group{display:flex;flex-direction:column;gap:8px}\n.vk-d-num-group .vk-d-field > span,.vk-d-num-group-title{font-size:15px;font-weight:600;color:var(--vk-fg)}\n.vk-d-sub{font-size:13px;color:var(--vk-muted)}\n.vk-d-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--vk-fg);cursor:pointer}\n.vk-d-check input{width:20px;height:20px;margin:0}\n.vk-d-trim{min-height:44px}\n.vk-d-input{min-height:44px;font-size:16px}\n.vk-d-input[aria-invalid=\"true\"]{border-color:var(--vk-danger)}\n.vk-d-result{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--vk-radius-lg);background:var(--vk-seg);font-size:14px}\n.vk-d-num-actions{margin-top:auto;display:flex;gap:10px}\n.vk-d-num-actions .vk-d-btn{flex:1;min-height:46px}\n\n/* Hojas y dialogos */\n.vk-d-dock{display:contents}\n.vk-d-sheet-root{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end}\n.vk-d-sheet-root[hidden]{display:none}\n.vk-d-backdrop{position:absolute;inset:0;background:var(--vk-overlay)}\n.vk-d-sheet{position:relative;max-height:75vh;max-height:75dvh;display:flex;flex-direction:column;\n background:var(--vk-surface);color:var(--vk-fg);border-radius:var(--vk-radius-lg) var(--vk-radius-lg) 0 0;\n box-shadow:var(--vk-shadow);padding-bottom:env(safe-area-inset-bottom)}\n.vk-d-sheet:focus{outline:none}\n.vk-d-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;\n padding:8px 8px 8px 16px;border-bottom:1px solid var(--vk-line)}\n.vk-d-sheet-body{overflow:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}\n.vk-d-sheet .vk-d-types-panel{padding:0;min-height:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet{height:100%;max-height:none;border-radius:0}\n.vk-d-sheet-root[data-variant=\"center\"]{justify-content:center;align-items:center;padding:24px}\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet{width:min(1040px,100%);height:min(700px,100%);max-height:none;\n border-radius:20px;overflow:hidden;border:1px solid var(--vk-line);padding-bottom:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet-body,\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet-body{padding:0;flex:1;min-height:0;overflow:hidden}\n\n/* Celular (contenedor angosto): el lienzo ocupa todo y lo demas va en hojas. */\n.vk-designer[data-layout=\"compact\"] .vk-d-top{padding:8px 10px;gap:6px;flex-wrap:nowrap}\n.vk-designer[data-layout=\"compact\"] .vk-d-name{flex:1;font-size:15px}\n.vk-designer[data-layout=\"compact\"] .vk-d-actions{margin-left:0;flex:none}\n.vk-designer[data-layout=\"compact\"] .vk-d-history{margin-left:0}\n.vk-designer[data-layout=\"compact\"] .vk-d-body{flex-direction:column}\n.vk-designer[data-layout=\"compact\"] .vk-d-stage{min-height:320px}\n.vk-designer[data-layout=\"compact\"] .vk-d-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-field > input,\n.vk-designer[data-layout=\"compact\"] .vk-d-field select,\n.vk-designer[data-layout=\"compact\"] .vk-d-add-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-seg,\n.vk-designer[data-layout=\"compact\"] .vk-d-chip{min-height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-icon-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-insp-head .vk-d-icon-btn{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper{height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper button{width:44px;height:42px}\n.vk-designer[data-layout=\"compact\"] .vk-d-close{min-width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-banner .vk-d-btn{min-height:44px;padding:4px 14px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom{right:10px;bottom:10px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom button{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-numbering{flex-direction:column;overflow:auto}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-preview{flex:none;min-height:300px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-side{width:auto;border-left:0;border-top:1px solid var(--vk-line);overflow:visible;padding:16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-head{padding:14px 16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-actions{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--vk-surface)}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-title{font-size:17px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-stage{justify-content:flex-start;align-items:flex-start;padding:16px}\n.vk-d-toolbar{display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--vk-line);flex:none}\n.vk-d-toolbar .vk-d-btn{flex:1;padding:0 10px}\n.vk-d-toolbar .vk-d-btn[aria-label]{flex:none;width:48px}\n.vk-d-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;\n border-radius:999px;background:var(--vk-warn);color:#1a1206;font-size:12px;font-weight:700}\n.vk-d-arrange{display:flex;flex-direction:column;gap:4px;min-width:0}\n.vk-d-arrange-label{font-size:12px;font-weight:600;color:var(--vk-muted)}\n.vk-d-arrange-btns{display:flex;flex-wrap:wrap;gap:4px}\n.vk-d-dock{flex:none;padding:12px 12px 4px;border-top:1px solid var(--vk-line);background:var(--vk-surface);max-height:45vh;overflow:auto}\n.vk-d-dock .vk-d-arrange-btns{gap:6px}\n.vk-d-stage[data-pan-ready] .vk-d-canvas{cursor:grab}\n.vk-d-stage[data-pan-ready] .vk-d-canvas:active{cursor:grabbing}\n";
582
636
 
583
637
  type UseImageResult = {
584
638
  image: HTMLImageElement | null;
@@ -591,6 +645,6 @@ type UseImageResult = {
591
645
  */
592
646
  declare function useImage(src: string | null): UseImageResult;
593
647
 
594
- declare const VERSION = "0.10.2";
648
+ declare const VERSION = "0.11.0";
595
649
 
596
- export { type CapacityRejection, DESIGNER_CSS, type DesignerHostApi, type DesignerMessages, type DesignerOverrides, type DesignerRejection, type MessageOverrides, type Messages, PICKER_CSS, type PlacedCount, SeatMap, type SeatMapPlaceType, type SeatMapProps, type UseImageResult, VERSION, VenueDesigner, type VenueDesignerProps, VenueOverview, type VenueOverviewPlaceType, type VenueOverviewProps, designerEn, designerEs, en, es, format, mergeDesignerMessages, mergeMessages, selectionSummary, useImage };
650
+ export { type CapacityRejection, DESIGNER_CSS, type DesignerHostApi, type DesignerMessages, type DesignerOverrides, type DesignerRejection, type MessageOverrides, type Messages, PICKER_CSS, type PlacedCount, SeatMap, type SeatMapPlaceType, type SeatMapProps, type UnitStatus, type UnitStatusKind, type UnitStatusMap, type UseImageResult, VERSION, VenueDesigner, type VenueDesignerProps, VenueOverview, type VenueOverviewPlaceType, type VenueOverviewProps, designerEn, designerEs, en, es, format, mergeDesignerMessages, mergeMessages, selectionSummary, useImage };
package/dist/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as Layout, S as SellableUnit, f as LockViolation, w as PieceKind, F as PlanSummary, A as PlaceTypeOption } from './place-types-Dc0eabAi.js';
1
+ import { a as Layout, S as SellableUnit, f as LockViolation, w as PieceKind, F as PlanSummary, A as PlaceTypeOption } from './place-types-DNfiQXGU.js';
2
2
  import { CSSProperties, ReactElement, ReactNode } from 'react';
3
3
  import 'zod';
4
4
 
@@ -51,6 +51,19 @@ type Messages = {
51
51
  focusHintSeats: string;
52
52
  focusHintPlaces: string;
53
53
  focusHintTables: string;
54
+ /** Final del nombre accesible de uno que el público no puede comprar. */
55
+ notForSale: string;
56
+ inviteOnlySeat: string;
57
+ inviteOnlyTable: string;
58
+ inviteOnlyPlace: string;
59
+ /** Con `allowInviteOnly`: final del nombre accesible y leyenda. */
60
+ inviteOnly: string;
61
+ legendInviteOnly: string;
62
+ statusSold: string;
63
+ statusCourtesy: string;
64
+ statusHeld: string;
65
+ legendCourtesy: string;
66
+ legendHeld: string;
54
67
  };
55
68
  declare const es: Messages;
56
69
  declare const en: Messages;
@@ -68,6 +81,16 @@ type MessageOverrides = {
68
81
  /** Copy final: es-AR pisado por lo que mande el host. Un `undefined` no pisa nada. */
69
82
  declare function mergeMessages(overrides?: MessageOverrides): Messages;
70
83
 
84
+ /** Qué le pasó a un lugar, para el mapa del panel de la productora. */
85
+ type UnitStatusKind = "sold" | "courtesy" | "held";
86
+ /** `label` es lo que se dice al tocarlo («Cortesía de Ana Pérez», «Lista Amigos de Juan»). */
87
+ type UnitStatus = {
88
+ kind: UnitStatusKind;
89
+ label?: string | undefined;
90
+ };
91
+ /** Por id de unidad (`SellableUnit.id`). */
92
+ type UnitStatusMap = Readonly<Record<string, UnitStatus>>;
93
+
71
94
  type SeatMapPlaceType = {
72
95
  ref: string;
73
96
  label: string;
@@ -106,6 +129,20 @@ type SeatMapProps = {
106
129
  onBack?: () => void;
107
130
  /** Tocaron una zona o un lugar de OTRO tipo de `placeTypes`: el host decide si cambia `focusRef`. */
108
131
  onFocusChange?: (ref: string) => void;
132
+ /**
133
+ * Se eligen lugares de cualquier tipo de `placeTypes` a la vez: tocar uno de otro tipo lo suma
134
+ * a la selección en vez de cambiar el foco, y nada se atenúa. `focusRef` sólo encuadra.
135
+ * El resumen y `maxSelection` cuentan todo lo elegido.
136
+ */
137
+ multiType?: boolean;
138
+ /**
139
+ * Para el panel de la productora: vendida, regalada o apartada, por id de unidad. Cada estado
140
+ * se pinta distinto (con una marca que no depende del color), la leyenda suma los presentes y
141
+ * tocar uno anuncia su `label` sin elegirlo.
142
+ */
143
+ unitStatus?: UnitStatusMap;
144
+ /** Los lugares «sólo con invitación» se pueden elegir (el panel). Sin esto se ven como no disponibles. */
145
+ allowInviteOnly?: boolean;
109
146
  /** Alto fijo del mapa en píxeles. Sin esto, la caja sigue la proporción del plano. */
110
147
  height?: number;
111
148
  messages?: MessageOverrides;
@@ -149,7 +186,7 @@ declare function selectionSummary(units: SellableUnit[], ids: readonly string[],
149
186
  * las lee `<VenueCanvas>` con `getComputedStyle` y se las pasa al render, así
150
187
  * que el mapa sigue al tema igual que el resto.
151
188
  */
152
- declare const PICKER_CSS = "\n:where(.vk-root){\n --vk-fg:#0f172a;\n --vk-muted:#64748b;\n --vk-line:#e2e8f0;\n --vk-bg:#ffffff;\n --vk-surface:#f8fafc;\n --vk-accent:#0f172a;\n --vk-accent-fg:#ffffff;\n --vk-radius:8px;\n --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n /* S\u00F3lo las dibuja el lienzo (y la leyenda). */\n --vk-taken:#cbd5e1;\n --vk-taken-stroke:#94a3b8;\n --vk-held-stroke:#b45309;\n --vk-shape:#94a3b8;\n --vk-shape-fill:#e2e8f0;\n --vk-unassigned:#9ca3af;\n --vk-zone-alpha:38;\n /* Mapa del comprador: tuya, vendida, numero sobre la butaca y referencias. */\n --vk-zone-alpha-selected:66;\n --vk-mine:#ffffff;\n --vk-sold:#2a2a31;\n --vk-sold-stroke:#3a3a44;\n --vk-sold-fg:#6a6a74;\n --vk-unit-fg:#0b0b0d;\n --vk-landmark:#23232a;\n --vk-landmark-stroke:#34343c;\n --vk-landmark-fg:#d6d6dc;\n}\n.vk-root{display:flex;flex-direction:column;gap:12px;font:var(--vk-font);\n color:var(--vk-fg);background:var(--vk-bg);position:relative;box-sizing:border-box;\n /* Sin alto propio: embebido en la pagina de un host, mide lo que mide su\n contenido. El alto de pantalla completa esta detras de data-fill.\n (Sin acentos graves en este comentario: vive adentro de un template literal\n de TypeScript y cada uno lo cortaria al medio.) */\n }\n.vk-root[data-fill=\"true\"]{height:100vh;height:100dvh;max-height:100dvh}\n.vk-root *{box-sizing:border-box}\n/* El alto sale de la proporcion del plano (--vk-plan-ratio, lo pone el\n componente), acotado para que un plano muy alto no empuje la barra fuera\n de la pantalla ni uno muy apaisado quede en una tira. */\n.vk-map{position:relative;flex:none;width:100%;aspect-ratio:var(--vk-plan-ratio, 3 / 2);\n min-height:300px;max-height:70vh;background:var(--vk-surface);\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);overflow:hidden;touch-action:none}\n.vk-root[data-fill=\"true\"] .vk-map{flex:1;aspect-ratio:auto;min-height:0;max-height:none}\n.vk-map[data-cooperative=\"true\"]{touch-action:pan-y}\n.vk-canvas{display:block;width:100%;height:100%}\n.vk-a11y{position:absolute;inset:0;pointer-events:none}\n.vk-seat{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;background:transparent;\n border-radius:50%;cursor:pointer;color:transparent;overflow:hidden}\n.vk-seat:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-choose{position:absolute;left:8px;top:8px;max-width:calc(100% - 64px);min-height:44px;padding:8px 12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;font-size:14px;text-align:left;cursor:pointer;opacity:0}\n.vk-choose:focus{opacity:1;pointer-events:auto;outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;max-width:calc(100% - 32px);\n padding:8px 12px;border-radius:var(--vk-radius);background:rgba(0,0,0,.72);color:#fff;font-size:14px;\n text-align:center;pointer-events:none}\n.vk-zoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px}\n.vk-zoom button{width:36px;height:36px;border:1px solid var(--vk-line);background:var(--vk-bg);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:16px;line-height:1;cursor:pointer}\n.vk-type{margin:0;display:flex;align-items:center;gap:8px;font-weight:600}\n.vk-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;\n color:var(--vk-muted);font-size:13px}\n.vk-legend li{display:flex;align-items:center;gap:6px}\n.vk-dot{width:14px;height:14px;border-radius:50%;flex:none;box-sizing:border-box}\n.vk-dot[data-state=\"selected\"]{background:var(--vk-mine);border:3px solid var(--vk-accent)}\n.vk-dot[data-state=\"taken\"]{background:var(--vk-sold);border:1px solid var(--vk-sold-stroke)}\n.vk-cta{border:1px solid var(--vk-accent);background:var(--vk-accent);color:var(--vk-accent-fg);\n border-radius:var(--vk-radius);padding:10px 16px;cursor:pointer;font-size:14px;font-weight:600;min-height:44px}\n.vk-cta:disabled{opacity:.5;cursor:default}\n.vk-bar{flex:none;display:flex;align-items:center;gap:12px;padding:12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);background:var(--vk-bg)}\n.vk-bar-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}\n.vk-bar-summary{font-weight:600}\n.vk-bar-total{font-variant-numeric:tabular-nums}\n.vk-bar-hold{color:var(--vk-muted);font-size:13px}\n.vk-notice{margin:0;padding:8px 12px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);color:var(--vk-fg);font-size:13px}\n.vk-notice:empty{display:none}\n.vk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n/* El mapa entero: debajo, un boton por entrada (lo que usa el teclado y el lector). */\n.vk-types{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.vk-type-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;text-align:left;cursor:pointer}\n.vk-type-btn:hover{border-color:var(--vk-accent)}\n.vk-type-btn:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-type-btn[aria-disabled=\"true\"]{cursor:default;opacity:.55}\n.vk-type-btn[aria-disabled=\"true\"]:hover{border-color:var(--vk-line)}\n.vk-type-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}\n.vk-type-price{flex:none;font-variant-numeric:tabular-nums;color:var(--vk-muted)}\n.vk-type-out{flex:none;font-size:13px;font-weight:600;color:var(--vk-muted)}\n/* Embebido en una tarjeta del host: sin borde propio, encabezado arriba y leyenda abajo. */\n.vk-root[data-embedded=\"true\"]{gap:0}\n.vk-root[data-embedded=\"true\"] .vk-map{border:0;border-radius:0}\n.vk-root[data-embedded=\"true\"] .vk-legend{padding:12px 16px;border-top:1px solid var(--vk-line)}\n.vk-root[data-embedded=\"true\"] .vk-notice{margin:8px 14px 0}\n.vk-head{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:52px;padding:8px 14px;\n border-bottom:1px solid var(--vk-line)}\n.vk-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:transparent;color:var(--vk-fg);font:inherit;cursor:pointer}\n.vk-back:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-head-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:700;overflow-wrap:anywhere}\n.vk-head-hint{min-width:0;color:var(--vk-muted);font-size:13px}\n/* Con hideList la lista sigue para el teclado y el lector, oculta hasta que un boton toma el foco. */\n.vk-types[data-hidden=\"true\"]:not(:focus-within){position:absolute;width:1px;height:1px;margin:-1px;padding:0;\n overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-types[data-hidden=\"true\"]:focus-within{padding:12px 14px;border-top:1px solid var(--vk-line)}\n.vk-type-btn[data-selected=\"true\"]{border-color:var(--vk-accent)}\n";
189
+ declare const PICKER_CSS = "\n:where(.vk-root){\n --vk-fg:#0f172a;\n --vk-muted:#64748b;\n --vk-line:#e2e8f0;\n --vk-bg:#ffffff;\n --vk-surface:#f8fafc;\n --vk-accent:#0f172a;\n --vk-accent-fg:#ffffff;\n --vk-radius:8px;\n --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n /* S\u00F3lo las dibuja el lienzo (y la leyenda). */\n --vk-taken:#cbd5e1;\n --vk-taken-stroke:#94a3b8;\n --vk-held-stroke:#b45309;\n --vk-shape:#94a3b8;\n --vk-shape-fill:#e2e8f0;\n --vk-unassigned:#9ca3af;\n --vk-zone-alpha:38;\n /* Mapa del comprador: tuya, vendida, numero sobre la butaca y referencias. */\n --vk-zone-alpha-selected:66;\n --vk-mine:#ffffff;\n --vk-sold:#2a2a31;\n --vk-sold-stroke:#3a3a44;\n --vk-sold-fg:#6a6a74;\n --vk-unit-fg:#0b0b0d;\n --vk-landmark:#23232a;\n --vk-landmark-stroke:#34343c;\n --vk-landmark-fg:#d6d6dc;\n /* Panel de la productora: regalada, apartada y la marca que las distingue sin color. */\n --vk-courtesy:#7c3aed;\n --vk-courtesy-fg:#ffffff;\n --vk-held-for:#f59e0b;\n --vk-held-for-fg:#0b0b0d;\n --vk-status-mark:#ffffff;\n}\n.vk-root{display:flex;flex-direction:column;gap:12px;font:var(--vk-font);\n color:var(--vk-fg);background:var(--vk-bg);position:relative;box-sizing:border-box;\n /* Sin alto propio: embebido en la pagina de un host, mide lo que mide su\n contenido. El alto de pantalla completa esta detras de data-fill.\n (Sin acentos graves en este comentario: vive adentro de un template literal\n de TypeScript y cada uno lo cortaria al medio.) */\n }\n.vk-root[data-fill=\"true\"]{height:100vh;height:100dvh;max-height:100dvh}\n.vk-root *{box-sizing:border-box}\n/* El alto sale de la proporcion del plano (--vk-plan-ratio, lo pone el\n componente), acotado para que un plano muy alto no empuje la barra fuera\n de la pantalla ni uno muy apaisado quede en una tira. */\n.vk-map{position:relative;flex:none;width:100%;aspect-ratio:var(--vk-plan-ratio, 3 / 2);\n min-height:300px;max-height:70vh;background:var(--vk-surface);\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);overflow:hidden;touch-action:none}\n.vk-root[data-fill=\"true\"] .vk-map{flex:1;aspect-ratio:auto;min-height:0;max-height:none}\n.vk-map[data-cooperative=\"true\"]{touch-action:pan-y}\n.vk-canvas{display:block;width:100%;height:100%}\n.vk-a11y{position:absolute;inset:0;pointer-events:none}\n.vk-seat{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;background:transparent;\n border-radius:50%;cursor:pointer;color:transparent;overflow:hidden}\n.vk-seat:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-choose{position:absolute;left:8px;top:8px;max-width:calc(100% - 64px);min-height:44px;padding:8px 12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;font-size:14px;text-align:left;cursor:pointer;opacity:0}\n.vk-choose:focus{opacity:1;pointer-events:auto;outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;max-width:calc(100% - 32px);\n padding:8px 12px;border-radius:var(--vk-radius);background:rgba(0,0,0,.72);color:#fff;font-size:14px;\n text-align:center;pointer-events:none}\n.vk-zoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px}\n.vk-zoom button{width:36px;height:36px;border:1px solid var(--vk-line);background:var(--vk-bg);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:16px;line-height:1;cursor:pointer}\n.vk-type{margin:0;display:flex;align-items:center;gap:8px;font-weight:600}\n.vk-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;\n color:var(--vk-muted);font-size:13px}\n.vk-legend li{display:flex;align-items:center;gap:6px}\n.vk-dot{width:14px;height:14px;border-radius:50%;flex:none;box-sizing:border-box}\n.vk-dot[data-state=\"selected\"]{background:var(--vk-mine);border:3px solid var(--vk-accent)}\n.vk-dot[data-state=\"taken\"]{background:var(--vk-sold);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"courtesy\"]{background:radial-gradient(circle at 70% 30%,var(--vk-status-mark,#fff) 0 2.5px,transparent 3px),var(--vk-courtesy,#7c3aed);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"held-for\"]{background:linear-gradient(var(--vk-status-mark,#fff),var(--vk-status-mark,#fff)) 80% 20%/5px 5px no-repeat,var(--vk-held-for,#f59e0b);border:1px solid var(--vk-sold-stroke)}\n.vk-dot[data-state=\"invite-only\"]{border:2px dashed var(--vk-fg)}\n.vk-cta{border:1px solid var(--vk-accent);background:var(--vk-accent);color:var(--vk-accent-fg);\n border-radius:var(--vk-radius);padding:10px 16px;cursor:pointer;font-size:14px;font-weight:600;min-height:44px}\n.vk-cta:disabled{opacity:.5;cursor:default}\n.vk-bar{flex:none;display:flex;align-items:center;gap:12px;padding:12px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius-lg);background:var(--vk-bg)}\n.vk-bar-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}\n.vk-bar-summary{font-weight:600}\n.vk-bar-total{font-variant-numeric:tabular-nums}\n.vk-bar-hold{color:var(--vk-muted);font-size:13px}\n.vk-notice{margin:0;padding:8px 12px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);color:var(--vk-fg);font-size:13px}\n.vk-notice:empty{display:none}\n.vk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n/* El mapa entero: debajo, un boton por entrada (lo que usa el teclado y el lector). */\n.vk-types{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}\n.vk-type-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;\n border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-bg);color:var(--vk-fg);\n font:inherit;text-align:left;cursor:pointer}\n.vk-type-btn:hover{border-color:var(--vk-accent)}\n.vk-type-btn:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-type-btn[aria-disabled=\"true\"]{cursor:default;opacity:.55}\n.vk-type-btn[aria-disabled=\"true\"]:hover{border-color:var(--vk-line)}\n.vk-type-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}\n.vk-type-price{flex:none;font-variant-numeric:tabular-nums;color:var(--vk-muted)}\n.vk-type-out{flex:none;font-size:13px;font-weight:600;color:var(--vk-muted)}\n/* Embebido en una tarjeta del host: sin borde propio, encabezado arriba y leyenda abajo. */\n.vk-root[data-embedded=\"true\"]{gap:0}\n.vk-root[data-embedded=\"true\"] .vk-map{border:0;border-radius:0}\n.vk-root[data-embedded=\"true\"] .vk-legend{padding:12px 16px;border-top:1px solid var(--vk-line)}\n.vk-root[data-embedded=\"true\"] .vk-notice{margin:8px 14px 0}\n.vk-head{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:52px;padding:8px 14px;\n border-bottom:1px solid var(--vk-line)}\n.vk-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:transparent;color:var(--vk-fg);font:inherit;cursor:pointer}\n.vk-back:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-head-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:700;overflow-wrap:anywhere}\n.vk-head-hint{min-width:0;color:var(--vk-muted);font-size:13px}\n/* Con hideList la lista sigue para el teclado y el lector, oculta hasta que un boton toma el foco. */\n.vk-types[data-hidden=\"true\"]:not(:focus-within){position:absolute;width:1px;height:1px;margin:-1px;padding:0;\n overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-types[data-hidden=\"true\"]:focus-within{padding:12px 14px;border-top:1px solid var(--vk-line)}\n.vk-type-btn[data-selected=\"true\"]{border-color:var(--vk-accent)}\n";
153
190
 
154
191
  type VenueOverviewPlaceType = {
155
192
  ref: string;
@@ -179,6 +216,10 @@ type VenueOverviewProps = {
179
216
  takenUnitIds?: readonly string[];
180
217
  /** Lugares que eligió el comprador, para verlos en miniatura. */
181
218
  selectedUnitIds?: readonly string[];
219
+ /** Panel de la productora: vendida, regalada o apartada, por id de unidad (como en `<SeatMap />`). */
220
+ unitStatus?: UnitStatusMap;
221
+ /** Los «sólo con invitación» se ven como cualquier otro (el panel). Sin esto, como no disponibles. */
222
+ allowInviteOnly?: boolean;
182
223
  /** Alto fijo en píxeles. Sin esto, la caja sigue la proporción del plano. */
183
224
  height?: number;
184
225
  messages?: MessageOverrides;
@@ -371,6 +412,19 @@ type DesignerMessages = {
371
412
  seatName: string;
372
413
  seatNameRemoved: string;
373
414
  seatNameSold: string;
415
+ seatNameReserved: string;
416
+ /** «Al tocar: Reservar · Sacar (pasillo)» en la numeración de un bloque. */
417
+ tapMode: string;
418
+ tapReserve: string;
419
+ tapRemove: string;
420
+ /** Qué significa reservar: lo lee la productora antes de tocar. */
421
+ reservedNotice: string;
422
+ legendReserved: string;
423
+ reservedOne: string;
424
+ reservedMany: string;
425
+ tableInviteOnly: string;
426
+ placesInviteOnly: string;
427
+ placeInviteOnly: string;
374
428
  assignTitle: string;
375
429
  noPlaceTypes: string;
376
430
  capacityCount: string;
@@ -578,7 +632,7 @@ declare function VenueDesigner(props: VenueDesignerProps): ReactElement;
578
632
  * (Sin acentos graves en los comentarios: esto es un template literal y cada
579
633
  * uno lo cortaria al medio.)
580
634
  */
581
- declare const DESIGNER_CSS = "\n:where(.vk-designer){\n --vk-fg:#0f172a; --vk-muted:#64748b; --vk-line:#e2e8f0; --vk-bg:#ffffff;\n --vk-surface:#f8fafc; --vk-panel:#ffffff; --vk-raised:#ffffff; --vk-field:#ffffff;\n --vk-accent:#0f172a; --vk-accent-fg:#ffffff; --vk-primary-bg:var(--vk-accent);\n --vk-danger:#b91c1c; --vk-warn:#b45309; --vk-ok:#047857; --vk-link:var(--vk-accent);\n --vk-seg:#f1f5f9; --vk-seg-on:#ffffff; --vk-canvas:#f8fafc; --vk-canvas-dot:transparent;\n --vk-overlay:rgba(15,23,42,.35); --vk-shadow:0 12px 32px rgba(15,23,42,.18);\n --vk-radius:8px; --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n}\n:where(.vk-designer[data-theme=\"dark\"]){\n --vk-fg:#f2f2f3; --vk-muted:#a3a3aa; --vk-line:#26262b; --vk-bg:#0b0b0d;\n --vk-surface:#121215; --vk-panel:#0f0f12; --vk-raised:#1a1a1f; --vk-field:#0b0b0d;\n --vk-accent:#e5482c; --vk-accent-fg:#ffffff; --vk-primary-bg:linear-gradient(90deg,#2f6fe0,#e5482c);\n --vk-danger:#ff8a7a; --vk-warn:#ffb36b; --vk-ok:#6fd3a7; --vk-link:#ff8a6e;\n --vk-seg:#17171b; --vk-seg-on:#2a2a31; --vk-canvas:#141418; --vk-canvas-dot:#2a2a31;\n --vk-overlay:rgba(5,5,7,.8); --vk-shadow:0 16px 40px rgba(0,0,0,.5);\n --vk-shape:#4a4a55; --vk-shape-fill:#2c2c34; --vk-unassigned:#6a6a74;\n --vk-taken:#3a3a44; --vk-taken-stroke:#5a5a66; --vk-held-stroke:#ffb36b;\n --vk-radius:10px; --vk-radius-lg:14px;\n color-scheme:dark;\n}\n:where(.vk-designer){height:100%}\n.vk-designer{display:flex;flex-direction:column;font:var(--vk-font);min-height:0;\n color:var(--vk-fg);background:var(--vk-bg);box-sizing:border-box;min-width:0}\n.vk-designer *{box-sizing:border-box}\n/* Un solo anillo de foco para todo el editor: sin esto, dentro de un panel\n oscuro el foco del navegador se pierde contra el fondo. */\n.vk-designer :focus-visible{outline:2px solid var(--vk-accent);outline-offset:2px}\n.vk-d-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;\n clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-d-ico{flex:none;display:block}\n\n/* Barra de arriba */\n.vk-d-top{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;\n padding:12px 16px;border-bottom:1px solid var(--vk-line);flex:none}\n.vk-d-name{margin:0;font-size:17px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-history{display:flex;gap:6px;margin-left:4px}\n.vk-d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}\n.vk-d-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;\n border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);\n border-radius:var(--vk-radius);padding:0 14px;font:inherit;cursor:pointer;min-height:40px}\n.vk-d-btn:disabled,.vk-d-icon-btn:disabled{opacity:.4;cursor:default}\n.vk-d-btn[aria-pressed=\"true\"]{background:var(--vk-accent);color:var(--vk-accent-fg);border-color:var(--vk-accent)}\n.vk-d-primary{border:0;background:var(--vk-primary-bg);color:var(--vk-accent-fg);font-weight:600;padding:0 18px}\n.vk-d-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;\n padding:0;border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);border-radius:var(--vk-radius);cursor:pointer}\n.vk-d-danger{color:var(--vk-danger)}\n.vk-d-link{border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:var(--vk-link);cursor:pointer}\n.vk-d-link:hover{text-decoration:underline}\n\n.vk-d-popover{position:absolute;z-index:20;top:calc(100% + 6px);right:16px;width:360px;max-width:calc(100% - 32px);\n max-height:70vh;overflow:auto;padding:14px;border-radius:var(--vk-radius-lg);border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);box-shadow:var(--vk-shadow)}\n.vk-d-popover:focus{outline:none}\n.vk-d-popover-landmarks{width:420px}\n\n.vk-d-notice{display:flex;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 12px;flex:none;\n border-radius:var(--vk-radius);border:1px solid var(--vk-danger);background:var(--vk-surface)}\n.vk-d-notice p{margin:0;flex:1}\n.vk-d-close{border:0;background:none;color:var(--vk-muted);font-size:18px;line-height:1;\n width:32px;height:32px;border-radius:var(--vk-radius);cursor:pointer}\n\n/* Cuerpo: entradas a la izquierda, lienzo al medio */\n.vk-d-body{display:flex;flex:1;min-height:0;min-width:0}\n.vk-d-left{width:340px;flex:none;overflow:auto;border-right:1px solid var(--vk-line);background:var(--vk-panel)}\n\n.vk-d-panel{min-width:0}\n.vk-d-panel-title{margin:0;font-size:17px;font-weight:600}\n.vk-d-hint{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--vk-muted)}\n.vk-d-group{margin:14px 0 6px;font-size:12px;font-weight:600;color:var(--vk-muted)}\n\n.vk-d-types-panel{display:flex;flex-direction:column;gap:14px;padding:20px;min-height:100%}\n.vk-d-types-head{display:flex;flex-direction:column;gap:2px}\n.vk-d-empty{margin:0;padding:14px;border-radius:var(--vk-radius-lg);border:1px dashed var(--vk-line);color:var(--vk-muted)}\n.vk-d-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n.vk-d-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--vk-radius-lg);\n border:1px solid var(--vk-line);background:var(--vk-surface)}\n.vk-d-card[data-active]{border-color:var(--vk-type);background:color-mix(in srgb,var(--vk-type) 9%,var(--vk-surface))}\n.vk-d-card-head{display:flex;align-items:center;gap:10px}\n.vk-d-dot{flex:none;width:12px;height:12px;border-radius:999px;background:var(--vk-type,var(--vk-muted))}\n.vk-d-card-name{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis}\n.vk-d-ok{font-size:13px;font-weight:600;color:var(--vk-ok);white-space:nowrap}\n.vk-d-missing{font-size:13px;font-weight:600;color:var(--vk-warn);white-space:nowrap}\n.vk-d-card-detail{font-size:13px;color:var(--vk-muted)}\n.vk-d-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.vk-d-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 8px;white-space:nowrap;font-size:13px;\n border:1px solid color-mix(in srgb,var(--vk-type) 35%,var(--vk-line));border-radius:var(--vk-radius);\n background:color-mix(in srgb,var(--vk-type) 14%,transparent);color:var(--vk-fg);font-family:inherit;font-weight:600;cursor:pointer;overflow:hidden}\n.vk-d-add-btn:hover{background:color-mix(in srgb,var(--vk-type) 24%,transparent)}\n.vk-d-add-btn:disabled{opacity:.45;cursor:default;background:transparent}\n.vk-d-full{margin:0;font-size:13px;color:var(--vk-muted)}\n.vk-d-zones{display:flex;flex-direction:column;gap:10px;padding-top:4px}\n.vk-d-dot-zone{border-radius:3px}\n.vk-d-wide{grid-column:1 / -1}\n.vk-d-types-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--vk-line)}\n.vk-d-onplan{display:flex;justify-content:space-between;gap:8px}\n.vk-d-onplan span{color:var(--vk-muted)}\n.vk-d-missing-line{margin:0;font-size:13px;color:var(--vk-warn)}\n.vk-d-warn{margin:4px 0 0;padding:8px 10px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);font-size:12px;line-height:1.4}\n.vk-d-error{margin:8px 0 0;font-size:13px;color:var(--vk-danger)}\n\n/* Lienzo */\n.vk-d-stage{position:relative;flex:1;min-width:0;min-height:420px;overflow:hidden;touch-action:none;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-stage[data-armed=\"true\"]{cursor:crosshair}\n.vk-d-stage[data-background-editing=\"true\"]{cursor:move}\n.vk-d-canvas{display:block;width:100%;height:100%;position:absolute;inset:0}\n.vk-d-layer{position:absolute;inset:0;pointer-events:none}\n.vk-d-target{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;color:transparent;overflow:hidden;border-radius:4px}\n.vk-d-target:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-d-handle{position:absolute;z-index:1;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;touch-action:none;cursor:nwse-resize}\n.vk-d-handle[data-corner=\"ne\"],.vk-d-handle[data-corner=\"sw\"]{cursor:nesw-resize}\n.vk-d-handle::after{content:\"\";position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);\n box-sizing:border-box;border-radius:3px;border:2px solid var(--vk-accent);background:var(--vk-raised)}\n.vk-d-handle:focus-visible{outline:3px solid var(--vk-accent);outline-offset:-8px;border-radius:8px}\n.vk-d-banner{position:absolute;z-index:2;top:10px;left:50%;transform:translateX(-50%);\n display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);\n padding:6px 6px 6px 12px;border-radius:999px;border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);font-size:12px;box-shadow:var(--vk-shadow)}\n.vk-d-banner .vk-d-btn{padding:4px 10px;min-height:28px;border-radius:999px;font-size:12px}\n.vk-d-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;z-index:1}\n.vk-d-zoom button{width:40px;height:40px;border:1px solid var(--vk-line);background:var(--vk-surface);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:18px;line-height:1;cursor:pointer}\n\n/* Panel de la pieza, flotando junto a ella */\n.vk-d-float{position:absolute;z-index:3;padding:14px;border-radius:var(--vk-radius-lg);\n background:var(--vk-raised);border:1px solid var(--vk-line);box-shadow:var(--vk-shadow);color:var(--vk-fg)}\n.vk-d-inspector{display:flex;flex-direction:column;gap:12px;min-width:0}\n.vk-d-insp-head{display:flex;align-items:center;gap:8px}\n.vk-d-insp-head .vk-d-dot{width:10px;height:10px}\n.vk-d-insp-head .vk-d-icon-btn{width:36px;height:36px}\n.vk-d-insp-title{flex:1;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}\n.vk-d-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}\n.vk-d-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--vk-muted);min-width:0}\n.vk-d-field > input,.vk-d-field select,.vk-d-input{border:1px solid var(--vk-line);background:var(--vk-field);\n color:var(--vk-fg);border-radius:var(--vk-radius);padding:0 10px;font:inherit;font-size:14px;min-height:40px;width:100%}\n.vk-d-stepper{display:flex;align-items:center;height:40px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-field)}\n.vk-d-stepper button{flex:none;width:34px;height:38px;border:0;background:transparent;color:var(--vk-fg);font-size:16px;cursor:pointer;border-radius:var(--vk-radius)}\n.vk-d-stepper button:disabled{opacity:.35;cursor:default}\n.vk-d-stepper input{flex:1;min-width:0;width:100%;height:38px;border:0;background:transparent;color:var(--vk-fg);\n text-align:center;font:inherit;font-weight:600;font-size:14px}\n.vk-d-stepper-value{flex:1;min-width:0;text-align:center;font-weight:600;font-size:14px;color:var(--vk-fg);white-space:nowrap}\n.vk-d-seg{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-height:40px;padding:3px;border-radius:var(--vk-radius);background:var(--vk-seg)}\n.vk-d-seg button{border:0;border-radius:calc(var(--vk-radius) - 2px);background:transparent;color:var(--vk-muted);\n font:inherit;font-size:13px;cursor:pointer;padding:0 6px}\n.vk-d-seg button[aria-pressed=\"true\"]{background:var(--vk-seg-on);color:var(--vk-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}\n.vk-d-insp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}\n.vk-d-assign .vk-d-hint{margin:0 0 6px}\n.vk-d-chips{display:flex;flex-wrap:wrap;gap:6px}\n.vk-d-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;\n border:1px solid var(--vk-line);background:var(--vk-surface);color:var(--vk-fg);font:inherit;font-size:13px;cursor:pointer}\n\n/* Referencias */\n.vk-d-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:var(--vk-field);color:var(--vk-muted)}\n.vk-d-search input{flex:1;min-width:0;min-height:40px;border:0;background:transparent;color:var(--vk-fg);font:inherit;outline:none}\n.vk-d-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}\n.vk-d-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:76px;\n padding:8px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-surface);\n color:var(--vk-fg);font:inherit;font-size:12px;text-align:center;cursor:pointer}\n.vk-d-tile .vk-d-ico{color:var(--vk-muted)}\n.vk-d-tile:hover{border-color:var(--vk-accent)}\n\n/* Imagen de fondo (el control de siempre, adentro de su panel) */\n.vk-d-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}\n.vk-d-field input[type=\"range\"]{border:0;padding:0;background:none;accent-color:var(--vk-accent);min-height:0}\n.vk-d-range-head{display:flex;justify-content:space-between;gap:8px}\n.vk-d-range-head output{color:var(--vk-fg);font-variant-numeric:tabular-nums}\n.vk-d-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}\n\n/* Numeracion y pasillos */\n.vk-d-numbering{display:flex;width:100%;height:100%;min-height:0;color:var(--vk-fg)}\n.vk-d-num-preview{flex:1;min-width:0;display:flex;flex-direction:column;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-num-head{padding:20px 24px;background:var(--vk-surface);border-bottom:1px solid var(--vk-line)}\n.vk-d-num-title{margin:0;font-size:20px;font-weight:600}\n.vk-d-num-stage{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:24px}\n.vk-d-num-grid{display:flex;flex-direction:column;gap:10px}\n.vk-d-num-row{display:flex;align-items:center;gap:10px}\n.vk-d-num-label{width:28px;flex:none;text-align:right;font-size:14px;font-weight:600;color:var(--vk-link)}\n.vk-d-num-seat{flex:none;width:34px;height:34px;border-radius:999px;border:0;padding:0;background:var(--vk-type);\n color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}\n.vk-d-num-seat[data-removed]{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66);color:var(--vk-muted)}\n.vk-d-num-seat[data-sold]{cursor:not-allowed;opacity:.55}\n.vk-d-legend{display:flex;gap:18px;font-size:13px;color:var(--vk-muted)}\n.vk-d-legend > span{display:flex;align-items:center;gap:6px}\n.vk-d-legend-dot{width:12px;height:12px;border-radius:999px;background:var(--vk-type)}\n.vk-d-legend-out{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66)}\n.vk-d-num-side{width:340px;flex:none;border-left:1px solid var(--vk-line);padding:24px;display:flex;flex-direction:column;gap:20px;overflow:auto;background:var(--vk-surface)}\n.vk-d-num-group{display:flex;flex-direction:column;gap:8px}\n.vk-d-num-group .vk-d-field > span,.vk-d-num-group-title{font-size:15px;font-weight:600;color:var(--vk-fg)}\n.vk-d-sub{font-size:13px;color:var(--vk-muted)}\n.vk-d-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--vk-fg);cursor:pointer}\n.vk-d-check input{width:20px;height:20px;margin:0}\n.vk-d-trim{min-height:44px}\n.vk-d-input{min-height:44px;font-size:16px}\n.vk-d-input[aria-invalid=\"true\"]{border-color:var(--vk-danger)}\n.vk-d-result{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--vk-radius-lg);background:var(--vk-seg);font-size:14px}\n.vk-d-num-actions{margin-top:auto;display:flex;gap:10px}\n.vk-d-num-actions .vk-d-btn{flex:1;min-height:46px}\n\n/* Hojas y dialogos */\n.vk-d-dock{display:contents}\n.vk-d-sheet-root{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end}\n.vk-d-sheet-root[hidden]{display:none}\n.vk-d-backdrop{position:absolute;inset:0;background:var(--vk-overlay)}\n.vk-d-sheet{position:relative;max-height:75vh;max-height:75dvh;display:flex;flex-direction:column;\n background:var(--vk-surface);color:var(--vk-fg);border-radius:var(--vk-radius-lg) var(--vk-radius-lg) 0 0;\n box-shadow:var(--vk-shadow);padding-bottom:env(safe-area-inset-bottom)}\n.vk-d-sheet:focus{outline:none}\n.vk-d-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;\n padding:8px 8px 8px 16px;border-bottom:1px solid var(--vk-line)}\n.vk-d-sheet-body{overflow:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}\n.vk-d-sheet .vk-d-types-panel{padding:0;min-height:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet{height:100%;max-height:none;border-radius:0}\n.vk-d-sheet-root[data-variant=\"center\"]{justify-content:center;align-items:center;padding:24px}\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet{width:min(1040px,100%);height:min(700px,100%);max-height:none;\n border-radius:20px;overflow:hidden;border:1px solid var(--vk-line);padding-bottom:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet-body,\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet-body{padding:0;flex:1;min-height:0;overflow:hidden}\n\n/* Celular (contenedor angosto): el lienzo ocupa todo y lo demas va en hojas. */\n.vk-designer[data-layout=\"compact\"] .vk-d-top{padding:8px 10px;gap:6px;flex-wrap:nowrap}\n.vk-designer[data-layout=\"compact\"] .vk-d-name{flex:1;font-size:15px}\n.vk-designer[data-layout=\"compact\"] .vk-d-actions{margin-left:0;flex:none}\n.vk-designer[data-layout=\"compact\"] .vk-d-history{margin-left:0}\n.vk-designer[data-layout=\"compact\"] .vk-d-body{flex-direction:column}\n.vk-designer[data-layout=\"compact\"] .vk-d-stage{min-height:320px}\n.vk-designer[data-layout=\"compact\"] .vk-d-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-field > input,\n.vk-designer[data-layout=\"compact\"] .vk-d-field select,\n.vk-designer[data-layout=\"compact\"] .vk-d-add-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-seg,\n.vk-designer[data-layout=\"compact\"] .vk-d-chip{min-height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-icon-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-insp-head .vk-d-icon-btn{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper{height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper button{width:44px;height:42px}\n.vk-designer[data-layout=\"compact\"] .vk-d-close{min-width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-banner .vk-d-btn{min-height:44px;padding:4px 14px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom{right:10px;bottom:10px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom button{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-numbering{flex-direction:column;overflow:auto}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-preview{flex:none;min-height:300px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-side{width:auto;border-left:0;border-top:1px solid var(--vk-line);overflow:visible;padding:16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-head{padding:14px 16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-actions{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--vk-surface)}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-title{font-size:17px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-stage{justify-content:flex-start;align-items:flex-start;padding:16px}\n.vk-d-toolbar{display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--vk-line);flex:none}\n.vk-d-toolbar .vk-d-btn{flex:1;padding:0 10px}\n.vk-d-toolbar .vk-d-btn[aria-label]{flex:none;width:48px}\n.vk-d-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;\n border-radius:999px;background:var(--vk-warn);color:#1a1206;font-size:12px;font-weight:700}\n.vk-d-arrange{display:flex;flex-direction:column;gap:4px;min-width:0}\n.vk-d-arrange-label{font-size:12px;font-weight:600;color:var(--vk-muted)}\n.vk-d-arrange-btns{display:flex;flex-wrap:wrap;gap:4px}\n.vk-d-dock{flex:none;padding:12px 12px 4px;border-top:1px solid var(--vk-line);background:var(--vk-surface);max-height:45vh;overflow:auto}\n.vk-d-dock .vk-d-arrange-btns{gap:6px}\n.vk-d-stage[data-pan-ready] .vk-d-canvas{cursor:grab}\n.vk-d-stage[data-pan-ready] .vk-d-canvas:active{cursor:grabbing}\n";
635
+ declare const DESIGNER_CSS = "\n:where(.vk-designer){\n --vk-fg:#0f172a; --vk-muted:#64748b; --vk-line:#e2e8f0; --vk-bg:#ffffff;\n --vk-surface:#f8fafc; --vk-panel:#ffffff; --vk-raised:#ffffff; --vk-field:#ffffff;\n --vk-accent:#0f172a; --vk-accent-fg:#ffffff; --vk-primary-bg:var(--vk-accent);\n --vk-danger:#b91c1c; --vk-warn:#b45309; --vk-ok:#047857; --vk-link:var(--vk-accent);\n --vk-seg:#f1f5f9; --vk-seg-on:#ffffff; --vk-canvas:#f8fafc; --vk-canvas-dot:transparent;\n --vk-overlay:rgba(15,23,42,.35); --vk-shadow:0 12px 32px rgba(15,23,42,.18);\n --vk-radius:8px; --vk-radius-lg:12px;\n --vk-font:14px/1.45 system-ui,-apple-system,sans-serif;\n}\n:where(.vk-designer[data-theme=\"dark\"]){\n --vk-fg:#f2f2f3; --vk-muted:#a3a3aa; --vk-line:#26262b; --vk-bg:#0b0b0d;\n --vk-surface:#121215; --vk-panel:#0f0f12; --vk-raised:#1a1a1f; --vk-field:#0b0b0d;\n --vk-accent:#e5482c; --vk-accent-fg:#ffffff; --vk-primary-bg:linear-gradient(90deg,#2f6fe0,#e5482c);\n --vk-danger:#ff8a7a; --vk-warn:#ffb36b; --vk-ok:#6fd3a7; --vk-link:#ff8a6e;\n --vk-seg:#17171b; --vk-seg-on:#2a2a31; --vk-canvas:#141418; --vk-canvas-dot:#2a2a31;\n --vk-overlay:rgba(5,5,7,.8); --vk-shadow:0 16px 40px rgba(0,0,0,.5);\n --vk-shape:#4a4a55; --vk-shape-fill:#2c2c34; --vk-unassigned:#6a6a74;\n --vk-taken:#3a3a44; --vk-taken-stroke:#5a5a66; --vk-held-stroke:#ffb36b;\n --vk-radius:10px; --vk-radius-lg:14px;\n color-scheme:dark;\n}\n:where(.vk-designer){height:100%}\n.vk-designer{display:flex;flex-direction:column;font:var(--vk-font);min-height:0;\n color:var(--vk-fg);background:var(--vk-bg);box-sizing:border-box;min-width:0}\n.vk-designer *{box-sizing:border-box}\n/* Un solo anillo de foco para todo el editor: sin esto, dentro de un panel\n oscuro el foco del navegador se pierde contra el fondo. */\n.vk-designer :focus-visible{outline:2px solid var(--vk-accent);outline-offset:2px}\n.vk-d-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;\n clip:rect(0 0 0 0);white-space:nowrap;border:0}\n.vk-d-ico{flex:none;display:block}\n\n/* Barra de arriba */\n.vk-d-top{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;\n padding:12px 16px;border-bottom:1px solid var(--vk-line);flex:none}\n.vk-d-name{margin:0;font-size:17px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-history{display:flex;gap:6px;margin-left:4px}\n.vk-d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}\n.vk-d-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;\n border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);\n border-radius:var(--vk-radius);padding:0 14px;font:inherit;cursor:pointer;min-height:40px}\n.vk-d-btn:disabled,.vk-d-icon-btn:disabled{opacity:.4;cursor:default}\n.vk-d-btn[aria-pressed=\"true\"]{background:var(--vk-accent);color:var(--vk-accent-fg);border-color:var(--vk-accent)}\n.vk-d-primary{border:0;background:var(--vk-primary-bg);color:var(--vk-accent-fg);font-weight:600;padding:0 18px}\n.vk-d-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;\n padding:0;border:1px solid var(--vk-line);background:transparent;color:var(--vk-fg);border-radius:var(--vk-radius);cursor:pointer}\n.vk-d-danger{color:var(--vk-danger)}\n.vk-d-link{border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:var(--vk-link);cursor:pointer}\n.vk-d-link:hover{text-decoration:underline}\n\n.vk-d-popover{position:absolute;z-index:20;top:calc(100% + 6px);right:16px;width:360px;max-width:calc(100% - 32px);\n max-height:70vh;overflow:auto;padding:14px;border-radius:var(--vk-radius-lg);border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);box-shadow:var(--vk-shadow)}\n.vk-d-popover:focus{outline:none}\n.vk-d-popover-landmarks{width:420px}\n\n.vk-d-notice{display:flex;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 12px;flex:none;\n border-radius:var(--vk-radius);border:1px solid var(--vk-danger);background:var(--vk-surface)}\n.vk-d-notice p{margin:0;flex:1}\n.vk-d-close{border:0;background:none;color:var(--vk-muted);font-size:18px;line-height:1;\n width:32px;height:32px;border-radius:var(--vk-radius);cursor:pointer}\n\n/* Cuerpo: entradas a la izquierda, lienzo al medio */\n.vk-d-body{display:flex;flex:1;min-height:0;min-width:0}\n.vk-d-left{width:340px;flex:none;overflow:auto;border-right:1px solid var(--vk-line);background:var(--vk-panel)}\n\n.vk-d-panel{min-width:0}\n.vk-d-panel-title{margin:0;font-size:17px;font-weight:600}\n.vk-d-hint{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--vk-muted)}\n.vk-d-group{margin:14px 0 6px;font-size:12px;font-weight:600;color:var(--vk-muted)}\n\n.vk-d-types-panel{display:flex;flex-direction:column;gap:14px;padding:20px;min-height:100%}\n.vk-d-types-head{display:flex;flex-direction:column;gap:2px}\n.vk-d-empty{margin:0;padding:14px;border-radius:var(--vk-radius-lg);border:1px dashed var(--vk-line);color:var(--vk-muted)}\n.vk-d-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n.vk-d-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--vk-radius-lg);\n border:1px solid var(--vk-line);background:var(--vk-surface)}\n.vk-d-card[data-active]{border-color:var(--vk-type);background:color-mix(in srgb,var(--vk-type) 9%,var(--vk-surface))}\n.vk-d-card-head{display:flex;align-items:center;gap:10px}\n.vk-d-dot{flex:none;width:12px;height:12px;border-radius:999px;background:var(--vk-type,var(--vk-muted))}\n.vk-d-card-name{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis}\n.vk-d-ok{font-size:13px;font-weight:600;color:var(--vk-ok);white-space:nowrap}\n.vk-d-missing{font-size:13px;font-weight:600;color:var(--vk-warn);white-space:nowrap}\n.vk-d-card-detail{font-size:13px;color:var(--vk-muted)}\n.vk-d-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.vk-d-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 8px;white-space:nowrap;font-size:13px;\n border:1px solid color-mix(in srgb,var(--vk-type) 35%,var(--vk-line));border-radius:var(--vk-radius);\n background:color-mix(in srgb,var(--vk-type) 14%,transparent);color:var(--vk-fg);font-family:inherit;font-weight:600;cursor:pointer;overflow:hidden}\n.vk-d-add-btn:hover{background:color-mix(in srgb,var(--vk-type) 24%,transparent)}\n.vk-d-add-btn:disabled{opacity:.45;cursor:default;background:transparent}\n.vk-d-full{margin:0;font-size:13px;color:var(--vk-muted)}\n.vk-d-zones{display:flex;flex-direction:column;gap:10px;padding-top:4px}\n.vk-d-dot-zone{border-radius:3px}\n.vk-d-wide{grid-column:1 / -1}\n.vk-d-types-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--vk-line)}\n.vk-d-onplan{display:flex;justify-content:space-between;gap:8px}\n.vk-d-onplan span{color:var(--vk-muted)}\n.vk-d-missing-line{margin:0;font-size:13px;color:var(--vk-warn)}\n.vk-d-warn{margin:4px 0 0;padding:8px 10px;border-radius:var(--vk-radius);background:var(--vk-surface);\n border:1px solid var(--vk-line);font-size:12px;line-height:1.4}\n.vk-d-error{margin:8px 0 0;font-size:13px;color:var(--vk-danger)}\n\n/* Lienzo */\n.vk-d-stage{position:relative;flex:1;min-width:0;min-height:420px;overflow:hidden;touch-action:none;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-stage[data-armed=\"true\"]{cursor:crosshair}\n.vk-d-stage[data-background-editing=\"true\"]{cursor:move}\n.vk-d-canvas{display:block;width:100%;height:100%;position:absolute;inset:0}\n.vk-d-layer{position:absolute;inset:0;pointer-events:none}\n.vk-d-target{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;color:transparent;overflow:hidden;border-radius:4px}\n.vk-d-target:focus-visible{outline:3px solid var(--vk-accent);outline-offset:2px}\n.vk-d-handle{position:absolute;z-index:1;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;margin:0;border:0;\n background:transparent;touch-action:none;cursor:nwse-resize}\n.vk-d-handle[data-corner=\"ne\"],.vk-d-handle[data-corner=\"sw\"]{cursor:nesw-resize}\n.vk-d-handle::after{content:\"\";position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);\n box-sizing:border-box;border-radius:3px;border:2px solid var(--vk-accent);background:var(--vk-raised)}\n.vk-d-handle:focus-visible{outline:3px solid var(--vk-accent);outline-offset:-8px;border-radius:8px}\n.vk-d-banner{position:absolute;z-index:2;top:10px;left:50%;transform:translateX(-50%);\n display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);\n padding:6px 6px 6px 12px;border-radius:999px;border:1px solid var(--vk-line);\n background:var(--vk-raised);color:var(--vk-fg);font-size:12px;box-shadow:var(--vk-shadow)}\n.vk-d-banner .vk-d-btn{padding:4px 10px;min-height:28px;border-radius:999px;font-size:12px}\n.vk-d-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;z-index:1}\n.vk-d-zoom button{width:40px;height:40px;border:1px solid var(--vk-line);background:var(--vk-surface);\n color:var(--vk-fg);border-radius:var(--vk-radius);font-size:18px;line-height:1;cursor:pointer}\n\n/* Panel de la pieza, flotando junto a ella */\n.vk-d-float{position:absolute;z-index:3;padding:14px;border-radius:var(--vk-radius-lg);\n background:var(--vk-raised);border:1px solid var(--vk-line);box-shadow:var(--vk-shadow);color:var(--vk-fg)}\n.vk-d-inspector{display:flex;flex-direction:column;gap:12px;min-width:0}\n.vk-d-insp-head{display:flex;align-items:center;gap:8px}\n.vk-d-insp-head .vk-d-dot{width:10px;height:10px}\n.vk-d-insp-head .vk-d-icon-btn{width:36px;height:36px}\n.vk-d-insp-title{flex:1;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.vk-d-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}\n.vk-d-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}\n.vk-d-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--vk-muted);min-width:0}\n.vk-d-field > input,.vk-d-field select,.vk-d-input{border:1px solid var(--vk-line);background:var(--vk-field);\n color:var(--vk-fg);border-radius:var(--vk-radius);padding:0 10px;font:inherit;font-size:14px;min-height:40px;width:100%}\n.vk-d-stepper{display:flex;align-items:center;height:40px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-field)}\n.vk-d-stepper button{flex:none;width:34px;height:38px;border:0;background:transparent;color:var(--vk-fg);font-size:16px;cursor:pointer;border-radius:var(--vk-radius)}\n.vk-d-stepper button:disabled{opacity:.35;cursor:default}\n.vk-d-stepper input{flex:1;min-width:0;width:100%;height:38px;border:0;background:transparent;color:var(--vk-fg);\n text-align:center;font:inherit;font-weight:600;font-size:14px}\n.vk-d-stepper-value{flex:1;min-width:0;text-align:center;font-weight:600;font-size:14px;color:var(--vk-fg);white-space:nowrap}\n.vk-d-seg{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-height:40px;padding:3px;border-radius:var(--vk-radius);background:var(--vk-seg)}\n.vk-d-seg button{border:0;border-radius:calc(var(--vk-radius) - 2px);background:transparent;color:var(--vk-muted);\n font:inherit;font-size:13px;cursor:pointer;padding:0 6px}\n.vk-d-seg button[aria-pressed=\"true\"]{background:var(--vk-seg-on);color:var(--vk-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12)}\n.vk-d-insp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}\n.vk-d-assign .vk-d-hint{margin:0 0 6px}\n.vk-d-chips{display:flex;flex-wrap:wrap;gap:6px}\n.vk-d-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;\n border:1px solid var(--vk-line);background:var(--vk-surface);color:var(--vk-fg);font:inherit;font-size:13px;cursor:pointer}\n\n/* Referencias */\n.vk-d-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--vk-line);\n border-radius:var(--vk-radius);background:var(--vk-field);color:var(--vk-muted)}\n.vk-d-search input{flex:1;min-width:0;min-height:40px;border:0;background:transparent;color:var(--vk-fg);font:inherit;outline:none}\n.vk-d-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}\n.vk-d-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:76px;\n padding:8px;border:1px solid var(--vk-line);border-radius:var(--vk-radius);background:var(--vk-surface);\n color:var(--vk-fg);font:inherit;font-size:12px;text-align:center;cursor:pointer}\n.vk-d-tile .vk-d-ico{color:var(--vk-muted)}\n.vk-d-tile:hover{border-color:var(--vk-accent)}\n\n/* Imagen de fondo (el control de siempre, adentro de su panel) */\n.vk-d-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}\n.vk-d-field input[type=\"range\"]{border:0;padding:0;background:none;accent-color:var(--vk-accent);min-height:0}\n.vk-d-range-head{display:flex;justify-content:space-between;gap:8px}\n.vk-d-range-head output{color:var(--vk-fg);font-variant-numeric:tabular-nums}\n.vk-d-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}\n\n/* Numeracion y pasillos */\n.vk-d-numbering{display:flex;width:100%;height:100%;min-height:0;color:var(--vk-fg)}\n.vk-d-num-preview{flex:1;min-width:0;display:flex;flex-direction:column;\n background-color:var(--vk-canvas);background-image:radial-gradient(var(--vk-canvas-dot) 1px,transparent 1px);background-size:18px 18px}\n.vk-d-num-head{padding:20px 24px;background:var(--vk-surface);border-bottom:1px solid var(--vk-line)}\n.vk-d-num-title{margin:0;font-size:20px;font-weight:600}\n.vk-d-num-stage{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:24px}\n.vk-d-num-grid{display:flex;flex-direction:column;gap:10px}\n.vk-d-num-row{display:flex;align-items:center;gap:10px}\n.vk-d-num-label{width:28px;flex:none;text-align:right;font-size:14px;font-weight:600;color:var(--vk-link)}\n.vk-d-num-seat{flex:none;width:34px;height:34px;border-radius:999px;border:0;padding:0;background:var(--vk-type);\n color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}\n.vk-d-num-seat[data-removed]{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66);color:var(--vk-muted)}\n.vk-d-num-seat[data-reserved]{background:repeating-linear-gradient(45deg,var(--vk-type) 0 4px,var(--vk-surface,#fff) 4px 7px);border:2px solid var(--vk-fg);color:var(--vk-fg)}\n.vk-d-num-seat[data-sold]{cursor:not-allowed;opacity:.55}\n.vk-d-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:13px;color:var(--vk-muted)}\n.vk-d-legend > span{display:flex;align-items:center;gap:6px}\n.vk-d-legend-dot{width:12px;height:12px;border-radius:999px;background:var(--vk-type)}\n.vk-d-places{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}\n.vk-d-place{min-width:44px;min-height:44px;border-radius:999px;border:1px solid var(--vk-line);background:var(--vk-seg,transparent);color:var(--vk-fg);font:inherit;font-weight:600;cursor:pointer}\n.vk-d-place[aria-pressed=\"true\"]{background:repeating-linear-gradient(45deg,var(--vk-type,#9ca3af) 0 4px,var(--vk-surface,#fff) 4px 7px);border:2px solid var(--vk-fg)}\n.vk-d-legend-reserved{background:repeating-linear-gradient(45deg,var(--vk-type) 0 3px,var(--vk-surface,#fff) 3px 5px);border:2px solid var(--vk-fg)}\n.vk-d-legend-out{background:transparent;border:2px dashed var(--vk-unassigned,#5a5a66)}\n.vk-d-num-side{width:340px;flex:none;border-left:1px solid var(--vk-line);padding:24px;display:flex;flex-direction:column;gap:20px;overflow:auto;background:var(--vk-surface)}\n.vk-d-num-group{display:flex;flex-direction:column;gap:8px}\n.vk-d-num-group .vk-d-field > span,.vk-d-num-group-title{font-size:15px;font-weight:600;color:var(--vk-fg)}\n.vk-d-sub{font-size:13px;color:var(--vk-muted)}\n.vk-d-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--vk-fg);cursor:pointer}\n.vk-d-check input{width:20px;height:20px;margin:0}\n.vk-d-trim{min-height:44px}\n.vk-d-input{min-height:44px;font-size:16px}\n.vk-d-input[aria-invalid=\"true\"]{border-color:var(--vk-danger)}\n.vk-d-result{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--vk-radius-lg);background:var(--vk-seg);font-size:14px}\n.vk-d-num-actions{margin-top:auto;display:flex;gap:10px}\n.vk-d-num-actions .vk-d-btn{flex:1;min-height:46px}\n\n/* Hojas y dialogos */\n.vk-d-dock{display:contents}\n.vk-d-sheet-root{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end}\n.vk-d-sheet-root[hidden]{display:none}\n.vk-d-backdrop{position:absolute;inset:0;background:var(--vk-overlay)}\n.vk-d-sheet{position:relative;max-height:75vh;max-height:75dvh;display:flex;flex-direction:column;\n background:var(--vk-surface);color:var(--vk-fg);border-radius:var(--vk-radius-lg) var(--vk-radius-lg) 0 0;\n box-shadow:var(--vk-shadow);padding-bottom:env(safe-area-inset-bottom)}\n.vk-d-sheet:focus{outline:none}\n.vk-d-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;\n padding:8px 8px 8px 16px;border-bottom:1px solid var(--vk-line)}\n.vk-d-sheet-body{overflow:auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}\n.vk-d-sheet .vk-d-types-panel{padding:0;min-height:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet{height:100%;max-height:none;border-radius:0}\n.vk-d-sheet-root[data-variant=\"center\"]{justify-content:center;align-items:center;padding:24px}\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet{width:min(1040px,100%);height:min(700px,100%);max-height:none;\n border-radius:20px;overflow:hidden;border:1px solid var(--vk-line);padding-bottom:0}\n.vk-d-sheet-root[data-variant=\"full\"] .vk-d-sheet-body,\n.vk-d-sheet-root[data-variant=\"center\"] .vk-d-sheet-body{padding:0;flex:1;min-height:0;overflow:hidden}\n\n/* Celular (contenedor angosto): el lienzo ocupa todo y lo demas va en hojas. */\n.vk-designer[data-layout=\"compact\"] .vk-d-top{padding:8px 10px;gap:6px;flex-wrap:nowrap}\n.vk-designer[data-layout=\"compact\"] .vk-d-name{flex:1;font-size:15px}\n.vk-designer[data-layout=\"compact\"] .vk-d-actions{margin-left:0;flex:none}\n.vk-designer[data-layout=\"compact\"] .vk-d-history{margin-left:0}\n.vk-designer[data-layout=\"compact\"] .vk-d-body{flex-direction:column}\n.vk-designer[data-layout=\"compact\"] .vk-d-stage{min-height:320px}\n.vk-designer[data-layout=\"compact\"] .vk-d-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-field > input,\n.vk-designer[data-layout=\"compact\"] .vk-d-field select,\n.vk-designer[data-layout=\"compact\"] .vk-d-add-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-seg,\n.vk-designer[data-layout=\"compact\"] .vk-d-chip{min-height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-icon-btn,\n.vk-designer[data-layout=\"compact\"] .vk-d-insp-head .vk-d-icon-btn{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper{height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-stepper button{width:44px;height:42px}\n.vk-designer[data-layout=\"compact\"] .vk-d-close{min-width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-banner .vk-d-btn{min-height:44px;padding:4px 14px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom{right:10px;bottom:10px}\n.vk-designer[data-layout=\"compact\"] .vk-d-zoom button{width:44px;height:44px}\n.vk-designer[data-layout=\"compact\"] .vk-d-numbering{flex-direction:column;overflow:auto}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-preview{flex:none;min-height:300px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-side{width:auto;border-left:0;border-top:1px solid var(--vk-line);overflow:visible;padding:16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-head{padding:14px 16px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-actions{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--vk-surface)}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-title{font-size:17px}\n.vk-designer[data-layout=\"compact\"] .vk-d-num-stage{justify-content:flex-start;align-items:flex-start;padding:16px}\n.vk-d-toolbar{display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--vk-line);flex:none}\n.vk-d-toolbar .vk-d-btn{flex:1;padding:0 10px}\n.vk-d-toolbar .vk-d-btn[aria-label]{flex:none;width:48px}\n.vk-d-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;\n border-radius:999px;background:var(--vk-warn);color:#1a1206;font-size:12px;font-weight:700}\n.vk-d-arrange{display:flex;flex-direction:column;gap:4px;min-width:0}\n.vk-d-arrange-label{font-size:12px;font-weight:600;color:var(--vk-muted)}\n.vk-d-arrange-btns{display:flex;flex-wrap:wrap;gap:4px}\n.vk-d-dock{flex:none;padding:12px 12px 4px;border-top:1px solid var(--vk-line);background:var(--vk-surface);max-height:45vh;overflow:auto}\n.vk-d-dock .vk-d-arrange-btns{gap:6px}\n.vk-d-stage[data-pan-ready] .vk-d-canvas{cursor:grab}\n.vk-d-stage[data-pan-ready] .vk-d-canvas:active{cursor:grabbing}\n";
582
636
 
583
637
  type UseImageResult = {
584
638
  image: HTMLImageElement | null;
@@ -591,6 +645,6 @@ type UseImageResult = {
591
645
  */
592
646
  declare function useImage(src: string | null): UseImageResult;
593
647
 
594
- declare const VERSION = "0.10.2";
648
+ declare const VERSION = "0.11.0";
595
649
 
596
- export { type CapacityRejection, DESIGNER_CSS, type DesignerHostApi, type DesignerMessages, type DesignerOverrides, type DesignerRejection, type MessageOverrides, type Messages, PICKER_CSS, type PlacedCount, SeatMap, type SeatMapPlaceType, type SeatMapProps, type UseImageResult, VERSION, VenueDesigner, type VenueDesignerProps, VenueOverview, type VenueOverviewPlaceType, type VenueOverviewProps, designerEn, designerEs, en, es, format, mergeDesignerMessages, mergeMessages, selectionSummary, useImage };
650
+ export { type CapacityRejection, DESIGNER_CSS, type DesignerHostApi, type DesignerMessages, type DesignerOverrides, type DesignerRejection, type MessageOverrides, type Messages, PICKER_CSS, type PlacedCount, SeatMap, type SeatMapPlaceType, type SeatMapProps, type UnitStatus, type UnitStatusKind, type UnitStatusMap, type UseImageResult, VERSION, VenueDesigner, type VenueDesignerProps, VenueOverview, type VenueOverviewPlaceType, type VenueOverviewProps, designerEn, designerEs, en, es, format, mergeDesignerMessages, mergeMessages, selectionSummary, useImage };