diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68b016a833..6390cc6132 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,15 +88,25 @@ jobs: run: yarn workspace ${{ matrix.package }} depcheck - name: Audit dependencies + if: matrix.package != '@slicemachine/e2e' run: yarn workspace ${{ matrix.package }} audit - name: Lint run: yarn workspace ${{ matrix.package }} lint + - name: Stylelint + if: matrix.package == 'slice-machine-ui' + run: yarn workspace ${{ matrix.package }} stylelint + + - name: Generate TypeScript definition files from CSS Modules + if: matrix.package == 'slice-machine-ui' + run: yarn workspace ${{ matrix.package }} typed-css-modules + - name: Types run: yarn workspace ${{ matrix.package }} types - name: Unit + if: matrix.package != '@slicemachine/e2e' run: yarn workspace ${{ matrix.package }} unit env: EMAIL: ${{ secrets.EMAIL }} diff --git a/.prettierignore b/.prettierignore index b0a3cf71d6..8534ad8f04 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,6 +1,7 @@ # Ignore artifacts: .github/ /.yarn +/packages/*/src/**/*.module.css.d.ts /packages/*/storybook-static /.pnp.* packages/slice-machine/.next diff --git a/package.json b/package.json index 1e69ed1dbc..ad2fa765f5 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ }, "packageManager": "yarn@3.6.0", "scripts": { - "clean": "rimraf --glob '{e2e-projects/*/{.next,.svelte-kit},packages/*/{.next,.svelte-kit,build,coverage,dist,out,package.tgz,storybook-static},playwright/{playwright-report,test-results}}'", + "clean": "rimraf --glob '{e2e-projects/*/{.next,.svelte-kit},packages/*/{.next,.svelte-kit,build,coverage,dist,out,package.tgz,src/**/*.module.css.d.ts,storybook-static},playwright/{playwright-report,test-results}}'", "dev": "concurrently --prefix-colors auto \"yarn:dev:*\"", "dev:manager": "yarn workspace @slicemachine/manager dev", "dev:start-slicemachine": "yarn workspace start-slicemachine dev", @@ -20,6 +20,7 @@ "build-essential": "yarn workspace @slicemachine/plugin-kit build && yarn workspace @slicemachine/manager build", "audit": "yarn workspaces foreach --parallel --verbose run audit", "lint": "yarn workspaces foreach --verbose run lint", + "stylelint": "yarn workspaces foreach --verbose run stylelint", "lint-staged": "lint-staged", "prettier:fix": "prettier --write .", "prettier:check": "prettier --check .", @@ -65,6 +66,10 @@ "**/packages/slice-machine/**/*.@(js|jsx|ts|tsx|)": [ "prettier --write --ignore-unknown", "yarn workspace slice-machine-ui lint:precommit" + ], + "**/packages/slice-machine/**/*.module.css": [ + "prettier --write --ignore-unknown", + "yarn workspace slice-machine-ui stylelint:precommit" ] }, "resolutions": { diff --git a/packages/slice-machine/.eslintignore b/packages/slice-machine/.eslintignore index 2934173b89..9efe47d9ab 100644 --- a/packages/slice-machine/.eslintignore +++ b/packages/slice-machine/.eslintignore @@ -1,3 +1,4 @@ +/src/**/*.module.css.d.ts /storybook-static !/.storybook build diff --git a/packages/slice-machine/.gitignore b/packages/slice-machine/.gitignore index a1a29695f2..b1d4009e5b 100644 --- a/packages/slice-machine/.gitignore +++ b/packages/slice-machine/.gitignore @@ -27,6 +27,7 @@ yarn-error.log* .vercel # typescript +/src/**/*.module.css.d.ts *.tsbuildinfo next-env.d.ts diff --git a/packages/slice-machine/package.json b/packages/slice-machine/package.json index 1e1049e2a4..cdb9f4d322 100644 --- a/packages/slice-machine/package.json +++ b/packages/slice-machine/package.json @@ -12,18 +12,22 @@ "node": ">=14" }, "scripts": { - "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 next build && next export", - "dev": "next dev", - "dev-cypress": "concurrently \"next dev\" \"npm run dev --prefix ../../e2e-projects/cypress-next-app\"", + "build": "yarn typed-css-modules && cross-env NODE_OPTIONS=--max_old_space_size=8192 next build && next export", + "dev": "concurrently \"typed-css-modules:watch\" \"next dev\"", + "dev-cypress": "concurrently \"typed-css-modules:watch\" \"next dev\" \"npm run dev --prefix ../../e2e-projects/cypress-next-app\"", "lint": "eslint --max-warnings 0 --ext .ts,.tsx,.js,.jsx .", + "stylelint": "stylelint --max-warnings 0 \"src/**/*.module.css\"", "prepack": "$npm_execpath run build", "storybook": "storybook dev --no-open --port 6006", "storybook-build": "storybook build", - "test": "yarn lint && yarn types && yarn unit && yarn build", + "test": "yarn lint && yarn stylelint && yarn typed-css-modules && yarn types && yarn unit && yarn build", "types": "tsc --noEmit", + "typed-css-modules": "tcm --pattern \"src/**/*.module.css\" .", + "typed-css-modules:watch": "yarn typed-css-modules --watch", "unit": "vitest run --coverage", "unit:watch": "vitest watch", "lint:precommit": "eslint --max-warnings 0", + "stylelint:precommit": "stylelint --max-warnings 0", "depcheck": "depcheck --config=.depcheckrc", "audit": "yarn npm audit --environment production --severity high" }, @@ -38,9 +42,9 @@ "devDependencies": { "@emotion/react": "11.11.1", "@extractus/oembed-extractor": "3.1.8", - "@prismicio/editor-fields": "0.4.18", - "@prismicio/editor-support": "0.4.18", - "@prismicio/editor-ui": "0.4.18", + "@prismicio/editor-fields": "0.4.19", + "@prismicio/editor-support": "0.4.19", + "@prismicio/editor-ui": "0.4.19", "@prismicio/mocks": "2.0.0-alpha.2", "@prismicio/simulator": "0.1.4", "@prismicio/types-internal": "2.2.0", @@ -123,8 +127,13 @@ "remark-gfm": "3.0.1", "semver": "7.3.8", "storybook": "7.0.10", + "stylelint": "15.11.0", + "stylelint-config-css-modules": "4.3.0", + "stylelint-config-prettier": "9.0.5", + "stylelint-config-recommended": "13.0.0", "swr": "1.3.0", "theme-ui": "0.15.5", + "typed-css-modules": "0.8.0", "typesafe-actions": "5.1.0", "typescript": "4.9.5", "vite": "4.3.9", diff --git a/packages/slice-machine/src/components/Kbd/Kbd.module.css b/packages/slice-machine/src/components/Kbd/Kbd.module.css new file mode 100644 index 0000000000..63d08ecceb --- /dev/null +++ b/packages/slice-machine/src/components/Kbd/Kbd.module.css @@ -0,0 +1,3 @@ +.root { + display: block; +} diff --git a/packages/slice-machine/stylelint.config.js b/packages/slice-machine/stylelint.config.js new file mode 100644 index 0000000000..cf31d770a4 --- /dev/null +++ b/packages/slice-machine/stylelint.config.js @@ -0,0 +1,16 @@ +const { cssTheme } = require("@prismicio/editor-ui"); + +module.exports = { + defaultSeverity: "warning", + reportNeedlessDisables: true, + reportInvalidScopeDisables: true, + reportDescriptionlessDisables: true, + rules: { + "declaration-property-value-allowed-list": cssTheme, + }, + extends: [ + "stylelint-config-recommended", + "stylelint-config-css-modules", + "stylelint-config-prettier", + ], +}; diff --git a/playwright/package.json b/playwright/package.json index 0da38956e7..62325a8965 100644 --- a/playwright/package.json +++ b/playwright/package.json @@ -4,15 +4,13 @@ "description": "E2E tests for Slice Machine", "author": "Prismic (https://prismic.io)", "scripts": { - "audit": "echo \"No audit for playwright\" && true", "depcheck": "depcheck --config=.depcheckrc", "lint": "eslint --max-warnings 0 --ext .js,.ts .", "test:e2e:install": "playwright install --with-deps chromium", "test:e2e:report": "playwright show-report", "test:e2e": "playwright test", "types": "tsc --noEmit", - "test:e2e:merge-reports": "playwright merge-reports", - "unit": "echo \"No unit tests for playwright\" && true" + "test:e2e:merge-reports": "playwright merge-reports" }, "devDependencies": { "@msgpack/msgpack": "2.8.0", diff --git a/yarn.lock b/yarn.lock index 3eddd866ae..c1ff34759b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2004,6 +2004,15 @@ __metadata: languageName: node linkType: hard +"@csstools/css-parser-algorithms@npm:^2.3.1": + version: 2.5.0 + resolution: "@csstools/css-parser-algorithms@npm:2.5.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.2.3 + checksum: 6bfbdb4052acca48de9db0806a1b18458709103390656634ebe3cf0390048a6e9b304b78173fbcd524e03669dacb5cc3bedbe8008c354ff9511aed4935dcfc6f + languageName: node + linkType: hard + "@csstools/css-tokenizer@npm:^2.1.1": version: 2.1.1 resolution: "@csstools/css-tokenizer@npm:2.1.1" @@ -2011,6 +2020,13 @@ __metadata: languageName: node linkType: hard +"@csstools/css-tokenizer@npm:^2.2.0": + version: 2.2.3 + resolution: "@csstools/css-tokenizer@npm:2.2.3" + checksum: a2a69f0de516046f85b8f47916879780f9712bdda8166ab01dd47613515ff5a0771555c78badd220686bc1dae3cb0eea5de6896e1e326247a276cc8965520aa6 + languageName: node + linkType: hard + "@csstools/media-query-list-parser@npm:^2.1.0": version: 2.1.0 resolution: "@csstools/media-query-list-parser@npm:2.1.0" @@ -2021,6 +2037,16 @@ __metadata: languageName: node linkType: hard +"@csstools/media-query-list-parser@npm:^2.1.4": + version: 2.1.7 + resolution: "@csstools/media-query-list-parser@npm:2.1.7" + peerDependencies: + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: f910d9c29c84e828d121f451607fe9c275297041f317075ede935ffacdd7fd53fcbc0dd4993585e405b5337b7f991b864d101dff3cb8fc400e8c32a9aedbfe69 + languageName: node + linkType: hard + "@csstools/postcss-cascade-layers@npm:^3.0.1": version: 3.0.1 resolution: "@csstools/postcss-cascade-layers@npm:3.0.1" @@ -2309,6 +2335,15 @@ __metadata: languageName: node linkType: hard +"@csstools/selector-specificity@npm:^3.0.0": + version: 3.0.1 + resolution: "@csstools/selector-specificity@npm:3.0.1" + peerDependencies: + postcss-selector-parser: ^6.0.13 + checksum: e4b5aac3bd3ca1f824cb9578f52b16046a519aa8050ce291da37e611976a83cd3b2b2f908d2678dd4cbbe00bbde8ec28c34fffc40dbbf9a13608dfcaf382ee80 + languageName: node + linkType: hard + "@cypress/request@npm:^2.88.10": version: 2.88.11 resolution: "@cypress/request@npm:2.88.11" @@ -4820,12 +4855,12 @@ __metadata: languageName: node linkType: hard -"@prismicio/editor-fields@npm:0.4.18": - version: 0.4.18 - resolution: "@prismicio/editor-fields@npm:0.4.18" +"@prismicio/editor-fields@npm:0.4.19": + version: 0.4.19 + resolution: "@prismicio/editor-fields@npm:0.4.19" dependencies: "@floating-ui/react-dom-interactions": 0.9.3 - "@prismicio/editor-support": 0.4.18 + "@prismicio/editor-support": 0.4.19 "@prismicio/richtext": 2.1.1 "@prismicio/types-internal": 2.3.1 "@tiptap/core": 2.0.3 @@ -4856,16 +4891,16 @@ __metadata: uuid: 9.0.0 zod: 3.21.4 peerDependencies: - "@prismicio/editor-ui": ^0.4.18 + "@prismicio/editor-ui": ^0.4.19 react: 18 react-dom: 18 - checksum: 1ae53fdbe6313f4c5b8de4c9283a411c27793485ca33a97efca3443233cb60bac7a1edbbeb7e18f0291f7c03e98c9ccd0e819b8f4ebadb55d7eb9d36a8edffa0 + checksum: e45ed8792844a12d0932ed1cf7ddaf346b7a7de5fb542c7b580210e3e02a588dca77c5237da90e220e64d83c25f8f2ab5b8a21aff567a34e357c2d0037bcb1c1 languageName: node linkType: hard -"@prismicio/editor-support@npm:0.4.18": - version: 0.4.18 - resolution: "@prismicio/editor-support@npm:0.4.18" +"@prismicio/editor-support@npm:0.4.19": + version: 0.4.19 + resolution: "@prismicio/editor-support@npm:0.4.19" dependencies: "@prismicio/types-internal": 2.3.1 fp-ts: 2.12.3 @@ -4882,16 +4917,16 @@ __metadata: optional: true zod: optional: true - checksum: ff25414add5d9f75f73f60ffed4f9b2b98dfa6d9c1aaf5d7ca87774b84c1a49b6b0b97ae38e571eadbec066d3152121a017bf0ca7d8a77c659f74f625b215b8b + checksum: 66c2ca45f2b967cb90ff443b36b21d3a04f591ed5c368abe1330917fc9cb65ec121a190866733f690cedb30d1649b9a3cb000bbc2c0fd95471858e2242fc102b languageName: node linkType: hard -"@prismicio/editor-ui@npm:0.4.18": - version: 0.4.18 - resolution: "@prismicio/editor-ui@npm:0.4.18" +"@prismicio/editor-ui@npm:0.4.19": + version: 0.4.19 + resolution: "@prismicio/editor-ui@npm:0.4.19" dependencies: "@internationalized/date": 3.5.0 - "@prismicio/editor-support": 0.4.18 + "@prismicio/editor-support": 0.4.19 "@radix-ui/react-avatar": 1.0.4 "@radix-ui/react-checkbox": 1.0.4 "@radix-ui/react-dialog": 1.0.5 @@ -4899,6 +4934,7 @@ __metadata: "@radix-ui/react-dropdown-menu": 2.0.6 "@radix-ui/react-label": 2.0.0 "@radix-ui/react-popover": 1.0.7 + "@radix-ui/react-portal": 1.0.4 "@radix-ui/react-progress": 1.0.1 "@radix-ui/react-radio-group": 1.1.0 "@radix-ui/react-select": 2.0.0 @@ -4931,7 +4967,7 @@ __metadata: peerDependencies: react: 17 || 18 react-dom: 17 || 18 - checksum: c15a4ed2b28ceb98cc6e0cc75c74287b193641d209a4530d3a2508ab0c49beca71cc03a3228a16e679f8fefa93e736e3c84ec3f99772a2fcc41b30444a28e160 + checksum: 9d7d6751cb73ee2a6596029bb9ab2faac37c636b842b03298056582ad449f97bda46f4093c260d2f09a1b170465a91b2840faf8115c3e8ed69629d328a40887f languageName: node linkType: hard @@ -12514,7 +12550,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.9.0": +"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.9.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" dependencies: @@ -13313,6 +13349,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^2.0.0": + version: 2.0.0 + resolution: "balanced-match@npm:2.0.0" + checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 + languageName: node + linkType: hard + "base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -13993,6 +14036,18 @@ __metadata: languageName: node linkType: hard +"camelcase-keys@npm:^7.0.0": + version: 7.0.2 + resolution: "camelcase-keys@npm:7.0.2" + dependencies: + camelcase: ^6.3.0 + map-obj: ^4.1.0 + quick-lru: ^5.1.1 + type-fest: ^1.2.1 + checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b + languageName: node + linkType: hard + "camelcase-keys@npm:^8.0.2": version: 8.0.2 resolution: "camelcase-keys@npm:8.0.2" @@ -14012,7 +14067,7 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": +"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d @@ -14236,7 +14291,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.0, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -14645,7 +14700,7 @@ __metadata: languageName: node linkType: hard -"colord@npm:^2.9.1": +"colord@npm:^2.9.1, colord@npm:^2.9.3": version: 2.9.3 resolution: "colord@npm:2.9.3" checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 @@ -15109,6 +15164,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + path-type: ^4.0.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 + languageName: node + linkType: hard + "crc-32@npm:^1.2.0": version: 1.2.2 resolution: "crc-32@npm:1.2.2" @@ -15278,6 +15350,13 @@ __metadata: languageName: node linkType: hard +"css-functions-list@npm:^3.2.1": + version: 3.2.1 + resolution: "css-functions-list@npm:3.2.1" + checksum: 57d7deb3b05e84d95b88ba9b3244cf60d33b40652b3357f084c805b24a9febda5987ade44ef25a56be41e73249a7dcc157abd704d8a0e998b2c1c2e2d5de6461 + languageName: node + linkType: hard + "css-has-pseudo@npm:^5.0.2": version: 5.0.2 resolution: "css-has-pseudo@npm:5.0.2" @@ -15905,6 +15984,13 @@ __metadata: languageName: node linkType: hard +"decamelize@npm:^5.0.0": + version: 5.0.1 + resolution: "decamelize@npm:5.0.1" + checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 + languageName: node + linkType: hard + "decamelize@npm:^6.0.0": version: 6.0.0 resolution: "decamelize@npm:6.0.0" @@ -18155,6 +18241,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.1": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -18169,6 +18268,13 @@ __metadata: languageName: node linkType: hard +"fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" @@ -18276,6 +18382,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^7.0.0": + version: 7.0.2 + resolution: "file-entry-cache@npm:7.0.2" + dependencies: + flat-cache: ^3.2.0 + checksum: 283c674fc26bed1c44e74cf25c2640c813e222ea30a2536404b53511ca311d4a2502ee8145a01aecd12b9a910eb4162364776be27a9683e8447332054e9d712f + languageName: node + linkType: hard + "file-loader@npm:^6.2.0": version: 6.2.0 resolution: "file-loader@npm:6.2.0" @@ -18454,6 +18569,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^3.2.0": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.3 + rimraf: ^3.0.2 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec + languageName: node + linkType: hard + "flat@npm:^5.0.2": version: 5.0.2 resolution: "flat@npm:5.0.2" @@ -18470,6 +18596,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.2.9": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 + languageName: node + linkType: hard + "flow-parser@npm:0.*": version: 0.208.1 resolution: "flow-parser@npm:0.208.1" @@ -19191,7 +19324,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.7": +"glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.3.10 resolution: "glob@npm:10.3.10" dependencies: @@ -19242,6 +19375,26 @@ __metadata: languageName: node linkType: hard +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + languageName: node + linkType: hard + "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -19301,6 +19454,13 @@ __metadata: languageName: node linkType: hard +"globjoin@npm:^0.1.4": + version: 0.1.4 + resolution: "globjoin@npm:0.1.4" + checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b + languageName: node + linkType: hard + "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -19922,7 +20082,7 @@ __metadata: languageName: node linkType: hard -"html-tags@npm:^3.1.0": +"html-tags@npm:^3.1.0, html-tags@npm:^3.3.1": version: 3.3.1 resolution: "html-tags@npm:3.3.1" checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce @@ -20141,6 +20301,13 @@ __metadata: languageName: node linkType: hard +"icss-replace-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "icss-replace-symbols@npm:1.1.0" + checksum: 24575b2c2f7e762bfc6f4beee31be9ba98a01cad521b5aa9954090a5de2b5e1bf67814c17e22f9e51b7d798238db8215a173d6c2b4726ce634ce06b68ece8045 + languageName: node + linkType: hard + "icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": version: 5.1.0 resolution: "icss-utils@npm:5.1.0" @@ -20206,7 +20373,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -20216,6 +20383,13 @@ __metadata: languageName: node linkType: hard +"import-lazy@npm:^4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 + languageName: node + linkType: hard + "import-meta-resolve@npm:^2.0.0": version: 2.2.2 resolution: "import-meta-resolve@npm:2.2.2" @@ -21003,7 +21177,7 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:5.0.0": +"is-plain-object@npm:5.0.0, is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c @@ -21132,6 +21306,13 @@ __metadata: languageName: node linkType: hard +"is-there@npm:^4.4.2": + version: 4.5.1 + resolution: "is-there@npm:4.5.1" + checksum: 763240c846c85b516271c747d675bae1f49efdfb252556c946e9940cb0d5d9953a50610d6f2a1ee9827da7ac1f8e74157c0f02a6ab17e86aaf319c56ba4652c2 + languageName: node + linkType: hard + "is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.10 resolution: "is-typed-array@npm:1.1.10" @@ -21641,6 +21822,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1, json-parse-better-errors@npm:^1.0.2": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -21764,6 +21952,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": version: 3.2.2 resolution: "kind-of@npm:3.2.2" @@ -21831,6 +22028,13 @@ __metadata: languageName: node linkType: hard +"known-css-properties@npm:^0.29.0": + version: 0.29.0 + resolution: "known-css-properties@npm:0.29.0" + checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af + languageName: node + linkType: hard + "language-subtag-registry@npm:~0.3.2": version: 0.3.22 resolution: "language-subtag-registry@npm:0.3.22" @@ -22324,6 +22528,13 @@ __metadata: languageName: node linkType: hard +"lodash.truncate@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.truncate@npm:4.4.2" + checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 + languageName: node + linkType: hard + "lodash.union@npm:^4.6.0": version: 4.6.0 resolution: "lodash.union@npm:4.6.0" @@ -22653,7 +22864,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.3.0": +"map-obj@npm:^4.1.0, map-obj@npm:^4.3.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e @@ -22723,6 +22934,13 @@ __metadata: languageName: node linkType: hard +"mathml-tag-names@npm:^2.1.3": + version: 2.1.3 + resolution: "mathml-tag-names@npm:2.1.3" + checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 + languageName: node + linkType: hard + "md5-hex@npm:^3.0.1": version: 3.0.1 resolution: "md5-hex@npm:3.0.1" @@ -23057,6 +23275,26 @@ __metadata: languageName: node linkType: hard +"meow@npm:^10.1.5": + version: 10.1.5 + resolution: "meow@npm:10.1.5" + dependencies: + "@types/minimist": ^1.2.2 + camelcase-keys: ^7.0.0 + decamelize: ^5.0.0 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.2 + read-pkg-up: ^8.0.0 + redent: ^4.0.0 + trim-newlines: ^4.0.2 + type-fest: ^1.2.2 + yargs-parser: ^20.2.9 + checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 + languageName: node + linkType: hard + "meow@npm:^11.0.0": version: 11.0.0 resolution: "meow@npm:11.0.0" @@ -24045,6 +24283,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.0": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "mlly@npm:^1.1.0, mlly@npm:^1.2.0, mlly@npm:^1.3.0": version: 1.3.0 resolution: "mlly@npm:1.3.0" @@ -26509,6 +26756,13 @@ __metadata: languageName: node linkType: hard +"postcss-media-query-parser@npm:^0.2.3": + version: 0.2.3 + resolution: "postcss-media-query-parser@npm:0.2.3" + checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 + languageName: node + linkType: hard + "postcss-merge-longhand@npm:^5.1.7": version: 5.1.7 resolution: "postcss-merge-longhand@npm:5.1.7" @@ -27117,6 +27371,13 @@ __metadata: languageName: node linkType: hard +"postcss-resolve-nested-selector@npm:^0.1.1": + version: 0.1.1 + resolution: "postcss-resolve-nested-selector@npm:0.1.1" + checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 + languageName: node + linkType: hard + "postcss-safe-parser@npm:^6.0.0": version: 6.0.0 resolution: "postcss-safe-parser@npm:6.0.0" @@ -27156,6 +27417,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^6.0.13": + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 + languageName: node + linkType: hard + "postcss-svgo@npm:^5.1.0": version: 5.1.0 resolution: "postcss-svgo@npm:5.1.0" @@ -27273,6 +27544,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.0.0": + version: 8.4.33 + resolution: "postcss@npm:8.4.33" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 6f98b2af4b76632a3de20c4f47bf0e984a1ce1a531cf11adcb0b1d63a6cbda0aae4165e578b66c32ca4879038e3eaad386a6be725a8fb4429c78e3c1ab858fe9 + languageName: node + linkType: hard + "postcss@npm:^8.1.10, postcss@npm:^8.2.1, postcss@npm:^8.2.15, postcss@npm:^8.3.6, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.6": version: 8.4.24 resolution: "postcss@npm:8.4.24" @@ -28691,6 +28973,17 @@ __metadata: languageName: node linkType: hard +"read-pkg-up@npm:^8.0.0": + version: 8.0.0 + resolution: "read-pkg-up@npm:8.0.0" + dependencies: + find-up: ^5.0.0 + read-pkg: ^6.0.0 + type-fest: ^1.0.1 + checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c + languageName: node + linkType: hard + "read-pkg-up@npm:^9.1.0": version: 9.1.0 resolution: "read-pkg-up@npm:9.1.0" @@ -28714,6 +29007,18 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^6.0.0": + version: 6.0.0 + resolution: "read-pkg@npm:6.0.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^3.0.2 + parse-json: ^5.2.0 + type-fest: ^1.0.1 + checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f + languageName: node + linkType: hard + "read-pkg@npm:^7.1.0": version: 7.1.0 resolution: "read-pkg@npm:7.1.0" @@ -30213,9 +30518,9 @@ __metadata: dependencies: "@emotion/react": 11.11.1 "@extractus/oembed-extractor": 3.1.8 - "@prismicio/editor-fields": 0.4.18 - "@prismicio/editor-support": 0.4.18 - "@prismicio/editor-ui": 0.4.18 + "@prismicio/editor-fields": 0.4.19 + "@prismicio/editor-support": 0.4.19 + "@prismicio/editor-ui": 0.4.19 "@prismicio/mocks": 2.0.0-alpha.2 "@prismicio/simulator": 0.1.4 "@prismicio/types-internal": 2.2.0 @@ -30301,8 +30606,13 @@ __metadata: semver: 7.3.8 start-slicemachine: "workspace:*" storybook: 7.0.10 + stylelint: 15.11.0 + stylelint-config-css-modules: 4.3.0 + stylelint-config-prettier: 9.0.5 + stylelint-config-recommended: 13.0.0 swr: 1.3.0 theme-ui: 0.15.5 + typed-css-modules: 0.8.0 typesafe-actions: 5.1.0 typescript: 4.9.5 vite: 4.3.9 @@ -31125,6 +31435,13 @@ __metadata: languageName: node linkType: hard +"style-search@npm:^0.1.0": + version: 0.1.0 + resolution: "style-search@npm:0.1.0" + checksum: 3cfefe335033aad6d47da0725cb48f5db91a73935954c77eab77d9e415e6668cdb406da4a4f7ef9f1aca77853cf5ba7952c45e869caa5bd6439691d88098d468 + languageName: node + linkType: hard + "style-to-js@npm:1.1.3": version: 1.1.3 resolution: "style-to-js@npm:1.1.3" @@ -31218,6 +31535,106 @@ __metadata: languageName: node linkType: hard +"stylelint-config-css-modules@npm:4.3.0": + version: 4.3.0 + resolution: "stylelint-config-css-modules@npm:4.3.0" + dependencies: + stylelint-scss: ^5.0.0 || ^6.0.0 + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependenciesMeta: + stylelint-scss: + optional: true + checksum: e2b2dc083a10b0861781495b5839bbacce6642f47d25f333658f1fc69f1ca132af296e2717dd489e55d093f0b618c133d1472ba35bc9841e3b9321ce8599955d + languageName: node + linkType: hard + +"stylelint-config-prettier@npm:9.0.5": + version: 9.0.5 + resolution: "stylelint-config-prettier@npm:9.0.5" + peerDependencies: + stylelint: ">= 11.x < 15" + bin: + stylelint-config-prettier: bin/check.js + stylelint-config-prettier-check: bin/check.js + checksum: 3d04e463e0bb7e42a5ddec49eea6ef4ea07705d887e8a3ff1fcb82278a5e2bec1a36b8498ea7ed2d24878de29d7c94ac75b1d3ac4f8b19c3a84970595b29261f + languageName: node + linkType: hard + +"stylelint-config-recommended@npm:13.0.0": + version: 13.0.0 + resolution: "stylelint-config-recommended@npm:13.0.0" + peerDependencies: + stylelint: ^15.10.0 + checksum: a56eb6d1a7c7f3a7a172b54bc34218859ba22a5a06816fb4d0964f66cb83cf372062f2c97830e994ad68243548e15fc49abf28887c3261ab1b471b3aa69f8e82 + languageName: node + linkType: hard + +"stylelint-scss@npm:^5.0.0 || ^6.0.0": + version: 6.0.0 + resolution: "stylelint-scss@npm:6.0.0" + dependencies: + known-css-properties: ^0.29.0 + postcss-media-query-parser: ^0.2.3 + postcss-resolve-nested-selector: ^0.1.1 + postcss-selector-parser: ^6.0.13 + postcss-value-parser: ^4.2.0 + peerDependencies: + stylelint: ^16.0.2 + checksum: 89d86fee3929ae30c456beae20b6ca1035c96f916e14a68f72d91f69c4458e1973f3b65314d7abed6955f1c4d1db74fe76df4ff13ef3d77ed4e6b0d7c7473104 + languageName: node + linkType: hard + +"stylelint@npm:15.11.0": + version: 15.11.0 + resolution: "stylelint@npm:15.11.0" + dependencies: + "@csstools/css-parser-algorithms": ^2.3.1 + "@csstools/css-tokenizer": ^2.2.0 + "@csstools/media-query-list-parser": ^2.1.4 + "@csstools/selector-specificity": ^3.0.0 + balanced-match: ^2.0.0 + colord: ^2.9.3 + cosmiconfig: ^8.2.0 + css-functions-list: ^3.2.1 + css-tree: ^2.3.1 + debug: ^4.3.4 + fast-glob: ^3.3.1 + fastest-levenshtein: ^1.0.16 + file-entry-cache: ^7.0.0 + global-modules: ^2.0.0 + globby: ^11.1.0 + globjoin: ^0.1.4 + html-tags: ^3.3.1 + ignore: ^5.2.4 + import-lazy: ^4.0.0 + imurmurhash: ^0.1.4 + is-plain-object: ^5.0.0 + known-css-properties: ^0.29.0 + mathml-tag-names: ^2.1.3 + meow: ^10.1.5 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.28 + postcss-resolve-nested-selector: ^0.1.1 + postcss-safe-parser: ^6.0.0 + postcss-selector-parser: ^6.0.13 + postcss-value-parser: ^4.2.0 + resolve-from: ^5.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + style-search: ^0.1.0 + supports-hyperlinks: ^3.0.0 + svg-tags: ^1.0.0 + table: ^6.8.1 + write-file-atomic: ^5.0.1 + bin: + stylelint: bin/stylelint.mjs + checksum: 9835f8a3e3976a3b81a35569d08f5f4a9c3b5cff415f1345a505870afc0c3231acff27f119d937c5bb11fdbc98d554af564c2a648a52604280a59a11974fcbfc + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -31259,6 +31676,16 @@ __metadata: languageName: node linkType: hard +"supports-hyperlinks@npm:^3.0.0": + version: 3.0.0 + resolution: "supports-hyperlinks@npm:3.0.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -31531,6 +31958,19 @@ __metadata: languageName: node linkType: hard +"table@npm:^6.8.1": + version: 6.8.1 + resolution: "table@npm:6.8.1" + dependencies: + ajv: ^8.0.1 + lodash.truncate: ^4.4.2 + slice-ansi: ^4.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + languageName: node + linkType: hard + "tailwindcss@npm:3.0.23": version: 3.0.23 resolution: "tailwindcss@npm:3.0.23" @@ -32289,6 +32729,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + "type-fest@npm:^2.0.0, type-fest@npm:^2.11.2, type-fest@npm:^2.13.0, type-fest@npm:^2.19.0, type-fest@npm:^2.5.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" @@ -32324,6 +32771,29 @@ __metadata: languageName: node linkType: hard +"typed-css-modules@npm:0.8.0": + version: 0.8.0 + resolution: "typed-css-modules@npm:0.8.0" + dependencies: + camelcase: ^6.0.0 + chalk: ^4.0.0 + chokidar: ^3.4.0 + glob: ^10.3.10 + icss-replace-symbols: ^1.1.0 + is-there: ^4.4.2 + mkdirp: ^3.0.0 + postcss: ^8.0.0 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.0 + postcss-modules-scope: ^3.0.0 + postcss-modules-values: ^4.0.0 + yargs: ^17.7.2 + bin: + tcm: lib/cli.js + checksum: d9b1dd47181468993038499820b6a177ee8142d7b4f6775fc5d00a980c1696b04dcfa2d0013a3e0357938cf9404c59bed768cf28a55e5f95e1b74b55d141e79b + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -34159,6 +34629,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -34294,6 +34775,16 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^5.0.1": + version: 5.0.1 + resolution: "write-file-atomic@npm:5.0.1" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 + languageName: node + linkType: hard + "write-json-file@npm:^2.3.0": version: 2.3.0 resolution: "write-json-file@npm:2.3.0"