@flytedan/flytebot-design-system 0.51.6 → 0.53.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/README.md +2 -2
- package/dist/index.cjs +55 -205
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +34 -54
- package/dist/index.d.ts +34 -54
- package/dist/index.js +54 -204
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/styles/components.css +145 -0
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flytedan/flytebot-design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.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",
|
|
7
7
|
"author": "flytedesk",
|
|
8
|
-
"homepage": "https://github.com/
|
|
8
|
+
"homepage": "https://github.com/Flytedesk/flytebot-design-system#readme",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"react",
|
|
11
11
|
"design-system",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
],
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": "git+ssh://git@github.com/
|
|
17
|
+
"url": "git+ssh://git@github.com/Flytedesk/flytebot-design-system.git"
|
|
18
18
|
},
|
|
19
19
|
"bugs": {
|
|
20
|
-
"url": "https://github.com/
|
|
20
|
+
"url": "https://github.com/Flytedesk/flytebot-design-system/issues"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"README.md",
|
package/styles/components.css
CHANGED
|
@@ -4232,6 +4232,8 @@
|
|
|
4232
4232
|
padding: 0;
|
|
4233
4233
|
display: flex;
|
|
4234
4234
|
flex-direction: column;
|
|
4235
|
+
/* Wider than the label-to-bar gap in .fd-funnel-btn, so each label groups with the bar beneath it. */
|
|
4236
|
+
gap: 14px;
|
|
4235
4237
|
}
|
|
4236
4238
|
/* See the identical rule on .fd-barlist-row: Tooltip's trigger wrapper shrink-wraps its
|
|
4237
4239
|
content by default, but here the trigger is the whole step row. */
|
|
@@ -8003,3 +8005,146 @@ button.fd-erow-metric:focus-visible {
|
|
|
8003
8005
|
display: none;
|
|
8004
8006
|
}
|
|
8005
8007
|
}
|
|
8008
|
+
|
|
8009
|
+
/* ============ SessionScreen (MP-288) ============
|
|
8010
|
+
The one full-viewport screen every flytedesk ID app shows while its session is not
|
|
8011
|
+
usable (signing in, recovering an expired session, signing out, reconnecting, or a
|
|
8012
|
+
failure with a Try again). Permanently dark backdrop, like the sign-in page it replaces; the
|
|
8013
|
+
card follows the active theme, and the wordmark is forced to its white variant (see
|
|
8014
|
+
SessionScreen.tsx) so it reads against the backdrop in either.
|
|
8015
|
+
|
|
8016
|
+
`--fd-session-screen-min-height` is the one sizing hook: unset, the screen fills the
|
|
8017
|
+
viewport; a docs preview (or any framed embed) sets it on an ancestor to a fixed height.
|
|
8018
|
+
dvh is applied only where supported — a var() holding an unsupported unit is invalid at
|
|
8019
|
+
computed-value time and would drop the declaration instead of falling back. */
|
|
8020
|
+
.fd-session-screen {
|
|
8021
|
+
position: relative;
|
|
8022
|
+
display: grid;
|
|
8023
|
+
place-items: center;
|
|
8024
|
+
min-height: var(--fd-session-screen-min-height, 100vh);
|
|
8025
|
+
padding: var(--s-24) var(--s-16);
|
|
8026
|
+
box-sizing: border-box;
|
|
8027
|
+
overflow: hidden;
|
|
8028
|
+
background:
|
|
8029
|
+
radial-gradient(circle at 15% 15%, var(--blue-700) 0%, transparent 45%),
|
|
8030
|
+
radial-gradient(circle at 85% 85%, var(--blue-600) 0%, transparent 40%),
|
|
8031
|
+
linear-gradient(160deg, var(--navy) 0%, var(--blue-950) 55%, var(--blue-900) 100%);
|
|
8032
|
+
}
|
|
8033
|
+
@supports (min-height: 100dvh) {
|
|
8034
|
+
.fd-session-screen {
|
|
8035
|
+
min-height: var(--fd-session-screen-min-height, 100dvh);
|
|
8036
|
+
}
|
|
8037
|
+
}
|
|
8038
|
+
.fd-session-screen::before {
|
|
8039
|
+
content: "";
|
|
8040
|
+
position: absolute;
|
|
8041
|
+
inset: 0;
|
|
8042
|
+
background-image:
|
|
8043
|
+
linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
|
|
8044
|
+
linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
|
|
8045
|
+
background-size: 48px 48px;
|
|
8046
|
+
mask-image: radial-gradient(circle at 50% 40%, black, transparent 70%);
|
|
8047
|
+
pointer-events: none;
|
|
8048
|
+
}
|
|
8049
|
+
.fd-session-screen-inner {
|
|
8050
|
+
position: relative;
|
|
8051
|
+
width: 100%;
|
|
8052
|
+
max-width: 408px;
|
|
8053
|
+
min-width: 0;
|
|
8054
|
+
display: flex;
|
|
8055
|
+
flex-direction: column;
|
|
8056
|
+
align-items: center;
|
|
8057
|
+
}
|
|
8058
|
+
.fd-session-screen-mark {
|
|
8059
|
+
margin-bottom: var(--s-32);
|
|
8060
|
+
}
|
|
8061
|
+
.fd-session-screen-frame {
|
|
8062
|
+
width: 100%;
|
|
8063
|
+
min-width: 0;
|
|
8064
|
+
border-radius: var(--r-2xl);
|
|
8065
|
+
overflow: hidden;
|
|
8066
|
+
box-shadow: 0 24px 64px -12px rgba(2, 8, 20, 0.55), 0 2px 8px rgba(2, 8, 20, 0.3);
|
|
8067
|
+
}
|
|
8068
|
+
.fd-session-screen-stripe {
|
|
8069
|
+
height: 4px;
|
|
8070
|
+
background: linear-gradient(90deg, var(--blue-400), var(--blue-600), var(--navy));
|
|
8071
|
+
}
|
|
8072
|
+
.fd-session-screen-body {
|
|
8073
|
+
display: flex;
|
|
8074
|
+
flex-direction: column;
|
|
8075
|
+
align-items: center;
|
|
8076
|
+
padding: var(--s-8) 0;
|
|
8077
|
+
text-align: center;
|
|
8078
|
+
min-width: 0;
|
|
8079
|
+
}
|
|
8080
|
+
.fd-session-screen-body > * {
|
|
8081
|
+
min-width: 0;
|
|
8082
|
+
max-width: 100%;
|
|
8083
|
+
}
|
|
8084
|
+
.fd-session-screen-title {
|
|
8085
|
+
margin: 0;
|
|
8086
|
+
color: var(--text);
|
|
8087
|
+
overflow-wrap: anywhere;
|
|
8088
|
+
}
|
|
8089
|
+
/* Focus lands here programmatically (see SessionScreen.tsx); it is not a control, so it
|
|
8090
|
+
draws no ring of its own. */
|
|
8091
|
+
.fd-session-screen .fd-session-screen-title:focus-visible {
|
|
8092
|
+
box-shadow: none;
|
|
8093
|
+
}
|
|
8094
|
+
/* The status region stays mounted (empty) on a failure so a retry is announced into an
|
|
8095
|
+
existing live region; only a region with content takes space, so the body needs no
|
|
8096
|
+
flex gap that an empty region would double. */
|
|
8097
|
+
.fd-session-screen-status {
|
|
8098
|
+
display: flex;
|
|
8099
|
+
flex-direction: column;
|
|
8100
|
+
align-items: center;
|
|
8101
|
+
gap: var(--s-12);
|
|
8102
|
+
}
|
|
8103
|
+
.fd-session-screen-status:not(:empty) {
|
|
8104
|
+
margin-top: var(--s-20);
|
|
8105
|
+
}
|
|
8106
|
+
.fd-session-screen-spinner {
|
|
8107
|
+
color: var(--brand);
|
|
8108
|
+
}
|
|
8109
|
+
.fd-session-screen-message {
|
|
8110
|
+
margin: 0;
|
|
8111
|
+
min-height: 1.5em;
|
|
8112
|
+
color: var(--text-2);
|
|
8113
|
+
}
|
|
8114
|
+
.fd-session-screen-failure {
|
|
8115
|
+
display: flex;
|
|
8116
|
+
flex-direction: column;
|
|
8117
|
+
gap: var(--s-16);
|
|
8118
|
+
margin-top: var(--s-20);
|
|
8119
|
+
width: 100%;
|
|
8120
|
+
text-align: left;
|
|
8121
|
+
overflow-wrap: anywhere;
|
|
8122
|
+
}
|
|
8123
|
+
/* Phone: a smaller wordmark and a tighter gutter so the card never crowds the edge. */
|
|
8124
|
+
@media (max-width: 479px) {
|
|
8125
|
+
.fd-session-screen {
|
|
8126
|
+
padding: var(--s-16) var(--s-12);
|
|
8127
|
+
}
|
|
8128
|
+
.fd-session-screen-mark {
|
|
8129
|
+
margin-bottom: var(--s-24);
|
|
8130
|
+
}
|
|
8131
|
+
.fd-session-screen .fd-brand-mark img {
|
|
8132
|
+
height: 26px;
|
|
8133
|
+
}
|
|
8134
|
+
}
|
|
8135
|
+
/* Tablet and up: more air around the card. */
|
|
8136
|
+
@media (min-width: 768px) {
|
|
8137
|
+
.fd-session-screen {
|
|
8138
|
+
padding: var(--s-48) var(--s-24);
|
|
8139
|
+
}
|
|
8140
|
+
.fd-session-screen-inner {
|
|
8141
|
+
max-width: 440px;
|
|
8142
|
+
}
|
|
8143
|
+
}
|
|
8144
|
+
/* Reduced motion: the rotating ring becomes a slow pulse (same as the other indeterminate
|
|
8145
|
+
indicators above); [data-motion="reduce"] already stops every animation outright. */
|
|
8146
|
+
@media (prefers-reduced-motion: reduce) {
|
|
8147
|
+
.fd-spinner.fd-session-screen-spinner {
|
|
8148
|
+
animation: fd-pulse 1.6s ease-in-out infinite;
|
|
8149
|
+
}
|
|
8150
|
+
}
|