Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add custom editor / visualizer to vscode extension #1243

Open
wants to merge 82 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 78 commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
261b87c
add custom editor to package.json
GideonKoenigJukabo Jan 27, 2024
29f6501
feat: Add CustomEditorProvider
GideonKoenigJukabo Jan 28, 2024
f701ce0
feat: hide menu item command when in custom editor
GideonKoenigJukabo Jan 28, 2024
cb9b61b
initialize svelte webview
GideonKoenigJukabo Jan 31, 2024
0c2f360
create svelte project with tailwind
GideonKoenigJukabo Feb 1, 2024
39be0b5
add settings for custom-editor submodule
GideonKoenigJukabo Feb 1, 2024
fac0bdf
add dynamic css file import
GideonKoenigJukabo Feb 1, 2024
36c606e
improve dx - setup watch command
GideonKoenigJukabo Feb 1, 2024
1a2a10f
ignore custom editor devtools in eslint
GideonKoenigJukabo Feb 1, 2024
f5c2e5e
change custom-editor bundle migration target fild
GideonKoenigJukabo Feb 1, 2024
6fa703d
add tailwind and shadcn to svelte project
GideonKoenigJukabo Feb 8, 2024
cca3c79
create base message structure
GideonKoenigJukabo Feb 8, 2024
1e31930
create test message from webview to extension
GideonKoenigJukabo Feb 8, 2024
11cc564
add MessageHandler to Extension and Webview components
GideonKoenigJukabo Feb 9, 2024
8ecdfa5
establish communication with language server
GideonKoenigJukabo Feb 23, 2024
c7b38f9
refine language server message definition
GideonKoenigJukabo Feb 23, 2024
c8ea001
refine language server message definition
GideonKoenigJukabo Feb 23, 2024
974fd58
use shared types for language server communication
GideonKoenigJukabo Feb 23, 2024
6b3388d
change device
GideonKoenigJukabo Feb 24, 2024
38f592f
priamry sidebar cleanup, initialize grid
GideonKoenigJukabo Feb 28, 2024
5aba7d3
feat: tooltip trait
GideonKoenigJukabo Mar 4, 2024
bc8c8aa
refine tooltip (add pointer) | add Parameter to statement node | make…
GideonKoenigJukabo Mar 5, 2024
df1f7de
add placeholder node
GideonKoenigJukabo Mar 5, 2024
9877413
refactor assets | modify placeholder name placement | start expressio…
GideonKoenigJukabo Mar 13, 2024
e6fce0e
add extension node
GideonKoenig Apr 11, 2024
419fa72
add expression node | rework port structure
GideonKoenig Apr 11, 2024
1980c70
Merge branch 'main' into custom-editor
GideonKoenig Apr 17, 2024
151b6ce
move message registration in safe-ds-lang
GideonKoenig Apr 17, 2024
3ff8ad5
eod | primary sidebar
GideonKoenig Apr 18, 2024
16841cd
exchange expression icon
GideonKoenig Apr 18, 2024
9dd689f
switch device
GideonKoenig Apr 30, 2024
3cb4d04
add skip button to error page
GideonKoenig May 1, 2024
4a3c76f
yeah, these are really not helpful ... this is a lot of progress in o…
GideonKoenig May 3, 2024
99d64f2
yeah, this is way to big
GideonKoenig May 29, 2024
dab358b
refactor: define extractors as classes
GideonKoenig Jun 12, 2024
ffc2d96
some more stuff
GideonKoenig Jun 25, 2024
e6e44e5
update
GideonKoenig Jul 2, 2024
f430994
Merge branch 'main' into custom-editor
GideonKoenig Jul 2, 2024
ebea553
complete merge
GideonKoenig Jul 2, 2024
ddea65c
new ast parser
GideonKoenig Jul 8, 2024
b195e62
get the ast to the frontend
GideonKoenig Jul 9, 2024
9993f8f
something
GideonKoenig Jul 11, 2024
4c6826b
tmp commit
GideonKoenig Jul 12, 2024
03f757e
second try
GideonKoenig Jul 12, 2024
c26ee8d
HELL YES
GideonKoenig Jul 12, 2024
13073ce
upate call, ge and placeholder nodes
GideonKoenig Jul 15, 2024
2954743
looks good now
GideonKoenig Jul 19, 2024
c3f56fe
change device
GideonKoenig Jul 23, 2024
a369070
layout test
GideonKoenig Jul 23, 2024
b4f8da9
to much again
GideonKoenig Aug 26, 2024
ba4d0da
fix: sidebar sections dont respect parent width
GideonKoenig Aug 26, 2024
f469a55
feat: add globalRefernces to sidebar and search capability
GideonKoenig Aug 27, 2024
821d4e5
fix: wrong style for search bar
GideonKoenig Aug 27, 2024
9a0fe52
fix: placeholder statusindicator vanishes after highlighting
GideonKoenig Aug 27, 2024
8d1bd6c
refactor: overhaul type parsing
GideonKoenig Aug 28, 2024
f5ac2b7
fix: remove old generic expression icon
GideonKoenig Aug 28, 2024
36f00bd
refactor: rework placeholder node
GideonKoenig Aug 28, 2024
1911f82
fix: statusbar of placehoders shines through
GideonKoenig Sep 2, 2024
29a3c5e
fix: minor placeholder style issue
GideonKoenig Sep 2, 2024
92355b8
eof
GideonKoenig Sep 3, 2024
5a61e0f
eof
GideonKoenig Sep 3, 2024
9045582
feat: basic segment implementation
GideonKoenig Sep 10, 2024
4d8f632
feat: segments
GideonKoenig Sep 27, 2024
8702e35
change device
GideonKoenig Sep 29, 2024
edcbc4f
feat: sync, but to much sync
GideonKoenig Oct 5, 2024
d1adbee
feat: sync events
GideonKoenig Oct 11, 2024
056f4e8
change device
GideonKoenig Oct 19, 2024
30067d8
feat: add processing animation
GideonKoenig Oct 19, 2024
76e05f9
fix: several smaller issues
GideonKoenig Oct 19, 2024
b69b410
Merge branch 'main' into custom-editor
GideonKoenig Oct 19, 2024
1ca78e6
feat: finish sidebar-elements
GideonKoenig Oct 21, 2024
13f104c
feat: vertical processing animation and filtered global references
GideonKoenig Oct 29, 2024
fc8866b
fix: missing linux build dependency
GideonKoenig Oct 29, 2024
40ab1f4
fix: spelling mistake, and missing test adjustment
GideonKoenig Oct 29, 2024
85a7ee5
fix: ignore lint rules for tailwind.css
GideonKoenig Oct 29, 2024
14dfda4
fix: a bunch of linter issues
GideonKoenig Oct 29, 2024
707bcb3
fix: more lint issues
GideonKoenig Oct 29, 2024
cafa613
style: apply automated linter fixes
megalinter-bot Oct 29, 2024
62fa1e4
Merge branch 'main' into custom-editor
GideonKoenig Nov 14, 2024
034fa77
fix: formatting issue
GideonKoenig Nov 14, 2024
aa6d5b9
fix: formatting issue
GideonKoenig Nov 14, 2024
9382a64
fix: more formatting issues
GideonKoenig Nov 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,11 @@
/packages/safe-ds-eda/consts.config.ts
/packages/safe-ds-eda/vite.config.ts
/packages/safe-ds-eda/types/*.d.ts

/packages/safe-ds-editor/svelte.config.js
/packages/safe-ds-editor/vite.config.js
/packages/safe-ds-editor/tailwind.config.ts
/packages/safe-ds-editor/postcss.config.js
/packages/safe-ds-editor/**/*.d.ts
/packages/safe-ds-editor/migrationTools/**
/packages/safe-ds-editor/src/tailwind.css
7 changes: 7 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,12 @@ module.exports = {
'import/no-unresolved': 'off',
},
},
{
files: ['packages/safe-ds-editor/src/**'],
rules: {
'import/no-default-export': 'off',
'no-console': 'off',
},
},
Comment on lines +28 to +34
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a reason to disable these rules completely for this folder.

  • Default exports are rarely needed, and using named exports throughout leads to more consistent code and a more consistent API. Moreover, we provide names for the exported elements, which already indicate their purpose. Default exports are unnamed, so users must always refer to documentation or the module that exports them.
  • Console statements are very easy to forget in the code. You are better off disabling the error for the few lines where you need them by adding a comment directly above the affected lines (https://eslint.org/docs/latest/use/configure/rules#disabling-rules).

],
};
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
# VSCode
.vscode/**/*
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/settings.json

# Compilation/build outputs
build/
Expand All @@ -14,6 +16,7 @@ dist-ssr/
generated/
!**/tests/resources/generation/**/generated/
lib/
!packages/safe-ds-editor/src/lib/
out/
*.tsbuildinfo
*.vsix
Expand Down
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["svelte.svelte-vscode"]
}
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"files.associations": {
"*.css": "tailwindcss"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this require any extension to be installed?

}
}
4,191 changes: 2,326 additions & 1,865 deletions package-lock.json

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions packages/safe-ds-editor/.prettierrc.json
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See other comment about updating prettierrc. Should not be included in the repo.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"printWidth": 100,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"jsxSingleQuote": false,
"quoteProps": "as-needed",
"trailingComma": "all",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "always",
"requirePragma": false,
"insertPragma": false,
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"vueIndentScriptAndStyle": true,
"endOfLine": "lf",
"embeddedLanguageFormatting": "auto",
"overrides": [
{
"files": ["*.yaml", "*.yml"],
"options": { "tabWidth": 2 }
}
],
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"]
}
14 changes: 14 additions & 0 deletions packages/safe-ds-editor/components.json
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this do?

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"$schema": "https://shadcn-svelte.com/schema.json",
"style": "new-york",
"tailwind": {
"config": "tailwind.config.js",
"css": "src/global.css",
"baseColor": "slate"
},
"aliases": {
"components": "$src/components",
"utils": "$pages/utils"
},
"typescript": true
}
25 changes: 25 additions & 0 deletions packages/safe-ds-editor/migrationTools/copyToExtension.js
Copy link
Member

@lars-reimann lars-reimann Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd greatly prefer this to be included in ESBuild script in the safe-ds-vscode project (packages\safe-ds-vscode\esbuild.mjs). It's always better if a project manages its dependencies rather than its dependents.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import fs from 'fs-extra';
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const sourceDir = path.join(__dirname, '..', 'dist');
const distDir = path.join(__dirname, '..', '..', 'safe-ds-vscode', 'dist');
const targetDir = path.join(distDir, 'custom-editor');

console.log(`Removing old files from <safe-ds-vscode>...`);
fs.ensureDirSync(distDir);
fs.emptyDirSync(targetDir);

console.log(`Copying webview from <safe-ds-editor> to <safe-ds-vscode>...`);
fs.copy(sourceDir, targetDir, { overwrite: true })
.then(() => console.log('Done'))
.catch((err) => {
console.error('Error during copying:', err);
process.exit(1);
});

// npm run watch script: "watch": "concurrently -n Vite,Nodemon -c blue,red \"vite build --watch\" \"npx nodemon --quiet --watch dist migrationTools/copyToExtension.js\"",
54 changes: 54 additions & 0 deletions packages/safe-ds-editor/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"name": "@safe-ds/custom-editor",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build && node migrationTools/copyToExtension.js",
"watch": "concurrently -n Vite,Nodemon -c blue,red \"vite build --watch\" \"npx nodemon --quiet --watch dist migrationTools/copyToExtension.js\"",
"preview": "vite preview",
"check": "svelte-check --tsconfig ./tsconfig.json",
"clean": "shx rm -rf dist",
"build:clean": "npm run clean && npm run build",
"copyToExtension": "node migrationTools/copyToExtension.js"
},
"devDependencies": {
"@magidoc/plugin-svelte-marked": "^6.1.0",
"@safe-ds/lang": ">=0.3.0",
"@sveltejs/vite-plugin-svelte": "^3.0.2",
"@tsconfig/svelte": "^5.0.2",
"autoprefixer": "^10.4.17",
"bits-ui": "^0.21.16",
"clsx": "^2.1.0",
"concurrently": "^8.2.2",
"fs-extra": "^11.2.0",
"nodemon": "^3.0.3",
"postcss": "^8.4.33",
"prettier-plugin-svelte": "^3.2.1",
"prettier-plugin-tailwindcss": "^0.5.11",
"radix-icons-svelte": "^1.2.1",
"svelte": "^4.2.9",
"svelte-check": "^3.6.3",
"svelte-preprocess": "^5.1.3",
"svelte-radix": "^1.1.1",
"svelte-svg": "^0.0.7",
"tailwind-merge": "^2.2.1",
"tailwind-variants": "^0.1.20",
"tailwindcss": "^3.4.1",
"terser": "^5.28.1",
"tslib": "^2.6.2",
"typescript": "^5.3.3",
"vite": "^5.0.12"
},
"dependencies": {
"@xyflow/svelte": "^0.1.13",
"elkjs": "^0.9.3",
"flatten": "^1.0.3",
"marked": "^14.0.0",
"paneforge": "^0.0.5"
},
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "^4.24.2"
}
}
6 changes: 6 additions & 0 deletions packages/safe-ds-editor/postcss.config.js
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If default exports are unavoidable here, add a comment to disable the error for the next line.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
1 change: 1 addition & 0 deletions packages/safe-ds-editor/samples/currentDocument.txt

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions packages/safe-ds-editor/samples/segment_test.sds
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package segmentTest

segment doStuff(
inputPath: String,
ouputPath: String,
sliceSize: Int
) -> (score: Float) {
val labeledImages = Table.fromCsvFile(inputPath);
val subsetImages = labeledImages.sliceRows(0, sliceSize);
val train, val validate = subsetImages.splitRows(0.8);

val modelUntrained = SupportVectorClassifier();
val modelTrained = modelUntrained.fit(
train.toTabularDataset(targetName = "target")
);
yield score = modelTrained.accuracy(validate);

val testdata = Table.fromCsvFile("beginner_classification/test.csv");
val testdataTransformed = testdata.transformColumn("pixel0", (row) -> row.add(1));
val resultTable = modelTrained.predict(testdataTransformed);

resultTable.toTable().toCsvFile(ouputPath);
}

pipeline smallTest {

val path = "beginner_classification/train.csv";
val score = doStuff(
path,
"output/beginner_classification.csv",
5000
);
}
20 changes: 20 additions & 0 deletions packages/safe-ds-editor/samples/small_test.sds
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package smallTest

pipeline smallTest {
val path = "beginner_classification/train.csv";
val labeledImages = Table.fromCsvFile(path);
val subsetImages = labeledImages.sliceRows(0, 5000);
val train, val validate = subsetImages.splitRows(0.8);

val modelUntrained = SupportVectorClassifier(2.0);
val modelTrained = modelUntrained.fit(
train.toTabularDataset(targetName = "target")
);
val score = modelTrained.accuracy(validate);

val testdata = Table.fromCsvFile("beginner_classification/test.csv");
val testdataTransformed = testdata.transformColumn("pixel0", (row) -> row.add(1));
val resultTable = modelTrained.predict(testdataTransformed);

resultTable.toTable().toCsvFile("output/beginner_classification.csv");
}
24 changes: 24 additions & 0 deletions packages/safe-ds-editor/src/assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Problem mit .svg Dateien

Bei der Verwendung von .svg Dateien besteht das Problem, dass es sich hier um assets handelt, die, wenn sie auf die typische Art und Weise in die Webview mit eingebunden werden würden, vom Extension Prozess signiert werden müssten.

## Lösungsansatz

Die Lösung die hier gefunden wurde ist, dass diese als .svelte Dateien abgespeichert und als Komponenten behandelt werden. Diese werden dann über eine zentrale Komponente zugänglich gemacht, um dynamisch die korrekte SVG Komponente auswählen zu können.

## Verwendung

Diese Komponente muss mit dem Namen der SVG Komponente konfiguriert werden.

```svelte
<script lang="ts">
import CategoryIcon from 'assets/category/categoryIcon.svelte'
</script>

<div>
<CategoryIcon name={"Svg Name"}>
</div>
```

## Theming
Beim Hinzufügen neuer SVG's ist darauf zu achten, dass das bisher verwendete Theming beibehalten wird. So wird die Farbe via stroke-color definiert. Es sind daher alle hardkodierten Benennungen von stroke-color zu entfernen. Sollte ein SVG eine fill Farbe verwenden, so muss diese auf "currentColor" gesetzt werden. Auf diese Weise gleicht sich die fill-color automatisch der stroke-color an.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<script>
export let className = '';
</script>

<!-- <svg fill="none" class={className} viewBox="0 0 24 24" stroke-width="0.7">
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
<g id="SVGRepo_iconCarrier">
<path
d="M20,6.52897986 L20,19.5010024 C20,20.8817143 18.8807119,22.0010024 17.5,22.0010024 L6.5,22.0010024 C5.11928813,22.0010024 4,20.8817143 4,19.5010024 L4,4.50100238 C4,3.1202905 5.11928813,2.00100238 6.5,2.00100238 L15.4720225,2.00100238 C15.6047688,1.99258291 15.7429463,2.03684187 15.8535534,2.14744899 L19.8535534,6.14744899 C19.9641605,6.25805611 20.0084195,6.39623363 20,6.52897986 Z M15,3.00100238 L6.5,3.00100238 C5.67157288,3.00100238 5,3.67257525 5,4.50100238 L5,19.5010024 C5,20.3294295 5.67157288,21.0010024 6.5,21.0010024 L17.5,21.0010024 C18.3284271,21.0010024 19,20.3294295 19,19.5010024 L19,7.00100238 L15.5,7.00100238 C15.2238576,7.00100238 15,6.77714475 15,6.50100238 L15,3.00100238 Z M16,3.70810916 L16,6.00100238 L18.2928932,6.00100238 L16,3.70810916 Z M15.0159497,15.3088429 L16.8535534,17.1464466 C17.0488155,17.3417088 17.0488155,17.6582912 16.8535534,17.8535534 C16.6582912,18.0488155 16.3417088,18.0488155 16.1464466,17.8535534 L14.3088429,16.0159497 C13.5390075,16.6317636 12.5625069,17 11.5,17 C9.01471863,17 7,14.9852814 7,12.5 C7,10.0147186 9.01471863,8 11.5,8 C13.9852814,8 16,10.0147186 16,12.5 C16,13.5625069 15.6317636,14.5390075 15.0159497,15.3088429 L15.0159497,15.3088429 Z M11.5,16 C13.4329966,16 15,14.4329966 15,12.5 C15,10.5670034 13.4329966,9 11.5,9 C9.56700338,9 8,10.5670034 8,12.5 C8,14.4329966 9.56700338,16 11.5,16 Z"
fill="currentColor"
></path>
</g></svg
> -->

<svg class={className} viewBox="0 0 24 24" fill="none">
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
<g>
<path
d="M20 10.5V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11984 22 8.8 22H11.5M22 22L20.5 20.5M21.5 18C21.5 19.933 19.933 21.5 18 21.5C16.067 21.5 14.5 19.933 14.5 18C14.5 16.067 16.067 14.5 18 14.5C19.933 14.5 21.5 16.067 21.5 18Z"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
></path>
</g></svg
>
16 changes: 16 additions & 0 deletions packages/safe-ds-editor/src/assets/category/DataExport.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<script>
export let className = '';
</script>

<svg class={className} viewBox="0 0 24 24" fill="none" stroke-width="0.6">
<path
d="M14.4697 7.53033C14.7626 7.82322 15.2374 7.82322 15.5303 7.53033C15.8232 7.23744 15.8232 6.76256 15.5303 6.46967L12.5303 3.46967C12.2374 3.17678 11.7626 3.17678 11.4697 3.46967L8.46967 6.46967C8.17678 6.76256 8.17678 7.23744 8.46967 7.53033C8.76256 7.82322 9.23744 7.82322 9.53033 7.53033L11.25 5.81066V14C11.25 14.4142 11.5858 14.75 12 14.75C12.4142 14.75 12.75 14.4142 12.75 14V5.81066L14.4697 7.53033Z"
fill="currentColor"
>
</path>
<path
d="M20.75 12C20.75 11.5858 20.4142 11.25 20 11.25C19.5858 11.25 19.25 11.5858 19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99593 19.25 4.75 16.0041 4.75 12C4.75 11.5858 4.41421 11.25 4 11.25C3.58579 11.25 3.25 11.5858 3.25 12C3.25 16.8325 7.16751 20.75 12 20.75C16.8325 20.75 20.75 16.8325 20.75 12Z"
fill="currentColor"
>
</path>
</svg>
16 changes: 16 additions & 0 deletions packages/safe-ds-editor/src/assets/category/DataImport.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<script>
export let className = '';
</script>

<svg class={className} viewBox="0 0 24 24" fill="none" stroke-width="0.6">
<path
d="M14.4697 10.4697C14.7626 10.1768 15.2374 10.1768 15.5303 10.4697C15.8232 10.7626 15.8232 11.2374 15.5303 11.5303L12.5303 14.5303C12.2374 14.8232 11.7626 14.8232 11.4697 14.5303L8.46967 11.5303C8.17678 11.2374 8.17678 10.7626 8.46967 10.4697C8.76256 10.1768 9.23744 10.1768 9.53033 10.4697L11.25 12.1893V4C11.25 3.58579 11.5858 3.25 12 3.25C12.4142 3.25 12.75 3.58579 12.75 4V12.1893L14.4697 10.4697Z"
fill="currentColor"
>
</path>
<path
d="M20.75 12C20.75 11.5858 20.4142 11.25 20 11.25C19.5858 11.25 19.25 11.5858 19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99593 19.25 4.75 16.0041 4.75 12C4.75 11.5858 4.41421 11.25 4 11.25C3.58579 11.25 3.25 11.5858 3.25 12C3.25 16.8325 7.16751 20.75 12 20.75C16.8325 20.75 20.75 16.8325 20.75 12Z"
fill="currentColor"
>
</path>
</svg>
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<script>
export let className = '';
</script>

<svg class={className} fill="none" viewBox="0 0 392.663 392.663" stroke-width="5">
<g>
<g>
<g>
<path
d="M239.515,249.826l-22.044-14.481c-0.905-2.392-1.939-4.849-3.038-7.24l5.301-25.859c0.776-3.62-0.388-7.37-2.909-9.891 L200.469,176c-2.651-2.651-6.335-3.685-9.891-2.909l-25.859,5.301c-2.392-1.099-4.848-2.133-7.24-3.038l-14.545-22.044 c-2.004-3.103-5.43-4.913-9.115-4.913h-23.079c-3.62,0-7.111,1.875-9.115,4.913l-14.545,22.044 c-2.392,0.905-4.849,1.939-7.24,3.038l-25.859-5.301c-3.556-0.711-7.37,0.388-9.891,2.909l-16.356,16.356 c-2.651,2.651-3.685,6.335-2.909,9.891l5.301,25.859c-1.164,2.392-2.133,4.848-3.038,7.24L4.978,249.826 C1.875,251.83,0,255.257,0,258.941v23.079c0,3.62,1.875,7.111,4.978,9.115l22.044,14.481c0.905,2.392,1.939,4.849,3.038,7.24 l-5.301,25.859c-0.776,3.62,0.388,7.37,2.909,9.891l16.356,16.356c2.651,2.651,6.335,3.685,9.891,2.909l25.859-5.301 c2.392,1.099,4.848,2.133,7.24,3.038l14.545,22.044c2.004,3.103,5.43,4.978,9.115,4.978h23.079c3.62,0,7.111-1.875,9.115-4.978 l14.545-22.044c2.392-0.905,4.849-1.939,7.24-3.038l25.859,5.301c3.556,0.711,7.37-0.388,9.891-2.909l16.356-16.356 c2.651-2.651,3.685-6.335,2.909-9.891l-5.301-25.859c1.164-2.392,2.133-4.848,3.038-7.24l22.044-14.545 c3.103-2.004,4.913-5.43,4.913-9.115v-23.079C244.493,255.257,242.618,251.83,239.515,249.826z M222.772,276.202h-0.065 l-20.17,13.317c-2.069,1.422-3.62,3.426-4.396,5.689c-1.228,3.814-2.844,7.564-4.784,11.378c-1.099,2.263-1.487,4.719-0.905,7.111 l4.913,23.725l-8.016,8.016l-23.725-4.913c-2.392-0.453-4.913-0.129-7.176,0.905c-3.814,1.939-7.628,3.556-11.378,4.784 c-2.327,0.776-4.396,2.327-5.689,4.396l-13.317,20.17h-11.378l-13.317-20.17c-1.422-2.069-3.426-3.62-5.689-4.396 c-3.814-1.228-7.628-2.844-11.378-4.784c-2.263-1.099-4.719-1.487-7.176-0.905l-23.725,4.913l-8.081-8.081l4.978-23.725 c0.453-2.392,0.129-4.978-0.905-7.176c-1.939-3.814-3.556-7.628-4.719-11.378c-0.776-2.327-2.327-4.396-4.396-5.689l-20.17-13.317 v-11.378l20.17-13.317c2.069-1.422,3.62-3.426,4.396-5.689c1.228-3.814,2.844-7.564,4.784-11.378 c1.099-2.263,1.487-4.719,0.905-7.111l-4.913-23.661l8.016-8.016l23.725,4.913c2.392,0.453,4.978,0.129,7.176-0.905 c3.814-1.939,7.564-3.556,11.378-4.784c2.327-0.776,4.396-2.327,5.689-4.396l13.317-20.17h11.378l13.317,20.17 c1.422,2.069,3.426,3.62,5.689,4.396c3.814,1.228,7.628,2.844,11.378,4.784c2.263,1.099,4.719,1.487,7.176,0.905l23.725-4.913 l8.016,8.016l-4.913,23.725c-0.453,2.392-0.129,4.913,0.905,7.111c1.939,3.814,3.556,7.628,4.719,11.378 c0.776,2.392,2.327,4.396,4.396,5.689l20.234,13.317V276.202z"
fill="currentColor"
></path>
</g>
</g>
<g>
<g>
<path
d="M122.311,221.705c-26.893,0-48.743,21.85-48.743,48.743c0,26.893,21.85,48.743,48.743,48.743s48.743-21.851,48.743-48.743 S149.204,221.705,122.311,221.705z M122.311,297.406c-14.804,0-26.958-12.154-26.958-26.958c0-14.869,12.154-26.958,26.958-26.958 s26.958,12.154,26.958,26.958C149.204,285.382,137.115,297.406,122.311,297.406z"
fill="currentColor"
></path>
</g>
</g>
<g>
<g>
<path
d="M387.685,79.483L371.2,68.687c-0.517-1.487-1.164-2.909-1.875-4.331l4.008-19.329c0.776-3.62-0.388-7.37-2.909-9.891 l-12.671-12.671c-2.651-2.651-6.335-3.685-9.891-2.909l-19.394,3.814c-1.487-0.646-2.909-1.228-4.331-1.875L313.341,5.01 c-2.004-3.103-5.43-4.978-9.115-4.978H286.19c-3.62,0-7.111,1.875-9.115,4.978l-10.796,16.485 c-1.487,0.517-2.909,1.164-4.331,1.875l-19.329-4.008c-3.556-0.776-7.37,0.388-9.891,2.909l-12.671,12.671 c-2.651,2.651-3.685,6.335-2.909,9.891l4.008,19.329c-0.646,1.487-1.228,2.909-1.875,4.331l-16.485,10.796 c-3.103,2.004-4.913,5.43-4.913,9.115v18.036c0,3.62,1.875,7.111,4.913,9.115l16.485,10.796c0.517,1.487,1.164,2.909,1.875,4.331 l-4.008,19.329c-0.776,3.62,0.388,7.37,2.909,9.891l12.671,12.735c2.651,2.651,6.335,3.685,9.891,2.909l19.329-4.008 c1.487,0.646,2.909,1.228,4.331,1.875l10.796,16.485c2.004,3.103,5.43,4.913,9.115,4.913h18.036c3.62,0,7.111-1.875,9.115-4.913 l10.796-16.485c1.487-0.517,2.909-1.164,4.396-1.875l19.329,4.008c3.62,0.711,7.37-0.388,9.891-2.909l12.671-12.735 c2.65-2.651,3.685-6.335,2.909-9.891l-4.008-19.329c0.646-1.487,1.228-2.909,1.875-4.396l16.485-10.796 c3.103-2.004,4.978-5.43,4.978-9.115V88.339C392.598,84.913,390.723,81.552,387.685,79.483z M371.006,100.622h-0.194v0.065 l-14.61,9.568c-2.069,1.422-3.62,3.426-4.396,5.689c-0.905,2.78-2.069,5.624-3.556,8.469c-1.164,2.263-1.487,4.719-0.905,7.176 l3.556,17.131l-4.396,4.396l-17.131-3.556c-2.392-0.453-4.913-0.129-7.176,0.905c-2.844,1.487-5.689,2.651-8.469,3.556 c-2.392,0.776-4.396,2.327-5.689,4.396l-9.632,14.675h-6.206l-9.568-14.61c-1.422-2.069-3.426-3.62-5.689-4.396 c-2.78-0.905-5.624-2.069-8.469-3.556c-2.263-1.164-4.719-1.487-7.176-0.905l-17.131,3.556l-4.396-4.396l3.556-17.131 c0.453-2.392,0.129-4.913-0.905-7.111c-1.487-2.844-2.65-5.689-3.556-8.469c-0.776-2.327-2.327-4.396-4.396-5.689l-14.675-9.762 v-6.206l14.61-9.568c2.069-1.422,3.62-3.426,4.396-5.689c0.905-2.78,2.069-5.624,3.556-8.469c1.164-2.263,1.487-4.719,0.905-7.176 l-3.556-17.131l4.396-4.396l17.131,3.556c2.392,0.453,4.913,0.129,7.111-0.905c2.844-1.487,5.689-2.651,8.469-3.556 c2.327-0.776,4.396-2.327,5.689-4.396l9.568-14.61h6.206l9.568,14.61c1.422,2.069,3.426,3.62,5.689,4.396 c2.78,0.905,5.624,2.069,8.469,3.556c2.133,1.164,4.719,1.487,7.111,0.905l17.131-3.556l4.396,4.396l-3.232,17.131 c-0.453,2.392-0.129,4.978,1.034,7.176c1.487,2.78,2.651,5.624,3.556,8.469c0.776,2.392,2.327,4.396,4.396,5.689l14.61,9.568 V100.622z"
fill="currentColor"
></path>
</g>
</g>
<g>
<g>
<path
d="M295.176,57.244c-22.238,0-40.339,18.101-40.339,40.339c0,22.238,18.101,40.339,40.339,40.339 c22.238,0,40.339-18.101,40.339-40.339C335.515,75.345,317.414,57.244,295.176,57.244z M295.176,116.137 c-10.214,0-18.554-8.339-18.554-18.554c0-10.214,8.339-18.554,18.554-18.554c10.214,0,18.554,8.339,18.554,18.554 C313.729,107.798,305.39,116.137,295.176,116.137z"
fill="currentColor"
></path>
</g>
</g>
</g></svg
>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<script>
export let className = '';
</script>

<svg class={className} viewBox="0 0 24 24" fill="none">
<path
d="M20 12.5V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11982 22 8.79993 22H12M14.5 19L16.5 21L21 16.5"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
Loading
Loading