feat: initial project prototype (#2)
Node.js CI / Lint and Test (push) Has been cancelled

### Explanation

_No response_

### Issue

_No response_

### Attestations

- [x] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [x] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [x] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [x] I have pinned the dependencies to a specific patch version.

### Style

- [x] I have run the linter and resolved any errors.
- [x] My pull request uses an appropriate title, matching the conventional commit standards.
- [x] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [x] All new and existing tests pass locally with my changes.
- [x] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

Major - My pull request introduces a breaking change.

Reviewed-on: nhcarrigan/forms#2
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit was merged in pull request #2.
This commit is contained in:
2025-02-17 14:03:32 -08:00
committed by Naomi Carrigan
parent b43bfd612b
commit e8f5078aa3
120 changed files with 15657 additions and 0 deletions
@@ -0,0 +1,7 @@
p, label {
font-size: 0.7rem;
}
strong {
color: red;
}
@@ -0,0 +1,16 @@
<p>
nhcarrigan is committed to protecting and respecting your privacy, and we will
only use your personal information to administer your account and to provide
the products and services you requested from us.
</p>
<p>
We are required to collect your consent to email you. If we don't, we could
not send you a response to your form submission. We will ONLY use your email
address to respond to the form submission, and your data will be automatically
deleted once we have responded to your submission.
</p>
<input id="consent" name="consent" type="checkbox" required [formControl]="control()" />
<label for="consent">
I agree to receive email communication from NHCarrigan
<strong>for the sole purpose</strong> of responding to this form submission.
</label>
@@ -0,0 +1,17 @@
/**
* @copyright nhcarrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
import { Component, input } from "@angular/core";
import { type FormControl, ReactiveFormsModule } from "@angular/forms";
@Component({
imports: [ ReactiveFormsModule ],
selector: "app-consent",
styleUrl: "./consent.component.css",
templateUrl: "./consent.component.html",
})
export class ConsentComponent {
public control = input.required<FormControl>();
}