@flytedan/flytebot-design-system 0.12.12 → 0.12.14

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flytedan/flytebot-design-system",
3
- "version": "0.12.12",
3
+ "version": "0.12.14",
4
4
  "description": "flytedesk Design System — shared component library, tokens, and business-logic kits for flytedesk apps.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -1470,11 +1470,9 @@
1470
1470
  .fd-soon-cone-mark i {
1471
1471
  font-size: 11px;
1472
1472
  }
1473
- /* The z-index below is a resting default only — ComingSoon.tsx always sets it inline via
1474
- useOverlayLayer(SOON_HOVERCARD_BASE), which wins over this rule (see Popover.tsx). */
1473
+ /* z-index is set inline by ComingSoon.tsx via useOverlayLayer (see Popover.tsx). */
1475
1474
  .fd-soon-hovercard {
1476
1475
  transform: none;
1477
- z-index: 220;
1478
1476
  box-shadow: 0 18px 48px rgba(11, 13, 17, 0.26);
1479
1477
  animation: fd-fade var(--dur-fast) var(--ease) both;
1480
1478
  }
@@ -1724,6 +1722,14 @@
1724
1722
  }
1725
1723
 
1726
1724
  /* ============ Stat tile ============ */
1725
+ /* MP-141: kit-wide truncation rule for Stat (and every future text class here) —
1726
+ * explanatory/label copy (.fd-stat-sub, .fd-stat-label) always WRAPS, never
1727
+ * ellipsizes: a client reading a narrow tile must never lose part of a sentence
1728
+ * behind a "…" with no way to read the rest, and a tooltip is not a substitute
1729
+ * for readable client-facing copy. Only a user-data identifier displayed in a
1730
+ * dense row (a table cell, a chip) may ellipsize — and only when it also exposes
1731
+ * its full text via `title`/tooltip. Decide this once, here, for every Stat
1732
+ * consumer, not per screen. */
1727
1733
  .fd-stat {
1728
1734
  background: var(--surface);
1729
1735
  border: 1px solid var(--border);
@@ -1740,16 +1746,23 @@
1740
1746
  min-width: 0;
1741
1747
  }
1742
1748
  .fd-stat-sub {
1749
+ /* MP-141: this is explanatory copy ("on every funded campus, at minimum"),
1750
+ * never a user-data identifier — per the kit's truncation rule (see this
1751
+ * file's own header note above .fd-stat), explanatory/label copy always
1752
+ * wraps instead of ellipsizing, so a client reading a narrow tile never
1753
+ * loses part of the sentence behind a "…" with no way to read the rest. */
1743
1754
  display: block;
1744
1755
  margin-top: 4px;
1745
1756
  font-size: var(--body-sm-size);
1746
1757
  color: var(--text-2);
1747
1758
  min-width: 0;
1748
- overflow: hidden;
1749
- text-overflow: ellipsis;
1750
- white-space: nowrap;
1759
+ overflow-wrap: break-word;
1760
+ white-space: normal;
1751
1761
  }
1752
1762
  .fd-stat-label {
1763
+ /* MP-141: same rule as .fd-stat-sub above — this is the tile's fixed
1764
+ * caption, not a user-entered identifier, so it wraps rather than losing
1765
+ * words to an ellipsis. */
1753
1766
  display: block;
1754
1767
  margin-top: 6px;
1755
1768
  font-size: var(--overline-size);
@@ -1757,9 +1770,8 @@
1757
1770
  text-transform: uppercase;
1758
1771
  font-weight: var(--w-bold);
1759
1772
  color: var(--text-muted);
1760
- white-space: nowrap;
1761
- overflow: hidden;
1762
- text-overflow: ellipsis;
1773
+ overflow-wrap: break-word;
1774
+ white-space: normal;
1763
1775
  }
1764
1776
  .fd-stat-figure {
1765
1777
  flex: none;
@@ -2321,12 +2333,12 @@
2321
2333
  }
2322
2334
 
2323
2335
  /* ============ Overlays ============ */
2336
+ /* z-index is set inline by Modal.tsx/Drawer.tsx via useOverlayLayer (see Popover.tsx). */
2324
2337
  .fd-scrim {
2325
2338
  position: fixed;
2326
2339
  inset: 0;
2327
2340
  background: var(--scrim);
2328
2341
  backdrop-filter: blur(3px);
2329
- z-index: 80;
2330
2342
  animation: fd-fade var(--dur-base) var(--ease) both;
2331
2343
  display: grid;
2332
2344
  place-items: center;
@@ -2456,8 +2468,7 @@
2456
2468
  border-top: 1px solid var(--border);
2457
2469
  background: var(--surface-2);
2458
2470
  }
2459
- /* z-index below is a resting default only — Drawer.tsx sets it (and its scrim's) inline
2460
- via useOverlayLayer(DRAWER_BASE), which wins over this rule (see Popover.tsx). */
2471
+ /* z-index is set inline by Drawer.tsx (and its scrim's) via useOverlayLayer (see Popover.tsx). */
2461
2472
  .fd-drawer {
2462
2473
  position: fixed;
2463
2474
  top: 0;
@@ -2469,7 +2480,6 @@
2469
2480
  width: min(520px, 100%);
2470
2481
  background: var(--surface);
2471
2482
  box-shadow: var(--e-4);
2472
- z-index: 90;
2473
2483
  display: flex;
2474
2484
  flex-direction: column;
2475
2485
  animation: fd-drawer-in var(--dur-panel) var(--ease-out) both;
@@ -2483,12 +2493,9 @@
2483
2493
  /* Portaled to document.body and placed by Tooltip.tsx (fixed, anchored geometry), so no
2484
2494
  overflow: hidden ancestor of the trigger can clip it. Short labels stay on one line
2485
2495
  (max-content); a sentence wraps at a readable measure instead of running off-screen.
2486
- The z-index below is a resting default only — Tooltip.tsx always sets it inline via
2487
- useOverlayLayer(TOOLTIP_BASE), which wins over this rule and is what actually keeps a
2488
- tip above whatever popover its trigger happens to be nested inside (see Popover.tsx). */
2496
+ z-index is set inline by Tooltip.tsx via useOverlayLayer (see Popover.tsx). */
2489
2497
  .fd-tooltip {
2490
2498
  position: fixed;
2491
- z-index: 150;
2492
2499
  width: max-content;
2493
2500
  max-width: min(280px, calc(100vw - 16px));
2494
2501
  background: var(--n-900);
@@ -2626,11 +2633,11 @@
2626
2633
  position: relative;
2627
2634
  }
2628
2635
  .fd-pop {
2636
+ /* z-index is set inline by Popover.tsx via useOverlayLayer (see Popover.tsx). */
2629
2637
  position: absolute;
2630
2638
  top: calc(100% + 6px);
2631
2639
  left: 0;
2632
2640
  min-width: 100%;
2633
- z-index: 110;
2634
2641
  background: var(--surface);
2635
2642
  border: 1px solid var(--border);
2636
2643
  border-radius: var(--r-md);
@@ -6426,45 +6433,6 @@ button.fd-erow-metric:focus-visible {
6426
6433
  }
6427
6434
  }
6428
6435
 
6429
- /* attachment lightbox (demo harness) */
6430
- .fdc-lightbox {
6431
- position: fixed;
6432
- inset: 0;
6433
- z-index: 200;
6434
- display: grid;
6435
- place-items: center;
6436
- padding: 36px;
6437
- background: var(--scrim);
6438
- backdrop-filter: blur(3px);
6439
- animation: fd-pop var(--dur-fast) var(--ease-out) both;
6440
- }
6441
- .fdc-lightbox figure {
6442
- margin: 0;
6443
- max-width: min(1100px, 92vw);
6444
- display: flex;
6445
- flex-direction: column;
6446
- gap: 8px;
6447
- }
6448
- .fdc-lightbox img {
6449
- max-width: 100%;
6450
- max-height: 76vh;
6451
- border-radius: var(--r-lg);
6452
- box-shadow: var(--e-4);
6453
- background: var(--surface);
6454
- }
6455
- .fdc-lightbox figcaption {
6456
- display: flex;
6457
- justify-content: space-between;
6458
- gap: 16px;
6459
- color: #fff;
6460
- font-size: var(--body-sm-size);
6461
- font-weight: var(--w-medium);
6462
- }
6463
- .fdc-lightbox figcaption span {
6464
- opacity: 0.62;
6465
- font-weight: var(--w-regular);
6466
- }
6467
-
6468
6436
  /* ============ Build mode (live / test) ============ */
6469
6437
  .fd-mode-btn {
6470
6438
  position: relative;
@@ -6519,13 +6487,11 @@ button.fd-erow-metric:focus-visible {
6519
6487
  border: 1.5px solid var(--surface);
6520
6488
  animation: fd-badge-pop 260ms var(--ease) both;
6521
6489
  }
6522
- /* The z-index below is a resting default only — ModeSwitch.tsx always sets it inline via
6523
- useOverlayLayer(MODE_SWITCH_BASE), which wins over this rule (see Popover.tsx). */
6490
+ /* z-index is set inline by ModeSwitch.tsx via useOverlayLayer (see Popover.tsx). */
6524
6491
  .fd-mode-pop {
6525
6492
  position: absolute;
6526
6493
  top: calc(100% + 8px);
6527
6494
  right: 0;
6528
- z-index: 140;
6529
6495
  width: 400px;
6530
6496
  max-width: calc(100vw - 32px);
6531
6497
  display: block;