@crewlethq/ui 0.2.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/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/Accordion-NIMJQIOI.css +88 -0
- package/dist/AppShell-ZW3NSFBP.css +51 -0
- package/dist/Avatar-V6NG6Q45.css +67 -0
- package/dist/Button-XGCTXXYP.css +174 -0
- package/dist/Callout-LEGDIMAM.css +52 -0
- package/dist/Card-BOZGBML7.css +86 -0
- package/dist/Checkbox-OCUICIIZ.css +58 -0
- package/dist/CodeBlock-IEMBNIQC.css +90 -0
- package/dist/Container-LTKBA2FW.css +21 -0
- package/dist/Copyable-IB57OTHZ.css +123 -0
- package/dist/DataTable-3GALZUW2.css +1593 -0
- package/dist/DateTimePicker-NMSSGVPK.css +312 -0
- package/dist/Eyebrow-AVBORAS2.css +30 -0
- package/dist/IconButton-GB4PJDG2.css +82 -0
- package/dist/ImageUpload-3HQDF2KC.css +158 -0
- package/dist/Input-ZHUTN7CU.css +210 -0
- package/dist/Kbd-Q77CDZY7.css +23 -0
- package/dist/Modal-FJVG66S4.css +138 -0
- package/dist/Popover-FUFULUE2.css +123 -0
- package/dist/PricingCard-NKYV3JHA.css +238 -0
- package/dist/Section-665ZIPG6.css +20 -0
- package/dist/Select-GPRF7PRB.css +294 -0
- package/dist/Skeleton-3WEFLRDN.css +378 -0
- package/dist/StatCard-RTJIVTRB.css +50 -0
- package/dist/Table-AR3TRY2E.css +89 -0
- package/dist/Tabs-XZ4JIH3E.css +153 -0
- package/dist/Tag-R5QDJLYJ.css +163 -0
- package/dist/TimeWindowPicker-L3G5Q7UT.css +629 -0
- package/dist/Toaster-2O65VOR4.css +264 -0
- package/dist/index.d.ts +1217 -0
- package/dist/index.js +4518 -0
- package/dist/styles.css +5842 -0
- package/package.json +58 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Form primitives, Input / Textarea / Label / FormField / FormRow.
|
|
3
|
+
*
|
|
4
|
+
* Two sizes: md (14px text, 10/14px padding) for form rows, and sm
|
|
5
|
+
* (13px text, 6/10px padding) for dense toolbars and inline filters.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.crewlet-input {
|
|
9
|
+
position: relative;
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
width: 100%;
|
|
13
|
+
background-color: var(--color-surface-subtle);
|
|
14
|
+
border: 1px solid var(--color-border-default);
|
|
15
|
+
border-radius: 8px;
|
|
16
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.crewlet-input:focus-within {
|
|
20
|
+
border-color: var(--color-brand-accent);
|
|
21
|
+
box-shadow: var(--shadow-focus, 0 0 0 3px rgba(84, 105, 212, 0.15));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.crewlet-input.is-error {
|
|
25
|
+
border-color: var(--color-feedback-danger);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.crewlet-input.is-error:focus-within {
|
|
29
|
+
box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.crewlet-input.is-disabled {
|
|
33
|
+
opacity: 0.6;
|
|
34
|
+
cursor: not-allowed;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.crewlet-input__control {
|
|
38
|
+
flex: 1;
|
|
39
|
+
min-width: 0;
|
|
40
|
+
background: transparent;
|
|
41
|
+
border: none;
|
|
42
|
+
outline: none;
|
|
43
|
+
font-family: inherit;
|
|
44
|
+
color: var(--color-text-primary);
|
|
45
|
+
font-size: 14px;
|
|
46
|
+
line-height: 1.5;
|
|
47
|
+
padding: 10px 14px;
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
width: 100%;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.crewlet-input__control::placeholder {
|
|
53
|
+
color: var(--color-text-secondary);
|
|
54
|
+
opacity: 0.6;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.crewlet-input__control:disabled {
|
|
58
|
+
cursor: not-allowed;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.crewlet-input--sm .crewlet-input__control { padding: 6px 10px; font-size: 13px; }
|
|
62
|
+
.crewlet-input--md .crewlet-input__control { padding: 10px 14px; font-size: 14px; }
|
|
63
|
+
|
|
64
|
+
/* Trailing content sits at the field's right edge, out of the pointer's way
|
|
65
|
+
so a click on it still lands in the field. */
|
|
66
|
+
.crewlet-input__trailing {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
flex: none;
|
|
70
|
+
padding-right: 10px;
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.crewlet-input--sm .crewlet-input__trailing { padding-right: 8px; }
|
|
75
|
+
|
|
76
|
+
/* ── Textarea ────────────────────────────────────────────────────────── */
|
|
77
|
+
/* A textarea with trailing content is wrapped so the content can sit inside
|
|
78
|
+
its top right corner; the textarea itself is unchanged. */
|
|
79
|
+
.crewlet-textarea-shell {
|
|
80
|
+
position: relative;
|
|
81
|
+
display: block;
|
|
82
|
+
width: 100%;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.crewlet-textarea-shell .crewlet-textarea {
|
|
86
|
+
padding-right: 72px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.crewlet-textarea-shell .crewlet-input__trailing {
|
|
90
|
+
position: absolute;
|
|
91
|
+
top: 9px;
|
|
92
|
+
right: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.crewlet-textarea {
|
|
96
|
+
width: 100%;
|
|
97
|
+
padding: 10px 14px;
|
|
98
|
+
font-family: inherit;
|
|
99
|
+
font-size: 14px;
|
|
100
|
+
line-height: 1.5;
|
|
101
|
+
color: var(--color-text-primary);
|
|
102
|
+
background-color: var(--color-surface-subtle);
|
|
103
|
+
border: 1px solid var(--color-border-default);
|
|
104
|
+
border-radius: 8px;
|
|
105
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
106
|
+
box-sizing: border-box;
|
|
107
|
+
outline: none;
|
|
108
|
+
resize: vertical;
|
|
109
|
+
min-height: 88px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.crewlet-textarea:focus {
|
|
113
|
+
border-color: var(--color-brand-accent);
|
|
114
|
+
box-shadow: var(--shadow-focus, 0 0 0 3px rgba(84, 105, 212, 0.15));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.crewlet-textarea.is-error {
|
|
118
|
+
border-color: var(--color-feedback-danger);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.crewlet-textarea.is-error:focus {
|
|
122
|
+
box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.2);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.crewlet-textarea.is-disabled {
|
|
126
|
+
opacity: 0.6;
|
|
127
|
+
cursor: not-allowed;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.crewlet-textarea.is-auto-resize {
|
|
131
|
+
resize: none;
|
|
132
|
+
overflow: hidden;
|
|
133
|
+
min-height: 40px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.crewlet-textarea::placeholder {
|
|
137
|
+
color: var(--color-text-secondary);
|
|
138
|
+
opacity: 0.6;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* ── Label ───────────────────────────────────────────────────────────── */
|
|
142
|
+
.crewlet-label {
|
|
143
|
+
display: inline-flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
gap: 4px;
|
|
146
|
+
font-size: 13px;
|
|
147
|
+
font-weight: 600;
|
|
148
|
+
color: var(--color-text-secondary);
|
|
149
|
+
letter-spacing: -0.005em;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.crewlet-label--with-action {
|
|
153
|
+
display: flex;
|
|
154
|
+
justify-content: flex-start;
|
|
155
|
+
align-items: center;
|
|
156
|
+
gap: 6px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.crewlet-label__text {
|
|
160
|
+
display: inline-flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
gap: 4px;
|
|
163
|
+
font-size: 13px;
|
|
164
|
+
font-weight: 600;
|
|
165
|
+
color: var(--color-text-secondary);
|
|
166
|
+
letter-spacing: -0.005em;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.crewlet-label__required {
|
|
170
|
+
color: var(--color-feedback-danger, #e5484d);
|
|
171
|
+
font-weight: 700;
|
|
172
|
+
margin-left: 2px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.crewlet-label__action {
|
|
176
|
+
display: inline-flex;
|
|
177
|
+
align-items: center;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* ── FormField ───────────────────────────────────────────────────────── */
|
|
181
|
+
.crewlet-form-field {
|
|
182
|
+
display: flex;
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
gap: 8px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.crewlet-form-field__helper {
|
|
188
|
+
font-size: 12px;
|
|
189
|
+
color: var(--color-text-tertiary);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.crewlet-form-field__error {
|
|
193
|
+
font-size: 12px;
|
|
194
|
+
color: var(--color-feedback-danger, #e5484d);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* ── FormRow ─────────────────────────────────────────────────────────── */
|
|
198
|
+
.crewlet-form-row {
|
|
199
|
+
display: grid;
|
|
200
|
+
gap: 16px;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.crewlet-form-row--1 { grid-template-columns: 1fr; }
|
|
204
|
+
.crewlet-form-row--2 { grid-template-columns: repeat(2, 1fr); }
|
|
205
|
+
.crewlet-form-row--3 { grid-template-columns: repeat(3, 1fr); }
|
|
206
|
+
|
|
207
|
+
@media (max-width: 768px) {
|
|
208
|
+
.crewlet-form-row--2,
|
|
209
|
+
.crewlet-form-row--3 { grid-template-columns: 1fr; }
|
|
210
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* A keycap: the key's name on a small raised tile. */
|
|
2
|
+
.crewlet-kbd {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 3px;
|
|
6
|
+
min-width: 18px;
|
|
7
|
+
padding: 1px 6px;
|
|
8
|
+
border-radius: 5px;
|
|
9
|
+
border: 1px solid var(--color-border-default);
|
|
10
|
+
border-bottom-width: 2px;
|
|
11
|
+
background: var(--color-surface-subtle);
|
|
12
|
+
color: var(--color-text-secondary);
|
|
13
|
+
font-family: inherit;
|
|
14
|
+
font-size: 11px;
|
|
15
|
+
font-weight: 500;
|
|
16
|
+
line-height: 1.4;
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
vertical-align: middle;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.crewlet-kbd--subtle {
|
|
22
|
+
opacity: 0.7;
|
|
23
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Modal, portal-rendered dialog with backdrop, header, body, footer.
|
|
3
|
+
*
|
|
4
|
+
* Sizes, padding, radius, shadow and animation timings are declared
|
|
5
|
+
* here once, so every dialog (Modal, ConfirmModal, the DataTable
|
|
6
|
+
* settings dialog) shares one frame.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.crewlet-modal-overlay {
|
|
10
|
+
position: fixed;
|
|
11
|
+
inset: 0;
|
|
12
|
+
background: rgba(0, 0, 0, 0.6);
|
|
13
|
+
backdrop-filter: blur(6px);
|
|
14
|
+
-webkit-backdrop-filter: blur(6px);
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
/* The stacking order for everything that escapes the page flow (modal,
|
|
19
|
+
popover, toast) is one scale in @crewlethq/tokens (zIndex), because
|
|
20
|
+
the relationship between the layers is the whole point; numbering
|
|
21
|
+
each component on its own is how they came to disagree. */
|
|
22
|
+
z-index: var(--z-index-modal, 9999);
|
|
23
|
+
padding: 24px;
|
|
24
|
+
animation: crewlet-modal-fade-in 0.15s ease-out;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.crewlet-modal {
|
|
28
|
+
width: 100%;
|
|
29
|
+
background: var(--color-surface-elevated, #131419);
|
|
30
|
+
color: var(--color-text-primary);
|
|
31
|
+
border: 1px solid var(--color-border-default);
|
|
32
|
+
border-radius: 14px;
|
|
33
|
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
max-height: calc(100vh - 48px);
|
|
37
|
+
animation: crewlet-modal-pop 0.18s ease-out;
|
|
38
|
+
outline: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.crewlet-modal--sm { max-width: 480px; }
|
|
42
|
+
.crewlet-modal--md { max-width: 560px; }
|
|
43
|
+
.crewlet-modal--lg { max-width: 720px; }
|
|
44
|
+
.crewlet-modal--xl { max-width: 1080px; }
|
|
45
|
+
|
|
46
|
+
.crewlet-modal__header {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: flex-start;
|
|
49
|
+
justify-content: space-between;
|
|
50
|
+
gap: 12px;
|
|
51
|
+
padding: 18px 22px 14px;
|
|
52
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.crewlet-modal__heading {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
gap: 4px;
|
|
59
|
+
min-width: 0;
|
|
60
|
+
flex: 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.crewlet-modal__title {
|
|
64
|
+
font-size: 16px;
|
|
65
|
+
font-weight: 600;
|
|
66
|
+
margin: 0;
|
|
67
|
+
color: var(--color-text-primary);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.crewlet-modal__subtitle {
|
|
71
|
+
font-size: 13px;
|
|
72
|
+
color: var(--color-text-secondary);
|
|
73
|
+
margin: 0;
|
|
74
|
+
line-height: 1.4;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.crewlet-modal__close {
|
|
78
|
+
background: none;
|
|
79
|
+
border: none;
|
|
80
|
+
color: var(--color-text-secondary);
|
|
81
|
+
cursor: pointer;
|
|
82
|
+
padding: 4px;
|
|
83
|
+
display: inline-flex;
|
|
84
|
+
align-items: center;
|
|
85
|
+
border-radius: 6px;
|
|
86
|
+
transition: background 0.15s, color 0.15s;
|
|
87
|
+
flex-shrink: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.crewlet-modal__close:hover {
|
|
91
|
+
background: var(--color-surface-subtle);
|
|
92
|
+
color: var(--color-text-primary);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.crewlet-modal__body {
|
|
96
|
+
padding: 18px 22px;
|
|
97
|
+
overflow-y: auto;
|
|
98
|
+
/* Set here rather than inherited. A dialog is read at a glance and
|
|
99
|
+
sits over a page whose base size it should not borrow, which is
|
|
100
|
+
how the same sentence came out larger in one product than another. */
|
|
101
|
+
font-size: 14px;
|
|
102
|
+
line-height: 1.55;
|
|
103
|
+
color: var(--color-text-secondary);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Paragraphs stack without the browser's default margins fighting the
|
|
107
|
+
body padding, which is what left dialogs uneven top and bottom. */
|
|
108
|
+
.crewlet-modal__body > p {
|
|
109
|
+
margin: 0 0 12px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.crewlet-modal__body > p:last-child {
|
|
113
|
+
margin-bottom: 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.crewlet-modal__footer {
|
|
117
|
+
display: flex;
|
|
118
|
+
justify-content: flex-end;
|
|
119
|
+
gap: 8px;
|
|
120
|
+
padding: 14px 22px 18px;
|
|
121
|
+
border-top: 1px solid var(--color-border-default);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.crewlet-modal__message {
|
|
125
|
+
margin: 0;
|
|
126
|
+
color: var(--color-text-secondary);
|
|
127
|
+
line-height: 1.5;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@keyframes crewlet-modal-fade-in {
|
|
131
|
+
from { opacity: 0; }
|
|
132
|
+
to { opacity: 1; }
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@keyframes crewlet-modal-pop {
|
|
136
|
+
from { opacity: 0; transform: translateY(6px) scale(0.98); }
|
|
137
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
138
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/* Generic popover panel. Portaled to <body> so it can escape any
|
|
2
|
+
ancestor's overflow:hidden. Colours come from the canonical
|
|
3
|
+
@crewlethq/tokens variables, so the chrome matches whichever palette
|
|
4
|
+
is active. The panel mounts under <body>, so an app that rebinds
|
|
5
|
+
the accent tokens declares the override on <body> or <html>. */
|
|
6
|
+
|
|
7
|
+
.crewlet-popover {
|
|
8
|
+
position: absolute;
|
|
9
|
+
z-index: var(--z-index-popover, 10000);
|
|
10
|
+
background: var(--color-surface-subtle, #15171c);
|
|
11
|
+
border: 1px solid var(--color-border-default, rgba(255, 255, 255, 0.1));
|
|
12
|
+
border-radius: 12px;
|
|
13
|
+
box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
|
|
14
|
+
outline: none;
|
|
15
|
+
min-width: 200px;
|
|
16
|
+
max-width: 380px;
|
|
17
|
+
max-height: min(360px, 60vh);
|
|
18
|
+
overflow-y: auto;
|
|
19
|
+
animation: crewlet-popover-in 120ms ease-out;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.crewlet-popover--bottom {
|
|
23
|
+
transform-origin: top left;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.crewlet-popover--top {
|
|
27
|
+
transform-origin: bottom left;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@keyframes crewlet-popover-in {
|
|
31
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
32
|
+
to { opacity: 1; transform: translateY(0); }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Menu list inside a popover. Option rows look identical to the
|
|
36
|
+
ones in Select so the visual register stays consistent. */
|
|
37
|
+
.crewlet-popover__list {
|
|
38
|
+
list-style: none;
|
|
39
|
+
margin: 0;
|
|
40
|
+
padding: 6px;
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: 1px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.crewlet-popover__item {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 8px;
|
|
50
|
+
padding: 8px 10px;
|
|
51
|
+
border-radius: 6px;
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
background: transparent;
|
|
54
|
+
border: none;
|
|
55
|
+
color: var(--color-text-primary, #f5f5f7);
|
|
56
|
+
font-size: 13px;
|
|
57
|
+
font-family: inherit;
|
|
58
|
+
text-align: left;
|
|
59
|
+
width: 100%;
|
|
60
|
+
transition: background 0.1s ease, color 0.1s ease;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.crewlet-popover__item:hover,
|
|
64
|
+
.crewlet-popover__item:focus-visible {
|
|
65
|
+
background: rgba(var(--color-brand-accent-rgb, 84, 105, 212), 0.14);
|
|
66
|
+
color: var(--color-brand-accent, #5469d4);
|
|
67
|
+
outline: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.crewlet-popover__item.is-disabled {
|
|
71
|
+
opacity: 0.5;
|
|
72
|
+
cursor: not-allowed;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.crewlet-popover__item.is-active {
|
|
76
|
+
color: var(--crewlet-select-accent, var(--color-brand-accent, #5469d4));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.crewlet-popover__item-icon {
|
|
80
|
+
font-size: 16px;
|
|
81
|
+
flex-shrink: 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.crewlet-popover__item-spacer {
|
|
85
|
+
flex: 1;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.crewlet-popover__item-trail {
|
|
89
|
+
font-size: 11px;
|
|
90
|
+
color: var(--color-text-tertiary, rgba(245, 245, 247, 0.55));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Section headings inside a multi-section popover, for example a
|
|
94
|
+
"Filters" heading above a group of items. */
|
|
95
|
+
.crewlet-popover__heading {
|
|
96
|
+
font-size: 11px;
|
|
97
|
+
letter-spacing: 0.06em;
|
|
98
|
+
text-transform: uppercase;
|
|
99
|
+
color: var(--color-text-tertiary, rgba(245, 245, 247, 0.55));
|
|
100
|
+
padding: 10px 12px 4px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.crewlet-popover__divider {
|
|
104
|
+
height: 1px;
|
|
105
|
+
background: var(--color-border-default, rgba(255, 255, 255, 0.08));
|
|
106
|
+
margin: 4px 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* Inline editor: a popover that hosts a single Select or input while
|
|
110
|
+
a value is edited in place. Sized snug around the control. */
|
|
111
|
+
.crewlet-popover__editor {
|
|
112
|
+
padding: 10px;
|
|
113
|
+
min-width: 240px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.crewlet-popover__editor-label {
|
|
117
|
+
font-size: 11px;
|
|
118
|
+
letter-spacing: 0.06em;
|
|
119
|
+
text-transform: uppercase;
|
|
120
|
+
color: var(--color-text-tertiary, rgba(245, 245, 247, 0.55));
|
|
121
|
+
margin-bottom: 6px;
|
|
122
|
+
display: block;
|
|
123
|
+
}
|