Skip to main content

tanstack-table

Apply TanStack Table UI-state patterns for Svelte data tables, including columns, rendering, sorting, filtering, pagination, and row identity. Use when building or reviewing data-table UI, not Epicenter workspace storage tables.

소스 정보

저장소
EpicenterHQ/epicenter
최근 소스 활동
2026년 8월 26일 20:51
감지된 SKILL.md 언어
영어
스타
4,826
포크
386

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
tanstack-table
description
Apply TanStack Table UI-state patterns for Svelte data tables, including columns, rendering, sorting, filtering, pagination, and row identity. Use when building or reviewing data-table UI, not Epicenter workspace storage tables.
metadata
{"author":"epicenter","version":"1.0"}
# TanStack Table ## Reference Repositories - [TanStack Table](https://github.com/TanStack/table) - Headless table state and row models - [Svelte](https://github.com/sveltejs/svelte) - Svelte 5 component and reactivity model ## Upstream Grounding When TanStack Table adapter APIs, row models, controlled state, sorting, filtering, pagination, or Svelte rendering helpers affect correctness, ask DeepWiki a narrow question against `TanStack/table`. Verify against the installed `@tanstack/svelte-table` and `@tanstack/table-core` versions. This skill is for UI table state. Use `yjs` for Epicenter store table storage, and `svelte` for reading rows into a component. ## Local API Baseline Epicenter currently uses `@tanstack/svelte-table` with: ```typescript import { createTable as createSvelteTable, FlexRender, renderComponent, } from '@tanstack/svelte-table'; import type { ColumnDef } from '@tanstack/table-core'; ``` ## Table Construction Rules - Always set `getRowId` for persisted or local-first rows. Do not rely on array index identity. - Keep `data` referentially stable. Avoid creating a fresh array in the table options getter unless the table is intentionally rebuilt. - Define columns with `satisfies ColumnDef<Row>[]`. - Give accessor columns stable ids, especially when sorting, hiding, or persisted preferences are involved. - Use `renderComponent` for reusable header and cell components. - Include only row models the UI uses: core always, sorted/filter/pagination only when the surface needs them. ## Controlled State - Control only state Epicenter owns externally, such as sorting, global filter, column visibility, row selection, or pagination. - If an `onXChange` handler is present, the matching `state.get x()` must also be present. - Keep state ownership in one component or handle. Do not split sorting, filters, and pagination across unrelated stores without a reason. ## Rendering - TanStack Table owns row, column, and cell state. `@epicenter/ui/table` owns semantic table markup and styling. - Render headers and cells with `FlexRender`. - Key rows by `row.id` and cells by `cell.id`. - Empty states stay in `ui-design`: when row count is zero, render `Empty.Root` in the table body or surrounding panel. - Add explicit keyboard behavior for clickable rows. A click handler alone is not a row interaction model. - Use TanStack Virtual separately for large lists. Do not treat virtualization as a built-in table feature.
GitHub에서 보기