docs: refresh the documentation design (#1715)

Co-authored-by: Dhravya Shah <dhravya@supermemory.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Parthiv 2026-09-30 05:56:13 +05:30 • committed by GitHub
parent 0c74b55693
commit 640eeaa8e8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
219 changed files with 3951 additions and 1116 deletions

View file

@ -1,13 +1,13 @@
---
title: "Agents, skills and MCP"
description: "Set up coding agents to integrate Supermemory — CLI, skill, and docs MCP."
description: "Set up coding agents to integrate Supermemory with the CLI, the skill and the docs MCP."
sidebarTitle: "Agents, skills and MCP"
icon: "bot"
icon: "/icons/hugeicons/robotic.svg"
---
This page is for **building with Supermemory** using coding agents: scaffolding a project, following the real API, and searching product docs.
It is **not** the consumer Memory MCP (give Claude/Cursor long-term memory about *you*). That is a separate product surface — see [Supermemory MCP](/supermemory-mcp/mcp).
This is not the consumer memory MCP that gives Claude or Cursor long-term memory about you. That is a separate product: [Supermemory MCP](/supermemory-mcp/mcp).
| Path | How | For |
|---|---|---|
@ -52,7 +52,7 @@ npx skills add https://github.com/supermemoryai/skills --skill supermemory
Source: [github.com/supermemoryai/skills](https://github.com/supermemoryai/skills).
<Tip>
Best combo for coding agents: **skill** + **docs MCP** + **`npx supermemory setup`**.
For coding agents, use all three together: the skill, the docs MCP and `npx supermemory setup`.
</Tip>
## Docs MCP
@ -186,7 +186,7 @@ You are integrating Supermemory into my app.
If the skill is not installed, paste a fuller prompt so the agent asks the right product questions:
<Accordion title="Copy full integration prompt" icon="copy">
<Accordion title="Copy full integration prompt" icon="/icons/hugeicons/copy-01.svg">
````
You are integrating Supermemory into my application. Supermemory provides user memory, semantic search, and automatic knowledge extraction for AI applications.
@ -233,16 +233,16 @@ Want your **assistant** to remember you across chats (save/recall/profile in Cla
## Next steps
<CardGroup cols={2}>
<Card title="Quickstart" icon="play" href="/quickstart">
<Card title="Quickstart" icon="/icons/hugeicons/play.svg" href="/quickstart">
Conversation + document ingest, RAG, graph, profile, harness.
</Card>
<Card title="Memory MCP" icon="brain-circuit" href="/supermemory-mcp/mcp">
<Card title="Memory MCP" icon="/icons/hugeicons/ai-brain-01.svg" href="/supermemory-mcp/mcp">
Persistent memory for assistants — separate from docs setup.
</Card>
<Card title="Plugins" icon="puzzle" href="/integrations/openclaw">
<Card title="Plugins" icon="/icons/hugeicons/puzzle.svg" href="/integrations/openclaw">
Claude Code, OpenClaw, Codex, Hermes, and more.
</Card>
<Card title="AI SDK" icon="triangle" href="/integrations/ai-sdk">
<Card title="AI SDK" icon="/icons/hugeicons/triangle.svg" href="/integrations/ai-sdk">
withSupermemory and memory tools in app code.
</Card>
</CardGroup>

View file

@ -1,8 +1,8 @@
---
title: "Connections"
sidebarTitle: "Overview"
description: "External connectors — create, configure, sync, and manage resources."
icon: "book-open"
description: "Create, configure, sync and manage external connectors."
icon: "/icons/hugeicons/book-open-01.svg"
---
Connections pull content from Notion, Google Drive, Gmail, OneDrive, S3, GitHub, and more.

View file

@ -1,8 +1,8 @@
---
title: "Container tags"
sidebarTitle: "Overview"
description: "Multi-tenant containers — settings, merge, and delete."
icon: "book-open"
description: "Settings, merge and delete for multi-tenant containers."
icon: "/icons/hugeicons/book-open-01.svg"
---
`containerTag` is the primary multi-tenant key (user id, workspace id, etc.). These endpoints manage settings and lifecycle for a tag.

View file

@ -2,7 +2,7 @@
title: "Documents"
sidebarTitle: "Overview"
description: "List, get status, update, delete, and inspect ingested documents."
icon: "book-open"
icon: "/icons/hugeicons/book-open-01.svg"
---
Documents are the unit of ingestion. Adds return immediately with `status: "queued"`; poll until `done` before relying on search or profiles.

View file

@ -2,7 +2,7 @@
title: "Ingest"
sidebarTitle: "Overview"
description: "Add documents, files, batches, and conversations to Supermemory."
icon: "book-open"
icon: "/icons/hugeicons/book-open-01.svg"
---
Send raw content into the processing pipeline. Supermemory extracts memories, chunks for RAG, and updates profiles asynchronously.

View file

@ -2,7 +2,7 @@
title: "Memories"
sidebarTitle: "Overview"
description: "Create, list, update, and forget extracted memory entries (v4)."
icon: "book-open"
icon: "/icons/hugeicons/book-open-01.svg"
---
These endpoints operate on **extracted memories**, not raw documents.

View file

@ -1,7 +1,7 @@
---
title: "API Reference"
description: "Interactive reference for the Supermemory HTTP API — ingest, search, profiles, memories, connectors, and settings."
icon: "unplug"
title: "API reference"
description: "Interactive reference for the Supermemory HTTP API: ingest, search, profiles, memories, connectors and settings."
icon: "/icons/hugeicons/plug-socket.svg"
---
This is the **contract-level** reference for Supermemory: methods, paths, parameters, and the playground.

View file

@ -1,8 +1,8 @@
---
title: "Profiles"
sidebarTitle: "Profiles overview"
description: "Entity profiles — static and dynamic facts for a container."
icon: "id-card"
description: "Static and dynamic facts about an entity, scoped to a container."
icon: "/icons/hugeicons/id.svg"
---
Profiles summarize what Supermemory knows about a user or entity in a `containerTag`.

View file

@ -1,8 +1,8 @@
---
title: "Recall"
sidebarTitle: "Overview"
description: "Semantic search over memories, document chunks, or both — plus user profiles."
icon: "book-open"
description: "Semantic search over memories, document chunks or both, plus user profiles."
icon: "/icons/hugeicons/book-open-01.svg"
---
Get context back out of Supermemory: search extracted memories / documents, or fetch a user profile.

View file

@ -2,7 +2,7 @@
title: "Settings"
sidebarTitle: "Overview"
description: "Organization settings, profile buckets, and data reset."
icon: "book-open"
icon: "/icons/hugeicons/book-open-01.svg"
---
Org-level configuration for extraction, customization, and profile buckets.

View file

@ -2,10 +2,10 @@
title: "API keys & auth"
description: "Org API keys, container-scoped keys, and connector branding."
sidebarTitle: "API keys"
icon: "key"
icon: "/icons/hugeicons/key-01.svg"
---
## API Keys
## API keys
All API requests require authentication using a Bearer token. Get your API key from the [Developer Platform](https://console.supermemory.ai).
@ -40,7 +40,7 @@ client = Supermemory(api_key="YOUR_API_KEY")
---
## Connector Branding
## Connector branding
When users connect external services (Google Drive, Notion, OneDrive), they see a "Log in to **Supermemory**" prompt by default. You can replace this with your own app name by providing your own OAuth credentials via the settings endpoint.

View file

@ -1,8 +1,8 @@
---
title: "Container Tags"
title: "Container tags"
sidebarTitle: "Container tags"
description: "The isolation boundary that groups and partitions memories by user, project, or any logical scope"
icon: "folder"
icon: "/icons/hugeicons/folder-01.svg"
---
A **container tag** is the primary way you organize and isolate memories in Supermemory. It's a simple string identifier you attach to content when you add it — and that you pass back when you search, list, or update it.
@ -10,10 +10,10 @@ A **container tag** is the primary way you organize and isolate memories in Supe
Think of a container tag as a **namespace**: every memory tagged with `user_alex` lives in its own isolated space, completely separate from memories tagged `user_jordan`. This is what makes Supermemory safe to use in multi-tenant applications — one user can never see another user's memories unless you explicitly query across both tags.
<CardGroup cols={2}>
<Card title="Group" icon="layers">
<Card title="Group" icon="/icons/hugeicons/layers-01.svg">
Bucket memories by user, project, agent, workspace, or any boundary that makes sense for your app.
</Card>
<Card title="Isolate" icon="shield">
<Card title="Isolate" icon="/icons/hugeicons/shield-01.svg">
Each container tag maps to its own vector namespace, so search and retrieval never leak across boundaries.
</Card>
</CardGroup>
@ -167,13 +167,13 @@ Keep tags **deterministic** — derive them directly from IDs you already have (
## Next steps
<CardGroup cols={2}>
<Card title="Organizing & Filtering" icon="filter" href="/concepts/filtering">
<Card title="Organizing & filtering" icon="/icons/hugeicons/filter.svg" href="/concepts/filtering">
Combine container tags with metadata filters for precise retrieval.
</Card>
<Card title="Scoped API keys" icon="key" href="/authentication#scoped-api-keys">
<Card title="Scoped API keys" icon="/icons/hugeicons/key-01.svg" href="/authentication#scoped-api-keys">
Mint keys that can only touch one container — multi-tenant clients without the org master key.
</Card>
<Card title="Adding Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Adding memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
See container tags in action across the add API.
</Card>
</CardGroup>

View file

@ -1,13 +1,13 @@
---
title: "Supported Content Types"
title: "Supported content types"
sidebarTitle: "Multi-modal ingestion"
description: "All the content formats Supermemory can ingest and process"
icon: "file-stack"
icon: "/icons/hugeicons/files-01.svg"
---
Supermemory automatically extracts and indexes content from various formats. There are two entry points: `client.add()` for text and URLs, `client.documents.uploadFile()` for actual files. See [Add Memories](/ingestion/add-memories) to learn how to ingest content via the API.
## Text Content
## Text content
Raw text, conversations, notes, or any string content.
@ -22,7 +22,7 @@ await client.add({
---
## URLs & Web Pages
## URLs & Web pages
Send a URL and Supermemory fetches, extracts, and indexes the content.
@ -76,7 +76,7 @@ Automatically handled via [Google Drive connector](/connectors/google-drive):
---
## Code & Markdown
## Code & markdown
Both are plain text, so they go through `add` like any other string content — no file upload needed:
@ -122,7 +122,7 @@ await client.documents.uploadFile({
---
## Audio & Video
## Audio & video
Video has a dedicated `fileType`; audio is uploaded the same way and detected from the file itself:
@ -151,7 +151,7 @@ await client.documents.uploadFile({
---
## Structured Data
## Structured data
JSON and CSV are text — stringify and send them through `add()`, no file upload needed.
@ -177,7 +177,7 @@ await client.add({
---
## File Upload
## File upload
For any binary file, use `uploadFile` — it accepts a stream, not base64:
@ -219,7 +219,7 @@ For files, `uploadFile` detects type from the file itself in most cases. `fileTy
---
## Content Limits
## Content limits
| Type | Max Size |
|------|----------|
@ -235,13 +235,13 @@ For large files, consider chunking or using [connectors](/connectors/overview) f
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="Add Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Add memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
Upload content via the API
</Card>
<Card title="Super RAG" icon="bolt" href="/concepts/super-rag">
<Card title="Super RAG" icon="/icons/hugeicons/flash.svg" href="/concepts/super-rag">
How content is chunked and indexed
</Card>
</CardGroup>

View file

@ -1,13 +1,13 @@
---
title: "Customizing for Your Use Case"
title: "Customizing for your use case"
sidebarTitle: "Customizing"
description: "Configure Supermemory's behavior for your specific application"
icon: "settings-2"
icon: "/icons/hugeicons/settings-02.svg"
---
Configure how Supermemory processes and retrieves content for your specific use case.
## Filter Prompts
## Filter prompts
Tell Supermemory what content matters during ingestion. This helps filter and prioritize what gets indexed.
@ -32,25 +32,25 @@ await client.settings.update({
```
<AccordionGroup>
<Accordion title="Personal Assistant">
<Accordion title="Personal assistant">
```typescript
filterPrompt: `Personal AI assistant. Prioritize recent content, action items,
and personal context. Exclude spam and duplicates.`
```
</Accordion>
<Accordion title="Customer Support">
<Accordion title="Customer support">
```typescript
filterPrompt: `Customer support agent. Prioritize verified solutions, official docs,
and resolved tickets. Exclude internal discussions and PII.`
```
</Accordion>
<Accordion title="Legal Assistant">
<Accordion title="Legal assistant">
```typescript
filterPrompt: `Legal research assistant. Prioritize precedents, current regulations,
and approved contract language. Exclude privileged communications.`
```
</Accordion>
<Accordion title="Finance Agent">
<Accordion title="Finance agent">
```typescript
filterPrompt: `Financial analysis assistant. Prioritize latest reports, verified data,
and regulatory filings. Exclude speculative data and MNPI.`
@ -62,7 +62,7 @@ await client.settings.update({
and FDA-approved info. Exclude PHI and outdated recommendations.`
```
</Accordion>
<Accordion title="Developer Docs">
<Accordion title="Developer docs">
```typescript
filterPrompt: `Developer documentation assistant. Prioritize current APIs, working
examples, and best practices. Exclude deprecated APIs and test fixtures.`
@ -82,7 +82,7 @@ await client.settings.update({
---
## Entity Context
## Entity context
Guide memory extraction for a specific container tag. Filter prompts are org-wide; entity context is per container.
@ -112,7 +112,7 @@ Entity context persists on the container tag and combines with org-level filter
---
## Chunk Size
## Chunk size
Control how documents are split into searchable pieces. Smaller chunks = more precise retrieval but less context per result.
@ -135,7 +135,7 @@ Smaller chunks generate more memories per document. Larger chunks provide more c
---
## Connector Branding
## Connector branding
Show "Log in to **YourApp**" instead of "Log in to Supermemory" when users connect external services. See [Connectors Overview](/connectors/overview) for the full list of supported integrations.
@ -180,7 +180,7 @@ Show "Log in to **YourApp**" instead of "Log in to Supermemory" when users conne
---
## API Reference
## API reference
```typescript
// Get current settings
@ -200,13 +200,13 @@ Settings are organization-wide. Changes apply to new content only—existing mem
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="Add Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Add memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
See your custom settings in action
</Card>
<Card title="Connectors" icon="plug" href="/connectors/overview">
<Card title="Connectors" icon="/icons/hugeicons/plug-01.svg" href="/connectors/overview">
Set up automatic syncing from external platforms
</Card>
</CardGroup>

View file

@ -1,17 +1,17 @@
---
title: "Organizing & Filtering Memories"
title: "Organizing & filtering memories"
sidebarTitle: "Metadata filtering"
description: "Use container tags and metadata to organize and retrieve memories"
icon: "filter"
icon: "/icons/hugeicons/filter.svg"
---
Supermemory provides two ways to organize your memories:
<CardGroup cols={2}>
<Card title="Container Tags" icon="folder">
<Card title="Container tags" icon="/icons/hugeicons/folder-01.svg">
**Organize memories** into isolated spaces by user, project, or workspace
</Card>
<Card title="Metadata Filtering" icon="database">
<Card title="Metadata filtering" icon="/icons/hugeicons/database-01.svg">
**Query memories** by custom properties like category, status, or date
</Card>
</CardGroup>
@ -20,11 +20,11 @@ Both can be used independently or together for precise filtering.
---
## Container Tags
## Container tags
Container tags create isolated memory spaces. Use them to separate memories by user, project, or any logical boundary.
### Adding Memories with Tags
### Adding memories with tags
```typescript
await client.add({
@ -33,7 +33,7 @@ await client.add({
});
```
### Searching with Tags
### Searching with tags
```typescript
const results = await client.search({
@ -47,7 +47,7 @@ const results = await client.search({
Each search is scoped to a single container tag. Passing `containerTag: "user_123"` restricts results to memories stored in that container.
</Note>
### Recommended Patterns
### Recommended patterns
| Pattern | Example | Use Case |
|---------|---------|----------|
@ -56,7 +56,7 @@ Each search is scoped to a single container tag. Passing `containerTag: "user_12
| Hierarchical | `org_{orgId}_team_{teamId}` | Multi-level organization |
<AccordionGroup>
<Accordion title="More Container Tag Examples">
<Accordion title="More container tag examples">
```typescript
// Multi-tenant SaaS - isolate by organization and user
await client.add({
@ -98,7 +98,7 @@ Each search is scoped to a single container tag. Passing `containerTag: "user_12
Metadata lets you attach custom properties to memories and filter by them later.
### Adding Memories with Metadata
### Adding memories with metadata
```typescript
await client.add({
@ -112,7 +112,7 @@ await client.add({
});
```
### Searching with Metadata Filters
### Searching with metadata filters
Filters must be wrapped in `AND` or `OR` arrays:
@ -130,7 +130,7 @@ const results = await client.search({
});
```
### Filter Types
### Filter types
| Type | Example | Description |
|------|---------|-------------|
@ -139,7 +139,7 @@ const results = await client.search({
| Numeric | `{ filterType: "numeric", key: "priority", value: "5", numericOperator: ">=" }` | Number comparison |
| Array contains | `{ filterType: "array_contains", key: "tags", value: "important" }` | Check array membership |
### Combining Filters
### Combining filters
Use `AND` and `OR` for complex queries:
@ -161,7 +161,7 @@ const results = await client.search({
});
```
### Excluding Results
### Excluding results
Use `negate: true` to exclude matches:
@ -178,7 +178,7 @@ const results = await client.search({
```
<AccordionGroup>
<Accordion title="More Metadata Filter Examples">
<Accordion title="More metadata filter examples">
**String contains (substring search):**
```typescript
// Find documents with "machine learning" in the description
@ -270,7 +270,7 @@ const results = await client.search({
- `=` becomes `!=`
</Accordion>
<Accordion title="Real-World Patterns">
<Accordion title="Real-world patterns">
**User's work documents from 2024:**
```typescript
const results = await client.search({
@ -326,9 +326,9 @@ const results = await client.search({
---
## Quick Reference
## Quick reference
### When Adding Memories
### When adding memories
```typescript
await client.add({
@ -338,7 +338,7 @@ await client.add({
});
```
### When Searching
### When searching
```typescript
const results = await client.search({
@ -351,13 +351,13 @@ const results = await client.search({
});
```
### Metadata Key Rules
### Metadata key rules
- Allowed characters: `a-z`, `A-Z`, `0-9`, `_`, `-`, `.`
- Max length: 64 characters
- No spaces or special characters
### Query Complexity Limits
### Query complexity limits
- Maximum 200 conditions per query
- Maximum 8 levels of nested `AND`/`OR` expressions
@ -366,7 +366,7 @@ const results = await client.search({
If you need more conditions than these limits allow, break your query into multiple requests or use broader search terms with post-processing.
</Note>
### Searching Within a Document
### Searching within a document
Use `docId` to scope a search to chunks within one large document — useful for books, podcasts, or other long-form content:
@ -379,13 +379,13 @@ const results = await client.search({
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="Search" icon="search" href="/recall/search">
<Card title="Search" icon="/icons/hugeicons/search-01.svg" href="/recall/search">
Apply filters in search queries
</Card>
<Card title="Add Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Add memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
Add content with container tags and metadata
</Card>
</CardGroup>

View file

@ -1,8 +1,8 @@
---
title: "Graph memory"
sidebarTitle: "Graph memory"
description: "How facts connect, update, and stay true — memory relationships, temporal truth, and automatic forgetting."
icon: "vector-square"
description: "How facts connect, update and stay true: relationships, temporal truth and automatic forgetting."
icon: "/icons/hugeicons/share-08.svg"
---
**How understanding is stored and stays true over time.**
@ -174,16 +174,16 @@ const results = await client.search({
| API: add / search / forget | [Ingestion](/ingestion/add-memories) · [Search](/recall/search) · [Forget & update](/recall/memory-operations) |
<CardGroup cols={2}>
<Card title="How it works" icon="cpu" href="/concepts/how-it-works">
<Card title="How it works" icon="/icons/hugeicons/cpu.svg" href="/concepts/how-it-works">
Ingest pipeline, statuses, and outputs.
</Card>
<Card title="Memory vs RAG" icon="scale" href="/concepts/memory-vs-rag">
<Card title="Memory vs RAG" icon="/icons/hugeicons/balance-scale.svg" href="/concepts/memory-vs-rag">
When to use memory vs document retrieval.
</Card>
<Card title="Profiles" icon="user" href="/concepts/user-profiles">
<Card title="Profiles" icon="/icons/hugeicons/user.svg" href="/concepts/user-profiles">
Static + dynamic context built from the graph.
</Card>
<Card title="Quickstart" icon="play" href="/quickstart">
<Card title="Quickstart" icon="/icons/hugeicons/play.svg" href="/quickstart">
See entity chains in a full conversation + document flow.
</Card>
</CardGroup>

View file

@ -1,17 +1,17 @@
---
title: "How Supermemory Works"
title: "How Supermemory works"
sidebarTitle: "How it works"
description: "From a file or chat turn to something you can search — the ingest pipeline, statuses, and outputs."
icon: "cpu"
description: "How a file or chat turn becomes something you can search: the ingest pipeline, statuses and outputs."
icon: "/icons/hugeicons/cpu.svg"
---
At it's core, supermemory is powered by a custom learning model and a graph database that we built internally.
At its core, supermemory is powered by a custom learning model and a graph database that we built internally.
<CardGroup cols={2}>
<Card title="Learning model">
Decides what and how to learn, what is important, when to forget, creating relations, etc.
</Card>
<Card title="Temporal Vector-graph engine">
<Card title="Temporal vector-graph engine">
Where the learnings are actually stored, optimized for search. Fact-based temporal graph that has Vector, FTS, and graph built in.
</Card>
</CardGroup>
@ -21,20 +21,17 @@ But, you don't have to think about the above. The interface for users is as simp
## Get started in under a minute
<CardGroup cols={2}>
<Card title="1. Get an API key" icon="key" href="https://console.supermemory.ai">
<Card title="1. Get an API key" icon="/icons/hugeicons/key-01.svg" href="https://console.supermemory.ai">
From the [developer console](https://console.supermemory.ai) — **API Keys → Create API Key**. `console.supermemory.ai` is where keys and usage live.
</Card>
<Card title="2. Use it" icon="terminal" href="/using-supermemory">
<Card title="2. Use it" icon="/icons/hugeicons/command-line.svg" href="/using-supermemory">
Install the SDK, drop in your key, add a memory, and search it — right below, or the full [ingest → retrieve loop](/using-supermemory).
</Card>
</CardGroup>
<CodeGroup>
```bash TypeScript
npm install supermemory
```
```typescript TypeScript
// npm install supermemory
import Supermemory from "supermemory";
const client = new Supermemory({ apiKey: "sm_..." }); // from console.supermemory.ai → API Keys
@ -48,6 +45,7 @@ const { results } = await client.search({
```
```python Python
# pip install supermemory
from supermemory import Supermemory
client = Supermemory(api_key="sm_...") # from console.supermemory.ai → API Keys
@ -113,7 +111,7 @@ Larger PDFs and long video take longer. Short chat turns usually finish in secon
## Dreaming (how memories enter the graph)
Document **status `done`** means chunks are indexed for search. **Memories** — the graph facts, updates, and derives — come from a second phase called **dreaming**.
A document with status `done` has its chunks indexed for search. Memories (the graph's facts, updates and derived facts) come from a second phase called **dreaming**.
This is when the content is passed through the memory model and merged, arranged and organized for the future.
@ -122,7 +120,7 @@ Pass `dreaming` on [add](/ingestion/add-memories):
| Mode | Default? | Behavior | When to use |
| --- | --- | --- | --- |
| **`dynamic`** | Yes | Related documents are grouped so memories form from **coherent units**, not one isolated write at a time. Graph quality is higher for real multi-turn / multi-doc flows. Memory extraction may continue **after** `status: "done"`. | Production agents, connectors, ongoing sessions |
| **`instant`** | No | This document is dreamed **on its own, right away**. Memories are available as soon as processing finishes for that doc. Bills **one extra [operation](/overview/billing)** per document. | Demos, quickstarts, “I need the graph now” |
| **`instant`** | No | This document is dreamed on its own, right away. Memories are available as soon as processing finishes for that document. Bills one extra [operation](/overview/billing) per document. | Demos, quickstarts, “I need the graph now” |
```typescript
// Production default — omit or set explicitly
@ -142,7 +140,7 @@ await client.add({
});
```
**Rule of thumb:** prefer **`dynamic`** for quality and cost in real apps, use **`instant`** when the next step is a memory search or profile that must reflect this document immediately (as in the [quickstart](/quickstart)). Keeping it dynamic helps it pair better with other memories and better connections, inferences to be made.
**Rule of thumb:** use `dynamic` in real apps for better quality and cost, because batching lets new memories connect to related ones. Use `instant` when the very next step is a memory search or profile that must already reflect this document, as in the [quickstart](/quickstart).
How those memories connect and stay true over time is [Graph memory](/concepts/graph-memory). API detail: [Processing modes](/ingestion/add-memories#processing-modes).
@ -156,27 +154,27 @@ After the pipeline runs, the same document leads to three things -> Chunks, Memo
| **Memories** | Extracted facts in a living graph — updates, links, time | [Graph memory](/concepts/graph-memory) |
| **Profile** | A sample of memories, static + dynamic summary for always-on context | [Profiles](/concepts/user-profiles), [Profile API](/recall/user-profiles) |
Supermemory does **not** only store the file. It derives **memories** (understanding) and keeps **chunks** (the source) so you can personalize *and* ground. That distinction is the core of [Memory vs RAG](/concepts/memory-vs-rag).
Supermemory does more than store the file. It derives memories (what it understood) and keeps chunks (the source), so you can both personalize and ground answers. That distinction is the core of [Memory vs RAG](/concepts/memory-vs-rag).
## Isolation and identity
- **`containerTag`** — hard isolation boundary (user, tenant, project). See [Container tags](/concepts/container-tags).
- **Metadata** — soft dimensions *inside* a tag for filtering. See [Metadata filtering](/concepts/filtering).
- **Metadata**: extra dimensions inside a tag that you can filter on. See [metadata filtering](/concepts/filtering).
- **Scoped API keys** — credentials that cannot cross a container. See [API keys](/authentication#scoped-api-keys).
## Next steps
<CardGroup cols={2}>
<Card title="Graph memory" icon="vector-square" href="/concepts/graph-memory">
<Card title="Graph memory" icon="/icons/hugeicons/share-08.svg" href="/concepts/graph-memory">
How facts connect, update, and stay true over time.
</Card>
<Card title="Multi-modal ingestion" icon="file-stack" href="/concepts/content-types">
<Card title="Multi-modal ingestion" icon="/icons/hugeicons/files-01.svg" href="/concepts/content-types">
Formats, extractors, and what you can send.
</Card>
<Card title="Add context" icon="plus" href="/ingestion/add-memories">
<Card title="Add context" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
API: add, customId, files, dreaming, status.
</Card>
<Card title="Search API" icon="search" href="/recall/search">
<Card title="Search API" icon="/icons/hugeicons/search-01.svg" href="/recall/search">
Query documents and memories after the pipeline finishes.
</Card>
</CardGroup>

View file

@ -1,23 +1,23 @@
---
title: "Memory vs RAG: Understanding the Difference"
title: "Memory vs RAG: Understanding the difference"
description: "Learn why agent memory and RAG are fundamentally different, and when to use each approach"
sidebarTitle: "Memory vs RAG"
icon: "scale"
icon: "/icons/hugeicons/balance-scale.svg"
---
Most developers confuse RAG (Retrieval-Augmented Generation) with agent memory. They're not the same thing, and using RAG for memory is why your agents keep forgetting important context. Let's understand the fundamental difference.
## The Core Problem
## The core problem
When building AI agents, developers often treat memory as just another retrieval problem. They store conversations in a vector database, embed queries, and hope semantic search will surface the right context.
**This approach fails because memory isn't about finding similar text—it's about understanding relationships, temporal context, and user state over time.**
## Documents vs Memories in Supermemory
## Documents vs memories in Supermemory
Supermemory makes a clear distinction between these two concepts:
### Documents: Raw Knowledge
### Documents: Raw knowledge
Documents are the raw content you send to Supermemory—PDFs, web pages, text files. They represent static knowledge that doesn't change based on who's accessing it.
**Characteristics:**
@ -32,7 +32,7 @@ Documents are the raw content you send to Supermemory—PDFs, web pages, text fi
- Research papers
- General reference material
### Memories: Contextual Understanding
### Memories: Contextual understanding
Memories are the insights, preferences, and relationships extracted from documents and conversations. They're tied to specific users or entities and evolve over time.
**Characteristics:**
@ -47,12 +47,12 @@ Memories are the insights, preferences, and relationships extracted from documen
- Personal facts and relationships
- Behavioral patterns
## Why RAG Fails as Memory
## Why RAG fails as memory
Let's look at a real scenario that illustrates the problem:
<Tabs>
<Tab title="The Scenario">
<Tab title="The scenario">
```
Day 1: "I love Adidas sneakers"
Day 30: "My Adidas broke after a month, terrible quality"
@ -61,7 +61,7 @@ Let's look at a real scenario that illustrates the problem:
```
</Tab>
<Tab title="RAG Approach (Wrong)">
<Tab title="RAG approach (wrong)">
```python
# RAG sees these as isolated embeddings
query = "What sneakers should I buy?"
@ -76,7 +76,7 @@ Let's look at a real scenario that illustrates the problem:
**Problem**: RAG finds the most semantically similar text but misses the temporal progression and causal relationships.
</Tab>
<Tab title="Memory Approach (Right)">
<Tab title="Memory approach (right)">
```python
# Supermemory understands temporal context
query = "What sneakers should I buy?"
@ -93,16 +93,16 @@ Let's look at a real scenario that illustrates the problem:
</Tab>
</Tabs>
## The Technical Difference
## The technical difference
### RAG: Semantic Similarity
### RAG: Semantic similarity
```
Query → Embedding → Vector Search → Top-K Results → LLM
```
RAG excels at finding information that's semantically similar to your query. It's stateless—each query is independent.
### Memory: Contextual Graph
### Memory: Contextual graph
```
Query → Entity Recognition → Graph Traversal → Temporal Filtering → Context Assembly → LLM
```
@ -113,10 +113,10 @@ Memory systems build a knowledge graph that understands:
- **Temporal Context**: When facts were true
- **Invalidation**: When facts became outdated
## When to Use Each
## When to use each
<CardGroup cols={2}>
<Card title="Use RAG For" icon="search">
<Card title="Use RAG For" icon="/icons/hugeicons/search-01.svg">
- Static documentation
- Knowledge bases
- Research queries
@ -124,7 +124,7 @@ Memory systems build a knowledge graph that understands:
- Content that doesn't change per user
</Card>
<Card title="Use Memory For" icon="brain">
<Card title="Use memory for" icon="/icons/hugeicons/brain-01.svg">
- User preferences
- Conversation history
- Personal facts
@ -133,12 +133,12 @@ Memory systems build a knowledge graph that understands:
</Card>
</CardGroup>
## Real-World Examples
## Real-world examples
### E-commerce Assistant
### E-commerce assistant
<Tabs>
<Tab title="RAG Component">
<Tab title="RAG component">
Stores product catalogs, specifications, reviews
```python
@ -149,7 +149,7 @@ Memory systems build a knowledge graph that understands:
```
</Tab>
<Tab title="Memory Component">
<Tab title="Memory component">
Tracks user preferences, purchase history, interactions
```python
@ -161,10 +161,10 @@ Memory systems build a knowledge graph that understands:
</Tab>
</Tabs>
### Customer Support Bot
### Customer support bot
<Tabs>
<Tab title="RAG Component">
<Tab title="RAG component">
FAQ documents, troubleshooting guides, policies
```python
@ -175,7 +175,7 @@ Memory systems build a knowledge graph that understands:
```
</Tab>
<Tab title="Memory Component">
<Tab title="Memory component">
Previous issues, user account details, conversation context
```python
@ -187,11 +187,11 @@ Memory systems build a knowledge graph that understands:
</Tab>
</Tabs>
## How Supermemory Handles Both
## How Supermemory handles both
Supermemory provides a unified platform that correctly handles both patterns:
### 1. Document Storage (RAG)
### 1. Document storage (RAG)
```python
# Add a document for RAG-style retrieval
client.add(
@ -200,7 +200,7 @@ client.add(
)
```
### 2. Memory Creation
### 2. Memory creation
```python
# Add a user-specific memory
client.add(
@ -213,7 +213,7 @@ client.add(
)
```
### 3. Hybrid Retrieval
### 3. Hybrid retrieval
```python
# Search combines both approaches
results = client.search.memories(
@ -227,7 +227,7 @@ results = client.search.memories(
# - Latest Android phone specs (documents)
```
## The Bottom Line
## The bottom line
<Note>
**Key Insight**: RAG answers "What do I know?" while Memory answers "What do I remember about you?"
@ -241,19 +241,19 @@ Supermemory provides both capabilities in a unified platform, ensuring your agen
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="Graph Memory" icon="network" href="/concepts/graph-memory">
<Card title="Graph memory" icon="/icons/hugeicons/hierarchy-square-01.svg" href="/concepts/graph-memory">
How memory relationships work
</Card>
<Card title="Super RAG" icon="bolt" href="/concepts/super-rag">
<Card title="Super RAG" icon="/icons/hugeicons/flash.svg" href="/concepts/super-rag">
Our managed RAG solution
</Card>
<Card title="Add Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Add memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
Start ingesting content
</Card>
<Card title="Search" icon="search" href="/recall/search">
<Card title="Search" icon="/icons/hugeicons/search-01.svg" href="/recall/search">
Query your memories and documents
</Card>
</CardGroup>

View file

@ -1,8 +1,8 @@
---
title: "Multi-tenancy Examples"
title: "Multi-tenancy examples"
sidebarTitle: "Examples"
description: "Common container tag and metadata patterns for personal agents, company agents, email assistants, and support platforms"
icon: "list-checks"
icon: "/icons/hugeicons/check-list.svg"
---
A few common shapes multi-tenancy takes in practice, combining [container tags](/concepts/container-tags) for isolation with [metadata filters](/concepts/filtering) for organization within a boundary.
@ -122,13 +122,13 @@ const results = await client.search({
## Next steps
<CardGroup cols={2}>
<Card title="Multi-tenancy Overview" icon="users" href="/concepts/multi-tenancy">
<Card title="Multi-tenancy overview" icon="/icons/hugeicons/user-multiple.svg" href="/concepts/multi-tenancy">
Why container tags and metadata are separate mechanisms.
</Card>
<Card title="Container Tags" icon="folder" href="/concepts/container-tags">
<Card title="Container tags" icon="/icons/hugeicons/folder-01.svg" href="/concepts/container-tags">
How isolation works, naming rules, and access control.
</Card>
<Card title="Organizing & Filtering" icon="filter" href="/concepts/filtering">
<Card title="Organizing & filtering" icon="/icons/hugeicons/filter.svg" href="/concepts/filtering">
Metadata filter types, combining `AND`/`OR`, and query limits.
</Card>
</CardGroup>

View file

@ -1,8 +1,8 @@
---
title: "Multi-tenancy Overview"
title: "Multi-tenancy overview"
sidebarTitle: "Overview"
description: "How Supermemory isolates and organizes memories across users, tenants, and projects"
icon: "users"
icon: "/icons/hugeicons/user-multiple.svg"
---
Most apps built on Supermemory serve more than one user, customer, or tenant out of a single Supermemory organization. Multi-tenancy is how you keep those memories apart — so User A's data is never visible to User B, and so you can still slice and query within a user's own data by things like category, status, or date.
@ -10,10 +10,10 @@ Most apps built on Supermemory serve more than one user, customer, or tenant out
Supermemory gives you two complementary tools for this:
<CardGroup cols={2}>
<Card title="Container Tags" icon="folder" href="/concepts/container-tags">
<Card title="Container tags" icon="/icons/hugeicons/folder-01.svg" href="/concepts/container-tags">
**Isolation.** A container tag is a hard boundary — its own namespace. Memories in one tag are never returned by a search scoped to another tag.
</Card>
<Card title="Metadata Filtering" icon="database" href="/concepts/filtering">
<Card title="Metadata filtering" icon="/icons/hugeicons/database-01.svg" href="/concepts/filtering">
**Organization.** Metadata is a set of custom key/value properties on a memory that you filter by — category, priority, date, participants, anything you define.
</Card>
</CardGroup>
@ -99,16 +99,16 @@ Container tags aren't just organizational — they're enforced as an authorizati
## Next steps
<CardGroup cols={2}>
<Card title="Examples" icon="list-checks" href="/concepts/multi-tenancy-examples">
<Card title="Examples" icon="/icons/hugeicons/check-list.svg" href="/concepts/multi-tenancy-examples">
Personal agents, company agents, email assistants, and support platforms.
</Card>
<Card title="Container Tags" icon="folder" href="/concepts/container-tags">
<Card title="Container tags" icon="/icons/hugeicons/folder-01.svg" href="/concepts/container-tags">
How isolation works, naming rules, and access control.
</Card>
<Card title="Organizing & Filtering" icon="filter" href="/concepts/filtering">
<Card title="Organizing & filtering" icon="/icons/hugeicons/filter.svg" href="/concepts/filtering">
Metadata filter types, combining `AND`/`OR`, and query limits.
</Card>
<Card title="Scoped API keys" icon="key" href="/authentication#scoped-api-keys">
<Card title="Scoped API keys" icon="/icons/hugeicons/key-01.svg" href="/authentication#scoped-api-keys">
Mint keys that can only touch one container tag.
</Card>
</CardGroup>

View file

@ -2,7 +2,7 @@
title: "Rules of supermemory"
description: "Best practices and things to consider when using supermemory in your system"
sidebarTitle: "Rules of supermemory"
icon: "gavel"
icon: "/icons/hugeicons/justice-scale-01.svg"
---
Supermemory provides powerful primitives and the full context stack for building AI agents. This page collects rules of thumb from building and running supermemory in production. They aren't hard constraints, just shortcuts that save you time, cost, and confusing search results.
@ -30,7 +30,7 @@ Agents benefit most from having a _general_ idea of the topic alongside tools to
Two things about this table that trip people up.
**"Remember" and "look up" are both supermemory, but different reads.** You [ingest documents](/ingestion/add-memories); the pipeline derives memories from them and maintains a profile per [container tag](/concepts/how-it-works). `client.search({ searchMode: "memories" })` recalls the derived facts. `client.search({ searchMode: "documents" })` recalls the source material itself. A support agent usually needs both: memories for "this customer runs self-hosted and already tried reinstalling", documents for the actual troubleshooting guide.
**"Remember" and "look up" are both supermemory, but different reads.** You [ingest documents](/ingestion/add-memories); the pipeline derives memories from them and maintains a profile per container tag. `client.search({ searchMode: "memories" })` recalls the derived facts. `client.search({ searchMode: "documents" })` recalls the source material itself. A support agent usually needs both: memories for "this customer runs self-hosted and already tried reinstalling", documents for the actual troubleshooting guide.
**Supermemory is not your system of record.** There's no SQL over memories, no joins, no aggregates, no querying by primary key. Keep transactional data in your database, and ingest the narrative *around* it ("the customer disputed invoice #4821 and churned over it") so your AI understands what the rows mean.

View file

@ -1,13 +1,13 @@
---
title: "SuperRAG (Managed RAG as a service)"
title: "SuperRAG (managed RAG as a service)"
sidebarTitle: "SuperRAG"
description: "Supermemory provides a managed RAG solution - extraction, indexing, storing, and retrieval."
icon: "bolt"
icon: "/icons/hugeicons/flash.svg"
---
Supermemory doesn't just store your content—it transforms it into optimized, searchable knowledge. Every upload goes through an intelligent pipeline that extracts, chunks, and indexes content in the ideal way for its type.
## Automatic Content Intelligence
## Automatic content intelligence
When you add content, Supermemory:
@ -86,7 +86,7 @@ When you're searching over a mix of both, `searchMode: "hybrid"` (below) is what
---
## Smart Chunking by Content Type
## Smart chunking by content type
Different content types need different chunking strategies. Supermemory applies the optimal approach automatically:
@ -121,7 +121,7 @@ Code is chunked using [code-chunk](https://github.com/supermemoryai/code-chunk),
This means searching for "authentication middleware" finds the actual function, not a random slice of code.
### Web Pages
### Web pages
URLs are fetched, cleaned of navigation/ads, and chunked by article structure — headings, paragraphs, lists.
@ -133,18 +133,18 @@ See [Content Types](/concepts/content-types) for the full list of supported form
---
## Hybrid Memory + RAG
## Hybrid memory + RAG
Supermemory combines the best of both approaches in every search:
<CardGroup cols={2}>
<Card title="Traditional RAG" icon="magnifying-glass">
<Card title="Traditional RAG" icon="/icons/hugeicons/search-01.svg">
- Finds similar document chunks
- Great for knowledge retrieval
- Stateless — same results for everyone
</Card>
<Card title="Memory System" icon="brain">
<Card title="Memory system" icon="/icons/hugeicons/brain-01.svg">
- Extracts and tracks user facts
- Understands temporal context
- Personalizes results per user
@ -168,7 +168,7 @@ const results = await client.search({
---
## Search Optimization
## Search optimization
Two flags give you fine-grained control over result quality:
@ -185,7 +185,7 @@ const results = await client.search({
**When to use:** Complex queries, technical documentation, when precision matters more than speed.
### Query Rewriting
### Query rewriting
Expands your query to capture more relevant results:
@ -200,7 +200,7 @@ const results = await client.search({
---
## Why It's "Super"
## Why it's "Super"
| Traditional RAG | SUPER RAG |
|-----------------|-----------|
@ -214,25 +214,25 @@ You focus on building your product. Supermemory handles the RAG complexity.
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="Content Types" icon="file-stack" href="/concepts/content-types">
<Card title="Content types" icon="/icons/hugeicons/files-01.svg" href="/concepts/content-types">
All supported formats and how they're processed
</Card>
<Card title="How It Works" icon="cpu" href="/concepts/how-it-works">
<Card title="How it works" icon="/icons/hugeicons/cpu.svg" href="/concepts/how-it-works">
The full processing pipeline
</Card>
<Card title="Memory vs RAG" icon="scale" href="/concepts/memory-vs-rag">
<Card title="Memory vs RAG" icon="/icons/hugeicons/balance-scale.svg" href="/concepts/memory-vs-rag">
When to use each approach
</Card>
<Card title="Search" icon="search" href="/recall/search">
<Card title="Search" icon="/icons/hugeicons/search-01.svg" href="/recall/search">
Search parameters and optimization
</Card>
<Card title="Billing" icon="receipt" href="/overview/billing#memory-vs-superrag-tokens">
<Card title="Billing" icon="/icons/hugeicons/invoice-01.svg" href="/overview/billing#memory-vs-superrag-tokens">
Exact meter rates for memory vs SuperRAG tokens
</Card>
<Card title="Adding Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Adding memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
`taskType` and other ingestion parameters
</Card>
</CardGroup>

View file

@ -1,8 +1,8 @@
---
title: "User Profiles"
title: "User profiles"
sidebarTitle: "Profiles"
description: "Automatically maintained context about your users"
icon: "circle-user"
icon: "/icons/hugeicons/user-circle.svg"
---
User profiles are **automatically maintained collections of facts about your users** that Supermemory builds from all their interactions. Think of it as a persistent "about me" document that's always up-to-date.
@ -12,10 +12,10 @@ Each `containerTag` gets it's own profile.
> Note: It's called "user" profile, but in reality it can be anything - an agent, organization, etc.
<CardGroup cols={2}>
<Card title="Instant Context" icon="bolt">
<Card title="Instant context" icon="/icons/hugeicons/flash.svg">
No search needed — comprehensive user info always ready
</Card>
<Card title="Auto-Updated" icon="rotate">
<Card title="Auto-Updated" icon="/icons/hugeicons/rotate-clockwise.svg">
Profiles update as users interact with your system
</Card>
</CardGroup>
@ -70,11 +70,11 @@ This is the general pattern: names, pronouns, timezone, tone/format preferences,
---
## Static vs Dynamic
## Static vs dynamic
Profiles separate two types of information:
### Static Profile
### Static profile
Long-term, stable facts:
@ -82,7 +82,7 @@ Long-term, stable facts:
- "Sarah specializes in distributed systems"
- "Sarah prefers technical docs over video tutorials"
### Dynamic Profile
### Dynamic profile
Recent context and temporary states:
@ -111,13 +111,13 @@ console.log(profile.buckets.goals);
Bucket descriptions steer the classifier, so a precise description ("explicit first-person preferences only, exclude inferred traits") produces cleaner buckets than a vague one. Buckets are separate from [`filterPrompt`](/concepts/customization), which controls what gets ingested at all — buckets only organize facts that already made it into the profile.
<Card title="Profile Buckets reference" icon="tags" href="/user-profiles/buckets">
<Card title="Profile buckets reference" icon="/icons/hugeicons/tag-01.svg" href="/user-profiles/buckets">
Request bucketed profiles, create buckets at the org or space level, get AI-generated suggestions, and see validation limits.
</Card>
---
## How It Works
## How it works
Profiles are built automatically through ingestion:
@ -132,7 +132,7 @@ You don't manually manage profiles — they build themselves as users interact.
---
## Profiles + Search
## Profiles + search
Profiles don't replace search — they complement it:
@ -153,7 +153,7 @@ User asks: **"Can you help me debug this?"**
---
## Filtering Profiles
## Filtering profiles
Not many people realize this, but profiles support the same [metadata filtering](/concepts/filtering) as memory and document search. A profile is synthesized from the underlying memories in a container tag, so any `AND`/`OR` metadata filter you'd pass to `search` also narrows which memories are eligible to contribute to `static`, `dynamic`, and `buckets`.
@ -183,9 +183,9 @@ Filters apply on top of the search query too — combine `q` and `filters` to sc
---
## Use Cases
## Use cases
### Personalized AI Assistants
### Personalized AI assistants
Profiles provide: expertise level, communication preferences, tools used, current projects.
@ -198,7 +198,7 @@ Current focus: ${profile.dynamic.join('\n')}
Adjust responses to their expertise and preferences.`;
```
### Customer Support
### Customer support
Profiles provide: product usage, previous issues, tech proficiency.
@ -206,32 +206,32 @@ Profiles provide: product usage, previous issues, tech proficiency.
- Agents immediately understand context
- AI support references past interactions naturally
### Educational Platforms
### Educational platforms
Profiles provide: learning style, completed courses, strengths/weaknesses.
### Development Tools
### Development tools
Profiles provide: preferred languages, coding style, current project context.
---
## Next Steps
## Next steps
<CardGroup cols={2}>
<Card title="User Profiles API" icon="code" href="/recall/user-profiles">
<Card title="User profiles API" icon="/icons/hugeicons/source-code.svg" href="/recall/user-profiles">
Fetch and use profiles via the API
</Card>
<Card title="Profile Buckets" icon="tags" href="/user-profiles/buckets">
<Card title="Profile buckets" icon="/icons/hugeicons/tag-01.svg" href="/user-profiles/buckets">
Create and configure topical buckets
</Card>
<Card title="Graph Memory" icon="network" href="/concepts/graph-memory">
<Card title="Graph memory" icon="/icons/hugeicons/hierarchy-square-01.svg" href="/concepts/graph-memory">
How the underlying knowledge graph works
</Card>
<Card title="AI SDK Integration" icon="triangle" href="/integrations/ai-sdk">
<Card title="AI SDK integration" icon="/icons/hugeicons/triangle.svg" href="/integrations/ai-sdk">
Automatic profile injection with AI SDK
</Card>
<Card title="Add Memories" icon="plus" href="/ingestion/add-memories">
<Card title="Add memories" icon="/icons/hugeicons/plus-sign.svg" href="/ingestion/add-memories">
Build profiles by adding content
</Card>
</CardGroup>

View file

@ -1,5 +1,5 @@
---
title: "GitHub Connector"
title: "GitHub connector"
description: "Connect GitHub repositories to sync documentation files into your Supermemory knowledge base"
icon: "/images/github-icon.svg"
---
@ -10,9 +10,9 @@ Connect GitHub repositories to sync documentation files into your Supermemory kn
The GitHub connector requires a **Scale Plan** or **Enterprise Plan**.
</Warning>
## Quick Setup
## Quick setup
### 1. Create GitHub Connection
### 1. Create GitHub connection
<Tabs>
<Tab title="TypeScript">
@ -86,11 +86,11 @@ The GitHub connector requires a **Scale Plan** or **Enterprise Plan**.
- `admin:repo_hook` - Manage webhooks for incremental sync
</Note>
### 2. Handle OAuth Callback
### 2. Handle OAuth callback
After the user grants permissions, GitHub redirects to your callback URL. The connection is automatically established, and the user can now select which repositories to sync.
### 3. List and Configure Repositories
### 3. List and configure repositories
Unlike other connectors, GitHub requires repository selection before syncing begins. This gives your users control over which repositories to index.
@ -202,7 +202,7 @@ Supermemory provides the API endpoints to list and configure repositories. As a
This gives you complete control over the user experience and allows you to integrate repository selection seamlessly into your application's workflow.
</Warning>
## Supported Document Types
## Supported document types
The GitHub connector syncs documentation and text files with the following extensions:
@ -218,7 +218,7 @@ Files are indexed as `github_markdown` document type in Supermemory.
Only text-based documentation files are synced. Binary files, images, and code files (`.js`, `.py`, `.go`, etc.) are excluded by default to focus on searchable documentation content.
</Note>
## Incremental Sync with Webhooks
## Incremental sync with webhooks
The GitHub connector automatically sets up webhooks for real-time incremental syncing. When files are pushed or deleted in configured repositories, Supermemory is notified immediately.
@ -226,14 +226,14 @@ The GitHub connector automatically sets up webhooks for real-time incremental sy
**Batch Processing:** Webhook events are processed in batches with a 10-minute delay to optimize performance and prevent excessive syncing during rapid commits. This means changes pushed to your repository will be reflected in Supermemory within approximately 10 minutes.
</Note>
### How It Works
### How it works
1. **Webhook Setup**: When you configure repositories, a webhook is automatically installed in each repository
2. **Push Events**: When commits are pushed to the default branch, changed documentation files are synced
3. **Delete Events**: When documentation files are deleted, they're removed from your Supermemory knowledge base
4. **Incremental Updates**: Only changed files are processed, keeping sync fast and efficient
### Webhook Security
### Webhook security
Webhooks are secured using HMAC-SHA256 signature validation with constant-time comparison. Supermemory automatically validates that webhook events come from GitHub before processing them. Each repository gets a unique webhook secret for maximum security.
@ -269,9 +269,9 @@ Webhooks are secured using HMAC-SHA256 signature validation with constant-time c
</Tab>
</Tabs>
## Connection Management
## Connection management
### List All Connections
### List all connections
<Tabs>
<Tab title="TypeScript">
@ -325,7 +325,7 @@ Webhooks are secured using HMAC-SHA256 signature validation with constant-time c
</Tab>
</Tabs>
### Update Repository Configuration
### Update repository configuration
You can update which repositories are synced at any time:
@ -404,7 +404,7 @@ When you update the repository configuration:
- Existing documents from removed repositories remain in Supermemory unless you delete them manually
</Note>
### Delete Connection
### Delete connection
<Tabs>
<Tab title="TypeScript">
@ -451,7 +451,7 @@ Deleting a GitHub connection will:
- **Permanently delete all synced documents** from your Supermemory knowledge base (unless you pass `deleteDocuments=false` as a query parameter to keep them)
</Warning>
### Manual Sync
### Manual sync
Trigger a manual synchronization for all configured repositories:
@ -502,9 +502,9 @@ Trigger a manual synchronization for all configured repositories:
</Tab>
</Tabs>
## Advanced Configuration
## Advanced configuration
### Custom OAuth Application
### Custom OAuth application
For white-label deployments or custom branding, configure your own GitHub OAuth app using the settings API:

View file

@ -1,7 +1,7 @@
---
title: "Gmail Connector"
title: "Gmail connector"
description: "Sync email threads from Gmail with real-time Pub/Sub webhooks and incremental sync"
icon: "mail"
icon: "/icons/hugeicons/mail-01.svg"
---
Connect Gmail to automatically sync email threads into your supermemory knowledge base. Supports real-time updates via Google Cloud Pub/Sub webhooks and incremental synchronization.
@ -10,9 +10,9 @@ Connect Gmail to automatically sync email threads into your supermemory knowledg
**Max Plan Required:** The Gmail connector is available on Max plan and above.
</Note>
## Quick Setup
## Quick setup
### 1. Create Gmail Connection
### 1. Create Gmail connection
<Tabs>
<Tab title="TypeScript">
@ -79,11 +79,11 @@ Connect Gmail to automatically sync email threads into your supermemory knowledg
</Tab>
</Tabs>
### 2. Handle OAuth Callback
### 2. Handle OAuth callback
After user grants permissions, Google redirects to your callback URL. The connection is automatically established and the initial sync begins.
### 3. Check Connection Status
### 3. Check connection status
<Tabs>
<Tab title="TypeScript">
@ -146,9 +146,9 @@ After user grants permissions, Google redirects to your callback URL. The connec
</Tab>
</Tabs>
## What Gets Synced
## What gets synced
### Email Threads
### Email threads
Gmail threads (conversations) are synced as individual documents with all messages included:
@ -158,7 +158,7 @@ Gmail threads (conversations) are synced as individual documents with all messag
- **HTML content** converted to clean markdown
- **Attachment metadata**: filename, mime type, size (attachments are referenced, not stored)
### Document Metadata
### Document metadata
Each synced thread includes searchable metadata:
@ -190,9 +190,9 @@ const results = await client.search({
});
```
## Connection Management
## Connection management
### List All Connections
### List all connections
<Tabs>
<Tab title="TypeScript">
@ -241,7 +241,7 @@ const results = await client.search({
</Tab>
</Tabs>
### Delete Connection
### Delete connection
<Tabs>
<Tab title="TypeScript">
@ -295,7 +295,7 @@ Deleting a connection will:
- Keep existing synced documents in supermemory (they won't be deleted)
</Note>
### Manual Sync
### Manual sync
Trigger a manual synchronization:
@ -344,7 +344,7 @@ Trigger a manual synchronization:
</Tab>
</Tabs>
## Sync Mechanism
## Sync mechanism
Gmail connector supports multiple sync methods:
@ -355,7 +355,7 @@ Gmail connector supports multiple sync methods:
| **Manual sync** | On-demand via API |
| **Incremental sync** | Uses Gmail `historyId` to fetch only changed threads |
### How Real-time Sync Works
### How real-time sync works
1. When a connection is created, supermemory registers a Gmail API "watch" subscription
2. Gmail sends notifications to a Google Cloud Pub/Sub topic when emails change
@ -366,7 +366,7 @@ Gmail connector supports multiple sync methods:
Real-time sync monitors the **INBOX** label. Emails in other labels are synced via scheduled/manual sync.
</Note>
## Permissions & Scopes
## Permissions & scopes
The Gmail connector requests the following OAuth scopes:
@ -393,7 +393,7 @@ The Gmail connector requests the following OAuth scopes:
## Troubleshooting
### OAuth Fails or Missing Refresh Token
### OAuth fails or missing refresh token
If OAuth fails or the connection stops syncing:
@ -416,7 +416,7 @@ const newConnection = await client.connections.create('gmail', {
window.location.href = newConnection.authLink;
```
### Emails Not Syncing in Real-time
### Emails not syncing in real-time
If real-time sync isn't working:
@ -425,7 +425,7 @@ If real-time sync isn't working:
- Check if the connection was created recently (watch registration happens on creation)
- Trigger a manual sync to verify the connection is working
### Permission Denied Errors
### Permission denied errors
If you see permission errors:

View file

@ -1,5 +1,5 @@
---
title: "Google Drive Connector"
title: "Google Drive connector"
description: "Connect Google Drive to sync documents into your Supermemory knowledge base"
icon: "/images/google-drive-icon.svg"
---
@ -18,9 +18,9 @@ Connect Google Drive to sync documents into your Supermemory knowledge base with
If you use scoped sync and the user has not finished the picker yet, **scheduled or manual import may skip that connection** until a selection is saved on the connection.
</Note>
## Quick Setup
## Quick setup
### 1. Create Google Drive Connection
### 1. Create Google Drive connection
<Tabs>
<Tab title="TypeScript">
@ -94,11 +94,11 @@ If you use scoped sync and the user has not finished the picker yet, **scheduled
For **whole Drive** sync, include `"syncScope": "full"` in `metadata` on the same `POST /v3/connections/google-drive` request instead of `"selected"`.
</Note>
### 2. Handle OAuth Callback
### 2. Handle OAuth callback
After the user grants permissions, Google redirects through Supermemory to finish the connection. With **scoped** sync (`syncScope` omitted or `"selected"`), the user is sent to Supermemory’s **hosted file and folder picker**; they must complete that step before imports run. With **`syncScope: "full"`**, Supermemory redirects to your `redirectUrl` (or returns connection details) **without** the picker. You can open the picker again later for an existing connection (Supermemory console, or `POST /v3/connections/{connectionId}/google-drive/hosted-picker` with an authenticated admin session).
After the user grants permissions, Google redirects through Supermemory to finish the connection. With scoped sync (`syncScope` omitted or `"selected"`), the user is sent to Supermemory's hosted file and folder picker and **must finish that step before imports run**. With `syncScope: "full"`, Supermemory skips the picker and redirects to your `redirectUrl` (or returns connection details). You can open the picker again later for an existing connection (Supermemory console, or `POST /v3/connections/{connectionId}/google-drive/hosted-picker` with an authenticated admin session).
### 3. Check Connection Status
### 3. Check connection status
<Tabs>
<Tab title="TypeScript">
@ -147,7 +147,7 @@ After the user grants permissions, Google redirects through Supermemory to finis
</Tab>
</Tabs>
## Supported Document Types
## Supported document types
Based on the API type definitions, Google Drive documents are identified with these types:
- `google_doc` - Google Docs
@ -158,9 +158,9 @@ Based on the API type definitions, Google Drive documents are identified with th
Drive documents are converted to markdown before ingestion. This conversion is lossy — some formatting may not be preserved.
</Note>
## Connection Management
## Connection management
### List All Connections
### List all connections
<Tabs>
<Tab title="TypeScript">
@ -220,7 +220,7 @@ Drive documents are converted to markdown before ingestion. This conversion is l
</Tab>
</Tabs>
### Delete Connection
### Delete connection
<Tabs>
<Tab title="TypeScript">
@ -278,7 +278,7 @@ Deleting a connection will:
- Keep existing synced documents in Supermemory (they won't be deleted)
</Note>
### Manual Sync
### Manual sync
Trigger a manual synchronization:
@ -331,9 +331,9 @@ Trigger a manual synchronization:
## Advanced Configuration
## Advanced configuration
### Custom OAuth Application
### Custom OAuth application
Configure your own Google OAuth app using the settings API:
@ -387,7 +387,7 @@ Configure your own Google OAuth app using the settings API:
</Tab>
</Tabs>
### Document Filtering
### Document filtering
Configure filtering using the settings API:

View file

@ -1,5 +1,5 @@
---
title: "Granola Connector"
title: "Granola connector"
description: "Sync AI meeting notes and transcripts from Granola into your Supermemory knowledge base"
icon: "/images/granola.svg"
---
@ -10,9 +10,9 @@ Connect Granola to sync AI meeting notes and transcripts into your Supermemory k
The Granola connector requires a **Pro Plan** or higher in Supermemory and a Granola plan that can create API keys. In Granola, create one from **Settings > Connectors > API keys**.
</Note>
## Quick Setup
## Quick setup
### From the Console
### From the console
1. Open the [Supermemory Console](https://console.supermemory.ai).
2. Go to **Connectors**.
@ -86,7 +86,7 @@ The console limits connector setup to 500 documents. Use the API setup below for
Supermemory validates the Granola API key before creating the connection. The initial sync starts automatically after the connection is created.
## Configuration Options
## Configuration options
For Granola, provider-specific fields are passed inside the top-level `metadata` object. General connection options stay top-level.
@ -100,7 +100,7 @@ For Granola, provider-specific fields are passed inside the top-level `metadata`
In the Python SDK, use `container_tags` and `document_limit` for top-level options, but keep the Granola metadata key in camelCase: `apiKey`.
</Note>
## What Gets Synced
## What gets synced
Granola notes are synced as markdown documents. Each document can include:
@ -109,7 +109,7 @@ Granola notes are synced as markdown documents. Each document can include:
- AI-generated summary when present
- Full transcript when present
### Document Metadata
### Document metadata
Each synced note includes searchable metadata:
@ -139,9 +139,9 @@ const results = await client.search({
});
```
## Connection Management
## Connection management
### Delete Connection
### Delete connection
<Tabs>
<Tab title="TypeScript">
@ -166,7 +166,7 @@ const results = await client.search({
By default, deleting a connection removes all synced documents from Supermemory. To keep documents, pass `deleteDocuments=false` as a query parameter: `DELETE /v3/connections/:id?deleteDocuments=false`
</Warning>
### Manual Sync
### Manual sync
<Tabs>
<Tab title="TypeScript">
@ -194,7 +194,7 @@ By default, deleting a connection removes all synced documents from Supermemory.
</Tab>
</Tabs>
## Sync Behavior
## Sync behavior
| Feature | Behavior |
|---------|----------|

View file

@ -1,6 +1,6 @@
---
title: 'Managing Connection Resources'
sidebarTitle: 'Managing Resources'
title: 'Managing connection resources'
sidebarTitle: 'Managing resources'
description: 'Get and configure resources for connections that support resource management'
icon: 'folder-sync'
---
@ -11,7 +11,7 @@ icon: 'folder-sync'
Some connectors require you to select which resources (e.g., repositories) to sync before syncing begins. Use these generic endpoints to list and configure resources for connections that support resource management.
## Get Resources
## Get resources
`GET /v3/connections/:connectionId/resources`
@ -66,7 +66,7 @@ curl -X GET \
```
</CodeGroup>
### Query Parameters
### Query parameters
- `page`: Optional. Page number for pagination. Default: `1`
- `per_page`: Optional. Number of resources per page. Default: `30`
@ -101,7 +101,7 @@ curl -X GET \
**Provider Support:** Not all providers support resource fetching. This endpoint is only available for providers that implement the `fetchResources()` method (e.g., GitHub). For providers that don't support this, you'll receive a `501 Not Implemented` response.
</Note>
## Configure Connection
## Configure connection
`POST /v3/connections/:connectionId/configure`
@ -200,7 +200,7 @@ curl -X POST \
```
</CodeGroup>
### Request Body
### Request body
```json
{
@ -244,7 +244,7 @@ The structure of each resource object depends on the provider. For GitHub, resou
**Provider Support:** Not all providers support resource configuration. This endpoint is only available for providers that implement the `configureConnection()` method (e.g., GitHub). For providers that don't support this, you'll receive a `501 Not Implemented` response.
</Warning>
## Example: GitHub Repository Selection
## Example: GitHub repository selection
Here's a complete example for GitHub:

View file

@ -1,13 +1,13 @@
---
title: "Notion Connector"
title: "Notion connector"
description: "Sync Notion pages, databases, and blocks with real-time webhooks and workspace integration"
icon: "/images/notion-icon.svg"
---
Connect Notion workspaces to automatically sync pages, databases, and content blocks into your Supermemory knowledge base. Supports real-time updates, rich formatting, and database properties.
## Quick Setup
## Quick setup
### 1. Create Notion Connection
### 1. Create Notion connection
<Tabs>
<Tab title="TypeScript">
@ -75,11 +75,11 @@ Connect Notion workspaces to automatically sync pages, databases, and content bl
</Tab>
</Tabs>
### 2. Handle OAuth Flow
### 2. Handle OAuth flow
After user grants workspace access, Notion redirects to your callback URL. The connection is automatically established.
### 3. Monitor Sync Progress
### 3. Monitor sync progress
<Tabs>
<Tab title="TypeScript">
@ -151,30 +151,30 @@ After user grants workspace access, Notion redirects to your callback URL. The c
## Document limit
Each connection has a **`documentLimit`** (optional when creating the connection; allowed range **1–10,000**). For Notion, each sync run asks the Notion Search API for **pages** shared with the integration, ordered by **last edited time, newest first**, and **stops after that many pages** (or when Search has no more results).
Each connection has an optional `documentLimit` between 1 and 10,000. For Notion, each sync asks the Notion Search API for pages shared with the integration, newest edits first, and **stops after that many pages** or when Search runs out of results.
- **Full sync:** If your workspace has more shareable pages than `documentLimit`, the rest are **not** included in that run. Pages that look “missing” are often older or less recently edited relative to that ordering. Increase `documentLimit` or trigger another sync after pages change if you need broader coverage.
- **Incremental sync:** Only pages edited **after** the previous sync are candidates; each one still counts toward the same `documentLimit`. If more pages changed than the limit since last sync, only the first batch in that newest-first order is returned for that run.
Nested and child pages still count as normal pages in Search if the integration can access them—they are not skipped *because* they are nested. The limit applies to **how many pages** are fetched per sync, not to depth.
## Supported Content Types
## Supported content types
### Notion Pages
### Notion pages
- **Rich text blocks** with formatting preserved
- **Nested pages** and hierarchical structure
- **Embedded content** (images, videos, files)
- **Code blocks** with syntax highlighting
- **Callouts and quotes** converted to markdown
### Notion Databases
### Notion databases
- **Database entries** synced as individual documents
- **Properties** included in metadata
- **Relations** between database entries
- **Formulas and rollups** calculated values
- **Multi-select and select** properties
### Block Types
### Block types
| Block Type | Processing | Markdown Output |
|------------|------------|-----------------|
@ -188,7 +188,7 @@ Nested and child pages still count as normal pages in Search if the integration
| **Image** | Referenced with metadata | `![alt text](url)` |
| **Embed** | Link with context | `[Embedded Content](url)` |
## Delete Connection
## Delete connection
Remove a Notion connection when no longer needed:
@ -242,9 +242,9 @@ Deleting a connection will:
- Keep existing synced documents in Supermemory (they won't be deleted)
</Note>
## Advanced Configuration
## Advanced configuration
### Custom Notion Integration
### Custom Notion integration
For production deployments, create your own Notion integration:
@ -299,7 +299,7 @@ For production deployments, create your own Notion integration:
</Tab>
</Tabs>
### Content Filtering
### Content filtering
Control which Notion content gets synced:
@ -369,7 +369,7 @@ Control which Notion content gets synced:
</Tab>
</Tabs>
## Workspace Permissions
## Workspace permissions
Notion connector respects workspace permissions:
@ -381,9 +381,9 @@ Notion connector respects workspace permissions:
| **No Access** | Removed from index |
## Database Integration
## Database integration
### Database Properties
### Database properties
Notion database properties are mapped to metadata:
@ -412,7 +412,7 @@ const projectWithStatus = await client.search({
});
```
### Optimization Strategies
### Optimization strategies
1. **Set `documentLimit` high enough** for your workspace size (see [Document limit](#document-limit))
2. **Use targeted container tags** for efficient organization

View file

@ -1,5 +1,5 @@
---
title: "OneDrive Connector"
title: "OneDrive connector"
description: "Sync Microsoft Office documents from OneDrive with scheduled synchronization and business account support"
icon: "/images/microsoft-icon.svg"
---
@ -7,9 +7,9 @@ icon: "/images/microsoft-icon.svg"
Connect OneDrive to automatically sync Word documents, Excel spreadsheets, and PowerPoint presentations into your Supermemory knowledge base. Supports both personal and business accounts with scheduled synchronization.
## Quick Setup
## Quick setup
### 1. Create OneDrive Connection
### 1. Create OneDrive connection
<CodeGroup>
@ -89,7 +89,7 @@ curl -X POST "https://api.supermemory.ai/v3/connections/onedrive" \
After user grants permissions, Microsoft redirects to your callback URL. The connection is automatically established and initial sync begins.
### 3. Monitor Sync Status
### 3. Monitor sync status
<CodeGroup>
```typescript Typescript
@ -138,32 +138,32 @@ After user grants permissions, Microsoft redirects to your callback URL. The con
```
</CodeGroup>
## Supported Document Types
## Supported document types
### Microsoft Word Documents
### Microsoft Word documents
- **Rich text formatting** converted to markdown
- **Headers and styles** preserved as markdown hierarchy
- **Images and charts** extracted and referenced
- **Tables** converted to markdown tables
### Excel Spreadsheets
### Excel spreadsheets
- **Worksheet data** converted to structured markdown
- **Multiple sheets** processed separately
- **Charts and graphs** extracted as images
- **Formulas** converted to calculated values
- **Cell formatting** simplified in markdown
### PowerPoint Presentations
### PowerPoint presentations
- **Slide content** converted to structured markdown
- **Speaker notes** included when present
- **Images and media** extracted and referenced
- **Embedded objects** processed when possible
## Sync Mechanism
## Sync mechanism
Webhooks lead to real-time syncing of changes in documents. You may also manually trigger a sync.
### Manual Sync Trigger
### Manual sync trigger
<CodeGroup>
```typescript Typescript
@ -198,7 +198,7 @@ Webhooks lead to real-time syncing of changes in documents. You may also manuall
```
</CodeGroup>
## Delete Connection
## Delete connection
Remove a OneDrive connection when no longer needed:
@ -250,9 +250,9 @@ Deleting a connection will:
- Keep existing synced documents in Supermemory (they won't be deleted)
</Note>
## Advanced Configuration
## Advanced configuration
### Custom Microsoft App
### Custom Microsoft app
For production deployments, configure your own Microsoft application:
@ -301,7 +301,7 @@ For production deployments, configure your own Microsoft application:
```
</CodeGroup>
### Document Filtering
### Document filtering
Control which OneDrive documents get synced:
@ -366,7 +366,7 @@ Control which OneDrive documents get synced:
```
</CodeGroup>
### Optimization Tips
### Optimization tips
1. **Set realistic document limits** based on storage and usage
2. **Use targeted filtering** to sync only business-critical documents

View file

@ -1,13 +1,13 @@
---
title: "Connectors Overview"
title: "Connectors overview"
description: "Integrate Google Drive, Gmail, Notion, OneDrive, GitHub, Granola and Web Crawler to automatically sync documents into your knowledge base"
sidebarTitle: "Overview"
icon: "layers"
icon: "/icons/hugeicons/layers-01.svg"
---
Connect external platforms to automatically sync documents into supermemory. Supported connectors include Google Drive, Gmail, Notion, OneDrive, GitHub, Granola and Web Crawler with real-time synchronization and intelligent content processing.
## Supported Connectors
## Supported connectors
<CardGroup cols={2}>
<Card title="Google Drive" icon="/images/google-drive-icon.svg" href="/connectors/google-drive">
@ -16,7 +16,7 @@ Connect external platforms to automatically sync documents into supermemory. Sup
Real-time sync via webhooks. Supports shared drives, nested folders, and collaborative documents.
</Card>
<Card title="Gmail" icon="mail" href="/connectors/gmail">
<Card title="Gmail" icon="/icons/hugeicons/mail-01.svg" href="/connectors/gmail">
**Email Threads**
Real-time sync via Pub/Sub webhooks. Syncs threads with full conversation history and metadata.
@ -47,16 +47,16 @@ Connect external platforms to automatically sync documents into supermemory. Sup
Syncs AI meeting notes, summaries, attendees, and transcripts from your Granola workspace.
</Card>
<Card title="Web Crawler" icon="globe" href="/connectors/web-crawler">
<Card title="Web Crawler" icon="/icons/hugeicons/globe-02.svg" href="/connectors/web-crawler">
**Web Pages, Documentation**
Crawl websites automatically with robots.txt compliance. Scheduled recrawling keeps content up to date.
</Card>
</CardGroup>
## Quick Start
## Quick start
### 1. Create Connection
### 1. Create connection
<CodeGroup>
@ -123,11 +123,11 @@ curl -X POST "https://api.supermemory.ai/v3/connections/notion" \
</CodeGroup>
### 2. Handle OAuth Callback
### 2. Handle OAuth callback
After user completes OAuth, the connection is automatically established and sync begins.
### 3. Monitor Sync Status
### 3. Monitor sync status
<CodeGroup>
@ -203,16 +203,16 @@ curl -X POST "https://api.supermemory.ai/v3/documents/list" \
</CodeGroup>
## How Connectors Work
## How connectors work
### Authentication Flow
### Authentication flow
1. **Create Connection**: Call `/v3/connections/{provider}` to get an OAuth URL, or create a direct credential-based connection for Granola or Web Crawler
2. **User Authorization**: Redirect user to complete OAuth flow when the provider requires it
3. **Automatic Setup**: Connection established, sync begins immediately
4. **Continuous Sync**: Real-time updates via webhooks + scheduled sync every 4 hours (or scheduled recrawling for Web Crawler)
### Document Processing Pipeline
### Document processing pipeline
```mermaid
graph TD
@ -225,7 +225,7 @@ graph TD
E --> G[Document Search]
```
### Sync Mechanisms
### Sync mechanisms
| Provider | Real-time Sync | Scheduled Sync | Manual Sync |
|----------|---------------|----------------|-------------|
@ -238,9 +238,9 @@ graph TD
| **Web Crawler** | ❌ Not supported | ✅ Scheduled recrawling (7+ days) | ✅ On-demand |
## Connection Management
## Connection management
### List All Connections
### List all connections
<CodeGroup>
@ -292,7 +292,7 @@ curl -X POST "https://api.supermemory.ai/v3/connections/list" \
</CodeGroup>
### Delete Connections
### Delete connections
The `DELETE /v3/connections/:connectionId` endpoint accepts an optional `deleteDocuments` query parameter:
@ -369,7 +369,7 @@ curl -X DELETE "https://api.supermemory.ai/v3/connections/conn_abc123?deleteDocu
</CodeGroup>
## Custom OAuth Applications
## Custom OAuth applications
By default, Supermemory uses its own OAuth applications to connect to third-party providers. You can configure your own OAuth app credentials via `PATCH /v3/settings` for tighter control over data access — useful for enterprise customers.

View file

@ -1,7 +1,7 @@
---
title: "S3 Connector"
description: "Connect Amazon S3 or S3-compatible storage to sync files into your Supermemory knowledge base"
icon: "database"
icon: "/icons/hugeicons/database-01.svg"
---
Connect Amazon S3 buckets or S3-compatible storage services (MinIO, DigitalOcean Spaces, Cloudflare R2, Tigris) to sync files into your Supermemory knowledge base.
@ -10,7 +10,7 @@ Connect Amazon S3 buckets or S3-compatible storage services (MinIO, DigitalOcean
The S3 connector requires a **Scale Plan** or higher. You can also create S3 connections directly from the [Supermemory Console](https://console.supermemory.ai).
</Note>
## Quick Setup
## Quick setup
<Tabs>
<Tab title="TypeScript">
@ -69,7 +69,7 @@ The S3 connector requires a **Scale Plan** or higher. You can also create S3 con
</Tab>
</Tabs>
## Configuration Options
## Configuration options
For S3, provider-specific connection fields are passed inside the top-level `metadata` object. General connection options stay top-level.
@ -89,7 +89,7 @@ For S3, provider-specific connection fields are passed inside the top-level `met
In the Python SDK, use `container_tags` for the top-level option, but keep S3 metadata keys in camelCase: `accessKeyId`, `secretAccessKey`, and `containerTagRegex`.
</Note>
## S3-Compatible Services
## S3-compatible services
Use `metadata.endpoint` to connect to S3-compatible storage. These services don't use AWS-style regions, so set `metadata.region` to `auto` — the value is still required for request signing but the service ignores it.
@ -134,7 +134,7 @@ const connection = await client.connections.create('s3', {
For S3-compatible services, `metadata.endpoint` is the base S3 endpoint. Do not include the bucket name in the endpoint URL; pass the bucket separately as `metadata.bucket`.
</Note>
## Prefix Filtering
## Prefix filtering
Sync only files within a specific path:
@ -151,7 +151,7 @@ const connection = await client.connections.create('s3', {
});
```
## Dynamic Container Tags
## Dynamic container tags
Extract container tags from S3 key paths for multi-tenant setups:
@ -175,9 +175,9 @@ const connection = await client.connections.create('s3', {
The regex must contain a named capture group `(?<userId>...)` and be less than 200 characters.
</Warning>
## Connection Management
## Connection management
### Delete Connection
### Delete connection
<Tabs>
<Tab title="TypeScript">
@ -197,7 +197,7 @@ The regex must contain a named capture group `(?<userId>...)` and be less than 2
By default, deleting a connection removes all synced documents from Supermemory. To keep documents, pass `deleteDocuments=false` as a query parameter: `DELETE /v3/connections/:id?deleteDocuments=false`
</Warning>
### Manual Sync
### Manual sync
<Tabs>
<Tab title="TypeScript">
@ -217,7 +217,7 @@ By default, deleting a connection removes all synced documents from Supermemory.
</Tab>
</Tabs>
## Sync Behavior
## Sync behavior
| Feature | Behavior |
|---------|----------|
@ -226,7 +226,7 @@ By default, deleting a connection removes all synced documents from Supermemory.
| **Sync schedule** | Every 4 hours + manual triggers |
| **Document limit** | 10,000 files per connection (default) |
## IAM Permissions
## IAM permissions
Minimum required permissions:
@ -246,7 +246,7 @@ Minimum required permissions:
}
```
## Error Codes
## Error codes
| Code | Message | Solution |
|------|---------|----------|

View file

@ -1,13 +1,13 @@
---
title: "Connector Troubleshooting"
title: "Connector troubleshooting"
sidebarTitle: "Troubleshooting"
description: "Diagnose and resolve common issues with Google Drive, Gmail, Notion, and OneDrive connectors"
icon: "wrench"
icon: "/icons/hugeicons/wrench-01.svg"
---
Quick guide to resolve common connector issues with authentication, syncing, and permissions.
## Quick Health Check
## Quick health check
Check if your connectors are working properly:
@ -66,9 +66,9 @@ curl -X POST "https://api.supermemory.ai/v3/documents/list" \
</CodeGroup>
## Common Issues
## Common issues
### OAuth Callback Fails
### OAuth callback fails
**Problem:** "Invalid redirect URI" error after user grants permissions
@ -90,7 +90,7 @@ const connection = await client.connections.create('notion', {
- Copy the exact URL from your OAuth app settings
- Test the flow in development first
### Documents Not Syncing
### Documents not syncing
**Problem:** Documents stuck in "queued" or "extracting" status for over 30 minutes
@ -108,7 +108,7 @@ If documents consistently fail:
- Verify you have permission to access the documents
- Ensure the document type is supported
### Permission Denied Errors
### Permission denied errors
**Problem:** Some documents show "permission denied" or aren't syncing
@ -129,7 +129,7 @@ const newConnection = await client.connections.create('google-drive', {
window.location.href = newConnection.authLink;
```
### Sync Takes Too Long
### Sync takes too long
**Problem:** Hundreds of documents taking hours to sync
@ -143,7 +143,7 @@ const connection = await client.connections.create('onedrive', {
});
```
## Provider-Specific Issues
## Provider-specific issues
### Google Drive
@ -226,7 +226,7 @@ Gmail connector requires Scale Plan or Enterprise Plan. If you see access errors
- Contact support to upgrade your plan
## Best Practices
## Best practices
1. **Set reasonable document limits** - Start with 500-1000 documents
2. **Use descriptive container tags** - Makes debugging easier

View file

@ -1,7 +1,7 @@
---
title: "Web Crawler Connector"
title: "Web Crawler connector"
description: "Crawl and sync websites automatically with scheduled recrawling and robots.txt compliance"
icon: "globe"
icon: "/icons/hugeicons/globe-02.svg"
---
Connect websites to automatically crawl and sync web pages into your Supermemory knowledge base. The web crawler respects robots.txt rules, includes SSRF protection, and automatically recrawls sites on a schedule.
@ -10,9 +10,9 @@ Connect websites to automatically crawl and sync web pages into your Supermemory
The web crawler connector requires a **Scale Plan** or **Enterprise Plan**.
</Warning>
## Quick Setup
## Quick setup
### 1. Create Web Crawler Connection
### 1. Create Web Crawler connection
<Tabs>
<Tab title="TypeScript">
@ -85,11 +85,11 @@ The web crawler connector requires a **Scale Plan** or **Enterprise Plan**.
</Tab>
</Tabs>
### 2. Connection Established
### 2. Connection established
Unlike other connectors, the web crawler doesn't require OAuth authentication. The connection is established immediately upon creation, and crawling begins automatically.
### 3. Monitor Sync Progress
### 3. Monitor sync progress
<Tabs>
<Tab title="TypeScript">
@ -162,22 +162,22 @@ Unlike other connectors, the web crawler doesn't require OAuth authentication. T
</Tab>
</Tabs>
## Supported Content Types
## Supported content types
### Web Pages
### Web pages
- **HTML content** extracted and converted to markdown
- **Same-domain crawling** only (respects hostname boundaries)
- **Robots.txt compliance** - respects disallow rules
- **Content filtering** - only HTML pages (skips non-HTML content)
### URL Requirements
### URL requirements
The web crawler only processes valid public URLs:
- Must be a public URL (not localhost, private IPs, or internal domains)
- Must be accessible from the internet
- Must return HTML content (non-HTML files are skipped)
## Sync Mechanism
## Sync mechanism
The web crawler uses **scheduled recrawling** rather than real-time webhooks:
@ -189,9 +189,9 @@ The web crawler uses **scheduled recrawling** rather than real-time webhooks:
The recrawl schedule is automatically assigned when the connection is created. Sites are recrawled periodically to keep content up to date, but updates are not instantaneous.
</Note>
## Connection Management
## Connection management
### List All Connections
### List all connections
<Tabs>
<Tab title="TypeScript">
@ -248,7 +248,7 @@ The recrawl schedule is automatically assigned when the connection is created. S
</Tab>
</Tabs>
### Delete Connection
### Delete connection
Remove a web crawler connection when no longer needed:
@ -302,9 +302,9 @@ Deleting a connection will:
- Remove the connection configuration
</Note>
## Advanced Configuration
## Advanced configuration
### Content Filtering
### Content filtering
Control which web pages get synced using the settings API:
@ -365,9 +365,9 @@ Control which web pages get synced using the settings API:
</Tab>
</Tabs>
## Security & Compliance
## Security & compliance
### SSRF Protection
### SSRF protection
Built-in protection against Server-Side Request Forgery (SSRF) attacks:
- Blocks private IP addresses (10.x.x.x, 192.168.x.x, 172.16-31.x.x)
@ -375,7 +375,7 @@ Built-in protection against Server-Side Request Forgery (SSRF) attacks:
- Blocks cloud metadata endpoints
- Only allows public, internet-accessible URLs
### URL Validation
### URL validation
All URLs are validated before crawling:
- Must be valid HTTP/HTTPS URLs

View file

@ -8,23 +8,42 @@
},
"openapi": "https://api.supermemory.ai/v4/openapi"
},
"background": {
"color": {
"dark": "#0A0A0A",
"light": "#FFFFFF"
}
},
"colors": {
"dark": "#1E3A8A",
"light": "#3B82F6",
"primary": "#1E3A8A"
"dark": "#091120",
"light": "#F5F5F5",
"primary": "#091120"
},
"contextual": {
"options": ["copy", "view", "assistant", "chatgpt", "claude"]
"options": [
"copy",
"view",
"assistant",
"chatgpt",
"claude",
"mcp",
"add-mcp",
"cursor",
"vscode",
"download-spec"
]
},
"favicon": {
"light": "/favicon-light-mode.png",
"dark": "/favicon-dark-mode.png"
},
"favicon": "/favicon.png",
"fonts": {
"body": {
"family": "Space Grotesk",
"format": "woff2"
"family": "Geist"
},
"heading": {
"family": "Space Grotesk",
"format": "woff2"
"family": "Geist",
"weight": 500
}
},
"footer": {
@ -66,13 +85,14 @@
"pages": ["index"]
},
{
"icon": "code",
"icon": "/icons/hugeicons/source-code.svg",
"anchors": [
{
"anchor": "Developer Platform (API)",
"anchor": "Developer platform (API)",
"icon": "/icons/hugeicons/book-open-01.svg",
"pages": [
{
"group": "Getting Started",
"group": "Getting started",
"pages": [
"overview/what-is-supermemory",
"overview/comparison",
@ -88,12 +108,12 @@
"concepts/content-types",
{
"group": "Retrieval",
"icon": "search",
"icon": "/icons/hugeicons/search-01.svg",
"pages": ["concepts/super-rag", "concepts/memory-vs-rag"]
},
{
"group": "Multi-tenancy and filtering",
"icon": "users",
"icon": "/icons/hugeicons/user-multiple.svg",
"pages": [
"concepts/multi-tenancy",
"concepts/multi-tenancy-examples",
@ -102,8 +122,8 @@
]
},
{
"group": "User Profiles",
"icon": "id-card",
"group": "User profiles",
"icon": "/icons/hugeicons/id.svg",
"pages": ["concepts/user-profiles", "user-profiles/buckets"]
}
]
@ -116,7 +136,7 @@
"concepts/customization",
{
"group": "Ingestion",
"icon": "download",
"icon": "/icons/hugeicons/download-01.svg",
"pages": [
"ingestion/add-memories",
"ingestion/document-operations"
@ -124,7 +144,7 @@
},
{
"group": "Connectors",
"icon": "plug",
"icon": "/icons/hugeicons/plug-01.svg",
"pages": [
"connectors/overview",
"connectors/notion",
@ -141,7 +161,7 @@
},
{
"group": "Recall",
"icon": "upload",
"icon": "/icons/hugeicons/upload-01.svg",
"pages": [
"recall/search",
"recall/user-profiles",
@ -151,7 +171,7 @@
},
{
"group": "SMFS",
"icon": "database",
"icon": "/icons/hugeicons/database-01.svg",
"pages": [
"smfs/overview",
"smfs/install",
@ -160,7 +180,7 @@
"smfs/bash-tool-python",
{
"group": "Providers",
"icon": "cloud",
"icon": "/icons/hugeicons/cloud.svg",
"pages": [
"smfs/providers/daytona",
"smfs/providers/e2b",
@ -179,7 +199,7 @@
"pages": [
{
"group": "Supermemory local",
"icon": "server",
"icon": "/icons/hugeicons/server-stack-01.svg",
"pages": [
"self-hosting/overview",
"self-hosting/quickstart",
@ -196,12 +216,12 @@
"pages": [
{
"group": "General",
"icon": "book-open",
"icon": "/icons/hugeicons/book-open-01.svg",
"pages": ["ingestion/batch-ingest-historical-data"]
},
{
"group": "Benchmarking",
"icon": "flask-conical",
"icon": "/icons/hugeicons/test-tube-01.svg",
"pages": [
"memorybench/overview",
"memorybench/extend-benchmark",
@ -216,11 +236,11 @@
]
},
{
"group": "Migration Guides",
"group": "Migration guides",
"pages": [
{
"group": "From another provider",
"icon": "truck",
"icon": "/icons/hugeicons/delivery-truck-01.svg",
"pages": ["migration/from-mem0", "migration/from-zep"]
}
]
@ -228,8 +248,8 @@
]
},
{
"anchor": "API Integrations",
"icon": "plug",
"anchor": "API integrations",
"icon": "/icons/hugeicons/plug-01.svg",
"pages": [
"integrations/supermemory-sdk",
"integrations/ai-sdk",
@ -252,22 +272,22 @@
"integrations/viasocket",
"integrations/zapier",
{
"group": "Migration Guides",
"icon": "arrow-up-right",
"group": "Migration guides",
"icon": "/icons/hugeicons/arrow-up-right-01.svg",
"pages": ["migration/tools-v2-upgrade"]
}
]
},
{
"anchor": "API Reference",
"icon": "unplug",
"anchor": "API reference",
"icon": "/icons/hugeicons/plug-socket.svg",
"openapi": "https://api.supermemory.ai/v4/openapi",
"pages": [
"api-reference/overview",
"authentication",
{
"group": "Ingest",
"icon": "download",
"icon": "/icons/hugeicons/download-01.svg",
"pages": [
"api-reference/ingest",
"POST /v3/documents",
@ -279,7 +299,7 @@
},
{
"group": "Recall",
"icon": "search",
"icon": "/icons/hugeicons/search-01.svg",
"pages": [
"api-reference/search",
"POST /v4/search",
@ -291,7 +311,7 @@
},
{
"group": "Documents",
"icon": "file-text",
"icon": "/icons/hugeicons/file-02.svg",
"pages": [
"api-reference/documents",
"POST /v3/documents/list",
@ -305,7 +325,7 @@
},
{
"group": "Memories",
"icon": "database",
"icon": "/icons/hugeicons/database-01.svg",
"pages": [
"api-reference/memories",
"POST /v4/memories",
@ -317,7 +337,7 @@
},
{
"group": "Container tags",
"icon": "tags",
"icon": "/icons/hugeicons/tag-01.svg",
"pages": [
"api-reference/container-tags",
"GET /v3/container-tags/{containerTag}",
@ -329,7 +349,7 @@
},
{
"group": "Connections",
"icon": "plug",
"icon": "/icons/hugeicons/plug-01.svg",
"pages": [
"api-reference/connections",
"POST /v3/connections/{provider}",
@ -346,7 +366,7 @@
},
{
"group": "Settings",
"icon": "settings",
"icon": "/icons/hugeicons/settings-01.svg",
"pages": [
"api-reference/settings",
"GET /v3/settings",
@ -358,24 +378,24 @@
]
}
],
"tab": "Developer Platform"
"tab": "Developer platform"
},
{
"icon": "puzzle",
"icon": "/icons/hugeicons/puzzle.svg",
"anchors": [
{
"anchor": "Plugins and MCP",
"icon": "puzzle",
"icon": "/icons/hugeicons/puzzle.svg",
"pages": [
{
"group": "Supermemory MCP",
"icon": "terminal",
"icon": "/icons/hugeicons/command-line.svg",
"pages": [
"supermemory-mcp/mcp",
"supermemory-mcp/setup",
{
"group": "Setups",
"icon": "layers",
"icon": "/icons/hugeicons/layers-01.svg",
"pages": [
"supermemory-mcp/chatgpt-web",
"supermemory-mcp/claude-desktop"
@ -385,7 +405,7 @@
},
{
"group": "Plugins",
"icon": "puzzle",
"icon": "/icons/hugeicons/puzzle.svg",
"pages": [
"integrations/openclaw",
"integrations/hermes",
@ -1077,6 +1097,12 @@
}
],
"styling": {
"codeblocks": {
"theme": {
"dark": "github-dark-default",
"light": "github-light-default"
}
},
"eyebrows": "breadcrumbs"
},
"theme": "aspen"

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.31802 19.682C3 18.364 3 16.2426 3 12C3 7.75736 3 5.63604 4.31802 4.31802C5.63604 3 7.75736 3 12 3C16.2426 3 18.364 3 19.682 4.31802C21 5.63604 21 7.75736 21 12C21 16.2426 21 18.364 19.682 19.682C18.364 21 16.2426 21 12 21C7.75736 21 5.63604 21 4.31802 19.682Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M7 14L9.79289 11.2071C10.1834 10.8166 10.8166 10.8166 11.2071 11.2071L12.7929 12.7929C13.1834 13.1834 13.8166 13.1834 14.2071 12.7929L17 10" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 767 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 7H4.86503C5.59174 7 6.28868 6.64031 6.80255 6.00005C7.53643 5.08565 8.62195 4.76636 9.60655 5.17529L11 5.75402M2 15.9668H3.62068C4.78017 15.9668 5.35991 15.9668 5.90812 16.1213C5.93477 16.1288 5.96134 16.1366 5.98782 16.1446C6.53259 16.3101 7.01496 16.6209 7.97971 17.2427C9.86787 18.4596 10.812 19.0681 11.8407 18.994C11.8892 18.9905 11.9376 18.9858 11.9859 18.9801C13.0096 18.8577 13.8119 18.0821 15.4166 16.5308L17 15" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M22 7.23384H19.4832C18.4174 7.23384 17.6649 6.65468 16.9003 5.88258C16.4051 5.38247 15.7731 5.08772 15.1088 5.04713C14.366 5.00175 13.5053 4.93785 12.784 5.13601C11.9811 5.35656 11.451 5.96063 10.8902 6.59196L9.44309 8.22111C8.8523 8.88621 8.8523 9.96455 9.44309 10.6297C9.953 11.2037 10.7519 11.2928 11.3519 10.8424C11.7837 10.5184 12.2743 9.99506 12.7831 9.83025C13.3557 9.64476 13.7109 10.0615 14.0354 10.4999L16.3556 13.6344C17.2167 14.7976 17.6472 15.3793 18.2358 15.6896C18.8244 16 19.4969 16 20.842 16H22" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M7 4.5C5.34315 4.5 4 5.84315 4 7.5C4 8.06866 4.15822 8.60037 4.43304 9.0535C3.04727 9.31855 2 10.537 2 12C2 13.463 3.04727 14.6814 4.43304 14.9465M7 4.5C7 3.11929 8.11929 2 9.5 2C10.8807 2 12 3.11929 12 4.5V19.5C12 20.8807 10.8807 22 9.5 22C8.11929 22 7 20.8807 7 19.5C5.34315 19.5 4 18.1569 4 16.5C4 15.9313 4.15822 15.3996 4.43304 14.9465M7 4.5C7 5.31791 7.39278 6.04408 8 6.50018M4.43304 14.9465C4.78948 14.3588 5.34207 13.9032 6 13.6707" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M17 19.4999C18.6569 19.4999 20 18.1567 20 16.4999C20 15.9312 19.8418 15.3995 19.567 14.9464C20.9527 14.6813 22 13.4629 22 11.9999C22 10.5369 20.9527 9.31843 19.567 9.05338M17 19.4999C17 20.8806 15.8807 21.9999 14.5 21.9999C13.1193 21.9999 12 20.8806 12 19.4999L12 4.49988C12 3.11917 13.1193 1.99988 14.5 1.99988C15.8807 1.99988 17 3.11917 17 4.49988C18.6569 4.49988 20 5.84302 20 7.49988C20 8.06854 19.8418 8.60024 19.567 9.05338M17 19.4999C17 18.682 16.6072 17.9558 16 17.4997M19.567 9.05338C19.2105 9.64109 18.6579 10.0966 18 10.3292" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M19 9H6.65856C5.65277 9 5.14987 9 5.02472 8.69134C4.89957 8.38268 5.25517 8.01942 5.96637 7.29289L8.21091 5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M5 15H17.3414C18.3472 15 18.8501 15 18.9753 15.3087C19.1004 15.6173 18.7448 15.9806 18.0336 16.7071L15.7891 19" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 583 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6.65032C9 6.65032 15.9383 6.10759 16.9154 7.08463C17.8924 8.06167 17.3496 15 17.3496 15M16.5 7.5L6.5 17.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 382 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.9349 21.033C16.1789 21.5331 15.699 22 15.1239 22H8.87606C8.30096 22 7.82107 21.5331 8.06509 21.033C8.63149 19.8722 10.1793 19 12 19C13.8207 19 15.3685 19.8722 15.9349 21.033Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12 16L11.9883 19" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M17.9866 4.49139C17.992 4.30176 17.9963 4.11477 17.9997 3.93095C18.0194 2.86463 17.1162 2.00002 16.0093 2.00002L7.99052 2C6.88381 2 5.98074 2.86438 6.00031 3.93054C6.00358 4.10833 6.00768 4.28907 6.01283 4.47231C6.05734 6.05627 6.18024 7.82593 6.51875 9.47415C7.18043 12.6958 8.66606 16 12.0001 16C15.3341 16 16.8193 12.6958 17.481 9.47415C17.8181 7.83255 17.9415 6.07048 17.9866 4.49139Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M18 4.5L19.4447 4.68748C20.9062 4.87714 22 6.122 22 7.59578C22 8.99373 21.0133 10.1973 19.6425 10.4715L17.5 11" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M6 4.5L4.55527 4.68748C3.09375 4.87714 2 6.122 2 7.59578C2 8.99373 2.98673 10.1973 4.35754 10.4715L6.5 11" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="2" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10 5H4M14 5H20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M17 21H7" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12 7V21" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M16 14L18.5 8H19.5L22 14C22 15.6569 20.6569 17 19 17C17.3431 17 16 15.6569 16 14ZM22 14H16" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M2 14L4.5 8H5.5L8 14C8 15.6569 6.65685 17 5 17C3.34315 17 2 15.6569 2 14ZM8 14H2" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 953 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 7H8.5M12.499 11H8.49902" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M20 22H6C4.89543 22 4 21.1046 4 20M4 20C4 18.8954 4.89543 18 6 18H20V6C20 4.11438 20 3.17157 19.4142 2.58579C18.8284 2 17.8856 2 16 2H10C7.17157 2 5.75736 2 4.87868 2.87868C4 3.75736 4 5.17157 4 8V20Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M19.5 18C19.5 18 18.5 18.7628 18.5 20C18.5 21.2372 19.5 22 19.5 22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 753 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M7.99978 3.5H6.60021C4.43183 3.5 3.34764 3.5 2.67399 4.17362C2.00034 4.84724 2.00029 5.93144 2.00021 8.09982L2 13.3998C1.99992 15.5684 1.99987 16.6526 2.67353 17.3263C3.34719 18 4.43146 18 6.6 18H8.95042C10.4329 18 11.7092 19.0464 11.9999 20.5V5.5C11.0556 4.24097 9.99989 3.5 7.99978 3.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M16.0001 3.5H17.3997C19.5681 3.5 20.6523 3.5 21.3259 4.17362C21.9996 4.84724 21.9996 5.93144 21.9997 8.09982L21.9999 13.3998C22 15.5684 22 16.6526 21.3264 17.3263C20.6527 18 19.5684 18 17.3999 18H15.0495C13.567 18 12.2907 19.0464 12 20.5V5.5C12.9443 4.24097 14 3.5 16.0001 3.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 931 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.1449 5.20762C14.5031 4.46785 13.5562 4 12.5 4C11.0033 4 9.72595 4.93951 9.22564 6.26097C8.85144 6.09327 8.43661 6 8 6C6.34315 6 5 7.34315 5 9C5 9.01673 5.00014 9.03343 5.00041 9.05009M15.1449 5.20762C15.5725 5.07274 16.0278 5 16.5 5C18.9853 5 21 7.01472 21 9.5C21 10.1296 20.8707 10.729 20.6372 11.273M15.1449 5.20762C13.7981 5.63239 12.7249 6.67345 12.2561 8C12.1435 8.31841 12.0658 8.65327 12.0275 9M9.05001 14C9.28164 15.1411 10.2905 16 11.5 16C11.7548 16 11.8823 16 11.9998 16.014C12.5855 16.0835 13.1107 16.4081 13.4348 16.9009C13.4999 16.9997 13.5569 17.1137 13.6708 17.3416L15 20M9.05001 14C9.01722 13.8384 9 13.6712 9 13.5C9 12.6822 9.39267 11.9561 9.99976 11.5M9.05001 14H4.5C3.11929 14 2 12.8807 2 11.5C2 10.1193 3.11929 9 4.5 9C4.67138 9 4.83873 9.01724 5.00041 9.05009M20.6372 11.273C20.2961 11.0985 19.9095 11 19.5 11C18.2905 11 17.2816 11.8589 17.05 13M20.6372 11.273C21.4462 11.687 22 12.5288 22 13.5C22 14.8807 20.8807 16 19.5 16C18.2904 16 17.4531 17.2082 17.8778 18.3408L18.5 20M5.00041 9.05009C5.01267 9.7988 5.2992 10.4808 5.76389 11" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3.01309 4.99084C2.89323 6.05084 3.55249 8.42285 6.48923 8.42285" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M17.5951 8.38081C18.8357 8.57881 21.1132 7.49881 20.9957 5.00281" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M20.9928 20.9989C21.0528 19.9429 20.1777 17.5549 17.599 17.4229" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M6.45163 17.4708C5.65013 17.2308 3.01306 18.3348 3.01306 20.9988" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M9.3299 6.11884C9.35388 5.09884 9.84533 2.99884 12.0029 2.99884C13.9208 2.99884 14.5861 4.61884 14.676 6.11884M6.26131 9.41884C6.38118 8.63884 7.29216 6.81484 9.36586 6.63484C11.4635 6.55564 14.3403 6.58684 14.8797 6.67084C15.5869 6.73377 17.2951 7.43884 17.7506 9.41884C17.9124 10.4388 17.8285 11.8788 17.8524 12.7188C17.8165 13.5588 17.9207 15.2623 17.7565 16.1388C17.6367 17.0988 16.9894 18.4668 16.1024 19.3068C14.7838 20.7228 11.1639 22.2108 8.03534 19.4508C6.41713 17.8908 6.30925 16.3788 6.18939 15.7788C6.15725 15.4571 6.15875 13.8763 6.16541 12.3588C6.14144 11.046 6.17235 9.78063 6.26131 9.41884Z" stroke="#000" stroke-width="1.5"/><path d="M3.01306 12.8988H5.9498" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M20.9929 12.8988L18.1161 12.8988" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M12.0033 16.4988L12.0033 20.2788" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 10L18.1494 10.6448C19.5226 11.0568 20.2092 11.2628 20.6046 11.7942C21 12.3256 21 13.0425 21 14.4761V22" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M8 9L11 9M8 13L11 13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12 22V19C12 18.0572 12 17.5858 11.7071 17.2929C11.4142 17 10.9428 17 10 17H9C8.05719 17 7.58579 17 7.29289 17.2929C7 17.5858 7 18.0572 7 19V22" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M2 22L22 22" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M3 22V6.71724C3 4.20649 3 2.95111 3.79118 2.32824C4.58237 1.70537 5.74742 2.04355 8.07752 2.7199L13.0775 4.17122C14.4836 4.57937 15.1867 4.78344 15.5933 5.33965C16 5.89587 16 6.65344 16 8.16857V22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 21H10C6.70017 21 5.05025 21 4.02513 19.9749C3 18.9497 3 17.2998 3 14V3" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M5 20C5.43938 16.8438 7.67642 8.7643 10.4282 8.7643C12.3301 8.7643 12.8226 12.6353 14.6864 12.6353C17.8931 12.6353 17.4282 4 21 4" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 545 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M11 8H13C15.8284 8 17.2426 8 18.1213 8.87868C19 9.75736 19 11.1716 19 14C19 16.8284 19 18.2426 18.1213 19.1213C17.2426 20 15.8284 20 13 20H12C12 20 11.5 22 8 22C8 22 9 20.9913 9 19.9827C7.44655 19.9359 6.51998 19.7626 5.87868 19.1213C5 18.2426 5 16.8284 5 14C5 11.1716 5 9.75736 5.87868 8.87868C6.75736 8 8.17157 8 11 8Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M19 11.5H19.5C20.4346 11.5 20.9019 11.5 21.25 11.701C21.478 11.8326 21.6674 12.022 21.799 12.25C22 12.5981 22 13.0654 22 14C22 14.9346 22 15.4019 21.799 15.75C21.6674 15.978 21.478 16.1674 21.25 16.299C20.9019 16.5 20.4346 16.5 19.5 16.5H19" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M5 11.5H4.5C3.56538 11.5 3.09808 11.5 2.75 11.701C2.52197 11.8326 2.33261 12.022 2.20096 12.25C2 12.5981 2 13.0654 2 14C2 14.9346 2 15.4019 2.20096 15.75C2.33261 15.978 2.52197 16.1674 2.75 16.299C3.09808 16.5 3.56538 16.5 4.5 16.5H5" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M13.5 3.5C13.5 4.32843 12.8284 5 12 5C11.1716 5 10.5 4.32843 10.5 3.5C10.5 2.67157 11.1716 2 12 2C12.8284 2 13.5 2.67157 13.5 3.5Z" stroke="#000" stroke-width="1.5"/><path d="M12 5V8" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M9 12V13M15 12V13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10 16.5C10 16.5 10.6667 17 12 17C13.3333 17 14 16.5 14 16.5" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M11 6L21 6" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M11 12L21 12" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M11 18L21 18" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M3 7.39286C3 7.39286 4 8.04466 4.5 9C4.5 9 6 5.25 8 4" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M3 18.3929C3 18.3929 4 19.0447 4.5 20C4.5 20 6 16.25 8 15" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 714 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17.0235 3.03358L16.0689 2.77924C13.369 2.05986 12.019 1.70018 10.9555 2.31074C9.89196 2.9213 9.53023 4.26367 8.80678 6.94841L7.78366 10.7452C7.0602 13.4299 6.69848 14.7723 7.3125 15.8298C7.92652 16.8874 9.27651 17.247 11.9765 17.9664L12.9311 18.2208C15.631 18.9401 16.981 19.2998 18.0445 18.6893C19.108 18.0787 19.4698 16.7363 20.1932 14.0516L21.2163 10.2548C21.9398 7.57005 22.3015 6.22768 21.6875 5.17016C21.0735 4.11264 19.7235 3.75295 17.0235 3.03358Z" stroke="#000" stroke-width="1.5"/><path d="M16.8538 7.43306C16.8538 8.24714 16.1901 8.90709 15.3714 8.90709C14.5527 8.90709 13.889 8.24714 13.889 7.43306C13.889 6.61898 14.5527 5.95904 15.3714 5.95904C16.1901 5.95904 16.8538 6.61898 16.8538 7.43306Z" stroke="#000" stroke-width="1.5"/><path d="M12 20.9463L11.0477 21.2056C8.35403 21.9391 7.00722 22.3059 5.94619 21.6833C4.88517 21.0608 4.52429 19.6921 3.80253 16.9547L2.78182 13.0834C2.06006 10.346 1.69918 8.97731 2.31177 7.89904C2.84167 6.96631 4 7.00027 5.5 7.00015" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" stroke="#000" stroke-width="1.5"/><path d="M12 8V12L14 14" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 353 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17.4776 10.0001C17.485 10 17.4925 10 17.5 10C19.9853 10 22 12.0147 22 14.5C22 16.9853 19.9853 19 17.5 19H7C4.23858 19 2 16.7614 2 14C2 11.4003 3.98398 9.26407 6.52042 9.0227M17.4776 10.0001C17.4924 9.83536 17.5 9.66856 17.5 9.5C17.5 6.46243 15.0376 4 12 4C9.12324 4 6.76233 6.20862 6.52042 9.0227M17.4776 10.0001C17.3753 11.1345 16.9286 12.1696 16.2428 13M6.52042 9.0227C6.67826 9.00768 6.83823 9 7 9C8.12582 9 9.16474 9.37209 10.0005 10" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 712 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 4H10C6.22876 4 4.34315 4 3.17157 5.17157C2 6.34315 2 8.22876 2 12C2 15.7712 2 17.6569 3.17157 18.8284C4.34315 20 6.22876 20 10 20H14C17.7712 20 19.6569 20 20.8284 18.8284C22 17.6569 22 15.7712 22 12C22 8.22876 22 6.34315 20.8284 5.17157C19.6569 4 17.7712 4 14 4Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M7 9L8.83981 10.5858C9.61327 11.2525 10 11.5858 10 12C10 12.4142 9.61327 12.7475 8.83981 13.4142L7 15" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 16H17" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 834 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10 10L5 22M14 10L19 22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12 4L12 2" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><circle cx="12" cy="7" r="3" stroke="#000" stroke-width="1.5"/><path d="M3 13C4.99073 16.0242 8.27968 18 12 18C15.7203 18 19.0093 16.0242 21 13" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M12 17V19" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 702 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 21H16M14 21C13.1716 21 12.5 20.3284 12.5 19.5V17L12 17M14 21H10M10 21H8M10 21C10.8284 21 11.5 20.3284 11.5 19.5V17L12 17M12 17V21" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M16 3H8C5.17157 3 3.75736 3 2.87868 3.87868C2 4.75736 2 6.17157 2 9V11C2 13.8284 2 15.2426 2.87868 16.1213C3.75736 17 5.17157 17 8 17H16C18.8284 17 20.2426 17 21.1213 16.1213C22 15.2426 22 13.8284 22 11V9C22 6.17157 22 4.75736 21.1213 3.87868C20.2426 3 18.8284 3 16 3Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 767 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M7.5 14.5C7.5 11.2002 7.5 9.55025 8.52513 8.52513C9.55025 7.5 11.2002 7.5 14.5 7.5C17.7998 7.5 19.4497 7.5 20.4749 8.52513C21.5 9.55025 21.5 11.2002 21.5 14.5C21.5 17.7998 21.5 19.4497 20.4749 20.4749C19.4497 21.5 17.7998 21.5 14.5 21.5C11.2002 21.5 9.55025 21.5 8.52513 20.4749C7.5 19.4497 7.5 17.7998 7.5 14.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M7.5 16.5C6.10355 16.5 5.40533 16.5 4.84402 16.3036C3.83866 15.9518 3.0482 15.1613 2.69641 14.156C2.5 13.5947 2.5 12.8964 2.5 11.5V9.5C2.5 6.20017 2.5 4.55025 3.52513 3.52513C4.55025 2.5 6.20017 2.5 9.5 2.5H11.5C12.8964 2.5 13.5947 2.5 14.156 2.69641C15.1613 3.0482 15.9518 3.83866 16.3036 4.84402C16.5 5.40533 16.5 6.10355 16.5 7.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1,010 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12C4 8.22876 4 6.34315 5.17157 5.17157C6.34315 4 8.22876 4 12 4C15.7712 4 17.6569 4 18.8284 5.17157C20 6.34315 20 8.22876 20 12C20 15.7712 20 17.6569 18.8284 18.8284C17.6569 20 15.7712 20 12 20C8.22876 20 6.34315 20 5.17157 18.8284C4 17.6569 4 15.7712 4 12Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M9.5 2V4" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14.5 2V4" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M9.5 20V22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14.5 20V22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 9L9 13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M15 13L13 15" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M22 14.5L20 14.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M4 9.5L2 9.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M4 14.5L2 14.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M22 9.5L20 9.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12C2 8.46252 2 6.69377 3.0528 5.5129C3.22119 5.32403 3.40678 5.14935 3.60746 4.99087C4.86213 4 6.74142 4 10.5 4H13.5C17.2586 4 19.1379 4 20.3925 4.99087C20.5932 5.14935 20.7788 5.32403 20.9472 5.5129C22 6.69377 22 8.46252 22 12C22 15.5375 22 17.3062 20.9472 18.4871C20.7788 18.676 20.5932 18.8506 20.3925 19.0091C19.1379 20 17.2586 20 13.5 20H10.5C6.74142 20 4.86213 20 3.60746 19.0091C3.40678 18.8506 3.22119 18.676 3.0528 18.4871C2 17.3062 2 15.5375 2 12Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10 16H11.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14.5 16L18 16" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M2 9H22" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1,019 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2.79289 21.2071C3.08579 21.5 3.55719 21.5 4.5 21.5H14.5C15.4428 21.5 15.9142 21.5 16.2071 21.2071M2.79289 21.2071C2.5 20.9142 2.5 20.4428 2.5 19.5V9.5C2.5 8.55719 2.5 8.08579 2.79289 7.79289M2.79289 21.2071L8.79289 15.2071M16.2071 21.2071C16.5 20.9142 16.5 20.4428 16.5 19.5V9.5C16.5 8.55719 16.5 8.08579 16.2071 7.79289M16.2071 21.2071L21.2071 16.2071C21.5 15.9142 21.5 15.4428 21.5 14.5V4.5C21.5 3.55719 21.5 3.08579 21.2071 2.79289M16.2071 7.79289C15.9142 7.5 15.4428 7.5 14.5 7.5H4.5C3.55719 7.5 3.08579 7.5 2.79289 7.79289M16.2071 7.79289L21.2071 2.79289M2.79289 7.79289L7.79289 2.79289C8.08579 2.5 8.55719 2.5 9.5 2.5H19.5C20.4428 2.5 20.9142 2.5 21.2071 2.79289M8.79289 15.2071C9.08579 15.5 9.55719 15.5 10.5 15.5H14M8.79289 15.2071C8.5 14.9142 8.5 14.4428 8.5 13.5V10.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5.10772 14.3857L5.58594 7.91256C5.61875 7.46854 5.64642 7.05187 5.67232 6.66186C5.85017 3.98379 5.94481 2.55876 7.04807 2.10979C8.15132 1.66082 9.2022 2.61969 11.1771 4.42168C11.4647 4.68413 11.772 4.96446 12.1018 5.26093L16.9102 9.58273C18.2626 10.7983 18.9389 11.4062 18.9934 11.9885C19.0309 12.3882 18.9067 12.7862 18.6489 13.0924C18.2733 13.5385 17.3734 13.6473 15.5737 13.8647C14.8156 13.9563 14.4365 14.0021 14.2073 14.2038C14.0479 14.344 13.9376 14.5321 13.8925 14.7404C13.8277 15.0399 13.9707 15.3964 14.2567 16.1095L15.7394 19.8058C15.9107 20.2328 15.9963 20.4464 15.995 20.6429C15.9932 20.9078 15.8865 21.1609 15.6986 21.3462C15.5591 21.4837 15.3471 21.57 14.9232 21.7425C14.4993 21.915 14.2873 22.0013 14.0921 22C13.8292 21.9982 13.5778 21.8907 13.3939 21.7015C13.2574 21.561 13.1717 21.3475 13.0004 20.9204L11.5177 17.2241C11.2317 16.5111 11.0887 16.1545 10.8355 15.9844C10.6595 15.8662 10.4503 15.8081 10.239 15.8187C9.935 15.834 9.63074 16.0663 9.02224 16.5308C7.57763 17.6337 6.85532 18.1851 6.27746 18.1269C5.88085 18.0871 5.51701 17.8877 5.26831 17.574C4.90595 17.1169 4.9732 16.2065 5.10772 14.3857Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 13L17 9M14 15C14 16.1046 13.1046 17 12 17C10.8954 17 10 16.1046 10 15C10 13.8954 10.8954 13 12 13C13.1046 13 14 13.8954 14 15Z" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M6 12C6 8.68629 8.68629 6 12 6C13.0929 6 14.1175 6.29218 15 6.80269" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M2.50006 12.0001C2.50006 7.52172 2.50006 5.28255 3.8913 3.8913C5.28255 2.50006 7.52172 2.50006 12.0001 2.50006C16.4784 2.50006 18.7176 2.50006 20.1088 3.8913C21.5001 5.28255 21.5001 7.52172 21.5001 12.0001C21.5001 16.4784 21.5001 18.7176 20.1088 20.1088C18.7176 21.5001 16.4784 21.5001 12.0001 21.5001C7.52172 21.5001 5.28255 21.5001 3.8913 20.1088C2.50006 18.7176 2.50006 16.4784 2.50006 12.0001Z" stroke="#000" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 959 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12C3 7.75736 3 5.63604 4.31802 4.31802C5.63604 3 7.75736 3 12 3C16.2426 3 18.364 3 19.682 4.31802C21 5.63604 21 7.75736 21 12C21 16.2426 21 18.364 19.682 19.682C18.364 21 16.2426 21 12 21C7.75736 21 5.63604 21 4.31802 19.682C3 18.364 3 16.2426 3 12Z" stroke="#000" stroke-width="1.5"/><path d="M3 12H21" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M11 7.5L17 7.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M7.125 7.5H7M7.25 7.5C7.25 7.63807 7.13807 7.75 7 7.75C6.86193 7.75 6.75 7.63807 6.75 7.5C6.75 7.36193 6.86193 7.25 7 7.25C7.13807 7.25 7.25 7.36193 7.25 7.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M11 16.5L17 16.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M7.125 16.5H7M7.25 16.5C7.25 16.6381 7.13807 16.75 7 16.75C6.86193 16.75 6.75 16.6381 6.75 16.5C6.75 16.3619 6.86193 16.25 7 16.25C7.13807 16.25 7.25 16.3619 7.25 16.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M19.5 17.5C19.5 18.8807 18.3807 20 17 20C15.6193 20 14.5 18.8807 14.5 17.5C14.5 16.1193 15.6193 15 17 15C18.3807 15 19.5 16.1193 19.5 17.5Z" stroke="#000" stroke-width="1.5"/><path d="M9.5 17.5C9.5 18.8807 8.38071 20 7 20C5.61929 20 4.5 18.8807 4.5 17.5C4.5 16.1193 5.61929 15 7 15C8.38071 15 9.5 16.1193 9.5 17.5Z" stroke="#000" stroke-width="1.5"/><path d="M14.5 17.5H9.5M19.5 17.5H20.2632C20.4831 17.5 20.5931 17.5 20.6855 17.4885C21.3669 17.4036 21.9036 16.8669 21.9885 16.1855C22 16.0931 22 15.9831 22 15.7632V13C22 9.41015 19.0899 6.5 15.5 6.5M2 4H12C13.4142 4 14.1213 4 14.5607 4.43934C15 4.87868 15 5.58579 15 7V15.5M2 12.75V15C2 15.9346 2 16.4019 2.20096 16.75C2.33261 16.978 2.52197 17.1674 2.75 17.299C3.09808 17.5 3.56538 17.5 4.5 17.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M2 7H8M2 10H6" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2.99969 17.0002C2.99969 17.9302 2.99969 18.3952 3.10192 18.7767C3.37932 19.8119 4.18796 20.6206 5.22324 20.898C5.60474 21.0002 6.06972 21.0002 6.99969 21.0002L16.9997 21.0002C17.9297 21.0002 18.3947 21.0002 18.7762 20.898C19.8114 20.6206 20.6201 19.8119 20.8975 18.7767C20.9997 18.3952 20.9997 17.9302 20.9997 17.0002" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M16.4998 11.5002C16.4998 11.5002 13.1856 16.0002 11.9997 16.0002C10.8139 16.0002 7.49976 11.5002 7.49976 11.5002M11.9997 15.0002V3.00016" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 820 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12C2 8.22876 2 6.34315 3.17157 5.17157C4.34315 4 6.22876 4 10 4H13C14.9628 4 15.9443 4 16.7889 4.42229C17.6334 4.84458 18.2223 5.62972 19.4 7.2C21.1333 9.51111 22 10.6667 22 12C22 13.3333 21.1333 14.4889 19.4 16.8C18.2223 18.3703 17.6334 19.1554 16.7889 19.5777C15.9443 20 14.9628 20 13 20H10C6.22876 20 4.34315 20 3.17157 18.8284C2 17.6569 2 15.7712 2 12Z" stroke="#000" stroke-width="1.5"/><path d="M14 9L8 14.9996M14 15L8 9.00039" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 709 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 7L16 7" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8 11L12 11" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 21.5V21C13 18.1716 13 16.7574 13.8787 15.8787C14.7574 15 16.1716 15 19 15H19.5M20 13.3431V10C20 6.22876 20 4.34315 18.8284 3.17157C17.6569 2 15.7712 2 12 2C8.22877 2 6.34315 2 5.17157 3.17157C4 4.34314 4 6.22876 4 10L4 14.5442C4 17.7892 4 19.4117 4.88607 20.5107C5.06508 20.7327 5.26731 20.9349 5.48933 21.1139C6.58831 22 8.21082 22 11.4558 22C12.1614 22 12.5141 22 12.8372 21.886C12.9044 21.8623 12.9702 21.835 13.0345 21.8043C13.3436 21.6564 13.593 21.407 14.0919 20.9081L18.8284 16.1716C19.4065 15.5935 19.6955 15.3045 19.8478 14.9369C20 14.5694 20 14.1606 20 13.3431Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 17H16" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8 13H12" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 2.5V3C13 5.82843 13 7.24264 13.8787 8.12132C14.7574 9 16.1716 9 19 9H19.5M20 10.6569V14C20 17.7712 20 19.6569 18.8284 20.8284C17.6569 22 15.7712 22 12 22C8.22876 22 6.34315 22 5.17157 20.8284C4 19.6569 4 17.7712 4 14V9.45584C4 6.21082 4 4.58831 4.88607 3.48933C5.06508 3.26731 5.26731 3.06508 5.48933 2.88607C6.58831 2 8.21082 2 11.4558 2C12.1614 2 12.5141 2 12.8372 2.11401C12.9044 2.13772 12.9702 2.165 13.0345 2.19575C13.3436 2.34355 13.593 2.593 14.0919 3.09188L18.8284 7.82843C19.4065 8.40649 19.6955 8.69552 19.8478 9.06306C20 9.4306 20 9.83935 20 10.6569Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 16.5L15 18M14 14.5C14 15.8807 12.8807 17 11.5 17C10.1193 17 9 15.8807 9 14.5C9 13.1193 10.1193 12 11.5 12C12.8807 12 14 13.1193 14 14.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 2.5V3C13 5.82843 13 7.24264 13.8787 8.12132C14.7574 9 16.1716 9 19 9H19.5M20 10.6569V14C20 17.7712 20 19.6569 18.8284 20.8284C17.6569 22 15.7712 22 12 22C8.22876 22 6.34315 22 5.17157 20.8284C4 19.6569 4 17.7712 4 14V9.45584C4 6.21082 4 4.58831 4.88607 3.48933C5.06508 3.26731 5.26731 3.06508 5.48933 2.88607C6.58831 2 8.21082 2 11.4558 2C12.1614 2 12.5141 2 12.8372 2.11401C12.9044 2.13772 12.9702 2.165 13.0345 2.19575C13.3436 2.34355 13.593 2.593 14.0919 3.09188L18.8284 7.82843C19.4065 8.40649 19.6955 8.69552 19.8478 9.06306C20 9.4306 20 9.83935 20 10.6569Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14.4998 19H12.4998C9.67139 19 8.25718 19 7.3785 18.1213C6.49982 17.2426 6.49982 15.8284 6.49982 13V8C6.49982 5.17157 6.49982 3.75736 7.3785 2.87868C8.25718 2 9.67139 2 12.4998 2H13.843C14.6605 2 15.0692 2 15.4368 2.15224C15.8043 2.30448 16.0933 2.59351 16.6714 3.17157L19.3282 5.82843C19.9063 6.40648 20.1953 6.69552 20.3476 7.06306C20.4998 7.4306 20.4998 7.83935 20.4998 8.65685V13C20.4998 15.8284 20.4998 17.2426 19.6211 18.1213C18.7425 19 17.3282 19 14.4998 19Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14.9998 2.5V3.5C14.9998 5.38562 14.9998 6.32843 15.5856 6.91421C16.1714 7.5 17.1142 7.5 18.9998 7.5H19.9998" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M6.49945 5C4.8426 5 3.49945 6.34315 3.49945 8V16C3.49945 18.8285 3.49945 20.2427 4.37813 21.1213C5.25681 22 6.67102 22 9.49945 22H14.4998C16.1566 22 17.4998 20.6568 17.4998 19" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10 11H14M10 15H17" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14.5 5L12.5 5C9.67157 5 8.25736 5 7.37868 5.87868C6.5 6.75736 6.5 8.17157 6.5 11L6.5 16C6.5 18.8284 6.5 20.2426 7.37868 21.1213C8.25736 22 9.67157 22 12.5 22H13.8431C14.6606 22 15.0694 22 15.4369 21.8478C15.8045 21.6955 16.0935 21.4065 16.6716 20.8284L19.3284 18.1716C19.9065 17.5935 20.1955 17.3045 20.3478 16.9369C20.5 16.5694 20.5 16.1606 20.5 15.3431V11C20.5 8.17157 20.5 6.75736 19.6213 5.87868C18.7426 5 17.3284 5 14.5 5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M15 21.5L15 20.5C15 18.6144 15 17.6716 15.5858 17.0858C16.1716 16.5 17.1144 16.5 19 16.5L20 16.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M6.5 19C4.84315 19 3.5 17.6569 3.5 16L3.5 8C3.5 5.17157 3.5 3.75736 4.37868 2.87868C5.25736 2 6.67157 2 9.5 2L14.5004 2C16.1572 2.00001 17.5004 3.34319 17.5004 5.00003" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10.001 13L14.001 13M10.001 9L17.001 9" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.85746 12.5061C6.36901 10.6456 4.59564 8.59915 3.62734 7.44867C3.3276 7.09253 3.22938 6.8319 3.17033 6.3728C2.96811 4.8008 2.86701 4.0148 3.32795 3.5074C3.7889 3 4.60404 3 6.23433 3H17.7657C19.396 3 20.2111 3 20.672 3.5074C21.133 4.0148 21.0319 4.8008 20.8297 6.37281C20.7706 6.83191 20.6724 7.09254 20.3726 7.44867C19.403 8.60062 17.6261 10.6507 15.1326 12.5135C14.907 12.6821 14.7583 12.9567 14.7307 13.2614C14.4837 15.992 14.2559 17.4876 14.1141 18.2442C13.8853 19.4657 12.1532 20.2006 11.226 20.8563C10.6741 21.2466 10.0043 20.782 9.93278 20.1778C9.79643 19.0261 9.53961 16.6864 9.25927 13.2614C9.23409 12.9539 9.08486 12.6761 8.85746 12.5061Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 923 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5.22576 11.3294L12.224 2.34651C12.7713 1.64397 13.7972 2.08124 13.7972 3.01707V9.96994C13.7972 10.5305 14.1995 10.985 14.6958 10.985H18.0996C18.8729 10.985 19.2851 12.0149 18.7742 12.6706L11.776 21.6535C11.2287 22.356 10.2028 21.9188 10.2028 20.9829V14.0301C10.2028 13.4695 9.80048 13.015 9.3042 13.015H5.90035C5.12711 13.015 4.71494 11.9851 5.22576 11.3294Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 633 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 7H16.75C18.8567 7 19.91 7 20.6667 7.50559C20.9943 7.72447 21.2755 8.00572 21.4944 8.33329C22 9.08996 22 10.1433 22 12.25C22 15.7612 22 17.5167 21.1573 18.7779C20.7926 19.3238 20.3238 19.7926 19.7779 20.1573C18.5167 21 16.7612 21 13.25 21H12C7.28595 21 4.92893 21 3.46447 19.5355C2 18.0711 2 15.714 2 11V7.94427C2 6.1278 2 5.21956 2.38032 4.53806C2.65142 4.05227 3.05227 3.65142 3.53806 3.38032C4.21956 3 5.1278 3 6.94427 3C8.10802 3 8.6899 3 9.19926 3.19101C10.3622 3.62712 10.8418 4.68358 11.3666 5.73313L12 7" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 763 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10 20.5675C6.57143 21.7248 3.71429 20.5675 2 17" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10 22V18.7579C10 18.1596 10.1839 17.6396 10.4804 17.1699C10.6838 16.8476 10.5445 16.3904 10.1771 16.2894C7.13394 15.4528 5 14.1077 5 9.64606C5 8.48611 5.38005 7.39556 6.04811 6.4464C6.21437 6.21018 6.29749 6.09208 6.31748 5.9851C6.33746 5.87813 6.30272 5.73852 6.23322 5.45932C5.95038 4.32292 5.96871 3.11619 6.39322 2.02823C6.39322 2.02823 7.27042 1.74242 9.26698 2.98969C9.72282 3.27447 9.95075 3.41686 10.1515 3.44871C10.3522 3.48056 10.6206 3.41384 11.1573 3.28041C11.8913 3.09795 12.6476 3 13.5 3C14.3524 3 15.1087 3.09795 15.8427 3.28041C16.3794 3.41384 16.6478 3.48056 16.8485 3.44871C17.0493 3.41686 17.2772 3.27447 17.733 2.98969C19.7296 1.74242 20.6068 2.02823 20.6068 2.02823C21.0313 3.11619 21.0496 4.32292 20.7668 5.45932C20.6973 5.73852 20.6625 5.87813 20.6825 5.9851C20.7025 6.09207 20.7856 6.21019 20.9519 6.4464C21.6199 7.39556 22 8.48611 22 9.64606C22 14.1077 19.8661 15.4528 16.8229 16.2894C16.4555 16.3904 16.3162 16.8476 16.5196 17.1699C16.8161 17.6396 17 18.1596 17 18.7579V22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" stroke="#000" stroke-width="1.5"/><path d="M8 12C8 18 12 22 12 22C12 22 16 18 16 12C16 6 12 2 12 2C12 2 8 6 8 12Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M21 15H3" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M21 9H3" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 585 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.7104 8.70122L21.9186 12.7288C21.9578 12.8592 21.9773 12.9244 21.9879 12.9914L21.9908 13.0118C22 13.079 22 13.147 22 13.2831C22 16.7797 22 18.528 20.9812 19.6669C20.8824 19.7774 20.7774 19.8824 20.6669 19.9812C19.528 21 17.7797 21 14.2831 21H9.71685C6.22026 21 4.47197 21 3.33311 19.9812C3.22259 19.8824 3.11765 19.7774 3.01877 19.6669C2 18.528 2 16.7797 2 13.2831C2 13.147 2 13.079 2.00915 13.0118L2.01215 12.9914C2.02269 12.9244 2.04225 12.8592 2.08136 12.7288L3.28963 8.70122C4.11355 5.95484 4.5255 4.58166 5.5884 3.79083C6.6513 3 8.08495 3 10.9522 3H13.0478C15.9151 3 17.3487 3 18.4116 3.79083C19.4745 4.58166 19.8865 5.95484 20.7104 8.70122Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M2 13H22" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M18.125 17H18M14.125 17H14M18.25 17C18.25 17.1381 18.1381 17.25 18 17.25C17.8619 17.25 17.75 17.1381 17.75 17C17.75 16.8619 17.8619 16.75 18 16.75C18.1381 16.75 18.25 16.8619 18.25 17ZM14.25 17C14.25 17.1381 14.1381 17.25 14 17.25C13.8619 17.25 13.75 17.1381 13.75 17C13.75 16.8619 13.8619 16.75 14 16.75C14.1381 16.75 14.25 16.8619 14.25 17Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.0849 17C20.5849 15.5 21 13.4368 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 13.4368 3.41512 15.5 3.91512 17" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8.97651 19.6043L7.23857 14.6127C7.05341 14.1466 6.4617 13.9131 5.97493 14.0297C4.46441 14.5333 3.6462 16.1718 4.14742 17.6895L4.58543 19.0158C5.08664 20.5334 6.71747 21.3555 8.22799 20.8519C8.68896 20.6556 9.10449 20.0897 8.97651 19.6043Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M15.0235 19.6043L16.7614 14.6127C16.9466 14.1466 17.5383 13.9131 18.0251 14.0297C19.5356 14.5333 20.3538 16.1718 19.8526 17.6895L19.4146 19.0158C18.9134 20.5334 17.2825 21.3555 15.772 20.8519C15.311 20.6556 14.8955 20.0897 15.0235 19.6043Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M9.5 9.5C9.5 8.11929 10.6193 7 12 7C13.3807 7 14.5 8.11929 14.5 9.5C14.5 10.3569 14.0689 11.1131 13.4117 11.5636C12.7283 12.0319 12 12.6716 12 13.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12.125 16.75H12M12.25 16.75C12.25 16.8881 12.1381 17 12 17C11.8619 17 11.75 16.8881 11.75 16.75C11.75 16.6119 11.8619 16.5 12 16.5C12.1381 16.5 12.25 16.6119 12.25 16.75Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 796 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 19.5H13C10.1716 19.5 8.75736 19.5 7.87868 18.6213C7 17.7426 7 16.3284 7 13.5V11.5M7 8V11.5M7 11.5H14" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14 11.5C14 10.3215 14 9.73223 14.3515 9.36612C14.7029 9 15.2686 9 16.4 9H17.6C18.7314 9 19.2971 9 19.6485 9.36612C20 9.73223 20 10.3215 20 11.5C20 12.6785 20 13.2678 19.6485 13.6339C19.2971 14 18.7314 14 17.6 14H16.4C15.2686 14 14.7029 14 14.3515 13.6339C14 13.2678 14 12.6785 14 11.5Z" stroke="#000" stroke-width="1.5"/><path d="M14 19.5C14 18.3215 14 17.7322 14.3515 17.3661C14.7029 17 15.2686 17 16.4 17H17.6C18.7314 17 19.2971 17 19.6485 17.3661C20 17.7322 20 18.3215 20 19.5C20 20.6785 20 21.2678 19.6485 21.6339C19.2971 22 18.7314 22 17.6 22H16.4C15.2686 22 14.7029 22 14.3515 21.6339C14 21.2678 14 20.6785 14 19.5Z" stroke="#000" stroke-width="1.5"/><path d="M5.28571 2H8.71429C10.7888 2 11 3.10993 11 5C11 6.89007 10.7888 8 8.71429 8H5.28571C3.2112 8 3 6.89007 3 5C3 3.10993 3.2112 2 5.28571 2Z" stroke="#000" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 18C10.3135 16.0463 13.667 15.9543 15.5 18M13.9406 12C13.9406 13.1046 13.0688 14 11.9934 14C10.918 14 10.0462 13.1046 10.0462 12C10.0462 10.8954 10.918 10 11.9934 10C13.0688 10 13.9406 10.8954 13.9406 12Z" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M9.5 4.00195C6.85561 4.01181 5.44101 4.10427 4.52513 4.97195C3.5 5.94312 3.5 7.5062 3.5 10.6324V15.3692C3.5 18.4954 3.5 20.0584 4.52513 21.0296C5.55025 22.0008 7.20017 22.0008 10.5 22.0008H13.5C16.7998 22.0008 18.4497 22.0008 19.4749 21.0296C20.5 20.0584 20.5 18.4954 20.5 15.3692V10.6324C20.5 7.5062 20.5 5.94312 19.4749 4.97195C18.559 4.10427 17.1444 4.01181 14.5 4.00195" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M9.77216 3.63163C9.8681 3.21682 9.91608 3.00942 10.0082 2.84004C10.2229 2.44546 10.6188 2.15548 11.0914 2.0467C11.2943 2 11.5296 2 12 2C12.4704 2 12.7057 2 12.9086 2.0467C13.3812 2.15548 13.7771 2.44545 13.9918 2.84004C14.0839 3.00942 14.1319 3.21682 14.2278 3.63163L14.3111 3.99176C14.4813 4.72744 14.5664 5.09528 14.438 5.37824C14.3549 5.5615 14.2132 5.71842 14.031 5.82911C13.7496 6 13.3324 6 12.4981 6H11.5019C10.6676 6 10.2504 6 9.96901 5.82911C9.78677 5.71842 9.6451 5.5615 9.56197 5.37824C9.43361 5.09528 9.51869 4.72744 9.68886 3.99176L9.77216 3.63163Z" stroke="#000" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 16.4998C6.7725 15.4011 6 13.7768 6 11.9998C6 8.68605 8.68629 5.99976 12 5.99976C15.3137 5.99976 18 8.68605 18 11.9998C18 13.7768 17.2275 15.4011 16 16.4998" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M12 11.9998V16.4998" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M9.5 18.9998H14.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M10.5 21.4998H13.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M3.5 11.9998H2.5M5.98438 5.97632L5.23438 5.23022M18.0195 5.97632L18.7695 5.23022M21.5 11.9998H20.5M12 2.49976V3.49976" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 947 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 18.6458V8.05426C4 5.20025 4 3.77325 4.87868 2.88663C5.75736 2 7.17157 2 10 2H14C16.8284 2 18.2426 2 19.1213 2.88663C20 3.77325 20 5.20025 20 8.05426V18.6458C20 20.1575 20 20.9133 19.538 21.2108C18.7831 21.6971 17.6161 20.6774 17.0291 20.3073C16.5441 20.0014 16.3017 19.8485 16.0325 19.8397C15.7417 19.8301 15.4949 19.9768 14.9709 20.3073L13.06 21.5124C12.5445 21.8374 12.2868 22 12 22C11.7132 22 11.4555 21.8374 10.94 21.5124L9.02913 20.3073C8.54415 20.0014 8.30166 19.8485 8.03253 19.8397C7.74172 19.8301 7.49493 19.9768 6.97087 20.3073C6.38395 20.6774 5.21687 21.6971 4.46195 21.2108C4 20.9133 4 20.1575 4 18.6458Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M11 11H8" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14 7L8 7" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z" stroke="#000" stroke-width="1.5"/><path d="M11.7324 12V16C11.7324 17.1046 10.837 18 9.73244 18C8.99215 18 8.34581 17.5978 8 17" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M18.4668 13C18.121 12.4022 17.4747 12 16.7344 12H16.2344C15.4059 12 14.7344 12.6716 14.7344 13.5C14.7344 14.3284 15.4059 15 16.2344 15H17.2344C18.0628 15 18.7344 15.6716 18.7344 16.5C18.7344 17.3284 18.0628 18 17.2344 18H16.7344C15.9941 18 15.3477 17.5978 15.0019 17" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1,014 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5V22M12 22H9M12 22H15" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M21 13L18.5 8L16 13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8 13L5.5 8L3 13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M4 8H5.0482C6.31166 8 7.5375 7.471 8.5241 6.5C10.5562 4.5 13.4438 4.5 15.4759 6.5C16.4625 7.471 17.6883 8 18.9518 8H20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M18.5 17C19.8547 17 21.0344 16.1663 21.6473 14.9349C21.978 14.2702 22.1434 13.9379 21.8415 13.469C21.5396 13 21.04 13 20.0407 13H16.9593C15.96 13 15.4604 13 15.1585 13.469C14.8566 13.9379 15.022 14.2702 15.3527 14.9349C15.9656 16.1663 17.1453 17 18.5 17Z" stroke="#000" stroke-width="1.5"/><path d="M5.5 17C6.85471 17 8.03442 16.1663 8.64726 14.9349C8.97802 14.2702 9.14339 13.9379 8.84151 13.469C8.53962 13 8.04 13 7.04075 13H3.95925C2.96 13 2.46038 13 2.15849 13.469C1.85661 13.9379 2.02198 14.2702 2.35273 14.9349C2.96558 16.1663 4.14528 17 5.5 17Z" stroke="#000" stroke-width="1.5"/><path d="M13.5 3.5C13.5 4.32843 12.8284 5 12 5C11.1716 5 10.5 4.32843 10.5 3.5C10.5 2.67157 11.1716 2 12 2C12.8284 2 13.5 2.67157 13.5 3.5Z" stroke="#000" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 14.5C18.8137 14.5 21.5 11.8137 21.5 8.5C21.5 5.18629 18.8137 2.5 15.5 2.5C12.1863 2.5 9.5 5.18629 9.5 8.5C9.5 9.38041 9.68962 10.2165 10.0303 10.9697L2.5 18.5V21.5H5.5V19.5H7.5V17.5H9.5L13.0303 13.9697C13.7835 14.3104 14.6196 14.5 15.5 14.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M17.5 6.5L16.5 7.5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 631 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.64298 3.14559L6.93816 3.93362C4.31272 5.14719 3 5.75397 3 6.75C3 7.74603 4.31272 8.35281 6.93817 9.56638L8.64298 10.3544C10.2952 11.1181 11.1214 11.5 12 11.5C12.8786 11.5 13.7048 11.1181 15.357 10.3544L17.0618 9.56638C19.6873 8.35281 21 7.74603 21 6.75C21 5.75397 19.6873 5.14719 17.0618 3.93362L15.357 3.14559C13.7048 2.38186 12.8786 2 12 2C11.1214 2 10.2952 2.38186 8.64298 3.14559Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M20.788 11.0972C20.9293 11.2959 21 11.5031 21 11.7309C21 12.7127 19.6873 13.3109 17.0618 14.5072L15.357 15.284C13.7048 16.0368 12.8786 16.4133 12 16.4133C11.1214 16.4133 10.2952 16.0368 8.64298 15.284L6.93817 14.5072C4.31272 13.3109 3 12.7127 3 11.7309C3 11.5031 3.07067 11.2959 3.212 11.0972" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M20.3767 16.2661C20.7922 16.5971 21 16.927 21 17.3176C21 18.2995 19.6873 18.8976 17.0618 20.0939L15.357 20.8707C13.7048 21.6236 12.8786 22 12 22C11.1214 22 10.2952 21.6236 8.64298 20.8707L6.93817 20.0939C4.31272 18.8976 3 18.2995 3 17.3176C3 16.927 3.20778 16.5971 3.62334 16.2661" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 5.5L20 5.5" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M8 12.5L20 12.5" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M8 19.5L20 19.5" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M4.375 5.5H4.25M4.5 5.5C4.5 5.63807 4.38807 5.75 4.25 5.75C4.11193 5.75 4 5.63807 4 5.5C4 5.36193 4.11193 5.25 4.25 5.25C4.38807 5.25 4.5 5.36193 4.5 5.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M4.375 12.5H4.25M4.5 12.5C4.5 12.6381 4.38807 12.75 4.25 12.75C4.11193 12.75 4 12.6381 4 12.5C4 12.3619 4.11193 12.25 4.25 12.25C4.38807 12.25 4.5 12.3619 4.5 12.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M4.375 19.5H4.25M4.5 19.5C4.5 19.6381 4.38807 19.75 4.25 19.75C4.11193 19.75 4 19.6381 4 19.5C4 19.3619 4.11193 19.25 4.25 19.25C4.38807 19.25 4.5 19.3619 4.5 19.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9.14339 10.691L9.35031 10.4841C11.329 8.50532 14.5372 8.50532 16.5159 10.4841C18.4947 12.4628 18.4947 15.671 16.5159 17.6497L13.6497 20.5159C11.671 22.4947 8.46279 22.4947 6.48405 20.5159C4.50532 18.5372 4.50532 15.329 6.48405 13.3503L6.9484 12.886" stroke="#000" stroke-linecap="round" stroke-width="1.5"/><path d="M17.0516 11.114L17.5159 10.6497C19.4947 8.67095 19.4947 5.46279 17.5159 3.48405C15.5372 1.50532 12.329 1.50532 10.3503 3.48405L7.48405 6.35031C5.50532 8.32904 5.50532 11.5372 7.48405 13.5159C9.46279 15.4947 12.671 15.4947 14.6497 13.5159L14.8566 13.309" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 819 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.6177 21.367C13.1841 21.773 12.6044 22 12.0011 22C11.3978 22 10.8182 21.773 10.3845 21.367C6.41302 17.626 1.09076 13.4469 3.68627 7.37966C5.08963 4.09916 8.45834 2 12.0011 2C15.5439 2 18.9126 4.09916 20.316 7.37966C22.9082 13.4393 17.599 17.6389 13.6177 21.367Z" stroke="#000" stroke-width="1.5"/><path d="M15.5 11C15.5 12.933 13.933 14.5 12 14.5C10.067 14.5 8.5 12.933 8.5 11C8.5 9.067 10.067 7.5 12 7.5C13.933 7.5 15.5 9.067 15.5 11Z" stroke="#000" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 665 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z" stroke="#000" stroke-width="1.5"/><path d="M12 13C13.1046 13 14 12.1046 14 11C14 9.89543 13.1046 9 12 9C10.8954 9 10 9.89543 10 11C10 12.1046 10.8954 13 12 13ZM12 13L12 16" stroke="#000" stroke-linecap="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 536 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.00002 8C8.00002 7.42459 8.00002 7.17765 8.04465 6.92457C8.21993 5.93047 8.89355 5.09255 9.83302 4.70001C10.0723 4.60003 10.3559 4.53526 10.9232 4.40573L13.6508 3.78286C17.0405 3.00882 18.7353 2.6218 19.8677 3.51317C21 4.40454 21 6.1257 21 9.56803L21 14.432C21 17.8743 21 19.5955 19.8676 20.4868C18.7353 21.3782 17.0405 20.9912 13.6508 20.2171L10.9232 19.5943C10.3559 19.4647 10.0723 19.4 9.833 19.3C8.89353 18.9074 8.21991 18.0695 8.04462 17.0754C8 16.8224 8 16.5754 8 16" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 9C13 9 16 11.2095 16 12C16 12.7906 13 15 13 15M15.5 12H3" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 900 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 8.04045C15.4588 6.87972 15.3216 6.15451 14.8645 5.58671C14.2114 4.77536 13.0944 4.52064 10.8605 4.01121L9.85915 3.78286C6.4649 3.00882 4.76777 2.6218 3.63388 3.51317C2.5 4.40454 2.5 6.1257 2.5 9.56803V14.432C2.5 17.8743 2.5 19.5955 3.63388 20.4868C4.76777 21.3782 6.4649 20.9912 9.85915 20.2171L10.8605 19.9888C13.0944 19.4794 14.2114 19.2246 14.8645 18.4133C15.3216 17.8455 15.4588 17.1203 15.5 15.9595" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M18.5 9.01172C18.5 9.01172 21.5 11.2212 21.5 12.0117C21.5 12.8023 18.5 15.0117 18.5 15.0117M21 12.0117H8.49998" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 885 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 6L8.91302 9.91697C11.4616 11.361 12.5384 11.361 15.087 9.91697L22 6" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/><path d="M2.01577 13.4756C2.08114 16.5412 2.11383 18.0739 3.24496 19.2094C4.37608 20.3448 5.95033 20.3843 9.09883 20.4634C11.0393 20.5122 12.9607 20.5122 14.9012 20.4634C18.0497 20.3843 19.6239 20.3448 20.7551 19.2094C21.8862 18.0739 21.9189 16.5412 21.9842 13.4756C22.0053 12.4899 22.0053 11.5101 21.9842 10.5244C21.9189 7.45886 21.8862 5.92609 20.7551 4.79066C19.6239 3.65523 18.0497 3.61568 14.9012 3.53657C12.9607 3.48781 11.0393 3.48781 9.09882 3.53656C5.95033 3.61566 4.37608 3.65521 3.24495 4.79065C2.11382 5.92608 2.08114 7.45885 2.01576 10.5244C1.99474 11.5101 1.99475 12.4899 2.01577 13.4756Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 983 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 14.5H15.5M8.5 9.5H12" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M14.1706 20.8905C18.3536 20.6125 21.6856 17.2332 21.9598 12.9909C22.0134 12.1607 22.0134 11.3009 21.9598 10.4707C21.6856 6.22838 18.3536 2.84913 14.1706 2.57107C12.7435 2.47621 11.2536 2.47641 9.8294 2.57107C5.64639 2.84913 2.31441 6.22838 2.04024 10.4707C1.98659 11.3009 1.98659 12.1607 2.04024 12.9909C2.1401 14.536 2.82343 15.9666 3.62791 17.1746C4.09501 18.0203 3.78674 19.0758 3.30021 19.9978C2.94941 20.6626 2.77401 20.995 2.91484 21.2351C3.05568 21.4752 3.37026 21.4829 3.99943 21.4982C5.24367 21.5285 6.08268 21.1757 6.74868 20.6846C7.1264 20.4061 7.31527 20.2668 7.44544 20.2508C7.5756 20.2348 7.83177 20.3403 8.34401 20.5513C8.8044 20.7409 9.33896 20.8579 9.8294 20.8905C11.2536 20.9852 12.7435 20.9854 14.1706 20.8905Z" stroke="#000" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20.5C19.1328 20.5 22 16.4706 22 11.5C22 6.52944 20.1328 2.5 12 2.5C4.13281 2.5 2 6.52944 2 11.5C2 13.5712 2.37034 15.4791 3.37161 17C4.63281 19 3.99253 20.8333 3 21.5C4.61547 21.5 5.70211 20.9858 6.39239 20.4766C6.88252 20.115 7.50688 19.9364 8.0984 20.0815C9.20689 20.3533 10.4991 20.5 12 20.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M12.1248 11.5H11.9998M16.125 11.5H16M8.125 11.5H8M12.2498 11.5C12.2498 11.6381 12.1379 11.75 11.9998 11.75C11.8618 11.75 11.7498 11.6381 11.7498 11.5C11.7498 11.3619 11.8618 11.25 11.9998 11.25C12.1379 11.25 12.2498 11.3619 12.2498 11.5ZM16.25 11.5C16.25 11.6381 16.1381 11.75 16 11.75C15.8619 11.75 15.75 11.6381 15.75 11.5C15.75 11.3619 15.8619 11.25 16 11.25C16.1381 11.25 16.25 11.3619 16.25 11.5ZM8.25 11.5C8.25 11.6381 8.13807 11.75 8 11.75C7.86193 11.75 7.75 11.6381 7.75 11.5C7.75 11.3619 7.86193 11.25 8 11.25C8.13807 11.25 8.25 11.3619 8.25 11.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16.5 2V5M7.5 2V5M12 2V5" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M13 3.5H11C7.70017 3.5 6.05025 3.5 5.02513 4.52513C4 5.55025 4 7.20017 4 10.5V15C4 18.2998 4 19.9497 5.02513 20.9749C6.05025 22 7.70017 22 11 22H13C16.2998 22 17.9497 22 18.9749 20.9749C20 19.9497 20 18.2998 20 15V10.5C20 7.20017 20 5.55025 18.9749 4.52512C17.9497 3.5 16.2998 3.5 13 3.5Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8 15H12M8 11H16" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 786 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22C11.1818 22 10.4002 21.6698 8.83693 21.0095C4.94564 19.3657 3 18.5438 3 17.1613C3 16.7742 3 10.0645 3 7M12 22C12.8182 22 13.5998 21.6698 15.1631 21.0095C19.0544 19.3657 21 18.5438 21 17.1613V7M12 22L12 11.3548" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M8.32592 9.69138L5.40472 8.27785C3.80157 7.5021 3 7.11423 3 6.5C3 5.88577 3.80157 5.4979 5.40472 4.72215L8.32592 3.30862C10.1288 2.43621 11.0303 2 12 2C12.9697 2 13.8712 2.4362 15.6741 3.30862L18.5953 4.72215C20.1984 5.4979 21 5.88577 21 6.5C21 7.11423 20.1984 7.5021 18.5953 8.27785L15.6741 9.69138C13.8712 10.5638 12.9697 11 12 11C11.0303 11 10.1288 10.5638 8.32592 9.69138Z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M6 12L8 13" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M17 4L7 9" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show more