├── .changeset
├── README.md
└── config.json
├── .editorconfig
├── .github
└── workflows
│ ├── changesets.yaml
│ └── tests.yaml
├── .gitignore
├── .vscode
└── settings.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── cover.png
├── deno.json
├── deno.lock
├── lefthook.yaml
├── package.json
├── scripts
├── build.ts
├── builder.test.ts
├── builder.ts
├── targets
│ ├── base
│ │ ├── __snapshots__
│ │ │ └── base.test.ts.snap
│ │ ├── base.config.ts
│ │ ├── base.test.ts
│ │ └── templates
│ │ │ ├── index.cjs.template
│ │ │ ├── index.d.ts.template
│ │ │ └── index.js.template
│ ├── css
│ │ ├── __snapshots__
│ │ │ └── css.test.ts.snap
│ │ ├── css.config.ts
│ │ ├── css.test.ts
│ │ └── templates
│ │ │ ├── [color].css.template
│ │ │ └── index.css.template
│ └── tailwind
│ │ ├── __snapshots__
│ │ └── tailwind.test.ts.snap
│ │ ├── tailwind.config.ts
│ │ ├── tailwind.test.ts
│ │ └── templates
│ │ ├── index.cjs.template
│ │ ├── index.css.template
│ │ ├── index.d.ts.template
│ │ └── index.js.template
└── types.ts
├── source.json
└── tests
└── utils.ts
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json",
3 | "changelog": ["@changesets/changelog-github", { "repo": "evilmartians/harmony" }],
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "public",
8 | "baseBranch": "main",
9 | "updateInternalDependencies": "patch",
10 | "ignore": []
11 | }
12 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | insert_final_newline = true
9 | indent_style = tab
10 | indent_size = 2
11 | trim_trailing_whitespace = true
12 | max_line_length = 100
13 |
14 | [*.yaml]
15 | indent_style = space
16 |
17 |
--------------------------------------------------------------------------------
/.github/workflows/changesets.yaml:
--------------------------------------------------------------------------------
1 | name: Changesets
2 | on:
3 | push:
4 | branches:
5 | - main
6 | paths:
7 | - '.changeset/**'
8 | - '.github/workflows/changesets.yaml'
9 | workflow_dispatch:
10 |
11 | env:
12 | CI: true
13 | jobs:
14 | Version:
15 | # prevents this action from running on forks
16 | if: github.repository == 'evilmartians/harmony'
17 | permissions:
18 | contents: write # to create release (changesets/action)
19 | pull-requests: write # to create pull request (changesets/action)
20 | id-token: write # OpenID Connect token needed for provenance
21 | timeout-minutes: 5
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repository
25 | uses: actions/checkout@v4
26 | with:
27 | fetch-depth: 0
28 |
29 | - name: Install Deno
30 | uses: denoland/setup-deno@v2
31 | with:
32 | deno-version: v2.x
33 |
34 | - name: Install node dependencies
35 | run: 'deno install'
36 |
37 | - name: Create release PR or Publish to npm
38 | uses: changesets/action@v1
39 | with:
40 | version: deno task ci:changesets:version
41 | publish: deno task ci:changesets:publish
42 | commit: 'Changesets versioning & publication'
43 | title: 'Changesets: Versioning & Publication'
44 | createGithubReleases: true
45 | env:
46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
48 |
49 |
--------------------------------------------------------------------------------
/.github/workflows/tests.yaml:
--------------------------------------------------------------------------------
1 | name: Tests
2 | on:
3 | push:
4 | branches:
5 | - main
6 | paths:
7 | - "scripts/**/*"
8 | - "tests/**/*"
9 | - ".github/workflows/tests.yaml"
10 | pull_request:
11 | branches:
12 | - main
13 | workflow_dispatch:
14 |
15 | env:
16 | CI: true
17 | jobs:
18 | Test:
19 | if: github.repository == 'evilmartians/harmony' # prevents this action from running on forks
20 | runs-on: ubuntu-latest
21 | timeout-minutes: 10
22 | steps:
23 | - name: Checkout repository
24 | uses: actions/checkout@v4
25 | with:
26 | fetch-depth: 0
27 |
28 | - name: Install Deno
29 | uses: denoland/setup-deno@v2
30 | with:
31 | deno-version: v2.x
32 |
33 | - name: Install dependencies
34 | run: "deno install"
35 |
36 | - name: Lint
37 | run: "deno lint"
38 |
39 | - name: Type-check
40 | run: "deno check **/*.ts"
41 |
42 | - name: Build
43 | run: "deno task build"
44 |
45 | - name: Publint
46 | run: "deno task publint"
47 |
48 | - name: Run unit tests
49 | run: "deno task ci:test"
50 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 | coverage
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "deno.enable": true,
3 | "deno.lint": true,
4 | "deno.unstable": false
5 | }
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## 1.4.0
4 |
5 | ### Minor Changes
6 |
7 | - [#14](https://github.com/evilmartians/harmony/pull/14) [`d3f6327`](https://github.com/evilmartians/harmony/commit/d3f6327d0113be26d1c3cc0468987700784726fe) Thanks [@vnphanquang](https://github.com/vnphanquang)! - set pacakge as ESM-first, prioritize ESM exports as `.js`, update CommonJS exports as `.cjs`, fix [publint](https://publint.dev/@evilmartians/harmony@1.3.0) recommendations
8 |
9 | ## 1.3.0 (2024-11-25)
10 |
11 | - Add support for Tailwind v4
12 |
13 | ## 1.2.0 (2023-11-25)
14 |
15 | ### New features
16 |
17 | - Add `@evilmartians/harmony/css/index.css` file that imports all other css files. Closes [#4](https://github.com/evilmartians/harmony/issues/4).
18 |
19 | ### Bug fixes
20 |
21 | - Remove spaces between variable names and values in generated css for smaller minified css files. Closes [#7](https://github.com/evilmartians/harmony/issues/7).
22 |
23 | ### Improvements
24 |
25 | - Add CHANGELOG.md
26 |
27 | ## 1.1.0 (2023-10-23)
28 |
29 | ### New features
30 |
31 | - Add css-variables export target
32 |
33 | ## 1.0.0 (2023-10-05)
34 |
35 | - First stable release
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Evil Martians
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | [![github.actions.changesets.badge]][github.actions.changesets] [![MIT][license.badge]][license] [![npm.badge]][npm]
4 |
5 | # Harmony: Accessible UI Color Palette
6 |
7 | The
8 | [Harmony palette](https://www.figma.com/community/file/1287828769207775946/harmony-accessible-ui-color-palette)
9 | is designed to elevate control over color contrast in your design system.
10 |
11 | - Uses OKLCH and APCA for highly consistent color shades
12 | - Has P3 options for modern screens
13 | - Created to keep precise control over text and UI element contrast
14 |
15 |
Made
16 | by
17 | Evil
18 | Martians, product consulting for developer tools.
19 |
20 | Try out [Harmonizer](https://github.com/evilmartians/harmonizer) — the color palette generator used to create Harmony. Create your own color palettes with ease.
21 |
22 | ## Features
23 |
24 | - Equal contrast within lightness groups
25 | - Mirrored contrast pairs
26 | - Contrast levels for readability
27 | - Tailwind compatibility
28 | - P3 gamut for maximum color
29 |
30 | ## Installation
31 |
32 | ```shell
33 | npm install @evilmartians/harmony
34 | ```
35 |
36 | ## Usage with Tailwind
37 |
38 | Harmony can work as drop-in replacement for the Tailwind color palette:
39 |
40 | ### Tailwind v4
41 |
42 | Simply import `@evilmartians/harmony/tailwind.css`:
43 |
44 | ```css
45 | /* app.css, or anywhere within Tailwind-aware context */
46 | @import "tailwindcss";
47 | @import "@evilmartians/harmony/tailwind.css";
48 | ```
49 |
50 | ### Tailwind v3
51 |
52 | ```js
53 | // tailwind.config.js
54 |
55 | import harmonyPalette from "@evilmartians/harmony/tailwind";
56 |
57 | export default {
58 | theme: {
59 | colors: harmonyPalette,
60 | },
61 | //...
62 | };
63 | ```
64 |
65 | > ⚠️ Harmony uses `oklch` colors and so requires a polyfill for old browsers
66 |
67 | 1. Install PostCSS plugin that polyfills oklch colors
68 |
69 | ```shell
70 | npm install -D @csstools/postcss-oklab-function
71 | ```
72 |
73 | 2. Enable it in `postcss.config.js`:
74 |
75 | ```diff
76 | export default {
77 | plugins: {
78 | tailwindcss: {},
79 | + '@csstools/postcss-oklab-function': { 'preserve': true },
80 | autoprefixer: {},
81 | },
82 | }
83 | ```
84 |
85 | ## Vanilla CSS
86 |
87 | Harmony palette provides a set of files with css variables. Each file contains all shades for one color in OKLCH with RGB fallbacks for old browsers. Just import colors you need and use them in css:
88 |
89 | ```css
90 | @import "@evilmartians/harmony/css/orange.css";
91 |
92 | h1 {
93 | color: var(--orange-600);
94 | }
95 | ```
96 |
97 | Harmony also provides an `index.css` file that imports all other css files.
98 | 👮WARNING: this file is **huge** and should be used only in combination with PurgeCSS (with `variables` option enabled), other tools that can clean unused css variables, or if you really need all the colors.
99 |
100 | ```css
101 | @import "@evilmartians/harmony/css/index.css";
102 |
103 | /* now you can use any color */
104 | h1 {
105 | color: var(--orange-600);
106 | }
107 |
108 | h2 {
109 | color: var(--red-300);
110 | }
111 | ```
112 |
113 | ## Other formats
114 |
115 | Plain javascript object with colors without tailwind's specifics can be imported
116 | from `@evilmartians/harmony/base`
117 |
118 | ```js
119 | import palette from "@evilmartians/harmony/base";
120 | console.log(palette.red["50"]); // => oklch(0.988281 0.0046875 20)
121 | ```
122 |
123 | ## Development
124 |
125 | ### Prerequisites
126 |
127 | | Dependency | Version | Description |
128 | | ---------------------------------------------------- | ------- | ----------------- |
129 | | [Deno](https://docs.deno.com/runtime/) | ^2.0 | Runtime |
130 | | [Lefthook](https://github.com/evilmartians/lefthook) | ^0.7.0 | Git-hooks manager |
131 |
132 | ### Publication Workflow
133 |
134 | The project uses [changesets](https://github.com/changesets/changesets) to manage versioning and changelog.
135 | Typical workflow is as follow:
136 |
137 | 1. make changes to codebase,
138 | 2. run `deno task changesets` at project root and follow prompt to generate a "changeset" (logging a change),
139 | 3. commit both (1) and (2) into git.
140 |
141 | The [changesets Github action](./.github/workflows/changesets.yaml) is triggered on `push` to `main` and will create a corresponding "Changesets: Versioning & Publication" pull request, which, upon merged, will trigger publication of the new version to NPM.
142 |
143 | [license.badge]: https://img.shields.io/badge/license-MIT-blue.svg
144 | [license]: ./LICENSE
145 | [npm.badge]: https://img.shields.io/npm/v/@evilmartians/harmony
146 | [npm]: https://www.npmjs.com/package/@evilmartians/harmony
147 | [github.actions.changesets.badge]: https://github.com/evilmartians/harmony/actions/workflows/changesets.yaml/badge.svg?branch=main
148 | [github.actions.changesets]: https://github.com/evilmartians/harmony/actions/workflows/changesets.yaml
149 |
--------------------------------------------------------------------------------
/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/evilmartians/harmony/94d09164db3d0ba1a6ac00765f28d34de8bc3175/cover.png
--------------------------------------------------------------------------------
/deno.json:
--------------------------------------------------------------------------------
1 | {
2 | "tasks": {
3 | "build": "deno run --allow-read --allow-write scripts/build.ts",
4 | "publint": "deno lint dist && deno check dist && deno run --allow-read --allow-env npm:publint",
5 | "test": "deno test --allow-read --allow-write --watch",
6 | "update-snapshots": "deno test --allow-read --allow-write -- --update",
7 | "changesets": "deno run -A npm:@changesets/cli",
8 | "ci:test": "deno test -A --clean --coverage=coverage --junit-path=coverage/junit.xml",
9 | "ci:coverage": "deno coverage --lcov --output=./coverage/coverage.lcov",
10 | "ci:changesets:version": "deno run -A npm:@changesets/cli version",
11 | "ci:changesets:publish": "deno run -A npm:@changesets/cli publish"
12 | },
13 | "fmt": {
14 | "useTabs": false,
15 | "lineWidth": 100,
16 | "indentWidth": 2,
17 | "semiColons": true,
18 | "singleQuote": false,
19 | "proseWrap": "preserve"
20 | },
21 | "nodeModulesDir": "auto",
22 | "imports": {
23 | "@lambdalisue/sandbox": "jsr:@lambdalisue/sandbox@^2.0.1",
24 | "@std/assert": "jsr:@std/assert@^1.0.8",
25 | "@std/path": "jsr:@std/path@^1.0.8",
26 | "@std/testing": "jsr:@std/testing@^1.0.5"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/deno.lock:
--------------------------------------------------------------------------------
1 | {
2 | "version": "4",
3 | "specifiers": {
4 | "jsr:@lambdalisue/sandbox@*": "2.0.1",
5 | "jsr:@lambdalisue/sandbox@^2.0.1": "2.0.1",
6 | "jsr:@std/assert@*": "1.0.8",
7 | "jsr:@std/assert@^1.0.8": "1.0.8",
8 | "jsr:@std/async@^1.0.8": "1.0.9",
9 | "jsr:@std/data-structures@^1.0.4": "1.0.4",
10 | "jsr:@std/fs@^1.0.5": "1.0.6",
11 | "jsr:@std/internal@^1.0.5": "1.0.5",
12 | "jsr:@std/path@*": "1.0.8",
13 | "jsr:@std/path@^1.0.8": "1.0.8",
14 | "jsr:@std/testing@^1.0.5": "1.0.5",
15 | "npm:@changesets/changelog-github@0.5": "0.5.0",
16 | "npm:@changesets/cli@*": "2.27.10",
17 | "npm:@changesets/cli@^2.27.10": "2.27.10",
18 | "npm:mustache@^4.2.0": "4.2.0",
19 | "npm:publint@*": "0.2.12",
20 | "npm:publint@~0.2.12": "0.2.12",
21 | "npm:zod@*": "3.23.8",
22 | "npm:zod@^3.23.8": "3.23.8"
23 | },
24 | "jsr": {
25 | "@lambdalisue/sandbox@2.0.1": {
26 | "integrity": "070c52399abda0015a8891ce62b1a27f86bb5100e15c2e7029926c46b7ae2f63"
27 | },
28 | "@std/assert@1.0.8": {
29 | "integrity": "ebe0bd7eb488ee39686f77003992f389a06c3da1bbd8022184804852b2fa641b",
30 | "dependencies": [
31 | "jsr:@std/internal"
32 | ]
33 | },
34 | "@std/async@1.0.9": {
35 | "integrity": "c6472fd0623b3f3daae023cdf7ca5535e1b721dfbf376562c0c12b3fb4867f91"
36 | },
37 | "@std/data-structures@1.0.4": {
38 | "integrity": "fa0e20c11eb9ba673417450915c750a0001405a784e2a4e0c3725031681684a0"
39 | },
40 | "@std/fs@1.0.6": {
41 | "integrity": "42b56e1e41b75583a21d5a37f6a6a27de9f510bcd36c0c85791d685ca0b85fa2",
42 | "dependencies": [
43 | "jsr:@std/path@^1.0.8"
44 | ]
45 | },
46 | "@std/internal@1.0.5": {
47 | "integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba"
48 | },
49 | "@std/path@1.0.8": {
50 | "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be"
51 | },
52 | "@std/testing@1.0.5": {
53 | "integrity": "6e693cbec94c81a1ad3df668685c7ba8e20742bb10305bc7137faa5cf16d2ec4",
54 | "dependencies": [
55 | "jsr:@std/assert@^1.0.8",
56 | "jsr:@std/async",
57 | "jsr:@std/data-structures",
58 | "jsr:@std/fs",
59 | "jsr:@std/internal",
60 | "jsr:@std/path@^1.0.8"
61 | ]
62 | }
63 | },
64 | "npm": {
65 | "@babel/runtime@7.26.0": {
66 | "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
67 | "dependencies": [
68 | "regenerator-runtime"
69 | ]
70 | },
71 | "@changesets/apply-release-plan@7.0.6": {
72 | "integrity": "sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==",
73 | "dependencies": [
74 | "@changesets/config",
75 | "@changesets/get-version-range-type",
76 | "@changesets/git",
77 | "@changesets/should-skip-package",
78 | "@changesets/types@6.0.0",
79 | "@manypkg/get-packages",
80 | "detect-indent",
81 | "fs-extra@7.0.1",
82 | "lodash.startcase",
83 | "outdent",
84 | "prettier",
85 | "resolve-from",
86 | "semver"
87 | ]
88 | },
89 | "@changesets/assemble-release-plan@6.0.5": {
90 | "integrity": "sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==",
91 | "dependencies": [
92 | "@changesets/errors",
93 | "@changesets/get-dependents-graph",
94 | "@changesets/should-skip-package",
95 | "@changesets/types@6.0.0",
96 | "@manypkg/get-packages",
97 | "semver"
98 | ]
99 | },
100 | "@changesets/changelog-git@0.2.0": {
101 | "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==",
102 | "dependencies": [
103 | "@changesets/types@6.0.0"
104 | ]
105 | },
106 | "@changesets/changelog-github@0.5.0": {
107 | "integrity": "sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==",
108 | "dependencies": [
109 | "@changesets/get-github-info",
110 | "@changesets/types@6.0.0",
111 | "dotenv"
112 | ]
113 | },
114 | "@changesets/cli@2.27.10": {
115 | "integrity": "sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==",
116 | "dependencies": [
117 | "@changesets/apply-release-plan",
118 | "@changesets/assemble-release-plan",
119 | "@changesets/changelog-git",
120 | "@changesets/config",
121 | "@changesets/errors",
122 | "@changesets/get-dependents-graph",
123 | "@changesets/get-release-plan",
124 | "@changesets/git",
125 | "@changesets/logger",
126 | "@changesets/pre",
127 | "@changesets/read",
128 | "@changesets/should-skip-package",
129 | "@changesets/types@6.0.0",
130 | "@changesets/write",
131 | "@manypkg/get-packages",
132 | "ansi-colors",
133 | "ci-info",
134 | "enquirer",
135 | "external-editor",
136 | "fs-extra@7.0.1",
137 | "mri",
138 | "p-limit",
139 | "package-manager-detector",
140 | "picocolors",
141 | "resolve-from",
142 | "semver",
143 | "spawndamnit",
144 | "term-size"
145 | ]
146 | },
147 | "@changesets/config@3.0.4": {
148 | "integrity": "sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==",
149 | "dependencies": [
150 | "@changesets/errors",
151 | "@changesets/get-dependents-graph",
152 | "@changesets/logger",
153 | "@changesets/types@6.0.0",
154 | "@manypkg/get-packages",
155 | "fs-extra@7.0.1",
156 | "micromatch"
157 | ]
158 | },
159 | "@changesets/errors@0.2.0": {
160 | "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==",
161 | "dependencies": [
162 | "extendable-error"
163 | ]
164 | },
165 | "@changesets/get-dependents-graph@2.1.2": {
166 | "integrity": "sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==",
167 | "dependencies": [
168 | "@changesets/types@6.0.0",
169 | "@manypkg/get-packages",
170 | "picocolors",
171 | "semver"
172 | ]
173 | },
174 | "@changesets/get-github-info@0.6.0": {
175 | "integrity": "sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==",
176 | "dependencies": [
177 | "dataloader",
178 | "node-fetch"
179 | ]
180 | },
181 | "@changesets/get-release-plan@4.0.5": {
182 | "integrity": "sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==",
183 | "dependencies": [
184 | "@changesets/assemble-release-plan",
185 | "@changesets/config",
186 | "@changesets/pre",
187 | "@changesets/read",
188 | "@changesets/types@6.0.0",
189 | "@manypkg/get-packages"
190 | ]
191 | },
192 | "@changesets/get-version-range-type@0.4.0": {
193 | "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="
194 | },
195 | "@changesets/git@3.0.2": {
196 | "integrity": "sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==",
197 | "dependencies": [
198 | "@changesets/errors",
199 | "@manypkg/get-packages",
200 | "is-subdir",
201 | "micromatch",
202 | "spawndamnit"
203 | ]
204 | },
205 | "@changesets/logger@0.1.1": {
206 | "integrity": "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==",
207 | "dependencies": [
208 | "picocolors"
209 | ]
210 | },
211 | "@changesets/parse@0.4.0": {
212 | "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==",
213 | "dependencies": [
214 | "@changesets/types@6.0.0",
215 | "js-yaml"
216 | ]
217 | },
218 | "@changesets/pre@2.0.1": {
219 | "integrity": "sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==",
220 | "dependencies": [
221 | "@changesets/errors",
222 | "@changesets/types@6.0.0",
223 | "@manypkg/get-packages",
224 | "fs-extra@7.0.1"
225 | ]
226 | },
227 | "@changesets/read@0.6.2": {
228 | "integrity": "sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==",
229 | "dependencies": [
230 | "@changesets/git",
231 | "@changesets/logger",
232 | "@changesets/parse",
233 | "@changesets/types@6.0.0",
234 | "fs-extra@7.0.1",
235 | "p-filter",
236 | "picocolors"
237 | ]
238 | },
239 | "@changesets/should-skip-package@0.1.1": {
240 | "integrity": "sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==",
241 | "dependencies": [
242 | "@changesets/types@6.0.0",
243 | "@manypkg/get-packages"
244 | ]
245 | },
246 | "@changesets/types@4.1.0": {
247 | "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw=="
248 | },
249 | "@changesets/types@6.0.0": {
250 | "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="
251 | },
252 | "@changesets/write@0.3.2": {
253 | "integrity": "sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==",
254 | "dependencies": [
255 | "@changesets/types@6.0.0",
256 | "fs-extra@7.0.1",
257 | "human-id",
258 | "prettier"
259 | ]
260 | },
261 | "@manypkg/find-root@1.1.0": {
262 | "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==",
263 | "dependencies": [
264 | "@babel/runtime",
265 | "@types/node",
266 | "find-up",
267 | "fs-extra@8.1.0"
268 | ]
269 | },
270 | "@manypkg/get-packages@1.1.3": {
271 | "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==",
272 | "dependencies": [
273 | "@babel/runtime",
274 | "@changesets/types@4.1.0",
275 | "@manypkg/find-root",
276 | "fs-extra@8.1.0",
277 | "globby",
278 | "read-yaml-file"
279 | ]
280 | },
281 | "@nodelib/fs.scandir@2.1.5": {
282 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
283 | "dependencies": [
284 | "@nodelib/fs.stat",
285 | "run-parallel"
286 | ]
287 | },
288 | "@nodelib/fs.stat@2.0.5": {
289 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
290 | },
291 | "@nodelib/fs.walk@1.2.8": {
292 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
293 | "dependencies": [
294 | "@nodelib/fs.scandir",
295 | "fastq"
296 | ]
297 | },
298 | "@types/node@12.20.55": {
299 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
300 | },
301 | "ansi-colors@4.1.3": {
302 | "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="
303 | },
304 | "ansi-regex@5.0.1": {
305 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
306 | },
307 | "argparse@1.0.10": {
308 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
309 | "dependencies": [
310 | "sprintf-js"
311 | ]
312 | },
313 | "array-union@2.1.0": {
314 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
315 | },
316 | "balanced-match@1.0.2": {
317 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
318 | },
319 | "better-path-resolve@1.0.0": {
320 | "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==",
321 | "dependencies": [
322 | "is-windows"
323 | ]
324 | },
325 | "brace-expansion@2.0.1": {
326 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
327 | "dependencies": [
328 | "balanced-match"
329 | ]
330 | },
331 | "braces@3.0.3": {
332 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
333 | "dependencies": [
334 | "fill-range"
335 | ]
336 | },
337 | "chardet@0.7.0": {
338 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
339 | },
340 | "ci-info@3.9.0": {
341 | "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="
342 | },
343 | "cross-spawn@7.0.6": {
344 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
345 | "dependencies": [
346 | "path-key",
347 | "shebang-command",
348 | "which"
349 | ]
350 | },
351 | "dataloader@1.4.0": {
352 | "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw=="
353 | },
354 | "detect-indent@6.1.0": {
355 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="
356 | },
357 | "dir-glob@3.0.1": {
358 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
359 | "dependencies": [
360 | "path-type"
361 | ]
362 | },
363 | "dotenv@8.6.0": {
364 | "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
365 | },
366 | "enquirer@2.4.1": {
367 | "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
368 | "dependencies": [
369 | "ansi-colors",
370 | "strip-ansi"
371 | ]
372 | },
373 | "esprima@4.0.1": {
374 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
375 | },
376 | "extendable-error@0.1.7": {
377 | "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg=="
378 | },
379 | "external-editor@3.1.0": {
380 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
381 | "dependencies": [
382 | "chardet",
383 | "iconv-lite",
384 | "tmp"
385 | ]
386 | },
387 | "fast-glob@3.3.2": {
388 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
389 | "dependencies": [
390 | "@nodelib/fs.stat",
391 | "@nodelib/fs.walk",
392 | "glob-parent",
393 | "merge2",
394 | "micromatch"
395 | ]
396 | },
397 | "fastq@1.17.1": {
398 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
399 | "dependencies": [
400 | "reusify"
401 | ]
402 | },
403 | "fill-range@7.1.1": {
404 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
405 | "dependencies": [
406 | "to-regex-range"
407 | ]
408 | },
409 | "find-up@4.1.0": {
410 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
411 | "dependencies": [
412 | "locate-path",
413 | "path-exists"
414 | ]
415 | },
416 | "fs-extra@7.0.1": {
417 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
418 | "dependencies": [
419 | "graceful-fs",
420 | "jsonfile",
421 | "universalify"
422 | ]
423 | },
424 | "fs-extra@8.1.0": {
425 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
426 | "dependencies": [
427 | "graceful-fs",
428 | "jsonfile",
429 | "universalify"
430 | ]
431 | },
432 | "fs.realpath@1.0.0": {
433 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
434 | },
435 | "glob-parent@5.1.2": {
436 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
437 | "dependencies": [
438 | "is-glob"
439 | ]
440 | },
441 | "glob@8.1.0": {
442 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
443 | "dependencies": [
444 | "fs.realpath",
445 | "inflight",
446 | "inherits",
447 | "minimatch",
448 | "once"
449 | ]
450 | },
451 | "globby@11.1.0": {
452 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
453 | "dependencies": [
454 | "array-union",
455 | "dir-glob",
456 | "fast-glob",
457 | "ignore",
458 | "merge2",
459 | "slash"
460 | ]
461 | },
462 | "graceful-fs@4.2.11": {
463 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
464 | },
465 | "human-id@1.0.2": {
466 | "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw=="
467 | },
468 | "iconv-lite@0.4.24": {
469 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
470 | "dependencies": [
471 | "safer-buffer"
472 | ]
473 | },
474 | "ignore-walk@5.0.1": {
475 | "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
476 | "dependencies": [
477 | "minimatch"
478 | ]
479 | },
480 | "ignore@5.3.2": {
481 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="
482 | },
483 | "inflight@1.0.6": {
484 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
485 | "dependencies": [
486 | "once",
487 | "wrappy"
488 | ]
489 | },
490 | "inherits@2.0.4": {
491 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
492 | },
493 | "is-extglob@2.1.1": {
494 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
495 | },
496 | "is-glob@4.0.3": {
497 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
498 | "dependencies": [
499 | "is-extglob"
500 | ]
501 | },
502 | "is-number@7.0.0": {
503 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
504 | },
505 | "is-subdir@1.2.0": {
506 | "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==",
507 | "dependencies": [
508 | "better-path-resolve"
509 | ]
510 | },
511 | "is-windows@1.0.2": {
512 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
513 | },
514 | "isexe@2.0.0": {
515 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
516 | },
517 | "js-yaml@3.14.1": {
518 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
519 | "dependencies": [
520 | "argparse",
521 | "esprima"
522 | ]
523 | },
524 | "jsonfile@4.0.0": {
525 | "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
526 | "dependencies": [
527 | "graceful-fs"
528 | ]
529 | },
530 | "locate-path@5.0.0": {
531 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
532 | "dependencies": [
533 | "p-locate"
534 | ]
535 | },
536 | "lodash.startcase@4.4.0": {
537 | "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="
538 | },
539 | "merge2@1.4.1": {
540 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
541 | },
542 | "micromatch@4.0.8": {
543 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
544 | "dependencies": [
545 | "braces",
546 | "picomatch"
547 | ]
548 | },
549 | "minimatch@5.1.6": {
550 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
551 | "dependencies": [
552 | "brace-expansion"
553 | ]
554 | },
555 | "mri@1.2.0": {
556 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
557 | },
558 | "mustache@4.2.0": {
559 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="
560 | },
561 | "node-fetch@2.7.0": {
562 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
563 | "dependencies": [
564 | "whatwg-url"
565 | ]
566 | },
567 | "npm-bundled@2.0.1": {
568 | "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
569 | "dependencies": [
570 | "npm-normalize-package-bin"
571 | ]
572 | },
573 | "npm-normalize-package-bin@2.0.0": {
574 | "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ=="
575 | },
576 | "npm-packlist@5.1.3": {
577 | "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
578 | "dependencies": [
579 | "glob",
580 | "ignore-walk",
581 | "npm-bundled",
582 | "npm-normalize-package-bin"
583 | ]
584 | },
585 | "once@1.4.0": {
586 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
587 | "dependencies": [
588 | "wrappy"
589 | ]
590 | },
591 | "os-tmpdir@1.0.2": {
592 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
593 | },
594 | "outdent@0.5.0": {
595 | "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q=="
596 | },
597 | "p-filter@2.1.0": {
598 | "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==",
599 | "dependencies": [
600 | "p-map"
601 | ]
602 | },
603 | "p-limit@2.3.0": {
604 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
605 | "dependencies": [
606 | "p-try"
607 | ]
608 | },
609 | "p-locate@4.1.0": {
610 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
611 | "dependencies": [
612 | "p-limit"
613 | ]
614 | },
615 | "p-map@2.1.0": {
616 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="
617 | },
618 | "p-try@2.2.0": {
619 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
620 | },
621 | "package-manager-detector@0.2.5": {
622 | "integrity": "sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ=="
623 | },
624 | "path-exists@4.0.0": {
625 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
626 | },
627 | "path-key@3.1.1": {
628 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
629 | },
630 | "path-type@4.0.0": {
631 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
632 | },
633 | "picocolors@1.1.1": {
634 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
635 | },
636 | "picomatch@2.3.1": {
637 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
638 | },
639 | "pify@4.0.1": {
640 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
641 | },
642 | "prettier@2.8.8": {
643 | "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
644 | },
645 | "publint@0.2.12": {
646 | "integrity": "sha512-YNeUtCVeM4j9nDiTT2OPczmlyzOkIXNtdDZnSuajAxS/nZ6j3t7Vs9SUB4euQNddiltIwu7Tdd3s+hr08fAsMw==",
647 | "dependencies": [
648 | "npm-packlist",
649 | "picocolors",
650 | "sade"
651 | ]
652 | },
653 | "queue-microtask@1.2.3": {
654 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
655 | },
656 | "read-yaml-file@1.1.0": {
657 | "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==",
658 | "dependencies": [
659 | "graceful-fs",
660 | "js-yaml",
661 | "pify",
662 | "strip-bom"
663 | ]
664 | },
665 | "regenerator-runtime@0.14.1": {
666 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
667 | },
668 | "resolve-from@5.0.0": {
669 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
670 | },
671 | "reusify@1.0.4": {
672 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
673 | },
674 | "run-parallel@1.2.0": {
675 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
676 | "dependencies": [
677 | "queue-microtask"
678 | ]
679 | },
680 | "sade@1.8.1": {
681 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
682 | "dependencies": [
683 | "mri"
684 | ]
685 | },
686 | "safer-buffer@2.1.2": {
687 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
688 | },
689 | "semver@7.6.3": {
690 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
691 | },
692 | "shebang-command@2.0.0": {
693 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
694 | "dependencies": [
695 | "shebang-regex"
696 | ]
697 | },
698 | "shebang-regex@3.0.0": {
699 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
700 | },
701 | "signal-exit@4.1.0": {
702 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
703 | },
704 | "slash@3.0.0": {
705 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
706 | },
707 | "spawndamnit@3.0.1": {
708 | "integrity": "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==",
709 | "dependencies": [
710 | "cross-spawn",
711 | "signal-exit"
712 | ]
713 | },
714 | "sprintf-js@1.0.3": {
715 | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
716 | },
717 | "strip-ansi@6.0.1": {
718 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
719 | "dependencies": [
720 | "ansi-regex"
721 | ]
722 | },
723 | "strip-bom@3.0.0": {
724 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
725 | },
726 | "term-size@2.2.1": {
727 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
728 | },
729 | "tmp@0.0.33": {
730 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
731 | "dependencies": [
732 | "os-tmpdir"
733 | ]
734 | },
735 | "to-regex-range@5.0.1": {
736 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
737 | "dependencies": [
738 | "is-number"
739 | ]
740 | },
741 | "tr46@0.0.3": {
742 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
743 | },
744 | "universalify@0.1.2": {
745 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
746 | },
747 | "webidl-conversions@3.0.1": {
748 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
749 | },
750 | "whatwg-url@5.0.0": {
751 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
752 | "dependencies": [
753 | "tr46",
754 | "webidl-conversions"
755 | ]
756 | },
757 | "which@2.0.2": {
758 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
759 | "dependencies": [
760 | "isexe"
761 | ]
762 | },
763 | "wrappy@1.0.2": {
764 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
765 | },
766 | "zod@3.23.8": {
767 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="
768 | }
769 | },
770 | "remote": {
771 | "https://deno.land/std@0.202.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9",
772 | "https://deno.land/std@0.202.0/assert/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea",
773 | "https://deno.land/std@0.202.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7",
774 | "https://deno.land/std@0.202.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee",
775 | "https://deno.land/std@0.202.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c",
776 | "https://deno.land/std@0.202.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9",
777 | "https://deno.land/std@0.202.0/assert/assert_equals.ts": "d8ec8a22447fbaf2fc9d7c3ed2e66790fdb74beae3e482855d75782218d68227",
778 | "https://deno.land/std@0.202.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7",
779 | "https://deno.land/std@0.202.0/assert/assert_false.ts": "0ccbcaae910f52c857192ff16ea08bda40fdc79de80846c206bfc061e8c851c6",
780 | "https://deno.land/std@0.202.0/assert/assert_greater.ts": "ae2158a2d19313bf675bf7251d31c6dc52973edb12ac64ac8fc7064152af3e63",
781 | "https://deno.land/std@0.202.0/assert/assert_greater_or_equal.ts": "1439da5ebbe20855446cac50097ac78b9742abe8e9a43e7de1ce1426d556e89c",
782 | "https://deno.land/std@0.202.0/assert/assert_instance_of.ts": "3aedb3d8186e120812d2b3a5dea66a6e42bf8c57a8bd927645770bd21eea554c",
783 | "https://deno.land/std@0.202.0/assert/assert_is_error.ts": "c21113094a51a296ffaf036767d616a78a2ae5f9f7bbd464cd0197476498b94b",
784 | "https://deno.land/std@0.202.0/assert/assert_less.ts": "aec695db57db42ec3e2b62e97e1e93db0063f5a6ec133326cc290ff4b71b47e4",
785 | "https://deno.land/std@0.202.0/assert/assert_less_or_equal.ts": "5fa8b6a3ffa20fd0a05032fe7257bf985d207b85685fdbcd23651b70f928c848",
786 | "https://deno.land/std@0.202.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b",
787 | "https://deno.land/std@0.202.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754",
788 | "https://deno.land/std@0.202.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22",
789 | "https://deno.land/std@0.202.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0",
790 | "https://deno.land/std@0.202.0/assert/assert_not_strict_equals.ts": "ca6c6d645e95fbc873d25320efeb8c4c6089a9a5e09f92d7c1c4b6e935c2a6ad",
791 | "https://deno.land/std@0.202.0/assert/assert_object_match.ts": "d8fc2867cfd92eeacf9cea621e10336b666de1874a6767b5ec48988838370b54",
792 | "https://deno.land/std@0.202.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057",
793 | "https://deno.land/std@0.202.0/assert/assert_strict_equals.ts": "b1f538a7ea5f8348aeca261d4f9ca603127c665e0f2bbfeb91fa272787c87265",
794 | "https://deno.land/std@0.202.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c",
795 | "https://deno.land/std@0.202.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd",
796 | "https://deno.land/std@0.202.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56",
797 | "https://deno.land/std@0.202.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece",
798 | "https://deno.land/std@0.202.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278",
799 | "https://deno.land/std@0.202.0/assert/mod.ts": "37c49a26aae2b254bbe25723434dc28cd7532e444cf0b481a97c045d110ec085",
800 | "https://deno.land/std@0.202.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a",
801 | "https://deno.land/std@0.202.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536",
802 | "https://deno.land/std@0.202.0/fmt/colors.ts": "c51c4642678eb690dcf5ffee5918b675bf01a33fba82acf303701ae1a4f8c8d9",
803 | "https://deno.land/std@0.202.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978",
804 | "https://deno.land/std@0.202.0/fs/ensure_dir.ts": "dc64c4c75c64721d4e3fb681f1382f803ff3d2868f08563ff923fdd20d071c40",
805 | "https://deno.land/std@0.202.0/fs/ensure_file.ts": "39ac83cc283a20ec2735e956adf5de3e8a3334e0b6820547b5772f71c49ae083",
806 | "https://deno.land/std@0.202.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343",
807 | "https://deno.land/std@0.202.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0",
808 | "https://deno.land/std@0.202.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395",
809 | "https://deno.land/std@0.202.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664",
810 | "https://deno.land/std@0.202.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4",
811 | "https://deno.land/std@0.202.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581",
812 | "https://deno.land/std@0.202.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b",
813 | "https://deno.land/std@0.202.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c",
814 | "https://deno.land/std@0.202.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e",
815 | "https://deno.land/std@0.202.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81",
816 | "https://deno.land/std@0.202.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2",
817 | "https://deno.land/std@0.202.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa",
818 | "https://deno.land/std@0.202.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5",
819 | "https://deno.land/std@0.202.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6",
820 | "https://deno.land/std@0.202.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8",
821 | "https://deno.land/std@0.202.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8",
822 | "https://deno.land/std@0.202.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221",
823 | "https://deno.land/std@0.202.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930",
824 | "https://deno.land/std@0.202.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000",
825 | "https://deno.land/std@0.202.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd",
826 | "https://deno.land/std@0.202.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf",
827 | "https://deno.land/std@0.202.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5",
828 | "https://deno.land/std@0.202.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac",
829 | "https://deno.land/std@0.202.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed",
830 | "https://deno.land/std@0.202.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1",
831 | "https://deno.land/std@0.202.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8",
832 | "https://deno.land/std@0.202.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532",
833 | "https://deno.land/std@0.202.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955",
834 | "https://deno.land/std@0.202.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394",
835 | "https://deno.land/std@0.202.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b",
836 | "https://deno.land/std@0.202.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61",
837 | "https://deno.land/std@0.202.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc",
838 | "https://deno.land/std@0.202.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f",
839 | "https://deno.land/std@0.202.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31",
840 | "https://deno.land/std@0.202.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d",
841 | "https://deno.land/std@0.202.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd",
842 | "https://deno.land/std@0.202.0/testing/snapshot.ts": "d53cc4ad3250e3a826df9a1a90bc19c9a92c8faa8fd508d16b5e6ce8699310ca",
843 | "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee",
844 | "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56",
845 | "https://deno.land/std@0.203.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978",
846 | "https://deno.land/std@0.203.0/fs/copy.ts": "23cc1c465babe5ca4d69778821e2f8addc44593e30a5ca0b902b3784eed75bb6",
847 | "https://deno.land/std@0.203.0/fs/empty_dir.ts": "2e52cd4674d18e2e007175c80449fc3d263786a1361e858d9dfa9360a6581b47",
848 | "https://deno.land/std@0.203.0/fs/ensure_dir.ts": "dc64c4c75c64721d4e3fb681f1382f803ff3d2868f08563ff923fdd20d071c40",
849 | "https://deno.land/std@0.203.0/fs/ensure_file.ts": "39ac83cc283a20ec2735e956adf5de3e8a3334e0b6820547b5772f71c49ae083",
850 | "https://deno.land/std@0.203.0/fs/ensure_link.ts": "c15e69c48556d78aae31b83e0c0ece04b7b8bc0951412f5b759aceb6fde7f0ac",
851 | "https://deno.land/std@0.203.0/fs/ensure_symlink.ts": "b389c8568f0656d145ac7ece472afe710815cccbb2ebfd19da7978379ae143fe",
852 | "https://deno.land/std@0.203.0/fs/eol.ts": "f1f2eb348a750c34500741987b21d65607f352cf7205f48f4319d417fff42842",
853 | "https://deno.land/std@0.203.0/fs/exists.ts": "cb59a853d84871d87acab0e7936a4dac11282957f8e195102c5a7acb42546bb8",
854 | "https://deno.land/std@0.203.0/fs/expand_glob.ts": "52b8b6f5b1fa585c348250da1c80ce5d820746cb4a75d874b3599646f677d3a7",
855 | "https://deno.land/std@0.203.0/fs/mod.ts": "bc3d0acd488cc7b42627044caf47d72019846d459279544e1934418955ba4898",
856 | "https://deno.land/std@0.203.0/fs/move.ts": "b4f8f46730b40c32ea3c0bc8eb0fd0e8139249a698883c7b3756424cf19785c9",
857 | "https://deno.land/std@0.203.0/fs/walk.ts": "a16146724a6aaf9efdb92023a74e9805195c3469900744ce5de4113b07b29779",
858 | "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343",
859 | "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0",
860 | "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395",
861 | "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664",
862 | "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4",
863 | "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581",
864 | "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b",
865 | "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c",
866 | "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e",
867 | "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81",
868 | "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2",
869 | "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa",
870 | "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5",
871 | "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6",
872 | "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8",
873 | "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8",
874 | "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221",
875 | "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930",
876 | "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000",
877 | "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd",
878 | "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf",
879 | "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5",
880 | "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac",
881 | "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed",
882 | "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1",
883 | "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8",
884 | "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532",
885 | "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955",
886 | "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394",
887 | "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b",
888 | "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61",
889 | "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc",
890 | "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f",
891 | "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31",
892 | "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d",
893 | "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd",
894 | "https://esm.sh/v132/zod@3.22.2": "cb0fb346568a5237a2a80832f77c75d903370e12011c66ac3916239a9d4988cb",
895 | "https://esm.sh/v132/zod@3.22.2/denonext/zod.mjs": "b72f0eac903e994642e59258bd5552020471f60b5b17ed859650bffd3c33daa0"
896 | },
897 | "workspace": {
898 | "dependencies": [
899 | "jsr:@lambdalisue/sandbox@^2.0.1",
900 | "jsr:@std/assert@^1.0.8",
901 | "jsr:@std/path@^1.0.8",
902 | "jsr:@std/testing@^1.0.5"
903 | ],
904 | "packageJson": {
905 | "dependencies": [
906 | "npm:@changesets/changelog-github@0.5",
907 | "npm:@changesets/cli@^2.27.10",
908 | "npm:mustache@^4.2.0",
909 | "npm:publint@~0.2.12",
910 | "npm:zod@^3.23.8"
911 | ]
912 | }
913 | }
914 | }
915 |
--------------------------------------------------------------------------------
/lefthook.yaml:
--------------------------------------------------------------------------------
1 | assert_lefthook_installed: true
2 | min_version: 1.7.18
3 | pre-commit:
4 | piped: true
5 | follow: true
6 | skip:
7 | - merge
8 | - rebase
9 | commands:
10 | 1_lint:
11 | run: deno lint --fix {staged_files}
12 | glob: '*.ts'
13 | stage_fixed: true
14 | 2_format:
15 | run: deno fmt {staged_files}
16 | glob: '*.{ts,json,md,yaml}'
17 | stage_fixed: true
18 |
19 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@evilmartians/harmony",
3 | "version": "1.4.0",
4 | "scripts": {
5 | "build": "deno task build && deno task publint",
6 | "prepublishOnly": "npm run build"
7 | },
8 | "type": "module",
9 | "exports": {
10 | "./tailwind": {
11 | "types": "./dist/tailwind/index.d.ts",
12 | "require": "./dist/tailwind/index.cjs",
13 | "import": "./dist/tailwind/index.js",
14 | "default": "./dist/tailwind/index.js"
15 | },
16 | "./tailwind.css": "./dist/tailwind/index.css",
17 | "./base": {
18 | "types": "./dist/base/index.d.ts",
19 | "require": "./dist/base/index.cjs",
20 | "import": "./dist/base/index.js",
21 | "default": "./dist/base/index.js"
22 | },
23 | "./css/*": "./dist/css/*"
24 | },
25 | "publishConfig": {
26 | "access": "public",
27 | "provenance": true
28 | },
29 | "files": [
30 | "dist/*"
31 | ],
32 | "keywords": [
33 | "colors",
34 | "palette",
35 | "tailwind"
36 | ],
37 | "sideEffects": false,
38 | "repository": {
39 | "type": "git",
40 | "url": "git+https://github.com/evilmartians/harmony.git"
41 | },
42 | "license": "MIT",
43 | "devDependencies": {
44 | "@changesets/changelog-github": "^0.5.0",
45 | "@changesets/cli": "^2.27.10",
46 | "mustache": "^4.2.0",
47 | "publint": "^0.2.12",
48 | "zod": "^3.23.8"
49 | },
50 | "devEngines": {
51 | "runtime": [
52 | {
53 | "name": "deno",
54 | "version": ">= 2.0.0",
55 | "onFail": "error"
56 | }
57 | ]
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/scripts/build.ts:
--------------------------------------------------------------------------------
1 | import * as path from "@std/path";
2 | import { build } from "./builder.ts";
3 | import base from "./targets/base/base.config.ts";
4 | import css from "./targets/css/css.config.ts";
5 | import tailwind from "./targets/tailwind/tailwind.config.ts";
6 | import source from "../source.json" with { type: "json" };
7 |
8 | const configs = [base, css, tailwind];
9 | const dir = path.join(Deno.cwd(), "dist");
10 |
11 | await build(source, dir, configs);
12 |
--------------------------------------------------------------------------------
/scripts/builder.test.ts:
--------------------------------------------------------------------------------
1 | import { stub } from "@std/testing/mock";
2 | import { assert, assertRejects } from "@std/assert";
3 | import { sandbox } from "@lambdalisue/sandbox";
4 |
5 | import { testPaletteSource } from "../tests/utils.ts";
6 | import base from "./targets/base/base.config.ts";
7 | import { build } from "./builder.ts";
8 |
9 | Deno.test("should abort and clean up if Deno.remove throws unexpect error", async () => {
10 | const errorMessage = "some Deno.remove error";
11 | const stubbed = stub(Deno, "remove", () => {
12 | throw new Error(errorMessage);
13 | });
14 |
15 | const sbox = await sandbox();
16 | try {
17 | await build(testPaletteSource, sbox.path, [base]);
18 | } catch (e) {
19 | assert(e instanceof Error);
20 | assert(e.message === errorMessage);
21 | } finally {
22 | stubbed.restore();
23 | await sbox[Symbol.asyncDispose]();
24 | }
25 | assert(stubbed.calls.length === 1);
26 | await assertRejects(() => Deno.lstat(sbox.path));
27 | });
28 |
--------------------------------------------------------------------------------
/scripts/builder.ts:
--------------------------------------------------------------------------------
1 | import * as z from "zod";
2 | import { BuildConfig, PaletteWithFallback } from "./types.ts";
3 | import mustache from "mustache";
4 | import * as path from "@std/path";
5 |
6 | //
7 | // SOURCE_FILE schema
8 | //
9 | const SourceSchema = z.record(
10 | z.string().regex(/\w+\/\d+/).toLowerCase().describe(
11 | 'Color name and shade. Example: "red/500"',
12 | ),
13 | z.object({
14 | $oklch: z.string().describe(
15 | 'Color in Oklch format. Example: "oklch(98.83% 0.005 20)"',
16 | ),
17 | $srgbFallback: z.string().describe(
18 | 'Fallback color in sRGB format. Example: "#ffffff"',
19 | ),
20 | }),
21 | );
22 |
23 | export type PaletteSource = z.infer;
24 |
25 | export function defineBuildConfig(config: C): C {
26 | return config;
27 | }
28 |
29 | export async function build(
30 | source: PaletteSource,
31 | dir: string,
32 | configs: BuildConfig[],
33 | ): Promise {
34 | // STEP 1: parse palette from source
35 | const parsed = SourceSchema.parse(source);
36 |
37 | // STEP 2: prepare palette into disgestive array for easier processing during build
38 | const map = new Map();
39 | for (const [key, value] of Object.entries(parsed)) {
40 | const [colorName, shadeName] = key.split("/");
41 | let color = map.get(colorName);
42 | if (!color) {
43 | color = { colorName, shades: [] };
44 | map.set(colorName, color);
45 | }
46 | color.shades.push({
47 | shadeName,
48 | oklch: value.$oklch,
49 | srgbFallback: value.$srgbFallback,
50 | });
51 | }
52 | const palette: PaletteWithFallback = Array.from(map.values());
53 |
54 | // STEP 3: clean output dir to avoid stale files
55 | try {
56 | await Deno.remove(dir, { recursive: true });
57 | } catch (err) {
58 | if (!(err instanceof Deno.errors.NotFound)) {
59 | throw err;
60 | }
61 | }
62 |
63 | // STEP 4: build targets
64 | const filepaths = await Promise.all(configs.flatMap((config) => {
65 | const target = typeof config === "function" ? config(palette) : config;
66 | return target.outputs.map(async (output) => {
67 | const template = await Deno.readTextFile(output.templatePath);
68 | const vars = output.templateVars ?? { palette };
69 | const content = mustache.render(template, vars);
70 | const targetDir = path.join(dir, target.dir);
71 | const targetFile = path.join(targetDir, output.file);
72 | await Deno.mkdir(targetDir, { recursive: true });
73 | await Deno.writeTextFile(targetFile, content);
74 |
75 | return targetFile;
76 | });
77 | }));
78 |
79 | return filepaths;
80 | }
81 |
--------------------------------------------------------------------------------
/scripts/targets/base/__snapshots__/base.test.ts.snap:
--------------------------------------------------------------------------------
1 | export const snapshot = {};
2 |
3 | snapshot[`index.js 1`] = `
4 | 'export default {
5 | red: {
6 | 50: "oklch(0.988281 0.0046875 20)",
7 | 500: "oklch(0.742188 0.151562 20)",
8 | },
9 | orange: {
10 | 100: "oklch(0.966797 0.0171875 43.3333)",
11 | },
12 | };
13 | '
14 | `;
15 |
16 | snapshot[`index.d.ts 1`] = `
17 | "declare namespace _default {
18 | let red: {
19 | 50: string;
20 | 500: string;
21 | };
22 | let orange: {
23 | 100: string;
24 | };
25 | }
26 | export default _default;
27 | "
28 | `;
29 |
30 | snapshot[`index.cjs 1`] = `
31 | '"use strict";
32 | module.exports = {
33 | red: {
34 | 50: "oklch(0.988281 0.0046875 20)",
35 | 500: "oklch(0.742188 0.151562 20)",
36 | },
37 | orange: {
38 | 100: "oklch(0.966797 0.0171875 43.3333)",
39 | },
40 | };
41 | Object.defineProperty(exports, "__esModule", { value: true });
42 | '
43 | `;
44 |
--------------------------------------------------------------------------------
/scripts/targets/base/base.config.ts:
--------------------------------------------------------------------------------
1 | import * as path from "@std/path";
2 | import { defineBuildConfig } from "../../builder.ts";
3 |
4 | export default defineBuildConfig({
5 | dir: "base",
6 | outputs: ["index.js", "index.cjs", "index.d.ts"].map((file) => ({
7 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`),
8 | file,
9 | })),
10 | });
11 |
--------------------------------------------------------------------------------
/scripts/targets/base/base.test.ts:
--------------------------------------------------------------------------------
1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts";
2 | import base from "./base.config.ts";
3 |
4 | Deno.test("build base target", async (t) => {
5 | await expectBuildToMatchSnapshot(t, base);
6 | });
7 |
--------------------------------------------------------------------------------
/scripts/targets/base/templates/index.cjs.template:
--------------------------------------------------------------------------------
1 | "use strict";
2 | module.exports = {
3 | {{#palette}}
4 | {{colorName}}: {
5 | {{#shades}}
6 | {{shadeName}}: "{{oklch}}",
7 | {{/shades}}
8 | },
9 | {{/palette}}
10 | };
11 | Object.defineProperty(exports, "__esModule", { value: true });
12 |
--------------------------------------------------------------------------------
/scripts/targets/base/templates/index.d.ts.template:
--------------------------------------------------------------------------------
1 | declare namespace _default {
2 | {{#palette}}
3 | let {{colorName}}: {
4 | {{#shades}}
5 | {{shadeName}}: string;
6 | {{/shades}}
7 | };
8 | {{/palette}}
9 | }
10 | export default _default;
11 |
--------------------------------------------------------------------------------
/scripts/targets/base/templates/index.js.template:
--------------------------------------------------------------------------------
1 | export default {
2 | {{#palette}}
3 | {{colorName}}: {
4 | {{#shades}}
5 | {{shadeName}}: "{{oklch}}",
6 | {{/shades}}
7 | },
8 | {{/palette}}
9 | };
10 |
--------------------------------------------------------------------------------
/scripts/targets/css/__snapshots__/css.test.ts.snap:
--------------------------------------------------------------------------------
1 | export const snapshot = {};
2 |
3 | snapshot[`index.css 1`] = `
4 | '@import "./red.css";
5 | @import "./orange.css";
6 | '
7 | `;
8 |
9 | snapshot[`red.css 1`] = `
10 | ":root {
11 | --red-50: #fefafa;
12 | --red-500: #fc8083;
13 | }
14 |
15 | @supports (color: oklch(0% 0 0)) {
16 | @media (color-gamut: p3) {
17 | :root {
18 | --red-50: oklch(0.988281 0.0046875 20);
19 | --red-500: oklch(0.742188 0.151562 20);
20 | }
21 | }
22 | }
23 | "
24 | `;
25 |
26 | snapshot[`orange.css 1`] = `
27 | ":root {
28 | --orange-100: #fff1eb;
29 | }
30 |
31 | @supports (color: oklch(0% 0 0)) {
32 | @media (color-gamut: p3) {
33 | :root {
34 | --orange-100: oklch(0.966797 0.0171875 43.3333);
35 | }
36 | }
37 | }
38 | "
39 | `;
40 |
--------------------------------------------------------------------------------
/scripts/targets/css/css.config.ts:
--------------------------------------------------------------------------------
1 | import * as path from "@std/path";
2 | import { defineBuildConfig } from "../../builder.ts";
3 |
4 | export default defineBuildConfig((colors) => ({
5 | dir: "css",
6 | outputs: [
7 | {
8 | templatePath: path.join(import.meta.dirname!, "templates/index.css.template"),
9 | file: "index.css",
10 | },
11 | ...colors.map((color) => ({
12 | templatePath: path.join(import.meta.dirname!, "templates/[color].css.template"),
13 | templateVars: { ...color },
14 | file: `${color.colorName}.css`,
15 | })),
16 | ],
17 | }));
18 |
--------------------------------------------------------------------------------
/scripts/targets/css/css.test.ts:
--------------------------------------------------------------------------------
1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts";
2 | import css from "./css.config.ts";
3 |
4 | Deno.test("build css target", async (t) => {
5 | await expectBuildToMatchSnapshot(t, css);
6 | });
7 |
--------------------------------------------------------------------------------
/scripts/targets/css/templates/[color].css.template:
--------------------------------------------------------------------------------
1 | :root {
2 | {{#shades}}
3 | --{{colorName}}-{{shadeName}}: {{srgbFallback}};
4 | {{/shades}}
5 | }
6 |
7 | @supports (color: oklch(0% 0 0)) {
8 | @media (color-gamut: p3) {
9 | :root {
10 | {{#shades}}
11 | --{{colorName}}-{{shadeName}}: {{oklch}};
12 | {{/shades}}
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/scripts/targets/css/templates/index.css.template:
--------------------------------------------------------------------------------
1 | {{#palette}}
2 | @import "./{{colorName}}.css";
3 | {{/palette}}
4 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/__snapshots__/tailwind.test.ts.snap:
--------------------------------------------------------------------------------
1 | export const snapshot = {};
2 |
3 | snapshot[`index.css 1`] = `
4 | "@theme {
5 | --color-*: initial;
6 |
7 | --color-white: #fff;
8 | --color-black: #000;
9 |
10 | --color-red-50: oklch(0.988281 0.0046875 20);
11 | --color-red-500: oklch(0.742188 0.151562 20);
12 |
13 | --color-orange-100: oklch(0.966797 0.0171875 43.3333);
14 |
15 | }
16 | "
17 | `;
18 |
19 | snapshot[`index.cjs 1`] = `
20 | '"use strict";
21 |
22 | module.exports = {
23 | inherit: "inherit",
24 | current: "currentColor",
25 | transparent: "transparent",
26 | black: "#000",
27 | white: "#fff",
28 |
29 | red: {
30 | 50: "oklch(0.988281 0.0046875 20 / )",
31 | 500: "oklch(0.742188 0.151562 20 / )",
32 | },
33 | orange: {
34 | 100: "oklch(0.966797 0.0171875 43.3333 / )",
35 | },
36 | };
37 |
38 | Object.defineProperty(exports, "__esModule", { value: true });
39 | '
40 | `;
41 |
42 | snapshot[`index.d.ts 1`] = `
43 | "declare namespace _default {
44 | let inherit: string;
45 | let current: string;
46 | let transparent: string;
47 | let black: string;
48 | let white: string;
49 |
50 | let red: {
51 | 50: string;
52 | 500: string;
53 | };
54 | let orange: {
55 | 100: string;
56 | };
57 | }
58 | export default _default;
59 | "
60 | `;
61 |
62 | snapshot[`index.js 1`] = `
63 | 'export default {
64 | inherit: "inherit",
65 | current: "currentColor",
66 | transparent: "transparent",
67 | black: "#000",
68 | white: "#fff",
69 |
70 | red: {
71 | 50: "oklch(0.988281 0.0046875 20 / )",
72 | 500: "oklch(0.742188 0.151562 20 / )",
73 | },
74 | orange: {
75 | 100: "oklch(0.966797 0.0171875 43.3333 / )",
76 | },
77 | };
78 | '
79 | `;
80 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import * as path from "@std/path";
2 | import { defineBuildConfig } from "../../builder.ts";
3 | import { PaletteWithFallback } from "../../types.ts";
4 |
5 | export default defineBuildConfig((palette) => ({
6 | dir: "tailwind",
7 | outputs: [
8 | ...["index.css", "index.d.ts"].map((file) => ({
9 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`),
10 | file,
11 | })),
12 | ...["index.js", "index.cjs"].map((file) => ({
13 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`),
14 | templateVars: {
15 | palette,
16 | oklchWithAlpha: function () {
17 | const shade = this as unknown as PaletteWithFallback[number]["shades"][number];
18 | return shade.oklch.slice(0, -1) +
19 | " / )";
20 | },
21 | },
22 | file,
23 | })),
24 | ],
25 | }));
26 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/tailwind.test.ts:
--------------------------------------------------------------------------------
1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts";
2 | import tailwind from "./tailwind.config.ts";
3 |
4 | Deno.test("build tailwind target", async (t) => {
5 | await expectBuildToMatchSnapshot(t, tailwind);
6 | });
7 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/templates/index.cjs.template:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | module.exports = {
4 | inherit: "inherit",
5 | current: "currentColor",
6 | transparent: "transparent",
7 | black: "#000",
8 | white: "#fff",
9 |
10 | {{#palette}}
11 | {{colorName}}: {
12 | {{#shades}}
13 | {{shadeName}}: "{{{oklchWithAlpha}}}",
14 | {{/shades}}
15 | },
16 | {{/palette}}
17 | };
18 |
19 | Object.defineProperty(exports, "__esModule", { value: true });
20 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/templates/index.css.template:
--------------------------------------------------------------------------------
1 | @theme {
2 | --color-*: initial;
3 |
4 | --color-white: #fff;
5 | --color-black: #000;
6 |
7 | {{#palette}}
8 | {{#shades}}
9 | --color-{{colorName}}-{{shadeName}}: {{oklch}};
10 | {{/shades}}
11 |
12 | {{/palette}}
13 | }
14 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/templates/index.d.ts.template:
--------------------------------------------------------------------------------
1 | declare namespace _default {
2 | let inherit: string;
3 | let current: string;
4 | let transparent: string;
5 | let black: string;
6 | let white: string;
7 |
8 | {{#palette}}
9 | let {{colorName}}: {
10 | {{#shades}}
11 | {{shadeName}}: string;
12 | {{/shades}}
13 | };
14 | {{/palette}}
15 | }
16 | export default _default;
17 |
--------------------------------------------------------------------------------
/scripts/targets/tailwind/templates/index.js.template:
--------------------------------------------------------------------------------
1 | export default {
2 | inherit: "inherit",
3 | current: "currentColor",
4 | transparent: "transparent",
5 | black: "#000",
6 | white: "#fff",
7 |
8 | {{#palette}}
9 | {{colorName}}: {
10 | {{#shades}}
11 | {{shadeName}}: "{{{oklchWithAlpha}}}",
12 | {{/shades}}
13 | },
14 | {{/palette}}
15 | };
16 |
--------------------------------------------------------------------------------
/scripts/types.ts:
--------------------------------------------------------------------------------
1 | // deno-lint-ignore-file no-explicit-any
2 |
3 | export type PaletteWithFallback = {
4 | colorName: string;
5 | shades: {
6 | shadeName: string;
7 | oklch: string;
8 | srgbFallback: string;
9 | }[];
10 | }[];
11 |
12 | export type BuildTarget = {
13 | /** relative dir in addition to outdir, to keep at root outdir set to '.' */
14 | dir: string;
15 | /** individual output files */
16 | outputs: {
17 | /** absolute path to template */
18 | templatePath: string;
19 | /**
20 | * vars passed to template
21 | * if not specified will include the whole palette
22 | * take any value compatible with Mustache.js, including
23 | * JSON-serializable objects and functions.
24 | */
25 | templateVars?: Record;
26 | /** filename to write rendered template to */
27 | file: string;
28 | }[];
29 | };
30 |
31 | export type BuildConfig = BuildTarget | ((palette: PaletteWithFallback) => BuildTarget);
32 |
--------------------------------------------------------------------------------
/source.json:
--------------------------------------------------------------------------------
1 | {
2 | "Red/50": {
3 | "$value": "#fefafa",
4 | "$type": "color",
5 | "$description": "oklch(98.83% 0.005 20)",
6 | "$oklch": "oklch(0.988281 0.0046875 20)",
7 | "$srgbFallback": "#fefafa",
8 | "$isP3": false,
9 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,20,100",
10 | "$contrast": -105.15768233897973,
11 | "$contrastBg": "black"
12 | },
13 | "Orange/50": {
14 | "$value": "#fdfaf9",
15 | "$type": "color",
16 | "$description": "oklch(98.83% 0.005 43.33)",
17 | "$oklch": "oklch(0.988281 0.0046875 43.3333)",
18 | "$srgbFallback": "#fefaf9",
19 | "$isP3": false,
20 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,43.33333333333333,100",
21 | "$contrast": -105.19005965789154,
22 | "$contrastBg": "black"
23 | },
24 | "Amber/50": {
25 | "$value": "#fdfbf8",
26 | "$type": "color",
27 | "$description": "oklch(98.83% 0.005 66.67)",
28 | "$oklch": "oklch(0.988281 0.0046875 66.6667)",
29 | "$srgbFallback": "#fdfbf8",
30 | "$isP3": false,
31 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,66.66666666666666,100",
32 | "$contrast": -105.23658976658778,
33 | "$contrastBg": "black"
34 | },
35 | "Yellow/50": {
36 | "$value": "#fcfbf8",
37 | "$type": "color",
38 | "$description": "oklch(98.83% 0.005 90)",
39 | "$oklch": "oklch(0.988281 0.0046875 90)",
40 | "$srgbFallback": "#fcfbf8",
41 | "$isP3": false,
42 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,90,100",
43 | "$contrast": -105.28977763856004,
44 | "$contrastBg": "black"
45 | },
46 | "Lime/50": {
47 | "$value": "#fbfbf8",
48 | "$type": "color",
49 | "$description": "oklch(98.83% 0.005 106.67)",
50 | "$oklch": "oklch(0.988281 0.0046875 106.667)",
51 | "$srgbFallback": "#fbfbf8",
52 | "$isP3": false,
53 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,106.66666666666667,100",
54 | "$contrast": -105.32706537248913,
55 | "$contrastBg": "black"
56 | },
57 | "Green/50": {
58 | "$value": "#fbfcf9",
59 | "$type": "color",
60 | "$description": "oklch(98.83% 0.005 123.33)",
61 | "$oklch": "oklch(0.988281 0.0046875 123.333)",
62 | "$srgbFallback": "#fafcf8",
63 | "$isP3": false,
64 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,123.33333333333334,100",
65 | "$contrast": -105.36019413050435,
66 | "$contrastBg": "black"
67 | },
68 | "Emerald/50": {
69 | "$value": "#fafcf9",
70 | "$type": "color",
71 | "$description": "oklch(98.83% 0.005 140)",
72 | "$oklch": "oklch(0.988281 0.0046875 140)",
73 | "$srgbFallback": "#fafcf9",
74 | "$isP3": false,
75 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,140,100",
76 | "$contrast": -105.38635289658384,
77 | "$contrastBg": "black"
78 | },
79 | "Teal/50": {
80 | "$value": "#f9fcfa",
81 | "$type": "color",
82 | "$description": "oklch(98.83% 0.005 160)",
83 | "$oklch": "oklch(0.988281 0.0046875 160)",
84 | "$srgbFallback": "#f9fcfa",
85 | "$isP3": false,
86 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,160,100",
87 | "$contrast": -105.40543529000341,
88 | "$contrastBg": "black"
89 | },
90 | "Cyan/50": {
91 | "$value": "#f9fcfb",
92 | "$type": "color",
93 | "$description": "oklch(98.83% 0.005 180)",
94 | "$oklch": "oklch(0.988281 0.0046875 180)",
95 | "$srgbFallback": "#f8fcfb",
96 | "$isP3": false,
97 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,180,100",
98 | "$contrast": -105.40891739103793,
99 | "$contrastBg": "black"
100 | },
101 | "Sky/50": {
102 | "$value": "#f9fcfd",
103 | "$type": "color",
104 | "$description": "oklch(98.83% 0.005 210)",
105 | "$oklch": "oklch(0.988281 0.0046875 210)",
106 | "$srgbFallback": "#f8fcfd",
107 | "$isP3": false,
108 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,210,100",
109 | "$contrast": -105.3844419403475,
110 | "$contrastBg": "black"
111 | },
112 | "Blue/50": {
113 | "$value": "#f9fcfe",
114 | "$type": "color",
115 | "$description": "oklch(98.83% 0.005 240)",
116 | "$oklch": "oklch(0.988281 0.0046875 240)",
117 | "$srgbFallback": "#f8fcfe",
118 | "$isP3": false,
119 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,240,100",
120 | "$contrast": -105.33096464536378,
121 | "$contrastBg": "black"
122 | },
123 | "Indigo/50": {
124 | "$value": "#fafbfe",
125 | "$type": "color",
126 | "$description": "oklch(98.83% 0.005 260)",
127 | "$oklch": "oklch(0.988281 0.0046875 260)",
128 | "$srgbFallback": "#f9fbfe",
129 | "$isP3": false,
130 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,260,100",
131 | "$contrast": -105.2861847448562,
132 | "$contrastBg": "black"
133 | },
134 | "Violet/50": {
135 | "$value": "#fafbfe",
136 | "$type": "color",
137 | "$description": "oklch(98.83% 0.005 280)",
138 | "$oklch": "oklch(0.988281 0.0046875 280)",
139 | "$srgbFallback": "#fafbfe",
140 | "$isP3": false,
141 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,280,100",
142 | "$contrast": -105.24036778113617,
143 | "$contrastBg": "black"
144 | },
145 | "Purple/50": {
146 | "$value": "#fbfbfe",
147 | "$type": "color",
148 | "$description": "oklch(98.83% 0.005 300)",
149 | "$oklch": "oklch(0.988281 0.0046875 300)",
150 | "$srgbFallback": "#fcfafe",
151 | "$isP3": false,
152 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,300,100",
153 | "$contrast": -105.19904867133324,
154 | "$contrastBg": "black"
155 | },
156 | "Fuchsia/50": {
157 | "$value": "#fcfafd",
158 | "$type": "color",
159 | "$description": "oklch(98.83% 0.005 320)",
160 | "$oklch": "oklch(0.988281 0.0046875 320)",
161 | "$srgbFallback": "#fdfafd",
162 | "$isP3": false,
163 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,320,100",
164 | "$contrast": -105.16716781657638,
165 | "$contrastBg": "black"
166 | },
167 | "Pink/50": {
168 | "$value": "#fdfafc",
169 | "$type": "color",
170 | "$description": "oklch(98.83% 0.005 340)",
171 | "$oklch": "oklch(0.988281 0.0046875 340)",
172 | "$srgbFallback": "#fdfafc",
173 | "$isP3": false,
174 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,340,100",
175 | "$contrast": -105.14849570742983,
176 | "$contrastBg": "black"
177 | },
178 | "Rose/50": {
179 | "$value": "#fdfafb",
180 | "$type": "color",
181 | "$description": "oklch(98.83% 0.005 0)",
182 | "$oklch": "oklch(0.988281 0.0046875 0)",
183 | "$srgbFallback": "#fefafb",
184 | "$isP3": false,
185 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,360,100",
186 | "$contrast": -105.14521332898899,
187 | "$contrastBg": "black"
188 | },
189 | "Slate/50": {
190 | "$value": "#fafbfe",
191 | "$type": "color",
192 | "$description": "oklch(98.83% 0.005 275)",
193 | "$oklch": "oklch(0.988281 0.0046875 275)",
194 | "$srgbFallback": "#fafbfe",
195 | "$isP3": false,
196 | "$link": "https://oklch.com/#98.828125,0.0046875,275,100",
197 | "$contrast": -105.25161134176153,
198 | "$contrastBg": "black"
199 | },
200 | "Gray/50": {
201 | "$value": "#fafbfe",
202 | "$type": "color",
203 | "$description": "oklch(98.83% 0.005 275)",
204 | "$oklch": "oklch(0.988281 0.0046875 275)",
205 | "$srgbFallback": "#fafbfe",
206 | "$isP3": false,
207 | "$link": "https://oklch.com/#98.828125,0.0046875,275,100",
208 | "$contrast": -105.25161134176153,
209 | "$contrastBg": "black"
210 | },
211 | "Zinc/50": {
212 | "$value": "#fafbfe",
213 | "$type": "color",
214 | "$description": "oklch(98.83% 0.005 275)",
215 | "$oklch": "oklch(0.988281 0.004875 275)",
216 | "$srgbFallback": "#fafbff",
217 | "$isP3": false,
218 | "$link": "https://oklch.com/#98.828125,0.004875,275,100",
219 | "$contrast": -105.2505798343969,
220 | "$contrastBg": "black"
221 | },
222 | "Neutral/50": {
223 | "$value": "#fbfbfb",
224 | "$type": "color",
225 | "$description": "oklch(98.83% 0 0)",
226 | "$oklch": "oklch(0.988281 0 0)",
227 | "$srgbFallback": "#fbfbfb",
228 | "$isP3": false,
229 | "$link": "https://oklch.com/#98.828125,0,0,100",
230 | "$contrast": -105.27689563370342,
231 | "$contrastBg": "black"
232 | },
233 | "Stone/50": {
234 | "$value": "#fefbf6",
235 | "$type": "color",
236 | "$description": "oklch(98.83% 0.008 75)",
237 | "$oklch": "oklch(0.988281 0.008 75)",
238 | "$srgbFallback": "#fefbf5",
239 | "$isP3": false,
240 | "$link": "https://oklch.com/#98.828125,0.008,75,100",
241 | "$contrast": -105.23946808885256,
242 | "$contrastBg": "black"
243 | },
244 | "Sand/50": {
245 | "$value": "#fffbf4",
246 | "$type": "color",
247 | "$description": "oklch(98.83% 0.01 75)",
248 | "$oklch": "oklch(0.988281 0.0104375 75)",
249 | "$srgbFallback": "#fffaf4",
250 | "$isP3": true,
251 | "$link": "https://oklch.com/#98.828125,0.0104375,75,100",
252 | "$contrast": -105.22758572323406,
253 | "$contrastBg": "black"
254 | },
255 | "Olive/50": {
256 | "$value": "#fbfcf7",
257 | "$type": "color",
258 | "$description": "oklch(98.83% 0.008 120)",
259 | "$oklch": "oklch(0.988281 0.008 120)",
260 | "$srgbFallback": "#fafcf6",
261 | "$isP3": false,
262 | "$link": "https://oklch.com/#98.828125,0.008,120,100",
263 | "$contrast": -105.4081410184954,
264 | "$contrastBg": "black"
265 | },
266 | "Mauve/50": {
267 | "$value": "#fdfafe",
268 | "$type": "color",
269 | "$description": "oklch(98.83% 0.008 325)",
270 | "$oklch": "oklch(0.988281 0.008 325)",
271 | "$srgbFallback": "#fef9fe",
272 | "$isP3": false,
273 | "$link": "https://oklch.com/#98.828125,0.008,325,100",
274 | "$contrast": -105.07925546170486,
275 | "$contrastBg": "black"
276 | },
277 | "Red/100": {
278 | "$value": "#fdf0f0",
279 | "$type": "color",
280 | "$description": "oklch(96.68% 0.017 20)",
281 | "$oklch": "oklch(0.966797 0.0171875 20)",
282 | "$srgbFallback": "#fff0ef",
283 | "$isP3": true,
284 | "$link": "https://oklch.com/#96.6796875,0.0171875,20,100",
285 | "$contrast": -100.14014430059217,
286 | "$contrastBg": "black"
287 | },
288 | "Orange/100": {
289 | "$value": "#fcf1ec",
290 | "$type": "color",
291 | "$description": "oklch(96.68% 0.017 43.33)",
292 | "$oklch": "oklch(0.966797 0.0171875 43.3333)",
293 | "$srgbFallback": "#fff1eb",
294 | "$isP3": false,
295 | "$link": "https://oklch.com/#96.6796875,0.0171875,43.33333333333333,100",
296 | "$contrast": -100.25442407683774,
297 | "$contrastBg": "black"
298 | },
299 | "Amber/100": {
300 | "$value": "#fbf2e9",
301 | "$type": "color",
302 | "$description": "oklch(96.68% 0.017 66.67)",
303 | "$oklch": "oklch(0.966797 0.0171875 66.6667)",
304 | "$srgbFallback": "#fcf2e8",
305 | "$isP3": false,
306 | "$link": "https://oklch.com/#96.6796875,0.0171875,66.66666666666666,100",
307 | "$contrast": -100.41924249202958,
308 | "$contrastBg": "black"
309 | },
310 | "Yellow/100": {
311 | "$value": "#f7f3e8",
312 | "$type": "color",
313 | "$description": "oklch(96.48% 0.017 90)",
314 | "$oklch": "oklch(0.964844 0.0171875 90)",
315 | "$srgbFallback": "#f8f3e7",
316 | "$isP3": false,
317 | "$link": "https://oklch.com/#96.484375,0.0171875,90,100",
318 | "$contrast": -100.18559298967193,
319 | "$contrastBg": "black"
320 | },
321 | "Lime/100": {
322 | "$value": "#f4f4e9",
323 | "$type": "color",
324 | "$description": "oklch(96.48% 0.017 106.67)",
325 | "$oklch": "oklch(0.964844 0.0171875 106.667)",
326 | "$srgbFallback": "#f4f4e7",
327 | "$isP3": false,
328 | "$link": "https://oklch.com/#96.484375,0.0171875,106.66666666666667,100",
329 | "$contrast": -100.31971520429082,
330 | "$contrastBg": "black"
331 | },
332 | "Green/100": {
333 | "$value": "#f1f5e9",
334 | "$type": "color",
335 | "$description": "oklch(96.29% 0.017 123.33)",
336 | "$oklch": "oklch(0.962891 0.0171875 123.333)",
337 | "$srgbFallback": "#f0f5e8",
338 | "$isP3": false,
339 | "$link": "https://oklch.com/#96.2890625,0.0171875,123.33333333333334,100",
340 | "$contrast": -100.0165732586812,
341 | "$contrastBg": "black"
342 | },
343 | "Emerald/100": {
344 | "$value": "#eff6ec",
345 | "$type": "color",
346 | "$description": "oklch(96.29% 0.017 140)",
347 | "$oklch": "oklch(0.962891 0.0171875 140)",
348 | "$srgbFallback": "#edf6eb",
349 | "$isP3": false,
350 | "$link": "https://oklch.com/#96.2890625,0.0171875,140,100",
351 | "$contrast": -100.11207974829065,
352 | "$contrastBg": "black"
353 | },
354 | "Teal/100": {
355 | "$value": "#ecf6ef",
356 | "$type": "color",
357 | "$description": "oklch(96.29% 0.017 160)",
358 | "$oklch": "oklch(0.962891 0.0171875 160)",
359 | "$srgbFallback": "#e9f7ef",
360 | "$isP3": false,
361 | "$link": "https://oklch.com/#96.2890625,0.0171875,160,100",
362 | "$contrast": -100.1824867986035,
363 | "$contrastBg": "black"
364 | },
365 | "Cyan/100": {
366 | "$value": "#eaf6f3",
367 | "$type": "color",
368 | "$description": "oklch(96.29% 0.017 180)",
369 | "$oklch": "oklch(0.962891 0.0171875 180)",
370 | "$srgbFallback": "#e7f7f3",
371 | "$isP3": false,
372 | "$link": "https://oklch.com/#96.2890625,0.0171875,180,100",
373 | "$contrast": -100.19598381019593,
374 | "$contrastBg": "black"
375 | },
376 | "Sky/100": {
377 | "$value": "#e9f6f9",
378 | "$type": "color",
379 | "$description": "oklch(96.29% 0.017 210)",
380 | "$oklch": "oklch(0.962891 0.0171875 210)",
381 | "$srgbFallback": "#e6f6f9",
382 | "$isP3": false,
383 | "$link": "https://oklch.com/#96.2890625,0.0171875,210,100",
384 | "$contrast": -100.10702821136563,
385 | "$contrastBg": "black"
386 | },
387 | "Blue/100": {
388 | "$value": "#ecf5fd",
389 | "$type": "color",
390 | "$description": "oklch(96.48% 0.017 240)",
391 | "$oklch": "oklch(0.964844 0.0171875 240)",
392 | "$srgbFallback": "#eaf5fe",
393 | "$isP3": false,
394 | "$link": "https://oklch.com/#96.484375,0.0171875,240,100",
395 | "$contrast": -100.33526613585838,
396 | "$contrastBg": "black"
397 | },
398 | "Indigo/100": {
399 | "$value": "#eef4fe",
400 | "$type": "color",
401 | "$description": "oklch(96.48% 0.017 260)",
402 | "$oklch": "oklch(0.964844 0.0171875 260)",
403 | "$srgbFallback": "#edf4ff",
404 | "$isP3": true,
405 | "$link": "https://oklch.com/#96.484375,0.0171875,260,100",
406 | "$contrast": -100.17290973570687,
407 | "$contrastBg": "black"
408 | },
409 | "Violet/100": {
410 | "$value": "#f1f2fe",
411 | "$type": "color",
412 | "$description": "oklch(96.48% 0.017 280)",
413 | "$oklch": "oklch(0.964844 0.0171875 280)",
414 | "$srgbFallback": "#f1f2ff",
415 | "$isP3": true,
416 | "$link": "https://oklch.com/#96.484375,0.0171875,280,100",
417 | "$contrast": -100.00821903763809,
418 | "$contrastBg": "black"
419 | },
420 | "Purple/100": {
421 | "$value": "#f5f2fd",
422 | "$type": "color",
423 | "$description": "oklch(96.68% 0.017 300)",
424 | "$oklch": "oklch(0.966797 0.0171875 300)",
425 | "$srgbFallback": "#f6f2fe",
426 | "$isP3": false,
427 | "$link": "https://oklch.com/#96.6796875,0.0171875,300,100",
428 | "$contrast": -100.28418243555437,
429 | "$contrastBg": "black"
430 | },
431 | "Fuchsia/100": {
432 | "$value": "#f8f1fb",
433 | "$type": "color",
434 | "$description": "oklch(96.68% 0.017 320)",
435 | "$oklch": "oklch(0.966797 0.0171875 320)",
436 | "$srgbFallback": "#f9f1fb",
437 | "$isP3": false,
438 | "$link": "https://oklch.com/#96.6796875,0.0171875,320,100",
439 | "$contrast": -100.17171490868873,
440 | "$contrastBg": "black"
441 | },
442 | "Pink/100": {
443 | "$value": "#faf0f7",
444 | "$type": "color",
445 | "$description": "oklch(96.68% 0.017 340)",
446 | "$oklch": "oklch(0.966797 0.0171875 340)",
447 | "$srgbFallback": "#fdf0f8",
448 | "$isP3": false,
449 | "$link": "https://oklch.com/#96.6796875,0.0171875,340,100",
450 | "$contrast": -100.10663318200457,
451 | "$contrastBg": "black"
452 | },
453 | "Rose/100": {
454 | "$value": "#fcf0f3",
455 | "$type": "color",
456 | "$description": "oklch(96.68% 0.017 0)",
457 | "$oklch": "oklch(0.966797 0.0171875 0)",
458 | "$srgbFallback": "#fff0f3",
459 | "$isP3": false,
460 | "$link": "https://oklch.com/#96.6796875,0.0171875,360,100",
461 | "$contrast": -100.09582580074196,
462 | "$contrastBg": "black"
463 | },
464 | "Slate/100": {
465 | "$value": "#f0f3ff",
466 | "$type": "color",
467 | "$description": "oklch(96.48% 0.018 275)",
468 | "$oklch": "oklch(0.964844 0.01775 275)",
469 | "$srgbFallback": "#f0f3ff",
470 | "$isP3": true,
471 | "$link": "https://oklch.com/#96.484375,0.01775,275,100",
472 | "$contrast": -100.04513748110662,
473 | "$contrastBg": "black"
474 | },
475 | "Gray/100": {
476 | "$value": "#f0f3fe",
477 | "$type": "color",
478 | "$description": "oklch(96.48% 0.016 275)",
479 | "$oklch": "oklch(0.964844 0.016 275)",
480 | "$srgbFallback": "#f0f3ff",
481 | "$isP3": false,
482 | "$link": "https://oklch.com/#96.484375,0.016,275,100",
483 | "$contrast": -100.05550821818956,
484 | "$contrastBg": "black"
485 | },
486 | "Zinc/100": {
487 | "$value": "#f2f3f8",
488 | "$type": "color",
489 | "$description": "oklch(96.48% 0.008 275)",
490 | "$oklch": "oklch(0.964844 0.008 275)",
491 | "$srgbFallback": "#f2f3f9",
492 | "$isP3": false,
493 | "$link": "https://oklch.com/#96.484375,0.008,275,100",
494 | "$contrast": -100.10117421951703,
495 | "$contrastBg": "black"
496 | },
497 | "Neutral/100": {
498 | "$value": "#f3f3f3",
499 | "$type": "color",
500 | "$description": "oklch(96.48% 0 0)",
501 | "$oklch": "oklch(0.964844 0 0)",
502 | "$srgbFallback": "#f3f3f3",
503 | "$isP3": false,
504 | "$link": "https://oklch.com/#96.484375,0,0,100",
505 | "$contrast": -100.14400712664819,
506 | "$contrastBg": "black"
507 | },
508 | "Stone/100": {
509 | "$value": "#f6f3ee",
510 | "$type": "color",
511 | "$description": "oklch(96.48% 0.008 75)",
512 | "$oklch": "oklch(0.964844 0.008 75)",
513 | "$srgbFallback": "#f7f3ee",
514 | "$isP3": false,
515 | "$link": "https://oklch.com/#96.484375,0.008,75,100",
516 | "$contrast": -100.10735814414977,
517 | "$contrastBg": "black"
518 | },
519 | "Sand/100": {
520 | "$value": "#f7f3ec",
521 | "$type": "color",
522 | "$description": "oklch(96.48% 0.012 75)",
523 | "$oklch": "oklch(0.964844 0.012 75)",
524 | "$srgbFallback": "#f8f2eb",
525 | "$isP3": false,
526 | "$link": "https://oklch.com/#96.484375,0.012,75,100",
527 | "$contrast": -100.0881385459425,
528 | "$contrastBg": "black"
529 | },
530 | "Olive/100": {
531 | "$value": "#f3f4ef",
532 | "$type": "color",
533 | "$description": "oklch(96.48% 0.008 120)",
534 | "$oklch": "oklch(0.964844 0.008 120)",
535 | "$srgbFallback": "#f2f4ee",
536 | "$isP3": false,
537 | "$link": "https://oklch.com/#96.484375,0.008,120,100",
538 | "$contrast": -100.27244727086202,
539 | "$contrastBg": "black"
540 | },
541 | "Mauve/100": {
542 | "$value": "#f6f2f7",
543 | "$type": "color",
544 | "$description": "oklch(96.68% 0.008 325)",
545 | "$oklch": "oklch(0.966797 0.008 325)",
546 | "$srgbFallback": "#f7f2f7",
547 | "$isP3": false,
548 | "$link": "https://oklch.com/#96.6796875,0.008,325,100",
549 | "$contrast": -100.3737303654698,
550 | "$contrastBg": "black"
551 | },
552 | "Red/200": {
553 | "$value": "#fadcda",
554 | "$type": "color",
555 | "$description": "oklch(92.19% 0.042 20)",
556 | "$oklch": "oklch(0.921875 0.0421875 20)",
557 | "$srgbFallback": "#ffdbda",
558 | "$isP3": true,
559 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,20,100",
560 | "$contrast": -90.0225137948612,
561 | "$contrastBg": "black"
562 | },
563 | "Orange/200": {
564 | "$value": "#f9ded1",
565 | "$type": "color",
566 | "$description": "oklch(92.19% 0.042 43.33)",
567 | "$oklch": "oklch(0.921875 0.0421875 43.3333)",
568 | "$srgbFallback": "#ffddcf",
569 | "$isP3": false,
570 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,43.33333333333333,100",
571 | "$contrast": -90.28069714589697,
572 | "$contrastBg": "black"
573 | },
574 | "Amber/200": {
575 | "$value": "#f4e1ca",
576 | "$type": "color",
577 | "$description": "oklch(91.99% 0.042 66.67)",
578 | "$oklch": "oklch(0.919922 0.0421875 66.6667)",
579 | "$srgbFallback": "#f8e0c8",
580 | "$isP3": false,
581 | "$link": "https://oklch.com/#91.9921875,0.04218750000000001,66.66666666666666,100",
582 | "$contrast": -90.250842899355,
583 | "$contrastBg": "black"
584 | },
585 | "Yellow/200": {
586 | "$value": "#ede4c8",
587 | "$type": "color",
588 | "$description": "oklch(91.8% 0.042 90)",
589 | "$oklch": "oklch(0.917969 0.0421875 90)",
590 | "$srgbFallback": "#efe3c5",
591 | "$isP3": false,
592 | "$link": "https://oklch.com/#91.796875,0.04218750000000001,90,100",
593 | "$contrast": -90.2849155820292,
594 | "$contrastBg": "black"
595 | },
596 | "Lime/200": {
597 | "$value": "#e6e6c9",
598 | "$type": "color",
599 | "$description": "oklch(91.6% 0.042 106.67)",
600 | "$oklch": "oklch(0.916016 0.0421875 106.667)",
601 | "$srgbFallback": "#e6e6c6",
602 | "$isP3": false,
603 | "$link": "https://oklch.com/#91.6015625,0.04218750000000001,106.66666666666667,100",
604 | "$contrast": -90.19598366891242,
605 | "$contrastBg": "black"
606 | },
607 | "Green/200": {
608 | "$value": "#dfe7cc",
609 | "$type": "color",
610 | "$description": "oklch(91.41% 0.042 123.33)",
611 | "$oklch": "oklch(0.914063 0.0421875 123.333)",
612 | "$srgbFallback": "#dde8c9",
613 | "$isP3": false,
614 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,123.33333333333334,100",
615 | "$contrast": -90.07875344022635,
616 | "$contrastBg": "black"
617 | },
618 | "Emerald/200": {
619 | "$value": "#d8e9d2",
620 | "$type": "color",
621 | "$description": "oklch(91.41% 0.042 140)",
622 | "$oklch": "oklch(0.914063 0.0421875 140)",
623 | "$srgbFallback": "#d4ead0",
624 | "$isP3": false,
625 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,140,100",
626 | "$contrast": -90.31152907133047,
627 | "$contrastBg": "black"
628 | },
629 | "Teal/200": {
630 | "$value": "#d1eada",
631 | "$type": "color",
632 | "$description": "oklch(91.21% 0.042 160)",
633 | "$oklch": "oklch(0.912109 0.0421875 160)",
634 | "$srgbFallback": "#cbebd8",
635 | "$isP3": false,
636 | "$link": "https://oklch.com/#91.2109375,0.04218750000000001,160,100",
637 | "$contrast": -90.08211958830785,
638 | "$contrastBg": "black"
639 | },
640 | "Cyan/200": {
641 | "$value": "#ccebe3",
642 | "$type": "color",
643 | "$description": "oklch(91.21% 0.042 180)",
644 | "$oklch": "oklch(0.912109 0.0421875 180)",
645 | "$srgbFallback": "#c5ece3",
646 | "$isP3": false,
647 | "$link": "https://oklch.com/#91.2109375,0.04218750000000001,180,100",
648 | "$contrast": -90.11930013344536,
649 | "$contrastBg": "black"
650 | },
651 | "Sky/200": {
652 | "$value": "#cbeaf1",
653 | "$type": "color",
654 | "$description": "oklch(91.41% 0.042 210)",
655 | "$oklch": "oklch(0.914063 0.0421875 210)",
656 | "$srgbFallback": "#c3ebf2",
657 | "$isP3": false,
658 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,210,100",
659 | "$contrast": -90.30960203558655,
660 | "$contrastBg": "black"
661 | },
662 | "Blue/200": {
663 | "$value": "#d0e7fb",
664 | "$type": "color",
665 | "$description": "oklch(91.6% 0.042 240)",
666 | "$oklch": "oklch(0.916016 0.0421875 240)",
667 | "$srgbFallback": "#cbe8fd",
668 | "$isP3": false,
669 | "$link": "https://oklch.com/#91.6015625,0.04218750000000001,240,100",
670 | "$contrast": -90.24008754400838,
671 | "$contrastBg": "black"
672 | },
673 | "Indigo/200": {
674 | "$value": "#d7e5fe",
675 | "$type": "color",
676 | "$description": "oklch(91.8% 0.042 260)",
677 | "$oklch": "oklch(0.917969 0.0421875 260)",
678 | "$srgbFallback": "#d5e5ff",
679 | "$isP3": true,
680 | "$link": "https://oklch.com/#91.796875,0.04218750000000001,260,100",
681 | "$contrast": -90.25522371456228,
682 | "$contrastBg": "black"
683 | },
684 | "Violet/200": {
685 | "$value": "#dfe2fe",
686 | "$type": "color",
687 | "$description": "oklch(91.99% 0.042 280)",
688 | "$oklch": "oklch(0.919922 0.0421875 280)",
689 | "$srgbFallback": "#dfe2ff",
690 | "$isP3": true,
691 | "$link": "https://oklch.com/#91.9921875,0.04218750000000001,280,100",
692 | "$contrast": -90.27159205927155,
693 | "$contrastBg": "black"
694 | },
695 | "Purple/200": {
696 | "$value": "#e7e0fc",
697 | "$type": "color",
698 | "$description": "oklch(92.19% 0.042 300)",
699 | "$oklch": "oklch(0.921875 0.0421875 300)",
700 | "$srgbFallback": "#e9dffe",
701 | "$isP3": false,
702 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,300,100",
703 | "$contrast": -90.33680497676391,
704 | "$contrastBg": "black"
705 | },
706 | "Fuchsia/200": {
707 | "$value": "#efddf5",
708 | "$type": "color",
709 | "$description": "oklch(92.19% 0.042 320)",
710 | "$oklch": "oklch(0.921875 0.0421875 320)",
711 | "$srgbFallback": "#f2ddf7",
712 | "$isP3": false,
713 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,320,100",
714 | "$contrast": -90.08349487124066,
715 | "$contrastBg": "black"
716 | },
717 | "Pink/200": {
718 | "$value": "#f5ddee",
719 | "$type": "color",
720 | "$description": "oklch(92.38% 0.042 340)",
721 | "$oklch": "oklch(0.923828 0.0421875 340)",
722 | "$srgbFallback": "#fadbef",
723 | "$isP3": false,
724 | "$link": "https://oklch.com/#92.3828125,0.04218750000000001,340,100",
725 | "$contrast": -90.34552493069572,
726 | "$contrastBg": "black"
727 | },
728 | "Rose/200": {
729 | "$value": "#f9dce4",
730 | "$type": "color",
731 | "$description": "oklch(92.38% 0.042 0)",
732 | "$oklch": "oklch(0.923828 0.0421875 0)",
733 | "$srgbFallback": "#ffdbe5",
734 | "$isP3": true,
735 | "$link": "https://oklch.com/#92.3828125,0.04218750000000001,360,100",
736 | "$contrast": -90.32519240572145,
737 | "$contrastBg": "black"
738 | },
739 | "Slate/200": {
740 | "$value": "#e0e3f3",
741 | "$type": "color",
742 | "$description": "oklch(91.8% 0.024 275)",
743 | "$oklch": "oklch(0.917969 0.024 275)",
744 | "$srgbFallback": "#dfe3f4",
745 | "$isP3": false,
746 | "$link": "https://oklch.com/#91.796875,0.024,275,100",
747 | "$contrast": -90.07817554427668,
748 | "$contrastBg": "black"
749 | },
750 | "Gray/200": {
751 | "$value": "#e1e3ee",
752 | "$type": "color",
753 | "$description": "oklch(91.8% 0.016 275)",
754 | "$oklch": "oklch(0.917969 0.016 275)",
755 | "$srgbFallback": "#e0e3ef",
756 | "$isP3": false,
757 | "$link": "https://oklch.com/#91.796875,0.016,275,100",
758 | "$contrast": -90.12485459705519,
759 | "$contrastBg": "black"
760 | },
761 | "Zinc/200": {
762 | "$value": "#e2e3e9",
763 | "$type": "color",
764 | "$description": "oklch(91.8% 0.008 275)",
765 | "$oklch": "oklch(0.917969 0.008 275)",
766 | "$srgbFallback": "#e2e4e9",
767 | "$isP3": false,
768 | "$link": "https://oklch.com/#91.796875,0.008,275,100",
769 | "$contrast": -90.16868153494337,
770 | "$contrastBg": "black"
771 | },
772 | "Neutral/200": {
773 | "$value": "#e4e4e4",
774 | "$type": "color",
775 | "$description": "oklch(91.8% 0 0)",
776 | "$oklch": "oklch(0.917969 0 0)",
777 | "$srgbFallback": "#e4e4e4",
778 | "$isP3": false,
779 | "$link": "https://oklch.com/#91.796875,0,0,100",
780 | "$contrast": -90.20969513496077,
781 | "$contrastBg": "black"
782 | },
783 | "Stone/200": {
784 | "$value": "#e6e3df",
785 | "$type": "color",
786 | "$description": "oklch(91.8% 0.008 75)",
787 | "$oklch": "oklch(0.917969 0.008 75)",
788 | "$srgbFallback": "#e7e3de",
789 | "$isP3": false,
790 | "$link": "https://oklch.com/#91.796875,0.008,75,100",
791 | "$contrast": -90.1746145430727,
792 | "$contrastBg": "black"
793 | },
794 | "Sand/200": {
795 | "$value": "#e8e3dc",
796 | "$type": "color",
797 | "$description": "oklch(91.8% 0.012 75)",
798 | "$oklch": "oklch(0.917969 0.012 75)",
799 | "$srgbFallback": "#e9e3db",
800 | "$isP3": false,
801 | "$link": "https://oklch.com/#91.796875,0.012,75,100",
802 | "$contrast": -90.15619517193582,
803 | "$contrastBg": "black"
804 | },
805 | "Olive/200": {
806 | "$value": "#e3e5df",
807 | "$type": "color",
808 | "$description": "oklch(91.8% 0.008 120)",
809 | "$oklch": "oklch(0.917969 0.008 120)",
810 | "$srgbFallback": "#e3e5df",
811 | "$isP3": false,
812 | "$link": "https://oklch.com/#91.796875,0.008,120,100",
813 | "$contrast": -90.3324934191153,
814 | "$contrastBg": "black"
815 | },
816 | "Mauve/200": {
817 | "$value": "#e6e2e6",
818 | "$type": "color",
819 | "$description": "oklch(91.8% 0.008 325)",
820 | "$oklch": "oklch(0.917969 0.008 325)",
821 | "$srgbFallback": "#e7e2e7",
822 | "$isP3": false,
823 | "$link": "https://oklch.com/#91.796875,0.008,325,100",
824 | "$contrast": -90.02471501373383,
825 | "$contrastBg": "black"
826 | },
827 | "Red/300": {
828 | "$value": "#f7c0be",
829 | "$type": "color",
830 | "$description": "oklch(86.13% 0.078 20)",
831 | "$oklch": "oklch(0.861328 0.078125 20)",
832 | "$srgbFallback": "#ffbebd",
833 | "$isP3": true,
834 | "$link": "https://oklch.com/#86.1328125,0.07812500000000001,20,100",
835 | "$contrast": -77.08644088189351,
836 | "$contrastBg": "black"
837 | },
838 | "Orange/300": {
839 | "$value": "#f4c3ac",
840 | "$type": "color",
841 | "$description": "oklch(85.94% 0.078 43.33)",
842 | "$oklch": "oklch(0.859375 0.078125 43.3333)",
843 | "$srgbFallback": "#fec1a8",
844 | "$isP3": false,
845 | "$link": "https://oklch.com/#85.9375,0.07812500000000001,43.33333333333333,100",
846 | "$contrast": -77.12817341204102,
847 | "$contrastBg": "black"
848 | },
849 | "Amber/300": {
850 | "$value": "#ecc8a0",
851 | "$type": "color",
852 | "$description": "oklch(85.74% 0.078 66.67)",
853 | "$oklch": "oklch(0.857422 0.078125 66.6667)",
854 | "$srgbFallback": "#f4c79a",
855 | "$isP3": false,
856 | "$link": "https://oklch.com/#85.7421875,0.07812500000000001,66.66666666666666,100",
857 | "$contrast": -77.36665444193929,
858 | "$contrastBg": "black"
859 | },
860 | "Yellow/300": {
861 | "$value": "#dfce9b",
862 | "$type": "color",
863 | "$description": "oklch(85.35% 0.078 90)",
864 | "$oklch": "oklch(0.853516 0.078125 90)",
865 | "$srgbFallback": "#e3cd94",
866 | "$isP3": false,
867 | "$link": "https://oklch.com/#85.3515625,0.07812500000000001,90,100",
868 | "$contrast": -77.35090285598868,
869 | "$contrastBg": "black"
870 | },
871 | "Lime/300": {
872 | "$value": "#d3d29d",
873 | "$type": "color",
874 | "$description": "oklch(84.96% 0.078 106.67)",
875 | "$oklch": "oklch(0.849609 0.078125 106.667)",
876 | "$srgbFallback": "#d3d296",
877 | "$isP3": false,
878 | "$link": "https://oklch.com/#84.9609375,0.07812500000000001,106.66666666666667,100",
879 | "$contrast": -77.14202338903586,
880 | "$contrastBg": "black"
881 | },
882 | "Green/300": {
883 | "$value": "#c6d5a3",
884 | "$type": "color",
885 | "$description": "oklch(84.77% 0.078 123.33)",
886 | "$oklch": "oklch(0.847656 0.078125 123.333)",
887 | "$srgbFallback": "#c3d69e",
888 | "$isP3": false,
889 | "$link": "https://oklch.com/#84.765625,0.07812500000000001,123.33333333333334,100",
890 | "$contrast": -77.27610332304546,
891 | "$contrastBg": "black"
892 | },
893 | "Emerald/300": {
894 | "$value": "#bad8ad",
895 | "$type": "color",
896 | "$description": "oklch(84.57% 0.078 140)",
897 | "$oklch": "oklch(0.845703 0.078125 140)",
898 | "$srgbFallback": "#b2d9a9",
899 | "$isP3": false,
900 | "$link": "https://oklch.com/#84.5703125,0.07812500000000001,140,100",
901 | "$contrast": -77.32445446770217,
902 | "$contrastBg": "black"
903 | },
904 | "Teal/300": {
905 | "$value": "#acdabd",
906 | "$type": "color",
907 | "$description": "oklch(84.38% 0.078 160)",
908 | "$oklch": "oklch(0.84375 0.078125 160)",
909 | "$srgbFallback": "#9fdcba",
910 | "$isP3": false,
911 | "$link": "https://oklch.com/#84.375,0.07812500000000001,160,100",
912 | "$contrast": -77.27991923033933,
913 | "$contrastBg": "black"
914 | },
915 | "Cyan/300": {
916 | "$value": "#a2dbce",
917 | "$type": "color",
918 | "$description": "oklch(84.38% 0.078 180)",
919 | "$oklch": "oklch(0.84375 0.078125 180)",
920 | "$srgbFallback": "#92ddce",
921 | "$isP3": false,
922 | "$link": "https://oklch.com/#84.375,0.07812500000000001,180,100",
923 | "$contrast": -77.36285345997199,
924 | "$contrastBg": "black"
925 | },
926 | "Sky/300": {
927 | "$value": "#9fd9e6",
928 | "$type": "color",
929 | "$description": "oklch(84.57% 0.078 210)",
930 | "$oklch": "oklch(0.845703 0.078125 210)",
931 | "$srgbFallback": "#8edbe9",
932 | "$isP3": false,
933 | "$link": "https://oklch.com/#84.5703125,0.07812500000000001,210,100",
934 | "$contrast": -77.3547578675285,
935 | "$contrastBg": "black"
936 | },
937 | "Blue/300": {
938 | "$value": "#aad4f8",
939 | "$type": "color",
940 | "$description": "oklch(84.96% 0.078 240)",
941 | "$oklch": "oklch(0.849609 0.078125 240)",
942 | "$srgbFallback": "#9fd5fc",
943 | "$isP3": false,
944 | "$link": "https://oklch.com/#84.9609375,0.07812500000000001,240,100",
945 | "$contrast": -77.23904731959841,
946 | "$contrastBg": "black"
947 | },
948 | "Indigo/300": {
949 | "$value": "#b7cffe",
950 | "$type": "color",
951 | "$description": "oklch(85.35% 0.078 260)",
952 | "$oklch": "oklch(0.853516 0.078125 260)",
953 | "$srgbFallback": "#b4d0ff",
954 | "$isP3": true,
955 | "$link": "https://oklch.com/#85.3515625,0.07812500000000001,260,100",
956 | "$contrast": -77.29450449032103,
957 | "$contrastBg": "black"
958 | },
959 | "Violet/300": {
960 | "$value": "#c6cbff",
961 | "$type": "color",
962 | "$description": "oklch(85.74% 0.078 280)",
963 | "$oklch": "oklch(0.857422 0.078125 280)",
964 | "$srgbFallback": "#c6ccff",
965 | "$isP3": true,
966 | "$link": "https://oklch.com/#85.7421875,0.07812500000000001,280,100",
967 | "$contrast": -77.37378288006676,
968 | "$contrastBg": "black"
969 | },
970 | "Purple/300": {
971 | "$value": "#d5c6f9",
972 | "$type": "color",
973 | "$description": "oklch(85.94% 0.078 300)",
974 | "$oklch": "oklch(0.859375 0.078125 300)",
975 | "$srgbFallback": "#d8c6fd",
976 | "$isP3": false,
977 | "$link": "https://oklch.com/#85.9375,0.07812500000000001,300,100",
978 | "$contrast": -77.18179280760089,
979 | "$contrastBg": "black"
980 | },
981 | "Fuchsia/300": {
982 | "$value": "#e2c3ef",
983 | "$type": "color",
984 | "$description": "oklch(86.13% 0.078 320)",
985 | "$oklch": "oklch(0.861328 0.078125 320)",
986 | "$srgbFallback": "#e9c1f2",
987 | "$isP3": false,
988 | "$link": "https://oklch.com/#86.1328125,0.07812500000000001,320,100",
989 | "$contrast": -77.1529937657712,
990 | "$contrastBg": "black"
991 | },
992 | "Pink/300": {
993 | "$value": "#edc1e0",
994 | "$type": "color",
995 | "$description": "oklch(86.33% 0.078 340)",
996 | "$oklch": "oklch(0.863281 0.078125 340)",
997 | "$srgbFallback": "#f6bfe2",
998 | "$isP3": false,
999 | "$link": "https://oklch.com/#86.328125,0.07812500000000001,340,100",
1000 | "$contrast": -77.31441991357511,
1001 | "$contrastBg": "black"
1002 | },
1003 | "Rose/300": {
1004 | "$value": "#f4c0cf",
1005 | "$type": "color",
1006 | "$description": "oklch(86.33% 0.078 0)",
1007 | "$oklch": "oklch(0.863281 0.078125 0)",
1008 | "$srgbFallback": "#febdd0",
1009 | "$isP3": false,
1010 | "$link": "https://oklch.com/#86.328125,0.07812500000000001,360,100",
1011 | "$contrast": -77.29412686291785,
1012 | "$contrastBg": "black"
1013 | },
1014 | "Slate/300": {
1015 | "$value": "#cbcede",
1016 | "$type": "color",
1017 | "$description": "oklch(85.35% 0.024 275)",
1018 | "$oklch": "oklch(0.853516 0.024 275)",
1019 | "$srgbFallback": "#cacedf",
1020 | "$isP3": false,
1021 | "$link": "https://oklch.com/#85.3515625,0.024,275,100",
1022 | "$contrast": -77.15383977269352,
1023 | "$contrastBg": "black"
1024 | },
1025 | "Gray/300": {
1026 | "$value": "#ccced9",
1027 | "$type": "color",
1028 | "$description": "oklch(85.35% 0.016 275)",
1029 | "$oklch": "oklch(0.853516 0.016 275)",
1030 | "$srgbFallback": "#cbceda",
1031 | "$isP3": false,
1032 | "$link": "https://oklch.com/#85.3515625,0.016,275,100",
1033 | "$contrast": -77.19792281521444,
1034 | "$contrastBg": "black"
1035 | },
1036 | "Zinc/300": {
1037 | "$value": "#cdced4",
1038 | "$type": "color",
1039 | "$description": "oklch(85.35% 0.008 275)",
1040 | "$oklch": "oklch(0.853516 0.008 275)",
1041 | "$srgbFallback": "#cdced4",
1042 | "$isP3": false,
1043 | "$link": "https://oklch.com/#85.3515625,0.008,275,100",
1044 | "$contrast": -77.23918550427882,
1045 | "$contrastBg": "black"
1046 | },
1047 | "Neutral/300": {
1048 | "$value": "#cfcfcf",
1049 | "$type": "color",
1050 | "$description": "oklch(85.35% 0 0)",
1051 | "$oklch": "oklch(0.853516 0 0)",
1052 | "$srgbFallback": "#cfcfcf",
1053 | "$isP3": false,
1054 | "$link": "https://oklch.com/#85.3515625,0,0,100",
1055 | "$contrast": -77.2776695428903,
1056 | "$contrastBg": "black"
1057 | },
1058 | "Stone/300": {
1059 | "$value": "#d1ceca",
1060 | "$type": "color",
1061 | "$description": "oklch(85.35% 0.008 75)",
1062 | "$oklch": "oklch(0.853516 0.008 75)",
1063 | "$srgbFallback": "#d2cec9",
1064 | "$isP3": false,
1065 | "$link": "https://oklch.com/#85.3515625,0.008,75,100",
1066 | "$contrast": -77.24477224126336,
1067 | "$contrastBg": "black"
1068 | },
1069 | "Sand/300": {
1070 | "$value": "#d3cec7",
1071 | "$type": "color",
1072 | "$description": "oklch(85.35% 0.012 75)",
1073 | "$oklch": "oklch(0.853516 0.012 75)",
1074 | "$srgbFallback": "#d4cec6",
1075 | "$isP3": false,
1076 | "$link": "https://oklch.com/#85.3515625,0.012,75,100",
1077 | "$contrast": -77.22747122307881,
1078 | "$contrastBg": "black"
1079 | },
1080 | "Olive/300": {
1081 | "$value": "#cecfca",
1082 | "$type": "color",
1083 | "$description": "oklch(85.16% 0.008 120)",
1084 | "$oklch": "oklch(0.851563 0.008 120)",
1085 | "$srgbFallback": "#cdcfc9",
1086 | "$isP3": false,
1087 | "$link": "https://oklch.com/#85.15625,0.008,120,100",
1088 | "$contrast": -77.01378373547809,
1089 | "$contrastBg": "black"
1090 | },
1091 | "Mauve/300": {
1092 | "$value": "#d1cdd1",
1093 | "$type": "color",
1094 | "$description": "oklch(85.35% 0.008 325)",
1095 | "$oklch": "oklch(0.853516 0.008 325)",
1096 | "$srgbFallback": "#d2cdd2",
1097 | "$isP3": false,
1098 | "$link": "https://oklch.com/#85.3515625,0.008,325,100",
1099 | "$contrast": -77.1044355931532,
1100 | "$contrastBg": "black"
1101 | },
1102 | "Red/400": {
1103 | "$value": "#f2a4a2",
1104 | "$type": "color",
1105 | "$description": "oklch(80.08% 0.114 20)",
1106 | "$oklch": "oklch(0.800781 0.114063 20)",
1107 | "$srgbFallback": "#ffa09f",
1108 | "$isP3": true,
1109 | "$link": "https://oklch.com/#80.078125,0.11406250000000002,20,100",
1110 | "$contrast": -65.04009583453124,
1111 | "$contrastBg": "black"
1112 | },
1113 | "Orange/400": {
1114 | "$value": "#efa987",
1115 | "$type": "color",
1116 | "$description": "oklch(79.88% 0.114 43.33)",
1117 | "$oklch": "oklch(0.798828 0.114063 43.3333)",
1118 | "$srgbFallback": "#fba581",
1119 | "$isP3": false,
1120 | "$link": "https://oklch.com/#79.8828125,0.11406250000000002,43.33333333333333,100",
1121 | "$contrast": -65.21726892329842,
1122 | "$contrastBg": "black"
1123 | },
1124 | "Amber/400": {
1125 | "$value": "#e4b073",
1126 | "$type": "color",
1127 | "$description": "oklch(79.49% 0.114 66.67)",
1128 | "$oklch": "oklch(0.794922 0.114063 66.6667)",
1129 | "$srgbFallback": "#eead69",
1130 | "$isP3": false,
1131 | "$link": "https://oklch.com/#79.4921875,0.11406250000000002,66.66666666666666,100",
1132 | "$contrast": -65.30082805452987,
1133 | "$contrastBg": "black"
1134 | },
1135 | "Yellow/400": {
1136 | "$value": "#d1b86c",
1137 | "$type": "color",
1138 | "$description": "oklch(78.91% 0.114 90)",
1139 | "$oklch": "oklch(0.789063 0.114063 90)",
1140 | "$srgbFallback": "#d7b75e",
1141 | "$isP3": false,
1142 | "$link": "https://oklch.com/#78.90625,0.11406250000000002,90,100",
1143 | "$contrast": -65.22035405034259,
1144 | "$contrastBg": "black"
1145 | },
1146 | "Lime/400": {
1147 | "$value": "#c1be6f",
1148 | "$type": "color",
1149 | "$description": "oklch(78.52% 0.114 106.67)",
1150 | "$oklch": "oklch(0.785156 0.114063 106.667)",
1151 | "$srgbFallback": "#c2be63",
1152 | "$isP3": false,
1153 | "$link": "https://oklch.com/#78.515625,0.11406250000000002,106.66666666666667,100",
1154 | "$contrast": -65.26079168195363,
1155 | "$contrastBg": "black"
1156 | },
1157 | "Green/400": {
1158 | "$value": "#afc37a",
1159 | "$type": "color",
1160 | "$description": "oklch(78.13% 0.114 123.33)",
1161 | "$oklch": "oklch(0.78125 0.114063 123.333)",
1162 | "$srgbFallback": "#a9c470",
1163 | "$isP3": false,
1164 | "$link": "https://oklch.com/#78.125,0.11406250000000002,123.33333333333334,100",
1165 | "$contrast": -65.27201406924938,
1166 | "$contrastBg": "black"
1167 | },
1168 | "Emerald/400": {
1169 | "$value": "#9bc789",
1170 | "$type": "color",
1171 | "$description": "oklch(77.73% 0.114 140)",
1172 | "$oklch": "oklch(0.777344 0.114063 140)",
1173 | "$srgbFallback": "#8fc982",
1174 | "$isP3": false,
1175 | "$link": "https://oklch.com/#77.734375,0.11406250000000002,140,100",
1176 | "$contrast": -65.18351328441426,
1177 | "$contrastBg": "black"
1178 | },
1179 | "Teal/400": {
1180 | "$value": "#86caa0",
1181 | "$type": "color",
1182 | "$description": "oklch(77.54% 0.114 160)",
1183 | "$oklch": "oklch(0.775391 0.114063 160)",
1184 | "$srgbFallback": "#6ecc9d",
1185 | "$isP3": false,
1186 | "$link": "https://oklch.com/#77.5390625,0.11406250000000002,160,100",
1187 | "$contrast": -65.33863954694708,
1188 | "$contrastBg": "black"
1189 | },
1190 | "Cyan/400": {
1191 | "$value": "#75cab8",
1192 | "$type": "color",
1193 | "$description": "oklch(77.34% 0.114 180)",
1194 | "$oklch": "oklch(0.773438 0.114063 180)",
1195 | "$srgbFallback": "#51cdb8",
1196 | "$isP3": false,
1197 | "$link": "https://oklch.com/#77.34375,0.11406250000000002,180,100",
1198 | "$contrast": -65.13934215257055,
1199 | "$contrastBg": "black"
1200 | },
1201 | "Sky/400": {
1202 | "$value": "#6fc7dc",
1203 | "$type": "color",
1204 | "$description": "oklch(77.73% 0.114 210)",
1205 | "$oklch": "oklch(0.777344 0.114063 210)",
1206 | "$srgbFallback": "#49cadf",
1207 | "$isP3": false,
1208 | "$link": "https://oklch.com/#77.734375,0.11406250000000002,210,100",
1209 | "$contrast": -65.29937037528907,
1210 | "$contrastBg": "black"
1211 | },
1212 | "Blue/400": {
1213 | "$value": "#83c0f5",
1214 | "$type": "color",
1215 | "$description": "oklch(78.32% 0.114 240)",
1216 | "$oklch": "oklch(0.783203 0.114063 240)",
1217 | "$srgbFallback": "#6fc2fa",
1218 | "$isP3": false,
1219 | "$link": "https://oklch.com/#78.3203125,0.11406250000000002,240,100",
1220 | "$contrast": -65.07163727082647,
1221 | "$contrastBg": "black"
1222 | },
1223 | "Indigo/400": {
1224 | "$value": "#98bafe",
1225 | "$type": "color",
1226 | "$description": "oklch(78.91% 0.114 260)",
1227 | "$oklch": "oklch(0.789063 0.114063 260)",
1228 | "$srgbFallback": "#92bbff",
1229 | "$isP3": true,
1230 | "$link": "https://oklch.com/#78.90625,0.11406250000000002,260,100",
1231 | "$contrast": -65.12375744987915,
1232 | "$contrastBg": "black"
1233 | },
1234 | "Violet/400": {
1235 | "$value": "#afb4fe",
1236 | "$type": "color",
1237 | "$description": "oklch(79.49% 0.114 280)",
1238 | "$oklch": "oklch(0.794922 0.114063 280)",
1239 | "$srgbFallback": "#afb5ff",
1240 | "$isP3": true,
1241 | "$link": "https://oklch.com/#79.4921875,0.11406250000000002,280,100",
1242 | "$contrast": -65.24983571034234,
1243 | "$contrastBg": "black"
1244 | },
1245 | "Purple/400": {
1246 | "$value": "#c4aef7",
1247 | "$type": "color",
1248 | "$description": "oklch(79.88% 0.114 300)",
1249 | "$oklch": "oklch(0.798828 0.114063 300)",
1250 | "$srgbFallback": "#c9acfc",
1251 | "$isP3": false,
1252 | "$link": "https://oklch.com/#79.8828125,0.11406250000000002,300,100",
1253 | "$contrast": -65.21029381694945,
1254 | "$contrastBg": "black"
1255 | },
1256 | "Fuchsia/400": {
1257 | "$value": "#d6a8e7",
1258 | "$type": "color",
1259 | "$description": "oklch(80.08% 0.114 320)",
1260 | "$oklch": "oklch(0.800781 0.114063 320)",
1261 | "$srgbFallback": "#dfa6ec",
1262 | "$isP3": false,
1263 | "$link": "https://oklch.com/#80.078125,0.11406250000000002,320,100",
1264 | "$contrast": -65.06216230026517,
1265 | "$contrastBg": "black"
1266 | },
1267 | "Pink/400": {
1268 | "$value": "#e5a5d3",
1269 | "$type": "color",
1270 | "$description": "oklch(80.27% 0.114 340)",
1271 | "$oklch": "oklch(0.802734 0.114063 340)",
1272 | "$srgbFallback": "#f0a1d6",
1273 | "$isP3": false,
1274 | "$link": "https://oklch.com/#80.2734375,0.11406250000000002,340,100",
1275 | "$contrast": -65.16961663921903,
1276 | "$contrastBg": "black"
1277 | },
1278 | "Rose/400": {
1279 | "$value": "#eea3bb",
1280 | "$type": "color",
1281 | "$description": "oklch(80.27% 0.114 0)",
1282 | "$oklch": "oklch(0.802734 0.114063 0)",
1283 | "$srgbFallback": "#fb9fbb",
1284 | "$isP3": false,
1285 | "$link": "https://oklch.com/#80.2734375,0.11406250000000002,360,100",
1286 | "$contrast": -65.16773905131197,
1287 | "$contrastBg": "black"
1288 | },
1289 | "Slate/400": {
1290 | "$value": "#b6b9c9",
1291 | "$type": "color",
1292 | "$description": "oklch(78.91% 0.024 275)",
1293 | "$oklch": "oklch(0.789063 0.024 275)",
1294 | "$srgbFallback": "#b5b9ca",
1295 | "$isP3": false,
1296 | "$link": "https://oklch.com/#78.90625,0.024,275,100",
1297 | "$contrast": -65.08113407292936,
1298 | "$contrastBg": "black"
1299 | },
1300 | "Gray/400": {
1301 | "$value": "#b7bac4",
1302 | "$type": "color",
1303 | "$description": "oklch(78.91% 0.016 275)",
1304 | "$oklch": "oklch(0.789063 0.016 275)",
1305 | "$srgbFallback": "#b7bac5",
1306 | "$isP3": false,
1307 | "$link": "https://oklch.com/#78.90625,0.016,275,100",
1308 | "$contrast": -65.1225623870676,
1309 | "$contrastBg": "black"
1310 | },
1311 | "Zinc/400": {
1312 | "$value": "#b9babf",
1313 | "$type": "color",
1314 | "$description": "oklch(78.91% 0.008 275)",
1315 | "$oklch": "oklch(0.789063 0.008 275)",
1316 | "$srgbFallback": "#b8babf",
1317 | "$isP3": false,
1318 | "$link": "https://oklch.com/#78.90625,0.008,275,100",
1319 | "$contrast": -65.16121308530278,
1320 | "$contrastBg": "black"
1321 | },
1322 | "Neutral/400": {
1323 | "$value": "#bababa",
1324 | "$type": "color",
1325 | "$description": "oklch(78.91% 0 0)",
1326 | "$oklch": "oklch(0.789063 0 0)",
1327 | "$srgbFallback": "#bababa",
1328 | "$isP3": false,
1329 | "$link": "https://oklch.com/#78.90625,0,0,100",
1330 | "$contrast": -65.19713118037737,
1331 | "$contrastBg": "black"
1332 | },
1333 | "Stone/400": {
1334 | "$value": "#bdbab5",
1335 | "$type": "color",
1336 | "$description": "oklch(78.91% 0.008 75)",
1337 | "$oklch": "oklch(0.789063 0.008 75)",
1338 | "$srgbFallback": "#bdbab5",
1339 | "$isP3": false,
1340 | "$link": "https://oklch.com/#78.90625,0.008,75,100",
1341 | "$contrast": -65.16645239027231,
1342 | "$contrastBg": "black"
1343 | },
1344 | "Sand/400": {
1345 | "$value": "#beb9b3",
1346 | "$type": "color",
1347 | "$description": "oklch(78.91% 0.012 75)",
1348 | "$oklch": "oklch(0.789063 0.012 75)",
1349 | "$srgbFallback": "#bfb9b2",
1350 | "$isP3": false,
1351 | "$link": "https://oklch.com/#78.90625,0.012,75,100",
1352 | "$contrast": -65.15029428089657,
1353 | "$contrastBg": "black"
1354 | },
1355 | "Olive/400": {
1356 | "$value": "#babbb6",
1357 | "$type": "color",
1358 | "$description": "oklch(78.91% 0.008 120)",
1359 | "$oklch": "oklch(0.789063 0.008 120)",
1360 | "$srgbFallback": "#b9bbb5",
1361 | "$isP3": false,
1362 | "$link": "https://oklch.com/#78.90625,0.008,120,100",
1363 | "$contrast": -65.30417957495497,
1364 | "$contrastBg": "black"
1365 | },
1366 | "Mauve/400": {
1367 | "$value": "#bcb9bd",
1368 | "$type": "color",
1369 | "$description": "oklch(78.91% 0.008 325)",
1370 | "$oklch": "oklch(0.789063 0.008 325)",
1371 | "$srgbFallback": "#bdb8bd",
1372 | "$isP3": false,
1373 | "$link": "https://oklch.com/#78.90625,0.008,325,100",
1374 | "$contrast": -65.0357936765851,
1375 | "$contrastBg": "black"
1376 | },
1377 | "Red/500": {
1378 | "$value": "#ec8786",
1379 | "$type": "color",
1380 | "$description": "oklch(74.22% 0.152 20)",
1381 | "$oklch": "oklch(0.742188 0.151562 20)",
1382 | "$srgbFallback": "#fc8083",
1383 | "$isP3": false,
1384 | "$link": "https://oklch.com/#74.21875,0.15156250000000002,20,100",
1385 | "$contrast": -54.2184975085519,
1386 | "$contrastBg": "black"
1387 | },
1388 | "Orange/500": {
1389 | "$value": "#e98d61",
1390 | "$type": "color",
1391 | "$description": "oklch(73.83% 0.152 43.33)",
1392 | "$oklch": "oklch(0.738281 0.151562 43.3333)",
1393 | "$srgbFallback": "#f88756",
1394 | "$isP3": false,
1395 | "$link": "https://oklch.com/#73.828125,0.15156250000000002,43.33333333333333,100",
1396 | "$contrast": -54.1576352896901,
1397 | "$contrastBg": "black"
1398 | },
1399 | "Amber/500": {
1400 | "$value": "#db9640",
1401 | "$type": "color",
1402 | "$description": "oklch(73.24% 0.152 66.67)",
1403 | "$oklch": "oklch(0.732422 0.151562 66.6667)",
1404 | "$srgbFallback": "#e79325",
1405 | "$isP3": false,
1406 | "$link": "https://oklch.com/#73.2421875,0.15156250000000002,66.66666666666666,100",
1407 | "$contrast": -54.07941708078366,
1408 | "$contrastBg": "black"
1409 | },
1410 | "Yellow/500": {
1411 | "$value": "#c5a231",
1412 | "$type": "color",
1413 | "$description": "oklch(72.66% 0.152 90)",
1414 | "$oklch": "oklch(0.726563 0.151562 90)",
1415 | "$srgbFallback": "#cba100",
1416 | "$isP3": true,
1417 | "$link": "https://oklch.com/#72.65625,0.15156250000000002,90,100",
1418 | "$contrast": -54.26034331065021,
1419 | "$contrastBg": "black"
1420 | },
1421 | "Lime/500": {
1422 | "$value": "#b0aa39",
1423 | "$type": "color",
1424 | "$description": "oklch(72.07% 0.152 106.67)",
1425 | "$oklch": "oklch(0.720703 0.151562 106.667)",
1426 | "$srgbFallback": "#b1aa0f",
1427 | "$isP3": false,
1428 | "$link": "https://oklch.com/#72.0703125,0.15156250000000002,106.66666666666667,100",
1429 | "$contrast": -54.18702224731864,
1430 | "$contrastBg": "black"
1431 | },
1432 | "Green/500": {
1433 | "$value": "#97b14c",
1434 | "$type": "color",
1435 | "$description": "oklch(71.48% 0.152 123.33)",
1436 | "$oklch": "oklch(0.714844 0.151562 123.333)",
1437 | "$srgbFallback": "#91b237",
1438 | "$isP3": false,
1439 | "$link": "https://oklch.com/#71.484375,0.15156250000000002,123.33333333333334,100",
1440 | "$contrast": -54.10511709552996,
1441 | "$contrastBg": "black"
1442 | },
1443 | "Emerald/500": {
1444 | "$value": "#7db664",
1445 | "$type": "color",
1446 | "$description": "oklch(71.09% 0.152 140)",
1447 | "$oklch": "oklch(0.710938 0.151562 140)",
1448 | "$srgbFallback": "#6ab859",
1449 | "$isP3": false,
1450 | "$link": "https://oklch.com/#71.09375,0.15156250000000002,140,100",
1451 | "$contrast": -54.26175630374802,
1452 | "$contrastBg": "black"
1453 | },
1454 | "Teal/500": {
1455 | "$value": "#5ab983",
1456 | "$type": "color",
1457 | "$description": "oklch(70.51% 0.152 160)",
1458 | "$oklch": "oklch(0.705078 0.151562 160)",
1459 | "$srgbFallback": "#23bc7f",
1460 | "$isP3": false,
1461 | "$link": "https://oklch.com/#70.5078125,0.15156250000000002,160,100",
1462 | "$contrast": -54.006156170845465,
1463 | "$contrastBg": "black"
1464 | },
1465 | "Cyan/500": {
1466 | "$value": "#39baa4",
1467 | "$type": "color",
1468 | "$description": "oklch(70.51% 0.152 180)",
1469 | "$oklch": "oklch(0.705078 0.151562 180)",
1470 | "$srgbFallback": "#00b9a3",
1471 | "$isP3": true,
1472 | "$link": "https://oklch.com/#70.5078125,0.15156250000000002,180,100",
1473 | "$contrast": -54.31425190552922,
1474 | "$contrastBg": "black"
1475 | },
1476 | "Sky/500": {
1477 | "$value": "#2ab6d1",
1478 | "$type": "color",
1479 | "$description": "oklch(70.9% 0.152 210)",
1480 | "$oklch": "oklch(0.708984 0.151562 210)",
1481 | "$srgbFallback": "#00b5cb",
1482 | "$isP3": true,
1483 | "$link": "https://oklch.com/#70.8984375,0.15156250000000002,210,100",
1484 | "$contrast": -54.30966916751457,
1485 | "$contrastBg": "black"
1486 | },
1487 | "Blue/500": {
1488 | "$value": "#58acf2",
1489 | "$type": "color",
1490 | "$description": "oklch(71.88% 0.152 240)",
1491 | "$oklch": "oklch(0.71875 0.151562 240)",
1492 | "$srgbFallback": "#2caff9",
1493 | "$isP3": false,
1494 | "$link": "https://oklch.com/#71.875,0.15156250000000002,240,100",
1495 | "$contrast": -54.109529813575655,
1496 | "$contrastBg": "black"
1497 | },
1498 | "Indigo/500": {
1499 | "$value": "#79a4fe",
1500 | "$type": "color",
1501 | "$description": "oklch(72.66% 0.152 260)",
1502 | "$oklch": "oklch(0.726563 0.151562 260)",
1503 | "$srgbFallback": "#70a6ff",
1504 | "$isP3": true,
1505 | "$link": "https://oklch.com/#72.65625,0.15156250000000002,260,100",
1506 | "$contrast": -54.07690053482429,
1507 | "$contrastBg": "black"
1508 | },
1509 | "Violet/500": {
1510 | "$value": "#989cff",
1511 | "$type": "color",
1512 | "$description": "oklch(73.44% 0.152 280)",
1513 | "$oklch": "oklch(0.734375 0.151562 280)",
1514 | "$srgbFallback": "#989eff",
1515 | "$isP3": true,
1516 | "$link": "https://oklch.com/#73.4375,0.15156250000000002,280,100",
1517 | "$contrast": -54.21936234477517,
1518 | "$contrastBg": "black"
1519 | },
1520 | "Purple/500": {
1521 | "$value": "#b394f4",
1522 | "$type": "color",
1523 | "$description": "oklch(73.83% 0.152 300)",
1524 | "$oklch": "oklch(0.738281 0.151562 300)",
1525 | "$srgbFallback": "#b992fb",
1526 | "$isP3": false,
1527 | "$link": "https://oklch.com/#73.828125,0.15156250000000002,300,100",
1528 | "$contrast": -54.00665985274049,
1529 | "$contrastBg": "black"
1530 | },
1531 | "Fuchsia/500": {
1532 | "$value": "#ca8de1",
1533 | "$type": "color",
1534 | "$description": "oklch(74.22% 0.152 320)",
1535 | "$oklch": "oklch(0.742188 0.151562 320)",
1536 | "$srgbFallback": "#d58ae6",
1537 | "$isP3": false,
1538 | "$link": "https://oklch.com/#74.21875,0.15156250000000002,320,100",
1539 | "$contrast": -54.1305852436854,
1540 | "$contrastBg": "black"
1541 | },
1542 | "Pink/500": {
1543 | "$value": "#dc88c7",
1544 | "$type": "color",
1545 | "$description": "oklch(74.41% 0.152 340)",
1546 | "$oklch": "oklch(0.744141 0.151562 340)",
1547 | "$srgbFallback": "#ea83ca",
1548 | "$isP3": false,
1549 | "$link": "https://oklch.com/#74.4140625,0.15156250000000002,340,100",
1550 | "$contrast": -54.23631355548495,
1551 | "$contrastBg": "black"
1552 | },
1553 | "Rose/500": {
1554 | "$value": "#e886a7",
1555 | "$type": "color",
1556 | "$description": "oklch(74.41% 0.152 0)",
1557 | "$oklch": "oklch(0.744141 0.151562 0)",
1558 | "$srgbFallback": "#f780a8",
1559 | "$isP3": false,
1560 | "$link": "https://oklch.com/#74.4140625,0.15156250000000002,360,100",
1561 | "$contrast": -54.27682331403544,
1562 | "$contrastBg": "black"
1563 | },
1564 | "Slate/500": {
1565 | "$value": "#a3a6b5",
1566 | "$type": "color",
1567 | "$description": "oklch(72.66% 0.024 275)",
1568 | "$oklch": "oklch(0.726563 0.024 275)",
1569 | "$srgbFallback": "#a2a6b6",
1570 | "$isP3": false,
1571 | "$link": "https://oklch.com/#72.65625,0.024,275,100",
1572 | "$contrast": -54.19783750926077,
1573 | "$contrastBg": "black"
1574 | },
1575 | "Gray/500": {
1576 | "$value": "#a4a6b0",
1577 | "$type": "color",
1578 | "$description": "oklch(72.66% 0.016 275)",
1579 | "$oklch": "oklch(0.726563 0.016 275)",
1580 | "$srgbFallback": "#a3a6b1",
1581 | "$isP3": false,
1582 | "$link": "https://oklch.com/#72.65625,0.016,275,100",
1583 | "$contrast": -54.23662255033739,
1584 | "$contrastBg": "black"
1585 | },
1586 | "Zinc/500": {
1587 | "$value": "#a5a6ab",
1588 | "$type": "color",
1589 | "$description": "oklch(72.66% 0.008 275)",
1590 | "$oklch": "oklch(0.726563 0.008 275)",
1591 | "$srgbFallback": "#a5a6ac",
1592 | "$isP3": false,
1593 | "$link": "https://oklch.com/#72.65625,0.008,275,100",
1594 | "$contrast": -54.27268573473225,
1595 | "$contrastBg": "black"
1596 | },
1597 | "Neutral/500": {
1598 | "$value": "#a6a6a6",
1599 | "$type": "color",
1600 | "$description": "oklch(72.66% 0 0)",
1601 | "$oklch": "oklch(0.726563 0 0)",
1602 | "$srgbFallback": "#a6a6a6",
1603 | "$isP3": false,
1604 | "$link": "https://oklch.com/#72.65625,0,0,100",
1605 | "$contrast": -54.30607569833443,
1606 | "$contrastBg": "black"
1607 | },
1608 | "Stone/500": {
1609 | "$value": "#a9a6a2",
1610 | "$type": "color",
1611 | "$description": "oklch(72.66% 0.008 75)",
1612 | "$oklch": "oklch(0.726563 0.008 75)",
1613 | "$srgbFallback": "#aaa6a1",
1614 | "$isP3": false,
1615 | "$link": "https://oklch.com/#72.65625,0.008,75,100",
1616 | "$contrast": -54.277587527938586,
1617 | "$contrastBg": "black"
1618 | },
1619 | "Sand/500": {
1620 | "$value": "#aaa69f",
1621 | "$type": "color",
1622 | "$description": "oklch(72.66% 0.012 75)",
1623 | "$oklch": "oklch(0.726563 0.012 75)",
1624 | "$srgbFallback": "#aba69f",
1625 | "$isP3": false,
1626 | "$link": "https://oklch.com/#72.65625,0.012,75,100",
1627 | "$contrast": -54.26256623743973,
1628 | "$contrastBg": "black"
1629 | },
1630 | "Olive/500": {
1631 | "$value": "#a5a7a2",
1632 | "$type": "color",
1633 | "$description": "oklch(72.46% 0.008 120)",
1634 | "$oklch": "oklch(0.724609 0.008 120)",
1635 | "$srgbFallback": "#a5a7a1",
1636 | "$isP3": false,
1637 | "$link": "https://oklch.com/#72.4609375,0.008,120,100",
1638 | "$contrast": -54.0777785175337,
1639 | "$contrastBg": "black"
1640 | },
1641 | "Mauve/500": {
1642 | "$value": "#a8a5a9",
1643 | "$type": "color",
1644 | "$description": "oklch(72.66% 0.008 325)",
1645 | "$oklch": "oklch(0.726563 0.008 325)",
1646 | "$srgbFallback": "#a9a5a9",
1647 | "$isP3": false,
1648 | "$link": "https://oklch.com/#72.65625,0.008,325,100",
1649 | "$contrast": -54.156435152633364,
1650 | "$contrastBg": "black"
1651 | },
1652 | "Red/600": {
1653 | "$value": "#c06868",
1654 | "$type": "color",
1655 | "$description": "oklch(62.7% 0.136 20)",
1656 | "$oklch": "oklch(0.626953 0.135937 20)",
1657 | "$srgbFallback": "#cd6265",
1658 | "$isP3": false,
1659 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,20,100",
1660 | "$contrast": 65.02541749577321,
1661 | "$contrastBg": "white"
1662 | },
1663 | "Orange/600": {
1664 | "$value": "#bc6d47",
1665 | "$type": "color",
1666 | "$description": "oklch(62.3% 0.136 43.33)",
1667 | "$oklch": "oklch(0.623047 0.135937 43.3333)",
1668 | "$srgbFallback": "#c9683d",
1669 | "$isP3": false,
1670 | "$link": "https://oklch.com/#62.3046875,0.13593750000000002,43.33333333333333,100",
1671 | "$contrast": 65.14074812344163,
1672 | "$contrastBg": "white"
1673 | },
1674 | "Amber/600": {
1675 | "$value": "#b17629",
1676 | "$type": "color",
1677 | "$description": "oklch(61.91% 0.136 66.67)",
1678 | "$oklch": "oklch(0.619141 0.135937 66.6667)",
1679 | "$srgbFallback": "#bb7305",
1680 | "$isP3": false,
1681 | "$link": "https://oklch.com/#61.9140625,0.13593750000000002,66.66666666666666,100",
1682 | "$contrast": 65.02944917472537,
1683 | "$contrastBg": "white"
1684 | },
1685 | "Yellow/600": {
1686 | "$value": "#9d8018",
1687 | "$type": "color",
1688 | "$description": "oklch(61.13% 0.136 90)",
1689 | "$oklch": "oklch(0.611328 0.135937 90)",
1690 | "$srgbFallback": "#a17f00",
1691 | "$isP3": true,
1692 | "$link": "https://oklch.com/#61.1328125,0.13593750000000002,90,100",
1693 | "$contrast": 65.27236855522645,
1694 | "$contrastBg": "white"
1695 | },
1696 | "Lime/600": {
1697 | "$value": "#8c8721",
1698 | "$type": "color",
1699 | "$description": "oklch(60.74% 0.136 106.67)",
1700 | "$oklch": "oklch(0.607422 0.135937 106.667)",
1701 | "$srgbFallback": "#8c8700",
1702 | "$isP3": true,
1703 | "$link": "https://oklch.com/#60.7421875,0.13593750000000002,106.66666666666667,100",
1704 | "$contrast": 65.15280137330909,
1705 | "$contrastBg": "white"
1706 | },
1707 | "Green/600": {
1708 | "$value": "#778d35",
1709 | "$type": "color",
1710 | "$description": "oklch(60.35% 0.136 123.33)",
1711 | "$oklch": "oklch(0.603516 0.135937 123.333)",
1712 | "$srgbFallback": "#728e1f",
1713 | "$isP3": false,
1714 | "$link": "https://oklch.com/#60.3515625,0.13593750000000002,123.33333333333334,100",
1715 | "$contrast": 65.02881124358933,
1716 | "$contrastBg": "white"
1717 | },
1718 | "Emerald/600": {
1719 | "$value": "#60914a",
1720 | "$type": "color",
1721 | "$description": "oklch(59.77% 0.136 140)",
1722 | "$oklch": "oklch(0.597656 0.135937 140)",
1723 | "$srgbFallback": "#4f9340",
1724 | "$isP3": false,
1725 | "$link": "https://oklch.com/#59.765625,0.13593750000000002,140,100",
1726 | "$contrast": 65.232094204009,
1727 | "$contrastBg": "white"
1728 | },
1729 | "Teal/600": {
1730 | "$value": "#419466",
1731 | "$type": "color",
1732 | "$description": "oklch(59.38% 0.136 160)",
1733 | "$oklch": "oklch(0.59375 0.135937 160)",
1734 | "$srgbFallback": "#009662",
1735 | "$isP3": true,
1736 | "$link": "https://oklch.com/#59.375,0.13593750000000002,160,100",
1737 | "$contrast": 65.19254231703358,
1738 | "$contrastBg": "white"
1739 | },
1740 | "Cyan/600": {
1741 | "$value": "#1e9481",
1742 | "$type": "color",
1743 | "$description": "oklch(59.18% 0.136 180)",
1744 | "$oklch": "oklch(0.591797 0.135937 180)",
1745 | "$srgbFallback": "#009280",
1746 | "$isP3": true,
1747 | "$link": "https://oklch.com/#59.1796875,0.13593750000000002,180,100",
1748 | "$contrast": 65.15085030871639,
1749 | "$contrastBg": "white"
1750 | },
1751 | "Sky/600": {
1752 | "$value": "#0690a8",
1753 | "$type": "color",
1754 | "$description": "oklch(59.57% 0.136 210)",
1755 | "$oklch": "oklch(0.595703 0.135937 210)",
1756 | "$srgbFallback": "#008fa1",
1757 | "$isP3": true,
1758 | "$link": "https://oklch.com/#59.5703125,0.13593750000000002,210,100",
1759 | "$contrast": 65.02224780987805,
1760 | "$contrastBg": "white"
1761 | },
1762 | "Blue/600": {
1763 | "$value": "#3e88c5",
1764 | "$type": "color",
1765 | "$description": "oklch(60.55% 0.136 240)",
1766 | "$oklch": "oklch(0.605469 0.135937 240)",
1767 | "$srgbFallback": "#0c8aca",
1768 | "$isP3": false,
1769 | "$link": "https://oklch.com/#60.546875,0.13593750000000002,240,100",
1770 | "$contrast": 65.20033241396676,
1771 | "$contrastBg": "white"
1772 | },
1773 | "Indigo/600": {
1774 | "$value": "#5d82cf",
1775 | "$type": "color",
1776 | "$description": "oklch(61.33% 0.136 260)",
1777 | "$oklch": "oklch(0.613281 0.135937 260)",
1778 | "$srgbFallback": "#5283d5",
1779 | "$isP3": false,
1780 | "$link": "https://oklch.com/#61.328125,0.13593750000000002,260,100",
1781 | "$contrast": 65.15400358344276,
1782 | "$contrastBg": "white"
1783 | },
1784 | "Violet/600": {
1785 | "$value": "#787acf",
1786 | "$type": "color",
1787 | "$description": "oklch(61.91% 0.136 280)",
1788 | "$oklch": "oklch(0.619141 0.135937 280)",
1789 | "$srgbFallback": "#777ad5",
1790 | "$isP3": false,
1791 | "$link": "https://oklch.com/#61.9140625,0.13593750000000002,280,100",
1792 | "$contrast": 65.22248171615131,
1793 | "$contrastBg": "white"
1794 | },
1795 | "Purple/600": {
1796 | "$value": "#8f74c7",
1797 | "$type": "color",
1798 | "$description": "oklch(62.5% 0.136 300)",
1799 | "$oklch": "oklch(0.625 0.135937 300)",
1800 | "$srgbFallback": "#9572cd",
1801 | "$isP3": false,
1802 | "$link": "https://oklch.com/#62.5,0.13593750000000002,300,100",
1803 | "$contrast": 65.03972699552449,
1804 | "$contrastBg": "white"
1805 | },
1806 | "Fuchsia/600": {
1807 | "$value": "#a36eb6",
1808 | "$type": "color",
1809 | "$description": "oklch(62.7% 0.136 320)",
1810 | "$oklch": "oklch(0.626953 0.135937 320)",
1811 | "$srgbFallback": "#ac6bbb",
1812 | "$isP3": false,
1813 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,320,100",
1814 | "$contrast": 65.14442174816371,
1815 | "$contrastBg": "white"
1816 | },
1817 | "Pink/600": {
1818 | "$value": "#b26aa0",
1819 | "$type": "color",
1820 | "$description": "oklch(62.89% 0.136 340)",
1821 | "$oklch": "oklch(0.628906 0.135937 340)",
1822 | "$srgbFallback": "#be65a2",
1823 | "$isP3": false,
1824 | "$link": "https://oklch.com/#62.890625,0.13593750000000002,340,100",
1825 | "$contrast": 65.00928309039662,
1826 | "$contrastBg": "white"
1827 | },
1828 | "Rose/600": {
1829 | "$value": "#bb6784",
1830 | "$type": "color",
1831 | "$description": "oklch(62.7% 0.136 0)",
1832 | "$oklch": "oklch(0.626953 0.135937 0)",
1833 | "$srgbFallback": "#c86185",
1834 | "$isP3": false,
1835 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,360,100",
1836 | "$contrast": 65.23481942916776,
1837 | "$contrastBg": "white"
1838 | },
1839 | "Slate/600": {
1840 | "$value": "#808392",
1841 | "$type": "color",
1842 | "$description": "oklch(61.33% 0.024 275)",
1843 | "$oklch": "oklch(0.613281 0.024 275)",
1844 | "$srgbFallback": "#808393",
1845 | "$isP3": false,
1846 | "$link": "https://oklch.com/#61.328125,0.024,275,100",
1847 | "$contrast": 65.08985284103788,
1848 | "$contrastBg": "white"
1849 | },
1850 | "Gray/600": {
1851 | "$value": "#82848d",
1852 | "$type": "color",
1853 | "$description": "oklch(61.33% 0.016 275)",
1854 | "$oklch": "oklch(0.613281 0.016 275)",
1855 | "$srgbFallback": "#81848e",
1856 | "$isP3": false,
1857 | "$link": "https://oklch.com/#61.328125,0.016,275,100",
1858 | "$contrast": 65.05626010999148,
1859 | "$contrastBg": "white"
1860 | },
1861 | "Zinc/600": {
1862 | "$value": "#838489",
1863 | "$type": "color",
1864 | "$description": "oklch(61.33% 0.008 275)",
1865 | "$oklch": "oklch(0.613281 0.008 275)",
1866 | "$srgbFallback": "#838489",
1867 | "$isP3": false,
1868 | "$link": "https://oklch.com/#61.328125,0.008,275,100",
1869 | "$contrast": 65.02522172335571,
1870 | "$contrastBg": "white"
1871 | },
1872 | "Neutral/600": {
1873 | "$value": "#838383",
1874 | "$type": "color",
1875 | "$description": "oklch(61.13% 0 0)",
1876 | "$oklch": "oklch(0.611328 0 0)",
1877 | "$srgbFallback": "#838383",
1878 | "$isP3": false,
1879 | "$link": "https://oklch.com/#61.1328125,0,0,100",
1880 | "$contrast": 65.27528381077286,
1881 | "$contrastBg": "white"
1882 | },
1883 | "Stone/600": {
1884 | "$value": "#86847f",
1885 | "$type": "color",
1886 | "$description": "oklch(61.33% 0.008 75)",
1887 | "$oklch": "oklch(0.613281 0.008 75)",
1888 | "$srgbFallback": "#87837f",
1889 | "$isP3": false,
1890 | "$link": "https://oklch.com/#61.328125,0.008,75,100",
1891 | "$contrast": 65.02095166875134,
1892 | "$contrastBg": "white"
1893 | },
1894 | "Sand/600": {
1895 | "$value": "#88837d",
1896 | "$type": "color",
1897 | "$description": "oklch(61.33% 0.012 75)",
1898 | "$oklch": "oklch(0.613281 0.012 75)",
1899 | "$srgbFallback": "#88837c",
1900 | "$isP3": false,
1901 | "$link": "https://oklch.com/#61.328125,0.012,75,100",
1902 | "$contrast": 65.03375230935545,
1903 | "$contrastBg": "white"
1904 | },
1905 | "Olive/600": {
1906 | "$value": "#83847f",
1907 | "$type": "color",
1908 | "$description": "oklch(61.13% 0.008 120)",
1909 | "$oklch": "oklch(0.611328 0.008 120)",
1910 | "$srgbFallback": "#83847f",
1911 | "$isP3": false,
1912 | "$link": "https://oklch.com/#61.1328125,0.008,120,100",
1913 | "$contrast": 65.19101350841233,
1914 | "$contrastBg": "white"
1915 | },
1916 | "Mauve/600": {
1917 | "$value": "#868386",
1918 | "$type": "color",
1919 | "$description": "oklch(61.33% 0.008 325)",
1920 | "$oklch": "oklch(0.613281 0.008 325)",
1921 | "$srgbFallback": "#878387",
1922 | "$isP3": false,
1923 | "$link": "https://oklch.com/#61.328125,0.008,325,100",
1924 | "$contrast": 65.1240140377318,
1925 | "$contrastBg": "white"
1926 | },
1927 | "Red/700": {
1928 | "$value": "#9b5353",
1929 | "$type": "color",
1930 | "$description": "oklch(53.52% 0.116 20)",
1931 | "$oklch": "oklch(0.535156 0.115625 20)",
1932 | "$srgbFallback": "#a64e51",
1933 | "$isP3": false,
1934 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,20,100",
1935 | "$contrast": 77.04773855355846,
1936 | "$contrastBg": "white"
1937 | },
1938 | "Orange/700": {
1939 | "$value": "#985738",
1940 | "$type": "color",
1941 | "$description": "oklch(53.13% 0.116 43.33)",
1942 | "$oklch": "oklch(0.53125 0.115625 43.3333)",
1943 | "$srgbFallback": "#a25330",
1944 | "$isP3": false,
1945 | "$link": "https://oklch.com/#53.125,0.11562500000000003,43.33333333333333,100",
1946 | "$contrast": 77.21006943591257,
1947 | "$contrastBg": "white"
1948 | },
1949 | "Amber/700": {
1950 | "$value": "#8e5e1f",
1951 | "$type": "color",
1952 | "$description": "oklch(52.73% 0.116 66.67)",
1953 | "$oklch": "oklch(0.527344 0.115625 66.6667)",
1954 | "$srgbFallback": "#975b03",
1955 | "$isP3": false,
1956 | "$link": "https://oklch.com/#52.734375,0.11562500000000003,66.66666666666666,100",
1957 | "$contrast": 77.21132087691367,
1958 | "$contrastBg": "white"
1959 | },
1960 | "Yellow/700": {
1961 | "$value": "#7f6712",
1962 | "$type": "color",
1963 | "$description": "oklch(52.34% 0.116 90)",
1964 | "$oklch": "oklch(0.523438 0.115625 90)",
1965 | "$srgbFallback": "#826600",
1966 | "$isP3": true,
1967 | "$link": "https://oklch.com/#52.34375,0.11562500000000003,90,100",
1968 | "$contrast": 77.0646286738736,
1969 | "$contrastBg": "white"
1970 | },
1971 | "Lime/700": {
1972 | "$value": "#706c1a",
1973 | "$type": "color",
1974 | "$description": "oklch(51.95% 0.116 106.67)",
1975 | "$oklch": "oklch(0.519531 0.115625 106.667)",
1976 | "$srgbFallback": "#716c00",
1977 | "$isP3": true,
1978 | "$link": "https://oklch.com/#51.953125,0.11562500000000003,106.66666666666667,100",
1979 | "$contrast": 77.05774789637464,
1980 | "$contrastBg": "white"
1981 | },
1982 | "Green/700": {
1983 | "$value": "#607129",
1984 | "$type": "color",
1985 | "$description": "oklch(51.56% 0.116 123.33)",
1986 | "$oklch": "oklch(0.515625 0.115625 123.333)",
1987 | "$srgbFallback": "#5b7218",
1988 | "$isP3": false,
1989 | "$link": "https://oklch.com/#51.5625,0.11562500000000003,123.33333333333334,100",
1990 | "$contrast": 77.04215769550812,
1991 | "$contrastBg": "white"
1992 | },
1993 | "Emerald/700": {
1994 | "$value": "#4c753b",
1995 | "$type": "color",
1996 | "$description": "oklch(51.17% 0.116 140)",
1997 | "$oklch": "oklch(0.511719 0.115625 140)",
1998 | "$srgbFallback": "#3f7633",
1999 | "$isP3": false,
2000 | "$link": "https://oklch.com/#51.171875,0.11562500000000003,140,100",
2001 | "$contrast": 77.05369961104338,
2002 | "$contrastBg": "white"
2003 | },
2004 | "Teal/700": {
2005 | "$value": "#337751",
2006 | "$type": "color",
2007 | "$description": "oklch(50.78% 0.116 160)",
2008 | "$oklch": "oklch(0.507813 0.115625 160)",
2009 | "$srgbFallback": "#00794e",
2010 | "$isP3": true,
2011 | "$link": "https://oklch.com/#50.78125,0.11562500000000003,160,100",
2012 | "$contrast": 77.07679014938955,
2013 | "$contrastBg": "white"
2014 | },
2015 | "Cyan/700": {
2016 | "$value": "#177768",
2017 | "$type": "color",
2018 | "$description": "oklch(50.59% 0.116 180)",
2019 | "$oklch": "oklch(0.505859 0.115625 180)",
2020 | "$srgbFallback": "#007667",
2021 | "$isP3": true,
2022 | "$link": "https://oklch.com/#50.5859375,0.11562500000000003,180,100",
2023 | "$contrast": 77.04928461136255,
2024 | "$contrastBg": "white"
2025 | },
2026 | "Sky/700": {
2027 | "$value": "#057487",
2028 | "$type": "color",
2029 | "$description": "oklch(50.78% 0.116 210)",
2030 | "$oklch": "oklch(0.507813 0.115625 210)",
2031 | "$srgbFallback": "#007381",
2032 | "$isP3": true,
2033 | "$link": "https://oklch.com/#50.78125,0.11562500000000003,210,100",
2034 | "$contrast": 77.09901900278953,
2035 | "$contrastBg": "white"
2036 | },
2037 | "Blue/700": {
2038 | "$value": "#316e9f",
2039 | "$type": "color",
2040 | "$description": "oklch(51.76% 0.116 240)",
2041 | "$oklch": "oklch(0.517578 0.115625 240)",
2042 | "$srgbFallback": "#0a6fa3",
2043 | "$isP3": false,
2044 | "$link": "https://oklch.com/#51.7578125,0.11562500000000003,240,100",
2045 | "$contrast": 77.09812137325717,
2046 | "$contrastBg": "white"
2047 | },
2048 | "Indigo/700": {
2049 | "$value": "#4a68a7",
2050 | "$type": "color",
2051 | "$description": "oklch(52.34% 0.116 260)",
2052 | "$oklch": "oklch(0.523438 0.115625 260)",
2053 | "$srgbFallback": "#4169ac",
2054 | "$isP3": false,
2055 | "$link": "https://oklch.com/#52.34375,0.11562500000000003,260,100",
2056 | "$contrast": 77.18284170343075,
2057 | "$contrastBg": "white"
2058 | },
2059 | "Violet/700": {
2060 | "$value": "#6062a8",
2061 | "$type": "color",
2062 | "$description": "oklch(52.93% 0.116 280)",
2063 | "$oklch": "oklch(0.529297 0.115625 280)",
2064 | "$srgbFallback": "#5f62ad",
2065 | "$isP3": false,
2066 | "$link": "https://oklch.com/#52.9296875,0.11562500000000003,280,100",
2067 | "$contrast": 77.13368854942568,
2068 | "$contrastBg": "white"
2069 | },
2070 | "Purple/700": {
2071 | "$value": "#735da1",
2072 | "$type": "color",
2073 | "$description": "oklch(53.32% 0.116 300)",
2074 | "$oklch": "oklch(0.533203 0.115625 300)",
2075 | "$srgbFallback": "#775ba5",
2076 | "$isP3": false,
2077 | "$link": "https://oklch.com/#53.3203125,0.11562500000000003,300,100",
2078 | "$contrast": 77.1329204497605,
2079 | "$contrastBg": "white"
2080 | },
2081 | "Fuchsia/700": {
2082 | "$value": "#835893",
2083 | "$type": "color",
2084 | "$description": "oklch(53.52% 0.116 320)",
2085 | "$oklch": "oklch(0.535156 0.115625 320)",
2086 | "$srgbFallback": "#8a5597",
2087 | "$isP3": false,
2088 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,320,100",
2089 | "$contrast": 77.16789703610303,
2090 | "$contrastBg": "white"
2091 | },
2092 | "Pink/700": {
2093 | "$value": "#8f5480",
2094 | "$type": "color",
2095 | "$description": "oklch(53.71% 0.116 340)",
2096 | "$oklch": "oklch(0.537109 0.115625 340)",
2097 | "$srgbFallback": "#995183",
2098 | "$isP3": false,
2099 | "$link": "https://oklch.com/#53.7109375,0.11562500000000003,340,100",
2100 | "$contrast": 77.01787127982264,
2101 | "$contrastBg": "white"
2102 | },
2103 | "Rose/700": {
2104 | "$value": "#97526a",
2105 | "$type": "color",
2106 | "$description": "oklch(53.52% 0.116 0)",
2107 | "$oklch": "oklch(0.535156 0.115625 0)",
2108 | "$srgbFallback": "#a24d6a",
2109 | "$isP3": false,
2110 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,360,100",
2111 | "$contrast": 77.21222702696048,
2112 | "$contrastBg": "white"
2113 | },
2114 | "Slate/700": {
2115 | "$value": "#666977",
2116 | "$type": "color",
2117 | "$description": "oklch(52.34% 0.024 275)",
2118 | "$oklch": "oklch(0.523438 0.024 275)",
2119 | "$srgbFallback": "#666978",
2120 | "$isP3": false,
2121 | "$link": "https://oklch.com/#52.34375,0.024,275,100",
2122 | "$contrast": 77.18626660468453,
2123 | "$contrastBg": "white"
2124 | },
2125 | "Gray/700": {
2126 | "$value": "#676973",
2127 | "$type": "color",
2128 | "$description": "oklch(52.34% 0.016 275)",
2129 | "$oklch": "oklch(0.523438 0.016 275)",
2130 | "$srgbFallback": "#676973",
2131 | "$isP3": false,
2132 | "$link": "https://oklch.com/#52.34375,0.016,275,100",
2133 | "$contrast": 77.15617633357041,
2134 | "$contrastBg": "white"
2135 | },
2136 | "Zinc/700": {
2137 | "$value": "#696a6e",
2138 | "$type": "color",
2139 | "$description": "oklch(52.34% 0.008 275)",
2140 | "$oklch": "oklch(0.523438 0.008 275)",
2141 | "$srgbFallback": "#686a6f",
2142 | "$isP3": false,
2143 | "$link": "https://oklch.com/#52.34375,0.008,275,100",
2144 | "$contrast": 77.12849225247562,
2145 | "$contrastBg": "white"
2146 | },
2147 | "Neutral/700": {
2148 | "$value": "#6a6a6a",
2149 | "$type": "color",
2150 | "$description": "oklch(52.34% 0 0)",
2151 | "$oklch": "oklch(0.523438 0 0)",
2152 | "$srgbFallback": "#6a6a6a",
2153 | "$isP3": false,
2154 | "$link": "https://oklch.com/#52.34375,0,0,100",
2155 | "$contrast": 77.10314931184337,
2156 | "$contrastBg": "white"
2157 | },
2158 | "Stone/700": {
2159 | "$value": "#6c6965",
2160 | "$type": "color",
2161 | "$description": "oklch(52.34% 0.008 75)",
2162 | "$oklch": "oklch(0.523438 0.008 75)",
2163 | "$srgbFallback": "#6d6965",
2164 | "$isP3": false,
2165 | "$link": "https://oklch.com/#52.34375,0.008,75,100",
2166 | "$contrast": 77.12459433866206,
2167 | "$contrastBg": "white"
2168 | },
2169 | "Sand/700": {
2170 | "$value": "#6d6963",
2171 | "$type": "color",
2172 | "$description": "oklch(52.34% 0.012 75)",
2173 | "$oklch": "oklch(0.523438 0.012 75)",
2174 | "$srgbFallback": "#6e6962",
2175 | "$isP3": false,
2176 | "$link": "https://oklch.com/#52.34375,0.012,75,100",
2177 | "$contrast": 77.13585931689889,
2178 | "$contrastBg": "white"
2179 | },
2180 | "Olive/700": {
2181 | "$value": "#696b66",
2182 | "$type": "color",
2183 | "$description": "oklch(52.34% 0.008 120)",
2184 | "$oklch": "oklch(0.523438 0.008 120)",
2185 | "$srgbFallback": "#696b66",
2186 | "$isP3": false,
2187 | "$link": "https://oklch.com/#52.34375,0.008,120,100",
2188 | "$contrast": 77.02833478961473,
2189 | "$contrastBg": "white"
2190 | },
2191 | "Mauve/700": {
2192 | "$value": "#6c686c",
2193 | "$type": "color",
2194 | "$description": "oklch(52.34% 0.008 325)",
2195 | "$oklch": "oklch(0.523438 0.008 325)",
2196 | "$srgbFallback": "#6c686c",
2197 | "$isP3": false,
2198 | "$link": "https://oklch.com/#52.34375,0.008,325,100",
2199 | "$contrast": 77.21578814231933,
2200 | "$contrastBg": "white"
2201 | },
2202 | "Red/800": {
2203 | "$value": "#6f3a3a",
2204 | "$type": "color",
2205 | "$description": "oklch(41.99% 0.091 20)",
2206 | "$oklch": "oklch(0.419922 0.090625 20)",
2207 | "$srgbFallback": "#773638",
2208 | "$isP3": false,
2209 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,20,100",
2210 | "$contrast": 90.02099633850419,
2211 | "$contrastBg": "white"
2212 | },
2213 | "Orange/800": {
2214 | "$value": "#6d3d26",
2215 | "$type": "color",
2216 | "$description": "oklch(41.8% 0.091 43.33)",
2217 | "$oklch": "oklch(0.417969 0.090625 43.3333)",
2218 | "$srgbFallback": "#743a20",
2219 | "$isP3": false,
2220 | "$link": "https://oklch.com/#41.796875,0.09062500000000001,43.33333333333333,100",
2221 | "$contrast": 90.01539163518822,
2222 | "$contrastBg": "white"
2223 | },
2224 | "Amber/800": {
2225 | "$value": "#664214",
2226 | "$type": "color",
2227 | "$description": "oklch(41.41% 0.091 66.67)",
2228 | "$oklch": "oklch(0.414063 0.090625 66.6667)",
2229 | "$srgbFallback": "#6c4002",
2230 | "$isP3": false,
2231 | "$link": "https://oklch.com/#41.40625,0.09062500000000001,66.66666666666666,100",
2232 | "$contrast": 90.11978638444505,
2233 | "$contrastBg": "white"
2234 | },
2235 | "Yellow/800": {
2236 | "$value": "#5a480a",
2237 | "$type": "color",
2238 | "$description": "oklch(41.02% 0.091 90)",
2239 | "$oklch": "oklch(0.410156 0.090625 90)",
2240 | "$srgbFallback": "#5c4800",
2241 | "$isP3": true,
2242 | "$link": "https://oklch.com/#41.015625,0.09062500000000001,90,100",
2243 | "$contrast": 90.13326119580633,
2244 | "$contrastBg": "white"
2245 | },
2246 | "Lime/800": {
2247 | "$value": "#504d10",
2248 | "$type": "color",
2249 | "$description": "oklch(40.82% 0.091 106.67)",
2250 | "$oklch": "oklch(0.408203 0.090625 106.667)",
2251 | "$srgbFallback": "#504c00",
2252 | "$isP3": true,
2253 | "$link": "https://oklch.com/#40.8203125,0.09062500000000001,106.66666666666667,100",
2254 | "$contrast": 90.02733606191362,
2255 | "$contrastBg": "white"
2256 | },
2257 | "Green/800": {
2258 | "$value": "#43501b",
2259 | "$type": "color",
2260 | "$description": "oklch(40.43% 0.091 123.33)",
2261 | "$oklch": "oklch(0.404297 0.090625 123.333)",
2262 | "$srgbFallback": "#3f500e",
2263 | "$isP3": false,
2264 | "$link": "https://oklch.com/#40.4296875,0.09062500000000001,123.33333333333334,100",
2265 | "$contrast": 90.11094835425607,
2266 | "$contrastBg": "white"
2267 | },
2268 | "Emerald/800": {
2269 | "$value": "#355228",
2270 | "$type": "color",
2271 | "$description": "oklch(40.04% 0.091 140)",
2272 | "$oklch": "oklch(0.400391 0.090625 140)",
2273 | "$srgbFallback": "#2b5321",
2274 | "$isP3": false,
2275 | "$link": "https://oklch.com/#40.0390625,0.09062500000000001,140,100",
2276 | "$contrast": 90.19791377005234,
2277 | "$contrastBg": "white"
2278 | },
2279 | "Teal/800": {
2280 | "$value": "#225438",
2281 | "$type": "color",
2282 | "$description": "oklch(39.84% 0.091 160)",
2283 | "$oklch": "oklch(0.398438 0.090625 160)",
2284 | "$srgbFallback": "#005636",
2285 | "$isP3": true,
2286 | "$link": "https://oklch.com/#39.84375,0.09062500000000001,160,100",
2287 | "$contrast": 90.06740626413267,
2288 | "$contrastBg": "white"
2289 | },
2290 | "Cyan/800": {
2291 | "$value": "#0d5449",
2292 | "$type": "color",
2293 | "$description": "oklch(39.65% 0.091 180)",
2294 | "$oklch": "oklch(0.396484 0.090625 180)",
2295 | "$srgbFallback": "#005348",
2296 | "$isP3": true,
2297 | "$link": "https://oklch.com/#39.6484375,0.09062500000000001,180,100",
2298 | "$contrast": 90.04440042281617,
2299 | "$contrastBg": "white"
2300 | },
2301 | "Sky/800": {
2302 | "$value": "#035260",
2303 | "$type": "color",
2304 | "$description": "oklch(39.84% 0.091 210)",
2305 | "$oklch": "oklch(0.398438 0.090625 210)",
2306 | "$srgbFallback": "#00515c",
2307 | "$isP3": true,
2308 | "$link": "https://oklch.com/#39.84375,0.09062500000000001,210,100",
2309 | "$contrast": 90.00520699220517,
2310 | "$contrastBg": "white"
2311 | },
2312 | "Blue/800": {
2313 | "$value": "#214d72",
2314 | "$type": "color",
2315 | "$description": "oklch(40.63% 0.091 240)",
2316 | "$oklch": "oklch(0.40625 0.090625 240)",
2317 | "$srgbFallback": "#054f75",
2318 | "$isP3": false,
2319 | "$link": "https://oklch.com/#40.625,0.09062500000000001,240,100",
2320 | "$contrast": 90.05249779473152,
2321 | "$contrastBg": "white"
2322 | },
2323 | "Indigo/800": {
2324 | "$value": "#334978",
2325 | "$type": "color",
2326 | "$description": "oklch(41.21% 0.091 260)",
2327 | "$oklch": "oklch(0.412109 0.090625 260)",
2328 | "$srgbFallback": "#2c4a7c",
2329 | "$isP3": false,
2330 | "$link": "https://oklch.com/#41.2109375,0.09062500000000001,260,100",
2331 | "$contrast": 90.00437155447304,
2332 | "$contrastBg": "white"
2333 | },
2334 | "Violet/800": {
2335 | "$value": "#434578",
2336 | "$type": "color",
2337 | "$description": "oklch(41.6% 0.091 280)",
2338 | "$oklch": "oklch(0.416016 0.090625 280)",
2339 | "$srgbFallback": "#43457c",
2340 | "$isP3": false,
2341 | "$link": "https://oklch.com/#41.6015625,0.09062500000000001,280,100",
2342 | "$contrast": 90.05765471467869,
2343 | "$contrastBg": "white"
2344 | },
2345 | "Purple/800": {
2346 | "$value": "#514173",
2347 | "$type": "color",
2348 | "$description": "oklch(41.8% 0.091 300)",
2349 | "$oklch": "oklch(0.417969 0.090625 300)",
2350 | "$srgbFallback": "#544076",
2351 | "$isP3": false,
2352 | "$link": "https://oklch.com/#41.796875,0.09062500000000001,300,100",
2353 | "$contrast": 90.17326016210497,
2354 | "$contrastBg": "white"
2355 | },
2356 | "Fuchsia/800": {
2357 | "$value": "#5d3d69",
2358 | "$type": "color",
2359 | "$description": "oklch(41.99% 0.091 320)",
2360 | "$oklch": "oklch(0.419922 0.090625 320)",
2361 | "$srgbFallback": "#633b6c",
2362 | "$isP3": false,
2363 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,320,100",
2364 | "$contrast": 90.14160422080258,
2365 | "$contrastBg": "white"
2366 | },
2367 | "Pink/800": {
2368 | "$value": "#663a5b",
2369 | "$type": "color",
2370 | "$description": "oklch(41.99% 0.091 340)",
2371 | "$oklch": "oklch(0.419922 0.090625 340)",
2372 | "$srgbFallback": "#6d375c",
2373 | "$isP3": false,
2374 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,340,100",
2375 | "$contrast": 90.18627424549935,
2376 | "$contrastBg": "white"
2377 | },
2378 | "Rose/800": {
2379 | "$value": "#6c394b",
2380 | "$type": "color",
2381 | "$description": "oklch(41.99% 0.091 0)",
2382 | "$oklch": "oklch(0.419922 0.090625 0)",
2383 | "$srgbFallback": "#74364b",
2384 | "$isP3": false,
2385 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,360,100",
2386 | "$contrast": 90.13669052813903,
2387 | "$contrastBg": "white"
2388 | },
2389 | "Slate/800": {
2390 | "$value": "#474a57",
2391 | "$type": "color",
2392 | "$description": "oklch(41.21% 0.024 275)",
2393 | "$oklch": "oklch(0.412109 0.024 275)",
2394 | "$srgbFallback": "#474a58",
2395 | "$isP3": false,
2396 | "$link": "https://oklch.com/#41.2109375,0.024,275,100",
2397 | "$contrast": 90.07305491246812,
2398 | "$contrastBg": "white"
2399 | },
2400 | "Gray/800": {
2401 | "$value": "#494a53",
2402 | "$type": "color",
2403 | "$description": "oklch(41.21% 0.016 275)",
2404 | "$oklch": "oklch(0.412109 0.016 275)",
2405 | "$srgbFallback": "#484a54",
2406 | "$isP3": false,
2407 | "$link": "https://oklch.com/#41.2109375,0.016,275,100",
2408 | "$contrast": 90.04817219622552,
2409 | "$contrastBg": "white"
2410 | },
2411 | "Zinc/800": {
2412 | "$value": "#4a4b4f",
2413 | "$type": "color",
2414 | "$description": "oklch(41.21% 0.008 275)",
2415 | "$oklch": "oklch(0.412109 0.008 275)",
2416 | "$srgbFallback": "#494b4f",
2417 | "$isP3": false,
2418 | "$link": "https://oklch.com/#41.2109375,0.008,275,100",
2419 | "$contrast": 90.02527270025931,
2420 | "$contrastBg": "white"
2421 | },
2422 | "Neutral/800": {
2423 | "$value": "#4b4b4b",
2424 | "$type": "color",
2425 | "$description": "oklch(41.21% 0 0)",
2426 | "$oklch": "oklch(0.412109 0 0)",
2427 | "$srgbFallback": "#4b4b4b",
2428 | "$isP3": false,
2429 | "$link": "https://oklch.com/#41.2109375,0,0,100",
2430 | "$contrast": 90.004281784859,
2431 | "$contrastBg": "white"
2432 | },
2433 | "Stone/800": {
2434 | "$value": "#4d4a47",
2435 | "$type": "color",
2436 | "$description": "oklch(41.21% 0.008 75)",
2437 | "$oklch": "oklch(0.412109 0.008 75)",
2438 | "$srgbFallback": "#4e4a46",
2439 | "$isP3": false,
2440 | "$link": "https://oklch.com/#41.2109375,0.008,75,100",
2441 | "$contrast": 90.02180721219936,
2442 | "$contrastBg": "white"
2443 | },
2444 | "Sand/800": {
2445 | "$value": "#4e4a45",
2446 | "$type": "color",
2447 | "$description": "oklch(41.21% 0.012 75)",
2448 | "$oklch": "oklch(0.412109 0.012 75)",
2449 | "$srgbFallback": "#4f4a44",
2450 | "$isP3": false,
2451 | "$link": "https://oklch.com/#41.2109375,0.012,75,100",
2452 | "$contrast": 90.03081617076842,
2453 | "$contrastBg": "white"
2454 | },
2455 | "Olive/800": {
2456 | "$value": "#4a4b47",
2457 | "$type": "color",
2458 | "$description": "oklch(41.02% 0.008 120)",
2459 | "$oklch": "oklch(0.410156 0.008 120)",
2460 | "$srgbFallback": "#4a4b46",
2461 | "$isP3": false,
2462 | "$link": "https://oklch.com/#41.015625,0.008,120,100",
2463 | "$contrast": 90.14695719141864,
2464 | "$contrastBg": "white"
2465 | },
2466 | "Mauve/800": {
2467 | "$value": "#4d4a4d",
2468 | "$type": "color",
2469 | "$description": "oklch(41.21% 0.008 325)",
2470 | "$oklch": "oklch(0.412109 0.008 325)",
2471 | "$srgbFallback": "#4d494d",
2472 | "$isP3": false,
2473 | "$link": "https://oklch.com/#41.2109375,0.008,325,100",
2474 | "$contrast": 90.09729085509426,
2475 | "$contrastBg": "white"
2476 | },
2477 | "Red/900": {
2478 | "$value": "#462322",
2479 | "$type": "color",
2480 | "$description": "oklch(30.66% 0.066 20)",
2481 | "$oklch": "oklch(0.306641 0.065625 20)",
2482 | "$srgbFallback": "#4b2021",
2483 | "$isP3": false,
2484 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,20,100",
2485 | "$contrast": 100.03748420729414,
2486 | "$contrastBg": "white"
2487 | },
2488 | "Orange/900": {
2489 | "$value": "#452515",
2490 | "$type": "color",
2491 | "$description": "oklch(30.47% 0.066 43.33)",
2492 | "$oklch": "oklch(0.304688 0.065625 43.3333)",
2493 | "$srgbFallback": "#4a2211",
2494 | "$isP3": false,
2495 | "$link": "https://oklch.com/#30.46875,0.06562500000000002,43.33333333333333,100",
2496 | "$contrast": 100.07379779667198,
2497 | "$contrastBg": "white"
2498 | },
2499 | "Amber/900": {
2500 | "$value": "#402809",
2501 | "$type": "color",
2502 | "$description": "oklch(30.27% 0.066 66.67)",
2503 | "$oklch": "oklch(0.302734 0.065625 66.6667)",
2504 | "$srgbFallback": "#442701",
2505 | "$isP3": false,
2506 | "$link": "https://oklch.com/#30.2734375,0.06562500000000002,66.66666666666666,100",
2507 | "$contrast": 100.08102313561416,
2508 | "$contrastBg": "white"
2509 | },
2510 | "Yellow/900": {
2511 | "$value": "#382c05",
2512 | "$type": "color",
2513 | "$description": "oklch(30.08% 0.066 90)",
2514 | "$oklch": "oklch(0.300781 0.065625 90)",
2515 | "$srgbFallback": "#3a2c00",
2516 | "$isP3": true,
2517 | "$link": "https://oklch.com/#30.078125,0.06562500000000002,90,100",
2518 | "$contrast": 100.04982363521971,
2519 | "$contrastBg": "white"
2520 | },
2521 | "Lime/900": {
2522 | "$value": "#312f07",
2523 | "$type": "color",
2524 | "$description": "oklch(29.88% 0.066 106.67)",
2525 | "$oklch": "oklch(0.298828 0.065625 106.667)",
2526 | "$srgbFallback": "#322f00",
2527 | "$isP3": true,
2528 | "$link": "https://oklch.com/#29.8828125,0.06562500000000002,106.66666666666667,100",
2529 | "$contrast": 100.04914088511292,
2530 | "$contrastBg": "white"
2531 | },
2532 | "Green/900": {
2533 | "$value": "#29320e",
2534 | "$type": "color",
2535 | "$description": "oklch(29.69% 0.066 123.33)",
2536 | "$oklch": "oklch(0.296875 0.065625 123.333)",
2537 | "$srgbFallback": "#273207",
2538 | "$isP3": false,
2539 | "$link": "https://oklch.com/#29.6875,0.06562500000000002,123.33333333333334,100",
2540 | "$contrast": 100.034083953633,
2541 | "$contrastBg": "white"
2542 | },
2543 | "Emerald/900": {
2544 | "$value": "#203417",
2545 | "$type": "color",
2546 | "$description": "oklch(29.49% 0.066 140)",
2547 | "$oklch": "oklch(0.294922 0.065625 140)",
2548 | "$srgbFallback": "#193413",
2549 | "$isP3": false,
2550 | "$link": "https://oklch.com/#29.4921875,0.06562500000000002,140,100",
2551 | "$contrast": 100.00819220640568,
2552 | "$contrastBg": "white"
2553 | },
2554 | "Teal/900": {
2555 | "$value": "#133422",
2556 | "$type": "color",
2557 | "$description": "oklch(29.1% 0.066 160)",
2558 | "$oklch": "oklch(0.291016 0.065625 160)",
2559 | "$srgbFallback": "#003520",
2560 | "$isP3": false,
2561 | "$link": "https://oklch.com/#29.1015625,0.06562500000000002,160,100",
2562 | "$contrast": 100.08563979712466,
2563 | "$contrastBg": "white"
2564 | },
2565 | "Cyan/900": {
2566 | "$value": "#06342c",
2567 | "$type": "color",
2568 | "$description": "oklch(28.91% 0.066 180)",
2569 | "$oklch": "oklch(0.289063 0.065625 180)",
2570 | "$srgbFallback": "#00332c",
2571 | "$isP3": true,
2572 | "$link": "https://oklch.com/#28.90625,0.06562500000000002,180,100",
2573 | "$contrast": 100.0673506706254,
2574 | "$contrastBg": "white"
2575 | },
2576 | "Sky/900": {
2577 | "$value": "#02333c",
2578 | "$type": "color",
2579 | "$description": "oklch(29.1% 0.066 210)",
2580 | "$oklch": "oklch(0.291016 0.065625 210)",
2581 | "$srgbFallback": "#003239",
2582 | "$isP3": true,
2583 | "$link": "https://oklch.com/#29.1015625,0.06562500000000002,210,100",
2584 | "$contrast": 100.00216958419865,
2585 | "$contrastBg": "white"
2586 | },
2587 | "Blue/900": {
2588 | "$value": "#123048",
2589 | "$type": "color",
2590 | "$description": "oklch(29.69% 0.066 240)",
2591 | "$oklch": "oklch(0.296875 0.065625 240)",
2592 | "$srgbFallback": "#03314a",
2593 | "$isP3": false,
2594 | "$link": "https://oklch.com/#29.6875,0.06562500000000002,240,100",
2595 | "$contrast": 100.05343873750738,
2596 | "$contrastBg": "white"
2597 | },
2598 | "Indigo/900": {
2599 | "$value": "#1e2d4c",
2600 | "$type": "color",
2601 | "$description": "oklch(30.08% 0.066 260)",
2602 | "$oklch": "oklch(0.300781 0.065625 260)",
2603 | "$srgbFallback": "#1a2e4f",
2604 | "$isP3": false,
2605 | "$link": "https://oklch.com/#30.078125,0.06562500000000002,260,100",
2606 | "$contrast": 100.07986167662324,
2607 | "$contrastBg": "white"
2608 | },
2609 | "Violet/900": {
2610 | "$value": "#292a4d",
2611 | "$type": "color",
2612 | "$description": "oklch(30.47% 0.066 280)",
2613 | "$oklch": "oklch(0.304688 0.065625 280)",
2614 | "$srgbFallback": "#292a4f",
2615 | "$isP3": false,
2616 | "$link": "https://oklch.com/#30.46875,0.06562500000000002,280,100",
2617 | "$contrast": 100.0457111708373,
2618 | "$contrastBg": "white"
2619 | },
2620 | "Purple/900": {
2621 | "$value": "#332749",
2622 | "$type": "color",
2623 | "$description": "oklch(30.66% 0.066 300)",
2624 | "$oklch": "oklch(0.306641 0.065625 300)",
2625 | "$srgbFallback": "#35274b",
2626 | "$isP3": false,
2627 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,300,100",
2628 | "$contrast": 100.06388369377855,
2629 | "$contrastBg": "white"
2630 | },
2631 | "Fuchsia/900": {
2632 | "$value": "#3b2543",
2633 | "$type": "color",
2634 | "$description": "oklch(30.86% 0.066 320)",
2635 | "$oklch": "oklch(0.308594 0.065625 320)",
2636 | "$srgbFallback": "#3e2444",
2637 | "$isP3": false,
2638 | "$link": "https://oklch.com/#30.859375,0.06562500000000002,320,100",
2639 | "$contrast": 100.00470003356303,
2640 | "$contrastBg": "white"
2641 | },
2642 | "Pink/900": {
2643 | "$value": "#412339",
2644 | "$type": "color",
2645 | "$description": "oklch(30.86% 0.066 340)",
2646 | "$oklch": "oklch(0.308594 0.065625 340)",
2647 | "$srgbFallback": "#45223a",
2648 | "$isP3": false,
2649 | "$link": "https://oklch.com/#30.859375,0.06562500000000002,340,100",
2650 | "$contrast": 100.01038830080356,
2651 | "$contrastBg": "white"
2652 | },
2653 | "Rose/900": {
2654 | "$value": "#44222e",
2655 | "$type": "color",
2656 | "$description": "oklch(30.66% 0.066 0)",
2657 | "$oklch": "oklch(0.306641 0.065625 0)",
2658 | "$srgbFallback": "#49202e",
2659 | "$isP3": false,
2660 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,360,100",
2661 | "$contrast": 100.0994333736996,
2662 | "$contrastBg": "white"
2663 | },
2664 | "Slate/900": {
2665 | "$value": "#2b2e3a",
2666 | "$type": "color",
2667 | "$description": "oklch(30.27% 0.024 275)",
2668 | "$oklch": "oklch(0.302734 0.024 275)",
2669 | "$srgbFallback": "#2b2e3b",
2670 | "$isP3": false,
2671 | "$link": "https://oklch.com/#30.2734375,0.024,275,100",
2672 | "$contrast": 100.04086481071279,
2673 | "$contrastBg": "white"
2674 | },
2675 | "Gray/900": {
2676 | "$value": "#2c2e36",
2677 | "$type": "color",
2678 | "$description": "oklch(30.27% 0.016 275)",
2679 | "$oklch": "oklch(0.302734 0.016 275)",
2680 | "$srgbFallback": "#2c2e37",
2681 | "$isP3": false,
2682 | "$link": "https://oklch.com/#30.2734375,0.016,275,100",
2683 | "$contrast": 100.0264276893124,
2684 | "$contrastBg": "white"
2685 | },
2686 | "Zinc/900": {
2687 | "$value": "#2d2e32",
2688 | "$type": "color",
2689 | "$description": "oklch(30.27% 0.008 275)",
2690 | "$oklch": "oklch(0.302734 0.008 275)",
2691 | "$srgbFallback": "#2d2e33",
2692 | "$isP3": false,
2693 | "$link": "https://oklch.com/#30.2734375,0.008,275,100",
2694 | "$contrast": 100.01265386923852,
2695 | "$contrastBg": "white"
2696 | },
2697 | "Neutral/900": {
2698 | "$value": "#2e2e2e",
2699 | "$type": "color",
2700 | "$description": "oklch(30.08% 0 0)",
2701 | "$oklch": "oklch(0.300781 0 0)",
2702 | "$srgbFallback": "#2e2e2e",
2703 | "$isP3": false,
2704 | "$link": "https://oklch.com/#30.078125,0,0,100",
2705 | "$contrast": 100.13007709368293,
2706 | "$contrastBg": "white"
2707 | },
2708 | "Stone/900": {
2709 | "$value": "#302e2b",
2710 | "$type": "color",
2711 | "$description": "oklch(30.27% 0.008 75)",
2712 | "$oklch": "oklch(0.302734 0.008 75)",
2713 | "$srgbFallback": "#312e2a",
2714 | "$isP3": false,
2715 | "$link": "https://oklch.com/#30.2734375,0.008,75,100",
2716 | "$contrast": 100.01004301464414,
2717 | "$contrastBg": "white"
2718 | },
2719 | "Sand/900": {
2720 | "$value": "#312e29",
2721 | "$type": "color",
2722 | "$description": "oklch(30.27% 0.012 75)",
2723 | "$oklch": "oklch(0.302734 0.012 75)",
2724 | "$srgbFallback": "#322e28",
2725 | "$isP3": false,
2726 | "$link": "https://oklch.com/#30.2734375,0.012,75,100",
2727 | "$contrast": 100.01493394582421,
2728 | "$contrastBg": "white"
2729 | },
2730 | "Olive/900": {
2731 | "$value": "#2e2f2b",
2732 | "$type": "color",
2733 | "$description": "oklch(30.08% 0.008 120)",
2734 | "$oklch": "oklch(0.300781 0.008 120)",
2735 | "$srgbFallback": "#2d2f2a",
2736 | "$isP3": false,
2737 | "$link": "https://oklch.com/#30.078125,0.008,120,100",
2738 | "$contrast": 100.09043576924019,
2739 | "$contrastBg": "white"
2740 | },
2741 | "Mauve/900": {
2742 | "$value": "#302d30",
2743 | "$type": "color",
2744 | "$description": "oklch(30.27% 0.008 325)",
2745 | "$oklch": "oklch(0.302734 0.008 325)",
2746 | "$srgbFallback": "#312d31",
2747 | "$isP3": false,
2748 | "$link": "https://oklch.com/#30.2734375,0.008,325,100",
2749 | "$contrast": 100.05827635089075,
2750 | "$contrastBg": "white"
2751 | },
2752 | "Red/950": {
2753 | "$value": "#210d0d",
2754 | "$type": "color",
2755 | "$description": "oklch(19.34% 0.041 20)",
2756 | "$oklch": "oklch(0.193359 0.040625 20)",
2757 | "$srgbFallback": "#240c0d",
2758 | "$isP3": false,
2759 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,20,100",
2760 | "$contrast": 105.00737073362455,
2761 | "$contrastBg": "white"
2762 | },
2763 | "Orange/950": {
2764 | "$value": "#200e06",
2765 | "$type": "color",
2766 | "$description": "oklch(19.14% 0.041 43.33)",
2767 | "$oklch": "oklch(0.191406 0.040625 43.3333)",
2768 | "$srgbFallback": "#230d05",
2769 | "$isP3": false,
2770 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,43.33333333333333,100",
2771 | "$contrast": 105.03557878707173,
2772 | "$contrastBg": "white"
2773 | },
2774 | "Amber/950": {
2775 | "$value": "#1e1103",
2776 | "$type": "color",
2777 | "$description": "oklch(19.14% 0.041 66.67)",
2778 | "$oklch": "oklch(0.191406 0.040625 66.6667)",
2779 | "$srgbFallback": "#201001",
2780 | "$isP3": false,
2781 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,66.66666666666666,100",
2782 | "$contrast": 105.02376430491844,
2783 | "$contrastBg": "white"
2784 | },
2785 | "Yellow/950": {
2786 | "$value": "#1a1302",
2787 | "$type": "color",
2788 | "$description": "oklch(19.14% 0.041 90)",
2789 | "$oklch": "oklch(0.191406 0.040625 90)",
2790 | "$srgbFallback": "#1b1300",
2791 | "$isP3": true,
2792 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,90,100",
2793 | "$contrast": 105.0064569261148,
2794 | "$contrastBg": "white"
2795 | },
2796 | "Lime/950": {
2797 | "$value": "#161502",
2798 | "$type": "color",
2799 | "$description": "oklch(18.95% 0.041 106.67)",
2800 | "$oklch": "oklch(0.189453 0.040625 106.667)",
2801 | "$srgbFallback": "#161500",
2802 | "$isP3": true,
2803 | "$link": "https://oklch.com/#18.9453125,0.04062500000000001,106.66666666666667,100",
2804 | "$contrast": 105.0319935582142,
2805 | "$contrastBg": "white"
2806 | },
2807 | "Green/950": {
2808 | "$value": "#111604",
2809 | "$type": "color",
2810 | "$description": "oklch(18.75% 0.041 123.33)",
2811 | "$oklch": "oklch(0.1875 0.040625 123.333)",
2812 | "$srgbFallback": "#101602",
2813 | "$isP3": false,
2814 | "$link": "https://oklch.com/#18.75,0.04062500000000001,123.33333333333334,100",
2815 | "$contrast": 105.04706692174135,
2816 | "$contrastBg": "white"
2817 | },
2818 | "Emerald/950": {
2819 | "$value": "#0c1708",
2820 | "$type": "color",
2821 | "$description": "oklch(18.75% 0.041 140)",
2822 | "$oklch": "oklch(0.1875 0.040625 140)",
2823 | "$srgbFallback": "#091706",
2824 | "$isP3": false,
2825 | "$link": "https://oklch.com/#18.75,0.04062500000000001,140,100",
2826 | "$contrast": 105.00501327618079,
2827 | "$contrastBg": "white"
2828 | },
2829 | "Teal/950": {
2830 | "$value": "#06170d",
2831 | "$type": "color",
2832 | "$description": "oklch(18.36% 0.041 160)",
2833 | "$oklch": "oklch(0.183594 0.040625 160)",
2834 | "$srgbFallback": "#00180c",
2835 | "$isP3": false,
2836 | "$link": "https://oklch.com/#18.359375,0.04062500000000001,160,100",
2837 | "$contrast": 105.03734811883656,
2838 | "$contrastBg": "white"
2839 | },
2840 | "Cyan/950": {
2841 | "$value": "#021713",
2842 | "$type": "color",
2843 | "$description": "oklch(18.16% 0.041 180)",
2844 | "$oklch": "oklch(0.181641 0.040625 180)",
2845 | "$srgbFallback": "#001712",
2846 | "$isP3": true,
2847 | "$link": "https://oklch.com/#18.1640625,0.04062500000000001,180,100",
2848 | "$contrast": 105.03402113575149,
2849 | "$contrastBg": "white"
2850 | },
2851 | "Sky/950": {
2852 | "$value": "#01161b",
2853 | "$type": "color",
2854 | "$description": "oklch(18.16% 0.041 210)",
2855 | "$oklch": "oklch(0.181641 0.040625 210)",
2856 | "$srgbFallback": "#00161a",
2857 | "$isP3": true,
2858 | "$link": "https://oklch.com/#18.1640625,0.04062500000000001,210,100",
2859 | "$contrast": 105.04493617070587,
2860 | "$contrastBg": "white"
2861 | },
2862 | "Blue/950": {
2863 | "$value": "#051522",
2864 | "$type": "color",
2865 | "$description": "oklch(18.75% 0.041 240)",
2866 | "$oklch": "oklch(0.1875 0.040625 240)",
2867 | "$srgbFallback": "#011523",
2868 | "$isP3": false,
2869 | "$link": "https://oklch.com/#18.75,0.04062500000000001,240,100",
2870 | "$contrast": 105.0141139214867,
2871 | "$contrastBg": "white"
2872 | },
2873 | "Indigo/950": {
2874 | "$value": "#0b1425",
2875 | "$type": "color",
2876 | "$description": "oklch(19.14% 0.041 260)",
2877 | "$oklch": "oklch(0.191406 0.040625 260)",
2878 | "$srgbFallback": "#091426",
2879 | "$isP3": false,
2880 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,260,100",
2881 | "$contrast": 105.0045426031418,
2882 | "$contrastBg": "white"
2883 | },
2884 | "Violet/950": {
2885 | "$value": "#111225",
2886 | "$type": "color",
2887 | "$description": "oklch(19.34% 0.041 280)",
2888 | "$oklch": "oklch(0.193359 0.040625 280)",
2889 | "$srgbFallback": "#111226",
2890 | "$isP3": false,
2891 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,280,100",
2892 | "$contrast": 105.01756278227342,
2893 | "$contrastBg": "white"
2894 | },
2895 | "Purple/950": {
2896 | "$value": "#171123",
2897 | "$type": "color",
2898 | "$description": "oklch(19.53% 0.041 300)",
2899 | "$oklch": "oklch(0.195313 0.040625 300)",
2900 | "$srgbFallback": "#181024",
2901 | "$isP3": false,
2902 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,300,100",
2903 | "$contrast": 105.00400332922106,
2904 | "$contrastBg": "white"
2905 | },
2906 | "Fuchsia/950": {
2907 | "$value": "#1b0f1f",
2908 | "$type": "color",
2909 | "$description": "oklch(19.53% 0.041 320)",
2910 | "$oklch": "oklch(0.195313 0.040625 320)",
2911 | "$srgbFallback": "#1d0e20",
2912 | "$isP3": false,
2913 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,320,100",
2914 | "$contrast": 105.01338514320044,
2915 | "$contrastBg": "white"
2916 | },
2917 | "Pink/950": {
2918 | "$value": "#1e0e1a",
2919 | "$type": "color",
2920 | "$description": "oklch(19.53% 0.041 340)",
2921 | "$oklch": "oklch(0.195313 0.040625 340)",
2922 | "$srgbFallback": "#210d1b",
2923 | "$isP3": false,
2924 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,340,100",
2925 | "$contrast": 105.00281049690973,
2926 | "$contrastBg": "white"
2927 | },
2928 | "Rose/950": {
2929 | "$value": "#200d14",
2930 | "$type": "color",
2931 | "$description": "oklch(19.34% 0.041 0)",
2932 | "$oklch": "oklch(0.193359 0.040625 0)",
2933 | "$srgbFallback": "#230c14",
2934 | "$isP3": false,
2935 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,360,100",
2936 | "$contrast": 105.02838853707594,
2937 | "$contrastBg": "white"
2938 | },
2939 | "Slate/950": {
2940 | "$value": "#12141e",
2941 | "$type": "color",
2942 | "$description": "oklch(19.34% 0.024 275)",
2943 | "$oklch": "oklch(0.193359 0.024 275)",
2944 | "$srgbFallback": "#11141f",
2945 | "$isP3": false,
2946 | "$link": "https://oklch.com/#19.3359375,0.024,275,100",
2947 | "$contrast": 105.01109237093064,
2948 | "$contrastBg": "white"
2949 | },
2950 | "Gray/950": {
2951 | "$value": "#13141b",
2952 | "$type": "color",
2953 | "$description": "oklch(19.34% 0.016 275)",
2954 | "$oklch": "oklch(0.193359 0.016 275)",
2955 | "$srgbFallback": "#12141c",
2956 | "$isP3": false,
2957 | "$link": "https://oklch.com/#19.3359375,0.016,275,100",
2958 | "$contrast": 105.01075205784987,
2959 | "$contrastBg": "white"
2960 | },
2961 | "Zinc/950": {
2962 | "$value": "#141418",
2963 | "$type": "color",
2964 | "$description": "oklch(19.34% 0.008 275)",
2965 | "$oklch": "oklch(0.193359 0.008 275)",
2966 | "$srgbFallback": "#131418",
2967 | "$isP3": false,
2968 | "$link": "https://oklch.com/#19.3359375,0.008,275,100",
2969 | "$contrast": 105.00850985211243,
2970 | "$contrastBg": "white"
2971 | },
2972 | "Neutral/950": {
2973 | "$value": "#141414",
2974 | "$type": "color",
2975 | "$description": "oklch(19.34% 0 0)",
2976 | "$oklch": "oklch(0.193359 0 0)",
2977 | "$srgbFallback": "#141414",
2978 | "$isP3": false,
2979 | "$link": "https://oklch.com/#19.3359375,0,0,100",
2980 | "$contrast": 105.00448594777328,
2981 | "$contrastBg": "white"
2982 | },
2983 | "Stone/950": {
2984 | "$value": "#161411",
2985 | "$type": "color",
2986 | "$description": "oklch(19.34% 0.008 75)",
2987 | "$oklch": "oklch(0.193359 0.008 75)",
2988 | "$srgbFallback": "#171411",
2989 | "$isP3": false,
2990 | "$link": "https://oklch.com/#19.3359375,0.008,75,100",
2991 | "$contrast": 105.006859176124,
2992 | "$contrastBg": "white"
2993 | },
2994 | "Sand/950": {
2995 | "$value": "#17140f",
2996 | "$type": "color",
2997 | "$description": "oklch(19.34% 0.012 75)",
2998 | "$oklch": "oklch(0.193359 0.012 75)",
2999 | "$srgbFallback": "#18140f",
3000 | "$isP3": false,
3001 | "$link": "https://oklch.com/#19.3359375,0.012,75,100",
3002 | "$contrast": 105.00663941842876,
3003 | "$contrastBg": "white"
3004 | },
3005 | "Olive/950": {
3006 | "$value": "#141511",
3007 | "$type": "color",
3008 | "$description": "oklch(19.14% 0.008 120)",
3009 | "$oklch": "oklch(0.191406 0.008 120)",
3010 | "$srgbFallback": "#141511",
3011 | "$isP3": false,
3012 | "$link": "https://oklch.com/#19.140625,0.008,120,100",
3013 | "$contrast": 105.03812366434045,
3014 | "$contrastBg": "white"
3015 | },
3016 | "Mauve/950": {
3017 | "$value": "#161316",
3018 | "$type": "color",
3019 | "$description": "oklch(19.34% 0.008 325)",
3020 | "$oklch": "oklch(0.193359 0.008 325)",
3021 | "$srgbFallback": "#161317",
3022 | "$isP3": false,
3023 | "$link": "https://oklch.com/#19.3359375,0.008,325,100",
3024 | "$contrast": 105.0252618531462,
3025 | "$contrastBg": "white"
3026 | }
3027 | }
3028 |
--------------------------------------------------------------------------------
/tests/utils.ts:
--------------------------------------------------------------------------------
1 | import * as path from "@std/path";
2 | import { sandbox } from "@lambdalisue/sandbox";
3 | import { assertSnapshot } from "@std/testing/snapshot";
4 |
5 | import { build, PaletteSource } from "../scripts/builder.ts";
6 | import { BuildConfig } from "../scripts/types.ts";
7 |
8 | export const testPaletteSource = {
9 | "Red/50": {
10 | "$oklch": "oklch(0.988281 0.0046875 20)",
11 | "$srgbFallback": "#fefafa",
12 | },
13 | "Red/500": {
14 | "$oklch": "oklch(0.742188 0.151562 20)",
15 | "$srgbFallback": "#fc8083",
16 | },
17 | "Orange/100": {
18 | "$oklch": "oklch(0.966797 0.0171875 43.3333)",
19 | "$srgbFallback": "#fff1eb",
20 | },
21 | } satisfies PaletteSource;
22 |
23 | export async function expectBuildToMatchSnapshot(context: Deno.TestContext, config: BuildConfig) {
24 | const sbox = await sandbox();
25 | try {
26 | const filepaths = await build(testPaletteSource, sbox.path, [config]);
27 | await Promise.all(filepaths.map(async (filepath) => {
28 | const content = await Deno.readTextFile(filepath);
29 | await assertSnapshot(context, content, {
30 | name: path.basename(filepath),
31 | });
32 | }));
33 | } finally {
34 | await sbox[Symbol.asyncDispose]();
35 | }
36 | return sbox.path;
37 | }
38 |
--------------------------------------------------------------------------------