// Fenja UI Kit — Components
// Shared icons
const Ic = {
feather: (p) => (),
search: (p) => (),
book: (p) => (),
bookmark: (p) => (),
note: (p) => (),
plus: (p) => (),
settings: (p) => (),
send: (p) => (),
star: (p) => (),
archive: (p) => (),
quote: (p) => (),
};
const Icon = ({ name, size = 18, ...rest }) => {
const C = Ic[name];
return C ? : null;
};
const RuneSpinner = () => (
);
const Button = ({ kind = "primary", children, onClick }) => (
);
const IconButton = ({ name, label, onClick }) => (
);
const Tag = ({ children }) => {children};
const Sidebar = ({ view, setView }) => (
);
const Topbar = ({ crumbs, children }) => (
{crumbs.map((c, i) => (
{i > 0 && —}
{c}
))}
{children}
);
const FloatingSearch = ({ onFocus }) => (
⌘K
);
const ArchiveItem = ({ item, onOpen }) => (
onOpen(item)}>
{item.title}
{item.excerpt}
{item.collection}
{item.meta}
);
const Composer = ({ value, onChange, onSend, loading }) => (
{loading ? : }
onChange(e.target.value)}
onKeyDown={(e) => e.key === 'Enter' && onSend()}
/>
);
Object.assign(window, {
Icon, Button, IconButton, Tag, Sidebar, Topbar, FloatingSearch,
ArchiveItem, Composer, RuneSpinner,
});