Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b7a8a88
(w/AI) Add package.js, linting, prettier, npm run dev; formatting, cl…
bluehexagons Jan 14, 2026
8ae8d42
(w/AI) Upgrade dependencies
bluehexagons Feb 14, 2026
5511485
(w/AI) Add AI-generated tests for core calculations, fix some possibl…
bluehexagons Feb 14, 2026
a17f6a1
(w/AI) Remove split recipe-matcher, share code with tests
bluehexagons Feb 14, 2026
927ca2e
(w/AI) Changes to tests and comments
bluehexagons Feb 14, 2026
ed11e21
(w/AI) Add workflow for CI
bluehexagons Feb 14, 2026
b303b04
(w/AI) Refactor how alternate recipes/food versions are handled
bluehexagons Feb 14, 2026
b7abe8e
(w/AI) Clean up some tests
bluehexagons Feb 14, 2026
87dc444
(w/AI) Pluralization fix
bluehexagons Feb 14, 2026
afbf607
Fix lint errors
bluehexagons Feb 14, 2026
708fdbd
(w/AI) Change many things with regards to mode/characters
bluehexagons Feb 15, 2026
e187f2b
(w/AI) Make formatters stop fighting over this part
bluehexagons Feb 15, 2026
82b1350
(w/AI) Overhaul image system to use a generated sprite sheet
bluehexagons Feb 17, 2026
45a63fb
Add light/dark theme system and remove game-version-based theming
bluehexagons Feb 17, 2026
c04aa75
Simplify theme toggle: only light/dark after initial auto mode
bluehexagons Feb 17, 2026
a55edac
(w/AI) Dark/light mode and style changes
bluehexagons Feb 17, 2026
d4ef71e
Add ingredient sorting, improve UX, and implement conditional Mode co…
bluehexagons Feb 17, 2026
dffd5e0
Fix scope issue with getAutoHideColumns and add dynamic column visibi…
bluehexagons Feb 17, 2026
4516073
Replace toggle with display mode dropdown and improve control alignment
bluehexagons Feb 17, 2026
cc50407
(w/AI) Style and bug fixes
bluehexagons Feb 17, 2026
362cc37
(w/AI) Statistics analyzer fixes and improvements
bluehexagons Feb 17, 2026
c1f0e98
(w/AI) Lint fixes, statistics analyzer fixes
bluehexagons Feb 17, 2026
67ecc54
Update .prettierrc.json
bluehexagons Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: CI

on:
pull_request:
branches: [main]

jobs:
check:
name: Lint, Typecheck & Test
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint

- name: Typecheck
run: npm run typecheck

- name: Test
run: npm test
92 changes: 92 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Deploy

on:
push:
branches: [main]

# Allow manual trigger from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run
# in-progress and latest queued. Do not cancel in-progress runs as we want to
# allow these deployments to complete.
concurrency:
group: pages
cancel-in-progress: false

jobs:
# Run the same checks as CI before deploying
check:
name: Lint, Typecheck & Test
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint

- name: Typecheck
run: npm run typecheck

- name: Test
run: npm test

deploy-pages:
name: Deploy to GitHub Pages
needs: check
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Configure GitHub Pages
uses: actions/configure-pages@v5

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: html

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

notify-server:
name: Trigger server deployment
needs: check
runs-on: ubuntu-latest
# Only run if the webhook secret is configured
if: vars.DEPLOY_WEBHOOK_URL != ''

steps:
- name: Send deploy webhook
env:
WEBHOOK_URL: ${{ vars.DEPLOY_WEBHOOK_URL }}
WEBHOOK_SECRET: ${{ secrets.DEPLOY_WEBHOOK_SECRET }}
run: |
curl -fsS -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: $WEBHOOK_SECRET" \
-d "{\"ref\": \"$GITHUB_REF\", \"sha\": \"$GITHUB_SHA\"}" \
--max-time 30
167 changes: 6 additions & 161 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,163 +1,8 @@
#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results
[Dd]ebug/
[Rr]elease/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
*.dotCover

## TODO: If you have NuGet Package Restore enabled, uncomment this
#packages/

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf

# Visual Studio profiler
*.psess
*.vsp

# ReSharper is a .NET coding add-in
_ReSharper*

# Installshield output folder
[Ee]xpress

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish

# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML



############
## Windows
############

# Windows image file caches
Thumbs.db

# Folder config file
node_modules/
dist/
build/
*.log
Desktop.ini


#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg

# Mac crap
.DS_Store
Thumbs.db
html/img/sprites/
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules/
dist/
build/
*.log
.DS_Store
Thumbs.db
12 changes: 12 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"semi": true,
"singleQuote": true,
"useTabs": true,
"trailingComma": "all",
"bracketSpacing": true,
"arrowParens": "avoid",
"printWidth": 100,
"tabWidth": 1,
"endOfLine": "lf",
"quoteProps": "as-needed"
}
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"editor.tabSize": 4
}
25 changes: 20 additions & 5 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
import eslintConfigPrettier from 'eslint-config-prettier';

export default [
{
rules: {
semi: 'error',
// Code quality rules (non-formatting)
'prefer-const': 'error',
indent: ['error', 'tab'],
quotes: ['error', 'single'],
'arrow-parens': ['error', 'as-needed'],
'comma-dangle': ['error', 'always-multiline'],
'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
'no-console': 'off',
'no-debugger': 'warn',
eqeqeq: 'warn',
curly: 'error',

'prefer-arrow-callback': 'warn',
'prefer-template': 'warn',
'object-shorthand': 'warn',

'no-dupe-keys': 'warn',
'no-prototype-builtins': 'warn',
'no-useless-escape': 'warn',

'no-undef': 'off',
},
},
// Disable ESLint formatting rules that conflict with Prettier
eslintConfigPrettier,
];
10 changes: 10 additions & 0 deletions html/.http-server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"cors": true,
"cache": "-1",
"etag": false,
"showDir": true,
"autoIndex": true,
"ext": false,
"gzip": true,
"brotli": false
}
Loading