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