From 7929336937bd7bc4d6350860ab9ddbc7bfffcbb2 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 15:52:09 -0600 Subject: [PATCH 01/12] Create contributing doc with initial comments --- CONTRIBUTING.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..1b0050b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,110 @@ +# Contributing to Groundwork Water + +Thank you for your interest in contributing to Groundwork Water! Your help is appreciated. Please follow these guidelines to ensure a smooth contribution process. + +To contribute to Groundwork-Water you _must_ be a member of the U.S. Army Corps of Engineers Water Management. + +## How to Contribute + +_Note: You must have nodejs installed and in your path!_ + +1. **Submit an issue** + 1. Create an [issue](https://github.com/USACE-WaterManagement/groundwork-water/issues) as bug or feature/etc + 2. If you wish to work the issue, ask for it to be assigned to you +2. **Retrieve the Repository** + - Non Core Developers: + - Create your own fork and clone it locally. + - Developers (Ask for access): + - Clone the repository directory + - Try to use the "create branch" feature on the right sidebar of GitHub in the issue's given page + +3. **Create a Branch** + Use a descriptive branch name for your feature or fix: + + ```bash + git checkout -b feature/your-feature-name + ``` + + Or use VSCode + +4. **Install the root and docs packages** + Install the required dependencies for the docs page and library with: + From the root of the project run: + `npm install` + Then for the docs run + `cd docs && npm install` + +5. **Build the library** + **_NOTE_ you must do this each time you make changes to the library itself for the docs pages to work locally.** + + From the root of the project you can build with: + `npm run build` + +6. **Make Changes** + Make your changes and attempt to commit one idea at a time within your branch to make it easier in review. + + _For example:_ If you need to rename a file or move it. You would do that, then commit that singular change. + Or if you were adding a page path to the docs, you would make all the tweaks across the files to initialize the page and add it to the routes for that commit. + +7. **Run Tests** + Use the local dev instance to manually test your changes and ensure they work. We use a form of [Dogfooding](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) where we link the library to the documentation. Start the documentation locally. Then call the library itself in that documentation. + + To start the localhost instance of the docs site: + (From root or /docs) + + ```bash + npm run dev + ``` + +8. **Commit Changes** + Use meaningful commit messages: + + ```bash + git commit -m "Create path structure for useCdaBlob docs" + ``` + +9. **Version your Code** + Run changesets to version your code. + To do this run: + `changesets patch` + + We use semantic versioning, or semver. Read more here: https://semver.org/ + In short: + - `major` if it **breaks** something. + - `minor` if it's a functionality that does _not_ break anything. + - `patch` if it's a bug fix that does _not_ break something. + +10. **Push and Open a Pull Request** + Push your branch and open a pull request against the `main` branch. Describe your changes and reference any related issues. + - If you have forked, you will create a PR from your branch. + +Note: If `main` has changed significantly you will be required to rebase/merge main into your code to resolve merge conflicts before you can bring your changes into `main`. + +## Code Style + +For code styling we use `husky`. + +On every commit, after you run `npm i` your code will be formatted to match the repository. + +To help keep your code formatted while you make changes you might consider in vscode setting your default formatter to Prettier (VSCode extension) and in the settings for workspace setting it to format on save. + +## Reporting Issues + +- Report issues directly in VSCode. Using the issue submission tool consider labeling it with a priority to help us gauge if it is a blocker. +- Provide steps to reproduce bugs and relevant logs or screenshots. +- Do NOT post sensitive information such as: + - IP Addresses + - Usernames + - Extended file paths + - Other such information that could identify systems and/or the versions they are running + +## Community Standards + +- Be respectful and constructive in all communications. +- If an issue contains sensi + +## Questions? + +Open an issue or start a discussion if you need help. + +Thank you for helping improve Groundwork Water! From 82aa5686897eb498d018d0f9b5d2a0072828ef6b Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 15:57:57 -0600 Subject: [PATCH 02/12] Move contributing docs from readme to the new contributing md file --- CONTRIBUTING.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++- README.md | 93 ----------------------------------------------- 2 files changed, 96 insertions(+), 94 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1b0050b..897d93e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,6 +37,8 @@ _Note: You must have nodejs installed and in your path!_ 5. **Build the library** **_NOTE_ you must do this each time you make changes to the library itself for the docs pages to work locally.** + Read more below under [workflow recommendations](#workflow-recommendations) for how the local library linking works. + From the root of the project you can build with: `npm run build` @@ -75,6 +77,7 @@ _Note: You must have nodejs installed and in your path!_ - `patch` if it's a bug fix that does _not_ break something. 10. **Push and Open a Pull Request** + Read more below about [PRs](#pull-requests) Push your branch and open a pull request against the `main` branch. Describe your changes and reference any related issues. - If you have forked, you will create a PR from your branch. @@ -101,10 +104,102 @@ To help keep your code formatted while you make changes you might consider in vs ## Community Standards - Be respectful and constructive in all communications. -- If an issue contains sensi ## Questions? Open an issue or start a discussion if you need help. Thank you for helping improve Groundwork Water! + +### Pull Requests + +- Where possible, commits and pull requests should be [atomic](https://en.wikipedia.org/wiki/Atomic_commit): + _Keeping commits and PRs to one topic at a time_ + - To ensure reviewers can more easily review code revisions and not miss anything + - Reduces the frequency of merge conflicts + - Provides separation of concern (for bugs) when only one issue is merged at a time +- You _must_ rebase your branch to main before you submit Pull Requests: + - [ Terminal ] _From your branch run_ + 1. `git fetch origin` + 2. `git rebase origin/main` + - [ GUI ] In VSCode: + This can also be done in VSCode using the `Version Control` menu: + ![rebase from main](_images/rebase-main.png) + +### Workflow Recommendations + +- Use `npm link` to connect your project or the `docs` to the local generated `groundwork-water` + - See the `link` script in `package.json` for details +- Commit Often - [Atomic Commits](https://en.wikipedia.org/wiki/Atomic_commit) + - i.e. if you update style of plot, do a commit related to "Update plotxyz style" then move on to next item/commit +- Use VSCode or Similar Featured Editor to provide advanced features, save time, and integrate various utilities: + - Command Prompt in VSCode : [Integrated Terminal](https://code.visualstudio.com/docs/terminal/getting-started) + - [Tips & Tricks](https://code.visualstudio.com/docs/getstarted/tips-and-tricks) + +### Extensions + +- [TailwindCSS](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) -> Provides you inline tailwind options in your `className` blocks +- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) -> Industry standard for styling, large community, and works in many programming languages +- [Better Comments](https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments) -> Highlight TODO and other type comments +- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) -> Don't let the typos win +- [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) -> Adds a graph icon on your "Source Control" line to let you view a visual representation of your git state + +### Styling / formatting + +- Style often and consider [Format on Save for Workspace](![Format on Save in Workspace](./_images/save_workspace_format.png)) +- Use the Prettier extension mentioned before to format with + 1. Press F1 to open command pallette + 2. Type "format", and then select "Format Document with..." + 3. "Select Prettier" + +## Working Directories + +There are two directories of interest in this repository for Groundwork Water developers + +### Documentation Website + +The `/docs` directory contains the source code for the documentation website. + +To run the docs you can do the following: + +```bash +npm install +npm run build + +cd docs +npm install +npm run dev +``` + +This will first _install_ the dependencies for the library then it `npm link`'s the package in the docs. + +When you're making frequent changes you should consider importing the components directly from the package. +i.e. + +```js +import { CWMSPlot } from "../path/to/lib/path/to/component"; +``` + +This will install the dependencies, and then run the docs in development mode. + +### groundwork-water npm library + +The `/lib` directory contains the source code for the package itself. + +These are the components that would be shared with the community but also within the docs themselves for testing and to showcase the components. + +### Publishing + +Publishing is done automatically via `changesets` and keys setup in the GitHub secrets. A [PR](#pull-requests) to main with a version bump is sufficient to trigger a publication. + +#### Publishing Manually + +**_NOTE:_** You will first need to be added as a collaborator to the package on NPM. + +To publish a new version of the package, run the following command: + +```bash +npm run publish +``` + +This will build the package, and then publish it to NPM. diff --git a/README.md b/README.md index 706883d..6440940 100644 --- a/README.md +++ b/README.md @@ -14,96 +14,3 @@ You can read the current Groundwork Water Documentation: [https://usace-watermanagement.github.io/groundwork-water/](https://usace-watermanagement.github.io/groundwork-water/) [View Source on Github](https://github.com/USACE-WaterManagement/groundwork-water) - -## Dev Notes - -### Contribution Guidelines - -- #### Pull Requests - - Where possible, commits and pull requests should be [atomic](https://en.wikipedia.org/wiki/Atomic_commit): - _Keeping commits and PRs to one topic at a time_ - - To ensure reviewers can more easily review code revisions and not miss anything - - Reduces the frequency of merge conflicts - - Provides separation of concern (for bugs) when only one issue is merged at a time - - You _must_ rebase your branch to main before you submit Pull Requests: - - [ Terminal ] _From your branch run_ - 1. `git fetch origin` - 2. `git rebase origin/main` - - [ GUI ] In VSCode: - This can also be done in VSCode using the `Version Control` menu: - ![rebase from main](_images/rebase-main.png) - -- #### Workflow Recommendations - - Use `npm link` to connect your project or the `docs` to the local generated `groundwork-water` - - See the `link` script in `package.json` for details - - Commit Often - [Atomic Commits](https://en.wikipedia.org/wiki/Atomic_commit) - - i.e. if you update style of plot, do a commit related to "Update plotxyz style" then move on to next item/commit - - Use VSCode or Similar Featured Editor to provide advanced features, save time, and integrate various utilities: - - Command Prompt in VSCode : [Integrated Terminal](https://code.visualstudio.com/docs/terminal/getting-started) - - [Tips & Tricks](https://code.visualstudio.com/docs/getstarted/tips-and-tricks) - -- #### Extensions - - [TailwindCSS](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) -> Provides you inline tailwind options in your `className` blocks - - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) -> Industry standard for styling, large community, and works in many programming languages - - [Better Comments](https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments) -> Highlight TODO and other type comments - - [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) -> Don't let the typos win - - [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) -> Adds a graph icon on your "Source Control" line to let you view a visual representation of your git state - -- #### Styling / formatting - - Style often and consider [Format on Save for Workspace](![Format on Save in Workspace](./_images/save_workspace_format.png)) - - Use the Prettier extension mentioned before to format with - 1. Press F1 to open command pallette - 2. Type "format", and then select "Format Document with..." - 3. "Select Prettier" - -## Working Directories - -_There are two directories of interest in this repository for Groundwork Water developers_ - -### /Docs - -_Documentation Website_ - -The `/docs` directory contains the source code for the documentation website. - -To run the docs you can do the following: - -```bash -npm install -npm run build - -cd docs -npm install -npm run dev -``` - -This will first _install_ the dependencies for the library then it `npm link`'s the package in the docs. - -When you're making frequent changes you should consider importing the components directly from the package. -i.e. - -```js -import { CWMSPlot } from "../path/to/lib/path/to/component"; -``` - -This will install the dependencies, and then run the docs in development mode. - -### Lib - -_groundwork-water npm library_ - -The `/lib` directory contains the source code for the package itself. - -These are the components that would be shared with the community but also within the docs themselves for testing and to showcase the components. - -### Publishing - -**_NOTE:_** You will first need to be added as a collaborator to the package on NPM. - -To publish a new version of the package, run the following command: - -```bash -npm run publish -``` - -This will build the package, and then publish it to NPM. From 5f479bf9757a87e9651c88051b549f7515fb582f Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:04:21 -0600 Subject: [PATCH 03/12] Update readme to include shields and developer docs reference --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6440940..075f4c0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # Groundwork Water Components -## Getting Started +![GitHub Release](https://img.shields.io/github/v/release/usace-watermanagement/groundwork-water) +![NPM Version](https://img.shields.io/npm/v/@usace-watermanagement/groundwork-water) +![GitHub Issues](https://img.shields.io/github/issues/usace-watermanagement/groundwork-water) +![GitHub Pull Requests](https://img.shields.io/github/issues-pr/usace-watermanagement/groundwork-water) +![Last Commit](https://img.shields.io/github/last-commit/usace-watermanagement/groundwork-water) + +## Getting Started ![React](https://img.shields.io/badge/React-18+-61dafb) ```bash npm install @usace-watermanagement/groundwork-water --save @@ -8,9 +14,13 @@ npm install @usace-watermanagement/groundwork-water --save Will install the groundwork water components to your local `node_modules` directory, and add it to your packages.json for future use. -## Documentation +## Documentation ![Docs](https://img.shields.io/badge/docs-available-brightgreen) You can read the current Groundwork Water Documentation: [https://usace-watermanagement.github.io/groundwork-water/](https://usace-watermanagement.github.io/groundwork-water/) [View Source on Github](https://github.com/USACE-WaterManagement/groundwork-water) + +## Developers ![NPM Downloads](https://img.shields.io/npm/dm/@usace-watermanagement/groundwork-water) + +If you wish to contribute to the `groundwork-water` project and you are a current water management member within USACE. Please consider checking out the [CONTRIBUTING](/CONTRIBUTING.md) documentation! From 3d627afbbe063b5c1595fb4fcde65c623d57753f Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:13:34 -0600 Subject: [PATCH 04/12] Add wording to issue submission --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 897d93e..3e2e3ca 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ _Note: You must have nodejs installed and in your path!_ 1. **Submit an issue** 1. Create an [issue](https://github.com/USACE-WaterManagement/groundwork-water/issues) as bug or feature/etc - 2. If you wish to work the issue, ask for it to be assigned to you + 2. If you wish to work the issue, ask for it to be assigned to you. If you can, assign it to yourself. 2. **Retrieve the Repository** - Non Core Developers: - Create your own fork and clone it locally. From 8d246573b5e99628bb79f1a58cb9203fb3d3ce76 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:15:00 -0600 Subject: [PATCH 05/12] Update create branch docs for clarity --- CONTRIBUTING.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e2e3ca..c4fea3e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,16 +16,18 @@ _Note: You must have nodejs installed and in your path!_ - Create your own fork and clone it locally. - Developers (Ask for access): - Clone the repository directory - - Try to use the "create branch" feature on the right sidebar of GitHub in the issue's given page -3. **Create a Branch** - Use a descriptive branch name for your feature or fix: +3. **Create a Branch** + + _NOTE_: Try to use the "create branch" feature on the right sidebar of GitHub in the issue's given page + + If Not: Use a descriptive branch name for your feature or fix: ```bash git checkout -b feature/your-feature-name ``` - Or use VSCode + Or use VSCode to create the branch after step 2 4. **Install the root and docs packages** Install the required dependencies for the docs page and library with: @@ -70,11 +72,12 @@ _Note: You must have nodejs installed and in your path!_ To do this run: `changesets patch` - We use semantic versioning, or semver. Read more here: https://semver.org/ - In short: - - `major` if it **breaks** something. - - `minor` if it's a functionality that does _not_ break anything. - - `patch` if it's a bug fix that does _not_ break something. +We use semantic versioning, or semver. Read more here: https://semver.org/ + In short: + +- `major` if it **breaks** something. +- `minor` if it's a functionality that does _not_ break anything. +- `patch` if it's a bug fix that does _not_ break something. 10. **Push and Open a Pull Request** Read more below about [PRs](#pull-requests) From 6c2959a1bb7b4bb4aff2f89177e25cf28607afca Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:24:35 -0600 Subject: [PATCH 06/12] Add npx to changesets in case node bin is not in path --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4fea3e..40249ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -70,7 +70,7 @@ _Note: You must have nodejs installed and in your path!_ 9. **Version your Code** Run changesets to version your code. To do this run: - `changesets patch` + `npx changesets patch` We use semantic versioning, or semver. Read more here: https://semver.org/ In short: From 7a6b533cbb00b89337bbf66b81a8b5d1e2415749 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:25:05 -0600 Subject: [PATCH 07/12] Add empty changeset to pass test, docs need no version bump --- .changeset/icy-olives-lick.md | 2 + package-lock.json | 72 +++++++++-------------------------- 2 files changed, 21 insertions(+), 53 deletions(-) create mode 100644 .changeset/icy-olives-lick.md diff --git a/.changeset/icy-olives-lick.md b/.changeset/icy-olives-lick.md new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/.changeset/icy-olives-lick.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/package-lock.json b/package-lock.json index 0d23392..549c642 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@usace-watermanagement/groundwork-water", - "version": "3.4.1", + "version": "3.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@usace-watermanagement/groundwork-water", - "version": "3.4.1", + "version": "3.5.2", "license": "MIT", "dependencies": { "cwmsjs": "^2.3.0-2024.12.10", @@ -90,6 +90,7 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1210,7 +1211,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/utils": "^0.2.10" } @@ -1220,7 +1220,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" @@ -1231,7 +1230,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/react-dom": "^2.1.2", "@floating-ui/utils": "^0.2.8", @@ -1247,7 +1245,6 @@ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/dom": "^1.7.4" }, @@ -1260,15 +1257,13 @@ "version": "0.2.10", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@headlessui/react": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.9.tgz", "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/react": "^0.26.16", "@react-aria/focus": "^3.20.2", @@ -1638,7 +1633,6 @@ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.2.tgz", "integrity": "sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@react-aria/interactions": "^3.25.6", "@react-aria/utils": "^3.31.0", @@ -1656,7 +1650,6 @@ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.6.tgz", "integrity": "sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@react-aria/ssr": "^3.9.10", "@react-aria/utils": "^3.31.0", @@ -1674,7 +1667,6 @@ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -1690,7 +1682,6 @@ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.31.0.tgz", "integrity": "sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@react-aria/ssr": "^3.9.10", "@react-stately/flags": "^3.1.2", @@ -1709,7 +1700,6 @@ "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } @@ -1719,7 +1709,6 @@ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.8.tgz", "integrity": "sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -1732,7 +1721,6 @@ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.32.1.tgz", "integrity": "sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==", "license": "Apache-2.0", - "peer": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -2057,7 +2045,6 @@ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.8.0" } @@ -2067,7 +2054,6 @@ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", "license": "MIT", - "peer": true, "dependencies": { "mini-svg-data-uri": "^1.2.3" }, @@ -2080,7 +2066,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.10.tgz", "integrity": "sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -2108,7 +2093,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz", "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/virtual-core": "3.13.12" }, @@ -2126,7 +2110,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz", "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -2184,18 +2167,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/node": { - "version": "24.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~7.16.0" - } - }, "node_modules/@types/ol": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@types/ol/-/ol-7.0.0.tgz", @@ -2226,6 +2197,7 @@ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -2277,6 +2249,7 @@ "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.47.0", "@typescript-eslint/types": "8.47.0", @@ -2530,6 +2503,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2950,6 +2924,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -3767,6 +3742,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4989,8 +4965,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/internal-nav-helper/-/internal-nav-helper-3.1.0.tgz", "integrity": "sha512-05fxcHzJqH2ObzfykSSO/WREvMQJtK+O1jhVKcPev0ovlMnJ5vNv0I0EudJx/iQK93/96hFfjjU2tvNQ1h580g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/internal-slot": { "version": "1.1.0", @@ -5507,6 +5482,7 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -5879,7 +5855,6 @@ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", "license": "MIT", - "peer": true, "bin": { "mini-svg-data-uri": "cli.js" } @@ -6482,6 +6457,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -6881,7 +6857,6 @@ "resolved": "https://registry.npmjs.org/redux-bundler-hook/-/redux-bundler-hook-1.0.3.tgz", "integrity": "sha512-QDeGuR0hOXjURnCxHlYfOvD46KwqcZEMRaxdo06FQKMQO+o6yRHTyBN3iZLhgQSoM0VEyjLmGrulfBm6ciOBnQ==", "license": "MIT", - "peer": true, "peerDependencies": { "react": ">=16.8.6", "redux-bundler": "*" @@ -6892,7 +6867,6 @@ "resolved": "https://registry.npmjs.org/redux-bundler-react/-/redux-bundler-react-1.2.0.tgz", "integrity": "sha512-vyZMnt+uXyhihoZu8CyEQOfJIbhvl+yhvrL+WB+yo6kckYPBXOfXNssiviHrOb49BSWb30BRGQ6HX/ydk39Tvg==", "license": "MIT", - "peer": true, "peerDependencies": { "react": "*", "redux-bundler": "*" @@ -7162,7 +7136,6 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -7748,14 +7721,14 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz", "integrity": "sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tailwindcss": { "version": "3.4.18", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", "license": "MIT", + "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -7890,6 +7863,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7955,8 +7929,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", @@ -8068,6 +8041,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8095,15 +8069,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -8160,7 +8125,6 @@ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", - "peer": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -8177,6 +8141,7 @@ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -8270,6 +8235,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, From 7852b2458951b600b2736d3f1067dd08e419aef3 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Thu, 18 Dec 2025 16:26:09 -0600 Subject: [PATCH 08/12] Correct changset cmd to singular/add empty option --- CONTRIBUTING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40249ba..d96ec5c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -70,7 +70,10 @@ _Note: You must have nodejs installed and in your path!_ 9. **Version your Code** Run changesets to version your code. To do this run: - `npx changesets patch` + `npx changeset patch` + + If you are working on documentation and do not need a version bump: + `npx changeset add --empty` We use semantic versioning, or semver. Read more here: https://semver.org/ In short: From 6c18315ef38661b17c38f84dfcfaff999a9b1471 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Mon, 5 Jan 2026 15:50:38 -0600 Subject: [PATCH 09/12] Resolve vscode typo to github --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d96ec5c..07672f8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -99,7 +99,7 @@ To help keep your code formatted while you make changes you might consider in vs ## Reporting Issues -- Report issues directly in VSCode. Using the issue submission tool consider labeling it with a priority to help us gauge if it is a blocker. +- Report issues directly in GitHub. Using the issue submission tool consider labeling it with a priority to help us gauge if it is a blocker. - Provide steps to reproduce bugs and relevant logs or screenshots. - Do NOT post sensitive information such as: - IP Addresses From fcfd9e0991389b21dabc8c7bbb4e46d26987672b Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Mon, 5 Jan 2026 15:52:18 -0600 Subject: [PATCH 10/12] Move questions to the end and bump up sub headings that were under questions --- CONTRIBUTING.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07672f8..e1c0469 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -111,13 +111,7 @@ To help keep your code formatted while you make changes you might consider in vs - Be respectful and constructive in all communications. -## Questions? - -Open an issue or start a discussion if you need help. - -Thank you for helping improve Groundwork Water! - -### Pull Requests +## Pull Requests - Where possible, commits and pull requests should be [atomic](https://en.wikipedia.org/wiki/Atomic_commit): _Keeping commits and PRs to one topic at a time_ @@ -132,7 +126,7 @@ Thank you for helping improve Groundwork Water! This can also be done in VSCode using the `Version Control` menu: ![rebase from main](_images/rebase-main.png) -### Workflow Recommendations +## Workflow Recommendations - Use `npm link` to connect your project or the `docs` to the local generated `groundwork-water` - See the `link` script in `package.json` for details @@ -142,7 +136,7 @@ Thank you for helping improve Groundwork Water! - Command Prompt in VSCode : [Integrated Terminal](https://code.visualstudio.com/docs/terminal/getting-started) - [Tips & Tricks](https://code.visualstudio.com/docs/getstarted/tips-and-tricks) -### Extensions +## Extensions - [TailwindCSS](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) -> Provides you inline tailwind options in your `className` blocks - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) -> Industry standard for styling, large community, and works in many programming languages @@ -150,7 +144,7 @@ Thank you for helping improve Groundwork Water! - [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) -> Don't let the typos win - [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) -> Adds a graph icon on your "Source Control" line to let you view a visual representation of your git state -### Styling / formatting +## Styling / formatting - Style often and consider [Format on Save for Workspace](![Format on Save in Workspace](./_images/save_workspace_format.png)) - Use the Prettier extension mentioned before to format with @@ -209,3 +203,9 @@ npm run publish ``` This will build the package, and then publish it to NPM. + +## Questions? + +Open an issue or start a discussion if you need help. + +Thank you for helping improve Groundwork Water! From 0c538bbdb494c7091e7595bf7247092be914d7eb Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Mon, 5 Jan 2026 16:00:09 -0600 Subject: [PATCH 11/12] Improve wording around changesets command and what is expected --- CONTRIBUTING.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e1c0469..13d1d80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -173,7 +173,7 @@ npm run dev This will first _install_ the dependencies for the library then it `npm link`'s the package in the docs. -When you're making frequent changes you should consider importing the components directly from the package. +When you're making frequent changes you might consider importing the components directly from the package. i.e. ```js @@ -182,6 +182,16 @@ import { CWMSPlot } from "../path/to/lib/path/to/component"; This will install the dependencies, and then run the docs in development mode. +**NOTE**: BE SURE, if you use this method to change the import back to using the library import before committing your changes: + +i.e. + +```js +import { CWMSPlot } from "@usace-watermanagement/groundwork-water"; +``` + +If you do not, your changes will be broken in the official NPM release. + ### groundwork-water npm library The `/lib` directory contains the source code for the package itself. @@ -192,7 +202,13 @@ These are the components that would be shared with the community but also within Publishing is done automatically via `changesets` and keys setup in the GitHub secrets. A [PR](#pull-requests) to main with a version bump is sufficient to trigger a publication. -#### Publishing Manually +When a PR with a changesets file is merged to the main branch, changesets will automatically aggregate the changes into a new PR that it manages automatically. When desired, library maintainers can trigger a release by merging the changesets-managed PR. + +You need only worry about running the command `changesets` when you are ready to version your changes. Then commit the files the changesets command creates. + +We prefer you to run this command and commit prior to making the PR. + +### Publishing Manually **_NOTE:_** You will first need to be added as a collaborator to the package on NPM. From 2beccc1fd577198af7ef489130dd60d39f8363f8 Mon Sep 17 00:00:00 2001 From: Charles Graham SWT Date: Mon, 5 Jan 2026 16:01:31 -0600 Subject: [PATCH 12/12] Fix incomplete sentence --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 075f4c0..9f67239 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,6 @@ Will install the groundwork water components to your local `node_modules` direct You can read the current Groundwork Water Documentation: [https://usace-watermanagement.github.io/groundwork-water/](https://usace-watermanagement.github.io/groundwork-water/) -[View Source on Github](https://github.com/USACE-WaterManagement/groundwork-water) - ## Developers ![NPM Downloads](https://img.shields.io/npm/dm/@usace-watermanagement/groundwork-water) -If you wish to contribute to the `groundwork-water` project and you are a current water management member within USACE. Please consider checking out the [CONTRIBUTING](/CONTRIBUTING.md) documentation! +If you wish to contribute to the `groundwork-water` project, and you are a current water management member within USACE, please consider checking out the [CONTRIBUTING](/CONTRIBUTING.md) documentation!