UNPKG

react-vehicle-seatpicker

Version:

A flexible and customizable React component for vehicle seat selection (bus, minibus, etc.)

627 lines (626 loc) 24.6 kB
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 };