toolroll 0.9.26 → 0.9.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/THIRD_PARTY_NOTICES.md +41 -0
  3. package/dist/agentconfig.js +71 -3
  4. package/dist/brand-icons.d.ts +168 -0
  5. package/dist/brand-icons.js +32 -0
  6. package/dist/brand-mark.d.ts +27 -0
  7. package/dist/brand-mark.js +49 -0
  8. package/dist/browser/THIRD_PARTY_NOTICES.txt +41 -0
  9. package/dist/browser/workspace.css +1 -1
  10. package/dist/browser/workspace.js +21 -23
  11. package/dist/browser-workspace.d.ts +17 -0
  12. package/dist/build-review.js +3 -2
  13. package/dist/builder.js +10 -8
  14. package/dist/chat-actions.js +7 -4
  15. package/dist/chat-delivery.js +3 -3
  16. package/dist/chat-flow.d.ts +4 -2
  17. package/dist/chat-flow.js +36 -10
  18. package/dist/converse.js +3 -2
  19. package/dist/coordinator-proposals.js +2 -2
  20. package/dist/decision.d.ts +3 -3
  21. package/dist/decision.js +4 -3
  22. package/dist/desktop-update.d.ts +2 -2
  23. package/dist/evidence.js +1 -1
  24. package/dist/flow-actions.d.ts +1 -0
  25. package/dist/flow-actions.js +6 -7
  26. package/dist/flow-code.d.ts +3 -2
  27. package/dist/flow-code.js +6 -4
  28. package/dist/flow-draft.d.ts +10 -4
  29. package/dist/flow-draft.js +19 -8
  30. package/dist/flow-engine.d.ts +0 -3
  31. package/dist/flow-engine.js +17 -10
  32. package/dist/flow-items.d.ts +46 -0
  33. package/dist/flow-items.js +152 -0
  34. package/dist/flow-people.d.ts +0 -1
  35. package/dist/flow-people.js +9 -1
  36. package/dist/flow-send.d.ts +5 -0
  37. package/dist/flow-send.js +33 -6
  38. package/dist/flow-steps.js +33 -10
  39. package/dist/flows-ui.js +5 -1
  40. package/dist/flows.d.ts +23 -8
  41. package/dist/flows.js +106 -52
  42. package/dist/guides.js +1 -1
  43. package/dist/integrations-ui.js +10 -3
  44. package/dist/integrations.d.ts +2 -0
  45. package/dist/integrations.js +2 -2
  46. package/dist/lead-context.d.ts +3 -9
  47. package/dist/lead-context.js +21 -5
  48. package/dist/mate-doors.js +8 -2
  49. package/dist/mate-tools.js +27 -10
  50. package/dist/mate.js +13 -2
  51. package/dist/operate.d.ts +3 -0
  52. package/dist/operate.js +122 -8
  53. package/dist/phase-routing.d.ts +86 -5
  54. package/dist/phase-routing.js +228 -16
  55. package/dist/project-skills.d.ts +10 -0
  56. package/dist/proposal.d.ts +10 -2
  57. package/dist/proposal.js +25 -10
  58. package/dist/recipe-ui.js +2 -1
  59. package/dist/result-shots.d.ts +5 -1
  60. package/dist/result-shots.js +33 -3
  61. package/dist/scout-report.d.ts +10 -4
  62. package/dist/scout-report.js +23 -6
  63. package/dist/scout.d.ts +2 -0
  64. package/dist/scout.js +84 -11
  65. package/dist/serve.d.ts +2 -0
  66. package/dist/serve.js +76 -23
  67. package/dist/store.d.ts +64 -5
  68. package/dist/store.js +192 -7
  69. package/dist/task-sizing.d.ts +78 -0
  70. package/dist/task-sizing.js +228 -0
  71. package/dist/task-text.d.ts +4 -4
  72. package/dist/task-text.js +10 -6
  73. package/dist/teammate-work.js +31 -7
  74. package/dist/teammates.d.ts +20 -1
  75. package/dist/teammates.js +18 -5
  76. package/dist/teams-chat.d.ts +4 -1
  77. package/dist/teams-chat.js +17 -6
  78. package/dist/telegram-flow.js +6 -2
  79. package/dist/telegram.js +37 -6
  80. package/dist/test-temp.js +1 -1
  81. package/dist/text-limits.d.ts +67 -0
  82. package/dist/text-limits.js +73 -0
  83. package/dist/tier-report.d.ts +44 -0
  84. package/dist/tier-report.js +71 -0
  85. package/dist/tools-ui.d.ts +1 -3
  86. package/dist/tools-ui.js +5 -4
  87. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.28 — 2026-10-04
4
+
5
+ - **Each task gets the right model.** When a task is filed, a fast
6
+ classifier on your own subscription sizes it as small, medium or large and
7
+ flags risky work. Small changes build on a fast model with no plan. Large or
8
+ risky ones get your strong models for planning and building. The choice is
9
+ sealed into the plan you approve, with the reason, and you can override it.
10
+ Where a tier has both Claude and Codex, it picks the one with more of its
11
+ plan left. `toolroll spend` shows what each tier took.
12
+ - **Nothing gets cut off.** Task goals hold 8,000 characters (up from 2,000),
13
+ notes 4,000 (up from 500) and flow instructions 8,000. Agents are told each
14
+ limit before they write and get one chance to shorten. Anything still over
15
+ is kept whole and linked. Chat messages split instead of cutting.
16
+
17
+ ## 0.9.27 — 2026-10-04
18
+
19
+ - **Integrations show their real logos.** Every integration has its own mark
20
+ in one style and size, ink when connected and muted otherwise, across Tools,
21
+ Integrations and the Settings home. The marks come from Simple Icons and
22
+ svgl and ship inside Toolroll. Services with no open logo keep a letter
23
+ tile.
24
+ - **Research messages explain each example.** After a research step, the chat
25
+ message lists every example: the pattern, why it fits, how it would plug
26
+ in, and its link. Screenshots are numbered to match.
27
+
3
28
  ## 0.9.26 — 2026-10-04
4
29
 
5
30
  - **Connecting a tool goes to the project you see.** On Settings → Tools,
@@ -321,6 +321,47 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
321
321
  SOFTWARE.
322
322
 
323
323
 
324
+ ## Integration logos: Simple Icons (CC0 1.0) and svgl (MIT)
325
+
326
+ The integration logos in `src/brand-icons.ts` are generated by
327
+ `scripts/brand-icons.mjs`, which writes each one as a single monochrome path.
328
+ Logos are their owners' trademarks. Toolroll uses them only to name the
329
+ integrations they belong to. Their use does not imply endorsement.
330
+
331
+ Stripe, Notion, Linear, Sentry, Jira, Confluence, Intercom, Square, PayPal,
332
+ Webflow, Wix, Vercel, Cloudflare, Figma, PostHog, Better Stack, Telegram,
333
+ Discord, GitHub, Gmail, Claude, Supabase, shadcn/ui and Google Chrome come from
334
+ Simple Icons 16.34.0 (npm `simple-icons`, https://simpleicons.org/), and
335
+ Zapier's asterisk from Simple Icons 9.10.0, saved as published in
336
+ `assets/brand-icons/zapier.svg`; all dedicated to the public domain under CC0
337
+ 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/
338
+
339
+ Slack, Microsoft Teams, Canva, OpenAI and Playwright come from svgl
340
+ (https://svgl.app/), saved as published in `assets/brand-icons/`; the generator
341
+ only fills every shape with one colour and scales it.
342
+
343
+ MIT License
344
+
345
+ Copyright (c) 2022 Pablo Hdez
346
+
347
+ Permission is hereby granted, free of charge, to any person obtaining a copy
348
+ of this software and associated documentation files (the "Software"), to deal
349
+ in the Software without restriction, including without limitation the rights
350
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
351
+ copies of the Software, and to permit persons to whom the Software is
352
+ furnished to do so, subject to the following conditions:
353
+
354
+ The above copyright notice and this permission notice shall be included in all
355
+ copies or substantial portions of the Software.
356
+
357
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
358
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
359
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
360
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
361
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
362
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
363
+ SOFTWARE.
364
+
324
365
  ## react-remove-scroll-bar 2.3.8 — MIT
325
366
 
326
367
  This Radix dialog dependency declares MIT in its package metadata but omits its
@@ -234,6 +234,39 @@ export function resolveScopeChain(store, repo, ref, flags, baseAuthMode) {
234
234
  }
235
235
  const PHASE_NOUN = { plan: "planner", build: "builder", repair: "repair", review: "reviewer" };
236
236
  export function resolveRouteCandidates(store, repo, pins = {}) {
237
+ // The LIGHT tier (v2): the operator's named fast builder, project over
238
+ // installation, never inherited and never inferred. Only the build phase
239
+ // has one: a small change makes no plan, and repairs resume the builder.
240
+ const lightOf = (phase) => {
241
+ const project = repo === null ? null : store.phaseTierConfig(repo, phase, "light");
242
+ const row = project ?? store.phaseTierConfig(INSTALLATION_SCOPE, phase, "light");
243
+ if (row === null)
244
+ return { ok: true, light: null };
245
+ const source = project !== null ? "project (light)" : "installation (light)";
246
+ if (!isProviderId(row.provider) || row.model === null || row.model === "") {
247
+ return { ok: false, problem: `the ${source} ${PHASE_NOUN[phase]} names ${row.provider}${row.model === null || row.model === "" ? " with no model" : ` · ${row.model}`} — a light agent is an exact pair: \`config set ${phase} --tier light --provider … --model …\`, or \`--clear\` it` };
248
+ }
249
+ const valid = validateSpec({ provider: row.provider, model: row.model });
250
+ if (!valid.ok)
251
+ return { ok: false, problem: `the ${source} ${PHASE_NOUN[phase]}: ${valid.problem}` };
252
+ return { ok: true, light: { provider: row.provider, model: row.model, source } };
253
+ };
254
+ // Alternates (v2): one more candidate per provider on a tier, project over installation.
255
+ const alternatesOf = (phase, tier) => {
256
+ const project = repo === null ? [] : store.phaseTierAlternates(repo, phase, tier);
257
+ const rows = project.length > 0 ? project : store.phaseTierAlternates(INSTALLATION_SCOPE, phase, tier);
258
+ const source = `${project.length > 0 ? "project" : "installation"} (${tier}, also)`;
259
+ const alternates = [];
260
+ for (const row of rows) {
261
+ if (!isProviderId(row.provider))
262
+ return { ok: false, problem: `the ${source} ${PHASE_NOUN[phase]} names unknown provider ${row.provider} — \`config clear ${phase} --also --provider ${row.provider}\`` };
263
+ const valid = validateSpec({ provider: row.provider, model: row.model });
264
+ if (!valid.ok)
265
+ return { ok: false, problem: `the ${source} ${PHASE_NOUN[phase]}: ${valid.problem}` };
266
+ alternates.push({ provider: row.provider, model: row.model, source });
267
+ }
268
+ return { ok: true, alternates };
269
+ };
237
270
  const strongOf = (phase) => {
238
271
  const strongProject = repo === null ? null : store.phaseTierConfig(repo, phase, "strong");
239
272
  const strongInstallation = store.phaseTierConfig(INSTALLATION_SCOPE, phase, "strong");
@@ -284,7 +317,34 @@ export function resolveRouteCandidates(store, repo, pins = {}) {
284
317
  return { ok: false, phase, problem: routine.problem };
285
318
  if (!strong.ok)
286
319
  return { ok: false, phase, problem: strong.problem };
287
- out[phase] = { routine: routine.routine, strong: strong.strong };
320
+ const light = phase === "build" ? lightOf(phase) : { ok: true, light: null };
321
+ if (!light.ok)
322
+ return { ok: false, phase, problem: light.problem };
323
+ if (phase === "review") {
324
+ out.review = { routine: routine.routine, strong: strong.strong };
325
+ continue;
326
+ }
327
+ // A tier's candidates on other providers (`--also`), one per provider.
328
+ const alternates = {};
329
+ let primary = { light: light.light, strong: strong.strong };
330
+ for (const tier of (phase === "build" ? ["light", "routine", "strong"] : ["routine", "strong"])) {
331
+ const read = alternatesOf(phase, tier);
332
+ if (!read.ok)
333
+ return { ok: false, phase, problem: read.problem };
334
+ const own = tier === "routine" ? routine.routine : primary[tier];
335
+ // With no candidate of its own, a tier's first alternate stands as it.
336
+ const list = own === null ? read.alternates.slice(1) : read.alternates.filter(one => one.provider !== own.provider);
337
+ if (own === null && read.alternates[0] !== undefined)
338
+ primary = { ...primary, [tier]: read.alternates[0] };
339
+ if (list.length > 0)
340
+ alternates[tier] = list;
341
+ }
342
+ out[phase] = {
343
+ routine: routine.routine,
344
+ strong: primary.strong,
345
+ ...(primary.light === null ? {} : { light: primary.light }),
346
+ ...(Object.keys(alternates).length === 0 ? {} : { alternates }),
347
+ };
288
348
  }
289
349
  // Repair: the configured row is optional (inherit is the law when none
290
350
  // exists), but a row that EXISTS must be exact — a provider the policy
@@ -364,6 +424,8 @@ export function routeOfTask(store, taskId, ref, now) {
364
424
  candidates: candidates.candidates,
365
425
  overrides,
366
426
  pins: { plan: planPin.pin, build: buildPin.pin },
427
+ size: ref?.sizing ?? null,
428
+ headroom: store.planHeadroom(now),
367
429
  });
368
430
  return { kind: "route", route, source: "live" };
369
431
  }
@@ -424,9 +486,15 @@ export function agentChoicesFor(store, repo, route) {
424
486
  const buildProvider = route === null ? candidates.candidates.build.routine.provider : legOf(route, "build").provider;
425
487
  const configuredFor = (phase) => {
426
488
  const tiers = candidates.candidates[phase];
489
+ const everyOf = (one) => [
490
+ one.light ?? null,
491
+ one.routine,
492
+ one.strong,
493
+ ...Object.values(one.alternates ?? {}).flatMap(list => [...(list ?? [])]),
494
+ ];
427
495
  const own = phase === "repair"
428
- ? [tiers.routine, tiers.strong, candidates.candidates.build.routine, candidates.candidates.build.strong]
429
- : [tiers.routine, tiers.strong];
496
+ ? [tiers.routine, tiers.strong, ...everyOf(candidates.candidates.build)]
497
+ : phase === "review" ? [tiers.routine, tiers.strong] : everyOf(candidates.candidates[phase]);
430
498
  const out = [];
431
499
  for (const one of own) {
432
500
  if (one === null || out.some(seen => sameSpec(seen, one)))
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Integration logos: each one path in a 24x24 box, filled with currentColor,
3
+ * centred, with the area of a 20x20 square. Generated by
4
+ * scripts/brand-icons.mjs from Simple Icons 16.34.0 (CC0), Zapier's asterisk
5
+ * from Simple Icons 9.10.0 and svgl (MIT), the last two saved in
6
+ * assets/brand-icons/; do not edit by hand. The logos are their owners'
7
+ * trademarks, used only to name the integrations. See THIRD_PARTY_NOTICES.md.
8
+ */
9
+ export type BrandIcon = {
10
+ title: string;
11
+ source: "Simple Icons" | "svgl";
12
+ evenodd?: true;
13
+ path: string;
14
+ };
15
+ export declare const BRAND_ICONS: {
16
+ readonly betterstack: {
17
+ readonly title: "Better Stack";
18
+ readonly source: "Simple Icons";
19
+ readonly path: "M1.5,10.828l-.716,6.212c-.074,.638 .17,1.271 .651,1.696l1.775,1.565c.608,.536 1.551,.014 1.421-.786l-1.423-8.726c-.161-.988-1.593-.954-1.707,.04zM13.078,18.982l-4.232-12.194c-.47-1.354-2.441-1.296-2.826,.084l-1.288,4.607c-.146,.523-.202,.826 0,1.33h.489l1.777,5.679c.275,.685 .844,1.217 1.554,1.454l2.65,.883c1.162,.387 2.271-.703 1.875-1.843zM23.025,18.016l-7.478-14.022c-.652-1.223-2.412-1.191-3.02,.055l-1.839,3.701c-.222,.456-.119,.618 .066,.883c.148,.212 .492,.229 .632,.011c.138-.214 .457-.194 .567,.035l4.808,10c.362,.814 1.121,1.382 2.004,1.499l2.544,.325c1.369,.18 2.367-1.267 1.716-2.487z";
20
+ };
21
+ readonly canva: {
22
+ readonly title: "Canva";
23
+ readonly source: "svgl";
24
+ readonly path: "M12,22c5.523,0 10-4.477 10-10c0-5.523-4.477-10-10-10c-5.523,0-10,4.477-10,10c0,5.523 4.477,10 10,10zM16.551,14.378c0,1.011-1.809,4.124-4.939,4.124c-2.948,0-4.859-2.211-4.859-5.557c0-4.323 2.995-7.447 6.365-7.447c2.039,0 3.255,1.026 3.255,2.423c0,1.44-1.041,2.46-1.929,2.46c-.221,0-.332-.108-.332-.287c0-.399 .643-.998 .643-2.129c0-.953-.582-1.552-1.535-1.552c-2.039,0-4.361,2.409-4.361,6.576c0,2.46 1.221,4.24 3.194,4.24c1.706,0 3.18-1.225 4.033-2.955c.076-.152 .148-.222 .231-.222c.119,0 .234,.103 .234,.326z";
25
+ };
26
+ readonly chrome: {
27
+ readonly title: "Google Chrome";
28
+ readonly source: "Simple Icons";
29
+ readonly path: "M12,2c-3.158,0-5.974,1.464-7.807,3.751l3.294,5.707c.274-2.284 2.212-4.003 4.513-4.003h8.909c-1.709-3.348-5.15-5.455-8.909-5.454zM3.609,6.558c-1.053,1.619-1.612,3.51-1.609,5.442c0,5.01 3.683,9.159 8.491,9.887l3.294-5.706c-2.115,.904-4.572,.085-5.721-1.908zM14.728,8.363c1.842,1.378 2.361,3.917 1.208,5.908l.002,.001h-.002l-4.453,7.714c.172,.008 .344,.013 .518,.013c5.523,0 10-4.477 10-10c0-1.283-.242-2.509-.682-3.637zM12,15.637c-2.008,0-3.637-1.628-3.637-3.637c0-2.008 1.628-3.637 3.637-3.637c2.008,0 3.637,1.628 3.637,3.637c0,2.008-1.628,3.637-3.637,3.637z";
30
+ };
31
+ readonly claude: {
32
+ readonly title: "Claude";
33
+ readonly source: "Simple Icons";
34
+ readonly path: "M5.926,15.298l3.933-2.207l.066-.192l-.066-.106h-.192l-.658-.041l-2.247-.061l-1.949-.081l-1.888-.101l-.476-.101l-.445-.587l.046-.294l.4-.268l.572,.051l1.265,.086l1.898,.132l1.377,.081l2.04,.213h.324l.046-.132l-.111-.081l-.086-.081l-1.964-1.331l-2.126-1.407l-1.113-.81l-.602-.41l-.304-.385l-.132-.84l.547-.602l.734,.051l.187,.051l.744,.572l1.589,1.23l2.075,1.529l.304,.253l.121-.086l.015-.061l-.137-.228l-1.129-2.04l-1.205-2.075l-.536-.86l-.142-.516c-.051-.213-.086-.39-.086-.607l.623-.845l.344-.111l.83,.111l.349,.304l.516,1.179l.835,1.858l1.296,2.526l.38,.749l.202,.693l.076,.213h.132v-.121l.106-1.422l.197-1.746l.192-2.247l.066-.633l.314-.759l.623-.41l.486,.233l.4,.572l-.056,.37l-.238,1.544l-.466,2.419l-.304,1.62h.177l.202-.202l.82-1.088l1.377-1.721l.607-.683l.709-.754l.456-.359h.86l.633,.941l-.283,.972l-.886,1.124l-.734,.952l-1.053,1.417l-.658,1.134l.061,.091l.157-.015l2.379-.506l1.286-.233l1.534-.263l.693,.324l.076,.329l-.273,.673l-1.64,.405l-1.923,.385l-2.865,.678l-.035,.025l.041,.051l1.291,.121l.552,.03h1.351l2.516,.187l.658,.435l.395,.532l-.066,.405l-1.012,.516l-1.367-.324l-3.189-.759l-1.093-.273h-.152v.091l.911,.891l1.67,1.508l2.09,1.944l.106,.481l-.268,.38l-.283-.041l-1.837-1.382l-.709-.623l-1.604-1.351h-.106v.142l.369,.542l1.954,2.936l.101,.901l-.142,.294l-.506,.177l-.557-.101l-1.144-1.604l-1.179-1.807l-.952-1.62l-.116,.066l-.562,6.048l-.263,.309l-.607,.233l-.506-.385l-.268-.623l.268-1.23l.324-1.604l.263-1.275l.238-1.584l.142-.526l-.01-.035l-.116,.015l-1.194,1.64l-1.817,2.455l-1.437,1.539l-.344,.137l-.597-.309l.056-.552l.334-.491l1.989-2.531l1.2-1.569l.774-.906l-.005-.132h-.046l-5.284,3.432l-.941,.121l-.405-.38l.051-.622l.192-.202l1.589-1.093z";
35
+ };
36
+ readonly cloudflare: {
37
+ readonly title: "Cloudflare";
38
+ readonly source: "Simple Icons";
39
+ readonly path: "M16.509,16.845c.148-.507 .091-.971-.155-1.315c-.225-.316-.604-.499-1.061-.52l-8.659-.112c-.054,.001-.104-.026-.133-.071c-.028-.042-.035-.099-.021-.155c.028-.084 .112-.148 .204-.156l8.736-.112c1.035-.049 2.16-.887 2.554-1.914l.499-1.301c.022-.056 .029-.113 .015-.168c-.562-2.546-2.835-4.445-5.55-4.445c-2.504,0-4.628,1.618-5.388,3.861c-.493-.366-1.119-.562-1.794-.499c-1.203,.119-2.166,1.083-2.286,2.286c-.028,.31-.007,.613 .064,.894c-1.963,.056-3.531,1.66-3.531,3.637c0,.175 .014,.352 .035,.527c.014,.083 .084,.148 .169,.148h15.981c.091,0 .176-.064 .203-.155l.12-.427zM19.266,11.281c-.077,0-.161,0-.238,.011c-.057,0-.105,.042-.127,.098l-.338,1.174c-.147,.507-.092,.971 .154,1.316c.226,.316 .606,.498 1.063,.52l1.844,.113c.056,0 .106,.026 .133,.07c.028,.043 .035,.107 .021,.156c-.028,.084-.113,.149-.204,.155l-1.921,.112c-1.041,.049-2.158,.887-2.553,1.914l-.141,.359c-.028,.071 .022,.142 .099,.142h6.598c.077,0 .147-.049 .169-.126c.112-.408 .176-.837 .176-1.28c0-2.602-2.125-4.727-4.734-4.727";
40
+ };
41
+ readonly confluence: {
42
+ readonly title: "Confluence";
43
+ readonly source: "Simple Icons";
44
+ readonly path: "M2.611,17.278c-.209,.322-.447,.738-.644,1.05c-.18,.302-.084,.692 .215,.877l4.188,2.576c.147,.091 .324,.119 .492,.077c.168-.041 .312-.148 .4-.297c.168-.28 .383-.644 .618-1.03c1.659-2.739 3.328-2.407 6.334-.967l4.182,1.972c.157,.075 .338,.083 .502,.022c.163-.061 .295-.185 .365-.345l1.994-4.51c.14-.322-.003-.697-.322-.844c-1.399-.658-2.795-1.321-4.188-1.992c-5.666-2.739-10.464-2.558-14.137,3.408zM21.39,6.722c.21-.342 .448-.738 .645-1.054c.176-.301 .08-.688-.216-.872l-4.188-2.577c-.147-.091-.324-.119-.492-.077c-.168,.041-.312,.148-.4,.297c-.164,.283-.38,.644-.619,1.033c-1.659,2.738-3.328,2.404-6.334,.967l-4.166-1.975c-.157-.075-.338-.083-.501-.022c-.163,.061-.295,.185-.365,.344l-1.994,4.51c-.14,.322 .003,.697 .322,.844c.877,.413 2.619,1.238 4.188,1.992c5.65,2.738 10.454,2.555 14.12-3.408z";
45
+ };
46
+ readonly discord: {
47
+ readonly title: "Discord";
48
+ readonly source: "Simple Icons";
49
+ readonly path: "M19.939,4.717c-1.485-.682-3.053-1.168-4.663-1.446c-.03-.006-.06,.009-.075,.035c-.201,.358-.424,.825-.581,1.193c-1.761-.264-3.513-.264-5.237,0c-.156-.375-.387-.834-.59-1.193c-.015-.026-.045-.04-.075-.035c-1.61,.278-3.178,.764-4.663,1.446c-.013,.005-.023,.015-.031,.026c-2.97,4.437-3.783,8.765-3.384,13.039c.002,.021 .013,.04 .03,.054c1.959,1.439 3.857,2.313 5.72,2.892c.03,.009 .062-.002 .08-.026c.441-.602 .833-1.236 1.17-1.903c.009-.018 .01-.04 .003-.059c-.008-.019-.023-.034-.042-.042c-.623-.236-1.216-.524-1.787-.852c-.021-.012-.035-.035-.036-.059c-.001-.024 .009-.048 .029-.063c.12-.09 .24-.184 .355-.278c.021-.017 .049-.021 .074-.01c3.749,1.712 7.808,1.712 11.513,0c.025-.012 .054-.008 .075,.009c.115,.095 .235,.189 .356,.279c.02,.015 .031,.038 .029,.063c-.001,.024-.015,.047-.036,.059c-.571,.333-1.169,.618-1.788,.851c-.019,.007-.035,.023-.042,.042c-.007,.019-.006,.041 .003,.06c.344,.666 .737,1.301 1.169,1.903c.018,.025 .051,.036 .08,.027c1.872-.579 3.77-1.453 5.729-2.892c.017-.012 .028-.032 .03-.053c.478-4.941-.8-9.234-3.387-13.039c-.006-.012-.017-.022-.03-.027zM8.201,15.18c-1.129,0-2.059-1.036-2.059-2.309c0-1.273 .912-2.309 2.059-2.309c1.156,0 2.077,1.045 2.059,2.309c0,1.273-.912,2.309-2.059,2.309zM15.813,15.18c-1.129,0-2.059-1.036-2.059-2.309c0-1.273 .912-2.309 2.059-2.309c1.156,0 2.077,1.045 2.059,2.309c0,1.273-.903,2.309-2.059,2.309z";
50
+ };
51
+ readonly figma: {
52
+ readonly title: "Figma";
53
+ readonly source: "Simple Icons";
54
+ readonly path: "M15.85,8.983h-4.585v-8.976h4.585c2.475,0 4.488,2.013 4.488,4.488c0,2.475-2.013,4.489-4.488,4.489zM12.735,7.512h3.115c1.664,0 3.017-1.354 3.017-3.017c0-1.663-1.354-3.017-3.017-3.017h-3.115zM12.735,8.983h-4.584c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.489 4.488-4.489h4.585v8.976zM8.151,1.477c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.353,3.018 3.017,3.018h3.115v-6.036zM12.735,16.488h-4.584c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.488 4.488-4.488h4.585v8.975zM8.151,8.983c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.354,3.017 3.017,3.017h3.115v-6.035zM8.175,23.993c-2.488,0-4.513-2.013-4.513-4.488c0-2.475 2.013-4.488 4.488-4.488h4.585v4.439c0,2.502-2.046,4.537-4.56,4.537zM8.151,16.488c-1.666,.002-3.015,1.352-3.017,3.017c0,1.664 1.364,3.017 3.042,3.017c1.704,0 3.091-1.375 3.091-3.066v-2.968zM15.85,16.488h-.098c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.488 4.488-4.488h.098c2.475,0 4.488,2.013 4.488,4.488c0,2.475-2.013,4.488-4.488,4.488zM15.753,8.983c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.354,3.017 3.017,3.017h.098c1.664,0 3.017-1.354 3.017-3.017c0-1.663-1.354-3.017-3.017-3.017z";
55
+ };
56
+ readonly github: {
57
+ readonly title: "GitHub";
58
+ readonly source: "Simple Icons";
59
+ readonly path: "M12,2.125c-5.595,0-10.126,4.534-10.126,10.126c0,4.475 2.901,8.27 6.924,9.607c.506,.095 .692-.218 .692-.487c0-.24-.008-.878-.013-1.721c-2.817,.611-3.411-1.359-3.411-1.359c-.461-1.169-1.127-1.481-1.127-1.481c-.917-.628 .071-.615 .071-.615c1.017,.071 1.551,1.043 1.551,1.043c.903,1.548 2.37,1.101 2.949,.842c.091-.655 .352-1.101 .641-1.354c-2.249-.253-4.612-1.124-4.612-5.004c0-1.105 .392-2.008 1.042-2.717c-.114-.256-.456-1.285 .089-2.68c0,0 .848-.272 2.785,1.038c.81-.225 1.671-.337 2.532-.342c.861,.005 1.721,.116 2.532,.342c1.924-1.31 2.772-1.038 2.772-1.038c.544,1.395 .203,2.424 .101,2.68c.646,.709 1.038,1.612 1.038,2.717c0,3.89-2.367,4.747-4.62,4.996c.354,.304 .684,.925 .684,1.873c0,1.355-.013,2.444-.013,2.773c0,.266 .177,.582 .696,.481c4.051-1.328 6.95-5.126 6.95-9.594c0-5.592-4.534-10.126-10.126-10.126";
60
+ };
61
+ readonly gmail: {
62
+ readonly title: "Gmail";
63
+ readonly source: "Simple Icons";
64
+ readonly path: "M23.545,5.705v13.382c0,.87-.704,1.574-1.574,1.574h-3.674v-8.921l-6.297,4.724l-6.297-4.724v8.922h-3.674c-.418,0-.818-.166-1.113-.461c-.295-.295-.461-.696-.461-1.114v-13.382c0-1.946 2.221-3.058 3.778-1.89l1.47,1.104l6.297,4.722l6.297-4.724l1.47-1.102c1.556-1.167 3.778-.057 3.778,1.89z";
65
+ };
66
+ readonly intercom: {
67
+ readonly title: "Intercom";
68
+ readonly source: "Simple Icons";
69
+ readonly path: "M19.5,2h-15c-1.381,0-2.5,1.119-2.5,2.5v15c0,1.382 1.119,2.5 2.5,2.5h15c1.382,0 2.5-1.118 2.5-2.5v-15c0-1.381-1.118-2.5-2.5-2.5zM14.666,5.666c0-.367 .3-.667 .668-.667c.367,0 .667,.3 .667,.667v8.907c0,.368-.3,.668-.667,.668c-.369,0-.668-.299-.668-.667zM11.333,5.328c0-.367 .298-.666 .667-.666c.369,0 .667,.299 .667,.666v9.668c0,.367-.297,.667-.667,.667c-.369,0-.667-.3-.667-.667zM8,5.666c0-.367 .299-.667 .666-.667c.369,0 .668,.3 .668,.667v8.907c0,.368-.3,.668-.668,.668c-.367,0-.666-.299-.666-.667zM4.666,7c0-.368 .3-.667 .668-.667c.367,0 .666,.298 .666,.667v5.996c0,.368-.299,.667-.666,.667c-.369,0-.668-.3-.668-.667zM19.1,17.168c-.102,.088-2.572,2.161-7.1,2.161c-4.527,0-6.997-2.072-7.101-2.161c-.279-.24-.312-.66-.072-.94c.238-.278 .658-.312 .938-.075c.039,.034 2.244,1.843 6.234,1.843c4.04,0 6.213-1.822 6.233-1.839c.278-.241 .699-.208 .94,.072c.241,.28 .208,.7-.072,.94zM19.334,12.996c0,.368-.3,.667-.667,.667c-.367,0-.667-.3-.667-.667v-5.996c0-.368 .301-.667 .668-.667c.368,0 .668,.298 .668,.667z";
70
+ };
71
+ readonly jira: {
72
+ readonly title: "Jira";
73
+ readonly source: "Simple Icons";
74
+ readonly path: "M11.643,11.594h-9.642c.001,1.155 .461,2.262 1.279,3.077c.818,.815 1.927,1.272 3.081,1.269h1.775v1.714c0,2.399 1.945,4.345 4.344,4.346v-9.568c0-.463-.375-.837-.837-.837zM16.412,6.798h-9.632c0,2.4 1.946,4.345 4.346,4.345h1.774v1.715c.002,2.399 1.947,4.344 4.346,4.345v-9.571c0-.461-.373-.834-.834-.834zM21.177,2h-9.632c0,2.4 1.946,4.346 4.346,4.346h1.774v1.714c.002,2.394 1.94,4.336 4.334,4.343v-9.565c.002-.457-.365-.831-.822-.837z";
75
+ };
76
+ readonly linear: {
77
+ readonly title: "Linear";
78
+ readonly source: "Simple Icons";
79
+ readonly path: "M4.405,5.483c1.899-2.213 4.67-3.486 7.587-3.483c5.528,0 10.008,4.48 10.008,10.008c0,3.033-1.35,5.753-3.483,7.588l-14.111-14.112zM3.514,6.688l13.797,13.797c-.437,.275-.896,.517-1.375,.722l-13.143-13.142c.206-.479 .448-.938 .722-1.375zM2.268,9.636l12.096,12.096c-.592,.143-1.202,.235-1.829,.268l-10.535-10.535c.033-.617 .123-1.229 .268-1.829zM2.127,13.688l8.186,8.187c-4.189-.716-7.471-3.997-8.187-8.187z";
80
+ };
81
+ readonly notion: {
82
+ readonly title: "Notion";
83
+ readonly source: "Simple Icons";
84
+ readonly path: "M5.584,5.37c.635,.516 .873,.476 2.066,.397l11.244-.675c.238,0 .04-.238-.039-.277l-1.868-1.35c-.357-.277-.835-.596-1.748-.516l-10.887,.795c-.396,.039-.476,.238-.318,.397zM6.258,7.991v11.83c0,.636 .317,.874 1.033,.834l12.357-.715c.716-.039 .796-.476 .796-.993v-11.751c0-.516-.198-.794-.636-.755l-12.913,.755c-.476,.04-.636,.278-.636,.794zM18.457,8.624c.079,.357 0,.715-.357,.756l-.596,.119v8.733c-.517,.278-.994,.437-1.391,.437c-.636,0-.796-.199-1.272-.794l-3.894-6.114v5.915l1.232,.279c0,0 0,.715-.994,.715l-2.741,.158c-.079-.158 0-.556 .278-.635l.715-.198v-7.822l-.991-.08c-.08-.357 .119-.873 .675-.913l2.941-.198l4.053,6.193v-5.479l-1.034-.118c-.079-.437 .238-.755 .636-.794zM3.437,2.67l11.325-.834c1.39-.119 1.748-.04 2.622,.596l3.615,2.541c.596,.436 .795,.556 .795,1.032v13.935c0,.873-.317,1.39-1.429,1.469l-13.152,.795c-.834,.04-1.232-.079-1.669-.636l-2.662-3.454c-.476-.636-.675-1.111-.675-1.668v-12.387c0-.714 .318-1.31 1.231-1.389z";
85
+ };
86
+ readonly openai: {
87
+ readonly title: "OpenAI";
88
+ readonly source: "svgl";
89
+ readonly evenodd: true;
90
+ readonly path: "M9.367,2.175c1.818-.487 3.67,.075 4.913,1.315c1.697-.453 3.582-.014 4.912,1.317c1.331,1.331 1.77,3.216 1.317,4.913v0c1.241,1.243 1.803,3.095 1.316,4.913c-.487,1.818-1.9,3.141-3.596,3.597c-.456,1.696-1.779,3.109-3.597,3.596c-1.818,.487-3.67-.075-4.913-1.315c-1.697,.453-3.582,.014-4.913-1.317c-1.331-1.331-1.77-3.216-1.317-4.913c-1.24-1.243-1.803-3.095-1.315-4.913c.487-1.818 1.9-3.141 3.596-3.597c.456-1.696 1.779-3.109 3.597-3.596zM15.436,17.077c0,.206-.11,.397-.288,.5l-4.236,2.445c.937,.723 2.189,1.017 3.421,.687c1.737-.466 2.89-2.025 2.914-3.739v-4.36c0-.132-.071-.255-.185-.32l-1.626-.939zM9.321,17.515c-.178,.103-.398,.103-.577,0l-4.235-2.445c-.158,1.174 .214,2.405 1.116,3.307h0c1.272,1.272 3.199,1.49 4.695,.654l3.776-2.18c.114-.066 .185-.189 .185-.321v-1.877zM15.152,7.76c-.114-.066-.256-.065-.37,0l-1.626,.939l4.959,2.863c.179,.103 .289,.294 .289,.5v4.891c1.095-.45 1.975-1.388 2.305-2.62c.465-1.737-.309-3.515-1.781-4.393zM5.596,7.047c-1.095,.45-1.975,1.388-2.306,2.62c-.465,1.737 .309,3.515 1.781,4.393l3.776,2.18c.114,.066 .256,.065 .37,0l1.626-.939l-4.959-2.863c-.179-.103-.288-.294-.288-.5zM9.72,10.684v2.633l2.28,1.316l2.28-1.316v-2.633l-2.28-1.317zM13.088,3.978c-.937-.723-2.189-1.017-3.421-.687c-1.737,.466-2.89,2.025-2.914,3.739v4.36c0,.132 .071,.255 .185,.32l1.626,.939v-5.726c0-.206 .11-.397 .289-.5zM18.376,5.625c-1.272-1.272-3.199-1.49-4.695-.654l-3.776,2.18c-.114,.066-.185,.189-.185,.321v1.877l4.959-2.863c.178-.103 .398-.103 .577,0l4.235,2.445c.158-1.174-.214-2.405-1.116-3.306z";
91
+ };
92
+ readonly paypal: {
93
+ readonly title: "PayPal";
94
+ readonly source: "Simple Icons";
95
+ readonly path: "M15.265,5.352h-6.031l-2.077,13.208h-4.366l2.752-17.418h7.234c3.397,0 5.768,2.076 5.857,4.988c-.586-.432-1.905-.778-3.368-.778M21.21,10.37c0,3.085-2.723,6.201-6.296,6.201h-2.256l-1.024,6.287h-4.393l1.669-10.44h3.25c3.807,0 6.647-3.288 6.472-6.288c1.589,.815 2.585,2.454 2.577,4.24M9.877,6.16h5.798c.821,0 1.757,.201 2.138,.49c-.176,2.48-2.402,4.961-5.828,4.961h-2.958z";
96
+ };
97
+ readonly playwright: {
98
+ readonly title: "Playwright";
99
+ readonly source: "svgl";
100
+ readonly path: "M8.063,13.122c-.862,.245-1.428,.674-1.801,1.103c.357-.312 .835-.599 1.48-.782c.66-.187 1.223-.186 1.688-.096v-.364c-.397-.036-.852-.007-1.367,.139zM6.223,10.065l-3.203,.844c0,0 .058,.082 .166,.192l2.716-.716c0,0-.038,.496-.373,.94c.632-.478 .693-1.26 .693-1.26zM8.904,17.593c-4.508,1.214-6.892-4.01-7.614-6.721c-.334-1.252-.479-2.199-.518-2.811c-.004-.064-.002-.117 .002-.166c-.234,.014-.346,.136-.323,.487c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721c.981-.264 1.718-.746 2.272-1.36c-.51,.461-1.148,.823-1.951,1.04zM9.751,6.868v.321h1.768c-.036-.114-.073-.216-.109-.321zM11.914,9.51c.795,.226 1.216,.783 1.438,1.277l.887,.252c0,0-.121-1.727-1.683-2.17c-1.461-.415-2.36,.812-2.469,.971c.425-.303 1.046-.551 1.828-.329zM18.972,10.795c-1.462-.417-2.361,.812-2.469,.969c.425-.302 1.046-.55 1.827-.327c.794,.226 1.214,.783 1.437,1.277l.888,.253c0,0-.123-1.727-1.683-2.171zM18.091,15.347l-7.375-2.062c0,0 .08,.405 .386,.929l6.21,1.736c.511-.296 .779-.603 .779-.603zM12.978,19.785c-5.84-1.566-5.134-9.006-4.189-12.532c.389-1.453 .789-2.533 1.121-3.257c-.198-.041-.362,.064-.524,.393c-.352,.714-.803,1.877-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532c2.752,.737 4.897-.383 6.495-2.143c-1.517,1.374-3.454,2.145-5.854,1.502zM9.751,15.849v-1.501l-4.172,1.183c0,0 .308-1.791 2.484-2.408c.66-.187 1.223-.186 1.688-.096v-6.159h2.089c-.227-.703-.447-1.244-.632-1.62c-.306-.622-.619-.21-1.33,.385c-.501,.419-1.767,1.312-3.673,1.825c-1.906,.514-3.446,.378-4.089,.266c-.911-.157-1.388-.357-1.343,.336c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721c1.177-.317 2.009-.944 2.585-1.744h-1.738zM3.019,10.909l3.203-.844c0,0-.093,1.232-1.294,1.549c-1.201,.316-1.909-.705-1.909-.705zM21.807,6.939c-.833,.146-2.83,.328-5.299-.334c-2.469-.661-4.108-1.818-4.757-2.362c-.92-.771-1.325-1.306-1.723-.496c-.352,.715-.803,1.878-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532c5.838,1.564 8.946-5.233 9.891-8.759c.436-1.628 .627-2.86 .68-3.655c.06-.9-.558-.639-1.741-.432zM10.075,9.856c0,0 .92-1.431 2.481-.988c1.562,.444 1.683,2.17 1.683,2.17zM13.885,16.279c-2.745-.804-3.169-2.993-3.169-2.993l7.375,2.062c0,0-1.489,1.726-4.206,.931zM16.492,11.78c0,0 .919-1.43 2.479-.985c1.56,.444 1.683,2.171 1.683,2.171zM8.293,14.761l-2.714,.769c0,0 .295-1.679 2.294-2.345l-1.537-5.767l-.133,.04c-1.906,.514-3.446,.378-4.089,.266c-.911-.157-1.388-.357-1.343,.336c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721l.133-.042zM3.019,10.909l3.203-.844c0,0-.093,1.232-1.294,1.549c-1.201,.316-1.909-.705-1.909-.705zM14.009,16.309l-.124-.03c-2.745-.804-3.169-2.993-3.169-2.993l3.803,1.063l2.013-7.737l-.024-.006c-2.469-.661-4.108-1.818-4.757-2.362c-.92-.771-1.325-1.306-1.723-.496c-.352,.715-.802,1.878-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532l.12,.027zM10.075,9.856c0,0 .92-1.431 2.481-.988c1.562,.444 1.683,2.17 1.683,2.17zM8.432,14.722l-.728,.207c.172,.969 .475,1.9 .951,2.721c.083-.018 .165-.034 .249-.057c.221-.06 .426-.133 .623-.214c-.531-.789-.883-1.697-1.095-2.657zM8.147,7.895c-.374,1.396-.709,3.405-.616,5.42c.165-.072 .339-.138 .532-.193l.135-.03c-.164-2.153 .191-4.346 .591-5.839c.101-.378 .203-.729 .304-1.056c-.163,.104-.339,.21-.539,.32c-.135,.417-.271,.872-.407,1.378z";
101
+ };
102
+ readonly posthog: {
103
+ readonly title: "PostHog";
104
+ readonly source: "Simple Icons";
105
+ readonly path: "M9.854,14.5l-4.854-4.853l-4.146-4.147c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.586c0,.132 .053,.259 .146,.353l4.854,4.854l.147,.146l4.707,4.707l.146,.147v-.049c.065,.03 .134,.049 .207,.049h2.586c.202,0 .385-.122 .462-.309c.077-.187 .034-.402-.109-.545zM9.854,9.5l-4-4c-.106-.109-.258-.163-.409-.144c-.143,.017-.272,.093-.356,.21c-.059,.084-.09,.185-.089,.288v2.586c0,.133 .053,.259 .147,.353l9,9c.143,.143 .358,.185 .545,.108c.187-.077 .308-.26 .308-.462v-2.585c0-.133-.052-.26-.146-.354zM10.854,5.5c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.586c0,.133 .053,.259 .147,.353l4,4c.143,.143 .358,.185 .545,.108c.187-.077 .308-.26 .308-.462v-2.585c0-.133-.052-.26-.146-.354zM23.501,17.015c-.845-.11-1.63-.497-2.232-1.1l-4.708-4.707c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v6.585c0,.276 .224,.5 .5,.5h7.293c.276,0 .5-.224 .5-.5v-.6c0-.276-.225-.497-.499-.532zM18.107,17.047c-.442,0-.8-.358-.8-.8c0-.442 .358-.8 .8-.8c.442,0 .8,.358 .8,.8c0,.442-.358,.8-.8,.8zM.854,15.5c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.293c0,.276 .224,.5 .5,.5h2.293c.222,0 .39-.135 .462-.309c.079-.187 .036-.403-.109-.545l-2.292-2.292zM5,14.647l-4.146-4.147c-.143-.143-.358-.186-.545-.109c-.187,.077-.309,.26-.309,.462v2.586c0,.132 .053,.259 .146,.353l4.708,4.708l.146,.147h2.793c.202,0 .385-.122 .462-.309c.077-.187 .034-.402-.109-.545z";
106
+ };
107
+ readonly sentry: {
108
+ readonly title: "Sentry";
109
+ readonly source: "Simple Icons";
110
+ readonly path: "M13.696,3.574c-.775-1.285-2.637-1.285-3.411,0l-2.806,4.806c4.362,2.178 7.243,6.505 7.57,11.369h-1.971c-.326-4.169-2.834-7.855-6.593-9.688l-2.597,4.491c2.11,.947 3.594,2.902 3.936,5.19h-4.525c-.109-.008-.207-.07-.261-.165c-.053-.096-.055-.212-.004-.309l1.254-2.132c-.425-.354-.91-.629-1.432-.81l-1.242,2.132c-.261,.448-.332,.981-.196,1.481c.135,.5 .466,.925 .917,1.18c.294,.166 .626,.254 .964,.256h6.197c.234-2.888-1.06-5.689-3.412-7.382l.985-1.706c2.969,2.039 4.639,5.495 4.393,9.088h5.249c.249-5.444-2.417-10.609-6.998-13.56l1.991-3.412c.092-.155 .292-.206 .447-.115c.226,.124 8.653,14.828 8.811,14.998c.057,.101 .055,.226-.005,.325c-.06,.1-.169,.159-.285,.157h-2.03c.026,.543 .026,1.085 0,1.625h2.038c.702,.004 1.352-.368 1.704-.975c.352-.607 .353-1.355 .002-1.963z";
111
+ };
112
+ readonly shadcn: {
113
+ readonly title: "shadcn/ui";
114
+ readonly source: "Simple Icons";
115
+ readonly path: "M20.516,11.82l-8.696,8.696c-.339,.339-.339,.89 0,1.23c.339,.339 .89,.339 1.23,0l8.696-8.696c.339-.34 .339-.891 0-1.23c-.34-.339-.891-.339-1.23,0zM18.777,2.254l-16.522,16.522c-.339,.339-.339,.89 0,1.23c.34,.339 .891,.339 1.23,0l16.522-16.522c.339-.339 .339-.89 0-1.23c-.34-.339-.891-.339-1.23,0z";
116
+ };
117
+ readonly slack: {
118
+ readonly title: "Slack";
119
+ readonly source: "svgl";
120
+ readonly path: "M9.336,1.99c-1.104,.001-1.998,.897-1.998,2.002c-.001,1.104 .894,2.001 1.998,2.002h1.998v-2.001c.001-1.104-.894-2.001-1.999-2.002c.001,0 .001,0 0,0M9.336,7.329h-5.327c-1.104,.001-1.999,.897-1.998,2.002c-.002,1.104 .893,2.001 1.998,2.002h5.328c1.104-.001 1.999-.897 1.998-2.002c.001-1.105-.894-2.002-1.998-2.002zM21.99,9.33c.001-1.104-.894-2.001-1.998-2.002c-1.104,.001-1.999,.897-1.998,2.002v2.002h1.998c1.104-.001 1.999-.897 1.998-2.002zM16.662,9.33v-5.339c.001-1.104-.893-2-1.998-2.002c-1.104,.001-1.999,.897-1.998,2.002v5.339c-.002,1.104 .893,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002zM14.664,22.01c1.104-.001 1.999-.897 1.998-2.002c.001-1.104-.894-2.001-1.998-2.002h-1.998v2.002c-.001,1.104 .894,2 1.998,2.002zM14.664,16.671h5.328c1.104-.001 1.999-.897 1.998-2.002c.002-1.104-.893-2.001-1.998-2.002h-5.328c-1.104,.001-1.999,.897-1.998,2.002c-.001,1.105 .893,2.002 1.998,2.002zM2.01,14.669c-.001,1.104 .894,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002v-2.002h-1.998c-1.104,.001-1.999,.897-1.998,2.002zM7.338,14.669v5.339c-.002,1.104 .893,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002v-5.338c.002-1.104-.893-2.001-1.998-2.002c-1.105,0-1.999,.896-1.998,2.001c0,0 0,.001 0,0";
121
+ };
122
+ readonly square: {
123
+ readonly title: "Square";
124
+ readonly source: "Simple Icons";
125
+ readonly path: "M5.342,2c-1.846,0-3.342,1.496-3.342,3.342v13.317c0,1.842 1.5,3.333 3.342,3.342h13.317c1.842,0 3.342-1.5 3.342-3.342v-13.325c-.005-1.842-1.499-3.333-3.342-3.333h-13.325zM6.692,5.633h10.617c.583,0 1.05,.475 1.05,1.058v10.617c0,.583-.467,1.058-1.05,1.058h-10.617c-.583,0-1.05-.475-1.05-1.058v-10.617c0-.581 .469-1.054 1.05-1.058zM9.883,9.258c-.336,0-.608,.272-.608,.608v4.242c0,.333 .267,.6 .6,.6h4.25c.333,0 .604-.267 .608-.6v-4.242c0-.336-.272-.608-.608-.608h-4.25z";
126
+ };
127
+ readonly stripe: {
128
+ readonly title: "Stripe";
129
+ readonly source: "Simple Icons";
130
+ readonly path: "M13.948,9.189c-2.142-.795-3.31-1.406-3.31-2.376c0-.82 .674-1.287 1.875-1.287c2.196,0 4.453,.846 6.007,1.609l.878-5.419c-1.232-.59-3.752-1.551-7.235-1.551c-2.464,0-4.513,.645-5.978,1.846c-1.523,1.258-2.315,3.077-2.315,5.273c0,3.984 2.433,5.681 6.387,7.12c2.55,.907 3.398,1.552 3.398,2.548c0,.967-.828,1.524-2.322,1.524c-1.849,0-4.897-.908-6.894-2.08l-.888,5.479c1.717,.966 4.883,1.962 8.167,1.962c2.605,0 4.777-.615 6.241-1.788c1.641-1.287 2.49-3.192 2.49-5.653c0-4.071-2.489-5.771-6.504-7.205z";
131
+ };
132
+ readonly supabase: {
133
+ readonly title: "Supabase";
134
+ readonly source: "Simple Icons";
135
+ readonly path: "M11.916,2.745c-.013-.832-1.064-1.19-1.582-.538l-7.818,9.835c-.923,1.162-.096,2.874 1.389,2.874h8.086l.095,6.339c.012,.831 1.063,1.189 1.581,.537l7.818-9.836c.923-1.161 .095-2.872-1.389-2.872h-8.139z";
136
+ };
137
+ readonly teams: {
138
+ readonly title: "Microsoft Teams";
139
+ readonly source: "svgl";
140
+ readonly path: "M12,10.378h6.489c1.792,0 3.244,1.453 3.244,3.244v5.407c0,1.792-1.453,3.244-3.244,3.244c-1.792,0-3.244-1.453-3.244-3.244v-5.407c0-1.792-1.453-3.244-3.244-3.244zM4.43,12.541c0-1.792 1.453-3.244 3.244-3.244h4.326c1.792,0 3.244,1.453 3.244,3.244v6.489c0,1.792 1.453,3.244 3.244,3.244h-8.652c-2.986,0-5.407-2.421-5.407-5.407zM17.948,9.296c1.493,0 2.704-1.21 2.704-2.704c0-1.493-1.21-2.704-2.704-2.704c-1.493,0-2.704,1.21-2.704,2.704c0,1.493 1.21,2.704 2.704,2.704zM9.837,8.215c1.792,0 3.244-1.453 3.244-3.244c0-1.792-1.453-3.244-3.244-3.244c-1.792,0-3.244,1.453-3.244,3.244c0,1.792 1.453,3.244 3.244,3.244zM4.024,20.652c-.971,0-1.757-.787-1.757-1.757v-5.137c0-.971 .787-1.757 1.757-1.757h5.137c.971,0 1.757,.787 1.757,1.757v5.137c0,.971-.787,1.757-1.757,1.757zM8.474,14.761v-.906h-3.764v.906h1.323v4.037h1.117v-4.037h1.324zM8.474,14.761v-.906h-3.764v.906h1.323v4.037h1.117v-4.037h1.324z";
141
+ };
142
+ readonly telegram: {
143
+ readonly title: "Telegram";
144
+ readonly source: "Simple Icons";
145
+ readonly path: "M11.953,2c-5.505,.026-9.953,4.495-9.953,10c0,5.523 4.477,10 10,10c5.523,0 10-4.477 10-10c0-5.523-4.477-10-10-10c-.016,0-.031,0-.047,0zM16.088,8.02c.083-.002 .268,.019 .388,.117c.08,.069 .131,.166 .143,.271c.013,.078 .03,.255 .017,.393c-.15,1.582-.802,5.418-1.133,7.189c-.14,.75-.416,1.001-.683,1.025c-.58,.054-1.021-.383-1.583-.752c-.88-.577-1.377-.937-2.232-1.5c-.987-.65-.347-1.008 .215-1.592c.148-.153 2.706-2.481 2.756-2.692c.006-.027 .012-.125-.047-.177c-.058-.052-.145-.034-.207-.02c-.088,.02-1.494,.95-4.217,2.788c-.4,.275-.761,.408-1.085,.4c-.357-.007-1.043-.201-1.554-.367c-.627-.204-1.124-.312-1.081-.657c.023-.18 .271-.364 .744-.552c2.915-1.27 4.858-2.107 5.832-2.512c2.777-1.155 3.354-1.356 3.73-1.362z";
146
+ };
147
+ readonly vercel: {
148
+ readonly title: "Vercel";
149
+ readonly source: "Simple Icons";
150
+ readonly path: "M12,2.694l10.746,18.612h-21.492z";
151
+ };
152
+ readonly webflow: {
153
+ readonly title: "Webflow";
154
+ readonly source: "Simple Icons";
155
+ readonly path: "M24,4.515l-7.658,14.97h-7.193l3.205-6.204h-.144c-2.644,3.432-6.589,5.692-12.21,6.204v-6.118c0,0 3.596-.213 5.71-2.435h-5.71v-6.417h6.417v5.278l.144-.001l2.622-5.277h4.854v5.244h.144l2.72-5.244z";
156
+ };
157
+ readonly wix: {
158
+ readonly title: "Wix";
159
+ readonly source: "Simple Icons";
160
+ readonly path: "M0,7.355l2.113,9.292h.801c.726,0 1.354-.508 1.506-1.218l1.351-6.34c.016-.079 .086-.137 .167-.137c.08,0 .15,.058 .167,.137l1.352,6.34c.152,.71 .78,1.218 1.506,1.218h.805l2.113-9.292h-.565c-.62,0-1.159,.43-1.296,1.035l-1.26,5.545l-1.106-5.176c-.102-.473-.395-.883-.81-1.134c-.414-.251-.914-.319-1.38-.19c-.639,.176-1.113,.716-1.251,1.365l-1.094,5.127l-1.26-5.537c-.138-.605-.675-1.035-1.296-1.035zM13.992,7.355c-.525,0-.95,.425-.951,.95v8.342h.635c.525-.001 .95-.425 .951-.95v-8.343h-.635zM15.77,7.355l3.158,4.66l-3.14,4.632h1.325c.368,0 .712-.181 .918-.486l1.756-2.59c.022-.032 .059-.051 .099-.051c.039,0 .076,.019 .099,.051l1.754,2.59c.206,.305 .55,.486 .918,.486h1.326l-3.14-4.632l3.158-4.66h-1.326c-.368,0-.712,.181-.918,.486l-1.772,2.617c-.022,.032-.059,.051-.098,.051c-.039,0-.076-.019-.098-.051l-1.773-2.617c-.206-.304-.55-.486-.918-.486z";
161
+ };
162
+ readonly zapier: {
163
+ readonly title: "Zapier";
164
+ readonly source: "Simple Icons";
165
+ readonly path: "M14.5,12.003c0,.744-.137,1.455-.384,2.113c-.656,.248-1.369,.384-2.112,.384h-.007c-.744,0-1.454-.137-2.112-.384c-.247-.657-.384-1.369-.384-2.112v-.007c0-.744 .137-1.454 .384-2.112c.658-.247 1.368-.384 2.112-.384h.008c.744,0 1.457,.137 2.113,.385c.248,.657 .384,1.368 .384,2.113zM21.863,10.333h-5.837l4.123-4.127c-.325-.457-.683-.883-1.079-1.277c-.394-.395-.821-.756-1.275-1.08l-4.128,4.124v-5.836c-.541-.087-1.094-.137-1.662-.137h-.008c-.567,0-1.122,.051-1.662,.138v5.838l-4.125-4.124c-.457,.322-.883,.684-1.278,1.078c-.395,.395-.757,.823-1.08,1.278l4.124,4.127h-5.836c0,0-.137,1.097-.137,1.663v.008c0,.567 .051,1.123 .138,1.663h5.838l-4.124,4.127c.648,.913 1.444,1.709 2.356,2.358l4.127-4.125v5.837c.54,.088 1.094,.138 1.659,.138h.014c.566,0 1.12-.05 1.659-.137v-5.837l4.127,4.125c.457-.312 .883-.677 1.274-1.075h.004c.394-.387 .755-.813 1.08-1.276l-4.125-4.124h5.837c.088-.537 .138-1.087 .138-1.65v-.026c0-.565-.05-1.119-.137-1.658";
166
+ };
167
+ };
168
+ export type BrandIconId = keyof typeof BRAND_ICONS;
@@ -0,0 +1,32 @@
1
+ export const BRAND_ICONS = {
2
+ "betterstack": { title: "Better Stack", source: "Simple Icons", path: "M1.5,10.828l-.716,6.212c-.074,.638 .17,1.271 .651,1.696l1.775,1.565c.608,.536 1.551,.014 1.421-.786l-1.423-8.726c-.161-.988-1.593-.954-1.707,.04zM13.078,18.982l-4.232-12.194c-.47-1.354-2.441-1.296-2.826,.084l-1.288,4.607c-.146,.523-.202,.826 0,1.33h.489l1.777,5.679c.275,.685 .844,1.217 1.554,1.454l2.65,.883c1.162,.387 2.271-.703 1.875-1.843zM23.025,18.016l-7.478-14.022c-.652-1.223-2.412-1.191-3.02,.055l-1.839,3.701c-.222,.456-.119,.618 .066,.883c.148,.212 .492,.229 .632,.011c.138-.214 .457-.194 .567,.035l4.808,10c.362,.814 1.121,1.382 2.004,1.499l2.544,.325c1.369,.18 2.367-1.267 1.716-2.487z" },
3
+ "canva": { title: "Canva", source: "svgl", path: "M12,22c5.523,0 10-4.477 10-10c0-5.523-4.477-10-10-10c-5.523,0-10,4.477-10,10c0,5.523 4.477,10 10,10zM16.551,14.378c0,1.011-1.809,4.124-4.939,4.124c-2.948,0-4.859-2.211-4.859-5.557c0-4.323 2.995-7.447 6.365-7.447c2.039,0 3.255,1.026 3.255,2.423c0,1.44-1.041,2.46-1.929,2.46c-.221,0-.332-.108-.332-.287c0-.399 .643-.998 .643-2.129c0-.953-.582-1.552-1.535-1.552c-2.039,0-4.361,2.409-4.361,6.576c0,2.46 1.221,4.24 3.194,4.24c1.706,0 3.18-1.225 4.033-2.955c.076-.152 .148-.222 .231-.222c.119,0 .234,.103 .234,.326z" },
4
+ "chrome": { title: "Google Chrome", source: "Simple Icons", path: "M12,2c-3.158,0-5.974,1.464-7.807,3.751l3.294,5.707c.274-2.284 2.212-4.003 4.513-4.003h8.909c-1.709-3.348-5.15-5.455-8.909-5.454zM3.609,6.558c-1.053,1.619-1.612,3.51-1.609,5.442c0,5.01 3.683,9.159 8.491,9.887l3.294-5.706c-2.115,.904-4.572,.085-5.721-1.908zM14.728,8.363c1.842,1.378 2.361,3.917 1.208,5.908l.002,.001h-.002l-4.453,7.714c.172,.008 .344,.013 .518,.013c5.523,0 10-4.477 10-10c0-1.283-.242-2.509-.682-3.637zM12,15.637c-2.008,0-3.637-1.628-3.637-3.637c0-2.008 1.628-3.637 3.637-3.637c2.008,0 3.637,1.628 3.637,3.637c0,2.008-1.628,3.637-3.637,3.637z" },
5
+ "claude": { title: "Claude", source: "Simple Icons", path: "M5.926,15.298l3.933-2.207l.066-.192l-.066-.106h-.192l-.658-.041l-2.247-.061l-1.949-.081l-1.888-.101l-.476-.101l-.445-.587l.046-.294l.4-.268l.572,.051l1.265,.086l1.898,.132l1.377,.081l2.04,.213h.324l.046-.132l-.111-.081l-.086-.081l-1.964-1.331l-2.126-1.407l-1.113-.81l-.602-.41l-.304-.385l-.132-.84l.547-.602l.734,.051l.187,.051l.744,.572l1.589,1.23l2.075,1.529l.304,.253l.121-.086l.015-.061l-.137-.228l-1.129-2.04l-1.205-2.075l-.536-.86l-.142-.516c-.051-.213-.086-.39-.086-.607l.623-.845l.344-.111l.83,.111l.349,.304l.516,1.179l.835,1.858l1.296,2.526l.38,.749l.202,.693l.076,.213h.132v-.121l.106-1.422l.197-1.746l.192-2.247l.066-.633l.314-.759l.623-.41l.486,.233l.4,.572l-.056,.37l-.238,1.544l-.466,2.419l-.304,1.62h.177l.202-.202l.82-1.088l1.377-1.721l.607-.683l.709-.754l.456-.359h.86l.633,.941l-.283,.972l-.886,1.124l-.734,.952l-1.053,1.417l-.658,1.134l.061,.091l.157-.015l2.379-.506l1.286-.233l1.534-.263l.693,.324l.076,.329l-.273,.673l-1.64,.405l-1.923,.385l-2.865,.678l-.035,.025l.041,.051l1.291,.121l.552,.03h1.351l2.516,.187l.658,.435l.395,.532l-.066,.405l-1.012,.516l-1.367-.324l-3.189-.759l-1.093-.273h-.152v.091l.911,.891l1.67,1.508l2.09,1.944l.106,.481l-.268,.38l-.283-.041l-1.837-1.382l-.709-.623l-1.604-1.351h-.106v.142l.369,.542l1.954,2.936l.101,.901l-.142,.294l-.506,.177l-.557-.101l-1.144-1.604l-1.179-1.807l-.952-1.62l-.116,.066l-.562,6.048l-.263,.309l-.607,.233l-.506-.385l-.268-.623l.268-1.23l.324-1.604l.263-1.275l.238-1.584l.142-.526l-.01-.035l-.116,.015l-1.194,1.64l-1.817,2.455l-1.437,1.539l-.344,.137l-.597-.309l.056-.552l.334-.491l1.989-2.531l1.2-1.569l.774-.906l-.005-.132h-.046l-5.284,3.432l-.941,.121l-.405-.38l.051-.622l.192-.202l1.589-1.093z" },
6
+ "cloudflare": { title: "Cloudflare", source: "Simple Icons", path: "M16.509,16.845c.148-.507 .091-.971-.155-1.315c-.225-.316-.604-.499-1.061-.52l-8.659-.112c-.054,.001-.104-.026-.133-.071c-.028-.042-.035-.099-.021-.155c.028-.084 .112-.148 .204-.156l8.736-.112c1.035-.049 2.16-.887 2.554-1.914l.499-1.301c.022-.056 .029-.113 .015-.168c-.562-2.546-2.835-4.445-5.55-4.445c-2.504,0-4.628,1.618-5.388,3.861c-.493-.366-1.119-.562-1.794-.499c-1.203,.119-2.166,1.083-2.286,2.286c-.028,.31-.007,.613 .064,.894c-1.963,.056-3.531,1.66-3.531,3.637c0,.175 .014,.352 .035,.527c.014,.083 .084,.148 .169,.148h15.981c.091,0 .176-.064 .203-.155l.12-.427zM19.266,11.281c-.077,0-.161,0-.238,.011c-.057,0-.105,.042-.127,.098l-.338,1.174c-.147,.507-.092,.971 .154,1.316c.226,.316 .606,.498 1.063,.52l1.844,.113c.056,0 .106,.026 .133,.07c.028,.043 .035,.107 .021,.156c-.028,.084-.113,.149-.204,.155l-1.921,.112c-1.041,.049-2.158,.887-2.553,1.914l-.141,.359c-.028,.071 .022,.142 .099,.142h6.598c.077,0 .147-.049 .169-.126c.112-.408 .176-.837 .176-1.28c0-2.602-2.125-4.727-4.734-4.727" },
7
+ "confluence": { title: "Confluence", source: "Simple Icons", path: "M2.611,17.278c-.209,.322-.447,.738-.644,1.05c-.18,.302-.084,.692 .215,.877l4.188,2.576c.147,.091 .324,.119 .492,.077c.168-.041 .312-.148 .4-.297c.168-.28 .383-.644 .618-1.03c1.659-2.739 3.328-2.407 6.334-.967l4.182,1.972c.157,.075 .338,.083 .502,.022c.163-.061 .295-.185 .365-.345l1.994-4.51c.14-.322-.003-.697-.322-.844c-1.399-.658-2.795-1.321-4.188-1.992c-5.666-2.739-10.464-2.558-14.137,3.408zM21.39,6.722c.21-.342 .448-.738 .645-1.054c.176-.301 .08-.688-.216-.872l-4.188-2.577c-.147-.091-.324-.119-.492-.077c-.168,.041-.312,.148-.4,.297c-.164,.283-.38,.644-.619,1.033c-1.659,2.738-3.328,2.404-6.334,.967l-4.166-1.975c-.157-.075-.338-.083-.501-.022c-.163,.061-.295,.185-.365,.344l-1.994,4.51c-.14,.322 .003,.697 .322,.844c.877,.413 2.619,1.238 4.188,1.992c5.65,2.738 10.454,2.555 14.12-3.408z" },
8
+ "discord": { title: "Discord", source: "Simple Icons", path: "M19.939,4.717c-1.485-.682-3.053-1.168-4.663-1.446c-.03-.006-.06,.009-.075,.035c-.201,.358-.424,.825-.581,1.193c-1.761-.264-3.513-.264-5.237,0c-.156-.375-.387-.834-.59-1.193c-.015-.026-.045-.04-.075-.035c-1.61,.278-3.178,.764-4.663,1.446c-.013,.005-.023,.015-.031,.026c-2.97,4.437-3.783,8.765-3.384,13.039c.002,.021 .013,.04 .03,.054c1.959,1.439 3.857,2.313 5.72,2.892c.03,.009 .062-.002 .08-.026c.441-.602 .833-1.236 1.17-1.903c.009-.018 .01-.04 .003-.059c-.008-.019-.023-.034-.042-.042c-.623-.236-1.216-.524-1.787-.852c-.021-.012-.035-.035-.036-.059c-.001-.024 .009-.048 .029-.063c.12-.09 .24-.184 .355-.278c.021-.017 .049-.021 .074-.01c3.749,1.712 7.808,1.712 11.513,0c.025-.012 .054-.008 .075,.009c.115,.095 .235,.189 .356,.279c.02,.015 .031,.038 .029,.063c-.001,.024-.015,.047-.036,.059c-.571,.333-1.169,.618-1.788,.851c-.019,.007-.035,.023-.042,.042c-.007,.019-.006,.041 .003,.06c.344,.666 .737,1.301 1.169,1.903c.018,.025 .051,.036 .08,.027c1.872-.579 3.77-1.453 5.729-2.892c.017-.012 .028-.032 .03-.053c.478-4.941-.8-9.234-3.387-13.039c-.006-.012-.017-.022-.03-.027zM8.201,15.18c-1.129,0-2.059-1.036-2.059-2.309c0-1.273 .912-2.309 2.059-2.309c1.156,0 2.077,1.045 2.059,2.309c0,1.273-.912,2.309-2.059,2.309zM15.813,15.18c-1.129,0-2.059-1.036-2.059-2.309c0-1.273 .912-2.309 2.059-2.309c1.156,0 2.077,1.045 2.059,2.309c0,1.273-.903,2.309-2.059,2.309z" },
9
+ "figma": { title: "Figma", source: "Simple Icons", path: "M15.85,8.983h-4.585v-8.976h4.585c2.475,0 4.488,2.013 4.488,4.488c0,2.475-2.013,4.489-4.488,4.489zM12.735,7.512h3.115c1.664,0 3.017-1.354 3.017-3.017c0-1.663-1.354-3.017-3.017-3.017h-3.115zM12.735,8.983h-4.584c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.489 4.488-4.489h4.585v8.976zM8.151,1.477c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.353,3.018 3.017,3.018h3.115v-6.036zM12.735,16.488h-4.584c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.488 4.488-4.488h4.585v8.975zM8.151,8.983c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.354,3.017 3.017,3.017h3.115v-6.035zM8.175,23.993c-2.488,0-4.513-2.013-4.513-4.488c0-2.475 2.013-4.488 4.488-4.488h4.585v4.439c0,2.502-2.046,4.537-4.56,4.537zM8.151,16.488c-1.666,.002-3.015,1.352-3.017,3.017c0,1.664 1.364,3.017 3.042,3.017c1.704,0 3.091-1.375 3.091-3.066v-2.968zM15.85,16.488h-.098c-2.475,0-4.488-2.013-4.488-4.488c0-2.475 2.013-4.488 4.488-4.488h.098c2.475,0 4.488,2.013 4.488,4.488c0,2.475-2.013,4.488-4.488,4.488zM15.753,8.983c-1.664,0-3.017,1.354-3.017,3.017c0,1.663 1.354,3.017 3.017,3.017h.098c1.664,0 3.017-1.354 3.017-3.017c0-1.663-1.354-3.017-3.017-3.017z" },
10
+ "github": { title: "GitHub", source: "Simple Icons", path: "M12,2.125c-5.595,0-10.126,4.534-10.126,10.126c0,4.475 2.901,8.27 6.924,9.607c.506,.095 .692-.218 .692-.487c0-.24-.008-.878-.013-1.721c-2.817,.611-3.411-1.359-3.411-1.359c-.461-1.169-1.127-1.481-1.127-1.481c-.917-.628 .071-.615 .071-.615c1.017,.071 1.551,1.043 1.551,1.043c.903,1.548 2.37,1.101 2.949,.842c.091-.655 .352-1.101 .641-1.354c-2.249-.253-4.612-1.124-4.612-5.004c0-1.105 .392-2.008 1.042-2.717c-.114-.256-.456-1.285 .089-2.68c0,0 .848-.272 2.785,1.038c.81-.225 1.671-.337 2.532-.342c.861,.005 1.721,.116 2.532,.342c1.924-1.31 2.772-1.038 2.772-1.038c.544,1.395 .203,2.424 .101,2.68c.646,.709 1.038,1.612 1.038,2.717c0,3.89-2.367,4.747-4.62,4.996c.354,.304 .684,.925 .684,1.873c0,1.355-.013,2.444-.013,2.773c0,.266 .177,.582 .696,.481c4.051-1.328 6.95-5.126 6.95-9.594c0-5.592-4.534-10.126-10.126-10.126" },
11
+ "gmail": { title: "Gmail", source: "Simple Icons", path: "M23.545,5.705v13.382c0,.87-.704,1.574-1.574,1.574h-3.674v-8.921l-6.297,4.724l-6.297-4.724v8.922h-3.674c-.418,0-.818-.166-1.113-.461c-.295-.295-.461-.696-.461-1.114v-13.382c0-1.946 2.221-3.058 3.778-1.89l1.47,1.104l6.297,4.722l6.297-4.724l1.47-1.102c1.556-1.167 3.778-.057 3.778,1.89z" },
12
+ "intercom": { title: "Intercom", source: "Simple Icons", path: "M19.5,2h-15c-1.381,0-2.5,1.119-2.5,2.5v15c0,1.382 1.119,2.5 2.5,2.5h15c1.382,0 2.5-1.118 2.5-2.5v-15c0-1.381-1.118-2.5-2.5-2.5zM14.666,5.666c0-.367 .3-.667 .668-.667c.367,0 .667,.3 .667,.667v8.907c0,.368-.3,.668-.667,.668c-.369,0-.668-.299-.668-.667zM11.333,5.328c0-.367 .298-.666 .667-.666c.369,0 .667,.299 .667,.666v9.668c0,.367-.297,.667-.667,.667c-.369,0-.667-.3-.667-.667zM8,5.666c0-.367 .299-.667 .666-.667c.369,0 .668,.3 .668,.667v8.907c0,.368-.3,.668-.668,.668c-.367,0-.666-.299-.666-.667zM4.666,7c0-.368 .3-.667 .668-.667c.367,0 .666,.298 .666,.667v5.996c0,.368-.299,.667-.666,.667c-.369,0-.668-.3-.668-.667zM19.1,17.168c-.102,.088-2.572,2.161-7.1,2.161c-4.527,0-6.997-2.072-7.101-2.161c-.279-.24-.312-.66-.072-.94c.238-.278 .658-.312 .938-.075c.039,.034 2.244,1.843 6.234,1.843c4.04,0 6.213-1.822 6.233-1.839c.278-.241 .699-.208 .94,.072c.241,.28 .208,.7-.072,.94zM19.334,12.996c0,.368-.3,.667-.667,.667c-.367,0-.667-.3-.667-.667v-5.996c0-.368 .301-.667 .668-.667c.368,0 .668,.298 .668,.667z" },
13
+ "jira": { title: "Jira", source: "Simple Icons", path: "M11.643,11.594h-9.642c.001,1.155 .461,2.262 1.279,3.077c.818,.815 1.927,1.272 3.081,1.269h1.775v1.714c0,2.399 1.945,4.345 4.344,4.346v-9.568c0-.463-.375-.837-.837-.837zM16.412,6.798h-9.632c0,2.4 1.946,4.345 4.346,4.345h1.774v1.715c.002,2.399 1.947,4.344 4.346,4.345v-9.571c0-.461-.373-.834-.834-.834zM21.177,2h-9.632c0,2.4 1.946,4.346 4.346,4.346h1.774v1.714c.002,2.394 1.94,4.336 4.334,4.343v-9.565c.002-.457-.365-.831-.822-.837z" },
14
+ "linear": { title: "Linear", source: "Simple Icons", path: "M4.405,5.483c1.899-2.213 4.67-3.486 7.587-3.483c5.528,0 10.008,4.48 10.008,10.008c0,3.033-1.35,5.753-3.483,7.588l-14.111-14.112zM3.514,6.688l13.797,13.797c-.437,.275-.896,.517-1.375,.722l-13.143-13.142c.206-.479 .448-.938 .722-1.375zM2.268,9.636l12.096,12.096c-.592,.143-1.202,.235-1.829,.268l-10.535-10.535c.033-.617 .123-1.229 .268-1.829zM2.127,13.688l8.186,8.187c-4.189-.716-7.471-3.997-8.187-8.187z" },
15
+ "notion": { title: "Notion", source: "Simple Icons", path: "M5.584,5.37c.635,.516 .873,.476 2.066,.397l11.244-.675c.238,0 .04-.238-.039-.277l-1.868-1.35c-.357-.277-.835-.596-1.748-.516l-10.887,.795c-.396,.039-.476,.238-.318,.397zM6.258,7.991v11.83c0,.636 .317,.874 1.033,.834l12.357-.715c.716-.039 .796-.476 .796-.993v-11.751c0-.516-.198-.794-.636-.755l-12.913,.755c-.476,.04-.636,.278-.636,.794zM18.457,8.624c.079,.357 0,.715-.357,.756l-.596,.119v8.733c-.517,.278-.994,.437-1.391,.437c-.636,0-.796-.199-1.272-.794l-3.894-6.114v5.915l1.232,.279c0,0 0,.715-.994,.715l-2.741,.158c-.079-.158 0-.556 .278-.635l.715-.198v-7.822l-.991-.08c-.08-.357 .119-.873 .675-.913l2.941-.198l4.053,6.193v-5.479l-1.034-.118c-.079-.437 .238-.755 .636-.794zM3.437,2.67l11.325-.834c1.39-.119 1.748-.04 2.622,.596l3.615,2.541c.596,.436 .795,.556 .795,1.032v13.935c0,.873-.317,1.39-1.429,1.469l-13.152,.795c-.834,.04-1.232-.079-1.669-.636l-2.662-3.454c-.476-.636-.675-1.111-.675-1.668v-12.387c0-.714 .318-1.31 1.231-1.389z" },
16
+ "openai": { title: "OpenAI", source: "svgl", evenodd: true, path: "M9.367,2.175c1.818-.487 3.67,.075 4.913,1.315c1.697-.453 3.582-.014 4.912,1.317c1.331,1.331 1.77,3.216 1.317,4.913v0c1.241,1.243 1.803,3.095 1.316,4.913c-.487,1.818-1.9,3.141-3.596,3.597c-.456,1.696-1.779,3.109-3.597,3.596c-1.818,.487-3.67-.075-4.913-1.315c-1.697,.453-3.582,.014-4.913-1.317c-1.331-1.331-1.77-3.216-1.317-4.913c-1.24-1.243-1.803-3.095-1.315-4.913c.487-1.818 1.9-3.141 3.596-3.597c.456-1.696 1.779-3.109 3.597-3.596zM15.436,17.077c0,.206-.11,.397-.288,.5l-4.236,2.445c.937,.723 2.189,1.017 3.421,.687c1.737-.466 2.89-2.025 2.914-3.739v-4.36c0-.132-.071-.255-.185-.32l-1.626-.939zM9.321,17.515c-.178,.103-.398,.103-.577,0l-4.235-2.445c-.158,1.174 .214,2.405 1.116,3.307h0c1.272,1.272 3.199,1.49 4.695,.654l3.776-2.18c.114-.066 .185-.189 .185-.321v-1.877zM15.152,7.76c-.114-.066-.256-.065-.37,0l-1.626,.939l4.959,2.863c.179,.103 .289,.294 .289,.5v4.891c1.095-.45 1.975-1.388 2.305-2.62c.465-1.737-.309-3.515-1.781-4.393zM5.596,7.047c-1.095,.45-1.975,1.388-2.306,2.62c-.465,1.737 .309,3.515 1.781,4.393l3.776,2.18c.114,.066 .256,.065 .37,0l1.626-.939l-4.959-2.863c-.179-.103-.288-.294-.288-.5zM9.72,10.684v2.633l2.28,1.316l2.28-1.316v-2.633l-2.28-1.317zM13.088,3.978c-.937-.723-2.189-1.017-3.421-.687c-1.737,.466-2.89,2.025-2.914,3.739v4.36c0,.132 .071,.255 .185,.32l1.626,.939v-5.726c0-.206 .11-.397 .289-.5zM18.376,5.625c-1.272-1.272-3.199-1.49-4.695-.654l-3.776,2.18c-.114,.066-.185,.189-.185,.321v1.877l4.959-2.863c.178-.103 .398-.103 .577,0l4.235,2.445c.158-1.174-.214-2.405-1.116-3.306z" },
17
+ "paypal": { title: "PayPal", source: "Simple Icons", path: "M15.265,5.352h-6.031l-2.077,13.208h-4.366l2.752-17.418h7.234c3.397,0 5.768,2.076 5.857,4.988c-.586-.432-1.905-.778-3.368-.778M21.21,10.37c0,3.085-2.723,6.201-6.296,6.201h-2.256l-1.024,6.287h-4.393l1.669-10.44h3.25c3.807,0 6.647-3.288 6.472-6.288c1.589,.815 2.585,2.454 2.577,4.24M9.877,6.16h5.798c.821,0 1.757,.201 2.138,.49c-.176,2.48-2.402,4.961-5.828,4.961h-2.958z" },
18
+ "playwright": { title: "Playwright", source: "svgl", path: "M8.063,13.122c-.862,.245-1.428,.674-1.801,1.103c.357-.312 .835-.599 1.48-.782c.66-.187 1.223-.186 1.688-.096v-.364c-.397-.036-.852-.007-1.367,.139zM6.223,10.065l-3.203,.844c0,0 .058,.082 .166,.192l2.716-.716c0,0-.038,.496-.373,.94c.632-.478 .693-1.26 .693-1.26zM8.904,17.593c-4.508,1.214-6.892-4.01-7.614-6.721c-.334-1.252-.479-2.199-.518-2.811c-.004-.064-.002-.117 .002-.166c-.234,.014-.346,.136-.323,.487c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721c.981-.264 1.718-.746 2.272-1.36c-.51,.461-1.148,.823-1.951,1.04zM9.751,6.868v.321h1.768c-.036-.114-.073-.216-.109-.321zM11.914,9.51c.795,.226 1.216,.783 1.438,1.277l.887,.252c0,0-.121-1.727-1.683-2.17c-1.461-.415-2.36,.812-2.469,.971c.425-.303 1.046-.551 1.828-.329zM18.972,10.795c-1.462-.417-2.361,.812-2.469,.969c.425-.302 1.046-.55 1.827-.327c.794,.226 1.214,.783 1.437,1.277l.888,.253c0,0-.123-1.727-1.683-2.171zM18.091,15.347l-7.375-2.062c0,0 .08,.405 .386,.929l6.21,1.736c.511-.296 .779-.603 .779-.603zM12.978,19.785c-5.84-1.566-5.134-9.006-4.189-12.532c.389-1.453 .789-2.533 1.121-3.257c-.198-.041-.362,.064-.524,.393c-.352,.714-.803,1.877-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532c2.752,.737 4.897-.383 6.495-2.143c-1.517,1.374-3.454,2.145-5.854,1.502zM9.751,15.849v-1.501l-4.172,1.183c0,0 .308-1.791 2.484-2.408c.66-.187 1.223-.186 1.688-.096v-6.159h2.089c-.227-.703-.447-1.244-.632-1.62c-.306-.622-.619-.21-1.33,.385c-.501,.419-1.767,1.312-3.673,1.825c-1.906,.514-3.446,.378-4.089,.266c-.911-.157-1.388-.357-1.343,.336c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721c1.177-.317 2.009-.944 2.585-1.744h-1.738zM3.019,10.909l3.203-.844c0,0-.093,1.232-1.294,1.549c-1.201,.316-1.909-.705-1.909-.705zM21.807,6.939c-.833,.146-2.83,.328-5.299-.334c-2.469-.661-4.108-1.818-4.757-2.362c-.92-.771-1.325-1.306-1.723-.496c-.352,.715-.803,1.878-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532c5.838,1.564 8.946-5.233 9.891-8.759c.436-1.628 .627-2.86 .68-3.655c.06-.9-.558-.639-1.741-.432zM10.075,9.856c0,0 .92-1.431 2.481-.988c1.562,.444 1.683,2.17 1.683,2.17zM13.885,16.279c-2.745-.804-3.169-2.993-3.169-2.993l7.375,2.062c0,0-1.489,1.726-4.206,.931zM16.492,11.78c0,0 .919-1.43 2.479-.985c1.56,.444 1.683,2.171 1.683,2.171zM8.293,14.761l-2.714,.769c0,0 .295-1.679 2.294-2.345l-1.537-5.767l-.133,.04c-1.906,.514-3.446,.378-4.089,.266c-.911-.157-1.388-.357-1.343,.336c.039,.611 .184,1.559 .518,2.811c.722,2.711 3.107,7.935 7.614,6.721l.133-.042zM3.019,10.909l3.203-.844c0,0-.093,1.232-1.294,1.549c-1.201,.316-1.909-.705-1.909-.705zM14.009,16.309l-.124-.03c-2.745-.804-3.169-2.993-3.169-2.993l3.803,1.063l2.013-7.737l-.024-.006c-2.469-.661-4.108-1.818-4.757-2.362c-.92-.771-1.325-1.306-1.723-.496c-.352,.715-.802,1.878-1.238,3.506c-.945,3.526-1.651,10.966 4.189,12.532l.12,.027zM10.075,9.856c0,0 .92-1.431 2.481-.988c1.562,.444 1.683,2.17 1.683,2.17zM8.432,14.722l-.728,.207c.172,.969 .475,1.9 .951,2.721c.083-.018 .165-.034 .249-.057c.221-.06 .426-.133 .623-.214c-.531-.789-.883-1.697-1.095-2.657zM8.147,7.895c-.374,1.396-.709,3.405-.616,5.42c.165-.072 .339-.138 .532-.193l.135-.03c-.164-2.153 .191-4.346 .591-5.839c.101-.378 .203-.729 .304-1.056c-.163,.104-.339,.21-.539,.32c-.135,.417-.271,.872-.407,1.378z" },
19
+ "posthog": { title: "PostHog", source: "Simple Icons", path: "M9.854,14.5l-4.854-4.853l-4.146-4.147c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.586c0,.132 .053,.259 .146,.353l4.854,4.854l.147,.146l4.707,4.707l.146,.147v-.049c.065,.03 .134,.049 .207,.049h2.586c.202,0 .385-.122 .462-.309c.077-.187 .034-.402-.109-.545zM9.854,9.5l-4-4c-.106-.109-.258-.163-.409-.144c-.143,.017-.272,.093-.356,.21c-.059,.084-.09,.185-.089,.288v2.586c0,.133 .053,.259 .147,.353l9,9c.143,.143 .358,.185 .545,.108c.187-.077 .308-.26 .308-.462v-2.585c0-.133-.052-.26-.146-.354zM10.854,5.5c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.586c0,.133 .053,.259 .147,.353l4,4c.143,.143 .358,.185 .545,.108c.187-.077 .308-.26 .308-.462v-2.585c0-.133-.052-.26-.146-.354zM23.501,17.015c-.845-.11-1.63-.497-2.232-1.1l-4.708-4.707c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v6.585c0,.276 .224,.5 .5,.5h7.293c.276,0 .5-.224 .5-.5v-.6c0-.276-.225-.497-.499-.532zM18.107,17.047c-.442,0-.8-.358-.8-.8c0-.442 .358-.8 .8-.8c.442,0 .8,.358 .8,.8c0,.442-.358,.8-.8,.8zM.854,15.5c-.143-.143-.358-.186-.545-.109c-.187,.078-.309,.26-.309,.463v2.293c0,.276 .224,.5 .5,.5h2.293c.222,0 .39-.135 .462-.309c.079-.187 .036-.403-.109-.545l-2.292-2.292zM5,14.647l-4.146-4.147c-.143-.143-.358-.186-.545-.109c-.187,.077-.309,.26-.309,.462v2.586c0,.132 .053,.259 .146,.353l4.708,4.708l.146,.147h2.793c.202,0 .385-.122 .462-.309c.077-.187 .034-.402-.109-.545z" },
20
+ "sentry": { title: "Sentry", source: "Simple Icons", path: "M13.696,3.574c-.775-1.285-2.637-1.285-3.411,0l-2.806,4.806c4.362,2.178 7.243,6.505 7.57,11.369h-1.971c-.326-4.169-2.834-7.855-6.593-9.688l-2.597,4.491c2.11,.947 3.594,2.902 3.936,5.19h-4.525c-.109-.008-.207-.07-.261-.165c-.053-.096-.055-.212-.004-.309l1.254-2.132c-.425-.354-.91-.629-1.432-.81l-1.242,2.132c-.261,.448-.332,.981-.196,1.481c.135,.5 .466,.925 .917,1.18c.294,.166 .626,.254 .964,.256h6.197c.234-2.888-1.06-5.689-3.412-7.382l.985-1.706c2.969,2.039 4.639,5.495 4.393,9.088h5.249c.249-5.444-2.417-10.609-6.998-13.56l1.991-3.412c.092-.155 .292-.206 .447-.115c.226,.124 8.653,14.828 8.811,14.998c.057,.101 .055,.226-.005,.325c-.06,.1-.169,.159-.285,.157h-2.03c.026,.543 .026,1.085 0,1.625h2.038c.702,.004 1.352-.368 1.704-.975c.352-.607 .353-1.355 .002-1.963z" },
21
+ "shadcn": { title: "shadcn/ui", source: "Simple Icons", path: "M20.516,11.82l-8.696,8.696c-.339,.339-.339,.89 0,1.23c.339,.339 .89,.339 1.23,0l8.696-8.696c.339-.34 .339-.891 0-1.23c-.34-.339-.891-.339-1.23,0zM18.777,2.254l-16.522,16.522c-.339,.339-.339,.89 0,1.23c.34,.339 .891,.339 1.23,0l16.522-16.522c.339-.339 .339-.89 0-1.23c-.34-.339-.891-.339-1.23,0z" },
22
+ "slack": { title: "Slack", source: "svgl", path: "M9.336,1.99c-1.104,.001-1.998,.897-1.998,2.002c-.001,1.104 .894,2.001 1.998,2.002h1.998v-2.001c.001-1.104-.894-2.001-1.999-2.002c.001,0 .001,0 0,0M9.336,7.329h-5.327c-1.104,.001-1.999,.897-1.998,2.002c-.002,1.104 .893,2.001 1.998,2.002h5.328c1.104-.001 1.999-.897 1.998-2.002c.001-1.105-.894-2.002-1.998-2.002zM21.99,9.33c.001-1.104-.894-2.001-1.998-2.002c-1.104,.001-1.999,.897-1.998,2.002v2.002h1.998c1.104-.001 1.999-.897 1.998-2.002zM16.662,9.33v-5.339c.001-1.104-.893-2-1.998-2.002c-1.104,.001-1.999,.897-1.998,2.002v5.339c-.002,1.104 .893,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002zM14.664,22.01c1.104-.001 1.999-.897 1.998-2.002c.001-1.104-.894-2.001-1.998-2.002h-1.998v2.002c-.001,1.104 .894,2 1.998,2.002zM14.664,16.671h5.328c1.104-.001 1.999-.897 1.998-2.002c.002-1.104-.893-2.001-1.998-2.002h-5.328c-1.104,.001-1.999,.897-1.998,2.002c-.001,1.105 .893,2.002 1.998,2.002zM2.01,14.669c-.001,1.104 .894,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002v-2.002h-1.998c-1.104,.001-1.999,.897-1.998,2.002zM7.338,14.669v5.339c-.002,1.104 .893,2.001 1.998,2.002c1.104-.001 1.999-.897 1.998-2.002v-5.338c.002-1.104-.893-2.001-1.998-2.002c-1.105,0-1.999,.896-1.998,2.001c0,0 0,.001 0,0" },
23
+ "square": { title: "Square", source: "Simple Icons", path: "M5.342,2c-1.846,0-3.342,1.496-3.342,3.342v13.317c0,1.842 1.5,3.333 3.342,3.342h13.317c1.842,0 3.342-1.5 3.342-3.342v-13.325c-.005-1.842-1.499-3.333-3.342-3.333h-13.325zM6.692,5.633h10.617c.583,0 1.05,.475 1.05,1.058v10.617c0,.583-.467,1.058-1.05,1.058h-10.617c-.583,0-1.05-.475-1.05-1.058v-10.617c0-.581 .469-1.054 1.05-1.058zM9.883,9.258c-.336,0-.608,.272-.608,.608v4.242c0,.333 .267,.6 .6,.6h4.25c.333,0 .604-.267 .608-.6v-4.242c0-.336-.272-.608-.608-.608h-4.25z" },
24
+ "stripe": { title: "Stripe", source: "Simple Icons", path: "M13.948,9.189c-2.142-.795-3.31-1.406-3.31-2.376c0-.82 .674-1.287 1.875-1.287c2.196,0 4.453,.846 6.007,1.609l.878-5.419c-1.232-.59-3.752-1.551-7.235-1.551c-2.464,0-4.513,.645-5.978,1.846c-1.523,1.258-2.315,3.077-2.315,5.273c0,3.984 2.433,5.681 6.387,7.12c2.55,.907 3.398,1.552 3.398,2.548c0,.967-.828,1.524-2.322,1.524c-1.849,0-4.897-.908-6.894-2.08l-.888,5.479c1.717,.966 4.883,1.962 8.167,1.962c2.605,0 4.777-.615 6.241-1.788c1.641-1.287 2.49-3.192 2.49-5.653c0-4.071-2.489-5.771-6.504-7.205z" },
25
+ "supabase": { title: "Supabase", source: "Simple Icons", path: "M11.916,2.745c-.013-.832-1.064-1.19-1.582-.538l-7.818,9.835c-.923,1.162-.096,2.874 1.389,2.874h8.086l.095,6.339c.012,.831 1.063,1.189 1.581,.537l7.818-9.836c.923-1.161 .095-2.872-1.389-2.872h-8.139z" },
26
+ "teams": { title: "Microsoft Teams", source: "svgl", path: "M12,10.378h6.489c1.792,0 3.244,1.453 3.244,3.244v5.407c0,1.792-1.453,3.244-3.244,3.244c-1.792,0-3.244-1.453-3.244-3.244v-5.407c0-1.792-1.453-3.244-3.244-3.244zM4.43,12.541c0-1.792 1.453-3.244 3.244-3.244h4.326c1.792,0 3.244,1.453 3.244,3.244v6.489c0,1.792 1.453,3.244 3.244,3.244h-8.652c-2.986,0-5.407-2.421-5.407-5.407zM17.948,9.296c1.493,0 2.704-1.21 2.704-2.704c0-1.493-1.21-2.704-2.704-2.704c-1.493,0-2.704,1.21-2.704,2.704c0,1.493 1.21,2.704 2.704,2.704zM9.837,8.215c1.792,0 3.244-1.453 3.244-3.244c0-1.792-1.453-3.244-3.244-3.244c-1.792,0-3.244,1.453-3.244,3.244c0,1.792 1.453,3.244 3.244,3.244zM4.024,20.652c-.971,0-1.757-.787-1.757-1.757v-5.137c0-.971 .787-1.757 1.757-1.757h5.137c.971,0 1.757,.787 1.757,1.757v5.137c0,.971-.787,1.757-1.757,1.757zM8.474,14.761v-.906h-3.764v.906h1.323v4.037h1.117v-4.037h1.324zM8.474,14.761v-.906h-3.764v.906h1.323v4.037h1.117v-4.037h1.324z" },
27
+ "telegram": { title: "Telegram", source: "Simple Icons", path: "M11.953,2c-5.505,.026-9.953,4.495-9.953,10c0,5.523 4.477,10 10,10c5.523,0 10-4.477 10-10c0-5.523-4.477-10-10-10c-.016,0-.031,0-.047,0zM16.088,8.02c.083-.002 .268,.019 .388,.117c.08,.069 .131,.166 .143,.271c.013,.078 .03,.255 .017,.393c-.15,1.582-.802,5.418-1.133,7.189c-.14,.75-.416,1.001-.683,1.025c-.58,.054-1.021-.383-1.583-.752c-.88-.577-1.377-.937-2.232-1.5c-.987-.65-.347-1.008 .215-1.592c.148-.153 2.706-2.481 2.756-2.692c.006-.027 .012-.125-.047-.177c-.058-.052-.145-.034-.207-.02c-.088,.02-1.494,.95-4.217,2.788c-.4,.275-.761,.408-1.085,.4c-.357-.007-1.043-.201-1.554-.367c-.627-.204-1.124-.312-1.081-.657c.023-.18 .271-.364 .744-.552c2.915-1.27 4.858-2.107 5.832-2.512c2.777-1.155 3.354-1.356 3.73-1.362z" },
28
+ "vercel": { title: "Vercel", source: "Simple Icons", path: "M12,2.694l10.746,18.612h-21.492z" },
29
+ "webflow": { title: "Webflow", source: "Simple Icons", path: "M24,4.515l-7.658,14.97h-7.193l3.205-6.204h-.144c-2.644,3.432-6.589,5.692-12.21,6.204v-6.118c0,0 3.596-.213 5.71-2.435h-5.71v-6.417h6.417v5.278l.144-.001l2.622-5.277h4.854v5.244h.144l2.72-5.244z" },
30
+ "wix": { title: "Wix", source: "Simple Icons", path: "M0,7.355l2.113,9.292h.801c.726,0 1.354-.508 1.506-1.218l1.351-6.34c.016-.079 .086-.137 .167-.137c.08,0 .15,.058 .167,.137l1.352,6.34c.152,.71 .78,1.218 1.506,1.218h.805l2.113-9.292h-.565c-.62,0-1.159,.43-1.296,1.035l-1.26,5.545l-1.106-5.176c-.102-.473-.395-.883-.81-1.134c-.414-.251-.914-.319-1.38-.19c-.639,.176-1.113,.716-1.251,1.365l-1.094,5.127l-1.26-5.537c-.138-.605-.675-1.035-1.296-1.035zM13.992,7.355c-.525,0-.95,.425-.951,.95v8.342h.635c.525-.001 .95-.425 .951-.95v-8.343h-.635zM15.77,7.355l3.158,4.66l-3.14,4.632h1.325c.368,0 .712-.181 .918-.486l1.756-2.59c.022-.032 .059-.051 .099-.051c.039,0 .076,.019 .099,.051l1.754,2.59c.206,.305 .55,.486 .918,.486h1.326l-3.14-4.632l3.158-4.66h-1.326c-.368,0-.712,.181-.918,.486l-1.772,2.617c-.022,.032-.059,.051-.098,.051c-.039,0-.076-.019-.098-.051l-1.773-2.617c-.206-.304-.55-.486-.918-.486z" },
31
+ "zapier": { title: "Zapier", source: "Simple Icons", path: "M14.5,12.003c0,.744-.137,1.455-.384,2.113c-.656,.248-1.369,.384-2.112,.384h-.007c-.744,0-1.454-.137-2.112-.384c-.247-.657-.384-1.369-.384-2.112v-.007c0-.744 .137-1.454 .384-2.112c.658-.247 1.368-.384 2.112-.384h.008c.744,0 1.457,.137 2.113,.385c.248,.657 .384,1.368 .384,2.113zM21.863,10.333h-5.837l4.123-4.127c-.325-.457-.683-.883-1.079-1.277c-.394-.395-.821-.756-1.275-1.08l-4.128,4.124v-5.836c-.541-.087-1.094-.137-1.662-.137h-.008c-.567,0-1.122,.051-1.662,.138v5.838l-4.125-4.124c-.457,.322-.883,.684-1.278,1.078c-.395,.395-.757,.823-1.08,1.278l4.124,4.127h-5.836c0,0-.137,1.097-.137,1.663v.008c0,.567 .051,1.123 .138,1.663h5.838l-4.124,4.127c.648,.913 1.444,1.709 2.356,2.358l4.127-4.125v5.837c.54,.088 1.094,.138 1.659,.138h.014c.566,0 1.12-.05 1.659-.137v-5.837l4.127,4.125c.457-.312 .883-.677 1.274-1.075h.004c.394-.387 .755-.813 1.08-1.276l-4.125-4.124h5.837c.088-.537 .138-1.087 .138-1.65v-.026c0-.565-.05-1.119-.137-1.658" },
32
+ };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The one mark an integration shows wherever it appears: its logo
3
+ * (brand-icons.ts) in a 32px tile, 28px once the tiles go to their phone
4
+ * layout; a letter in the same tile when it has none (a custom tool, a service
5
+ * without a logo). Ink when connected, muted otherwise. Where a row of plain
6
+ * icons already stands (the Settings home), the logo is drawn as one of them:
7
+ * brandIconHtml, or BrandIcon in React (browser/brand-mark.tsx).
8
+ */
9
+ import { type BrandIconId } from "./brand-icons.js";
10
+ /**
11
+ * The icon for a service id, catalog tool name, chat app or integration key
12
+ * ("telegram", "agent:codex", "mcp:<repo>:sentry"), or null for a letter.
13
+ */
14
+ export declare function brandIconFor(name: string): BrandIconId | null;
15
+ /** The letter a mark without a logo shows. */
16
+ export declare function brandLetter(label: string): string;
17
+ /** The logo alone, decorative: an svg its surroundings size and colour. */
18
+ export declare function brandIconHtml(id: BrandIconId): string;
19
+ /**
20
+ * The mark, decorative (the name always sits beside it). `name` null is a
21
+ * letter whatever the label: a custom tool never borrows a logo by its name.
22
+ */
23
+ export declare function brandMarkHtml(name: string | null, label: string, connected: boolean): string;
24
+ /** Where the integration tiles (Settings → Tools) switch to their phone layout, and the mark with them. */
25
+ export declare const TILE_PHONE = "@media(max-width:600px)";
26
+ /** The mark's own sizes; `--brand-mark` is its side, for layouts that line up beside it. */
27
+ export declare const BRAND_MARK_CSS: string;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The one mark an integration shows wherever it appears: its logo
3
+ * (brand-icons.ts) in a 32px tile, 28px once the tiles go to their phone
4
+ * layout; a letter in the same tile when it has none (a custom tool, a service
5
+ * without a logo). Ink when connected, muted otherwise. Where a row of plain
6
+ * icons already stands (the Settings home), the logo is drawn as one of them:
7
+ * brandIconHtml, or BrandIcon in React (browser/brand-mark.tsx).
8
+ */
9
+ import { BRAND_ICONS } from "./brand-icons.js";
10
+ /** Service ids, catalog tool names and integration keys that differ from their icon's id. */
11
+ const ALIASES = {
12
+ atlassian: "jira", "chrome-devtools": "chrome", codex: "openai", "microsoft-teams": "teams", "better-stack": "betterstack",
13
+ };
14
+ /**
15
+ * The icon for a service id, catalog tool name, chat app or integration key
16
+ * ("telegram", "agent:codex", "mcp:<repo>:sentry"), or null for a letter.
17
+ */
18
+ export function brandIconFor(name) {
19
+ const key = name.toLowerCase().replace(/^agent:/, "").replace(/^mcp:.*:/, "");
20
+ if (Object.hasOwn(BRAND_ICONS, key))
21
+ return key;
22
+ return ALIASES[key] ?? null;
23
+ }
24
+ /** The letter a mark without a logo shows. */
25
+ export function brandLetter(label) {
26
+ return (label.trim().match(/[\p{L}\p{N}]/u)?.[0] ?? "?").toUpperCase();
27
+ }
28
+ const e = (value) => value.replace(/[&<>"']/g, c => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" })[c]);
29
+ /** The logo alone, decorative: an svg its surroundings size and colour. */
30
+ export function brandIconHtml(id) {
31
+ const icon = BRAND_ICONS[id];
32
+ return `<svg viewBox="0 0 24 24" focusable="false" aria-hidden="true"><path fill="currentColor"${icon.evenodd ? ` fill-rule="evenodd"` : ""} d="${icon.path}"/></svg>`;
33
+ }
34
+ /**
35
+ * The mark, decorative (the name always sits beside it). `name` null is a
36
+ * letter whatever the label: a custom tool never borrows a logo by its name.
37
+ */
38
+ export function brandMarkHtml(name, label, connected) {
39
+ const icon = name === null ? null : brandIconFor(name);
40
+ const inside = icon === null ? e(brandLetter(label)) : brandIconHtml(icon);
41
+ return `<span class="brand-mark" data-connected="${connected}"${icon === null ? " data-letter" : ""} aria-hidden="true">${inside}</span>`;
42
+ }
43
+ /** Where the integration tiles (Settings → Tools) switch to their phone layout, and the mark with them. */
44
+ export const TILE_PHONE = "@media(max-width:600px)";
45
+ /** The mark's own sizes; `--brand-mark` is its side, for layouts that line up beside it. */
46
+ export const BRAND_MARK_CSS = `:root{--brand-mark:32px}${TILE_PHONE}{:root{--brand-mark:28px}}` +
47
+ `.brand-mark{box-sizing:border-box;flex:0 0 auto;width:var(--brand-mark);height:var(--brand-mark);border-radius:8px;display:inline-grid;place-items:center;background:var(--so-neutral-soft);color:var(--so-muted);font-style:normal;font-weight:600;font-size:15px;line-height:1}` +
48
+ `.brand-mark svg{display:block;width:calc(var(--brand-mark) * .625);height:calc(var(--brand-mark) * .625)}.brand-mark[data-connected="true"]{color:var(--so-ink)}` +
49
+ `${TILE_PHONE}{.brand-mark{font-size:14px}}`;
@@ -321,6 +321,47 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
321
321
  SOFTWARE.
322
322
 
323
323
 
324
+ ## Integration logos: Simple Icons (CC0 1.0) and svgl (MIT)
325
+
326
+ The integration logos in `src/brand-icons.ts` are generated by
327
+ `scripts/brand-icons.mjs`, which writes each one as a single monochrome path.
328
+ Logos are their owners' trademarks. Toolroll uses them only to name the
329
+ integrations they belong to. Their use does not imply endorsement.
330
+
331
+ Stripe, Notion, Linear, Sentry, Jira, Confluence, Intercom, Square, PayPal,
332
+ Webflow, Wix, Vercel, Cloudflare, Figma, PostHog, Better Stack, Telegram,
333
+ Discord, GitHub, Gmail, Claude, Supabase, shadcn/ui and Google Chrome come from
334
+ Simple Icons 16.34.0 (npm `simple-icons`, https://simpleicons.org/), and
335
+ Zapier's asterisk from Simple Icons 9.10.0, saved as published in
336
+ `assets/brand-icons/zapier.svg`; all dedicated to the public domain under CC0
337
+ 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/
338
+
339
+ Slack, Microsoft Teams, Canva, OpenAI and Playwright come from svgl
340
+ (https://svgl.app/), saved as published in `assets/brand-icons/`; the generator
341
+ only fills every shape with one colour and scales it.
342
+
343
+ MIT License
344
+
345
+ Copyright (c) 2022 Pablo Hdez
346
+
347
+ Permission is hereby granted, free of charge, to any person obtaining a copy
348
+ of this software and associated documentation files (the "Software"), to deal
349
+ in the Software without restriction, including without limitation the rights
350
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
351
+ copies of the Software, and to permit persons to whom the Software is
352
+ furnished to do so, subject to the following conditions:
353
+
354
+ The above copyright notice and this permission notice shall be included in all
355
+ copies or substantial portions of the Software.
356
+
357
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
358
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
359
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
360
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
361
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
362
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
363
+ SOFTWARE.
364
+
324
365
  ## react-remove-scroll-bar 2.3.8 — MIT
325
366
 
326
367
  This Radix dialog dependency declares MIT in its package metadata but omits its