Navigation
Inputs & Forms
Selection
Containers & Overlays
Chip Filter
Compact elements to filter, choose, sort or enter several values.
Overview
ChipFilter arranges chips in containers. Dragging a chip into or within a container filters and orders, e.g. the visible columns of a table.
Values:
Container 1: JavaScript, TypeScript, React, Vue, Angular
Container 2: Node.js, Express, Next.js, Svelte, Python
Container 1: JavaScript, TypeScript, React, Vue, Angular
Container 2: Node.js, Express, Next.js, Svelte, Python
"use client";import React, {useState} from "react";import {ChipContainerType, ChipFilter, IconCheck} from "@brynlabs/fusion-ui";const activeContent: ChipContainerType = {title: "Active",chipState: "selected",hasRemoveButtons: true,chips: [{label: "JavaScript", icon: <IconCheck />},{label: "TypeScript"},{label: "React"},{label: "Vue"},{label: "Angular"},],emptyMessage: "No active chips",};const inactiveContent: ChipContainerType = {title: "Hidden",chipState: "resting",hasRemoveButtons: true,chips: [{label: "Node.js"},{label: "Express"},{label: "Next.js"},{label: "Svelte"},{label: "Python"},],emptyMessage: "No inactive chips",};export const ChipFilterExample: React.FC = () => {const [active, setActive] = useState(activeContent);const [inactive, setInactive] = useState(inactiveContent);return (<><ChipFilteractiveContainer={active}inactiveContainer={inactive}onChange={({activeContainer, inactiveContainer}) => {setActive(activeContainer);setInactive(inactiveContainer);}}/><div style={{marginTop: "50px"}}>Values:<br />Container 1: {active.chips.map(c => c.label).join(", ")}<br />Container 2: {inactive.chips.map(c => c.label).join(", ")}</div></>);};

