Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
  •  
  •  
  •  
9 changes: 4 additions & 5 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
"$schema": "https://unpkg.com/@changesets/config@3/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"@repo/docs"
]
}
"ignore": ["@repo/storybook", "@repo/docs"]
}
5 changes: 5 additions & 0 deletions .changeset/css-architecture-refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": minor
---

Overhaul CSS architecture: consumers now own their Tailwind setup. Remove DatumProvider in favor of direct ThemeProvider usage. Theme tokens moved from .theme-alpha scoping to :root/.dark. Remove tw-animate-css and tailwind-scrollbar-hide from package deps. Add ./styles export with "style" condition for PostCSS compatibility.
5 changes: 5 additions & 0 deletions .changeset/fix-publish-lifecycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": patch
---

Fix npm publish lifecycle: restore workspace deps in postpublish instead of postpack so the stripped package.json is used during upload
5 changes: 5 additions & 0 deletions .changeset/fix-published-deps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": patch
---

Fix: republish with workspace dependencies correctly stripped
5 changes: 5 additions & 0 deletions .changeset/peer-deps-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": patch
---

Add peer dependency documentation to all component doc pages, fix incorrect dependency listings, and add lucide-react guidance to installation docs
5 changes: 5 additions & 0 deletions .changeset/per-component-subpath-exports.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": minor
---

Add per-component subpath exports so consumers only install peer deps for components they use (e.g. `@datum-cloud/datum-ui/button`). Includes 50 component entries, grouped exports for date-picker/map/dropzone/chart/form, and updated docs/storybook imports.
22 changes: 22 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"mode": "pre",
"tag": "alpha",
"initialVersions": {
"@repo/docs": "0.0.0",
"@repo/storybook": "0.0.0",
"@repo/config": "0.0.0",
"@datum-cloud/datum-ui": "0.1.0",
"@repo/shadcn": "0.0.0"
},
"changesets": [
"css-architecture-refactor",
"fix-publish-lifecycle",
"fix-published-deps",
"peer-deps-docs",
"per-component-subpath-exports",
"rare-dancers-itch",
"readme-package-managers",
"typography-map-docs",
"uncompiled-css-architecture"
]
}
5 changes: 5 additions & 0 deletions .changeset/rare-dancers-itch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": minor
---

Complete restructure of the datum-ui package from a flat component library into a scalable monorepo-based design system with a two-layer architecture (shadcn primitives + datum components), full test suite, Storybook explorer, and Fumadocs documentation site
5 changes: 5 additions & 0 deletions .changeset/readme-package-managers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": patch
---

Add package README with full component catalog and AI-friendly documentation, update all docs to show multi-package-manager install tabs
5 changes: 5 additions & 0 deletions .changeset/typography-map-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@datum-cloud/datum-ui": minor
---

Add Typography component (Title, Text, Paragraph, Link, List, Blockquote, Code), Map docs and Storybook stories
12 changes: 12 additions & 0 deletions .changeset/uncompiled-css-architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@datum-cloud/datum-ui": minor
---

Ship uncompiled CSS instead of compiled Tailwind output (fixes #16)

- **Breaking:** Grid and NProgress CSS are now separate optional imports (`@datum-cloud/datum-ui/grid`, `@datum-cloud/datum-ui/nprogress`)
- **Breaking:** Requires Tailwind CSS v4.0.7+ (v4.2.1+ recommended)
- Removed CSS compilation from build pipeline — raw CSS files are copied to dist
- Embedded `@source` directive in shipped CSS for zero-config consumer class scanning
- Pre-expanded grid system `@apply` directives into self-contained CSS
- Eliminated duplicate Tailwind stylesheets that caused responsive utility conflicts
81 changes: 81 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: CI

on:
pull_request:
branches: [main]
push:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- run: pnpm install --frozen-lockfile

- run: pnpm lint

typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- run: pnpm install --frozen-lockfile

- run: pnpm turbo typecheck

test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- run: pnpm install --frozen-lockfile

- run: pnpm test

build:
name: Build
runs-on: ubuntu-latest
needs: [lint, typecheck, test]
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- run: pnpm install --frozen-lockfile

- run: pnpm build
4 changes: 2 additions & 2 deletions .github/workflows/publish-datum-ui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
publish-datum-ui:
uses: datum-cloud/actions/.github/workflows/publish-npm-package.yaml@main
permissions:
contents: write # needed to push the version bump commit and tag
id-token: write # needed for npm trusted publishing (OIDC)
contents: write
id-token: write

with:
package-name: "@datum-cloud/datum-ui"
Expand Down
26 changes: 11 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,34 @@ on:
branches:
- main

concurrency: ${{ github.workflow }}-${{ github.ref }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- uses: actions/checkout@v4

- name: Setup Node.js 24.x
uses: actions/setup-node@v4
- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- name: Install Dependencies
run: |
corepack enable
pnpm install --frozen-lockfile
- run: pnpm install --frozen-lockfile

- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Send a Slack notification if a publish happens
if: steps.changesets.outputs.published == 'true'
# You can do something when a publish happens.
run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!"
26 changes: 14 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
.DS_Store
node_modules
.turbo
*.log
.next
dist
dist-ssr
*.local
.env
.cache
server/dist
public/dist
node_modules/
dist/
storybook-static/
.next/
.turbo/
coverage/
*.tsbuildinfo
.env*
.source/

*.tgz

.claude/
CLAUDE.MD
/docs/
4 changes: 1 addition & 3 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
auto-install-peers = true
public-hoist-pattern[]=*storybook*
engine-strict = true
auto-install-peers=true
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v24
v24
63 changes: 56 additions & 7 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,60 @@
{
// TypeScript — use workspace version (not VS Code's bundled one)
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,

// ESLint — flat config support
"eslint.useFlatConfig": true,
"eslint.workingDirectories": [
{
"mode": "auto"
}
{ "pattern": "apps/*" },
{ "pattern": "packages/*" }
],
"typescript.tsdk": "node_modules/typescript/lib",
Comment thread
yahyafakhroji marked this conversation as resolved.
"css.lint.unknownAtRules": "ignore",
"scss.lint.unknownAtRules": "ignore",
"less.lint.unknownAtRules": "ignore"

// Formatting — let ESLint handle it, disable built-in formatters
"editor.formatOnSave": true,
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},

// Tailwind CSS v4
"tailwindCSS.experimental.classRegex": [
["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"],
["cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
],
"tailwindCSS.includeLanguages": {
"typescript": "javascript",
"typescriptreact": "javascript"
},

// File associations
"files.associations": {
"*.css": "tailwindcss"
},

// Search and file exclusions
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/.next": true,
"**/.turbo": true,
"**/storybook-static": true,
"**/coverage": true,
"**/.source": true
},
"files.exclude": {
"**/.turbo": true
},

// Editor defaults for the project
"editor.tabSize": 2,
"editor.insertSpaces": true,

// File nesting for cleaner explorer
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"package.json": "pnpm-lock.yaml, pnpm-workspace.yaml, .nvmrc, turbo.json, .gitignore, .npmrc",
"tsconfig.json": "tsconfig.*.json",
"eslint.config.*": ".eslintignore"
}
}
Loading