@crisp-ui-kit/crisp 0.57.2 → 0.57.4
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/assigneepicker.css +13 -0
- package/dist/assigneepicker.d.ts +7 -0
- package/dist/assigneepicker.layered.css +15 -0
- package/dist/button.css +3 -0
- package/dist/button.d.ts +2 -2
- package/dist/button.layered.css +3 -0
- package/dist/chip.css +1 -1
- package/dist/chip.layered.css +1 -1
- package/dist/cjs/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/cjs/components/button/button.recipe.js +33 -0
- package/dist/cjs/components/chip/chip.recipe.js +3 -1
- package/dist/cjs/components/datatable/datatable.js +6 -3
- package/dist/cjs/components/datatable/datatable.recipe.js +45 -6
- package/dist/cjs/components/datepickerfield/datepickerfield.js +2 -2
- package/dist/cjs/components/datepickerfield/datepickerfield.recipe.js +16 -3
- package/dist/cjs/components/menu/menu.js +65 -9
- package/dist/cjs/components/multiselect/multiselect.js +3 -0
- package/dist/cjs/components/multiselect/multiselect.recipe.js +18 -0
- package/dist/cjs/components/select/select.js +2 -2
- package/dist/cjs/components/select/select.recipe.js +19 -0
- package/dist/cjs/components/table/table.recipe.js +7 -1
- package/dist/cjs/core/floating-portal.js +7 -4
- package/dist/cjs/core/index.js +2 -1
- package/dist/cjs/core/place-floating.js +38 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/product/assigneepicker/assigneepicker.js +127 -0
- package/dist/cjs/product/assigneepicker/assigneepicker.recipe.js +36 -0
- package/dist/cjs/product/assigneepicker/index.js +7 -0
- package/dist/cjs/product/inbox/inbox.js +11 -3
- package/dist/cjs/product/notesgallery/index.js +7 -0
- package/dist/cjs/product/notesgallery/notesgallery.js +80 -0
- package/dist/cjs/product/notesgallery/notesgallery.recipe.js +46 -0
- package/dist/cjs/product/objectpagemenu/index.js +17 -0
- package/dist/cjs/product/objectpagemenu/objectpagemenu.js +26 -0
- package/dist/cjs/product/objectpagemenu/objectpagemenu.recipe.js +30 -0
- package/dist/cjs/product/objectsettings/objectsettings.js +107 -14
- package/dist/cjs/product/recordpage/index.js +2 -1
- package/dist/cjs/product/recordpage/recordpage.js +112 -7
- package/dist/cjs/product/recordpage/recordpage.recipe.js +63 -0
- package/dist/cjs/product/recordpicker/index.js +7 -0
- package/dist/cjs/product/recordpicker/recordpicker.js +100 -0
- package/dist/cjs/product/recordpicker/recordpicker.recipe.js +36 -0
- package/dist/cjs/product/savedviews/index.js +2 -1
- package/dist/cjs/product/savedviews/savedviews.js +22 -0
- package/dist/cjs/product/savedviews/savedviews.recipe.js +47 -0
- package/dist/cjs/product/share/index.js +7 -0
- package/dist/cjs/product/share/share.js +179 -0
- package/dist/cjs/product/share/share.recipe.js +114 -0
- package/dist/cjs/product/shortcutssheet/index.js +17 -0
- package/dist/cjs/product/shortcutssheet/shortcutssheet.js +125 -0
- package/dist/cjs/product/shortcutssheet/shortcutssheet.recipe.js +50 -0
- package/dist/cjs/product/taskeditpopover/index.js +7 -0
- package/dist/cjs/product/taskeditpopover/taskeditpopover.js +159 -0
- package/dist/cjs/product/taskeditpopover/taskeditpopover.recipe.js +68 -0
- package/dist/cjs/product/workspaceswitchermenu/index.js +17 -0
- package/dist/cjs/product/workspaceswitchermenu/workspaceswitchermenu.js +38 -0
- package/dist/cjs/product/workspaceswitchermenu/workspaceswitchermenu.recipe.js +34 -0
- package/dist/cjs/tokens/palette.js +27 -0
- package/dist/cjs/tokens/semantic.js +20 -0
- package/dist/datatable.css +50 -11
- package/dist/datatable.layered.css +50 -11
- package/dist/datepickerfield.css +8 -2
- package/dist/datepickerfield.d.ts +2 -2
- package/dist/datepickerfield.layered.css +8 -2
- package/dist/esm/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/esm/components/button/button.recipe.js +33 -0
- package/dist/esm/components/chip/chip.recipe.js +3 -1
- package/dist/esm/components/datatable/datatable.js +6 -3
- package/dist/esm/components/datatable/datatable.recipe.js +45 -6
- package/dist/esm/components/datepickerfield/datepickerfield.js +2 -2
- package/dist/esm/components/datepickerfield/datepickerfield.recipe.js +16 -3
- package/dist/esm/components/menu/menu.js +64 -8
- package/dist/esm/components/multiselect/multiselect.js +3 -0
- package/dist/esm/components/multiselect/multiselect.recipe.js +18 -0
- package/dist/esm/components/select/select.js +2 -2
- package/dist/esm/components/select/select.recipe.js +19 -0
- package/dist/esm/components/table/table.recipe.js +7 -1
- package/dist/esm/core/floating-portal.js +7 -4
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/place-floating.js +37 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/product/assigneepicker/assigneepicker.js +91 -0
- package/dist/esm/product/assigneepicker/assigneepicker.recipe.js +33 -0
- package/dist/esm/product/assigneepicker/index.js +2 -0
- package/dist/esm/product/inbox/inbox.js +11 -3
- package/dist/esm/product/notesgallery/index.js +2 -0
- package/dist/esm/product/notesgallery/notesgallery.js +44 -0
- package/dist/esm/product/notesgallery/notesgallery.recipe.js +43 -0
- package/dist/esm/product/objectpagemenu/index.js +1 -0
- package/dist/esm/product/objectpagemenu/objectpagemenu.js +23 -0
- package/dist/esm/product/objectpagemenu/objectpagemenu.recipe.js +27 -0
- package/dist/esm/product/objectsettings/objectsettings.js +106 -13
- package/dist/esm/product/recordpage/index.js +1 -1
- package/dist/esm/product/recordpage/recordpage.js +112 -8
- package/dist/esm/product/recordpage/recordpage.recipe.js +63 -0
- package/dist/esm/product/recordpicker/index.js +2 -0
- package/dist/esm/product/recordpicker/recordpicker.js +64 -0
- package/dist/esm/product/recordpicker/recordpicker.recipe.js +33 -0
- package/dist/esm/product/savedviews/index.js +1 -1
- package/dist/esm/product/savedviews/savedviews.js +22 -1
- package/dist/esm/product/savedviews/savedviews.recipe.js +47 -0
- package/dist/esm/product/share/index.js +2 -0
- package/dist/esm/product/share/share.js +143 -0
- package/dist/esm/product/share/share.recipe.js +111 -0
- package/dist/esm/product/shortcutssheet/index.js +1 -0
- package/dist/esm/product/shortcutssheet/shortcutssheet.js +88 -0
- package/dist/esm/product/shortcutssheet/shortcutssheet.recipe.js +47 -0
- package/dist/esm/product/taskeditpopover/index.js +2 -0
- package/dist/esm/product/taskeditpopover/taskeditpopover.js +123 -0
- package/dist/esm/product/taskeditpopover/taskeditpopover.recipe.js +65 -0
- package/dist/esm/product/workspaceswitchermenu/index.js +1 -0
- package/dist/esm/product/workspaceswitchermenu/workspaceswitchermenu.js +35 -0
- package/dist/esm/product/workspaceswitchermenu/workspaceswitchermenu.recipe.js +31 -0
- package/dist/esm/tokens/palette.js +27 -0
- package/dist/esm/tokens/semantic.js +20 -0
- package/dist/multiselect.css +18 -0
- package/dist/multiselect.layered.css +18 -0
- package/dist/native/tokens.d.ts +1 -1
- package/dist/native/tokens.js +56 -4
- package/dist/notesgallery.css +15 -0
- package/dist/notesgallery.d.ts +7 -0
- package/dist/notesgallery.layered.css +17 -0
- package/dist/objectpagemenu.css +3 -0
- package/dist/objectpagemenu.d.ts +7 -0
- package/dist/objectpagemenu.layered.css +5 -0
- package/dist/recordpage.css +59 -0
- package/dist/recordpage.layered.css +59 -0
- package/dist/recordpicker.css +13 -0
- package/dist/recordpicker.d.ts +7 -0
- package/dist/recordpicker.layered.css +15 -0
- package/dist/savedviews.css +47 -0
- package/dist/savedviews.layered.css +47 -0
- package/dist/select.css +19 -0
- package/dist/select.layered.css +19 -0
- package/dist/share.css +84 -0
- package/dist/share.d.ts +7 -0
- package/dist/share.layered.css +86 -0
- package/dist/shortcutssheet.css +24 -0
- package/dist/shortcutssheet.d.ts +7 -0
- package/dist/shortcutssheet.layered.css +26 -0
- package/dist/styles.css +438 -16
- package/dist/styles.layered.css +438 -16
- package/dist/table.css +7 -2
- package/dist/table.layered.css +7 -2
- package/dist/taskeditpopover.css +36 -0
- package/dist/taskeditpopover.d.ts +7 -0
- package/dist/taskeditpopover.layered.css +38 -0
- package/dist/tokens.css +26 -0
- package/dist/tokens.json +56 -4
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +9 -1
- package/dist/types/components/button/button.d.ts +2 -0
- package/dist/types/components/button/button.recipe.d.ts +12 -0
- package/dist/types/components/chip/chip.recipe.d.ts +1 -1
- package/dist/types/components/datatable/datatable.d.ts +8 -0
- package/dist/types/components/datepickerfield/datepickerfield.d.ts +4 -1
- package/dist/types/components/datepickerfield/datepickerfield.recipe.d.ts +18 -3
- package/dist/types/components/menu/menu.d.ts +50 -7
- package/dist/types/components/multiselect/multiselect.d.ts +9 -0
- package/dist/types/components/select/select.d.ts +10 -0
- package/dist/types/core/floating-portal.d.ts +6 -5
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/place-floating.d.ts +37 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/product/assigneepicker/assigneepicker.d.ts +36 -0
- package/dist/types/product/assigneepicker/assigneepicker.recipe.d.ts +3 -0
- package/dist/types/product/assigneepicker/index.d.ts +2 -0
- package/dist/types/product/inbox/inbox.d.ts +13 -1
- package/dist/types/product/notesgallery/index.d.ts +2 -0
- package/dist/types/product/notesgallery/notesgallery.d.ts +54 -0
- package/dist/types/product/notesgallery/notesgallery.recipe.d.ts +3 -0
- package/dist/types/product/objectpagemenu/index.d.ts +1 -0
- package/dist/types/product/objectpagemenu/objectpagemenu.d.ts +40 -0
- package/dist/types/product/objectpagemenu/objectpagemenu.recipe.d.ts +17 -0
- package/dist/types/product/objectsettings/objectsettings.d.ts +71 -15
- package/dist/types/product/recordpage/index.d.ts +1 -1
- package/dist/types/product/recordpage/recordpage.d.ts +142 -1
- package/dist/types/product/recordpicker/index.d.ts +2 -0
- package/dist/types/product/recordpicker/recordpicker.d.ts +38 -0
- package/dist/types/product/recordpicker/recordpicker.recipe.d.ts +3 -0
- package/dist/types/product/savedviews/index.d.ts +1 -1
- package/dist/types/product/savedviews/savedviews.d.ts +36 -0
- package/dist/types/product/share/index.d.ts +2 -0
- package/dist/types/product/share/share.d.ts +85 -0
- package/dist/types/product/share/share.recipe.d.ts +3 -0
- package/dist/types/product/shortcutssheet/index.d.ts +1 -0
- package/dist/types/product/shortcutssheet/shortcutssheet.d.ts +49 -0
- package/dist/types/product/shortcutssheet/shortcutssheet.recipe.d.ts +3 -0
- package/dist/types/product/taskeditpopover/index.d.ts +2 -0
- package/dist/types/product/taskeditpopover/taskeditpopover.d.ts +67 -0
- package/dist/types/product/taskeditpopover/taskeditpopover.recipe.d.ts +3 -0
- package/dist/types/product/workspaceswitchermenu/index.d.ts +1 -0
- package/dist/types/product/workspaceswitchermenu/workspaceswitchermenu.d.ts +54 -0
- package/dist/types/product/workspaceswitchermenu/workspaceswitchermenu.recipe.d.ts +19 -0
- package/dist/types/tokens/contract.d.ts +13 -0
- package/dist/types/tokens/palette.d.ts +52 -0
- package/dist/types/tokens/semantic.d.ts +20 -0
- package/dist/workspaceswitchermenu.css +4 -0
- package/dist/workspaceswitchermenu.d.ts +7 -0
- package/dist/workspaceswitchermenu.layered.css +6 -0
- package/package.json +41 -1
package/dist/styles.css
CHANGED
|
@@ -97,6 +97,19 @@
|
|
|
97
97
|
--crisp-stroke-select-divider: #00000010;
|
|
98
98
|
--crisp-fg-select-placeholder: #b0b3ba;
|
|
99
99
|
--crisp-shadow-select: #0000001f;
|
|
100
|
+
--crisp-bg-tag-swatch1: #fff3cc;
|
|
101
|
+
--crisp-bg-tag-swatch2: #f4fbcb;
|
|
102
|
+
--crisp-bg-tag-swatch3: #fdf7c4;
|
|
103
|
+
--crisp-bg-tag-swatch4: #feecf3;
|
|
104
|
+
--crisp-bg-tag-swatch5: #e0fced;
|
|
105
|
+
--crisp-bg-tag-swatch6: #ddf7ff;
|
|
106
|
+
--crisp-bg-tag-swatch7: #f6f7f7;
|
|
107
|
+
--crisp-bg-tag-swatch8: #ffebeb;
|
|
108
|
+
--crisp-bg-tag-swatch9: #feeee1;
|
|
109
|
+
--crisp-bg-tag-swatch10: #e5eeff;
|
|
110
|
+
--crisp-bg-tag-swatch11: #f5f0ff;
|
|
111
|
+
--crisp-bg-tag-swatch12: #fdedff;
|
|
112
|
+
--crisp-fg-tag-swatch: #000000;
|
|
100
113
|
}
|
|
101
114
|
|
|
102
115
|
[data-theme="dark"] {
|
|
@@ -170,6 +183,19 @@
|
|
|
170
183
|
--crisp-stroke-select-divider: #ffffff17;
|
|
171
184
|
--crisp-fg-select-placeholder: #868b94;
|
|
172
185
|
--crisp-shadow-select: #000000cc;
|
|
186
|
+
--crisp-bg-tag-swatch1: #fff3cc;
|
|
187
|
+
--crisp-bg-tag-swatch2: #f4fbcb;
|
|
188
|
+
--crisp-bg-tag-swatch3: #fdf7c4;
|
|
189
|
+
--crisp-bg-tag-swatch4: #feecf3;
|
|
190
|
+
--crisp-bg-tag-swatch5: #e0fced;
|
|
191
|
+
--crisp-bg-tag-swatch6: #ddf7ff;
|
|
192
|
+
--crisp-bg-tag-swatch7: #f6f7f7;
|
|
193
|
+
--crisp-bg-tag-swatch8: #ffebeb;
|
|
194
|
+
--crisp-bg-tag-swatch9: #feeee1;
|
|
195
|
+
--crisp-bg-tag-swatch10: #e5eeff;
|
|
196
|
+
--crisp-bg-tag-swatch11: #f5f0ff;
|
|
197
|
+
--crisp-bg-tag-swatch12: #fdedff;
|
|
198
|
+
--crisp-fg-tag-swatch: #000000;
|
|
173
199
|
}
|
|
174
200
|
|
|
175
201
|
:root {
|
|
@@ -467,6 +493,9 @@
|
|
|
467
493
|
.crisp-button--size_sm {
|
|
468
494
|
height: 24px; padding-inline: var(--crisp-space-1-5); font-size: var(--crisp-text-md); border-radius: var(--crisp-radius-md);
|
|
469
495
|
}
|
|
496
|
+
.crisp-button--size_xs {
|
|
497
|
+
height: 20px; padding-inline: var(--crisp-space-1-5); font-size: var(--crisp-text-sm); line-height: 16px; letter-spacing: normal; border-radius: var(--crisp-radius-sm); gap: var(--crisp-space-1);
|
|
498
|
+
}
|
|
470
499
|
.crisp-button--size_md {
|
|
471
500
|
height: 28px; padding-inline: var(--crisp-space-2); font-size: var(--crisp-text-lg); border-radius: var(--crisp-radius-md);
|
|
472
501
|
&[data-icon-start] { padding-inline-start: var(--crisp-space-1-5); }
|
|
@@ -575,7 +604,7 @@
|
|
|
575
604
|
display: inline-flex; align-items: center; gap: 3px; height: var(--crisp-size-chip); min-width: 0; max-width: 100%; padding-inline: var(--crisp-space-1); border-radius: var(--crisp-radius-chip); font-size: var(--crisp-text-lg); line-height: 20px; font-weight: var(--crisp-weight-medium); white-space: nowrap;
|
|
576
605
|
}
|
|
577
606
|
.crisp-chip--truncate_true {
|
|
578
|
-
& .crisp-chip-label { min-width: 0; overflow:
|
|
607
|
+
& .crisp-chip-label { min-width: 0; overflow: clip; text-overflow: ellipsis; white-space: nowrap; display: block; }
|
|
579
608
|
}
|
|
580
609
|
.crisp-chip--truncate_false {
|
|
581
610
|
|
|
@@ -851,7 +880,13 @@
|
|
|
851
880
|
& .crisp-datatable-group-count { margin-inline-start: var(--crisp-space-1-5); color: var(--crisp-fg-muted); font-variant-numeric: tabular-nums; }
|
|
852
881
|
& .crisp-datatable-th-rename { width: 100%; min-width: 0; height: var(--crisp-size-row); margin: 0; padding: 0 var(--crisp-space-1); border: none; border-radius: var(--crisp-radius-md); background: var(--crisp-bg-surface); box-shadow: inset 0 0 0 1px var(--crisp-bg-brand-solid); font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); outline: none; }
|
|
853
882
|
& .crisp-datatable-th-rename:focus { box-shadow: inset 0 0 0 1px var(--crisp-bg-brand-solid); }
|
|
854
|
-
|
|
883
|
+
/* #719: overflow: clip, not hidden, on every truncation rule below --
|
|
884
|
+
hidden still honours a programmatic scrollLeft assignment (found via
|
|
885
|
+
a screenshot tool that pans anything with scrollWidth > clientWidth),
|
|
886
|
+
blanking or fragmenting the visible text even though real user
|
|
887
|
+
scrolling was already blocked. clip renders the ellipsis identically
|
|
888
|
+
and leaves no scroll position to move. */
|
|
889
|
+
& .crisp-datatable-th-label { overflow: clip; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
|
|
855
890
|
/* #465: 12px per the comment above (and Attio's measured header cell
|
|
856
891
|
padding: 0 12px) -- was still c.space["2"] (8px), drifted from its
|
|
857
892
|
own documented value. */
|
|
@@ -938,7 +973,7 @@
|
|
|
938
973
|
/* reference picker: a leading 16px avatar per option, plus a trailing
|
|
939
974
|
"Create X" row when the consumer supplies one (#449) -- same measured
|
|
940
975
|
values as RecordsTable's own .crisp-recordstable-refoption*. */
|
|
941
|
-
& .crisp-datatable-refoption { display: flex; align-items: center; gap: var(--crisp-space-2); min-width: 0; overflow:
|
|
976
|
+
& .crisp-datatable-refoption { display: flex; align-items: center; gap: var(--crisp-space-2); min-width: 0; overflow: clip; text-overflow: ellipsis; }
|
|
942
977
|
& .crisp-datatable-refoption-avatar { flex-shrink: 0; }
|
|
943
978
|
& .crisp-datatable-refoption--create { color: var(--crisp-fg-muted); }
|
|
944
979
|
& .crisp-datatable-empty { padding: var(--crisp-space-8) var(--crisp-space-3); text-align: center; color: var(--crisp-fg-muted); font-size: var(--crisp-text-lg); }
|
|
@@ -1014,7 +1049,7 @@
|
|
|
1014
1049
|
(#833/#835/#848) that happened to apply the same 500 to every
|
|
1015
1050
|
primary-column body cell regardless of type. Made explicit here so
|
|
1016
1051
|
fixing that leak doesn't also (wrongly) drop entity names to 400. */
|
|
1017
|
-
& .crisp-datatable-entity-name { overflow:
|
|
1052
|
+
& .crisp-datatable-entity-name { overflow: clip; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--crisp-weight-medium); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); }
|
|
1018
1053
|
/* #893: shared by the button (onEntityClick, a different record) and
|
|
1019
1054
|
the anchor (href, the row's own record) -- was button-only, which
|
|
1020
1055
|
silently left a real <a> unstyled the day #893 added one. */
|
|
@@ -1037,14 +1072,29 @@
|
|
|
1037
1072
|
Avatar's own already-shipped shape="rounded" value, not a new number.
|
|
1038
1073
|
shape="circle" reuses Avatar's own shape="circle" value (radius.full)
|
|
1039
1074
|
the same way, measured live on a real Attio person avatar. */
|
|
1040
|
-
& .crisp-datatable-avatar { width: var(--crisp-size-icon); height: var(--crisp-size-icon); border-radius: 30%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; line-height: 1; font-weight: var(--crisp-weight-semibold); text-transform: uppercase; color: var(--crisp-fg-on-
|
|
1075
|
+
& .crisp-datatable-avatar { width: var(--crisp-size-icon); height: var(--crisp-size-icon); border-radius: 30%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; line-height: 1; font-weight: var(--crisp-weight-semibold); text-transform: uppercase; color: var(--crisp-fg-on-tone); background: var(--crisp-bg-brand-solid); }
|
|
1041
1076
|
& .crisp-datatable-avatar[data-shape="circle"] { border-radius: var(--crisp-radius-full); }
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1077
|
+
/* your-moon/crisp#891: every data-tone override painted ONLY a
|
|
1078
|
+
background, inheriting the base rule's white fgOnBrand -- white
|
|
1079
|
+
clears AA against none of these seven fills (brand 3.23:1, success
|
|
1080
|
+
3.96, warning 4.12, danger 3.76, purple 3.58, cyan 2.30, orange
|
|
1081
|
+
2.77). fgOnTone (ink, #101112 -- semantic.ts's own comment: "dark ink
|
|
1082
|
+
clears AA on every tone in both themes") clears 4.5:1+ on every fill
|
|
1083
|
+
here with a comfortable margin (brand 5.85, success 4.77/6.29,
|
|
1084
|
+
danger 5.03/6.19, purple 5.27, cyan 8.23, orange 6.83, light/dark),
|
|
1085
|
+
so the base rule's colour moves there and every override keeps it --
|
|
1086
|
+
EXCEPT warning, whose raw fill (bgWarning) only clears 4.59:1 in
|
|
1087
|
+
light, too thin a margin to rely on: it takes bgWarningSolid instead,
|
|
1088
|
+
the same solid-warning-plus-ink pair Badge's own solid variant
|
|
1089
|
+
already established (13.98/7.83), for the same reason (see
|
|
1090
|
+
tokens/palette.ts's amberSolid comment). No background changes
|
|
1091
|
+
otherwise -- the fills themselves are unaffected, only the text. */
|
|
1092
|
+
& .crisp-datatable-avatar[data-tone="success"] { background: var(--crisp-bg-success); color: var(--crisp-fg-on-tone); }
|
|
1093
|
+
& .crisp-datatable-avatar[data-tone="warning"] { background: var(--crisp-bg-warning-solid); color: var(--crisp-fg-on-tone); }
|
|
1094
|
+
& .crisp-datatable-avatar[data-tone="danger"] { background: var(--crisp-bg-danger); color: var(--crisp-fg-on-tone); }
|
|
1095
|
+
& .crisp-datatable-avatar[data-tone="purple"] { background: var(--crisp-bg-purple); color: var(--crisp-fg-on-tone); }
|
|
1096
|
+
& .crisp-datatable-avatar[data-tone="cyan"] { background: var(--crisp-bg-cyan); color: var(--crisp-fg-on-tone); }
|
|
1097
|
+
& .crisp-datatable-avatar[data-tone="orange"] { background: var(--crisp-bg-orange); color: var(--crisp-fg-on-tone); }
|
|
1048
1098
|
& .crisp-datatable-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
|
|
1049
1099
|
& .crisp-datatable-tags { display: flex; align-items: center; gap: var(--crisp-space-1); overflow: hidden; }
|
|
1050
1100
|
& .crisp-datatable-tag { display: inline-flex; align-items: center; height: var(--crisp-size-chip); padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-chip); font-size: var(--crisp-text-lg); line-height: 20px; font-weight: var(--crisp-weight-medium); white-space: nowrap; background: color-mix(in srgb, var(--crisp-fg-primary) 6%, transparent); color: color-mix(in srgb, var(--crisp-fg-primary) 82%, transparent); }
|
|
@@ -1055,6 +1105,24 @@
|
|
|
1055
1105
|
& .crisp-datatable-tag[data-tone="purple"] { background: color-mix(in srgb, var(--crisp-bg-purple) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-purple) 80%, var(--crisp-fg-primary)); }
|
|
1056
1106
|
& .crisp-datatable-tag[data-tone="cyan"] { background: color-mix(in srgb, var(--crisp-bg-cyan) 18%, transparent); color: color-mix(in srgb, var(--crisp-bg-cyan) 82%, var(--crisp-fg-primary)); }
|
|
1057
1107
|
& .crisp-datatable-tag[data-tone="orange"] { background: color-mix(in srgb, var(--crisp-bg-orange) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-orange) 82%, var(--crisp-fg-primary)); }
|
|
1108
|
+
/* your-moon/crisp#998: Attio's own 12-colour tag palette (measured
|
|
1109
|
+
live, see tokens/palette.ts's tagSwatch1 comment) -- flat black
|
|
1110
|
+
text, no ring, unlike the tone family above. 7px radius/10px text
|
|
1111
|
+
are measured literals (no matching step in the shared scale, same
|
|
1112
|
+
as Select's own .crisp-select-swatch). */
|
|
1113
|
+
& .crisp-datatable-swatch { display: inline-flex; align-items: center; height: var(--crisp-size-chip); padding: 0 var(--crisp-space-1); border-radius: 7px; font-size: 10px; font-weight: var(--crisp-weight-regular); white-space: nowrap; color: var(--crisp-fg-tag-swatch); }
|
|
1114
|
+
& .crisp-datatable-swatch[data-swatch="1"] { background: var(--crisp-bg-tag-swatch1); }
|
|
1115
|
+
& .crisp-datatable-swatch[data-swatch="2"] { background: var(--crisp-bg-tag-swatch2); }
|
|
1116
|
+
& .crisp-datatable-swatch[data-swatch="3"] { background: var(--crisp-bg-tag-swatch3); }
|
|
1117
|
+
& .crisp-datatable-swatch[data-swatch="4"] { background: var(--crisp-bg-tag-swatch4); }
|
|
1118
|
+
& .crisp-datatable-swatch[data-swatch="5"] { background: var(--crisp-bg-tag-swatch5); }
|
|
1119
|
+
& .crisp-datatable-swatch[data-swatch="6"] { background: var(--crisp-bg-tag-swatch6); }
|
|
1120
|
+
& .crisp-datatable-swatch[data-swatch="7"] { background: var(--crisp-bg-tag-swatch7); }
|
|
1121
|
+
& .crisp-datatable-swatch[data-swatch="8"] { background: var(--crisp-bg-tag-swatch8); }
|
|
1122
|
+
& .crisp-datatable-swatch[data-swatch="9"] { background: var(--crisp-bg-tag-swatch9); }
|
|
1123
|
+
& .crisp-datatable-swatch[data-swatch="10"] { background: var(--crisp-bg-tag-swatch10); }
|
|
1124
|
+
& .crisp-datatable-swatch[data-swatch="11"] { background: var(--crisp-bg-tag-swatch11); }
|
|
1125
|
+
& .crisp-datatable-swatch[data-swatch="12"] { background: var(--crisp-bg-tag-swatch12); }
|
|
1058
1126
|
& .crisp-datatable-num { font-variant-numeric: tabular-nums; }
|
|
1059
1127
|
& .crisp-datatable-muted { color: var(--crisp-fg-muted); }
|
|
1060
1128
|
/* crisp#822 -- a date/datetime cell's danger/overdue tone: same token as
|
|
@@ -1065,7 +1133,7 @@
|
|
|
1065
1133
|
own .crisp-recordstable-link, which this mirrors: no underline at
|
|
1066
1134
|
rest, underline on hover, own-colour text rather than a browser-blue
|
|
1067
1135
|
link. */
|
|
1068
|
-
& .crisp-datatable-link { color: var(--crisp-fg-primary); text-decoration: none; overflow:
|
|
1136
|
+
& .crisp-datatable-link { color: var(--crisp-fg-primary); text-decoration: none; overflow: clip; text-overflow: ellipsis; }
|
|
1069
1137
|
& .crisp-datatable-link:hover { text-decoration: underline; }
|
|
1070
1138
|
/* phone cell type/editor (#765) -- measured live: the dial-code prefix
|
|
1071
1139
|
is a muted rgba(0,0,0,0.63) at 14px, matching every other muted-text
|
|
@@ -1241,10 +1309,10 @@
|
|
|
1241
1309
|
|
|
1242
1310
|
.crisp-datepickerfield {
|
|
1243
1311
|
display: inline-flex; font-family: var(--crisp-font-sans);
|
|
1244
|
-
& .crisp-datepickerfield-box { display: inline-flex; align-items: center; box-sizing: border-box; height: 32px; margin: 0; border-radius: var(--crisp-radius-md); background: transparent; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 7%, transparent); color: var(--crisp-fg-primary); font-family: inherit; font-size: var(--crisp-text-lg); }
|
|
1312
|
+
& .crisp-datepickerfield-box { display: inline-flex; align-items: center; width: 100%; box-sizing: border-box; height: 32px; margin: 0; border-radius: var(--crisp-radius-md); background: transparent; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 7%, transparent); color: var(--crisp-fg-primary); font-family: inherit; font-size: var(--crisp-text-lg); }
|
|
1245
1313
|
& .crisp-datepickerfield-box[data-ghost] { background: transparent; box-shadow: none; }
|
|
1246
1314
|
& .crisp-datepickerfield-box[data-ghost]:hover { background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent); }
|
|
1247
|
-
& .crisp-datepickerfield-trigger { display: inline-flex; align-items: center; gap: var(--crisp-space-2); height: 100%; padding: 0 var(--crisp-space-2-5); margin: 0; border: none; background: none; color: inherit; font-family: inherit; font-size: inherit; white-space: nowrap; cursor: pointer; }
|
|
1315
|
+
& .crisp-datepickerfield-trigger { flex: 1; min-width: 0; display: inline-flex; align-items: center; gap: var(--crisp-space-2); height: 100%; padding: 0 var(--crisp-space-2-5); margin: 0; border: none; background: none; color: inherit; font-family: inherit; font-size: inherit; white-space: nowrap; cursor: pointer; }
|
|
1248
1316
|
& .crisp-datepickerfield-box[data-placeholder] .crisp-datepickerfield-trigger { color: var(--crisp-fg-muted); }
|
|
1249
1317
|
& .crisp-datepickerfield-trigger svg { flex-shrink: 0; color: var(--crisp-fg-muted); }
|
|
1250
1318
|
/* Reuses TableToolbar's measured filter-chip remove button
|
|
@@ -1259,6 +1327,12 @@
|
|
|
1259
1327
|
& .crisp-datepickerfield-preset { height: var(--crisp-size-chip); padding: 0 var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-chip); background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); font-family: inherit; font-size: var(--crisp-text-sm); cursor: pointer; }
|
|
1260
1328
|
& .crisp-datepickerfield-preset:hover { background: color-mix(in srgb, var(--crisp-fg-primary) 8%, transparent); }
|
|
1261
1329
|
}
|
|
1330
|
+
.crisp-datepickerfield--width_full {
|
|
1331
|
+
width: 100%;
|
|
1332
|
+
}
|
|
1333
|
+
.crisp-datepickerfield--width_auto {
|
|
1334
|
+
width: auto;
|
|
1335
|
+
}
|
|
1262
1336
|
|
|
1263
1337
|
.crisp-dialog {
|
|
1264
1338
|
display: contents; font-family: var(--crisp-font-sans);
|
|
@@ -1758,6 +1832,24 @@
|
|
|
1758
1832
|
.crisp-recordstable-tag[data-tone="purple"] { background: color-mix(in srgb, var(--crisp-bg-purple) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-purple) 80%, var(--crisp-fg-primary)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-bg-purple) 30%, transparent); }
|
|
1759
1833
|
.crisp-recordstable-tag[data-tone="cyan"] { background: color-mix(in srgb, var(--crisp-bg-cyan) 18%, transparent); color: color-mix(in srgb, var(--crisp-bg-cyan) 82%, var(--crisp-fg-primary)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-bg-cyan) 30%, transparent); }
|
|
1760
1834
|
.crisp-recordstable-tag[data-tone="orange"] { background: color-mix(in srgb, var(--crisp-bg-orange) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-orange) 82%, var(--crisp-fg-primary)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-bg-orange) 30%, transparent); }
|
|
1835
|
+
/* your-moon/crisp#998: Attio's own 12-colour tag palette (measured live,
|
|
1836
|
+
see tokens/palette.ts's tagSwatch1 comment) -- flat black text, no
|
|
1837
|
+
ring/border, unlike the tone family above. 7px radius/10px text are
|
|
1838
|
+
measured literals, no matching step in the shared scale (same as
|
|
1839
|
+
Select's own .crisp-select-swatch). */
|
|
1840
|
+
.crisp-multiselect-swatch { display: inline-flex; align-items: center; height: var(--crisp-size-chip); padding: 0 var(--crisp-space-1); border-radius: 7px; font-size: 10px; font-weight: var(--crisp-weight-regular); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--crisp-fg-tag-swatch); }
|
|
1841
|
+
.crisp-multiselect-swatch[data-swatch="1"] { background: var(--crisp-bg-tag-swatch1); }
|
|
1842
|
+
.crisp-multiselect-swatch[data-swatch="2"] { background: var(--crisp-bg-tag-swatch2); }
|
|
1843
|
+
.crisp-multiselect-swatch[data-swatch="3"] { background: var(--crisp-bg-tag-swatch3); }
|
|
1844
|
+
.crisp-multiselect-swatch[data-swatch="4"] { background: var(--crisp-bg-tag-swatch4); }
|
|
1845
|
+
.crisp-multiselect-swatch[data-swatch="5"] { background: var(--crisp-bg-tag-swatch5); }
|
|
1846
|
+
.crisp-multiselect-swatch[data-swatch="6"] { background: var(--crisp-bg-tag-swatch6); }
|
|
1847
|
+
.crisp-multiselect-swatch[data-swatch="7"] { background: var(--crisp-bg-tag-swatch7); }
|
|
1848
|
+
.crisp-multiselect-swatch[data-swatch="8"] { background: var(--crisp-bg-tag-swatch8); }
|
|
1849
|
+
.crisp-multiselect-swatch[data-swatch="9"] { background: var(--crisp-bg-tag-swatch9); }
|
|
1850
|
+
.crisp-multiselect-swatch[data-swatch="10"] { background: var(--crisp-bg-tag-swatch10); }
|
|
1851
|
+
.crisp-multiselect-swatch[data-swatch="11"] { background: var(--crisp-bg-tag-swatch11); }
|
|
1852
|
+
.crisp-multiselect-swatch[data-swatch="12"] { background: var(--crisp-bg-tag-swatch12); }
|
|
1761
1853
|
|
|
1762
1854
|
.crisp-multiselect {
|
|
1763
1855
|
position: relative; display: inline-flex; width: 100%; font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
@@ -2051,6 +2143,25 @@
|
|
|
2051
2143
|
.crisp-select-option[data-disabled] .crisp-select-option-description,
|
|
2052
2144
|
.crisp-select-option[data-disabled] .crisp-select-option-check { color: var(--crisp-fg-disabled); }
|
|
2053
2145
|
.crisp-select-option-dot { flex-shrink: 0; width: 8px; height: 8px; border-radius: var(--crisp-radius-full); margin-inline-end: var(--crisp-space-2); }
|
|
2146
|
+
/* your-moon/crisp#998: Attio's own 12-colour tag palette (measured live,
|
|
2147
|
+
see tokens/palette.ts's tagSwatch1 comment) -- the label itself as a
|
|
2148
|
+
filled pill, not a dot beside it. 7px radius/10px text have no
|
|
2149
|
+
matching step in the shared scale (radius.xs is 4px, .sm is 6px;
|
|
2150
|
+
text.xs is 11px), so both are the measured literals, same as
|
|
2151
|
+
DataTable's own avatar font-size (#891). */
|
|
2152
|
+
.crisp-select-swatch { display: inline-flex; align-items: center; height: var(--crisp-size-chip); padding: 0 var(--crisp-space-1); border-radius: 7px; font-size: 10px; font-weight: var(--crisp-weight-regular); color: var(--crisp-fg-tag-swatch); }
|
|
2153
|
+
.crisp-select-swatch[data-swatch="1"] { background: var(--crisp-bg-tag-swatch1); }
|
|
2154
|
+
.crisp-select-swatch[data-swatch="2"] { background: var(--crisp-bg-tag-swatch2); }
|
|
2155
|
+
.crisp-select-swatch[data-swatch="3"] { background: var(--crisp-bg-tag-swatch3); }
|
|
2156
|
+
.crisp-select-swatch[data-swatch="4"] { background: var(--crisp-bg-tag-swatch4); }
|
|
2157
|
+
.crisp-select-swatch[data-swatch="5"] { background: var(--crisp-bg-tag-swatch5); }
|
|
2158
|
+
.crisp-select-swatch[data-swatch="6"] { background: var(--crisp-bg-tag-swatch6); }
|
|
2159
|
+
.crisp-select-swatch[data-swatch="7"] { background: var(--crisp-bg-tag-swatch7); }
|
|
2160
|
+
.crisp-select-swatch[data-swatch="8"] { background: var(--crisp-bg-tag-swatch8); }
|
|
2161
|
+
.crisp-select-swatch[data-swatch="9"] { background: var(--crisp-bg-tag-swatch9); }
|
|
2162
|
+
.crisp-select-swatch[data-swatch="10"] { background: var(--crisp-bg-tag-swatch10); }
|
|
2163
|
+
.crisp-select-swatch[data-swatch="11"] { background: var(--crisp-bg-tag-swatch11); }
|
|
2164
|
+
.crisp-select-swatch[data-swatch="12"] { background: var(--crisp-bg-tag-swatch12); }
|
|
2054
2165
|
.crisp-select-option-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--crisp-space-0-5); }
|
|
2055
2166
|
.crisp-select-option-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
2056
2167
|
.crisp-select-option-description { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--crisp-fg-neutral-subtle); }
|
|
@@ -2304,8 +2415,13 @@
|
|
|
2304
2415
|
/* #465: 12px, not crisp's old 8px -- measured on a live header cell
|
|
2305
2416
|
(padding: 0 12px) and independently on a body cell's text inset
|
|
2306
2417
|
(getBoundingClientRect delta from the cell edge). Matches
|
|
2307
|
-
ColumnCalc's own already-correct 12px trigger inset. */
|
|
2308
|
-
|
|
2418
|
+
ColumnCalc's own already-correct 12px trigger inset. */ /* #719: overflow: clip, not hidden -- both render the ellipsis
|
|
2419
|
+
identically, but hidden still honours a programmatic scrollLeft
|
|
2420
|
+
assignment (a screenshot tool, a browser extension) even though it
|
|
2421
|
+
already blocks user-driven wheel/scrollbar input; clip leaves no
|
|
2422
|
+
scroll position for anything to move, so the truncated text can
|
|
2423
|
+
never be panned out of view. */
|
|
2424
|
+
& th, & td { position: relative; height: var(--crisp-size-tableRow); padding: 0 var(--crisp-space-3); border-bottom: 1px solid var(--crisp-border-subtle); border-inline-end: 1px solid var(--crisp-border-subtle); text-align: start; vertical-align: middle; white-space: nowrap; overflow: clip; text-overflow: ellipsis; }
|
|
2309
2425
|
/* #554: sticky on the vertical axis, mirroring RecordsTable's own
|
|
2310
2426
|
`.crisp-recordstable-th`. z-index 2 sits above a plain body cell (auto)
|
|
2311
2427
|
and below a sticky-column corner cell (DataTable's `th[data-sticky]`,
|
|
@@ -2800,6 +2916,20 @@
|
|
|
2800
2916
|
}
|
|
2801
2917
|
}
|
|
2802
2918
|
|
|
2919
|
+
.crisp-assigneepicker {
|
|
2920
|
+
display: flex; flex-direction: column; box-sizing: border-box; width: 350px; font-family: var(--crisp-font-sans);
|
|
2921
|
+
& .crisp-assigneepicker-search { display: flex; align-items: center; gap: var(--crisp-space-2); height: 36px; padding: 0 var(--crisp-space-3); color: var(--crisp-fg-muted); }
|
|
2922
|
+
& .crisp-assigneepicker-search svg { flex-shrink: 0; }
|
|
2923
|
+
& .crisp-assigneepicker-search-input { flex: 1; min-width: 0; border: none; outline: none; background: none; font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); line-height: 20px; color: var(--crisp-fg-primary); }
|
|
2924
|
+
& .crisp-assigneepicker-search-input::placeholder { color: var(--crisp-fg-muted); }
|
|
2925
|
+
& .crisp-assigneepicker-pill { display: flex; padding: 0 var(--crisp-space-3) var(--crisp-space-2); }
|
|
2926
|
+
& .crisp-assigneepicker-remove { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 14px; height: 14px; margin: 0; padding: 0; border: none; background: none; color: inherit; font-family: inherit; cursor: pointer; }
|
|
2927
|
+
& .crisp-assigneepicker-empty { padding: var(--crisp-space-4) var(--crisp-space-3); text-align: center; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
2928
|
+
& .crisp-assigneepicker-list { display: flex; flex-direction: column; margin: 0; padding: var(--crisp-space-1); list-style: none; }
|
|
2929
|
+
& .crisp-assigneepicker-option { display: flex; align-items: center; width: 100%; box-sizing: border-box; height: 32px; padding: 0 var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-md); background: none; font-family: inherit; text-align: start; cursor: pointer; }
|
|
2930
|
+
& .crisp-assigneepicker-option:hover, & .crisp-assigneepicker-option[data-highlighted] { background: var(--crisp-bg-raised); }
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2803
2933
|
.crisp-authshell {
|
|
2804
2934
|
min-height: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; position: relative; background: var(--crisp-bg-surface); font-family: var(--crisp-font-sans); font-size: var(--crisp-text-lg); line-height: 20px; color: var(--crisp-fg-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
2805
2935
|
&[data-single-pane] { justify-content: center; }
|
|
@@ -3378,6 +3508,22 @@
|
|
|
3378
3508
|
}
|
|
3379
3509
|
}
|
|
3380
3510
|
|
|
3511
|
+
.crisp-notesgallery {
|
|
3512
|
+
display: flex; flex-direction: column; min-height: 0; box-sizing: border-box; font-family: var(--crisp-font-sans); color: var(--crisp-fg-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
3513
|
+
& .crisp-notesgallery-tabs { display: flex; align-items: center; gap: var(--crisp-space-2); height: 44px; flex-shrink: 0; padding: 0 var(--crisp-space-3); }
|
|
3514
|
+
& .crisp-notesgallery-toolbar { display: flex; align-items: center; gap: var(--crisp-space-2); height: var(--crisp-size-header); flex-shrink: 0; padding: 0 var(--crisp-space-3); }
|
|
3515
|
+
& .crisp-notesgallery-toolbar-trail { display: flex; align-items: center; gap: var(--crisp-space-2); margin-inline-start: auto; }
|
|
3516
|
+
& .crisp-notesgallery-favorites-section { background: var(--crisp-bg-subtle); box-shadow: inset 0 -1px 0 var(--crisp-border-subtle); }
|
|
3517
|
+
& .crisp-notesgallery-favorites-label { padding: var(--crisp-space-2) var(--crisp-space-4) 0; font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-muted); }
|
|
3518
|
+
& .crisp-notesgallery-favorites { display: flex; align-items: center; justify-content: center; min-height: 200px; padding: var(--crisp-space-6); }
|
|
3519
|
+
& .crisp-notesgallery-favorites-empty { box-sizing: border-box; width: 100%; padding: var(--crisp-space-6); border: 1px dashed var(--crisp-border-default); border-radius: var(--crisp-radius-xl); text-align: center; font-size: var(--crisp-text-md); color: var(--crisp-fg-muted); }
|
|
3520
|
+
& .crisp-notesgallery-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0 var(--crisp-space-3) var(--crisp-space-3); }
|
|
3521
|
+
& .crisp-notesgallery-group { display: flex; align-items: center; gap: var(--crisp-space-1-5); height: var(--crisp-size-menuRow); padding: var(--crisp-space-2) var(--crisp-space-1); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-muted); }
|
|
3522
|
+
& .crisp-notesgallery-group-count { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-sm); background: color-mix(in srgb, var(--crisp-fg-primary) 6%, transparent); font-size: var(--crisp-text-xs); color: var(--crisp-fg-muted); }
|
|
3523
|
+
& .crisp-notesgallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: var(--crisp-space-4); padding-bottom: var(--crisp-space-4); }
|
|
3524
|
+
& .crisp-notesgallery-empty { padding: var(--crisp-space-8) var(--crisp-space-3); text-align: center; font-size: var(--crisp-text-md); color: var(--crisp-fg-muted); }
|
|
3525
|
+
}
|
|
3526
|
+
|
|
3381
3527
|
.crisp-notificationssettings {
|
|
3382
3528
|
& .crisp-notificationssettings-page { display: flex; flex-direction: column; gap: var(--crisp-space-6); font-family: var(--crisp-font-sans); }
|
|
3383
3529
|
& .crisp-notificationssettings-heading { display: flex; flex-direction: column; gap: var(--crisp-space-0-5); }
|
|
@@ -3401,6 +3547,10 @@
|
|
|
3401
3547
|
& .crisp-notificationssettings-matrixrow-col { display: flex; align-items: center; justify-content: center; width: 64px; flex-shrink: 0; }
|
|
3402
3548
|
}
|
|
3403
3549
|
|
|
3550
|
+
|
|
3551
|
+
[dir="rtl"] .crisp-menu-item svg[data-rtl-flip] { transform: scaleX(-1); }
|
|
3552
|
+
|
|
3553
|
+
|
|
3404
3554
|
.crisp-objectsettings {
|
|
3405
3555
|
& .crisp-objectsettings-page { display: flex; flex-direction: column; gap: var(--crisp-space-6); }
|
|
3406
3556
|
& .crisp-objectsettings-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--crisp-space-4); }
|
|
@@ -3585,6 +3735,18 @@
|
|
|
3585
3735
|
the component's own comment) -- NOT `display: contents`, which
|
|
3586
3736
|
drops a button's accessible semantics in some engines. */
|
|
3587
3737
|
& .crisp-recordpage-edit-trigger { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--crisp-space-1); margin: 0; padding: 0; border: none; background: none; text-align: start; font: inherit; color: inherit; cursor: pointer; }
|
|
3738
|
+
/* #990: measured live on app.attio.com's URL/domain attribute (hover the
|
|
3739
|
+
row) -- the link itself never carries the edit affordance, a
|
|
3740
|
+
separate 20px button trails it, mounting only on hover: 16px icon,
|
|
3741
|
+
rgba(0,0,0,0.55) (crisp's own color-mix(fgPrimary 55%) -- the exact
|
|
3742
|
+
formula .crisp-datatable-entity-action's identical muted icon
|
|
3743
|
+
already uses), 6px radius (radius.sm). Reveal is opacity-based,
|
|
3744
|
+
not the mount/unmount Attio's own DOM does, so a keyboard user
|
|
3745
|
+
tabbing to it (:focus-visible) doesn't need the row hovered first --
|
|
3746
|
+
same mechanism DataTable's own row actions (#601) already use. */
|
|
3747
|
+
& .crisp-recordpage-edit-affordance { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-sm); background: none; font-family: inherit; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); cursor: pointer; opacity: 0; transition: opacity .12s, background-color .12s, color .12s; }
|
|
3748
|
+
& .crisp-recordpage-field:hover .crisp-recordpage-edit-affordance, & .crisp-recordpage-edit-affordance:focus-visible { opacity: 1; }
|
|
3749
|
+
& .crisp-recordpage-edit-affordance:hover { background: color-mix(in srgb, var(--crisp-fg-primary) 6%, transparent); color: var(--crisp-fg-primary); }
|
|
3588
3750
|
& .crisp-recordpage-empty { color: var(--crisp-fg-muted); }
|
|
3589
3751
|
/* #431: measured live on app.attio.com's record page Details column --
|
|
3590
3752
|
clicking a field's value opens a plain, borderless field exactly
|
|
@@ -3677,6 +3839,29 @@
|
|
|
3677
3839
|
& .crisp-recordpage-task[data-done] .crisp-recordpage-task-text { text-decoration: line-through; color: var(--crisp-fg-muted); }
|
|
3678
3840
|
& .crisp-recordpage-emptycard { display: flex; flex-direction: column; align-items: center; gap: var(--crisp-space-1-5); padding: var(--crisp-space-6) var(--crisp-space-3); border: 1px dashed var(--crisp-border-default); border-radius: var(--crisp-radius-xl); color: var(--crisp-fg-muted); font-size: var(--crisp-text-md); text-align: center; }
|
|
3679
3841
|
& .crisp-recordpage-emptycard svg { color: var(--crisp-fg-muted); opacity: 0.7; }
|
|
3842
|
+
/* #622: the Activity tab's own toolbar -- "Filters" + "+ Add meeting",
|
|
3843
|
+
both the same measured button chrome as the topbar's own action
|
|
3844
|
+
buttons (28px, e.field shadow, 14/500 label). */
|
|
3845
|
+
& .crisp-recordpage-tabtoolbar { display: inline-flex; align-items: center; gap: var(--crisp-space-1-5); }
|
|
3846
|
+
/* #622: Files tab's empty state -- measured live on Attio's own record
|
|
3847
|
+
page (a company with no files uploaded). The 138x138 dotted-grid
|
|
3848
|
+
backdrop is the same measured tile EmptyState's records variant uses
|
|
3849
|
+
(crisp/#603), duplicated here rather than composed through that
|
|
3850
|
+
component because this surface's title (16/600) and body (14/500,
|
|
3851
|
+
63%-mixed fgPrimary, not the flat fgMuted EmptyState uses) measure to
|
|
3852
|
+
their own values, matching neither of that component's existing
|
|
3853
|
+
variants. */
|
|
3854
|
+
& .crisp-recordpage-panel--center { flex: 1; align-items: center; justify-content: center; }
|
|
3855
|
+
& .crisp-recordpage-illustrated { display: flex; flex-direction: column; align-items: center; gap: var(--crisp-space-1-5); text-align: center; }
|
|
3856
|
+
& .crisp-recordpage-illustrated-icon { display: flex; align-items: center; justify-content: center; width: 138px; height: 138px; margin-bottom: var(--crisp-space-2); color: color-mix(in srgb, var(--crisp-fg-primary) 22%, transparent); background: radial-gradient(circle, color-mix(in srgb, var(--crisp-fg-primary) 12%, transparent) 1.2px, transparent 1.2px) 0 0 / 16px 16px; }
|
|
3857
|
+
& .crisp-recordpage-illustrated-title { font-size: var(--crisp-text-xl); font-weight: var(--crisp-weight-semibold); color: var(--crisp-fg-primary); }
|
|
3858
|
+
/* #988: the Calls tab's own gated state measures a larger 20/24 title
|
|
3859
|
+
than Files/Deals' 16/600 -- Attio's own "empty view" pattern (the
|
|
3860
|
+
same 20/600 EmptyState's page/records variants already carry, not a
|
|
3861
|
+
one-off). */
|
|
3862
|
+
& .crisp-recordpage-illustrated-title--lg { font-size: 20px; line-height: 24px; }
|
|
3863
|
+
& .crisp-recordpage-illustrated-desc { max-width: 320px; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
3864
|
+
& .crisp-recordpage-illustrated-actions { display: inline-flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--crisp-space-1-5); margin-top: var(--crisp-space-2); }
|
|
3680
3865
|
& .crisp-recordpage-action[data-active] svg { color: #f5b83d; fill: #f5b83d; }
|
|
3681
3866
|
& .crisp-recordstable-tag { display: inline-flex; align-items: center; height: var(--crisp-size-chip); padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-chip); font-size: var(--crisp-text-lg); line-height: 20px; font-weight: var(--crisp-weight-medium); white-space: nowrap; background: color-mix(in srgb, var(--crisp-fg-primary) 6%, transparent); color: color-mix(in srgb, var(--crisp-fg-primary) 82%, transparent); }
|
|
3682
3867
|
& .crisp-recordstable-tag[data-tone="brand"] { background: color-mix(in srgb, var(--crisp-bg-brand-solid) 14%, transparent); color: color-mix(in srgb, var(--crisp-bg-brand-solid) 82%, var(--crisp-fg-primary)); }
|
|
@@ -3686,6 +3871,30 @@
|
|
|
3686
3871
|
& .crisp-recordstable-tag[data-tone="purple"] { background: color-mix(in srgb, var(--crisp-bg-purple) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-purple) 80%, var(--crisp-fg-primary)); }
|
|
3687
3872
|
& .crisp-recordstable-tag[data-tone="cyan"] { background: color-mix(in srgb, var(--crisp-bg-cyan) 18%, transparent); color: color-mix(in srgb, var(--crisp-bg-cyan) 82%, var(--crisp-fg-primary)); }
|
|
3688
3873
|
& .crisp-recordstable-tag[data-tone="orange"] { background: color-mix(in srgb, var(--crisp-bg-orange) 16%, transparent); color: color-mix(in srgb, var(--crisp-bg-orange) 82%, var(--crisp-fg-primary)); }
|
|
3874
|
+
/* #620: the "Run workflow" quick action's own popover -- measured live:
|
|
3875
|
+
a centered, top-anchored overlay sharing product/command's own
|
|
3876
|
+
Cmd-K-palette shell exactly (elevation.modal, bgOverlayFrost 60% +
|
|
3877
|
+
blur(15px), radius 2xl/xl outer/inner) -- duplicated here rather than
|
|
3878
|
+
imported, the same "own copy per product surface" choice already
|
|
3879
|
+
made elsewhere in this codebase (product/command sits outside this
|
|
3880
|
+
lane's own product/recordpage ownership). */
|
|
3881
|
+
& .crisp-recordpage-workflow-backdrop { position: fixed; inset: 0; z-index: 60; background: transparent; }
|
|
3882
|
+
& .crisp-recordpage-workflow-positioner { position: fixed; inset: 0; z-index: 61; display: flex; align-items: flex-start; justify-content: center; padding: 15vh var(--crisp-space-4) var(--crisp-space-4); }
|
|
3883
|
+
& .crisp-recordpage-workflow-content { position: relative; display: flex; flex-direction: column; box-sizing: border-box; width: 90vw; max-width: 808px; padding: var(--crisp-space-1); border-radius: var(--crisp-radius-2xl); background: color-mix(in srgb, var(--crisp-bg-overlay-frost) 60%, transparent); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); box-shadow: 0 8px 28px -6px var(--crisp-shadow-overlay1), 0 18px 88px -4px var(--crisp-shadow-overlay2), 0 0 1px var(--crisp-shadow-overlay3); opacity: 1; transform: scale(1); transition: opacity .2s ease, transform .2s ease; @starting-style { opacity: 0; transform: scale(0.97); } }
|
|
3884
|
+
& .crisp-recordpage-workflow-card { display: flex; flex-direction: column; box-sizing: border-box; border-radius: var(--crisp-radius-xl); background: var(--crisp-bg-surface); overflow: hidden; }
|
|
3885
|
+
& .crisp-recordpage-workflow-header { display: flex; align-items: center; gap: var(--crisp-space-2); height: 52px; flex-shrink: 0; padding: 0 var(--crisp-space-2) 0 var(--crisp-space-4); }
|
|
3886
|
+
& .crisp-recordpage-workflow-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.07px; color: var(--crisp-fg-primary); }
|
|
3887
|
+
& .crisp-recordpage-workflow-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: none; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
3888
|
+
& .crisp-recordpage-workflow-close:hover { background: color-mix(in srgb, var(--crisp-fg-primary) 6%, transparent); color: var(--crisp-fg-primary); }
|
|
3889
|
+
& .crisp-recordpage-workflow-search { display: flex; align-items: center; min-height: 52px; padding: var(--crisp-space-4); }
|
|
3890
|
+
& .crisp-recordpage-workflow-input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-family: inherit; font-size: var(--crisp-text-xl); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); }
|
|
3891
|
+
& .crisp-recordpage-workflow-input::placeholder { color: var(--crisp-fg-muted); }
|
|
3892
|
+
& .crisp-recordpage-workflow-sep { height: 1px; flex-shrink: 0; background: var(--crisp-border-subtle); }
|
|
3893
|
+
& .crisp-recordpage-workflow-empty { display: flex; flex-direction: column; align-items: center; gap: var(--crisp-space-2); padding: var(--crisp-space-6) var(--crisp-space-3); text-align: center; }
|
|
3894
|
+
& .crisp-recordpage-workflow-create { display: inline-flex; align-items: center; gap: var(--crisp-space-1-5); height: 32px; padding: 0 var(--crisp-space-3); margin-top: var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-md); background: var(--crisp-bg-surface); box-shadow: inset 0 0 0 1px var(--crisp-ring-neutral), 0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04); font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); cursor: pointer; transition: background-color .12s; }
|
|
3895
|
+
& .crisp-recordpage-workflow-create:hover { background: var(--crisp-bg-raised); }
|
|
3896
|
+
& .crisp-recordpage-workflow-footer { display: flex; align-items: center; height: 44px; flex-shrink: 0; padding: 0 var(--crisp-space-2-5); border-top: 1px solid var(--crisp-border-subtle); }
|
|
3897
|
+
& .crisp-recordpage-workflow-footer-nav { display: flex; align-items: center; gap: var(--crisp-space-1-5); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
3689
3898
|
}
|
|
3690
3899
|
|
|
3691
3900
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -3802,6 +4011,20 @@
|
|
|
3802
4011
|
}
|
|
3803
4012
|
}
|
|
3804
4013
|
|
|
4014
|
+
.crisp-recordpicker {
|
|
4015
|
+
display: flex; flex-direction: column; box-sizing: border-box; width: 350px; font-family: var(--crisp-font-sans);
|
|
4016
|
+
& .crisp-recordpicker-search { display: flex; align-items: center; gap: var(--crisp-space-2); height: 36px; padding: 0 var(--crisp-space-3); color: var(--crisp-fg-muted); }
|
|
4017
|
+
& .crisp-recordpicker-search svg { flex-shrink: 0; }
|
|
4018
|
+
& .crisp-recordpicker-search-input { flex: 1; min-width: 0; border: none; outline: none; background: none; font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); line-height: 20px; color: var(--crisp-fg-primary); }
|
|
4019
|
+
& .crisp-recordpicker-search-input::placeholder { color: var(--crisp-fg-muted); }
|
|
4020
|
+
& .crisp-recordpicker-loading { display: flex; align-items: center; justify-content: center; gap: 10px; padding: var(--crisp-space-8) var(--crisp-space-3); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); line-height: 20px; }
|
|
4021
|
+
& .crisp-recordpicker-empty { padding: var(--crisp-space-4) var(--crisp-space-3); text-align: center; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
4022
|
+
& .crisp-recordpicker-list { display: flex; flex-direction: column; margin: 0; padding: var(--crisp-space-1); list-style: none; max-height: 280px; overflow-y: auto; }
|
|
4023
|
+
& .crisp-recordpicker-option { display: flex; align-items: center; gap: var(--crisp-space-2); width: 100%; box-sizing: border-box; height: 32px; padding: 0 var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-md); background: none; font-family: inherit; font-size: var(--crisp-text-lg); color: var(--crisp-fg-primary); text-align: start; cursor: pointer; }
|
|
4024
|
+
& .crisp-recordpicker-option svg { flex-shrink: 0; color: var(--crisp-fg-muted); }
|
|
4025
|
+
& .crisp-recordpicker-option:hover, & .crisp-recordpicker-option[data-highlighted] { background: var(--crisp-bg-raised); }
|
|
4026
|
+
}
|
|
4027
|
+
|
|
3805
4028
|
.crisp-richtext {
|
|
3806
4029
|
display: flex; flex-direction: column; box-sizing: border-box; font-family: var(--crisp-font-sans); color: var(--crisp-fg-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
3807
4030
|
& .crisp-rte-title { font-size: 32px; line-height: 36px; font-weight: var(--crisp-weight-semibold); letter-spacing: -0.6px; color: var(--crisp-fg-primary); outline: none; }
|
|
@@ -3960,6 +4183,53 @@
|
|
|
3960
4183
|
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium);
|
|
3961
4184
|
color: color-mix(in srgb, var(--crisp-fg-primary) 50%, transparent);
|
|
3962
4185
|
}
|
|
4186
|
+
|
|
4187
|
+
/* crisp#568: the "Discard changes" / "Save for everyone ▾" bar a
|
|
4188
|
+
consumer swaps into its own toolbar's trailing slot (TableToolbar's
|
|
4189
|
+
own children prop already documents "right-aligned actions after the
|
|
4190
|
+
count") while the loaded view is dirty -- measured live on
|
|
4191
|
+
app.attio.com replacing that exact slot's usual Import/Export + New
|
|
4192
|
+
button. Not rendered inside SavedViews' own trigger/panel, which
|
|
4193
|
+
stays untouched; this is its own export, SavedViewsSaveBar. */
|
|
4194
|
+
.crisp-savedviews-savebar { display: flex; align-items: center; gap: var(--crisp-space-2); }
|
|
4195
|
+
/* Rest-state color is a 55% color-mix of fgPrimary -- measured
|
|
4196
|
+
identical to recordpanel's own ".crisp-recordpanel-section-action"
|
|
4197
|
+
(its own comment: "measured 10px/400, a lighter mix..." -- font size
|
|
4198
|
+
there was the SAME outer-vs-inner-div miss #688 corrected; the 55%
|
|
4199
|
+
mix itself checks out independently here). Hover repeats crisp's own
|
|
4200
|
+
already-measured Button ghost intent exactly (bgRaised + fgPrimary),
|
|
4201
|
+
confirmed live (hover bg rgba(0,0,0,.04) + ink text matches bgRaised
|
|
4202
|
+
+ fgPrimary bit for bit) -- reused, not re-derived. */
|
|
4203
|
+
.crisp-savedviews-savebar-discard {
|
|
4204
|
+
box-sizing: border-box; display: inline-flex; align-items: center; height: 28px;
|
|
4205
|
+
margin: 0; padding-inline: var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-md);
|
|
4206
|
+
background: none; font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium);
|
|
4207
|
+
color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); cursor: pointer;
|
|
4208
|
+
transition: background-color .12s ease, color .12s ease;
|
|
4209
|
+
}
|
|
4210
|
+
.crisp-savedviews-savebar-discard:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
4211
|
+
/* the split "Save for everyone ▾" pill -- two adjacent buttons sharing
|
|
4212
|
+
one visual pill (measured: label half rounds only its outer/left
|
|
4213
|
+
corners, the chevron half only its outer/right corners, seamless
|
|
4214
|
+
between). Fill is crisp's OWN measured bgBrandContrast, not Attio's
|
|
4215
|
+
own literal button blue -- the owner's directive is Attio structure/
|
|
4216
|
+
sizing, seed-identity color (crisp direction doc). Hover/active reuse
|
|
4217
|
+
Button's own already-measured primary-intent brightness filter
|
|
4218
|
+
(crisp#910) rather than Attio's own literal darker fill, for the
|
|
4219
|
+
same reason. */
|
|
4220
|
+
.crisp-savedviews-savebar-save-group { display: flex; }
|
|
4221
|
+
.crisp-savedviews-savebar-save, .crisp-savedviews-savebar-save-chevron {
|
|
4222
|
+
box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
|
|
4223
|
+
height: 28px; margin: 0; border: none; background: var(--crisp-bg-brand-contrast); color: var(--crisp-fg-on-brand);
|
|
4224
|
+
cursor: pointer; transition: filter .2s;
|
|
4225
|
+
}
|
|
4226
|
+
.crisp-savedviews-savebar-save:hover, .crisp-savedviews-savebar-save-chevron:hover { filter: brightness(0.96); }
|
|
4227
|
+
.crisp-savedviews-savebar-save:active, .crisp-savedviews-savebar-save-chevron:active { filter: brightness(0.92); }
|
|
4228
|
+
.crisp-savedviews-savebar-save {
|
|
4229
|
+
padding-inline: var(--crisp-space-2) var(--crisp-space-1-5); border-radius: var(--crisp-radius-md) 0 0 var(--crisp-radius-md);
|
|
4230
|
+
font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium);
|
|
4231
|
+
}
|
|
4232
|
+
.crisp-savedviews-savebar-save-chevron { width: 28px; padding: 0; border-radius: 0 var(--crisp-radius-md) var(--crisp-radius-md) 0; }
|
|
3963
4233
|
|
|
3964
4234
|
.crisp-savedviews {
|
|
3965
4235
|
position: relative; display: inline-flex; font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; /* crisp/#772 follow-up, re-measured live 2026-09-25 in the trigger's
|
|
@@ -4036,6 +4306,116 @@
|
|
|
4036
4306
|
}
|
|
4037
4307
|
|
|
4038
4308
|
|
|
4309
|
+
.crisp-share-content {
|
|
4310
|
+
font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
4311
|
+
position: fixed; z-index: 70; pointer-events: auto; box-sizing: border-box;
|
|
4312
|
+
width: 440px; max-width: 92vw;
|
|
4313
|
+
padding: var(--crisp-space-3); display: flex; flex-direction: column; gap: var(--crisp-space-3);
|
|
4314
|
+
border-radius: var(--crisp-radius-xl); background: var(--crisp-bg-popover); color: var(--crisp-fg-primary);
|
|
4315
|
+
box-shadow: inset 0 0 0 1px var(--crisp-ring-popover), 0 0 0 1px var(--crisp-shadow-popover1), 0 4px 8px -4px var(--crisp-shadow-popover2), 0 4px 12px -2px var(--crisp-shadow-popover3);
|
|
4316
|
+
opacity: 1; transform: none; transform-origin: top right;
|
|
4317
|
+
transition: opacity 0.08s ease, transform 0.08s ease;
|
|
4318
|
+
@starting-style { opacity: 0; transform: scale(0.97) translateY(-1px); }
|
|
4319
|
+
}
|
|
4320
|
+
.crisp-share-content[data-up] { transform-origin: bottom right; }
|
|
4321
|
+
|
|
4322
|
+
.crisp-share-tabs { display: flex; align-items: center; gap: var(--crisp-space-1); }
|
|
4323
|
+
.crisp-share-tab {
|
|
4324
|
+
box-sizing: border-box; display: inline-flex; align-items: center; gap: var(--crisp-space-1-5);
|
|
4325
|
+
height: var(--crisp-size-row); padding: 0 var(--crisp-space-2); border: none; border-radius: var(--crisp-radius-md);
|
|
4326
|
+
background: transparent; color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent);
|
|
4327
|
+
font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.07px;
|
|
4328
|
+
cursor: pointer; transition: background-color .12s ease, color .12s ease;
|
|
4329
|
+
}
|
|
4330
|
+
.crisp-share-tab svg { flex-shrink: 0; }
|
|
4331
|
+
.crisp-share-tab:hover { color: var(--crisp-fg-primary); }
|
|
4332
|
+
.crisp-share-tab[aria-selected="true"] { background: var(--crisp-bg-surface-muted); color: var(--crisp-fg-primary); }
|
|
4333
|
+
|
|
4334
|
+
.crisp-share-row { display: flex; align-items: center; gap: var(--crisp-space-2); min-height: 34px; }
|
|
4335
|
+
.crisp-share-row-label { flex: 1; min-width: 0; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); letter-spacing: -0.07px; }
|
|
4336
|
+
.crisp-share-row .crisp-select { flex-shrink: 0; }
|
|
4337
|
+
.crisp-share-row .crisp-select .crisp-select-value,
|
|
4338
|
+
.crisp-share-row .crisp-select .crisp-select-chevron { color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); }
|
|
4339
|
+
|
|
4340
|
+
.crisp-share-clear {
|
|
4341
|
+
align-self: flex-start; margin: 0; padding: 0; border: none; background: none;
|
|
4342
|
+
font-family: inherit; font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-medium);
|
|
4343
|
+
color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); cursor: pointer;
|
|
4344
|
+
}
|
|
4345
|
+
.crisp-share-clear:hover { color: var(--crisp-fg-primary); text-decoration: underline; }
|
|
4346
|
+
|
|
4347
|
+
.crisp-share-section-label {
|
|
4348
|
+
margin: 0; font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 50%, transparent);
|
|
4349
|
+
}
|
|
4350
|
+
.crisp-share-members { display: flex; flex-direction: column; gap: var(--crisp-space-2); }
|
|
4351
|
+
.crisp-share-member { display: flex; align-items: center; gap: var(--crisp-space-2); }
|
|
4352
|
+
.crisp-share-member-text { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: var(--crisp-space-1-5); overflow: hidden; }
|
|
4353
|
+
.crisp-share-member-name { flex-shrink: 0; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); letter-spacing: -0.07px; }
|
|
4354
|
+
.crisp-share-member-email { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); letter-spacing: -0.07px; }
|
|
4355
|
+
.crisp-share-member .crisp-select { flex-shrink: 0; }
|
|
4356
|
+
.crisp-share-member .crisp-select .crisp-select-value,
|
|
4357
|
+
.crisp-share-member .crisp-select .crisp-select-chevron { color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); }
|
|
4358
|
+
|
|
4359
|
+
.crisp-share-automations-row { display: flex; align-items: center; gap: var(--crisp-space-2); }
|
|
4360
|
+
.crisp-share-automations-row .crisp-input { flex: 1; min-width: 0; }
|
|
4361
|
+
.crisp-share-automations-row .crisp-select { flex-shrink: 0; }
|
|
4362
|
+
|
|
4363
|
+
.crisp-share-add {
|
|
4364
|
+
flex-shrink: 0; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
|
|
4365
|
+
height: 32px; padding: 0 var(--crisp-space-2-5); border: none; border-radius: var(--crisp-radius-lg);
|
|
4366
|
+
background: var(--crisp-bg-brand-solid); color: var(--crisp-fg-on-brand);
|
|
4367
|
+
font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); letter-spacing: -0.07px;
|
|
4368
|
+
cursor: pointer; transition: background-color .12s ease, opacity .12s ease;
|
|
4369
|
+
}
|
|
4370
|
+
.crisp-share-add:hover:not(:disabled) { background: var(--crisp-bg-brand-solid-pressed); }
|
|
4371
|
+
.crisp-share-add:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
4372
|
+
|
|
4373
|
+
.crisp-share-learnmore {
|
|
4374
|
+
display: inline-flex; align-items: center; gap: var(--crisp-space-1-5);
|
|
4375
|
+
font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent);
|
|
4376
|
+
text-decoration: none;
|
|
4377
|
+
}
|
|
4378
|
+
.crisp-share-learnmore:hover { color: var(--crisp-fg-primary); }
|
|
4379
|
+
.crisp-share-learnmore svg { flex-shrink: 0; }
|
|
4380
|
+
|
|
4381
|
+
.crisp-share {
|
|
4382
|
+
display: contents; font-family: var(--crisp-font-sans);
|
|
4383
|
+
}
|
|
4384
|
+
|
|
4385
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4386
|
+
.crisp-share, .crisp-share * {
|
|
4387
|
+
animation-duration: 0.01ms !important;
|
|
4388
|
+
animation-iteration-count: 1 !important;
|
|
4389
|
+
transition-duration: 0.01ms !important;
|
|
4390
|
+
}
|
|
4391
|
+
}
|
|
4392
|
+
|
|
4393
|
+
|
|
4394
|
+
/* Overrides Drawer's own 420px default (specificity: .crisp-drawer
|
|
4395
|
+
.crisp-drawer-content.crisp-shortcutssheet-panel, higher than
|
|
4396
|
+
Drawer's .crisp-drawer .crisp-drawer-content regardless of which
|
|
4397
|
+
chunk of dist/styles.css concatenates first). */
|
|
4398
|
+
.crisp-drawer .crisp-drawer-content.crisp-shortcutssheet-panel { width: 360px; }
|
|
4399
|
+
|
|
4400
|
+
.crisp-shortcutssheet-body { display: flex; flex-direction: column; gap: var(--crisp-space-2-5); }
|
|
4401
|
+
.crisp-shortcutssheet-section-label {
|
|
4402
|
+
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium);
|
|
4403
|
+
color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent);
|
|
4404
|
+
}
|
|
4405
|
+
.crisp-shortcutssheet-section-label:not(:first-child) { margin-top: var(--crisp-space-2-5); }
|
|
4406
|
+
.crisp-shortcutssheet-row { display: flex; align-items: center; justify-content: space-between; gap: var(--crisp-space-1); }
|
|
4407
|
+
.crisp-shortcutssheet-desc {
|
|
4408
|
+
font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium);
|
|
4409
|
+
color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent);
|
|
4410
|
+
}
|
|
4411
|
+
.crisp-shortcutssheet-keys { display: flex; align-items: center; gap: var(--crisp-space-1); flex-shrink: 0; }
|
|
4412
|
+
.crisp-shortcutssheet-then {
|
|
4413
|
+
font-size: var(--crisp-text-xs); font-weight: var(--crisp-weight-medium);
|
|
4414
|
+
color: color-mix(in srgb, var(--crisp-fg-primary) 50%, transparent);
|
|
4415
|
+
}
|
|
4416
|
+
|
|
4417
|
+
|
|
4418
|
+
|
|
4039
4419
|
.crisp-sidebar-ws-menu-content { width: 280px; }
|
|
4040
4420
|
|
|
4041
4421
|
.crisp-sidebar {
|
|
@@ -4088,6 +4468,43 @@
|
|
|
4088
4468
|
& .crisp-statlist-empty { padding: var(--crisp-space-4) 0; text-align: center; font-size: var(--crisp-text-md); color: var(--crisp-fg-muted); }
|
|
4089
4469
|
}
|
|
4090
4470
|
|
|
4471
|
+
.crisp-taskeditpopover { position: fixed; z-index: 70; pointer-events: auto; opacity: 1; transform: scale(1); transition: opacity 0.08s ease, transform 0.08s ease; @starting-style { opacity: 0; transform: scale(0.97) translateY(-4px); } }
|
|
4472
|
+
.crisp-taskeditpopover {
|
|
4473
|
+
display: flex; flex-direction: column; box-sizing: border-box; width: 800px; max-width: 92vw; border-radius: var(--crisp-radius-xl); background: var(--crisp-bg-surface); box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.07); font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
4474
|
+
& .crisp-taskeditpopover-header { display: flex; align-items: center; justify-content: space-between; gap: var(--crisp-space-2); height: 44px; box-sizing: border-box; padding: 0 var(--crisp-space-2) 0 var(--crisp-space-3); border-bottom: 1px solid var(--crisp-border-subtle); }
|
|
4475
|
+
& .crisp-taskeditpopover-heading { display: flex; align-items: center; gap: var(--crisp-space-1); font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); }
|
|
4476
|
+
& .crisp-taskeditpopover-heading svg { flex-shrink: 0; color: var(--crisp-fg-muted); }
|
|
4477
|
+
& .crisp-taskeditpopover-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: none; color: var(--crisp-fg-muted); font-family: inherit; cursor: pointer; }
|
|
4478
|
+
& .crisp-taskeditpopover-close:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
4479
|
+
& .crisp-taskeditpopover-body { display: flex; align-items: center; gap: var(--crisp-space-2-5); min-height: 52px; box-sizing: border-box; padding: var(--crisp-space-3); }
|
|
4480
|
+
& .crisp-taskeditpopover-check { appearance: none; -webkit-appearance: none; box-sizing: border-box; flex-shrink: 0; margin: 0; width: 16px; height: 16px; border: none; border-radius: var(--crisp-radius-full); background: var(--crisp-bg-surface); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 9%, transparent); cursor: pointer; }
|
|
4481
|
+
& .crisp-taskeditpopover-check:hover { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 30%, transparent); }
|
|
4482
|
+
& .crisp-taskeditpopover-check:checked { background: var(--crisp-bg-brand-solid) center / 10px no-repeat; box-shadow: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5 5 9l4.5-5'/%3E%3C/svg%3E"); }
|
|
4483
|
+
& .crisp-taskeditpopover-title { flex: 1; min-width: 0; border: none; border-radius: var(--crisp-radius-sm); outline: none; background: none; font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); }
|
|
4484
|
+
& .crisp-taskeditpopover-title:focus-visible { outline: 2px solid var(--crisp-stroke-focus-ring); outline-offset: 2px; }
|
|
4485
|
+
& .crisp-taskeditpopover-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--crisp-space-2); height: 44px; box-sizing: border-box; padding: 0 var(--crisp-space-2) 0 var(--crisp-space-3); }
|
|
4486
|
+
& .crisp-taskeditpopover-chips { display: flex; align-items: center; gap: var(--crisp-space-1); min-width: 0; }
|
|
4487
|
+
& .crisp-taskeditpopover-chip { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; height: 28px; box-sizing: border-box; padding: 4px 8px 4px 6px; border: none; border-radius: var(--crisp-radius-md); background: none; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; font-size: 10px; white-space: nowrap; cursor: pointer; }
|
|
4488
|
+
& .crisp-taskeditpopover-chip svg { flex-shrink: 0; }
|
|
4489
|
+
& .crisp-taskeditpopover-chip:hover { background: var(--crisp-bg-raised); }
|
|
4490
|
+
& .crisp-taskeditpopover-actions { display: flex; align-items: center; gap: var(--crisp-space-2); flex-shrink: 0; }
|
|
4491
|
+
& .crisp-taskeditpopover-kebab { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 0; padding: 6px; border: none; border-radius: var(--crisp-radius-md); background: none; color: var(--crisp-fg-primary); font-family: inherit; cursor: pointer; }
|
|
4492
|
+
& .crisp-taskeditpopover-kebab:hover { background: var(--crisp-bg-raised); }
|
|
4493
|
+
& .crisp-taskeditpopover-cancel { display: inline-flex; align-items: center; gap: 6px; height: 28px; box-sizing: border-box; padding: 4px 6px 4px 8px; border: none; border-radius: var(--crisp-radius-md); background: none; color: var(--crisp-fg-primary); font-family: inherit; font-size: 10px; cursor: pointer; }
|
|
4494
|
+
& .crisp-taskeditpopover-cancel:hover { background: var(--crisp-bg-raised); }
|
|
4495
|
+
& .crisp-taskeditpopover-save { display: inline-flex; align-items: center; gap: 6px; height: 28px; box-sizing: border-box; padding: 4px 6px 4px 8px; border: none; border-radius: var(--crisp-radius-md); background: var(--crisp-bg-brand-solid); color: var(--crisp-fg-on-brand); font-family: inherit; font-size: 10px; cursor: pointer; }
|
|
4496
|
+
& .crisp-taskeditpopover-save:hover { background: var(--crisp-bg-brand-solid-pressed); }
|
|
4497
|
+
& .crisp-taskeditpopover-key { color: color-mix(in srgb, currentColor 55%, transparent); font-size: 10px; }
|
|
4498
|
+
}
|
|
4499
|
+
|
|
4500
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4501
|
+
.crisp-taskeditpopover, .crisp-taskeditpopover * {
|
|
4502
|
+
animation-duration: 0.01ms !important;
|
|
4503
|
+
animation-iteration-count: 1 !important;
|
|
4504
|
+
transition-duration: 0.01ms !important;
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
|
|
4091
4508
|
.crisp-tasklist {
|
|
4092
4509
|
display: flex; flex-direction: column; box-sizing: border-box; font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
4093
4510
|
& .crisp-tasklist-group { display: flex; align-items: center; gap: var(--crisp-space-1-5); height: 36px; padding: 0 var(--crisp-space-2); font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-muted); }
|
|
@@ -4207,3 +4624,8 @@
|
|
|
4207
4624
|
& .crisp-workspacegeneralsettings-rowtitle { font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-primary); }
|
|
4208
4625
|
& .crisp-workspacegeneralsettings-dangerwarning { font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
4209
4626
|
}
|
|
4627
|
+
|
|
4628
|
+
|
|
4629
|
+
[dir="rtl"] .crisp-menu-item svg[data-rtl-flip] { transform: scaleX(-1); }
|
|
4630
|
+
.crisp-menu-item svg.crisp-workspaceswitchermenu-check { color: var(--crisp-fg-brand-contrast); }
|
|
4631
|
+
|