diff --git a/.bitmap b/.bitmap index bc892e082638..1386f57c1475 100644 --- a/.bitmap +++ b/.bitmap @@ -14,28 +14,40 @@ "scope": "teambit.legacy", "version": "0.0.90", "mainFile": "index.ts", - "rootDir": "components/legacy/analytics" + "rootDir": "components/legacy/analytics", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "api-reference": { "name": "api-reference", "scope": "teambit.api-reference", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/api-reference/api-reference" + "rootDir": "scopes/api-reference/api-reference", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "api-server": { "name": "api-server", "scope": "teambit.harmony", "version": "1.0.1020", "mainFile": "index.ts", - "rootDir": "scopes/harmony/api-server" + "rootDir": "scopes/harmony/api-server", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "application": { "name": "application", "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/application" + "rootDir": "scopes/harmony/application", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "array/duplications-finder": { "name": "array/duplications-finder", @@ -49,7 +61,10 @@ "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/aspect" + "rootDir": "scopes/harmony/aspect", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "aspect-docs/babel": { "name": "aspect-docs/babel", @@ -196,105 +211,150 @@ "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/aspect-loader" + "rootDir": "scopes/harmony/aspect-loader", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "babel": { "name": "babel", "scope": "teambit.compilation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/compilation/babel" + "rootDir": "scopes/compilation/babel", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "babel/bit-react-transformer": { "name": "babel/bit-react-transformer", "scope": "teambit.react", "version": "1.0.49", "mainFile": "index.ts", - "rootDir": "scopes/react/bit-react-transformer" + "rootDir": "scopes/react/bit-react-transformer", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "bit": { "name": "bit", "scope": "teambit.harmony", "version": "1.13.192", "mainFile": "index.ts", - "rootDir": "scopes/harmony/bit" + "rootDir": "scopes/harmony/bit", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "bit-map": { "name": "bit-map", "scope": "teambit.legacy", "version": "0.0.173", "mainFile": "index.ts", - "rootDir": "components/legacy/bit-map" + "rootDir": "components/legacy/bit-map", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "builder": { "name": "builder", "scope": "teambit.pipelines", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/pipelines/builder" + "rootDir": "scopes/pipelines/builder", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "builder-data": { "name": "builder-data", "scope": "teambit.pipelines", "version": "0.0.405", "mainFile": "index.ts", - "rootDir": "scopes/pipelines/modules/builder-data" + "rootDir": "scopes/pipelines/modules/builder-data", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "bundler": { "name": "bundler", "scope": "teambit.compilation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/compilation/bundler" + "rootDir": "scopes/compilation/bundler", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "cache": { "name": "cache", "scope": "teambit.harmony", "version": "0.0.1419", "mainFile": "index.ts", - "rootDir": "scopes/harmony/cache" + "rootDir": "scopes/harmony/cache", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "changelog": { "name": "changelog", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/changelog" + "rootDir": "scopes/component/changelog", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "checkout": { "name": "checkout", "scope": "teambit.component", "version": "1.0.994", "mainFile": "index.ts", - "rootDir": "scopes/component/checkout" + "rootDir": "scopes/component/checkout", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "ci": { "name": "ci", "scope": "teambit.git", "version": "1.0.375", "mainFile": "index.ts", - "rootDir": "scopes/git/ci" + "rootDir": "scopes/git/ci", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "clear-cache": { "name": "clear-cache", "scope": "teambit.workspace", "version": "0.0.546", "mainFile": "index.ts", - "rootDir": "scopes/workspace/clear-cache" + "rootDir": "scopes/workspace/clear-cache", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "cli": { "name": "cli", "scope": "teambit.harmony", "version": "0.0.1326", "mainFile": "index.ts", - "rootDir": "scopes/harmony/cli" + "rootDir": "scopes/harmony/cli", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "cli-mcp-server": { "name": "cli-mcp-server", "scope": "teambit.mcp", "version": "0.0.179", "mainFile": "index.ts", - "rootDir": "scopes/mcp/cli-mcp-server" + "rootDir": "scopes/mcp/cli-mcp-server", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "cli-table": { "name": "cli-table", @@ -322,112 +382,160 @@ "scope": "teambit.cloud", "version": "0.0.1286", "mainFile": "index.ts", - "rootDir": "scopes/cloud/cloud" + "rootDir": "scopes/cloud/cloud", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "code": { "name": "code", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/code" + "rootDir": "scopes/component/code", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "command-bar": { "name": "command-bar", "scope": "teambit.explorer", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/explorer/command-bar" + "rootDir": "scopes/explorer/command-bar", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "community": { "name": "community", "scope": "teambit.community", "version": "1.0.754", "mainFile": "index.ts", - "rootDir": "scopes/community/community" + "rootDir": "scopes/community/community", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "compiler": { "name": "compiler", "scope": "teambit.compilation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/compilation/compiler" + "rootDir": "scopes/compilation/compiler", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component": { "name": "component", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component" + "rootDir": "scopes/component/component", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-compare": { "name": "component-compare", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component-compare" + "rootDir": "scopes/component/component-compare", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-descriptor": { "name": "component-descriptor", "scope": "teambit.component", "version": "0.0.450", "mainFile": "index.ts", - "rootDir": "scopes/component/component-descriptor" + "rootDir": "scopes/component/component-descriptor", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-diff": { "name": "component-diff", "scope": "teambit.legacy", "version": "0.0.171", "mainFile": "index.ts", - "rootDir": "components/legacy/component-diff" + "rootDir": "components/legacy/component-diff", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "component-issues": { "name": "component-issues", "scope": "teambit.component", "version": "0.0.171", "mainFile": "index.ts", - "rootDir": "components/component-issues" + "rootDir": "components/component-issues", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "component-list": { "name": "component-list", "scope": "teambit.legacy", "version": "0.0.170", "mainFile": "index.ts", - "rootDir": "components/legacy/component-list" + "rootDir": "components/legacy/component-list", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "component-log": { "name": "component-log", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component-log" + "rootDir": "scopes/component/component-log", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-package-version": { "name": "component-package-version", "scope": "teambit.component", "version": "0.0.449", "mainFile": "index.ts", - "rootDir": "scopes/component/component-package-version" + "rootDir": "scopes/component/component-package-version", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "component-sizer": { "name": "component-sizer", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component-sizer" + "rootDir": "scopes/component/component-sizer", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-tree": { "name": "component-tree", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component-tree" + "rootDir": "scopes/component/component-tree", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "component-writer": { "name": "component-writer", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/component-writer" + "rootDir": "scopes/component/component-writer", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "composition-card": { "name": "composition-card", @@ -441,56 +549,80 @@ "scope": "teambit.compositions", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/compositions/compositions" + "rootDir": "scopes/compositions/compositions", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "config": { "name": "config", "scope": "teambit.harmony", "version": "0.0.1501", "mainFile": "index.ts", - "rootDir": "scopes/harmony/config" + "rootDir": "scopes/harmony/config", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "config-merger": { "name": "config-merger", "scope": "teambit.workspace", "version": "0.0.860", "mainFile": "index.ts", - "rootDir": "scopes/workspace/config-merger" + "rootDir": "scopes/workspace/config-merger", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "config-store": { "name": "config-store", "scope": "teambit.harmony", "version": "0.0.207", "mainFile": "index.ts", - "rootDir": "components/config-store" + "rootDir": "components/config-store", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "constants": { "name": "constants", "scope": "teambit.legacy", "version": "0.0.26", "mainFile": "constants.ts", - "rootDir": "components/legacy/constants" + "rootDir": "components/legacy/constants", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "consumer": { "name": "consumer", "scope": "teambit.legacy", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "components/legacy/consumer" + "rootDir": "components/legacy/consumer", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "consumer-component": { "name": "consumer-component", "scope": "teambit.legacy", "version": "0.0.117", "mainFile": "index.ts", - "rootDir": "components/legacy/consumer-component" + "rootDir": "components/legacy/consumer-component", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "consumer-config": { "name": "consumer-config", "scope": "teambit.legacy", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "components/legacy/consumer-config" + "rootDir": "components/legacy/consumer-config", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "content/cli-reference": { "name": "content/cli-reference", @@ -504,182 +636,260 @@ "scope": "teambit.toolbox", "version": "0.0.15", "mainFile": "index.ts", - "rootDir": "components/crypto/sha1" + "rootDir": "components/crypto/sha1", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "dependencies": { "name": "dependencies", "scope": "teambit.dependencies", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/dependencies/dependencies" + "rootDir": "scopes/dependencies/dependencies", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "dependency-graph": { "name": "dependency-graph", "scope": "teambit.legacy", "version": "0.0.119", "mainFile": "index.ts", - "rootDir": "components/legacy/dependency-graph" + "rootDir": "components/legacy/dependency-graph", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "dependency-resolver": { "name": "dependency-resolver", "scope": "teambit.dependencies", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/dependencies/dependency-resolver" + "rootDir": "scopes/dependencies/dependency-resolver", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "deprecation": { "name": "deprecation", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/deprecation" + "rootDir": "scopes/component/deprecation", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "dev-files": { "name": "dev-files", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/dev-files" + "rootDir": "scopes/component/dev-files", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "diagnostic": { "name": "diagnostic", "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/diagnostic" + "rootDir": "scopes/harmony/diagnostic", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "doc-parser": { "name": "doc-parser", "scope": "teambit.semantics", "version": "0.0.124", "mainFile": "index.ts", - "rootDir": "components/semantics/doc-parser" + "rootDir": "components/semantics/doc-parser", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "docs": { "name": "docs", "scope": "teambit.docs", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/docs/docs" + "rootDir": "scopes/docs/docs", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "doctor": { "name": "doctor", "scope": "teambit.harmony", "version": "0.0.678", "mainFile": "index.ts", - "rootDir": "scopes/harmony/doctor" + "rootDir": "scopes/harmony/doctor", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "e2e-helper": { "name": "e2e-helper", "scope": "teambit.legacy", "version": "0.0.156", "mainFile": "index.ts", - "rootDir": "components/legacy/e2e-helper" + "rootDir": "components/legacy/e2e-helper", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "eject": { "name": "eject", "scope": "teambit.workspace", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/workspace/eject" + "rootDir": "scopes/workspace/eject", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "entities/lane-diff": { "name": "entities/lane-diff", "scope": "teambit.lanes", "version": "0.0.188", "mainFile": "index.ts", - "rootDir": "scopes/lanes/entities/lane-diff" + "rootDir": "scopes/lanes/entities/lane-diff", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "entities/semantic-schema": { "name": "entities/semantic-schema", "scope": "teambit.semantics", "version": "0.0.102", "mainFile": "index.ts", - "rootDir": "components/entities/semantic-schema" + "rootDir": "components/entities/semantic-schema", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "entities/semantic-schema-diff": { "name": "entities/semantic-schema-diff", "scope": "teambit.semantics", "version": "0.0.2", "mainFile": "index.ts", - "rootDir": "components/entities/semantic-schema-diff" + "rootDir": "components/entities/semantic-schema-diff", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "env": { "name": "env", "scope": "teambit.envs", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/envs/env" + "rootDir": "scopes/envs/env", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "envs": { "name": "envs", "scope": "teambit.envs", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/envs/envs" + "rootDir": "scopes/envs/envs", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "eslint": { "name": "eslint", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/eslint" + "rootDir": "scopes/defender/eslint", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "eslint-config-bit-react": { "name": "eslint-config-bit-react", "scope": "teambit.react", "version": "2.0.10", "mainFile": "index.js", - "rootDir": "scopes/react/eslint-config-bit-react" + "rootDir": "scopes/react/eslint-config-bit-react", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "eslint/config-mutator": { "name": "eslint/config-mutator", "scope": "teambit.defender", "version": "0.0.122", "mainFile": "index.ts", - "rootDir": "scopes/defender/eslint-config-mutator" + "rootDir": "scopes/defender/eslint-config-mutator", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "export": { "name": "export", "scope": "teambit.scope", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/scope/export" + "rootDir": "scopes/scope/export", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "express": { "name": "express", "scope": "teambit.harmony", "version": "0.0.1425", "mainFile": "index.ts", - "rootDir": "scopes/harmony/express" + "rootDir": "scopes/harmony/express", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "extension-data": { "name": "extension-data", "scope": "teambit.legacy", "version": "0.0.118", "mainFile": "index.ts", - "rootDir": "components/legacy/extension-data" + "rootDir": "components/legacy/extension-data", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "forking": { "name": "forking", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/forking" + "rootDir": "scopes/component/forking", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "formatter": { "name": "formatter", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/formatter" + "rootDir": "scopes/defender/formatter", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "fs/extension-getter": { "name": "fs/extension-getter", "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/fs/extension-getter" + "rootDir": "scopes/toolbox/fs/extension-getter", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "fs/hard-link-directory": { "name": "fs/hard-link-directory", @@ -693,98 +903,140 @@ "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/fs/is-dir-empty" + "rootDir": "scopes/toolbox/fs/is-dir-empty", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "fs/last-modified": { "name": "fs/last-modified", "scope": "teambit.toolbox", "version": "0.0.14", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/fs/last-modified" + "rootDir": "scopes/toolbox/fs/last-modified", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "fs/link-or-symlink": { "name": "fs/link-or-symlink", "scope": "teambit.toolbox", "version": "0.0.44", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/fs/link-or-symlink" + "rootDir": "scopes/toolbox/fs/link-or-symlink", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "fs/linked-dependencies": { "name": "fs/linked-dependencies", "scope": "teambit.dependencies", "version": "0.0.52", "mainFile": "index.ts", - "rootDir": "scopes/dependencies/fs/linked-dependencies" + "rootDir": "scopes/dependencies/fs/linked-dependencies", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "fs/remove-empty-dir": { "name": "fs/remove-empty-dir", "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/fs/remove-empty-dir" + "rootDir": "scopes/toolbox/fs/remove-empty-dir", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "generator": { "name": "generator", "scope": "teambit.generator", "version": "1.0.994", "mainFile": "index.ts", - "rootDir": "scopes/generator/generator" + "rootDir": "scopes/generator/generator", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "get-bit-version": { "name": "get-bit-version", "scope": "teambit.bit", "version": "0.0.15", "mainFile": "index.ts", - "rootDir": "components/bit/get-bit-version" + "rootDir": "components/bit/get-bit-version", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "git": { "name": "git", "scope": "teambit.git", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/git/git" + "rootDir": "scopes/git/git", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "global-config": { "name": "global-config", "scope": "teambit.harmony", "version": "0.0.1330", "mainFile": "index.ts", - "rootDir": "scopes/harmony/global-config" + "rootDir": "scopes/harmony/global-config", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "graph": { "name": "graph", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/graph" + "rootDir": "scopes/component/graph", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "graphql": { "name": "graphql", "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/graphql" + "rootDir": "scopes/harmony/graphql", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "harmony-ui-app": { "name": "harmony-ui-app", "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/harmony-ui-app/harmony-ui-app" + "rootDir": "scopes/ui-foundation/harmony-ui-app/harmony-ui-app", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "hooks/use-cloud-scopes": { "name": "hooks/use-cloud-scopes", "scope": "teambit.cloud", "version": "0.0.20", "mainFile": "index.ts", - "rootDir": "scopes/cloud/hooks/use-cloud-scopes" + "rootDir": "scopes/cloud/hooks/use-cloud-scopes", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "hooks/use-current-user": { "name": "hooks/use-current-user", "scope": "teambit.cloud", "version": "0.0.24", "mainFile": "index.ts", - "rootDir": "scopes/cloud/hooks/use-current-user" + "rootDir": "scopes/cloud/hooks/use-current-user", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "hooks/use-lane-components": { "name": "hooks/use-lane-components", @@ -805,7 +1057,10 @@ "scope": "teambit.cloud", "version": "0.0.18", "mainFile": "index.ts", - "rootDir": "scopes/cloud/hooks/use-logout" + "rootDir": "scopes/cloud/hooks/use-logout", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "hooks/use-navigation-message-listener": { "name": "hooks/use-navigation-message-listener", @@ -826,63 +1081,90 @@ "scope": "teambit.lanes", "version": "0.0.255", "mainFile": "index.ts", - "rootDir": "components/hooks/use-viewed-lane-from-url_1" + "rootDir": "components/hooks/use-viewed-lane-from-url_1", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "host-initializer": { "name": "host-initializer", "scope": "teambit.harmony", "version": "0.0.706", "mainFile": "index.ts", - "rootDir": "scopes/harmony/host-initializer" + "rootDir": "scopes/harmony/host-initializer", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "importer": { "name": "importer", "scope": "teambit.scope", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/scope/importer" + "rootDir": "scopes/scope/importer", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "insights": { "name": "insights", "scope": "teambit.explorer", "version": "1.0.994", "mainFile": "index.ts", - "rootDir": "scopes/explorer/insights" + "rootDir": "scopes/explorer/insights", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "install": { "name": "install", "scope": "teambit.workspace", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/workspace/install" + "rootDir": "scopes/workspace/install", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "ipc-events": { "name": "ipc-events", "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/ipc-events" + "rootDir": "scopes/harmony/ipc-events", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "isolator": { "name": "isolator", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/isolator" + "rootDir": "scopes/component/isolator", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "issues": { "name": "issues", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/issues" + "rootDir": "scopes/component/issues", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "jest": { "name": "jest", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/jest" + "rootDir": "scopes/defender/jest", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "json/jsonc-utils": { "name": "json/jsonc-utils", @@ -896,35 +1178,50 @@ "scope": "teambit.lanes", "version": "1.0.1010", "mainFile": "index.ts", - "rootDir": "scopes/lanes/lanes" + "rootDir": "scopes/lanes/lanes", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "legacy-component-log": { "name": "legacy-component-log", "scope": "teambit.component", "version": "0.0.417", "mainFile": "index.ts", - "rootDir": "components/legacy-component-log" + "rootDir": "components/legacy-component-log", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "linter": { "name": "linter", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/linter" + "rootDir": "scopes/defender/linter", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "lister": { "name": "lister", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/lister" + "rootDir": "scopes/component/lister", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "loader": { "name": "loader", "scope": "teambit.legacy", "version": "0.0.18", "mainFile": "index.ts", - "rootDir": "components/legacy/loader" + "rootDir": "components/legacy/loader", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "mcp-config-writer": { "name": "mcp-config-writer", @@ -945,21 +1242,30 @@ "scope": "teambit.lanes", "version": "1.0.1010", "mainFile": "index.ts", - "rootDir": "scopes/lanes/merge-lanes" + "rootDir": "scopes/lanes/merge-lanes", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "merging": { "name": "merging", "scope": "teambit.component", "version": "1.0.995", "mainFile": "index.ts", - "rootDir": "scopes/component/merging" + "rootDir": "scopes/component/merging", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "mocha": { "name": "mocha", "scope": "teambit.defender", "version": "1.0.844", "mainFile": "index.ts", - "rootDir": "scopes/defender/mocha" + "rootDir": "scopes/defender/mocha", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "model/composition-id": { "name": "model/composition-id", @@ -973,28 +1279,40 @@ "scope": "teambit.compositions", "version": "0.0.519", "mainFile": "index.ts", - "rootDir": "scopes/compositions/model/composition-type" + "rootDir": "scopes/compositions/model/composition-type", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "models/cloud-scope": { "name": "models/cloud-scope", "scope": "teambit.cloud", "version": "0.0.19", "mainFile": "index.ts", - "rootDir": "scopes/cloud/models/cloud-scope" + "rootDir": "scopes/cloud/models/cloud-scope", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "models/cloud-user": { "name": "models/cloud-user", "scope": "teambit.cloud", "version": "0.0.19", "mainFile": "index.ts", - "rootDir": "scopes/cloud/models/cloud-user" + "rootDir": "scopes/cloud/models/cloud-user", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "models/scope-model": { "name": "models/scope-model", "scope": "teambit.scope", "version": "0.0.548", "mainFile": "index.ts", - "rootDir": "scopes/scope/models/scope-model" + "rootDir": "scopes/scope/models/scope-model", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/babel-compiler": { "name": "modules/babel-compiler", @@ -1008,21 +1326,30 @@ "scope": "teambit.pkg", "version": "0.0.123", "mainFile": "index.ts", - "rootDir": "components/modules/component-package-name" + "rootDir": "components/modules/component-package-name", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/component-url": { "name": "modules/component-url", "scope": "teambit.component", "version": "0.0.189", "mainFile": "index.ts", - "rootDir": "scopes/component/component-url" + "rootDir": "scopes/component/component-url", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/concurrency": { "name": "modules/concurrency", "scope": "teambit.harmony", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/concurrency" + "rootDir": "scopes/harmony/modules/concurrency", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/config-mutator": { "name": "modules/config-mutator", @@ -1036,21 +1363,30 @@ "scope": "teambit.html", "version": "0.0.124", "mainFile": "index.ts", - "rootDir": "scopes/html/modules/create-element-from-string" + "rootDir": "scopes/html/modules/create-element-from-string", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/create-lane": { "name": "modules/create-lane", "scope": "teambit.lanes", "version": "0.0.151", "mainFile": "index.ts", - "rootDir": "scopes/lanes/modules/create-lane" + "rootDir": "scopes/lanes/modules/create-lane", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/diff": { "name": "modules/diff", "scope": "teambit.lanes", "version": "0.0.619", "mainFile": "index.ts", - "rootDir": "scopes/lanes/diff" + "rootDir": "scopes/lanes/diff", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/feature-toggle": { "name": "modules/feature-toggle", @@ -1064,105 +1400,150 @@ "scope": "teambit.html", "version": "0.0.124", "mainFile": "index.ts", - "rootDir": "scopes/html/modules/fetch-html-from-url" + "rootDir": "scopes/html/modules/fetch-html-from-url", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/find-scope-path": { "name": "modules/find-scope-path", "scope": "teambit.scope", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "components/modules/find-scope-path" + "rootDir": "components/modules/find-scope-path", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/fs-cache": { "name": "modules/fs-cache", "scope": "teambit.workspace", "version": "0.0.52", "mainFile": "index.ts", - "rootDir": "scopes/workspace/modules/fs-cache" + "rootDir": "scopes/workspace/modules/fs-cache", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/generate-asset-manifest": { "name": "modules/generate-asset-manifest", "scope": "teambit.rspack", "version": "0.0.4", "mainFile": "index.ts", - "rootDir": "components/modules/generate-asset-manifest" + "rootDir": "components/modules/generate-asset-manifest", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "modules/generate-expose-loaders": { "name": "modules/generate-expose-loaders", "scope": "teambit.webpack", "version": "0.0.31", "mainFile": "index.ts", - "rootDir": "scopes/webpack/modules/generate-expose-loaders" + "rootDir": "scopes/webpack/modules/generate-expose-loaders", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/generate-externals": { "name": "modules/generate-externals", "scope": "teambit.webpack", "version": "0.0.31", "mainFile": "index.ts", - "rootDir": "scopes/webpack/modules/generate-externals" + "rootDir": "scopes/webpack/modules/generate-externals", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/generate-style-loaders": { "name": "modules/generate-style-loaders", "scope": "teambit.webpack", "version": "1.0.25", "mainFile": "index.ts", - "rootDir": "scopes/webpack/modules/generate-style-loaders" + "rootDir": "scopes/webpack/modules/generate-style-loaders", + "config": { + "teambit.node/node@2.0.1": {} + } }, "modules/get-basic-log": { "name": "modules/get-basic-log", "scope": "teambit.harmony", "version": "0.0.117", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/get-basic-log" + "rootDir": "scopes/harmony/modules/get-basic-log", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/get-cloud-user": { "name": "modules/get-cloud-user", "scope": "teambit.cloud", "version": "0.0.117", "mainFile": "index.ts", - "rootDir": "scopes/cloud/modules/get-cloud-user" + "rootDir": "scopes/cloud/modules/get-cloud-user", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/git-executable": { "name": "modules/git-executable", "scope": "teambit.git", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "scopes/git/modules/git-executable" + "rootDir": "scopes/git/modules/git-executable", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/harmony-root-generator": { "name": "modules/harmony-root-generator", "scope": "teambit.harmony", "version": "0.0.32", "mainFile": "index.ts", - "rootDir": "components/modules/harmony-root-generator" + "rootDir": "components/modules/harmony-root-generator", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/ignore-file-reader": { "name": "modules/ignore-file-reader", "scope": "teambit.git", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "scopes/git/modules/ignore-file-reader" + "rootDir": "scopes/git/modules/ignore-file-reader", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/in-memory-cache": { "name": "modules/in-memory-cache", "scope": "teambit.harmony", "version": "0.0.30", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/in-memory-cache" + "rootDir": "scopes/harmony/modules/in-memory-cache", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/match-pattern": { "name": "modules/match-pattern", "scope": "teambit.workspace", "version": "0.0.520", "mainFile": "index.ts", - "rootDir": "scopes/workspace/modules/match-pattern" + "rootDir": "scopes/workspace/modules/match-pattern", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/merge-component-results": { "name": "modules/merge-component-results", "scope": "teambit.pipelines", "version": "0.0.512", "mainFile": "index.ts", - "rootDir": "scopes/pipelines/modules/merge-component-results" + "rootDir": "scopes/pipelines/modules/merge-component-results", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/merge-helper": { "name": "modules/merge-helper", @@ -1176,49 +1557,70 @@ "scope": "teambit.toolbox", "version": "0.0.19", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/modules/module-resolver" + "rootDir": "scopes/toolbox/modules/module-resolver", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "modules/node-modules-linker": { "name": "modules/node-modules-linker", "scope": "teambit.workspace", "version": "0.0.347", "mainFile": "index.ts", - "rootDir": "scopes/workspace/modules/node-modules-linker" + "rootDir": "scopes/workspace/modules/node-modules-linker", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/requireable-component": { "name": "modules/requireable-component", "scope": "teambit.harmony", "version": "0.0.513", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/requireable-component" + "rootDir": "scopes/harmony/modules/requireable-component", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/resolved-component": { "name": "modules/resolved-component", "scope": "teambit.harmony", "version": "0.0.513", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/resolved-component" + "rootDir": "scopes/harmony/modules/resolved-component", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/semver-helper": { "name": "modules/semver-helper", "scope": "teambit.pkg", "version": "0.0.22", "mainFile": "index.ts", - "rootDir": "scopes/pkg/modules/semver-helper" + "rootDir": "scopes/pkg/modules/semver-helper", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/send-server-sent-events": { "name": "modules/send-server-sent-events", "scope": "teambit.harmony", "version": "0.0.17", "mainFile": "index.ts", - "rootDir": "scopes/harmony/modules/send-server-sent-events" + "rootDir": "scopes/harmony/modules/send-server-sent-events", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/style-regexps": { "name": "modules/style-regexps", "scope": "teambit.webpack", "version": "1.0.20", "mainFile": "index.ts", - "rootDir": "scopes/webpack/style-regexps" + "rootDir": "scopes/webpack/style-regexps", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "modules/ts-config-mutator": { "name": "modules/ts-config-mutator", @@ -1232,49 +1634,70 @@ "scope": "teambit.workspace", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "scopes/workspace/modules/workspace-locator" + "rootDir": "scopes/workspace/modules/workspace-locator", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "mover": { "name": "mover", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/mover" + "rootDir": "scopes/component/mover", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "multi-compiler": { "name": "multi-compiler", "scope": "teambit.compilation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/compilation/multi-compiler" + "rootDir": "scopes/compilation/multi-compiler", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "multi-tester": { "name": "multi-tester", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/multi-tester" + "rootDir": "scopes/defender/multi-tester", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "network": { "name": "network", "scope": "teambit.scope", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "scopes/scope/network" + "rootDir": "scopes/scope/network", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "network/get-port": { "name": "network/get-port", "scope": "teambit.toolbox", "version": "1.0.20", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/network/get-port" + "rootDir": "scopes/toolbox/network/get-port", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "new-component-helper": { "name": "new-component-helper", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/new-component-helper" + "rootDir": "scopes/component/new-component-helper", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "node": { "name": "node", @@ -1288,14 +1711,20 @@ "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/notifications/aspect" + "rootDir": "scopes/ui-foundation/notifications/aspect", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "objects": { "name": "objects", "scope": "teambit.scope", "version": "0.0.500", "mainFile": "index.ts", - "rootDir": "scopes/scope/objects" + "rootDir": "scopes/scope/objects", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "overview/renderers/grouped-schema-nodes-overview-summary": { "name": "overview/renderers/grouped-schema-nodes-overview-summary", @@ -1309,7 +1738,10 @@ "scope": "teambit.ui-foundation", "version": "0.0.1329", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/panels" + "rootDir": "scopes/ui-foundation/panels", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "panels/composition-gallery": { "name": "panels/composition-gallery", @@ -1323,91 +1755,130 @@ "scope": "teambit.toolbox", "version": "0.0.508", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/path/is-path-inside" + "rootDir": "scopes/toolbox/path/is-path-inside", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "path/match-patterns": { "name": "path/match-patterns", "scope": "teambit.toolbox", "version": "0.0.27", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/path/match-patterns" + "rootDir": "scopes/toolbox/path/match-patterns", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "path/path": { "name": "path/path", "scope": "teambit.toolbox", "version": "0.0.16", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/path/path" + "rootDir": "scopes/toolbox/path/path", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "path/to-windows-compatible-path": { "name": "path/to-windows-compatible-path", "scope": "teambit.toolbox", "version": "0.0.508", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/path/to-windows-compatible-path" + "rootDir": "scopes/toolbox/path/to-windows-compatible-path", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "pkg": { "name": "pkg", "scope": "teambit.pkg", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/pkg/pkg" + "rootDir": "scopes/pkg/pkg", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "plugins/inject-head-webpack-plugin": { "name": "plugins/inject-head-webpack-plugin", "scope": "teambit.webpack", "version": "0.0.24", "mainFile": "index.ts", - "rootDir": "scopes/webpack/plugins/inject-head-webpack-plugin" + "rootDir": "scopes/webpack/plugins/inject-head-webpack-plugin", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "plugins/manifest-plugin": { "name": "plugins/manifest-plugin", "scope": "teambit.rspack", "version": "0.0.3", "mainFile": "index.ts", - "rootDir": "components/plugins/manifest-plugin" + "rootDir": "components/plugins/manifest-plugin", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "pnpm": { "name": "pnpm", "scope": "teambit.dependencies", "version": "1.0.1023", "mainFile": "index.ts", - "rootDir": "scopes/dependencies/pnpm" + "rootDir": "scopes/dependencies/pnpm", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "prettier": { "name": "prettier", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/prettier" + "rootDir": "scopes/defender/prettier", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "prettier/config-mutator": { "name": "prettier/config-mutator", "scope": "teambit.defender", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "scopes/defender/prettier-config-mutator" + "rootDir": "scopes/defender/prettier-config-mutator", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "preview": { "name": "preview", "scope": "teambit.preview", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/preview/preview" + "rootDir": "scopes/preview/preview", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "promise/map-pool": { "name": "promise/map-pool", "scope": "teambit.toolbox", "version": "0.0.14", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/promise/map-pool" + "rootDir": "scopes/toolbox/promise/map-pool", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "pubsub": { "name": "pubsub", "scope": "teambit.harmony", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/harmony/pubsub" + "rootDir": "scopes/harmony/pubsub", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "react": { "name": "react", @@ -1421,7 +1892,10 @@ "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/react-router/react-router" + "rootDir": "scopes/ui-foundation/react-router/react-router", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "readme": { "name": "readme", @@ -1435,35 +1909,50 @@ "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/refactoring" + "rootDir": "scopes/component/refactoring", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "remote-actions": { "name": "remote-actions", "scope": "teambit.scope", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "scopes/scope/remote-actions" + "rootDir": "scopes/scope/remote-actions", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "remotes": { "name": "remotes", "scope": "teambit.scope", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "components/scope/remotes" + "rootDir": "components/scope/remotes", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "remove": { "name": "remove", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/remove" + "rootDir": "scopes/component/remove", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "renaming": { "name": "renaming", "scope": "teambit.component", "version": "1.0.994", "mainFile": "index.ts", - "rootDir": "scopes/component/renaming" + "rootDir": "scopes/component/renaming", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "renderers/default-node-renderers": { "name": "renderers/default-node-renderers", @@ -1484,21 +1973,30 @@ "scope": "teambit.cloud", "version": "0.0.72", "mainFile": "index.ts", - "rootDir": "scopes/cloud/ripple" + "rootDir": "scopes/cloud/ripple", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "schema": { "name": "schema", "scope": "teambit.semantics", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/semantics/schema" + "rootDir": "scopes/semantics/schema", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "scope-api": { "name": "scope-api", "scope": "teambit.legacy", "version": "0.0.171", "mainFile": "index.ts", - "rootDir": "components/legacy/scope-api" + "rootDir": "components/legacy/scope-api", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "scripts": { "name": "scripts", @@ -1512,84 +2010,120 @@ "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/sidebar" + "rootDir": "scopes/ui-foundation/sidebar", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "snap-distance": { "name": "snap-distance", "scope": "teambit.component", "version": "0.0.117", "mainFile": "index.ts", - "rootDir": "scopes/component/snap-distance" + "rootDir": "scopes/component/snap-distance", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "snapping": { "name": "snapping", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/snapping" + "rootDir": "scopes/component/snapping", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "sources": { "name": "sources", "scope": "teambit.component", "version": "0.0.168", "mainFile": "index.ts", - "rootDir": "scopes/component/sources" + "rootDir": "scopes/component/sources", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "stash": { "name": "stash", "scope": "teambit.component", "version": "1.0.994", "mainFile": "index.ts", - "rootDir": "scopes/component/stash" + "rootDir": "scopes/component/stash", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "status": { "name": "status", "scope": "teambit.component", "version": "1.0.1014", "mainFile": "index.ts", - "rootDir": "scopes/component/status" + "rootDir": "scopes/component/status", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "string/capitalize": { "name": "string/capitalize", "scope": "teambit.toolbox", "version": "0.0.508", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/capitalize" + "rootDir": "scopes/toolbox/string/capitalize", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "string/ellipsis": { "name": "string/ellipsis", "scope": "teambit.toolbox", "version": "0.0.199", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/ellipsis" + "rootDir": "scopes/toolbox/string/ellipsis", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "string/eol": { "name": "string/eol", "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/eol" + "rootDir": "scopes/toolbox/string/eol", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "string/get-initials": { "name": "string/get-initials", "scope": "teambit.toolbox", "version": "0.0.509", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/get-initials" + "rootDir": "scopes/toolbox/string/get-initials", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "string/random": { "name": "string/random", "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/random" + "rootDir": "scopes/toolbox/string/random", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "string/strip-trailing-char": { "name": "string/strip-trailing-char", "scope": "teambit.toolbox", "version": "0.0.508", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/string/strip-trailing-char" + "rootDir": "scopes/toolbox/string/strip-trailing-char", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "tagged-exports": { "name": "tagged-exports", @@ -1603,98 +2137,140 @@ "scope": "teambit.harmony", "version": "0.0.1419", "mainFile": "index.ts", - "rootDir": "scopes/harmony/logger" + "rootDir": "scopes/harmony/logger", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "teambit.legacy/logger": { "name": "logger", "scope": "teambit.legacy", "version": "0.0.38", "mainFile": "index.ts", - "rootDir": "components/legacy/logger" + "rootDir": "components/legacy/logger", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "teambit.legacy/scope": { "name": "scope", "scope": "teambit.legacy", "version": "0.0.116", "mainFile": "index.ts", - "rootDir": "components/legacy/scope" + "rootDir": "components/legacy/scope", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "teambit.scope/scope": { "name": "scope", "scope": "teambit.scope", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/scope/scope" + "rootDir": "scopes/scope/scope", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "tester": { "name": "tester", "scope": "teambit.defender", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/defender/tester" + "rootDir": "scopes/defender/tester", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "testing/load-aspect": { "name": "testing/load-aspect", "scope": "teambit.harmony", "version": "0.0.381", "mainFile": "index.ts", - "rootDir": "scopes/harmony/testing/load-aspect" + "rootDir": "scopes/harmony/testing/load-aspect", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "testing/mock-components": { "name": "testing/mock-components", "scope": "teambit.component", "version": "0.0.386", "mainFile": "index.ts", - "rootDir": "scopes/component/testing/mock-components" + "rootDir": "scopes/component/testing/mock-components", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "testing/mock-workspace": { "name": "testing/mock-workspace", "scope": "teambit.workspace", "version": "0.0.183", "mainFile": "index.ts", - "rootDir": "scopes/workspace/testing/mock-workspace" + "rootDir": "scopes/workspace/testing/mock-workspace", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "time/timer": { "name": "time/timer", "scope": "teambit.toolbox", "version": "0.0.13", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/time/timer" + "rootDir": "scopes/toolbox/time/timer", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "tracker": { "name": "tracker", "scope": "teambit.component", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/component/tracker" + "rootDir": "scopes/component/tracker", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "ts-server": { "name": "ts-server", "scope": "teambit.typescript", "version": "0.0.79", "mainFile": "index.ts", - "rootDir": "scopes/typescript/ts-server" + "rootDir": "scopes/typescript/ts-server", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "types/serializable": { "name": "types/serializable", "scope": "teambit.toolbox", "version": "0.0.509", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/types/serializable" + "rootDir": "scopes/toolbox/types/serializable", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "typescript": { "name": "typescript", "scope": "teambit.typescript", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/typescript/typescript" + "rootDir": "scopes/typescript/typescript", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "ui": { "name": "ui", "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/ui" + "rootDir": "scopes/ui-foundation/ui", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "ui/aspect-box": { "name": "ui/aspect-box", @@ -1722,7 +2298,10 @@ "scope": "teambit.code", "version": "0.0.346", "mainFile": "index.ts", - "rootDir": "components/ui/code-compare" + "rootDir": "components/ui/code-compare", + "config": { + "teambit.react/v17/react-env@1.2.6": {} + } }, "ui/code-editor": { "name": "ui/code-editor", @@ -1757,7 +2336,10 @@ "scope": "teambit.component", "version": "0.0.258", "mainFile": "index.ts", - "rootDir": "components/ui/component-compare/component-compare" + "rootDir": "components/ui/component-compare/component-compare", + "config": { + "teambit.react/v17/react-env@1.2.6": {} + } }, "ui/component-compare/context": { "name": "ui/component-compare/context", @@ -1771,7 +2353,10 @@ "scope": "teambit.component", "version": "0.0.127", "mainFile": "index.ts", - "rootDir": "components/ui/component-compare/models/component-compare-props" + "rootDir": "components/ui/component-compare/models/component-compare-props", + "config": { + "teambit.react/v17/react-env@1.2.6": {} + } }, "ui/component-compare/utils/lazy-loading": { "name": "ui/component-compare/utils/lazy-loading", @@ -1911,7 +2496,10 @@ "scope": "teambit.react", "version": "0.0.222", "mainFile": "index.ts", - "rootDir": "scopes/react/ui/highlighter-provider" + "rootDir": "scopes/react/ui/highlighter-provider", + "config": { + "teambit.react/internal/base-react-env@1.1.3": {} + } }, "ui/hooks/scope-context": { "name": "ui/hooks/scope-context", @@ -2009,7 +2597,10 @@ "scope": "teambit.ui-foundation", "version": "0.0.522", "mainFile": "index.ts", - "rootDir": "components/ui/react-router/slot-router" + "rootDir": "components/ui/react-router/slot-router", + "config": { + "teambit.react/v17/react-env@1.2.6": {} + } }, "ui/rendering/html": { "name": "ui/rendering/html", @@ -2023,7 +2614,10 @@ "scope": "teambit.ui-foundation", "version": "0.0.933", "mainFile": "index.ts", - "rootDir": "components/ui/side-bar" + "rootDir": "components/ui/side-bar", + "config": { + "teambit.react/v17/react-env@1.2.6": {} + } }, "ui/test-compare": { "name": "ui/test-compare", @@ -2093,98 +2687,140 @@ "scope": "teambit.toolbox", "version": "0.0.512", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/url/add-avatar-query-params" + "rootDir": "scopes/toolbox/url/add-avatar-query-params", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "url/query-string": { "name": "url/query-string", "scope": "teambit.toolbox", "version": "0.0.508", "mainFile": "index.ts", - "rootDir": "scopes/toolbox/url/query-string" + "rootDir": "scopes/toolbox/url/query-string", + "config": { + "teambit.node/envs/node-typescript-mocha@0.1.7": {} + } }, "user-agent": { "name": "user-agent", "scope": "teambit.ui-foundation", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/ui-foundation/user-agent" + "rootDir": "scopes/ui-foundation/user-agent", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "utils": { "name": "utils", "scope": "teambit.legacy", "version": "0.0.37", "mainFile": "index.ts", - "rootDir": "components/legacy/utils" + "rootDir": "components/legacy/utils", + "config": { + "teambit.node/envs/node-babel-mocha@0.2.9": {} + } }, "validator": { "name": "validator", "scope": "teambit.defender", "version": "0.0.229", "mainFile": "index.ts", - "rootDir": "scopes/defender/validator" + "rootDir": "scopes/defender/validator", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "variants": { "name": "variants", "scope": "teambit.workspace", "version": "0.0.1594", "mainFile": "index.ts", - "rootDir": "scopes/workspace/variants" + "rootDir": "scopes/workspace/variants", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "version-history": { "name": "version-history", "scope": "teambit.scope", "version": "0.0.785", "mainFile": "index.ts", - "rootDir": "scopes/scope/version-history" + "rootDir": "scopes/scope/version-history", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "vue-aspect": { "name": "vue-aspect", "scope": "teambit.vue", "version": "0.0.359", "mainFile": "index.ts", - "rootDir": "scopes/vue/vue" + "rootDir": "scopes/vue/vue", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "watcher": { "name": "watcher", "scope": "teambit.workspace", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/workspace/watcher" + "rootDir": "scopes/workspace/watcher", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "webpack": { "name": "webpack", "scope": "teambit.webpack", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/webpack/webpack" + "rootDir": "scopes/webpack/webpack", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "worker": { "name": "worker", "scope": "teambit.harmony", "version": "0.0.1630", "mainFile": "index.ts", - "rootDir": "scopes/harmony/worker" + "rootDir": "scopes/harmony/worker", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "workspace": { "name": "workspace", "scope": "teambit.workspace", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/workspace/workspace" + "rootDir": "scopes/workspace/workspace", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "workspace-config-files": { "name": "workspace-config-files", "scope": "teambit.workspace", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/workspace/workspace-config-files" + "rootDir": "scopes/workspace/workspace-config-files", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "yarn": { "name": "yarn", "scope": "teambit.dependencies", "version": "1.0.993", "mainFile": "index.ts", - "rootDir": "scopes/dependencies/yarn" + "rootDir": "scopes/dependencies/yarn", + "config": { + "teambit.harmony/envs/core-aspect-env@0.1.5": {} + } }, "$schema-version": "17.0.0" } \ No newline at end of file diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a4021606e13..e20b9147652b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -393,7 +393,7 @@ commands: - restore_cache: key: bitsrc-registry10 - restore_cache: - key: core-aspect-env-v0.1.4-v1 + key: core-aspect-env-v0.1.5-v1 - run: npm view @teambit/bit version > ./version.txt - restore_cache: key: v3-linux-bvm-folder-{{ checksum "version.txt" }} @@ -476,7 +476,7 @@ commands: - restore_cache: key: bitsrc-registry10 - restore_cache: - key: core-aspect-env-v0.1.4-v1 + key: core-aspect-env-v0.1.5-v1 - run: npm view @teambit/bit version > ./version.txt - restore_cache: key: v3-linux-bvm-folder-{{ checksum "version.txt" }} @@ -582,7 +582,7 @@ jobs: name: bbit install command: cd bit && bbit install - save_cache: - key: core-aspect-env-v0.1.4-v1 + key: core-aspect-env-v0.1.5-v1 paths: - /home/circleci/Library/Caches/Bit/capsules/caec9a107 # - run: cd bit && bbit compile @@ -632,7 +632,7 @@ jobs: - restore_cache: key: bitsrc-registry10 - restore_cache: - key: core-aspect-env-v0.1.4-v1 + key: core-aspect-env-v0.1.5-v1 - run: name: 'check circular dependencies' command: 'cd bit && ./scripts/circular-deps-check/ci-check.sh' diff --git a/scopes/component/component-compare/component-compare.ui.runtime.tsx b/scopes/component/component-compare/component-compare.ui.runtime.tsx index c727107330db..d7d58f3498e8 100644 --- a/scopes/component/component-compare/component-compare.ui.runtime.tsx +++ b/scopes/component/component-compare/component-compare.ui.runtime.tsx @@ -81,7 +81,7 @@ export class ComponentCompareUI { return this.navSlot.map; } - get tabs() { + get tabs(): TabItem[] { const getElement = (routeProps: RouteProps[], href?: string) => { if (routeProps.length === 1) return routeProps[0].element; if (!href) return undefined; diff --git a/scopes/compositions/compositions/compositions.module.scss b/scopes/compositions/compositions/compositions.module.scss index a16105bfeedb..07fccfff5208 100644 --- a/scopes/compositions/compositions/compositions.module.scss +++ b/scopes/compositions/compositions/compositions.module.scss @@ -146,20 +146,37 @@ border-top: 1px solid var(--bit-border-color-lightest, #eaeaec); background: var(--bit-bg-color, #ffffff); overflow: hidden; + min-height: 0; + // Never overflow the previewArea: if the inline `height` (or a user-set + // resize) ends up taller than the parent allows (e.g. browser zoom shrinks + // available space, or there are many controls), `max-height` wins and the + // tray stays inside its container so `trayBody`'s `overflow-y: auto` keeps + // working instead of the bottom rows getting clipped off-screen. + max-height: calc(100% - 80px); + box-sizing: border-box; } -.trayDragHandle { +.controlsTrayCollapsed { + // when collapsed, only show the header bar + height: auto; +} + +// ─── Two-zone header: resize strip on top, click-to-collapse below ───── +// The two zones are visually separated by a divider so the boundary is +// obvious: top = "grab to resize", bottom = "click to collapse". + +.trayResizeStrip { + position: relative; flex-shrink: 0; - height: 8px; - display: flex; - align-items: center; - justify-content: center; + height: 12px; cursor: ns-resize; - background: transparent; - transition: background 120ms ease; + user-select: none; + background: var(--surface01-color, rgba(0, 0, 0, 0.02)); + border-bottom: 1px solid var(--bit-border-color-lightest, #eaeaec); + transition: background 140ms ease; &:hover { - background: rgba(0, 0, 0, 0.03); + background: var(--surface-hover-color, rgba(0, 0, 0, 0.05)); } &:hover .trayDragBar { @@ -169,19 +186,36 @@ } .trayDragBar { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); width: 32px; height: 3px; border-radius: 2px; background: var(--bit-border-color-lightest, #d0d0d3); transition: all 140ms ease; + pointer-events: none; } -.trayHeader { - flex-shrink: 0; +.trayHeaderInner { display: flex; align-items: center; justify-content: space-between; - padding: 4px 14px 8px; + padding: 8px 14px; + cursor: pointer; + user-select: none; + outline: none; + transition: background 140ms ease; + + &:hover { + background: var(--surface-hover-color, rgba(0, 0, 0, 0.03)); + } +} + +// give the collapsed bar a bit more breathing room +.controlsTrayCollapsed .trayHeaderInner { + padding: 10px 14px; } .trayTitleRow { @@ -218,29 +252,31 @@ line-height: 1; } -.trayClose { - display: flex; +.trayCollapseIcon { + display: inline-flex; align-items: center; justify-content: center; - width: 24px; - height: 24px; - border-radius: 4px; - border: none; - background: transparent; + width: 20px; + height: 20px; + font-size: 10px; color: var(--bit-text-color-light, #8b8d98); - cursor: pointer; - font-size: 12px; - padding: 0; - transition: all 120ms ease; + transform: rotate(90deg); + transform-origin: center; + transition: transform 200ms ease-in-out; + pointer-events: none; +} - &:hover { - background: rgba(0, 0, 0, 0.06); - color: var(--bit-text-color-heavy, #1c2024); - } +.trayCollapseIconCollapsed { + transform: rotate(-90deg); } .trayBody { - flex: 1; + // `flex-basis: auto` so the body contributes its natural content height to + // the tray's intrinsic size — without this, an auto-sized tray collapses to + // just the header. `min-height: 0` keeps `overflow-y: auto` working when + // the parent's `max-height` clamps the tray. + flex: 1 1 auto; + min-height: 0; overflow-y: auto; overflow-x: hidden; } diff --git a/scopes/compositions/compositions/compositions.tsx b/scopes/compositions/compositions/compositions.tsx index 97731409385a..1c5cecd105a2 100644 --- a/scopes/compositions/compositions/compositions.tsx +++ b/scopes/compositions/compositions/compositions.tsx @@ -1,6 +1,7 @@ import type { ReactNode } from 'react'; import React, { useContext, useEffect, useState, useMemo, useRef, useCallback } from 'react'; import { useParams, useSearchParams } from 'react-router-dom'; +import classNames from 'classnames'; import head from 'lodash.head'; import queryString from 'query-string'; import { ThemeContext } from '@teambit/documenter.theme.theme-context'; @@ -97,25 +98,34 @@ export function Compositions({ const queryParams = useMemo(() => queryString.stringify(compositionParams), [compositionParams]); - const [controlsTrayOpen, setControlsTrayOpen] = useState(false); + // Tracks compositions the user has explicitly collapsed. Anything not in + // this set defaults to expanded, which gives us "auto-open on load" as a + // pure derivation rather than an effect. + const [collapsedCompositions, setCollapsedCompositions] = useState>(() => new Set()); const [isDraggingTray, setIsDraggingTray] = useState(false); - const trayRef = useRef(null); - const trayHeightRef = useRef(260); + const trayRef = useRef(null); + // `null` = auto-size to content (default). Becomes a number once the user + // drag-resizes — only then do we pin a fixed height. + const [trayHeight, setTrayHeight] = useState(null); const { ready, defs, values, onChange } = useLiveControls(); - const onTrayDragStart = useCallback((e: React.MouseEvent) => { + const onResizeStripMouseDown = useCallback((e: React.MouseEvent) => { + if (e.button !== 0) return; e.preventDefault(); const startY = e.clientY; - const startHeight = trayHeightRef.current; + // Seed the drag from the tray's current rendered height — handles the + // initial auto-sized case (where `trayHeight` is still null). + const startHeight = trayRef.current?.offsetHeight ?? 0; + const parentEl = trayRef.current?.parentElement; + const parentHeight = parentEl?.clientHeight ?? window.innerHeight; + const maxHeight = Math.max(120, parentHeight - 80); setIsDraggingTray(true); document.body.style.cursor = 'ns-resize'; document.body.style.userSelect = 'none'; const onMove = (ev: MouseEvent) => { - const next = Math.max(120, Math.min(600, startHeight + (startY - ev.clientY))); - trayHeightRef.current = next; - if (trayRef.current) { - trayRef.current.style.maxHeight = `${next}px`; - } + const delta = startY - ev.clientY; + const next = Math.max(120, Math.min(maxHeight, startHeight + delta)); + setTrayHeight(next); }; const onUp = () => { setIsDraggingTray(false); @@ -148,7 +158,21 @@ export function Compositions({ }, [enableLiveControls]); const currentCompositionHasControls = ready && defs.length > 0; - const showControlsTray = currentCompositionHasControls && controlsTrayOpen; + const currentCompositionIdentifier = currentComposition?.identifier; + const isTrayCollapsedForCurrent = + !!currentCompositionIdentifier && collapsedCompositions.has(currentCompositionIdentifier); + const showControlsTray = currentCompositionHasControls; + const isTrayCollapsed = showControlsTray && isTrayCollapsedForCurrent; + + const toggleTrayCollapsed = useCallback(() => { + if (!currentCompositionIdentifier) return; + setCollapsedCompositions((prev) => { + const next = new Set(prev); + if (next.has(currentCompositionIdentifier)) next.delete(currentCompositionIdentifier); + else next.add(currentCompositionIdentifier); + return next; + }); + }, [currentCompositionIdentifier]); return ( @@ -160,16 +184,6 @@ export function Compositions({ - {currentCompositionHasControls && ( - - - - )} {showControlsTray && ( -
-
-
-
-
-
- - Live Controls - {ready && defs.length > 0 && {defs.length}} -
- -
-
- {ready ? ( - - ) : ( -
No live controls available for this composition
- )} -
-
+ )}
@@ -234,6 +237,9 @@ export function Compositions({ isScaling={isScaling} useNameParam={useNameParam} includesEnvTemplate={component.preview?.includesEnvTemplate} + hasLiveControls={currentCompositionHasControls} + liveControlsActive={currentCompositionHasControls && !isTrayCollapsedForCurrent} + onToggleLiveControls={toggleTrayCollapsed} onSelectComposition={(composition) => { if (!currentComposition || !location) return; const selectedCompositionFromUrl = params['*']; @@ -252,9 +258,6 @@ export function Compositions({ } const newPath = pathSegments.join('/'); navigate(`/${newPath}?${urlParams.toString()}`); - // open the tray only on explicit user selection, so the - // tray stays closed on navigation/tab return. - setControlsTrayOpen(true); }} url={compositionUrl} compositions={component.compositions} @@ -272,6 +275,89 @@ export function Compositions({ ); } +type LiveControlsTrayProps = { + trayRef: React.RefObject; + collapsed: boolean; + height: number | null; + ready: boolean; + defs: any[]; + values: Record; + onChange: (key: string, value: any) => void; + onResizeStripMouseDown: (e: React.MouseEvent) => void; + onToggleExpanded: () => void; +}; + +function LiveControlsTray({ + trayRef, + collapsed, + height, + ready, + defs, + values, + onChange, + onResizeStripMouseDown, + onToggleExpanded, +}: LiveControlsTrayProps) { + // height = null → let CSS size the tray to its content (with the max-height + // clamp doing the upper bound); height = number → user has drag-resized, + // pin to that. + const trayStyle = collapsed || height === null ? undefined : { height }; + return ( +
+ {!collapsed && ( +
+
+
+ )} +
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + onToggleExpanded(); + } + }} + title={collapsed ? 'Click to expand' : 'Click to collapse'} + > +
+ + Live Controls + {ready && defs.length > 0 && {defs.length}} +
+ + + +
+ {!collapsed && ( +
+ {ready ? ( + + ) : ( +
No live controls available for this composition
+ )} +
+ )} +
+ ); +} + export type CompositionContentProps = { component: ComponentModel; selected?: Composition; diff --git a/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.module.scss b/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.module.scss index 893b814366c0..fc9611dbf1d7 100644 --- a/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.module.scss +++ b/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.module.scss @@ -121,6 +121,19 @@ text-decoration: none; } +.iconButton { + background: transparent; + border: none; + padding: 0; + color: inherit; + font: inherit; +} + +.actionIconActive { + background: rgba(255, 255, 255, 0.15); + color: #ffffff !important; +} + // ─── Legacy compat ────────────────────────────────────────────────────── .liveControlsSkeleton { padding: 12px 16px; diff --git a/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.tsx b/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.tsx index 46354dc0abfe..a1947a09bbc7 100644 --- a/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.tsx +++ b/scopes/compositions/compositions/ui/compositions-panel/compositions-panel.tsx @@ -12,6 +12,9 @@ import type { Composition } from '../../composition'; export type CompositionsPanelProps = { compositions: Composition[]; onSelectComposition: (composition: Composition) => void; + onToggleLiveControls?: (composition: Composition) => void; + hasLiveControls?: boolean; + liveControlsActive?: boolean; active?: Composition; url: string; isScaling?: boolean; @@ -24,6 +27,9 @@ export function CompositionsPanel({ compositions, isScaling, onSelectComposition: onSelect, + onToggleLiveControls, + hasLiveControls, + liveControlsActive, active, includesEnvTemplate, useNameParam, @@ -77,6 +83,28 @@ export function CompositionsPanel({ {composition.displayName}
+ {hasLiveControls && onToggleLiveControls && composition === active && ( + + + + )} * { - width: 100%; + // Let the Toggle keep its native dimensions. The component sizes its + // knob travel in `em`, so stretching the wrapper width without scaling + // the font-size leaves the knob short of the right edge in the "on" + // state. + display: inline-flex; + flex: 0 0 auto; } .rangeWrapper { diff --git a/scopes/preview/ui/preview-placeholder/preview-placeholder.module.scss b/scopes/preview/ui/preview-placeholder/preview-placeholder.module.scss index 37e6cfc299f6..441e2ccc27f2 100644 --- a/scopes/preview/ui/preview-placeholder/preview-placeholder.module.scss +++ b/scopes/preview/ui/preview-placeholder/preview-placeholder.module.scss @@ -106,7 +106,6 @@ .browserSkeleton { width: 100%; height: 100%; - min-height: 200px; display: flex; flex-direction: column; overflow: hidden; diff --git a/scopes/ui-foundation/ui/rspack/html.ts b/scopes/ui-foundation/ui/rspack/html.ts index f95d57a22a20..88afa1d17292 100644 --- a/scopes/ui-foundation/ui/rspack/html.ts +++ b/scopes/ui-foundation/ui/rspack/html.ts @@ -8,6 +8,29 @@ export function html(title: string, withDevTools?: boolean) { ${title}