Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
6416c61
feat(DayView): add day view and view switching capability
Jaganath-MSJ Feb 18, 2026
178b751
refactor: rename data prop to events and sync view prop
Jaganath-MSJ Feb 19, 2026
6668d55
refactor(types): replace string literals with enum for view and day t…
Jaganath-MSJ Feb 19, 2026
bbd3158
chore(playground): update calendar-simple dependency to v1.2.0 and re…
Jaganath-MSJ Feb 19, 2026
9dbbb1a
fix(DayView): add overlapping event layout calculation
Jaganath-MSJ Feb 20, 2026
a03f29b
fix(DayView): improve overlapping event layout and visual consistency
Jaganath-MSJ Feb 21, 2026
7dca396
refactor(DayView): simplify layout algorithm and remove unused proper…
Jaganath-MSJ Feb 21, 2026
9cea280
fix(DayView): adjust event layout and styling for small time slots
Jaganath-MSJ Feb 21, 2026
95774f9
refactor: extract EventItem and Popover into separate components
Jaganath-MSJ Feb 21, 2026
ba316bf
feat(WeekView): add week view to calendar component
Jaganath-MSJ Feb 21, 2026
074cd0f
refactor: simplify calendar context and view components
Jaganath-MSJ Feb 21, 2026
a37e498
refactor: extract reusable components for day/week views
Jaganath-MSJ Feb 21, 2026
d7aca8b
refactor: centralize magic strings and numbers
Jaganath-MSJ Feb 21, 2026
72fbc01
feat: add 12-hour time format support across calendar views
Jaganath-MSJ Feb 21, 2026
ea8e841
feat: add optional id field to events and use for React keys
Jaganath-MSJ Feb 22, 2026
b90c076
feat(Schedule): add schedule view
Jaganath-MSJ Feb 22, 2026
2951941
fix: correct navigation unit for schedule view and clean up unused code
Jaganath-MSJ Feb 22, 2026
7568473
feat(Header): enhance header title and day view layout
Jaganath-MSJ Feb 22, 2026
4e84412
feat: add view field and make is12Hour required in CalendarContentType
Jaganath-MSJ Feb 22, 2026
7a9f114
BREAKING CHANGE: rename types and props for clarity and consistency
Jaganath-MSJ Feb 22, 2026
9a1bb58
fix(Theme): change schedule navigation unit from month to day
Jaganath-MSJ Feb 23, 2026
a865809
fix(ClassNames): extend classNames support to all calendar views
Jaganath-MSJ Feb 23, 2026
6029d18
refactor: rename EDayType constants and update usage
Jaganath-MSJ Feb 24, 2026
9d88167
fix(Calendar): remove container div and conditionally use resize obse…
Jaganath-MSJ Feb 24, 2026
d75f2b8
feat(Storybook): organize stories into view-specific files
Jaganath-MSJ Feb 25, 2026
adbcba7
style: improve layout responsiveness and scrolling behavior
Jaganath-MSJ Feb 26, 2026
1956690
feat(WeekView): add all-day event banner to week and day views
Jaganath-MSJ Feb 27, 2026
8ba1f16
feat(AllDayBanner): add expandable overflow for hidden events
Jaganath-MSJ Feb 28, 2026
cc8eee6
feat(AllDayBanner): add timezone label and smart expand/collapse logic
Jaganath-MSJ Feb 28, 2026
d3b1348
refactor(AllDayBanner): extract layout logic to utility function
Jaganath-MSJ Feb 28, 2026
619563d
feat(AllDayBanner): improve sticky header layout and add timezone label
Jaganath-MSJ Feb 28, 2026
611eeb3
feat(CurrentTime): add current time indicator for day and week views
Jaganath-MSJ Feb 28, 2026
a0d8359
feat(AllDayBanner): add maxEvents prop and improve UX
Jaganath-MSJ Feb 28, 2026
32ac60b
feat: add all-day event support and improve multi-day event handling
Jaganath-MSJ Feb 28, 2026
7fd8468
feat(AutoScroll): add auto-scroll to current time in calendar views
Jaganath-MSJ Mar 1, 2026
0ab2274
refactor(DateUtils): replace direct dayjs calls with dateFn wrapper
Jaganath-MSJ Mar 1, 2026
bf401d6
fix(MonthView): reorder onDateClick call to prevent firing on non-sel…
Jaganath-MSJ Mar 1, 2026
8d0934d
fix: Filter out invalid events where end date occurs before start date
Jaganath-MSJ Mar 2, 2026
9043c36
refactor(Playground): replace realistic demo events with comprehensiv…
Jaganath-MSJ Mar 2, 2026
62ccb5d
refactor: restructure calendar component architecture and extract styles
Jaganath-MSJ Mar 3, 2026
ad7446c
refactor: extract schedule view logic into custom hook
Jaganath-MSJ Mar 3, 2026
da0c52b
docs: add comprehensive JSDoc comments to React hooks
Jaganath-MSJ Mar 4, 2026
dd35285
docs: add comprehensive JSDoc comments to utility files
Jaganath-MSJ Mar 4, 2026
33b17a6
docs: update LICENSE and README for 2024-2026 and new features
Jaganath-MSJ Mar 5, 2026
7812105
docs: add contributing and code of conduct guidelines
Jaganath-MSJ Mar 5, 2026
eb4f91f
docs: add GitHub issue and pull request templates
Jaganath-MSJ Mar 6, 2026
9a3d08e
feat(storybook): add features stories and detailed documentation
Jaganath-MSJ Mar 6, 2026
842765d
docs: add SECURITY.md and MIGRATION.md files
Jaganath-MSJ Mar 7, 2026
52bdb5b
docs: add comprehensive test cases document for calendar library
Jaganath-MSJ Mar 7, 2026
8254ef5
Merge pull request #51 from Jaganath-MSJ/version_2
Jaganath-MSJ Mar 8, 2026
f86936b
Merge pull request #52 from Jaganath-MSJ/dev
Jaganath-MSJ Mar 8, 2026
a9382cf
fix: add reusable popover component for calendar events
Jaganath-MSJ Mar 8, 2026
d68149a
Merge branch 'beta' of https://github.com/Jaganath-MSJ/CalendarSimple…
Jaganath-MSJ Mar 8, 2026
0dd7b5d
Merge branch 'main' of https://github.com/Jaganath-MSJ/CalendarSimple…
Jaganath-MSJ Mar 8, 2026
c995f86
Merge pull request #53 from Jaganath-MSJ/version_2
Jaganath-MSJ Mar 8, 2026
6880088
Merge pull request #54 from Jaganath-MSJ/dev
Jaganath-MSJ Mar 8, 2026
0885b84
chore: add ESLint configuration and npm scripts
Jaganath-MSJ Mar 9, 2026
0bbf3f8
chore: set legacy-peer-deps to true in npm config
Jaganath-MSJ Mar 10, 2026
640e529
chore: add prettier configuration and format code
Jaganath-MSJ Mar 11, 2026
8efb08e
chore: implement husky, commitlint and lint-staged
Jaganath-MSJ Mar 12, 2026
338fe09
ci: add github actions workflow for pull requests
Jaganath-MSJ Mar 13, 2026
9f00c15
feat(calendar): add configurable week start and end days
Jaganath-MSJ Mar 15, 2026
133af2a
feat(calendar): add minHour and maxHour props to limit displayed time…
Jaganath-MSJ Mar 16, 2026
5abf136
feat(stories): add storybook examples for new calendar props
Jaganath-MSJ Mar 16, 2026
0523174
feat(calendar): add showAdjacentMonths prop to control adjacent month…
Jaganath-MSJ Mar 17, 2026
902c997
feat(calendar): add custom days view for flexible multi-day calendar …
Jaganath-MSJ Mar 18, 2026
3ce876e
docs: update documentation for showAdjacentMonths and customDays feat…
Jaganath-MSJ Mar 19, 2026
ab69f4e
refactor(constants): rename calendar constants and consolidate exports
Jaganath-MSJ Mar 19, 2026
f750f68
refactor(types): extract theme-related types to separate module
Jaganath-MSJ Mar 19, 2026
d88828f
feat: replace event color with style for flexible event styling
Jaganath-MSJ Mar 20, 2026
f6cf134
docs: replace event color property with style in documentation
Jaganath-MSJ Mar 21, 2026
40cd87d
chore(commitlint): disable body line length limit
Jaganath-MSJ Mar 22, 2026
b1f3d1d
feat: add custom renderers for events, header, hour and date cells
Jaganath-MSJ Mar 23, 2026
8c02c2b
docs: add custom renderers documentation and update story title
Jaganath-MSJ Mar 24, 2026
69bbdfd
feat(calendar): add resetDateOnViewChange prop to reset date on view …
Jaganath-MSJ Mar 24, 2026
693370e
feat(calendar): add showAllDayRow prop to hide all-day event banner
Jaganath-MSJ Mar 25, 2026
cbba97b
feat(schedule): add custom separator rendering between date groups
Jaganath-MSJ Mar 26, 2026
e8d6677
feat: add eventOverlapOffset prop for stacked event layout
Jaganath-MSJ Mar 27, 2026
244538d
docs: update storybook examples and documentation for calendar features
Jaganath-MSJ Mar 27, 2026
14255bb
test: add QA storybook stories for calendar component
Jaganath-MSJ Mar 28, 2026
fc85441
feat(performance): add performance optimization options for calendar …
Jaganath-MSJ Mar 28, 2026
ee9316c
fix: cap event z-index to prevent overlapping with header elements
Jaganath-MSJ Mar 28, 2026
dee7c69
docs: add performance optimization options and test stories
Jaganath-MSJ Mar 28, 2026
64804cc
test: add vitest setup and initial test files
Jaganath-MSJ Mar 28, 2026
f05d6a0
test: add unit tests for formatting, common utilities, and calendar c…
Jaganath-MSJ Mar 29, 2026
22ea6eb
test: add unit tests for custom React hooks
Jaganath-MSJ Mar 29, 2026
208d43a
test: add unit tests for core calendar components
Jaganath-MSJ Mar 29, 2026
ea255d6
test: add unit tests for all calendar view components
Jaganath-MSJ Mar 29, 2026
7f0720c
ci: add npm test step to CI workflow
Jaganath-MSJ Mar 30, 2026
e4e3eb8
fix: sync selectedDate prop and fix year list calculation
Jaganath-MSJ Mar 31, 2026
0338286
feat(testing): add testId prop for better testability
Jaganath-MSJ Apr 1, 2026
69798c1
test: wrap component tests in CalendarProvider
Jaganath-MSJ Apr 2, 2026
4320ccc
test: add unique data-testid attributes to improve testability
Jaganath-MSJ Apr 3, 2026
1be93db
feat(calendar)!: add internationalization support
Jaganath-MSJ Apr 5, 2026
b041002
chore: update ESLint config to use new flat config format
Jaganath-MSJ Apr 5, 2026
7e9d3e3
refactor!: migrate from dayjs to luxon for date handling
Jaganath-MSJ Apr 6, 2026
44356a4
fix!: correct plural unit names and ISO date formatting
Jaganath-MSJ Apr 7, 2026
706e6a0
feat(localization): add full i18n support with Luxon integration
Jaganath-MSJ Apr 7, 2026
fcf433b
chore(playground): switch to local calendar-simple dependency
Jaganath-MSJ Apr 8, 2026
0efe93e
docs: update CHANGELOG formatting for consistency
Jaganath-MSJ Apr 8, 2026
6970501
ci: add read permissions for GitHub Actions workflow
Jaganath-MSJ Apr 8, 2026
bb8bbd8
ci: drop Node.js 18 from CI matrix and simplify build script
Jaganath-MSJ Apr 8, 2026
025fd06
Merge pull request #62 from Jaganath-MSJ/version_2
Jaganath-MSJ Apr 8, 2026
0babe96
chore: update dependencies and improve type safety
Jaganath-MSJ Apr 9, 2026
603b4ba
chore: update playground dev dependencies to their latest versions
Jaganath-MSJ Apr 9, 2026
bb71cf2
chore(deps): update react and eslint dependencies
Jaganath-MSJ Apr 9, 2026
fb81bcb
test: add test coverage for critical bug fixes and library migration
Jaganath-MSJ Apr 10, 2026
22f051a
Merge pull request #65 from Jaganath-MSJ/version_2
Jaganath-MSJ Apr 11, 2026
5635395
feat!: support compound component pattern and improve prop handling
Jaganath-MSJ Apr 12, 2026
d0b11a0
style: improve responsive design and visual polish across components
Jaganath-MSJ Apr 12, 2026
75c924a
feat(accessibility): improve event text contrast across calendar views
Jaganath-MSJ Apr 13, 2026
ad18b03
fix: adjust all-day banner and day event layout for partial-day events
Jaganath-MSJ Apr 14, 2026
d6dbd42
refactor: remove redundant props from view components
Jaganath-MSJ Apr 14, 2026
3cc7610
chore: add global variable comments to release config
Jaganath-MSJ Apr 15, 2026
9c73ad8
feat(calendar): add week number display support
Jaganath-MSJ Apr 16, 2026
d562477
docs: update week numbers feature in the document, test and story
Jaganath-MSJ Apr 16, 2026
f789400
test: add tests and story for compound component pattern
Jaganath-MSJ Apr 17, 2026
43aeaa9
feat(calendar): add slot creation with onSlotClick callback
Jaganath-MSJ Apr 17, 2026
b85a360
test(calendar): add tests and stories for slot creation feature
Jaganath-MSJ Apr 17, 2026
f41d0d9
docs: update feature documentation to reflect implemented features
Jaganath-MSJ Apr 17, 2026
82a6b78
feat(calendar): add loading state with skeleton UIs and renderLoading…
Jaganath-MSJ Apr 18, 2026
2588835
test(calendar): add skeleton tests and loading state stories
Jaganath-MSJ Apr 18, 2026
f04e865
docs: Delete docs directory
Jaganath-MSJ Apr 18, 2026
95e7c1b
feat(a11y): add keyboard navigation and ARIA support across all views
Jaganath-MSJ Apr 19, 2026
db048af
test(a11y): add accessibility documentation and comprehensive test co…
Jaganath-MSJ Apr 19, 2026
81277b4
docs: add CLAUDE.md with development guide and architecture overview
Jaganath-MSJ Apr 20, 2026
e6357e1
fix(all-day-banner): show arrows when chip boundary differs from even…
Jaganath-MSJ Apr 21, 2026
cb8ba17
feat(responsive): add tablet and phone breakpoints for Header and Mon…
Jaganath-MSJ Apr 22, 2026
da8bf22
fix: prevent scrollIntoView from scrolling ancestor containers
Jaganath-MSJ Apr 23, 2026
1fa89a8
feat(responsive): add tablet and phone breakpoints for Week and Day v…
Jaganath-MSJ Apr 24, 2026
50a4a35
feat(responsive): add phone breakpoint for Schedule view
Jaganath-MSJ Apr 25, 2026
2e496e4
fix(views): correct flex layout to prevent Schedule view content clip…
Jaganath-MSJ Apr 25, 2026
2e3e1d1
docs: expand responsive CSS documentation in README and FEATURES
Jaganath-MSJ Apr 26, 2026
89b894a
refactor(constants): consolidate constants and move locale functions
Jaganath-MSJ Apr 27, 2026
eb1bc29
refactor(utils): merge keyboard and locale utils into common and form…
Jaganath-MSJ Apr 28, 2026
556c760
docs(types): add JSDoc to all public type definitions
Jaganath-MSJ Apr 30, 2026
cfaf4d5
docs(constants): add JSDoc to constants and handleKeyboardActivation
Jaganath-MSJ Apr 30, 2026
cc835ce
docs(context): add JSDoc to CalendarContext and core hooks
Jaganath-MSJ May 1, 2026
7aa48fa
Merge pull request #66 from Jaganath-MSJ/version_2
Jaganath-MSJ May 3, 2026
2dd479e
feat(rtl): add direction prop and CSS logical properties for RTL support
Jaganath-MSJ May 3, 2026
44b49e5
feat(dark-mode): add color scheme support with auto-detection
Jaganath-MSJ May 4, 2026
e73f9bb
feat(color-scheme): add color scheme support with auto-detection and …
Jaganath-MSJ May 5, 2026
e9a0862
docs: restructure README and FEATURES for clarity
Jaganath-MSJ May 6, 2026
d9570df
fix(month-view): pass hidden events array as second arg to onMoreClick
Jaganath-MSJ May 7, 2026
c1bba44
fix(calendar): expose testId-container and CSS vars in compound mode
Jaganath-MSJ May 7, 2026
5f7e755
feat(context): add SET_CUSTOM_DAYS action for prop-change syncing
Jaganath-MSJ May 8, 2026
b9caefe
docs(useEvents): document K-03 caveat — eventsAreSorted bypasses sorting
Jaganath-MSJ May 8, 2026
c9449d0
docs(useEvents): document C-TC3 negative-duration event filter behaviour
Jaganath-MSJ May 8, 2026
d3de2e5
fix(View): document and expose background-refresh loading overlay (DI-3)
Jaganath-MSJ May 8, 2026
b6eed56
fix(error-boundary): catch renderer exceptions and show fallback (DI-4)
Jaganath-MSJ May 9, 2026
ad97b4d
chore(build): add rollup-plugin-visualizer for bundle analysis
Jaganath-MSJ May 9, 2026
6bcdf00
Merge pull request #69 from Jaganath-MSJ/version_2
Jaganath-MSJ May 9, 2026
14d0948
Merge pull request #70 from Jaganath-MSJ/dev
Jaganath-MSJ May 9, 2026
118a426
chore: update dependencies
Jaganath-MSJ May 10, 2026
e30d84b
refactor(playground): redesign to single calendar with full prop control
Jaganath-MSJ May 10, 2026
52af87c
test: consolidate playwright playbook and results into single document
Jaganath-MSJ May 11, 2026
8dc85fa
chore(build): gate visualizer behind ANALYZE env flag
Jaganath-MSJ May 12, 2026
c006dac
chore(lint): enable type-aware ESLint and surface tsc errors in lint …
Jaganath-MSJ May 13, 2026
d59eb35
docs(TEST_CASES): expand test coverage and add known issues section
Jaganath-MSJ May 15, 2026
7e5714b
fix(Calendar): pass validEvents into context config to close TC3 filt…
Jaganath-MSJ May 16, 2026
9d462cf
test(playwright): add /playwright slash-command playbook
Jaganath-MSJ May 17, 2026
73d480f
feat(useEvents): add dev warnings for K-03 and K-05 misuse patterns
Jaganath-MSJ May 18, 2026
87eba25
docs(types): mark K-03 and K-05 fixed; update JSDoc for warn behavior
Jaganath-MSJ May 19, 2026
d47c2be
feat(playground): expose classNames prop in ControlPanel
Jaganath-MSJ May 20, 2026
51e1f4c
fix(playground): avoid render-phase updates and nested button markup
Jaganath-MSJ May 21, 2026
4caea3f
docs(playwright): add cross-browser sessions and refresh playbook status
Jaganath-MSJ May 21, 2026
1194def
Merge branch 'beta' of https://github.com/Jaganath-MSJ/CalendarSimple…
Jaganath-MSJ May 22, 2026
e673b08
docs(storybook): default all stories to the light color scheme
Jaganath-MSJ May 22, 2026
1388c4a
Merge pull request #72 from Jaganath-MSJ/version_2
Jaganath-MSJ May 23, 2026
3f1d69d
fix(calendar): support string CSS lengths for width and height props
Jaganath-MSJ May 23, 2026
e8d6ad5
docs(playwright): remove resolved known-issues and follow-up tables
Jaganath-MSJ May 24, 2026
c457479
Merge pull request #73 from Jaganath-MSJ/dev
Jaganath-MSJ May 24, 2026
83a645e
fix: correct theming variable docs and modernize project docs
Jaganath-MSJ May 25, 2026
96d5e84
Merge pull request #74 from Jaganath-MSJ/dev
Jaganath-MSJ May 25, 2026
1d2d9ee
fix(playground): replace Vite template README with playground guide
Jaganath-MSJ May 25, 2026
7d8c807
Merge branch 'beta' of https://github.com/Jaganath-MSJ/CalendarSimple…
Jaganath-MSJ May 25, 2026
00ec25e
Merge pull request #75 from Jaganath-MSJ/dev
Jaganath-MSJ May 25, 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
942 changes: 942 additions & 0 deletions .claude/commands/playwright.md

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Bug Report
about: Create a report to help us improve calendar-simple
title: "[Bug]: "
labels: bug
assignees: ""
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Minimal reproduction**
If possible, link a minimal reproduction (StackBlitz, CodeSandbox, or a small repo). This is the fastest way to get a fix.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots / recordings**
If applicable, add screenshots or a short recording to help explain your problem.

**Affected view(s)**
Which calendar view(s) does this affect? (Month, Week, Day, Custom Days, Schedule, or all)

**Environment (please complete the following information):**

- `calendar-simple` version: [e.g. 1.2.0]
- React version: [e.g. 19.2.0]
- Browser: [e.g. Chrome 124, Safari 17]
- OS: [e.g. Windows 11, macOS 14]
- Is RTL / dark mode / a custom locale enabled? [yes/no — which]

**Did this work in a previous version?**
If this is a regression, which version last worked?

**Additional context**
Add any other context about the problem here (relevant props, event data, console errors).
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Feature Request
about: Suggest an idea or improvement for calendar-simple
title: "[Feature]: "
labels: enhancement
assignees: ""
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Which area does this affect?**
e.g. a specific view (Month/Week/Day/Custom Days/Schedule), theming, accessibility, localization/RTL, events/layout, or the public API.

**Proposed API (if applicable)**
If your idea introduces or changes props, callbacks, or types, sketch what the API might look like.

```tsx
// Example usage of the proposed feature
```

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Are you willing to contribute this?**
Would you be open to opening a PR for this feature? (We're happy to help — see [CONTRIBUTING.md](../../CONTRIBUTING.md).)

**Additional context**
Add any other context, mockups, or screenshots about the feature request here.
41 changes: 41 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!--
Thanks for contributing to Calendar Simple!
Please target your PR at the `dev` branch (not `main`) and fill out the sections below.
-->

## Description

Please include a summary of the change and the motivation behind it.

Fixes # (issue)

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactor / chore (no functional change)

## Pull Request Checklist

- [ ] My PR targets the `dev` branch
- [ ] My code follows the project's coding guidelines (TypeScript, CSS Modules, Luxon for dates)
- [ ] My commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/) spec
- [ ] I have added or updated tests that cover my change
- [ ] I have added or updated a Storybook story (if applicable)
- [ ] I have updated the documentation (`README.md`, `FEATURES.md`) where relevant
- [ ] All local checks pass: `npm run format:check`, `npm run lint`, `npm test`, `npm run build`

## How Has This Been Tested?

Please describe the tests you ran to verify your changes and provide instructions to reproduce.

- [ ] Added/updated automated tests (`npm test`)
- [ ] Verified via Storybook (`npm run storybook`)
- [ ] Verified via the local playground (`cd playground && npm run dev`)
- [ ] Verified the build bundle (`npm run build`)

## Screenshots / Recordings

If your change affects the UI, please add before/after screenshots or a short recording.
40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI Pipeline

on:
pull_request:

permissions:
contents: read

jobs:
build_and_test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x, 22.x]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Check code formatting
run: npm run format:check

- name: Run ESLint
run: npm run lint

- name: Verify build
run: npm run build

- name: Run tests
run: npm test
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,12 @@ yarn-error.log*

docs

storybook-static
storybook-static

# Claude Code
.claude/settings.local.json
.playwright-mcp/
tests/

# Local test reports (not tracked — results live in PLAYWRIGHT_TEST_PLAN.md)
TEST_REPORT.md
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no -- commitlint --edit ${1}
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx lint-staged
15 changes: 15 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Ignore Artifacts
node_modules
dist
storybook-static
coverage
.cache

# Misc
.env
.npmrc
eslint.config.js
package-lock.json

# Ignore generated documentation
docs/
12 changes: 12 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "all",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "always",
"endOfLine": "lf"
}
15 changes: 9 additions & 6 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
import type { Preview } from '@storybook/react-vite'
import type { Preview } from "@storybook/react-vite";

const preview: Preview = {
args: {
colorScheme: "light",
},
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
color: /(background|color)$/i,
date: /Date$/i,
},
},

a11y: {
// 'todo' - show a11y violations in the test UI only
// 'error' - fail CI on a11y violations
// 'off' - skip a11y checks entirely
test: 'todo'
}
test: "todo",
},
},
};

export default preview;
export default preview;
Loading
Loading