From 547906f08f62026d06842743f4aee158b7feb251 Mon Sep 17 00:00:00 2001 From: saudzahirr Date: Sun, 16 Aug 2026 22:48:31 +0500 Subject: [PATCH] Replace Zensical docs site with a custom eggzec web page Build the organization site by hand instead of generating it from MkDocs/Zensical, so the brand identity can actually drive the design. Stack is Vite and TypeScript with no UI framework. Motion drives the animation, Lenis the smooth scrolling, and a canvas Game of Life the hero texture, which is the same glider hidden in the logo mark. The eggzec Block bitmap font is ported to TypeScript with a per glyph API, so the hero can render display lettering as inline SVG. Because the font is monospaced, the hero solves for tracking per line, which lands every line at the same width and the same cap height. Colours are the Electropop palette on white. Kiwi reads as a block fill and not as type, so accent fill and accent text are separate roles and violet carries anything that has to be read. Content is data rather than markup. A project is featured when it has a brand icon, which keeps the landing grid and the nav menu in sync with the icon set with no second list to maintain. Landing page statistics are counted from the catalog at runtime so they cannot drift. Also: * Add a custom 404 page. * Deploy from .github/workflows/deploy.yml on push to master. Pull requests run the typecheck and the build but do not publish. * Remove docs/, zensical.toml and the old documentation workflow. * Point every project card at its GitHub repository. Co-authored-by: Claude Opus 5 Co-authored-by: codex <267193182+codex@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: gemini-code-assist Co-authored-by: Junie Co-authored-by: Qwen-Coder Co-authored-by: Cursor Agent --- .github/dependabot.yml | 7 +- .github/workflows/deploy.yml | 60 ++ .github/workflows/docs_build.yml | 52 -- .gitignore | 7 +- 404.html | 63 ++ README.md | 96 ++- community/index.html | 66 ++ community/laraib/index.html | 34 + community/noor/index.html | 34 + community/saud/index.html | 34 + docs/assets/images/SOERP.svg | 9 - docs/assets/images/ad.ico | Bin 9918 -> 0 bytes docs/assets/images/claude.ico | Bin 15086 -> 0 bytes docs/assets/images/deltaFlow.png | Bin 878 -> 0 bytes docs/assets/images/logo.png | Bin 8539 -> 0 bytes docs/assets/images/mcerp.ico | Bin 14014 -> 0 bytes docs/assets/images/nulapack.png | Bin 7861 -> 0 bytes docs/assets/images/pydoe.svg | 250 ------ docs/assets/images/pyswarm.ico | Bin 11513 -> 0 bytes docs/assets/images/qtop.ico | Bin 4286 -> 0 bytes docs/assets/javascripts/mathjax.js | 16 - docs/assets/stylesheets/extra.css | 15 - docs/community/index.md | 34 - docs/community/laraib.md | 22 - docs/community/noor.md | 17 - docs/community/saud.md | 19 - docs/contact.md | 19 - docs/contributing.md | 100 --- docs/how-we-build.md | 123 --- docs/index.md | 71 -- docs/projects/index.md | 182 ----- index.html | 256 ++++++ package-lock.json | 1186 ++++++++++++++++++++++++++++ package.json | 22 + partials/head.html | 23 + projects/index.html | 67 ++ public/brand/eggzec-banner.png | Bin 0 -> 115772 bytes public/brand/eggzec-mark.png | Bin 0 -> 37174 bytes public/brand/eggzec-mark.svg | 1 + public/brand/icons/ad.svg | 1 + public/brand/icons/bb.svg | 1 + public/brand/icons/mcerp.svg | 1 + public/brand/icons/nlpql.svg | 1 + public/brand/icons/ogrep.svg | 1 + public/brand/icons/pydoe.svg | 20 + public/brand/icons/pyswarm.svg | 1 + public/brand/icons/sdepack.svg | 1 + public/brand/icons/soerp.svg | 1 + src/components/content.ts | 84 ++ src/components/footer.ts | 85 ++ src/components/life-field.ts | 422 ++++++++++ src/components/marquee.ts | 76 ++ src/components/nav.ts | 282 +++++++ src/components/pixel-rule.ts | 70 ++ src/components/pointer.ts | 116 +++ src/components/project-cards.ts | 170 ++++ src/components/reveal.ts | 116 +++ src/components/wordmark.ts | 153 ++++ src/data/site.ts | 287 +++++++ src/lib/eggzec-block.ts | 239 ++++++ src/lib/env.ts | 52 ++ src/main.ts | 91 +++ src/styles/base.css | 194 +++++ src/styles/components.css | 654 +++++++++++++++ src/styles/layout.css | 478 +++++++++++ src/styles/pages.css | 537 +++++++++++++ src/styles/tokens.css | 129 +++ tsconfig.json | 29 + vite-plugin-partials.ts | 83 ++ vite.config.ts | 45 ++ zensical.toml | 81 -- 71 files changed, 6371 insertions(+), 1015 deletions(-) create mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/docs_build.yml create mode 100644 404.html create mode 100644 community/index.html create mode 100644 community/laraib/index.html create mode 100644 community/noor/index.html create mode 100644 community/saud/index.html delete mode 100644 docs/assets/images/SOERP.svg delete mode 100644 docs/assets/images/ad.ico delete mode 100644 docs/assets/images/claude.ico delete mode 100644 docs/assets/images/deltaFlow.png delete mode 100644 docs/assets/images/logo.png delete mode 100644 docs/assets/images/mcerp.ico delete mode 100644 docs/assets/images/nulapack.png delete mode 100644 docs/assets/images/pydoe.svg delete mode 100644 docs/assets/images/pyswarm.ico delete mode 100644 docs/assets/images/qtop.ico delete mode 100644 docs/assets/javascripts/mathjax.js delete mode 100644 docs/assets/stylesheets/extra.css delete mode 100644 docs/community/index.md delete mode 100644 docs/community/laraib.md delete mode 100644 docs/community/noor.md delete mode 100644 docs/community/saud.md delete mode 100644 docs/contact.md delete mode 100644 docs/contributing.md delete mode 100644 docs/how-we-build.md delete mode 100644 docs/index.md delete mode 100644 docs/projects/index.md create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 partials/head.html create mode 100644 projects/index.html create mode 100644 public/brand/eggzec-banner.png create mode 100644 public/brand/eggzec-mark.png create mode 100644 public/brand/eggzec-mark.svg create mode 100644 public/brand/icons/ad.svg create mode 100644 public/brand/icons/bb.svg create mode 100644 public/brand/icons/mcerp.svg create mode 100644 public/brand/icons/nlpql.svg create mode 100644 public/brand/icons/ogrep.svg create mode 100644 public/brand/icons/pydoe.svg create mode 100644 public/brand/icons/pyswarm.svg create mode 100644 public/brand/icons/sdepack.svg create mode 100644 public/brand/icons/soerp.svg create mode 100644 src/components/content.ts create mode 100644 src/components/footer.ts create mode 100644 src/components/life-field.ts create mode 100644 src/components/marquee.ts create mode 100644 src/components/nav.ts create mode 100644 src/components/pixel-rule.ts create mode 100644 src/components/pointer.ts create mode 100644 src/components/project-cards.ts create mode 100644 src/components/reveal.ts create mode 100644 src/components/wordmark.ts create mode 100644 src/data/site.ts create mode 100644 src/lib/eggzec-block.ts create mode 100644 src/lib/env.ts create mode 100644 src/main.ts create mode 100644 src/styles/base.css create mode 100644 src/styles/components.css create mode 100644 src/styles/layout.css create mode 100644 src/styles/pages.css create mode 100644 src/styles/tokens.css create mode 100644 tsconfig.json create mode 100644 vite-plugin-partials.ts create mode 100644 vite.config.ts delete mode 100644 zensical.toml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8cb8cdf..fc0011c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,8 +6,11 @@ updates: interval: "weekly" day: "friday" - - package-ecosystem: "uv" - directory: "/" + - package-ecosystem: "npm" + directory: "/web" schedule: interval: "weekly" day: "friday" + groups: + dev-dependencies: + dependency-type: "development" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..d08c840 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,60 @@ +name: Deploy + +on: + push: + branches: [master] + pull_request: + branches: [master] + workflow_dispatch: + +# `pages: write` + `id-token: write` are what actions/deploy-pages needs to +# publish; `contents: read` is enough for the checkout. +permissions: + contents: read + pages: write + id-token: write + +# Never let two deploys race. In-progress runs finish so a half-published +# artifact is not left behind. +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: npm + cache-dependency-path: package-lock.json + + - name: Install dependencies + run: npm ci + + - name: Typecheck + run: npm run typecheck + + - name: Build + run: npm run build + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: dist + + deploy: + # Pull requests get the build + typecheck gate but must not publish. + if: github.event_name != 'pull_request' + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/docs_build.yml b/.github/workflows/docs_build.yml deleted file mode 100644 index 0fbfe5b..0000000 --- a/.github/workflows/docs_build.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Documentation -permissions: - pages: write - id-token: write - -on: - pull_request: - branches: [ master ] - workflow_call: - inputs: &build-docs-inputs - deploy: - type: boolean - required: false - default: false - - workflow_dispatch: - inputs: *build-docs-inputs - -concurrency: - group: docs-build - -jobs: - - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v7 - - - name: Setup uv - uses: astral-sh/setup-uv@v7 - - - name: Build Documentation - run: uv run --with=zensical zensical build --clean --strict - - - name: Set Artifact Name - id: artifact-name - run: | - echo "artifact_name=${{ github.run_id }}[${{ github.run_attempt }}]--docs-artifacts" \ - | tee -a $GITHUB_OUTPUT - - - name: Upload Pages Artifacts - uses: actions/upload-pages-artifact@v5 - with: - name: ${{ steps.artifact-name.outputs.artifact_name }} - path: site/ - - - name: Deploy to GitHub Pages - if: ${{ inputs.deploy }} - uses: actions/deploy-pages@v5 - with: - artifact_name: ${{ steps.artifact-name.outputs.artifact_name }} diff --git a/.gitignore b/.gitignore index f8a207a..47fb24d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ +node_modules +dist .venv -site + +# editors / os +.DS_Store +*.log diff --git a/404.html b/404.html new file mode 100644 index 0000000..a6032e8 --- /dev/null +++ b/404.html @@ -0,0 +1,63 @@ + + + + + + + + + + +
+ +
+
+ + + +
+
+ +

+ This cell died out +

+ +

+ The page you asked for is not here. It may have been moved, renamed, or it never + existed. The repository it belonged to might live under a different name now. +

+ + +
+
+
+ +
+ + + diff --git a/README.md b/README.md index 626b0fd..f93ec6e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,94 @@ -# Website -Community website. +# eggzec.github.io + +The eggzec organization website. Science + Computing. + +Live at **https://eggzec.github.io/**. + +A hand built static site: Vite and TypeScript, with no UI framework. +Animation uses [Motion](https://motion.dev) plus +[Lenis](https://lenis.darkroom.engineering) for smooth scrolling, and a canvas +Game of Life for the hero texture. + +## Layout + +``` +index.html landing page +404.html custom not found page +projects/ full project catalog, filterable by category +community/ maintainers, plus one page each +partials/head.html shared , injected at build time +public/brand/ logo, project icons +src/ + main.ts single entry, mounts whatever a page contains + data/site.ts projects and people. Edit content here + components/ nav, footer, cards, life field, reveals, marquee + lib/eggzec-block.ts the eggzec Block bitmap display font, as TypeScript + styles/ tokens, base, layout, components, pages +``` + +## Develop + +```bash +npm install +npm run dev # http://localhost:5173 +``` + +```bash +npm run build # typecheck, then emit dist/ +npm run preview # serve the built output +npm run typecheck +``` + +## Editing content + +Almost everything is data rather than markup, and it all lives in +`src/data/site.ts`. + +| What | Where | +| --- | --- | +| Projects, taglines, repository and docs and PyPI links | `PROJECTS` | +| Human facing name when the repo name is not one | `display` on a project | +| Which projects lead the page | any project with an `icon` | +| Maintainers | `PEOPLE` | +| Nav links | `NAV` | +| Footer links | `COLUMNS` in `src/components/footer.ts` | + +A project is featured on the landing page and in the nav menu when it has an +`icon`. That keeps the featured set in sync with the brand icon files under +`public/brand/icons/` automatically, with no second list to maintain. + +Landing page statistics are counted from the catalog at runtime, so the numbers +cannot drift from what is actually listed. + +## Design + +Colours are the Electropop palette on white: + +| Role | Colour | +| --- | --- | +| Block fills, buttons, knockouts | Kiwi `#CCFF00` | +| Accent text and links | Violet `#5200FF` | +| Sparks and newly born cells | Magenta `#F900FF` | +| Third accent | Orange `#FF6B00` | + +Kiwi is brilliant as a field with black on top of it and illegible as type on +white, so `--accent-fill` and `--accent-text` are separate roles. Violet carries +everything that has to be read. + +Display lettering is the eggzec Block bitmap font, rendered as inline SVG at any +size, so there is no font file and no layout shift. Because the font is +monospaced, the hero solves for letter tracking per line, which makes every line +land at the same width and the same cap height. + +The hero, footer and 404 page run Conway's Game of Life on a coarse grid. That +is the same glider hidden in the logo mark. Everything animated respects +`prefers-reduced-motion`. + +## Deploy + +`.github/workflows/deploy.yml` builds the site and publishes to GitHub Pages on +every push to `master`. Pull requests run the typecheck and the build but do not +publish. + +Pages must be set to **Settings, then Pages, then Build and deployment, Source: +GitHub Actions** in the repository settings. diff --git a/community/index.html b/community/index.html new file mode 100644 index 0000000..dac22cf --- /dev/null +++ b/community/index.html @@ -0,0 +1,66 @@ + + + + + + + + + +
+ +
+ + +
+
+
+
+
+ +
+
+
+ +
+

Want to join?

+

+ Start by picking up an issue, then open a draft pull request against the + repository default branch and we will review it. +

+ +
+
+
+
+
+ +
+ + + diff --git a/community/laraib/index.html b/community/laraib/index.html new file mode 100644 index 0000000..86960e8 --- /dev/null +++ b/community/laraib/index.html @@ -0,0 +1,34 @@ + + + + + + + + + +
+ +
+ + +
+ +
+
+ +
+ + + diff --git a/community/noor/index.html b/community/noor/index.html new file mode 100644 index 0000000..ede10dd --- /dev/null +++ b/community/noor/index.html @@ -0,0 +1,34 @@ + + + + + + + + + +
+ +
+ + +
+ +
+
+ +
+ + + diff --git a/community/saud/index.html b/community/saud/index.html new file mode 100644 index 0000000..c94513e --- /dev/null +++ b/community/saud/index.html @@ -0,0 +1,34 @@ + + + + + + + + + +
+ +
+ + +
+ +
+
+ +
+ + + diff --git a/docs/assets/images/SOERP.svg b/docs/assets/images/SOERP.svg deleted file mode 100644 index 833da4e..0000000 --- a/docs/assets/images/SOERP.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/assets/images/ad.ico b/docs/assets/images/ad.ico deleted file mode 100644 index 2fca2a72e6253c63b34c35e63dec1bfe860b04e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9918 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 C$Ztjf diff --git a/docs/assets/images/deltaFlow.png b/docs/assets/images/deltaFlow.png deleted file mode 100644 index 75c76d91aa3ce7a054069ccf9198255dcf5f38fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmeAS@N?(olHy`uVBq!ia0vp^DImHv#qX zmjw9*GyF?ABlOXdee>)G$}RpSOJlXaF)%RQ^K@|xi8%arhJA;yqsXzt8&i0HG6!Db zkW$W2ZOTxL$Wahu4=XQvd1&c}bsQWo^{z)~miOjZt@oa;=E}!sbK}%0rVqF@|Mg~9=096HwZ=EWJict-O!NKbvprJQZarkBux|f9H_LlAwny_#x~8Q1 z%dE}V7#kRMQRuGdVXaTz^55^i{TsgGX+Vc#(ZR^xPweJ8Ayg-hZ<5o+eq%k%_2C z)G7b9m#IZ_qt3~-FEdhRC~EuUPOFqzc6ejSbK`1GW$Pr1oN~FJJ(6m>tk+KxiD(Pm z{Pe>rvB$YG4P0Nu4m^9z5Yu-l;zqa}pMw>bK?6fV#70-Q4~IhByfgf+`-<7ObZ{{q zF!yGG`X<-L>4md6NR?p0!Kefw< z@j}s*T~kf|FKwQ8EAV*YC$>6$WiS2%GMg^zZ%NbV61+N#@%7 zJnHW3ISlIhVcXRMI4ErBkzih09rA6%+%Pgk}Fg$HB2;sUK pFl+JA)(!7AmDK;$Kk_T&g1`U( diff --git a/docs/assets/images/logo.png b/docs/assets/images/logo.png deleted file mode 100644 index 45569f0d33be875080a99670509823ebcc324aba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8539 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 diff --git a/docs/assets/images/mcerp.ico b/docs/assets/images/mcerp.ico deleted file mode 100644 index 4277c87d3540f2661120df6001a1f6eefe19c7b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14014 zcmeHOdvH|M8NYyqTCK6gR+K;pc9{qA{v=PpRnFlo3neYyl$F72NtNfRXr?crz-lQxWyq_b)zsfKhY z5ft+C`ZEke8Y)BYpwKyxV$CCUCA3OYLYq*Y)>vo@+AnBI@E@uYdKtP`ApfPx;gy@~ zTTd%A{$TJ=`a-hC!cT(Bb`--Zd%^RU;Cq|SLN}>$=tt_L8!86_-eNIidG_=Bz`&MK zY^=fB599ToJ%*E7Y6dILVsU}nLpDDpw4m5HgSDT^fizD%2Vj@vUL z8f)wCD=&8QanrR*t;2B+_6i(%PGiaNYsA&9Z=pKid%Pc`Vqh#EizJmmM3F9CrR1oj7@%aUtQVYwC8H;a_9*UexC^X2RBwN8I>!}$!x&4-NvXXuRGTsjUDFd zU*L0qIE(RU{XySn_Gi7#DQSdg&sE19y;ldh_+nyl+-)|*biFxyS;pIxA-&pK<-Mh zmhoPGUV32L#PQKS>gC7vt()slxT8f>HkJ3sUb>n4EDfv=M^o&pUj9x!oiFIK-{RO8O_iSR^zmxbotE>{<>2)>{FY|@ zSmv>K+`meKNBz?1;cCWUogs-#tVIF$< zX}-|8I8V~1Z}6vHer|diD_}cr;rl1~fZr0damLFlmu##$>HZv3*?i6~rmSM&wJ4;h+JaLVv%5^v&|Ebt_in>{0GoVo9k#N<-&yAO6N2j%0Zyno`kD%`y= z$2B>;7+C*{(t~nLz-?snHWvB~bTn3*bQZieHF42c)DxngUVX#)97mxN@BMqgyc=uk zJ&_ygA3F1Iif!GEe-Hn|-2avo8)Lnj9PUSKa{rc}_pEo#mt{zr)yl9Mx*-$aZV0vIOVo zQpDMr<%fH-*e6xlQi3&i7qFYTs2utmx05Zq|JY}{wa>~Sjr)8W@}@O4qbU!|Hx@rb zMStp#^Jbi=6YHs}1z*E>wGkgtPxU0bVM;d7W}zK)Un(ZgcE47a|;>a<2>frZ~deL#+$x}>rM_G6Y$x7%+&Yc8%C zZO5Q@6;OIqzZ`U8DlgwX&xPBX%F5l>ptQmEHp+2~<)5mm-pJ;|&KQNZ)uu_69GeXvyuCN*AKP16VE~1UqH7{^RwGF z*Vms0e#=FE7$?`et%P+5ZZY^CLfKGT`%*#oA}2nrQPym10XEBNPd3QYxSiIQ(@t%0 zx|{nDKkh^GTWyqA>VElhV7^l1S6bRNmixI$ypMADZyGo5?V@uQ3)?~g+rV!z^xH^4 z*>Cymcf*3Udo_=NwP)wCqA&1H75U+O7?4kk{=6JI7plo-04sw|%xsQ0RabMNX8n_+O6}u!E!!U+jCdbZ$jJ-CJ_dk`Az7+vekAUy5 z&O8hAwpFwz0_Hb2jtjZMS76UrKA!*1#mqO&{1fMS-rrmKbMlqWJpi~K7w{iN{UbHN zZrvC#zlA0meRBjma2t^0eqK2Z;m&_;4ZW++-Mhk&WifM^k>X|>9~)^;H99PI%;I)us)-=#E{Zs((&FAkQe&w(h=`u*8PRf*I z>e6w@TB9r-FOxDeNVZGHOiPx=%hGjilJQ_&Nu~_)l^LTRErINrDNUVFA{o7PXU?1s z*%#kBz7&%F+RIF7;qR*h&$9Lo!e_L%J>PpVWLw*o-lHV9{ymzBLw0mLWxLvLW{4SY6l;C~x#t%v{s diff --git a/docs/assets/images/nulapack.png b/docs/assets/images/nulapack.png deleted file mode 100644 index 67fd42c5e4f04afbe8f3302266a7b51467df944c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7861 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 Bp)vpf diff --git a/docs/assets/images/pydoe.svg b/docs/assets/images/pydoe.svg deleted file mode 100644 index aecfd08..0000000 --- a/docs/assets/images/pydoe.svg +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/assets/images/pyswarm.ico b/docs/assets/images/pyswarm.ico deleted file mode 100644 index f7c2cf975b294085e69c37fa4c6bf33298bf2137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11513 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 Z4qB(FqP6trs135%YGn1oD { - MathJax.typesetPromise() -}) diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css deleted file mode 100644 index 39bc911..0000000 --- a/docs/assets/stylesheets/extra.css +++ /dev/null @@ -1,15 +0,0 @@ -.md-typeset a, -.md-nav__link, -.md-tabs__link, -.md-header__topic, -.md-ellipsis { - color: inherit !important; - text-decoration: none !important; -} - -.md-typeset a:hover, -.md-nav__link:hover, -.md-tabs__link:hover { - color: inherit !important; - text-decoration: none !important; -} diff --git a/docs/community/index.md b/docs/community/index.md deleted file mode 100644 index 5b79f08..0000000 --- a/docs/community/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -icon: fontawesome/solid/users ---- - -# Community - -
- -- M. Saud Zahir - - --- - - Co-founder and maintainer. Software developer focused on Python, C++, - and Java for high-performance scientific computing. - -- M. Laraib Ali - - --- - - Co-founder and maintainer. Backend and systems engineer specializing in - Python and Go, Linux automation, PostgreSQL, observability, and containers. - -- Noor Mustafa - - --- - - Maintainer. Java-focused backend developer working with Spring, Nginx, - IntelliJ IDEA, Kotlin, and Python. - -
- ---- - -Want to join? Start with [:fontawesome-brands-github: github.com/eggzec](https://github.com/eggzec) diff --git a/docs/community/laraib.md b/docs/community/laraib.md deleted file mode 100644 index 0e72562..0000000 --- a/docs/community/laraib.md +++ /dev/null @@ -1,22 +0,0 @@ -# M. Laraib Ali - -![M Laraib Ali](https://github.com/laraibg786.png){ width="120" style="border-radius:12px;" } - -[:fontawesome-brands-github: GitHub](https://github.com/laraibg786) -  [:fontawesome-brands-gitlab: GitLab](https://gitlab.com/laraibg786) -  [:fontawesome-brands-python: PyPI](https://pypi.org/user/Laraibg786/) -  [:fontawesome-brands-linkedin: LinkedIn](https://www.linkedin.com/in/m-laraib-ali/) -  [:fontawesome-solid-envelope: Email](mailto:laraibg786@outlook.com) - -Backend and systems engineer specializing in Python and Go, building reliable, scalable services and automation on Linux and containerized environments. Experienced in distributed systems, PostgreSQL design, and observability with logging, tracing, and metrics to support production reliability and data-driven operations. - -
- Python - Go - Qt - PostgreSQL - MongoDB - Redis - Linux - Docker -
diff --git a/docs/community/noor.md b/docs/community/noor.md deleted file mode 100644 index e03c4f8..0000000 --- a/docs/community/noor.md +++ /dev/null @@ -1,17 +0,0 @@ -# Noor Mustafa - -![Noor Mustafa](https://github.com/Noor-Mustafa123.png){ width="120" style="border-radius:12px;" } - -[:fontawesome-brands-github: GitHub](https://github.com/Noor-Mustafa123) -  [:fontawesome-brands-linkedin: LinkedIn](https://www.linkedin.com/in/noormustafa715/) - -Passionate Java developer focused on building reliable backend applications with Spring Boot. I enjoy solving complex problems, learning continuously, and collaborating in team environments to deliver clean, maintainable software. - -
- Java - Spring - Nginx - IntelliJ IDEA - Kotlin - Python -
diff --git a/docs/community/saud.md b/docs/community/saud.md deleted file mode 100644 index c9089eb..0000000 --- a/docs/community/saud.md +++ /dev/null @@ -1,19 +0,0 @@ -# M. Saud Zahir - -![Saud Zahir](https://github.com/saudzahirr.png){ width="120" style="border-radius:12px;" } - -[:fontawesome-brands-github: GitHub](https://github.com/saudzahirr) -  [:fontawesome-brands-gitlab: GitLab](https://gitlab.com/saudzahirr) -  [:fontawesome-brands-python: PyPI](https://pypi.org/user/saudzahirr/) -  [:fontawesome-brands-linkedin: LinkedIn](https://www.linkedin.com/in/saudzahirr/) -  [:fontawesome-solid-envelope: Email](mailto:m.saud.zahir@gmail.com) - -I am a software engineer, passionate for developing high-quality software. I have experience interfacing Python with C, C++, and Fortran, as well as programming directly in these languages. I work across the full software lifecycle, from problem formulation and system design to implementation, optimization, and deployment, with a focus on clean, maintainable, and reliable solutions for data-intensive environments. - -
- Python - C++ - Java - Fortran - Qt -
diff --git a/docs/contact.md b/docs/contact.md deleted file mode 100644 index ce30b6a..0000000 --- a/docs/contact.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -icon: fontawesome/solid/envelope ---- - -# Contact - -For project questions, collaboration, or contribution discussions, use one of the channels below. - -## Primary Channels - -- GitHub Organization: [:fontawesome-brands-github: github.com/eggzec](https://github.com/eggzec) -- Community: [Meet the maintainers](community/index.md) - -## Direct Contacts - -* [:fontawesome-solid-envelope:](mailto:m.saud.zahir@gmail.com) M. Saud Zahir -* [:fontawesome-solid-envelope:](mailto:laraibg786@outlook.com) M. Laraib Ali - -If your inquiry is about a specific repository, please include the repo name and a short description so we can respond faster. diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 100644 index 2986595..0000000 --- a/docs/contributing.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -icon: fontawesome/solid/code-pull-request ---- - -# Contributing - -Thank you for your interest in contributing. -This guide explains how to report issues, propose changes, and keep contributions consistent across code, documentation, and testing. - -## How to Contribute - -You can contribute in several ways: - -- Report bugs or suggest improvements through GitHub Issues. -- Answer questions and help other users. -- Submit pull requests. -- Improve or expand documentation. -- Add or improve tests. -- Review open pull requests. - -> Before starting significant work (other than small typo or minor bug fixes), please open an issue first to discuss your proposal. - -## Reporting Issues - -When filing an issue: - -- Search existing issues to avoid duplicates. -- Use a clear, descriptive title and include a category where possible (for example: `bug - ...`, `feature-req - ...`). -- For bugs, provide steps to reproduce the issue. -- Describe expected behavior and actual behavior. -- Include environment details when relevant (OS, Python version, dependency versions). -- If possible, share a minimal reproducible example. - -## Submitting Pull Requests - -### Prerequisites - -You will need: - -- `git` -- [`uv`](https://docs.astral.sh/uv/getting-started/installation) -- Any code editor or IDE (for example VS Code, PyCharm, or similar) - -### Installation and Setup - -Fork the repository on GitHub and clone it locally. - -```bash -git clone https://github.com//.git --depth 1 -cd -uv sync -``` - -Create a new branch for your changes. - -```bash -git checkout -b -``` - -### Run Linting and Tests - -Add or update tests when your change affects behavior. -Run linting and tests before opening your PR. - -```bash -# linting and formatting (if applicable) -uvx ruff format . -uvx ruff check --fix . - -# tests (if available) -uv run pytest -n auto tests -``` - -### Build Documentation - -If you changed documentation, build and preview docs locally and check for warnings. - -```bash -uv run --with=zensical zensical build --clean --strict -``` - -### Open a Pull Request - -After finalizing your changes: - -1. Commit with a descriptive message. -2. Push your branch to your fork. -3. Open a **draft pull request** against the parent repository's default branch. -4. Include a clear summary and reference related issues. - -Mark the PR as ready for review when checks pass and the change is ready. - -## Good First Contributions - -- Improve documentation clarity and examples. -- Fix broken links, formatting, and small consistency issues. -- Add tests for uncovered behavior. -- Pick up `good first issue` or documentation-tagged issues. - -Thank you for helping improve eggzec. diff --git a/docs/how-we-build.md b/docs/how-we-build.md deleted file mode 100644 index 614d100..0000000 --- a/docs/how-we-build.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -icon: fontawesome/solid/layer-group ---- - -# How We Build - -Here are the tools we actively use to build, test, ship, and maintain software. - -## Languages - -
-
- Python - Go - Java - Rust -
-
- C++ - Fortran -
-
- -## Frameworks - -
- Spring - Boost C++ - Flask - FastAPI - Pydantic - SQLAlchemy -
- -## Data Science and ML - -
- NumPy - SciPy - PyTorch - TensorFlow - pandas -
- -## Databases - -
- SQLite - PostgreSQL - MongoDB -
- -## GUI - -
- Qt - PySide -
- -## Build Systems - -
- CMake - Meson - setuptools -
- -## Package Managers - -
- uv - micromamba - vcpkg - Conan -
- -## Containers and Platforms - -
- Docker - Linux -
- -## IDEs - -
- IntelliJ IDEA - PyCharm - CLion - DataGrip - Visual Studio Code - Visual Studio -
- -## Code Quality - -
- Ruff - SonarQube -
- -## Code Testing - -
- pytest - Catch2 -
- -## Documentation - -
- Zensical - Doxygen -
- -## AI - -
- Claude Code - Claude Code - OpenAI - Codex -
diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 660e720..0000000 --- a/docs/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -icon: fontawesome/solid/house ---- - -# eggzec - -**Science + Computing** - ---- - -A community focused on open source high-performance scientific computing and modern software development. - -
- -- pyswarm - - --- - - Particle Swarm Optimization for Python. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/pyswarm/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/pyswarm) - -- pydoe - - --- - - Design of Experiments for Python. - - [:fontawesome-solid-book: Documentation](https://pydoe.github.io/pydoe/) -   [:fontawesome-brands-github: GitHub](https://github.com/pydoe/pydoe) - -- mcerp - - --- - - Monte Carlo error propagation for uncertainty analysis in Python. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/mcerp/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/mcerp) - -- soerp - - --- - - Second-order error propagation for uncertainty analysis in Python. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/soerp/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/soerp) - -- ad - - --- - - First- and second-order automatic differentiation for Python. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/ad/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/ad) - -- qtop - - --- - - HPC queue and cluster monitor. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/qtop/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/qtop) - -
- ---- diff --git a/docs/projects/index.md b/docs/projects/index.md deleted file mode 100644 index 62280aa..0000000 --- a/docs/projects/index.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -icon: fontawesome/solid/diagram-project ---- - -# Projects - -
- -- :fontawesome-brands-github: **bb** - - --- - - A Bitbucket CLI and SDK client. - - [:fontawesome-brands-github: GitHub](https://github.com/eggzec/bb) - -- :fontawesome-brands-github: **vatic** - - --- - - Open-source risk analysis with predictive modeling and Monte Carlo - simulation for uncertainty workflows. - - [:fontawesome-brands-github: GitHub](https://github.com/eggzec/vatic) - -- qtop - - --- - - Text-mode HPC queue monitor for PBS, SGE, and OAR clusters. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/qtop/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/qtop) - -- pyswarm - - --- - - Particle Swarm Optimization (PSO) for Python with a lightweight API for - constrained, gradient-free optimization. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/pyswarm/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/pyswarm) - -- pydoe - - --- - - Design of Experiments package for Python with factorial, - response-surface, space-filling, and optimal design methods. - - [:fontawesome-solid-book: Documentation](https://pydoe.github.io/pydoe/) -   [:fontawesome-brands-github: GitHub](https://github.com/pydoe/pydoe) - -- mcerp - - --- - - Real-time Monte Carlo error propagation for Python using - latin-hypercube sampling. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/mcerp/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/mcerp) - -- soerp - - --- - - Second-order error propagation for Python to track uncertainty through - mathematical models using distribution moments. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/soerp/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/soerp) - -- ad - - --- - - First- and second-order automatic differentiation for Python with - transparent numerical operations. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/ad/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/ad) - -- :fontawesome-brands-github: **sdepack** - - --- - - Stochastic Runge-Kutta solvers for scalar Ito SDEs, from Euler-Maruyama - to higher-order schemes. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/sdepack/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/sdepack) - -- :fontawesome-brands-github: **smolpack** - - --- - - Multidimensional cubature over `[0,1]^d` using Smolyak sparse-grid - construction with Clenshaw-Curtis rules. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/smolpack/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/smolpack) - -- NULAPACK - - --- - - Numerical linear algebra package with Fortran core subroutines and - Python/C++ interfaces. - - [:fontawesome-solid-book: Documentation](https://nulapack.github.io/NULAPACK/) -   [:fontawesome-brands-github: GitHub](https://github.com/NULAPACK/NULAPACK) - -- :fontawesome-brands-github: **polpack** - - --- - - High-performance special functions and polynomial families with a - Fortran numerical core. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/polpack/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/polpack) - -- :fontawesome-brands-github: **kronrod** - - --- - - Gauss-Kronrod quadrature rule generator for reusable high-accuracy - numerical integration. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/kronrod/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/kronrod) - -- :fontawesome-brands-github: **spinterp** - - --- - - Sparse Grid Interpolation Toolbox for Python - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/spinterp/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/spinterp) - -- :fontawesome-brands-github: **sparse_grid** - - --- - - Pure-Python sparse grid implementation with hierarchical index generation - and fast hat-basis evaluation. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/sparse_grid/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/sparse_grid) - -- :fontawesome-brands-github: **cordic** - - --- - - CORDIC-based trigonometric, hyperbolic, exponential, logarithmic, and - root-function evaluation library for Python. - - [:fontawesome-solid-book: Documentation](https://eggzec.github.io/cordic/) -   [:fontawesome-brands-github: GitHub](https://github.com/eggzec/cordic) - -- JavaDOE - - --- - - Java Design of Experiments library including Box-Behnken, central - composite, and factorial designs. - - [:fontawesome-brands-github: GitHub](https://github.com/Java-DOE/JavaDOE) - -- :fontawesome-brands-github: **qweb** - - --- - - Web interface for Sun Grid Engine with job submission, monitoring, and - cluster management endpoints. - - [:fontawesome-brands-github: GitHub](https://github.com/eggzec/qweb) - -
diff --git a/index.html b/index.html new file mode 100644 index 0000000..4ebf631 --- /dev/null +++ b/index.html @@ -0,0 +1,256 @@ + + + + + + + + + +
+ +
+ +
+ + + +
+

+ + Science + Computing +

+ +
+ +

+ We build the numerical layer: + Fortran and C++ cores wrapped for Python, with uncertainty + propagation, design of experiments, and optimization on top. Everything is + published to PyPI, documented, and tested on every push. +

+ + + +
+

Shipping

+
+ pyswarm + pydoe + mcerp + soerp + ad + nlpql + smolpack + sdepack + ogrep + polpack + kronrod + vatic +
+
+
+
+ +
+ + +
+
+
+
+ + Projects +
+
+ + Packages on PyPI +
+
+ + Documentation sites +
+
+ + Maintainers +
+
+
+
+ + +
+
+
+

Projects

+

Tools we needed, so we wrote them

+

+ Every project below is a repository you can clone today. Most ship a package, a + documentation site, and a CI pipeline that runs the tests on every push. +

+
+ +
+ + +
+
+ + +
+
+
+

How we work

+

Fast where it matters, readable everywhere else

+
+ +
+
+

01

+

Native cores, Python surface

+

+ Quadrature, linear algebra, and special functions stay in Fortran and C++. The API + you import is Python, built with f2py, SIP, and Meson. +

+
+ +
+

02

+

Uncertainty is first class

+

+ Propagate error by moments, by Monte Carlo, or by derivative. mcerp, soerp, and ad + cover all three against the same modelling code. +

+
+ +
+

03

+

Published, not parked

+

+ Packages go to PyPI with a versioned docs site, Ruff and pytest in CI, and coverage + reported on the pull request that changed it. +

+
+
+
+
+ + +
+
+
+

Toolchain

+

What we build with

+

+ uv for environments, Meson and CMake for native builds, Ruff and pytest for the gate, + Zensical and Doxygen for the docs. +

+
+
+ +
+ PyPython + FFortran + C++C++ + GoGo + JJava + NpNumPy + SpSciPy + uvuv + RfRuff + MMeson + ptpytest + QtQt + DkDocker + ZnZensical +
+
+ +
+ + +
+
+
+

Community

+

Small group, long horizon

+

+ eggzec is maintained by three engineers working across Python, C++, Fortran, Java, and + Go. Issues and pull requests are welcome on every repository. +

+
+ + +
+
+ + +
+
+
+ +
+

Start with a repository

+

+ Pick a project, read the docs, open an issue. Good first contributions are tagged on + every repo that has them. +

+ +
+
+
+
+
+ +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1b19e7e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1186 @@ +{ + "name": "eggzec-web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "eggzec-web", + "version": "1.0.0", + "dependencies": { + "lenis": "^1.1.18", + "motion": "^11.18.1" + }, + "devDependencies": { + "@types/node": "^26.2.0", + "typescript": "^5.7.3", + "vite": "^6.0.11" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz", + "integrity": "sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.4.tgz", + "integrity": "sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.4.tgz", + "integrity": "sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.4.tgz", + "integrity": "sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.4.tgz", + "integrity": "sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.4.tgz", + "integrity": "sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.4.tgz", + "integrity": "sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.4.tgz", + "integrity": "sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.4.tgz", + "integrity": "sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.4.tgz", + "integrity": "sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.4.tgz", + "integrity": "sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.4.tgz", + "integrity": "sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.4.tgz", + "integrity": "sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.4.tgz", + "integrity": "sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.4.tgz", + "integrity": "sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.4.tgz", + "integrity": "sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.4.tgz", + "integrity": "sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.4.tgz", + "integrity": "sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.4.tgz", + "integrity": "sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.4.tgz", + "integrity": "sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.4.tgz", + "integrity": "sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.4.tgz", + "integrity": "sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.4.tgz", + "integrity": "sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.4.tgz", + "integrity": "sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.4.tgz", + "integrity": "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true + }, + "node_modules/@types/node": { + "version": "26.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz", + "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==", + "dev": true, + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/framer-motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", + "dependencies": { + "motion-dom": "^11.18.1", + "motion-utils": "^11.18.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/lenis": { + "version": "1.3.26", + "resolved": "https://registry.npmjs.org/lenis/-/lenis-1.3.26.tgz", + "integrity": "sha512-s/xTCZCxTFvHbAN1OzuhNaN5YPJH2ail0XAkctKW1b+RUAG4nUL5UHLXwNko1h8aEeT2jspBXegMgPJd8zcuag==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/darkroomengineering" + }, + "peerDependencies": { + "@nuxt/kit": ">=3.0.0", + "react": ">=17.0.0", + "vue": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "react": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-11.18.2.tgz", + "integrity": "sha512-JLjvFDuFr42NFtcVoMAyC2sEjnpA8xpy6qWPyzQvCloznAyQ8FIXioxWfHiLtgYhoVpfUqSWpn1h9++skj9+Wg==", + "dependencies": { + "framer-motion": "^11.18.2", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", + "dependencies": { + "motion-utils": "^11.18.1" + } + }, + "node_modules/motion-utils": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", + "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.62.4", + "@rollup/rollup-android-arm64": "4.62.4", + "@rollup/rollup-darwin-arm64": "4.62.4", + "@rollup/rollup-darwin-x64": "4.62.4", + "@rollup/rollup-freebsd-arm64": "4.62.4", + "@rollup/rollup-freebsd-x64": "4.62.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.4", + "@rollup/rollup-linux-arm-musleabihf": "4.62.4", + "@rollup/rollup-linux-arm64-gnu": "4.62.4", + "@rollup/rollup-linux-arm64-musl": "4.62.4", + "@rollup/rollup-linux-loong64-gnu": "4.62.4", + "@rollup/rollup-linux-loong64-musl": "4.62.4", + "@rollup/rollup-linux-ppc64-gnu": "4.62.4", + "@rollup/rollup-linux-ppc64-musl": "4.62.4", + "@rollup/rollup-linux-riscv64-gnu": "4.62.4", + "@rollup/rollup-linux-riscv64-musl": "4.62.4", + "@rollup/rollup-linux-s390x-gnu": "4.62.4", + "@rollup/rollup-linux-x64-gnu": "4.62.4", + "@rollup/rollup-linux-x64-musl": "4.62.4", + "@rollup/rollup-openbsd-x64": "4.62.4", + "@rollup/rollup-openharmony-arm64": "4.62.4", + "@rollup/rollup-win32-arm64-msvc": "4.62.4", + "@rollup/rollup-win32-ia32-msvc": "4.62.4", + "@rollup/rollup-win32-x64-gnu": "4.62.4", + "@rollup/rollup-win32-x64-msvc": "4.62.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true + }, + "node_modules/vite": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", + "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..80356ae --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "eggzec-web", + "private": true, + "version": "1.0.0", + "type": "module", + "description": "eggzec — Science + Computing. Organization website.", + "scripts": { + "dev": "vite", + "build": "tsc --noEmit && vite build", + "preview": "vite preview", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@types/node": "^26.2.0", + "typescript": "^5.7.3", + "vite": "^6.0.11" + }, + "dependencies": { + "lenis": "^1.1.18", + "motion": "^11.18.1" + } +} diff --git a/partials/head.html b/partials/head.html new file mode 100644 index 0000000..ac4e23a --- /dev/null +++ b/partials/head.html @@ -0,0 +1,23 @@ + + + {{title}} + + + + + + + + + + + + + + + + + diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 0000000..8763481 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,67 @@ + + + + + + + + + +
+ +
+ + +
+
+
+
+
+ +
+
+
+ +
+

+ They are all built the same way. +

+

+ A numerical core in Fortran or C++, a small Python API on top, and a test suite + that runs on every push. Pick one, read its README, and open an issue on + github.com/eggzec + if anything is unclear. +

+
+
+
+
+
+ +
+ + + diff --git a/public/brand/eggzec-banner.png b/public/brand/eggzec-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..2445056bf0230dbc4af4175a3718050ca8349004 GIT binary patch literal 115772 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 O({XM6qq#@yF8?3dFew!P literal 0 HcmV?d00001 diff --git a/public/brand/eggzec-mark.png b/public/brand/eggzec-mark.png new file mode 100644 index 0000000000000000000000000000000000000000..a5dc2e6fb2780635769d9f3d0a745efa3303cd5e GIT binary patch literal 37174 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

dtXV?Om`{t#jyZ`!m}W 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 literal 0 HcmV?d00001 diff --git a/public/brand/eggzec-mark.svg b/public/brand/eggzec-mark.svg new file mode 100644 index 0000000..05a2659 --- /dev/null +++ b/public/brand/eggzec-mark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/ad.svg b/public/brand/icons/ad.svg new file mode 100644 index 0000000..92ff574 --- /dev/null +++ b/public/brand/icons/ad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/bb.svg b/public/brand/icons/bb.svg new file mode 100644 index 0000000..a6a9a6c --- /dev/null +++ b/public/brand/icons/bb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/mcerp.svg b/public/brand/icons/mcerp.svg new file mode 100644 index 0000000..3f19811 --- /dev/null +++ b/public/brand/icons/mcerp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/nlpql.svg b/public/brand/icons/nlpql.svg new file mode 100644 index 0000000..d1131cd --- /dev/null +++ b/public/brand/icons/nlpql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/ogrep.svg b/public/brand/icons/ogrep.svg new file mode 100644 index 0000000..2468187 --- /dev/null +++ b/public/brand/icons/ogrep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/pydoe.svg b/public/brand/icons/pydoe.svg new file mode 100644 index 0000000..065eb3f --- /dev/null +++ b/public/brand/icons/pydoe.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/brand/icons/pyswarm.svg b/public/brand/icons/pyswarm.svg new file mode 100644 index 0000000..3c6c526 --- /dev/null +++ b/public/brand/icons/pyswarm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/sdepack.svg b/public/brand/icons/sdepack.svg new file mode 100644 index 0000000..0731df2 --- /dev/null +++ b/public/brand/icons/sdepack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/brand/icons/soerp.svg b/public/brand/icons/soerp.svg new file mode 100644 index 0000000..7ae0a65 --- /dev/null +++ b/public/brand/icons/soerp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/content.ts b/src/components/content.ts new file mode 100644 index 0000000..130ff06 --- /dev/null +++ b/src/components/content.ts @@ -0,0 +1,84 @@ +/** + * Data-driven page bodies: the maintainer grid and the individual maintainer + * profiles, both read from `src/data/site.ts` so a person is described once. + */ + +import { PEOPLE, PROJECTS, type Person } from '../data/site' + +function linkList(person: Person): string { + return person.links + .map((link) => { + const external = !link.href.startsWith('mailto:') + return `${link.label}` + }) + .join('') +} + +/** `

` on /community/. */ +export function mountPeople(root: ParentNode = document): void { + const host = root.querySelector('[data-people]') + if (!host) return + + host.classList.add('people') + host.innerHTML = PEOPLE.map( + (person) => ` +
+ + +
+

${person.name}

+

${person.role}

+
+

${person.bio}

+
+ ${person.stack.map((s) => `${s}`).join('')} +
+
`, + ).join('') +} + +/** `
` on each maintainer page. */ +export function mountProfile(root: ParentNode = document): void { + const host = root.querySelector('[data-profile]') + if (!host) return + + const person = PEOPLE.find((p) => p.slug === host.dataset.profile) + if (!person) return + + document.title = `${person.name} · eggzec` + + host.classList.add('profile') + host.innerHTML = ` + ${person.name} +
+

${person.role}

+

${person.name}

+

${person.bio}

+ +
+ ${person.stack.map((s) => `${s}`).join('')} +
+
` +} + +/** + * Fills `[data-stat]` elements from the catalog rather than from hard-coded + * markup, so the landing-page numbers cannot drift from what is actually + * listed on the site. + */ +export function syncStats(root: ParentNode = document): void { + const totals: Record = { + projects: PROJECTS.length, + packages: PROJECTS.filter((p) => p.pypi).length, + docs: PROJECTS.filter((p) => p.docs).length, + maintainers: PEOPLE.length, + } + + for (const node of root.querySelectorAll('[data-stat]')) { + const key = node.dataset.stat ?? '' + const value = totals[key] + if (value === undefined) continue + node.dataset.countTo = String(value) + node.textContent = `${value}${node.dataset.countSuffix ?? ''}` + } +} diff --git a/src/components/footer.ts b/src/components/footer.ts new file mode 100644 index 0000000..273547a --- /dev/null +++ b/src/components/footer.ts @@ -0,0 +1,85 @@ +/** Site footer, rendered into the `