Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _artifacts/domain_map.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ api_discovery_policy:
feature_source: 'node_modules/@tanstack/table-core/dist/features/<feature>/'
ember_entrypoint: 'node_modules/@tanstack/ember-table/declarations/index.d.ts'
angular_entrypoint: 'node_modules/@tanstack/angular-table/dist/types/'
octane_entrypoint: 'node_modules/@tanstack/octane-table/dist/types/index.d.ts'
octane_entrypoint: 'node_modules/@tanstack/octane-table/src/index.d.ts'
fallback: 'If declarations are unavailable, resolve the installed package root and inspect published types; do not open package src/ or substitute v8 / another adapter API.'

coverage:
Expand Down
6 changes: 3 additions & 3 deletions _artifacts/skill_spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ Every skill that discusses APIs must tell the consuming agent how to inspect the
- Stock feature API: node_modules/@tanstack/table-core/dist/features/FEATURE/.
- Ember API: node_modules/@tanstack/ember-table/declarations/index.d.ts (and sibling `declarations/*.d.ts`).
- Angular API: node_modules/@tanstack/angular-table/dist/types/\*.d.ts (bundled public API; do not expect `src/helpers/` under the published package).
- Octane API: node_modules/@tanstack/octane-table/dist/types/index.d.ts (and sibling `dist/types/*.d.ts`).
- Octane API: node_modules/@tanstack/octane-table/src/index.d.ts, the matching `*.tsrx.d.ts` sidecar, and `src/types.ts` (the package intentionally distributes authored source).
- Devtools API: node_modules/@tanstack/FRAMEWORK-table-devtools/dist/index.d.ts or @tanstack/table-devtools/dist/index.d.ts.
- Fuzzy ranking API: node_modules/@tanstack/match-sorter-utils/dist/index.d.ts.

Do not open package `src/` under `node_modules` (it is not published). Do not direct agents to a GitHub main-branch source file when an installed package is available. Installed declarations keep guidance aligned with the consumer package version.
Do not open package `src/` under `node_modules` unless the package intentionally publishes source, as `@tanstack/octane-table` does. Do not direct agents to a GitHub main-branch source file when an installed package is available. Installed declarations and published source keep guidance aligned with the consumer package version.

## Skill writing contract

Expand Down Expand Up @@ -307,7 +307,7 @@ All Devtools skills must emphasize the required non-empty table options.key, lif

### Octane

- The adapter ships compiled JavaScript and declarations. Consumer tooling compiles the application's TSRX components, which use TSRX component bodies plus keyed `@for` loops where appropriate.
- The package distributes authored TypeScript and TSRX; consumer tooling compiles it for the current target and mode. Components use TSRX component bodies plus keyed `@for` loops where appropriate.
- `useTable` stages fresh options for same-render reads, selects `table.state`, and publishes controlled state only from an accepted layout commit; abandoned work cannot notify the store.
- Render `table.Subscribe` and the createTableHook App wrappers as components so each has an independent Octane hook/context scope; never invoke them as plain functions.
- Use `@tanstack/octane-store` for external atoms. External atoms are synchronous owners and take precedence over controlled `options.state`.
Expand Down
2 changes: 1 addition & 1 deletion docs/framework/octane/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ A few things to note:
- `tableFeatures({})` declares which optional features the table uses. Registering only what you need keeps bundles small and gives TypeScript accurate types for the table instance.
- The core row model is always included automatically. Feature row models (sorting, filtering, pagination) are registered as slots directly on the `tableFeatures({...})` call when you need them.
- `table.FlexRender` renders the `header`, `cell`, and `footer` definitions from your columns, whether they are plain values or Octane components.
- Octane compiles your application's authored TSRX for the current client or server target. The Table adapter itself ships compiled JavaScript and declarations.
- Octane compiles your application and the Table adapter's authored TypeScript and TSRX for the current target and mode.

See the full [Basic useTable example](./examples/basic-use-table) for a runnable version with more columns and a footer.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: createTableHook
function createTableHook<TFeatures, TTableComponents, TCellComponents, THeaderComponents>(options): CreateTableHookResult<TFeatures, TTableComponents, TCellComponents, THeaderComponents>;
```

Defined in: createTableHook.tsrx.d.ts:11
Defined in: [createTableHook.tsrx.d.ts:13](https://github.com/TanStack/table/blob/main/packages/octane-table/src/createTableHook.tsrx.d.ts#L13)

## Type Parameters

Expand Down
2 changes: 1 addition & 1 deletion docs/framework/octane/reference/functions/useTable.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: useTable
function useTable<TFeatures, TData, TSelected>(tableOptions, selector?): OctaneTable<TFeatures, TData, TSelected>;
```

Defined in: useTable.tsrx.d.ts:12
Defined in: [useTable.tsrx.d.ts:14](https://github.com/TanStack/table/blob/main/packages/octane-table/src/useTable.tsrx.d.ts#L14)

## Type Parameters

Expand Down
2 changes: 1 addition & 1 deletion docs/framework/octane/reference/variables/Subscribe.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ title: Subscribe
const Subscribe: SubscribeComponent;
```

Defined in: Subscribe.tsrx.d.ts:6
Defined in: [Subscribe.tsrx.d.ts:8](https://github.com/TanStack/table/blob/main/packages/octane-table/src/Subscribe.tsrx.d.ts#L8)
2 changes: 1 addition & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The `@tanstack/preact-table` package works with Preact 10 or newer.

# Octane

The `@tanstack/octane-table` package works with Octane 0.1.21. Configure Octane's compiler integration (for example, `octane()` with Vite) for your application's TSRX components.
The `@tanstack/octane-table` package works with Octane 0.1.21. It publishes authored TypeScript and TSRX, so your application must use Octane's compiler integration (for example, the Octane Vite plugin) to compile the package for its current target and mode.

# Vue

Expand Down
2 changes: 1 addition & 1 deletion examples/octane/aggregation/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/octane/basic-external-atoms/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/octane/basic-subscribe/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/octane/composable-tables/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/octane/pagination/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/octane/row-selection/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@faker-js/faker": "^10.5.0",
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/octane-table": "^9.0.0-beta.66",
"octane": "0.1.21"
},
Expand Down
4 changes: 0 additions & 4 deletions knip.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,11 @@
"packages/octane-table": {
"entry": [
"docs-entry.d.ts!",
"src/index.ts!",
"src/Subscribe.tsrx!",
"src/createTableHook.tsrx!",
"src/useTable.tsrx!",
"src/internal.ts!",
"src/reactivity.ts!",
"src/static-functions.ts!",
"src/flex-render.ts!",
"src/experimental-worker-plugin.ts!",
"tests/type-tests/public-surface.tsx!"
]
},
Expand Down
51 changes: 14 additions & 37 deletions packages/octane-table/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,64 +22,41 @@
"tanstack-intent"
],
"type": "module",
"types": "./dist/types/index.d.ts",
"main": "./dist/server/index.js",
"module": "./dist/client/index.js",
"main": "./src/index.ts",
"module": "./src/index.ts",
"types": "./src/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"browser": "./dist/client/index.js",
"node": "./dist/server/index.js",
"default": "./dist/client/index.js"
},
"./experimental-worker-plugin": {
"types": "./dist/types/experimental-worker-plugin.d.ts",
"browser": "./dist/client/experimental-worker-plugin.js",
"node": "./dist/server/experimental-worker-plugin.js",
"default": "./dist/client/experimental-worker-plugin.js"
},
"./flex-render": {
"types": "./dist/types/flex-render.d.ts",
"browser": "./dist/client/flex-render.js",
"node": "./dist/server/flex-render.js",
"default": "./dist/client/flex-render.js"
},
"./static-functions": {
"types": "./dist/types/static-functions.d.ts",
"browser": "./dist/client/static-functions.js",
"node": "./dist/server/static-functions.js",
"default": "./dist/client/static-functions.js"
"types": "./src/index.d.ts",
"default": "./src/index.ts"
},
"./experimental-worker-plugin": "./src/experimental-worker-plugin.ts",
"./flex-render": "./src/flex-render.ts",
"./static-functions": "./src/static-functions.ts",
"./package.json": "./package.json"
},
"sideEffects": false,
"engines": {
"node": ">=22"
},
"files": [
"dist",
"skills"
"src",
"skills",
"README.md"
],
"octane": {
"hookSlots": {
"manual": [
"dist"
]
}
},
"scripts": {
"clean": "rimraf ./build && rimraf ./dist",
"test:eslint": "eslint ./src --ext .ts",
"test:eslint": "eslint ./src --ext .ts --ignore-pattern src/index.d.ts",
"test:lib": "vitest --passWithNoTests && vitest --config vitest.ssr.config.ts --passWithNoTests",
"test:lib:client": "vitest --passWithNoTests",
"test:lib:ssr": "vitest --config vitest.ssr.config.ts --passWithNoTests",
"test:lib:dev": "pnpm test:lib:client --watch",
"test:types": "tsrx-tsc --noEmit",
"test:build": "publint --strict",
"build": "rimraf ./dist && tsdown && tsrx-tsc -p tsconfig.build.json && node scripts/finalize-types.mjs"
"build": "tsrx-tsc --noEmit"
},
"dependencies": {
"@tanstack/octane-store": "^0.12.0",
"@tanstack/octane-store": "^0.12.1",
"@tanstack/table-core": "workspace:*"
},
"devDependencies": {
Expand Down
69 changes: 0 additions & 69 deletions packages/octane-table/scripts/finalize-types.mjs

This file was deleted.

4 changes: 2 additions & 2 deletions packages/octane-table/skills/getting-started/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ sources:
- 'TanStack/table:packages/octane-table/src/useTable.tsrx'
---

This skill builds on `@tanstack/table-core#core` and `@tanstack/table-core#table-features`. The adapter ships compiled JavaScript; configure Octane's Vite integration to compile the application's TSRX components.
This skill builds on `@tanstack/table-core#core` and `@tanstack/table-core#table-features`. The adapter publishes authored TypeScript and TSRX, so the consuming app must compile it with Octane's integration.

## Setup

Expand Down Expand Up @@ -167,4 +167,4 @@ Source: `examples/octane/basic-use-table`

## API Discovery

Inspect `node_modules/@tanstack/octane-table/dist/types/index.d.ts`, then `useTable.d.ts`, `Subscribe.d.ts`, `createTableHook.d.ts`, or `FlexRender.d.ts`; follow core exports into installed `@tanstack/table-core/dist/`.
Inspect `node_modules/@tanstack/octane-table/src/index.d.ts`, then the specific `*.tsrx.d.ts` sidecars and `types.ts`. This package intentionally ships authored source; follow core exports into installed `@tanstack/table-core/dist/`.
8 changes: 5 additions & 3 deletions packages/octane-table/src/Subscribe.tsrx.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Focused public declaration for the compiled Subscribe client/server modules.
// Keeping this specific to Subscribe avoids a wildcard ambient declaration for
// consumer-authored .tsrx modules.
// Declaration companion for Subscribe.tsrx.
//
// A SPECIFIC module declaration (resolved by relative path), not an ambient
// `declare module '*.tsrx'` — so it types only this module and doesn't pollute a
// consumer's own .tsrx imports. The runtime resolves the authored .tsrx source.
import type { SubscribeComponent } from './types'

export declare const Subscribe: SubscribeComponent
8 changes: 5 additions & 3 deletions packages/octane-table/src/createTableHook.tsrx.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Focused public declaration for the compiled createTableHook client/server
// modules. Keeping this specific to createTableHook avoids a wildcard ambient
// declaration for consumer-authored .tsrx modules.
// Declaration companion for createTableHook.tsrx.
//
// A SPECIFIC module declaration (resolved by relative path), not an ambient
// `declare module '*.tsrx'` — so it types only this module and doesn't pollute a
// consumer's own .tsrx imports. The runtime resolves the authored .tsrx source.
import type { TableFeatures } from '@tanstack/table-core'
import type {
CreateTableHookOptions,
Expand Down
8 changes: 8 additions & 0 deletions packages/octane-table/src/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export * from '@tanstack/table-core'

export * from './FlexRender'
export * from './Subscribe.tsrx'
export * from './createTableHook.tsrx'
export * from './createTableHookContexts'
export * from './types'
export * from './useTable.tsrx'
8 changes: 5 additions & 3 deletions packages/octane-table/src/useTable.tsrx.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Focused public declaration for the compiled useTable client/server modules.
// Keeping this specific to useTable avoids a wildcard ambient declaration for
// consumer-authored .tsrx modules.
// Declaration companion for useTable.tsrx.
//
// A SPECIFIC module declaration (resolved by relative path), not an ambient
// `declare module '*.tsrx'` — so it types only this module and doesn't pollute a
// consumer's own .tsrx imports. The runtime resolves the authored .tsrx source.
import type {
RowData,
TableFeatures,
Expand Down
13 changes: 0 additions & 13 deletions packages/octane-table/tsconfig.build.json

This file was deleted.

Loading
Loading