Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
45c4083
feat: upgrade to React 19.2.4 with TypeScript 5 and Jest 29
Mukesh-FN Mar 24, 2026
81e88b1
fix(storybook): fix dark mode in Storybook 8 with storybook-dark-mode v4
Mukesh-FN Mar 24, 2026
3426049
feat: apply React 19 / TypeScript 5 / Storybook 8 migration changes
Mukesh-FN Mar 24, 2026
c69eb92
feat: upgrade ESLint to v10 with flat config, fix all lint errors and…
Mukesh-FN Mar 24, 2026
ac2a117
feat: upgrade styled-components v5 → v6
Mukesh-FN Mar 24, 2026
3e2704b
feat: upgrade TypeScript 5 → 6.0.2
Mukesh-FN Mar 24, 2026
baf0d67
fix: achieve full TypeScript 6 compliance without ignoreDeprecations
Mukesh-FN Mar 24, 2026
64ea3e4
fix(tsconfig): add module: esnext required by moduleResolution: bundler
Mukesh-FN Mar 24, 2026
e54b1a6
feat: upgrade Vite 6 → 8.0.2
Mukesh-FN Mar 24, 2026
a096092
fix(lint): suppress unicorn/explicit-length-check for size prop check…
Mukesh-FN Mar 24, 2026
c841ff6
fix(jest): resolve codemod test failures caused by moduleResolution a…
Mukesh-FN Mar 24, 2026
b8b5ecc
style: apply prettier formatting to codemods/global.d.ts
Mukesh-FN Mar 24, 2026
b4fd715
feat: upgrade Storybook 8 to 9.1.20
Mukesh-FN Mar 24, 2026
d8af239
feat: upgrade @types/node 22 and @types/react-select 4 to latest (Pha…
Mukesh-FN Mar 24, 2026
2248bd4
chore: upgrade eslint-plugin-jest and globals
Mukesh-FN Mar 24, 2026
32889e4
feat: upgrade Storybook 9 to 10 and replace storybook-dark-mode with …
Mukesh-FN Mar 25, 2026
6537e65
chore: remove unused deps, move @types/react-select to devDeps, delet…
Mukesh-FN Mar 25, 2026
372225f
feat: replace native Storybook 10 dark mode with storybook-dark-mode v5
Mukesh-FN Mar 25, 2026
8e0df5f
fix: resolve all ESLint warnings, fix test env, update CI pipelines t…
Mukesh-FN Mar 25, 2026
4f00658
fix: restore main changes lost during rebase (PhoneInput, ComboBox, T…
Mukesh-FN Oct 12, 2026
21bdb3f
fix: type Textarea attrs for styled-components 6.4+ and update Skelet…
Mukesh-FN Oct 13, 2026
adb28e4
fix(codemods): compile the codemods into lib again so run_v2_migratio…
Mukesh-FN Oct 13, 2026
7e663ae
build: leave specs and test helpers out of the published package
Mukesh-FN Oct 13, 2026
f06a6f0
fix(deps)!: require styled-components 6 and drop the React 18-only wi…
Mukesh-FN Oct 13, 2026
6c06d5f
fix(Toggle): forward the ref to the checkbox input on React 18
Mukesh-FN Oct 13, 2026
e3b609b
fix: stop styled components from forwarding Wave props to the DOM
Mukesh-FN Oct 13, 2026
a4d81f6
test: fail tests on React warnings and render every form component wi…
Mukesh-FN Oct 13, 2026
df210c4
fix: server-render without crashing when dependencies load as native ESM
Mukesh-FN Oct 13, 2026
1122b74
test: run React 18 and React 19 consumer fixtures in CI
Mukesh-FN Oct 13, 2026
cf01822
fix(deps): upgrade React to 19.3 and react-aria to 3.53, and unpin @r…
Mukesh-FN Oct 13, 2026
aad6647
chore(deps): develop and test against styled-components 6.5.3 and jes…
Mukesh-FN Oct 13, 2026
8abb8fa
fix(deps)!: upgrade react-day-picker to 10
Mukesh-FN Oct 13, 2026
5dd1617
fix(DatePicker): name the calendar dialog and keep the single date fi…
Mukesh-FN Oct 13, 2026
4a23d81
chore(deps): upgrade jest-dom to 7 and jest-axe to 11, and declare @t…
Mukesh-FN Oct 13, 2026
f16622f
chore(deps): upgrade commitlint to 21
Mukesh-FN Oct 13, 2026
7971f71
chore(deps): upgrade Storybook to 10.6 and Vite to 8.3
Mukesh-FN Oct 13, 2026
0d6e338
chore(deps): use @types/node 24 to match the Node 24 runtime in CI
Mukesh-FN Oct 13, 2026
244f0ee
chore: remove the unused @babel/core devDependency and the husky 4 co…
Mukesh-FN Oct 13, 2026
56fbcb5
chore(deps): update dependencies within their semver ranges
Mukesh-FN Oct 13, 2026
276c4e4
style: format with Prettier 3.9
Mukesh-FN Oct 13, 2026
c499ea3
chore(deps): apply non-breaking npm audit fixes
Mukesh-FN Oct 13, 2026
025d711
fix: apply the variant and size passed to Button, TextButton, Label, …
Mukesh-FN Oct 13, 2026
bb05de1
fix(SelectList): style the default boxed variant and medium size again
Mukesh-FN Oct 13, 2026
4750bb1
fix: set data-popper-placement on Tooltip and Popover again
Mukesh-FN Oct 13, 2026
83dd2d5
fix: accept interpolations in the types of the experimental darkTheme…
Mukesh-FN Oct 13, 2026
c8bae65
fix(deps): ship @types/styled-system again, which the type declaratio…
Mukesh-FN Oct 13, 2026
0934eac
test: run the consumer fixtures outside the repository and check that…
Mukesh-FN Oct 13, 2026
a3f6a55
build: require Node 24 for working on Wave and read the CI Node versi…
Mukesh-FN Oct 13, 2026
92b6d66
ci: install styled-components and load the experimental colors in the…
Mukesh-FN Oct 13, 2026
6ab9fd1
docs: add the Wave 3 migration guide, support matrix and contributor …
Mukesh-FN Oct 13, 2026
ca252f4
build: declare the conventionalcommits preset that semantic-release l…
Mukesh-FN Oct 13, 2026
f4b07f4
docs: show the props of styled components in the ArgTypes tables again
Mukesh-FN Oct 13, 2026
2f44c82
fix(Datepicker): import the date-fns locales by their exported paths,…
Mukesh-FN Oct 13, 2026
6a4e3e3
test: bundle the consumer fixture with webpack too
Mukesh-FN Oct 13, 2026
07e994b
fix(experimental): keep the variant of Text off the DOM
Mukesh-FN Oct 13, 2026
b3c5025
docs: tell TypeScript 5 users that Wave 3 type-checks for them
Mukesh-FN Oct 13, 2026
a33b9db
fix: apply the pseudo-classes of Accordion and Search to their own el…
Mukesh-FN Oct 14, 2026
b58741c
fix(Popover): pad the content by default again
Mukesh-FN Oct 14, 2026
b5ce0df
fix(PhoneInput): keep the country options as high as in Wave 2
Mukesh-FN Oct 14, 2026
ed5362b
fix(Tooltip, Popover): accept the auto, auto-start and auto-end place…
Mukesh-FN Oct 14, 2026
c3c36b4
docs: tell users of the classic colors that the dark scheme has a pag…
Mukesh-FN Oct 14, 2026
43d8b96
docs: make the Storybook pages look and work like the Wave 2 document…
Mukesh-FN Oct 14, 2026
a0612d1
ci: publish release candidates from next and serve the Wave 2 docs at…
Mukesh-FN Oct 14, 2026
3cc5f75
docs: link the Wave 2 docs at /v2/ and its 2.x maintenance releases
Mukesh-FN Oct 14, 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
  •  
  •  
  •  
16 changes: 0 additions & 16 deletions .babelrc.json

This file was deleted.

16 changes: 0 additions & 16 deletions .eslintignore

This file was deleted.

75 changes: 0 additions & 75 deletions .eslintrc.js

This file was deleted.

6 changes: 5 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ about: Bugs, missing documentation, or unexpected behavior 🤔.

-->

- `@freenow/wave` version:
- `@freenow/wave` version:
- `react` and `react-dom` versions:
- `styled-components` version:
- Node version (if the bug happens during the build, tests or server-side rendering):
- Browser and version:

### Relevant code

Expand Down
25 changes: 23 additions & 2 deletions .github/PREVIEW_TEMPLATE/minimal/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
# Wave Design System
# Wave preview template

This template provides a minimal setup to get the Wave Design System working.
A minimal Vite app for trying a pull request's build of `@freenow/wave`. The Package Preview workflow
(`.github/workflows/preview.yml`) publishes every pull request with [pkg-pr-new](https://github.com/stackblitz-labs/pkg.pr.new),
adds that build of `@freenow/wave` to this app, and links to it on StackBlitz in a comment on the pull request.

## What it contains

- React 19, React DOM and styled-components 6: the peer dependencies of Wave
- `src/main.tsx` renders the global style that loads the CSS variables of the experimental components
- `src/App.tsx` renders an experimental `Button`. Replace it with the components you want to check

To check components from `@freenow/wave` instead of `@freenow/wave/experimental`, render `ModernColors` (maroon) or
`ClassicColors` (blue) from `@freenow/wave` in `src/main.tsx` instead of the experimental global style.

## Run it locally

Install the preview build with the command from the pull request comment, then start the app:

```sh
npm install
npm install <preview package URL from the pull request comment>
npm run dev
```
109 changes: 104 additions & 5 deletions .github/PREVIEW_TEMPLATE/minimal/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .github/PREVIEW_TEMPLATE/minimal/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
},
"dependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react-dom": "^19.1.0",
"styled-components": "^6.5.3"
},
"devDependencies": {
"@eslint/js": "^9.25.0",
Expand Down
10 changes: 10 additions & 0 deletions .github/PREVIEW_TEMPLATE/minimal/src/main.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { ColorPalette, createGlobalStyle } from '@freenow/wave/experimental';
import './index.css';
import App from './App.tsx';

// Loads the CSS variables the experimental components are styled with.
// Components from '@freenow/wave' need ModernColors or ClassicColors from '@freenow/wave' instead.
const WaveColors = createGlobalStyle({
accent: ColorPalette.red['50'],
onAccent: ColorPalette.neutral['100'],
accentDark: ColorPalette.red['60']
});

createRoot(document.getElementById('root')!).render(
<StrictMode>
<WaveColors />
<App />
</StrictMode>
);
10 changes: 10 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,13 @@ Please fill out the information below to expedite the review and (hopefully) mer
## How

<!-- Often a list of things to describe the process to accomplish this PR -->

## Checklist

<!-- Tick what applies, and strike through or remove what does not -->

- [ ] Tests cover the change, and `npm test` passes without console errors or warnings
- [ ] New or changed components have a story, and their documentation is updated
- [ ] New form components are added to `src/components/FormComponents.spec.tsx`
- [ ] Checked with React 18 and React 19 (`npm run test:fixture` runs the consumer apps)
- [ ] Breaking changes have a `BREAKING CHANGE:` footer in the commit message that explains what consumers need to change
Loading
Loading