/* === Cocina — tareas, menú semanal por comensales con ingredientes, lista de compras === */

/* Ingredientes "por persona" para cálculo automático.
   Cantidades realistas según receta estándar. */
const MENU_WEEK_INIT = [
  { day: "Lunes 19", date: "2026-05-19", comensales: { adultos: 8, ninos: 4 }, items: [
    { id: "m1-1", meal: "Desayuno", plate: "Chilaquiles verdes con huevo orgánico", time: "8:30",
      ingredients: [
        { name: "Tortilla de maíz",       qty: 0.05,  unit: "kg" },
        { name: "Salsa verde",            qty: 0.08,  unit: "L" },
        { name: "Huevo orgánico",         qty: 2,     unit: "pza" },
        { name: "Crema",                  qty: 0.04,  unit: "L" },
        { name: "Queso fresco",           qty: 0.04,  unit: "kg" },
      ] },
    { id: "m1-2", meal: "Comida", plate: "Aguachile de camarón + ceviche mixto", time: "14:00",
      ingredients: [
        { name: "Camarón U-15 fresco",    qty: 0.15,  unit: "kg" },
        { name: "Limón con semilla",      qty: 0.06,  unit: "kg" },
        { name: "Chile serrano",          qty: 2,     unit: "pza" },
        { name: "Pepino",                 qty: 0.08,  unit: "kg" },
        { name: "Cebolla morada",         qty: 0.03,  unit: "kg" },
        { name: "Aguacate Hass",          qty: 0.5,   unit: "pza" },
      ] },
    { id: "m1-3", meal: "Cena", plate: "Pesca local del día a la talla", time: "20:00",
      ingredients: [
        { name: "Pesca local fresca",     qty: 0.25,  unit: "kg" },
        { name: "Mantequilla",            qty: 0.02,  unit: "kg" },
        { name: "Limón",                  qty: 0.05,  unit: "kg" },
        { name: "Sal de mar Colima",      qty: 0.005, unit: "kg" },
      ] },
  ]},
  { day: "Martes 20", date: "2026-05-20", comensales: { adultos: 8, ninos: 4 }, items: [
    { id: "m2-1", meal: "Desayuno", plate: "Huevos motuleños", time: "8:30",
      ingredients: [
        { name: "Huevo orgánico",         qty: 2,    unit: "pza" },
        { name: "Tortilla de maíz",       qty: 0.04, unit: "kg" },
        { name: "Frijol negro refrito",   qty: 0.08, unit: "kg" },
        { name: "Jamón",                  qty: 0.04, unit: "kg" },
        { name: "Plátano macho",          qty: 0.08, unit: "kg" },
      ] },
    { id: "m2-2", meal: "Comida", plate: "Tostadas de atún + sopa de tortilla", time: "14:00",
      ingredients: [
        { name: "Atún fresco",            qty: 0.12, unit: "kg" },
        { name: "Tostada",                qty: 3,    unit: "pza" },
        { name: "Aguacate Hass",          qty: 0.5,  unit: "pza" },
        { name: "Tortilla de maíz",       qty: 0.06, unit: "kg" },
      ] },
    { id: "m2-3", meal: "Cena", plate: "Filete de res con chimichurri", time: "20:00",
      ingredients: [
        { name: "Filete de res Black Angus", qty: 0.22, unit: "kg" },
        { name: "Perejil fresco",         qty: 0.02, unit: "kg" },
        { name: "Ajo",                    qty: 0.005, unit: "kg" },
        { name: "Aceite de oliva",        qty: 0.03, unit: "L" },
      ] },
  ]},
  { day: "Miércoles 21", date: "2026-05-21", comensales: { adultos: 10, ninos: 4 }, items: [
    { id: "m3-1", meal: "Desayuno", plate: "Fruta tropical + yogur de coco", time: "8:30",
      ingredients: [
        { name: "Piña",                   qty: 0.15, unit: "kg" },
        { name: "Mango Ataulfo",          qty: 0.15, unit: "kg" },
        { name: "Papaya",                 qty: 0.10, unit: "kg" },
        { name: "Yogur natural de coco",  qty: 0.15, unit: "L" },
      ] },
    { id: "m3-2", meal: "Comida", plate: "Tacos gobernador + esquites", time: "14:00", ingredients: [] },
    { id: "m3-3", meal: "Cena", plate: "Risotto de huitlacoche", time: "20:00", ingredients: [] },
  ]},
  { day: "Jueves 22", date: "2026-05-22", comensales: { adultos: 12, ninos: 6 }, items: [
    { id: "m4-1", meal: "Desayuno", plate: "Omelette de hongos + jugo verde", time: "8:30", ingredients: [] },
    { id: "m4-2", meal: "Comida", plate: "Tlayudas oaxaqueñas", time: "14:00", ingredients: [] },
    { id: "m4-3", meal: "Cena", plate: "Pulpo a la parrilla con romesco", time: "20:00",
      ingredients: [
        { name: "Pulpo cocido",           qty: 0.20, unit: "kg" },
        { name: "Tomate asado",           qty: 0.08, unit: "kg" },
        { name: "Almendras",              qty: 0.02, unit: "kg" },
        { name: "Pan",                    qty: 0.03, unit: "kg" },
        { name: "Pimiento rojo",          qty: 0.06, unit: "kg" },
      ] },
  ]},
];

const CocinaView = ({ tasks, onSelect, selectedId, onToggle, canEditFn, role, user, compras, setCompras }) => {
  const [tab, setTab] = React.useState("tareas");
  const [menu, setMenu] = React.useState(MENU_WEEK_INIT);
  const [editingItem, setEditingItem] = React.useState(null); // { dayIdx, item } | { dayIdx, item: null } for new
  const [calcOpen, setCalcOpen] = React.useState(null); // { dayIdx } when computing ingredients
  const cocinaTasks = tasks.filter(t => t.area === "cocina");
  const cocinaList = compras.cocina || [];

  const canEditList = role === "admin" || role === "gerente" || (role === "jefe" && user.area === "cocina");
  const canEditMenu = canEditList;

  const adjust = (idx, type, delta) => {
    setMenu(m => m.map((d, i) => i !== idx ? d : { ...d, comensales: { ...d.comensales, [type]: Math.max(0, d.comensales[type] + delta) } }));
  };

  const upsertMenuItem = (dayIdx, item) => {
    setMenu(m => m.map((d, i) => {
      if (i !== dayIdx) return d;
      const exists = d.items.some(x => x.id === item.id);
      const items = exists
        ? d.items.map(x => x.id === item.id ? item : x)
        : [...d.items, { ...item, id: item.id || "mi-" + Date.now() }];
      return { ...d, items };
    }));
    setEditingItem(null);
  };

  const removeMenuItem = (dayIdx, itemId) => {
    if (window.confirm("¿Eliminar este platillo del menú?")) {
      setMenu(m => m.map((d, i) => i !== dayIdx ? d : { ...d, items: d.items.filter(x => x.id !== itemId) }));
    }
  };

  const todayMenu = menu.find(m => m.date === TODAY_ISO) || menu[0];
  const todayTotal = todayMenu.comensales.adultos + todayMenu.comensales.ninos;

  return (
    <div style={{ display: "flex", flexDirection: "column", gap: 18 }}>
      <div className="cdc-grid-cards" style={{ gridTemplateColumns: "repeat(4, 1fr)" }}>
        <div className="cdc-kpi">
          <div className="cdc-kpi__label">Tareas activas</div>
          <div className="cdc-kpi__value">{cocinaTasks.filter(t => t.status !== "terminada").length}</div>
          <div className="cdc-kpi__sub">{cocinaTasks.filter(t => t.priority === "alta").length} de alta prioridad</div>
        </div>
        <div className="cdc-kpi">
          <div className="cdc-kpi__label">Compras pendientes</div>
          <div className="cdc-kpi__value" style={{ color: cocinaList.filter(i => i.status === "pendiente").length ? "var(--cdc-overdue)" : "var(--cdc-ink)" }}>
            {cocinaList.filter(i => i.status === "pendiente").length}
          </div>
          <div className="cdc-kpi__sub">{cocinaList.filter(i => i.status === "entregado").length} comprados</div>
        </div>
        <div className="cdc-kpi">
          <div className="cdc-kpi__label">Comensales hoy</div>
          <div className="cdc-kpi__value">{todayTotal}</div>
          <div className="cdc-kpi__sub">{todayMenu.comensales.adultos} adultos · {todayMenu.comensales.ninos} niños</div>
        </div>
        <div className="cdc-kpi">
          <div className="cdc-kpi__label">Menú de hoy</div>
          <div className="cdc-kpi__value" style={{ fontSize: 19, lineHeight: 1.2 }}>{todayMenu.items[1]?.plate.split(" ").slice(0, 2).join(" ") || "—"}</div>
          <div className="cdc-kpi__sub">Comida · {todayMenu.items[1]?.time}</div>
        </div>
      </div>

      <div className="cdc-tabs" style={{ background: "var(--cdc-panel)", borderRadius: "14px 14px 0 0", border: "1px solid var(--cdc-border)", borderBottom: 0, paddingLeft: 18 }}>
        {[
          ["tareas", "Tareas"],
          ["menu", "Menú semanal"],
          ["compras", "Lista de compras"],
        ].map(([id, label]) => (
          <button key={id} className="cdc-tab" aria-selected={tab === id} onClick={() => setTab(id)}>{label}</button>
        ))}
      </div>

      {tab === "tareas" && (
        <div className="cdc-card" style={{ borderTopLeftRadius: 0, borderTopRightRadius: 0, marginTop: -18 }}>
          {cocinaTasks.length === 0 ? (
            <div className="cdc-empty">
              <I.Chef size={42} />
              <div className="cdc-empty__title">Sin tareas en Cocina</div>
            </div>
          ) : (
            <TaskTable tasks={cocinaTasks} onSelect={onSelect} selectedId={selectedId} onToggle={onToggle} canEditFn={canEditFn} />
          )}
        </div>
      )}

      {tab === "menu" && (
        <div style={{ display: "grid", gridTemplateColumns: "repeat(2, 1fr)", gap: 14, marginTop: -18, background: "var(--cdc-panel)", border: "1px solid var(--cdc-border)", borderTopLeftRadius: 0, borderTopRightRadius: 0, borderRadius: "0 0 14px 14px", padding: 18 }}>
          {menu.map((d, idx) => {
            const total = d.comensales.adultos + d.comensales.ninos;
            return (
              <div key={d.day} style={{ border: "1px solid var(--cdc-border-soft)", borderRadius: 12, padding: 16, background: "var(--cdc-bg-soft)" }}>
                <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-start", marginBottom: 12, gap: 10 }}>
                  <div>
                    <div style={{ fontFamily: "var(--cdc-display)", fontSize: 22, fontWeight: 600, lineHeight: 1.1 }}>{d.day}</div>
                    <div style={{ fontSize: 11.5, color: "var(--cdc-ink-3)", marginTop: 2 }}>{fmtLongDate(d.date)}</div>
                  </div>
                  <div style={{ display: "flex", flexDirection: "column", alignItems: "flex-end", gap: 6 }}>
                    <div style={{ display: "inline-flex", alignItems: "center", gap: 8, background: "white", border: "1px solid var(--cdc-border)", borderRadius: 999, padding: "4px 10px" }}>
                      <I.Users2 size={14} style={{ color: "var(--cdc-coral-deep)" }} />
                      <span style={{ fontWeight: 700, fontVariantNumeric: "tabular-nums" }}>{total}</span>
                      <span style={{ fontSize: 11, color: "var(--cdc-ink-3)" }}>comensales</span>
                    </div>
                    {canEditMenu && (
                      <div style={{ display: "flex", gap: 8, fontSize: 11.5 }}>
                        <ComensalesStepper label="adultos" value={d.comensales.adultos} onMinus={() => adjust(idx, "adultos", -1)} onPlus={() => adjust(idx, "adultos", +1)} />
                        <ComensalesStepper label="niños"   value={d.comensales.ninos}   onMinus={() => adjust(idx, "ninos",  -1)} onPlus={() => adjust(idx, "ninos",  +1)} />
                      </div>
                    )}
                  </div>
                </div>

                {d.items.length === 0 ? (
                  <div style={{ padding: "20px 0", textAlign: "center", color: "var(--cdc-ink-3)", fontSize: 13 }}>
                    Sin platillos programados para este día.
                  </div>
                ) : d.items.map(it => (
                  <div key={it.id} style={{ display: "grid", gridTemplateColumns: "82px 1fr auto auto", gap: 10, padding: "10px 0", borderTop: "1px solid var(--cdc-border-soft)", alignItems: "center" }}>
                    <span style={{ fontSize: 11, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--cdc-ink-3)", fontWeight: 700 }}>{it.meal}</span>
                    <div>
                      <div style={{ fontSize: 14, color: "var(--cdc-ink)", lineHeight: 1.3 }}>{it.plate}</div>
                      {it.ingredients && it.ingredients.length > 0 && (
                        <div style={{ fontSize: 11, color: "var(--cdc-ink-3)", marginTop: 2 }}>
                          {it.ingredients.length} ingrediente{it.ingredients.length === 1 ? "" : "s"}
                        </div>
                      )}
                    </div>
                    <span style={{ fontSize: 11.5, color: "var(--cdc-ink-3)", fontVariantNumeric: "tabular-nums" }}>{it.time}</span>
                    {canEditMenu && (
                      <div style={{ display: "flex", gap: 2 }}>
                        <button className="cdc-iconbtn" onClick={() => setEditingItem({ dayIdx: idx, item: it })} title="Editar"><I.Edit size={13} /></button>
                        <button className="cdc-iconbtn" onClick={() => removeMenuItem(idx, it.id)} title="Eliminar"><I.Trash size={13} /></button>
                      </div>
                    )}
                  </div>
                ))}

                <div style={{ display: "flex", gap: 6, marginTop: 12, paddingTop: 10, borderTop: "1px solid var(--cdc-border-soft)", flexWrap: "wrap" }}>
                  <button className="cdc-chip" onClick={() => setCalcOpen({ dayIdx: idx })}>
                    <I.Box size={11} /> Calcular insumos para {total}
                  </button>
                  {canEditMenu && (<>
                    <button className="cdc-chip" onClick={() => setEditingItem({ dayIdx: idx, item: null })}>
                      <I.Plus size={11} /> Agregar comida
                    </button>
                  </>)}
                </div>
              </div>
            );
          })}
        </div>
      )}

      {tab === "compras" && (
        <div className="cdc-card" style={{ borderTopLeftRadius: 0, borderTopRightRadius: 0, marginTop: -18 }}>
          <ShoppingListPanel
            items={cocinaList}
            onUpdate={(newList) => setCompras({ ...compras, cocina: newList })}
            listLabel="Cocina"
            listId="cocina"
            user={user}
            role={role}
            canEdit={canEditList}
            hideSupplier={true}
          />
        </div>
      )}

      {editingItem && (
        <MenuItemDrawer
          item={editingItem.item}
          dayLabel={menu[editingItem.dayIdx].day}
          onClose={() => setEditingItem(null)}
          onSave={(it) => upsertMenuItem(editingItem.dayIdx, it)}
        />
      )}

      {calcOpen && (
        <IngredientCalculator
          day={menu[calcOpen.dayIdx]}
          onClose={() => setCalcOpen(null)}
          onAddToCompras={(item) => {
            setCompras({
              ...compras,
              cocina: [
                {
                  id: "c-" + Date.now(),
                  name: item.name,
                  qty: item.qty,
                  unit: item.unit,
                  status: "pendiente",
                  priority: "media",
                  supplier: "",
                  note: `Cálculo automático para ${menu[calcOpen.dayIdx].comensales.adultos + menu[calcOpen.dayIdx].comensales.ninos} comensales (${menu[calcOpen.dayIdx].day})`,
                  addedBy: user.id,
                  addedOn: TODAY_ISO,
                  photo: null,
                },
                ...(compras.cocina || []),
              ],
            });
          }}
        />
      )}
    </div>
  );
};

const ComensalesStepper = ({ label, value, onMinus, onPlus }) => (
  <span style={{ display: "inline-flex", alignItems: "center", gap: 4, background: "white", border: "1px solid var(--cdc-border)", borderRadius: 999, padding: "2px 4px" }}>
    <button onClick={onMinus} style={{ width: 18, height: 18, borderRadius: 999, display: "inline-flex", alignItems: "center", justifyContent: "center", color: "var(--cdc-ink-3)" }}>
      <I.Minus size={11} />
    </button>
    <span style={{ fontVariantNumeric: "tabular-nums", fontWeight: 700, minWidth: 14, textAlign: "center" }}>{value}</span>
    <span style={{ fontSize: 10.5, color: "var(--cdc-ink-3)" }}>{label}</span>
    <button onClick={onPlus} style={{ width: 18, height: 18, borderRadius: 999, display: "inline-flex", alignItems: "center", justifyContent: "center", color: "var(--cdc-ink-3)" }}>
      <I.Plus size={11} />
    </button>
  </span>
);

const MenuItemDrawer = ({ item, dayLabel, onClose, onSave }) => {
  const [f, setF] = React.useState(item || { meal: "Comida", plate: "", time: "14:00", ingredients: [] });
  const u = (k, v) => setF(x => ({ ...x, [k]: v }));

  const updIng = (i, patch) => setF(x => ({ ...x, ingredients: x.ingredients.map((g, idx) => idx === i ? { ...g, ...patch } : g) }));
  const addIng = () => setF(x => ({ ...x, ingredients: [...x.ingredients, { name: "", qty: 0.1, unit: "kg" }] }));
  const rmIng  = (i) => setF(x => ({ ...x, ingredients: x.ingredients.filter((_, idx) => idx !== i) }));

  return (
    <div className="cdc-overlay" onClick={onClose}>
      <div className="cdc-drawer" onClick={(e) => e.stopPropagation()}>
        <div className="cdc-drawer__head">
          <div className="cdc-drawer__title">{item ? "Editar platillo" : "Nuevo platillo"} — {dayLabel}</div>
          <button className="cdc-iconbtn" onClick={onClose}><I.X size={18} /></button>
        </div>
        <div className="cdc-drawer__body">
          <div className="cdc-row-2">
            <div className="cdc-field">
              <label>Comida</label>
              <select className="cdc-select" value={f.meal} onChange={(e) => u("meal", e.target.value)}>
                <option>Desayuno</option>
                <option>Brunch</option>
                <option>Comida</option>
                <option>Snack</option>
                <option>Cena</option>
                <option>Postre</option>
                <option>Otro</option>
              </select>
            </div>
            <div className="cdc-field">
              <label>Hora</label>
              <input type="time" className="cdc-input" value={f.time} onChange={(e) => u("time", e.target.value)} />
            </div>
          </div>

          <div className="cdc-field">
            <label>Platillo</label>
            <input className="cdc-input" autoFocus value={f.plate} onChange={(e) => u("plate", e.target.value)} placeholder="Ej. Aguachile de camarón" />
          </div>

          <div className="cdc-field">
            <label>Ingredientes <span style={{ color: "var(--cdc-ink-4)", fontWeight: 500, letterSpacing: 0, textTransform: "none" }}>(cantidad POR PERSONA, se escala automáticamente al # comensales)</span></label>
            <div style={{ display: "flex", flexDirection: "column", gap: 6 }}>
              {f.ingredients.map((g, i) => (
                <div key={i} style={{ display: "grid", gridTemplateColumns: "1fr 80px 80px auto", gap: 6, alignItems: "center" }}>
                  <input className="cdc-input" value={g.name} onChange={(e) => updIng(i, { name: e.target.value })} placeholder="Ingrediente" />
                  <input className="cdc-input" type="number" step="0.01" min="0" value={g.qty} onChange={(e) => updIng(i, { qty: parseFloat(e.target.value) || 0 })} />
                  <select className="cdc-select" value={g.unit} onChange={(e) => updIng(i, { unit: e.target.value })}>
                    <option>kg</option>
                    <option>g</option>
                    <option>L</option>
                    <option>ml</option>
                    <option>pza</option>
                    <option>manojo</option>
                  </select>
                  <button className="cdc-iconbtn" onClick={() => rmIng(i)} type="button" title="Quitar"><I.Trash size={13} /></button>
                </div>
              ))}
              <button type="button" className="cdc-chip" onClick={addIng} style={{ alignSelf: "flex-start" }}>
                <I.Plus size={12} /> Agregar ingrediente
              </button>
            </div>
          </div>
        </div>
        <div className="cdc-panel__actions" style={{ position: "static", borderTop: "1px solid var(--cdc-border-soft)" }}>
          <button className="cdc-btn" onClick={onClose}>Cancelar</button>
          <button className="cdc-btn cdc-btn--primary" disabled={!f.plate.trim()} onClick={() => onSave({ ...f, plate: f.plate.trim(), ingredients: f.ingredients.filter(g => g.name.trim()) })}>
            <I.Check size={14} /> {item ? "Guardar cambios" : "Agregar al menú"}
          </button>
        </div>
      </div>
    </div>
  );
};

const IngredientCalculator = ({ day, onClose, onAddToCompras }) => {
  const total = day.comensales.adultos + day.comensales.ninos;

  // Aggregate ingredients across all plates of the day, scaled by # comensales
  const aggregated = {};
  for (const it of day.items) {
    for (const g of (it.ingredients || [])) {
      const key = `${g.name}|${g.unit}`;
      if (!aggregated[key]) aggregated[key] = { name: g.name, unit: g.unit, qty: 0, sources: [] };
      aggregated[key].qty += (g.qty || 0) * total;
      aggregated[key].sources.push(it.plate);
    }
  }
  const list = Object.values(aggregated).sort((a, b) => a.name.localeCompare(b.name));

  // Compact qty display
  const fmt = (q, u) => {
    const decimals = u === "kg" || u === "L" ? 2 : u === "pza" ? 0 : 0;
    return q.toFixed(decimals);
  };

  return (
    <div className="cdc-overlay" onClick={onClose}>
      <div className="cdc-drawer" onClick={(e) => e.stopPropagation()}>
        <div className="cdc-drawer__head">
          <div>
            <div className="cdc-drawer__title">Insumos calculados — {day.day}</div>
            <div style={{ fontSize: 12.5, color: "var(--cdc-ink-3)", marginTop: 4 }}>
              {total} comensales · {day.comensales.adultos} adultos + {day.comensales.ninos} niños · {day.items.length} platillos
            </div>
          </div>
          <button className="cdc-iconbtn" onClick={onClose}><I.X size={18} /></button>
        </div>
        <div className="cdc-drawer__body" style={{ gap: 6 }}>
          {list.length === 0 ? (
            <div className="cdc-empty">
              <I.Box size={42} />
              <div className="cdc-empty__title">Sin ingredientes registrados</div>
              <div style={{ fontSize: 13, lineHeight: 1.5 }}>Edita los platillos para agregar ingredientes "por persona" y verás el cálculo escalado aquí.</div>
            </div>
          ) : (
            list.map((g, i) => (
              <div key={i} style={{ display: "grid", gridTemplateColumns: "1fr auto auto", gap: 10, alignItems: "center", padding: "10px 0", borderTop: i === 0 ? "none" : "1px solid var(--cdc-border-soft)" }}>
                <div>
                  <div style={{ fontWeight: 600, fontSize: 14 }}>{g.name}</div>
                  <div style={{ fontSize: 11.5, color: "var(--cdc-ink-3)", marginTop: 2 }}>{g.sources.join(" · ")}</div>
                </div>
                <div style={{ fontVariantNumeric: "tabular-nums", textAlign: "right" }}>
                  <strong style={{ fontFamily: "var(--cdc-display)", fontSize: 18 }}>{fmt(g.qty, g.unit)}</strong>
                  <span style={{ color: "var(--cdc-ink-3)", fontSize: 12, marginLeft: 4 }}>{g.unit}</span>
                </div>
                <button
                  className="cdc-chip"
                  onClick={() => onAddToCompras({ name: g.name, qty: parseFloat(fmt(g.qty, g.unit)), unit: g.unit })}
                  title="Agregar a lista de compras de Cocina"
                  style={{ borderColor: "var(--cdc-coral)", color: "var(--cdc-coral-deep)" }}
                >
                  <I.Plus size={11} /> A compras
                </button>
              </div>
            ))
          )}
        </div>
        <div className="cdc-panel__actions" style={{ position: "static", borderTop: "1px solid var(--cdc-border-soft)" }}>
          <button className="cdc-btn" onClick={onClose}>Cerrar</button>
          {list.length > 0 && (
            <button
              className="cdc-btn cdc-btn--primary"
              onClick={() => {
                list.forEach(g => onAddToCompras({ name: g.name, qty: parseFloat(fmt(g.qty, g.unit)), unit: g.unit }));
                onClose();
              }}
            >
              <I.Cart size={14} /> Agregar todo a compras
            </button>
          )}
        </div>
      </div>
    </div>
  );
};

Object.assign(window, { CocinaView, ComensalesStepper });
