Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
ca01887
chore: scaffold TanStack Start project
mehdibha Dec 21, 2025
583997e
chore(start): integrate into monorepo with shared biome config
mehdibha Dec 21, 2025
6a9bdc9
chore(biome-config): add @tanstack imports to sort order
mehdibha Dec 21, 2025
fdfe1ba
chore(start): extend shared TypeScript config
mehdibha Dec 21, 2025
4e258fd
chore(start): configure Tailwind, registry styles, and cleanup
mehdibha Dec 21, 2025
b28e9c2
feat(start): add auth, tRPC, and TanStack Query integration
mehdibha Dec 21, 2025
b00832d
feat(start): add layout, marketing components, and theme module
mehdibha Dec 21, 2025
9c0aaba
feat(start): add fonts, prerendering, and update loader pattern
mehdibha Dec 21, 2025
e2536f4
fix(registry): apply font-sans to html and body
mehdibha Dec 21, 2025
4ca150f
feat(start): integrate fumadocs-mdx for documentation
mehdibha Dec 21, 2025
b046d88
feat(start): add docs content and migration plan
mehdibha Dec 21, 2025
40c5baf
feat(start): add toc and hooks for docs module
mehdibha Dec 21, 2025
4b7fad6
feat(start): add mdx-components and stubs for docs module
mehdibha Dec 21, 2025
0bdb215
feat(start): add docs page layout with TOC
mehdibha Dec 21, 2025
516971e
format
mehdibha Dec 21, 2025
9007b71
feat(start): add DocsCopyPage and .md route for raw content
mehdibha Dec 21, 2025
588b1d9
feat(start): add DocsPager for prev/next navigation
mehdibha Dec 21, 2025
ec68154
fix(start): add min-w-0 to prevent content overflow in docs grid
mehdibha Dec 21, 2025
7b99219
feat(start): add CodeBlock and CodeBlockTabs components
mehdibha Dec 21, 2025
13f0b44
feat(start): add PageTabs with URL search params
mehdibha Dec 21, 2025
98c67bc
wip
mehdibha Dec 22, 2025
238d834
wip
mehdibha Dec 22, 2025
be98c0c
feat(start): integrate React Aria router with TanStack Router
mehdibha Dec 22, 2025
53bd759
feat(start): add Demo and Example components with rehype transform
mehdibha Dec 23, 2025
ece9c57
feat(start): add references module for API documentation
mehdibha Dec 23, 2025
fba34dc
chore: regenerate API reference JSON with Prettier formatting
mehdibha Dec 24, 2025
a1250e2
feat(start): add Reference component with Prettier type formatting
mehdibha Dec 24, 2025
75bf0c2
feat(start): add TypePopover and TypeRenderer for interactive API docs
mehdibha Dec 24, 2025
e71f53b
refactor(references): cleanup and fix imports
mehdibha Dec 24, 2025
f68a892
feat(start): add InteractiveDemo with build-time highlighting
mehdibha Dec 25, 2025
a3cae8c
refactor(start): use fumadocs useShiki for dynamic code highlighting
mehdibha Dec 25, 2025
5c2162d
feat(start): add Examples component and wrap all component docs
mehdibha Dec 25, 2025
5162ad4
format
mehdibha Dec 25, 2025
3e5f8cc
feat(start): add NotFound page component
mehdibha Dec 25, 2025
3474193
fix(start): fix DynamicPre infinite suspend loop
mehdibha Dec 26, 2025
34944cc
update deps
mehdibha Dec 26, 2025
f0dfb57
fix(docs): fix double /docs in URL when navigating from installation …
mehdibha Dec 26, 2025
67e9b6b
refactor(start): rename layout.tsx to page-layout.tsx
mehdibha Dec 26, 2025
5882973
feat(start): add last-update component with fumadocs plugin
mehdibha Dec 26, 2025
1cb7d9b
feat(start): add document head metadata to docs routes
mehdibha Dec 26, 2025
7e1bcb0
chore: add CLAUDE.md with migration guidelines
mehdibha Dec 26, 2025
0fe6f09
feat(start): add dynamic OG image generation
mehdibha Dec 27, 2025
c5d6df0
feat(start): add search command and docs layout
mehdibha Dec 27, 2025
c239c63
feat(start): add mobile navigation to header
mehdibha Dec 28, 2025
f6b4649
feat(start): add docs sidebar and user profile menu
mehdibha Dec 28, 2025
1232008
feat(start): integrate DocsSidebar into docs layout
mehdibha Dec 28, 2025
e254c83
refactor(start): move docs under pathless _app layout
mehdibha Dec 28, 2025
9cf5449
feat(start): add login page
mehdibha Dec 28, 2025
fed5725
refactor(auth): use getRequestHeaders for cleaner session retrieval
mehdibha Dec 29, 2025
eb3aa75
refactor(auth): use server middleware for auth checks
mehdibha Dec 29, 2025
111a79f
feat(start): add llms.txt for LLM context
mehdibha Dec 29, 2025
8ba70e6
feat(start): add dotUI favicon and meta assets
mehdibha Dec 29, 2025
0b82f46
refactor(start): use data-wordmark for logo visibility control
mehdibha Dec 29, 2025
f9d0147
style: minor typography and utility improvements
mehdibha Dec 29, 2025
7378e0e
feat(start): add components page with hybrid preview rendering
mehdibha Dec 29, 2025
d650ae2
feat(start): add /view route for block previews with style support
mehdibha Dec 29, 2025
9f953c2
feat(start): add legal pages (privacy policy, terms of service)
mehdibha Dec 30, 2025
d43140f
fix(registry): use static imports for icon libraries in Vite
mehdibha Dec 30, 2025
2cc5898
feat(start): add blocks page and reorganize modules
mehdibha Dec 30, 2025
6c1ee17
remove legacy nextjs
mehdibha Dec 30, 2025
d9dcd62
wip
mehdibha Jan 1, 2026
5392ed6
fix(www): fix production build issues
mehdibha Jan 2, 2026
625c3df
feat(www): restore OG image generation with @vercel/og
mehdibha Jan 2, 2026
3e370bb
fix(www): fix Tailwind warnings in OG image generation
mehdibha Jan 2, 2026
40b0eee
feat(www): enable processed markdown for docs copy feature
mehdibha Jan 2, 2026
2397131
fix(www): filter search param URLs from prerendering
mehdibha Jan 2, 2026
73ac9e5
fix(www): suppress Vite bundler warnings for node_modules
mehdibha Jan 2, 2026
3feda4d
chore: consolidate gitignore files and update patterns
mehdibha Jan 3, 2026
9f704fd
chore(www): remove rollup-plugin-visualizer
mehdibha Jan 3, 2026
4ac7ab8
fix(www): resolve lint errors and clean up unused code
mehdibha Jan 3, 2026
db13195
chore(biome-config): clean up lint rules and remove next-js config
mehdibha Jan 3, 2026
29bed7e
chore: add clean scripts to www and tailwind packages
mehdibha Jan 3, 2026
2907da6
fix: replace vinxi references with nitro
mehdibha Jan 3, 2026
f900c6d
update gitignore
mehdibha Jan 3, 2026
687bc56
chore: clean up config and remove db-migrate workflow
mehdibha Jan 3, 2026
b1c12a8
update ci
mehdibha Jan 3, 2026
c218823
format
mehdibha Jan 3, 2026
32ce267
update port config
mehdibha Jan 3, 2026
f81fa3b
update ci
mehdibha Jan 3, 2026
085e3d0
feat: add format/lint/check scripts to all packages
mehdibha Jan 4, 2026
cd96ab5
refactor: switch to root-level biome execution
mehdibha Jan 4, 2026
4bcb9a5
chore: format generated files after registry build
mehdibha Jan 4, 2026
0a37092
docs: update CONTRIBUTING.md to reflect current project structure
mehdibha Jan 4, 2026
5f70b49
chore: sync tailwind package versions for changesets
mehdibha Jan 4, 2026
040b9b4
chore: update changesets dependencies
mehdibha Jan 4, 2026
57667a4
format
mehdibha Jan 4, 2026
e13c5eb
update build registry script
mehdibha Jan 4, 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
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .changeset/brave-lions-dance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"tailwindcss-autocontrast": patch
"tailwindcss-with": patch
---

tailwindcss-autocontrast: Improved autocontrast plugin with updated type definitions and configuration

tailwindcss-with: Initial release of class-based conditional variants plugin
38 changes: 19 additions & 19 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": ["@changesets/changelog-github", { "repo": "mehdibha/dotui" }],
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"www",
"@dotui/ts-config",
"@dotui/api",
"@dotui/auth",
"@dotui/db",
"@dotui/registry",
"@dotui/colors",
"@dotui/style-system",
"@dotui/types"
]
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": ["@changesets/changelog-github", { "repo": "mehdibha/dotui" }],
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"www",
"@dotui/ts-config",
"@dotui/api",
"@dotui/auth",
"@dotui/db",
"@dotui/registry",
"@dotui/colors",
"@dotui/types",
"@dotui/core"
]
}
24 changes: 12 additions & 12 deletions .github/version-script-beta.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ import fs from "node:fs";

const pkgJsonPath = "packages/tailwindcss-autocontrast/package.json";
try {
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath));
exec("git rev-parse --short HEAD", (err, stdout) => {
if (err) {
console.log(err);
process.exit(1);
}
const [major, minor, patch] = pkg.version.split(".").map(Number);
pkg.version = `${major}.${minor}.${patch + 1}-beta.${stdout.trim()}`;
fs.writeFileSync(pkgJsonPath, `${JSON.stringify(pkg, null, "\t")}\n`);
});
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath));
exec("git rev-parse --short HEAD", (err, stdout) => {
if (err) {
console.log(err);
process.exit(1);
}
const [major, minor, patch] = pkg.version.split(".").map(Number);
pkg.version = `${major}.${minor}.${patch + 1}-beta.${stdout.trim()}`;
fs.writeFileSync(pkgJsonPath, `${JSON.stringify(pkg, null, "\t")}\n`);
});
} catch (error) {
console.error(error);
process.exit(1);
console.error(error);
process.exit(1);
}
24 changes: 12 additions & 12 deletions .github/version-script-next.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ import fs from "node:fs";

const pkgJsonPath = "packages/tailwindcss-autocontrast/package.json";
try {
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath));
exec("git rev-parse --short HEAD", (err, stdout) => {
if (err) {
console.log(err);
process.exit(1);
}
const [major, minor, patch] = pkg.version.split(".").map(Number);
pkg.version = `${major}.${minor}.${patch + 1}-next.${stdout.trim()}`;
fs.writeFileSync(pkgJsonPath, `${JSON.stringify(pkg, null, "\t")}\n`);
});
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath));
exec("git rev-parse --short HEAD", (err, stdout) => {
if (err) {
console.log(err);
process.exit(1);
}
const [major, minor, patch] = pkg.version.split(".").map(Number);
pkg.version = `${major}.${minor}.${patch + 1}-next.${stdout.trim()}`;
fs.writeFileSync(pkgJsonPath, `${JSON.stringify(pkg, null, "\t")}\n`);
});
} catch (error) {
console.error(error);
process.exit(1);
console.error(error);
process.exit(1);
}
34 changes: 5 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ on:
merge_group:

jobs:
lint:
check:
runs-on: ubuntu-latest
name: Run lint
name: Run checks
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup

- run: pnpm lint
- run: pnpm check

tsc:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -70,7 +70,7 @@ jobs:

check-registry:
runs-on: ubuntu-latest
name: Check registry generated files
name: Check registry
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -88,28 +88,4 @@ jobs:
git diff packages/core/src/__registry__/
exit 1
fi
echo "Registry files are in sync."

check-migrations:
runs-on: ubuntu-latest
name: Check database migrations
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup

- name: Generate migrations
run: pnpm --filter=@dotui/db generate
env:
POSTGRES_URL: "postgresql://fake:fake@localhost:5432/fake"

- name: Check for uncommitted migrations
run: |
if [[ -n $(git status --porcelain packages/db/drizzle/) ]]; then
echo "Error: Database migrations are out of sync!"
echo "Please run 'pnpm --filter=@dotui/db generate' and commit the changes."
git status packages/db/drizzle/
exit 1
fi
echo "Database migrations are in sync."
echo "Registry files are in sync."
27 changes: 0 additions & 27 deletions .github/workflows/db-migrate.yml

This file was deleted.

55 changes: 24 additions & 31 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,44 +1,37 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
# Dependencies
node_modules
.pnp
.pnp.js

# testing
coverage

# next.js
.next/
out/
next-env.d.ts

# production
# Build outputs
dist
dist-ssr
build
.output
.cache

# misc
.DS_Store
*.pem
# Frameworks & tools
.tanstack
.nitro
.wrangler
.turbo
.source

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

# local env files
# Environment
.env
.env*.local
*.local

# vercel
.vercel

# typescript
dist/
.cache
# Logs
*.log
.pnpm-debug.log*

# turbo
.turbo
# OS
.DS_Store
Thumbs.db

# fumadocs
.source
# Security
*.pem
93 changes: 48 additions & 45 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,47 +1,50 @@
{
"eslint.workingDirectories": [
"www",
{
"pattern": "packages/*/"
},
{
"pattern": "config/*/"
}
],
"tailwindCSS.experimental.classRegex": [
["([\"'`][^\"'`]*.*?[\"'`])", "[\"'`]([^\"'`]*).*?[\"'`]"]
],
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[css]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[graphql]": {
"editor.defaultFormatter": "biomejs.biome"
},
"typescript.tsdk": "node_modules/typescript/lib",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"emmet.showExpandedAbbreviation": "never",
"editor.codeActionsOnSave": {
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
},
"tailwindCSS.experimental.classRegex": [["([\"'`][^\"'`]*.*?[\"'`])", "[\"'`]([^\"'`]*).*?[\"'`]"]],
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[css]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[graphql]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[mdx]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.tsdk": "node_modules/typescript/lib",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"emmet.showExpandedAbbreviation": "never",
"editor.codeActionsOnSave": {
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
}
Loading