react-vehicle-seatpicker
Version:
A flexible and customizable React component for vehicle seat selection (bus, minibus, etc.)
627 lines (626 loc) • 24.6 kB
JavaScript
import se from "react";
var X = { exports: {} }, $ = {};
/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var ee;
function oe() {
if (ee)
return $;
ee = 1;
var n = Symbol.for("react.transitional.element"), c = Symbol.for("react.fragment");
function o(r, a, d) {
var m = null;
if (d !== void 0 && (m = "" + d), a.key !== void 0 && (m = "" + a.key), "key" in a) {
d = {};
for (var i in a)
i !== "key" && (d[i] = a[i]);
} else
d = a;
return a = d.ref, {
$$typeof: n,
type: r,
key: m,
ref: a !== void 0 ? a : null,
props: d
};
}
return $.Fragment = c, $.jsx = o, $.jsxs = o, $;
}
var B = {};
/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var te;
function ce() {
return te || (te = 1, process.env.NODE_ENV !== "production" && function() {
function n(e) {
if (e == null)
return null;
if (typeof e == "function")
return e.$$typeof === P ? null : e.displayName || e.name || null;
if (typeof e == "string")
return e;
switch (e) {
case y:
return "Fragment";
case U:
return "Profiler";
case z:
return "StrictMode";
case v:
return "Suspense";
case E:
return "SuspenseList";
case C:
return "Activity";
}
if (typeof e == "object")
switch (typeof e.tag == "number" && console.error(
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
), e.$$typeof) {
case Z:
return "Portal";
case g:
return e.displayName || "Context";
case x:
return (e._context.displayName || "Context") + ".Consumer";
case k:
var l = e.render;
return e = e.displayName, e || (e = l.displayName || l.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
case D:
return l = e.displayName || null, l !== null ? l : n(e.type) || "Memo";
case F:
l = e._payload, e = e._init;
try {
return n(e(l));
} catch {
}
}
return null;
}
function c(e) {
return "" + e;
}
function o(e) {
try {
c(e);
var l = !1;
} catch {
l = !0;
}
if (l) {
l = console;
var u = l.error, _ = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
return u.call(
l,
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
_
), c(e);
}
}
function r(e) {
if (e === y)
return "<>";
if (typeof e == "object" && e !== null && e.$$typeof === F)
return "<...>";
try {
var l = n(e);
return l ? "<" + l + ">" : "<...>";
} catch {
return "<...>";
}
}
function a() {
var e = T.A;
return e === null ? null : e.getOwner();
}
function d() {
return Error("react-stack-top-frame");
}
function m(e) {
if (L.call(e, "key")) {
var l = Object.getOwnPropertyDescriptor(e, "key").get;
if (l && l.isReactWarning)
return !1;
}
return e.key !== void 0;
}
function i(e, l) {
function u() {
Y || (Y = !0, console.error(
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
l
));
}
u.isReactWarning = !0, Object.defineProperty(e, "key", {
get: u,
configurable: !0
});
}
function j() {
var e = n(this.type);
return M[e] || (M[e] = !0, console.error(
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
)), e = this.props.ref, e !== void 0 ? e : null;
}
function b(e, l, u, _, V, q) {
var f = u.ref;
return e = {
$$typeof: S,
type: e,
key: l,
props: u,
_owner: _
}, (f !== void 0 ? f : null) !== null ? Object.defineProperty(e, "ref", {
enumerable: !1,
get: j
}) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
configurable: !1,
enumerable: !1,
writable: !0,
value: 0
}), Object.defineProperty(e, "_debugInfo", {
configurable: !1,
enumerable: !1,
writable: !0,
value: null
}), Object.defineProperty(e, "_debugStack", {
configurable: !1,
enumerable: !1,
writable: !0,
value: V
}), Object.defineProperty(e, "_debugTask", {
configurable: !1,
enumerable: !1,
writable: !0,
value: q
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
}
function h(e, l, u, _, V, q) {
var f = l.children;
if (f !== void 0)
if (_)
if (W(f)) {
for (_ = 0; _ < f.length; _++)
p(f[_]);
Object.freeze && Object.freeze(f);
} else
console.error(
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
);
else
p(f);
if (L.call(l, "key")) {
f = n(e);
var O = Object.keys(l).filter(function(ie) {
return ie !== "key";
});
_ = 0 < O.length ? "{key: someKey, " + O.join(": ..., ") + ": ...}" : "{key: someKey}", K[f + _] || (O = 0 < O.length ? "{" + O.join(": ..., ") + ": ...}" : "{}", console.error(
`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`,
_,
f,
O,
f
), K[f + _] = !0);
}
if (f = null, u !== void 0 && (o(u), f = "" + u), m(l) && (o(l.key), f = "" + l.key), "key" in l) {
u = {};
for (var G in l)
G !== "key" && (u[G] = l[G]);
} else
u = l;
return f && i(
u,
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
), b(
e,
f,
u,
a(),
V,
q
);
}
function p(e) {
N(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === F && (e._payload.status === "fulfilled" ? N(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
}
function N(e) {
return typeof e == "object" && e !== null && e.$$typeof === S;
}
var R = se, S = Symbol.for("react.transitional.element"), Z = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), z = Symbol.for("react.strict_mode"), U = Symbol.for("react.profiler"), x = Symbol.for("react.consumer"), g = Symbol.for("react.context"), k = Symbol.for("react.forward_ref"), v = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), D = Symbol.for("react.memo"), F = Symbol.for("react.lazy"), C = Symbol.for("react.activity"), P = Symbol.for("react.client.reference"), T = R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, L = Object.prototype.hasOwnProperty, W = Array.isArray, A = console.createTask ? console.createTask : function() {
return null;
};
R = {
react_stack_bottom_frame: function(e) {
return e();
}
};
var Y, M = {}, H = R.react_stack_bottom_frame.bind(
R,
d
)(), Q = A(r(d)), K = {};
B.Fragment = y, B.jsx = function(e, l, u) {
var _ = 1e4 > T.recentlyCreatedOwnerStacks++;
return h(
e,
l,
u,
!1,
_ ? Error("react-stack-top-frame") : H,
_ ? A(r(e)) : Q
);
}, B.jsxs = function(e, l, u) {
var _ = 1e4 > T.recentlyCreatedOwnerStacks++;
return h(
e,
l,
u,
!0,
_ ? Error("react-stack-top-frame") : H,
_ ? A(r(e)) : Q
);
};
}()), B;
}
process.env.NODE_ENV === "production" ? X.exports = oe() : X.exports = ce();
var t = X.exports;
const ue = "_seatWrapper_13mhc_1", de = "_seatButton_13mhc_5", me = "_selected_13mhc_28", _e = "_reserved_13mhc_32", fe = "_sleeperSeat_13mhc_36", he = "_vipSeat_13mhc_40", ve = "_driverSeat_13mhc_65", be = "_seatNumber_13mhc_79", pe = "_icon_13mhc_121", ge = "_seatContent_13mhc_137", xe = "_busFrame_13mhc_156", je = "_busBack_13mhc_169", ke = "_busBackText_13mhc_184", Se = "_busBackLight_13mhc_190", Re = "_busBackLightLeft_13mhc_200", Ne = "_busBackLightRight_13mhc_211", Ee = "_busFrameContent_13mhc_222", we = "_busFront_13mhc_231", ye = "_minibusFrame_13mhc_247", Ce = "_frontText_13mhc_271", Te = "_frontLight_13mhc_277", Fe = "_frontLightLeft_13mhc_287", Le = "_frontLightRight_13mhc_298", Ae = "_legendContainer_13mhc_310", Oe = "_legendItem_13mhc_320", Pe = "_legendSeat_13mhc_327", $e = "_legendText_13mhc_338", Be = "_legendReserved_13mhc_359", Ie = "_legendSelected_13mhc_370", De = "_legendAvailable_13mhc_381", We = "_legendDriver_13mhc_392", Ye = "_legendSleeper_13mhc_403", Me = "_legendVip_13mhc_414", Ve = "_content_13mhc_430", ze = "_contentText_13mhc_435", s = {
seatWrapper: ue,
seatButton: de,
selected: me,
reserved: _e,
sleeperSeat: fe,
vipSeat: he,
driverSeat: ve,
seatNumber: be,
icon: pe,
seatContent: ge,
busFrame: xe,
busBack: je,
busBackText: ke,
busBackLight: Se,
busBackLightLeft: Re,
busBackLightRight: Ne,
busFrameContent: Ee,
busFront: we,
minibusFrame: ye,
frontText: Ce,
frontLight: Te,
frontLightLeft: Fe,
frontLightRight: Le,
legendContainer: Ae,
legendItem: Oe,
legendSeat: Pe,
legendText: $e,
legendReserved: Be,
legendSelected: Ie,
legendAvailable: De,
legendDriver: We,
legendSleeper: Ye,
legendVip: Me,
content: Ve,
contentText: ze
}, I = ({ size: n = 16 }) => /* @__PURE__ */ t.jsxs(
"svg",
{
className: s.icon,
width: n,
height: n,
viewBox: "0 0 16 16",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
style: { transform: "rotate(180deg)" },
children: [
/* @__PURE__ */ t.jsx("rect", { x: "2", y: "2", width: "12", height: "3", rx: "1", fill: "none", stroke: "currentColor", strokeWidth: "1.2" }),
/* @__PURE__ */ t.jsx("rect", { x: "3", y: "5", width: "10", height: "8", rx: "1", fill: "none", stroke: "currentColor", strokeWidth: "1.2" }),
/* @__PURE__ */ t.jsx("rect", { x: "1", y: "6", width: "2", height: "5", rx: "0.5", fill: "none", stroke: "currentColor", strokeWidth: "1" }),
/* @__PURE__ */ t.jsx("rect", { x: "13", y: "6", width: "2", height: "5", rx: "0.5", fill: "none", stroke: "currentColor", strokeWidth: "1" })
]
}
), ae = ({ size: n = 18 }) => /* @__PURE__ */ t.jsxs("svg", { width: n, height: n + 2, viewBox: "0 0 14 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { transform: "rotate(180deg)" }, children: [
/* @__PURE__ */ t.jsx("rect", { x: "1", y: "3", width: "12", height: "14", rx: "0.5", fill: "none", stroke: "currentColor", strokeWidth: "1.2" }),
/* @__PURE__ */ t.jsx("rect", { x: "3", y: "1", width: "8", height: "4", rx: "0.5", fill: "none", stroke: "currentColor", strokeWidth: "1.2" }),
/* @__PURE__ */ t.jsx("path", { d: "M2 5 L8 5 L12 9 L12 15 L6 15 Z", fill: "none", stroke: "currentColor", strokeWidth: "1" })
] }), le = ({ size: n = 16 }) => /* @__PURE__ */ t.jsxs("svg", { width: n, height: n, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
/* @__PURE__ */ t.jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2", fill: "none" }),
/* @__PURE__ */ t.jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor" }),
/* @__PURE__ */ t.jsx("path", { d: "M12 3v6M12 15v6M3 12h6M15 12h6", stroke: "currentColor", strokeWidth: "2" })
] }), Ue = ({ color: n }) => /* @__PURE__ */ t.jsx("div", { className: s.driverSeat, style: n ? { backgroundColor: n } : void 0, children: /* @__PURE__ */ t.jsx(le, { size: 14 }) }), qe = ({ seat: n, isReserved: c, isSelected: o, onClick: r, colors: a }) => {
if (n.isDriver)
return /* @__PURE__ */ t.jsx(Ue, { color: a == null ? void 0 : a.driver });
const d = () => {
const i = [s.seatButton];
return c && i.push(s.reserved), o && i.push(s.selected), n.type === "sleeper" && i.push(s.sleeperSeat), n.type === "vip" && i.push(s.vipSeat), i.join(" ");
}, m = () => {
const i = {};
return a && (c && a.reserved ? i.backgroundColor = a.reserved : o && a.selected ? i.backgroundColor = a.selected : n.type === "sleeper" && a.sleeper ? i.backgroundColor = a.sleeper : n.type === "vip" && a.vip ? i.backgroundColor = a.vip : a.available && (i.backgroundColor = a.available)), i;
};
return /* @__PURE__ */ t.jsx("div", { className: s.seatWrapper, children: /* @__PURE__ */ t.jsx(
"button",
{
type: "button",
disabled: c || n.isDriver,
onClick: r,
className: d(),
style: m(),
title: n.number,
"aria-label": `Seat ${n.number}`,
children: /* @__PURE__ */ t.jsx("span", { style: n.seatRotation ? { display: "inline-block", transform: `rotate(${n.seatRotation}deg)` } : {}, children: n.type === "sleeper" ? /* @__PURE__ */ t.jsx(ae, { size: 16 }) : /* @__PURE__ */ t.jsxs("div", { className: s.seatContent, children: [
/* @__PURE__ */ t.jsx(I, { size: 16 }),
/* @__PURE__ */ t.jsx("span", { className: s.seatNumber, children: n.number })
] }) })
}
) });
}, Ge = ({ children: n, vehicleType: c }) => /* @__PURE__ */ t.jsxs("div", { className: c === "bus" ? s.busFrame : s.minibusFrame, children: [
c === "bus" && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
/* @__PURE__ */ t.jsx("div", { className: s.busFront, children: /* @__PURE__ */ t.jsx("span", { className: s.frontText, children: "Bus Front" }) }),
/* @__PURE__ */ t.jsx("div", { className: s.frontLightLeft }),
/* @__PURE__ */ t.jsx("div", { className: s.frontLightRight }),
/* @__PURE__ */ t.jsx("div", { className: s.content, children: n }),
/* @__PURE__ */ t.jsx("div", { className: s.busBack, children: /* @__PURE__ */ t.jsx("span", { className: s.busBackText, children: "Bus Rear" }) }),
/* @__PURE__ */ t.jsx("div", { className: s.busBackLightLeft }),
/* @__PURE__ */ t.jsx("div", { className: s.busBackLightRight })
] }),
c !== "bus" && /* @__PURE__ */ t.jsx("div", { className: s.content, children: n })
] }), Je = ({
show: n = !0,
items: c = ["reserved", "selected", "available", "driver", "sleeper", "vip"],
labels: o = {
reserved: "Reserved",
selected: "Selected",
available: "Available",
driver: "Driver",
sleeper: "Sleeper",
vip: "VIP"
},
colors: r
}) => {
if (!n)
return null;
const a = {
reserved: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendReserved, style: r != null && r.reserved ? { backgroundColor: r.reserved } : void 0, children: /* @__PURE__ */ t.jsx(I, { size: 14 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.reserved })
] }),
selected: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendSelected, style: r != null && r.selected ? { backgroundColor: r.selected } : void 0, children: /* @__PURE__ */ t.jsx(I, { size: 14 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.selected })
] }),
available: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendAvailable, style: r != null && r.available ? { backgroundColor: r.available } : void 0, children: /* @__PURE__ */ t.jsx(I, { size: 14 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.available })
] }),
driver: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendDriver, style: r != null && r.driver ? { backgroundColor: r.driver } : void 0, children: /* @__PURE__ */ t.jsx(le, { size: 12 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.driver })
] }),
sleeper: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendSleeper, style: r != null && r.sleeper ? { backgroundColor: r.sleeper } : void 0, children: /* @__PURE__ */ t.jsx(ae, { size: 12 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.sleeper })
] }),
vip: /* @__PURE__ */ t.jsxs("div", { className: s.legendItem, children: [
/* @__PURE__ */ t.jsx("span", { className: s.legendVip, style: r != null && r.vip ? { backgroundColor: r.vip } : void 0, children: /* @__PURE__ */ t.jsx(I, { size: 14 }) }),
/* @__PURE__ */ t.jsx("span", { className: s.legendText, children: o.vip })
] })
};
return /* @__PURE__ */ t.jsx("div", { className: s.legendContainer, children: c.map((d) => /* @__PURE__ */ t.jsx(se.Fragment, { children: a[d] }, d)) });
}, Xe = "_tabContainer_11jfv_3", Ze = "_tab_11jfv_3", He = "_active_11jfv_34", J = {
tabContainer: Xe,
tab: Ze,
active: He
}, Qe = ({
tabs: n,
active: c,
onChange: o,
className: r = ""
}) => /* @__PURE__ */ t.jsx("div", { className: `${J.tabContainer} ${r}`, children: n.map((a) => /* @__PURE__ */ t.jsx(
"button",
{
onClick: () => o(a),
className: `${J.tab} ${c === a ? J.active : ""}`,
children: a.replace("floor-", "Deck ")
},
a
)) }), Ke = "_container_b8hp8_1", et = "_title_b8hp8_8", tt = "_seatContainer_b8hp8_17", rt = "_seatRow_b8hp8_25", nt = "_aisle_b8hp8_33", st = "_selectedSeats_b8hp8_38", at = "_busFrame_b8hp8_49", lt = "_busFront_b8hp8_56", it = "_spacingRow_b8hp8_71", ot = "_legendItem_b8hp8_95", ct = "_floorContainer_b8hp8_103", ut = "_floorSelector_b8hp8_125", w = {
container: Ke,
title: et,
seatContainer: tt,
seatRow: rt,
aisle: nt,
selectedSeats: st,
busFrame: at,
busFront: lt,
spacingRow: it,
legendItem: ot,
floorContainer: ct,
floorSelector: ut
};
function re(n, c = [4, 4, 4, 4, 4, 4, 4], o = !0, r, a = "regular", d = !0, m = 1) {
let i = m;
const j = [];
if (o) {
const b = [null, null, null, null, null, { id: "D", number: "Driver", isReserved: !0, isDriver: !0, type: "driver" }];
j.push(b);
} else if (!d) {
const b = [null, null, null, null, null, null];
j.push(b);
}
return c.forEach((b) => {
const h = [];
for (let p = 0; p < b; p++)
h.push({
id: i,
number: String(i),
isReserved: !1,
type: (r == null ? void 0 : r[i]) || a
}), i++, p === Math.floor(b / 2) - 1 && b > 1 && h.push(null);
j.push(h);
}), j;
}
function ne(n, c = [2, 2, 2, 2], o = !0, r, a = "regular", d = 1) {
let m = d;
const i = [], j = () => ({
id: m++,
number: String(m - 1),
isReserved: !1,
type: (r == null ? void 0 : r[m - 1]) || a
});
return c.forEach((b, h) => {
const p = [];
if (h === 0 && o)
p.push(j(), null, { id: "D", number: "Driver", isReserved: !0, isDriver: !0, type: "driver" });
else {
const N = Math.ceil(b / 2), R = b - N;
for (let S = 0; S < N; S++)
p.push(j());
b > 1 && p.push(null);
for (let S = 0; S < R; S++)
p.push(j());
}
i.push(p);
}), i;
}
const mt = ({
layout: n,
reservedSeats: c = [],
selectedSeats: o = [],
onSelect: r,
rowConfig: a,
seatCount: d,
withDriver: m = !0,
vehicleType: i,
seatTypes: j,
defaultSeatType: b = "regular",
floorsConfig: h,
selectedFloor: p,
onFloorChange: N,
legendConfig: R = {
show: !0,
items: ["reserved", "selected", "available", "driver"],
labels: {
reserved: "Reserved",
selected: "Selected",
available: "Available",
driver: "Driver",
sleeper: "Sleeper",
vip: "VIP"
}
},
seatColors: S = {
reserved: "#E0E0E0",
selected: "#4CAF50",
available: "#FFFFFF",
driver: "#2196F3",
sleeper: "#9C27B0",
vip: "#FFC107"
}
}) => {
const y = a || {
minibus: [2, 2, 2, 2],
bus: [4, 4, 4, 4, 4, 4, 4],
elf: [1, 2, 2, 2, 1]
}[i || "minibus"] || [2, 2, 2, 2], z = n || (() => {
if (h && Object.keys(h).length > 0) {
const g = p || "1", k = h[g];
if (k) {
const v = k.row_config, E = k.seat_types || {}, D = k.default_seat_type || b, F = v.reduce((T, L) => T + L, 0), C = g === "1";
let P = 1;
if (!C) {
const T = Object.keys(h).map(Number).sort(), L = parseInt(g);
for (const W of T)
if (W < L) {
const A = h[W.toString()];
A && (P += A.row_config.reduce((Y, M) => Y + M, 0));
}
}
return i === "bus" ? re(F, v, m && C, E, D, C, P) : ne(
F + (m && C ? 1 : 0),
v,
m && C,
E,
D,
P
);
}
}
const x = d ?? y.reduce((g, k) => g + k, 0);
return i === "bus" ? re(x, y, m, j, b, !0, 1) : ne(x + (m ? 1 : 0), y, m, j, b, 1);
})(), U = (x) => {
if (x.isReserved || x.isDriver || !r)
return;
const g = String(x.id), v = o.map(String).includes(g) ? o.filter((E) => String(E) !== g) : [...o, g];
r(v);
};
return /* @__PURE__ */ t.jsxs("div", { className: w.container, children: [
/* @__PURE__ */ t.jsx(Je, { show: R.show, items: R.items, labels: R.labels, colors: S }),
h && Object.keys(h).length > 0 && /* @__PURE__ */ t.jsx("div", { className: w.floorSelector, children: /* @__PURE__ */ t.jsx(
Qe,
{
tabs: Object.keys(h).map((x) => `floor-${x}`),
active: `floor-${p || "1"}`,
onChange: (x) => {
const g = x.replace("floor-", "");
N == null || N(g);
}
}
) }),
/* @__PURE__ */ t.jsxs("h3", { className: w.title, children: [
"Select Seat ",
h ? `(Floor ${p || "1"})` : ""
] }),
/* @__PURE__ */ t.jsx(Ge, { vehicleType: i, children: /* @__PURE__ */ t.jsxs("div", { className: w.seatContainer, children: [
z.map((x, g) => {
const k = x.every((v) => v === null);
return /* @__PURE__ */ t.jsx("div", { className: `${w.seatRow} ${k ? w.spacingRow : ""}`, children: k ? /* @__PURE__ */ t.jsx("div", { className: "w-full h-6" }) : x.map(
(v, E) => v ? /* @__PURE__ */ t.jsx(
qe,
{
seat: v,
isReserved: c.includes(v.id) || c.includes(String(v.id)) || v.isReserved,
isSelected: o.map(String).includes(String(v.id)),
onClick: () => U(v),
colors: S
},
v.id
) : /* @__PURE__ */ t.jsx("div", { className: w.aisle }, `aisle-${g}-${E}`)
) }, g);
}),
i === "bus" && /* @__PURE__ */ t.jsx("div", { className: "flex items-center justify-center gap-1 mt-4 mb-2 text-xs text-gray-600" })
] }) }),
/* @__PURE__ */ t.jsxs("div", { className: w.selectedSeats, children: [
"Selected seats: ",
/* @__PURE__ */ t.jsx("span", { className: "font-bold", children: o.join(", ") || "No seat selected" })
] })
] });
};
export {
Ge as BusFrame,
Ue as DriverSeat,
I as RegularSeatIcon,
qe as SeatButton,
Je as SeatLegend,
mt as SeatPickerComponent,
ae as SleeperSeatIcon,
le as SteeringWheelIcon,
Qe as ToggleTabs,
re as generateBusLayout,
ne as generateMinibusLayout
};