decidables
Explorable Explanations of Decision Making
decidables is a collection of websites and supporting libraries for explorable explanations of quantitative approaches to human decision making.
decidables is implemented as a git monorepo on GitHub.
The sites are served from GitHub Pages at decidables.github.io.
- decidables
(source)
Explorable Explanations of Decision Making
The root site with overall info and links to the individual explorables - Draft available:
d′etectable (source)
An Explorable Explanation of Signal Detection Theory - In progress...
prospectαbλe (source)
An Explorable Explanation of Cumulative Prospect Theory - In progress...
diskountable (source)
An Explorable Explanation of Hyperbolic Temporal Discounting - In progress...
accumulable (source)
An Explorable Explanation of the Diffusion Decision Model
The libraries are published to npm in the
@decidables scope.
decidables-elements(source)
Web components for UI elements used across all packagesdetectable-math(source)
Provides a class with equations for calculating Signal Detection Theorydetectable-elements(source)
Web components for exploring Signal Detection Theoryprospectable-math(source)
Provides a class with equations for calculating Cumulative Prospect Theoryprospectable-elements(source)
Web components for exploring Cumulative Prospect Theorydiscountable-math(source)
Provides a class with equations for calculating Hyperbolic Temporal Discountingdiscountable-elements(source)
Web components for exploring Hyperbolic Temporal Discountingaccumulable-math(source)
Provides a class with equations for calculating the Diffusion Decision Modelaccumulable-elements(source)
Web components for exploring the Diffusion Decision Model
Dependencies updated February 6, 2025.
In general, it should work with versions of any browsers using up-to-date WebKit/JavaScriptCore, Blink/V8, or Gecko/SpiderMonkey on desktop or mobile.
- Desktop (last 2 versions)
- Chrome
- Edge
- Firefox
- Safari
- Opera
- Mobile
- Chrome on Android
- Safari on iOS
- Within a page:
- Headings start at
H2, only first letter is capitalized - Italics used for emphasis
- Using remark-citeproc:
:cite[]citations::refinsert reference list
- Using remark-glossary:
:term[]terminology:entry[]glossary entry:::glossary :::glossary
- Using remark-div:
:::ui :::user interface notes
- Using remark-span:
:page[]link to another page:key[]keywords:tool[]development tool:buttonUI button:promptUI prompt:sliderUI slider:switchUI switch:toggleUI toggle
- Headings start at
Note: If not on Windows, replace choco with OS package manager of choice
- Use winget or manually install chocolatey https://chocolatey.org/install (on Windows) or HomeBrew https://brew.sh/ (on MacOS)
winget install EclipseAdoptium.Temurin.25.JDK,choco install temurin25, orbrew install --cask temurinwinget install Git.Git,choco install git, orbrew install gitgit config --global user.name "Name"git config --global user.email "email@example.org"
winget install OpenJS.NodeJS,choco install nodejs, orbrew install nodethenbrew install corepackcorepack enable- This is currently needed to use yarn without a separate installation
- If
corepackis not found, then runnpm install -g corepackfirst
winget upgrade,choco outdated, orbrew outdatedwinget upgrade --all,choco upgrade all, orbrew updatethenbrew upgradeyarn set version latest
yarn install- Downloads and installs yarn dependencies & devDependencies to
node_modules/
- Downloads and installs yarn dependencies & devDependencies to
yarn clean- Cleans all libraries by deleting
lib/ - Cleans all sites by deleting
local/,dist/, and associated directory indecidables.github.io
- Cleans all libraries by deleting
yarn workspace @decidables/<library|site> clean- Cleans a single library or site
yarn workspace @decidables/<library|site> gulp clean<type>- Cleans
Libraryfor a single library - Cleans
Develop(i.e.local/),Build(i.e.dist/), orDeploy(i.e. the associated directory indecidables.github.io) for a single site
- Cleans
yarn lint- Lints all libraries for markdown and scripts in
src/ - Lints all sites for markdown, scripts, and styles in
src/, and compiled markup inlocal/
- Lints all libraries for markdown and scripts in
yarn workspace @decidables/<library|site> lint- Lints a single library or site
yarn workspace @decidables/<library|site> gulp lint<type>- Lints
ScriptsorStylesin a single library - Lints
Markdown,Markup,Scripts, orStylesin a single site
- Lints
yarn test- Runs all tests for all libraries and reports coverage in
test/coverage/
- Runs all tests for all libraries and reports coverage in
yarn workspace @decidables/<library> test- Runs all tests for a single library and reports coverage in
test/coverage/
- Runs all tests for a single library and reports coverage in
yarn workspace @decidables/<library> test --watchyarn workspace @decidables/<library> test -w- Runs all tests for a single library in watch mode and reports coverage in
test/coverage/
- Runs all tests for a single library in watch mode and reports coverage in
yarn workspace @decidables/<library> test <directory/filename>- Runs tests for a single library for a single file and reports coverage in
test/coverage/
- Runs tests for a single library for a single file and reports coverage in
yarn workspace @decidables/<library> test <directory/filename> --watchyarn workspace @decidables/<library> test <directory/filename> -w- Runs tests for a single library for a single file in watch mode and reports coverage in
test/coverage/
- Runs tests for a single library for a single file in watch mode and reports coverage in
yarn develop- Makes all sites into browser-compatible scripts from
src/tolocal/
- Makes all sites into browser-compatible scripts from
yarn workspace @decidables/<site> develop- Makes a single site from
src/tolocal/
- Makes a single site from
yarn workspace @decidables/<site> gulp develop<type>- Makes
Favicons,Fonts,Markdown,Scripts, orStylesfor a single site fromsrc/tolocal/
- Makes
yarn watch- Re-
developall sites on file changes insrc/or local library dependencies
- Re-
yarn workspace @decidables/<site> watch- Re-
developsite on file changes insrc/or local library dependencies
- Re-
yarn workspace @decidables/<site> gulp watch<type>- Re-
developsite onMarkdown,Scripts, orStyleschanges insrc/or local library dependencies
- Re-
yarn build- Makes all libraries into browser-compatible optimized bundles from
src/tolib/ - Makes all sites into browser-compatible optimized scripts from
src/todist/
- Makes all libraries into browser-compatible optimized bundles from
yarn workspace @decidables/<library|site> build- Makes a single library into browser-compatible optimized bundles from
src/tolib/ - Makes a single site into browser-compatible optimized scripts from
src/todist/
- Makes a single library into browser-compatible optimized bundles from
yarn workspace @decidables/<library|site> gulp build<type>- Makes
Scriptsfor a single library fromsrc/tolib/ - Makes
Favicons,Fonts,Markup,Scripts, orStylesfor a single site fromsrc/todist/
- Makes
yarn changed- Lists which libraries and sites will receive version bumps when
yarn versionsis run
- Lists which libraries and sites will receive version bumps when
yarn versions- Note: requires a valid GitHub personal access token be set to GH_TOKEN environment variable
- Bumps version numbers of all libraries and sites as needed based on conventional commits
- Transitive dependencies updated in each
package.json - Git tags added for new versions
- All of this is committed and pushed
yarn publish- Note: to be run immediately after
yarn versions - Note: you must be logged in to NPM with appropriate scope:
npm adduser <username> --scope=@decidables - Note: requires a valid NPM granular access token be set to NPM_TOKEN environment variable with read and write access to @decidables scope
- Publishes all new versions of public libraries to npm
- Note: to be run immediately after
yarn deploy- Note: requires a valid GitHub personal access token be set to the repository secret API_TOKEN_GITHUB on @decidables/decidables
- Re-build markdown (to grab new version) then copy files for all sites from
dist/todecidables.github.io/for GitHub Pages deployment
yarn workspace @decidables/<site> deploy- Re-build markdown (to grab new version) then copy files for a single site from
dist/todecidables.github.io/for GitHub Pages deployment
- Re-build markdown (to grab new version) then copy files for a single site from
yarn serve- Serves each site mounted on
local/anddist/, and all sites integrated ondeploy/(e.g. http://localhost:8000/local/detectable, http://localhost:8000/dist/detectable, and http://localhost:8000/deploy/detectable)
- Serves each site mounted on
yarn workspace @decidables/<site> serve- Serves
<site>/(e.g. http://localhost:8000/local/ or http://localhost:8000/dist/)
- Serves
yarn outdated- Check for outdated dependencies
yarn up- Upgrade to latest dependencies, ignoring semver!
yarn upgrade-interactive- Manual upgrade to newer dependencies, with option to ignore semver
yarn dlx update-browserslist-db@latest- Update
caniuse-liteso the browser data is up-to-date
- Update
yarn all run <package-script>yarn all exec <shell-script>- Run a package.json script or execute a shell script for each library and site
yarn libraries run <package-script>yarn libraries exec <shell-script>- Run a package.json script or execute a shell script for each library
yarn sites run <package-script>yarn sites exec <shell-script>- Run a package.json script or execute a shell script for each site
decidables/.git/(Repository for git) [autogenerated].github/(Configuration for GitHub Actions).vscode/(Editor configuration for VSCode).yarn/(Repository for yarn) [autogenerated]decidables.github.io/(Sites organized for deployment) [autogenerated]libraries/(All libraries are found here)node_modules/(dependencies & devDependencies installed byyarn install) [autogenerated]scripts/(gulp support scripts used for tooling)sites/(All sites are found here).commitlintrc.json(Commit linting configuration for commitlint).eslintrc.json(Code linting configuration for eslint).gitattributes(Version control configuration for git).gitignore(Version control configuration for git).npmrc(Package publishing configuration for npm ).remarkrc.js(Markdown linting configuration for remark-lint).yarnrc.yml(Package manager configuration for yarn)gulpfile.js(Tasks for gulp)lerna.json(Monorepo configuration for lerna)LICENSE.md(Describes licenses for this project)NOTES.md(Notes about the overall project)package.json(Overall configuration for monorepo)README.md(This file)stylelint.config.js(Style linting configuration for stylelint)web-test-runner.config.js(Testing configuration for web-test-runner)yarn.lock(Proprietary file for tracking package installations by yarn) [autogenerated]
The content of this project is licensed under Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA-4.0) and the source code of this project is licensed under GNU General Public License v3.0 or any later version (GPL-3.0-or-later).