@flytedan/flytebot-design-system 0.23.0 → 0.25.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flytedan/flytebot-design-system",
3
- "version": "0.23.0",
3
+ "version": "0.25.0",
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",
@@ -6929,6 +6929,72 @@ button.fd-erow-metric:focus-visible {
6929
6929
  .fd-arrived{animation:none}
6930
6930
  }
6931
6931
 
6932
+ /* ============ JobTray / PhasedProgress (MP-211) ============
6933
+ A stack of background-job cards (exports, syncs) and an ordered-phase display for the
6934
+ same kind of job. Both are entirely props-driven — no timers here, only layout. */
6935
+ .fd-job-tray{
6936
+ position:fixed;
6937
+ right:var(--s-16,16px);
6938
+ bottom:var(--s-16,16px);
6939
+ z-index:40;
6940
+ display:flex;
6941
+ flex-direction:column-reverse;
6942
+ gap:10px;
6943
+ width:340px;
6944
+ max-width:calc(100vw - 32px);
6945
+ pointer-events:none;
6946
+ }
6947
+ .fd-job-tray>.fd-job-card{pointer-events:auto}
6948
+ .fd-job-card{
6949
+ display:flex;
6950
+ flex-direction:column;
6951
+ gap:8px;
6952
+ background:var(--surface);
6953
+ border:1px solid var(--border);
6954
+ border-radius:var(--r-md);
6955
+ box-shadow:var(--e-3);
6956
+ padding:14px 16px;
6957
+ animation:fd-rise var(--dur-slow) var(--ease-out) both;
6958
+ }
6959
+ .fd-job-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
6960
+ .fd-job-card-title{font-weight:var(--w-semibold);color:var(--text);font-size:var(--body-size)}
6961
+ .fd-job-card-note{display:block}
6962
+ .fd-job-card-progress{display:flex;flex-direction:column;gap:4px}
6963
+ .fd-job-card-done{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
6964
+ .fd-job-card-done-note{display:block}
6965
+ .fd-job-card-failed{display:flex;align-items:flex-start;gap:8px;color:var(--danger-text);font-size:var(--body-sm-size)}
6966
+ .fd-job-card-failed .ph{flex:none;font-size:16px;margin-top:1px}
6967
+ @media (max-width:640px){
6968
+ .fd-job-tray{
6969
+ left:16px;
6970
+ right:16px;
6971
+ bottom:0;
6972
+ width:auto;
6973
+ max-width:none;
6974
+ padding-bottom:12px;
6975
+ }
6976
+ }
6977
+
6978
+ .fd-phased-progress{display:flex;flex-direction:column;gap:12px}
6979
+ .fd-phase-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
6980
+ .fd-phase{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:var(--body-size)}
6981
+ .fd-phase .ph{flex:none;font-size:18px}
6982
+ .fd-phase-label{flex:1;min-width:0}
6983
+ .fd-phase-count{white-space:nowrap}
6984
+ .fd-phase-pending{color:var(--text-muted)}
6985
+ .fd-phase-active{color:var(--text)}
6986
+ .fd-phase-active .ph{color:var(--brand)}
6987
+ .fd-phase-done{color:var(--text)}
6988
+ .fd-phase-done .ph{color:var(--ok-solid)}
6989
+ .fd-phase-failed{color:var(--danger-text)}
6990
+ .fd-phase-failed .ph{color:var(--danger-solid)}
6991
+ .fd-phase-spin{animation:fd-spin 900ms linear infinite}
6992
+ .fd-phase-summary{font-size:var(--body-sm-size);color:var(--text-2)}
6993
+ @media (prefers-reduced-motion:reduce){
6994
+ .fd-phase-spin{animation:fd-pulse 1.6s ease-in-out infinite}
6995
+ .fd-job-card{animation:none}
6996
+ }
6997
+
6932
6998
  /* FileViewer (MP-130): a preview pane plus an optional host-supplied side panel — the
6933
6999
  companion notes/metadata surface the app composes in, generic here as `sidePanel`.
6934
7000
  Two regions, one scroll region each (R-8): `.fd-fv-body` never scrolls, each pane owns