// ──────────────────────────────────────────────────────────────────── // AW-013 · Integrated Product Create / Edit Modal — 1040px xlarge // ──────────────────────────────────────────────────────────────────── // ── Section shell (compact) ────────────────────────────────────── const SectionHeader = ({ num, title, subtitle, right, dimmed }) => (
{num}
{title}
{subtitle && (
{subtitle}
)}
{right}
); const IntSection = ({ num, title, subtitle, right, dimmed, children }) => (
{children}
); // ── SegmentedControl ───────────────────────────────────────────── const Segmented = ({ options, value, width }) => (
{options.map(o => (
{o.label}
))}
); // ── Number input with steppers ─────────────────────────────────── const NumInput = ({ value = 1, min = 1, max = 10, suffix = '명', width = 140 }) => (
{value} {suffix}
+
); // ── Pax-type radio card ────────────────────────────────────────── const PaxCard = ({ active, kind, title, desc, children }) => { const color = kind === 'Fixed' ? 'var(--primary)' : '#7C3AED'; const bg = kind === 'Fixed' ? 'var(--primary-hover-bg)' : '#F0E7FF'; return (
{active &&
}
{title}
{kind.toUpperCase()}
{desc}
{active && children && (
{children}
)}
); }; // ── Small inline toggle (for Add-on row) ───────────────────────── const RowToggle = ({ on }) => (
); Object.assign(window, { IntSection, SectionHeader, Segmented, NumInput, PaxCard, RowToggle, });