Compare commits
	
		
			1 Commits
		
	
	
		
			nightly-v2
			...
			guptaarnav
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fcd4fc49d4 | 
| @ -1,3 +1,3 @@ | ||||
| [codespell] | ||||
| ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,atleast,ue,afterall,ser | ||||
| ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,atleast,ue,afterall | ||||
| skip: **/target,node_modules,build,dist,./out,**/Cargo.lock,./docs/kcl/*.md,.yarn.lock,**/yarn.lock,./openapi/*.json,./packages/codemirror-lang-kcl/test/all.test.ts,tsconfig.tsbuildinfo | ||||
|  | ||||
| @ -2,8 +2,8 @@ NODE_ENV=development | ||||
| DEV=true | ||||
| VITE_KC_API_WS_MODELING_URL=wss://api.dev.zoo.dev/ws/modeling/commands | ||||
| VITE_KC_API_BASE_URL=https://api.dev.zoo.dev | ||||
| BASE_URL=https://api.dev.zoo.dev | ||||
| VITE_KC_SITE_BASE_URL=https://dev.zoo.dev | ||||
| VITE_KC_SITE_APP_URL=https://app.dev.zoo.dev | ||||
| VITE_KC_SKIP_AUTH=false | ||||
| VITE_KC_CONNECTION_TIMEOUT_MS=5000 | ||||
| # ONLY add your token in .env.development.local if you want to skip auth, otherwise this token takes precedence! | ||||
|  | ||||
| @ -1,7 +1,5 @@ | ||||
| NODE_ENV=production | ||||
| VITE_KC_API_WS_MODELING_URL=wss://api.zoo.dev/ws/modeling/commands | ||||
| VITE_KC_API_BASE_URL=https://api.zoo.dev | ||||
| VITE_KC_SITE_BASE_URL=https://zoo.dev | ||||
| VITE_KC_SITE_APP_URL=https://app.zoo.dev | ||||
| VITE_KC_SKIP_AUTH=false | ||||
| VITE_KC_CONNECTION_TIMEOUT_MS=15000 | ||||
|  | ||||
							
								
								
									
										35
									
								
								.eslintrc
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								.eslintrc
									
									
									
									
									
								
							| @ -5,39 +5,16 @@ | ||||
|     }, | ||||
|     "plugins": [ | ||||
|       "css-modules", | ||||
|       "jest", | ||||
|       "jsx-a11y", | ||||
|       "react", | ||||
|       "react-hooks", | ||||
|       "suggest-no-throw", | ||||
|       "testing-library", | ||||
|       "@typescript-eslint" | ||||
|     ], | ||||
|     "extends": [ | ||||
|       "plugin:css-modules/recommended", | ||||
|       "plugin:jsx-a11y/recommended", | ||||
|       "plugin:react-hooks/recommended" | ||||
|       "react-app", | ||||
|       "react-app/jest", | ||||
|       "plugin:css-modules/recommended" | ||||
|     ], | ||||
|     "rules": { | ||||
|       "@typescript-eslint/no-floating-promises": "error", | ||||
|       "@typescript-eslint/no-misused-promises": "error", | ||||
|       "jsx-a11y/click-events-have-key-events": "off", | ||||
|       "jsx-a11y/no-autofocus": "off", | ||||
|       "jsx-a11y/no-noninteractive-element-interactions": "off", | ||||
|       "no-restricted-globals": [ | ||||
|         "error", | ||||
|         { | ||||
|           "name": "isNaN", | ||||
|           "message": "Use Number.isNaN() instead." | ||||
|         }, | ||||
|       ], | ||||
|       "no-restricted-syntax": [ | ||||
|         "error", | ||||
|         { | ||||
|           "selector": "CallExpression[callee.object.name='Array'][callee.property.name='isArray']", | ||||
|           "message": "Use isArray() in lib/utils.ts instead of Array.isArray()." | ||||
|         } | ||||
|       ], | ||||
|       "semi": [ | ||||
|         "error", | ||||
|         "never" | ||||
| @ -48,9 +25,6 @@ | ||||
|     "overrides": [ | ||||
|       { | ||||
|         "files": ["e2e/**/*.ts"], // Update the pattern based on your file structure | ||||
|         "extends": [ | ||||
|           "plugin:testing-library/react" | ||||
|         ], | ||||
|         "rules": { | ||||
|           "suggest-no-throw/suggest-no-throw": "off", | ||||
|           "testing-library/prefer-screen-queries": "off", | ||||
| @ -59,9 +33,6 @@ | ||||
|       }, | ||||
|       { | ||||
|         "files": ["src/**/*.test.ts"], | ||||
|         "extends": [ | ||||
|           "plugin:testing-library/react" | ||||
|         ], | ||||
|         "rules": { | ||||
|           "suggest-no-throw/suggest-no-throw": "off", | ||||
|         } | ||||
|  | ||||
							
								
								
									
										13
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							| @ -1,13 +0,0 @@ | ||||
| # Set default behavior to automatically normalize line endings. | ||||
| * text=auto | ||||
|  | ||||
| # Force batch scripts to always use CRLF line endings so that if a repo is accessed | ||||
| # in Windows via a file share from Linux, the scripts will work. | ||||
| *.{cmd,[cC][mM][dD]} text working-tree-encoding=UTF-16LE eol=CRLF | ||||
| *.{bat,[bB][aA][tT]} text working-tree-encoding=UTF-16LE eol=CRLF | ||||
| *.{ics,[iI][cC][sS]} text working-tree-encoding=UTF-16LE eol=CRLF | ||||
| *.{ps1,[iP][sS][1]} text working-tree-encoding=UTF-16LE eol=CRLF | ||||
|  | ||||
| # Force bash scripts to always use LF line endings so that if a repo is accessed | ||||
| # in Unix via a file share from Windows, the scripts will work. | ||||
| *.sh text eol=lfol=lf | ||||
							
								
								
									
										2
									
								
								.github/ci-cd-scripts/playwright-electron.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ci-cd-scripts/playwright-electron.sh
									
									
									
									
										vendored
									
									
								
							| @ -21,7 +21,7 @@ if [[ ! -f "test-results/.last-run.json" ]]; then | ||||
| fi | ||||
|  | ||||
| retry=1 | ||||
| max_retrys=1 | ||||
| max_retrys=4 | ||||
|  | ||||
| # retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues | ||||
| while [[ $retry -le $max_retrys ]]; do | ||||
|  | ||||
							
								
								
									
										17
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @ -6,29 +6,23 @@ | ||||
| version: 2 | ||||
| updates: | ||||
|   - package-ecosystem: 'npm' # See documentation for possible values | ||||
|     directories: | ||||
|       - '/' | ||||
|       - '/packages/codemirror-lang-kcl/' | ||||
|       - '/packages/codemirror-lsp-client/' | ||||
|     directory: '/' # Location of package manifests | ||||
|     schedule: | ||||
|       interval: weekly | ||||
|       day: monday | ||||
|       interval: 'weekly' | ||||
|     reviewers: | ||||
|       - franknoirot | ||||
|       - irev-dev | ||||
|   - package-ecosystem: 'github-actions' # See documentation for possible values | ||||
|     directory: '/' # Location of package manifests | ||||
|     schedule: | ||||
|       interval: weekly | ||||
|       day: monday | ||||
|       interval: 'weekly' | ||||
|     reviewers: | ||||
|       - adamchalmers | ||||
|       - jessfraz | ||||
|   - package-ecosystem: 'cargo' # See documentation for possible values | ||||
|     directory: '/src/wasm-lib/' # Location of package manifests | ||||
|     schedule: | ||||
|       interval: weekly | ||||
|       day: monday | ||||
|       interval: 'weekly' | ||||
|     reviewers: | ||||
|       - adamchalmers | ||||
|       - jessfraz | ||||
| @ -36,6 +30,3 @@ updates: | ||||
|       serde-dependencies: | ||||
|         patterns: | ||||
|           - "serde*" | ||||
|       wasm-bindgen-deps: | ||||
|         patterns: | ||||
|           - "wasm-bindgen*" | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/build-and-store-wasm.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/build-and-store-wasm.yml
									
									
									
									
										vendored
									
									
								
							| @ -27,7 +27,7 @@ jobs: | ||||
|  | ||||
|  | ||||
|       # Upload the WASM bundle as an artifact | ||||
|       - uses: actions/upload-artifact@v4 | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: wasm-bundle | ||||
|           path: src/wasm-lib/pkg | ||||
|  | ||||
							
								
								
									
										24
									
								
								.github/workflows/build-apps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/build-apps.yml
									
									
									
									
										vendored
									
									
								
							| @ -126,13 +126,9 @@ jobs: | ||||
|           node-version-file: '.nvmrc' | ||||
|           cache: 'yarn' # Set this to npm, yarn or pnpm. | ||||
|  | ||||
|       - name: yarn install | ||||
|         # Windows is picky sometimes and fails on fetch. Step takes about ~30s | ||||
|         uses: nick-fields/retry@v3.0.0 | ||||
|         with: | ||||
|           timeout_minutes: 2 | ||||
|           max_attempts: 3 | ||||
|           command: yarn install | ||||
|       - run: yarn install | ||||
|  | ||||
|       - run: yarn tronb:vite | ||||
|  | ||||
|       - name: Prepare certificate and variables (Windows only) | ||||
|         if: ${{ (env.IS_RELEASE == 'true' || env.IS_NIGHTLY == 'true') && matrix.os == 'windows-2022' }} | ||||
| @ -163,8 +159,8 @@ jobs: | ||||
|       - name: Build the app (debug) | ||||
|         if: ${{ env.IS_RELEASE == 'false' && env.IS_NIGHTLY == 'false' }} | ||||
|         # electron-builder doesn't have a concept of release vs debug, | ||||
|         # this is just not doing any codesign or release yml generation, and points to dev infra | ||||
|         run: yarn tronb:package:dev | ||||
|         # this is just not doing any codesign or release yml generation | ||||
|         run: yarn electron-builder --config | ||||
|  | ||||
|       - name: Build the app (release) | ||||
|         if: ${{ env.IS_RELEASE == 'true' || env.IS_NIGHTLY == 'true' }} | ||||
| @ -183,7 +179,7 @@ jobs: | ||||
|         with: | ||||
|           timeout_minutes: 10 | ||||
|           max_attempts: 3 | ||||
|           command: yarn tronb:package:prod | ||||
|           command: yarn electron-builder --config --publish always | ||||
|  | ||||
|       - name: List artifacts in out/ | ||||
|         run: ls -R out | ||||
| @ -244,7 +240,7 @@ jobs: | ||||
|         with: | ||||
|           timeout_minutes: 10 | ||||
|           max_attempts: 3 | ||||
|           command: yarn tronb:package:prod | ||||
|           command: yarn electron-builder --config --publish always | ||||
|  | ||||
|       - uses: actions/upload-artifact@v4 | ||||
|         if: ${{ env.IS_RELEASE == 'true' }} | ||||
| @ -388,19 +384,19 @@ jobs: | ||||
|  | ||||
|       - name: Authenticate to Google Cloud | ||||
|         if: ${{ env.IS_NIGHTLY == 'true' }} | ||||
|         uses: 'google-github-actions/auth@v2.1.8' | ||||
|         uses: 'google-github-actions/auth@v2.1.7' | ||||
|         with: | ||||
|           credentials_json: '${{ secrets.GOOGLE_CLOUD_DL_SA }}' | ||||
|  | ||||
|       - name: Set up Google Cloud SDK | ||||
|         if: ${{ env.IS_NIGHTLY == 'true' }} | ||||
|         uses: google-github-actions/setup-gcloud@v2.1.4 | ||||
|         uses: google-github-actions/setup-gcloud@v2.1.2 | ||||
|         with: | ||||
|           project_id: ${{ env.GOOGLE_CLOUD_PROJECT_ID }} | ||||
|  | ||||
|       - name: Upload nightly files to public bucket | ||||
|         if: ${{ env.IS_NIGHTLY == 'true' }} | ||||
|         uses: google-github-actions/upload-cloud-storage@v2.2.2 | ||||
|         uses: google-github-actions/upload-cloud-storage@v2.2.1 | ||||
|         with: | ||||
|           path: out | ||||
|           glob: '*' | ||||
|  | ||||
							
								
								
									
										44
									
								
								.github/workflows/cargo-bench.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								.github/workflows/cargo-bench.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|     paths: | ||||
|       - '**.rs' | ||||
|       - '**/Cargo.toml' | ||||
|       - '**/Cargo.lock' | ||||
|       - '**/rust-toolchain.toml' | ||||
|       - .github/workflows/cargo-bench.yml | ||||
|   pull_request: | ||||
|     paths: | ||||
|       - '**.rs' | ||||
|       - '**/Cargo.toml' | ||||
|       - '**/Cargo.lock' | ||||
|       - '**/rust-toolchain.toml' | ||||
|       - .github/workflows/cargo-bench.yml | ||||
|   workflow_dispatch: | ||||
| permissions: read-all | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| name: cargo bench | ||||
| jobs: | ||||
|   cargo-bench: | ||||
|     name: Benchmark with iai | ||||
|     runs-on: ubuntu-latest-8-cores | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: dtolnay/rust-toolchain@stable | ||||
|       - name: Install dependencies | ||||
|         run: | | ||||
|           cargo install cargo-criterion | ||||
|           sudo apt update | ||||
|           sudo apt install -y valgrind | ||||
|       - name: Rust Cache | ||||
|         uses: Swatinem/rust-cache@v2.6.1 | ||||
|       - name: Benchmark kcl library | ||||
|         shell: bash | ||||
|         run: |- | ||||
|           cd src/wasm-lib/kcl; cargo bench --all-features -- iai | ||||
|         env: | ||||
|           KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}} | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/cargo-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/cargo-test.yml
									
									
									
									
										vendored
									
									
								
							| @ -46,7 +46,7 @@ jobs: | ||||
|         shell: bash | ||||
|         run: |- | ||||
|           cd "${{ matrix.dir }}" | ||||
|           cargo llvm-cov nextest --workspace --lcov --output-path lcov.info --test-threads=1 --retries=2 --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log | ||||
|           cargo llvm-cov nextest --workspace --lcov --output-path lcov.info --test-threads=1 --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log | ||||
|         env: | ||||
|           KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}} | ||||
|           RUST_MIN_STACK: 10485760000 | ||||
|  | ||||
							
								
								
									
										22
									
								
								.github/workflows/check-exampleKcl.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/check-exampleKcl.yml
									
									
									
									
										vendored
									
									
								
							| @ -26,21 +26,11 @@ jobs: | ||||
|             const issue_number = context.payload.pull_request.number; | ||||
|             const owner = context.repo.owner; | ||||
|             const repo = context.repo.repo; | ||||
|              | ||||
|             const { data: comments } = await github.rest.issues.listComments({ | ||||
|  | ||||
|             // Post a comment on the PR | ||||
|             await github.rest.issues.createComment({ | ||||
|               owner, | ||||
|               repo, | ||||
|               issue_number | ||||
|             }); | ||||
|  | ||||
|             const commentExists = comments.some(comment => comment.body === message); | ||||
|  | ||||
|             if (!commentExists) { | ||||
|               // Post a comment on the PR | ||||
|               await github.rest.issues.createComment({ | ||||
|                 owner, | ||||
|                 repo, | ||||
|                 issue_number, | ||||
|                 body: message, | ||||
|               }); | ||||
|             } | ||||
|               issue_number, | ||||
|               body: message, | ||||
|             }); | ||||
							
								
								
									
										32
									
								
								.github/workflows/codemirror-lang-kcl.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								.github/workflows/codemirror-lang-kcl.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,32 +0,0 @@ | ||||
| name: CodeMirror Lang KCL | ||||
|  | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|  | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
|  | ||||
| jobs: | ||||
|   yarn-unit-test: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|  | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version-file: '.nvmrc' | ||||
|           cache: 'yarn' | ||||
|  | ||||
|       - run: yarn install | ||||
|         working-directory: packages/codemirror-lang-kcl | ||||
|  | ||||
|       - run: yarn tsc | ||||
|         working-directory: packages/codemirror-lang-kcl | ||||
|  | ||||
|       - name: run unit tests | ||||
|         run: yarn test | ||||
|         working-directory: packages/codemirror-lang-kcl | ||||
							
								
								
									
										29
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							| @ -3,6 +3,7 @@ on: | ||||
|   push: | ||||
|     branches: [ main ] | ||||
|   pull_request: | ||||
|     branches: [ main ] | ||||
|  | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
| @ -45,15 +46,7 @@ jobs: | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     needs: check-rust-changes | ||||
|     steps: | ||||
|     - uses: actions/create-github-app-token@v1 | ||||
|       id: app-token | ||||
|       with: | ||||
|         app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} | ||||
|         private-key: ${{ secrets.MODELING_APP_GH_APP_PRIVATE_KEY }} | ||||
|         owner: ${{ github.repository_owner }} | ||||
|     - uses: actions/checkout@v4 | ||||
|       with: | ||||
|         token: ${{ steps.app-token.outputs.token }} | ||||
|     - uses: actions/setup-node@v4 | ||||
|       with: | ||||
|         node-version-file: '.nvmrc' | ||||
| @ -130,9 +123,9 @@ jobs: | ||||
|       if: steps.download-wasm.outcome == 'failure' | ||||
|       shell: bash | ||||
|       run: yarn build:wasm | ||||
|     - name: build web | ||||
|     - name: build electron | ||||
|       shell: bash | ||||
|       run: yarn tronb:vite:dev | ||||
|       run: yarn tron:package | ||||
|     - name: Run ubuntu/chrome snapshots | ||||
|       if: ${{ matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 }} | ||||
|       shell: bash | ||||
| @ -160,11 +153,11 @@ jobs: | ||||
|       continue-on-error: true | ||||
|       run: rm -r test-results | ||||
|     - name: check for changes | ||||
|       if: ${{ matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 && github.ref != 'refs/heads/main' }} | ||||
|       if: ${{ matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 }} | ||||
|       shell: bash | ||||
|       id: git-check | ||||
|       run: | | ||||
|           git add e2e/playwright/snapshot-tests.spec.ts-snapshots | ||||
|           git add . | ||||
|           if git status | grep -q "Changes to be committed" | ||||
|           then echo "modified=true" >> $GITHUB_OUTPUT | ||||
|           else echo "modified=false" >> $GITHUB_OUTPUT | ||||
| @ -173,14 +166,14 @@ jobs: | ||||
|       if: steps.git-check.outputs.modified == 'true' | ||||
|       shell: bash | ||||
|       run: | | ||||
|         git add e2e/playwright/snapshot-tests.spec.ts-snapshots | ||||
|         git add . | ||||
|         git config --local user.email "github-actions[bot]@users.noreply.github.com" | ||||
|         git config --local user.name "github-actions[bot]" | ||||
|         git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git | ||||
|         git fetch origin | ||||
|         echo ${{ github.head_ref }} | ||||
|         git checkout ${{ github.head_ref }} | ||||
|         git commit -m "A snapshot a day keeps the bugs away! 📷🐛 (OS: ${{matrix.os}})" || true | ||||
|         git commit -am "A snapshot a day keeps the bugs away! 📷🐛 (OS: ${{matrix.os}})" || true | ||||
|         git push | ||||
|         git push origin ${{ github.head_ref }} | ||||
|     # only upload artifacts if there's actually changes | ||||
| @ -200,11 +193,9 @@ jobs: | ||||
|     - name: Run playwright/electron flow (with retries) | ||||
|       id: retry | ||||
|       if: ${{ !cancelled() && (success() || failure()) }} | ||||
|       uses: nick-fields/retry@v3.0.0 | ||||
|       with: | ||||
|         command: .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}} | ||||
|         timeout_minutes: 30 | ||||
|         max_attempts: 25 | ||||
|       shell: bash | ||||
|       run: | | ||||
|         .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}} | ||||
|       env: | ||||
|         CI: true | ||||
|         FAIL_ON_CONSOLE_ERRORS: true | ||||
|  | ||||
							
								
								
									
										6
									
								
								.github/workflows/publish-apps-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/publish-apps-release.yml
									
									
									
									
										vendored
									
									
								
							| @ -108,17 +108,17 @@ jobs: | ||||
|         run: yarn files:set-notes | ||||
|  | ||||
|       - name: Authenticate to Google Cloud | ||||
|         uses: 'google-github-actions/auth@v2.1.8' | ||||
|         uses: 'google-github-actions/auth@v2.1.7' | ||||
|         with: | ||||
|           credentials_json: '${{ secrets.GOOGLE_CLOUD_DL_SA }}' | ||||
|  | ||||
|       - name: Set up Google Cloud SDK | ||||
|         uses: google-github-actions/setup-gcloud@v2.1.4 | ||||
|         uses: google-github-actions/setup-gcloud@v2.1.2 | ||||
|         with: | ||||
|           project_id: ${{ env.GOOGLE_CLOUD_PROJECT_ID }} | ||||
|  | ||||
|       - name: Upload release files to public bucket | ||||
|         uses: google-github-actions/upload-cloud-storage@v2.2.2 | ||||
|         uses: google-github-actions/upload-cloud-storage@v2.2.1 | ||||
|         with: | ||||
|           path: out | ||||
|           glob: '*' | ||||
|  | ||||
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -25,7 +25,6 @@ yarn-error.log* | ||||
|  | ||||
| .idea | ||||
| .vscode | ||||
| .helix | ||||
| src/wasm-lib/.idea | ||||
| src/wasm-lib/.vscode | ||||
|  | ||||
| @ -41,14 +40,11 @@ e2e/playwright/playwright-secrets.env | ||||
| e2e/playwright/temp1.png | ||||
| e2e/playwright/temp2.png | ||||
| e2e/playwright/temp3.png | ||||
| # this will be overridden for specific directories | ||||
| e2e/playwright/**/*.png | ||||
| # exports from snapshot-tests.spec.ts "exports of each format should work" | ||||
| e2e/playwright/export-snapshots/* | ||||
| !e2e/playwright/export-snapshots/*.png | ||||
| !e2e/playwright/snapshot-tests.spec.ts-snapshots/*.png | ||||
|  | ||||
| /kcl-samples | ||||
|  | ||||
| /test-results/ | ||||
| /playwright-report/ | ||||
| /blob-report/ | ||||
|  | ||||
| @ -1,2 +0,0 @@ | ||||
| [editor] | ||||
| auto-format = true | ||||
| @ -1,10 +0,0 @@ | ||||
| [language-server.eslint] | ||||
| args = ["--stdio"] | ||||
| command = "vscode-eslint-language-server" | ||||
|  | ||||
| [[language]] | ||||
| name = "typescript" | ||||
| auto-format = true | ||||
| formatter = { command = "node_modules/.bin/prettier", args = ["--parser", "typescript"] } | ||||
| language-servers = [ { name = "eslint", only-features = [ "diagnostics" ] }, "typescript-language-server" ] | ||||
|  | ||||
| @ -101,7 +101,7 @@ This will start the application and hot-reload on changes. | ||||
|  | ||||
| Devtools can be opened with the usual Cmd-Opt-I (Mac) or Ctrl-Shift-I (Linux and Windows). | ||||
|  | ||||
| To build with electron-builder, run `yarn tronb:package:dev` (or `yarn tronb:package:prod` to point to the .env.production variables) | ||||
| To build, run `yarn tron:package`. | ||||
|  | ||||
| ## Checking out commits / Bisecting | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "HALF_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| HALF_TURN: number(deg) = 180deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -24,3 +24,5 @@ once fixed in engine will just start working here with no language changes. | ||||
|     chamfer cases work currently. | ||||
|  | ||||
| - **Appearance**: Changing the appearance on a loft does not work. | ||||
|  | ||||
| - **Helix**: Currently sweeping a helix does not work. | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| QUARTER_TURN: number(deg) = 90deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "THREE_QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| THREE_QUARTER_TURN: number(deg) = 270deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "ZERO" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| ZERO: number = 0 | ||||
| ``` | ||||
|  | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -22,7 +22,7 @@ assert(data: bool, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -24,7 +24,7 @@ assertEqual(left: number, right: number, epsilon: number, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -23,7 +23,7 @@ assertGreaterThan(left: number, right: number, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -23,7 +23,7 @@ assertGreaterThanOrEq(left: number, right: number, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -23,7 +23,7 @@ assertLessThan(left: number, right: number, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -23,7 +23,7 @@ assertLessThanOrEq(left: number, right: number, message: string) -> () | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `()` | ||||
| `()`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -26,7 +26,7 @@ cm() -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "HALF_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| HALF_TURN: number(deg) = 180deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| QUARTER_TURN: number(deg) = 90deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "THREE_QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| THREE_QUARTER_TURN: number(deg) = 270deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "ZERO" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| ZERO: number = 0 | ||||
| ``` | ||||
|  | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "std::prelude::HALF_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| std::prelude::HALF_TURN: number(deg) = 180deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "std::prelude::QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| std::prelude::QUARTER_TURN: number(deg) = 90deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "std::prelude::THREE_QUARTER_TURN" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| std::prelude::THREE_QUARTER_TURN: number(deg) = 270deg | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -1,15 +0,0 @@ | ||||
| --- | ||||
| title: "std::prelude::ZERO" | ||||
| excerpt: "" | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```js | ||||
| std::prelude::ZERO: number = 0 | ||||
| ``` | ||||
|  | ||||
|  | ||||
							
								
								
									
										48
									
								
								docs/kcl/cos.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docs/kcl/cos.md
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -26,7 +26,7 @@ ft() -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -26,7 +26,7 @@ inch() -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -9,117 +9,113 @@ layout: manual | ||||
| * [Types](kcl/types) | ||||
| * [Modules](kcl/modules) | ||||
| * [Known Issues](kcl/KNOWN-ISSUES) | ||||
| * **`std`** | ||||
|   * [`abs`](kcl/abs) | ||||
|   * [`acos`](kcl/acos) | ||||
|   * [`angleToMatchLengthX`](kcl/angleToMatchLengthX) | ||||
|   * [`angleToMatchLengthY`](kcl/angleToMatchLengthY) | ||||
|   * [`angledLine`](kcl/angledLine) | ||||
|   * [`angledLineOfXLength`](kcl/angledLineOfXLength) | ||||
|   * [`angledLineOfYLength`](kcl/angledLineOfYLength) | ||||
|   * [`angledLineThatIntersects`](kcl/angledLineThatIntersects) | ||||
|   * [`angledLineToX`](kcl/angledLineToX) | ||||
|   * [`angledLineToY`](kcl/angledLineToY) | ||||
|   * [`appearance`](kcl/appearance) | ||||
|   * [`arc`](kcl/arc) | ||||
|   * [`arcTo`](kcl/arcTo) | ||||
|   * [`asin`](kcl/asin) | ||||
|   * [`assert`](kcl/assert) | ||||
|   * [`assertEqual`](kcl/assertEqual) | ||||
|   * [`assertGreaterThan`](kcl/assertGreaterThan) | ||||
|   * [`assertGreaterThanOrEq`](kcl/assertGreaterThanOrEq) | ||||
|   * [`assertLessThan`](kcl/assertLessThan) | ||||
|   * [`assertLessThanOrEq`](kcl/assertLessThanOrEq) | ||||
|   * [`atan`](kcl/atan) | ||||
|   * [`atan2`](kcl/atan2) | ||||
|   * [`bezierCurve`](kcl/bezierCurve) | ||||
|   * [`ceil`](kcl/ceil) | ||||
|   * [`chamfer`](kcl/chamfer) | ||||
|   * [`circle`](kcl/circle) | ||||
|   * [`circleThreePoint`](kcl/circleThreePoint) | ||||
|   * [`close`](kcl/close) | ||||
|   * [`cm`](kcl/cm) | ||||
|   * [`extrude`](kcl/extrude) | ||||
|   * [`fillet`](kcl/fillet) | ||||
|   * [`floor`](kcl/floor) | ||||
|   * [`ft`](kcl/ft) | ||||
|   * [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge) | ||||
|   * [`getOppositeEdge`](kcl/getOppositeEdge) | ||||
|   * [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge) | ||||
|   * [`helix`](kcl/helix) | ||||
|   * [`helixRevolutions`](kcl/helixRevolutions) | ||||
|   * [`hole`](kcl/hole) | ||||
|   * [`hollow`](kcl/hollow) | ||||
|   * [`inch`](kcl/inch) | ||||
|   * [`lastSegX`](kcl/lastSegX) | ||||
|   * [`lastSegY`](kcl/lastSegY) | ||||
|   * [`legAngX`](kcl/legAngX) | ||||
|   * [`legAngY`](kcl/legAngY) | ||||
|   * [`legLen`](kcl/legLen) | ||||
|   * [`line`](kcl/line) | ||||
|   * [`ln`](kcl/ln) | ||||
|   * [`loft`](kcl/loft) | ||||
|   * [`log`](kcl/log) | ||||
|   * [`log10`](kcl/log10) | ||||
|   * [`log2`](kcl/log2) | ||||
|   * [`m`](kcl/m) | ||||
|   * [`map`](kcl/map) | ||||
|   * [`max`](kcl/max) | ||||
|   * [`min`](kcl/min) | ||||
|   * [`mirror2d`](kcl/mirror2d) | ||||
|   * [`mm`](kcl/mm) | ||||
|   * [`offsetPlane`](kcl/offsetPlane) | ||||
|   * [`patternCircular2d`](kcl/patternCircular2d) | ||||
|   * [`patternCircular3d`](kcl/patternCircular3d) | ||||
|   * [`patternLinear2d`](kcl/patternLinear2d) | ||||
|   * [`patternLinear3d`](kcl/patternLinear3d) | ||||
|   * [`patternTransform`](kcl/patternTransform) | ||||
|   * [`patternTransform2d`](kcl/patternTransform2d) | ||||
|   * [`polar`](kcl/polar) | ||||
|   * [`polygon`](kcl/polygon) | ||||
|   * [`pop`](kcl/pop) | ||||
|   * [`pow`](kcl/pow) | ||||
|   * [`profileStart`](kcl/profileStart) | ||||
|   * [`profileStartX`](kcl/profileStartX) | ||||
|   * [`profileStartY`](kcl/profileStartY) | ||||
|   * [`push`](kcl/push) | ||||
|   * [`reduce`](kcl/reduce) | ||||
|   * [`rem`](kcl/rem) | ||||
|   * [`revolve`](kcl/revolve) | ||||
|   * [`round`](kcl/round) | ||||
|   * [`segAng`](kcl/segAng) | ||||
|   * [`segEnd`](kcl/segEnd) | ||||
|   * [`segEndX`](kcl/segEndX) | ||||
|   * [`segEndY`](kcl/segEndY) | ||||
|   * [`segLen`](kcl/segLen) | ||||
|   * [`segStart`](kcl/segStart) | ||||
|   * [`segStartX`](kcl/segStartX) | ||||
|   * [`segStartY`](kcl/segStartY) | ||||
|   * [`shell`](kcl/shell) | ||||
|   * [`sqrt`](kcl/sqrt) | ||||
|   * [`startProfileAt`](kcl/startProfileAt) | ||||
|   * [`startSketchOn`](kcl/startSketchOn) | ||||
|   * [`sweep`](kcl/sweep) | ||||
|   * [`tangentToEnd`](kcl/tangentToEnd) | ||||
|   * [`tangentialArc`](kcl/tangentialArc) | ||||
|   * [`tangentialArcTo`](kcl/tangentialArcTo) | ||||
|   * [`tangentialArcToRelative`](kcl/tangentialArcToRelative) | ||||
|   * [`toDegrees`](kcl/toDegrees) | ||||
|   * [`toRadians`](kcl/toRadians) | ||||
|   * [`xLine`](kcl/xLine) | ||||
|   * [`xLineTo`](kcl/xLineTo) | ||||
|   * [`yLine`](kcl/yLine) | ||||
|   * [`yLineTo`](kcl/yLineTo) | ||||
|   * [`yd`](kcl/yd) | ||||
| * **`std::math`** | ||||
|   * [`E`](kcl/const_std-math-E) | ||||
|   * [`PI`](kcl/const_std-math-PI) | ||||
|   * [`TAU`](kcl/const_std-math-TAU) | ||||
|   * [`cos`](kcl/std-math-cos) | ||||
|   * [`sin`](kcl/std-math-sin) | ||||
|   * [`tan`](kcl/std-math-tan) | ||||
| * **`std::prelude`** | ||||
|   * [`HALF_TURN`](kcl/const_std-prelude-HALF_TURN) | ||||
|   * [`QUARTER_TURN`](kcl/const_std-prelude-QUARTER_TURN) | ||||
|   * [`THREE_QUARTER_TURN`](kcl/const_std-prelude-THREE_QUARTER_TURN) | ||||
|   * [`ZERO`](kcl/const_std-prelude-ZERO) | ||||
| * [`abs`](kcl/abs) | ||||
| * [`acos`](kcl/acos) | ||||
| * [`angleToMatchLengthX`](kcl/angleToMatchLengthX) | ||||
| * [`angleToMatchLengthY`](kcl/angleToMatchLengthY) | ||||
| * [`angledLine`](kcl/angledLine) | ||||
| * [`angledLineOfXLength`](kcl/angledLineOfXLength) | ||||
| * [`angledLineOfYLength`](kcl/angledLineOfYLength) | ||||
| * [`angledLineThatIntersects`](kcl/angledLineThatIntersects) | ||||
| * [`angledLineToX`](kcl/angledLineToX) | ||||
| * [`angledLineToY`](kcl/angledLineToY) | ||||
| * [`appearance`](kcl/appearance) | ||||
| * [`arc`](kcl/arc) | ||||
| * [`arcTo`](kcl/arcTo) | ||||
| * [`asin`](kcl/asin) | ||||
| * [`assert`](kcl/assert) | ||||
| * [`assertEqual`](kcl/assertEqual) | ||||
| * [`assertGreaterThan`](kcl/assertGreaterThan) | ||||
| * [`assertGreaterThanOrEq`](kcl/assertGreaterThanOrEq) | ||||
| * [`assertLessThan`](kcl/assertLessThan) | ||||
| * [`assertLessThanOrEq`](kcl/assertLessThanOrEq) | ||||
| * [`atan`](kcl/atan) | ||||
| * [`atan2`](kcl/atan2) | ||||
| * [`bezierCurve`](kcl/bezierCurve) | ||||
| * [`ceil`](kcl/ceil) | ||||
| * [`chamfer`](kcl/chamfer) | ||||
| * [`circle`](kcl/circle) | ||||
| * [`circleThreePoint`](kcl/circleThreePoint) | ||||
| * [`close`](kcl/close) | ||||
| * [`cm`](kcl/cm) | ||||
| * [`cos`](kcl/cos) | ||||
| * [`e`](kcl/e) | ||||
| * [`extrude`](kcl/extrude) | ||||
| * [`fillet`](kcl/fillet) | ||||
| * [`floor`](kcl/floor) | ||||
| * [`ft`](kcl/ft) | ||||
| * [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge) | ||||
| * [`getOppositeEdge`](kcl/getOppositeEdge) | ||||
| * [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge) | ||||
| * [`helix`](kcl/helix) | ||||
| * [`helixRevolutions`](kcl/helixRevolutions) | ||||
| * [`hole`](kcl/hole) | ||||
| * [`hollow`](kcl/hollow) | ||||
| * [`import`](kcl/import) | ||||
| * [`inch`](kcl/inch) | ||||
| * [`int`](kcl/int) | ||||
| * [`lastSegX`](kcl/lastSegX) | ||||
| * [`lastSegY`](kcl/lastSegY) | ||||
| * [`legAngX`](kcl/legAngX) | ||||
| * [`legAngY`](kcl/legAngY) | ||||
| * [`legLen`](kcl/legLen) | ||||
| * [`line`](kcl/line) | ||||
| * [`lineTo`](kcl/lineTo) | ||||
| * [`ln`](kcl/ln) | ||||
| * [`loft`](kcl/loft) | ||||
| * [`log`](kcl/log) | ||||
| * [`log10`](kcl/log10) | ||||
| * [`log2`](kcl/log2) | ||||
| * [`m`](kcl/m) | ||||
| * [`map`](kcl/map) | ||||
| * [`max`](kcl/max) | ||||
| * [`min`](kcl/min) | ||||
| * [`mirror2d`](kcl/mirror2d) | ||||
| * [`mm`](kcl/mm) | ||||
| * [`offsetPlane`](kcl/offsetPlane) | ||||
| * [`patternCircular2d`](kcl/patternCircular2d) | ||||
| * [`patternCircular3d`](kcl/patternCircular3d) | ||||
| * [`patternLinear2d`](kcl/patternLinear2d) | ||||
| * [`patternLinear3d`](kcl/patternLinear3d) | ||||
| * [`patternTransform`](kcl/patternTransform) | ||||
| * [`patternTransform2d`](kcl/patternTransform2d) | ||||
| * [`pi`](kcl/pi) | ||||
| * [`polar`](kcl/polar) | ||||
| * [`polygon`](kcl/polygon) | ||||
| * [`pop`](kcl/pop) | ||||
| * [`pow`](kcl/pow) | ||||
| * [`profileStart`](kcl/profileStart) | ||||
| * [`profileStartX`](kcl/profileStartX) | ||||
| * [`profileStartY`](kcl/profileStartY) | ||||
| * [`push`](kcl/push) | ||||
| * [`reduce`](kcl/reduce) | ||||
| * [`rem`](kcl/rem) | ||||
| * [`revolve`](kcl/revolve) | ||||
| * [`round`](kcl/round) | ||||
| * [`segAng`](kcl/segAng) | ||||
| * [`segEnd`](kcl/segEnd) | ||||
| * [`segEndX`](kcl/segEndX) | ||||
| * [`segEndY`](kcl/segEndY) | ||||
| * [`segLen`](kcl/segLen) | ||||
| * [`segStart`](kcl/segStart) | ||||
| * [`segStartX`](kcl/segStartX) | ||||
| * [`segStartY`](kcl/segStartY) | ||||
| * [`shell`](kcl/shell) | ||||
| * [`sin`](kcl/sin) | ||||
| * [`sqrt`](kcl/sqrt) | ||||
| * [`startProfileAt`](kcl/startProfileAt) | ||||
| * [`startSketchOn`](kcl/startSketchOn) | ||||
| * [`sweep`](kcl/sweep) | ||||
| * [`tan`](kcl/tan) | ||||
| * [`tangentToEnd`](kcl/tangentToEnd) | ||||
| * [`tangentialArc`](kcl/tangentialArc) | ||||
| * [`tangentialArcTo`](kcl/tangentialArcTo) | ||||
| * [`tangentialArcToRelative`](kcl/tangentialArcToRelative) | ||||
| * [`tau`](kcl/tau) | ||||
| * [`toDegrees`](kcl/toDegrees) | ||||
| * [`toRadians`](kcl/toRadians) | ||||
| * [`xLine`](kcl/xLine) | ||||
| * [`xLineTo`](kcl/xLineTo) | ||||
| * [`yLine`](kcl/yLine) | ||||
| * [`yLineTo`](kcl/yLineTo) | ||||
| * [`yd`](kcl/yd) | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -26,7 +26,7 @@ legAngX(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -26,7 +26,7 @@ legAngY(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -26,7 +26,7 @@ legLen(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										44
									
								
								docs/kcl/lineTo.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								docs/kcl/lineTo.md
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -26,7 +26,7 @@ m() -> number | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	