@sltsh/aion-tokens 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/flatten.d.ts +2 -0
- package/dist/flatten.d.ts.map +1 -0
- package/dist/flatten.js +18 -0
- package/dist/flatten.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/light.d.ts +21 -0
- package/dist/light.d.ts.map +1 -0
- package/dist/light.js +72 -0
- package/dist/light.js.map +1 -0
- package/dist/oklch.d.ts +14 -0
- package/dist/oklch.d.ts.map +1 -0
- package/dist/oklch.js +86 -0
- package/dist/oklch.js.map +1 -0
- package/dist/palette.d.ts +155 -0
- package/dist/palette.d.ts.map +1 -0
- package/dist/palette.js +179 -0
- package/dist/palette.js.map +1 -0
- package/dist/preview.d.ts +29 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +72 -0
- package/dist/preview.js.map +1 -0
- package/dist/report.d.ts +17 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +279 -0
- package/dist/report.js.map +1 -0
- package/dist/rivals.d.ts +22 -0
- package/dist/rivals.d.ts.map +1 -0
- package/dist/rivals.js +83 -0
- package/dist/rivals.js.map +1 -0
- package/dist/semantic.d.ts +203 -0
- package/dist/semantic.d.ts.map +1 -0
- package/dist/semantic.js +99 -0
- package/dist/semantic.js.map +1 -0
- package/dist/solve.d.ts +44 -0
- package/dist/solve.d.ts.map +1 -0
- package/dist/solve.js +59 -0
- package/dist/solve.js.map +1 -0
- package/dist/states.d.ts +28 -0
- package/dist/states.d.ts.map +1 -0
- package/dist/states.js +89 -0
- package/dist/states.js.map +1 -0
- package/dist/status.d.ts +12 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +12 -0
- package/dist/status.js.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +2 -0
- package/dist/util.js.map +1 -0
- package/dist/verify.d.ts +2 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +42 -0
- package/dist/verify.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9E,OAAO,EACL,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EACrF,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAC1F,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GACxE,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAezE,MAAM,KAAK,GAAG,CACZ,OAAe,EAAE,KAAa,EAAE,MAAa,EAC7C,OAAe,EAAE,aAAoB,EAAE,KAAa,EACpD,KAAkB,EACX,EAAE;IACT,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrD,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK;QACvF,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;KACnD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAA0B,EAAE,KAAY,EAAS,EAAE,CAC3E,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAmD;IAC1E,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,4CAA4C;IACrD,MAAM,EAAE,wCAAwC;IAChD,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,yBAAyB;IAChC,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,aAAa,CAAU,CAAC;AAC7D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAEtE,MAAM,UAAU,MAAM;IACpB,MAAM,IAAI,GAAY,EAAE,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,GAAI,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAC5E,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,yFAAyF;IACzF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,6BAA6B,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAC/F,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAiB,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3G,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,iFAAiF;IACjF,gFAAgF;IAChF,oFAAoF;IACpF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,+EAA+E;IAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,CAAU,EAAE,CAAC;QACpD,mFAAmF;QACnF,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,EAC1F,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAsC,EAAE,CAAC;QAC9G,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,oFAAoF;YACpF,8EAA8E;YAC9E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EACrE,cAAc,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,iFAAiF;IACjF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,OAAO;YAAE,SAAS;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,EACtF,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EACtE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,qFAAqF;IACrF,wDAAwD;IACxD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAA8B,EAAE,CAAC;QAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YAC3C,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3F,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,uFAAuF;IACvF,yFAAyF;IACzF,iDAAiD;IACjD,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,cAAc,CAAU,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,6BAA6B,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAClF,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;YACrF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAClG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;SAClC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,IAAI,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IACpH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAI,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EACzE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,oBAAoB,EAAE,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,EACjF,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,IAAI,SAAS,EAAE,YAAY,CAAC,WAAW,EAAE,SAAS,IAAI,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5I,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,MAAM,EAAE,EAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;AAEtG,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAE/E,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAQ,EAAU,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,CAAQ,EAAU,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAElF,MAAM,WAAW,GAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAwC;SACvF,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,KAAK,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC7G,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,KAAK,IAAI,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACjK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,YAAY,GAA+B;QAC/C,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE;QACnF,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE;QAC/E,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS;KACjD,CAAC;IACF,MAAM,UAAU,GAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAkB;SACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IACzL,CAAC,CAAC;SACD,MAAM,CAAC;QACN,qBAAqB,GAAG,CAAC,OAAO,CAAC,yBAAyB,OAAO,CAAC,OAAO,CAAC,MAAM;QAChF,yBAAyB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI;KAC7G,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,aAAa,GAA2B;QAC5C,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB;QAC3D,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc;KAC/D,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CACrB,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SACtH,MAAM,CAAC,CAAC,6BAA6B,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,UAAU,GAA2B;QACzC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB;QAC5D,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB;KACrE,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CACrB,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SAC3G,MAAM,CAAE;QACP,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC;QACjF,CAAC,uBAAuB,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC;KACpE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC7F,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,UAAU,GAA2B;QACzC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;QAC1E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;KACjD,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAc,EAAU,EAAE,CACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IACtG,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,OAAO,KAAK,KAAK,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,WAAW,QAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC7L,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,WAAW,GAAiD;QAChE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;QAClF,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;QAC1E,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc;KAC7D,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAqC,CAAC;IACpF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACzE,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,IAAI,UAAU,CAAC;QACtC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAC7C,OAAO,GAAG,IAAI,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACxE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,UAAU,GAAG;QACjB,GAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9G,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;QACxC,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;KACvD,CAAC;IACF,MAAM,SAAS,GAAG;QAChB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,EAAuB,EAAE,MAAM,EAAE,GAAG,EAAE;QAC9F,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,OAAO,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;SAClF,CAAC,CAAC;KACJ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpI,MAAM,WAAW,GAAG,MAAM;SACvB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,UAAU,UAAU,KAAK,CAAC,OAAO,QAAQ,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;SAChH,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,uFAAuF;IACvF,qEAAqE;IACrE,MAAM,eAAe,GAAsB;QACzC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC;QACjE,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC;QAC1E,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC;QAChF,CAAC,SAAS,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,MAAM,cAAc,GAA2B;QAC7C,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;QACrF,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACrF,CAAC,kBAAkB,EAAE,QAAQ,CAAC;KAC/B,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAE,CAAC;QACrD,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,WAAW,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC9F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,yFAAyF;IACzF,MAAM,EAAE,GAAG,CAAC,IAAc,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;QACtC,OAAO,KAAK,KAAK,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC7H,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,wFAAwF;IACxF,sFAAsF;IACtF,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACrF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;QACzC,OAAO,KAAK,KAAK,CAAC,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACpG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACtP,CAAC"}
|
package/dist/rivals.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface Rival {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly variant: string;
|
|
4
|
+
readonly source: string;
|
|
5
|
+
readonly revision: string;
|
|
6
|
+
readonly read: string;
|
|
7
|
+
readonly background: string;
|
|
8
|
+
readonly sideBar: string;
|
|
9
|
+
readonly syntax: Readonly<Record<string, string>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const RIVALS: readonly Rival[];
|
|
12
|
+
export declare const SYNTAX_ROLES_COMPARED = 8;
|
|
13
|
+
export declare function contrastHex(a: string, b: string): number;
|
|
14
|
+
export interface RivalResult {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly lowest: number;
|
|
17
|
+
readonly below: readonly string[];
|
|
18
|
+
}
|
|
19
|
+
export declare const measure: (rival: Rival) => RivalResult;
|
|
20
|
+
export type SurfaceOrder = 'sidebar above editor' | 'sidebar below editor' | 'one surface';
|
|
21
|
+
export declare const surfaceOrder: (rival: Rival) => SurfaceOrder;
|
|
22
|
+
//# sourceMappingURL=rivals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rivals.d.ts","sourceRoot":"","sources":["../src/rivals.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD;AAMD,eAAO,MAAM,MAAM,EAAE,SAAS,KAAK,EA6ClC,CAAC;AAEF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAWvC,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,KAAG,WAQtC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,aAAa,CAAC;AAI3F,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,YAM3C,CAAC"}
|
package/dist/rivals.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { CONTRAST_FLOOR } from './palette.js';
|
|
2
|
+
// Read from each theme's own definition at the revision named here, on the date named
|
|
3
|
+
// here. A published theme changes: One Dark Pro's comment moved from #5c6370 to #7f848e
|
|
4
|
+
// and Catppuccin's from overlay0 to overlay2 between this table and the one before it,
|
|
5
|
+
// which is why the revision is part of the record and not a footnote.
|
|
6
|
+
export const RIVALS = [
|
|
7
|
+
{
|
|
8
|
+
name: 'One Dark Pro',
|
|
9
|
+
variant: 'One Dark Pro',
|
|
10
|
+
source: 'https://github.com/Binaryify/OneDark-Pro/blob/main/themes/OneDark-Pro.json',
|
|
11
|
+
revision: '54c3280b29f2c2ed9751e5ca4e071380b7b42205',
|
|
12
|
+
read: '2026-09-05',
|
|
13
|
+
background: '#282c34',
|
|
14
|
+
sideBar: '#21252b',
|
|
15
|
+
syntax: { comment: '#7f848e', keyword: '#c678dd', function: '#61afef', string: '#98c379',
|
|
16
|
+
number: '#d19a66', type: '#e5c07b', variable: '#e06c75', punctuation: '#abb2bf' },
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Ayu Mirage',
|
|
20
|
+
variant: 'Ayu Mirage',
|
|
21
|
+
source: 'https://github.com/ayu-theme/vscode-ayu/blob/master/ayu-mirage.json',
|
|
22
|
+
revision: '444ef92911cb75c3933c8003e3a7c79b6b6c914f',
|
|
23
|
+
read: '2026-09-05',
|
|
24
|
+
background: '#242936',
|
|
25
|
+
sideBar: '#1f2430',
|
|
26
|
+
syntax: { comment: '#6e7c8f', keyword: '#ffa659', function: '#ffcd66', string: '#d5ff80',
|
|
27
|
+
number: '#dfbfff', type: '#5ccfe6', variable: '#cccac2', punctuation: '#cccac2' },
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Nord',
|
|
31
|
+
variant: 'Nord',
|
|
32
|
+
source: 'https://github.com/nordtheme/visual-studio-code/blob/develop/themes/nord-color-theme.json',
|
|
33
|
+
revision: '8ead09822c02d0d49d0f764104505e5a34d3689f',
|
|
34
|
+
read: '2026-09-05',
|
|
35
|
+
background: '#2e3440',
|
|
36
|
+
sideBar: '#2e3440',
|
|
37
|
+
syntax: { comment: '#616e88', keyword: '#81a1c1', function: '#88c0d0', string: '#a3be8c',
|
|
38
|
+
number: '#b48ead', type: '#8fbcbb', variable: '#d8dee9', punctuation: '#eceff4' },
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'Catppuccin Mocha',
|
|
42
|
+
variant: 'Catppuccin Mocha',
|
|
43
|
+
source: 'https://github.com/catppuccin/vscode/blob/main/packages/catppuccin-vsc/src/theme/tokens/index.ts',
|
|
44
|
+
revision: 'befc9e6fc41980f4241408f7049755d47c06ff45',
|
|
45
|
+
read: '2026-09-05',
|
|
46
|
+
background: '#1e1e2e',
|
|
47
|
+
sideBar: '#1e1e2e',
|
|
48
|
+
syntax: { comment: '#9399b2', keyword: '#cba6f7', function: '#89b4fa', string: '#a6e3a1',
|
|
49
|
+
number: '#fab387', type: '#f9e2af', variable: '#cdd6f4', punctuation: '#9399b2' },
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
export const SYNTAX_ROLES_COMPARED = 8;
|
|
53
|
+
const channel = (value) => value <= 0.04045 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;
|
|
54
|
+
const relativeLuminance = (value) => {
|
|
55
|
+
const n = parseInt(value.slice(1), 16);
|
|
56
|
+
const [r, g, b] = [(n >> 16) & 255, (n >> 8) & 255, n & 255].map((v) => channel(v / 255));
|
|
57
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
58
|
+
};
|
|
59
|
+
export function contrastHex(a, b) {
|
|
60
|
+
const [hi, lo] = [relativeLuminance(a), relativeLuminance(b)].sort((x, y) => y - x);
|
|
61
|
+
return (hi + 0.05) / (lo + 0.05);
|
|
62
|
+
}
|
|
63
|
+
export const measure = (rival) => {
|
|
64
|
+
const ratios = Object.entries(rival.syntax)
|
|
65
|
+
.map(([role, colour]) => [role, contrastHex(colour, rival.background)]);
|
|
66
|
+
return {
|
|
67
|
+
name: rival.name,
|
|
68
|
+
lowest: Math.min(...ratios.map(([, ratio]) => ratio)),
|
|
69
|
+
below: ratios.filter(([, ratio]) => ratio < CONTRAST_FLOOR).map(([role]) => role),
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
// Aion raises the sidebar above the editor. Saying that every other theme does the
|
|
73
|
+
// reverse was wrong: two of these four use one colour for both.
|
|
74
|
+
export const surfaceOrder = (rival) => {
|
|
75
|
+
const editor = relativeLuminance(rival.background);
|
|
76
|
+
const sideBar = relativeLuminance(rival.sideBar);
|
|
77
|
+
if (sideBar > editor)
|
|
78
|
+
return 'sidebar above editor';
|
|
79
|
+
if (sideBar < editor)
|
|
80
|
+
return 'sidebar below editor';
|
|
81
|
+
return 'one surface';
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=rivals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rivals.js","sourceRoot":"","sources":["../src/rivals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { Oklch } from './oklch.js';
|
|
2
|
+
import type { AccentName, SyntaxRole } from './palette.js';
|
|
3
|
+
import { accentScale } from './palette.js';
|
|
4
|
+
import { lightAccentScale } from './light.js';
|
|
5
|
+
export declare const bg: {
|
|
6
|
+
readonly editor: Oklch;
|
|
7
|
+
readonly terminal: Oklch;
|
|
8
|
+
readonly panel: Oklch;
|
|
9
|
+
readonly sidebar: Oklch;
|
|
10
|
+
readonly activityBar: Oklch;
|
|
11
|
+
readonly statusBar: Oklch;
|
|
12
|
+
readonly tabBar: Oklch;
|
|
13
|
+
readonly tabActive: Oklch;
|
|
14
|
+
readonly tabInactive: Oklch;
|
|
15
|
+
readonly widget: Oklch;
|
|
16
|
+
readonly menu: Oklch;
|
|
17
|
+
readonly notification: Oklch;
|
|
18
|
+
readonly input: Oklch;
|
|
19
|
+
readonly hover: Oklch;
|
|
20
|
+
};
|
|
21
|
+
export declare const fg: {
|
|
22
|
+
readonly primary: Oklch;
|
|
23
|
+
readonly secondary: Oklch;
|
|
24
|
+
readonly dim: Oklch;
|
|
25
|
+
readonly muted: Oklch;
|
|
26
|
+
readonly onAccent: Oklch;
|
|
27
|
+
readonly comment: Oklch;
|
|
28
|
+
readonly punctuation: Oklch;
|
|
29
|
+
readonly cursor: Oklch;
|
|
30
|
+
readonly link: readonly [0.755, 0.1139, 255];
|
|
31
|
+
};
|
|
32
|
+
export declare const border: {
|
|
33
|
+
readonly hairline: Oklch;
|
|
34
|
+
readonly divider: Oklch;
|
|
35
|
+
readonly ui: Oklch;
|
|
36
|
+
readonly control: Oklch;
|
|
37
|
+
readonly focus: readonly [0.82, 0.1287, 90];
|
|
38
|
+
};
|
|
39
|
+
export declare const BOUNDARY_PAIRS: readonly [{
|
|
40
|
+
readonly edge: "control";
|
|
41
|
+
readonly inside: "input";
|
|
42
|
+
readonly outside: "widget";
|
|
43
|
+
}, {
|
|
44
|
+
readonly edge: "control";
|
|
45
|
+
readonly inside: "input";
|
|
46
|
+
readonly outside: "sidebar";
|
|
47
|
+
}, {
|
|
48
|
+
readonly edge: "control";
|
|
49
|
+
readonly inside: "input";
|
|
50
|
+
readonly outside: "editor";
|
|
51
|
+
}, {
|
|
52
|
+
readonly edge: "ui";
|
|
53
|
+
readonly inside: "widget";
|
|
54
|
+
readonly outside: "editor";
|
|
55
|
+
}, {
|
|
56
|
+
readonly edge: "focus";
|
|
57
|
+
readonly inside: "input";
|
|
58
|
+
readonly outside: "sidebar";
|
|
59
|
+
}, {
|
|
60
|
+
readonly edge: "focus";
|
|
61
|
+
readonly inside: "widget";
|
|
62
|
+
readonly outside: "editor";
|
|
63
|
+
}];
|
|
64
|
+
export declare const syntax: Record<SyntaxRole | 'comment' | 'punctuation', Oklch>;
|
|
65
|
+
export declare const accent: Record<AccentName, ReturnType<typeof accentScale>>;
|
|
66
|
+
export declare const brackets: readonly Oklch[];
|
|
67
|
+
export declare const semantic: {
|
|
68
|
+
readonly bg: {
|
|
69
|
+
readonly editor: Oklch;
|
|
70
|
+
readonly terminal: Oklch;
|
|
71
|
+
readonly panel: Oklch;
|
|
72
|
+
readonly sidebar: Oklch;
|
|
73
|
+
readonly activityBar: Oklch;
|
|
74
|
+
readonly statusBar: Oklch;
|
|
75
|
+
readonly tabBar: Oklch;
|
|
76
|
+
readonly tabActive: Oklch;
|
|
77
|
+
readonly tabInactive: Oklch;
|
|
78
|
+
readonly widget: Oklch;
|
|
79
|
+
readonly menu: Oklch;
|
|
80
|
+
readonly notification: Oklch;
|
|
81
|
+
readonly input: Oklch;
|
|
82
|
+
readonly hover: Oklch;
|
|
83
|
+
};
|
|
84
|
+
readonly fg: {
|
|
85
|
+
readonly primary: Oklch;
|
|
86
|
+
readonly secondary: Oklch;
|
|
87
|
+
readonly dim: Oklch;
|
|
88
|
+
readonly muted: Oklch;
|
|
89
|
+
readonly onAccent: Oklch;
|
|
90
|
+
readonly comment: Oklch;
|
|
91
|
+
readonly punctuation: Oklch;
|
|
92
|
+
readonly cursor: Oklch;
|
|
93
|
+
readonly link: readonly [0.755, 0.1139, 255];
|
|
94
|
+
};
|
|
95
|
+
readonly border: {
|
|
96
|
+
readonly hairline: Oklch;
|
|
97
|
+
readonly divider: Oklch;
|
|
98
|
+
readonly ui: Oklch;
|
|
99
|
+
readonly control: Oklch;
|
|
100
|
+
readonly focus: readonly [0.82, 0.1287, 90];
|
|
101
|
+
};
|
|
102
|
+
readonly syntax: Record<"string" | "number" | "function" | "variable" | "constant" | "type" | "operator" | "escape" | "keyword" | "comment" | "punctuation", Oklch>;
|
|
103
|
+
readonly accent: Record<"coral" | "copper" | "gold" | "green" | "teal" | "blue" | "violet", import("./palette.js").AccentScale>;
|
|
104
|
+
readonly brackets: readonly Oklch[];
|
|
105
|
+
readonly diff: {
|
|
106
|
+
readonly addedStrip: readonly [0.308, 0.05, 148];
|
|
107
|
+
readonly removedStrip: readonly [0.248, 0.11, 22];
|
|
108
|
+
readonly addedGutter: readonly [0.78, 0.1287, 148];
|
|
109
|
+
readonly removedGutter: readonly [0.72, 0.1337, 22];
|
|
110
|
+
};
|
|
111
|
+
readonly overlay: {
|
|
112
|
+
readonly selection: {
|
|
113
|
+
readonly color: readonly [0.48, 0.195, 260];
|
|
114
|
+
readonly alpha: 0.39;
|
|
115
|
+
};
|
|
116
|
+
readonly findMatchOther: {
|
|
117
|
+
readonly color: readonly [0.4, 0.075, 90];
|
|
118
|
+
readonly alpha: 0.4;
|
|
119
|
+
};
|
|
120
|
+
readonly wordHighlight: {
|
|
121
|
+
readonly color: Oklch;
|
|
122
|
+
readonly alpha: 0.28;
|
|
123
|
+
};
|
|
124
|
+
readonly lineHighlight: {
|
|
125
|
+
readonly color: Oklch;
|
|
126
|
+
readonly alpha: 0.36;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
export declare const bgLight: {
|
|
131
|
+
readonly page: Oklch;
|
|
132
|
+
readonly surface: Oklch;
|
|
133
|
+
readonly raised: Oklch;
|
|
134
|
+
readonly input: Oklch;
|
|
135
|
+
readonly hover: Oklch;
|
|
136
|
+
};
|
|
137
|
+
export declare const fgLight: {
|
|
138
|
+
readonly primary: Oklch;
|
|
139
|
+
readonly secondary: Oklch;
|
|
140
|
+
readonly dim: Oklch;
|
|
141
|
+
readonly muted: Oklch;
|
|
142
|
+
readonly onAccent: Oklch;
|
|
143
|
+
readonly link: Oklch;
|
|
144
|
+
};
|
|
145
|
+
export declare const borderLight: {
|
|
146
|
+
readonly hairline: Oklch;
|
|
147
|
+
readonly divider: Oklch;
|
|
148
|
+
readonly ui: Oklch;
|
|
149
|
+
readonly input: Oklch;
|
|
150
|
+
readonly focus: Oklch;
|
|
151
|
+
};
|
|
152
|
+
export declare const BOUNDARY_PAIRS_LIGHT: readonly [{
|
|
153
|
+
readonly edge: "input";
|
|
154
|
+
readonly inside: "input";
|
|
155
|
+
readonly outside: "page";
|
|
156
|
+
}, {
|
|
157
|
+
readonly edge: "input";
|
|
158
|
+
readonly inside: "input";
|
|
159
|
+
readonly outside: "surface";
|
|
160
|
+
}, {
|
|
161
|
+
readonly edge: "input";
|
|
162
|
+
readonly inside: "input";
|
|
163
|
+
readonly outside: "raised";
|
|
164
|
+
}, {
|
|
165
|
+
readonly edge: "ui";
|
|
166
|
+
readonly inside: "raised";
|
|
167
|
+
readonly outside: "page";
|
|
168
|
+
}, {
|
|
169
|
+
readonly edge: "focus";
|
|
170
|
+
readonly inside: "input";
|
|
171
|
+
readonly outside: "page";
|
|
172
|
+
}, {
|
|
173
|
+
readonly edge: "focus";
|
|
174
|
+
readonly inside: "raised";
|
|
175
|
+
readonly outside: "page";
|
|
176
|
+
}];
|
|
177
|
+
export declare const accentLight: Record<AccentName, ReturnType<typeof lightAccentScale>>;
|
|
178
|
+
export declare const semanticLight: {
|
|
179
|
+
readonly bg: {
|
|
180
|
+
readonly page: Oklch;
|
|
181
|
+
readonly surface: Oklch;
|
|
182
|
+
readonly raised: Oklch;
|
|
183
|
+
readonly input: Oklch;
|
|
184
|
+
readonly hover: Oklch;
|
|
185
|
+
};
|
|
186
|
+
readonly fg: {
|
|
187
|
+
readonly primary: Oklch;
|
|
188
|
+
readonly secondary: Oklch;
|
|
189
|
+
readonly dim: Oklch;
|
|
190
|
+
readonly muted: Oklch;
|
|
191
|
+
readonly onAccent: Oklch;
|
|
192
|
+
readonly link: Oklch;
|
|
193
|
+
};
|
|
194
|
+
readonly border: {
|
|
195
|
+
readonly hairline: Oklch;
|
|
196
|
+
readonly divider: Oklch;
|
|
197
|
+
readonly ui: Oklch;
|
|
198
|
+
readonly input: Oklch;
|
|
199
|
+
readonly focus: Oklch;
|
|
200
|
+
};
|
|
201
|
+
readonly accent: Record<"coral" | "copper" | "gold" | "green" | "teal" | "blue" | "violet", import("./palette.js").AccentScale>;
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=semantic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAG,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACY,WAAW,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAgB,MAAM,YAAY,CAAC;AAK5D,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;CAe2B,CAAC;AAE3C,eAAO,MAAM,EAAE;;;;;;;;;;CAU2B,CAAC;AAK3C,eAAO,MAAM,MAAM;;;;;;CAMuB,CAAC;AAG3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAOqF,CAAC;AAEjH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GAAG,aAAa,EAAE,KAAK,CAIxE,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAGrE,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,KAAK,EAA8C,CAAC;AAEpF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuE,CAAC;AAE7F,eAAO,MAAM,OAAO;;;;;;CAMsB,CAAC;AAE3C,eAAO,MAAM,OAAO;;;;;;;CAOsB,CAAC;AAE3C,eAAO,MAAM,WAAW;;;;;;CAMkB,CAAC;AAQ3C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEJ,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAG/E,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;CAEhB,CAAC"}
|
package/dist/semantic.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ACCENTS, SYNTAX, accentScale, bracketPairs, comment, cursor, diff, dimText, neutral, overlay, } from './palette.js';
|
|
2
|
+
import { lightAccentScale, lightNeutral } from './light.js';
|
|
3
|
+
import { mapValues } from './util.js';
|
|
4
|
+
const syntaxColour = (role) => ACCENTS[SYNTAX[role]];
|
|
5
|
+
export const bg = {
|
|
6
|
+
editor: neutral.editor,
|
|
7
|
+
terminal: neutral.terminal,
|
|
8
|
+
panel: neutral.terminal,
|
|
9
|
+
sidebar: neutral.sidebar,
|
|
10
|
+
activityBar: neutral.sidebar,
|
|
11
|
+
statusBar: neutral.sidebar,
|
|
12
|
+
tabBar: neutral.sidebar,
|
|
13
|
+
tabActive: neutral.editor,
|
|
14
|
+
tabInactive: neutral.input,
|
|
15
|
+
widget: neutral.widget,
|
|
16
|
+
menu: neutral.widget,
|
|
17
|
+
notification: neutral.widget,
|
|
18
|
+
input: neutral.input,
|
|
19
|
+
hover: neutral.hover,
|
|
20
|
+
};
|
|
21
|
+
export const fg = {
|
|
22
|
+
primary: neutral.textPrimary,
|
|
23
|
+
secondary: neutral.textSecondary,
|
|
24
|
+
dim: dimText,
|
|
25
|
+
muted: neutral.muted,
|
|
26
|
+
onAccent: neutral.editor,
|
|
27
|
+
comment,
|
|
28
|
+
punctuation: neutral.textSecondary,
|
|
29
|
+
cursor,
|
|
30
|
+
link: ACCENTS.blue,
|
|
31
|
+
};
|
|
32
|
+
// `hairline` and `divider` are decorative and exempt from the non-text floor. `ui`,
|
|
33
|
+
// `control` and `focus` draw functional edges, so each clears 3:1 on both surfaces it
|
|
34
|
+
// touches; a ratio against the editor alone would miss the lighter inner surface.
|
|
35
|
+
export const border = {
|
|
36
|
+
hairline: neutral.hairline,
|
|
37
|
+
divider: neutral.divider,
|
|
38
|
+
ui: neutral.border,
|
|
39
|
+
control: neutral.border,
|
|
40
|
+
focus: ACCENTS.gold,
|
|
41
|
+
};
|
|
42
|
+
// Each functional edge and the two surfaces it separates. The gate reads this.
|
|
43
|
+
export const BOUNDARY_PAIRS = [
|
|
44
|
+
{ edge: 'control', inside: 'input', outside: 'widget' },
|
|
45
|
+
{ edge: 'control', inside: 'input', outside: 'sidebar' },
|
|
46
|
+
{ edge: 'control', inside: 'input', outside: 'editor' },
|
|
47
|
+
{ edge: 'ui', inside: 'widget', outside: 'editor' },
|
|
48
|
+
{ edge: 'focus', inside: 'input', outside: 'sidebar' },
|
|
49
|
+
{ edge: 'focus', inside: 'widget', outside: 'editor' },
|
|
50
|
+
];
|
|
51
|
+
export const syntax = {
|
|
52
|
+
...mapValues(SYNTAX, (_accent, role) => syntaxColour(role)),
|
|
53
|
+
comment,
|
|
54
|
+
punctuation: neutral.textSecondary,
|
|
55
|
+
};
|
|
56
|
+
export const accent = mapValues(ACCENTS, (_value, name) => accentScale(name));
|
|
57
|
+
export const brackets = bracketPairs.map((name) => ACCENTS[name]);
|
|
58
|
+
export const semantic = { bg, fg, border, syntax, accent, brackets, diff, overlay };
|
|
59
|
+
export const bgLight = {
|
|
60
|
+
page: lightNeutral.page,
|
|
61
|
+
surface: lightNeutral.surface,
|
|
62
|
+
raised: lightNeutral.raised,
|
|
63
|
+
input: lightNeutral.input,
|
|
64
|
+
hover: lightNeutral.hover,
|
|
65
|
+
};
|
|
66
|
+
export const fgLight = {
|
|
67
|
+
primary: lightNeutral.textPrimary,
|
|
68
|
+
secondary: lightNeutral.textSecondary,
|
|
69
|
+
dim: lightNeutral.muted,
|
|
70
|
+
muted: lightNeutral.muted,
|
|
71
|
+
onAccent: lightNeutral.page,
|
|
72
|
+
link: lightAccentScale('blue').solid,
|
|
73
|
+
};
|
|
74
|
+
export const borderLight = {
|
|
75
|
+
hairline: lightNeutral.hairline,
|
|
76
|
+
divider: lightNeutral.divider,
|
|
77
|
+
ui: lightNeutral.border,
|
|
78
|
+
input: lightNeutral.border,
|
|
79
|
+
focus: lightAccentScale('gold').solid,
|
|
80
|
+
};
|
|
81
|
+
// The light scheme has the same contract as the dark one: a functional edge clears the
|
|
82
|
+
// non-text floor on the field it encloses and on the surface behind it. `input` is the
|
|
83
|
+
// darkest of those, and a light border is darker than every surface it touches, so
|
|
84
|
+
// `input` binds. A ratio against `page` alone is how the light control edge reached
|
|
85
|
+
// 2.56:1 on the field it delimits. `hover` carries no control in this package and is
|
|
86
|
+
// outside the pairs below.
|
|
87
|
+
export const BOUNDARY_PAIRS_LIGHT = [
|
|
88
|
+
{ edge: 'input', inside: 'input', outside: 'page' },
|
|
89
|
+
{ edge: 'input', inside: 'input', outside: 'surface' },
|
|
90
|
+
{ edge: 'input', inside: 'input', outside: 'raised' },
|
|
91
|
+
{ edge: 'ui', inside: 'raised', outside: 'page' },
|
|
92
|
+
{ edge: 'focus', inside: 'input', outside: 'page' },
|
|
93
|
+
{ edge: 'focus', inside: 'raised', outside: 'page' },
|
|
94
|
+
];
|
|
95
|
+
export const accentLight = mapValues(ACCENTS, (_value, name) => lightAccentScale(name));
|
|
96
|
+
export const semanticLight = {
|
|
97
|
+
bg: bgLight, fg: fgLight, border: borderLight, accent: accentLight,
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=semantic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
package/dist/solve.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Oklch } from './oklch.js';
|
|
2
|
+
import type { OverlayName } from './palette.js';
|
|
3
|
+
export interface Marker {
|
|
4
|
+
/** Hues to try, in degrees. A marker keeps its meaning inside a narrow band. */
|
|
5
|
+
readonly hues: readonly number[];
|
|
6
|
+
/** The surface the marker has to separate from. */
|
|
7
|
+
readonly against: Oklch;
|
|
8
|
+
/** Every foreground that can land on the marker, named. */
|
|
9
|
+
readonly foregrounds: Record<string, Oklch>;
|
|
10
|
+
/** Overlay stacks the renderer can paint over the marker. `[]` is the bare marker. */
|
|
11
|
+
readonly stacks: readonly (readonly OverlayName[])[];
|
|
12
|
+
readonly floor: number;
|
|
13
|
+
/** Emitted chroma below this reads as grey rather than as the hue. */
|
|
14
|
+
readonly minChroma?: number;
|
|
15
|
+
readonly lightness?: readonly [number, number];
|
|
16
|
+
readonly chroma?: readonly [number, number];
|
|
17
|
+
}
|
|
18
|
+
export interface Solution {
|
|
19
|
+
readonly colour: Oklch;
|
|
20
|
+
readonly hex: string;
|
|
21
|
+
/** OKLab distance from `against`. This is what a reader sees, not the ratio. */
|
|
22
|
+
readonly distance: number;
|
|
23
|
+
readonly ratio: number;
|
|
24
|
+
/** The foreground and stack that stop the marker going further. */
|
|
25
|
+
readonly binds: {
|
|
26
|
+
readonly foreground: string;
|
|
27
|
+
readonly stack: string;
|
|
28
|
+
readonly ratio: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Distance between the colours a screen shows, not between the ones the palette asks for. */
|
|
32
|
+
export declare function distanceEmitted(a: Oklch, b: Oklch): number;
|
|
33
|
+
/** The foreground and stack with the least room left, and how much room that is. */
|
|
34
|
+
export declare function binding(colour: Oklch, marker: Marker): Solution['binds'];
|
|
35
|
+
/**
|
|
36
|
+
* The most visible colour a marker can take without dropping a foreground below the floor.
|
|
37
|
+
*
|
|
38
|
+
* Contrast is read from the emitted 8-bit hex, after the gamut clip and the rounding, so it
|
|
39
|
+
* is not a smooth function of lightness and cannot be inverted. This searches instead. It
|
|
40
|
+
* reports what binds, because that is the question worth asking next: a marker held back by
|
|
41
|
+
* the comment wants a lighter comment, and one held back by an accent has nothing left.
|
|
42
|
+
*/
|
|
43
|
+
export declare function solveMarker(marker: Marker): Solution | null;
|
|
44
|
+
//# sourceMappingURL=solve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solve.d.ts","sourceRoot":"","sources":["../src/solve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,MAAM;IACrB,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAUD,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAI1D;AAED,oFAAoF;AACpF,wBAAgB,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAaxE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAmB3D"}
|
package/dist/solve.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { compositeEmitted, contrastEmitted, hex, hexToOklch, inGamut } from './oklch.js';
|
|
2
|
+
import { overlay } from './palette.js';
|
|
3
|
+
const STEP = { lightness: 0.002, chroma: 0.002 };
|
|
4
|
+
const stackOn = (base, names) => names.reduce((under, name) => compositeEmitted(overlay[name].color, overlay[name].alpha, under), base);
|
|
5
|
+
const toLab = (c) => [c[0], c[1] * Math.cos((c[2] * Math.PI) / 180), c[1] * Math.sin((c[2] * Math.PI) / 180)];
|
|
6
|
+
/** Distance between the colours a screen shows, not between the ones the palette asks for. */
|
|
7
|
+
export function distanceEmitted(a, b) {
|
|
8
|
+
const [al, aa, ab] = toLab(hexToOklch(hex(a)));
|
|
9
|
+
const [bl, ba, bb] = toLab(hexToOklch(hex(b)));
|
|
10
|
+
return Math.hypot(al - bl, aa - ba, ab - bb);
|
|
11
|
+
}
|
|
12
|
+
/** The foreground and stack with the least room left, and how much room that is. */
|
|
13
|
+
export function binding(colour, marker) {
|
|
14
|
+
let worst = null;
|
|
15
|
+
for (const stack of marker.stacks) {
|
|
16
|
+
const background = stackOn(colour, stack);
|
|
17
|
+
for (const [foreground, value] of Object.entries(marker.foregrounds)) {
|
|
18
|
+
const ratio = contrastEmitted(value, background);
|
|
19
|
+
if (worst === null || ratio < worst.ratio) {
|
|
20
|
+
worst = { foreground, stack: stack.length === 0 ? 'bare' : stack.join(' + '), ratio };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (worst === null)
|
|
25
|
+
throw new Error('a marker needs at least one foreground and one stack');
|
|
26
|
+
return worst;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The most visible colour a marker can take without dropping a foreground below the floor.
|
|
30
|
+
*
|
|
31
|
+
* Contrast is read from the emitted 8-bit hex, after the gamut clip and the rounding, so it
|
|
32
|
+
* is not a smooth function of lightness and cannot be inverted. This searches instead. It
|
|
33
|
+
* reports what binds, because that is the question worth asking next: a marker held back by
|
|
34
|
+
* the comment wants a lighter comment, and one held back by an accent has nothing left.
|
|
35
|
+
*/
|
|
36
|
+
export function solveMarker(marker) {
|
|
37
|
+
const [minL, maxL] = marker.lightness ?? [0.06, 0.45];
|
|
38
|
+
const [minC, maxC] = marker.chroma ?? [0.01, 0.18];
|
|
39
|
+
const minChroma = marker.minChroma ?? 0;
|
|
40
|
+
let best = null;
|
|
41
|
+
for (const hue of marker.hues) {
|
|
42
|
+
for (let l = minL; l <= maxL; l += STEP.lightness) {
|
|
43
|
+
for (let c = minC; c <= maxC; c += STEP.chroma) {
|
|
44
|
+
const colour = [l, c, hue];
|
|
45
|
+
if (!inGamut(colour) || hexToOklch(hex(colour))[1] < minChroma)
|
|
46
|
+
continue;
|
|
47
|
+
const binds = binding(colour, marker);
|
|
48
|
+
if (binds.ratio < marker.floor)
|
|
49
|
+
continue;
|
|
50
|
+
const distance = distanceEmitted(colour, marker.against);
|
|
51
|
+
if (best !== null && distance <= best.distance)
|
|
52
|
+
continue;
|
|
53
|
+
best = { colour, hex: hex(colour), distance, ratio: contrastEmitted(colour, marker.against), binds };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return best;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=solve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solve.js","sourceRoot":"","sources":["../src/solve.ts"],"names":[],"mappings":"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"}
|
package/dist/states.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Oklch } from './oklch.js';
|
|
2
|
+
import type { DiffWashName, NeutralName, Overlay, OverlayName, SyntaxRole } from './palette.js';
|
|
3
|
+
export interface ReadingState {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly background: Oklch;
|
|
6
|
+
}
|
|
7
|
+
export interface StateSource {
|
|
8
|
+
readonly neutral: Record<NeutralName, Oklch>;
|
|
9
|
+
readonly overlay: Record<OverlayName, Overlay>;
|
|
10
|
+
readonly diffWash: Record<DiffWashName, Overlay>;
|
|
11
|
+
readonly findMatch: {
|
|
12
|
+
readonly current: Oklch;
|
|
13
|
+
};
|
|
14
|
+
readonly syntax: Record<SyntaxRole, Oklch>;
|
|
15
|
+
readonly comment: Oklch;
|
|
16
|
+
}
|
|
17
|
+
export declare const SHIPPED: StateSource;
|
|
18
|
+
declare const surfaces: (source: StateSource) => {
|
|
19
|
+
editor: Oklch;
|
|
20
|
+
peekEditor: Oklch;
|
|
21
|
+
hoverWidget: Oklch;
|
|
22
|
+
findMatch: Oklch;
|
|
23
|
+
};
|
|
24
|
+
export type SurfaceName = keyof ReturnType<typeof surfaces>;
|
|
25
|
+
export declare function readingStates(source?: StateSource): ReadingState[];
|
|
26
|
+
export declare const readingForegrounds: (source?: StateSource) => Record<string, Oklch>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=states.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;CAC5B;AAKD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;CACzB;AAED,eAAO,MAAM,OAAO,EAAE,WAKrB,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAI,QAAQ,WAAW;;;;;CAOnC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAgD5D,wBAAgB,aAAa,CAAC,MAAM,GAAE,WAAqB,GAAG,YAAY,EAAE,CAgC3E;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAQ,WAAqB,KAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAIrF,CAAC"}
|