import type { Entry } from './types'; import { accordion } from './accordion'; import { alert } from './alert'; import { avatar } from './avatar'; import { badge } from './badge'; import { button } from './button'; import { dataTable, datePicker, rangeSlider, tree, treeSelect, upload, virtualList, } from './data'; import { checkbox, radioGroup, switchEntry } from './form-controls'; import { form } from './form'; import { combobox, field, input, inputNumber, label, select, textarea } from './forms'; import { card, separator, skeleton, spinner } from './layout'; import { breadcrumb, pagination, tabs } from './navigation'; import { command, dialog, drawer, dropdownMenu, popover, sheet, toastEntry, tooltip, } from './overlays'; import { progress, progressCircle } from './progress'; /** * Every component the showcase knows about — all 39 that the kit ships, with * ProgressCircle and DateRangePicker folded into their siblings' pages exactly * as they are folded into their siblings' export subpaths. * * Order here is the order inside a sidebar group; groups themselves appear in * the order they are first seen below. */ export const entries: readonly Entry[] = [ // Actions button, // Data display badge, avatar, progress, progressCircle, // Feedback alert, // Forms input, textarea, label, field, form, select, combobox, inputNumber, checkbox, switchEntry, radioGroup, // Navigation breadcrumb, pagination, tabs, // Disclosure accordion, // Overlays dialog, sheet, drawer, popover, tooltip, dropdownMenu, command, toastEntry, // Data dataTable, virtualList, tree, treeSelect, datePicker, rangeSlider, upload, // Layout card, separator, skeleton, spinner, ]; export const groupedEntries: readonly (readonly [string, readonly Entry[]])[] = (() => { const byGroup = new Map(); for (const entry of entries) { const list = byGroup.get(entry.group); if (list) list.push(entry); else byGroup.set(entry.group, [entry]); } return [...byGroup.entries()]; })(); export function findEntry(slug: string): Entry | undefined { return entries.find((entry) => entry.slug === slug); }