Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
49d2db4
refactor: rename packages to src for better structure
3o14 Jan 5, 2026
ced5f8f
feat: add @base-ui/react for headless component primitives
3o14 Jan 5, 2026
f622a58
feat(Button): migrate to @base-ui/react for better accessibility
3o14 Jan 5, 2026
f941e1b
test(Button): add comprehensive test suite with vitest
3o14 Jan 5, 2026
73618bd
fix(storybook): update import paths from packages to src
3o14 Jan 5, 2026
189ad79
feat(Switch): migrate to @base-ui/react for better accessibility
3o14 Jan 5, 2026
9a5b372
test(Switch): add comprehensive test suite
3o14 Jan 5, 2026
8f58f88
feat(Checkbox): migrate to @base-ui/react for better accessibility
3o14 Jan 6, 2026
ba6e367
test(Checkbox): add comprehensive test suite
3o14 Jan 6, 2026
c8283fb
feat(Dialog): migrate to @base-ui/react for better accessibility
3o14 Jan 6, 2026
392727e
test(Dialog): add comprehensive test suite
3o14 Jan 6, 2026
9562939
feat(Dropdown): migrate to @base-ui/react for better accessibility
3o14 Jan 6, 2026
bf97d86
test(Dropdown): add comprehensive test suite
3o14 Jan 6, 2026
d17b66b
feat(TextField): migrate to @base-ui/react for better form handling
3o14 Jan 6, 2026
ec0dc80
test(TextField): add comprehensive test suite
3o14 Jan 6, 2026
5ba781f
test(Text): add comprehensive test suite
3o14 Jan 6, 2026
8012d24
test(Badge): add comprehensive test suite
3o14 Jan 6, 2026
953c8b8
feat: add CSS isolation for Base UI overlay components
3o14 Jan 8, 2026
816695d
feat: add iOS 26+ Safari support for Base UI backdrops
3o14 Jan 8, 2026
5797feb
feat: add Tooltip and Tabs components with Base UI
3o14 Jan 8, 2026
74a28ae
chore: add VS Code file nesting configuration
3o14 Jan 8, 2026
897c314
fix: add missing Tooltip.Trigger for proper hover/click interaction
3o14 Jan 8, 2026
73ec5cd
chore: delete tooltip
3o14 Jan 8, 2026
9057934
refactor: rename Tabs to Tab for better semantics
3o14 Jan 8, 2026
31fef36
chore: type error
3o14 Jan 8, 2026
e3da8af
chore: changeset check ci
3o14 Jan 8, 2026
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
85 changes: 85 additions & 0 deletions .github/workflows/changeset-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Changeset Check

on:
pull_request:
branches:
- main

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

- name: Check if changeset is required
id: check-skip
run: |
# PR에 'skip-changeset' 라벨이 있는지 확인
if [[ "${{ contains(github.event.pull_request.labels.*.name, 'skip-changeset') }}" == "true" ]]; then
echo "skip=true" >> $GITHUB_OUTPUT
echo "⏭️ Skipping changeset check due to 'skip-changeset' label"
exit 0
fi

# 변경된 파일 목록 가져오기
git fetch origin ${{ github.base_ref }}
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)

# 문서, CI, 설정 파일만 변경된 경우 체크
if echo "$CHANGED_FILES" | grep -qvE '^(\.github/|\.changeset/|\.vscode/|docs/|README\.md|LICENSE|\.gitignore|\.prettierrc|\.eslintrc|package\.json|tsconfig\.json|vite\.config\.ts)'; then
echo "skip=false" >> $GITHUB_OUTPUT
echo "📦 Source code changes detected - changeset required"
else
echo "skip=true" >> $GITHUB_OUTPUT
echo "⏭️ Only docs/config changes detected - skipping changeset check"
fi

- name: Setup pnpm
if: steps.check-skip.outputs.skip != 'true'
uses: pnpm/action-setup@v4
with:
version: 9

- name: Setup Node.js
if: steps.check-skip.outputs.skip != 'true'
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"

- name: Install dependencies
if: steps.check-skip.outputs.skip != 'true'
run: pnpm install --frozen-lockfile

- name: Check for changesets
if: steps.check-skip.outputs.skip != 'true'
run: |
# .changeset 디렉토리에 있는 .md 파일 개수 확인 (config.json, README.md 제외)
CHANGESET_COUNT=$(find .changeset -name "*.md" ! -name "README.md" | wc -l)

echo "Found $CHANGESET_COUNT changeset(s)"

if [ "$CHANGESET_COUNT" -eq 0 ]; then
echo "❌ Error: No changeset found!"
echo ""
echo "Please add a changeset to describe your changes:"
echo " pnpm changeset"
echo ""
echo "This helps us maintain a proper changelog and version history."
echo ""
echo "If you believe this PR doesn't need a changeset (docs/config only),"
echo "please add the 'skip-changeset' label to this PR."
exit 1
else
echo "✅ Changeset found!"
echo ""
echo "Changeset files:"
find .changeset -name "*.md" ! -name "README.md" -exec echo " - {}" \;
fi

- name: Validate changeset format
if: steps.check-skip.outputs.skip != 'true'
run: pnpm changeset status --verbose
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ storybook-static
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
.idea
.DS_Store
*.suo
Expand Down
4 changes: 2 additions & 2 deletions .storybook/ThemeWrapper.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React from "react";
import { ThemeProvider } from "../packages/providers";
import { ThemeProvider } from "../src/providers";
import {
appearanceTheme,
applyAppearanceTheme,
type AppearanceMode,
} from "../packages/tokens/appearanceTheme";
} from "../src/tokens/appearanceTheme";

interface ThemeWrapperProps {
mode: AppearanceMode;
Expand Down
4 changes: 2 additions & 2 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type { StorybookConfig } from "@storybook/react-vite";
const config: StorybookConfig = {
stories: [
"../.storybook/**/*.mdx",
"../packages/**/*.mdx",
"../packages/**/*.stories.@(js|jsx|mjs|ts|tsx)",
"../src/**/*.mdx",
"../src/**/*.stories.@(js|jsx|mjs|ts|tsx)",
],
addons: [
"@storybook/addon-essentials",
Expand Down
4 changes: 2 additions & 2 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React from "react";
import type { Decorator, Preview } from "@storybook/react";
import "../packages/tokens/theme.css";
import "../src/tokens/theme.css";
import { ThemeWrapper } from "./ThemeWrapper";
import {
appearanceTheme,
type AppearanceMode,
} from "../packages/tokens/appearanceTheme";
} from "../src/tokens/appearanceTheme";

const withTheme: Decorator = (Story, context) => {
const theme = (context.globals?.theme || "light") as AppearanceMode;
Expand Down
15 changes: 15 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.expand": false,
"explorer.fileNesting.patterns": {
"*.tsx": "${capture}.css.ts, ${capture}.spec.tsx, ${capture}.stories.tsx, ${capture}.test.tsx",
"*.ts": "${capture}.spec.ts, ${capture}.test.ts",
"package.json": "package-lock.json, pnpm-lock.yaml, yarn.lock, .npmrc, .nvmrc, .node-version",
"tsconfig.json": "tsconfig.*.json",
"vite.config.*": "vitest.config.*, vitest.setup.*",
".eslintrc.*": ".eslintignore, .prettierrc*, .prettierignore",
".gitignore": ".gitattributes, .gitmodules",
"README.md": "CHANGELOG.md, LICENSE, CONTRIBUTING.md",
".storybook": "storybook-static"
}
}
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@
"build": "vite build && tsc --project tsconfig.build.json",
"build:lib": "pnpm run build",
"lint": "eslint .",
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run",
"storybook": "storybook dev -p 6006",
"build-storybook": "pnpm run sync-readme && storybook build",
"sync-readme": "node scripts/sync-readme.js",
Expand All @@ -51,6 +54,7 @@
"release": "pnpm run version && pnpm run build:lib && npm publish --access public"
},
"dependencies": {
"@base-ui/react": "^1.0.0",
"clsx": "^2.1.1"
},
"peerDependencies": {
Expand All @@ -68,25 +72,31 @@
"@storybook/react": "^8",
"@storybook/react-vite": "^8",
"@storybook/test": "^8",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.1",
"@testing-library/user-event": "^14.6.1",
"@types/node": "^24.10.1",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"@vanilla-extract/css": "^1.17.4",
"@vanilla-extract/recipes": "^0.5.7",
"@vanilla-extract/vite-plugin": "^5.1.1",
"@vitejs/plugin-react": "^5.1.0",
"@vitest/ui": "^4.0.16",
"eslint": "^9.39.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.24",
"eslint-plugin-storybook": "^10.0.7",
"globals": "^16.5.0",
"jsdom": "^27.4.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"storybook": "^8",
"storybook-dark-mode": "^4.0.2",
"typescript": "~5.9.3",
"typescript-eslint": "^8.46.3",
"vite": "^5.4.11"
"vite": "^5.4.11",
"vitest": "^4.0.16"
},
"eslintConfig": {
"extends": [
Expand Down
55 changes: 0 additions & 55 deletions packages/components/Button/Button.tsx

This file was deleted.

96 changes: 0 additions & 96 deletions packages/components/Checkbox/Checkbox.tsx

This file was deleted.

Loading
Loading