diff --git a/.github/workflows/npm-prerelease.yml b/.github/workflows/npm-prerelease.yml index d5c8b22b..35081c69 100644 --- a/.github/workflows/npm-prerelease.yml +++ b/.github/workflows/npm-prerelease.yml @@ -5,13 +5,13 @@ on: branches: [main] permissions: - contents: write - pull-requests: write + contents: write + pull-requests: write jobs: test: runs-on: ubuntu-latest - + steps: - uses: actions/checkout@v4 @@ -32,16 +32,15 @@ jobs: - name: Run Vitest tests run: pnpm test - + publish-preview: # Prevent this job from running on forks - if: github.repository == 'svelteplot/svelteplot' - if: github.event.pull_request.draft == false + if: github.repository == 'svelteplot/svelteplot' && github.event.pull_request.draft == false needs: test runs-on: ubuntu-latest environment: name: npm - + steps: - uses: actions/checkout@v4 @@ -56,7 +55,7 @@ jobs: with: node-version: '22' cache: 'pnpm' - registry-url: "https://registry.npmjs.org" + registry-url: 'https://registry.npmjs.org' - name: Install dependencies run: pnpm install @@ -100,8 +99,6 @@ jobs: echo "Generated version: $(node -p "require('./package.json').version")" - - - name: Publish to npm env: NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH }} @@ -110,14 +107,14 @@ jobs: # Save version for use in PR comment - name: Save version run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV - + - name: Comment on PR uses: peter-evans/create-or-update-comment@v3 with: issue-number: ${{ github.event.pull_request.number }} body: | 📦 Preview package for this PR is published! - + Version: `${{ env.PACKAGE_VERSION }}` Install it with: diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..0ab05dcf --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "svelte.svelte-vscode", + "dbaeumer.vscode-eslint", + "typescript-svelte-plugin" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 0967ef42..46d9035f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1 +1,35 @@ -{} +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[svelte]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "svelte" + ], + "prettier.useTabs": false, + "prettier.singleQuote": true, + "prettier.tabWidth": 4, + "prettier.trailingComma": "none", + "prettier.printWidth": 100, + "svelte.plugin.svelte.format.enable": false, + "eslint.probe": [ + "javascript", + "typescript", + "svelte" + ], + "eslint.experimental.useFlatConfig": true +} diff --git a/package.json b/package.json index 8db0e438..bacc6197 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "svg-path-parser": "^1.1.0", "topojson-client": "^3.1.0", "tslib": "^2.8.1", - "typedoc": "^0.28.4", + "typedoc": "^0.28.5", "typedoc-plugin-markdown": "^4.6.3", "typescript": "^5.8.3", "vite": "^6.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2836b37a..16156d65 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -196,11 +196,11 @@ importers: specifier: ^2.8.1 version: 2.8.1 typedoc: - specifier: ^0.28.4 - version: 0.28.4(typescript@5.8.3) + specifier: ^0.28.5 + version: 0.28.5(typescript@5.8.3) typedoc-plugin-markdown: specifier: ^4.6.3 - version: 4.6.3(typedoc@0.28.4(typescript@5.8.3)) + version: 4.6.3(typedoc@0.28.5(typescript@5.8.3)) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -4273,8 +4273,8 @@ packages: peerDependencies: typedoc: 0.28.x - typedoc@0.28.4: - resolution: {integrity: sha512-xKvKpIywE1rnqqLgjkoq0F3wOqYaKO9nV6YkkSat6IxOWacUCc/7Es0hR3OPmkIqkPoEn7U3x+sYdG72rstZQA==} + typedoc@0.28.5: + resolution: {integrity: sha512-5PzUddaA9FbaarUzIsEc4wNXCiO4Ot3bJNeMF2qKpYlTmM9TTaSHQ7162w756ERCkXER/+o2purRG6YOAv6EMA==} engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: @@ -9366,11 +9366,11 @@ snapshots: for-each: 0.3.3 is-typed-array: 1.1.12 - typedoc-plugin-markdown@4.6.3(typedoc@0.28.4(typescript@5.8.3)): + typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)): dependencies: - typedoc: 0.28.4(typescript@5.8.3) + typedoc: 0.28.5(typescript@5.8.3) - typedoc@0.28.4(typescript@5.8.3): + typedoc@0.28.5(typescript@5.8.3): dependencies: '@gerrit0/mini-shiki': 3.2.2 lunr: 2.3.9 diff --git a/src/lib/marks/Line.svelte b/src/lib/marks/Line.svelte index 8d524a93..8ee23417 100644 --- a/src/lib/marks/Line.svelte +++ b/src/lib/marks/Line.svelte @@ -21,7 +21,7 @@ outlineStroke?: string; outlineStrokeWidth?: number; outlineStrokeOpacity?: number; - curve?: CurveName | CurveFactory; + curve?: CurveName | CurveFactory | 'auto'; tension?: number; sort?: ConstantAccessor | { channel: 'stroke' | 'fill' }; text?: ConstantAccessor; @@ -76,10 +76,6 @@ if (groupValue === lastGroupValue) { group.push(d); } else { - if (group.length === 1) { - // just one point makes a bad line, add this one, too - group.push(d); - } // new group group = [d]; groups.push(group); diff --git a/src/routes/transforms/jitter/+page.md b/src/routes/transforms/jitter/+page.md index 4fe9503b..d5b4348c 100644 --- a/src/routes/transforms/jitter/+page.md +++ b/src/routes/transforms/jitter/+page.md @@ -76,14 +76,6 @@ The jitter transform accepts the following options: - Useful for deterministic jittering (testing or reproducibility) - Can be used with d3's random generators: `randomLcg()` from d3-random -The following time interval strings are supported for temporal jittering: - -- `'1 day'`, `'3 days'` -- `'1 week'`, `'2 weeks'`, `'3 weeks'` -- `'1 month'`, `'2 months'` -- `'1 quarter'` -- `'1 year'` - ## jitterX Jitters along the x dimension: diff --git a/src/tests/line.test.ts b/src/tests/line.test.ts index bf43e795..fcaacd9a 100644 --- a/src/tests/line.test.ts +++ b/src/tests/line.test.ts @@ -227,4 +227,30 @@ describe('Line mark', () => { // Verify we have two distinct lines with different stroke colors expect(lines[0]?.style.stroke).not.toBe(lines[1]?.style.stroke); }); + + it('does not connect points from different groups', () => { + const { container } = render(LineTest, { + props: { + data: [ + { x: 0, y: 0, category: 'A' }, + { x: 1, y: 1, category: 'A' }, + { x: 0, y: 1, category: 'B' }, + { x: 0.5, y: 1, category: 'C' } + ], + x: 'x', + y: 'y', + z: 'category' + } + }); + + const lines = container.querySelectorAll( + 'g.lines > g > path' + ) as NodeListOf; + expect(lines).toHaveLength(3); + + const ds = Array.from(lines).map((l) => l.getAttribute('d')); + expect(ds[0]).toBe('M1,95L96,5'); + expect(ds[1]).toBe('M1,5Z'); + expect(ds[2]).toBe('M48.5,5Z'); + }); }); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy