51 lines
3.0 KiB
HTML
51 lines
3.0 KiB
HTML
<!-- @dsCard group="Components" viewport="700x260" name="Feedback" subtitle="Toast, Tooltip, Spinner" -->
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@300..700&family=Geist+Mono:wght@400..600&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="../../styles.css">
|
|
<script src="https://unpkg.com/react@18.3.1/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/lucide@0.544.0/dist/umd/lucide.min.js"></script>
|
|
<script src="../../_ds_bundle.js"></script>
|
|
<style>
|
|
body { margin: 0; background: var(--surface-app); color: var(--text-primary); font-family: var(--font-sans); }
|
|
#root { padding: 22px 24px; display: flex; gap: 22px; align-items: flex-start; flex-wrap: wrap; }
|
|
.lbl { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-disabled); margin-bottom: 12px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="text/babel">
|
|
const NS = window.ChicoryTVDesignSystem_eb3b61;
|
|
const { Toast, Tooltip, Spinner, IconButton } = NS;
|
|
const Ico = ({ n, s = 16 }) => { const r = React.useRef(null); React.useEffect(() => { if (r.current){ r.current.innerHTML=""; const el = window.lucide.createElement(window.lucide.icons[n]); el.setAttribute("width", s); el.setAttribute("height", s); r.current.appendChild(el);} }); return <span ref={r} style={{ display: "inline-flex" }} />; };
|
|
|
|
function Demo() {
|
|
return (
|
|
<React.Fragment>
|
|
<div style={{ display: "flex", flexDirection: "column", gap: 12, width: 380 }}>
|
|
<Toast tone="ok" title="Channel saved" message="Retro Cartoons is now on air." onClose={() => {}} />
|
|
<Toast tone="warn" title="FFmpeg profile is not normalizing" message="Playback may stutter in some browsers." onClose={() => {}} />
|
|
<Toast tone="error" title="Playout build failed" message="No items match the schedule window." onClose={() => {}} />
|
|
</div>
|
|
<div>
|
|
<div className="lbl">Tooltip · Spinner</div>
|
|
<div style={{ display: "flex", alignItems: "center", gap: 16 }}>
|
|
<Tooltip label="Reset playout"><IconButton title="Reset"><Ico n="RefreshCw" /></IconButton></Tooltip>
|
|
<Tooltip label="Troubleshoot" placement="bottom"><IconButton title="Info"><Ico n="Info" /></IconButton></Tooltip>
|
|
<Spinner size={18} tone="accent" />
|
|
<Spinner size={18} tone="muted" />
|
|
</div>
|
|
</div>
|
|
</React.Fragment>
|
|
);
|
|
}
|
|
ReactDOM.createRoot(document.getElementById("root")).render(<Demo />);
|
|
</script>
|
|
</body>
|
|
</html>
|