@agentero/design-system 0.4.1 → 0.5.0

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.
@@ -576,13 +576,13 @@
576
576
  <header>
577
577
  <div class="wrap">
578
578
  <h1>Manifest Debugger</h1>
579
- <div class="summary"><a class="filter-pill all" data-k="all" href="#filter-all">All</a><span class="filter-pill ok" aria-disabled="true">5 components ok</span><span class="filter-pill ok" aria-disabled="true">67 stories ok</span></div>
579
+ <div class="summary"><a class="filter-pill all" data-k="all" href="#filter-all">All</a><span class="filter-pill ok" aria-disabled="true">6 components ok</span><span class="filter-pill ok" aria-disabled="true">79 stories ok</span></div>
580
580
  </div>
581
581
  </header>
582
582
  <main>
583
583
  <div class="wrap">
584
584
  <div class="note ok" style="margin-bottom: 16px;">
585
- Using <code>react-docgen-typescript</code>. Generation took <strong>2.0s</strong>.
585
+ Using <code>react-docgen-typescript</code>. Generation took <strong>2.3s</strong>.
586
586
  </div>
587
587
  <h2 class="section-title">Components</h2>
588
588
  <div class="grid" role="list">
@@ -2277,6 +2277,226 @@ size?: &quot;sm&quot; | &quot;md&quot; | &quot;lg&quot;</code></pre>
2277
2277
  </div>
2278
2278
  </div>
2279
2279
 
2280
+ </div>
2281
+ </article>
2282
+ <article
2283
+ class="card
2284
+ no-error
2285
+ no-info
2286
+ no-story-error
2287
+ no-doc-error"
2288
+ role="listitem"
2289
+ aria-label="StatusBall">
2290
+ <div class="head">
2291
+ <div class="title">
2292
+ <h2><span class="status-dot dot-ok"></span> StatusBall</h2>
2293
+ <div class="badges">
2294
+
2295
+
2296
+ <label for="c-5-design-system-feedback-statusball-stories" class="badge ok as-toggle">12 stories</label>
2297
+
2298
+ </div>
2299
+ </div>
2300
+ <div class="meta" title="./src/status-ball/status-ball.stories.tsx">design-system-feedback-statusball · ./src/status-ball/status-ball.stories.tsx</div>
2301
+
2302
+ <div class="hint">StatusBall renders a small colored dot that marks the state of an adjacent label — appointment confirmation, license validity, availability, or any list row where a single glyph of color communicates status. Pair it with text; the dot alone is not announced to assistive technologies, so the surrounding label must carry the meaning.</div>
2303
+
2304
+ </div>
2305
+
2306
+ <!-- ⬇️ Hidden toggles must be siblings BEFORE .panels -->
2307
+
2308
+
2309
+ <input id="c-5-design-system-feedback-statusball-stories" class="tg tg-stories" type="checkbox" hidden />
2310
+
2311
+
2312
+
2313
+ <div class="panels">
2314
+
2315
+
2316
+
2317
+
2318
+ <div class="panel panel-stories">
2319
+
2320
+
2321
+
2322
+ <div class="note ok">
2323
+ <div class="row">
2324
+ <span class="ex-name">Imports</span>
2325
+ </div>
2326
+ <pre><code>import { StatusBall } from "@agentero/design-system";</code></pre>
2327
+ </div>
2328
+
2329
+
2330
+ <div class="note ok">
2331
+ <div class="row">
2332
+ <span class="ex-name">Default</span>
2333
+ <span class="badge ok">story ok</span>
2334
+ </div>
2335
+ <div>Default neutral dot representing an inactive status</div>
2336
+ <div class="hint">The default dot — `color=&quot;neutral&quot;` for an unknown or inactive status. Drop next to a text label to surface state at a glance.</div>
2337
+ <pre><code>const Default = () =&gt; &lt;div className=&quot;flex items-center gap-2&quot;&gt;
2338
+ &lt;StatusBall color=&quot;neutral&quot; /&gt;
2339
+ &lt;/div&gt;;</code></pre>
2340
+ </div>
2341
+ <div class="note ok">
2342
+ <div class="row">
2343
+ <span class="ex-name">Intents</span>
2344
+ <span class="badge ok">story ok</span>
2345
+ </div>
2346
+ <div>Every intent paired with a representative status label</div>
2347
+ <div class="hint">All 8 semantic intents rendered in a single grid, each paired with a sample label. Consumers typically drive the `color` prop from a domain-specific status → intent lookup table.</div>
2348
+ <pre><code>const Intents = () =&gt; {
2349
+ const samples: { color: (typeof INTENTS)[number]; label: string }[] = [
2350
+ { color: &#39;success&#39;, label: &#39;Active&#39; },
2351
+ { color: &#39;info&#39;, label: &#39;Scheduled&#39; },
2352
+ { color: &#39;warning&#39;, label: &#39;Pending&#39; },
2353
+ { color: &#39;danger&#39;, label: &#39;Expired&#39; },
2354
+ { color: &#39;creative&#39;, label: &#39;In review&#39; },
2355
+ { color: &#39;playful&#39;, label: &#39;Flagged&#39; },
2356
+ { color: &#39;dynamic&#39;, label: &#39;Needs attention&#39; },
2357
+ { color: &#39;neutral&#39;, label: &#39;Inactive&#39; }
2358
+ ];
2359
+
2360
+ return (
2361
+ &lt;div className=&quot;grid grid-cols-2 gap-x-8 gap-y-3&quot;&gt;
2362
+ {samples.map(({ color, label }) =&gt; (
2363
+ &lt;div key={color} className=&quot;flex items-center gap-2&quot;&gt;
2364
+ &lt;StatusBall color={color} /&gt;
2365
+ &lt;span className=&quot;text-sm text-text-default-base-primary&quot;&gt;{label}&lt;/span&gt;
2366
+ &lt;/div&gt;
2367
+ ))}
2368
+ &lt;/div&gt;
2369
+ );
2370
+ };</code></pre>
2371
+ </div>
2372
+ <div class="note ok">
2373
+ <div class="row">
2374
+ <span class="ex-name">Success</span>
2375
+ <span class="badge ok">story ok</span>
2376
+ </div>
2377
+ <div>Success dot for positive or active statuses</div>
2378
+ <div class="hint">Success dot for positive / active states — the most common pairing for &quot;live&quot; records such as active licenses or confirmed appointments.</div>
2379
+ <pre><code>const Success = () =&gt; &lt;StatusBall color=&quot;success&quot; /&gt;;</code></pre>
2380
+ </div>
2381
+ <div class="note ok">
2382
+ <div class="row">
2383
+ <span class="ex-name">Info</span>
2384
+ <span class="badge ok">story ok</span>
2385
+ </div>
2386
+ <div>Info dot for informational statuses</div>
2387
+ <div class="hint">Info dot for informational or neutral-positive states — e.g., scheduled or queued records that are progressing normally.</div>
2388
+ <pre><code>const Info = () =&gt; &lt;StatusBall color=&quot;info&quot; /&gt;;</code></pre>
2389
+ </div>
2390
+ <div class="note ok">
2391
+ <div class="row">
2392
+ <span class="ex-name">Warning</span>
2393
+ <span class="badge ok">story ok</span>
2394
+ </div>
2395
+ <div>Warning dot for pending or approaching-deadline statuses</div>
2396
+ <div class="hint">Warning dot for pending states or records approaching a deadline — e.g., a license nearing expiration or an appointment awaiting confirmation.</div>
2397
+ <pre><code>const Warning = () =&gt; &lt;StatusBall color=&quot;warning&quot; /&gt;;</code></pre>
2398
+ </div>
2399
+ <div class="note ok">
2400
+ <div class="row">
2401
+ <span class="ex-name">Danger</span>
2402
+ <span class="badge ok">story ok</span>
2403
+ </div>
2404
+ <div>Danger dot for error or expired statuses</div>
2405
+ <div class="hint">Danger dot for error / expired / blocking states — e.g., an expired license or a failed payment that blocks progress.</div>
2406
+ <pre><code>const Danger = () =&gt; &lt;StatusBall color=&quot;danger&quot; /&gt;;</code></pre>
2407
+ </div>
2408
+ <div class="note ok">
2409
+ <div class="row">
2410
+ <span class="ex-name">Creative</span>
2411
+ <span class="badge ok">story ok</span>
2412
+ </div>
2413
+ <div>Creative dot for category-specific statuses</div>
2414
+ <div class="hint">Creative dot for category-specific statuses without a direct success/info/ warning/danger mapping — often used for &quot;in review&quot; or &quot;under assessment&quot; domain states.</div>
2415
+ <pre><code>const Creative = () =&gt; &lt;StatusBall color=&quot;creative&quot; /&gt;;</code></pre>
2416
+ </div>
2417
+ <div class="note ok">
2418
+ <div class="row">
2419
+ <span class="ex-name">Dynamic</span>
2420
+ <span class="badge ok">story ok</span>
2421
+ </div>
2422
+ <div>Dynamic dot for attention-needed statuses</div>
2423
+ <div class="hint">Dynamic dot for attention-worthy states that sit between warning and danger — e.g., records that need action soon but are not yet failed.</div>
2424
+ <pre><code>const Dynamic = () =&gt; &lt;StatusBall color=&quot;dynamic&quot; /&gt;;</code></pre>
2425
+ </div>
2426
+ <div class="note ok">
2427
+ <div class="row">
2428
+ <span class="ex-name">Playful</span>
2429
+ <span class="badge ok">story ok</span>
2430
+ </div>
2431
+ <div>Playful dot for flagged or priority statuses</div>
2432
+ <div class="hint">Playful dot for flagged or priority domain states that need to stand out from warnings with a distinct hue.</div>
2433
+ <pre><code>const Playful = () =&gt; &lt;StatusBall color=&quot;playful&quot; /&gt;;</code></pre>
2434
+ </div>
2435
+ <div class="note ok">
2436
+ <div class="row">
2437
+ <span class="ex-name">Neutral</span>
2438
+ <span class="badge ok">story ok</span>
2439
+ </div>
2440
+ <div>Neutral dot for inactive or unknown statuses</div>
2441
+ <div class="hint">Neutral dot for inactive, unknown, or default states — the fallback when no other intent applies.</div>
2442
+ <pre><code>const Neutral = () =&gt; &lt;StatusBall color=&quot;neutral&quot; /&gt;;</code></pre>
2443
+ </div>
2444
+ <div class="note ok">
2445
+ <div class="row">
2446
+ <span class="ex-name">In List</span>
2447
+ <span class="badge ok">story ok</span>
2448
+ </div>
2449
+ <div>StatusBall paired with labels inside a list</div>
2450
+ <div class="hint">StatusBall inside a list row — the canonical production usage, mirroring the appointment and license list patterns in `producerflow/mono`. Each row pairs a dot with a label and supporting text.</div>
2451
+ <pre><code>const InList = () =&gt; {
2452
+ const rows = [
2453
+ { color: &#39;success&#39;, name: &#39;Ada Lovelace&#39;, status: &#39;Active&#39; },
2454
+ { color: &#39;warning&#39;, name: &#39;Grace Hopper&#39;, status: &#39;Pending renewal&#39; },
2455
+ { color: &#39;danger&#39;, name: &#39;Alan Turing&#39;, status: &#39;Expired&#39; },
2456
+ { color: &#39;neutral&#39;, name: &#39;Katherine Johnson&#39;, status: &#39;Inactive&#39; }
2457
+ ] as const;
2458
+
2459
+ return (
2460
+ &lt;ul className=&quot;w-80 divide-y divide-border-default-base-primary rounded-lg border border-border-default-base-primary bg-bg-default-base-primary&quot;&gt;
2461
+ {rows.map(row =&gt; (
2462
+ &lt;li key={row.name} className=&quot;flex items-center gap-3 px-4 py-3&quot;&gt;
2463
+ &lt;StatusBall color={row.color} /&gt;
2464
+ &lt;div className=&quot;flex flex-col&quot;&gt;
2465
+ &lt;span className=&quot;text-sm font-medium text-text-default-base-primary&quot;&gt;{row.name}&lt;/span&gt;
2466
+ &lt;span className=&quot;text-xs text-text-default-base-secondary&quot;&gt;{row.status}&lt;/span&gt;
2467
+ &lt;/div&gt;
2468
+ &lt;/li&gt;
2469
+ ))}
2470
+ &lt;/ul&gt;
2471
+ );
2472
+ };</code></pre>
2473
+ </div>
2474
+ <div class="note ok">
2475
+ <div class="row">
2476
+ <span class="ex-name">In Pill</span>
2477
+ <span class="badge ok">story ok</span>
2478
+ </div>
2479
+ <div>StatusBall inside a rounded status pill</div>
2480
+ <div class="hint">StatusBall inside a status pill — a tinted badge that pairs the dot with a label in a single rounded container. Use when the status needs more visual weight than a bare list row provides.</div>
2481
+ <pre><code>const InPill = () =&gt; (
2482
+ &lt;div className=&quot;flex flex-wrap items-center gap-2&quot;&gt;
2483
+ &lt;span className=&quot;inline-flex items-center gap-1.5 rounded-full border border-border-default-base-primary bg-bg-default-base-primary px-2.5 py-1 text-xs text-text-default-base-primary&quot;&gt;
2484
+ &lt;StatusBall color=&quot;success&quot; /&gt;
2485
+ Active
2486
+ &lt;/span&gt;
2487
+ &lt;span className=&quot;inline-flex items-center gap-1.5 rounded-full border border-border-default-base-primary bg-bg-default-base-primary px-2.5 py-1 text-xs text-text-default-base-primary&quot;&gt;
2488
+ &lt;StatusBall color=&quot;warning&quot; /&gt;
2489
+ Pending
2490
+ &lt;/span&gt;
2491
+ &lt;span className=&quot;inline-flex items-center gap-1.5 rounded-full border border-border-default-base-primary bg-bg-default-base-primary px-2.5 py-1 text-xs text-text-default-base-primary&quot;&gt;
2492
+ &lt;StatusBall color=&quot;danger&quot; /&gt;
2493
+ Expired
2494
+ &lt;/span&gt;
2495
+ &lt;/div&gt;
2496
+ );</code></pre>
2497
+ </div>
2498
+ </div>
2499
+
2280
2500
  </div>
2281
2501
  </article>
2282
2502
  </div>