Compare commits
17 Commits
283b5d8a49
...
0.0.20
Author | SHA1 | Date | |
---|---|---|---|
94e316daf6 | |||
76d3e0a64d | |||
75c750c493 | |||
823ac4f5c8 | |||
292cefb945 | |||
7f3499aba1 | |||
f62e434dff | |||
7190b306e7 | |||
d9225e36d7 | |||
c957b156d8 | |||
f936bae555 | |||
52ec6d7b81 | |||
49751bb433 | |||
18f711444f | |||
c263bc4573 | |||
c4b5d24186 | |||
b532de646d |
54
README.md
54
README.md
@ -1,10 +1,41 @@
|
|||||||
# Spotlight
|
# West Sound Hall Website
|
||||||
|
|
||||||
Spotlight is a [Tailwind UI](https://tailwindui.com) site template built using [Tailwind CSS](https://tailwindcss.com) and [Next.js](https://nextjs.org).
|
This is the website for the West Sound Hall and Community Club on Orcas Island, WA.
|
||||||
|
|
||||||
## Getting started
|
https://westsoundhall.org
|
||||||
|
|
||||||
To get started with this template, first install the npm dependencies:
|
## Running
|
||||||
|
|
||||||
|
Pre-build containers are created whenever a version is tagged in this
|
||||||
|
repository. Pull the [latest
|
||||||
|
version](https://git.grosinger.net/tgrosinger/-/packages/container/west-sound-hall/)
|
||||||
|
and run on a server with Docker available.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -p 3000:3000 git.grosinger.net/tgrosinger/west-sound-hall:0.0.14
|
||||||
|
```
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
### Events on the Homepage
|
||||||
|
|
||||||
|
The homepage has a list of upcoming events. This list is created from [`src/app/upcoming-events.json`](https://git.grosinger.net/tgrosinger/west-sound-hall/src/branch/main/src/app/upcoming-events.json). To update the events listed, modify that file, tag a new version, and then update the running container to the latest version.
|
||||||
|
|
||||||
|
Events in the past will be automatically hidden from view.
|
||||||
|
|
||||||
|
### News Posts
|
||||||
|
|
||||||
|
News posts are written in [`src/app/news`](https://git.grosinger.net/tgrosinger/west-sound-hall/src/branch/main/src/app/news). Each post requires a directory within this folder, and the directory title will become the last segment of the news post URL.
|
||||||
|
|
||||||
|
To create a new post, create a new directory in that folder, then within that folder create a `page.mdx`. Use an existing news post as a template by copying its `page.mdx` then modify the author, date, title, description, and the body of the post as needed.
|
||||||
|
|
||||||
|
Posts are written in [mdx](https://mdxjs.com/) however for most news posts you can just consider the body of the post to be [standard markdown](https://www.markdownguide.org/basic-syntax/).
|
||||||
|
|
||||||
|
Photos can be added in the same directory as the `page.mdx` file. Refer to another news post for an example of how to embed them.
|
||||||
|
|
||||||
|
## Developing
|
||||||
|
|
||||||
|
To get started, first install the npm dependencies:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install
|
npm install
|
||||||
@ -24,19 +55,8 @@ npm run dev
|
|||||||
|
|
||||||
Finally, open [http://localhost:3000](http://localhost:3000) in your browser to view the website.
|
Finally, open [http://localhost:3000](http://localhost:3000) in your browser to view the website.
|
||||||
|
|
||||||
## Customizing
|
|
||||||
|
|
||||||
You can start editing this template by modifying the files in the `/src` folder. The site will auto-update as you edit these files.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This site template is a commercial product and is licensed under the [Tailwind UI license](https://tailwindui.com/license).
|
This site is based off of the Spotlight template from Tailwind, and licensed under the [Tailwind UI license](https://tailwindui.com/license).
|
||||||
|
|
||||||
## Learn more
|
It was purchased by Tony Grosinger.
|
||||||
|
|
||||||
To learn more about the technologies used in this site template, see the following resources:
|
|
||||||
|
|
||||||
- [Tailwind CSS](https://tailwindcss.com/docs) - the official Tailwind CSS documentation
|
|
||||||
- [Next.js](https://nextjs.org/docs) - the official Next.js documentation
|
|
||||||
- [Headless UI](https://headlessui.dev) - the official Headless UI documentation
|
|
||||||
- [MDX](https://mdxjs.com) - the MDX documentation
|
|
||||||
|
134
package-lock.json
generated
134
package-lock.json
generated
@ -33,6 +33,7 @@
|
|||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"remark-gfm": "^3.0.1",
|
"remark-gfm": "^3.0.1",
|
||||||
|
"sharp": "0.32.6",
|
||||||
"stripe": "14.9.0",
|
"stripe": "14.9.0",
|
||||||
"tailwindcss": "^3.3.3",
|
"tailwindcss": "^3.3.3",
|
||||||
"typescript": "5.1.6"
|
"typescript": "5.1.6"
|
||||||
@ -41,8 +42,7 @@
|
|||||||
"eslint": "8.45.0",
|
"eslint": "8.45.0",
|
||||||
"eslint-config-next": "13.4.16",
|
"eslint-config-next": "13.4.16",
|
||||||
"prettier": "^3.0.1",
|
"prettier": "^3.0.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.5.2",
|
"prettier-plugin-tailwindcss": "^0.5.2"
|
||||||
"sharp": "0.32.6"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aashutoshrathi/word-wrap": {
|
"node_modules/@aashutoshrathi/word-wrap": {
|
||||||
@ -1381,8 +1381,7 @@
|
|||||||
"node_modules/b4a": {
|
"node_modules/b4a": {
|
||||||
"version": "1.6.4",
|
"version": "1.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
|
||||||
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
|
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/babel-code-frame": {
|
"node_modules/babel-code-frame": {
|
||||||
"version": "6.26.0",
|
"version": "6.26.0",
|
||||||
@ -1475,7 +1474,6 @@
|
|||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@ -1512,7 +1510,6 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"buffer": "^5.5.0",
|
"buffer": "^5.5.0",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
@ -1632,7 +1629,6 @@
|
|||||||
"version": "5.7.1",
|
"version": "5.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@ -1936,8 +1932,7 @@
|
|||||||
"node_modules/chownr": {
|
"node_modules/chownr": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/chrome-trace-event": {
|
"node_modules/chrome-trace-event": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@ -2066,7 +2061,6 @@
|
|||||||
"version": "4.2.3",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
||||||
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color-convert": "^2.0.1",
|
"color-convert": "^2.0.1",
|
||||||
"color-string": "^1.9.0"
|
"color-string": "^1.9.0"
|
||||||
@ -2095,7 +2089,6 @@
|
|||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
|
||||||
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
|
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color-name": "^1.0.0",
|
"color-name": "^1.0.0",
|
||||||
"simple-swizzle": "^0.2.2"
|
"simple-swizzle": "^0.2.2"
|
||||||
@ -2406,7 +2399,6 @@
|
|||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
||||||
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
|
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
@ -3300,7 +3292,6 @@
|
|||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
@ -3342,8 +3333,7 @@
|
|||||||
"node_modules/fast-fifo": {
|
"node_modules/fast-fifo": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
|
||||||
"integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==",
|
"integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/fast-glob": {
|
"node_modules/fast-glob": {
|
||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
@ -3537,8 +3527,7 @@
|
|||||||
"node_modules/fs-constants": {
|
"node_modules/fs-constants": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/fs-exists-sync": {
|
"node_modules/fs-exists-sync": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
@ -3701,8 +3690,7 @@
|
|||||||
"node_modules/github-from-package": {
|
"node_modules/github-from-package": {
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "7.1.7",
|
"version": "7.1.7",
|
||||||
@ -4137,7 +4125,6 @@
|
|||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@ -4294,8 +4281,7 @@
|
|||||||
"node_modules/is-arrayish": {
|
"node_modules/is-arrayish": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
|
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/is-bigint": {
|
"node_modules/is-bigint": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
@ -5603,7 +5589,6 @@
|
|||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
},
|
},
|
||||||
@ -6838,8 +6823,7 @@
|
|||||||
"node_modules/mkdirp-classic": {
|
"node_modules/mkdirp-classic": {
|
||||||
"version": "0.5.3",
|
"version": "0.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
||||||
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/mri": {
|
"node_modules/mri": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@ -7013,8 +6997,7 @@
|
|||||||
"node_modules/napi-build-utils": {
|
"node_modules/napi-build-utils": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
||||||
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
|
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/natural-compare": {
|
"node_modules/natural-compare": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
@ -7111,7 +7094,6 @@
|
|||||||
"version": "3.46.0",
|
"version": "3.46.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.46.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.46.0.tgz",
|
||||||
"integrity": "sha512-LXvP3AqTIrtvH/jllXjkNVbYifpRbt9ThTtymSMSuHmhugQLAWr99QQFTm+ZRht9ziUvdGOgB+esme1C6iE6Lg==",
|
"integrity": "sha512-LXvP3AqTIrtvH/jllXjkNVbYifpRbt9ThTtymSMSuHmhugQLAWr99QQFTm+ZRht9ziUvdGOgB+esme1C6iE6Lg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"semver": "^7.3.5"
|
"semver": "^7.3.5"
|
||||||
},
|
},
|
||||||
@ -7122,8 +7104,7 @@
|
|||||||
"node_modules/node-addon-api": {
|
"node_modules/node-addon-api": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
||||||
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
|
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.13",
|
"version": "2.0.13",
|
||||||
@ -7798,7 +7779,6 @@
|
|||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
|
||||||
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
|
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"detect-libc": "^2.0.0",
|
"detect-libc": "^2.0.0",
|
||||||
"expand-template": "^2.0.3",
|
"expand-template": "^2.0.3",
|
||||||
@ -7824,7 +7804,6 @@
|
|||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
||||||
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chownr": "^1.1.1",
|
"chownr": "^1.1.1",
|
||||||
"mkdirp-classic": "^0.5.2",
|
"mkdirp-classic": "^0.5.2",
|
||||||
@ -7836,7 +7815,6 @@
|
|||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
||||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bl": "^4.0.3",
|
"bl": "^4.0.3",
|
||||||
"end-of-stream": "^1.4.1",
|
"end-of-stream": "^1.4.1",
|
||||||
@ -8061,8 +8039,7 @@
|
|||||||
"node_modules/queue-tick": {
|
"node_modules/queue-tick": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
|
||||||
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
|
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/randombytes": {
|
"node_modules/randombytes": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
@ -8135,7 +8112,6 @@
|
|||||||
"version": "3.6.2",
|
"version": "3.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
"string_decoder": "^1.1.1",
|
"string_decoder": "^1.1.1",
|
||||||
@ -8664,7 +8640,6 @@
|
|||||||
"version": "7.5.4",
|
"version": "7.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||||
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
},
|
},
|
||||||
@ -8717,7 +8692,6 @@
|
|||||||
"version": "0.32.6",
|
"version": "0.32.6",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
||||||
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
||||||
"dev": true,
|
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color": "^4.2.3",
|
"color": "^4.2.3",
|
||||||
@ -8784,7 +8758,6 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@ -8804,7 +8777,6 @@
|
|||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
||||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@ -8829,7 +8801,6 @@
|
|||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mimic-response": "^3.1.0"
|
"mimic-response": "^3.1.0"
|
||||||
},
|
},
|
||||||
@ -8844,7 +8815,6 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
},
|
},
|
||||||
@ -8856,7 +8826,6 @@
|
|||||||
"version": "0.2.2",
|
"version": "0.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||||
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
|
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-arrayish": "^0.3.1"
|
"is-arrayish": "^0.3.1"
|
||||||
}
|
}
|
||||||
@ -8948,7 +8917,6 @@
|
|||||||
"version": "2.15.1",
|
"version": "2.15.1",
|
||||||
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
|
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
|
||||||
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
|
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-fifo": "^1.1.0",
|
"fast-fifo": "^1.1.0",
|
||||||
"queue-tick": "^1.0.1"
|
"queue-tick": "^1.0.1"
|
||||||
@ -8958,7 +8926,6 @@
|
|||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
||||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"safe-buffer": "~5.2.0"
|
"safe-buffer": "~5.2.0"
|
||||||
}
|
}
|
||||||
@ -9287,7 +9254,6 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
|
||||||
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
|
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mkdirp-classic": "^0.5.2",
|
"mkdirp-classic": "^0.5.2",
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
@ -9298,7 +9264,6 @@
|
|||||||
"version": "3.1.6",
|
"version": "3.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
|
||||||
"integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
|
"integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"b4a": "^1.6.4",
|
"b4a": "^1.6.4",
|
||||||
"fast-fifo": "^1.2.0",
|
"fast-fifo": "^1.2.0",
|
||||||
@ -9519,7 +9484,6 @@
|
|||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
},
|
},
|
||||||
@ -10327,8 +10291,7 @@
|
|||||||
"node_modules/yallist": {
|
"node_modules/yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
@ -11481,8 +11444,7 @@
|
|||||||
"b4a": {
|
"b4a": {
|
||||||
"version": "1.6.4",
|
"version": "1.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
|
||||||
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==",
|
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"babel-code-frame": {
|
"babel-code-frame": {
|
||||||
"version": "6.26.0",
|
"version": "6.26.0",
|
||||||
@ -11554,8 +11516,7 @@
|
|||||||
"base64-js": {
|
"base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"big-integer": {
|
"big-integer": {
|
||||||
"version": "1.6.51",
|
"version": "1.6.51",
|
||||||
@ -11572,7 +11533,6 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"buffer": "^5.5.0",
|
"buffer": "^5.5.0",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
@ -11656,7 +11616,6 @@
|
|||||||
"version": "5.7.1",
|
"version": "5.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"base64-js": "^1.3.1",
|
"base64-js": "^1.3.1",
|
||||||
"ieee754": "^1.1.13"
|
"ieee754": "^1.1.13"
|
||||||
@ -11848,8 +11807,7 @@
|
|||||||
"chownr": {
|
"chownr": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"chrome-trace-event": {
|
"chrome-trace-event": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@ -11947,7 +11905,6 @@
|
|||||||
"version": "4.2.3",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
||||||
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-convert": "^2.0.1",
|
"color-convert": "^2.0.1",
|
||||||
"color-string": "^1.9.0"
|
"color-string": "^1.9.0"
|
||||||
@ -11970,7 +11927,6 @@
|
|||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
|
||||||
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
|
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-name": "^1.0.0",
|
"color-name": "^1.0.0",
|
||||||
"simple-swizzle": "^0.2.2"
|
"simple-swizzle": "^0.2.2"
|
||||||
@ -12186,8 +12142,7 @@
|
|||||||
"detect-libc": {
|
"detect-libc": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
||||||
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
|
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"didyoumean": {
|
"didyoumean": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
@ -12858,8 +12813,7 @@
|
|||||||
"expand-template": {
|
"expand-template": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
@ -12892,8 +12846,7 @@
|
|||||||
"fast-fifo": {
|
"fast-fifo": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
|
||||||
"integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==",
|
"integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fast-glob": {
|
"fast-glob": {
|
||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
@ -13034,8 +12987,7 @@
|
|||||||
"fs-constants": {
|
"fs-constants": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fs-exists-sync": {
|
"fs-exists-sync": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
@ -13149,8 +13101,7 @@
|
|||||||
"github-from-package": {
|
"github-from-package": {
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "7.1.7",
|
"version": "7.1.7",
|
||||||
@ -13460,8 +13411,7 @@
|
|||||||
"ieee754": {
|
"ieee754": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"ignore": {
|
"ignore": {
|
||||||
"version": "5.2.4",
|
"version": "5.2.4",
|
||||||
@ -13572,8 +13522,7 @@
|
|||||||
"is-arrayish": {
|
"is-arrayish": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
|
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-bigint": {
|
"is-bigint": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
@ -14510,7 +14459,6 @@
|
|||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
}
|
}
|
||||||
@ -15310,8 +15258,7 @@
|
|||||||
"mkdirp-classic": {
|
"mkdirp-classic": {
|
||||||
"version": "0.5.3",
|
"version": "0.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
||||||
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mri": {
|
"mri": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@ -15442,8 +15389,7 @@
|
|||||||
"napi-build-utils": {
|
"napi-build-utils": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
||||||
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
|
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"natural-compare": {
|
"natural-compare": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
@ -15503,7 +15449,6 @@
|
|||||||
"version": "3.46.0",
|
"version": "3.46.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.46.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.46.0.tgz",
|
||||||
"integrity": "sha512-LXvP3AqTIrtvH/jllXjkNVbYifpRbt9ThTtymSMSuHmhugQLAWr99QQFTm+ZRht9ziUvdGOgB+esme1C6iE6Lg==",
|
"integrity": "sha512-LXvP3AqTIrtvH/jllXjkNVbYifpRbt9ThTtymSMSuHmhugQLAWr99QQFTm+ZRht9ziUvdGOgB+esme1C6iE6Lg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^7.3.5"
|
"semver": "^7.3.5"
|
||||||
}
|
}
|
||||||
@ -15511,8 +15456,7 @@
|
|||||||
"node-addon-api": {
|
"node-addon-api": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
||||||
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
|
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node-releases": {
|
"node-releases": {
|
||||||
"version": "2.0.13",
|
"version": "2.0.13",
|
||||||
@ -15966,7 +15910,6 @@
|
|||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
|
||||||
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
|
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"detect-libc": "^2.0.0",
|
"detect-libc": "^2.0.0",
|
||||||
"expand-template": "^2.0.3",
|
"expand-template": "^2.0.3",
|
||||||
@ -15986,7 +15929,6 @@
|
|||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
||||||
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"chownr": "^1.1.1",
|
"chownr": "^1.1.1",
|
||||||
"mkdirp-classic": "^0.5.2",
|
"mkdirp-classic": "^0.5.2",
|
||||||
@ -15998,7 +15940,6 @@
|
|||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
||||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"bl": "^4.0.3",
|
"bl": "^4.0.3",
|
||||||
"end-of-stream": "^1.4.1",
|
"end-of-stream": "^1.4.1",
|
||||||
@ -16109,8 +16050,7 @@
|
|||||||
"queue-tick": {
|
"queue-tick": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
|
||||||
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
|
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"randombytes": {
|
"randombytes": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
@ -16173,7 +16113,6 @@
|
|||||||
"version": "3.6.2",
|
"version": "3.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
"string_decoder": "^1.1.1",
|
"string_decoder": "^1.1.1",
|
||||||
@ -16538,7 +16477,6 @@
|
|||||||
"version": "7.5.4",
|
"version": "7.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||||
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
}
|
}
|
||||||
@ -16581,7 +16519,6 @@
|
|||||||
"version": "0.32.6",
|
"version": "0.32.6",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
||||||
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"color": "^4.2.3",
|
"color": "^4.2.3",
|
||||||
"detect-libc": "^2.0.2",
|
"detect-libc": "^2.0.2",
|
||||||
@ -16631,14 +16568,12 @@
|
|||||||
"simple-concat": {
|
"simple-concat": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"simple-get": {
|
"simple-get": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
||||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"decompress-response": "^6.0.0",
|
"decompress-response": "^6.0.0",
|
||||||
"once": "^1.3.1",
|
"once": "^1.3.1",
|
||||||
@ -16649,7 +16584,6 @@
|
|||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-response": "^3.1.0"
|
"mimic-response": "^3.1.0"
|
||||||
}
|
}
|
||||||
@ -16657,8 +16591,7 @@
|
|||||||
"mimic-response": {
|
"mimic-response": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -16666,7 +16599,6 @@
|
|||||||
"version": "0.2.2",
|
"version": "0.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||||
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
|
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-arrayish": "^0.3.1"
|
"is-arrayish": "^0.3.1"
|
||||||
}
|
}
|
||||||
@ -16732,7 +16664,6 @@
|
|||||||
"version": "2.15.1",
|
"version": "2.15.1",
|
||||||
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
|
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
|
||||||
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
|
"integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-fifo": "^1.1.0",
|
"fast-fifo": "^1.1.0",
|
||||||
"queue-tick": "^1.0.1"
|
"queue-tick": "^1.0.1"
|
||||||
@ -16742,7 +16673,6 @@
|
|||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
||||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "~5.2.0"
|
"safe-buffer": "~5.2.0"
|
||||||
}
|
}
|
||||||
@ -16975,7 +16905,6 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
|
||||||
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
|
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mkdirp-classic": "^0.5.2",
|
"mkdirp-classic": "^0.5.2",
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
@ -16986,7 +16915,6 @@
|
|||||||
"version": "3.1.6",
|
"version": "3.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
|
||||||
"integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
|
"integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"b4a": "^1.6.4",
|
"b4a": "^1.6.4",
|
||||||
"fast-fifo": "^1.2.0",
|
"fast-fifo": "^1.2.0",
|
||||||
@ -17143,7 +17071,6 @@
|
|||||||
"version": "0.6.0",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
@ -17730,8 +17657,7 @@
|
|||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"yaml": {
|
"yaml": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
|
124
src/app/board-of-directors/page.tsx
Normal file
124
src/app/board-of-directors/page.tsx
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
import { type Metadata } from 'next'
|
||||||
|
import Link from 'next/link'
|
||||||
|
import clsx from 'clsx'
|
||||||
|
|
||||||
|
import { Container } from '@/components/Container'
|
||||||
|
import { UserPlusIcon, GiftIcon, EnvelopeIcon } from '@heroicons/react/24/solid'
|
||||||
|
import { TableCell, TableHeading, TableLeftHeading } from '@/components/Table'
|
||||||
|
|
||||||
|
function SocialLink({
|
||||||
|
className,
|
||||||
|
href,
|
||||||
|
children,
|
||||||
|
icon: Icon,
|
||||||
|
}: {
|
||||||
|
className?: string
|
||||||
|
href: string
|
||||||
|
icon: React.ComponentType<{ className?: string }>
|
||||||
|
children: React.ReactNode
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<li className={clsx(className, 'flex')}>
|
||||||
|
<Link
|
||||||
|
href={href}
|
||||||
|
className="group flex text-sm font-medium text-zinc-800 transition hover:text-teal-500 dark:text-zinc-200 dark:hover:text-teal-500"
|
||||||
|
>
|
||||||
|
<Icon className="h-6 w-6 flex-none fill-zinc-500 transition group-hover:fill-teal-500" />
|
||||||
|
<span className="ml-4">{children}</span>
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: 'West Sound Community Club - Board of Directory',
|
||||||
|
description:
|
||||||
|
'The West Sound Community Club on Orcas Island.',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default function Club() {
|
||||||
|
return (
|
||||||
|
<Container className="mt-16 sm:mt-32">
|
||||||
|
<div className="grid grid-cols-1 gap-y-16 lg:grid-cols-2 lg:grid-rows-[auto_1fr] lg:gap-y-12">
|
||||||
|
<div className="lg:order-first lg:row-span-2">
|
||||||
|
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
|
||||||
|
The Board of Directors
|
||||||
|
</h1>
|
||||||
|
<div className="mt-6 space-y-7 text-base text-zinc-600 dark:text-zinc-400">
|
||||||
|
<p>
|
||||||
|
Elections for the Board of Directors are held annually at the October member meeting and potluck.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you are interested in being one the ballot at the upcoming
|
||||||
|
election, please
|
||||||
|
<a href="mailto:board@westsoundhall.org"
|
||||||
|
className="pl-1 text-blue-600 visited:text-purple-600 hover:underline">
|
||||||
|
contact the board
|
||||||
|
</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="overflow-x-auto -mx-4 sm:-mx-0">
|
||||||
|
<div className="inline-block min-w-full py-2 align-middle">
|
||||||
|
<table className="min-w-full divide-y divide-gray-300">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<TableHeading>Name</TableHeading>
|
||||||
|
<TableHeading>Position</TableHeading>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody className="divide-y divide-gray-200 ">
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Lisa Pedersen</TableLeftHeading>
|
||||||
|
<TableCell>President</TableCell>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Betsy Wareham</TableLeftHeading>
|
||||||
|
<TableCell>Vice President</TableCell>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Tony Grosinger</TableLeftHeading>
|
||||||
|
<TableCell>Secretary</TableCell>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Temporarily performed by Secretary</TableLeftHeading>
|
||||||
|
<TableCell>Treasurer</TableCell>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Mark Gasser</TableLeftHeading>
|
||||||
|
<TableCell>Director</TableCell>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<TableLeftHeading>Leslie Brown</TableLeftHeading>
|
||||||
|
<TableCell>Director</TableCell>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="lg:pl-20">
|
||||||
|
<ul role="list">
|
||||||
|
<SocialLink
|
||||||
|
href="mailto:contact@westsoundhall.org"
|
||||||
|
icon={EnvelopeIcon}
|
||||||
|
className="mt-4 border-zinc-100 dark:border-zinc-700/40"
|
||||||
|
>
|
||||||
|
contact@westsoundhall.org
|
||||||
|
</SocialLink>
|
||||||
|
<SocialLink
|
||||||
|
href="mailto:contact@westsoundhall.org"
|
||||||
|
icon={EnvelopeIcon}
|
||||||
|
className="mt-4 border-zinc-100 dark:border-zinc-700/40"
|
||||||
|
>
|
||||||
|
board@westsoundhall.org
|
||||||
|
</SocialLink>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Container>
|
||||||
|
)
|
||||||
|
}
|
@ -2,12 +2,12 @@
|
|||||||
import { type Metadata } from 'next'
|
import { type Metadata } from 'next'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
|
import dynamic from "next/dynamic";
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
|
|
||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
import { UserPlusIcon, GiftIcon, EnvelopeIcon } from '@heroicons/react/24/solid'
|
import { UserPlusIcon, GiftIcon, EnvelopeIcon, UserGroupIcon } from '@heroicons/react/24/solid'
|
||||||
import interiorEmptyImage from '@/images/photos/interior-empty.jpg'
|
import interiorEmptyImage from '@/images/photos/interior-empty.jpg'
|
||||||
import { ClubPayment } from './payment';
|
|
||||||
|
|
||||||
function SocialLink({
|
function SocialLink({
|
||||||
className,
|
className,
|
||||||
@ -43,6 +43,15 @@ export const metadata: Metadata = {
|
|||||||
// TODO: Replace interiorEmptyImage with a photo from a potluck
|
// TODO: Replace interiorEmptyImage with a photo from a potluck
|
||||||
|
|
||||||
export default function Club() {
|
export default function Club() {
|
||||||
|
|
||||||
|
// Dynamic import since ClubPayment uses `document`
|
||||||
|
const ClubPayment = dynamic(
|
||||||
|
() => {
|
||||||
|
return import("./payment");
|
||||||
|
},
|
||||||
|
{ ssr: false }
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container className="mt-16 sm:mt-32">
|
<Container className="mt-16 sm:mt-32">
|
||||||
<div className="grid grid-cols-1 gap-y-16 lg:grid-cols-2 lg:grid-rows-[auto_1fr] lg:gap-y-12">
|
<div className="grid grid-cols-1 gap-y-16 lg:grid-cols-2 lg:grid-rows-[auto_1fr] lg:gap-y-12">
|
||||||
@ -98,6 +107,9 @@ export default function Club() {
|
|||||||
>
|
>
|
||||||
contact@westsoundhall.org
|
contact@westsoundhall.org
|
||||||
</SocialLink>
|
</SocialLink>
|
||||||
|
<SocialLink href="/board-of-directors" icon={UserGroupIcon} className="mt-4">
|
||||||
|
Board of Directors
|
||||||
|
</SocialLink>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import React, { useEffect, useState, FormEvent } from 'react';
|
import React, { useEffect, useState, FormEvent, useCallback } from 'react';
|
||||||
import { AddressElement, Elements } from '@stripe/react-stripe-js';
|
import { AddressElement, Elements } from '@stripe/react-stripe-js';
|
||||||
import { Appearance, StripeAddressElementOptions, StripeElementsOptions, loadStripe } from '@stripe/stripe-js';
|
import { Appearance, StripeAddressElementOptions, StripeElementsOptions, loadStripe } from '@stripe/stripe-js';
|
||||||
import {
|
import {
|
||||||
@ -59,7 +59,6 @@ function CheckoutForm({
|
|||||||
const [selectedAdditionalDonation, setSelectedAdditionalDonation] = useState<number | null>(null);
|
const [selectedAdditionalDonation, setSelectedAdditionalDonation] = useState<number | null>(null);
|
||||||
const [customAmount, setCustomAmount] = useState('');
|
const [customAmount, setCustomAmount] = useState('');
|
||||||
const [email, setEmail] = useState('');
|
const [email, setEmail] = useState('');
|
||||||
const [offsetFees, setOffsetFees] = useState(true);
|
|
||||||
const [totalAmount, setTotalAmount] = useState(300);
|
const [totalAmount, setTotalAmount] = useState(300);
|
||||||
const [message, setMessage] = useState<string>('');
|
const [message, setMessage] = useState<string>('');
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
@ -111,9 +110,7 @@ function CheckoutForm({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offsetFees) {
|
|
||||||
subtotal = Math.ceil(subtotal * 1.03)
|
subtotal = Math.ceil(subtotal * 1.03)
|
||||||
}
|
|
||||||
|
|
||||||
setTotalAmount(subtotal);
|
setTotalAmount(subtotal);
|
||||||
|
|
||||||
@ -128,7 +125,7 @@ function CheckoutForm({
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}, [paymentIntentID, selectedMembershipLevel, selectedAdditionalDonation, customAmount, offsetFees, email])
|
}, [paymentIntentID, selectedMembershipLevel, selectedAdditionalDonation, customAmount, email])
|
||||||
|
|
||||||
const handleSubmit = async (e: FormEvent) => {
|
const handleSubmit = async (e: FormEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@ -169,7 +166,7 @@ function CheckoutForm({
|
|||||||
|
|
||||||
{/* Membership Type */}
|
{/* Membership Type */}
|
||||||
<RadioGroup value={selectedMembershipLevel} onChange={setSelectedMembershipLevel} className="space-y-3">
|
<RadioGroup value={selectedMembershipLevel} onChange={setSelectedMembershipLevel} className="space-y-3">
|
||||||
<RadioGroup.Label className="text-base font-semibold leading-6 text-gray-900">
|
<RadioGroup.Label className="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
||||||
Select a membership type
|
Select a membership type
|
||||||
</RadioGroup.Label>
|
</RadioGroup.Label>
|
||||||
|
|
||||||
@ -180,8 +177,8 @@ function CheckoutForm({
|
|||||||
value={membership}
|
value={membership}
|
||||||
className={({ active }) =>
|
className={({ active }) =>
|
||||||
classNames(
|
classNames(
|
||||||
active ? 'border-indigo-600 ring-2 ring-indigo-600' : 'border-gray-300',
|
active ? 'border-indigo-600 ring-2 ring-indigo-600' : 'border-gray-200 dark:border-gray-500',
|
||||||
'relative flex cursor-pointer rounded-lg border bg-white p-4 shadow-sm focus:outline-none'
|
'relative flex cursor-pointer rounded-lg border bg-white hover:bg-gray-50 hover:dark:bg-zinc-600 dark:bg-zinc-700 p-4 shadow-sm focus:outline-none'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@ -189,7 +186,7 @@ function CheckoutForm({
|
|||||||
<>
|
<>
|
||||||
<span className="flex flex-1 items-center justify-between ">
|
<span className="flex flex-1 items-center justify-between ">
|
||||||
<span className="flex flex-col">
|
<span className="flex flex-col">
|
||||||
<RadioGroup.Label as="span" className="block text-sm font-medium text-gray-900">
|
<RadioGroup.Label as="span" className="block text-sm font-medium text-gray-900 dark:text-white">
|
||||||
{membership.title}
|
{membership.title}
|
||||||
</RadioGroup.Label>
|
</RadioGroup.Label>
|
||||||
<RadioGroup.Description as="span" className="mt-1 flex items-center text-sm text-gray-500">
|
<RadioGroup.Description as="span" className="mt-1 flex items-center text-sm text-gray-500">
|
||||||
@ -197,7 +194,7 @@ function CheckoutForm({
|
|||||||
</RadioGroup.Description>
|
</RadioGroup.Description>
|
||||||
</span>
|
</span>
|
||||||
<RadioGroup.Description as="span" className="ml-8 text-sm font-medium">
|
<RadioGroup.Description as="span" className="ml-8 text-sm font-medium">
|
||||||
<span className="text-gray-900">${membership.price}</span>
|
<span className="text-gray-900 dark:text-white">${membership.price}</span>
|
||||||
<span className="text-gray-500">/yr</span>
|
<span className="text-gray-500">/yr</span>
|
||||||
</RadioGroup.Description>
|
</RadioGroup.Description>
|
||||||
</span>
|
</span>
|
||||||
@ -218,7 +215,7 @@ function CheckoutForm({
|
|||||||
|
|
||||||
{/* Additional donation */}
|
{/* Additional donation */}
|
||||||
<RadioGroup value={selectedAdditionalDonation} onChange={setSelectedAdditionalDonation} className="space-y-3">
|
<RadioGroup value={selectedAdditionalDonation} onChange={setSelectedAdditionalDonation} className="space-y-3">
|
||||||
<RadioGroup.Label className="text-base font-semibold leading-6 text-gray-900">
|
<RadioGroup.Label className="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
||||||
Additional donation
|
Additional donation
|
||||||
</RadioGroup.Label>
|
</RadioGroup.Label>
|
||||||
<div className="grid grid-cols-3 gap-3 sm:grid-cols-5">
|
<div className="grid grid-cols-3 gap-3 sm:grid-cols-5">
|
||||||
@ -231,9 +228,9 @@ function CheckoutForm({
|
|||||||
'cursor-pointer focus:outline-none',
|
'cursor-pointer focus:outline-none',
|
||||||
option === -1 ? 'col-span-2' : '',
|
option === -1 ? 'col-span-2' : '',
|
||||||
checked
|
checked
|
||||||
? 'ring-2 ring-indigo-600 ring-offset-2'
|
? 'ring-2 ring-indigo-600'
|
||||||
: 'ring-1 ring-inset ring-gray-300 bg-white text-gray-900 hover:bg-gray-50',
|
: 'ring-1 ring-inset ring-gray-200 dark:ring-gray-500 text-gray-900 dark:text-white hover:bg-gray-50 hover:dark:bg-zinc-600',
|
||||||
'flex items-center justify-center rounded-md py-3 px-3 text-sm font-semibold sm:flex-1'
|
'flex items-center justify-center rounded-md py-3 px-3 text-sm font-semibold sm:flex-1 bg-white dark:bg-zinc-700'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
@ -253,7 +250,7 @@ function CheckoutForm({
|
|||||||
min="0"
|
min="0"
|
||||||
step="1"
|
step="1"
|
||||||
onChange={(e) => setCustomAmount(e.target.value)}
|
onChange={(e) => setCustomAmount(e.target.value)}
|
||||||
className="block w-full rounded-md border-0 py-1.5 pl-7 pr-12 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6"
|
className="block w-full rounded-md border-0 py-1.5 pl-7 pr-12 text-gray-900 dark:text-white dark:bg-zinc-700 ring-1 ring-inset ring-gray-200 dark:ring-gray-500 placeholder:text-gray-400 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6"
|
||||||
placeholder="Custom"
|
placeholder="Custom"
|
||||||
aria-describedby="price-currency"
|
aria-describedby="price-currency"
|
||||||
/>
|
/>
|
||||||
@ -277,12 +274,12 @@ function CheckoutForm({
|
|||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<h2 className="text-base font-semibold leading-6 text-gray-900">
|
<h2 className="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
||||||
About you
|
About you
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div className="rounded-md mb-3 px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-indigo-600">
|
<div className="rounded-md mb-3 px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-inset ring-gray-200 dark:ring-gray-500 focus-within:ring-2 focus-within:ring-indigo-600 dark:bg-zinc-700 dark:text-white">
|
||||||
<label htmlFor="name" className="block text-xs font-medium text-gray-900">
|
<label htmlFor="name" className="block text-xs font-medium text-gray-900 dark:text-zinc-400">
|
||||||
Email
|
Email
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
@ -291,7 +288,7 @@ function CheckoutForm({
|
|||||||
id="email"
|
id="email"
|
||||||
value={email}
|
value={email}
|
||||||
onChange={(e) => setEmail(e.target.value)}
|
onChange={(e) => setEmail(e.target.value)}
|
||||||
className="block w-full border-0 p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6"
|
className="block w-full border-0 p-0 dark:bg-zinc-700 text-gray-900 dark:text-white placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6"
|
||||||
placeholder="you@example.com"
|
placeholder="you@example.com"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -299,37 +296,20 @@ function CheckoutForm({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<h2 className="text-base font-semibold leading-6 text-gray-900">
|
<h2 className="text-base font-semibold leading-6 text-gray-900 dark:text-white">
|
||||||
Payment
|
Payment
|
||||||
</h2>
|
</h2>
|
||||||
<div className="mt-1 text-sm text-gray-500">
|
<div className="mt-1 text-sm text-gray-500">
|
||||||
If you would like to pay by cash or check, please instead
|
Credit card fees included. If you would like to avoid these fees or
|
||||||
<a className="underline mx-1" href="/WSCC-Membership-Form.pdf">fill out a paper form</a>
|
to pay by cash or check, please instead <a className="underline
|
||||||
and mail to the address on the form.
|
mx-1" href="/WSCC-Membership-Form.pdf">fill out a paper form</a> and
|
||||||
|
mail to the address on the form.
|
||||||
</div>
|
</div>
|
||||||
<PaymentElement id="payment-element" />
|
<PaymentElement id="payment-element" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* TODO: Automatically renew toggle? */}
|
{/* TODO: Automatically renew toggle? */}
|
||||||
|
|
||||||
<div className="relative flex gap-x-3">
|
|
||||||
<div className="flex h-6 items-center">
|
|
||||||
<input
|
|
||||||
id="offsetFees"
|
|
||||||
name="offsetFees"
|
|
||||||
type="checkbox"
|
|
||||||
checked={offsetFees}
|
|
||||||
onChange={(e) => setOffsetFees(e.target.checked)}
|
|
||||||
className="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-600"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="text-sm leading-6">
|
|
||||||
<label htmlFor="offsetFees" className="font-medium text-gray-900">
|
|
||||||
Help offset credit card fees
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button
|
<button
|
||||||
className="mt-6 w-full rounded-md flex justify-center border border-transparent bg-indigo-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2"
|
className="mt-6 w-full rounded-md flex justify-center border border-transparent bg-indigo-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2"
|
||||||
disabled={isLoading || !stripe || !elements}
|
disabled={isLoading || !stripe || !elements}
|
||||||
@ -349,9 +329,37 @@ function CheckoutForm({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ClubPayment() {
|
const DEFAULT_OPTIONS = {
|
||||||
|
config: { attributes: true, childList: true, subtree: true },
|
||||||
|
};
|
||||||
|
|
||||||
|
function useMutationObservable(targetEl: Node, cb: MutationCallback, options = DEFAULT_OPTIONS) {
|
||||||
|
const [observer, setObserver] = useState<MutationObserver | null>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const obs = new MutationObserver(cb);
|
||||||
|
setObserver(obs);
|
||||||
|
}, [cb, options, setObserver]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!observer) return;
|
||||||
|
const { config } = options;
|
||||||
|
observer.observe(targetEl, config);
|
||||||
|
return () => {
|
||||||
|
if (observer) {
|
||||||
|
observer.disconnect();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}, [observer, targetEl, options]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function ClubPayment() {
|
||||||
const [clientSecret, setClientSecret] = useState('');
|
const [clientSecret, setClientSecret] = useState('');
|
||||||
const [paymentIntent, setPaymentIntent] = useState('');
|
const [paymentIntent, setPaymentIntent] = useState('');
|
||||||
|
|
||||||
|
const htmlEl = document.getElementsByTagName('html')[0];
|
||||||
|
const darkTheme = htmlEl.classList.contains("dark");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Create PaymentIntent as soon as the page loads using our local API
|
// Create PaymentIntent as soon as the page loads using our local API
|
||||||
fetch('api/stripe_intent', {
|
fetch('api/stripe_intent', {
|
||||||
@ -369,15 +377,36 @@ export function ClubPayment() {
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const styles = getComputedStyle(htmlEl);
|
||||||
|
|
||||||
const appearance: Appearance = {
|
const appearance: Appearance = {
|
||||||
theme: 'stripe',
|
theme: 'stripe',
|
||||||
|
variables: {
|
||||||
|
colorBackground: styles.getPropertyValue('--stripe-background'),
|
||||||
|
colorText: styles.getPropertyValue('--stripe-foreground'),
|
||||||
|
},
|
||||||
labels: 'floating',
|
labels: 'floating',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const cb = useCallback(
|
||||||
|
() => {
|
||||||
|
const updatedHtmlEl = document.getElementsByTagName('html')[0];
|
||||||
|
const updatedDarkTheme = updatedHtmlEl.classList.contains("dark");
|
||||||
|
|
||||||
|
if (updatedDarkTheme !== darkTheme) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[darkTheme]
|
||||||
|
)
|
||||||
|
|
||||||
|
useMutationObservable(htmlEl, cb);
|
||||||
|
|
||||||
const options: StripeElementsOptions = {
|
const options: StripeElementsOptions = {
|
||||||
clientSecret,
|
clientSecret,
|
||||||
appearance
|
appearance,
|
||||||
}
|
}
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
{clientSecret && (
|
{clientSecret && (
|
||||||
<Elements options={options}
|
<Elements options={options}
|
||||||
|
@ -36,17 +36,17 @@ export async function GET(req: Request) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let articleIds = require
|
let articleIds = require
|
||||||
.context('../blog', true, /\/page\.mdx$/)
|
.context('../news', true, /\/page\.mdx$/)
|
||||||
.keys()
|
.keys()
|
||||||
.filter((key) => key.startsWith('./'))
|
.filter((key) => key.startsWith('./'))
|
||||||
.map((key) => key.slice(2).replace(/\/page\.mdx$/, ''));
|
.map((key) => key.slice(2).replace(/\/page\.mdx$/, ''));
|
||||||
|
|
||||||
for (let id of articleIds) {
|
for (let id of articleIds) {
|
||||||
let url = String(new URL(`/blog/${id}`, req.url));
|
let url = String(new URL(`/news/${id}`, req.url));
|
||||||
let html = await (await fetch(url)).text();
|
let html = await (await fetch(url)).text();
|
||||||
let $ = cheerio.load(html);
|
let $ = cheerio.load(html);
|
||||||
|
|
||||||
let publicUrl = `${siteUrl}/blog/${id}`;
|
let publicUrl = `${siteUrl}/news/${id}`;
|
||||||
let article = $('article').first();
|
let article = $('article').first();
|
||||||
let title = article.find('h1').first().text();
|
let title = article.find('h1').first().text();
|
||||||
let date = article.find('time').first().attr('datetime');
|
let date = article.find('time').first().attr('datetime');
|
||||||
|
BIN
src/app/news/2024-02-17-potluck/Boddingtons_Store_West_Sound.jpg
Normal file
BIN
src/app/news/2024-02-17-potluck/Boddingtons_Store_West_Sound.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 307 KiB |
BIN
src/app/news/2024-02-17-potluck/West_Sound.jpg
Normal file
BIN
src/app/news/2024-02-17-potluck/West_Sound.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 474 KiB |
BIN
src/app/news/2024-02-17-potluck/West_Sound_Main_Street.jpg
Normal file
BIN
src/app/news/2024-02-17-potluck/West_Sound_Main_Street.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 413 KiB |
58
src/app/news/2024-02-17-potluck/page.mdx
Normal file
58
src/app/news/2024-02-17-potluck/page.mdx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import boddingtonStore from './Boddingtons_Store_West_Sound.jpg'
|
||||||
|
import westSoundMainStreet from './West_Sound_Main_Street.jpg'
|
||||||
|
import westSound from './West_Sound.jpg'
|
||||||
|
|
||||||
|
export const article = {
|
||||||
|
author: 'Tony Grosinger',
|
||||||
|
date: '2024-02-17',
|
||||||
|
title: 'February 2024 Potluck',
|
||||||
|
description: "The second potluck of the year, with a slidshow of Orcas history from John Wachter.",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const metadata = {
|
||||||
|
title: article.title,
|
||||||
|
description: article.description,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default (props) => <ArticleLayout article={article} {...props} />
|
||||||
|
|
||||||
|
This month after the potluck dinner, the community club was treated to a
|
||||||
|
slideshow presentation from John Wachter. He showed us almost 100 photos from
|
||||||
|
all over Orcas Island, many of which dated back to the early 1900's.
|
||||||
|
|
||||||
|
<div className="not-prose flex flex-col items-center">
|
||||||
|
<Image src={boddingtonStore} alt="Boddington's Store at the end of Crow Valley Road" />
|
||||||
|
<span className="mt-2 text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
|
Boddington's Store at the end of Crow Valley Road.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Many of these images were available to us thanks to the [Orcas Island Historical
|
||||||
|
Society](https://www.orcasmuseums.org/), and several of the photos were also
|
||||||
|
passed down by John's family.
|
||||||
|
|
||||||
|
<div className="not-prose flex flex-col items-center">
|
||||||
|
<Image src={westSoundMainStreet} alt="West Sound Main Street" />
|
||||||
|
<span className="mt-2 text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
|
West Sound Main Street
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
A recurring observation was both how many more buildings there were in West
|
||||||
|
Sound, and how few trees there were on the island!
|
||||||
|
|
||||||
|
<div className="not-prose flex flex-col items-center">
|
||||||
|
<Image src={westSound} alt="West Sound and the south end of Turtleback" />
|
||||||
|
<span className="mt-2 text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
|
West Sound and the south end of Turtleback
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
If you have ideas for presentations or activities at upcoming potlucks, please <a
|
||||||
|
target="_blank" href="mailto:board@westsoundhall.org">send us a message</a>.
|
||||||
|
|
||||||
|
Thank you John, the Historical Society, and Peter Fisher for preserving and
|
||||||
|
sharing this history.
|
132
src/app/news/2024-03-06-town-hall-meeting/page.mdx
Normal file
132
src/app/news/2024-03-06-town-hall-meeting/page.mdx
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
import { ArticleLayout } from '@/components/ArticleLayout'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import townHallMeeting from './town-hall-meeting.jpg'
|
||||||
|
|
||||||
|
export const article = {
|
||||||
|
author: 'Tony Grosinger',
|
||||||
|
date: '2024-03-06',
|
||||||
|
title: 'March 2024 Town Hall',
|
||||||
|
description: "A community gathering to brainstorm ideas for the club's future",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const metadata = {
|
||||||
|
title: article.title,
|
||||||
|
description: article.description,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default (props) => <ArticleLayout article={article} {...props} />
|
||||||
|
|
||||||
|
On March 6th 2024 approximately 25 members of the club gathered in the hall to
|
||||||
|
do some brainstorming. The goal was just to get ideas down on paper so that they
|
||||||
|
can be prioritized and planned in the future.
|
||||||
|
|
||||||
|
<div className="not-prose flex flex-col items-center">
|
||||||
|
<Image src={townHallMeeting} alt="Town Hall Meeting" />
|
||||||
|
<span className="mt-2 text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
|
Town Hall Meeting
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
The board of directors put together the list of categories and the community
|
||||||
|
filled in the all the ideas.
|
||||||
|
|
||||||
|
Thank you to Mark Gasser and Joe Mentor for facilitating.
|
||||||
|
|
||||||
|
- Activities
|
||||||
|
- Movie night
|
||||||
|
- Ping pong
|
||||||
|
- Use activities to attract people and build membership
|
||||||
|
- Piggy-back on the OIYC pancake breakfast in May
|
||||||
|
- Linkage with waterfront
|
||||||
|
- Lack of parking – have to pay OIYC $50
|
||||||
|
- Calendaring improvements – double booking with YC
|
||||||
|
- BBQ (community outreach)
|
||||||
|
- Olga days
|
||||||
|
- Garage sale / rummage sale (Fidelis used to do this)
|
||||||
|
- Deer Harbor had once mid-winter that was a huge success
|
||||||
|
- Dance
|
||||||
|
- Karaoke
|
||||||
|
- End of season tool cleaning and sharpening
|
||||||
|
- Jim Hamilton volunteered to bring his sharpener
|
||||||
|
- Sip and paint
|
||||||
|
- Guest lectures
|
||||||
|
- Car & boat show
|
||||||
|
- Cooking
|
||||||
|
- Joint event with DHCC
|
||||||
|
- Approved for-profit events.
|
||||||
|
- We are in a smaller county so there are some exceptions.
|
||||||
|
- Art classes, music classes, dance classes
|
||||||
|
- A Saturday market might be allowed too.
|
||||||
|
- Petitioning the county can be a strategy for adding more allowed activities.
|
||||||
|
- Arthur mentioned that if you go through Parks and Recreation we might be able to do a dance.
|
||||||
|
- Nancy had more information from her time as VP.
|
||||||
|
- Building Improvements
|
||||||
|
- A deck on the east side of the building extending to ground level on the north end.
|
||||||
|
- Replace the kitchen.
|
||||||
|
- A paint job in the kitchen would also go a long way.
|
||||||
|
- Three compartment sink. Commercial dishwasher.
|
||||||
|
- Joint project with the OIYC
|
||||||
|
- Infrared heading panels or heat pump
|
||||||
|
- Floor
|
||||||
|
- Engineering study (or just an inspection)
|
||||||
|
- Turn on the heat from your phone.
|
||||||
|
- Replace the single pane windows.
|
||||||
|
- Alternatively, adding shutters could protect the existing windows and improve their insulation.
|
||||||
|
- Grant mentions that staying with in the purview of maintenance is easier to get through county approval rather than remodel.
|
||||||
|
- New storage closet on the north end of the building.
|
||||||
|
- Replace the hot water heater.
|
||||||
|
- Restroom improvements.
|
||||||
|
- Building Maintenance
|
||||||
|
- Replacing siding on the north end of the building.
|
||||||
|
- Address the leak between the kitchen and the north end of the building.
|
||||||
|
- Use the compressor the blow out the water lines on cold days.
|
||||||
|
- Funding
|
||||||
|
- Could the historical society help us with fundraising since we’re a historic building?
|
||||||
|
- Similarly, could the historical society host their meetings at our hall?
|
||||||
|
- Grants
|
||||||
|
- Bill Bangs
|
||||||
|
- Need a needs analysis first
|
||||||
|
- The county has a historic building preservation fund that can fund 50% of projects.
|
||||||
|
- Convert Sail Orcas into a separate renter rather than being under the YC umbrella.
|
||||||
|
- Advertise for rental of the hall. Chamber of commerce?
|
||||||
|
- OICF bi-annual funding campaigns
|
||||||
|
- Raise member dues
|
||||||
|
- Sliding scale
|
||||||
|
- Introductory rate, or the opposite - grandfather existing members at lower
|
||||||
|
- Different funds that members can donate to
|
||||||
|
- Membership capital campaign – direct asking
|
||||||
|
- Increase membership
|
||||||
|
- Make household double individual rate
|
||||||
|
- Sell bricks
|
||||||
|
- Governance
|
||||||
|
- Build out more committees
|
||||||
|
- Architectural
|
||||||
|
- Colin Baden
|
||||||
|
- Arthur
|
||||||
|
- Membership / Welcoming
|
||||||
|
- Encourage external groups to be committees, for example historical society or fidelis
|
||||||
|
- Invite DHCC to one of our meetings
|
||||||
|
- Review bylaws and articles of incorporation.
|
||||||
|
- Membership
|
||||||
|
- Solicit the OIYC to become WSCC members (add-on to your OIYC membership?)
|
||||||
|
- We should make it more clear that membership is open to more than WS residents.
|
||||||
|
- Must attract younger people to become members.
|
||||||
|
- DHCC has had success with this. Talk to them about what they did.
|
||||||
|
- Work with realtors to have them introduce new people to the club
|
||||||
|
- Arthur asks to have a physical invitation he can hand out to people he meets.
|
||||||
|
- OIYC Partnership
|
||||||
|
- Kitchen remodel
|
||||||
|
- Articulate shared goals and vision
|
||||||
|
- Ensure the OIYC liaison attends our meetings
|
||||||
|
- One set of common glassware, dishes, etc.
|
||||||
|
- Use/Expectations
|
||||||
|
- Update kitchen instructions (e.g. don’t rinse food down the drain).
|
||||||
|
- Update cleaning rules in hall rent agreement.
|
||||||
|
- Discourage or ban single use plastics during events.
|
||||||
|
- Vision/Goals/Mission/Objectives
|
||||||
|
- Keep the building standing
|
||||||
|
- Grow the organization
|
||||||
|
- Group activity - have members write down a list of what the hall means to them.
|
||||||
|
- Set by example what community can be.
|
||||||
|
|
BIN
src/app/news/2024-03-06-town-hall-meeting/town-hall-meeting.jpg
Normal file
BIN
src/app/news/2024-03-06-town-hall-meeting/town-hall-meeting.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
@ -9,7 +9,7 @@ function Article({ article }: { article: BlogPostWithSlug }) {
|
|||||||
return (
|
return (
|
||||||
<article className="md:grid md:grid-cols-4 md:items-baseline">
|
<article className="md:grid md:grid-cols-4 md:items-baseline">
|
||||||
<Card className="md:col-span-3">
|
<Card className="md:col-span-3">
|
||||||
<Card.Title href={`/blog/${article.slug}`}>
|
<Card.Title href={`/news/${article.slug}`}>
|
||||||
{article.title}
|
{article.title}
|
||||||
</Card.Title>
|
</Card.Title>
|
||||||
<Card.Eyebrow
|
<Card.Eyebrow
|
||||||
@ -35,7 +35,7 @@ function Article({ article }: { article: BlogPostWithSlug }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Blog',
|
title: 'Club News',
|
||||||
description: 'History, Announcements, and more from the West Sound Hall and Community Club.',
|
description: 'History, Announcements, and more from the West Sound Hall and Community Club.',
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ export default async function ArticlesIndex() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<SimpleLayout
|
<SimpleLayout
|
||||||
title="West Sound Hall Blog"
|
title="West Sound Hall News"
|
||||||
intro="History, Announcements, and more from the West Sound Hall and Community Club."
|
intro="History, Announcements, and more from the West Sound Hall and Community Club."
|
||||||
>
|
>
|
||||||
<div className="md:border-l md:border-zinc-100 md:pl-6 md:dark:border-zinc-700/40">
|
<div className="md:border-l md:border-zinc-100 md:pl-6 md:dark:border-zinc-700/40">
|
@ -41,8 +41,4 @@ the hall available for rental by the community, and even added the hall to the
|
|||||||
WA Heritage Register. There's so much more to the hall than just potlucks,
|
WA Heritage Register. There's so much more to the hall than just potlucks,
|
||||||
and this website hopes to share this with the West Sound Community.
|
and this website hopes to share this with the West Sound Community.
|
||||||
|
|
||||||
If you'd like to follow along, please <a target="_blank"
|
|
||||||
href="https://orcas.community/mailinglists/7">sign up for email
|
|
||||||
announcements</a> when new blog posts are published.
|
|
||||||
|
|
||||||
Thanks for being a part of the West Sound Community!
|
Thanks for being a part of the West Sound Community!
|
Before Width: | Height: | Size: 644 KiB After Width: | Height: | Size: 644 KiB |
125
src/app/page.tsx
125
src/app/page.tsx
@ -1,17 +1,14 @@
|
|||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import clsx from 'clsx'
|
|
||||||
|
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { Card } from '@/components/Card'
|
import { Card } from '@/components/Card'
|
||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
import { CalendarDaysIcon, EnvelopeIcon } from '@heroicons/react/24/solid'
|
import { CalendarDaysIcon } from '@heroicons/react/24/solid'
|
||||||
import exteriorFrontImage from '@/images/photos/exterior-front.png'
|
import exteriorFrontImage from '@/images/photos/exterior-front.png'
|
||||||
import stageImage from '@/images/photos/stage.jpg'
|
|
||||||
import exteriorSoutheastImage from '@/images/photos/exterior-southeast.jpg'
|
|
||||||
import interorEmptyImage from '@/images/photos/interior-empty.jpg'
|
|
||||||
import kitchenImage from '@/images/photos/kitchen.jpg'
|
|
||||||
import { type BlogPostWithSlug, getAllBlogPosts } from '@/lib/articles'
|
import { type BlogPostWithSlug, getAllBlogPosts } from '@/lib/articles'
|
||||||
import { formatDate } from '@/lib/formatDate'
|
import { formatDate } from '@/lib/formatDate'
|
||||||
|
import { promises as fs } from 'fs';
|
||||||
|
|
||||||
|
|
||||||
function LinkButton({
|
function LinkButton({
|
||||||
href,
|
href,
|
||||||
@ -23,9 +20,7 @@ function LinkButton({
|
|||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
href={href}
|
href={href}
|
||||||
className="rounded-md px-3 py-2 font-semibold text-center transition hover:text-teal-500 dark:hover:text-teal-400 bg-zinc-200 hover:bg-zinc-100 dark:bg-zinc-700/40 dark:hover:bg-zinc-600/40"
|
className="rounded-md px-3 py-2 font-semibold text-center transition dark:hover:text-teal-400 bg-sky-300 hover:bg-sky-400 dark:bg-zinc-700/40 dark:hover:bg-zinc-600/40"
|
||||||
|
|
||||||
|
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
</Link>
|
</Link>
|
||||||
@ -35,7 +30,7 @@ function LinkButton({
|
|||||||
function Article({ article }: { article: BlogPostWithSlug }) {
|
function Article({ article }: { article: BlogPostWithSlug }) {
|
||||||
return (
|
return (
|
||||||
<Card as="article">
|
<Card as="article">
|
||||||
<Card.Title href={`/blog/${article.slug}`}>
|
<Card.Title href={`/news/${article.slug}`}>
|
||||||
{article.title}
|
{article.title}
|
||||||
</Card.Title>
|
</Card.Title>
|
||||||
<Card.Eyebrow as="time" dateTime={article.date} decorate>
|
<Card.Eyebrow as="time" dateTime={article.date} decorate>
|
||||||
@ -47,17 +42,6 @@ function Article({ article }: { article: BlogPostWithSlug }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Newsletter() {
|
|
||||||
return (
|
|
||||||
<div className="rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
|
||||||
<div className="flex flex-col gap-y-4">
|
|
||||||
<LinkButton href='/club'>Join or Renew your Membership</LinkButton>
|
|
||||||
<LinkButton href='/rental'>Rent the Hall</LinkButton>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Meeting {
|
interface Meeting {
|
||||||
title: string
|
title: string
|
||||||
date: string
|
date: string
|
||||||
@ -100,21 +84,36 @@ function MeetingListItem({ meeting }: { meeting: Meeting }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Events() {
|
async function Events() {
|
||||||
let events: Array<Meeting> = [
|
const now = new Date();
|
||||||
{
|
const nowYear = now.getFullYear();
|
||||||
title: 'January Potluck',
|
const nowMonth = now.getMonth() + 1;
|
||||||
date: '2024-01-20',
|
const nowDay = now.getDate();
|
||||||
startTime: '6:00pm',
|
|
||||||
},
|
const file = await fs.readFile(process.cwd() + '/src/app/upcoming-events.json', 'utf8');
|
||||||
{
|
const allEvents: Array<Meeting> = JSON.parse(file);
|
||||||
title: 'February Potluck',
|
|
||||||
date: '2024-02-17',
|
// Remove any events in the past.
|
||||||
startTime: '6:00pm',
|
const events = allEvents.filter((e) => {
|
||||||
// endTime: '8:00pm',
|
const [year, month, day] = e.date.split('-');
|
||||||
// notes: 'Bring your own chair.'
|
|
||||||
},
|
const parsedYear = parseInt(year)
|
||||||
]
|
if (parsedYear > nowYear) {
|
||||||
|
return true
|
||||||
|
} else if (parsedYear < nowYear) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
const parsedMonth = parseInt(month)
|
||||||
|
if (parsedMonth > nowMonth) {
|
||||||
|
return true
|
||||||
|
} else if (parsedMonth < nowMonth) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
const parsedDay = parseInt(day)
|
||||||
|
return parsedDay >= nowDay
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
<div className="rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
||||||
@ -136,43 +135,18 @@ function Events() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Photos() {
|
|
||||||
let rotations = ['rotate-2', '-rotate-2', 'rotate-2', 'rotate-2', '-rotate-2']
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="mt-16 sm:mt-20">
|
|
||||||
<div className="-my-4 flex justify-center gap-5 overflow-hidden py-4 sm:gap-8">
|
|
||||||
{[exteriorSoutheastImage, stageImage, exteriorFrontImage, interorEmptyImage, kitchenImage].map((image, imageIndex) => (
|
|
||||||
<div
|
|
||||||
key={image.src}
|
|
||||||
className={clsx(
|
|
||||||
'relative aspect-[9/10] w-44 flex-none overflow-hidden rounded-xl bg-zinc-100 dark:bg-zinc-800 sm:w-72 sm:rounded-2xl',
|
|
||||||
rotations[imageIndex % rotations.length],
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
<Image
|
|
||||||
src={image}
|
|
||||||
alt=""
|
|
||||||
sizes="(min-width: 640px) 18rem, 11rem"
|
|
||||||
className="absolute inset-0 h-full w-full object-cover"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default async function Home() {
|
export default async function Home() {
|
||||||
let articles = (await getAllBlogPosts()).slice(0, 4)
|
let articles = (await getAllBlogPosts()).slice(0, 4)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Container className="mt-9">
|
<div className="mx-auto max-w-7xl px-6 mt-24 lg:px-8">
|
||||||
<div className="max-w-2xl">
|
<div className="relative px-4 sm:px-8 lg:px-12">
|
||||||
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
|
<div className="mx-auto max-w-2xl lg:mx-0 grid lg:max-w-none grid-cols-1 lg:grid-cols-2 lg:gap-x-8 gap-y-10">
|
||||||
|
<h1 className="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-6xl lg:col-span-2">
|
||||||
West Sound Community Hall
|
West Sound Community Hall
|
||||||
</h1>
|
</h1>
|
||||||
|
<div className="max-w-xl">
|
||||||
<p className="mt-6 text-base text-zinc-600 dark:text-zinc-400">
|
<p className="mt-6 text-base text-zinc-600 dark:text-zinc-400">
|
||||||
The West Sound Community Hall is located in the hamlet of West Sound
|
The West Sound Community Hall is located in the hamlet of West Sound
|
||||||
on Orcas Island, about 10 minutes from the ferry landing and
|
on Orcas Island, about 10 minutes from the ferry landing and
|
||||||
@ -183,8 +157,20 @@ export default async function Home() {
|
|||||||
Facing West Sound, the Hall is at the heart of the West Sound community.
|
Facing West Sound, the Hall is at the heart of the West Sound community.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</Container>
|
<Image
|
||||||
<Photos />
|
src={exteriorFrontImage}
|
||||||
|
alt="Exterior front of the West Sound Hall"
|
||||||
|
className="lg:row-span-2 w-full max-w-xl rounded-2xl object-cover lg:max-w-none"
|
||||||
|
/>
|
||||||
|
<div className="h-fit max-w-xl rounded-2xl border border-zinc-100 p-6 dark:border-zinc-700/40">
|
||||||
|
<div className="flex flex-col gap-y-4">
|
||||||
|
<LinkButton href='/club'>Join or Renew your Membership</LinkButton>
|
||||||
|
<LinkButton href='/rental'>Rent the Hall</LinkButton>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<Container className="mt-24 md:mt-28">
|
<Container className="mt-24 md:mt-28">
|
||||||
<div className="mx-auto grid max-w-xl grid-cols-1 gap-y-20 lg:max-w-none lg:grid-cols-2">
|
<div className="mx-auto grid max-w-xl grid-cols-1 gap-y-20 lg:max-w-none lg:grid-cols-2">
|
||||||
<div className="flex flex-col gap-16">
|
<div className="flex flex-col gap-16">
|
||||||
@ -192,8 +178,7 @@ export default async function Home() {
|
|||||||
<Article key={article.slug} article={article} />
|
<Article key={article.slug} article={article} />
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<div className="space-y-10 lg:pl-16 xl:pl-24">
|
<div className="lg:pl-16 xl:pl-24">
|
||||||
<Newsletter />
|
|
||||||
<Events />
|
<Events />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,6 +6,8 @@ import clsx from 'clsx'
|
|||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
import exteriorFront from '@/images/photos/exterior-front.png'
|
import exteriorFront from '@/images/photos/exterior-front.png'
|
||||||
import { EnvelopeIcon, PencilSquareIcon, QuestionMarkCircleIcon } from '@heroicons/react/24/solid'
|
import { EnvelopeIcon, PencilSquareIcon, QuestionMarkCircleIcon } from '@heroicons/react/24/solid'
|
||||||
|
import React from 'react'
|
||||||
|
import { TableCell, TableHeading, TableLeftHeading } from '@/components/Table'
|
||||||
|
|
||||||
function SocialLink({
|
function SocialLink({
|
||||||
className,
|
className,
|
||||||
@ -107,42 +109,42 @@ export default function Rental() {
|
|||||||
<table className="min-w-full divide-y divide-gray-300">
|
<table className="min-w-full divide-y divide-gray-300">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col" className="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-0"></th>
|
<th scope="col" className="py-3.5 pl-4 pr-3 sm:pl-0"></th>
|
||||||
<th scope="col" className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">Half day (4 hr)</th>
|
<TableHeading>Half day (4 hr)</TableHeading>
|
||||||
<th scope="col" className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">All day</th>
|
<TableHeading>All day</TableHeading>
|
||||||
<th scope="col" className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">Deposit</th>
|
<TableHeading>Deposit</TableHeading>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody className="divide-y divide-gray-200">
|
<tbody className="divide-y divide-gray-200 ">
|
||||||
<tr>
|
<tr>
|
||||||
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-0">Orcas non-profit organizations</td>
|
<TableLeftHeading>Orcas non-profit organizations</TableLeftHeading>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$50 or 2 hours for $30*</td>
|
<TableCell>$50 or 2 hours for $30*</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$100</td>
|
<TableCell>$100</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">None†</td>
|
<TableCell>None†</TableCell>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-0">WSCC and OIYC Members</td>
|
<TableLeftHeading>WSCC and OIYC Members</TableLeftHeading>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$50 or 2 hours for $30*</td>
|
<TableCell>$50 or 2 hours for $30*</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$100</td>
|
<TableCell>$100</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">None†</td>
|
<TableCell>None†</TableCell>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-0">Off-island non-profit organizations</td>
|
<TableLeftHeading>Off-island non-profit organizations</TableLeftHeading>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$50</td>
|
<TableCell>$50</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$100</td>
|
<TableCell>$100</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$300</td>
|
<TableCell>$300</TableCell>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-0">Individuals and non-public use</td>
|
<TableLeftHeading>Individuals and non-public use</TableLeftHeading>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$40 per hour</td>
|
<TableCell>$40 per hour</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$300</td>
|
<TableCell>$300</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$300</td>
|
<TableCell>$300</TableCell>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-0">Government sponsored activities</td>
|
<TableLeftHeading>Government sponsored activities</TableLeftHeading>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$50</td>
|
<TableCell>$50</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">$50</td>
|
<TableCell>$50</TableCell>
|
||||||
<td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">None†</td>
|
<TableCell>None†</TableCell>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -168,6 +170,7 @@ export default function Rental() {
|
|||||||
The West Sound Community Hall may not be used for either personal or
|
The West Sound Community Hall may not be used for either personal or
|
||||||
organizational monetary gain or to promote business activities.
|
organizational monetary gain or to promote business activities.
|
||||||
The only exceptions to this restriction are:
|
The only exceptions to this restriction are:
|
||||||
|
</p>
|
||||||
|
|
||||||
<ol className="list-decimal ml-8 mt-5">
|
<ol className="list-decimal ml-8 mt-5">
|
||||||
<li>
|
<li>
|
||||||
@ -183,7 +186,6 @@ export default function Rental() {
|
|||||||
sponsoring nonprofit organization.)
|
sponsoring nonprofit organization.)
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Any individual or organizational nonpublic use of the hall which
|
Any individual or organizational nonpublic use of the hall which
|
||||||
|
24
src/app/upcoming-events.json
Normal file
24
src/app/upcoming-events.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"title": "February Potluck",
|
||||||
|
"date": "2024-02-17",
|
||||||
|
"startTime": "6:00pm",
|
||||||
|
"notes": "With historic West Sound slide show."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Town Hall Meeting",
|
||||||
|
"date": "2024-03-06",
|
||||||
|
"startTime": "5:00pm",
|
||||||
|
"endTime": "7:00pm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "April Potluck",
|
||||||
|
"date": "2024-04-20",
|
||||||
|
"startTime": "6:00pm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "May Potluck",
|
||||||
|
"date": "2024-05-18",
|
||||||
|
"startTime": "6:00pm"
|
||||||
|
}
|
||||||
|
]
|
@ -28,12 +28,18 @@ export function Footer() {
|
|||||||
<div className="flex flex-col items-center justify-between gap-6 sm:flex-row">
|
<div className="flex flex-col items-center justify-between gap-6 sm:flex-row">
|
||||||
<div className="flex flex-wrap justify-center gap-x-6 gap-y-1 text-sm font-medium text-zinc-800 dark:text-zinc-200">
|
<div className="flex flex-wrap justify-center gap-x-6 gap-y-1 text-sm font-medium text-zinc-800 dark:text-zinc-200">
|
||||||
<NavLink href="/hall-history">History</NavLink>
|
<NavLink href="/hall-history">History</NavLink>
|
||||||
|
<NavLink href="/news">News</NavLink>
|
||||||
<NavLink href="/rental">Rental</NavLink>
|
<NavLink href="/rental">Rental</NavLink>
|
||||||
<NavLink href="/club">Club</NavLink>
|
<NavLink href="/club">Club</NavLink>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
<p className="text-sm text-zinc-400 dark:text-zinc-500">
|
<p className="text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
© {new Date().getFullYear()} West Sound Community Club. All rights reserved.
|
© {new Date().getFullYear()} West Sound Community Club. All rights reserved.
|
||||||
</p>
|
</p>
|
||||||
|
<p className="text-sm text-zinc-400 dark:text-zinc-500">
|
||||||
|
WSCC is a 501c3 nonprofit organization - 91-1283768
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ContainerInner>
|
</ContainerInner>
|
||||||
</div>
|
</div>
|
||||||
|
File diff suppressed because one or more lines are too long
25
src/components/Table.tsx
Normal file
25
src/components/Table.tsx
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
export function TableHeading({
|
||||||
|
children
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode
|
||||||
|
}) {
|
||||||
|
return <th scope="col" className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900 dark:text-zinc-100">{children}</th>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TableLeftHeading({
|
||||||
|
children
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode
|
||||||
|
}) {
|
||||||
|
return <td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 dark:text-zinc-100 sm:pl-0">{children}</td>
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TableCell({
|
||||||
|
children
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode
|
||||||
|
}) {
|
||||||
|
return <td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500 dark:text-zinc-400">{children}</td>
|
||||||
|
}
|
@ -12,7 +12,7 @@ export interface BlogPostWithSlug extends BlogPost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function importBlogPost(filename: string): Promise<BlogPostWithSlug> {
|
async function importBlogPost(filename: string): Promise<BlogPostWithSlug> {
|
||||||
let { article } = (await import(`../app/blog/${filename}`)) as {
|
let { article } = (await import(`../app/news/${filename}`)) as {
|
||||||
default: React.ComponentType;
|
default: React.ComponentType;
|
||||||
article: BlogPost;
|
article: BlogPost;
|
||||||
};
|
};
|
||||||
@ -25,7 +25,7 @@ async function importBlogPost(filename: string): Promise<BlogPostWithSlug> {
|
|||||||
|
|
||||||
export async function getAllBlogPosts() {
|
export async function getAllBlogPosts() {
|
||||||
let articleFilenames = await glob('*/page.mdx', {
|
let articleFilenames = await glob('*/page.mdx', {
|
||||||
cwd: './src/app/blog',
|
cwd: './src/app/news',
|
||||||
});
|
});
|
||||||
|
|
||||||
const posts = await Promise.all(articleFilenames.map(importBlogPost));
|
const posts = await Promise.all(articleFilenames.map(importBlogPost));
|
||||||
|
@ -2,3 +2,15 @@
|
|||||||
@import 'tailwindcss/components';
|
@import 'tailwindcss/components';
|
||||||
@import './prism.css';
|
@import './prism.css';
|
||||||
@import 'tailwindcss/utilities';
|
@import 'tailwindcss/utilities';
|
||||||
|
|
||||||
|
:root {
|
||||||
|
/* Your default theme */
|
||||||
|
|
||||||
|
--stripe-background: #FFFFFF;
|
||||||
|
--stripe-foreground: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark {
|
||||||
|
--stripe-background: #3f3f46;
|
||||||
|
--stripe-foreground: #E4E4E7;
|
||||||
|
}
|
||||||
|
@ -170,8 +170,8 @@ export default function typographyStyles({ theme }: PluginUtils) {
|
|||||||
paddingLeft: theme('spacing.6'),
|
paddingLeft: theme('spacing.6'),
|
||||||
},
|
},
|
||||||
li: {
|
li: {
|
||||||
marginTop: theme('spacing.6'),
|
// marginTop: theme('spacing.2'),
|
||||||
marginBottom: theme('spacing.6'),
|
// marginBottom: theme('spacing.2'),
|
||||||
paddingLeft: theme('spacing[3.5]'),
|
paddingLeft: theme('spacing[3.5]'),
|
||||||
},
|
},
|
||||||
'li::marker': {
|
'li::marker': {
|
||||||
@ -184,14 +184,14 @@ export default function typographyStyles({ theme }: PluginUtils) {
|
|||||||
'ul > li::marker': {
|
'ul > li::marker': {
|
||||||
color: 'var(--tw-prose-bullets)',
|
color: 'var(--tw-prose-bullets)',
|
||||||
},
|
},
|
||||||
'li :is(ol, ul)': {
|
// 'li :is(ol, ul)': {
|
||||||
marginTop: theme('spacing.4'),
|
// marginTop: theme('spacing.2'),
|
||||||
marginBottom: theme('spacing.4'),
|
// marginBottom: theme('spacing.2'),
|
||||||
},
|
// },
|
||||||
'li :is(li, p)': {
|
// 'li :is(li, p)': {
|
||||||
marginTop: theme('spacing.3'),
|
// marginTop: theme('spacing.3'),
|
||||||
marginBottom: theme('spacing.3'),
|
// marginBottom: theme('spacing.3'),
|
||||||
},
|
// },
|
||||||
|
|
||||||
// Code blocks
|
// Code blocks
|
||||||
pre: {
|
pre: {
|
||||||
|
Reference in New Issue
Block a user