diff --git a/CONTRACT.md b/CONTRACT.md index 1024fd1..e5286ed 100644 --- a/CONTRACT.md +++ b/CONTRACT.md @@ -2,7 +2,7 @@ ## Status -This document defines the draft `1.0` core catalog document shape. Catalog and package version `0.3.0` remain pre-1.0 and may change incompatibly before a stable release. Registry publication is outside this repository change. User-imported provider packs use the separate contract in [`PROVIDER_PACKS.md`](./PROVIDER_PACKS.md); their custom-term assets never enter this core catalog. +This document defines the draft `1.0` core catalog document shape. Catalog and package version `0.4.0` remain pre-1.0 and may change incompatibly before a stable release. Registry publication is outside this repository change. User-imported provider packs use the separate contract in [`PROVIDER_PACKS.md`](./PROVIDER_PACKS.md); their custom-term assets never enter this core catalog. The JSON Schema at [`schemas/catalog.schema.json`](./schemas/catalog.schema.json) is the machine-readable source of truth. [`catalog/catalog.json`](./catalog/catalog.json) is the only source catalog. Generated Cargo and npm copies must not be edited directly. The schema is copied into both packages; `$schema` is an editor-facing canonical repository URL and runtime consumers do not fetch it. diff --git a/Cargo.lock b/Cargo.lock index 83d4517..7dec4ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "stack-theme" -version = "0.3.0" +version = "0.4.0" dependencies = [ "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 0c00418..fe2a4a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2024" license = "Apache-2.0" repository = "https://github.com/stack-sh/theme" rust-version = "1.85" -version = "0.3.0" +version = "0.4.0" [workspace.dependencies] serde = { version = "1.0", features = ["derive"] } diff --git a/README.md b/README.md index ab78a93..b5020db 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The draft core catalog contract is defined by [`CONTRACT.md`](./CONTRACT.md) and [`schemas/catalog.schema.json`](./schemas/catalog.schema.json). The separate local-only provider-pack contract is defined by [`PROVIDER_PACKS.md`](./PROVIDER_PACKS.md) and [`schemas/provider-pack.schema.json`](./schemas/provider-pack.schema.json). The canonical core source is [`catalog/catalog.json`](./catalog/catalog.json); Cargo and npm artifacts are generated from that source with one content revision. -The current `0.3.0` catalog contains the core `default`, `light`, and `dark` themes, repository-authored fallbacks for every Stack 1.0 node kind, 12 provider-neutral explicit icons, and versioned host-independent font metrics. The explicit icon identifiers are `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, and `observability`. Neither package has been released to a registry yet. +The current `0.4.0` catalog contains the core `default`, `light`, and `dark` themes, repository-authored fallbacks for every Stack 1.0 node kind, 30 provider-neutral explicit icons, and versioned host-independent font metrics. The explicit icon catalog covers clients and compute, networking and delivery, data and events, development workflows, security, general collaboration tools, and AI systems. Its identifiers are `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, `observability`, `gateway`, `load-balancer`, `dns`, `cdn`, `firewall`, `network`, `event`, `stream`, `search`, `analytics`, `repository`, `pipeline`, `secret`, `document`, `task`, `chat`, `email`, and `ai`. Neither package has been released to a registry yet. Provider-specific assets are not bundled. The provider-pack contract lets a CLI or browser validate an archive that the user explicitly selected from the provider's official source, keep it local, preserve the artwork, and carry source and terms notices into diagram output. diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index e738d5d..e071872 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -1,6 +1,6 @@ # Third-party licenses -No third-party fonts, icons, or other runtime assets are bundled in this repository. The 30 theme-specific fallback SVGs, 12 shared explicit icon SVGs, and `stack_sans` metrics are repository-authored Apache-2.0 work with provenance recorded in the canonical catalog. +No third-party fonts, icons, or other runtime assets are bundled in this repository. The 30 theme-specific fallback SVGs, 30 shared explicit icon SVGs, and `stack_sans` metrics are repository-authored Apache-2.0 work with provenance recorded in the canonical catalog. The repository uses the following third-party libraries: diff --git a/assets/core/ai.svg b/assets/core/ai.svg new file mode 100644 index 0000000..7d6d017 --- /dev/null +++ b/assets/core/ai.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/core/analytics.svg b/assets/core/analytics.svg new file mode 100644 index 0000000..66f2f42 --- /dev/null +++ b/assets/core/analytics.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/core/cdn.svg b/assets/core/cdn.svg new file mode 100644 index 0000000..93d2b61 --- /dev/null +++ b/assets/core/cdn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/core/chat.svg b/assets/core/chat.svg new file mode 100644 index 0000000..2e6714f --- /dev/null +++ b/assets/core/chat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/dns.svg b/assets/core/dns.svg new file mode 100644 index 0000000..bb21ad8 --- /dev/null +++ b/assets/core/dns.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/document.svg b/assets/core/document.svg new file mode 100644 index 0000000..a72a9ef --- /dev/null +++ b/assets/core/document.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/email.svg b/assets/core/email.svg new file mode 100644 index 0000000..d72c3e2 --- /dev/null +++ b/assets/core/email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/event.svg b/assets/core/event.svg new file mode 100644 index 0000000..a37decd --- /dev/null +++ b/assets/core/event.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/firewall.svg b/assets/core/firewall.svg new file mode 100644 index 0000000..9bd1134 --- /dev/null +++ b/assets/core/firewall.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/gateway.svg b/assets/core/gateway.svg new file mode 100644 index 0000000..2010a64 --- /dev/null +++ b/assets/core/gateway.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/load-balancer.svg b/assets/core/load-balancer.svg new file mode 100644 index 0000000..991148c --- /dev/null +++ b/assets/core/load-balancer.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/core/network.svg b/assets/core/network.svg new file mode 100644 index 0000000..88befd8 --- /dev/null +++ b/assets/core/network.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/core/pipeline.svg b/assets/core/pipeline.svg new file mode 100644 index 0000000..ebaa13e --- /dev/null +++ b/assets/core/pipeline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/core/repository.svg b/assets/core/repository.svg new file mode 100644 index 0000000..e8ecb85 --- /dev/null +++ b/assets/core/repository.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/core/search.svg b/assets/core/search.svg new file mode 100644 index 0000000..fc2784f --- /dev/null +++ b/assets/core/search.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/secret.svg b/assets/core/secret.svg new file mode 100644 index 0000000..4515ffa --- /dev/null +++ b/assets/core/secret.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/core/stream.svg b/assets/core/stream.svg new file mode 100644 index 0000000..96f8caf --- /dev/null +++ b/assets/core/stream.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/core/task.svg b/assets/core/task.svg new file mode 100644 index 0000000..47dcf72 --- /dev/null +++ b/assets/core/task.svg @@ -0,0 +1,4 @@ + + + + diff --git a/catalog/catalog.json b/catalog/catalog.json index 2f41e09..f412644 100644 --- a/catalog/catalog.json +++ b/catalog/catalog.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/stack-sh/theme/main/schemas/catalog.schema.json", "schemaVersion": "1.0", - "catalogVersion": "0.3.0", + "catalogVersion": "0.4.0", "reservedThemeIds": [], "fallbacks": { "missingThemeId": "default", @@ -110,7 +110,25 @@ { "id": "scheduler", "subject": "Scheduled execution", "asset": { "path": "assets/core/scheduler.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "webhook", "subject": "Webhook endpoint", "asset": { "path": "assets/core/webhook.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "identity", "subject": "Identity and access", "asset": { "path": "assets/core/identity.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, - { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } + { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "gateway", "subject": "Network gateway", "asset": { "path": "assets/core/gateway.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "load-balancer", "subject": "Load balancer", "asset": { "path": "assets/core/load-balancer.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "dns", "subject": "Domain name service", "asset": { "path": "assets/core/dns.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "cdn", "subject": "Content delivery network", "asset": { "path": "assets/core/cdn.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "firewall", "subject": "Network firewall", "asset": { "path": "assets/core/firewall.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "network", "subject": "Network topology", "asset": { "path": "assets/core/network.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "event", "subject": "Discrete event", "asset": { "path": "assets/core/event.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "stream", "subject": "Event stream", "asset": { "path": "assets/core/stream.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "search", "subject": "Search service", "asset": { "path": "assets/core/search.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "analytics", "subject": "Analytics system", "asset": { "path": "assets/core/analytics.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "repository", "subject": "Source code repository", "asset": { "path": "assets/core/repository.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "pipeline", "subject": "Delivery pipeline", "asset": { "path": "assets/core/pipeline.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "secret", "subject": "Secret or credential", "asset": { "path": "assets/core/secret.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "document", "subject": "Document or knowledge base", "asset": { "path": "assets/core/document.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "task", "subject": "Task or issue tracker", "asset": { "path": "assets/core/task.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "chat", "subject": "Chat or messaging tool", "asset": { "path": "assets/core/chat.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "email", "subject": "Email delivery", "asset": { "path": "assets/core/email.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "ai", "subject": "Artificial intelligence system", "asset": { "path": "assets/core/ai.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } ] }, { @@ -154,7 +172,25 @@ { "id": "scheduler", "subject": "Scheduled execution", "asset": { "path": "assets/core/scheduler.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "webhook", "subject": "Webhook endpoint", "asset": { "path": "assets/core/webhook.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "identity", "subject": "Identity and access", "asset": { "path": "assets/core/identity.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, - { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } + { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "gateway", "subject": "Network gateway", "asset": { "path": "assets/core/gateway.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "load-balancer", "subject": "Load balancer", "asset": { "path": "assets/core/load-balancer.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "dns", "subject": "Domain name service", "asset": { "path": "assets/core/dns.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "cdn", "subject": "Content delivery network", "asset": { "path": "assets/core/cdn.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "firewall", "subject": "Network firewall", "asset": { "path": "assets/core/firewall.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "network", "subject": "Network topology", "asset": { "path": "assets/core/network.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "event", "subject": "Discrete event", "asset": { "path": "assets/core/event.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "stream", "subject": "Event stream", "asset": { "path": "assets/core/stream.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "search", "subject": "Search service", "asset": { "path": "assets/core/search.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "analytics", "subject": "Analytics system", "asset": { "path": "assets/core/analytics.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "repository", "subject": "Source code repository", "asset": { "path": "assets/core/repository.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "pipeline", "subject": "Delivery pipeline", "asset": { "path": "assets/core/pipeline.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "secret", "subject": "Secret or credential", "asset": { "path": "assets/core/secret.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "document", "subject": "Document or knowledge base", "asset": { "path": "assets/core/document.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "task", "subject": "Task or issue tracker", "asset": { "path": "assets/core/task.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "chat", "subject": "Chat or messaging tool", "asset": { "path": "assets/core/chat.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "email", "subject": "Email delivery", "asset": { "path": "assets/core/email.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "ai", "subject": "Artificial intelligence system", "asset": { "path": "assets/core/ai.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } ] }, { @@ -198,7 +234,25 @@ { "id": "scheduler", "subject": "Scheduled execution", "asset": { "path": "assets/core/scheduler.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "webhook", "subject": "Webhook endpoint", "asset": { "path": "assets/core/webhook.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, { "id": "identity", "subject": "Identity and access", "asset": { "path": "assets/core/identity.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, - { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } + { "id": "observability", "subject": "Observability system", "asset": { "path": "assets/core/observability.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "gateway", "subject": "Network gateway", "asset": { "path": "assets/core/gateway.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "load-balancer", "subject": "Load balancer", "asset": { "path": "assets/core/load-balancer.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "dns", "subject": "Domain name service", "asset": { "path": "assets/core/dns.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "cdn", "subject": "Content delivery network", "asset": { "path": "assets/core/cdn.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "firewall", "subject": "Network firewall", "asset": { "path": "assets/core/firewall.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "network", "subject": "Network topology", "asset": { "path": "assets/core/network.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "event", "subject": "Discrete event", "asset": { "path": "assets/core/event.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "stream", "subject": "Event stream", "asset": { "path": "assets/core/stream.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "search", "subject": "Search service", "asset": { "path": "assets/core/search.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "analytics", "subject": "Analytics system", "asset": { "path": "assets/core/analytics.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "repository", "subject": "Source code repository", "asset": { "path": "assets/core/repository.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "pipeline", "subject": "Delivery pipeline", "asset": { "path": "assets/core/pipeline.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "secret", "subject": "Secret or credential", "asset": { "path": "assets/core/secret.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "document", "subject": "Document or knowledge base", "asset": { "path": "assets/core/document.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "task", "subject": "Task or issue tracker", "asset": { "path": "assets/core/task.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "chat", "subject": "Chat or messaging tool", "asset": { "path": "assets/core/chat.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "email", "subject": "Email delivery", "asset": { "path": "assets/core/email.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } }, + { "id": "ai", "subject": "Artificial intelligence system", "asset": { "path": "assets/core/ai.svg", "viewBox": [0, 0, 24, 24], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", "modified": false, "redistribution": { "cargo": true, "npm": true, "wasm": true, "commercialApplications": true } } } } ] } ] diff --git a/crates/stack-theme/assets/core/ai.svg b/crates/stack-theme/assets/core/ai.svg new file mode 100644 index 0000000..7d6d017 --- /dev/null +++ b/crates/stack-theme/assets/core/ai.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/crates/stack-theme/assets/core/analytics.svg b/crates/stack-theme/assets/core/analytics.svg new file mode 100644 index 0000000..66f2f42 --- /dev/null +++ b/crates/stack-theme/assets/core/analytics.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/crates/stack-theme/assets/core/cdn.svg b/crates/stack-theme/assets/core/cdn.svg new file mode 100644 index 0000000..93d2b61 --- /dev/null +++ b/crates/stack-theme/assets/core/cdn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/crates/stack-theme/assets/core/chat.svg b/crates/stack-theme/assets/core/chat.svg new file mode 100644 index 0000000..2e6714f --- /dev/null +++ b/crates/stack-theme/assets/core/chat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/dns.svg b/crates/stack-theme/assets/core/dns.svg new file mode 100644 index 0000000..bb21ad8 --- /dev/null +++ b/crates/stack-theme/assets/core/dns.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/document.svg b/crates/stack-theme/assets/core/document.svg new file mode 100644 index 0000000..a72a9ef --- /dev/null +++ b/crates/stack-theme/assets/core/document.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/email.svg b/crates/stack-theme/assets/core/email.svg new file mode 100644 index 0000000..d72c3e2 --- /dev/null +++ b/crates/stack-theme/assets/core/email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/event.svg b/crates/stack-theme/assets/core/event.svg new file mode 100644 index 0000000..a37decd --- /dev/null +++ b/crates/stack-theme/assets/core/event.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/firewall.svg b/crates/stack-theme/assets/core/firewall.svg new file mode 100644 index 0000000..9bd1134 --- /dev/null +++ b/crates/stack-theme/assets/core/firewall.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/gateway.svg b/crates/stack-theme/assets/core/gateway.svg new file mode 100644 index 0000000..2010a64 --- /dev/null +++ b/crates/stack-theme/assets/core/gateway.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/load-balancer.svg b/crates/stack-theme/assets/core/load-balancer.svg new file mode 100644 index 0000000..991148c --- /dev/null +++ b/crates/stack-theme/assets/core/load-balancer.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/crates/stack-theme/assets/core/network.svg b/crates/stack-theme/assets/core/network.svg new file mode 100644 index 0000000..88befd8 --- /dev/null +++ b/crates/stack-theme/assets/core/network.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/crates/stack-theme/assets/core/pipeline.svg b/crates/stack-theme/assets/core/pipeline.svg new file mode 100644 index 0000000..ebaa13e --- /dev/null +++ b/crates/stack-theme/assets/core/pipeline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/crates/stack-theme/assets/core/repository.svg b/crates/stack-theme/assets/core/repository.svg new file mode 100644 index 0000000..e8ecb85 --- /dev/null +++ b/crates/stack-theme/assets/core/repository.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/crates/stack-theme/assets/core/search.svg b/crates/stack-theme/assets/core/search.svg new file mode 100644 index 0000000..fc2784f --- /dev/null +++ b/crates/stack-theme/assets/core/search.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/secret.svg b/crates/stack-theme/assets/core/secret.svg new file mode 100644 index 0000000..4515ffa --- /dev/null +++ b/crates/stack-theme/assets/core/secret.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/assets/core/stream.svg b/crates/stack-theme/assets/core/stream.svg new file mode 100644 index 0000000..96f8caf --- /dev/null +++ b/crates/stack-theme/assets/core/stream.svg @@ -0,0 +1,3 @@ + + + diff --git a/crates/stack-theme/assets/core/task.svg b/crates/stack-theme/assets/core/task.svg new file mode 100644 index 0000000..47dcf72 --- /dev/null +++ b/crates/stack-theme/assets/core/task.svg @@ -0,0 +1,4 @@ + + + + diff --git a/crates/stack-theme/src/generated/catalog.json b/crates/stack-theme/src/generated/catalog.json index ed7ee96..82d8186 100644 --- a/crates/stack-theme/src/generated/catalog.json +++ b/crates/stack-theme/src/generated/catalog.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/stack-sh/theme/main/schemas/catalog.schema.json", "schemaVersion": "1.0", - "catalogVersion": "0.3.0", + "catalogVersion": "0.4.0", "reservedThemeIds": [], "fallbacks": { "missingThemeId": "default", @@ -825,23 +825,1716 @@ } } } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + } + ] + }, + { + "id": "light", + "name": "Stack Light", + "description": "Warm neutral surfaces for documents with light backgrounds.", + "palette": { + "canvas": "#FAF9F6", + "surface": "#FFFFFF", + "surfaceMuted": "#EEEAE3", + "text": "#1C1917", + "textMuted": "#57534E", + "border": "#78716C", + "accent": "#005DBB", + "danger": "#A52A1A", + "connector": "#57534E" + }, + "typography": { + "fontMetricsId": "stack_sans", + "nodeLabelSizeMilliPx": 14000, + "nodeDetailSizeMilliPx": 12000, + "groupLabelSizeMilliPx": 13000, + "edgeLabelSizeMilliPx": 11000, + "lineHeightPermille": 1400, + "labelWeight": 600, + "detailWeight": 400 + }, + "nodeKindFallbacks": { + "actor": { + "shape": "circle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-actor" + }, + "client": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-client" + }, + "service": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-service" + }, + "function": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-function" + }, + "worker": { + "shape": "capsule", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-worker" + }, + "database": { + "shape": "cylinder", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-database" + }, + "cache": { + "shape": "cylinder", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-cache" + }, + "queue": { + "shape": "capsule", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-queue" + }, + "storage": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 4000, + "fallbackIconId": "kind-storage" + }, + "external": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-external" + } + }, + "connector": { + "stroke": "connector", + "text": "textMuted", + "labelBackground": "canvas", + "widthMilliPx": 1250, + "arrowSizeMilliPx": 6500 + }, + "icons": [ + { + "id": "kind-actor", + "subject": "Human actor", + "asset": { + "path": "assets/light/kind-actor.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-client", + "subject": "Client application or device", + "asset": { + "path": "assets/light/kind-client.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-service", + "subject": "Long-running service", + "asset": { + "path": "assets/light/kind-service.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-function", + "subject": "On-demand function", + "asset": { + "path": "assets/light/kind-function.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-worker", + "subject": "Background worker", + "asset": { + "path": "assets/light/kind-worker.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-database", + "subject": "Durable database", + "asset": { + "path": "assets/light/kind-database.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-cache", + "subject": "Disposable cache", + "asset": { + "path": "assets/light/kind-cache.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-queue", + "subject": "Asynchronous queue or stream", + "asset": { + "path": "assets/light/kind-queue.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-storage", + "subject": "Blob or file storage", + "asset": { + "path": "assets/light/kind-storage.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-external", + "subject": "External system", + "asset": { + "path": "assets/light/kind-external.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "api", + "subject": "Application programming interface", + "asset": { + "path": "assets/core/api.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "web", + "subject": "Web application", + "asset": { + "path": "assets/core/web.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "mobile", + "subject": "Mobile application", + "asset": { + "path": "assets/core/mobile.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "desktop", + "subject": "Desktop application", + "asset": { + "path": "assets/core/desktop.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "server", + "subject": "Server host", + "asset": { + "path": "assets/core/server.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "container", + "subject": "Application container", + "asset": { + "path": "assets/core/container.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cluster", + "subject": "Compute cluster", + "asset": { + "path": "assets/core/cluster.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cloud", + "subject": "Cloud environment", + "asset": { + "path": "assets/core/cloud.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "scheduler", + "subject": "Scheduled execution", + "asset": { + "path": "assets/core/scheduler.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "webhook", + "subject": "Webhook endpoint", + "asset": { + "path": "assets/core/webhook.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "identity", + "subject": "Identity and access", + "asset": { + "path": "assets/core/identity.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "observability", + "subject": "Observability system", + "asset": { + "path": "assets/core/observability.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } } ] }, { - "id": "light", - "name": "Stack Light", - "description": "Warm neutral surfaces for documents with light backgrounds.", + "id": "dark", + "name": "Stack Dark", + "description": "High-contrast cool surfaces for dark canvases.", "palette": { - "canvas": "#FAF9F6", - "surface": "#FFFFFF", - "surfaceMuted": "#EEEAE3", - "text": "#1C1917", - "textMuted": "#57534E", - "border": "#78716C", - "accent": "#005DBB", - "danger": "#A52A1A", - "connector": "#57534E" + "canvas": "#0B1020", + "surface": "#141B2D", + "surfaceMuted": "#1E293B", + "text": "#F8FAFC", + "textMuted": "#CBD5E1", + "border": "#94A3B8", + "accent": "#69A7FF", + "danger": "#FF8A9A", + "connector": "#CBD5E1" }, "typography": { "fontMetricsId": "stack_sans", @@ -949,15 +2642,15 @@ "stroke": "connector", "text": "textMuted", "labelBackground": "canvas", - "widthMilliPx": 1250, - "arrowSizeMilliPx": 6500 + "widthMilliPx": 1750, + "arrowSizeMilliPx": 7500 }, "icons": [ { "id": "kind-actor", "subject": "Human actor", "asset": { - "path": "assets/light/kind-actor.svg", + "path": "assets/dark/kind-actor.svg", "viewBox": [ 0, 0, @@ -965,7 +2658,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -984,7 +2677,7 @@ "id": "kind-client", "subject": "Client application or device", "asset": { - "path": "assets/light/kind-client.svg", + "path": "assets/dark/kind-client.svg", "viewBox": [ 0, 0, @@ -992,7 +2685,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1011,7 +2704,7 @@ "id": "kind-service", "subject": "Long-running service", "asset": { - "path": "assets/light/kind-service.svg", + "path": "assets/dark/kind-service.svg", "viewBox": [ 0, 0, @@ -1019,7 +2712,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1038,7 +2731,7 @@ "id": "kind-function", "subject": "On-demand function", "asset": { - "path": "assets/light/kind-function.svg", + "path": "assets/dark/kind-function.svg", "viewBox": [ 0, 0, @@ -1046,7 +2739,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1065,7 +2758,7 @@ "id": "kind-worker", "subject": "Background worker", "asset": { - "path": "assets/light/kind-worker.svg", + "path": "assets/dark/kind-worker.svg", "viewBox": [ 0, 0, @@ -1073,7 +2766,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1092,7 +2785,7 @@ "id": "kind-database", "subject": "Durable database", "asset": { - "path": "assets/light/kind-database.svg", + "path": "assets/dark/kind-database.svg", "viewBox": [ 0, 0, @@ -1100,7 +2793,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1119,7 +2812,7 @@ "id": "kind-cache", "subject": "Disposable cache", "asset": { - "path": "assets/light/kind-cache.svg", + "path": "assets/dark/kind-cache.svg", "viewBox": [ 0, 0, @@ -1127,7 +2820,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1146,7 +2839,7 @@ "id": "kind-queue", "subject": "Asynchronous queue or stream", "asset": { - "path": "assets/light/kind-queue.svg", + "path": "assets/dark/kind-queue.svg", "viewBox": [ 0, 0, @@ -1154,7 +2847,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1173,7 +2866,7 @@ "id": "kind-storage", "subject": "Blob or file storage", "asset": { - "path": "assets/light/kind-storage.svg", + "path": "assets/dark/kind-storage.svg", "viewBox": [ 0, 0, @@ -1181,7 +2874,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1200,7 +2893,7 @@ "id": "kind-external", "subject": "External system", "asset": { - "path": "assets/light/kind-external.svg", + "path": "assets/dark/kind-external.svg", "viewBox": [ 0, 0, @@ -1208,7 +2901,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1412,119 +3105,11 @@ } } }, - { - "id": "cloud", - "subject": "Cloud environment", - "asset": { - "path": "assets/core/cloud.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "scheduler", - "subject": "Scheduled execution", - "asset": { - "path": "assets/core/scheduler.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "webhook", - "subject": "Webhook endpoint", - "asset": { - "path": "assets/core/webhook.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "identity", - "subject": "Identity and access", - "asset": { - "path": "assets/core/identity.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "observability", - "subject": "Observability system", + { + "id": "cloud", + "subject": "Cloud environment", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/cloud.svg", "viewBox": [ 0, 0, @@ -1546,139 +3131,12 @@ } } } - } - ] - }, - { - "id": "dark", - "name": "Stack Dark", - "description": "High-contrast cool surfaces for dark canvases.", - "palette": { - "canvas": "#0B1020", - "surface": "#141B2D", - "surfaceMuted": "#1E293B", - "text": "#F8FAFC", - "textMuted": "#CBD5E1", - "border": "#94A3B8", - "accent": "#69A7FF", - "danger": "#FF8A9A", - "connector": "#CBD5E1" - }, - "typography": { - "fontMetricsId": "stack_sans", - "nodeLabelSizeMilliPx": 14000, - "nodeDetailSizeMilliPx": 12000, - "groupLabelSizeMilliPx": 13000, - "edgeLabelSizeMilliPx": 11000, - "lineHeightPermille": 1400, - "labelWeight": 600, - "detailWeight": 400 - }, - "nodeKindFallbacks": { - "actor": { - "shape": "circle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-actor" - }, - "client": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-client" - }, - "service": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-service" - }, - "function": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-function" - }, - "worker": { - "shape": "capsule", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-worker" - }, - "database": { - "shape": "cylinder", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-database" - }, - "cache": { - "shape": "cylinder", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-cache" }, - "queue": { - "shape": "capsule", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-queue" - }, - "storage": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 4000, - "fallbackIconId": "kind-storage" - }, - "external": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-external" - } - }, - "connector": { - "stroke": "connector", - "text": "textMuted", - "labelBackground": "canvas", - "widthMilliPx": 1750, - "arrowSizeMilliPx": 7500 - }, - "icons": [ { - "id": "kind-actor", - "subject": "Human actor", + "id": "scheduler", + "subject": "Scheduled execution", "asset": { - "path": "assets/dark/kind-actor.svg", + "path": "assets/core/scheduler.svg", "viewBox": [ 0, 0, @@ -1686,8 +3144,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1702,10 +3160,10 @@ } }, { - "id": "kind-client", - "subject": "Client application or device", + "id": "webhook", + "subject": "Webhook endpoint", "asset": { - "path": "assets/dark/kind-client.svg", + "path": "assets/core/webhook.svg", "viewBox": [ 0, 0, @@ -1713,8 +3171,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1729,10 +3187,10 @@ } }, { - "id": "kind-service", - "subject": "Long-running service", + "id": "identity", + "subject": "Identity and access", "asset": { - "path": "assets/dark/kind-service.svg", + "path": "assets/core/identity.svg", "viewBox": [ 0, 0, @@ -1740,8 +3198,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1756,10 +3214,10 @@ } }, { - "id": "kind-function", - "subject": "On-demand function", + "id": "observability", + "subject": "Observability system", "asset": { - "path": "assets/dark/kind-function.svg", + "path": "assets/core/observability.svg", "viewBox": [ 0, 0, @@ -1767,8 +3225,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1783,10 +3241,10 @@ } }, { - "id": "kind-worker", - "subject": "Background worker", + "id": "gateway", + "subject": "Network gateway", "asset": { - "path": "assets/dark/kind-worker.svg", + "path": "assets/core/gateway.svg", "viewBox": [ 0, 0, @@ -1794,8 +3252,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1810,10 +3268,10 @@ } }, { - "id": "kind-database", - "subject": "Durable database", + "id": "load-balancer", + "subject": "Load balancer", "asset": { - "path": "assets/dark/kind-database.svg", + "path": "assets/core/load-balancer.svg", "viewBox": [ 0, 0, @@ -1821,8 +3279,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1837,10 +3295,10 @@ } }, { - "id": "kind-cache", - "subject": "Disposable cache", + "id": "dns", + "subject": "Domain name service", "asset": { - "path": "assets/dark/kind-cache.svg", + "path": "assets/core/dns.svg", "viewBox": [ 0, 0, @@ -1848,8 +3306,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1864,10 +3322,10 @@ } }, { - "id": "kind-queue", - "subject": "Asynchronous queue or stream", + "id": "cdn", + "subject": "Content delivery network", "asset": { - "path": "assets/dark/kind-queue.svg", + "path": "assets/core/cdn.svg", "viewBox": [ 0, 0, @@ -1875,8 +3333,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1891,10 +3349,10 @@ } }, { - "id": "kind-storage", - "subject": "Blob or file storage", + "id": "firewall", + "subject": "Network firewall", "asset": { - "path": "assets/dark/kind-storage.svg", + "path": "assets/core/firewall.svg", "viewBox": [ 0, 0, @@ -1902,8 +3360,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1918,10 +3376,10 @@ } }, { - "id": "kind-external", - "subject": "External system", + "id": "network", + "subject": "Network topology", "asset": { - "path": "assets/dark/kind-external.svg", + "path": "assets/core/network.svg", "viewBox": [ 0, 0, @@ -1929,8 +3387,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1945,10 +3403,10 @@ } }, { - "id": "api", - "subject": "Application programming interface", + "id": "event", + "subject": "Discrete event", "asset": { - "path": "assets/core/api.svg", + "path": "assets/core/event.svg", "viewBox": [ 0, 0, @@ -1957,7 +3415,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1972,10 +3430,10 @@ } }, { - "id": "web", - "subject": "Web application", + "id": "stream", + "subject": "Event stream", "asset": { - "path": "assets/core/web.svg", + "path": "assets/core/stream.svg", "viewBox": [ 0, 0, @@ -1984,7 +3442,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1999,10 +3457,10 @@ } }, { - "id": "mobile", - "subject": "Mobile application", + "id": "search", + "subject": "Search service", "asset": { - "path": "assets/core/mobile.svg", + "path": "assets/core/search.svg", "viewBox": [ 0, 0, @@ -2011,7 +3469,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2026,10 +3484,10 @@ } }, { - "id": "desktop", - "subject": "Desktop application", + "id": "analytics", + "subject": "Analytics system", "asset": { - "path": "assets/core/desktop.svg", + "path": "assets/core/analytics.svg", "viewBox": [ 0, 0, @@ -2038,7 +3496,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2053,10 +3511,10 @@ } }, { - "id": "server", - "subject": "Server host", + "id": "repository", + "subject": "Source code repository", "asset": { - "path": "assets/core/server.svg", + "path": "assets/core/repository.svg", "viewBox": [ 0, 0, @@ -2065,7 +3523,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2080,10 +3538,10 @@ } }, { - "id": "container", - "subject": "Application container", + "id": "pipeline", + "subject": "Delivery pipeline", "asset": { - "path": "assets/core/container.svg", + "path": "assets/core/pipeline.svg", "viewBox": [ 0, 0, @@ -2092,7 +3550,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2107,10 +3565,10 @@ } }, { - "id": "cluster", - "subject": "Compute cluster", + "id": "secret", + "subject": "Secret or credential", "asset": { - "path": "assets/core/cluster.svg", + "path": "assets/core/secret.svg", "viewBox": [ 0, 0, @@ -2119,7 +3577,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2134,10 +3592,10 @@ } }, { - "id": "cloud", - "subject": "Cloud environment", + "id": "document", + "subject": "Document or knowledge base", "asset": { - "path": "assets/core/cloud.svg", + "path": "assets/core/document.svg", "viewBox": [ 0, 0, @@ -2146,7 +3604,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2161,10 +3619,10 @@ } }, { - "id": "scheduler", - "subject": "Scheduled execution", + "id": "task", + "subject": "Task or issue tracker", "asset": { - "path": "assets/core/scheduler.svg", + "path": "assets/core/task.svg", "viewBox": [ 0, 0, @@ -2173,7 +3631,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2188,10 +3646,10 @@ } }, { - "id": "webhook", - "subject": "Webhook endpoint", + "id": "chat", + "subject": "Chat or messaging tool", "asset": { - "path": "assets/core/webhook.svg", + "path": "assets/core/chat.svg", "viewBox": [ 0, 0, @@ -2200,7 +3658,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2215,10 +3673,10 @@ } }, { - "id": "identity", - "subject": "Identity and access", + "id": "email", + "subject": "Email delivery", "asset": { - "path": "assets/core/identity.svg", + "path": "assets/core/email.svg", "viewBox": [ 0, 0, @@ -2227,7 +3685,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2242,10 +3700,10 @@ } }, { - "id": "observability", - "subject": "Observability system", + "id": "ai", + "subject": "Artificial intelligence system", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/ai.svg", "viewBox": [ 0, 0, @@ -2254,7 +3712,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", diff --git a/crates/stack-theme/src/generated/metadata.rs b/crates/stack-theme/src/generated/metadata.rs index 16dd579..1fb3a51 100644 --- a/crates/stack-theme/src/generated/metadata.rs +++ b/crates/stack-theme/src/generated/metadata.rs @@ -1,19 +1,37 @@ // Generated by scripts/generate.mjs. Do not edit. -pub const CATALOG_VERSION: &str = "0.3.0"; -pub const CATALOG_REVISION: &str = "sha256:e4eaad0813fcfef4a203e861909ff38833270646f9097155974c7c92108c5b1e"; +pub const CATALOG_VERSION: &str = "0.4.0"; +pub const CATALOG_REVISION: &str = "sha256:9cb3de8b504acbf22c93cea5fbea66be50f38734dc1dee18b9cab7084082cc1f"; pub fn icon_svg(asset_path: &str) -> Option<&'static str> { match asset_path { + "assets/core/ai.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/ai.svg"))), + "assets/core/analytics.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/analytics.svg"))), "assets/core/api.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/api.svg"))), + "assets/core/cdn.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/cdn.svg"))), + "assets/core/chat.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/chat.svg"))), "assets/core/cloud.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/cloud.svg"))), "assets/core/cluster.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/cluster.svg"))), "assets/core/container.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/container.svg"))), "assets/core/desktop.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/desktop.svg"))), + "assets/core/dns.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/dns.svg"))), + "assets/core/document.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/document.svg"))), + "assets/core/email.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/email.svg"))), + "assets/core/event.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/event.svg"))), + "assets/core/firewall.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/firewall.svg"))), + "assets/core/gateway.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/gateway.svg"))), "assets/core/identity.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/identity.svg"))), + "assets/core/load-balancer.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/load-balancer.svg"))), "assets/core/mobile.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/mobile.svg"))), + "assets/core/network.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/network.svg"))), "assets/core/observability.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/observability.svg"))), + "assets/core/pipeline.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/pipeline.svg"))), + "assets/core/repository.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/repository.svg"))), "assets/core/scheduler.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/scheduler.svg"))), + "assets/core/search.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/search.svg"))), + "assets/core/secret.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/secret.svg"))), "assets/core/server.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/server.svg"))), + "assets/core/stream.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/stream.svg"))), + "assets/core/task.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/task.svg"))), "assets/core/web.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/web.svg"))), "assets/core/webhook.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/core/webhook.svg"))), "assets/dark/kind-actor.svg" => Some(include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/dark/kind-actor.svg"))), diff --git a/docs/core-theme-review.md b/docs/core-theme-review.md index cbf43f3..32fcc3c 100644 --- a/docs/core-theme-review.md +++ b/docs/core-theme-review.md @@ -2,15 +2,15 @@ Review date: 2026-09-04 -Catalog version: `0.2.0` +Catalog version: `0.4.0` -Catalog revision: `sha256:d3a8a5a9d2100e496af3fd7adf389788f4a77508bf749a108183a2abf8f681e1` +Catalog revision: `sha256:9cb3de8b504acbf22c93cea5fbea66be50f38734dc1dee18b9cab7084082cc1f` ## Automated evidence - The catalog validator accepts `default`, `light`, and `dark` with all ten Stack 1.0 node-kind fallbacks and explicit recovery through `default` / `kind-external` for missing non-core themes or icons. - Each theme uses ten distinct logical icon identifiers and at least four fallback shapes, so kinds remain distinguishable without color. -- Each theme exposes the same 12 provider-neutral explicit icon identifiers and subjects. Their 36 catalog references resolve to 12 shared, repository-authored SVG assets with identical metadata. +- Each theme exposes the same 30 provider-neutral explicit icon identifiers and subjects. Their 90 catalog references resolve to 30 shared, repository-authored SVG assets with identical metadata. - Text and danger colors meet a `4.5:1` contrast floor against the surface. Borders, accents, and connectors meet a `3:1` non-text contrast floor. - The deterministic `stack_sans` metrics cover explicit narrow glyphs, default advances, pinned wide Unicode ranges, CJK, and emoji without host font measurement. - Cargo and npm artifacts expose identical catalog, schema, assets, version, and content revision data. @@ -20,8 +20,8 @@ Catalog revision: `sha256:d3a8a5a9d2100e496af3fd7adf389788f4a77508bf749a108183a2 The dependency-free review page was served from the repository root and checked in isolated headless Chrome at `1440 x 1000` and `390 x 844` CSS pixels. -- All three theme sections, 30 node fallbacks, 36 explicit icon cards, and 66 embedded SVG references rendered. -- The 12 explicit identifiers appeared once and in the same order in every theme; every SVG retained `currentColor` styling. +- All three theme sections, 30 node fallbacks, 90 explicit icon cards, and 120 embedded SVG references rendered. +- The 30 explicit identifiers appeared once and in the same order in every theme; every SVG retained `currentColor` styling. - Every node kind retained a recognizable subject and a non-color shape cue in each theme. - The Japanese and emoji typography sample rendered within every theme card. - Both viewports had no horizontal overflow or clipped explicit icon card, and the heading order remained `h1` → `h2` → `h3`. @@ -29,4 +29,4 @@ The dependency-free review page was served from the repository root and checked ## License evidence -All 42 unique runtime SVG assets and the deterministic metrics table are repository-authored Apache-2.0 work. No third-party runtime font, icon, or image is bundled. Development dependencies remain listed in [`THIRD_PARTY_LICENSES.md`](../THIRD_PARTY_LICENSES.md). +All 60 unique runtime SVG assets and the deterministic metrics table are repository-authored Apache-2.0 work. No third-party runtime font, icon, or image is bundled. Development dependencies remain listed in [`THIRD_PARTY_LICENSES.md`](../THIRD_PARTY_LICENSES.md). diff --git a/package-lock.json b/package-lock.json index 6e9df9a..836586c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "stack-theme-workspace", - "version": "0.3.0", + "version": "0.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "stack-theme-workspace", - "version": "0.3.0", + "version": "0.4.0", "workspaces": [ "packages/theme" ], @@ -475,7 +475,7 @@ }, "packages/theme": { "name": "@stack-sh/theme", - "version": "0.3.0", + "version": "0.4.0", "license": "Apache-2.0" } } diff --git a/package.json b/package.json index 997895f..152696b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "stack-theme-workspace", "private": true, - "version": "0.3.0", + "version": "0.4.0", "workspaces": [ "packages/theme" ], diff --git a/packages/theme/README.md b/packages/theme/README.md index 9378bfe..7457794 100644 --- a/packages/theme/README.md +++ b/packages/theme/README.md @@ -4,6 +4,6 @@ The package is browser-safe and performs no filesystem, network, clock, locale, or host-font access. See the repository's [`CONTRACT.md`](https://github.com/stack-sh/theme/blob/main/CONTRACT.md) for the core catalog and [`PROVIDER_PACKS.md`](https://github.com/stack-sh/theme/blob/main/PROVIDER_PACKS.md) for the local provider-pack contract. -Catalog `0.3.0` includes 12 provider-neutral explicit icons shared by the `default`, `light`, and `dark` themes. Resolve a core icon's catalog asset path through `iconSvg()`; do not treat a logical icon identifier as a filesystem path or URL. +Catalog `0.4.0` includes 30 provider-neutral explicit icons shared by the `default`, `light`, and `dark` themes: `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, `observability`, `gateway`, `load-balancer`, `dns`, `cdn`, `firewall`, `network`, `event`, `stream`, `search`, `analytics`, `repository`, `pipeline`, `secret`, `document`, `task`, `chat`, `email`, and `ai`. Resolve a core icon's catalog asset path through `iconSvg()`; do not treat a logical icon identifier as a filesystem path or URL. `providerPackSchema` describes manifests produced from a provider archive that the user explicitly imports. It requires local-only processing, disabled package redistribution, provider-prefixed icon IDs, source and processed hashes, artwork-preservation policy, and user-visible terms notices. The package contains no vendor asset bytes and never downloads or uploads an archive. diff --git a/packages/theme/assets/core/ai.svg b/packages/theme/assets/core/ai.svg new file mode 100644 index 0000000..7d6d017 --- /dev/null +++ b/packages/theme/assets/core/ai.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/theme/assets/core/analytics.svg b/packages/theme/assets/core/analytics.svg new file mode 100644 index 0000000..66f2f42 --- /dev/null +++ b/packages/theme/assets/core/analytics.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/theme/assets/core/cdn.svg b/packages/theme/assets/core/cdn.svg new file mode 100644 index 0000000..93d2b61 --- /dev/null +++ b/packages/theme/assets/core/cdn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/theme/assets/core/chat.svg b/packages/theme/assets/core/chat.svg new file mode 100644 index 0000000..2e6714f --- /dev/null +++ b/packages/theme/assets/core/chat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/dns.svg b/packages/theme/assets/core/dns.svg new file mode 100644 index 0000000..bb21ad8 --- /dev/null +++ b/packages/theme/assets/core/dns.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/document.svg b/packages/theme/assets/core/document.svg new file mode 100644 index 0000000..a72a9ef --- /dev/null +++ b/packages/theme/assets/core/document.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/email.svg b/packages/theme/assets/core/email.svg new file mode 100644 index 0000000..d72c3e2 --- /dev/null +++ b/packages/theme/assets/core/email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/event.svg b/packages/theme/assets/core/event.svg new file mode 100644 index 0000000..a37decd --- /dev/null +++ b/packages/theme/assets/core/event.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/firewall.svg b/packages/theme/assets/core/firewall.svg new file mode 100644 index 0000000..9bd1134 --- /dev/null +++ b/packages/theme/assets/core/firewall.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/gateway.svg b/packages/theme/assets/core/gateway.svg new file mode 100644 index 0000000..2010a64 --- /dev/null +++ b/packages/theme/assets/core/gateway.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/load-balancer.svg b/packages/theme/assets/core/load-balancer.svg new file mode 100644 index 0000000..991148c --- /dev/null +++ b/packages/theme/assets/core/load-balancer.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/theme/assets/core/network.svg b/packages/theme/assets/core/network.svg new file mode 100644 index 0000000..88befd8 --- /dev/null +++ b/packages/theme/assets/core/network.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/theme/assets/core/pipeline.svg b/packages/theme/assets/core/pipeline.svg new file mode 100644 index 0000000..ebaa13e --- /dev/null +++ b/packages/theme/assets/core/pipeline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/theme/assets/core/repository.svg b/packages/theme/assets/core/repository.svg new file mode 100644 index 0000000..e8ecb85 --- /dev/null +++ b/packages/theme/assets/core/repository.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/theme/assets/core/search.svg b/packages/theme/assets/core/search.svg new file mode 100644 index 0000000..fc2784f --- /dev/null +++ b/packages/theme/assets/core/search.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/secret.svg b/packages/theme/assets/core/secret.svg new file mode 100644 index 0000000..4515ffa --- /dev/null +++ b/packages/theme/assets/core/secret.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/assets/core/stream.svg b/packages/theme/assets/core/stream.svg new file mode 100644 index 0000000..96f8caf --- /dev/null +++ b/packages/theme/assets/core/stream.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/theme/assets/core/task.svg b/packages/theme/assets/core/task.svg new file mode 100644 index 0000000..47dcf72 --- /dev/null +++ b/packages/theme/assets/core/task.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/theme/catalog-metadata.json b/packages/theme/catalog-metadata.json index a465f72..ba3a986 100644 --- a/packages/theme/catalog-metadata.json +++ b/packages/theme/catalog-metadata.json @@ -1,4 +1,4 @@ { - "catalogVersion": "0.3.0", - "catalogRevision": "sha256:e4eaad0813fcfef4a203e861909ff38833270646f9097155974c7c92108c5b1e" + "catalogVersion": "0.4.0", + "catalogRevision": "sha256:9cb3de8b504acbf22c93cea5fbea66be50f38734dc1dee18b9cab7084082cc1f" } diff --git a/packages/theme/catalog.generated.js b/packages/theme/catalog.generated.js index 84e3e48..bfc060e 100644 --- a/packages/theme/catalog.generated.js +++ b/packages/theme/catalog.generated.js @@ -2,7 +2,7 @@ const catalogData = { "$schema": "https://raw.githubusercontent.com/stack-sh/theme/main/schemas/catalog.schema.json", "schemaVersion": "1.0", - "catalogVersion": "0.3.0", + "catalogVersion": "0.4.0", "reservedThemeIds": [], "fallbacks": { "missingThemeId": "default", @@ -826,23 +826,1716 @@ const catalogData = { } } } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + } + ] + }, + { + "id": "light", + "name": "Stack Light", + "description": "Warm neutral surfaces for documents with light backgrounds.", + "palette": { + "canvas": "#FAF9F6", + "surface": "#FFFFFF", + "surfaceMuted": "#EEEAE3", + "text": "#1C1917", + "textMuted": "#57534E", + "border": "#78716C", + "accent": "#005DBB", + "danger": "#A52A1A", + "connector": "#57534E" + }, + "typography": { + "fontMetricsId": "stack_sans", + "nodeLabelSizeMilliPx": 14000, + "nodeDetailSizeMilliPx": 12000, + "groupLabelSizeMilliPx": 13000, + "edgeLabelSizeMilliPx": 11000, + "lineHeightPermille": 1400, + "labelWeight": 600, + "detailWeight": 400 + }, + "nodeKindFallbacks": { + "actor": { + "shape": "circle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-actor" + }, + "client": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-client" + }, + "service": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-service" + }, + "function": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-function" + }, + "worker": { + "shape": "capsule", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-worker" + }, + "database": { + "shape": "cylinder", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-database" + }, + "cache": { + "shape": "cylinder", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-cache" + }, + "queue": { + "shape": "capsule", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-queue" + }, + "storage": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 4000, + "fallbackIconId": "kind-storage" + }, + "external": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-external" + } + }, + "connector": { + "stroke": "connector", + "text": "textMuted", + "labelBackground": "canvas", + "widthMilliPx": 1250, + "arrowSizeMilliPx": 6500 + }, + "icons": [ + { + "id": "kind-actor", + "subject": "Human actor", + "asset": { + "path": "assets/light/kind-actor.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-client", + "subject": "Client application or device", + "asset": { + "path": "assets/light/kind-client.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-service", + "subject": "Long-running service", + "asset": { + "path": "assets/light/kind-service.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-function", + "subject": "On-demand function", + "asset": { + "path": "assets/light/kind-function.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-worker", + "subject": "Background worker", + "asset": { + "path": "assets/light/kind-worker.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-database", + "subject": "Durable database", + "asset": { + "path": "assets/light/kind-database.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-cache", + "subject": "Disposable cache", + "asset": { + "path": "assets/light/kind-cache.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-queue", + "subject": "Asynchronous queue or stream", + "asset": { + "path": "assets/light/kind-queue.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-storage", + "subject": "Blob or file storage", + "asset": { + "path": "assets/light/kind-storage.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-external", + "subject": "External system", + "asset": { + "path": "assets/light/kind-external.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "api", + "subject": "Application programming interface", + "asset": { + "path": "assets/core/api.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "web", + "subject": "Web application", + "asset": { + "path": "assets/core/web.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "mobile", + "subject": "Mobile application", + "asset": { + "path": "assets/core/mobile.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "desktop", + "subject": "Desktop application", + "asset": { + "path": "assets/core/desktop.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "server", + "subject": "Server host", + "asset": { + "path": "assets/core/server.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "container", + "subject": "Application container", + "asset": { + "path": "assets/core/container.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cluster", + "subject": "Compute cluster", + "asset": { + "path": "assets/core/cluster.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cloud", + "subject": "Cloud environment", + "asset": { + "path": "assets/core/cloud.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "scheduler", + "subject": "Scheduled execution", + "asset": { + "path": "assets/core/scheduler.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "webhook", + "subject": "Webhook endpoint", + "asset": { + "path": "assets/core/webhook.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "identity", + "subject": "Identity and access", + "asset": { + "path": "assets/core/identity.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "observability", + "subject": "Observability system", + "asset": { + "path": "assets/core/observability.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } } ] }, { - "id": "light", - "name": "Stack Light", - "description": "Warm neutral surfaces for documents with light backgrounds.", + "id": "dark", + "name": "Stack Dark", + "description": "High-contrast cool surfaces for dark canvases.", "palette": { - "canvas": "#FAF9F6", - "surface": "#FFFFFF", - "surfaceMuted": "#EEEAE3", - "text": "#1C1917", - "textMuted": "#57534E", - "border": "#78716C", - "accent": "#005DBB", - "danger": "#A52A1A", - "connector": "#57534E" + "canvas": "#0B1020", + "surface": "#141B2D", + "surfaceMuted": "#1E293B", + "text": "#F8FAFC", + "textMuted": "#CBD5E1", + "border": "#94A3B8", + "accent": "#69A7FF", + "danger": "#FF8A9A", + "connector": "#CBD5E1" }, "typography": { "fontMetricsId": "stack_sans", @@ -950,15 +2643,15 @@ const catalogData = { "stroke": "connector", "text": "textMuted", "labelBackground": "canvas", - "widthMilliPx": 1250, - "arrowSizeMilliPx": 6500 + "widthMilliPx": 1750, + "arrowSizeMilliPx": 7500 }, "icons": [ { "id": "kind-actor", "subject": "Human actor", "asset": { - "path": "assets/light/kind-actor.svg", + "path": "assets/dark/kind-actor.svg", "viewBox": [ 0, 0, @@ -966,7 +2659,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -985,7 +2678,7 @@ const catalogData = { "id": "kind-client", "subject": "Client application or device", "asset": { - "path": "assets/light/kind-client.svg", + "path": "assets/dark/kind-client.svg", "viewBox": [ 0, 0, @@ -993,7 +2686,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1012,7 +2705,7 @@ const catalogData = { "id": "kind-service", "subject": "Long-running service", "asset": { - "path": "assets/light/kind-service.svg", + "path": "assets/dark/kind-service.svg", "viewBox": [ 0, 0, @@ -1020,7 +2713,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1039,7 +2732,7 @@ const catalogData = { "id": "kind-function", "subject": "On-demand function", "asset": { - "path": "assets/light/kind-function.svg", + "path": "assets/dark/kind-function.svg", "viewBox": [ 0, 0, @@ -1047,7 +2740,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1066,7 +2759,7 @@ const catalogData = { "id": "kind-worker", "subject": "Background worker", "asset": { - "path": "assets/light/kind-worker.svg", + "path": "assets/dark/kind-worker.svg", "viewBox": [ 0, 0, @@ -1074,7 +2767,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1093,7 +2786,7 @@ const catalogData = { "id": "kind-database", "subject": "Durable database", "asset": { - "path": "assets/light/kind-database.svg", + "path": "assets/dark/kind-database.svg", "viewBox": [ 0, 0, @@ -1101,7 +2794,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1120,7 +2813,7 @@ const catalogData = { "id": "kind-cache", "subject": "Disposable cache", "asset": { - "path": "assets/light/kind-cache.svg", + "path": "assets/dark/kind-cache.svg", "viewBox": [ 0, 0, @@ -1128,7 +2821,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1147,7 +2840,7 @@ const catalogData = { "id": "kind-queue", "subject": "Asynchronous queue or stream", "asset": { - "path": "assets/light/kind-queue.svg", + "path": "assets/dark/kind-queue.svg", "viewBox": [ 0, 0, @@ -1155,7 +2848,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1174,7 +2867,7 @@ const catalogData = { "id": "kind-storage", "subject": "Blob or file storage", "asset": { - "path": "assets/light/kind-storage.svg", + "path": "assets/dark/kind-storage.svg", "viewBox": [ 0, 0, @@ -1182,7 +2875,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1201,7 +2894,7 @@ const catalogData = { "id": "kind-external", "subject": "External system", "asset": { - "path": "assets/light/kind-external.svg", + "path": "assets/dark/kind-external.svg", "viewBox": [ 0, 0, @@ -1209,7 +2902,7 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1413,119 +3106,11 @@ const catalogData = { } } }, - { - "id": "cloud", - "subject": "Cloud environment", - "asset": { - "path": "assets/core/cloud.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "scheduler", - "subject": "Scheduled execution", - "asset": { - "path": "assets/core/scheduler.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "webhook", - "subject": "Webhook endpoint", - "asset": { - "path": "assets/core/webhook.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "identity", - "subject": "Identity and access", - "asset": { - "path": "assets/core/identity.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "observability", - "subject": "Observability system", + { + "id": "cloud", + "subject": "Cloud environment", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/cloud.svg", "viewBox": [ 0, 0, @@ -1547,139 +3132,12 @@ const catalogData = { } } } - } - ] - }, - { - "id": "dark", - "name": "Stack Dark", - "description": "High-contrast cool surfaces for dark canvases.", - "palette": { - "canvas": "#0B1020", - "surface": "#141B2D", - "surfaceMuted": "#1E293B", - "text": "#F8FAFC", - "textMuted": "#CBD5E1", - "border": "#94A3B8", - "accent": "#69A7FF", - "danger": "#FF8A9A", - "connector": "#CBD5E1" - }, - "typography": { - "fontMetricsId": "stack_sans", - "nodeLabelSizeMilliPx": 14000, - "nodeDetailSizeMilliPx": 12000, - "groupLabelSizeMilliPx": 13000, - "edgeLabelSizeMilliPx": 11000, - "lineHeightPermille": 1400, - "labelWeight": 600, - "detailWeight": 400 - }, - "nodeKindFallbacks": { - "actor": { - "shape": "circle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-actor" - }, - "client": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-client" - }, - "service": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-service" - }, - "function": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-function" - }, - "worker": { - "shape": "capsule", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-worker" - }, - "database": { - "shape": "cylinder", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-database" - }, - "cache": { - "shape": "cylinder", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-cache" }, - "queue": { - "shape": "capsule", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-queue" - }, - "storage": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 4000, - "fallbackIconId": "kind-storage" - }, - "external": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-external" - } - }, - "connector": { - "stroke": "connector", - "text": "textMuted", - "labelBackground": "canvas", - "widthMilliPx": 1750, - "arrowSizeMilliPx": 7500 - }, - "icons": [ { - "id": "kind-actor", - "subject": "Human actor", + "id": "scheduler", + "subject": "Scheduled execution", "asset": { - "path": "assets/dark/kind-actor.svg", + "path": "assets/core/scheduler.svg", "viewBox": [ 0, 0, @@ -1687,8 +3145,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1703,10 +3161,10 @@ const catalogData = { } }, { - "id": "kind-client", - "subject": "Client application or device", + "id": "webhook", + "subject": "Webhook endpoint", "asset": { - "path": "assets/dark/kind-client.svg", + "path": "assets/core/webhook.svg", "viewBox": [ 0, 0, @@ -1714,8 +3172,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1730,10 +3188,10 @@ const catalogData = { } }, { - "id": "kind-service", - "subject": "Long-running service", + "id": "identity", + "subject": "Identity and access", "asset": { - "path": "assets/dark/kind-service.svg", + "path": "assets/core/identity.svg", "viewBox": [ 0, 0, @@ -1741,8 +3199,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1757,10 +3215,10 @@ const catalogData = { } }, { - "id": "kind-function", - "subject": "On-demand function", + "id": "observability", + "subject": "Observability system", "asset": { - "path": "assets/dark/kind-function.svg", + "path": "assets/core/observability.svg", "viewBox": [ 0, 0, @@ -1768,8 +3226,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1784,10 +3242,10 @@ const catalogData = { } }, { - "id": "kind-worker", - "subject": "Background worker", + "id": "gateway", + "subject": "Network gateway", "asset": { - "path": "assets/dark/kind-worker.svg", + "path": "assets/core/gateway.svg", "viewBox": [ 0, 0, @@ -1795,8 +3253,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1811,10 +3269,10 @@ const catalogData = { } }, { - "id": "kind-database", - "subject": "Durable database", + "id": "load-balancer", + "subject": "Load balancer", "asset": { - "path": "assets/dark/kind-database.svg", + "path": "assets/core/load-balancer.svg", "viewBox": [ 0, 0, @@ -1822,8 +3280,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1838,10 +3296,10 @@ const catalogData = { } }, { - "id": "kind-cache", - "subject": "Disposable cache", + "id": "dns", + "subject": "Domain name service", "asset": { - "path": "assets/dark/kind-cache.svg", + "path": "assets/core/dns.svg", "viewBox": [ 0, 0, @@ -1849,8 +3307,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1865,10 +3323,10 @@ const catalogData = { } }, { - "id": "kind-queue", - "subject": "Asynchronous queue or stream", + "id": "cdn", + "subject": "Content delivery network", "asset": { - "path": "assets/dark/kind-queue.svg", + "path": "assets/core/cdn.svg", "viewBox": [ 0, 0, @@ -1876,8 +3334,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1892,10 +3350,10 @@ const catalogData = { } }, { - "id": "kind-storage", - "subject": "Blob or file storage", + "id": "firewall", + "subject": "Network firewall", "asset": { - "path": "assets/dark/kind-storage.svg", + "path": "assets/core/firewall.svg", "viewBox": [ 0, 0, @@ -1903,8 +3361,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1919,10 +3377,10 @@ const catalogData = { } }, { - "id": "kind-external", - "subject": "External system", + "id": "network", + "subject": "Network topology", "asset": { - "path": "assets/dark/kind-external.svg", + "path": "assets/core/network.svg", "viewBox": [ 0, 0, @@ -1930,8 +3388,8 @@ const catalogData = { 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1946,10 +3404,10 @@ const catalogData = { } }, { - "id": "api", - "subject": "Application programming interface", + "id": "event", + "subject": "Discrete event", "asset": { - "path": "assets/core/api.svg", + "path": "assets/core/event.svg", "viewBox": [ 0, 0, @@ -1958,7 +3416,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1973,10 +3431,10 @@ const catalogData = { } }, { - "id": "web", - "subject": "Web application", + "id": "stream", + "subject": "Event stream", "asset": { - "path": "assets/core/web.svg", + "path": "assets/core/stream.svg", "viewBox": [ 0, 0, @@ -1985,7 +3443,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2000,10 +3458,10 @@ const catalogData = { } }, { - "id": "mobile", - "subject": "Mobile application", + "id": "search", + "subject": "Search service", "asset": { - "path": "assets/core/mobile.svg", + "path": "assets/core/search.svg", "viewBox": [ 0, 0, @@ -2012,7 +3470,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2027,10 +3485,10 @@ const catalogData = { } }, { - "id": "desktop", - "subject": "Desktop application", + "id": "analytics", + "subject": "Analytics system", "asset": { - "path": "assets/core/desktop.svg", + "path": "assets/core/analytics.svg", "viewBox": [ 0, 0, @@ -2039,7 +3497,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2054,10 +3512,10 @@ const catalogData = { } }, { - "id": "server", - "subject": "Server host", + "id": "repository", + "subject": "Source code repository", "asset": { - "path": "assets/core/server.svg", + "path": "assets/core/repository.svg", "viewBox": [ 0, 0, @@ -2066,7 +3524,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2081,10 +3539,10 @@ const catalogData = { } }, { - "id": "container", - "subject": "Application container", + "id": "pipeline", + "subject": "Delivery pipeline", "asset": { - "path": "assets/core/container.svg", + "path": "assets/core/pipeline.svg", "viewBox": [ 0, 0, @@ -2093,7 +3551,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2108,10 +3566,10 @@ const catalogData = { } }, { - "id": "cluster", - "subject": "Compute cluster", + "id": "secret", + "subject": "Secret or credential", "asset": { - "path": "assets/core/cluster.svg", + "path": "assets/core/secret.svg", "viewBox": [ 0, 0, @@ -2120,7 +3578,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2135,10 +3593,10 @@ const catalogData = { } }, { - "id": "cloud", - "subject": "Cloud environment", + "id": "document", + "subject": "Document or knowledge base", "asset": { - "path": "assets/core/cloud.svg", + "path": "assets/core/document.svg", "viewBox": [ 0, 0, @@ -2147,7 +3605,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2162,10 +3620,10 @@ const catalogData = { } }, { - "id": "scheduler", - "subject": "Scheduled execution", + "id": "task", + "subject": "Task or issue tracker", "asset": { - "path": "assets/core/scheduler.svg", + "path": "assets/core/task.svg", "viewBox": [ 0, 0, @@ -2174,7 +3632,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2189,10 +3647,10 @@ const catalogData = { } }, { - "id": "webhook", - "subject": "Webhook endpoint", + "id": "chat", + "subject": "Chat or messaging tool", "asset": { - "path": "assets/core/webhook.svg", + "path": "assets/core/chat.svg", "viewBox": [ 0, 0, @@ -2201,7 +3659,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2216,10 +3674,10 @@ const catalogData = { } }, { - "id": "identity", - "subject": "Identity and access", + "id": "email", + "subject": "Email delivery", "asset": { - "path": "assets/core/identity.svg", + "path": "assets/core/email.svg", "viewBox": [ 0, 0, @@ -2228,7 +3686,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2243,10 +3701,10 @@ const catalogData = { } }, { - "id": "observability", - "subject": "Observability system", + "id": "ai", + "subject": "Artificial intelligence system", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/ai.svg", "viewBox": [ 0, 0, @@ -2255,7 +3713,7 @@ const catalogData = { ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2675,16 +4133,34 @@ const providerPackSchemaData = { } }; const iconAssetsData = { + "assets/core/ai.svg": "\n \n \n \n\n", + "assets/core/analytics.svg": "\n \n \n \n\n", "assets/core/api.svg": "\n \n\n", + "assets/core/cdn.svg": "\n \n \n \n \n \n\n", + "assets/core/chat.svg": "\n \n \n\n", "assets/core/cloud.svg": "\n \n\n", "assets/core/cluster.svg": "\n \n \n \n \n\n", "assets/core/container.svg": "\n \n \n\n", "assets/core/desktop.svg": "\n \n \n\n", + "assets/core/dns.svg": "\n \n \n\n", + "assets/core/document.svg": "\n \n \n\n", + "assets/core/email.svg": "\n \n \n\n", + "assets/core/event.svg": "\n \n \n\n", + "assets/core/firewall.svg": "\n \n \n\n", + "assets/core/gateway.svg": "\n \n \n\n", "assets/core/identity.svg": "\n \n \n \n\n", + "assets/core/load-balancer.svg": "\n \n \n \n \n\n", "assets/core/mobile.svg": "\n \n \n\n", + "assets/core/network.svg": "\n \n \n \n \n \n \n\n", "assets/core/observability.svg": "\n \n \n\n", + "assets/core/pipeline.svg": "\n \n \n \n \n\n", + "assets/core/repository.svg": "\n \n \n \n \n \n\n", "assets/core/scheduler.svg": "\n \n \n \n \n\n", + "assets/core/search.svg": "\n \n \n\n", + "assets/core/secret.svg": "\n \n \n\n", "assets/core/server.svg": "\n \n \n \n\n", + "assets/core/stream.svg": "\n \n\n", + "assets/core/task.svg": "\n \n \n\n", "assets/core/web.svg": "\n \n \n\n", "assets/core/webhook.svg": "\n \n \n\n", "assets/dark/kind-actor.svg": "\n \n \n\n", @@ -2731,8 +4207,8 @@ function deepFreeze(value) { export const catalog = deepFreeze(catalogData); export const providerPackSchema = deepFreeze(providerPackSchemaData); -export const catalogVersion = "0.3.0"; -export const catalogRevision = "sha256:e4eaad0813fcfef4a203e861909ff38833270646f9097155974c7c92108c5b1e"; +export const catalogVersion = "0.4.0"; +export const catalogRevision = "sha256:9cb3de8b504acbf22c93cea5fbea66be50f38734dc1dee18b9cab7084082cc1f"; export const iconAssets = deepFreeze(iconAssetsData); export function iconSvg(assetPath) { return iconAssets[assetPath]; diff --git a/packages/theme/catalog.json b/packages/theme/catalog.json index ed7ee96..82d8186 100644 --- a/packages/theme/catalog.json +++ b/packages/theme/catalog.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/stack-sh/theme/main/schemas/catalog.schema.json", "schemaVersion": "1.0", - "catalogVersion": "0.3.0", + "catalogVersion": "0.4.0", "reservedThemeIds": [], "fallbacks": { "missingThemeId": "default", @@ -825,23 +825,1716 @@ } } } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + } + ] + }, + { + "id": "light", + "name": "Stack Light", + "description": "Warm neutral surfaces for documents with light backgrounds.", + "palette": { + "canvas": "#FAF9F6", + "surface": "#FFFFFF", + "surfaceMuted": "#EEEAE3", + "text": "#1C1917", + "textMuted": "#57534E", + "border": "#78716C", + "accent": "#005DBB", + "danger": "#A52A1A", + "connector": "#57534E" + }, + "typography": { + "fontMetricsId": "stack_sans", + "nodeLabelSizeMilliPx": 14000, + "nodeDetailSizeMilliPx": 12000, + "groupLabelSizeMilliPx": 13000, + "edgeLabelSizeMilliPx": 11000, + "lineHeightPermille": 1400, + "labelWeight": 600, + "detailWeight": 400 + }, + "nodeKindFallbacks": { + "actor": { + "shape": "circle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-actor" + }, + "client": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-client" + }, + "service": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 8000, + "fallbackIconId": "kind-service" + }, + "function": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-function" + }, + "worker": { + "shape": "capsule", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-worker" + }, + "database": { + "shape": "cylinder", + "fill": "surface", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-database" + }, + "cache": { + "shape": "cylinder", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-cache" + }, + "queue": { + "shape": "capsule", + "fill": "surfaceMuted", + "stroke": "accent", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 16000, + "fallbackIconId": "kind-queue" + }, + "storage": { + "shape": "rounded-rectangle", + "fill": "surface", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 4000, + "fallbackIconId": "kind-storage" + }, + "external": { + "shape": "hexagon", + "fill": "surfaceMuted", + "stroke": "border", + "text": "text", + "accent": "accent", + "cornerRadiusMilliPx": 0, + "fallbackIconId": "kind-external" + } + }, + "connector": { + "stroke": "connector", + "text": "textMuted", + "labelBackground": "canvas", + "widthMilliPx": 1250, + "arrowSizeMilliPx": 6500 + }, + "icons": [ + { + "id": "kind-actor", + "subject": "Human actor", + "asset": { + "path": "assets/light/kind-actor.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-client", + "subject": "Client application or device", + "asset": { + "path": "assets/light/kind-client.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-service", + "subject": "Long-running service", + "asset": { + "path": "assets/light/kind-service.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-function", + "subject": "On-demand function", + "asset": { + "path": "assets/light/kind-function.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-worker", + "subject": "Background worker", + "asset": { + "path": "assets/light/kind-worker.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-database", + "subject": "Durable database", + "asset": { + "path": "assets/light/kind-database.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-cache", + "subject": "Disposable cache", + "asset": { + "path": "assets/light/kind-cache.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-queue", + "subject": "Asynchronous queue or stream", + "asset": { + "path": "assets/light/kind-queue.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-storage", + "subject": "Blob or file storage", + "asset": { + "path": "assets/light/kind-storage.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "kind-external", + "subject": "External system", + "asset": { + "path": "assets/light/kind-external.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceRevision": "core-fallback-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "api", + "subject": "Application programming interface", + "asset": { + "path": "assets/core/api.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "web", + "subject": "Web application", + "asset": { + "path": "assets/core/web.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "mobile", + "subject": "Mobile application", + "asset": { + "path": "assets/core/mobile.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "desktop", + "subject": "Desktop application", + "asset": { + "path": "assets/core/desktop.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "server", + "subject": "Server host", + "asset": { + "path": "assets/core/server.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "container", + "subject": "Application container", + "asset": { + "path": "assets/core/container.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cluster", + "subject": "Compute cluster", + "asset": { + "path": "assets/core/cluster.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cloud", + "subject": "Cloud environment", + "asset": { + "path": "assets/core/cloud.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "scheduler", + "subject": "Scheduled execution", + "asset": { + "path": "assets/core/scheduler.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "webhook", + "subject": "Webhook endpoint", + "asset": { + "path": "assets/core/webhook.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "identity", + "subject": "Identity and access", + "asset": { + "path": "assets/core/identity.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "observability", + "subject": "Observability system", + "asset": { + "path": "assets/core/observability.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "gateway", + "subject": "Network gateway", + "asset": { + "path": "assets/core/gateway.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "load-balancer", + "subject": "Load balancer", + "asset": { + "path": "assets/core/load-balancer.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "dns", + "subject": "Domain name service", + "asset": { + "path": "assets/core/dns.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "cdn", + "subject": "Content delivery network", + "asset": { + "path": "assets/core/cdn.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "firewall", + "subject": "Network firewall", + "asset": { + "path": "assets/core/firewall.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "network", + "subject": "Network topology", + "asset": { + "path": "assets/core/network.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "event", + "subject": "Discrete event", + "asset": { + "path": "assets/core/event.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "stream", + "subject": "Event stream", + "asset": { + "path": "assets/core/stream.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "search", + "subject": "Search service", + "asset": { + "path": "assets/core/search.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "analytics", + "subject": "Analytics system", + "asset": { + "path": "assets/core/analytics.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "repository", + "subject": "Source code repository", + "asset": { + "path": "assets/core/repository.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "pipeline", + "subject": "Delivery pipeline", + "asset": { + "path": "assets/core/pipeline.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "secret", + "subject": "Secret or credential", + "asset": { + "path": "assets/core/secret.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "document", + "subject": "Document or knowledge base", + "asset": { + "path": "assets/core/document.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "task", + "subject": "Task or issue tracker", + "asset": { + "path": "assets/core/task.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "chat", + "subject": "Chat or messaging tool", + "asset": { + "path": "assets/core/chat.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "email", + "subject": "Email delivery", + "asset": { + "path": "assets/core/email.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } + }, + { + "id": "ai", + "subject": "Artificial intelligence system", + "asset": { + "path": "assets/core/ai.svg", + "viewBox": [ + 0, + 0, + 24, + 24 + ], + "provenance": { + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", + "copyright": "Stack contributors", + "licenseSpdx": "Apache-2.0", + "licenseFile": "LICENSE", + "modified": false, + "redistribution": { + "cargo": true, + "npm": true, + "wasm": true, + "commercialApplications": true + } + } + } } ] }, { - "id": "light", - "name": "Stack Light", - "description": "Warm neutral surfaces for documents with light backgrounds.", + "id": "dark", + "name": "Stack Dark", + "description": "High-contrast cool surfaces for dark canvases.", "palette": { - "canvas": "#FAF9F6", - "surface": "#FFFFFF", - "surfaceMuted": "#EEEAE3", - "text": "#1C1917", - "textMuted": "#57534E", - "border": "#78716C", - "accent": "#005DBB", - "danger": "#A52A1A", - "connector": "#57534E" + "canvas": "#0B1020", + "surface": "#141B2D", + "surfaceMuted": "#1E293B", + "text": "#F8FAFC", + "textMuted": "#CBD5E1", + "border": "#94A3B8", + "accent": "#69A7FF", + "danger": "#FF8A9A", + "connector": "#CBD5E1" }, "typography": { "fontMetricsId": "stack_sans", @@ -949,15 +2642,15 @@ "stroke": "connector", "text": "textMuted", "labelBackground": "canvas", - "widthMilliPx": 1250, - "arrowSizeMilliPx": 6500 + "widthMilliPx": 1750, + "arrowSizeMilliPx": 7500 }, "icons": [ { "id": "kind-actor", "subject": "Human actor", "asset": { - "path": "assets/light/kind-actor.svg", + "path": "assets/dark/kind-actor.svg", "viewBox": [ 0, 0, @@ -965,7 +2658,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -984,7 +2677,7 @@ "id": "kind-client", "subject": "Client application or device", "asset": { - "path": "assets/light/kind-client.svg", + "path": "assets/dark/kind-client.svg", "viewBox": [ 0, 0, @@ -992,7 +2685,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1011,7 +2704,7 @@ "id": "kind-service", "subject": "Long-running service", "asset": { - "path": "assets/light/kind-service.svg", + "path": "assets/dark/kind-service.svg", "viewBox": [ 0, 0, @@ -1019,7 +2712,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1038,7 +2731,7 @@ "id": "kind-function", "subject": "On-demand function", "asset": { - "path": "assets/light/kind-function.svg", + "path": "assets/dark/kind-function.svg", "viewBox": [ 0, 0, @@ -1046,7 +2739,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1065,7 +2758,7 @@ "id": "kind-worker", "subject": "Background worker", "asset": { - "path": "assets/light/kind-worker.svg", + "path": "assets/dark/kind-worker.svg", "viewBox": [ 0, 0, @@ -1073,7 +2766,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1092,7 +2785,7 @@ "id": "kind-database", "subject": "Durable database", "asset": { - "path": "assets/light/kind-database.svg", + "path": "assets/dark/kind-database.svg", "viewBox": [ 0, 0, @@ -1100,7 +2793,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1119,7 +2812,7 @@ "id": "kind-cache", "subject": "Disposable cache", "asset": { - "path": "assets/light/kind-cache.svg", + "path": "assets/dark/kind-cache.svg", "viewBox": [ 0, 0, @@ -1127,7 +2820,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1146,7 +2839,7 @@ "id": "kind-queue", "subject": "Asynchronous queue or stream", "asset": { - "path": "assets/light/kind-queue.svg", + "path": "assets/dark/kind-queue.svg", "viewBox": [ 0, 0, @@ -1154,7 +2847,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1173,7 +2866,7 @@ "id": "kind-storage", "subject": "Blob or file storage", "asset": { - "path": "assets/light/kind-storage.svg", + "path": "assets/dark/kind-storage.svg", "viewBox": [ 0, 0, @@ -1181,7 +2874,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1200,7 +2893,7 @@ "id": "kind-external", "subject": "External system", "asset": { - "path": "assets/light/kind-external.svg", + "path": "assets/dark/kind-external.svg", "viewBox": [ 0, 0, @@ -1208,7 +2901,7 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/light", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", "sourceRevision": "core-fallback-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", @@ -1412,119 +3105,11 @@ } } }, - { - "id": "cloud", - "subject": "Cloud environment", - "asset": { - "path": "assets/core/cloud.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "scheduler", - "subject": "Scheduled execution", - "asset": { - "path": "assets/core/scheduler.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "webhook", - "subject": "Webhook endpoint", - "asset": { - "path": "assets/core/webhook.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "identity", - "subject": "Identity and access", - "asset": { - "path": "assets/core/identity.svg", - "viewBox": [ - 0, - 0, - 24, - 24 - ], - "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", - "copyright": "Stack contributors", - "licenseSpdx": "Apache-2.0", - "licenseFile": "LICENSE", - "modified": false, - "redistribution": { - "cargo": true, - "npm": true, - "wasm": true, - "commercialApplications": true - } - } - } - }, - { - "id": "observability", - "subject": "Observability system", + { + "id": "cloud", + "subject": "Cloud environment", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/cloud.svg", "viewBox": [ 0, 0, @@ -1546,139 +3131,12 @@ } } } - } - ] - }, - { - "id": "dark", - "name": "Stack Dark", - "description": "High-contrast cool surfaces for dark canvases.", - "palette": { - "canvas": "#0B1020", - "surface": "#141B2D", - "surfaceMuted": "#1E293B", - "text": "#F8FAFC", - "textMuted": "#CBD5E1", - "border": "#94A3B8", - "accent": "#69A7FF", - "danger": "#FF8A9A", - "connector": "#CBD5E1" - }, - "typography": { - "fontMetricsId": "stack_sans", - "nodeLabelSizeMilliPx": 14000, - "nodeDetailSizeMilliPx": 12000, - "groupLabelSizeMilliPx": 13000, - "edgeLabelSizeMilliPx": 11000, - "lineHeightPermille": 1400, - "labelWeight": 600, - "detailWeight": 400 - }, - "nodeKindFallbacks": { - "actor": { - "shape": "circle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-actor" - }, - "client": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-client" - }, - "service": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 8000, - "fallbackIconId": "kind-service" - }, - "function": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-function" - }, - "worker": { - "shape": "capsule", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-worker" - }, - "database": { - "shape": "cylinder", - "fill": "surface", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-database" - }, - "cache": { - "shape": "cylinder", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-cache" }, - "queue": { - "shape": "capsule", - "fill": "surfaceMuted", - "stroke": "accent", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 16000, - "fallbackIconId": "kind-queue" - }, - "storage": { - "shape": "rounded-rectangle", - "fill": "surface", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 4000, - "fallbackIconId": "kind-storage" - }, - "external": { - "shape": "hexagon", - "fill": "surfaceMuted", - "stroke": "border", - "text": "text", - "accent": "accent", - "cornerRadiusMilliPx": 0, - "fallbackIconId": "kind-external" - } - }, - "connector": { - "stroke": "connector", - "text": "textMuted", - "labelBackground": "canvas", - "widthMilliPx": 1750, - "arrowSizeMilliPx": 7500 - }, - "icons": [ { - "id": "kind-actor", - "subject": "Human actor", + "id": "scheduler", + "subject": "Scheduled execution", "asset": { - "path": "assets/dark/kind-actor.svg", + "path": "assets/core/scheduler.svg", "viewBox": [ 0, 0, @@ -1686,8 +3144,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1702,10 +3160,10 @@ } }, { - "id": "kind-client", - "subject": "Client application or device", + "id": "webhook", + "subject": "Webhook endpoint", "asset": { - "path": "assets/dark/kind-client.svg", + "path": "assets/core/webhook.svg", "viewBox": [ 0, 0, @@ -1713,8 +3171,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1729,10 +3187,10 @@ } }, { - "id": "kind-service", - "subject": "Long-running service", + "id": "identity", + "subject": "Identity and access", "asset": { - "path": "assets/dark/kind-service.svg", + "path": "assets/core/identity.svg", "viewBox": [ 0, 0, @@ -1740,8 +3198,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1756,10 +3214,10 @@ } }, { - "id": "kind-function", - "subject": "On-demand function", + "id": "observability", + "subject": "Observability system", "asset": { - "path": "assets/dark/kind-function.svg", + "path": "assets/core/observability.svg", "viewBox": [ 0, 0, @@ -1767,8 +3225,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v1", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1783,10 +3241,10 @@ } }, { - "id": "kind-worker", - "subject": "Background worker", + "id": "gateway", + "subject": "Network gateway", "asset": { - "path": "assets/dark/kind-worker.svg", + "path": "assets/core/gateway.svg", "viewBox": [ 0, 0, @@ -1794,8 +3252,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1810,10 +3268,10 @@ } }, { - "id": "kind-database", - "subject": "Durable database", + "id": "load-balancer", + "subject": "Load balancer", "asset": { - "path": "assets/dark/kind-database.svg", + "path": "assets/core/load-balancer.svg", "viewBox": [ 0, 0, @@ -1821,8 +3279,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1837,10 +3295,10 @@ } }, { - "id": "kind-cache", - "subject": "Disposable cache", + "id": "dns", + "subject": "Domain name service", "asset": { - "path": "assets/dark/kind-cache.svg", + "path": "assets/core/dns.svg", "viewBox": [ 0, 0, @@ -1848,8 +3306,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1864,10 +3322,10 @@ } }, { - "id": "kind-queue", - "subject": "Asynchronous queue or stream", + "id": "cdn", + "subject": "Content delivery network", "asset": { - "path": "assets/dark/kind-queue.svg", + "path": "assets/core/cdn.svg", "viewBox": [ 0, 0, @@ -1875,8 +3333,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1891,10 +3349,10 @@ } }, { - "id": "kind-storage", - "subject": "Blob or file storage", + "id": "firewall", + "subject": "Network firewall", "asset": { - "path": "assets/dark/kind-storage.svg", + "path": "assets/core/firewall.svg", "viewBox": [ 0, 0, @@ -1902,8 +3360,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1918,10 +3376,10 @@ } }, { - "id": "kind-external", - "subject": "External system", + "id": "network", + "subject": "Network topology", "asset": { - "path": "assets/dark/kind-external.svg", + "path": "assets/core/network.svg", "viewBox": [ 0, 0, @@ -1929,8 +3387,8 @@ 24 ], "provenance": { - "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/dark", - "sourceRevision": "core-fallback-v1", + "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1945,10 +3403,10 @@ } }, { - "id": "api", - "subject": "Application programming interface", + "id": "event", + "subject": "Discrete event", "asset": { - "path": "assets/core/api.svg", + "path": "assets/core/event.svg", "viewBox": [ 0, 0, @@ -1957,7 +3415,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1972,10 +3430,10 @@ } }, { - "id": "web", - "subject": "Web application", + "id": "stream", + "subject": "Event stream", "asset": { - "path": "assets/core/web.svg", + "path": "assets/core/stream.svg", "viewBox": [ 0, 0, @@ -1984,7 +3442,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -1999,10 +3457,10 @@ } }, { - "id": "mobile", - "subject": "Mobile application", + "id": "search", + "subject": "Search service", "asset": { - "path": "assets/core/mobile.svg", + "path": "assets/core/search.svg", "viewBox": [ 0, 0, @@ -2011,7 +3469,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2026,10 +3484,10 @@ } }, { - "id": "desktop", - "subject": "Desktop application", + "id": "analytics", + "subject": "Analytics system", "asset": { - "path": "assets/core/desktop.svg", + "path": "assets/core/analytics.svg", "viewBox": [ 0, 0, @@ -2038,7 +3496,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2053,10 +3511,10 @@ } }, { - "id": "server", - "subject": "Server host", + "id": "repository", + "subject": "Source code repository", "asset": { - "path": "assets/core/server.svg", + "path": "assets/core/repository.svg", "viewBox": [ 0, 0, @@ -2065,7 +3523,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2080,10 +3538,10 @@ } }, { - "id": "container", - "subject": "Application container", + "id": "pipeline", + "subject": "Delivery pipeline", "asset": { - "path": "assets/core/container.svg", + "path": "assets/core/pipeline.svg", "viewBox": [ 0, 0, @@ -2092,7 +3550,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2107,10 +3565,10 @@ } }, { - "id": "cluster", - "subject": "Compute cluster", + "id": "secret", + "subject": "Secret or credential", "asset": { - "path": "assets/core/cluster.svg", + "path": "assets/core/secret.svg", "viewBox": [ 0, 0, @@ -2119,7 +3577,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2134,10 +3592,10 @@ } }, { - "id": "cloud", - "subject": "Cloud environment", + "id": "document", + "subject": "Document or knowledge base", "asset": { - "path": "assets/core/cloud.svg", + "path": "assets/core/document.svg", "viewBox": [ 0, 0, @@ -2146,7 +3604,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2161,10 +3619,10 @@ } }, { - "id": "scheduler", - "subject": "Scheduled execution", + "id": "task", + "subject": "Task or issue tracker", "asset": { - "path": "assets/core/scheduler.svg", + "path": "assets/core/task.svg", "viewBox": [ 0, 0, @@ -2173,7 +3631,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2188,10 +3646,10 @@ } }, { - "id": "webhook", - "subject": "Webhook endpoint", + "id": "chat", + "subject": "Chat or messaging tool", "asset": { - "path": "assets/core/webhook.svg", + "path": "assets/core/chat.svg", "viewBox": [ 0, 0, @@ -2200,7 +3658,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2215,10 +3673,10 @@ } }, { - "id": "identity", - "subject": "Identity and access", + "id": "email", + "subject": "Email delivery", "asset": { - "path": "assets/core/identity.svg", + "path": "assets/core/email.svg", "viewBox": [ 0, 0, @@ -2227,7 +3685,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", @@ -2242,10 +3700,10 @@ } }, { - "id": "observability", - "subject": "Observability system", + "id": "ai", + "subject": "Artificial intelligence system", "asset": { - "path": "assets/core/observability.svg", + "path": "assets/core/ai.svg", "viewBox": [ 0, 0, @@ -2254,7 +3712,7 @@ ], "provenance": { "sourceUrl": "https://github.com/stack-sh/theme/tree/main/assets/core", - "sourceRevision": "core-icons-v1", + "sourceRevision": "core-icons-v2", "copyright": "Stack contributors", "licenseSpdx": "Apache-2.0", "licenseFile": "LICENSE", diff --git a/packages/theme/package.json b/packages/theme/package.json index 4ec8838..fdf195d 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "@stack-sh/theme", - "version": "0.3.0", + "version": "0.4.0", "description": "Canonical Stack theme catalog contract and embedded catalog data", "type": "module", "license": "Apache-2.0", diff --git a/tests/catalog.test.mjs b/tests/catalog.test.mjs index 2e0824b..6812669 100644 --- a/tests/catalog.test.mjs +++ b/tests/catalog.test.mjs @@ -204,6 +204,24 @@ const explicitIcons = [ ["webhook", "Webhook endpoint"], ["identity", "Identity and access"], ["observability", "Observability system"], + ["gateway", "Network gateway"], + ["load-balancer", "Load balancer"], + ["dns", "Domain name service"], + ["cdn", "Content delivery network"], + ["firewall", "Network firewall"], + ["network", "Network topology"], + ["event", "Discrete event"], + ["stream", "Event stream"], + ["search", "Search service"], + ["analytics", "Analytics system"], + ["repository", "Source code repository"], + ["pipeline", "Delivery pipeline"], + ["secret", "Secret or credential"], + ["document", "Document or knowledge base"], + ["task", "Task or issue tracker"], + ["chat", "Chat or messaging tool"], + ["email", "Email delivery"], + ["ai", "Artificial intelligence system"], ]; function linearChannel(channel) { @@ -276,6 +294,32 @@ test("the three core themes provide distinct fallback visuals", () => { } }); +test("explicit core icons remain first-party single-color assets", () => { + const explicitIds = new Set(explicitIcons.map(([iconId]) => iconId)); + const icons = catalog.themes[0].icons.filter((icon) => + explicitIds.has(icon.id), + ); + + assert.equal(icons.length, explicitIcons.length); + for (const icon of icons) { + const { provenance } = icon.asset; + assert.equal(provenance.copyright, "Stack contributors"); + assert.equal(provenance.licenseSpdx, "Apache-2.0"); + assert.equal(provenance.licenseFile, "LICENSE"); + assert.match(provenance.sourceRevision, /^core-icons-v[12]$/); + assert.deepEqual(provenance.redistribution, { + cargo: true, + npm: true, + wasm: true, + commercialApplications: true, + }); + + const svg = iconSvg(icon.asset.path); + assert.match(svg, /stroke="currentColor"/); + assert.doesNotMatch(svg, /#[0-9a-f]{3,8}/i); + } +}); + test("unknown catalog fallback targets are rejected", async () => { const fixture = await readJson( path.join(repositoryRoot, "tests/fixtures/catalog/valid.json"), @@ -402,8 +446,8 @@ test("Cargo and npm artifacts expose one semantic catalog revision", async () => assert.match(catalogRevision, /^sha256:[0-9a-f]{64}$/); assert.equal( catalog.themes.flatMap((theme) => theme.icons).length, - 66, + 120, ); - assert.equal(Object.keys(iconAssets).length, 42); + assert.equal(Object.keys(iconAssets).length, 60); assert.equal(iconSvg("assets/missing.svg"), undefined); });