@flytedan/flytebot-design-system 0.12.13 → 0.12.15

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.13",
3
+ "version": "0.12.15",
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
  }
@@ -2254,7 +2252,16 @@
2254
2252
  padding: 0 var(--gutter-lg);
2255
2253
  position: relative;
2256
2254
  }
2255
+ /* MP-141: the breadcrumb is the Topbar's only elastic item. Every other direct child
2256
+ (overflowActions, actions — the version badge, the account trigger, any icon button)
2257
+ keeps its content width at any viewport: it never shrinks below what its own content
2258
+ needs. The crumb absorbs whatever space that leaves, growing to fill the row (so no
2259
+ separate spacer element is needed) and shrinking first when the row is tight. */
2260
+ .fd-topbar > *:not(.fd-crumb) {
2261
+ flex-shrink: 0;
2262
+ }
2257
2263
  .fd-crumb {
2264
+ flex: 1 1 auto;
2258
2265
  display: flex;
2259
2266
  align-items: center;
2260
2267
  gap: 9px;
@@ -2268,7 +2275,15 @@
2268
2275
  .fd-crumb a:hover {
2269
2276
  color: var(--text);
2270
2277
  }
2278
+ /* The current crumb already exposes its full text via `truncationTitle` (Topbar.tsx),
2279
+ so it may ellipsize at any width, not only `.is-narrow` — the same rule that used to
2280
+ apply only in the collapsed layout now applies everywhere the row runs out of room. */
2271
2281
  .fd-crumb-current {
2282
+ display: block;
2283
+ min-width: 0;
2284
+ overflow: hidden;
2285
+ text-overflow: ellipsis;
2286
+ white-space: nowrap;
2272
2287
  color: var(--text);
2273
2288
  font-weight: var(--w-semibold);
2274
2289
  }
@@ -2316,31 +2331,20 @@
2316
2331
  }
2317
2332
  /* Narrow Topbar (`is-narrow`, set by Topbar from its own `overflowBreakpoint`, so the
2318
2333
  crumb rules and the overflow menu always switch together): earlier crumbs hide (the
2319
- nav drawer `onMenu` opens still reaches them), and the current crumb truncates with
2320
- an ellipsis instead of spilling its text outside a zero-width box.
2321
- The crumb also grows (`flex: 1 1 auto`) so it, not the row spacer, takes the width
2322
- the collapsed controls free. */
2323
- .fd-topbar.is-narrow .fd-crumb {
2324
- flex: 1 1 auto;
2325
- }
2334
+ nav drawer `onMenu` opens still reaches them). The crumb's grow/shrink and the current
2335
+ crumb's ellipsis are the base `.fd-crumb`/`.fd-crumb-current` rules above — they apply
2336
+ at every width, not only here. */
2326
2337
  .fd-topbar.is-narrow .fd-crumb > *:not(:last-child) {
2327
2338
  display: none;
2328
2339
  }
2329
- .fd-topbar.is-narrow .fd-crumb-current {
2330
- display: block;
2331
- min-width: 0;
2332
- overflow: hidden;
2333
- text-overflow: ellipsis;
2334
- white-space: nowrap;
2335
- }
2336
2340
 
2337
2341
  /* ============ Overlays ============ */
2342
+ /* z-index is set inline by Modal.tsx/Drawer.tsx via useOverlayLayer (see Popover.tsx). */
2338
2343
  .fd-scrim {
2339
2344
  position: fixed;
2340
2345
  inset: 0;
2341
2346
  background: var(--scrim);
2342
2347
  backdrop-filter: blur(3px);
2343
- z-index: 80;
2344
2348
  animation: fd-fade var(--dur-base) var(--ease) both;
2345
2349
  display: grid;
2346
2350
  place-items: center;
@@ -2470,8 +2474,7 @@
2470
2474
  border-top: 1px solid var(--border);
2471
2475
  background: var(--surface-2);
2472
2476
  }
2473
- /* z-index below is a resting default only — Drawer.tsx sets it (and its scrim's) inline
2474
- via useOverlayLayer(DRAWER_BASE), which wins over this rule (see Popover.tsx). */
2477
+ /* z-index is set inline by Drawer.tsx (and its scrim's) via useOverlayLayer (see Popover.tsx). */
2475
2478
  .fd-drawer {
2476
2479
  position: fixed;
2477
2480
  top: 0;
@@ -2483,7 +2486,6 @@
2483
2486
  width: min(520px, 100%);
2484
2487
  background: var(--surface);
2485
2488
  box-shadow: var(--e-4);
2486
- z-index: 90;
2487
2489
  display: flex;
2488
2490
  flex-direction: column;
2489
2491
  animation: fd-drawer-in var(--dur-panel) var(--ease-out) both;
@@ -2497,12 +2499,9 @@
2497
2499
  /* Portaled to document.body and placed by Tooltip.tsx (fixed, anchored geometry), so no
2498
2500
  overflow: hidden ancestor of the trigger can clip it. Short labels stay on one line
2499
2501
  (max-content); a sentence wraps at a readable measure instead of running off-screen.
2500
- The z-index below is a resting default only — Tooltip.tsx always sets it inline via
2501
- useOverlayLayer(TOOLTIP_BASE), which wins over this rule and is what actually keeps a
2502
- tip above whatever popover its trigger happens to be nested inside (see Popover.tsx). */
2502
+ z-index is set inline by Tooltip.tsx via useOverlayLayer (see Popover.tsx). */
2503
2503
  .fd-tooltip {
2504
2504
  position: fixed;
2505
- z-index: 150;
2506
2505
  width: max-content;
2507
2506
  max-width: min(280px, calc(100vw - 16px));
2508
2507
  background: var(--n-900);
@@ -2640,11 +2639,11 @@
2640
2639
  position: relative;
2641
2640
  }
2642
2641
  .fd-pop {
2642
+ /* z-index is set inline by Popover.tsx via useOverlayLayer (see Popover.tsx). */
2643
2643
  position: absolute;
2644
2644
  top: calc(100% + 6px);
2645
2645
  left: 0;
2646
2646
  min-width: 100%;
2647
- z-index: 110;
2648
2647
  background: var(--surface);
2649
2648
  border: 1px solid var(--border);
2650
2649
  border-radius: var(--r-md);
@@ -6440,45 +6439,6 @@ button.fd-erow-metric:focus-visible {
6440
6439
  }
6441
6440
  }
6442
6441
 
6443
- /* attachment lightbox (demo harness) */
6444
- .fdc-lightbox {
6445
- position: fixed;
6446
- inset: 0;
6447
- z-index: 200;
6448
- display: grid;
6449
- place-items: center;
6450
- padding: 36px;
6451
- background: var(--scrim);
6452
- backdrop-filter: blur(3px);
6453
- animation: fd-pop var(--dur-fast) var(--ease-out) both;
6454
- }
6455
- .fdc-lightbox figure {
6456
- margin: 0;
6457
- max-width: min(1100px, 92vw);
6458
- display: flex;
6459
- flex-direction: column;
6460
- gap: 8px;
6461
- }
6462
- .fdc-lightbox img {
6463
- max-width: 100%;
6464
- max-height: 76vh;
6465
- border-radius: var(--r-lg);
6466
- box-shadow: var(--e-4);
6467
- background: var(--surface);
6468
- }
6469
- .fdc-lightbox figcaption {
6470
- display: flex;
6471
- justify-content: space-between;
6472
- gap: 16px;
6473
- color: #fff;
6474
- font-size: var(--body-sm-size);
6475
- font-weight: var(--w-medium);
6476
- }
6477
- .fdc-lightbox figcaption span {
6478
- opacity: 0.62;
6479
- font-weight: var(--w-regular);
6480
- }
6481
-
6482
6442
  /* ============ Build mode (live / test) ============ */
6483
6443
  .fd-mode-btn {
6484
6444
  position: relative;
@@ -6533,13 +6493,11 @@ button.fd-erow-metric:focus-visible {
6533
6493
  border: 1.5px solid var(--surface);
6534
6494
  animation: fd-badge-pop 260ms var(--ease) both;
6535
6495
  }
6536
- /* The z-index below is a resting default only — ModeSwitch.tsx always sets it inline via
6537
- useOverlayLayer(MODE_SWITCH_BASE), which wins over this rule (see Popover.tsx). */
6496
+ /* z-index is set inline by ModeSwitch.tsx via useOverlayLayer (see Popover.tsx). */
6538
6497
  .fd-mode-pop {
6539
6498
  position: absolute;
6540
6499
  top: calc(100% + 8px);
6541
6500
  right: 0;
6542
- z-index: 140;
6543
6501
  width: 400px;
6544
6502
  max-width: calc(100vw - 32px);
6545
6503
  display: block;