@flytedan/flytebot-design-system 0.12.4 → 0.12.6

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.4",
3
+ "version": "0.12.6",
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",
@@ -678,9 +678,16 @@
678
678
  border-color: var(--border-strong);
679
679
  transform: translateY(-1px);
680
680
  }
681
+ /* The header degrades in two steps as the action slot needs more room than is left:
682
+ first the title gives up ITS OWN spare width (ordinary flex-shrink) down to
683
+ fd-card-head-title's min-width; once even that doesn't leave enough room for the
684
+ action slot, flex-wrap moves the action onto its own row below the title rather than
685
+ continuing to squeeze the title past a readable width. Nothing here is per-consumer —
686
+ a wide action slot (badges, buttons, a switch) never needs an app-side workaround. */
681
687
  .fd-card-head {
682
688
  display: flex;
683
689
  align-items: center;
690
+ flex-wrap: wrap;
684
691
  gap: 12px;
685
692
  padding: 16px 18px;
686
693
  border-bottom: 1px solid var(--border);
@@ -691,7 +698,13 @@
691
698
  letter-spacing: var(--h3-track);
692
699
  font-weight: var(--w-semibold);
693
700
  flex: 1;
694
- min-width: 0;
701
+ /* The floor the title may shrink to before the action slot is made to wrap instead —
702
+ enough for a short word plus an ellipsis, never zero. Text past this on one line
703
+ truncates rather than overflowing the header. */
704
+ min-width: 120px;
705
+ overflow: hidden;
706
+ text-overflow: ellipsis;
707
+ white-space: nowrap;
695
708
  }
696
709
  .fd-card-body {
697
710
  padding: 18px;
@@ -1387,6 +1400,8 @@
1387
1400
  .fd-soon-cone-mark i {
1388
1401
  font-size: 11px;
1389
1402
  }
1403
+ /* The z-index below is a resting default only — ComingSoon.tsx always sets it inline via
1404
+ useOverlayLayer(SOON_HOVERCARD_BASE), which wins over this rule (see Popover.tsx). */
1390
1405
  .fd-soon-hovercard {
1391
1406
  transform: none;
1392
1407
  z-index: 220;
@@ -2177,6 +2192,44 @@
2177
2192
  gap: 2px;
2178
2193
  min-width: 160px;
2179
2194
  }
2195
+ /* MP-117 — every direct child of the overflow list (Ask, a version badge, Appearance,
2196
+ Dev tools, Undo — whatever a screen collapses) is one full-width row, so a compact
2197
+ control that packed tightly against its neighbours in the dense bar (a pill badge, a
2198
+ fixed-size icon square) can't sit at a different width/height than the rest and read
2199
+ as overlapping or uneven once stacked. */
2200
+ .fd-topbar-overflow-list > * {
2201
+ width: 100%;
2202
+ flex: none;
2203
+ }
2204
+ .fd-topbar-overflow-list > .fd-badge {
2205
+ height: var(--control-h-md);
2206
+ border-radius: var(--r-md);
2207
+ justify-content: flex-start;
2208
+ }
2209
+ /* An IconButton rendered here (see OverflowRowContext/IconButton.tsx) trades its
2210
+ dense-bar square for a full labelled row: same icon, same accessible name, now with
2211
+ that name shown as text instead of only living in `aria-label`/`title`. */
2212
+ .fd-btn-icon-row {
2213
+ display: flex;
2214
+ align-items: center;
2215
+ justify-content: flex-start;
2216
+ gap: 10px;
2217
+ width: 100%;
2218
+ height: var(--control-h-md);
2219
+ padding: 0 10px;
2220
+ }
2221
+ .fd-btn-icon-row .ph {
2222
+ font-size: 18px;
2223
+ flex: none;
2224
+ }
2225
+ .fd-btn-icon-row-label {
2226
+ font-size: var(--body-sm-size);
2227
+ font-weight: var(--w-semibold);
2228
+ color: var(--text);
2229
+ white-space: nowrap;
2230
+ overflow: hidden;
2231
+ text-overflow: ellipsis;
2232
+ }
2180
2233
  /* Narrow Topbar (`is-narrow`, set by Topbar from its own `overflowBreakpoint`, so the
2181
2234
  crumb rules and the overflow menu always switch together): earlier crumbs hide (the
2182
2235
  nav drawer `onMenu` opens still reaches them), and the current crumb truncates with
@@ -4214,6 +4267,23 @@ button.fd-erow-metric:focus-visible {
4214
4267
  flex-direction: column;
4215
4268
  align-items: stretch;
4216
4269
  }
4270
+ /* MP-114: below the same width EntityRow's metric strip stops having room to keep
4271
+ every column at the desktop's fixed --erow-metric-w (set so rows line up with a
4272
+ multi-digit totals footer, see EntityRowMetrics/.fd-erow-cell above) — even each
4273
+ cell's own un-wrapped figure (`.fd-erow-metric`'s `white-space: nowrap` makes its
4274
+ min-content equal its full width) no longer fits together in the strip, and
4275
+ `.fd-erow-metrics`'s `overflow: hidden` was clipping the ones that didn't. A
4276
+ stacked phone pane never regains that room, so the fixed-column alignment this
4277
+ component is built for is traded, at this width only, for every metric staying a
4278
+ whole, readable button: cells size to their own content instead of the desktop
4279
+ column width, and the strip wraps instead of clipping. */
4280
+ .fd-erow-cell {
4281
+ width: auto;
4282
+ }
4283
+ .fd-erow-metrics {
4284
+ flex-wrap: wrap;
4285
+ overflow: visible;
4286
+ }
4217
4287
  }
4218
4288
  .fd-tlist-side {
4219
4289
  flex: 1;
@@ -6202,6 +6272,8 @@ button.fd-erow-metric:focus-visible {
6202
6272
  border: 1.5px solid var(--surface);
6203
6273
  animation: fd-badge-pop 260ms var(--ease) both;
6204
6274
  }
6275
+ /* The z-index below is a resting default only — ModeSwitch.tsx always sets it inline via
6276
+ useOverlayLayer(MODE_SWITCH_BASE), which wins over this rule (see Popover.tsx). */
6205
6277
  .fd-mode-pop {
6206
6278
  position: absolute;
6207
6279
  top: calc(100% + 8px);