/* 아리 — 하루 마감 브리핑 (이브닝 다크 톤) */ const { useState, useEffect } = React; const W = window.AriWrap; /* ---------- 아이콘 ---------- */ const WP = { spark: "M12 3l1.9 5.2L19 10l-5.1 1.8L12 17l-1.9-5.2L5 10l5.1-1.8z|M19 4v3|M5 17v3", moon: "M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8z", back: "M19 12H5|M12 19l-7-7 7-7", tick: "M20 6 9 17l-5-5", cal: "M8 2v4M16 2v4M3 10h18M5 4h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z", arrow: "M5 12h14|M13 6l6 6-6 6", swap: "M16 3h5v5|M21 3l-7 7|M8 21H3v-5|M3 21l7-7", rain: "M16 13v6M8 13v6M12 15v6|M20 16.6A5 5 0 0 0 18 7h-1.3A8 8 0 1 0 4 14.9", pen: "M12 20h9|M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z", bell: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9|M10.3 21a1.94 1.94 0 0 0 3.4 0", sun: "M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10z|M12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4", }; function I({ d, w }) { return ( ); } function load(key, fallback) { try { const v = localStorage.getItem("ari.wrap." + key); return v === null ? fallback : JSON.parse(v); } catch (e) { return fallback; } } function save(key, val) { try { localStorage.setItem("ari.wrap." + key, JSON.stringify(val)); } catch (e) {} } function App() { const [sleep, setSleep] = useState(() => load("sleep", false)); const [note, setNote] = useState(() => load("note", "")); const [undone, setUndone] = useState({}); // rollover id → true(되돌림) useEffect(() => save("sleep", sleep), [sleep]); useEffect(() => save("note", note), [note]); const toggleRoll = (id) => setUndone((u) => ({ ...u, [id]: !u[id] })); return (