| name | filter-sphere |
| description | Integrate Filter Sphere into a project - schema-driven filtering for Zod-typed data. Use when building filtering UIs, data tables with filters, or adding sort/filter logic to any TypeScript application. |
Filter Sphere - Schema-driven Filtering
Build advanced filtering interfaces powered by Zod schemas.
Quick Start
pnpm add @fn-sphere/filter zod
Core Concepts
Basic Setup
import {
FilterSphereProvider,
FilterBuilder,
useFilterSphere,
} from "@fn-sphere/filter";
import { z } from "zod";
const schema = z.object({
name: z.string().describe("Name"),
age: z.number().describe("Age"),
});
export function FilterBuilder() {
const { filterRule, predicate, context } = useFilterSphere({
schema,
onRuleChange: ({ filterRule }) => {
console.log("Filter rule changed:", filterRule);
},
});
const data = [];
const filteredData = data.filter(predicate);
return (
<FilterSphereProvider context={context}>
<FilterBuilder />
</FilterSphereProvider>
);
}
Project Structure (Recommended)
filter-sphere/
index.tsx # Main component wiring everything together
schema.ts # Zod schema, default rules, custom functions
theme.tsx # Theme via createFilterTheme
locale.ts # (Optional) i18n with getLocaleText
Core References
Resources