Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
235 commits
Select commit Hold shift + click to select a range
c4d6744
chore: add vscode settings
amanx5 Apr 15, 2026
a8f4dce
feat(utils): add StringKeysOf type helper
amanx5 Apr 28, 2026
8feeb67
feat(utils): add uuid helper and adopt workspace build
amanx5 May 15, 2026
65dd530
refactor(grid-core): move plugin column generators to shared packages
amanx5 May 15, 2026
fb81c93
feat(react-grid)!: extract plugins and rework store API
amanx5 May 15, 2026
4396715
feat(react-grid-ag): add AG Grid plugin package
amanx5 May 15, 2026
94c1f28
feat(react-grid-ant): add Ant Design plugin package
amanx5 May 15, 2026
8d4d270
feat(react-grid-mantine): add Mantine plugin package
amanx5 May 15, 2026
5d158ca
feat(react-grid-mui): add MUI plugin package
amanx5 May 15, 2026
e82204d
feat(react-grid-prime): add PrimeReact plugin package
amanx5 May 15, 2026
7202ce6
feat(react-grid-tanstack): add TanStack Table plugin package
amanx5 May 15, 2026
03d999b
feat(react-grid-examples): add shared React example utilities
amanx5 May 15, 2026
4d14446
feat(grid-examples-shared): add framework-agnostic example utilities
amanx5 May 15, 2026
a6ef6ee
feat(grid-plugins-shared): add shared plugin column generator utilities
amanx5 May 15, 2026
307e529
feat(grid-docs): add shared documentation utilities
amanx5 May 15, 2026
92083b5
feat(vanilla-grid): add vanilla JS grid package
amanx5 May 15, 2026
fe1788b
feat(vanilla-grid-ag): add AG Grid vanilla plugin
amanx5 May 15, 2026
53c7fe6
feat(vanilla-grid-tanstack): add TanStack vanilla plugin
amanx5 May 15, 2026
caf39cb
feat(vanilla-grid-examples): add vanilla example utilities
amanx5 May 15, 2026
d173f71
feat(vue-grid): add Vue grid package
amanx5 May 15, 2026
e104607
feat(vue-grid-ag): add AG Grid Vue plugin
amanx5 May 15, 2026
83f1f7a
feat(vue-grid-examples): add Vue example utilities
amanx5 May 15, 2026
b8c2a64
feat(examples/react-grid/ag): add AG Grid React example app
amanx5 May 15, 2026
7dff244
feat(examples/react-grid/ant): add Ant Design React example app
amanx5 May 15, 2026
be21f35
feat(examples/react-grid/mantine): add Mantine React example app
amanx5 May 15, 2026
2df692f
feat(examples/react-grid/mui): add MUI React example app
amanx5 May 15, 2026
1713b72
feat(examples/react-grid/prime): add PrimeReact example app
amanx5 May 15, 2026
48711cb
feat(examples/react-grid/tanstack): add TanStack React example app
amanx5 May 15, 2026
f3ec791
feat(examples/vanilla-grid/ag): add AG Grid vanilla example app
amanx5 May 15, 2026
c6c0867
feat(examples/vanilla-grid/tanstack): add TanStack vanilla example app
amanx5 May 15, 2026
2ebc115
feat(examples/vue-grid/ag): add AG Grid Vue example app
amanx5 May 15, 2026
c3d7b55
feat(docs): add Next.js documentation site
amanx5 May 15, 2026
9e6964e
feat(scripts): add package and example build scripts
amanx5 May 15, 2026
02469de
chore: expand pnpm workspace for new packages
amanx5 May 15, 2026
fc01aa7
chore: update lockfile for new packages
amanx5 May 15, 2026
1890536
chore: update root package scripts
amanx5 May 15, 2026
8c10058
chore: extend eslint config for docs and examples
amanx5 May 15, 2026
ae2a3ae
chore: add root tsconfig paths
amanx5 May 15, 2026
c0dafe3
chore: extend repo metadata
amanx5 May 15, 2026
85f726a
chore: update gitignore
amanx5 May 15, 2026
192e143
chore: update vscode settings
amanx5 May 15, 2026
430983b
chore(docs): add favicon asset
amanx5 May 15, 2026
7fd8fb7
chore: remove smoke tests
amanx5 May 18, 2026
8cbd6d5
chore: drop redundant #* paths from package tsconfigs
amanx5 May 23, 2026
7fcd4e4
chore: scope package tsconfigs with include src
amanx5 May 23, 2026
e5888b0
ci: validate commit messages in GitHub Actions only
amanx5 May 23, 2026
f2db635
feat(examples): add PersistentBroadcastChannel class
amanx5 May 25, 2026
32f2425
chore(examples): bump typescript to 6.0.3
amanx5 May 25, 2026
6cd0b1f
refactor: move ColDefAg to grid-ag-shared package
amanx5 May 25, 2026
717b6d3
fix(vue-grid-examples): use vue-tsc for typechecking
amanx5 May 25, 2026
da1d2c8
feat(utils): add ensureError helper
amanx5 May 25, 2026
bb3df4a
chore(scripts): add support for building all packages
amanx5 May 25, 2026
541af87
fix(vue-grid/ag): stop AG Grid deprecation warnings from GridOptions …
amanx5 May 26, 2026
1d9f897
refactor(examples): use `ensureError` helper instead of `toExampleError`
amanx5 May 26, 2026
8ac60d2
chore(eslint): add glob patterns to detect multiple tsconfig files
amanx5 May 26, 2026
036fe57
refactor(vanilla-grid): rename `createGridStore` to `createGridStoreC…
amanx5 May 26, 2026
cce2828
refactor(vanilla-grid-examples): render not found and index page usin…
amanx5 May 26, 2026
08f49b6
feat(vanilla-grid-examples): add function subscribeColorScheme
amanx5 May 26, 2026
c39dadc
feat(examples/vanilla-grid-ag): add dark mode support and simplify re…
amanx5 May 26, 2026
54f0c97
feat(grid-core): add store lifecycle methods (beforeInit, init, destroy)
amanx5 May 28, 2026
c59b87c
feat(utils): add path-based deepEqual and split object utils
amanx5 May 28, 2026
a0a7ed8
refactor(examples): use * for @jsoc deps and linkWorkspacePackages
amanx5 May 28, 2026
9e792e9
refactor(vanilla-grid-examples): rename `examples` property in router…
amanx5 May 28, 2026
4000e1c
refactor(vanilla-grid): pass columnParams to ChildGridToggle instead …
amanx5 May 28, 2026
3c842b2
refactor(vanilla-grid): add VanillaGridStore and options-based create…
amanx5 May 28, 2026
cb51cdc
refactor(examples/vanilla-grid): adopt GridStoreOptions API in ag and…
amanx5 May 28, 2026
b894d5d
refactor(examples): rename shoeJSON to basicJSON
amanx5 May 29, 2026
307dbf7
fix(utils): use # subpath import in deepEqual for Turbopack
amanx5 May 29, 2026
3b0e0d9
refactor(vue-grid): implement GridStoreProvider as generic SFC
amanx5 May 29, 2026
1bf7b01
fix(vue-grid-ag): use Vue cell renderer component for ChildGridToggle
amanx5 May 29, 2026
49bbc03
fix(examples): add css reset
amanx5 May 29, 2026
8d7e33f
chore(examples): add descriptive document titles to all example apps
amanx5 May 30, 2026
aa2aacf
fix(examples/vanilla-grid): catch and show errors in local data example
amanx5 May 30, 2026
5df29c4
fix(examples): add no rows/columns messages in tanstack table
amanx5 May 30, 2026
1e92e50
refactor(examples): centralize shared CSS and error UI styling
amanx5 May 30, 2026
c88f3f5
fix(vue-grid): recreate store and remount AG Grid when example data c…
amanx5 May 30, 2026
a972748
chore: add commitlint script and document checks in AGENTS.md
amanx5 May 30, 2026
5d2c893
fix(docs): update docs as per new packages
amanx5 May 31, 2026
b879675
fix(vue-grid): add tsdown config to build generic SFC
amanx5 May 31, 2026
ebad4ec
fix(ci): remove duplicate pnpm version from commitlint workflow
amanx5 May 31, 2026
f68fe84
chore: update pnpm-lock.yaml
amanx5 May 31, 2026
bbd7c9a
fix(examples/react-grid/ant): remove bg color behind "No data" text
amanx5 May 31, 2026
1894dc5
feat(vue-grid-tanstack): add TanStack Table Vue plugin
amanx5 May 31, 2026
c76fb65
feat(grid-docs): register vue-grid-tanstack plugin
amanx5 May 31, 2026
4a9e5a0
feat(examples/vue-grid/tanstack): add TanStack Table Vue example app
amanx5 May 31, 2026
39905a5
fix(docs): add tanstack in vue-grid plugin icons map
amanx5 May 31, 2026
bc9aaf7
chore: update pnpm-lock.yaml
amanx5 May 31, 2026
cbdfedd
feat(grid-examples-shared): add CSS modules for examples
amanx5 Jun 1, 2026
909a10a
refactor(vanilla-grid): use jsx-dom instead of lit-html in comps
amanx5 May 31, 2026
5d73a8f
refactor(vanilla-grid-examples): use jsx-dom instead of lit-html in c…
amanx5 Jun 3, 2026
1ab23e8
refactor(vanilla-grid-ag): remove lit-html usage
amanx5 Jun 3, 2026
94074b8
refactor(vanilla-grid-tanstack): remove lit-html usage
amanx5 Jun 3, 2026
70ddd99
chore: update vscode settings to prefer non relative imports
amanx5 Jun 3, 2026
1be1f6a
chore: update pnpm-lock.yaml
amanx5 Jun 9, 2026
e741510
chore: use `#*` instead of `#/*` in root package subpath imports
amanx5 Jun 9, 2026
bfd6270
chore(eslint): allow .vue extension in subpath imports
amanx5 Jun 9, 2026
bbda432
refactor(grid-docs): rename framework metadata to adapter metadata
amanx5 Jun 9, 2026
5ace0f3
refactor(scripts): use adapter metadata in build-examples script
amanx5 Jun 9, 2026
32f3cc5
refactor(docs): rename framework selection to adapter selection
amanx5 Jun 9, 2026
140800f
refactor(grid-core): parametrize GridSchema and add store to schema API
amanx5 Jun 9, 2026
37575f0
refactor(grid-examples-shared): reorganize shared example data and ro…
amanx5 Jun 9, 2026
0bac613
refactor(grid-plugins-shared): update column generators for typed params
amanx5 Jun 9, 2026
e24299f
refactor(react-grid): remove GridStoreProvider and pass columnParams …
amanx5 Jun 9, 2026
78f4b12
refactor(react-grid-plugins): pass columnParams to ChildGridToggle
amanx5 Jun 9, 2026
5fea429
refactor(react-grid-examples): add router and example modules
amanx5 Jun 9, 2026
ae704fa
refactor(vanilla-grid): update ChildGridToggle for columnParams API
amanx5 Jun 9, 2026
c181447
refactor(vanilla-grid-ag): type ChildGridToggle cell renderer with Pl…
amanx5 Jun 9, 2026
84ea6ee
chore(vanilla-grid-tanstack): update tsconfig for package changes
amanx5 Jun 9, 2026
7c3c343
refactor(vanilla-grid-examples): add router and example modules
amanx5 Jun 9, 2026
35a00af
refactor(vue-grid): remove GridStoreProvider and rework ChildGridToggle
amanx5 Jun 9, 2026
e2b947d
feat(vue-grid-ag): add createGridStore and update ChildGridToggle ren…
amanx5 Jun 9, 2026
59d6f71
refactor(vue-grid-tanstack): align column generators with typed params
amanx5 Jun 9, 2026
f28b057
refactor(vue-grid-examples): add router and example modules
amanx5 Jun 9, 2026
df29c66
refactor(examples/react-grid): migrate example apps to new router API
amanx5 Jun 9, 2026
723aa92
refactor(examples/vanilla-grid): migrate example apps to new router API
amanx5 Jun 10, 2026
804b482
refactor(examples/vue-grid): migrate example apps to new router API
amanx5 Jun 9, 2026
a845719
chore: update pnpm-lock.yaml
amanx5 Jun 9, 2026
c3a142c
refactor(grid-examples): group packages under grid-examples and renam…
amanx5 Jun 10, 2026
9c0f03b
chore(docs): include MDX files in tsconfig for IDE path alias resolution
amanx5 Jun 17, 2026
ed40b83
chore: update description of adapter packages
amanx5 Jun 18, 2026
b2f5653
refactor(docs): reorganize content routes and sidebar
amanx5 Jun 23, 2026
92d9490
refactor(docs): simplify docs shell and shared components
amanx5 Jun 23, 2026
c1be062
refactor(docs): update examples and playground flows
amanx5 Jun 23, 2026
4c7a964
refactor(docs): evaluate dynamic docs content at runtime
amanx5 Jun 21, 2026
5050478
refactor(docs): render dynamic tokens without MDX recompilation
amanx5 Jun 23, 2026
3ec1620
chore(docs): use webpack for development
amanx5 Jun 25, 2026
7e124c9
feat(grid-docs): add utility for example source manifest file url
amanx5 Jun 26, 2026
7a0cbd8
feat(scripts): update script to emit example source manifest file
amanx5 Jun 26, 2026
d52d660
feat(docs): add FileIcon component and file-icons folder
amanx5 Jul 1, 2026
6ae4ab5
feat(docs): add FileExplorer component
amanx5 Jul 1, 2026
5faa6a5
feat(docs): add CodeExplorer and use in Example component
amanx5 Jul 1, 2026
e55298d
style(grid-examples): simplify tanstack table base styles
amanx5 Jun 28, 2026
724fb1a
docs: improve conventional commits table format and descriptions
amanx5 Jun 28, 2026
47db18c
feat(grid-docs): add `getExampleAppGitHubUrl`
amanx5 Jun 29, 2026
0f6017d
refactor(docs): change renderer based preview to provider based
amanx5 Jun 29, 2026
4ed856b
feat(grid-docs): implement snippet extraction from example manifest
amanx5 Jun 30, 2026
b9cae31
docs(examples): add snippet markers to basic examples
amanx5 Jun 30, 2026
8b41daa
feat(docs): implement dynamic snippet rendering and refactor code exp…
amanx5 Jun 30, 2026
a5b0668
refactor(examples): alias basicJSON to data in all basic examples
amanx5 Jul 1, 2026
5320796
refactor(examples): standardize ag-grid wrapper aliases across framew…
amanx5 Jul 1, 2026
c7b3f3d
refactor(examples/react-grid/ant): remove AntTable wrapper
amanx5 Jul 1, 2026
8a5e688
refactor(examples): rename SimpleTable to TanstackTable
amanx5 Jul 1, 2026
b9e5531
fix(deps): inject @types/react into react-error-boundary
amanx5 Jul 1, 2026
def8248
feat(scripts): make build-examples script skip up to date builds
amanx5 Jul 1, 2026
b16983a
fix(grid-docs): use correct language for snippets inside vue script b…
amanx5 Jul 1, 2026
5c0a297
fix(docs): fix empty line height and grid row stretching in code blocks
amanx5 Jul 1, 2026
17e937d
refactor(docs): improve type safety for code languages and snippets
amanx5 Jul 2, 2026
3abad32
refactor(docs): add custom scrollbar to file explorer
amanx5 Jul 2, 2026
153ed37
style(docs): prevent text selection in Select component
amanx5 Jul 2, 2026
2106b00
refactor(docs): extract syntax highlighting hook from CodeBlock compo…
amanx5 Jul 2, 2026
c6e0f35
refactor(docs): redesign CodeExplorer to use header instead of sidebar
amanx5 Jul 2, 2026
c84007d
refactor(scripts): decouple build and manifest steps in build-examples
amanx5 Jul 5, 2026
acbf318
feat(scripts): add Vue SFC transpilation and structured source files …
amanx5 Jul 5, 2026
e984968
refactor(grid-docs): add source code variants and Vue SFC support to …
amanx5 Jul 5, 2026
ef7f7ba
refactor(docs): adopt source code variants for JS/TS language switching
amanx5 Jul 5, 2026
3b9d1e5
refactor(grid-docs): add explicit return type to `getExampleMetadata`
amanx5 Jul 7, 2026
abe93d2
feat(scripts): include dependency packages in examples build cache check
amanx5 Jul 7, 2026
8676c7d
feat(scripts): add dry-run option to build-examples script
amanx5 Jul 7, 2026
c3d6ff7
refactor(docs): add height-fill-page css variable to replace utility …
amanx5 Jul 8, 2026
a207b45
refactor(docs): add minimal viewport ui in `ExamplePreview`
amanx5 Jul 8, 2026
9099488
refactor(docs): ensure code explorer layout always visible even if empty
amanx5 Jul 8, 2026
9830f7a
feat(docs): add code explorer in examples viewer
amanx5 Jul 8, 2026
d083f70
style(grid-examples-core): add padding in remote data examples css
amanx5 Jul 10, 2026
636f640
feat(docs): make code explorer sidebar resizable
amanx5 Jul 10, 2026
5d15c68
feat(grid-docs): add language preference related utilities
amanx5 Jul 10, 2026
215afd2
refactor(docs): remove selectionContext from CodeExplorer
amanx5 Jul 10, 2026
6c47e96
feat(docs): add activity bar in code explorer
amanx5 Jul 11, 2026
3b9b146
refactor(examples): move library component import into import snippet…
amanx5 Jul 11, 2026
7192503
refactor(docs): pass dynamic content scope always irrespective of pag…
amanx5 Jul 12, 2026
437dc59
feat(grid-docs): add parsePackageJson utility
amanx5 Jul 13, 2026
aac9fd1
refactor(scripts): use parsePackageJson utility
amanx5 Jul 13, 2026
3e486fb
refactor(docs): remove index page card from Overview
amanx5 Jul 13, 2026
229dff5
refactor(docs): club playground context, provider and hook in a singl…
amanx5 Jul 15, 2026
fb876b0
refactor(docs): colocate example preview context, provider and vaslid…
amanx5 Jul 15, 2026
8590c92
refactor(docs): simplify docs params utility and usage
amanx5 Jul 15, 2026
82e961c
refactor(docs): move site configuration to config.ts
amanx5 Jul 15, 2026
511dfa5
refactor(docs): move icons directory to src root
amanx5 Jul 15, 2026
fe518c5
feat(grid-docs): add utilities to get list of all adapters and plugin…
amanx5 Jul 15, 2026
a25ff7d
refactor(docs): remove Root.tsx file
amanx5 Jul 15, 2026
3189eb3
style(docs): remove border radius from preview window
amanx5 Jul 15, 2026
75fbd86
fix(docs): disable framework selectors on non-documentation pages
amanx5 Jul 16, 2026
4da0674
chore: add command for quick commit message linting
amanx5 Jul 16, 2026
cb53be6
refactor(docs): strongly type Select component props with generic par…
amanx5 Jul 16, 2026
a328207
refactor(docs): add `getDefaultPluginId` helper
amanx5 Jul 17, 2026
4f71d5e
docs(docs): update stale comment in useValidateExampleUrl
amanx5 Jul 17, 2026
3c88be6
chore: upgrade commitlint to v21
amanx5 Jul 17, 2026
f5518e4
refactor(docs): add separators to club plugin docs menus by framework…
amanx5 Jul 17, 2026
ed6f24a
docs(docs): configure page title template
amanx5 Jul 17, 2026
ae940c6
feat(docs): add support for conditions list in `If` component
amanx5 Jul 17, 2026
e3a8a48
feat(docs): add peer deps block in installation page
amanx5 Jul 17, 2026
2bced36
docs(docs): add FrameworkGrid/PluginGrid components and initialize gu…
amanx5 Jul 17, 2026
0406612
docs(docs): update introduction and getting started pages
amanx5 Jul 17, 2026
9dfe98a
fix(docs): store docsparams in cookies to persist them across navigat…
amanx5 Jul 17, 2026
01f4cd6
refactor(docs): convert "Example" and "If" to server components
amanx5 Jul 18, 2026
7dac901
refactor(docs): add useWindow hook
amanx5 Jul 18, 2026
b2145ea
refactor(docs): improve docsParams synchronization and sidebar selection
amanx5 Jul 18, 2026
a9514d5
feat(docs): add skeleton loading state for adapter and plugin selectors
amanx5 Jul 18, 2026
00831fc
feat(docs): add theme toggle skeleton
amanx5 Jul 18, 2026
35b47c3
fix(docs): fix home link active state styling in navbar
amanx5 Jul 18, 2026
971bdb6
refactor(docs): consolidate card components
amanx5 Jul 19, 2026
c56a3ea
refactor(docs): abstract example pickers with shared layout
amanx5 Jul 19, 2026
f1defb9
style(docs): center example cards and maintain consistent width
amanx5 Jul 23, 2026
a5d2fa9
refactor(docs): simplify example page and breadcrumbs
amanx5 Jul 19, 2026
bc2266f
feat(utils): add string utilities for checking and joining non empty …
amanx5 Jul 21, 2026
7e0a247
feat(utils): add utility types
amanx5 Jul 21, 2026
71b0390
feat(docs): implement automated API reference generation engine
amanx5 Jul 21, 2026
def366d
feat(docs): implement automated multi-package API reference architecture
amanx5 Jul 21, 2026
dc24256
refactor(docs): add missing type imports required by SvgIcon type
amanx5 Jul 23, 2026
69bd673
docs: add utility to get github repo link and remove hardcoded links
amanx5 Jul 23, 2026
0dacd39
refactor(docs): rename `get-api-exports` to `api-exports`
amanx5 Jul 24, 2026
d3a0553
refactor(docs): add `getGroupedApiExports` DRY utility
amanx5 Jul 24, 2026
5792355
fix(docs): gracefully handle undefined declarations for unparseable A…
amanx5 Jul 24, 2026
45c3cba
feat(docs): add `Integration` component and content in adapter pages
amanx5 Jul 24, 2026
bd7824e
feat(docs): add content in plugin pages
amanx5 Jul 24, 2026
add6f91
refactor(docs): rename file `api-package-name` to `api-packages`
amanx5 Jul 24, 2026
65d2eb1
refactor: use AdapterIdList to preserve strict tuple typing
amanx5 Jul 24, 2026
234df25
refactor(docs): separate api packages by their category in sidebar
amanx5 Jul 24, 2026
609d67a
refactor(docs): separate api plugin packages by adapter names
amanx5 Jul 25, 2026
ed763d9
refactor(docs): split api definition and page generation logic
amanx5 Jul 26, 2026
1edb278
refactor(docs): replace MDX compilation with React components for API…
amanx5 Jul 26, 2026
c459e05
refactor(docs): revert to MDX compilation for API pages
amanx5 Jul 26, 2026
8977a49
perf(docs): reuse singleton Project and hoist apiPageMap
amanx5 Jul 26, 2026
039fcaa
perf(docs): precompute declarationKind for API exports
amanx5 Jul 26, 2026
517b4d3
perf(docs): short-circuit MDX compile for unresolved API pages
amanx5 Jul 26, 2026
ddb3ddf
perf(docs): replace deep recursive AST cloning with targeted mutations
amanx5 Jul 26, 2026
6c1abcc
docs: add API reference sections to plugin pages
amanx5 Jul 26, 2026
317df19
refactor(docs): improve API export type and separate in-progress exp…
amanx5 Jul 27, 2026
78e1285
refactor(docs): migrate to unified DeclarationKind for API pages
amanx5 Jul 27, 2026
5dd819d
docs(docs): add initial content in core guides and minor rephrasing
amanx5 Jul 28, 2026
7cb1e21
chore(typescript): migrate to TypeScript 7.0 with dual-version setup
amanx5 Jul 28, 2026
0c7f7d8
feat(docs): add minimal home page and Inter font
amanx5 Jul 29, 2026
8f4da50
refactor(docs): use canonical tailwind classes
amanx5 Jul 30, 2026
bbb630f
chore(examples): add package names to example apps
amanx5 Jul 30, 2026
6b6349e
chore(changesets): bump version to 2.31.1 and add config to ignore do…
amanx5 Jul 30, 2026
13815d4
chore(release): bump package versions
amanx5 Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
"ignore": ["docs", "example-*"]
}
46 changes: 46 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Commitlint

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Validate commit messages
shell: bash
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
from="${{ github.event.pull_request.base.sha }}"
to="${{ github.event.pull_request.head.sha }}"
else
from="${{ github.event.before }}"
to="${{ github.event.after }}"
if [ "$from" = "0000000000000000000000000000000000000000" ]; then
from="origin/main"
fi
fi
pnpm exec commitlint --from "$from" --to "$to"
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ out

# ---------------VSC---------------
!.vscode/extensions.json

commit-msg.txt
1 change: 0 additions & 1 deletion .husky/commit-msg

This file was deleted.

14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"css.lint.unknownAtRules": "ignore",
"editor.detectIndentation": true,
"editor.insertSpaces": true,
"editor.tabSize": 2,

// settings for the latest VSCode version
"js/ts.tsdk.path": "node_modules/.pnpm/@typescript+typescript6@6.0.2/node_modules/@typescript/old/lib",
"js/ts.preferences.importModuleSpecifier": "non-relative",

// settings for the older VSCode versions
"typescript.tsdk": "node_modules/.pnpm/@typescript+typescript6@6.0.2/node_modules/@typescript/old/lib",
"typescript.preferences.importModuleSpecifier": "non-relative"
}
16 changes: 15 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,28 @@
## Tools

- This project uses `pnpm` as the package manager. Use `pnpm` commands whenever possible.
- Before committing changes, verify that the commit message and body adhere to [commitlint](commitlint.config.ts) rules:
- Draft message: `pnpm commitlint` (pipe the message on stdin)
- Last commit: `pnpm commitlint -- --last`

## Code Style
---

## General Code Practices

### Imports

- Follow import/export sorting rules as specified in the root [ESLint config](eslint.config.ts).
- Avoid using relative paths in imports.
- Use absolute paths in the imports using Node Subpath imports if configured in the project's `package.json`.

### TypeScript

- Avoid using 'any' in types/casts/assertions.

---

## Example Apps

- All the example apps are located in [Examples](examples) grouped by frameworks.
- Examples must be pure NPM packages so that they can be also run directly on environments like CodeSandbox/StackBlitz/etc.
- Use NPM supported version specifiers only. Don't use PNPM "catalog:" or "workspace:" in package.json.
59 changes: 40 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,43 @@

## Commits

- Please follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. This is enforced by [commitlint](https://commitlint.js.org/) via a Husky hook. Refer to examples below:

| Change Type | Commit Type | Example |
| :-------------------- | :---------- | :-------------------------------------------------------------- |
| **New Feature** | `feat` | `feat(core): add new feature` |
| **Bug Fix** | `fix` | `fix(react): resolve bug` |
| **Documentation** | `docs` | `docs: update contribution guide` |
| **Style Changes** | `style` | `style: fix indentation in config` |
| **Code Refactor** | `refactor` | `refactor(core): rename variable for clarity` |
| **Performance** | `perf` | `perf: optimized query execution` |
| **Testing** | `test` | `test(core): add unit tests` or `test: cover edge case in grid` |
| **Build System** | `build` | `build: update tsconfig.json` or `build: modify vite config` |
| **CI/CD** | `ci` | `ci: add github action for tests` |
| **Chore/Maintenance** | `chore` | `chore: update eslint rules` or `chore: add .gitignore entry` |
| **Revert** | `revert` | `revert: "feat: add temporary logging"` |

- This project uses [Husky](https://typicode.github.io/husky/) to run automated checks:
- `pre-commit`: Runs lint checks and formatting via [lint-staged](https://github.com/lint-staged/lint-staged) (using [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/)).
- `commit-msg`: Validates the commit message format using [commitlint](https://commitlint.js.org/).
- Please follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.

- Commit messages are validated in CI with [commitlint](https://commitlint.js.org/) on pull requests and pushes to `main` (see [.github/workflows/commitlint.yml](.github/workflows/commitlint.yml)).
- Locally, [Husky](https://typicode.github.io/husky/) runs `pre-commit` only: lint and format staged files via [lint-staged](https://github.com/lint-staged/lint-staged) (using [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/)).


### Commit Types

Refer to the examples below:

| Commit Type | Change Type | Description | Example |
| :---------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------- |
| `feat` | **New Feature** | Introduces a new feature to the codebase or application. | `feat(core): add new feature` |
| `fix` | **Bug Fix** | Resolves a bug or issue. | `fix(react): resolve bug` |
| `docs` | **Documentation** | Updates or additions to documentation only. | `docs: update contribution guide` |
| `style` | **Style Changes** | Use style if the change only affects code formatting, white space, or visual polish without changing how the feature works. | `style: fix indentation in config`<br>`style: change text color to blue` |
| `refactor` | **Code Refactor** | A code change that neither fixes a bug nor adds a feature (e.g., restructuring code). | `refactor(core): rename variable for clarity` |
| `perf` | **Performance** | A code change specifically aimed at improving performance. | `perf: optimized query execution` |
| `test` | **Testing** | Adding missing tests or correcting existing tests. | `test(core): add unit tests`<br>`test: cover edge case in grid` |
| `build` | **Build System** | Changes affecting the build system, compilers, or external dependencies. | `build: update tsconfig.json`<br>`build: modify vite config` |
| `ci` | **CI/CD** | Changes to CI/CD configuration files and scripts. | `ci: add github action for tests` |
| `chore` | **Chore/Maintenance** | Maintenance tasks, dependency updates, or changes that don't modify source/test files. | `chore: update eslint rules`<br>`chore: add .gitignore entry` |
| `revert` | **Revert** | Reverts a previous commit. | `revert: "feat: add temporary logging"` |

### Commit Scopes

Use the published package name for reusable packages:

- `grid`
- `react-grid`
- `grid-docs`
- `grid-examples`

Use the repository path for internal apps and examples:

- `docs`
- `examples`
- `examples/react-grid/ant`
- `examples/vue/basic`

10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@ JSOC Grid brings the JSOC (JSON Structure Oriented Components) philosophy to dat

With support for multiple popular grid libraries, it enables a plug-and-play architecture where grid configurations are automatically generated based on the JSON data.

## Packages

- [@jsoc/grid-core](https://github.com/jsoc-dev/grid/tree/main/packages/grid-core/README.md)
- [@jsoc/react-grid](https://github.com/jsoc-dev/grid/tree/main/packages/react-grid/README.md)
- [@jsoc/utils](https://github.com/jsoc-dev/grid/tree/main/packages/utils/README.md)

## Documentation

Coming soon!
Expand All @@ -18,10 +12,10 @@ Coming soon!

## Contributing

Please read the [contributing guide](https://github.com/jsoc-dev/grid/blob/main/CONTRIBUTING.md).
Please read the [contributing guide](CONTRIBUTING.md).

---

## License

Licensed under the [MIT license](https://github.com/jsoc-dev/grid/blob/main/LICENSE).
Licensed under the [MIT license](LICENSE).
44 changes: 44 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# others
public/examples
7 changes: 7 additions & 0 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!-- BEGIN:nextjs-agent-rules -->

# This is NOT the Next.js you know

This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.

<!-- END:nextjs-agent-rules -->
1 change: 1 addition & 0 deletions docs/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
31 changes: 31 additions & 0 deletions docs/eslint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
// Ignore statically built examples
"public/examples/**",
// Ignore postcss config
"postcss.config.mjs",
]),

{
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: __dirname,
},
},
},
]);

export default eslintConfig;
37 changes: 37 additions & 0 deletions docs/next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { CONTENT_DIR_BASE_PATH } from "@/config";
import nextra from "nextra";

const withNextra = nextra({
contentDirBasePath: CONTENT_DIR_BASE_PATH,
defaultShowCopyCode: true,
});

export default withNextra({
turbopack: {
rules: {
"*.svg": {
loaders: ["@svgr/webpack"],
as: "*.js",
},
},
resolveAlias: {
"next-mdx-import-source-file": "./src/mdx-components.tsx",
},
},

// mirror turbopack configs for webpack, so that next dev --webpack works too
webpack(config) {
config.module.rules.push({
test: /\.svg$/,
use: ["@svgr/webpack"],
});

config.resolve.fallback = {
...config.resolve.fallback,
// Suppress missing module warnings from ts-morph's internal typescript compiler
"source-map-support": false,
};

return config;
},
});
48 changes: 48 additions & 0 deletions docs/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"name": "docs",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --webpack",
"build": "next build",
"start": "next start",
"lint": "eslint",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@headless-tree/core": "^1.7.0",
"@headless-tree/react": "^1.7.0",
"@headlessui/react": "^2.2.10",
"@jsoc/grid-docs": "workspace:*",
"@jsoc/grid-examples-core": "workspace:*",
"@jsoc/react-grid-examples": "workspace:*",
"@jsoc/utils": "workspace:*",
"@monaco-editor/react": "^4.7.0",
"@radix-ui/react-scroll-area": "^1.2.13",
"@tanstack/react-query": "5.100.11",
"clsx": "^2.1.1",
"cookie": "^2.0.1",
"lucide-react": "^1.8.0",
"next": "16.2.6",
"next-themes": "^0.4.6",
"nextra": "^4.6.1",
"nextra-theme-docs": "^4.6.1",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-resizable-panels": "^4.12.1",
"shiki": "^4.2.0",
"vscode-icons-js": "^11.6.1"
},
"devDependencies": {
"@svgr/webpack": "^8.1.0",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.2.6",
"tailwindcss": "^4",
"ts-morph": "^28.0.0",
"typescript": "catalog:"
}
}
7 changes: 7 additions & 0 deletions docs/postcss.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};

export default config;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Binary file added docs/public/favicon.ico
Binary file not shown.
Loading
Loading