venuekit 0.10.3 → 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/{chunk-TDC5G7L7.js → chunk-IRNVYNYV.js} +79 -14
- package/dist/{chunk-UWCMN6Q7.cjs → chunk-YLV7JK57.cjs} +83 -18
- package/dist/index.cjs +6 -2
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -1
- package/dist/{place-types-Dc0eabAi.d.cts → place-types-DNfiQXGU.d.cts} +23 -2
- package/dist/{place-types-Dc0eabAi.d.ts → place-types-DNfiQXGU.d.ts} +23 -2
- package/dist/react.cjs +493 -238
- package/dist/react.d.cts +59 -5
- package/dist/react.d.ts +59 -5
- package/dist/react.js +298 -43
- package/package.json +1 -1
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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 };
|