@ -0,0 +1 @@ | |||
last 2 Electron versions |
@ -0,0 +1,22 @@ | |||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the | |||
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node | |||
{ | |||
"name": "Node.js & TypeScript", | |||
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile | |||
"image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bullseye" | |||
// Features to add to the dev container. More info: https://containers.dev/features. | |||
// "features": {}, | |||
// Use 'forwardPorts' to make a list of ports inside the container available locally. | |||
// "forwardPorts": [], | |||
// Use 'postCreateCommand' to run commands after the container is created. | |||
// "postCreateCommand": "yarn install", | |||
// Configure tool-specific properties. | |||
// "customizations": {}, | |||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. | |||
// "remoteUser": "root" | |||
} |
@ -0,0 +1,341 @@ | |||
{ | |||
"env": { | |||
"es6": true | |||
}, | |||
"extends": [ | |||
"eslint:recommended", | |||
"plugin:@typescript-eslint/strict-type-checked", | |||
"plugin:import/recommended", | |||
"plugin:import/typescript", | |||
"prettier" | |||
], | |||
"parser": "@typescript-eslint/parser", | |||
"parserOptions": { | |||
"ecmaVersion": 2022, | |||
"sourceType": "module", | |||
"ecmaFeatures": { | |||
"impliedStrict": true | |||
}, | |||
"project": true | |||
}, | |||
"plugins": ["anti-trojan-source", "import", "@typescript-eslint"], | |||
"reportUnusedDisableDirectives": true, | |||
"root": true, | |||
"rules": { | |||
"anti-trojan-source/no-bidi": "error", | |||
"no-constant-condition": ["warn", { "checkLoops": false }], | |||
"no-constant-binary-expression": "error", | |||
"no-caller": "error", | |||
"no-debugger": "off", | |||
"no-else-return": "warn", | |||
"no-empty": ["warn", { "allowEmptyCatch": true }], | |||
"no-eval": "error", | |||
"no-ex-assign": "warn", | |||
"no-extend-native": "error", | |||
"no-extra-bind": "error", | |||
"no-extra-semi": "off", | |||
"no-floating-decimal": "error", | |||
"no-implicit-coercion": "error", | |||
"no-implied-eval": "error", | |||
"no-inner-declarations": "off", | |||
"no-lone-blocks": "error", | |||
"no-lonely-if": "error", | |||
"no-loop-func": "error", | |||
"no-mixed-spaces-and-tabs": "off", | |||
"no-restricted-globals": ["error", "process"], | |||
"no-restricted-imports": [ | |||
"error", | |||
{ | |||
"paths": [ | |||
// Disallow node imports below | |||
"assert", | |||
"buffer", | |||
"child_process", | |||
"cluster", | |||
"crypto", | |||
"dgram", | |||
"dns", | |||
"domain", | |||
"events", | |||
"freelist", | |||
"fs", | |||
"http", | |||
"https", | |||
"module", | |||
"net", | |||
"os", | |||
"path", | |||
"process", | |||
"punycode", | |||
"querystring", | |||
"readline", | |||
"repl", | |||
"smalloc", | |||
"stream", | |||
"string_decoder", | |||
"sys", | |||
"timers", | |||
"tls", | |||
"tracing", | |||
"tty", | |||
"url", | |||
"util", | |||
"vm", | |||
"zlib" | |||
], | |||
"patterns": [ | |||
{ | |||
"group": ["**/env/**/*"], | |||
"message": "Use @env/ instead" | |||
}, | |||
{ | |||
"group": ["src/*"], | |||
"message": "Use relative paths instead" | |||
}, | |||
{ | |||
"group": ["react-dom"], | |||
"importNames": ["Container"], | |||
"message": "Use our Container instead" | |||
}, | |||
{ | |||
"group": ["vscode"], | |||
"importNames": ["CancellationError"], | |||
"message": "Use our CancellationError instead" | |||
} | |||
] | |||
} | |||
], | |||
"no-return-assign": "error", | |||
"no-return-await": "warn", | |||
"no-self-compare": "error", | |||
"no-sequences": "error", | |||
"no-template-curly-in-string": "warn", | |||
"no-throw-literal": "error", | |||
"no-unmodified-loop-condition": "warn", | |||
"no-unneeded-ternary": "error", | |||
"no-unused-expressions": "error", | |||
"no-use-before-define": "off", | |||
"no-useless-call": "error", | |||
"no-useless-catch": "error", | |||
"no-useless-computed-key": "error", | |||
"no-useless-concat": "error", | |||
"no-useless-rename": "error", | |||
"no-useless-return": "error", | |||
"no-var": "error", | |||
"no-with": "error", | |||
"object-shorthand": ["error", "never"], | |||
"one-var": ["error", "never"], | |||
"prefer-arrow-callback": "error", | |||
"prefer-const": [ | |||
"error", | |||
{ | |||
"destructuring": "all", | |||
"ignoreReadBeforeAssign": true | |||
} | |||
], | |||
"prefer-numeric-literals": "error", | |||
"prefer-object-spread": "error", | |||
"prefer-promise-reject-errors": ["error", { "allowEmptyReject": true }], | |||
"prefer-rest-params": "error", | |||
"prefer-spread": "error", | |||
"prefer-template": "error", | |||
"require-atomic-updates": "off", | |||
"sort-imports": [ | |||
"error", | |||
{ | |||
"ignoreCase": true, | |||
"ignoreDeclarationSort": true, | |||
"ignoreMemberSort": false, | |||
"memberSyntaxSortOrder": ["none", "all", "multiple", "single"] | |||
} | |||
], | |||
"yoda": "error", | |||
"import/consistent-type-specifier-style": ["error", "prefer-top-level"], | |||
"import/extensions": "off", | |||
"import/newline-after-import": "warn", | |||
"import/no-absolute-path": "error", | |||
"import/no-cycle": "off", | |||
"import/no-default-export": "error", | |||
"import/no-duplicates": ["error", { "prefer-inline": false }], | |||
"import/no-dynamic-require": "error", | |||
"import/no-self-import": "error", | |||
"import/no-unresolved": ["warn", { "ignore": ["vscode", "@env"] }], | |||
"import/no-useless-path-segments": "error", | |||
"import/order": [ | |||
"warn", | |||
{ | |||
"alphabetize": { | |||
"order": "asc", | |||
"orderImportKind": "asc", | |||
"caseInsensitive": true | |||
}, | |||
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"], | |||
"newlines-between": "never" | |||
} | |||
], | |||
"@typescript-eslint/ban-types": [ | |||
"error", | |||
{ | |||
"extendDefaults": false, | |||
"types": { | |||
"String": { | |||
"message": "Use string instead", | |||
"fixWith": "string" | |||
}, | |||
"Boolean": { | |||
"message": "Use boolean instead", | |||
"fixWith": "boolean" | |||
}, | |||
"Number": { | |||
"message": "Use number instead", | |||
"fixWith": "number" | |||
}, | |||
"Symbol": { | |||
"message": "Use symbol instead", | |||
"fixWith": "symbol" | |||
}, | |||
// "Function": { | |||
// "message": "The `Function` type accepts any function-like value.\nIt provides no type safety when calling the function, which can be a common source of bugs.\nIt also accepts things like class declarations, which will throw at runtime as they will not be called with `new`.\nIf you are expecting the function to accept certain arguments, you should explicitly define the function shape." | |||
// }, | |||
"Object": { | |||
"message": "The `Object` type actually means \"any non-nullish value\", so it is marginally better than `unknown`.\n- If you want a type meaning \"any object\", you probably want `Record<string, unknown>` instead.\n- If you want a type meaning \"any value\", you probably want `unknown` instead." | |||
}, | |||
"{}": { | |||
"message": "`{}` actually means \"any non-nullish value\".\n- If you want a type meaning \"any object\", you probably want `object` or `Record<string, unknown>` instead.\n- If you want a type meaning \"any value\", you probably want `unknown` instead.", | |||
"fixWith": "object" | |||
} | |||
// "object": { | |||
// "message": "The `object` type is currently hard to use ([see this issue](https://github.com/microsoft/TypeScript/issues/21732)).\nConsider using `Record<string, unknown>` instead, as it allows you to more easily inspect and use the keys." | |||
// } | |||
} | |||
} | |||
], | |||
"@typescript-eslint/consistent-type-assertions": [ | |||
"error", | |||
{ | |||
"assertionStyle": "as", | |||
"objectLiteralTypeAssertions": "allow-as-parameter" | |||
} | |||
], | |||
"@typescript-eslint/consistent-type-imports": ["error", { "disallowTypeAnnotations": false }], | |||
"@typescript-eslint/naming-convention": [ | |||
"error", | |||
{ | |||
"selector": "variable", | |||
"format": ["camelCase", "PascalCase"], | |||
"leadingUnderscore": "allow", | |||
"filter": { | |||
"regex": "^_$", | |||
"match": false | |||
} | |||
}, | |||
{ | |||
"selector": "variableLike", | |||
"format": ["camelCase"], | |||
"leadingUnderscore": "allow", | |||
"filter": { | |||
"regex": "^_$", | |||
"match": false | |||
} | |||
}, | |||
{ | |||
"selector": "memberLike", | |||
"modifiers": ["private"], | |||
"format": ["camelCase"], | |||
"leadingUnderscore": "allow" | |||
}, | |||
{ | |||
"selector": "memberLike", | |||
"modifiers": ["private", "readonly"], | |||
"format": ["camelCase", "PascalCase"], | |||
"leadingUnderscore": "allow" | |||
}, | |||
{ | |||
"selector": "memberLike", | |||
"modifiers": ["static", "readonly"], | |||
"format": ["camelCase", "PascalCase"] | |||
}, | |||
{ | |||
"selector": "interface", | |||
"format": ["PascalCase"], | |||
"custom": { | |||
"regex": "^I[A-Z]", | |||
"match": false | |||
} | |||
} | |||
], | |||
"@typescript-eslint/no-confusing-void-expression": [ | |||
"error", | |||
{ "ignoreArrowShorthand": true, "ignoreVoidOperator": true } | |||
], | |||
"@typescript-eslint/no-explicit-any": "off", | |||
"@typescript-eslint/no-inferrable-types": ["warn", { "ignoreParameters": true, "ignoreProperties": true }], | |||
"@typescript-eslint/no-invalid-void-type": "off", // Seems to error on `void` return types | |||
"@typescript-eslint/no-misused-promises": ["error", { "checksVoidReturn": false }], | |||
"@typescript-eslint/no-non-null-assertion": "off", | |||
"@typescript-eslint/no-redundant-type-constituents": "off", | |||
"@typescript-eslint/no-unnecessary-condition": "off", | |||
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "off", | |||
"@typescript-eslint/no-unsafe-argument": "off", | |||
"@typescript-eslint/no-unsafe-assignment": "off", | |||
"@typescript-eslint/no-unsafe-call": "off", | |||
"@typescript-eslint/no-unsafe-enum-comparison": "off", | |||
"@typescript-eslint/no-unsafe-member-access": "off", | |||
"@typescript-eslint/no-unused-expressions": ["warn", { "allowShortCircuit": true }], | |||
"@typescript-eslint/no-unused-vars": [ | |||
"warn", | |||
{ | |||
"args": "after-used", | |||
"argsIgnorePattern": "^_", | |||
"ignoreRestSiblings": true, | |||
"varsIgnorePattern": "^_$" | |||
} | |||
], | |||
"@typescript-eslint/no-use-before-define": ["error", { "functions": false, "classes": false }], | |||
"@typescript-eslint/prefer-for-of": "warn", | |||
"@typescript-eslint/prefer-includes": "warn", | |||
"@typescript-eslint/prefer-literal-enum-member": ["warn", { "allowBitwiseExpressions": true }], | |||
"@typescript-eslint/prefer-optional-chain": "warn", | |||
"@typescript-eslint/prefer-reduce-type-parameter": "warn", | |||
"@typescript-eslint/restrict-template-expressions": [ | |||
"error", | |||
{ "allowAny": true, "allowBoolean": true, "allowNumber": true, "allowNullish": true } | |||
], | |||
"@typescript-eslint/unbound-method": "off", // Too many bugs right now: https://github.com/typescript-eslint/typescript-eslint/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+unbound-method | |||
"@typescript-eslint/unified-signatures": ["error", { "ignoreDifferentlyNamedParameters": true }] | |||
}, | |||
"settings": { | |||
"import/parsers": { | |||
"@typescript-eslint/parser": [".ts", ".tsx"] | |||
}, | |||
"import/resolver": { | |||
"typescript": { | |||
"alwaysTryTypes": true // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist` | |||
} | |||
} | |||
}, | |||
"ignorePatterns": ["dist/*", "out/*", "**/@types/*", "emojis.json", "tsconfig*.tsbuildinfo", "webpack.config*.js"], | |||
"overrides": [ | |||
{ | |||
"files": ["src/env/node/**/*"], | |||
"rules": { | |||
"no-restricted-imports": [ | |||
"error", | |||
{ | |||
"patterns": [ | |||
{ | |||
"group": ["src/*"], | |||
"message": "Use relative paths instead" | |||
}, | |||
{ | |||
"group": ["react-dom"], | |||
"importNames": ["Container"], | |||
"message": "Use our Container instead" | |||
} | |||
] | |||
} | |||
] | |||
} | |||
} | |||
] | |||
} |
@ -0,0 +1,10 @@ | |||
{ | |||
"extends": [".eslintrc.base.json"], | |||
"env": { | |||
"worker": true | |||
}, | |||
"ignorePatterns": ["src/test/**/*", "src/webviews/apps/**/*", "src/env/node/**/*"], | |||
"parserOptions": { | |||
"project": "tsconfig.browser.json" | |||
} | |||
} |
@ -0,0 +1,10 @@ | |||
{ | |||
"extends": [".eslintrc.base.json"], | |||
"env": { | |||
"node": true | |||
}, | |||
"ignorePatterns": ["src/test/**/*", "src/webviews/apps/**/*", "src/env/browser/*"], | |||
"parserOptions": { | |||
"project": "tsconfig.json" | |||
} | |||
} |
@ -0,0 +1,33 @@ | |||
//@ts-check | |||
/** @type {import('@twbs/fantasticon').RunnerOptions} */ | |||
const config = { | |||
name: 'glicons', | |||
prefix: 'glicon', | |||
codepoints: require('./images/icons/template/mapping.json'), | |||
inputDir: './images/icons', | |||
outputDir: './dist', | |||
fontsUrl: '#{root}/dist', | |||
// @ts-ignore | |||
fontTypes: ['woff2'], | |||
normalize: true, | |||
// @ts-ignore | |||
assetTypes: ['html', 'scss', 'json'], | |||
templates: { | |||
html: './images/icons/template/icons-contribution.hbs', | |||
scss: './images/icons/template/styles.hbs', | |||
}, | |||
formatOptions: { | |||
json: { | |||
indent: 2, | |||
}, | |||
}, | |||
pathOptions: { | |||
woff2: './dist/glicons.woff2', | |||
scss: './dist/glicons.scss', | |||
html: './dist/icons-contribution.json', | |||
json: './images/icons/template/mapping.json', | |||
}, | |||
}; | |||
module.exports = config; |
@ -0,0 +1,11 @@ | |||
85769575493b939733a3dee5a590c2407923f31b | |||
59d9071a9bb200c3ef95369a6335f8a0138f461a | |||
9e17dbe2b7457af484c88cc15a45c42b84d2ba3b | |||
d790e9db047769de079f6838c3578f3a47bf5930 | |||
003da86002563f825b51ca95a28afc7ef85f91d8 | |||
175a81eabe741aedb30776f092a937bfee7044bc | |||
60f8cb9fb8d1a56772d18a1a81cdd1748d589c2e | |||
9c2df377d3e1842ed09eea5bb99be00edee9ca9c | |||
444bf829156b3170c8b4b5156dcf10b06db83779 | |||
4dba4612670c0a942e3daa3e6a34a57aebe257ae | |||
fbccf2428fd671378202de43ff99deff66168a13 |
@ -0,0 +1 @@ | |||
* text=auto eol=lf |
@ -0,0 +1 @@ | |||
@eamodio |
@ -0,0 +1,59 @@ | |||
name: Bug report | |||
description: Create a report to help GitLens improve | |||
labels: ['bug', 'triage'] | |||
body: | |||
- type: textarea | |||
attributes: | |||
label: Description | |||
description: Please provide a concise description of what you're experiencing, what you expected to happen, and any steps to reproduce the behavior. | |||
placeholder: | | |||
1. In this environment... | |||
2. With this config... | |||
3. Run '...' | |||
4. See error... | |||
validations: | |||
required: true | |||
- type: input | |||
id: gitlens | |||
attributes: | |||
label: GitLens Version | |||
description: What version of GitLens are you using? | |||
placeholder: 12.0.0 | |||
validations: | |||
required: true | |||
- type: textarea | |||
id: vscode | |||
attributes: | |||
label: VS Code Version | |||
description: What version of VS Code are you using? Copy from Help -> About | |||
placeholder: | | |||
Version: 1.70.0-insider (user setup) | |||
Commit: 1cd90cceddf3c413673963ab6f154d2ff294b17c | |||
Date: 2022-07-15T05:16:39.110Z | |||
Electron: 18.3.5 | |||
Chromium: 100.0.4896.160 | |||
Node.js: 16.13.2 | |||
V8: 10.0.139.17-electron.0 | |||
OS: Windows_NT x64 10.0.22622 | |||
validations: | |||
required: false | |||
- type: input | |||
id: git | |||
attributes: | |||
label: Git Version | |||
description: 'What version of Git are you using? Use `git --version`' | |||
placeholder: 'git version 2.37.0.windows.1' | |||
validations: | |||
required: false | |||
- type: textarea | |||
attributes: | |||
label: Logs, Screenshots, Screen Captures, etc | |||
description: | | |||
Logs? Links? References? Anything that will give us more context about the issue you are encountering! | |||
placeholder: | | |||
For intermittent issues, please enable debug logging by running the _GitLens: Enable Debug Logging_ command from the Command Palette (<kbd>F1</kbd> or <kbd>ctrl/cmd</kbd>+<kbd>shift</kbd>+<kbd>p</kbd>). | |||
This will enable logging to the _GitLens_ & _GitLens (Git)_ channels in the _Output_ pane. | |||
Once enabled, please reproduce the issue, and attach the logs from the _GitLens_ channel, and if its Git related please also attach the logs from the _GitLens (Git)_ channel. | |||
validations: | |||
required: false |
@ -0,0 +1,11 @@ | |||
blank_issues_enabled: false | |||
contact_links: | |||
- name: Q & A | |||
url: https://github.com/gitkraken/vscode-gitlens/discussions?discussions_q=category%3AQ%26A | |||
about: Ask and answer questions about GitLens | |||
- name: Documentation | |||
url: https://help.gitkraken.com/gitlens | |||
about: Read the GitLens support documentation | |||
- name: GitKraken Support | |||
url: https://gitkraken.com/gitlens-support | |||
about: Get email support for issues and questions on paid features or relating to your GitKraken account or plan |
@ -0,0 +1,9 @@ | |||
--- | |||
name: Feature request | |||
about: Suggest an idea for GitLens | |||
title: '' | |||
labels: feature, triage | |||
assignees: '' | |||
--- | |||
<!-- Describe the feature you'd like. --> |
@ -0,0 +1,32 @@ | |||
## ❤ Thank you for contributing to GitLens! ❤ | |||
### 🚨 IMPORTANT 🚨 | |||
- Please create an issue _before_ creating a Pull Request | |||
- Please use the following Git commit message style | |||
- Use future tense ("Adds feature" not "Added feature") | |||
- Use a "Fixes #xxx -" or "Closes #xxx -" prefix to auto-close the issue that your PR addresses | |||
- Limit the first line to 72 characters or less | |||
- Reference issues and pull requests liberally after the first line | |||
## ↑👆 DELETE above _before_ submitting 👆↑ | |||
--- | |||
# Description | |||
<!-- | |||
Please include a summary of the changes and which issue will be addressed. Please also include relevant motivation and context. | |||
--> | |||
# Checklist | |||
<!-- Please check off the following --> | |||
- [ ] I have followed the guidelines in the Contributing document | |||
- [ ] My changes follow the coding style of this project | |||
- [ ] My changes build without any errors or warnings | |||
- [ ] My changes have been formatted and linted | |||
- [ ] My changes include any required corresponding changes to the documentation (including CHANGELOG.md and README.md) | |||
- [ ] My changes have been rebased and squashed to the minimal number (typically 1) of relevant commits | |||
- [ ] My changes have a descriptive commit message with a short title, including a `Fixes $XXX -` or `Closes #XXX -` prefix to auto-close the issue that your PR addresses |
@ -0,0 +1,75 @@ | |||
name: Publish pre-release | |||
on: | |||
schedule: | |||
- cron: '0 9 * * *' # every day at 4am EST | |||
workflow_dispatch: | |||
jobs: | |||
check: | |||
name: Check for updates | |||
runs-on: ubuntu-latest | |||
permissions: | |||
contents: write | |||
outputs: | |||
status: ${{ steps.earlyexit.outputs.status }} | |||
steps: | |||
- name: Checkout code | |||
uses: actions/checkout@v3 | |||
with: | |||
fetch-depth: 0 | |||
- id: earlyexit | |||
run: | | |||
git config user.name github-actions | |||
git config user.email github-actions@github.com | |||
if git rev-parse origin/pre >/dev/null 2>&1; then | |||
preRef=$(git show-ref -s origin/pre) | |||
headRef=$(git show-ref --head -s head) | |||
echo "origin/pre" | |||
echo $preRef | |||
echo "HEAD" | |||
echo $headRef | |||
if [ "$preRef" = "$headRef" ]; then | |||
echo "No changes since last pre-release build. Exiting." | |||
echo "status=unchanged" >> $GITHUB_OUTPUT | |||
exit 0 | |||
else | |||
echo "Updating pre" | |||
git push origin --delete pre | |||
git checkout -b pre | |||
git push origin pre | |||
fi | |||
else | |||
echo "No pre branch. Creating." | |||
git checkout -b pre | |||
git push origin pre | |||
fi | |||
echo "status=changed" >> $GITHUB_OUTPUT | |||
publish: | |||
name: Publish pre-release | |||
needs: check | |||
runs-on: ubuntu-latest | |||
if: needs.check.outputs.status == 'changed' | |||
steps: | |||
- name: Checkout code | |||
uses: actions/checkout@v3 | |||
- name: Setup node | |||
uses: actions/setup-node@v3 | |||
with: | |||
node-version: '18' | |||
- name: Install | |||
run: yarn | |||
- name: Apply pre-release patch | |||
run: yarn run patch-pre | |||
- name: Setup Environment | |||
run: node -e "console.log('PACKAGE_VERSION=' + require('./package.json').version + '\nPACKAGE_NAME=' + require('./package.json').name + '-' + require('./package.json').version)" >> $GITHUB_ENV | |||
- name: Package extension | |||
run: yarn run package --pre-release | |||
- name: Publish extension | |||
run: yarn vsce publish --yarn --pre-release --packagePath ./${{ env.PACKAGE_NAME }}.vsix -p ${{ secrets.GITLENS_VSCODE_MARKETPLACE_PAT }} | |||
- name: Publish artifact | |||
uses: actions/upload-artifact@v3 | |||
with: | |||
name: ${{ env.PACKAGE_NAME }}.vsix | |||
path: ./${{ env.PACKAGE_NAME }}.vsix |
@ -0,0 +1,48 @@ | |||
name: Publish Stable | |||
on: | |||
push: | |||
tags: | |||
- 'v*.*.*' # Push events to matching v*, i.e. v1.0, v20.15.10 | |||
jobs: | |||
build: | |||
name: Publish Stable | |||
runs-on: ubuntu-latest | |||
permissions: | |||
contents: write | |||
steps: | |||
- name: Checkout code | |||
uses: actions/checkout@v3 | |||
- name: Setup node | |||
uses: actions/setup-node@v3 | |||
with: | |||
node-version: '18' | |||
- name: Setup Environment | |||
run: node -e "console.log('PACKAGE_VERSION=' + require('./package.json').version + '\nPACKAGE_NAME=' + require('./package.json').name + '-' + require('./package.json').version)" >> $GITHUB_ENV | |||
- name: Verify versions | |||
run: node -e "if ('refs/tags/v' + '${{ env.PACKAGE_VERSION }}' !== '${{ github.ref }}') { console.log('::error' + 'Version Mismatch. refs/tags/v' + '${{ env.PACKAGE_VERSION }}', '${{ github.ref }}'); throw Error('Version Mismatch')} " | |||
- name: Install | |||
run: yarn | |||
- name: Package extension | |||
run: yarn run package | |||
- name: Publish Extension | |||
run: yarn vsce publish --yarn --packagePath ./${{ env.PACKAGE_NAME }}.vsix -p ${{ secrets.GITLENS_VSCODE_MARKETPLACE_PAT }} | |||
- name: Generate Changelog | |||
id: changelog | |||
uses: mindsers/changelog-reader-action@v2 | |||
with: | |||
version: ${{ env.PACKAGE_VERSION }} | |||
path: ./CHANGELOG.md | |||
- name: Create GitHub release | |||
id: create_release | |||
uses: softprops/action-gh-release@v1 | |||
env: | |||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |||
with: | |||
tag_name: ${{ github.ref }} | |||
name: v${{ env.PACKAGE_VERSION }} | |||
body: ${{ steps.changelog.outputs.changes }} | |||
draft: false | |||
prerelease: false | |||
files: ./${{ env.PACKAGE_NAME }}.vsix |
@ -0,0 +1,70 @@ | |||
# For most projects, this workflow file will not need changing; you simply need | |||
# to commit it to your repository. | |||
# | |||
# You may wish to alter this file to override the set of languages analyzed, | |||
# or to provide custom queries or build logic. | |||
# | |||
# ******** NOTE ******** | |||
# We have attempted to detect the languages in your repository. Please check | |||
# the `language` matrix defined below to confirm you have the correct set of | |||
# supported CodeQL languages. | |||
# | |||
name: 'CodeQL' | |||
on: | |||
push: | |||
branches: [main] | |||
pull_request: | |||
# The branches below must be a subset of the branches above | |||
# branches: [ main ] | |||
schedule: | |||
- cron: '43 22 * * 0' | |||
jobs: | |||
analyze: | |||
name: Analyze | |||
runs-on: ubuntu-latest | |||
permissions: | |||
actions: read | |||
contents: read | |||
security-events: write | |||
strategy: | |||
fail-fast: false | |||
matrix: | |||
language: ['javascript'] | |||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] | |||
# Learn more about CodeQL language support at https://git.io/codeql-language-support | |||
steps: | |||
- name: Checkout repository | |||
uses: actions/checkout@v3 | |||
# Initializes the CodeQL tools for scanning. | |||
- name: Initialize CodeQL | |||
uses: github/codeql-action/init@v2 | |||
with: | |||
languages: ${{ matrix.language }} | |||
# If you wish to specify custom queries, you can do so here or in a config file. | |||
# By default, queries listed here will override any specified in a config file. | |||
# Prefix the list here with "+" to use these queries and those in the config file. | |||
# queries: ./path/to/local/query, your-org/your-repo/queries@main | |||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). | |||
# If this step fails, then you should remove it and run the build manually (see below) | |||
# - name: Autobuild | |||
# uses: github/codeql-action/autobuild@v2 | |||
# ℹ️ Command-line programs to run using the OS shell. | |||
# 📚 https://git.io/JvXDl | |||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines | |||
# and modify them (or add more) to build your code if your project | |||
# uses a compiled language | |||
#- run: | | |||
# make bootstrap | |||
# make release | |||
- name: Perform CodeQL Analysis | |||
uses: github/codeql-action/analyze@v2 |
@ -0,0 +1,19 @@ | |||
name: 'Lock closed issues' | |||
on: | |||
schedule: | |||
- cron: '30 5 * * *' | |||
workflow_dispatch: | |||
jobs: | |||
stale: | |||
runs-on: ubuntu-latest | |||
permissions: | |||
issues: write | |||
steps: | |||
- uses: dessant/lock-threads@v3 | |||
with: | |||
github-token: ${{ secrets.GITHUB_TOKEN }} | |||
issue-comment: 'This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.' | |||
issue-inactive-days: 30 | |||
process-only: 'issues' |
@ -0,0 +1,25 @@ | |||
name: 'Close stale issues' | |||
on: | |||
schedule: | |||
- cron: '00 5 * * *' | |||
workflow_dispatch: | |||
jobs: | |||
stale: | |||
runs-on: ubuntu-latest | |||
permissions: | |||
issues: write | |||
pull-requests: write | |||
steps: | |||
- uses: actions/stale@v5 | |||
with: | |||
repo-token: ${{ secrets.GITHUB_TOKEN }} | |||
days-before-close: 7 | |||
days-before-stale: 7 | |||
only-labels: 'needs-more-info' | |||
exempt-issue-labels: 'triage' | |||
close-issue-message: 'Closing this issue because it needs more information and has not had recent activity. Please re-open this issue if more details can be provided. Thanks!' | |||
stale-issue-label: 'inactive' | |||
stale-issue-message: 'This issue needs more information and has not had recent activity. Please provide the missing information or it will be closed in 7 days. Thanks!' | |||
labels-to-add-when-unstale: 'triage' |
@ -0,0 +1,11 @@ | |||
.eslintcache* | |||
.vscode-clean/** | |||
.vscode-test/** | |||
.vscode-test-web/** | |||
dist | |||
out | |||
node_modules | |||
images/settings | |||
gitlens-*.vsix | |||
tsconfig*.tsbuildinfo | |||
.DS_Store |
@ -0,0 +1,7 @@ | |||
Eric Amodio <eamodio@gmail.com> Eric Amodio <eamodio@ioninteractive.com> | |||
Eric Amodio <eamodio@gmail.com> Eric Amodio <eric@amod.io> | |||
Eric Follana <eric.follana@gitkraken.com> Eric <eric.follana@gitkraken.com> | |||
Eric Follana <eric.follana@gitkraken.com> ericf-axosoft <90025366+ericf-axosoft@users.noreply.github.com> | |||
Ramin Tadayon <ramin.tadayon@gitkraken.com> Ramin Tadayon <67011668+axosoft-ramint@users.noreply.github.com> | |||
Ramin Tadayon <ramin.tadayon@gitkraken.com> Ramin Test <ramin.tadayon@gitkraken.com> | |||
Keith Daulton <keith.daulton@gitkraken.com> Keith Daulton <kdaulton@d13design.com> |
@ -0,0 +1,9 @@ | |||
dist | |||
out | |||
node_modules | |||
git.d.ts | |||
glicons.scss | |||
images/icons/template/icons-contribution.hbs | |||
images/icons/template/mapping.json | |||
images/icons/template/styles.hbs | |||
src/emojis.generated.ts |
@ -0,0 +1,19 @@ | |||
{ | |||
"arrowParens": "avoid", | |||
"endOfLine": "lf", | |||
"trailingComma": "all", | |||
"printWidth": 120, | |||
"singleQuote": true, | |||
"tabWidth": 4, | |||
"useTabs": true, | |||
"overrides": [ | |||
{ | |||
"files": ".prettierrc", | |||
"options": { "parser": "json" } | |||
}, | |||
{ | |||
"files": "*.md", | |||
"options": { "tabWidth": 2 } | |||
} | |||
] | |||
} |
@ -0,0 +1,5 @@ | |||
{ | |||
// See http://go.microsoft.com/fwlink/?LinkId=827846 | |||
// for the documentation about the extensions.json format | |||
"recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher", "esbenp.prettier-vscode"] | |||
} |
@ -0,0 +1,102 @@ | |||
[ | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$current=milestone:\"13.1\"\n$patch=milestone:\"13.0-patch\"\n$issues=repo:gitkraken/vscode-gitlens is:issue\n$prs=repo:gitkraken/vscode-gitlens is:pr" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "## Triage" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### Inbox" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues is:open label:\"triage\" sort:updated-desc" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### Needs More Information" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues label:\"needs-more-info\" sort:updated-desc" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "## Patch" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues $patch" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "## Current Iteration" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### TODO" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues $current is:open" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### Verification Needed" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues $current is:closed label:\"needs-verification\" -label:\"verified ✔\"" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### Done" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues $current is:closed -label:\"pending-release\"" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "## Milestones" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "### Soon™" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$issues milestone:Soon™" | |||
}, | |||
{ | |||
"kind": 1, | |||
"language": "markdown", | |||
"value": "## Pull Requests" | |||
}, | |||
{ | |||
"kind": 2, | |||
"language": "github-issues", | |||
"value": "$prs" | |||
} | |||
] |
@ -0,0 +1,182 @@ | |||
// A launch configuration that compiles the extension and then opens it inside a new window | |||
{ | |||
"version": "0.2.0", | |||
"configurations": [ | |||
{ | |||
"name": "Run", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"runtimeExecutable": "${execPath}", | |||
"args": ["--profile=Debugging (GitLens)", "--extensionDevelopmentPath=${workspaceFolder}"], | |||
"debugWebviews": true, | |||
"rendererDebugOptions": { | |||
"pauseForSourceMap": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
// "urlFilter": "*eamodio.gitlens*", | |||
"webRoot": "${workspaceFolder}/src/webviews/apps" | |||
}, | |||
"outFiles": ["${workspaceFolder}/dist/**/*.js"], | |||
"presentation": { | |||
"group": "2_run", | |||
"order": 1 | |||
}, | |||
"pauseForSourceMap": true, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"trace": true | |||
}, | |||
{ | |||
"name": "Run (sandboxed)", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"runtimeExecutable": "${execPath}", | |||
"args": ["--profile-temp", "--extensionDevelopmentPath=${workspaceFolder}"], | |||
"debugWebviews": true, | |||
"rendererDebugOptions": { | |||
"pauseForSourceMap": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
// "urlFilter": "*eamodio.gitlens*", | |||
"webRoot": "${workspaceFolder}/src/webviews/apps" | |||
}, | |||
"outFiles": ["${workspaceFolder}/dist/**/*.js"], | |||
"pauseForSourceMap": true, | |||
"presentation": { | |||
"group": "2_run", | |||
"order": 2 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"trace": true | |||
}, | |||
{ | |||
"name": "Run Tests", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"args": [ | |||
"--profile-temp", | |||
"--extensionDevelopmentPath=${workspaceFolder}", | |||
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index" | |||
], | |||
"outFiles": ["${workspaceFolder}/out/test/**/*.js", "${workspaceFolder}/dist/**/*.js"], | |||
"presentation": { | |||
"group": "2_run_tests", | |||
"order": 2 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true | |||
}, | |||
{ | |||
"name": "Watch & Run", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"runtimeExecutable": "${execPath}", | |||
"args": ["--profile=Debugging (GitLens)", "--extensionDevelopmentPath=${workspaceFolder}"], | |||
"debugWebviews": true, | |||
"rendererDebugOptions": { | |||
"pauseForSourceMap": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
// "urlFilter": "*eamodio.gitlens*", | |||
"webRoot": "${workspaceFolder}/src/webviews/apps" | |||
}, | |||
"outFiles": ["${workspaceFolder}/dist/**/*.js"], | |||
"pauseForSourceMap": true, | |||
"preLaunchTask": "${defaultBuildTask}", | |||
"presentation": { | |||
"group": "1_watch", | |||
"order": 1 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"trace": true | |||
}, | |||
{ | |||
"name": "Watch & Run (web)", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"runtimeExecutable": "${execPath}", | |||
"args": [ | |||
// "--folder-uri=vscode-vfs://github/gitkraken/vscode-gitlens", | |||
"--profile=Debugging (GitLens)", | |||
"--extensionDevelopmentPath=${workspaceFolder}", | |||
"--extensionDevelopmentKind=web" | |||
], | |||
"debugWebWorkerHost": true, | |||
"rendererDebugOptions": { | |||
"pauseForSourceMap": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"webRoot": "${workspaceFolder}/src/webviews/apps" | |||
}, | |||
"outFiles": ["${workspaceFolder}/dist/browser/**/*.js"], | |||
"pauseForSourceMap": true, | |||
"preLaunchTask": "${defaultBuildTask}", | |||
"presentation": { | |||
"group": "1_watch", | |||
"order": 1 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"trace": true | |||
}, | |||
{ | |||
"name": "Watch & Run (sandboxed)", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"runtimeExecutable": "${execPath}", | |||
"args": ["--profile-temp", "--extensionDevelopmentPath=${workspaceFolder}"], | |||
"debugWebviews": true, | |||
"rendererDebugOptions": { | |||
"pauseForSourceMap": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
// "urlFilter": "*eamodio.gitlens*", | |||
"webRoot": "${workspaceFolder}/src/webviews/apps" | |||
}, | |||
"outFiles": ["${workspaceFolder}/dist/**/*.js"], | |||
"pauseForSourceMap": true, | |||
"preLaunchTask": "${defaultBuildTask}", | |||
"presentation": { | |||
"group": "1_watch", | |||
"order": 2 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true, | |||
"trace": true | |||
}, | |||
{ | |||
"name": "Watch & Run Tests", | |||
"type": "extensionHost", | |||
"request": "launch", | |||
"args": [ | |||
"--profile-temp", | |||
"--extensionDevelopmentPath=${workspaceFolder}", | |||
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index" | |||
], | |||
"outFiles": ["${workspaceFolder}/out/test/**/*.js", "${workspaceFolder}/dist/**/*.js"], | |||
"preLaunchTask": "npm: watch:tests", | |||
"presentation": { | |||
"group": "1_watch_tests", | |||
"order": 2 | |||
}, | |||
"skipFiles": ["<node_internals>/**", "**/node_modules/**", "**/resources/app/out/vs/**"], | |||
"smartStep": true, | |||
"sourceMapRenames": true, | |||
"sourceMaps": true | |||
} | |||
] | |||
} |
@ -0,0 +1,53 @@ | |||
{ | |||
"editor.codeActionsOnSave": { | |||
"source.fixAll.eslint": "explicit" | |||
}, | |||
"files.associations": { | |||
".eslintrc*.json": "jsonc" | |||
}, | |||
"files.exclude": { | |||
"**/.vscode-test": true, | |||
"**/.vscode-test-web": true | |||
}, | |||
"files.insertFinalNewline": true, | |||
"files.trimTrailingWhitespace": true, | |||
"githubIssues.queries": [ | |||
{ | |||
"label": "Triage", | |||
"query": "state:open repo:${owner}/${repository} label:triage sort:updated-desc" | |||
}, | |||
{ | |||
"label": "Current", | |||
"query": "state:open repo:${owner}/${repository} milestone:\"13.5\" sort:updated-desc" | |||
}, | |||
{ | |||
"label": "Soon™", | |||
"query": "state:open repo:${owner}/${repository} milestone:Soon™ sort:updated-desc" | |||
}, | |||
{ | |||
"label": "Verify", | |||
"query": "state:closed repo:${owner}/${repository} -milestone:Shipped label:pending-release label:needs-verification sort:updated-desc" | |||
}, | |||
{ | |||
"label": "Pending Release", | |||
"query": "state:closed repo:${owner}/${repository} label:pending-release sort:updated-desc" | |||
}, | |||
{ | |||
"label": "Debt", | |||
"query": "state:open repo:${owner}/${repository} label:debt sort:updated-desc" | |||
}, | |||
{ | |||
"label": "All", | |||
"query": "state:open repo:${owner}/${repository} sort:updated-desc" | |||
} | |||
], | |||
"[html][javascript][json][jsonc][markdown][scss][svg][typescript][typescriptreact]": { | |||
"editor.defaultFormatter": "esbenp.prettier-vscode" | |||
}, | |||
"npm.packageManager": "yarn", | |||
"search.exclude": { | |||
"**/dist": true | |||
}, | |||
"typescript.preferences.importModuleSpecifier": "project-relative", | |||
"typescript.tsdk": "node_modules\\typescript\\lib" | |||
} |
@ -0,0 +1,79 @@ | |||
// Available variables which can be used inside of strings. | |||
// ${workspaceRoot}: the root folder of the team | |||
// ${file}: the current opened file | |||
// ${fileBasename}: the current opened file's basename | |||
// ${fileDirname}: the current opened file's dirname | |||
// ${fileExtname}: the current opened file's extension | |||
// ${cwd}: the current working directory of the spawned process | |||
// A task runner that calls a custom npm script that compiles the extension. | |||
{ | |||
"version": "2.0.0", | |||
"presentation": { | |||
"echo": false, | |||
"reveal": "always", | |||
"focus": false, | |||
"panel": "dedicated", | |||
"showReuseMessage": false | |||
}, | |||
"tasks": [ | |||
{ | |||
"type": "npm", | |||
"script": "build", | |||
"group": "build", | |||
"problemMatcher": ["$ts-checker-webpack", "$ts-checker-eslint-webpack"] | |||
}, | |||
{ | |||
"type": "npm", | |||
"script": "lint", | |||
"group": "build", | |||
"problemMatcher": ["$eslint-stylish"] | |||
}, | |||
{ | |||
"type": "npm", | |||
"script": "watch", | |||
"group": { | |||
"kind": "build", | |||
"isDefault": true | |||
}, | |||
"isBackground": true, | |||
"presentation": { | |||
"group": "watchers" | |||
}, | |||
"problemMatcher": ["$ts-checker-webpack-watch", "$ts-checker-eslint-webpack-watch"] | |||
}, | |||
{ | |||
"label": "Run (local web)", | |||
"type": "npm", | |||
"script": "web", | |||
"group": "test", | |||
"isBackground": true, | |||
"presentation": { | |||
"group": "web", | |||
"reveal": "never" | |||
}, | |||
"problemMatcher": [] | |||
}, | |||
{ | |||
"label": "Run (vscode.dev)", | |||
"type": "npm", | |||
"script": "web:serve", | |||
"group": "test", | |||
"isBackground": true, | |||
"presentation": { | |||
"group": "web", | |||
"reveal": "never" | |||
}, | |||
"problemMatcher": [] | |||
}, | |||
{ | |||
"type": "npm", | |||
"script": "watch:tests", | |||
"group": "build", | |||
"isBackground": true, | |||
"presentation": { | |||
"group": "watchers" | |||
}, | |||
"problemMatcher": "$tsc-watch" //["$ts-checker-webpack-watch", "$ts-checker-eslint-webpack-watch"] | |||
} | |||
] | |||
} |
@ -0,0 +1,45 @@ | |||
.github/** | |||
.vscode/** | |||
.vscode-clean/** | |||
.vscode-test/** | |||
.vscode-test-web/** | |||
.yarn/** | |||
dist/webviews/*.css | |||
emoji/** | |||
images/docs/sponsors/** | |||
images/docs/gitlens-preview.gif | |||
images/icons/** | |||
images/originals/** | |||
node_modules/** | |||
out/** | |||
patches/** | |||
scripts/** | |||
src/** | |||
test/** | |||
**/*.fig | |||
**/*.map | |||
**/*.pdn | |||
**/*.js.LICENSE.txt | |||
.browserslistrc | |||
.eslintcache | |||
.eslintignore | |||
.eslintrc*.json | |||
.fantasticonrc.js | |||
.git-blame-ignore-revs | |||
.gitattributes | |||
.gitignore | |||
.mailmap | |||
.prettierignore | |||
.prettierrc | |||
.yarnrc | |||
BACKERS.md | |||
CODE_OF_CONDUCT.md | |||
CONTRIBUTING.md | |||
esbuild.mjs | |||
README.pre.md | |||
svgo.config.js | |||
tsconfig*.json | |||
tsconfig*.tsbuildinfo | |||
webpack.config*.js | |||
yarn.lock | |||
.DS_Store |
@ -0,0 +1,2 @@ | |||
ignore-engines true | |||
version-git-message "Bumps to v%s" |
@ -0,0 +1,63 @@ | |||
# Previous Sponsors | |||
While GitLens is no longer accepting sponsorships, I've had some incredible sponsors over the years — thank you so much for your contributions. I am truly humbled by your generosity and support. 💖 | |||
## Corporate Sponsors | |||
<p align="center"> | |||
<a title="Try CodeStream — Pull Requests and Code Reviews in your IDE" href="https://sponsorlink.codestream.com/?utm_source=vscmarket&utm_medium=banner&utm_campaign=gitlens"><img src="https://alt-images.codestream.com/codestream_logo_gitlens_vscmarket.png" alt="CodeStream Logo — Pull Requests and Code Reviews in your IDE"/></a> | |||
<a title="Visit Embark Studios" href="https://embark-studios.com"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/embark-studios_dark.png" alt="Embark Studios Logo"/></a> | |||
<a title="Visit Localize" href="https://localizejs.com"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/localize_dark.png" alt="Localize Logo"/></a> | |||
<a title="Try Tabnine Autocomplete" href="http://wd5a.2.vu/GitLens"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/tabnine.png" alt="Tabnine Logo"/></a> | |||
<a title="Try Dendron — the IDE for General Knowledge" href="https://www.dendron.so"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/dendron.png" alt="Dendron Logo"/></a> | |||
<a title="Try Stepsize" href="https://bit.ly/3A5zaNg"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/stepsize.png" alt="Stepsize Logo"/></a> | |||
<a title="Visit Crésus" href="https://cresus.ch"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/sponsors/cresus.png" alt="Crésus Logo"/></a> | |||
</p> | |||
## User Sponsors | |||
- Borek Bernard | |||
- Jack | |||
- Ken Howard | |||
- Michael Duffy | |||
- Michael Scott-Nelson | |||
- MrG0lden | |||
- Sergey Cheperis | |||
- Xananax | |||
- Andreas Fertsch-Röver | |||
- Bill | |||
- Brandon Burroughs | |||
- Brent Schmidt | |||
- Diego La Manno | |||
- Eugen Grue | |||
- Georg Hartmann | |||
- Guido Kessels | |||
- J Burnett | |||
- JehongAhn | |||
- Jon G | |||
- Jordan Oroshiba | |||
- Karl | |||
- Michael Melanson | |||
- Niklas Lochschmidt | |||
- Pavel Khlopin | |||
- Pelle Wessman | |||
- Raphael Schweikert | |||
- sombriks | |||
- Stephen Kelley | |||
- Steven Hepting | |||
- Sunny Gupta | |||
- Vance Dubberly | |||
- Øyvind de Freitas Sørensen | |||
- Kori Roys | |||
- Michael Lang | |||
- Ian Maclean | |||
- Sergey Cheperis | |||
- Asem Hasna | |||
- gb | |||
- John Sweeney | |||
- ember arlynx | |||
- Bharat Arimilli | |||
- Darrin Massena | |||
- M365Bass | |||
- Sandeep kumar | |||
- Lawrence H. Leach |
@ -0,0 +1,46 @@ | |||
# Contributor Covenant Code of Conduct | |||
## Our Pledge | |||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. | |||
## Our Standards | |||
Examples of behavior that contributes to creating a positive environment include: | |||
- Using welcoming and inclusive language | |||
- Being respectful of differing viewpoints and experiences | |||
- Gracefully accepting constructive criticism | |||
- Focusing on what is best for the community | |||
- Showing empathy towards other community members | |||
Examples of unacceptable behavior by participants include: | |||
- The use of sexualized language or imagery and unwelcome sexual attention or advances | |||
- Trolling, insulting/derogatory comments, and personal or political attacks | |||
- Public or private harassment | |||
- Publishing others' private information, such as a physical or electronic address, without explicit permission | |||
- Other conduct which could reasonably be considered inappropriate in a professional setting | |||
## Our Responsibilities | |||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. | |||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. | |||
## Scope | |||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. | |||
## Enforcement | |||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at eamodio@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. | |||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. | |||
## Attribution | |||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] | |||
[homepage]: http://contributor-covenant.org | |||
[version]: http://contributor-covenant.org/version/1/4/ |
@ -0,0 +1,229 @@ | |||
# Contributing | |||
👍🎉 First off, thanks for taking the time to contribute! 🎉👍 | |||
When contributing to this project, please first discuss the changes you wish to make via an issue before making changes. | |||
Please note the [Code of Conduct](CODE_OF_CONDUCT.md) document, please follow it in all your interactions with this project. | |||
## Your First Code Contribution | |||
Unsure where to begin contributing? You can start by looking through the [`help-wanted`](https://github.com/gitkraken/vscode-gitlens/labels/help-wanted) issues. | |||
### Getting the code | |||
``` | |||
git clone https://github.com/gitkraken/vscode-gitlens.git | |||
``` | |||
Prerequisites | |||
- [Git](https://git-scm.com/), `>= 2.7.2` | |||
- [NodeJS](https://nodejs.org/), `>= 16.14.2` | |||
- [yarn](https://yarnpkg.com/), `>= 1.22.19` | |||
### Dependencies | |||
From a terminal, where you have cloned the repository, execute the following command to install the required dependencies: | |||
``` | |||
yarn | |||
``` | |||
### Build | |||
From a terminal, where you have cloned the repository, execute the following command to re-build the project from scratch: | |||
``` | |||
yarn run rebuild | |||
``` | |||
👉 **NOTE!** This will run a complete rebuild of the project. | |||
Or to just run a quick build, use: | |||
``` | |||
yarn run build | |||
``` | |||
### Watch | |||
During development you can use a watcher to make builds on changes quick and easy. From a terminal, where you have cloned the repository, execute the following command: | |||
``` | |||
yarn run watch | |||
``` | |||
Or use the provided `watch` task in VS Code, execute the following from the command palette (be sure there is no `>` at the start): | |||
``` | |||
task watch | |||
``` | |||
This will first do an initial full build and then watch for file changes, compiling those changes incrementally, enabling a fast, iterative coding experience. | |||
👉 **Tip!** You can press <kbd>CMD+SHIFT+B</kbd> (<kbd>CTRL+SHIFT+B</kbd> on Windows, Linux) to start the watch task. | |||
👉 **Tip!** You don't need to stop and restart the development version of Code after each change. You can just execute `Reload Window` from the command palette. | |||
### Formatting | |||
This project uses [prettier](https://prettier.io/) for code formatting. You can run prettier across the code by calling `yarn run pretty` from a terminal. | |||
To format the code as you make changes you can install the [Prettier - Code formatter](https://marketplace.visualstudio.com/items/esbenp.prettier-vscode) extension. | |||
Add the following to your User Settings to run prettier: | |||
``` | |||
"editor.formatOnSave": true, | |||
``` | |||
### Linting | |||
This project uses [ESLint](https://eslint.org/) for code linting. You can run ESLint across the code by calling `yarn run lint` from a terminal. Warnings from ESLint show up in the `Errors and Warnings` quick box and you can navigate to them from inside VS Code. | |||
To lint the code as you make changes you can install the [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) extension. | |||
### Bundling | |||
To generate a production bundle (without packaging) run the following from a terminal: | |||
``` | |||
yarn run bundle | |||
``` | |||
To generate a VSIX (installation package) run the following from a terminal: | |||
``` | |||
yarn run package | |||
``` | |||
### Debugging | |||
#### Using VS Code (desktop) | |||
1. Open the `vscode-gitlens` folder | |||
2. Ensure the required [dependencies](#dependencies) are installed | |||
3. Choose the `Watch & Run` launch configuration from the launch dropdown in the Run and Debug viewlet and press `F5`. | |||
_Note: If you see a pop-up with a message similar to "The task cannot be tracked. Make sure to have a problem matcher defined.", you will need to install the [TypeScript + Webpack Problem Matchers](https://marketplace.visualstudio.com/items?itemName=amodio.tsl-problem-matcher) extension._ | |||
#### Using VS Code (desktop webworker) | |||
1. Open the `vscode-gitlens` folder | |||
2. Ensure the required [dependencies](#dependencies) are installed | |||
3. Choose the `Watch & Run (web)` launch configuration from the launch dropdown in the Run and Debug viewlet and press `F5`. | |||
#### Using VS Code for the Web (locally) | |||
See https://code.visualstudio.com/api/extension-guides/web-extensions#test-your-web-extension-in-a-browser-using-vscodetestweb | |||
1. Open the `vscode-gitlens` folder | |||
2. Ensure the required [dependencies](#dependencies) are installed | |||
3. Run the `build` or `watch` task from the command palette | |||
4. Run the `Run (local web)` task from the command palette | |||
#### Using VS Code for the Web (vscode.dev) | |||
See https://code.visualstudio.com/api/extension-guides/web-extensions#test-your-web-extension-in-vscode.dev | |||
1. Open the `vscode-gitlens` folder | |||
2. Ensure the required [dependencies](#dependencies) are installed | |||
3. Run the `build` or `watch` task from the command palette | |||
4. Run the `Run (vscode.dev)` task from the command palette | |||
## Submitting a Pull Request | |||
Please follow all the instructions in the [PR template](.github/PULL_REQUEST_TEMPLATE.md). | |||
### Contributions to GitLens+ Licensed Files | |||
This repository contains both OSS-licensed and non-OSS-licensed files. All files in or under any directory named "plus" fall under LICENSE.plus. The remaining files fall under LICENSE, the MIT license. | |||
If a pull request is submitted which contains changes to files in or under any directory named "plus", then you agree that GitKraken and/or its licensors (as applicable) retain all right, title and interest in and to all such modifications and/or patches. | |||
### Update the CHANGELOG | |||
The [Change Log](CHANGELOG.md) is updated manually and an entry should be added for each change. Changes are grouped in lists by `added`, `changed`, `removed`, or `fixed`. | |||
Entries should be written in future tense: | |||
- Be sure to give yourself much deserved credit by adding your name and user in the entry | |||
> Added | |||
> | |||
> - Adds awesome feature — closes [#\<issue\>](https://github.com/gitkraken/vscode-gitlens/issues/<issue>) thanks to [PR #\<pr\>](https://github.com/gitkraken/vscode-gitlens/issues/<pr>) by Your Name ([@\<your-github-username\>](https://github.com/<your-github-username>)) | |||
> | |||
> Changed | |||
> | |||
> - Changes or improves an existing feature — closes [#\<issue\>](https://github.com/gitkraken/vscode-gitlens/issues/<issue>) thanks to [PR #\<pr\>](https://github.com/gitkraken/vscode-gitlens/issues/<pr>) by Your Name ([@\<your-github-username\>](https://github.com/<your-github-username>)) | |||
> | |||
> Fixed | |||
> | |||
> - Fixes [#\<issue\>](https://github.com/gitkraken/vscode-gitlens/issues/<issue>) a bug or regression — thanks to [PR #\<pr\>](https://github.com/gitkraken/vscode-gitlens/issues/<pr>) by Your Name ([@\<your-github-username\>](https://github.com/<your-github-username>)) | |||
### Update the README | |||
If this is your first contribution to GitLens, please give yourself credit by adding yourself to the `Contributors` section of the [README](README.md#contributors-) in the following format: | |||
> - `Your Name ([@<your-github-username>](https://github.com/<your-github-username>)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=<your-github-username>)` | |||
## Publishing | |||
### Stable Releases | |||
#### Versioning | |||
GitLens version changes are bucketed into two types: | |||
- `minor`: normal release (new features, enhancements and fixes) | |||
- `patch`: hotfix release (just fixes) | |||
<small>Note: `major` version bumps are only considered for more special circumstances.</small> | |||
#### Preparing a Normal Release | |||
Use the [prep-release](scripts/prep-release.js) script to prepare a new release. The script updates the [package.json](package.json) and [CHANGELOG.md](CHANGELOG.md) appropriately, commits the changes as `Bumps to v{major}.{minor}.{patch}`, and creates a `v{major}.{minor}.{patch}` tag which when pushed will trigger the CI to publish a release. | |||
1. Ensure you are on the `main` branch and have a clean working tree | |||
2. Ensure the [CHANGELOG.md](CHANGELOG.md) has been updated with the release notes | |||
3. Run `yarn run prep-release` and enter the desired `{major}.{minor}.{patch}` version when prompted | |||
4. Review the `Bumps to v{major}.{minor}.{patch}` commit | |||
5. Run `git push --follow-tags` to push the commit and tag | |||
Pushing the `v{major}.{minor}.{patch}` tag will trigger the [Publish Stable workflow](.github/workflows/cd-stable.yml) to automatically package the extension, create a [GitHub release](https://github.com/gitkraken/vscode-gitlens/releases/latest), and deploy it to the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens). | |||
If the action fails and retries are unsuccessful, the VSIX can be built locally with `yarn package` and uploaded manually to the marketplace. A GitHub release can also be [created manually](https://github.com/gitkraken/vscode-gitlens/releases/new) using `v{major}.{minor}.{patch}` as the title and the notes from the [CHANGELOG.md](CHANGELOG.md) with the VSIX attached. | |||
#### Preparing a Patch Release | |||
1. Create, if needed, a `release/{major}.{minor}` branch from the latest `v{major}.{minor}.{patch}` tag | |||
2. Cherry-pick the desired commits from `main` into the `release/{major}.{minor}` branch | |||
3. Follow steps 2-5 in [Preparing a Normal Release](#preparing-a-normal-release) above | |||
4. Manually update the [CHANGELOG.md](CHANGELOG.md) on `main` with the patch release notes | |||
Note: All patch releases for the same `{major}.{minor}` version use the same `release/{major}.{minor}` branch | |||
### Pre-releases | |||
The [Publish Pre-release workflow](.github/workflows/cd-pre.yml) is automatically run every AM unless no new changes have been committed to `main`. | |||
### Insiders (deprecated use pre-release instead) | |||
The Publish Insiders workflow is no longer available and was replaced with the pre-release edition. | |||
## Updating GL Icons | |||
To add new icons to the GL Icons font follow the steps below: | |||
- Add new SVG icons to the `images/icons` folder | |||
- Update the `images/icons/template/mapping.json` file with entries for the new icons (append to the end of the file) | |||
- Optimize and build the icons by running the following from a terminal: | |||
``` | |||
yarn run icons:svgo | |||
yarn run build:icons | |||
``` | |||
Once you've finshed copy the new `glicons.woff2?<uuid>` URL from `src/webviews/apps/shared/glicons.scss` and search and replace the old references with the new one. |
@ -0,0 +1,30 @@ | |||
=============================================================================== | |||
The following license applies to all files in this repository, | |||
except for those in or under any directory named "plus", | |||
which are covered by LICENSE.plus. | |||
=============================================================================== | |||
The MIT License (MIT) | |||
Copyright (c) 2021-2023 Axosoft, LLC dba GitKraken ("GitKraken") | |||
Copyright (c) 2016-2021 Eric Amodio | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in all | |||
copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
SOFTWARE. |
@ -0,0 +1,40 @@ | |||
GitLens+ License | |||
Copyright (c) 2021-2023 Axosoft, LLC dba GitKraken ("GitKraken") | |||
With regard to the software set forth in or under any directory named "plus". | |||
This software and associated documentation files (the "Software") may be | |||
compiled as part of the gitkraken/vscode-gitlens open source project (the | |||
"GitLens") to the extent the Software is a required component of the GitLens; | |||
provided, however, that the Software and its functionality may only be used if | |||
you (and any entity that you represent) have agreed to, and are in compliance | |||
with, the GitKraken End User License Agreement, available at | |||
https://gitkraken.com/eula (the "EULA"), or other agreement governing the | |||
use of the Software, as agreed by you and GitKraken, and otherwise have a valid | |||
subscription for the correct number of user seats for the applicable version of | |||
the Software (e.g., GitLens+, GitLens+ Pro, GitLens+ Teams, and GitLens+ | |||
Enterprise). Subject to the foregoing sentence, you are free to modify this | |||
Software and publish patches to the Software. You agree that GitKraken and/or | |||
its licensors (as applicable) retain all right, title and interest in and to all | |||
such modifications and/or patches, and all such modifications and/or patches may | |||
only be used, copied, modified, displayed, distributed, or otherwise exploited | |||
with a valid subscription for the correct number of user seats for the Software. | |||
In furtherance of the foregoing, you hereby assign to GitKraken all such | |||
modifications and/or patches. You are not granted any other rights beyond what | |||
is expressly stated herein. Except as set forth above, it is forbidden to copy, | |||
merge, publish, distribute, sublicense, and/or sell the Software. | |||
The full text of this GitLens+ License shall be included in all copies or | |||
substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | |||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | |||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
For all third party components incorporated into the Software, those components | |||
are licensed under the original license provided by the owner of the applicable | |||
component. |
@ -1,3 +1,443 @@ | |||
# test1 | |||
# GitLens — Supercharge Git in VS Code | |||
#### 测试修改 | |||
> Supercharge Git and unlock **untapped knowledge** within your repository to better **understand**, **write**, and **review** code. Focus, collaborate, accelerate. | |||
[GitLens](https://gitkraken.com/gitlens?utm_source=gitlens-extension&utm_medium=in-app-links&utm_campaign=gitlens-logo-links 'Learn more about GitLens') is a powerful [open-source](https://github.com/gitkraken/vscode-gitlens 'Open GitLens on GitHub') extension for [Visual Studio Code](https://code.visualstudio.com). | |||
GitLens supercharges your Git experience in VS Code. Maintaining focus is critical, extra time spent context switching or missing context disrupts your flow. GitLens is the ultimate tool for making Git work for you, designed to improve focus, productivity, and collaboration with a powerful set of tools to help you and your team better understand, write, and review code. | |||
GitLens sets itself apart from other Git tools through its deep level of integration, versatility, and ease of use. GitLens sits directly within your editor, reducing context switching and promoting a more efficient workflow. We know Git is hard and strive to make it as easy as possible while also going beyond the basics with rich visualizations and step-by-step guidance and safety, just to name a few. | |||
## Getting Started | |||
<p> | |||
<a title="Watch the GitLens Getting Started video" href="https://www.youtube.com/watch?v=UQPb73Zz9qk"><img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/get-started-video.png" alt="Watch the GitLens Getting Started video" /></a> | |||
</p> | |||
Install GitLens by clicking `Install` on the banner above, or from the Extensions side bar in VS Code, by searching for GitLens. | |||
Use `Switch to Pre-Release Version` on the extension banner to live on the edge and be the first to experience new features. | |||
## Is GitLens Free? | |||
All features are free to use on all repos, **except** for features, | |||
- marked with a ✨ require a [trial or paid plan](https://www.gitkraken.com/gitlens/pricing) for use on privately hosted repos | |||
- marked with a ☁️ require a GitKraken account, with access level based on your [plan](https://www.gitkraken.com/gitlens/pricing), e.g. Free, Pro, etc | |||
See the [FAQ](#is-gitlens-free-to-use 'Jump to FAQ') for more details. | |||
[Features](#discover-powerful-features 'Jump to Discover Powerful Features') | |||
| [Labs](#gitkraken-labs 'Jump to GitKraken Labs') | |||
| [Pro](#ready-for-gitlens-pro 'Jump to Ready for GitKraken Pro?') | |||
| [FAQ](#faq 'Jump to FAQ') | |||
| [Support and Community](#support-and-community 'Jump to Support and Community') | |||
| [Contributing](#contributing 'Jump to Contributing') | |||
| [Contributors](#contributors- 'Jump to Contributors') | |||
| [License](#license 'Jump to License') | |||
# Discover Powerful Features | |||
Quickly glimpse into when, why, and by whom a line or code block was changed. Zero-in on the most important changes and effortlessly navigate through history to gain further insights as to how a file or individual line's code evolved. Visualize code authorship at a glance via Git blame annotations and Git CodeLens. Seamlessly explore Git repositories with the visually-rich Commit Graph. Gain valuable insights via GitLens Inspect, and much more. | |||
- [**Blame, CodeLens, and Hovers**](#blame-codelens-and-hovers) — Gain a deeper understanding of how code changed and by whom through in-editor code annotations and rich hovers. | |||
- [**File Annotations**](#file-annotations) — Toggle on-demand whole file annotations to see authorship, recent changes, and a heatmap. | |||
- [**Revision Navigation**](#revision-navigation) — Explore the history of a file to see how the code evolved over time. | |||
- [**Side Bar Views**](#side-bar-views) — Powerful views into Git that don't come in the box. | |||
- [**Commit Graph ✨**](#commit-graph-✨) — Visualize your repository and keep track of all work in progress. | |||
- [**GitKraken Workspaces ☁️ and Focus ✨**](#gitkraken-workspaces-☁️-and-focus-✨) — Easily group and manage multiple repositories and bring pull requests and issues into a unified view. | |||
- [**Visual File History ✨**](#visual-file-history-✨) — Identify the most impactful changes to a file and by whom. | |||
- [**Worktrees ✨**](#worktrees-✨) — Simultaneously work on different branches of a repository. | |||
- [**Interactive Rebase Editor**](#interactive-rebase-editor) — Visualize and configure interactive rebase operations with a user-friendly editor. | |||
- [**Comprehensive Commands**](#comprehensive-commands) — A rich set of commands to help you do everything you need. | |||
- [**Integrations**](#integrations) — Simplify your workflow and quickly gain insights via integration with your Git hosting services. | |||
## Blame, CodeLens, and Hovers | |||
Gain a deeper understanding of how code changed and by whom through in-editor code annotations and rich hovers. | |||
### Inline and Status Bar Blame | |||
Provides historical context about line changes through unobtrusive **blame annotation** at the end of the current line and on the status bar. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/current-line-blame.png" alt="Inline Line Blame" /> | |||
<figcaption>Inline blame annotations</figcaption> | |||
</figure> | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/status-bar.png" alt="Status Bar Blame" /> | |||
<figcaption>Status bar blame annotations</figcaption> | |||
</figure> | |||
💡 Use the `Toggle Line Blame` and `Toggle Git CodeLens` commands from the Command Palette to turn the annotations on and off. | |||
### Git CodeLens | |||
Adds contextual and actionable authorship information at the top of each file and at the beginning of each block of code. | |||
- **Recent Change** — author and date of the most recent commit for the file or code block | |||
- **Authors** — number of authors of the file or code block and the most prominent author (if there is more than one) | |||
### Rich Hovers | |||
Hover over blame annotations to reveal rich details and actions. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/hovers-current-line.png" alt="Current Line Hovers" /> | |||
</figure> | |||
## File Annotations | |||
Use on-demand whole file annotations to see authorship, recent changes, and a heatmap. Annotations are rendered as visual indicators directly in the editor. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/gutter-blame.png" alt="File Blame"> | |||
<figcaption>File Blame annotations</figcaption> | |||
</figure> | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/gutter-changes.png" alt="File Changes" /> | |||
<figcaption>File Changes annotations</figcaption> | |||
</figure> | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/gutter-heatmap.png" alt="File Heatmap" /> | |||
<figcaption>File Heatmap annotations</figcaption> | |||
</figure> | |||
💡 On an active file, use the `Toggle File Blame`, `Toggle File Changes`, and `Toggle File Heatmap` commands from the Command Palette to turn the annotations on and off. | |||
## Revision Navigation | |||
With just a click of a button, you can navigate backwards and forwards through the history of any file. Compare changes over time and see the revision history of the whole file or an individual line. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/revision-navigation.gif" alt="Revision Navigation" /> | |||
</figure> | |||
## Side Bar Views | |||
Our views are arranged for focus and productivity, although you can easily drag them around to suit your needs. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/side-bar-views.png" alt="Side Bar views" /> | |||
<figcaption>GitLens Inspect as shown above has been manually moved into the Secondary Side Bar</figcaption> | |||
</figure> | |||
💡 Use the `Reset Views Layout` command to quickly get back to the default layout. | |||
### GitLens Inspect | |||
An x-ray or developer tools inspector into your code, focused on providing contextual information and insights to what you're actively working on. | |||
- **Commit Details** — See rich details of a commit or stash. | |||
- **Line History** — Jump through the revision history of the selected line(s). | |||
- **File History** — Explore the revision history of a file, folder, or selected lines. | |||
- [**Visual File History ✨**](#visual-file-history-✨) — Quickly see the evolution of a file, including when changes were made, how large they were, and who made them. | |||
- **Search & Compare** — Search and explore for a specific commit, message, author, changed file or files, or even a specific code change, or visualize comparisons between branches, tags, commits, and more. | |||
### GitLens | |||
Quick access to many GitLens features. Also the home of GitKraken teams and collaboration services (e.g. GitKraken Workspaces), help, and support. | |||
- **Home** — Quick access to many features. | |||
- [**GitKraken Workspaces ☁️**](#gitkraken-workspaces-☁️-and-focus-✨) — Easily group and manage multiple repositories together, accessible from anywhere, streamlining your workflow. | |||
- **GitKraken Account** — Power-up with GitKraken Cloud Services. | |||
### Source Control | |||
Shows additional views that are focused on exploring and managing your repositories. | |||
- **Commits** — Comprehensive view of the current branch commit history, including unpushed changes, upstream status, quick comparisons, and more. | |||
- **Branches** — Manage and navigate branches. | |||
- **Remotes** — Manage and navigate remotes and remote branches. | |||
- **Stashes** — Save and restore changes you are not yet ready to commit. | |||
- **Tags** — Manage and navigate tags. | |||
- [**Worktrees ✨**](#worktrees-✨) — Simultaneously work on different branches of a repository. | |||
- **Contributors** — Ordered list of contributors, providing insights into individual contributions and involvement. | |||
- **Repositories** — Unifies the above views for more efficient management of multiple repositories. | |||
### (Bottom) Panel | |||
Convenient and easy access to the Commit Graph with a dedicated details view. | |||
- [**Commit Graph ✨**](#commit-graph-✨) — Visualize your repository and keep track of all work in progress. | |||
## Commit Graph ✨ | |||
Easily visualize your repository and keep track of all work in progress. | |||
Use the rich commit search to find exactly what you're looking for. Its powerful filters allow you to search by a specific commit, message, author, a changed file or files, or even a specific code change. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/commit-graph-illustrated.png" alt="Commit Graph" /> | |||
</figure> | |||
💡Quickly toggle the Graph via the `Toggle Commit Graph` command. | |||
💡Maximize the Graph via the `Toggle Maximized Commit Graph` command. | |||
## GitKraken Workspaces ☁️ and Focus ✨ | |||
GitKraken Workspaces allow you to easily group and manage multiple repositories together, accessible from anywhere, streamlining your workflow. Create workspaces just for yourself or share (coming soon in GitLens) them with your team for faster onboarding and better collaboration. | |||
Focus brings all of your GitHub pull requests and issues into a unified actionable view to help to you more easily juggle work in progress, pending work, reviews, and more. Quickly see if anything requires your attention while keeping you focused. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/focus-view.png" alt="Focus view" /> | |||
</figure> | |||
## Visual File History ✨ | |||
Quickly see the evolution of a file, including when changes were made, how large they were, and who made them. Use it to quickly find when the most impactful changes were made to a file or who best to talk to about file changes and more. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/visual-file-history-illustrated.png" alt="Visual File History view" /> | |||
</figure> | |||
## Worktrees ✨ | |||
Efficiently multitask by minimizing the context switching between branches, allowing you to easily work on different branches of a repository simultaneously. | |||
Avoid interrupting your work in progress when needing to review a pull request. Simply create a new worktree and open it in a new VS Code window, all without impacting your other work. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/worktrees-illustrated.png" alt="Worktrees view" /> | |||
</figure> | |||
## Interactive Rebase Editor | |||
Easily visualize and configure interactive rebase operations with the intuitive and user-friendly Interactive Rebase Editor. Simply drag & drop to reorder commits and select which ones you want to edit, squash, or drop. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/rebase.gif" alt="Interactive Rebase Editor" /> | |||
</figure> | |||
## Comprehensive Commands | |||
Stop worrying about memorizing Git commands; GitLens provides a rich set of commands to help you do everything you need. | |||
### Git Command Palette | |||
A guided, step-by-step experience for quickly and safely executing Git commands. | |||
<figure align="center"> | |||
<img src="https://raw.githubusercontent.com/gitkraken/vscode-gitlens/main/images/docs/git-command-palette.png" alt="Git Command Palette" /> | |||
</figure> | |||
### Quick Access Commands | |||
Use a series of new commands to: | |||
- Explore the commit history of branches and files | |||
- Quickly search for and navigate to (and action upon) commits | |||
- Explore a file of a commit | |||
- View and explore your stashes | |||
- Visualize the current repository status | |||
# Integrations | |||
Context switching kills productivity. GitLens not only reveals buried knowledge within your repository, it also brings additional context from issues and pull requests providing you with a wealth of information and insights at your fingertips. | |||
Simplify your workflow and quickly gain insights with automatic linking of issues and pull requests across multiple Git hosting services including GitHub, GitHub Enterprise ✨, GitLab, GitLab self-managed ✨, Gitea, Gerrit, Google Source, Bitbucket, Bitbucket Server, Azure DevOps, and custom servers. | |||
All integration provide automatic linking, while rich integrations with GitHub & GitLab offer detailed hover information for autolinks, and correlations between pull requests, branches, and commits, as well as user avatars for added context. | |||
## Define your own autolinks | |||
Use autolinks to linkify external references, like Jira issues or Zendesk tickets, in commit messages. | |||
# GitKraken Labs | |||
Our incubator for experimentation and exploration with the community to gather early reactions and feedback. Below are some of our current experiments. | |||
## 🧪AI Explain Commit | |||
Use the Explain panel on the **Commit Details** view to leverage AI to help you understand the changes introduced by a commit. | |||
## 🧪Automatically Generate Commit Message | |||
Use the `Generate Commit Message` command from the Source Control view's context menu to automatically generate a commit message for your staged changes by leveraging AI. | |||
# Ready for GitKraken Pro? | |||
When you're ready to unlock the full potential of GitLens and enjoy all the benefits on your privately hosted repos, consider upgrading to GitKraken Pro. With GitKraken Pro, you'll gain access to ✨ features on privately hosted repos and ☁️ features based on the Pro plan. | |||
To learn more about the pricing and the additional ✨ and ☁️ features offered with GitKraken Pro, visit the [GitLens Pricing page](https://www.gitkraken.com/gitlens/pricing). Upgrade to GitKraken Pro today and take your Git workflow to the next level! | |||
# FAQ | |||
## Is GitLens free to use? | |||
Yes. All features are free to use on all repos, **except** for features, | |||
- marked with a ✨ require a [trial or paid plan](https://www.gitkraken.com/gitlens/pricing) for use on privately hosted repos | |||
- marked with a ☁️ require a GitKraken Account, with access level based on your [plan](https://www.gitkraken.com/gitlens/pricing), e.g. Free, Pro, etc | |||
While GitLens offers a remarkable set of free features, a subset of features tailored for professional developers and teams, marked with a ✨, require a trial or paid plan for use on privately hosted repos — use on local or publicly hosted repos is free for everyone. Additionally some features marked with a ☁️, rely on GitKraken Dev Services which requires a GitKraken account and access is based on your plan, e.g. Free, Pro, etc. | |||
Preview ✨ features instantly for free for 3 days without an account, or start a free GitKraken trial to get an additional 7 days and gain access to ☁️ features to experience the full power of GitLens. | |||
## Are ✨ and ☁️ features free to use? | |||
✨ features are free for use on local and publicly hosted repos, while a paid plan is required for use on privately hosted repos. ☁️ feature access is based on your plan including a Free plan. | |||
## Where can I find pricing? | |||
Visit the [GitLens Pricing page](https://www.gitkraken.com/gitlens/pricing) for detailed pricing information and feature matrix for plans. | |||
# Support and Community | |||
Support documentation can be found on the [GitLens Help Center](https://help.gitkraken.com/gitlens/gitlens-home/). If you need further assistance or have any questions, there are various support channels and community forums available for GitLens: | |||
## Issue Reporting and Feature Requests | |||
Found a bug? Have a feature request? Reach out on our [GitHub Issues page](https://github.com/gitkraken/vscode-gitlens/issues). | |||
## Discussions | |||
Join the GitLens community on [GitHub Discussions](https://github.com/gitkraken/vscode-gitlens/discussions) to connect with other users, share your experiences, and discuss topics related to GitLens. | |||
## GitKraken Support | |||
For any issues or inquiries related to GitLens, you can reach out to the GitKraken support team via the [official support page](https://support.gitkraken.com/). They will be happy to assist you with any problems you may encounter. | |||
With GitKraken Pro, you gain access to priority email support from our customer success team, ensuring higher priority and faster response times. Custom onboarding and training are also available to help you and your team quickly get up and running with a GitKraken Pro plan. | |||
# Contributing | |||
GitLens is an open-source project that greatly benefits from the contributions and feedback from its community. | |||
Your contributions, feedback, and engagement in the GitLens community are invaluable, and play a significant role in shaping the future of GitLens. Thank you for your support! | |||
## Code Contributions | |||
Want to contribute to GitLens? Follow the [CONTRIBUTING](https://github.com/gitkraken/vscode-gitlens/blob/main/CONTRIBUTING.md) docs to get started. | |||
## Documentation Contributions | |||
Contributions to the documentation are greatly appreciated. If you find any areas that can be improved or have suggestions for new documentation, you can submit them as pull requests to the [GitLens Docs](https://github.com/gitkraken/gitlens-docs) repository. | |||
# Contributors | |||
A big thanks to the people that have contributed to this project 🙏❤️: | |||
- Zeeshan Adnan ([@zeeshanadnan](https://github.com/zeeshanadnan)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=zeeshanadnan) | |||
- Alex ([@deadmeu](https://github.com/deadmeu)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=deadmeu) | |||
- Abdulrahman (Abdu) Assabri ([@abdusabri](https://github.com/abdusabri)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=abdusabri) | |||
- Grey Baker ([@greysteil](https://github.com/greysteil)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=greysteil) | |||
- Loris Bettazza ([@Pustur](https://github.com/Pustur)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Pustur) | |||
- Brian Bolte ([@bolte-17](https://github.com/bolte-17)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=bolte-17) | |||
- Zach Boyle ([@zaboyle](https://github.com/zaboyle)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=zaboyle) | |||
- Tony Brix ([@UziTech](https://github.com/UziTech)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=UziTech) | |||
- Matt Buckley ([@Mattadore](https://github.com/Mattadore)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Mattadore) | |||
- Lee Chang ([@MeltingMosaic](https://github.com/MeltingMosaic)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=MeltingMosaic) | |||
- Amanda Cameron ([@AmandaCameron](https://github.com/AmandaCameron)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=AmandaCameron) | |||
- Martin Campbell ([@martin-css](https://github.com/martin-css)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=martin-css) | |||
- Brett Cannon ([@brettcannon](https://github.com/brettcannon)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=brettcannon) | |||
- Barney Carroll ([@barneycarroll](https://github.com/barneycarroll)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=barneycarroll) | |||
- Andrea Cigana ([@ciganandrea](https://github.com/ciganandrea)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ciganandrea) | |||
- Ash Clarke ([@ashclarke](https://github.com/ashclarke)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ashclarke) | |||
- Travis Collins ([@TravisTX](https://github.com/TravisTX)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=TravisTX) | |||
- Matt Cooper ([@vtbassmatt](https://github.com/vtbassmatt)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=vtbassmatt) | |||
- Skyler Dawson ([@foxwoods369](https://github.com/foxwoods369)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=foxwoods369) | |||
- Andrii Dieiev ([@IllusionMH](https://github.com/IllusionMH)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=IllusionMH) | |||
- egfx-notifications ([@egfx-notifications](https://github.com/egfx-notifications)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=egfx-notifications) | |||
- Segev Finer ([@segevfiner](https://github.com/segevfiner)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=segevfiner) | |||
- Cory Forsyth ([@bantic](https://github.com/bantic)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=bantic) | |||
- John Gee ([@shadowspawn](https://github.com/shadowspawn)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=shadowspawn) | |||
- Geoffrey ([@g3offrey](https://github.com/g3offrey)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=g3offrey) | |||
- Omar Ghazi ([@omarfesal](https://github.com/omarfesal)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=omarfesal) | |||
- Neil Ghosh ([@neilghosh](https://github.com/neilghosh)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=neilghosh) | |||
- Guillaume Rozan ([@grozan](https://github.com/grozan)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=grozan) | |||
- Guillem González Vela ([@guillemglez](https://github.com/guillemglez)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=guillemglez) | |||
- Vladislav Guleaev ([@vguleaev](https://github.com/vguleaev)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=vguleaev) | |||
- Dmitry Gurovich ([@yrtimiD](https://github.com/yrtimiD)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=yrtimiD) | |||
- hahaaha ([@hahaaha](https://github.com/hahaaha)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=hahaaha) | |||
- Victor Hallberg ([@mogelbrod](https://github.com/mogelbrod)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mogelbrod) | |||
- Ken Hom ([@kh0m](https://github.com/kh0m)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=kh0m) | |||
- Yukai Huang ([@Yukaii](https://github.com/Yukaii)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Yukaii) | |||
- Justin Hutchings ([@jhutchings1](https://github.com/jhutchings1)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=jhutchings1) | |||
- Roy Ivy III ([@rivy](https://github.com/rivy)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=rivy) | |||
- Helmut Januschka ([@hjanuschka](https://github.com/hjanuschka)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=hjanuschka) | |||
- jogo- ([@jogo-](https://github.com/jogo-)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=jogo-) | |||
- Nils K ([@septatrix](https://github.com/septatrix)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=septatrix) | |||
- Chris Kaczor ([@ckaczor](https://github.com/ckaczor)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ckaczor) | |||
- Aidos Kanapyanov ([@aidoskanapyanov](https://github.com/aidoskanapyanov)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=aidoskanapyanov) | |||
- Allan Karlson ([@bees4ever](https://github.com/bees4ever)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=bees4ever) | |||
- Nafiur Rahman Khadem ([@ShafinKhadem](https://github.com/ShafinKhadem)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ShafinKhadem) | |||
- Mathew King ([@MathewKing](https://github.com/MathewKing)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=MathewKing) | |||
- Lior Kletter ([@Git-Lior](https://github.com/Git-Lior)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Git-Lior) | |||
- Chase Knowlden ([@ChaseKnowlden](https://github.com/ChaseKnowlden)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ChaseKnowlden) | |||
- Andrei Korigodski ([@korigod](https://github.com/korigod)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=korigod) | |||
- Kwok ([@mankwok](https://github.com/mankwok)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mankwok) | |||
- Marc Lasson ([@mlasson](https://github.com/mlasson)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mlasson) | |||
- John Letey ([@johnletey](https://github.com/johnletey)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=johnletey) | |||
- Stanislav Lvovsky ([@slavik-lvovsky](https://github.com/slavik-lvovsky)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=slavik-lvovsky) | |||
- Peng Lyu ([@rebornix](https://github.com/rebornix)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=rebornix) | |||
- Cédric Malard ([@cmalard](https://github.com/cmalard)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=cmalard) | |||
- Asif Kamran Malick ([@akmalick](https://github.com/akmalick)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=akmalick) | |||
- Sam Martin ([@smartinio](https://github.com/smartinio)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=smartinio) | |||
- mcy-kylin ([@mcy-kylin](https://github.com/mcy-kylin)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mcy-kylin) | |||
- Mark Molinaro ([@markjm](https://github.com/markjm)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=markjm) | |||
- Ahmadou Waly Ndiaye ([@sir-kain](https://github.com/sir-kain)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=sir-kain) | |||
- Nguyen Long Nhat ([@torn4dom4n](https://github.com/torn4dom4n)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=torn4dom4n) | |||
- Dave Nicolson ([@dnicolson](https://github.com/dnicolson)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=dnicolson) | |||
- Aurelio Ogliari ([@nobitagit](https://github.com/nobitagit)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=nobitagit) | |||
- Raaj Patil ([@arrpee](https://github.com/arrpee)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=arrpee) | |||
- Kevin Paxton ([kpaxton](https://github.com/kpaxton)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=kpaxton) | |||
- Connor Peet ([@connor4312](https://github.com/connor4312)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=connor4312) | |||
- Maxim Pekurin ([@pmaxim25](https://github.com/pmaxim25)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=pmaxim25) | |||
- Leo Dan Peña ([@leo9-py](https://github.com/leo9-py)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=leo9-py) | |||
- Aman Prakash ([@gitgoap](https://github.com/gitgoap)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=gitgoap) | |||
- Arunprasad Rajkumar ([@arajkumar](https://github.com/arajkumar)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=arajkumar) | |||
- David Rees ([@studgeek](https://github.com/studgeek)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=studgeek) | |||
- Rickard ([@rickardp](https://github.com/rickardp)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=rickardp) | |||
- Johannes Rieken ([@jrieken](https://github.com/jrieken)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=jrieken) | |||
- Daniel Rodríguez ([@sadasant](https://github.com/sadasant)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=sadasant) | |||
- Guillaume Rozan ([@rozangu1](https://github.com/rozangu1)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=rozangu1) | |||
- ryenus ([@ryenus](https://github.com/ryenus)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ryenus) | |||
- Felipe Santos ([@felipecrs](https://github.com/felipecrs)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=felipecrs) | |||
- Andrew Savage ([@andrewsavage1](https://github.com/andrewsavage1)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=andrewsavage1) | |||
- Zack Schuster ([@zackschuster](https://github.com/zackschuster)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=zackschuster) | |||
- Matt Seddon ([@mattseddon](https://github.com/mattseddon)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mattseddon) | |||
- Ahmadali Shafiee ([@ahmadalli](https://github.com/ahmadalli)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ahmadalli) | |||
- Shashank Shastri ([@Shashank-Shastri](https://github.com/Shashank-Shastri)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Shashank-Shastri) | |||
- Skybbles ([@Luxray5474](https://github.com/Luxray5474)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Luxray5474) | |||
- Brendon Smith ([@br3ndonland](https://github.com/br3ndonland)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=br3ndonland) | |||
- Ross Smith II ([@rasa](https://github.com/rasa)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=rasa) | |||
- Oleg Solomka ([@legomushroom](https://github.com/legomushroom)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=legomushroom) | |||
- Miguel Solorio ([@misolori](https://github.com/misolori)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=misolori) | |||
- SpaceEEC ([@SpaceEEC](https://github.com/SpaceEEC)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=SpaceEEC) | |||
- stampyzfanz ([@stampyzfanz](https://github.com/stampyzfanz)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=stampyzfanz) | |||
- sueka ([@sueka](https://github.com/sueka)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=sueka) | |||
- Mike Surcouf ([@mikes-gh](https://github.com/mikes-gh)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=mikes-gh) | |||
- Alexey Svetliakov ([@asvetliakov](https://github.com/asvetliakov)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=asvetliakov) | |||
- Takashi Tamura ([@tamuratak](https://github.com/tamuratak)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=tamuratak) | |||
- Andy Tang ([@thewindsofwinter](https://github.com/thewindsofwinter)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=thewindsofwinter) | |||
- Dmitry Ulupov ([@dimaulupov](https://github.com/dimaulupov)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=dimaulupov) | |||
- Alexey Vasyukov ([@notmedia](https://github.com/notmedia)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=notmedia) | |||
- Ivan Volzhev ([@ivolzhevbt](https://github.com/ivolzhevbt)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=ivolzhevbt) | |||
- x13machine ([@x13machine](https://github.com/x13machine)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=x13machine) | |||
- Alwin Wang ([@alwinw](https://github.com/alwinw)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=alwinw) | |||
- Ian Wilkinson ([@sgtwilko](https://github.com/sgtwilko)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=sgtwilko) | |||
- Brian Williams ([@Brcrwilliams](https://github.com/Brcrwilliams)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Brcrwilliams) | |||
- Adaex Yang ([@adaex](https://github.com/adaex)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=adaex) | |||
- Yan Zhang ([@Eskibear](https://github.com/Eskibear)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=Eskibear) | |||
- Zyck ([@qzyse2017](https://github.com/qzyse2017)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=qzyse2017) | |||
- Yonatan Greenfeld ([@YonatanGreenfeld](https://github.com/YonatanGreenfeld)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=YonatanGreenfeld) | |||
- WofWca ([@WofWca](https://github.com/WofWca)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=WofWca) | |||
- 不见月 ([@nooooooom](https://github.com/nooooooom)) — [contributions](https://github.com/gitkraken/vscode-gitlens/commits?author=nooooooom) | |||
Also special thanks to the people that have provided support, testing, brainstorming, etc: | |||
- Brian Canzanella ([@bcanzanella](https://github.com/bcanzanella)) | |||
- Matt King ([@KattMingMing](https://github.com/KattMingMing)) | |||
And of course the awesome [vscode](https://github.com/Microsoft/vscode/graphs/contributors) team! | |||
# License | |||
This repository contains both OSS-licensed and non-OSS-licensed files. | |||
All files in or under any directory named "plus" fall under LICENSE.plus. | |||
The remaining files fall under the MIT license. |
@ -0,0 +1,208 @@ | |||
import * as esbuild from 'esbuild'; | |||
import { sassPlugin } from 'esbuild-sass-plugin'; | |||
import * as fs from 'fs'; | |||
import * as path from 'path'; | |||
import { minify } from 'terser'; | |||
import { URL } from 'url'; | |||
const __dirname = new URL('.', import.meta.url).pathname.substring(1); | |||
const args = process.argv.slice(2); | |||
let index = args.indexOf('--mode'); | |||
const mode = (index >= 0 ? args[index + 1] : undefined) || 'none'; | |||
const watch = args.includes('--watch'); | |||
const check = !args.includes('--no-check'); | |||
/** | |||
* @param { 'node' | 'webworker' } target | |||
* @param { 'production' | 'development' | 'none' } mode | |||
*/ | |||
async function buildExtension(target, mode) { | |||
let plugins = []; | |||
// let TypeCheckerPlugin; | |||
// if (check) { | |||
// ({ EsbuildPlugin: TypeCheckerPlugin } = require('vite-esbuild-typescript-checker')); | |||
// plugins.push( | |||
// TypeCheckerPlugin({ | |||
// checker: { | |||
// async: false, | |||
// eslint: { | |||
// enabled: true, | |||
// files: 'src/**/*.ts', | |||
// options: { | |||
// // cache: true, | |||
// cacheLocation: path.join( | |||
// __dirname, | |||
// target === 'webworker' ? '.eslintcache.browser' : '.eslintcache', | |||
// ), | |||
// overrideConfigFile: path.join( | |||
// __dirname, | |||
// target === 'webworker' ? '.eslintrc.browser.json' : '.eslintrc.json', | |||
// ), | |||
// }, | |||
// }, | |||
// formatter: 'basic', | |||
// typescript: { | |||
// configFile: target === 'webworker' ? 'tsconfig.browser.json' : 'tsconfig.json', | |||
// }, | |||
// }, | |||
// }), | |||
// ); | |||
// } | |||
const alias = { | |||
'@env': path.resolve(__dirname, 'src', 'env', target === 'webworker' ? 'browser' : target), | |||
// Stupid dependency that is used by `http[s]-proxy-agent` | |||
debug: path.resolve(__dirname, 'patches', 'debug.js'), | |||
// This dependency is very large, and isn't needed for our use-case | |||
tr46: path.resolve(__dirname, 'patches', 'tr46.js'), | |||
// This dependency is unnecessary for our use-case | |||
'whatwg-url': path.resolve(__dirname, 'patches', 'whatwg-url.js'), | |||
}; | |||
if (target === 'webworker') { | |||
alias.path = 'path-browserify'; | |||
alias.os = 'os-browserify/browser'; | |||
} | |||
const out = target === 'webworker' ? 'dist/browser' : 'dist'; | |||
const result = await esbuild.build({ | |||
bundle: true, | |||
entryPoints: ['src/extension.ts'], | |||
entryNames: '[dir]/gitlens', | |||
alias: alias, | |||
drop: ['debugger'], | |||
external: ['vscode'], | |||
format: 'esm', | |||
keepNames: true, | |||
legalComments: 'none', | |||
logLevel: 'info', | |||
mainFields: target === 'webworker' ? ['browser', 'module', 'main'] : ['module', 'main'], | |||
metafile: true, | |||
minify: mode === 'production', | |||
outdir: out, | |||
platform: target === 'webworker' ? 'browser' : target, | |||
sourcemap: mode !== 'production', | |||
// splitting: target !== 'webworker', | |||
// chunkNames: 'feature-[name]-[hash]', | |||
target: ['es2022', 'chrome102', 'node16.14.2'], | |||
treeShaking: true, | |||
tsconfig: target === 'webworker' ? 'tsconfig.browser.json' : 'tsconfig.json', | |||
// watch: watch, | |||
plugins: plugins, | |||
}); | |||
if (!fs.existsSync(path.join('dist', 'meta'))) { | |||
fs.mkdirSync(path.join('dist', 'meta')); | |||
} | |||
fs.writeFileSync( | |||
path.join('dist', 'meta', `gitlens${target === 'webworker' ? '.browser' : ''}.json`), | |||
JSON.stringify(result.metafile), | |||
); | |||
if (mode === 'production') { | |||
const file = path.join(out, 'gitlens.js'); | |||
console.log(`Minifying ${file}...`); | |||
const code = fs.readFileSync(file, 'utf8'); | |||
const result = await minify(code, { | |||
compress: { | |||
drop_debugger: true, | |||
ecma: 2020, | |||
module: true, | |||
}, | |||
ecma: 2020, | |||
format: { | |||
comments: false, | |||
ecma: 2020, | |||
}, | |||
// Keep the class names otherwise @log won't provide a useful name | |||
keep_classnames: true, | |||
module: true, | |||
}); | |||
fs.writeFileSync(file, result.code); | |||
} | |||
} | |||
/** | |||
* @param { 'production' | 'development' | 'none' } mode | |||
*/ | |||
async function buildGraphWebview(mode) { | |||
let plugins = [sassPlugin()]; | |||
const out = 'dist/webviews'; | |||
const result = await esbuild.build({ | |||
bundle: true, | |||
entryPoints: ['src/webviews/apps/plus/graph/graph.tsx'], | |||
entryNames: '[dir]/graph', | |||
alias: { | |||
'@env': path.resolve(__dirname, 'src', 'env', 'browser'), | |||
tslib: path.resolve(__dirname, 'node_modules/tslib/tslib.es6.js'), | |||
'@microsoft/fast-foundation': path.resolve( | |||
__dirname, | |||
'node_modules/@microsoft/fast-foundation/dist/esm/index.js', | |||
), | |||
'@microsoft/fast-react-wrapper': path.resolve( | |||
__dirname, | |||
'node_modules/@microsoft/fast-react-wrapper/dist/esm/index.js', | |||
), | |||
}, | |||
drop: ['debugger'], | |||
external: ['vscode'], | |||
format: 'esm', | |||
legalComments: 'none', | |||
logLevel: 'info', | |||
mainFields: ['browser', 'module', 'main'], | |||
metafile: true, | |||
minify: mode === 'production' ? true : false, | |||
outdir: out, | |||
platform: 'browser', | |||
sourcemap: true, | |||
target: ['es2022', 'chrome102'], | |||
treeShaking: true, | |||
tsconfig: 'src/webviews/apps/tsconfig.json', | |||
// watch: watch, | |||
plugins: plugins, | |||
}); | |||
fs.writeFileSync(path.join('dist', 'meta', 'graph.json'), JSON.stringify(result.metafile)); | |||
if (mode === 'production') { | |||
const file = path.join(out, 'graph.js'); | |||
console.log(`Minifying ${file}...`); | |||
const code = fs.readFileSync(file, 'utf8'); | |||
const result = await minify(code, { | |||
compress: { | |||
drop_debugger: true, | |||
ecma: 2020, | |||
module: true, | |||
}, | |||
ecma: 2020, | |||
format: { | |||
comments: false, | |||
ecma: 2020, | |||
}, | |||
module: true, | |||
}); | |||
fs.writeFileSync(file, result.code); | |||
} | |||
} | |||
try { | |||
await Promise.allSettled([ | |||
buildExtension('node', mode), | |||
buildExtension('webworker', mode), | |||
buildGraphWebview(mode), | |||
]); | |||
} catch (ex) { | |||
console.error(ex); | |||
process.exit(1); | |||
} |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M10.5 7C9.67157 7 9 7.67157 9 8.5C9 9.32843 9.67157 10 10.5 10C11.3284 10 12 9.32843 12 8.5C12 7.67157 11.3284 7 10.5 7ZM10 0L10 6.05001C8.85888 6.28164 8 7.29052 8 8.5C8 9.70948 8.85888 10.7184 10 10.95V16H11V10.95C12.1411 10.7184 13 9.70948 13 8.5C13 7.29052 12.1411 6.28164 11 6.05001L11 0H10Z" clip-rule="evenodd"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M5.5 2C4.67157 2 4 2.67157 4 3.5C4 4.32843 4.67157 5 5.5 5C6.32843 5 7 4.32843 7 3.5C7 2.67157 6.32843 2 5.5 2ZM5 0V1.05001C3.85888 1.28164 3 2.29052 3 3.5C3 4.70948 3.85888 5.71836 5 5.94999L5 10.05C3.85888 10.2816 3 11.2905 3 12.5C3 13.7095 3.85888 14.7184 5 14.95V16H6V14.95C7.14112 14.7184 8 13.7095 8 12.5C8 11.2905 7.14112 10.2816 6 10.05L6 5.94999C7.14112 5.71836 8 4.70948 8 3.5C8 2.29052 7.14112 1.28164 6 1.05001V0H5ZM5.5 11C4.67157 11 4 11.6716 4 12.5C4 13.3284 4.67157 14 5.5 14C6.32843 14 7 13.3284 7 12.5C7 11.6716 6.32843 11 5.5 11Z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M11.853 4.313l.023.018v7.743l-9.419-1.432 3.947 4.719v-1.898l5.406 1.898 3.53-3V3.67l-3.487.644z"/> | |||
<path fill="#C5C5C5" d="M2.456 6.05l9.397-1.737L7.353 1v1.544l-4.897 1.94L1 6.383v4.037l1.457.223-.001-.002V6.05z"/> | |||
</svg> |
@ -0,0 +1,11 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M1.41 1.66a.45.45 0 0 0-.45.53l1.92 11.63a.61.61 0 0 0 .6.51h9.2a.45.45 0 0 0 .44-.38L15.04 2.2a.451.451 0 0 0-.45-.53H1.41v-.01zm8.07 8.41H6.55l-.8-4.15h4.44l-.7 4.15h-.01z"/> | |||
<path fill="url(#paint0_linear)" d="M14.43 5.92h-4.24l-.7 4.15H6.54L3.08 14.2a.61.61 0 0 0 .4.15h9.2a.45.45 0 0 0 .44-.38l1.3-8.04.01-.01z"/> | |||
<defs> | |||
<linearGradient id="paint0_linear" x1="3.08" x2="3.08" y1="5.92" y2="14.35" gradientUnits="userSpaceOnUse"> | |||
<stop stop-color="#424242" stop-opacity=".7"/> | |||
<stop offset=".5" stop-color="#424242" stop-opacity="0"/> | |||
<stop offset="1" stop-color="#424242" stop-opacity="0"/> | |||
</linearGradient> | |||
</defs> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#0F5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M12 10.25a2.75 2.75 0 1 1 0 5.5 2.75 2.75 0 0 1 0-5.5z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M6 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM5 5.95a2.5 2.5 0 1 0-1 0v4.1a2.5 2.5 0 1 0 1.165.04c.168-.38.383-.622.61-.78.327-.227.738-.32 1.214-.31H7c.387 0 .76.03 1.124.059l.026.002c.343.027.694.055 1.003.046.313-.01.661-.06.954-.248.29-.185.466-.466.544-.812a.756.756 0 0 1 .046-.055 2.5 2.5 0 1 0-1.03-.134c-.028.108-.07.14-.1.16-.063.04-.191.08-.446.089a8.783 8.783 0 0 1-.917-.045A14.886 14.886 0 0 0 7.005 8c-.61-.013-1.249.105-1.8.488-.07.05-.14.102-.205.159V5.95zm7-.45a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm-9 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#F05" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M12 10.25a2.75 2.75 0 1 1 0 5.5 2.75 2.75 0 0 1 0-5.5z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M6 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM5 5.95a2.5 2.5 0 1 0-1 0v4.1a2.5 2.5 0 1 0 1.165.04c.168-.38.383-.622.61-.78.327-.227.738-.32 1.214-.31H7c.387 0 .76.03 1.124.059l.026.002c.343.027.694.055 1.003.046.313-.01.661-.06.954-.248.29-.185.466-.466.544-.812a.756.756 0 0 1 .046-.055 2.5 2.5 0 1 0-1.03-.134c-.028.108-.07.14-.1.16-.063.04-.191.08-.446.089a8.783 8.783 0 0 1-.917-.045A14.886 14.886 0 0 0 7.005 8c-.61-.013-1.249.105-1.8.488-.07.05-.14.102-.205.159V5.95zm7-.45a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm-9 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#FF5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M12 10.25a2.75 2.75 0 1 1 0 5.5 2.75 2.75 0 0 1 0-5.5z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M6 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM5 5.95a2.5 2.5 0 1 0-1 0v4.1a2.5 2.5 0 1 0 1.165.04c.168-.38.383-.622.61-.78.327-.227.738-.32 1.214-.31H7c.387 0 .76.03 1.124.059l.026.002c.343.027.694.055 1.003.046.313-.01.661-.06.954-.248.29-.185.466-.466.544-.812a.756.756 0 0 1 .046-.055 2.5 2.5 0 1 0-1.03-.134c-.028.108-.07.14-.1.16-.063.04-.191.08-.446.089a8.783 8.783 0 0 1-.917-.045A14.886 14.886 0 0 0 7.005 8c-.61-.013-1.249.105-1.8.488-.07.05-.14.102-.205.159V5.95zm7-.45a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm-9 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M6 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zM5 5.95a2.5 2.5 0 1 0-1 0v4.1a2.5 2.5 0 1 0 1.165.04c.168-.38.383-.622.61-.78.327-.227.738-.32 1.214-.31H7c.387 0 .76.03 1.124.059l.026.002c.343.027.694.055 1.003.046.313-.01.661-.06.954-.248.29-.185.466-.466.544-.812a.756.756 0 0 1 .046-.055 2.5 2.5 0 1 0-1.03-.134c-.028.108-.07.14-.1.16-.063.04-.191.08-.446.089a8.783 8.783 0 0 1-.917-.045A14.886 14.886 0 0 0 7.005 8c-.61-.013-1.249.105-1.8.488-.07.05-.14.102-.205.159V5.95zm7-.45a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm-9 7a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M14.431 3.323l-8.47 10-.79-.036-3.35-4.77.818-.574 2.978 4.24 8.052-9.506.762.646z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M6 4.507C4.538 4.61 3.5 5.752 3.5 7c0 1.248 1.038 2.39 2.5 2.493V10h3c-.743.622-1.718 1-2.787 1C3.886 11 2 9.21 2 7c0-2.141 1.772-3.89 4-3.995v1.502z"/> | |||
<path stroke="#C5C5C5" stroke-width="1.5" d="M6 10.25h8M13.47 10.03l-2.475-2.475M13.47 10.47l-2.475 2.475"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path stroke="#C5C5C5" stroke-width="1.5" stroke-linejoin="bevel" d="M8 11.5a4 4 0 110-8 4 4 0 010 8z" /> | |||
<path stroke="#C5C5C5" stroke-width="1.25" stroke-linejoin="bevel" d="M0 7.5h4m8 0h4-4z" /> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M9.885 1.694L8.572 3h2.774a1.671 1.671 0 011.671 1.672h-.5.5v6.368h-.07a2.5 2.5 0 11-.895 0h-.035V4.672A.67.67 0 0011.346 4H8.539l1.3 1.343-.72.696-2.118-2.19.006-.702L9.18.986l.706.708zM11 13.5a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zm-5-10a2.5 2.5 0 01-2 2.45v6.357a.671.671 0 00.671.671h2.81l-1.3-1.343.72-.696 2.118 2.191-.006.702-2.172 2.16-.706-.709 1.313-1.305H4.671A1.67 1.67 0 013 12.307V5.95A2.5 2.5 0 116 3.5z" /> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M7 7h1.5v1H7v1.5H6V8H4.5V7H6V5.5h1V7zm-2.5 5h4v-1h-4v1zm4-9L12 6.5V14l-1 1H3l-1-1V4l1-1h5.5zM11 7L8 4H3v10h8V7zM9.5 1H6L5 2h4l4 4v7l1-1V5.5L9.5 1z"/> | |||
</svg> |
@ -0,0 +1,9 @@ | |||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> | |||
<rect width="16" height="16" fill="black"/> | |||
<path d="M11.0769 0H1.23077C0.551034 0 0 0.551034 0 1.23077V11.0769C0 11.7567 0.551034 12.3077 1.23077 12.3077H11.0769C11.7567 12.3077 12.3077 11.7567 12.3077 11.0769V1.23077C12.3077 0.551034 11.7567 0 11.0769 0Z" fill="#FFAAAA"/> | |||
<path d="M14.7692 3.69231H4.92308C4.24334 3.69231 3.69231 4.24334 3.69231 4.92308V14.7692C3.69231 15.449 4.24334 16 4.92308 16H14.7692C15.449 16 16 15.449 16 14.7692V4.92308C16 4.24334 15.449 3.69231 14.7692 3.69231Z" fill="#AAFFAA"/> | |||
<path d="M5.53846 6.76923H9.23077V8H5.53846V6.76923Z" fill="#FF0000"/> | |||
<path d="M10.4615 6.76923H14.1538V8H10.4615V6.76923Z" fill="#FF0000"/> | |||
<path d="M5.53846 11.0769H6.76923V9.84615H8V11.0769H9.23077V12.3077H8V13.5385H6.76923V12.3077H5.53846V11.0769Z" fill="#008000"/> | |||
<path d="M10.4615 11.0769H11.6923V9.84615H12.9231V11.0769H14.1538V12.3077H12.9231V13.5385H11.6923V12.3077H10.4615V11.0769Z" fill="#008000"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#F05133" fill-rule="evenodd" d="M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM7.5 13C8.32843 13 9 12.3284 9 11.5C9 10.8469 8.5826 10.2913 8 10.0854V5.91465C8.03995 5.90053 8.07912 5.88476 8.11744 5.86744L9.57434 7.32434C9.52623 7.4572 9.5 7.60054 9.5 7.75C9.5 8.44036 10.0596 9 10.75 9C11.4404 9 12 8.44036 12 7.75C12 7.05964 11.4404 6.5 10.75 6.5C10.5771 6.5 10.4125 6.53509 10.2627 6.59853L8.83967 5.17546C8.94223 4.97246 9 4.74298 9 4.5C9 3.67157 8.32843 3 7.5 3C6.67157 3 6 3.67157 6 4.5C6 5.15311 6.4174 5.70873 7 5.91465V10.0854C6.4174 10.2913 6 10.8469 6 11.5C6 12.3284 6.67157 13 7.5 13Z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM7.5 13C8.32843 13 9 12.3284 9 11.5C9 10.8469 8.5826 10.2913 8 10.0854V5.91465C8.03995 5.90053 8.07912 5.88476 8.11744 5.86744L9.57434 7.32434C9.52623 7.4572 9.5 7.60054 9.5 7.75C9.5 8.44036 10.0596 9 10.75 9C11.4404 9 12 8.44036 12 7.75C12 7.05964 11.4404 6.5 10.75 6.5C10.5771 6.5 10.4125 6.53509 10.2627 6.59853L8.83967 5.17546C8.94223 4.97246 9 4.74298 9 4.5C9 3.67157 8.32843 3 7.5 3C6.67157 3 6 3.67157 6 4.5C6 5.15311 6.4174 5.70873 7 5.91465V10.0854C6.4174 10.2913 6 10.8469 6 11.5C6 12.3284 6.67157 13 7.5 13Z" clip-rule="evenodd"> | |||
<animate attributeName="fill" dur="0.8s" repeatCount="indefinite" values="#b27b70;#F05133;#b27b70"/> | |||
</path> | |||
</svg> |
@ -0,0 +1,8 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<circle cx="8" cy="8" r="6.5" stroke="#C5C5C5"/> | |||
<circle cx="7.5" cy="11.5" r="1.5" fill="#C5C5C5"/> | |||
<line x1="7.5" y1="11" x2="7.5" y2="5" stroke="#C5C5C5"/> | |||
<circle cx="10.75" cy="7.75" r="1.25" fill="#C5C5C5"/> | |||
<line x1="7.5" y1="4.5" x2="10.5" y2="7.5" stroke="#C5C5C5"/> | |||
<circle cx="7.5" cy="4.5" r="1.5" fill="#C5C5C5"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#fff" fill-opacity=".1" d="M9.69 11.282L6.866 9.923a.565.565 0 01-.263-.752L7.96 6.344a.565.565 0 01.753-.262l.604.29-.003-2.433.372-.002.002 2.608s1.279.539 1.851.893c.083.051.227.151.287.32a.566.566 0 01-.022.43l-1.358 2.827a.567.567 0 01-.755.267z" /> | |||
<path fill="#C5C5C5" d="M8.152 8.963a.402.402 0 00-.385.308.401.401 0 00.202.445.4.4 0 00.506-.12.402.402 0 00-.04-.514l.534-1.094a.397.397 0 00.138-.011c.092-.02.158-.08.158-.08a5.483 5.483 0 01.593.298.442.442 0 01.167.165c.042.122-.043.332-.043.332-.05.169-.41.904-.41.904a.404.404 0 00-.394.278.398.398 0 10.675-.147c.043-.082.083-.164.125-.251.111-.232.3-.677.3-.677.02-.038.128-.23.06-.475-.055-.254-.28-.372-.28-.372a5.225 5.225 0 00-.65-.338s0-.091-.025-.158a.401.401 0 00-.086-.14c.104-.217.209-.43.314-.646l-.272-.136-.323.657a.4.4 0 00-.316.65l-.548 1.122zm6.59-5.128c-.092-.092-.214-.09-.214-.09s-2.61.147-3.962.179c-.296.006-.59.013-.882.015v2.61l-.37-.176-.002-2.432a49.87 49.87 0 01-1.986-.049s-3.15-.158-3.492-.189c-.219-.013-.502-.047-.869.034-.194.04-.746.164-1.198.599-1.002.893-.746 2.314-.715 2.527.038.26.154.985.706 1.615 1.02 1.25 3.216 1.22 3.216 1.22s.27.644.681 1.236c.557.738 1.13 1.312 1.686 1.381l4.207-.002s.267.002.63-.23c.312-.189.59-.52.59-.52s.288-.308.689-1.01c.122-.215.225-.425.314-.623 0 0 1.229-2.608 1.229-5.147-.024-.768-.214-.904-.258-.948zM3.67 8.38c-.577-.19-.822-.416-.822-.416s-.425-.299-.639-.887c-.367-.984-.031-1.586-.031-1.586s.187-.5.857-.668c.308-.082.69-.069.69-.069s.159 1.323.35 2.098c.16.65.553 1.73.553 1.73s-.582-.068-.958-.202zm6.688 2.396s-.136.323-.437.343c-.129.01-.23-.026-.23-.026l-.117-.047L7.06 9.82s-.243-.127-.286-.348c-.049-.18.06-.403.06-.403l1.21-2.492s.107-.216.272-.29a.497.497 0 01.1-.033c.18-.046.4.063.4.063l2.466 1.196s.28.127.34.36a.612.612 0 01-.04.384c-.14.342-1.224 2.518-1.224 2.518z" /> | |||
</svg> |
@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="#C5C5C5" d="M7.938 1a6.936 6.936 0 0 0-2.194 13.519c.347.06.477-.147.477-.33 0-.164-.009-.71-.009-1.292-1.743.321-2.194-.424-2.332-.815-.078-.2-.417-.815-.712-.98-.242-.13-.59-.45-.008-.46.546-.008.936.504 1.066.712.625 1.05 1.622.754 2.021.572.06-.45.243-.754.442-.928-1.543-.173-3.156-.771-3.156-3.425a2.7 2.7 0 0 1 .71-1.865c-.069-.173-.311-.884.07-1.838 0 0 .581-.182 1.908.711a6.438 6.438 0 0 1 1.734-.234c.59 0 1.18.078 1.735.234 1.327-.902 1.908-.711 1.908-.711.381.954.138 1.665.069 1.838.442.486.711 1.102.711 1.865 0 2.662-1.622 3.252-3.165 3.425.251.217.468.633.468 1.284 0 .928-.009 1.673-.009 1.908 0 .182.13.398.477.33a6.949 6.949 0 0 0 4.2-9.238A6.935 6.935 0 0 0 7.937 1z"/></svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#9E9E9E" fill-rule="evenodd" d="M8.153 14.758l-.005.007h.01l.007-.023 6.313-8.438h-3.69l-2.623 8.438-.01.013-2.647-8.45h-3.68l6.325 8.453z" clip-rule="evenodd"/> | |||
<path fill="#636363" fill-rule="evenodd" d="M1.028 8.874l.8-2.57 6.325 8.454 6.325-8.453.8 2.57a.601.601 0 0 1-.001.354.57.57 0 0 1-.2.286L8.155 14.76l.004.005-.005-.004-.005.004.003-.005-6.923-5.245a.569.569 0 0 1-.2-.286.6.6 0 0 1 0-.354z" clip-rule="evenodd"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M1.828 6.305h3.69l2.64 8.46 2.63-8.46h3.69l-1.59-5.1a.28.28 0 0 0-.099-.137.264.264 0 0 0-.313 0 .28.28 0 0 0-.098.137l-1.6 5.1h-5.25l-1.6-5.1a.28.28 0 0 0-.099-.137.263.263 0 0 0-.313 0 .28.28 0 0 0-.098.137l-1.59 5.1z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#fff" fill-opacity=".1" stroke="#C5C5C5" stroke-width=".5" d="M.25.25h15.5v15.5H.25z"/> | |||
<path fill="#C5C5C5" d="M5.811 4.914a1.748 1.748 0 0 0 .186.789c.065.128.148.26.248.395.1.131.22.27.36.418.227-.14.424-.27.59-.394.165-.124.302-.25.41-.377a1.248 1.248 0 0 0 .324-.855 1.01 1.01 0 0 0-.075-.395.909.909 0 0 0-.532-.52 1.143 1.143 0 0 0-.434-.078c-.332 0-.594.09-.787.27-.193.175-.29.424-.29.747zm.782 6.123c.223 0 .43-.022.619-.066a2.676 2.676 0 0 0 .978-.472c.139-.108.27-.223.393-.347l-2.24-2.434c-.2.132-.377.261-.532.389a2.244 2.244 0 0 0-.393.4 1.635 1.635 0 0 0-.237.473 1.912 1.912 0 0 0-.081.586c0 .215.032.415.098.598.07.18.168.335.295.467.127.127.284.227.469.299.185.071.395.107.63.107zM4 9.602c0-.311.039-.588.116-.831a2.27 2.27 0 0 1 .335-.664c.15-.2.332-.385.544-.556a7.35 7.35 0 0 1 .735-.508 13.39 13.39 0 0 1-.353-.443 3.563 3.563 0 0 1-.306-.49 3.282 3.282 0 0 1-.209-.557 2.438 2.438 0 0 1-.08-.64c0-.298.047-.565.144-.8.096-.24.235-.441.417-.605.18-.167.405-.293.67-.376.267-.088.57-.132.91-.132.32 0 .605.044.856.132a1.653 1.653 0 0 1 1.047.98c.093.236.14.503.14.802 0 .255-.049.492-.145.711a2.456 2.456 0 0 1-.388.604c-.162.184-.35.355-.561.515a9.266 9.266 0 0 1-.66.448l2.037 2.225a3.257 3.257 0 0 0 .503-.736c.066-.135.124-.281.174-.436.054-.156.1-.327.139-.515h1.065a5.77 5.77 0 0 1-.209.73 4.48 4.48 0 0 1-.272.622c-.1.195-.214.378-.341.55-.124.167-.26.333-.411.496L11.5 11.88h-1.302l-.972-1.028a7.43 7.43 0 0 1-.562.484c-.185.14-.382.26-.59.359A3.578 3.578 0 0 1 6.593 12a3.58 3.58 0 0 1-1.094-.155 2.271 2.271 0 0 1-.816-.467 2.11 2.11 0 0 1-.51-.753A2.817 2.817 0 0 1 4 9.602z"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M5.811 4.914a1.748 1.748 0 0 0 .186.789c.065.128.148.26.248.395.1.131.22.27.36.418.227-.14.424-.27.59-.394.165-.124.302-.25.41-.377a1.248 1.248 0 0 0 .324-.855 1.01 1.01 0 0 0-.075-.395.909.909 0 0 0-.532-.52 1.143 1.143 0 0 0-.434-.078c-.332 0-.594.09-.787.27-.193.175-.29.424-.29.747zm.782 6.123c.223 0 .43-.022.619-.066a2.676 2.676 0 0 0 .978-.472c.139-.108.27-.223.393-.347l-2.24-2.434c-.2.132-.377.261-.532.389a2.244 2.244 0 0 0-.393.4 1.635 1.635 0 0 0-.237.473 1.912 1.912 0 0 0-.081.586c0 .215.032.415.098.598.07.18.168.335.295.467.127.127.284.227.469.299.185.071.395.107.63.107zM4 9.602c0-.311.039-.588.116-.831a2.27 2.27 0 0 1 .335-.664c.15-.2.332-.385.544-.556a7.35 7.35 0 0 1 .735-.508 13.39 13.39 0 0 1-.353-.443 3.563 3.563 0 0 1-.306-.49 3.282 3.282 0 0 1-.209-.557 2.438 2.438 0 0 1-.08-.64c0-.298.047-.565.144-.8.096-.24.235-.441.417-.605.18-.167.405-.293.67-.376.267-.088.57-.132.91-.132.32 0 .605.044.856.132a1.653 1.653 0 0 1 1.047.98c.093.236.14.503.14.802 0 .255-.049.492-.145.711a2.456 2.456 0 0 1-.388.604c-.162.184-.35.355-.561.515a9.266 9.266 0 0 1-.66.448l2.037 2.225a3.257 3.257 0 0 0 .503-.736c.066-.135.124-.281.174-.436.054-.156.1-.327.139-.515h1.065a5.77 5.77 0 0 1-.209.73 4.48 4.48 0 0 1-.272.622c-.1.195-.214.378-.341.55-.124.167-.26.333-.411.496L11.5 11.88h-1.302l-.972-1.028a7.43 7.43 0 0 1-.562.484c-.185.14-.382.26-.59.359A3.578 3.578 0 0 1 6.593 12a3.58 3.58 0 0 1-1.094-.155 2.271 2.271 0 0 1-.816-.467 2.11 2.11 0 0 1-.51-.753A2.817 2.817 0 0 1 4 9.602z"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#fff" fill-opacity=".1" stroke="#C5C5C5" stroke-width=".5" d="M.25.25h15.5v15.5H.25z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M7.328 9.052l.864 2.35H9.25L6.108 3H5.12L2 11.402h1.062l.812-2.35h3.454zM5.695 4.453l.043.135 1.278 3.574h-2.83l1.268-3.574.043-.135.036-.156.031-.152.02-.126h.023l.023.126.028.152.037.156zm7.335 6.011v.936h.96V7.498c0-.719-.18-1.272-.539-1.661-.359-.389-.889-.583-1.588-.583-.199 0-.401.019-.606.056a4.875 4.875 0 0 0-1.078.326 2.081 2.081 0 0 0-.343.188v.984c.266-.23.566-.411.904-.54a2.927 2.927 0 0 1 1.052-.193c.188 0 .358.028.513.085a.98.98 0 0 1 .396.267c.109.121.193.279.252.472.059.193.088.427.088.7l-1.811.252c-.344.047-.64.126-.888.237a1.947 1.947 0 0 0-.615.419 1.6 1.6 0 0 0-.36.58 2.134 2.134 0 0 0-.117.721c0 .246.042.475.124.688.082.213.203.397.363.551.16.154.36.276.598.366.238.09.513.135.826.135.402 0 .76-.092 1.075-.278.315-.186.572-.454.771-.806h.023zm-2.128-1.743c.176-.064.401-.114.674-.149l1.465-.205v.609c0 .246-.041.475-.123.688a1.727 1.727 0 0 1-.343.557 1.573 1.573 0 0 1-.524.372 1.63 1.63 0 0 1-.668.135c-.187 0-.353-.025-.495-.076a1.03 1.03 0 0 1-.357-.211.896.896 0 0 1-.22-.316 1.005 1.005 0 0 1-.076-.393 1.6 1.6 0 0 1 .055-.44.739.739 0 0 1 .202-.334 1.16 1.16 0 0 1 .41-.237z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M7.328 9.052l.864 2.35H9.25L6.108 3H5.12L2 11.402h1.062l.812-2.35h3.454zM5.695 4.453l.043.135 1.278 3.574h-2.83l1.268-3.574.043-.135.036-.156.031-.152.02-.126h.023l.023.126.028.152.037.156zm7.335 6.011v.936h.96V7.498c0-.719-.18-1.272-.539-1.661-.359-.389-.889-.583-1.588-.583-.199 0-.401.019-.606.056a4.875 4.875 0 0 0-1.078.326 2.081 2.081 0 0 0-.343.188v.984c.266-.23.566-.411.904-.54a2.927 2.927 0 0 1 1.052-.193c.188 0 .358.028.513.085a.98.98 0 0 1 .396.267c.109.121.193.279.252.472.059.193.088.427.088.7l-1.811.252c-.344.047-.64.126-.888.237a1.947 1.947 0 0 0-.615.419 1.6 1.6 0 0 0-.36.58 2.134 2.134 0 0 0-.117.721c0 .246.042.475.124.688.082.213.203.397.363.551.16.154.36.276.598.366.238.09.513.135.826.135.402 0 .76-.092 1.075-.278.315-.186.572-.454.771-.806h.023zm-2.128-1.743c.176-.064.401-.114.674-.149l1.465-.205v.609c0 .246-.041.475-.123.688a1.727 1.727 0 0 1-.343.557 1.573 1.573 0 0 1-.524.372 1.63 1.63 0 0 1-.668.135c-.187 0-.353-.025-.495-.076a1.03 1.03 0 0 1-.357-.211.896.896 0 0 1-.22-.316 1.005 1.005 0 0 1-.076-.393 1.6 1.6 0 0 1 .055-.44.739.739 0 0 1 .202-.334 1.16 1.16 0 0 1 .41-.237z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#fff" fill-opacity=".1" stroke="#C5C5C5" stroke-width=".5" d="M.25.25h15.5v15.5H.25z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M10.012 2h.976v3.113l2.56-1.557.486.885L11.47 6l2.564 1.559-.485.885-2.561-1.557V10h-.976V6.887l-2.56 1.557-.486-.885L9.53 6 6.966 4.441l.485-.885 2.561 1.557V2zM2 10h4v4H2v-4z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M10.012 2h.976v3.113l2.56-1.557.486.885L11.47 6l2.564 1.559-.485.885-2.561-1.557V10h-.976V6.887l-2.56 1.557-.486-.885L9.53 6 6.966 4.441l.485-.885 2.561 1.557V2zM2 10h4v4H2v-4z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<circle stroke="#C5C5C5" stroke-width="1.5" stroke-linejoin="bevel" cx="6.5" cy="7.5" r="4"/> | |||
<path stroke="#C5C5C5" stroke-width="1.25" stroke-linejoin="bevel" d="M2.5 7.5H0"/> | |||
<path fill="#C5C5C5" d="M13.5 10.35l2.5-2.5v-.7l-2.5-2.5-.71.7 1.515 1.529H10V8.12h4.305L12.78 9.65l.72.7z"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M14.431 3.323l-3.158 3.73c-.687.1-1.328.339-1.894.688l4.29-5.064.762.646zM7 12v.096l-1.038 1.227-.791-.036-3.35-4.77.818-.574 2.978 4.24 1.75-2.066A4.986 4.986 0 0 0 7 12zm5 3c.648 0 1.248-.205 1.738-.555l-4.183-4.183A3 3 0 0 0 12 15zm-1.738-5.445l4.183 4.183a3 3 0 0 0-4.184-4.184zM12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M0 2l1-1h6.2l.3.1 3.4 3.5.1.4v2.166L9.917 6.083 9.5 6.5V6H6V2.5H1.5v11H8L9.5 15H1l-1-1V2zm10.334 13h.166l.5-.5v-.166l-.666.666zM7 2.5L9.5 5H7V2.5z"/> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M10.058 8.165l.088-.088.089.088.707.707.088.089-.088.088-1.08 1.08h2.699a2.625 2.625 0 110 5.25h-.625v-1.25h.625a1.375 1.375 0 000-2.75H9.862l1.08 1.08.088.087-.088.089-.707.707-.089.088-.088-.088-2.146-2.147-.037-.036v-.811l.037-.036 2.146-2.147z"/> | |||
</svg> |
@ -0,0 +1,6 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M6 14.5a1 1 0 11-2 0 1 1 0 012 0zM10 14.5a1 1 0 11-2 0 1 1 0 012 0zM14 14.5a1 1 0 11-2 0 1 1 0 012 0z"/> | |||
<circle stroke="#C5C5C5" stroke-width="1.5" stroke-linejoin="bevel" r="4" transform="matrix(-1 0 0 1 9.5 7.5)"/> | |||
<path stroke="#C5C5C5" stroke-width="1.25" stroke-linejoin="bevel" d="M13.5 7.5H16"/> | |||
<path fill="#C5C5C5" d="M2.5 10.35L0 7.85v-.7l2.5-2.5.71.7-1.515 1.529H6V8.12H1.695L3.22 9.65l-.72.7z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<circle stroke="#C5C5C5" stroke-width="1.5" stroke-linejoin="bevel" r="4" transform="matrix(-1 0 0 1 9.5 7.5)"/> | |||
<path stroke="#C5C5C5" stroke-width="1.25" stroke-linejoin="bevel" d="M13.5 7.5H16"/> | |||
<path fill="#C5C5C5" d="M2.5 10.35L0 7.85v-.7l2.5-2.5.71.7-1.515 1.529H6V8.12H1.695L3.22 9.65l-.72.7z"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.854 6.293l-5-5h-.708l-5 5L3.854 7 8 2.854V15h1V2.854L13.146 7l.707-.707z" clip-rule="evenodd"/> | |||
<path stroke="#C5C5C5" d="M6.572 7.823c-3.02 2.487.059 4.536-2.963 6.89M10.428 7.823c3.02 2.487-.059 4.536 2.963 6.89"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.5 4h.501v1.003h-.2a5.5 5.5 0 0 1 1.2.755V3.5l-.5-.5H13.5v1zm-4 0V3H7.713l-.852-.854L6.507 2H1.511l-.5.5v3.996L1 6.507v6.995l.5.5h6.227a5.528 5.528 0 0 1-.836-1H2V7.496h.01v-.489h4.486l.354-.146.858-.858h.014a5.51 5.51 0 0 1 1.477-1H7.5l-.353.147-.858.857H2.011V3H6.3l.853.853.353.146H9.5z" clip-rule="evenodd"/> | |||
<path fill="#1A79FF" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 6.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5z"/> | |||
<path stroke="#C5C5C5" d="M11.5 13v3M11.5 1v6"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M12 5.536a3.5 3.5 0 0 1 0 6.928V15h-1v-2.536a3.5 3.5 0 0 1 0-6.928V0h1v5.536ZM14 9a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"/> | |||
<path fill="#C5C5C5" d="M2 10c0 .28.38 2 2 2h3.5a5 5 0 0 0 1 1H4c-2 0-3-1.47-3-3 0-1.48 1.02-3 3-3 0-2.08 1.58-4 4-4 .579 0 1.075.067 1.5.18v1.083C9.11 4.103 8.619 4 8 4 6.36 4 5 5.61 5 7v1H4c-1.65 0-2 1.83-2 2Z"/> | |||
<path fill="#1A79FF" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 5.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5Z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M12 5.536a3.5 3.5 0 0 1 0 6.928V15h-1v-2.536a3.5 3.5 0 0 1 0-6.928V0h1v5.536ZM14 9a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"/> | |||
<path fill="#C5C5C5" d="M2 10c0 .28.38 2 2 2h3.5a5 5 0 0 0 1 1H4c-2 0-3-1.47-3-3 0-1.48 1.02-3 3-3 0-2.08 1.58-4 4-4 .579 0 1.075.067 1.5.18v1.083C9.11 4.103 8.619 4 8 4 6.36 4 5 5.61 5 7v1H4c-1.65 0-2 1.83-2 2Z"/> | |||
<path fill="#0F5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 5.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5Z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M12 5.536a3.5 3.5 0 0 1 0 6.928V15h-1v-2.536a3.5 3.5 0 0 1 0-6.928V0h1v5.536ZM14 9a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"/> | |||
<path fill="#C5C5C5" d="M2 10c0 .28.38 2 2 2h3.5a5 5 0 0 0 1 1H4c-2 0-3-1.47-3-3 0-1.48 1.02-3 3-3 0-2.08 1.58-4 4-4 .579 0 1.075.067 1.5.18v1.083C9.11 4.103 8.619 4 8 4 6.36 4 5 5.61 5 7v1H4c-1.65 0-2 1.83-2 2Z"/> | |||
<path fill="#F05" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 5.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5Z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M12 5.536a3.5 3.5 0 0 1 0 6.928V15h-1v-2.536a3.5 3.5 0 0 1 0-6.928V0h1v5.536ZM14 9a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"/> | |||
<path fill="#C5C5C5" d="M2 10c0 .28.38 2 2 2h3.5a5 5 0 0 0 1 1H4c-2 0-3-1.47-3-3 0-1.48 1.02-3 3-3 0-2.08 1.58-4 4-4 .579 0 1.075.067 1.5.18v1.083C9.11 4.103 8.619 4 8 4 6.36 4 5 5.61 5 7v1H4c-1.65 0-2 1.83-2 2Z"/> | |||
<path fill="#FF5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 5.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5Z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M12 5.536a3.5 3.5 0 0 1 0 6.928V15h-1v-2.536a3.5 3.5 0 0 1 0-6.928V0h1v5.536ZM14 9a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"/> | |||
<path fill="#C5C5C5" d="M2 10c0 .28.38 2 2 2h3.5a5 5 0 0 0 1 1H4c-2 0-3-1.47-3-3 0-1.48 1.02-3 3-3 0-2.08 1.58-4 4-4 .579 0 1.075.067 1.5.18v1.083C9.11 4.103 8.619 4 8 4 6.36 4 5 5.61 5 7v1H4c-1.65 0-2 1.83-2 2Z"/> | |||
<path fill="none" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 5.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5Z"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.5 4h.501v1.003h-.2a5.5 5.5 0 0 1 1.2.755V3.5l-.5-.5H13.5v1zm-4 0V3H7.713l-.852-.854L6.507 2H1.511l-.5.5v3.996L1 6.507v6.995l.5.5h6.227a5.528 5.528 0 0 1-.836-1H2V7.496h.01v-.489h4.486l.354-.146.858-.858h.014a5.51 5.51 0 0 1 1.477-1H7.5l-.353.147-.858.857H2.011V3H6.3l.853.853.353.146H9.5z" clip-rule="evenodd"/> | |||
<path fill="#0F5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 6.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5z"/> | |||
<path stroke="#C5C5C5" d="M11.5 13v3M11.5 1v6"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.5 4h.501v1.003h-.2a5.5 5.5 0 0 1 1.2.755V3.5l-.5-.5H13.5v1zm-4 0V3H7.713l-.852-.854L6.507 2H1.511l-.5.5v3.996L1 6.507v6.995l.5.5h6.227a5.528 5.528 0 0 1-.836-1H2V7.496h.01v-.489h4.486l.354-.146.858-.858h.014a5.51 5.51 0 0 1 1.477-1H7.5l-.353.147-.858.857H2.011V3H6.3l.853.853.353.146H9.5z" clip-rule="evenodd"/> | |||
<path fill="#F05" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 6.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5z"/> | |||
<path stroke="#C5C5C5" d="M11.5 13v3M11.5 1v6"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M13.725 7.025a3.5 3.5 0 0 0-1.975-.99V.5h-1v5.536a3.5 3.5 0 0 0 0 6.928V15.5h1v-2.536a3.5 3.5 0 0 0 1.975-5.939Zm-.707.707a2.5 2.5 0 1 1-3.536 3.536 2.5 2.5 0 0 1 3.536-3.536ZM7.123 4.67l.408-.18H8.8V2.501H7.707L6.85 1.65l-.344-.15H1.5l-.488.5v3.504H6.3l.822-.833ZM14.996 3 15 4.49h-1.2V2.501h.7l.496.499ZM6.434 6.493l.372-.165a5.5 5.5 0 0 0 .719 7.172H1.5L1 13V6.493h5.434Z"/> | |||
<circle cx="11.25" cy="9.5" r="3" fill="#1A79FF"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M13.725 7.025a3.5 3.5 0 0 0-1.975-.99V.5h-1v5.536a3.5 3.5 0 0 0 0 6.928V15.5h1v-2.536a3.5 3.5 0 0 0 1.975-5.939Zm-.707.707a2.5 2.5 0 1 1-3.536 3.536 2.5 2.5 0 0 1 3.536-3.536ZM7.123 4.67l.408-.18H8.8V2.501H7.707L6.85 1.65l-.344-.15H1.5l-.488.5v3.504H6.3l.822-.833ZM14.996 3 15 4.49h-1.2V2.501h.7l.496.499ZM6.434 6.493l.372-.165a5.5 5.5 0 0 0 .719 7.172H1.5L1 13V6.493h5.434Z"/> | |||
<circle cx="11.25" cy="9.5" r="3" fill="#0F5"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M13.725 7.025a3.5 3.5 0 0 0-1.975-.99V.5h-1v5.536a3.5 3.5 0 0 0 0 6.928V15.5h1v-2.536a3.5 3.5 0 0 0 1.975-5.939Zm-.707.707a2.5 2.5 0 1 1-3.536 3.536 2.5 2.5 0 0 1 3.536-3.536ZM7.123 4.67l.408-.18H8.8V2.501H7.707L6.85 1.65l-.344-.15H1.5l-.488.5v3.504H6.3l.822-.833ZM14.996 3 15 4.49h-1.2V2.501h.7l.496.499ZM6.434 6.493l.372-.165a5.5 5.5 0 0 0 .719 7.172H1.5L1 13V6.493h5.434Z"/> | |||
<circle cx="11.25" cy="9.5" r="3" fill="#F05"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M13.725 7.025a3.5 3.5 0 0 0-1.975-.99V.5h-1v5.536a3.5 3.5 0 0 0 0 6.928V15.5h1v-2.536a3.5 3.5 0 0 0 1.975-5.939Zm-.707.707a2.5 2.5 0 1 1-3.536 3.536 2.5 2.5 0 0 1 3.536-3.536ZM7.123 4.67l.408-.18H8.8V2.501H7.707L6.85 1.65l-.344-.15H1.5l-.488.5v3.504H6.3l.822-.833ZM14.996 3 15 4.49h-1.2V2.501h.7l.496.499ZM6.434 6.493l.372-.165a5.5 5.5 0 0 0 .719 7.172H1.5L1 13V6.493h5.434Z"/> | |||
<circle cx="11.25" cy="9.5" r="3" fill="#FF5"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" d="M13.725 7.025a3.5 3.5 0 0 0-1.975-.99V.5h-1v5.536a3.5 3.5 0 0 0 0 6.928V15.5h1v-2.536a3.5 3.5 0 0 0 1.975-5.939Zm-.707.707a2.5 2.5 0 1 1-3.536 3.536 2.5 2.5 0 0 1 3.536-3.536ZM7.123 4.67l.408-.18H8.8V2.501H7.707L6.85 1.65l-.344-.15H1.5l-.488.5v3.504H6.3l.822-.833ZM14.996 3 15 4.49h-1.2V2.501h.7l.496.499ZM6.434 6.493l.372-.165a5.5 5.5 0 0 0 .719 7.172H1.5L1 13V6.493h5.434Z"/> | |||
<circle cx="11.25" cy="9.5" r="3" fill="none"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.5 4h.501v1.003h-.2a5.5 5.5 0 0 1 1.2.755V3.5l-.5-.5H13.5v1zm-4 0V3H7.713l-.852-.854L6.507 2H1.511l-.5.5v3.996L1 6.507v6.995l.5.5h6.227a5.528 5.528 0 0 1-.836-1H2V7.496h.01v-.489h4.486l.354-.146.858-.858h.014a5.51 5.51 0 0 1 1.477-1H7.5l-.353.147-.858.857H2.011V3H6.3l.853.853.353.146H9.5z" clip-rule="evenodd"/> | |||
<path fill="#FF5" stroke="#C5C5C5" stroke-linejoin="bevel" stroke-width=".5" d="M11.5 6.75a3.25 3.25 0 1 1 0 6.5 3.25 3.25 0 0 1 0-6.5z"/> | |||
<path stroke="#C5C5C5" d="M11.5 13v3M11.5 1v6"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M13.5 4h.501v1.003h-.2a5.5 5.5 0 0 1 1.2.755V3.5l-.5-.5H13.5v1zm-4 0V3H7.713l-.852-.854L6.507 2H1.511l-.5.5v3.996L1 6.507v6.995l.5.5h6.227a5.528 5.528 0 0 1-.836-1H2V7.496h.01v-.489h4.486l.354-.146.858-.858h.014a5.51 5.51 0 0 1 1.477-1H7.5l-.353.147-.858.857H2.011V3H6.3l.853.853.353.146H9.5z" clip-rule="evenodd"/> | |||
<path stroke="#C5C5C5" stroke-linejoin="bevel" d="M11.5 7a3 3 0 1 1 0 6 3 3 0 0 1 0-6z"/> | |||
<path stroke="#C5C5C5" d="M11.5 13v3M11.5 1v6"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M4.5 7l-.416.223-2 3L2 10.5v4l.5.5h10l.5-.5v-4l-.084-.277-2-3L10.5 7H10v1h.232l1.334 2H10.5l-.354.146-.853.854H5.707l-.853-.854L4.5 10H3.434l1.334-2H5V7h-.5zm6.207 4H12v3H3v-3h1.293l.853.854L5.5 12h4l.354-.146.853-.854z" clip-rule="evenodd"/> | |||
<path fill="#C5C5C5" d="M7.965 1h-1.06L3 4.905l1.061 1.06 2.637-2.61v6.177h1.5V3.355l2.723 2.723 1.061-1.061L7.965 1z"/> | |||
</svg> |
@ -0,0 +1,4 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C5C5C5" fill-rule="evenodd" d="M.473.875h1.554V2.69l.322-.315a5.085 5.085 0 012.322-1.339 4.971 4.971 0 012.576 0 5.088 5.088 0 012.323 1.34 4.958 4.958 0 011.323 2.308 5.034 5.034 0 010 2.59c-.11.437-.273.846-.487 1.226H8.78a3.71 3.71 0 010 0H8.43l.023-.023c.456-.445.767-.973.937-1.587.17-.614.17-1.226 0-1.84l-.001-.003a3.341 3.341 0 00-.919-1.584l-.002-.002a3.406 3.406 0 00-1.586-.904l-.003-.001a3.392 3.392 0 00-1.839 0c-.603.17-1.125.48-1.571.937l-.004.003-.567.558h2.325v1.571H1.146l-.673-.673V.875zM7 9.926l-4.25 4.238 1.118 1.118L7 12.16v-1.881l-3.897 3.885L7 10.279v-.353zM2.287 4.304h2.686-2.686zm-.51-3.179H.723h1.054zm.748 1.428l-.748.731.748-.731a4.835 4.835 0 012.21-1.275 4.719 4.719 0 012.448 0 4.835 4.835 0 000 0 4.72 4.72 0 00-2.448 0 4.835 4.835 0 00-2.21 1.275zm8.164 2.348a5.179 5.179 0 010 0z"/> | |||
<path stroke="#C5C5C5" stroke-width="1.5" d="M12.5 7v7M9 10.5h7"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path stroke="#C5C5C5" stroke-linejoin="bevel" d="M13.5 8.5v4h-11v-4m11 0h-2l-1 1h-5l-1-1h-2m11 0l-2-5h-7l-2 5"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#388A34" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zm.75-6.75h3v-1.5h-3v-3h-1.5v3h-3v1.5h3v3h1.5v-3z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#7F4E7E" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zm-4.03-4.53L6.44 7.5 3.47 4.53l1.06-1.06L7.5 6.44l2.97-2.97 1.06 1.06L8.56 7.5l2.97 2.97-1.06 1.06L7.5 8.56l-2.97 2.97-1.06-1.06z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#692C77" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zM6.964 3.75L5.893 4.813v.53h1.071v-.53h3.215v4.25h-.536v1.062h.536l1.071-1.063v-4.25L10.179 3.75H6.964zM3.75 6.938l1.071-1.063h3.215l1.071 1.063v4.25L8.036 12.25H4.82L3.75 11.187v-4.25zm1.071 0v4.25h3.215v-4.25H4.82z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#9E121D" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zm3.75-6.75v-1.5h-7.5v1.5h7.5z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#969696" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zM10 4l-6.01 6.01 1.06 1.061 6.01-6.01L10 4z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#1B80B2" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zm3.75-9.5V7h-3v2.5h-1.5V7h-3V5.5h3v-3h1.5v3h3zm0 5V12h-7.5v-1.5h7.5z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#C63" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zM9.25 4.5v1.25h1.25l1 1v2.5l-1 1H9.25v1.25H10v1.25H7V11.5h.75v-1.25H4l-1-1v-2.5l1-1h3.75V4.5H7V3.25h3V4.5h-.75zm-5 2.5h3.5v2h-3.5V7zm5 0v2h1V7h-1z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#6C6C6C" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zM9.19 2.822c-.439-.215-.97-.322-1.596-.322-1.25 0-2.282.478-3.094 1.435l1.05.798c.275-.331.579-.574.91-.728.331-.154.66-.231.987-.231.415 0 .76.093 1.036.28.275.182.413.448.413.798 0 .275-.082.509-.245.7-.159.187-.36.364-.602.532a9.506 9.506 0 0 0-.728.56 2.66 2.66 0 0 0-.602.763c-.159.299-.238.679-.238 1.141v.483h1.498v-.413c0-.364.086-.663.259-.896a2.76 2.76 0 0 1 .637-.616c.252-.177.504-.362.756-.553.257-.196.471-.436.644-.721.173-.285.259-.651.259-1.099 0-.387-.114-.749-.343-1.085-.229-.34-.562-.616-1.001-.826zm-1.169 7.917a1.024 1.024 0 0 0-.763-.315c-.294 0-.544.105-.749.315-.2.205-.301.453-.301.742 0 .294.1.546.301.756.205.205.455.308.749.308.303 0 .558-.103.763-.308.205-.21.308-.462.308-.756 0-.29-.103-.537-.308-.742z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,3 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#6C6C6C" fill-rule="evenodd" d="M7.5 15a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15zm-3.942-3.942l7.5-7.5.884.884-.664.664c.95.655 1.65 1.524 2.222 2.394-1.15 1.75-2.824 3.5-6 3.5-.696 0-1.32-.084-1.882-.234l-1.176 1.176-.884-.884zm5.188-3.42l1.629-1.629c.634.393 1.147.913 1.594 1.491C10.99 8.767 9.692 9.75 7.5 9.75c-.287 0-.56-.017-.817-.05l.455-.454a1.5 1.5 0 0 0 1.608-1.608zM7.362 6.254L5.754 7.862a1.5 1.5 0 0 1 1.608-1.608zm.955-.955A6.595 6.595 0 0 0 7.5 5.25c-2.192 0-3.49.982-4.469 2.25.447.578.96 1.098 1.594 1.491l-.903.903C2.772 9.239 2.072 8.369 1.5 7.5 2.65 5.75 4.324 4 7.5 4c.696 0 1.32.084 1.882.234L8.317 5.299z" clip-rule="evenodd"/> | |||
</svg> |
@ -0,0 +1,5 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"> | |||
<path fill="#fff" fill-opacity=".1" stroke="#C5C5C5" stroke-width=".5" d="M.25.25h15.5v15.5H.25z"/> | |||
<path stroke="#C5C5C5" stroke-linejoin="bevel" d="M6.5 2.5L.5 9l5 5 6-6.5v-5h-5z" /> | |||
<path fill="#C5C5C5" fill-rule="evenodd" clip-rule="evenodd" d="M14 8a3 3 0 01-5.22 2.017l-.77.64a4 4 0 10.407-5.713l.879.587A3 3 0 0114 8z"/> | |||
</svg> |