UNPKG

@tolokoban/ui

Version:

React components with theme

27 lines 2.76 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from "react"; import { Theme } from "./../../theme/index.js"; import { classnameCommon, styleCommon, } from "./../../theme/styles/common.js"; import Styles from "./Stack.module.css"; import { ensureArray } from "./../../util/ensure.js"; const $ = Theme.classNames; export function ViewStack(props) { const { value, children } = props; const style = Object.assign({}, styleCommon(props)); const items = React.useMemo(() => { const values = new Set((() => { if (!value) return []; return Array.isArray(value) ? value : [value]; })()); return ensureArray(children).filter((child) => { if (!child.key) { // Children without a key are always displayed. return true; } return values.has(child.key); }); }, [children, value]); return (_jsx("div", { className: $.join(props.className, Styles.stack, classnameCommon(props)), style: style, children: items })); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmlldy9TdGFjay9TdGFjay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRTlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDL0IsT0FBTyxFQUNILGVBQWUsRUFFZixXQUFXLEdBQ2QsTUFBTSx1QkFBdUIsQ0FBQTtBQUU5QixPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7QUFXMUIsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFxQjtJQUMzQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUNqQyxNQUFNLEtBQUsscUJBQ0osV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUN4QixDQUFBO0lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0IsTUFBTSxNQUFNLEdBQWdCLElBQUksR0FBRyxDQUMvQixDQUFDLEdBQUcsRUFBRTtZQUNGLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxDQUFBO1lBRXJCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQTtRQUNELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2IsK0NBQStDO2dCQUMvQyxPQUFPLElBQUksQ0FBQTtZQUNmLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDckIsT0FBTyxDQUNILGNBQ0ksU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2IsS0FBSyxDQUFDLFNBQVMsRUFDZixNQUFNLENBQUMsS0FBSyxFQUNaLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FDekIsRUFDRCxLQUFLLEVBQUUsS0FBSyxZQUVYLEtBQUssR0FDSixDQUNULENBQUE7QUFDTCxDQUFDIn0=