UNPKG

@miyagi/core

Version:

miyagi is a component development tool for JavaScript template engines.

52 lines (44 loc) 1.4 kB
import { createSynchronousFunction } from "twing"; export const isExpanded = createSynchronousFunction( "is_expanded", (_context, item, requestedComponent) => { if (item.topLevel) return true; if (!requestedComponent) return false; return !!( item.children?.find( ({ shortPath }) => shortPath === requestedComponent, ) || (item.shortPath && item.shortPath === requestedComponent) || requestedComponent.startsWith(item.shortPath) ); }, [{ name: "item" }, { name: "requestedComponent" }], ); export const isActiveComponent = createSynchronousFunction( "is_active_component", (_context, item, requestedComponent, requestedVariation) => { if (!requestedComponent) return false; if (requestedComponent === "design-tokens") { return ( item.section === "design-tokens" && item.name == requestedVariation ); } return ( item.shortPath && item.shortPath === requestedComponent && !requestedVariation ); }, ["item", "requestedComponent", "requestedVariation"], ); export const isActiveVariant = createSynchronousFunction( "is_active_variant", (_context, item, requestedComponent, requestedVariation) => { if (!item || !requestedComponent || !requestedVariation) return false; return ( requestedComponent == item.parentShortPath && requestedVariation == item.name ); }, ["item", "requestedComponent", "requestedVariation"], );