From 30a1f2dfcfb942333eaa955a19e602b724569b1b Mon Sep 17 00:00:00 2001 From: Maksim Kachurin Date: Fri, 28 Aug 2026 21:57:09 -0300 Subject: [PATCH 1/2] fix(ui): register kits without components.json --- .../shadcn-tailwind/skills/shadcn/SKILL.md | 2 +- marketplace/ui/aceternity/hooks/install.sh | 4 ---- marketplace/ui/aceternity/hooks/uninstall.sh | 16 +++++++++------- .../ui/aceternity/skills/aceternity/SKILL.md | 2 +- marketplace/ui/coss/hooks/install.sh | 4 ---- marketplace/ui/coss/hooks/uninstall.sh | 16 +++++++++------- marketplace/ui/coss/skills/coss/SKILL.md | 2 +- marketplace/ui/flexnative/hooks/install.sh | 4 ---- marketplace/ui/flexnative/hooks/uninstall.sh | 16 +++++++++------- .../ui/flexnative/skills/flexnative/SKILL.md | 2 +- marketplace/ui/magic-ui/hooks/install.sh | 4 ---- marketplace/ui/magic-ui/hooks/uninstall.sh | 16 +++++++++------- marketplace/ui/magic-ui/skills/magic-ui/SKILL.md | 2 +- marketplace/ui/tailark/hooks/install.sh | 4 ---- marketplace/ui/tailark/hooks/uninstall.sh | 16 +++++++++------- marketplace/ui/tailark/skills/tailark/SKILL.md | 2 +- 16 files changed, 51 insertions(+), 61 deletions(-) diff --git a/marketplace/system/shadcn-tailwind/skills/shadcn/SKILL.md b/marketplace/system/shadcn-tailwind/skills/shadcn/SKILL.md index 90e0c1d..a472611 100644 --- a/marketplace/system/shadcn-tailwind/skills/shadcn/SKILL.md +++ b/marketplace/system/shadcn-tailwind/skills/shadcn/SKILL.md @@ -11,7 +11,7 @@ description: >- Starter already has `components.json`, Tailwind 4, shadcn v4 (Base UI), and Reforma tokens. Do not re-init. Do not add a second UI framework. -Official registry is the default. Other `@ns` kit registries only when that kit's card is installed — the kit **Install** hook writes `registries` in `components.json`. MCP reads every registry in that file. +Official registry is the default. Other `@ns` kit registries only when that kit's card is installed — the kit **Install** hook runs `shadcn registry add`. CLI writes the namespace into `components.json` if that file exists, otherwise into `package.json`. Layout classes, `gap-*`, `size-*`: **Skill** `tailwind`. Colors: **Skill** `tokens`. diff --git a/marketplace/ui/aceternity/hooks/install.sh b/marketplace/ui/aceternity/hooks/install.sh index 75251d2..70a66d5 100755 --- a/marketplace/ui/aceternity/hooks/install.sh +++ b/marketplace/ui/aceternity/hooks/install.sh @@ -1,8 +1,4 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 -if bun -e 'const j = JSON.parse(await Bun.file("components.json").text()); process.exit(j.registries?.["@aceternity"] ? 0 : 1)'; then - exit 0 -fi bunx shadcn registry add '@aceternity=https://ui.aceternity.com/registry/{name}.json' --silent diff --git a/marketplace/ui/aceternity/hooks/uninstall.sh b/marketplace/ui/aceternity/hooks/uninstall.sh index 25f5175..0412aa6 100755 --- a/marketplace/ui/aceternity/hooks/uninstall.sh +++ b/marketplace/ui/aceternity/hooks/uninstall.sh @@ -1,12 +1,14 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 bun -e ' -const p = "components.json"; -const j = JSON.parse(await Bun.file(p).text()); -if (!j.registries?.["@aceternity"]) process.exit(0); -delete j.registries["@aceternity"]; -if (Object.keys(j.registries).length === 0) delete j.registries; -await Bun.write(p, JSON.stringify(j, null, 4) + "\n"); +const ns = "@aceternity"; +for (const p of ["components.json", "package.json"]) { + if (!await Bun.file(p).exists()) continue; + const j = JSON.parse(await Bun.file(p).text()); + if (!j.registries?.[ns]) continue; + delete j.registries[ns]; + if (Object.keys(j.registries).length === 0) delete j.registries; + await Bun.write(p, JSON.stringify(j, null, 2) + "\n"); +} ' diff --git a/marketplace/ui/aceternity/skills/aceternity/SKILL.md b/marketplace/ui/aceternity/skills/aceternity/SKILL.md index 828cc1a..8d60fd1 100644 --- a/marketplace/ui/aceternity/skills/aceternity/SKILL.md +++ b/marketplace/ui/aceternity/skills/aceternity/SKILL.md @@ -16,7 +16,7 @@ Some items on the site are paid. Install only names the registry actually return ## Register -The **Install** hook writes `@aceternity` into `components.json`. If that key is missing, add `@aceternity` → `https://ui.aceternity.com/registry/{name}.json`, then continue. +The **Install** hook runs `bunx shadcn registry add`. If `@aceternity` is missing, run `bunx shadcn registry add '@aceternity=https://ui.aceternity.com/registry/{name}.json'`, then continue. ## Find diff --git a/marketplace/ui/coss/hooks/install.sh b/marketplace/ui/coss/hooks/install.sh index c4a2edc..1709fa1 100755 --- a/marketplace/ui/coss/hooks/install.sh +++ b/marketplace/ui/coss/hooks/install.sh @@ -1,8 +1,4 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 -if bun -e 'const j = JSON.parse(await Bun.file("components.json").text()); process.exit(j.registries?.["@coss"] ? 0 : 1)'; then - exit 0 -fi bunx shadcn registry add '@coss=https://coss.com/ui/r/{name}.json' --silent diff --git a/marketplace/ui/coss/hooks/uninstall.sh b/marketplace/ui/coss/hooks/uninstall.sh index e4e0ee6..ec51f45 100755 --- a/marketplace/ui/coss/hooks/uninstall.sh +++ b/marketplace/ui/coss/hooks/uninstall.sh @@ -1,12 +1,14 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 bun -e ' -const p = "components.json"; -const j = JSON.parse(await Bun.file(p).text()); -if (!j.registries?.["@coss"]) process.exit(0); -delete j.registries["@coss"]; -if (Object.keys(j.registries).length === 0) delete j.registries; -await Bun.write(p, JSON.stringify(j, null, 4) + "\n"); +const ns = "@coss"; +for (const p of ["components.json", "package.json"]) { + if (!await Bun.file(p).exists()) continue; + const j = JSON.parse(await Bun.file(p).text()); + if (!j.registries?.[ns]) continue; + delete j.registries[ns]; + if (Object.keys(j.registries).length === 0) delete j.registries; + await Bun.write(p, JSON.stringify(j, null, 2) + "\n"); +} ' diff --git a/marketplace/ui/coss/skills/coss/SKILL.md b/marketplace/ui/coss/skills/coss/SKILL.md index 9f7e5df..8583cf4 100644 --- a/marketplace/ui/coss/skills/coss/SKILL.md +++ b/marketplace/ui/coss/skills/coss/SKILL.md @@ -16,7 +16,7 @@ Do not add `@coss/ui` or `@coss/style` wholesale (fights the starter theme). One ## Register -The **Install** hook writes `@coss` into `components.json`. If that key is missing, add `@coss` → `https://coss.com/ui/r/{name}.json`, then continue. +The **Install** hook runs `bunx shadcn registry add`. If `@coss` is missing, run `bunx shadcn registry add '@coss=https://coss.com/ui/r/{name}.json'`, then continue. ## Find diff --git a/marketplace/ui/flexnative/hooks/install.sh b/marketplace/ui/flexnative/hooks/install.sh index 8e3379e..f0580cf 100755 --- a/marketplace/ui/flexnative/hooks/install.sh +++ b/marketplace/ui/flexnative/hooks/install.sh @@ -1,8 +1,4 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 -if bun -e 'const j = JSON.parse(await Bun.file("components.json").text()); process.exit(j.registries?.["@flx"] ? 0 : 1)'; then - exit 0 -fi bunx shadcn registry add '@flx=https://ui.flexnative.com/r/{name}.json' --silent diff --git a/marketplace/ui/flexnative/hooks/uninstall.sh b/marketplace/ui/flexnative/hooks/uninstall.sh index 760797e..ad41b7b 100755 --- a/marketplace/ui/flexnative/hooks/uninstall.sh +++ b/marketplace/ui/flexnative/hooks/uninstall.sh @@ -1,12 +1,14 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 bun -e ' -const p = "components.json"; -const j = JSON.parse(await Bun.file(p).text()); -if (!j.registries?.["@flx"]) process.exit(0); -delete j.registries["@flx"]; -if (Object.keys(j.registries).length === 0) delete j.registries; -await Bun.write(p, JSON.stringify(j, null, 4) + "\n"); +const ns = "@flx"; +for (const p of ["components.json", "package.json"]) { + if (!await Bun.file(p).exists()) continue; + const j = JSON.parse(await Bun.file(p).text()); + if (!j.registries?.[ns]) continue; + delete j.registries[ns]; + if (Object.keys(j.registries).length === 0) delete j.registries; + await Bun.write(p, JSON.stringify(j, null, 2) + "\n"); +} ' diff --git a/marketplace/ui/flexnative/skills/flexnative/SKILL.md b/marketplace/ui/flexnative/skills/flexnative/SKILL.md index 5c4bf1e..ae927fa 100644 --- a/marketplace/ui/flexnative/skills/flexnative/SKILL.md +++ b/marketplace/ui/flexnative/skills/flexnative/SKILL.md @@ -14,7 +14,7 @@ Registry: `@flx` → `https://ui.flexnative.com/r/{name}.json`. Browse: `https:/ ## Register -The **Install** hook writes `@flx` into `components.json`. If that key is missing, add `@flx` → `https://ui.flexnative.com/r/{name}.json`, then continue. +The **Install** hook runs `bunx shadcn registry add`. If `@flx` is missing, run `bunx shadcn registry add '@flx=https://ui.flexnative.com/r/{name}.json'`, then continue. ## Find diff --git a/marketplace/ui/magic-ui/hooks/install.sh b/marketplace/ui/magic-ui/hooks/install.sh index 824247c..44311dd 100755 --- a/marketplace/ui/magic-ui/hooks/install.sh +++ b/marketplace/ui/magic-ui/hooks/install.sh @@ -1,8 +1,4 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 -if bun -e 'const j = JSON.parse(await Bun.file("components.json").text()); process.exit(j.registries?.["@magicui"] ? 0 : 1)'; then - exit 0 -fi bunx shadcn registry add '@magicui=https://magicui.design/r/{name}.json' --silent diff --git a/marketplace/ui/magic-ui/hooks/uninstall.sh b/marketplace/ui/magic-ui/hooks/uninstall.sh index 34ca6c1..635b5ec 100755 --- a/marketplace/ui/magic-ui/hooks/uninstall.sh +++ b/marketplace/ui/magic-ui/hooks/uninstall.sh @@ -1,12 +1,14 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 bun -e ' -const p = "components.json"; -const j = JSON.parse(await Bun.file(p).text()); -if (!j.registries?.["@magicui"]) process.exit(0); -delete j.registries["@magicui"]; -if (Object.keys(j.registries).length === 0) delete j.registries; -await Bun.write(p, JSON.stringify(j, null, 4) + "\n"); +const ns = "@magicui"; +for (const p of ["components.json", "package.json"]) { + if (!await Bun.file(p).exists()) continue; + const j = JSON.parse(await Bun.file(p).text()); + if (!j.registries?.[ns]) continue; + delete j.registries[ns]; + if (Object.keys(j.registries).length === 0) delete j.registries; + await Bun.write(p, JSON.stringify(j, null, 2) + "\n"); +} ' diff --git a/marketplace/ui/magic-ui/skills/magic-ui/SKILL.md b/marketplace/ui/magic-ui/skills/magic-ui/SKILL.md index 9a7c287..792d69c 100644 --- a/marketplace/ui/magic-ui/skills/magic-ui/SKILL.md +++ b/marketplace/ui/magic-ui/skills/magic-ui/SKILL.md @@ -14,7 +14,7 @@ Registry: `@magicui` → `https://magicui.design/r/{name}.json`. Browse: `https: ## Register -The **Install** hook writes `@magicui` into `components.json`. If that key is missing, add `@magicui` → `https://magicui.design/r/{name}.json`, then continue. +The **Install** hook runs `bunx shadcn registry add`. If `@magicui` is missing, run `bunx shadcn registry add '@magicui=https://magicui.design/r/{name}.json'`, then continue. ## Find diff --git a/marketplace/ui/tailark/hooks/install.sh b/marketplace/ui/tailark/hooks/install.sh index eed67d2..4f11630 100755 --- a/marketplace/ui/tailark/hooks/install.sh +++ b/marketplace/ui/tailark/hooks/install.sh @@ -1,8 +1,4 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 -if bun -e 'const j = JSON.parse(await Bun.file("components.json").text()); process.exit(j.registries?.["@tailark-oss"] ? 0 : 1)'; then - exit 0 -fi bunx shadcn registry add '@tailark-oss=https://oss.tailark.com/r/{name}.json' --silent diff --git a/marketplace/ui/tailark/hooks/uninstall.sh b/marketplace/ui/tailark/hooks/uninstall.sh index dd6641c..3feb8ac 100755 --- a/marketplace/ui/tailark/hooks/uninstall.sh +++ b/marketplace/ui/tailark/hooks/uninstall.sh @@ -1,12 +1,14 @@ #!/bin/sh set -e cd "${REFORMA_PROJECT_DIR:?}" -[ -f components.json ] || exit 0 bun -e ' -const p = "components.json"; -const j = JSON.parse(await Bun.file(p).text()); -if (!j.registries?.["@tailark-oss"]) process.exit(0); -delete j.registries["@tailark-oss"]; -if (Object.keys(j.registries).length === 0) delete j.registries; -await Bun.write(p, JSON.stringify(j, null, 4) + "\n"); +const ns = "@tailark-oss"; +for (const p of ["components.json", "package.json"]) { + if (!await Bun.file(p).exists()) continue; + const j = JSON.parse(await Bun.file(p).text()); + if (!j.registries?.[ns]) continue; + delete j.registries[ns]; + if (Object.keys(j.registries).length === 0) delete j.registries; + await Bun.write(p, JSON.stringify(j, null, 2) + "\n"); +} ' diff --git a/marketplace/ui/tailark/skills/tailark/SKILL.md b/marketplace/ui/tailark/skills/tailark/SKILL.md index e394f9f..848f64b 100644 --- a/marketplace/ui/tailark/skills/tailark/SKILL.md +++ b/marketplace/ui/tailark/skills/tailark/SKILL.md @@ -21,7 +21,7 @@ Paid Quartz content is a separate namespace (`@tailark` → `https://tailark.com ## Register -The **Install** hook writes `@tailark-oss` into `components.json`. If that key is missing, add `@tailark-oss` → `https://oss.tailark.com/r/{name}.json`, then continue. +The **Install** hook runs `bunx shadcn registry add`. If `@tailark-oss` is missing, run `bunx shadcn registry add '@tailark-oss=https://oss.tailark.com/r/{name}.json'`, then continue. ## Find From d881d91dda7dfcaba1bfc1066785cbd0e5563e3e Mon Sep 17 00:00:00 2001 From: Maksim Kachurin Date: Fri, 28 Aug 2026 22:01:33 -0300 Subject: [PATCH 2/2] feat: ship logoSmall for black/white brands Compact chat chrome needs a baked plate on mono marks, not the market card art. --- README.md | 5 +- marketplace/_brand/appwrite/logo-small.svg | 6 + marketplace/_brand/convex/logo-small.svg | 6 + marketplace/_brand/firebase/logo-small.png | Bin 0 -> 2763 bytes marketplace/_brand/gsap/logo-small.png | Bin 0 -> 13780 bytes marketplace/_brand/linear/logo-small.svg | 6 + marketplace/_brand/mapbox/logo-small.svg | 6 + marketplace/_brand/motion/logo-small.png | Bin 0 -> 3942 bytes .../_brand/notion-workspace/logo-small.svg | 6 + marketplace/_brand/notion/logo-small.svg | 6 + marketplace/_brand/prisma/logo-small.svg | 6 + marketplace/_brand/quiver/logo-small.svg | 4 + marketplace/_brand/remotion/logo-small.png | Bin 0 -> 1286 bytes marketplace/_brand/resend/logo-small.svg | 6 + marketplace/_brand/sentry/logo-small.svg | 6 + marketplace/_brand/stripe/logo-small.svg | 6 + marketplace/_brand/supabase/logo-small.svg | 6 + .../posthog/.reforma-plugin/plugin.json | 6 +- .../analytics/posthog/assets/logo-small.svg | 6 + .../auth/clerk/.reforma-plugin/plugin.json | 6 +- marketplace/auth/clerk/assets/logo-small.svg | 6 + .../composio/.reforma-plugin/plugin.json | 6 +- .../automation/composio/assets/logo-small.png | Bin 0 -> 8828 bytes .../cms/sanity/.reforma-plugin/plugin.json | 6 +- marketplace/cms/sanity/assets/logo-small.svg | 6 + .../design/figma/.reforma-plugin/plugin.json | 6 +- .../design/figma/assets/logo-small.png | Bin 0 -> 2667 bytes .../elevenlabs/.reforma-plugin/plugin.json | 6 +- .../media/elevenlabs/assets/logo-small.svg | 6 + .../media/heygen/.reforma-plugin/plugin.json | 6 +- .../media/heygen/assets/logo-small.png | Bin 0 -> 3868 bytes .../media/recraft/.reforma-plugin/plugin.json | 6 +- .../media/recraft/assets/logo-small.png | Bin 0 -> 858 bytes .../replicate/.reforma-plugin/plugin.json | 6 +- .../media/replicate/assets/logo-small.svg | 6 + .../media/svgator/.reforma-plugin/plugin.json | 6 +- .../media/svgator/assets/logo-small.png | Bin 0 -> 4866 bytes marketplace/moods/bro-mode/assets/logo.svg | 20 +-- .../.reforma-plugin/plugin.json | 6 +- .../frontend-design/assets/logo-small.svg | 4 + .../.reforma-plugin/plugin.json | 6 +- .../assets/logo-small.svg | 6 + .../.reforma-plugin/plugin.json | 6 +- .../assets/logo-small.svg | 4 + .../cal-com/.reforma-plugin/plugin.json | 6 +- .../scheduling/cal-com/assets/logo-small.svg | 6 + .../system/nextjs/.reforma-plugin/plugin.json | 6 +- .../system/nextjs/assets/logo-small.svg | 6 + .../.reforma-plugin/plugin.json | 6 +- .../shadcn-tailwind/assets/logo-small.png | Bin 0 -> 3630 bytes .../visuals/.reforma-plugin/plugin.json | 6 +- .../system/visuals/assets/logo-small.svg | 8 + .../ui/aceternity/.reforma-plugin/plugin.json | 6 +- .../ui/aceternity/assets/logo-small.png | Bin 0 -> 2938 bytes .../ui/coss/.reforma-plugin/plugin.json | 6 +- marketplace/ui/coss/assets/logo-small.svg | 9 ++ .../ui/flexnative/.reforma-plugin/plugin.json | 6 +- .../ui/flexnative/assets/logo-small.png | Bin 0 -> 17204 bytes .../context7/.reforma-plugin/plugin.json | 6 +- .../workspace/context7/assets/logo-small.svg | 7 + .../github-mcp/.reforma-plugin/plugin.json | 6 +- .../github-mcp/assets/logo-small.svg | 6 + scripts/pack/logos.test.ts | 28 ++++ scripts/pack/logos.ts | 142 ++++++++++++------ scripts/pack/shared.ts | 4 +- 65 files changed, 384 insertions(+), 103 deletions(-) create mode 100644 marketplace/_brand/appwrite/logo-small.svg create mode 100644 marketplace/_brand/convex/logo-small.svg create mode 100644 marketplace/_brand/firebase/logo-small.png create mode 100644 marketplace/_brand/gsap/logo-small.png create mode 100644 marketplace/_brand/linear/logo-small.svg create mode 100644 marketplace/_brand/mapbox/logo-small.svg create mode 100644 marketplace/_brand/motion/logo-small.png create mode 100644 marketplace/_brand/notion-workspace/logo-small.svg create mode 100644 marketplace/_brand/notion/logo-small.svg create mode 100644 marketplace/_brand/prisma/logo-small.svg create mode 100644 marketplace/_brand/quiver/logo-small.svg create mode 100644 marketplace/_brand/remotion/logo-small.png create mode 100644 marketplace/_brand/resend/logo-small.svg create mode 100644 marketplace/_brand/sentry/logo-small.svg create mode 100644 marketplace/_brand/stripe/logo-small.svg create mode 100644 marketplace/_brand/supabase/logo-small.svg create mode 100644 marketplace/analytics/posthog/assets/logo-small.svg create mode 100644 marketplace/auth/clerk/assets/logo-small.svg create mode 100644 marketplace/automation/composio/assets/logo-small.png create mode 100644 marketplace/cms/sanity/assets/logo-small.svg create mode 100644 marketplace/design/figma/assets/logo-small.png create mode 100644 marketplace/media/elevenlabs/assets/logo-small.svg create mode 100644 marketplace/media/heygen/assets/logo-small.png create mode 100644 marketplace/media/recraft/assets/logo-small.png create mode 100644 marketplace/media/replicate/assets/logo-small.svg create mode 100644 marketplace/media/svgator/assets/logo-small.png create mode 100644 marketplace/playbooks/frontend-design/assets/logo-small.svg create mode 100644 marketplace/playbooks/react-best-practices/assets/logo-small.svg create mode 100644 marketplace/playbooks/web-design-guidelines/assets/logo-small.svg create mode 100644 marketplace/scheduling/cal-com/assets/logo-small.svg create mode 100644 marketplace/system/nextjs/assets/logo-small.svg create mode 100644 marketplace/system/shadcn-tailwind/assets/logo-small.png create mode 100644 marketplace/system/visuals/assets/logo-small.svg create mode 100644 marketplace/ui/aceternity/assets/logo-small.png create mode 100644 marketplace/ui/coss/assets/logo-small.svg create mode 100644 marketplace/ui/flexnative/assets/logo-small.png create mode 100644 marketplace/workspace/context7/assets/logo-small.svg create mode 100644 marketplace/workspace/github-mcp/assets/logo-small.svg diff --git a/README.md b/README.md index d518216..1d76877 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ Author is `plugin.json` `author.name` when present, else Reforma. Shelf is the p Root `marketplace.json` lists plugins under `categories[].plugins`. `source` is a path in this repo or a GitHub `tree/…` URL. `"disabled": true` skips pack (folder stays) when the hosted MCP only accepts catalog clients (Figma waitlist). OAuth apps you register yourself (Drive, Dropbox, Slack, GitHub) stay enabled — credentials go in IN → OAuth clients, not here. -Local plugins live under `marketplace///`. Origin (first-party vs vendored) is `plugin.json` `author`, not the folder tree. Remote pins stay as GitHub URLs. Optional `displayName` / `description` on the listing, plus `marketplace/_brand//logo.*`, overlay the packed manifest — upstream Cursor plugins often ship repo-slug names and “plugin for Cursor” blurbs. +Local plugins live under `marketplace///`. Origin (first-party vs vendored) is `plugin.json` `author`, not the folder tree. Remote pins stay as GitHub URLs. Optional `displayName` / `description` on the listing, plus `marketplace/_brand//logo.*` (and `logo-small.*`), overlay the packed manifest — upstream Cursor plugins often ship repo-slug names and “plugin for Cursor” blurbs. ``` plugins/ @@ -94,10 +94,11 @@ A plugin folder: marketplace/// ├── .reforma-plugin/plugin.json ├── assets/logo.svg +├── assets/logo-small.svg # optional 12–14px glyph └── …convention folders (skills/, rules/, hooks/, …) ``` -`interface.brandColor` is the hex plate behind the logo. Optional `interface.brandColorDark` is the same plate in dark theme. +`interface.brandColor` is the hex plate behind the market `logo`. Optional `interface.brandColorDark` is the same plate in dark theme. Optional `logoSmall` is the chip / chat-chrome mark — not the plated card art. ```sh bun install diff --git a/marketplace/_brand/appwrite/logo-small.svg b/marketplace/_brand/appwrite/logo-small.svg new file mode 100644 index 0000000..f007ecc --- /dev/null +++ b/marketplace/_brand/appwrite/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/convex/logo-small.svg b/marketplace/_brand/convex/logo-small.svg new file mode 100644 index 0000000..ad669ab --- /dev/null +++ b/marketplace/_brand/convex/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/firebase/logo-small.png b/marketplace/_brand/firebase/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..77d53c67532f9550109f0ffc4ea9ec604b310648 GIT binary patch literal 2763 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 R6D0ru002ovPDHLkV1m3q5D5SP literal 0 HcmV?d00001 diff --git a/marketplace/_brand/gsap/logo-small.png b/marketplace/_brand/gsap/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..5c09afd038fe8f7da01202cfa520f6f35ec4a925 GIT binary patch literal 13780 zcma)jWmFtZ)aKwiK+wS87Ti6!I|P?t!QBb&?iL1j*Wj*6aCdiiciDNrvw!x-?%D3s zRn^s}q)YF8o?8*hic&yi0%QOH0F;pySAqBq|2>G%5Vx)-!4%@bnu{oi006adD6d9v zkatpJX%z(kz>^vP@DBz6o*_~GhX8;p3jlCz2mtV<0swdpnQh$VrIp*8l*AtBkman)~vZk7YdJfa|`O_S^%jfPlb52(JS= zJe~{&rAQJv?Q|XvZ9+pM{R&x?O_jn^qNZS9`<6qcv1Xm=Qr*0@<)1p6krPhZi2M#p z@g!^!SxUHgct>>qURLh?9zp^3HRoIHMxi!(diIL8k_vP}r*2_V&+>|EPXphJy^&K- zfO?s%db!H4a)$Mkvhdv<2KRRB6tgOdMC#H}zQyHA} zJ2^PjsXjwDdXQ=9lLL=6Q8gc!eY3&KCQ*+Zvz%64hAzT_oH(LptZE>|_$2B|jls2k z#ml*OE9Li}kQJYn3V1Jp#r;0MuRMr@h-}az!T=oMZ)8QHvLV6wp;#>Vs$m*)^&`id zk!)@7^xS?JH{oOE6-VV|Cn%h!)`)i1RhADP$KUHzQ*06$v~%&UQ@vZOK{+>&g8as17_xc2|jFuDk1etH&YnFjOOB@z^-HNe-qG z0&S`8)`C8Q&?iS3lVC#f_Pxz&23+dS#yK1-O0pdzt8)+e|jhePAV&lu$+R#j{N7W=wzst$r&Ok z1++g9Lrod1dR$iYxOMb5qkj1A5qOp$@?GKlUTV2rXnMv$DvA9tnWeyy}nf}mur zR9In*Pd)JB67c|}+;p{BIr@_crN8=_vJ-#pl)FDWa(cC8pB}xT>mIw!4s+?kBP5Q) z60nkznrOjZPr^fE-19+0$q%R|m6)x+2puT;*|X?)gsTw~+C}hxXZ9(_`nix>rKSZC z1F_}8mXa<5gfko{tBS{^G~Rtp&MuP)Iz=dLZdShL94_A<>Gi(nGJMJp5=M|pAqF%~ z&`r?>7sN0yd`@PWM?lO^SL=^e>U`>s&3Sv@bEjHM7!HK_`CMq;HdqjIm^iFnoCyVK zG(?MfEC8iAY&-x1V_WuA%6Y`kgV&cF)k?w(F|VEAMX*7Ht%|caxA^uTQ!-QqJW|UB5rFz% zR00lDi$7nmq-rK!3?T)=Q&{Db%NZ=0uUyN0y?E^FoqUHUmrH)-^aRwg+Bzu0H`4N2 z200qqy0sc>8gEbt3~5;%Z+r8pzYA)>6DpuRJv2$@9QDT+oQ{o6hN8lacCKLwbyqTg(|iRoykFj5)>g8QoagyI0Rk}85_IDL&7Zd{D7=U`_-&;@ zsZ^l8d{`*&#&bRN2UvnmS7JCAB>?yWMlgW@Sf=R;M`jjG&@*P>}l7#;t1W-m-D}>9Sg@mNrA>0`cWQ ziDo10e-12e+%M4ng=u0In0{{W57W7L9nNce$Cy&L76mOIRQ`+z$6wAxG}CO#R4VU9 z;U#ov2;i5+s4e@_vS;}6x97C)uM<8(hfN?t&^6xAMB6U5l%YseLfgUBVD>y`^znXefUg;9*9$4AJQ_DcQwWirZ^uLqgq&YzM-uvDwyDfpW@R#J;MsSkL z)3c4?^&7FnCRfetKf$_Al}xB~1u{S)?jxoJOaKPouRA2EUm}S9-;E#6t8@jh6cx4a zg#v$aoqi1ayfX=n$d8))z|s3BI!era_Z35{gTjiPI@#l)2Fbx)E_k)wa~bgQb$ze< z_=e`d!E2MVA#+|?g-8SN&jZR7SWwt1FT|xz!DnUN=gxFiQ9HSCb(-`xKe#;Izx~VG ztmaEegDp1{(^^GNL2|=U05QlqO~Kz?TV?ntbh^UWqgH{Nd};9s70Ex=aj&Gx3%47vAz3N`lk~+O3I*UwShB9GP5Q#i{g)2+q^_6t|yNXlPh$%H;wHK2LuC zmcZ5EK|N|I4*Ro4h)6*)ZURrmXQJlx^zBxW9II~zzMVUT{qh%>%bl7glxr~+VZrKe zQx-5vHDL=&^&fpRW#iq`o_X8IXM%~DzoRsz`27G_c>LvZW-%P$2UrZK#!cR1O(-Zz zkmcK+Ehhqqt5U#4N%ex==P&gXW`l&R*;X#ODvuRVtk_7{-i%<#TP`C^T8JXoov2Yq z`K0*X7H!zA#YXA%Jg?ekj4Iaq+je51!BTL>>OZiuf9}4m1s4vj#%J5S2x!2apFGkn ztyEIQ8TZdYD6i~gTd0@)iTn19)pS1X7;>2K=rce*xW+FEfJj$izlk!{_rZY1<8B%M z!>a@;0U?c4LBKWcsFd|r ztRD@ocq>Z@{ldLh)_GQT-jARI9Aqy7D!kB4f0iiMV88SqlmnFpMYNVCZH8vAXDQiq z?_8Y~p?0~J)yw6amNtk?h4NX?s<)9OG_sunPvy69%KnuEWViwR6Jr|Q2N=iEZWg24 zXIAdY&JtrB=w=mgi3DMN73(W=@_@pQ{pNC0j0uXMo;>9sxO8Za7hz(@mb19GV<^9% zlJH(;Ov2p~kfXiA5@~$9qZ$I8y;QU$(c%;Mjw|(Oa7?lA`Q8qlL!fb};l8P)&Dw32 zz*3A}g!3~SU>rHT3o+})1*CmKwBzm2(A!ATl5c?nV#eeqvG{tq8@t`V(KfqOlw&E; z8c3fUExo+>3C8w!kiya`%a;4{WERilDIfWdnVGe5H^(2XUpvl(W=1kRj!`MtO=HXg zsQ}{2A)-7my*!i9osMW6PTVu=P}l$$$mHw z{uJt*IZupI4uI>e(sz=|RSC~+WT~c+11;n7Dkq8Zw3t*|Ko(j-_s_M&{@vZxX7=Ip z#ET&0Q?#i)cs*8Adc#g2HpiF;7`{fjeUJ|e6^f;ySBoT@c8QJwcr@?DxBOCB#l#pC zw5q9jf1@Xv&`^s7V-V`M++)2FX^rK)46tkI-EW=~nw7P-e-*A+Gv^M%Mh=FJkI{9O zo3klUo9V%;q5{X+G^9e??jqUjCZxk(REK$19xdwtnIcwoHK_r+)>y|^PPxuthx0E4 zqhaH4eVOoBCZu9h{{F5HTuW9&0K*#B;B)I@NxecKu6i-ORtnc-G}qx1>UaQ-&~GXS zMb?jGs-qX-<|6-8P6xvhlxB_NzoGh3_d-x=%5g>jZu#eESUW9sJ}Yr!Le+w5V-zT; z4gtZ76av7dUD=h}%ab(H4wOXzb5kU6XRl{EGyp(T;}4~BDzQ~YURY35Tl-b(@eQ}P zb`1fii8hs6e;l?;erJ#1=_EnS@ksiN^S}mr(TXrYz!iY8h~)%J*fVBXO~a^fNAQ?G zrtCqKA^sgX77P;j5_KL*{SL2W?x(u-pbI-tolfq%U?r34&RcGCIK!boZWXd*W{i-) zc^v2odkA|U>~DCMjp0DBZ2{B5CSsGSXuO(^Wf2pqZ^5{*97^43yuBxH__s|O^JsnJ zhdN$JM3SLB>$k-|iCmy99DPepV2<!l2YVHu7vM$k~wL5?!#-)==o;+hf7miI9~3sFky6ik3&?}HYR~f ze(~$q`PJwH&II+AilvGeDP0CLpBV8E%*b{J{S6yhT+rZ9uE<*u}#D8#Il53>SvGH-&~Y7 zE-b=Hvo?shn%n}Ety?i3*&@KsqsiRIN@s|w5;EI05AM*4a>q3CZ1x&usVwx1sJ0HD z@}hqrLVt!fSU&eA3t&c*_vA$c2%kEgWyhOVyHyO4ZXThMD&KDpm0E9bXPV3IR!ec zMp-5q2DAYp;*U+a=s~12jxR#}d7t=Kr=<+)KK)e48#SU@JpV<9fOZU$U2^BeeAhkx zS{ED0WdY!|gz-Oc!04Kz1%0E=c4JPU;<_~bjkvlbj?CIAzZ%ZP6%Edi`ZFvH0+0^< z-J|FDZ1hilkxi%JuWu&_Dz;^b1B0Wu005-nd(k)xZ6mZ+hDAjy_`F+0jkrX}`YZDSe&R?R=n@8MgCt6Yi@(vK!+(BG0{pL_G} z)a>!nAU`V~(=XbXi+?3&kW~m&Y(VBLx*YwR^*HSV4zvtlZZ^SClw|P65SkeS5E%P&YANqn#1{-B?f$x0u6w|=ERZl@0)@@Z0KclShVL{ zHeACdV+du~@7Z;PD$74mV{$KzOqa!eUY4NW)KU;DC*K4B5j=MGLX9|KyVx{==U*J$ zf2c|O0kRm`fhS27@fzC8r2NZHnj&McaQQ=RU^n3$Kxj~Ypr5L2$12THGNvx=Eq5Yr zPoAWTDFVW=6gOKyO^gMF{oo+aU-^zq_Vu=szEmX6qDoY$S%#CkJT%3P;1@2{5M+yd zooY!YeLKwPJTz4Mg<%;GAYPHKLN27sY6{so7)$vaY>kf|N#MFk(<9=$yq|VoXDfy=U>K)V}wP!|}YuwCaB2 z`S$p_sOYXt9hODFz%Cqo;=Cqp50}Y2f&U1N+{tDPvp)dVz@<0R_z}sc_WqDyO1p-^ z%1?{3hu`5WEp2H;%#I-LU#(n%@ zdOhv^qiPb5US~yGb)2cfRA;OXL4y5{Z6T2QvIu=fa>XX|y2S_C5l-$`LY3#$Xh*ur zAM^c?n>})Q5p&;AGIs*3tcZ>VBSdfYa4u|#+FMC@>rG{5$vk;Gsc}5|)b|;+!PVjk z#Z5h^6l0hAF&(J-tQ9qmPlB8XfGt($A?d(5i}RrTr*SZdX4t8t;}kQ?0QA**%XI*^ zm$j`}pXtcf`?+T?91K$+iV*=;ft$vZe?e)5%kh?dwpQ7g)oH)LF(rYgpPJj!JtVADZ*fd*$@^cLk z`eOkl>~6#4LfT|6miLG9HiGbg+NZ_4f|)_h+O4PSnC(4kRyO8Jl~FBo=3OTt5zWwdTTf12SChadhwHnDU8~3kO~7A| z3AnD$Vx(NrMZn%W)@gVpwY_8u_p{Rzu@vH3RJ6MvYP^l#W$DMp!RGzwQ#O6IF1GwM z!$S|=N_tKbRBte5gmGTbe`U$b^5*@kB);gV7tP3k`|H7wj3M!L5uNxPj1WO2@P*va^@E zlS}gvq*Wj=j{i7q8Fcr=yF6*m!1mQ+X9E<8CK2o=8JZGi(1OfQ+CZm<<_y0qTy3;% zMs~SdayS2*i9UxW@_Jq<8%;?kdqN_cTB)0(08PA7P<`;p$+7O3dl%^KXoL#r4Zmdh zkw)ueYWdhYQe4$}dsZs@3asLOSU>x`eXn(Cz;(%^rak2!h4zmmUCmk>yeyDgz(gV-_+P)B45J?)cjqK_ICOpIZchJ%VF3d` zdDTX)H{4<^QPRu$17&!AIC@$C#Bfz)j!@#uU-e7+Efg|LPsc*td7X0bwKPMy6uX`F z)(#LNy_$kaXeCsSYGO-OL+q~7?CPN&-kruhW@RKgdWElxoi*D74DJpIWP^?I-nZp# zm^R+;mQSA}m~+Az|Bf!oMT6^sfT)IE$%$bal!cU!rzraxM!YoZ=0bztWnWUJ4M-Sw z@2(kaFXz);g{DdYW`W1+po7@M5C=yzh|p!JgGL5kxu>koG!|mw>_}SZj6eiB9?C0a71kHg%ryxwc^xHm;3y3`?CNFzZ+j#q0cl=IDe7UTR)SvTmPmyuy6k6HI>1-Q4-&xBp+RRU{4|6!Jkx0 zio%&L1M@V?X~V~{TVKxv436_VAE?*~dA2BPoPB+IY6=?bqK+f05NX1L+ke4!qO@3d zY#K2Y?=LDa_It=+W*$p!kkg5MP-QNGz<%zUjPPTALCi<^Er=Err9K!pK4xx&sWzC) z-Z(cqj!PX+nbkV_C;*v}XUUoxrOM35ED~nIoW^M}tqffQ0{wIT+4FKo09XYkUZ%gG zq;)XiLRGinM21W|Ia!Vx;o$u_4e!gi9&>FbTW5zib#-iI0!-r}-iB0YsCUk5@Qft| zHxz~#9hRXJVOl)U3&xoUv;L&S_hWIF{$J`=QNrG@vR|<;Iz;;ItT5nsA_P}|mCE|Z z@#$2zpj6os>@<+>YleZ>(RQ4q9CNw1eG`eUs?@?D5xHQhcaHWBy~$>NLjt`c$&d)B zwB*FpLM&(4^EzWx^=j#E=HssO3NJM3eEW5?Z+KK^pcgl6fyrd^2UGwbE5I(frKY2S zmAmON#z4sX*mNYpNtM=o8OGIJp|vg2%j&mAGqZ}DKU>5LkG+^~E~a?w)6=T@cX+03 z9JZ%c`QkEoG#|Pe16|&?mkY%XmhaoleC87q%yCl7=QeH&JiIpvUmZ#8>Bo4B8FqwR zJ>EgxZjZAgU^(W<k zYDhSPc@~Q__;=d+q_A(u?hAuNV#I9i1?uZr4GHmA-EssvY16tR2C82_aUH0rY;Ovr zxb|NP14h0-2{tzR)7mPx{H~9GaDe*6`Y9IO$JKB%ZruRH{HIk@MB`vSG&Z^z%W5Vz z{*N)ez=pYF9S_#qI^O#8xSyA^WBH&MwnyQQvXt#erysOFp4wIpgH?9%3HvXjx#F;4 z_fP-9w;eVLkKy4iobI##z?5oPuDjkfRU z8r|ZD#}QOQC{Kb_bJ@~aZ@qKfAEzTyIbXqAHPR&XpVD{e5f@LD8h8Y!EH}0(f+4yB zpDo0ZR}(G(l3kh>0+r_$9b8T`zymp*>8Z>I7dO}8&Fek`6Blg<;Cn6`G+B8{3Ow87 z&yOnDd&?oM3tji?aXDX`F`F`VRszrMMlTb%z&Ar02T8U~#5I&yMsOA8Mq_)CPE-Ar z%;b~sbiV}&vfj@J8|{Hr1ZWqlfU*t3j*|novya8t=W`wHM5n1xe@wYV#i9}>=8iYN ziH;j3^L+qyNCsU7?LuC(LUhi*U_=ElwJ9!d& z8lF1!XOov~orfUcc+g#}UEFT7Tri89&RRHE-Fhje!ruW6aO~JPN!oW`KfzY5-F_FU zzgRA=L>6aW4L?uv#{188nm1@I4-}D0fa>ZCDaJFJxJ<7WySEjZVX+4Eo;RI5tw@`> zoJsy`T}uat=q+vwd~F>~)FoB@WJ?&PGIcWH%j4n5sTyQOhAQeBi9<*3-W&u1Sh3ki zHTpV=p*z3a@zp)rq$hO`td^!G8@pSr4djfKepmmyxcX{~CX+%%ZnS^rQVzM&6=`K< zWvHgDM`|xkOrEXWAOG$S4jozJnQP)1?>$GLp6)vSV2`)>d2+ZEb=27B@%Bw`(VxAL>;-D5Z2O5^2GFFjXrjU)?y}F6?d3 zf%Ah3ndiLU$URr?vd>vg!(1zIjTU2)a&e&3q+nEJch%J2bl>S zgh>8vDUsRe6NJP$g8W^4n60f9zn-%<*CFG`%SlSgtWl-7XF=)OO2W#yHOJQyY5d)I+-vqTnkbx#p*$k*NQ0Zh)mgRMhSc}&IR5C z<@eEwdFoLgp4>JItQy@6MjiY)8a|ct5IvXjJ;)yT7zkoqIVrN~$aIdN69KjDQ%{9P7`0bW^9{8(IV}nL4&ZfA@yDOrh|66f7Zr& zZF`GQwqAww=|t0Cj&q))q|kkxnrDphnwBhPyYml5*tf6wnl`%2YQONfnYEo#7r$=C z-y?MREnj&5hNAl6*_9a;ZttQzo5{5pB=jos?d*44F(o-%(<}$EO(d#Beu3$YO0&1& z%s|)kOlKG$lE}`J6LA*~ufaI5MV#-M00P5i@Cda#RApwnr}Y|n<*vW|^Bou`pg$N{ zGB)I$0HYvC90B|4Qr1Ta@u2O4O7@gbmS>N*i~eDL4M%LxS-!vh@NO`&)~gQ6|0QT( zN9StGxq@z+-rC0E+=$9-J0i^s$+fWeEkw{GY2h}P#<{CQd6`9kW;lm=K{3Z!A5rdl zDW8xtcHc{P!F;|CkD)_R2}6AG<>IIB?F2DW!?XRc$kgk0g|ofTEH68DcGq`r5^Y)# z&u$K~NB5-E@><=H$Tv}L%G#Ejz0>qb!>_PaEc0Q+pU4pnAC`5`?IL2O@DQRhb^ojC zl#tiojYFKlINQ|U%FGKQQ_%mg9BeyFc9#FOo`{)l#$EddomO4F%5*mj8GCkp|KU5P zarxvVaQrKbD_%2{veK?}CtrQ*ayjGN2GsynN|Iq^e+=E$^O~Lnwc*(g()@DUNG+b{ z7M;)UChm1=9|fqJJ&MgIaWALs(6`>aySc!7Z(cKFVqSPF4oB04~D42^aWRflu z%KWW*a<=x!mHq@=-1S`Yaa`Na=-N;Ua#n8OxeDVy`+7X_VbO32i&U(_#?w)^gWl9e zY-ch7b|zz}zu9}XtnN4%QSec3(sFaFYv}bNd)A&E4a$~`>z?C&-xs&4%3bvTvim#; zCOHzAH9GRT9N>^)zNI7Y^@h3I+YA-pa;N{n!B#$P3)Q*Mf%cZNxZeo^8xH@{# zdcMt%IZg>GXb(Y_TC!{F1?tRa*((9sN??3%0P_MvtU+^TRJ8cjE$k2QL z+3h-!5=8Xxr1^2!r|yk?O(m-07VndJ&2&jaMj4ZbO@un>=l8$zPtu%pT&TV32ZEP5 z7Y^JlH!f2vo4%XQ2pz6W%P6>A@;43W1fMbN5_z|Zs;l-Xy1fSVR4tILL?RKwUh}Ar z0+h|BQJBf+eKV4c;50ls$T{KRH!Xsoq2pU)8AvRCl3&I{Z!U#|j>s<+y{)Ho#o15H z4EP8wEcldWZ3D!y(`Vpc4ivxwakgDAM_t?5jF^OryT5(%VTclsqQXNW;6@R|F)$yX z23W%pU$tPu8+uct2^#{)m;GldG(sq4yaeY+R=-;>4@{5;ulB zSR2CFpgjdmtm4?*;au4yY{m<%%0Iv2H`Alr=H4ev<(&H-@8iSKklyh&)S6Yf-%E}v zfR-X+Q7yFEQ>sMaf+zQv-{US=&UU)uE-E(&3hx3n*lzGG6$q@-6xH>w;A9up_k)Dm zE5Z??pb)rtcT05QH$$HUX>$(pfje3^+&8f(EU)8}@VeOPROiN!R{5e!0e$N3Y5n^P z>1}Owv)jYWO2|GdkaLSam$7UV-eyV^vGwEN0b7LlpTC%AZnn*hDQ;x3CAt(ud`(VBVUo5J9Xm&?*+X=e1Y@aa&tA7H`XXAmpp?aS$nK2 z%jd>bxFG8kCzx?lmOu;*iQGBykzRP7nLvs1)W~X zcv-U<8+rS+ZkEPlgt`8C;akKphXZ_wIK~bgs3P z{j#4h{w3>cJ_Z@*OP`kkLfvFqQ`A8z?Bm~uA>*ttm=rQCfqU$ThbJg|-Nmtxb4^rRvHXVUTyzy5f1dsE;Ta>2{!M;p;rF%PIhGC=Jxa~$uHEoLxn z8XlU*IB{MWO`TC*iBt;6)`&?!zMOR*OX^zz7c^acL@ z0HE94tlP8L8q~gS)fi2Kfgf%von7QGqs+;C{F*KOr5Va*kH3PIYeCArzdD%(tXxAJ zH5vlR;}3-NBA{(0eofLhe*o?@uTI*h6bbTY&$}g~d9)({uehzte6BFi->A3x01N)jKVcdG~&{4Y^|pnn!w)X^CpaJ16rx zUbEX!e6$1TqaTSY68#Nx9J97``k}{P^-D}yNtI@&rs zPKMZh2!DuG$EDMhy{f7Bn|d7~sncXAS731fGgC02$8SWR;}N*}q2>|%F{2zJ4C*6* zrAnK9fH;$~y_xRrp6xymWQr1W1xsh7!Cz-3#-%@go{eZGYK*`oR8#FYp9R~So@!su z+U%&y@_lpUGqZWRQC%QTIW;Cy!%GAuz7KUMvHbR4Gmry7nTFl8h2*Sh z&rfSFi@K`$Z|tCNJwB|tcy=M7CXwFmqp^36`f z7c>PAAQf5CKP+>im(!Nn5Ea?w$&6*D!kL98i{JYk%f%u5SyXp5@|%kx65x;glf@sF zoiT`L+6E9#VT8=^_LxK|j0EWrx;11T736P6Ez0&Vy$;IBXrxni7;B&A*;zijN_u2& z0NU8xos%HAB+$Dy6${yjdsJ9`W{9J-zkfFzywSH}(<-h$*SBG4`R_owywn7K&SWjM zHN?o+EkmJwcq%lUQX>QwPKA}hPnqg}6C%x{tVm7e7*T%%6ajxkzRkw0ogqZo;Nfuo zqPaC!gm5C&g``C)p$N8xu+W?2sh(=XEiU3*{B)$Gx*fTq$WT>;IwALUF!w9+IE1#T zI#{v*Sy{d8@N!xSo9KRnP`7oBb9extP<7a|Ve&y;2TF>vs94Q;AM7{vcuDH7y#)HgA-swK4(A-;%@EbwQVC_n#yiFgZS30Q_POY3Z>W^m-w0fX zI<*?RE-AS`kb>;T9Q3QmMqb81FVBwj^0h{9&f?FhTF&{})eCksGOs3fG=jv_&0f#e z5XR%S#UF;te^0Rf zN;dmSD@0%x3+ijmCBcS+A#my+>8-3D1!8?MSCb$TVjY|Lql9K#I5P}UVf!wc;bUh* z!r5{lRAPOY{aDjdst~uJK{lB`TQ)O99%D3}AA$RB5UG%v3GaWEG;<=ynuo_fZ?9@2 zY~tp6dMf`vEcc?06HDK?bm-Hk7<*BppbVPh#JJeQVSwW_3cc3yZRHaiK|wVv*OSjQ5pFQ)21G7d#ed#a&cPlQcf(1?tTFVroS7EAW&9Uc^VO`Rn!zWV1TLL zG*%e3oR%Hxpyse@nBVnmcl0sBa(Q6tp`>3)ksW=#|H_FD92={IswL-Uk56bNukB+g z8&iT0q4Bt)pK(va4{vVl0xT`)51yQYjPp1V8frWcG_38LYSW~W8=RiKf==W^EARFm zUzoqEO(TDjIduCc$(HT;@N}b5pN@Bf9D3JmwgV$)HrhJ{?{GZ(=QtNatj4LjIydyL zAm;M1$(xR47+L(;#5rmZ`4~;+`r6`feu3$$E6?pr0D}ioLIlU-7>T^@ z2}_rs58d>8i&c+Ed~ZxlnkE@>=p?%CE%#njYmWJSSe4zuE%DvVNac$ zVh_t8B=4hseXsBoKo9<>TyzMwXY)7FC=ePgvaTVIa^~XoZYX5RbVd+j4M_B~F`znh zYfJPPSwp4&RPhj*3#8doPnyy!(bP|)hERhCsqM?a*DX=wO*v-@STVyonlZdbOm8$p z<*)80yMLR<4~}+f55}|nd>-BYL9E9KKm71E{H}gDPT-=WxiSiTXo9yXDmbz!dF-M+ zkz>I1=g^mevQQ9$v`yGpbQ1-Gg^kGPO)0L5aet*-U+=r$Rg^umLd|ONV=BIm`<2{< z7P5D(%5?jLYCS7w_2aocDOZHTQHxQR(rCiH@Ni1}H%1>n53VzjVq~&L zRl#j+@k*;<)V#^j5Y&6F4xJoq_HEEP>8TQv$sAWDNCFFl_>`d;yHWpQf3-T0SoVrltvKeuAXW6{s)A<>C+P|#(k2() zm*+_#@AEy(8;KM${J6SA9TKhUQ*_?+?-00}lDdJcl%>K;CMY(PU6}oUo3YkWP3UPq zj@NXux!TREkZAUuEHI7Q2{jC99yHxDc)P1T^#tC?WFUS8hE6?QX*qk}}*|FC>l?E82;)Z%#Yy9?$dYcD^ zRdje&!}`ByXihMCzF23)*pWGs6i{+)luWf3Mue6blTE|>$kK}_fhi~9*?dP=i$X5m z`z!Da@R@4kX25vWdYLD!^>YT7x=ePd(V6MbC+7MLcx<_+GGUO4CirDJyFTeV{jC|jC{+cbN< z$94NoL1*9UXdhH1NqAo#2xil412omYcfz9T%J$v?eR6q8yw@QGLXWRgzfS(0GVFrq{w=mrh*d<@ z-gikhcMtMw7meI)T{`<+K1UgNmi$$(C{u$a1mqUa9;RJRPiZfi-?%(cfkXgh{ylg@ zB#*;#AdbP5$Rg&qkx99nuTJM7y(&)T`(QPGAISOxj#GF%S-Z=ElBu3GOqca$ygI*u z@q1VTD|LCdCQEA)mpv8->?VMSZ8vUnnh+jBY}`El^ni^7Aoe+E#SM9M$9MJh7rtk+ zPZxTz63B179ueEsj)d-32gco=KM&5S%dWrOtFZ~Vye@aY?zMkGGl;CBq|=-NE`O^F z%N!#)KYe}N7xo+6k9R`oQZwGH=y7jNR5P2H$ayM3ftf&;EJlv;P5BmB)df+*A+(#3 zl9xe&O$A~UWt9q{?LPdi}ET{2UTm{O3ZzH{Z>HAecb)*#@c43vkbo7CX4~5 z5(qW=wg+$QEMsXVj=8@iR>{D9>-yJ%Wc~~eN!{xo?UmD&o5lSgrH4CWi<|kj+ky(J z@bdD6r^XSffjHlnRmiZg128nKuR4$^mYI3k&cIYDJT%XrqqZIEB~n^8Kp~0)U|khj zdce>pHzz1TTeZ#9p>fe;nOSnxIIXODNRI9{S?&K>P}bk{o;RJ{b;av?&1J*Ml>8bz zJ$~%D3*Zi&=<>Z=e$uY^5-gXT;h`*YKe(>wXKV1=PD$)+-oJV61g+IpQM*pAPM$JR z0*MYlE1^(!)PiXcF7bstN;AbwQ7=b;yPKyYIb37%Foh10DW?FkvMp`Qc6JxJTGPya zx(r$63S(Fbr^KQRhx}c6B!po&Doph7>wjIG-rZb<$V#>K?DZ5;wR3+%E$8TGUUkJN zOLh@?PNBl+ck5ox+;a5lWD;XaEhS`VhJKlN^AhWZ|4aE%`_KKjUoqDyV$Jquo=>2W z$zX5?i6=|H-3A;ko}8R0Tewhg)wrj%|At=?b;6xW`Tui + + + + + diff --git a/marketplace/_brand/mapbox/logo-small.svg b/marketplace/_brand/mapbox/logo-small.svg new file mode 100644 index 0000000..f06f200 --- /dev/null +++ b/marketplace/_brand/mapbox/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/motion/logo-small.png b/marketplace/_brand/motion/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..6034708986072f57da13d41b1347bcd4f5db51e1 GIT binary patch literal 3942 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 + + + + + diff --git a/marketplace/_brand/notion/logo-small.svg b/marketplace/_brand/notion/logo-small.svg new file mode 100644 index 0000000..14a424f --- /dev/null +++ b/marketplace/_brand/notion/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/prisma/logo-small.svg b/marketplace/_brand/prisma/logo-small.svg new file mode 100644 index 0000000..710a919 --- /dev/null +++ b/marketplace/_brand/prisma/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/quiver/logo-small.svg b/marketplace/_brand/quiver/logo-small.svg new file mode 100644 index 0000000..f818c49 --- /dev/null +++ b/marketplace/_brand/quiver/logo-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/marketplace/_brand/remotion/logo-small.png b/marketplace/_brand/remotion/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..c17ab6e83836bca80f06b247060b929156305f74 GIT binary patch literal 1286 zcmV+h1^N1kP)c^o}h4oWlvCgf~9{}P;H_H^-tOp6iz@n0qF^FPk?&@vV^Eo z9s6}Ag#J(^3iiCQJ$|1*3RP7=eDmhbOfnMyA%qY@2qAXkFKuYxI2?E9h*(W3whgmnC3~&OTt0WK;#Fyy$UnJNye|^AzjR7$R z$Uj6X8c$w4O29MD1L+)GZ|DyvK-7owVqHaJ{k2Z7U#^b915N{3gh6x$537p%K}__Y zW6bHe$>BH)WaaheevoHpmMY_J%WxtU44XErISZsSnx5+q8{pnp5xt$hTzd}<;3SaF z!PSnQHNAr>EvhCT&i2-hpvDxqK=>4@W`;`rpwNBnV(|c}DfSBK4KDRsBfNyVscFTq zS4bKK+fYZ}E9PBKPdK0^91L0N3DgZ2o zW!4H=E(H6~6#8eax>|ULEP_pFAic*n(CenNDtZfRAc$1&{&Ba>RPQV-_uiag4TKt6 zA>S-!Vs!p!^#3k6!WPKNO}X3OM67@Ub?BA?qhP6po(45{T=$dsR$Nu{|Yb2}D1y z?ZtHWKFpN3`)axgmaqguszLi#77)UTt!);j3c)_KOHXe~o`3~B6@u-mkfn{z==u;! z;;9hCKcSUqw`@P*sSxsG532~>PfAUNc`C${O~ryX%Tx(h4{38CM&TEB@T}AcTO9}? z7Jg!mYwM)t6;gbb>E@M-?Nj&xDS_0C1j53c@+w9G;ea54)QQUTQz$3|VHaXD-Cr$y zIEbf0%(3Ry%7;*bRESN8N3*@vBPc<7h%Jj(&ZniS!{FLFNuYJoei zjS|MuJlz5YEPj_nj~XEY`74jpq0Q$OOHWqG!JqGwZYxx+9x zk0X2lZ{Tx1n{sl_kZ~QNeCQ(+T^U<8*BQUV7Koxefd)f!0a`GB?D}>(w%y(!%f@-w z%*|xeFI){#zkF|C)H%4i_;&Sc6X+dV%;{N`cQ$fgtvp9q`+Zs6(e%7dCvxi=#4Y}5 z5W%VbEmR&z-GjKr9!QwY-=tCWw5p5Dni9k>;M1& literal 0 HcmV?d00001 diff --git a/marketplace/_brand/resend/logo-small.svg b/marketplace/_brand/resend/logo-small.svg new file mode 100644 index 0000000..959ad60 --- /dev/null +++ b/marketplace/_brand/resend/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/sentry/logo-small.svg b/marketplace/_brand/sentry/logo-small.svg new file mode 100644 index 0000000..3797307 --- /dev/null +++ b/marketplace/_brand/sentry/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/stripe/logo-small.svg b/marketplace/_brand/stripe/logo-small.svg new file mode 100644 index 0000000..37e73bb --- /dev/null +++ b/marketplace/_brand/stripe/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/_brand/supabase/logo-small.svg b/marketplace/_brand/supabase/logo-small.svg new file mode 100644 index 0000000..ed8a55d --- /dev/null +++ b/marketplace/_brand/supabase/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/analytics/posthog/.reforma-plugin/plugin.json b/marketplace/analytics/posthog/.reforma-plugin/plugin.json index 0f7b4c6..1684388 100644 --- a/marketplace/analytics/posthog/.reforma-plugin/plugin.json +++ b/marketplace/analytics/posthog/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "PostHog", "brandColor": "#000000", - "logo": "assets/logo.svg" - } + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/analytics/posthog/assets/logo-small.svg b/marketplace/analytics/posthog/assets/logo-small.svg new file mode 100644 index 0000000..4855dee --- /dev/null +++ b/marketplace/analytics/posthog/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/auth/clerk/.reforma-plugin/plugin.json b/marketplace/auth/clerk/.reforma-plugin/plugin.json index da09778..71e8c79 100644 --- a/marketplace/auth/clerk/.reforma-plugin/plugin.json +++ b/marketplace/auth/clerk/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "mcpServers": "./mcp.json", "interface": { "displayName": "Clerk", - "brandColor": "#131316" - } + "brandColor": "#131316", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/auth/clerk/assets/logo-small.svg b/marketplace/auth/clerk/assets/logo-small.svg new file mode 100644 index 0000000..c9325e3 --- /dev/null +++ b/marketplace/auth/clerk/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/automation/composio/.reforma-plugin/plugin.json b/marketplace/automation/composio/.reforma-plugin/plugin.json index 9221b70..01c951c 100644 --- a/marketplace/automation/composio/.reforma-plugin/plugin.json +++ b/marketplace/automation/composio/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "Composio", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/automation/composio/assets/logo-small.png b/marketplace/automation/composio/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..f22a21408141a95b4c1c4b723500762478d8c2fa GIT binary patch literal 8828 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 BulWD~ literal 0 HcmV?d00001 diff --git a/marketplace/cms/sanity/.reforma-plugin/plugin.json b/marketplace/cms/sanity/.reforma-plugin/plugin.json index 14053ef..e597025 100644 --- a/marketplace/cms/sanity/.reforma-plugin/plugin.json +++ b/marketplace/cms/sanity/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "Sanity", "brandColor": "#0D0E12", - "logo": "assets/logo.svg" - } + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/cms/sanity/assets/logo-small.svg b/marketplace/cms/sanity/assets/logo-small.svg new file mode 100644 index 0000000..7f61f22 --- /dev/null +++ b/marketplace/cms/sanity/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/design/figma/.reforma-plugin/plugin.json b/marketplace/design/figma/.reforma-plugin/plugin.json index 5e01146..e6c779e 100644 --- a/marketplace/design/figma/.reforma-plugin/plugin.json +++ b/marketplace/design/figma/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "Figma", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/design/figma/assets/logo-small.png b/marketplace/design/figma/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..70e4f03bf625a7ee68787bf57bf3cff12b909bf4 GIT binary patch literal 2667 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 + + + + + diff --git a/marketplace/media/heygen/.reforma-plugin/plugin.json b/marketplace/media/heygen/.reforma-plugin/plugin.json index c9e7a32..efe104d 100644 --- a/marketplace/media/heygen/.reforma-plugin/plugin.json +++ b/marketplace/media/heygen/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "HeyGen", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/media/heygen/assets/logo-small.png b/marketplace/media/heygen/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..596025021ce36a3d0cbf85071436b40fe72205ae GIT binary patch literal 3868 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 literal 0 HcmV?d00001 diff --git a/marketplace/media/replicate/.reforma-plugin/plugin.json b/marketplace/media/replicate/.reforma-plugin/plugin.json index 49c66c0..38d9edf 100644 --- a/marketplace/media/replicate/.reforma-plugin/plugin.json +++ b/marketplace/media/replicate/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "Replicate", "brandColor": "#000000", - "logo": "assets/logo.svg" - } + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/media/replicate/assets/logo-small.svg b/marketplace/media/replicate/assets/logo-small.svg new file mode 100644 index 0000000..0e7a79f --- /dev/null +++ b/marketplace/media/replicate/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/media/svgator/.reforma-plugin/plugin.json b/marketplace/media/svgator/.reforma-plugin/plugin.json index 8caddeb..8c6084b 100644 --- a/marketplace/media/svgator/.reforma-plugin/plugin.json +++ b/marketplace/media/svgator/.reforma-plugin/plugin.json @@ -10,6 +10,8 @@ "interface": { "displayName": "SVGator", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/media/svgator/assets/logo-small.png b/marketplace/media/svgator/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..c274815e84bef26773960e58e2b33986bef5accb GIT binary patch literal 4866 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 literal 0 HcmV?d00001 diff --git a/marketplace/moods/bro-mode/assets/logo.svg b/marketplace/moods/bro-mode/assets/logo.svg index ab5d8e8..befb395 100644 --- a/marketplace/moods/bro-mode/assets/logo.svg +++ b/marketplace/moods/bro-mode/assets/logo.svg @@ -1,9 +1,11 @@ - - - \ No newline at end of file + + + + + + + + + + + diff --git a/marketplace/playbooks/frontend-design/.reforma-plugin/plugin.json b/marketplace/playbooks/frontend-design/.reforma-plugin/plugin.json index 91f748f..c7259ca 100644 --- a/marketplace/playbooks/frontend-design/.reforma-plugin/plugin.json +++ b/marketplace/playbooks/frontend-design/.reforma-plugin/plugin.json @@ -14,6 +14,8 @@ }, "interface": { "displayName": "Frontend Design", - "brandColor": "#000000" - } + "brandColor": "#000000", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/playbooks/frontend-design/assets/logo-small.svg b/marketplace/playbooks/frontend-design/assets/logo-small.svg new file mode 100644 index 0000000..7a83321 --- /dev/null +++ b/marketplace/playbooks/frontend-design/assets/logo-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/marketplace/playbooks/react-best-practices/.reforma-plugin/plugin.json b/marketplace/playbooks/react-best-practices/.reforma-plugin/plugin.json index bff8f52..b261e8a 100644 --- a/marketplace/playbooks/react-best-practices/.reforma-plugin/plugin.json +++ b/marketplace/playbooks/react-best-practices/.reforma-plugin/plugin.json @@ -15,6 +15,8 @@ }, "interface": { "displayName": "React Best Practices", - "brandColor": "#000000" - } + "brandColor": "#000000", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/playbooks/react-best-practices/assets/logo-small.svg b/marketplace/playbooks/react-best-practices/assets/logo-small.svg new file mode 100644 index 0000000..657c276 --- /dev/null +++ b/marketplace/playbooks/react-best-practices/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/playbooks/web-design-guidelines/.reforma-plugin/plugin.json b/marketplace/playbooks/web-design-guidelines/.reforma-plugin/plugin.json index 6a6bda6..a7d6e15 100644 --- a/marketplace/playbooks/web-design-guidelines/.reforma-plugin/plugin.json +++ b/marketplace/playbooks/web-design-guidelines/.reforma-plugin/plugin.json @@ -11,6 +11,8 @@ "license": "MIT", "interface": { "displayName": "Web Design Guidelines", - "brandColor": "#000000" - } + "brandColor": "#000000", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/playbooks/web-design-guidelines/assets/logo-small.svg b/marketplace/playbooks/web-design-guidelines/assets/logo-small.svg new file mode 100644 index 0000000..b3a51f9 --- /dev/null +++ b/marketplace/playbooks/web-design-guidelines/assets/logo-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/marketplace/scheduling/cal-com/.reforma-plugin/plugin.json b/marketplace/scheduling/cal-com/.reforma-plugin/plugin.json index 879460c..b46862a 100644 --- a/marketplace/scheduling/cal-com/.reforma-plugin/plugin.json +++ b/marketplace/scheduling/cal-com/.reforma-plugin/plugin.json @@ -10,7 +10,9 @@ "interface": { "displayName": "Cal.com", "brandColor": "#000000", - "logo": "assets/logo.svg" + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" }, - "mcpServers": "./mcp.json" + "mcpServers": "./mcp.json", + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/scheduling/cal-com/assets/logo-small.svg b/marketplace/scheduling/cal-com/assets/logo-small.svg new file mode 100644 index 0000000..7c68155 --- /dev/null +++ b/marketplace/scheduling/cal-com/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/system/nextjs/.reforma-plugin/plugin.json b/marketplace/system/nextjs/.reforma-plugin/plugin.json index 78cec21..d024dee 100644 --- a/marketplace/system/nextjs/.reforma-plugin/plugin.json +++ b/marketplace/system/nextjs/.reforma-plugin/plugin.json @@ -7,6 +7,8 @@ "interface": { "displayName": "Next.js", "brandColor": "#000000", - "logo": "assets/logo.svg" - } + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/system/nextjs/assets/logo-small.svg b/marketplace/system/nextjs/assets/logo-small.svg new file mode 100644 index 0000000..7167462 --- /dev/null +++ b/marketplace/system/nextjs/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/marketplace/system/shadcn-tailwind/.reforma-plugin/plugin.json b/marketplace/system/shadcn-tailwind/.reforma-plugin/plugin.json index 561c2e3..3b84aaa 100644 --- a/marketplace/system/shadcn-tailwind/.reforma-plugin/plugin.json +++ b/marketplace/system/shadcn-tailwind/.reforma-plugin/plugin.json @@ -12,6 +12,8 @@ "interface": { "displayName": "shadcn", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/system/shadcn-tailwind/assets/logo-small.png b/marketplace/system/shadcn-tailwind/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..10279359cb02867f3103e7cf74360a08a618bad5 GIT binary patch literal 3630 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 literal 0 HcmV?d00001 diff --git a/marketplace/system/visuals/.reforma-plugin/plugin.json b/marketplace/system/visuals/.reforma-plugin/plugin.json index ef0aa8e..fcaf60d 100644 --- a/marketplace/system/visuals/.reforma-plugin/plugin.json +++ b/marketplace/system/visuals/.reforma-plugin/plugin.json @@ -5,6 +5,8 @@ "logo": "assets/logo.svg", "interface": { "displayName": "Visuals", - "brandColor": "#000000" - } + "brandColor": "#000000", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/system/visuals/assets/logo-small.svg b/marketplace/system/visuals/assets/logo-small.svg new file mode 100644 index 0000000..040e561 --- /dev/null +++ b/marketplace/system/visuals/assets/logo-small.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/marketplace/ui/aceternity/.reforma-plugin/plugin.json b/marketplace/ui/aceternity/.reforma-plugin/plugin.json index b65abda..8fd19a7 100644 --- a/marketplace/ui/aceternity/.reforma-plugin/plugin.json +++ b/marketplace/ui/aceternity/.reforma-plugin/plugin.json @@ -13,6 +13,8 @@ "interface": { "displayName": "Aceternity", "brandColor": "#000000", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/ui/aceternity/assets/logo-small.png b/marketplace/ui/aceternity/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6a3b2e14408e146ddfea6dc440f0da7cfc32db GIT binary patch literal 2938 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 + + + + + + + + diff --git a/marketplace/ui/flexnative/.reforma-plugin/plugin.json b/marketplace/ui/flexnative/.reforma-plugin/plugin.json index 65bf935..aabd9ea 100644 --- a/marketplace/ui/flexnative/.reforma-plugin/plugin.json +++ b/marketplace/ui/flexnative/.reforma-plugin/plugin.json @@ -15,6 +15,8 @@ "interface": { "displayName": "Flexnative", "brandColor": "#0A0A0A", - "logo": "assets/logo.png" - } + "logo": "assets/logo.png", + "logoSmall": "assets/logo-small.png" + }, + "logoSmall": "assets/logo-small.png" } diff --git a/marketplace/ui/flexnative/assets/logo-small.png b/marketplace/ui/flexnative/assets/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..6d732eed2ada6003cd1cec728bac64bb4b711348 GIT binary patch literal 17204 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 Vt&lus#s6K1TPoVhrHbak{|otFuF3!a literal 0 HcmV?d00001 diff --git a/marketplace/workspace/context7/.reforma-plugin/plugin.json b/marketplace/workspace/context7/.reforma-plugin/plugin.json index a87f455..be58882 100644 --- a/marketplace/workspace/context7/.reforma-plugin/plugin.json +++ b/marketplace/workspace/context7/.reforma-plugin/plugin.json @@ -5,11 +5,13 @@ "homepage": "https://context7.com/docs/howto/oauth", "interface": { "brandColor": "#000000", - "displayName": "Context7" + "displayName": "Context7", + "logoSmall": "assets/logo-small.svg" }, "mcpServers": "./mcp.json", "agent": { "discover": true, "installApproval": false - } + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/workspace/context7/assets/logo-small.svg b/marketplace/workspace/context7/assets/logo-small.svg new file mode 100644 index 0000000..cf2201e --- /dev/null +++ b/marketplace/workspace/context7/assets/logo-small.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/marketplace/workspace/github-mcp/.reforma-plugin/plugin.json b/marketplace/workspace/github-mcp/.reforma-plugin/plugin.json index 8d01a27..f30bafd 100644 --- a/marketplace/workspace/github-mcp/.reforma-plugin/plugin.json +++ b/marketplace/workspace/github-mcp/.reforma-plugin/plugin.json @@ -13,6 +13,8 @@ "interface": { "displayName": "GitHub", "brandColor": "#FFFFFF", - "logo": "assets/logo.svg" - } + "logo": "assets/logo.svg", + "logoSmall": "assets/logo-small.svg" + }, + "logoSmall": "assets/logo-small.svg" } diff --git a/marketplace/workspace/github-mcp/assets/logo-small.svg b/marketplace/workspace/github-mcp/assets/logo-small.svg new file mode 100644 index 0000000..2b13789 --- /dev/null +++ b/marketplace/workspace/github-mcp/assets/logo-small.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/scripts/pack/logos.test.ts b/scripts/pack/logos.test.ts index a329593..8354cd7 100644 --- a/scripts/pack/logos.test.ts +++ b/scripts/pack/logos.test.ts @@ -83,4 +83,32 @@ describe("applyCatalogOverlay", () => { interface: { logo: "https://stripe.com/favicon.ico" }, }); }); + + it("stamps logoSmall from the listing", () => { + const dir = mkdtempSync(join(tmpdir(), "overlay-")); + const pluginDir = join(dir, "gsap"); + + dirs.push(dir); + mkdirSync(join(pluginDir, ".reforma-plugin"), { recursive: true }); + writeFileSync( + join(pluginDir, ".reforma-plugin/plugin.json"), + `${JSON.stringify({ name: "gsap-skills" }, null, 4)}\n`, + ); + + applyCatalogOverlay(pluginDir, { + name: "gsap", + source: "https://github.com/greensock/gsap-skills/tree/abc", + category: "ui", + logoSmall: "https://example.com/gsap-small.svg", + }); + + expect( + JSON.parse( + readFileSync(join(pluginDir, ".reforma-plugin/plugin.json"), "utf8"), + ), + ).toMatchObject({ + logoSmall: "https://example.com/gsap-small.svg", + interface: { logoSmall: "https://example.com/gsap-small.svg" }, + }); + }); }); diff --git a/scripts/pack/logos.ts b/scripts/pack/logos.ts index ddc5250..735faab 100644 --- a/scripts/pack/logos.ts +++ b/scripts/pack/logos.ts @@ -112,7 +112,7 @@ export async function materializeLogo( export function readLogoFields(json: Record): { logo?: string; - logoDark?: string; + logoSmall?: string; } { const iface = isRecord(json.interface) ? json.interface : undefined; @@ -123,11 +123,11 @@ export function readLogoFields(json: Record): { : typeof iface?.logo === "string" ? iface.logo : undefined, - logoDark: - typeof json.logoDark === "string" - ? json.logoDark - : typeof iface?.logoDark === "string" - ? iface.logoDark + logoSmall: + typeof json.logoSmall === "string" + ? json.logoSmall + : typeof iface?.logoSmall === "string" + ? iface.logoSmall : undefined, }; } @@ -135,14 +135,28 @@ export function readLogoFields(json: Record): { export function writeLogoFields( json: Record, logo: string, - logoDark: string, + logoSmall?: string, ): void { json.logo = logo; - json.logoDark = logoDark; if (isRecord(json.interface)) { json.interface.logo = logo; - json.interface.logoDark = logoDark; + } + + if (logoSmall && logoSmall !== logo) { + json.logoSmall = logoSmall; + + if (isRecord(json.interface)) { + json.interface.logoSmall = logoSmall; + } + + return; + } + + delete json.logoSmall; + + if (isRecord(json.interface)) { + delete json.interface.logoSmall; } } @@ -166,37 +180,39 @@ export async function normalizePluginLogos(pluginDir: string): Promise { } const logo = await materializeLogo(pluginDir, fields.logo, "logo"); - const logoDark = - fields.logoDark && fields.logoDark !== fields.logo - ? await materializeLogo(pluginDir, fields.logoDark, "logo-dark") - : logo; + const logoSmall = + fields.logoSmall && fields.logoSmall !== fields.logo + ? await materializeLogo(pluginDir, fields.logoSmall, "logo-small") + : undefined; if (!logo) { delete json.logo; - delete json.logoDark; + delete json.logoSmall; if (isRecord(json.interface)) { delete json.interface.logo; - delete json.interface.logoDark; + delete json.interface.logoSmall; } writeFileSync(manifestPath, `${JSON.stringify(json, null, 4)}\n`); return; } - writeLogoFields(json, logo, logoDark ?? logo); + writeLogoFields(json, logo, logoSmall); writeFileSync(manifestPath, `${JSON.stringify(json, null, 4)}\n`); } -function listingBrandLogo(name: string): string | undefined { +function listingBrandFile(name: string, stem: string): string | undefined { const dir = join(ROOT, "marketplace/_brand", name); if (!existsSync(dir)) { return undefined; } + const prefix = `${stem}.`; + for (const file of readdirSync(dir)) { - if (file.startsWith("logo.") && LOGO_EXT.has(extOf(file))) { + if (file.startsWith(prefix) && LOGO_EXT.has(extOf(file))) { return join(dir, file); } } @@ -204,9 +220,50 @@ function listingBrandLogo(name: string): string | undefined { return undefined; } +function overlayLogo( + pluginDir: string, + listingValue: string | undefined, + name: string, + stem: string, +): string | undefined { + const http = + listingValue && /^https?:\/\//i.test(listingValue) + ? listingValue + : undefined; + const fromListing = + listingValue && !http ? join(ROOT, listingValue) : undefined; + const file = fromListing ?? (http ? undefined : listingBrandFile(name, stem)); + + if (http) { + return http; + } + + if (!file) { + return undefined; + } + + if (!existsSync(file)) { + throw new Error(`overlay ${stem} missing ${file}`); + } + + const ext = extOf(file); + + if (!LOGO_EXT.has(ext)) { + throw new Error(`unsupported overlay ${stem} ${file}`); + } + + const suffix = extname(file).toLowerCase() === ".jpeg" ? ".jpg" : extname(file).toLowerCase(); + const rel = `assets/${stem}${suffix}`; + + mkdirSync(join(pluginDir, "assets"), { recursive: true }); + cpSync(file, join(pluginDir, rel)); + + return rel; +} + function stampInterface( json: Record, - patch: { displayName?: string; brandColor?: string; logo?: string }, + patch: { displayName?: string; brandColor?: string; logo?: string; logoSmall?: string }, ): void { const iface = isRecord(json.interface) ? json.interface : {}; @@ -222,10 +279,14 @@ function stampInterface( iface.logo = patch.logo; } + if (patch.logoSmall) { + iface.logoSmall = patch.logoSmall; + } + json.interface = iface; } -/** Overlay display name, description, and logo from marketplace.json / `_brand`. */ +/** Overlay display name, description, and logos from marketplace.json / `_brand`. */ export function applyCatalogOverlay( pluginDir: string, listing: MarketplaceListing, @@ -242,38 +303,20 @@ export function applyCatalogOverlay( throw new Error(`invalid plugin.json ${manifestPath}`); } - const httpLogo = - listing.logo && /^https?:\/\//i.test(listing.logo) - ? listing.logo - : undefined; - const fromListing = - listing.logo && !httpLogo ? join(ROOT, listing.logo) : undefined; - const file = fromListing ?? (httpLogo ? undefined : listingBrandLogo(listing.name)); - let logo = httpLogo; - - if (file) { - if (!existsSync(file)) { - throw new Error(`overlay logo missing ${file}`); - } - - const ext = extOf(file); - - if (!LOGO_EXT.has(ext)) { - throw new Error(`unsupported overlay logo ${file}`); - } - - const rel = `assets/logo${extname(file).toLowerCase() === ".jpeg" ? ".jpg" : extname(file).toLowerCase()}`; - - mkdirSync(join(pluginDir, "assets"), { recursive: true }); - cpSync(file, join(pluginDir, rel)); - logo = rel; - } + const logo = overlayLogo(pluginDir, listing.logo, listing.name, "logo"); + const logoSmall = overlayLogo( + pluginDir, + listing.logoSmall, + listing.name, + "logo-small", + ); if ( !listing.displayName && !listing.description && !listing.brandColor && - !logo + !logo && + !logoSmall ) { return; } @@ -295,6 +338,11 @@ export function applyCatalogOverlay( stampInterface(json, { logo }); } + if (logoSmall) { + json.logoSmall = logoSmall; + stampInterface(json, { logoSmall }); + } + writeFileSync(manifestPath, `${JSON.stringify(json, null, 4)}\n`); } diff --git a/scripts/pack/shared.ts b/scripts/pack/shared.ts index e4fb7de..2ea46a6 100644 --- a/scripts/pack/shared.ts +++ b/scripts/pack/shared.ts @@ -49,6 +49,7 @@ export type MarketplaceListing = { displayName?: string; description?: string; logo?: string; + logoSmall?: string; brandColor?: string; }; @@ -137,6 +138,7 @@ export function parseMarketplace(raw: unknown): { ...optionalListingField(plugin, "displayName"), ...optionalListingField(plugin, "description"), ...optionalListingField(plugin, "logo"), + ...optionalListingField(plugin, "logoSmall"), ...optionalListingField(plugin, "brandColor"), }); } @@ -151,7 +153,7 @@ export function parseMarketplace(raw: unknown): { function optionalListingField( plugin: Record, - key: "displayName" | "description" | "logo" | "brandColor", + key: "displayName" | "description" | "logo" | "logoSmall" | "brandColor", ): Partial> { const value = plugin[key];