fix: feat: strategy engine game theory tournaments (#5) (closes #217)
Some checks failed
Accessibility Checks / a11y-audit (pull_request) Successful in 13s
Smoke Test / smoke (pull_request) Failing after 28s

This commit is contained in:
Alexander Whitestone
2026-04-21 23:35:43 -04:00
parent 729343e503
commit a1ae4bf59a
1794 changed files with 424267 additions and 18 deletions

10
node_modules/@csstools/css-calc/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# Changes to CSS Calc
### 3.2.0
_April 12, 2026_
- Add support for `round(line-width, 1.2345px)`
- Add `devicePixelLength` option
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md)

20
node_modules/@csstools/css-calc/LICENSE.md generated vendored Normal file
View File

@@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright 2022 Romain Menke, Antonio Laguna <antonio@laguna.es>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

132
node_modules/@csstools/css-calc/README.md generated vendored Normal file
View File

@@ -0,0 +1,132 @@
# CSS Calc <img src="https://cssdb.org/images/css.svg" alt="for CSS" width="90" height="90" align="right">
[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/css-calc.svg" height="20">][npm-url]
[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/actions/workflows/test.yml/badge.svg?branch=main" height="20">][cli-url]
[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
Implemented from : https://drafts.csswg.org/css-values-4/ on 2023-02-17
## Usage
Add [CSS calc] to your project:
```bash
npm install @csstools/css-calc @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev
```
### With string values :
```mjs
import { calc } from '@csstools/css-calc';
// '20'
console.log(calc('calc(10 * 2)'));
```
### With component values :
```mjs
import { stringify, tokenizer } from '@csstools/css-tokenizer';
import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser-algorithms';
import { calcFromComponentValues } from '@csstools/css-calc';
const t = tokenizer({
css: 'calc(10 * 2)',
});
const tokens = [];
{
while (!t.endOfFile()) {
tokens.push(t.nextToken());
}
tokens.push(t.nextToken()); // EOF-token
}
const result = parseCommaSeparatedListOfComponentValues(tokens, {});
// filter or mutate the component values
const calcResult = calcFromComponentValues(result, { precision: 5, toCanonicalUnits: true });
// filter or mutate the component values even further
const calcResultStr = calcResult.map((componentValues) => {
return componentValues.map((x) => stringify(...x.tokens())).join('');
}).join(',');
// '20'
console.log(calcResultStr);
```
### Options
#### `precision` :
The default precision is fairly high.
It aims to be high enough to make rounding unnoticeable in the browser.
You can set it to a lower number to suit your needs.
```mjs
import { calc } from '@csstools/css-calc';
// '0.3'
console.log(calc('calc(1 / 3)', { precision: 1 }));
// '0.33'
console.log(calc('calc(1 / 3)', { precision: 2 }));
```
#### `globals` :
Pass global values as a map of key value pairs.
> Example : Relative color syntax (`lch(from pink calc(l / 2) c h)`) exposes color channel information as ident tokens.
> By passing globals for `l`, `c` and `h` it is possible to solve nested `calc()`'s.
```mjs
import { calc } from '@csstools/css-calc';
const globals = new Map([
['a', '10px'],
['b', '2rem'],
]);
// '20px'
console.log(calc('calc(a * 2)', { globals: globals }));
// '6rem'
console.log(calc('calc(b * 3)', { globals: globals }));
```
#### `toCanonicalUnits` :
By default this package will try to preserve units.
The heuristic to do this is very simplistic.
We take the first unit we encounter and try to convert other dimensions to that unit.
This better matches what users expect from a CSS dev tool.
If you want to have outputs that are closes to CSS serialized values you can pass `toCanonicalUnits: true`.
```mjs
import { calc } from '@csstools/css-calc';
// '20hz'
console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: true }));
// '20hz'
console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: true }));
// '0.02khz' !!!
console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: false }));
// '20hz'
console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: false }));
```
[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
[discord]: https://discord.gg/bUadyRwkJS
[npm-url]: https://www.npmjs.com/package/@csstools/css-calc
[CSS calc]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc

106
node_modules/@csstools/css-calc/dist/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,106 @@
import { ComponentValue } from '@csstools/css-parser-algorithms';
import type { TokenDimension } from '@csstools/css-tokenizer';
import type { TokenNumber } from '@csstools/css-tokenizer';
import type { TokenPercentage } from '@csstools/css-tokenizer';
export declare function calc(css: string, options?: conversionOptions): string;
export declare function calcFromComponentValues(componentValuesList: Array<Array<ComponentValue>>, options?: conversionOptions): Array<Array<ComponentValue>>;
export declare type conversionOptions = {
/**
* If a calc expression can not be solved the parse error might be reported through this callback.
* Not all cases are covered. Open an issue if you need specific errors reported.
*
* Values are recursively visited and at each nesting level an attempt is made to solve the expression.
* Errors can be reported multiple times as a result of this.
*/
onParseError?: (error: ParseError) => void;
/**
* Pass global values as a map of key value pairs.
*/
globals?: GlobalsWithStrings;
/**
* The default precision is fairly high.
* It aims to be high enough to make rounding unnoticeable in the browser.
* You can set it to a lower number to suite your needs.
*/
precision?: number;
/**
* The CSS pixel length of one device pixel.
* Used when rounding to `line-width` and similar features
*/
devicePixelLength?: number;
/**
* By default this package will try to preserve units.
* The heuristic to do this is very simplistic.
* We take the first unit we encounter and try to convert other dimensions to that unit.
*
* This better matches what users expect from a CSS dev tool.
*
* If you want to have outputs that are closes to CSS serialized values you can set `true`.
*/
toCanonicalUnits?: boolean;
/**
* Convert NaN, Infinity, ... into standard representable values.
*/
censorIntoStandardRepresentableValues?: boolean;
/**
* Some percentages resolve against other values and might be negative or positive depending on context.
* Raw percentages are more likely to be safe to simplify outside of a browser context
*
* @see https://drafts.csswg.org/css-values-4/#calc-simplification
*/
rawPercentages?: boolean;
/**
* The values used to generate random value cache keys.
*/
randomCaching?: {
/**
* The name of the property the random function is used in.
*/
propertyName: string;
/**
* N is the index of the random function among other random functions in the same property value.
*/
propertyN: number;
/**
* An element ID identifying the element the style is being applied to.
* When omitted any `random()` call will not be computed.
*/
elementID: string;
/**
* A document ID identifying the Document the styles are from.
* When omitted any `random()` call will not be computed.
*/
documentID: string;
};
};
export declare type GlobalsWithStrings = Map<string, TokenDimension | TokenNumber | TokenPercentage | string>;
export declare const mathFunctionNames: Set<string>;
/**
* Any errors are reported through the `onParseError` callback.
*/
export declare class ParseError extends Error {
/** The index of the start character of the current token. */
sourceStart: number;
/** The index of the end character of the current token. */
sourceEnd: number;
constructor(message: string, sourceStart: number, sourceEnd: number);
}
export declare const ParseErrorMessage: {
UnexpectedAdditionOfDimensionOrPercentageWithNumber: string;
UnexpectedSubtractionOfDimensionOrPercentageWithNumber: string;
};
export declare class ParseErrorWithComponentValues extends ParseError {
/** The associated component values. */
componentValues: Array<ComponentValue>;
constructor(message: string, componentValues: Array<ComponentValue>);
}
export { }

1
node_modules/@csstools/css-calc/dist/index.mjs generated vendored Normal file

File diff suppressed because one or more lines are too long

59
node_modules/@csstools/css-calc/package.json generated vendored Normal file
View File

@@ -0,0 +1,59 @@
{
"name": "@csstools/css-calc",
"description": "Solve CSS math expressions",
"version": "3.2.0",
"contributors": [
{
"name": "Antonio Laguna",
"email": "antonio@laguna.es",
"url": "https://antonio.laguna.es"
},
{
"name": "Romain Menke",
"email": "romainmenke@gmail.com"
}
],
"license": "MIT",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/csstools"
},
{
"type": "opencollective",
"url": "https://opencollective.com/csstools"
}
],
"engines": {
"node": ">=20.19.0"
},
"type": "module",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.mjs"
}
},
"files": [
"CHANGELOG.md",
"LICENSE.md",
"README.md",
"dist"
],
"peerDependencies": {
"@csstools/css-parser-algorithms": "^4.0.0",
"@csstools/css-tokenizer": "^4.0.0"
},
"scripts": {},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/csstools/postcss-plugins.git",
"directory": "packages/css-calc"
},
"bugs": "https://github.com/csstools/postcss-plugins/issues",
"keywords": [
"calc",
"css"
]
}