@flytedan/flytebot-design-system 0.51.3 → 0.51.5
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/dist/index.cjs +514 -457
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -7
- package/dist/index.d.ts +27 -7
- package/dist/index.js +512 -457
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/components.css +61 -36
package/package.json
CHANGED
package/styles/components.css
CHANGED
|
@@ -2714,24 +2714,44 @@
|
|
|
2714
2714
|
color: var(--text);
|
|
2715
2715
|
font-size: var(--body-size);
|
|
2716
2716
|
}
|
|
2717
|
-
/*
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
takes
|
|
2722
|
-
|
|
2717
|
+
/* The corner stack: the one bottom-right box every floating surface (the toasts, the job
|
|
2718
|
+
tray) renders into a slot of, so they lay out one above the next instead of each pinning
|
|
2719
|
+
itself to the same corner (z-index is set inline from OVERLAY_CEILING, above every layer).
|
|
2720
|
+
It is 340px wide, and on a phone the width between two gutters. The stack
|
|
2721
|
+
takes no clicks: it has a real box wherever a surface is, including the gaps between
|
|
2722
|
+
surfaces and the shadow around each, and without this a click aimed at the control
|
|
2723
|
+
underneath would land on it. Each surface takes its clicks back. Slots run bottom to top;
|
|
2724
|
+
two occupied slots are one gap apart, and an empty one (the toast region is always mounted
|
|
2725
|
+
for its live region) takes no room. */
|
|
2726
|
+
.fd-corner-stack {
|
|
2723
2727
|
position: fixed;
|
|
2724
2728
|
bottom: var(--s-lg);
|
|
2725
2729
|
right: var(--s-lg);
|
|
2730
|
+
display: flex;
|
|
2731
|
+
flex-direction: column-reverse;
|
|
2732
|
+
width: 340px;
|
|
2733
|
+
pointer-events: none;
|
|
2734
|
+
}
|
|
2735
|
+
@media (max-width: 640px) {
|
|
2736
|
+
.fd-corner-stack {
|
|
2737
|
+
width: calc(100vw - 2 * var(--s-lg));
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
.fd-corner-stack-slot:has(> :not(:empty)) ~ .fd-corner-stack-slot:has(> :not(:empty)) {
|
|
2741
|
+
margin-bottom: var(--s-sm);
|
|
2742
|
+
}
|
|
2743
|
+
/* ToastProvider's stack, in the corner stack's toasts slot. */
|
|
2744
|
+
.fd-toast-region {
|
|
2726
2745
|
display: flex;
|
|
2727
2746
|
flex-direction: column;
|
|
2728
2747
|
gap: var(--s-sm);
|
|
2729
|
-
max-width: calc(100vw - 2 * var(--s-lg));
|
|
2730
|
-
pointer-events: none;
|
|
2731
2748
|
}
|
|
2732
2749
|
.fd-toast-region > * {
|
|
2733
2750
|
pointer-events: auto;
|
|
2734
2751
|
}
|
|
2752
|
+
.fd-toast-region > .fd-toast {
|
|
2753
|
+
width: auto;
|
|
2754
|
+
}
|
|
2735
2755
|
|
|
2736
2756
|
/* ============ Flag / empty ============ */
|
|
2737
2757
|
.fd-flag {
|
|
@@ -3003,20 +3023,23 @@
|
|
|
3003
3023
|
}
|
|
3004
3024
|
|
|
3005
3025
|
/* ============ FilterBar (MP-243, SMS-50) ============ */
|
|
3006
|
-
/*
|
|
3007
|
-
(its own column, always first) beside the chips (a wrapping area of their own,
|
|
3008
|
-
left over), and an optional `actions` slot pinned to the right edge
|
|
3009
|
-
The columns top-align, so however many lines the chips wrap onto, the
|
|
3010
|
-
never move. The main column never wraps its two children under each
|
|
3011
|
-
the row is too narrow for main and actions together (main keeps a floor of
|
|
3026
|
+
/* At 30rem and wider the bar is two columns on one wrapping row: the MAIN column, which is the
|
|
3027
|
+
"Filter" trigger (its own column, always first) beside the chips (a wrapping area of their own,
|
|
3028
|
+
taking the room left over), and an optional `actions` slot pinned to the right edge
|
|
3029
|
+
(`margin-left: auto`). The columns top-align, so however many lines the chips wrap onto, the
|
|
3030
|
+
trigger and the actions never move. The main column never wraps its two children under each
|
|
3031
|
+
other; when the row is too narrow for main and actions together (main keeps a floor of
|
|
3012
3032
|
--filterbar-main-min), the actions wrap onto a row of their own and stay right-aligned.
|
|
3013
3033
|
|
|
3034
|
+
Below 30rem (a phone) there is no room for a column beside the button: the main column takes
|
|
3035
|
+
the whole row, the Filter button and Clear all share its first line, the chips wrap underneath
|
|
3036
|
+
on rows of their own, and the actions take the row below that. The switch is a container query
|
|
3037
|
+
on the bar itself, so it follows the room the bar is given, not the viewport.
|
|
3038
|
+
|
|
3014
3039
|
It is a block-level flex box that fills the row it is put in, and `min-width: 0` lets it
|
|
3015
|
-
shrink inside a flex parent instead of forcing that parent wider.
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
takes its width from its container, which is what makes wrapping, and the chips column's
|
|
3019
|
-
own width, well defined.) */
|
|
3040
|
+
shrink inside a flex parent instead of forcing that parent wider. A block-level flex box takes
|
|
3041
|
+
its width from its container, which is what makes wrapping, and the chips column's own width,
|
|
3042
|
+
well defined. */
|
|
3020
3043
|
.fd-filterbar {
|
|
3021
3044
|
--filterbar-main-min: 20rem;
|
|
3022
3045
|
/* The most a chip may take. A longer value is shortened in the middle (MiddleEllipsis). */
|
|
@@ -3027,6 +3050,7 @@
|
|
|
3027
3050
|
align-items: flex-start;
|
|
3028
3051
|
gap: var(--s-sm) var(--s-md);
|
|
3029
3052
|
min-width: 0;
|
|
3053
|
+
container: fd-filterbar / inline-size;
|
|
3030
3054
|
}
|
|
3031
3055
|
.fd-filterbar-main {
|
|
3032
3056
|
flex: 1 1 var(--filterbar-main-min);
|
|
@@ -3091,6 +3115,24 @@
|
|
|
3091
3115
|
gap: var(--s-sm) var(--s-md);
|
|
3092
3116
|
max-width: 100%;
|
|
3093
3117
|
}
|
|
3118
|
+
/* A phone-width bar: the main column is the whole row, stacked, with Filter and Clear all side
|
|
3119
|
+
by side on its first line and the chips wrapping underneath at up to their max width each.
|
|
3120
|
+
It follows the rules it overrides so the two never tie on source order. */
|
|
3121
|
+
@container fd-filterbar (width < 30rem) {
|
|
3122
|
+
.fd-filterbar-main {
|
|
3123
|
+
flex: 1 1 100%;
|
|
3124
|
+
flex-direction: column;
|
|
3125
|
+
align-items: stretch;
|
|
3126
|
+
}
|
|
3127
|
+
.fd-filterbar-trigger {
|
|
3128
|
+
flex-direction: row;
|
|
3129
|
+
flex-wrap: wrap;
|
|
3130
|
+
}
|
|
3131
|
+
.fd-filterbar-chips {
|
|
3132
|
+
flex: none;
|
|
3133
|
+
min-height: 0;
|
|
3134
|
+
}
|
|
3135
|
+
}
|
|
3094
3136
|
/* MP-282: seen live at 375px — a chip whose value is long (a full campaign name) painted
|
|
3095
3137
|
637px wide inside a 297px-wide bar instead of respecting it, because .fd-tag is `flex:
|
|
3096
3138
|
none; white-space: nowrap; max-width: none` with nothing to clamp it, and the ONLY thing
|
|
@@ -7488,16 +7530,9 @@ button.fd-erow-metric:focus-visible {
|
|
|
7488
7530
|
A stack of background-job cards (exports, syncs) and an ordered-phase display for the
|
|
7489
7531
|
same kind of job. Both are entirely props-driven — no timers here, only layout. */
|
|
7490
7532
|
.fd-job-tray{
|
|
7491
|
-
position:fixed;
|
|
7492
|
-
right:var(--s-16,16px);
|
|
7493
|
-
bottom:var(--s-16,16px);
|
|
7494
|
-
z-index:40;
|
|
7495
7533
|
display:flex;
|
|
7496
7534
|
flex-direction:column-reverse;
|
|
7497
7535
|
gap:10px;
|
|
7498
|
-
width:340px;
|
|
7499
|
-
max-width:calc(100vw - 32px);
|
|
7500
|
-
pointer-events:none;
|
|
7501
7536
|
}
|
|
7502
7537
|
.fd-job-tray>.fd-job-card{pointer-events:auto}
|
|
7503
7538
|
.fd-job-card{
|
|
@@ -7519,16 +7554,6 @@ button.fd-erow-metric:focus-visible {
|
|
|
7519
7554
|
.fd-job-card-done-note{display:block}
|
|
7520
7555
|
.fd-job-card-failed{display:flex;align-items:flex-start;gap:8px;color:var(--danger-text);font-size:var(--body-sm-size)}
|
|
7521
7556
|
.fd-job-card-failed .ph{flex:none;font-size:16px;margin-top:1px}
|
|
7522
|
-
@media (max-width:640px){
|
|
7523
|
-
.fd-job-tray{
|
|
7524
|
-
left:16px;
|
|
7525
|
-
right:16px;
|
|
7526
|
-
bottom:0;
|
|
7527
|
-
width:auto;
|
|
7528
|
-
max-width:none;
|
|
7529
|
-
padding-bottom:12px;
|
|
7530
|
-
}
|
|
7531
|
-
}
|
|
7532
7557
|
|
|
7533
7558
|
.fd-phased-progress{display:flex;flex-direction:column;gap:12px}
|
|
7534
7559
|
.fd-phase-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
|