@crisp-ui-kit/crisp 0.56.0 → 0.57.1
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/accentpicker.css +5 -0
- package/dist/accentpicker.d.ts +7 -0
- package/dist/accentpicker.layered.css +7 -0
- package/dist/avatar.css +1 -1
- package/dist/avatar.layered.css +1 -1
- package/dist/badge.css +2 -2
- package/dist/badge.layered.css +2 -2
- package/dist/button.css +3 -3
- package/dist/button.layered.css +3 -3
- package/dist/callout.css +6 -0
- package/dist/callout.d.ts +2 -2
- package/dist/callout.layered.css +6 -0
- package/dist/cjs/components/accentpicker/accentpicker.js +66 -0
- package/dist/cjs/components/accentpicker/accentpicker.recipe.js +25 -0
- package/dist/cjs/components/accentpicker/index.js +7 -0
- package/dist/cjs/components/avatar/avatar.recipe.js +4 -1
- package/dist/cjs/components/badge/badge.recipe.js +16 -2
- package/dist/cjs/components/button/button.recipe.js +16 -6
- package/dist/cjs/components/callout/callout.js +2 -2
- package/dist/cjs/components/callout/callout.recipe.js +15 -2
- package/dist/cjs/components/input/input.js +2 -2
- package/dist/cjs/components/input/input.recipe.js +14 -0
- package/dist/cjs/components/menu/menu.js +2 -2
- package/dist/cjs/components/menu/menu.recipe.js +8 -0
- package/dist/cjs/components/multiselect/multiselect.js +23 -10
- package/dist/cjs/components/multiselect/multiselect.recipe.js +104 -65
- package/dist/cjs/components/progress/progress.js +21 -4
- package/dist/cjs/components/progress/progress.recipe.js +30 -0
- package/dist/cjs/components/select/listbox-keyboard.js +7 -1
- package/dist/cjs/components/select/select.js +24 -11
- package/dist/cjs/components/select/select.recipe.js +177 -78
- package/dist/cjs/components/tabletoolbar/tabletoolbar.js +3 -3
- package/dist/cjs/components/tabletoolbar/tabletoolbar.recipe.js +26 -1
- package/dist/cjs/components/tabs/tabs.js +63 -4
- package/dist/cjs/components/tabs/tabs.recipe.js +13 -0
- package/dist/cjs/components/text/text.recipe.js +8 -7
- package/dist/cjs/components/textarea/textarea.js +3 -2
- package/dist/cjs/components/textarea/textarea.recipe.js +2 -1
- package/dist/cjs/components/textlink/textlink.js +2 -2
- package/dist/cjs/components/textlink/textlink.recipe.js +24 -3
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/product/recordpage/recordpage.js +61 -7
- package/dist/cjs/tokens/elevation.js +7 -0
- package/dist/cjs/tokens/palette.js +120 -25
- package/dist/cjs/tokens/scale.js +9 -0
- package/dist/cjs/tokens/semantic.js +42 -0
- package/dist/esm/components/accentpicker/accentpicker.js +30 -0
- package/dist/esm/components/accentpicker/accentpicker.recipe.js +22 -0
- package/dist/esm/components/accentpicker/index.js +2 -0
- package/dist/esm/components/avatar/avatar.recipe.js +4 -1
- package/dist/esm/components/badge/badge.recipe.js +16 -2
- package/dist/esm/components/button/button.recipe.js +16 -6
- package/dist/esm/components/callout/callout.js +2 -2
- package/dist/esm/components/callout/callout.recipe.js +15 -2
- package/dist/esm/components/input/input.js +3 -3
- package/dist/esm/components/input/input.recipe.js +14 -0
- package/dist/esm/components/menu/menu.js +2 -2
- package/dist/esm/components/menu/menu.recipe.js +8 -0
- package/dist/esm/components/multiselect/multiselect.js +23 -10
- package/dist/esm/components/multiselect/multiselect.recipe.js +104 -65
- package/dist/esm/components/progress/progress.js +22 -5
- package/dist/esm/components/progress/progress.recipe.js +30 -0
- package/dist/esm/components/select/listbox-keyboard.js +7 -1
- package/dist/esm/components/select/select.js +24 -11
- package/dist/esm/components/select/select.recipe.js +177 -78
- package/dist/esm/components/tabletoolbar/tabletoolbar.js +3 -3
- package/dist/esm/components/tabletoolbar/tabletoolbar.recipe.js +26 -1
- package/dist/esm/components/tabs/tabs.js +63 -4
- package/dist/esm/components/tabs/tabs.recipe.js +13 -0
- package/dist/esm/components/text/text.recipe.js +8 -7
- package/dist/esm/components/textarea/textarea.js +3 -2
- package/dist/esm/components/textarea/textarea.recipe.js +2 -1
- package/dist/esm/components/textlink/textlink.js +2 -2
- package/dist/esm/components/textlink/textlink.recipe.js +24 -3
- package/dist/esm/index.js +1 -0
- package/dist/esm/product/recordpage/recordpage.js +62 -8
- package/dist/esm/tokens/elevation.js +7 -0
- package/dist/esm/tokens/palette.js +120 -25
- package/dist/esm/tokens/scale.js +9 -0
- package/dist/esm/tokens/semantic.js +42 -0
- package/dist/input.css +11 -0
- package/dist/input.d.ts +2 -2
- package/dist/input.layered.css +11 -0
- package/dist/menu.css +8 -0
- package/dist/menu.layered.css +8 -0
- package/dist/multiselect.css +57 -29
- package/dist/multiselect.d.ts +3 -1
- package/dist/multiselect.layered.css +57 -29
- package/dist/native/tokens.d.ts +1 -1
- package/dist/native/tokens.js +82 -28
- package/dist/progress.css +3 -0
- package/dist/progress.layered.css +3 -0
- package/dist/select.css +100 -42
- package/dist/select.d.ts +3 -2
- package/dist/select.layered.css +100 -42
- package/dist/styles.css +268 -93
- package/dist/styles.layered.css +268 -93
- package/dist/tabletoolbar.css +8 -1
- package/dist/tabletoolbar.layered.css +8 -1
- package/dist/tabs.css +6 -0
- package/dist/tabs.layered.css +6 -0
- package/dist/text.css +1 -1
- package/dist/text.layered.css +1 -1
- package/dist/textarea.css +2 -1
- package/dist/textarea.layered.css +2 -1
- package/dist/textlink.css +11 -2
- package/dist/textlink.d.ts +2 -1
- package/dist/textlink.layered.css +11 -2
- package/dist/tokens.css +43 -11
- package/dist/tokens.json +82 -28
- package/dist/types/components/accentpicker/accentpicker.d.ts +23 -0
- package/dist/types/components/accentpicker/accentpicker.recipe.d.ts +3 -0
- package/dist/types/components/accentpicker/index.d.ts +2 -0
- package/dist/types/components/button/button.recipe.d.ts +2 -2
- package/dist/types/components/callout/callout.d.ts +9 -1
- package/dist/types/components/callout/callout.recipe.d.ts +12 -2
- package/dist/types/components/input/input.d.ts +14 -0
- package/dist/types/components/input/input.recipe.d.ts +3 -0
- package/dist/types/components/menu/menu.d.ts +7 -1
- package/dist/types/components/multiselect/multiselect.d.ts +25 -6
- package/dist/types/components/multiselect/multiselect.recipe.d.ts +27 -0
- package/dist/types/components/progress/progress.d.ts +16 -4
- package/dist/types/components/progress/progress.recipe.d.ts +22 -0
- package/dist/types/components/select/listbox-keyboard.d.ts +10 -1
- package/dist/types/components/select/select.d.ts +29 -6
- package/dist/types/components/select/select.recipe.d.ts +25 -10
- package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +14 -0
- package/dist/types/components/tabs/tabs.d.ts +9 -1
- package/dist/types/components/textarea/textarea.d.ts +16 -0
- package/dist/types/components/textlink/textlink.d.ts +8 -1
- package/dist/types/components/textlink/textlink.recipe.d.ts +10 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/product/recordpage/recordpage.d.ts +61 -1
- package/dist/types/tokens/contract.d.ts +16 -3
- package/dist/types/tokens/elevation.d.ts +7 -0
- package/dist/types/tokens/palette.d.ts +55 -11
- package/dist/types/tokens/scale.d.ts +6 -0
- package/dist/types/tokens/semantic.d.ts +33 -0
- package/package.json +6 -1
|
@@ -166,7 +166,14 @@
|
|
|
166
166
|
& .crisp-tabletoolbar-tool--raised { border: none; 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; cursor: pointer; }
|
|
167
167
|
|
|
168
168
|
& .crisp-tabletoolbar-sorted-prefix { color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
169
|
-
& .crisp-tabletoolbar-sorted-count {
|
|
169
|
+
& .crisp-tabletoolbar-sorted-count { display: inline-flex; align-items: center; height: 16px; box-sizing: border-box;
|
|
170
|
+
padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-sm); background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent);
|
|
171
|
+
box-shadow: inset 0 0 0 1px var(--crisp-border-subtle); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-neutral-soft); }
|
|
172
|
+
|
|
173
|
+
& .crisp-tabletoolbar-tool-count { display: inline-flex; align-items: center; height: 16px; box-sizing: border-box;
|
|
174
|
+
padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-sm); background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent);
|
|
175
|
+
box-shadow: inset 0 0 0 1px var(--crisp-border-subtle); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-neutral-soft);
|
|
176
|
+
font-variant-numeric: tabular-nums; }
|
|
170
177
|
[dir="rtl"] & [data-rtl-flip] { transform: scaleX(-1); }
|
|
171
178
|
}
|
|
172
179
|
|
package/dist/tabs.css
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
& .crisp-tabs-tab-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 14px; height: 14px; padding: 0 var(--crisp-space-1); border-radius: 4px; background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent); box-shadow: inset 0 0 0 1px var(--crisp-border-subtle); font-size: 10px; line-height: 14px; font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-neutral-soft); }
|
|
12
12
|
& .crisp-tabs-tab[data-selected] .crisp-tabs-tab-badge { color: var(--crisp-fg-primary); }
|
|
13
13
|
& .crisp-tabs-indicator { position: absolute; bottom: 0; left: 0; z-index: 1; height: 1px; background: var(--crisp-fg-primary); border-radius: 2px 2px 0 0; transition: transform .2s cubic-bezier(.4,0,.2,1), width .2s cubic-bezier(.4,0,.2,1); pointer-events: none; }
|
|
14
|
+
/* crisp#863: the "+N more" overflow trigger, measured live -- its computed style is identical to a plain .crisp-tabs-tab (same pill, same 6px icon/label gap the tab class already gives via space["1.5"]), and the dropdown it opens is crisp's own Menu/
|
|
15
|
+
MenuItem chrome (already matches Attio's popover, nothing new to style there). Only the wrapper needs a rule: an overflowed tab (or the trigger itself, when nothing is hidden) is taken out of the flex row and out of the a11y tree without ever making its own offsetWidth unmeasurable the way display:none would -- that's what
|
|
16
|
+
lets the tabs.tsx effect recompute the cutoff from cached widths on
|
|
17
|
+
every resize with no flash of an unclipped row. */
|
|
18
|
+
& .crisp-tabs-more { display: inline-flex; }
|
|
19
|
+
& [data-tabs-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; }
|
|
14
20
|
& .crisp-tabs-panel { display: flex; flex-direction: column; flex: 1; min-height: 0; padding-top: var(--crisp-space-8); }
|
|
15
21
|
& .crisp-tabs-panel:focus-visible { outline: none; }
|
|
16
22
|
}
|
package/dist/tabs.layered.css
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
& .crisp-tabs-tab-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 14px; height: 14px; padding: 0 var(--crisp-space-1); border-radius: 4px; background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent); box-shadow: inset 0 0 0 1px var(--crisp-border-subtle); font-size: 10px; line-height: 14px; font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-neutral-soft); }
|
|
13
13
|
& .crisp-tabs-tab[data-selected] .crisp-tabs-tab-badge { color: var(--crisp-fg-primary); }
|
|
14
14
|
& .crisp-tabs-indicator { position: absolute; bottom: 0; left: 0; z-index: 1; height: 1px; background: var(--crisp-fg-primary); border-radius: 2px 2px 0 0; transition: transform .2s cubic-bezier(.4,0,.2,1), width .2s cubic-bezier(.4,0,.2,1); pointer-events: none; }
|
|
15
|
+
/* crisp#863: the "+N more" overflow trigger, measured live -- its computed style is identical to a plain .crisp-tabs-tab (same pill, same 6px icon/label gap the tab class already gives via space["1.5"]), and the dropdown it opens is crisp's own Menu/
|
|
16
|
+
MenuItem chrome (already matches Attio's popover, nothing new to style there). Only the wrapper needs a rule: an overflowed tab (or the trigger itself, when nothing is hidden) is taken out of the flex row and out of the a11y tree without ever making its own offsetWidth unmeasurable the way display:none would -- that's what
|
|
17
|
+
lets the tabs.tsx effect recompute the cutoff from cached widths on
|
|
18
|
+
every resize with no flash of an unclipped row. */
|
|
19
|
+
& .crisp-tabs-more { display: inline-flex; }
|
|
20
|
+
& [data-tabs-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; }
|
|
15
21
|
& .crisp-tabs-panel { display: flex; flex-direction: column; flex: 1; min-height: 0; padding-top: var(--crisp-space-8); }
|
|
16
22
|
& .crisp-tabs-panel:focus-visible { outline: none; }
|
|
17
23
|
}
|
package/dist/text.css
CHANGED
package/dist/text.layered.css
CHANGED
package/dist/textarea.css
CHANGED
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
&[data-invalid] .crisp-textarea-wrap::after { border-color: var(--crisp-bg-danger); }
|
|
17
17
|
&[data-invalid] .crisp-textarea-wrap:focus-within::after { border-color: var(--crisp-bg-danger); }
|
|
18
18
|
&[data-counted] .crisp-textarea-field { padding-bottom: var(--crisp-space-5); }
|
|
19
|
-
& .crisp-textarea-count { position: absolute; inset-inline-end: 14px; bottom: var(--crisp-space-2-5); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); pointer-events: none; }
|
|
19
|
+
& .crisp-textarea-count { position: absolute; inset-inline-end: 14px; bottom: var(--crisp-space-2-5); display: flex; align-items: center; gap: var(--crisp-space-1); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); pointer-events: none; }
|
|
20
20
|
& .crisp-textarea-count[data-over] { color: var(--crisp-bg-danger); }
|
|
21
|
+
& .crisp-textarea-progress { flex-shrink: 0; }
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
&[data-invalid] .crisp-textarea-wrap::after { border-color: var(--crisp-bg-danger); }
|
|
18
18
|
&[data-invalid] .crisp-textarea-wrap:focus-within::after { border-color: var(--crisp-bg-danger); }
|
|
19
19
|
&[data-counted] .crisp-textarea-field { padding-bottom: var(--crisp-space-5); }
|
|
20
|
-
& .crisp-textarea-count { position: absolute; inset-inline-end: 14px; bottom: var(--crisp-space-2-5); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); pointer-events: none; }
|
|
20
|
+
& .crisp-textarea-count { position: absolute; inset-inline-end: 14px; bottom: var(--crisp-space-2-5); display: flex; align-items: center; gap: var(--crisp-space-1); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); pointer-events: none; }
|
|
21
21
|
& .crisp-textarea-count[data-over] { color: var(--crisp-bg-danger); }
|
|
22
|
+
& .crisp-textarea-progress { flex-shrink: 0; }
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
@media (prefers-reduced-motion: reduce) {
|
package/dist/textlink.css
CHANGED
|
@@ -3,9 +3,18 @@
|
|
|
3
3
|
&:hover { text-decoration: underline; }
|
|
4
4
|
}
|
|
5
5
|
.crisp-textlink--tone_brand {
|
|
6
|
-
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-
|
|
6
|
+
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-brand-contrast);
|
|
7
7
|
}
|
|
8
8
|
.crisp-textlink--tone_muted {
|
|
9
9
|
font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-regular); color: var(--crisp-fg-muted);
|
|
10
|
-
&:hover { color: var(--crisp-
|
|
10
|
+
&:hover { color: var(--crisp-fg-brand-contrast); }
|
|
11
|
+
}
|
|
12
|
+
.crisp-textlink--size_sm {
|
|
13
|
+
font-size: var(--crisp-text-sm);
|
|
14
|
+
}
|
|
15
|
+
.crisp-textlink--size_md {
|
|
16
|
+
font-size: var(--crisp-text-md);
|
|
17
|
+
}
|
|
18
|
+
.crisp-textlink--size_lg {
|
|
19
|
+
font-size: var(--crisp-text-lg);
|
|
11
20
|
}
|
package/dist/textlink.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { RecipeFn } from "../core/types";
|
|
|
2
2
|
|
|
3
3
|
export interface TextlinkVariants {
|
|
4
4
|
tone?: "brand" | "muted";
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
5
6
|
}
|
|
6
7
|
|
|
7
|
-
export declare const textlinkRecipe: RecipeFn<{ tone: { brand: string; muted: string } }>;
|
|
8
|
+
export declare const textlinkRecipe: RecipeFn<{ tone: { brand: string; muted: string }; size: { sm: string; md: string; lg: string } }>;
|
|
@@ -4,10 +4,19 @@
|
|
|
4
4
|
&:hover { text-decoration: underline; }
|
|
5
5
|
}
|
|
6
6
|
.crisp-textlink--tone_brand {
|
|
7
|
-
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-
|
|
7
|
+
font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: var(--crisp-fg-brand-contrast);
|
|
8
8
|
}
|
|
9
9
|
.crisp-textlink--tone_muted {
|
|
10
10
|
font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-regular); color: var(--crisp-fg-muted);
|
|
11
|
-
&:hover { color: var(--crisp-
|
|
11
|
+
&:hover { color: var(--crisp-fg-brand-contrast); }
|
|
12
|
+
}
|
|
13
|
+
.crisp-textlink--size_sm {
|
|
14
|
+
font-size: var(--crisp-text-sm);
|
|
15
|
+
}
|
|
16
|
+
.crisp-textlink--size_md {
|
|
17
|
+
font-size: var(--crisp-text-md);
|
|
18
|
+
}
|
|
19
|
+
.crisp-textlink--size_lg {
|
|
20
|
+
font-size: var(--crisp-text-lg);
|
|
12
21
|
}
|
|
13
22
|
}
|
package/dist/tokens.css
CHANGED
|
@@ -27,14 +27,16 @@
|
|
|
27
27
|
font-display: swap;
|
|
28
28
|
}
|
|
29
29
|
:root {
|
|
30
|
-
--crisp-bg-brand-solid: #
|
|
31
|
-
--crisp-bg-brand-solid-pressed: #
|
|
30
|
+
--crisp-bg-brand-solid: #0298d9;
|
|
31
|
+
--crisp-bg-brand-solid-pressed: #0283bb;
|
|
32
|
+
--crisp-bg-brand-contrast: #0278ac;
|
|
33
|
+
--crisp-fg-brand-contrast: #0278ac;
|
|
32
34
|
--crisp-fg-on-brand: #ffffff;
|
|
33
35
|
--crisp-fg-on-tone: #101112;
|
|
34
36
|
--crisp-bg-surface: #ffffff;
|
|
35
|
-
--crisp-bg-raised: #
|
|
37
|
+
--crisp-bg-raised: #f7f8f9;
|
|
36
38
|
--crisp-bg-surface-muted: #f6f7f7;
|
|
37
|
-
--crisp-border-default: #
|
|
39
|
+
--crisp-border-default: #dcdee3;
|
|
38
40
|
--crisp-border-subtle: #eeeff1;
|
|
39
41
|
--crisp-border-dropzone: #e6e7ea;
|
|
40
42
|
--crisp-border-divider: #e6e7ea;
|
|
@@ -56,9 +58,9 @@
|
|
|
56
58
|
--crisp-shadow-popover3: rgba(24,41,75,0.16);
|
|
57
59
|
--crisp-fg-primary: #101112;
|
|
58
60
|
--crisp-fg-muted: #71717a;
|
|
59
|
-
--crisp-bg-danger: #
|
|
60
|
-
--crisp-bg-danger-solid: #
|
|
61
|
-
--crisp-fg-danger: #
|
|
61
|
+
--crisp-bg-danger: #fa342c;
|
|
62
|
+
--crisp-bg-danger-solid: #ca1d13;
|
|
63
|
+
--crisp-fg-danger: #fa342c;
|
|
62
64
|
--crisp-stroke-field-focus: #1a1c20;
|
|
63
65
|
--crisp-fg-disabled: #d1d3d8;
|
|
64
66
|
--crisp-bg-neutral-weak: #f3f4f5;
|
|
@@ -67,8 +69,9 @@
|
|
|
67
69
|
--crisp-fg-neutral-subtle: #868b94;
|
|
68
70
|
--crisp-fg-neutral-muted: #555d6d;
|
|
69
71
|
--crisp-stroke-focus-ring: #1e82eb;
|
|
70
|
-
--crisp-bg-success: #
|
|
71
|
-
--crisp-bg-warning: #
|
|
72
|
+
--crisp-bg-success: #079171;
|
|
73
|
+
--crisp-bg-warning: #9b7821;
|
|
74
|
+
--crisp-bg-warning-solid: #fbdc65;
|
|
72
75
|
--crisp-bg-orange: #f97514;
|
|
73
76
|
--crisp-bg-cyan: #00b9eb;
|
|
74
77
|
--crisp-bg-purple: #9b69ff;
|
|
@@ -82,11 +85,23 @@
|
|
|
82
85
|
--crisp-bg-purple-soft: #f5f0ff;
|
|
83
86
|
--crisp-fg-purple-soft: #6238b5;
|
|
84
87
|
--crisp-ring-purple-soft: #e8ddfe;
|
|
88
|
+
--crisp-ring-brand-soft: #d6e5ff;
|
|
89
|
+
--crisp-fg-select-neutral: #1a1c20;
|
|
90
|
+
--crisp-bg-select-listbox: #ffffff;
|
|
91
|
+
--crisp-stroke-select-trigger: #dcdee3;
|
|
92
|
+
--crisp-bg-select-pressed: #00000007;
|
|
93
|
+
--crisp-bg-select-disabled: #f3f4f5;
|
|
94
|
+
--crisp-stroke-select-invalid: #fa342c;
|
|
95
|
+
--crisp-stroke-select-divider: #00000010;
|
|
96
|
+
--crisp-fg-select-placeholder: #b0b3ba;
|
|
97
|
+
--crisp-shadow-select: #0000001f;
|
|
85
98
|
}
|
|
86
99
|
|
|
87
100
|
[data-theme="dark"] {
|
|
88
|
-
--crisp-bg-brand-solid: #
|
|
89
|
-
--crisp-bg-brand-solid-pressed: #
|
|
101
|
+
--crisp-bg-brand-solid: #0298d9;
|
|
102
|
+
--crisp-bg-brand-solid-pressed: #0283bb;
|
|
103
|
+
--crisp-bg-brand-contrast: #0278ac;
|
|
104
|
+
--crisp-fg-brand-contrast: #0278ac;
|
|
90
105
|
--crisp-fg-on-brand: #ffffff;
|
|
91
106
|
--crisp-fg-on-tone: #101112;
|
|
92
107
|
--crisp-bg-surface: #0a0a0a;
|
|
@@ -127,6 +142,7 @@
|
|
|
127
142
|
--crisp-stroke-focus-ring: #5e98fe;
|
|
128
143
|
--crisp-bg-success: #2ea968;
|
|
129
144
|
--crisp-bg-warning: #e0982a;
|
|
145
|
+
--crisp-bg-warning-solid: #e0982a;
|
|
130
146
|
--crisp-bg-orange: #f97514;
|
|
131
147
|
--crisp-bg-cyan: #00b9eb;
|
|
132
148
|
--crisp-bg-purple: #9b69ff;
|
|
@@ -140,6 +156,16 @@
|
|
|
140
156
|
--crisp-bg-purple-soft: #2f1e5a;
|
|
141
157
|
--crisp-fg-purple-soft: #d8c4ff;
|
|
142
158
|
--crisp-ring-purple-soft: #45297d;
|
|
159
|
+
--crisp-ring-brand-soft: #212224;
|
|
160
|
+
--crisp-fg-select-neutral: #f3f4f5;
|
|
161
|
+
--crisp-bg-select-listbox: #1d2025;
|
|
162
|
+
--crisp-stroke-select-trigger: #393d46;
|
|
163
|
+
--crisp-bg-select-pressed: #ffffff0d;
|
|
164
|
+
--crisp-bg-select-disabled: #2b2e35;
|
|
165
|
+
--crisp-stroke-select-invalid: #ff6e60;
|
|
166
|
+
--crisp-stroke-select-divider: #ffffff17;
|
|
167
|
+
--crisp-fg-select-placeholder: #868b94;
|
|
168
|
+
--crisp-shadow-select: #000000cc;
|
|
143
169
|
}
|
|
144
170
|
|
|
145
171
|
:root {
|
|
@@ -154,12 +180,15 @@
|
|
|
154
180
|
--crisp-space-0-5: 2px;
|
|
155
181
|
--crisp-space-1-5: 6px;
|
|
156
182
|
--crisp-space-2-5: 10px;
|
|
183
|
+
--crisp-space-3-5: 14px;
|
|
184
|
+
--crisp-radius-xs: 4px;
|
|
157
185
|
--crisp-radius-chip: 7px;
|
|
158
186
|
--crisp-radius-sm: 6px;
|
|
159
187
|
--crisp-radius-md: 8px;
|
|
160
188
|
--crisp-radius-lg: 9px;
|
|
161
189
|
--crisp-radius-xl: 12px;
|
|
162
190
|
--crisp-radius-2xl: 16px;
|
|
191
|
+
--crisp-radius-3xl: 20px;
|
|
163
192
|
--crisp-radius-full: 999px;
|
|
164
193
|
--crisp-size-icon: 16px;
|
|
165
194
|
--crisp-size-chip: 22px;
|
|
@@ -170,6 +199,9 @@
|
|
|
170
199
|
--crisp-size-header: 48px;
|
|
171
200
|
--crisp-size-calendarCell: 34px;
|
|
172
201
|
--crisp-size-calendarPill: 32px;
|
|
202
|
+
--crisp-size-selectTriggerMd: 40px;
|
|
203
|
+
--crisp-size-selectTriggerLg: 52px;
|
|
204
|
+
--crisp-size-selectIconLg: 20px;
|
|
173
205
|
--crisp-text-xs: 11px;
|
|
174
206
|
--crisp-text-sm: 12px;
|
|
175
207
|
--crisp-text-md: 13px;
|
package/dist/tokens.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"color": {
|
|
3
3
|
"light": {
|
|
4
|
-
"bgBrandSolid": "#
|
|
5
|
-
"bgBrandSolidPressed": "#
|
|
4
|
+
"bgBrandSolid": "#0298d9",
|
|
5
|
+
"bgBrandSolidPressed": "#0283bb",
|
|
6
|
+
"bgBrandContrast": "#0278ac",
|
|
7
|
+
"fgBrandContrast": "#0278ac",
|
|
6
8
|
"fgOnBrand": "#ffffff",
|
|
7
9
|
"fgOnTone": "#101112",
|
|
8
10
|
"bgSurface": "#ffffff",
|
|
9
|
-
"bgRaised": "#
|
|
11
|
+
"bgRaised": "#f7f8f9",
|
|
10
12
|
"bgSurfaceMuted": "#f6f7f7",
|
|
11
|
-
"borderDefault": "#
|
|
13
|
+
"borderDefault": "#dcdee3",
|
|
12
14
|
"borderSubtle": "#eeeff1",
|
|
13
15
|
"borderDropzone": "#e6e7ea",
|
|
14
16
|
"borderDivider": "#e6e7ea",
|
|
@@ -30,9 +32,9 @@
|
|
|
30
32
|
"shadowPopover3": "rgba(24,41,75,0.16)",
|
|
31
33
|
"fgPrimary": "#101112",
|
|
32
34
|
"fgMuted": "#71717a",
|
|
33
|
-
"bgDanger": "#
|
|
34
|
-
"bgDangerSolid": "#
|
|
35
|
-
"fgDanger": "#
|
|
35
|
+
"bgDanger": "#fa342c",
|
|
36
|
+
"bgDangerSolid": "#ca1d13",
|
|
37
|
+
"fgDanger": "#fa342c",
|
|
36
38
|
"strokeFieldFocus": "#1a1c20",
|
|
37
39
|
"fgDisabled": "#d1d3d8",
|
|
38
40
|
"bgNeutralWeak": "#f3f4f5",
|
|
@@ -41,8 +43,9 @@
|
|
|
41
43
|
"fgNeutralSubtle": "#868b94",
|
|
42
44
|
"fgNeutralMuted": "#555d6d",
|
|
43
45
|
"strokeFocusRing": "#1e82eb",
|
|
44
|
-
"bgSuccess": "#
|
|
45
|
-
"bgWarning": "#
|
|
46
|
+
"bgSuccess": "#079171",
|
|
47
|
+
"bgWarning": "#9b7821",
|
|
48
|
+
"bgWarningSolid": "#fbdc65",
|
|
46
49
|
"bgOrange": "#f97514",
|
|
47
50
|
"bgCyan": "#00b9eb",
|
|
48
51
|
"bgPurple": "#9b69ff",
|
|
@@ -55,11 +58,23 @@
|
|
|
55
58
|
"fgNeutralSoft": "#505155",
|
|
56
59
|
"bgPurpleSoft": "#f5f0ff",
|
|
57
60
|
"fgPurpleSoft": "#6238b5",
|
|
58
|
-
"ringPurpleSoft": "#e8ddfe"
|
|
61
|
+
"ringPurpleSoft": "#e8ddfe",
|
|
62
|
+
"ringBrandSoft": "#d6e5ff",
|
|
63
|
+
"fgSelectNeutral": "#1a1c20",
|
|
64
|
+
"bgSelectListbox": "#ffffff",
|
|
65
|
+
"strokeSelectTrigger": "#dcdee3",
|
|
66
|
+
"bgSelectPressed": "#00000007",
|
|
67
|
+
"bgSelectDisabled": "#f3f4f5",
|
|
68
|
+
"strokeSelectInvalid": "#fa342c",
|
|
69
|
+
"strokeSelectDivider": "#00000010",
|
|
70
|
+
"fgSelectPlaceholder": "#b0b3ba",
|
|
71
|
+
"shadowSelect": "#0000001f"
|
|
59
72
|
},
|
|
60
73
|
"dark": {
|
|
61
|
-
"bgBrandSolid": "#
|
|
62
|
-
"bgBrandSolidPressed": "#
|
|
74
|
+
"bgBrandSolid": "#0298d9",
|
|
75
|
+
"bgBrandSolidPressed": "#0283bb",
|
|
76
|
+
"bgBrandContrast": "#0278ac",
|
|
77
|
+
"fgBrandContrast": "#0278ac",
|
|
63
78
|
"fgOnBrand": "#ffffff",
|
|
64
79
|
"fgOnTone": "#101112",
|
|
65
80
|
"bgSurface": "#0a0a0a",
|
|
@@ -100,6 +115,7 @@
|
|
|
100
115
|
"strokeFocusRing": "#5e98fe",
|
|
101
116
|
"bgSuccess": "#2ea968",
|
|
102
117
|
"bgWarning": "#e0982a",
|
|
118
|
+
"bgWarningSolid": "#e0982a",
|
|
103
119
|
"bgOrange": "#f97514",
|
|
104
120
|
"bgCyan": "#00b9eb",
|
|
105
121
|
"bgPurple": "#9b69ff",
|
|
@@ -112,7 +128,17 @@
|
|
|
112
128
|
"fgNeutralSoft": "#9a9aa2",
|
|
113
129
|
"bgPurpleSoft": "#2f1e5a",
|
|
114
130
|
"fgPurpleSoft": "#d8c4ff",
|
|
115
|
-
"ringPurpleSoft": "#45297d"
|
|
131
|
+
"ringPurpleSoft": "#45297d",
|
|
132
|
+
"ringBrandSoft": "#212224",
|
|
133
|
+
"fgSelectNeutral": "#f3f4f5",
|
|
134
|
+
"bgSelectListbox": "#1d2025",
|
|
135
|
+
"strokeSelectTrigger": "#393d46",
|
|
136
|
+
"bgSelectPressed": "#ffffff0d",
|
|
137
|
+
"bgSelectDisabled": "#2b2e35",
|
|
138
|
+
"strokeSelectInvalid": "#ff6e60",
|
|
139
|
+
"strokeSelectDivider": "#ffffff17",
|
|
140
|
+
"fgSelectPlaceholder": "#868b94",
|
|
141
|
+
"shadowSelect": "#000000cc"
|
|
116
142
|
}
|
|
117
143
|
},
|
|
118
144
|
"palette": {
|
|
@@ -120,15 +146,16 @@
|
|
|
120
146
|
"gray00": "#ffffff",
|
|
121
147
|
"white": "#ffffff",
|
|
122
148
|
"ink": "#101112",
|
|
123
|
-
"gray50": "#
|
|
149
|
+
"gray50": "#f7f8f9",
|
|
124
150
|
"gray900": "#101112",
|
|
125
|
-
"line200": "#
|
|
151
|
+
"line200": "#dcdee3",
|
|
126
152
|
"line100": "#eeeff1",
|
|
127
153
|
"line150": "#e6e7ea",
|
|
128
154
|
"gray25": "#f6f7f7",
|
|
129
155
|
"ringNeutral": "transparent",
|
|
130
156
|
"ringField": "rgba(0,0,0,0.06)",
|
|
131
157
|
"ringSwitch": "#d9dade",
|
|
158
|
+
"ringBrandSoft": "#d6e5ff",
|
|
132
159
|
"tileActive": "#ffffff",
|
|
133
160
|
"tileActiveShadow": "rgba(0,0,0,0.04)",
|
|
134
161
|
"bgScrim": "rgba(0,0,0,0.25)",
|
|
@@ -143,11 +170,12 @@
|
|
|
143
170
|
"shadowPopover2": "rgba(28,40,64,0.12)",
|
|
144
171
|
"shadowPopover3": "rgba(24,41,75,0.16)",
|
|
145
172
|
"gray400": "#71717a",
|
|
146
|
-
"brand600": "#
|
|
147
|
-
"brand700": "#
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
173
|
+
"brand600": "#0298d9",
|
|
174
|
+
"brand700": "#0283bb",
|
|
175
|
+
"brandContrast": "#0278ac",
|
|
176
|
+
"red600": "#fa342c",
|
|
177
|
+
"red700": "#ca1d13",
|
|
178
|
+
"red500": "#fa342c",
|
|
151
179
|
"fieldFocus": "#1a1c20",
|
|
152
180
|
"disabledFg": "#d1d3d8",
|
|
153
181
|
"neutralWeak": "#f3f4f5",
|
|
@@ -156,8 +184,9 @@
|
|
|
156
184
|
"neutralSubtle": "#868b94",
|
|
157
185
|
"neutralMuted": "#555d6d",
|
|
158
186
|
"focusRing": "#1e82eb",
|
|
159
|
-
"green600": "#
|
|
160
|
-
"amber600": "#
|
|
187
|
+
"green600": "#079171",
|
|
188
|
+
"amber600": "#9b7821",
|
|
189
|
+
"amberSolid": "#fbdc65",
|
|
161
190
|
"orange600": "#f97514",
|
|
162
191
|
"cyan600": "#00b9eb",
|
|
163
192
|
"purple600": "#9b69ff",
|
|
@@ -169,7 +198,15 @@
|
|
|
169
198
|
"softNeutralText": "#505155",
|
|
170
199
|
"purpleTint": "#f5f0ff",
|
|
171
200
|
"softPurpleText": "#6238b5",
|
|
172
|
-
"purpleRing": "#e8ddfe"
|
|
201
|
+
"purpleRing": "#e8ddfe",
|
|
202
|
+
"selectListboxBg": "#ffffff",
|
|
203
|
+
"selectTriggerStroke": "#dcdee3",
|
|
204
|
+
"selectPressedTint": "#00000007",
|
|
205
|
+
"selectDisabledBg": "#f3f4f5",
|
|
206
|
+
"selectInvalidStroke": "#fa342c",
|
|
207
|
+
"selectDivider": "#00000010",
|
|
208
|
+
"selectPlaceholder": "#b0b3ba",
|
|
209
|
+
"selectShadow": "#0000001f"
|
|
173
210
|
},
|
|
174
211
|
"dark": {
|
|
175
212
|
"gray00": "#0a0a0a",
|
|
@@ -184,6 +221,7 @@
|
|
|
184
221
|
"ringNeutral": "#212224",
|
|
185
222
|
"ringField": "#212224",
|
|
186
223
|
"ringSwitch": "#212224",
|
|
224
|
+
"ringBrandSoft": "#212224",
|
|
187
225
|
"tileActive": "#101112",
|
|
188
226
|
"tileActiveShadow": "rgba(0,0,0,0)",
|
|
189
227
|
"bgScrim": "rgba(0,0,0,0.55)",
|
|
@@ -198,8 +236,9 @@
|
|
|
198
236
|
"shadowPopover2": "rgba(0,0,0,0.24)",
|
|
199
237
|
"shadowPopover3": "rgba(0,0,0,0.32)",
|
|
200
238
|
"gray400": "#9a9aa2",
|
|
201
|
-
"brand600": "#
|
|
202
|
-
"brand700": "#
|
|
239
|
+
"brand600": "#0298d9",
|
|
240
|
+
"brand700": "#0283bb",
|
|
241
|
+
"brandContrast": "#0278ac",
|
|
203
242
|
"red600": "#ff5a5f",
|
|
204
243
|
"red700": "#ba2525",
|
|
205
244
|
"red500": "#ff5a5f",
|
|
@@ -213,6 +252,7 @@
|
|
|
213
252
|
"focusRing": "#5e98fe",
|
|
214
253
|
"green600": "#2ea968",
|
|
215
254
|
"amber600": "#e0982a",
|
|
255
|
+
"amberSolid": "#e0982a",
|
|
216
256
|
"orange600": "#f97514",
|
|
217
257
|
"cyan600": "#00b9eb",
|
|
218
258
|
"purple600": "#9b69ff",
|
|
@@ -224,7 +264,15 @@
|
|
|
224
264
|
"softNeutralText": "#9a9aa2",
|
|
225
265
|
"purpleTint": "#2f1e5a",
|
|
226
266
|
"softPurpleText": "#d8c4ff",
|
|
227
|
-
"purpleRing": "#45297d"
|
|
267
|
+
"purpleRing": "#45297d",
|
|
268
|
+
"selectListboxBg": "#1d2025",
|
|
269
|
+
"selectTriggerStroke": "#393d46",
|
|
270
|
+
"selectPressedTint": "#ffffff0d",
|
|
271
|
+
"selectDisabledBg": "#2b2e35",
|
|
272
|
+
"selectInvalidStroke": "#ff6e60",
|
|
273
|
+
"selectDivider": "#ffffff17",
|
|
274
|
+
"selectPlaceholder": "#868b94",
|
|
275
|
+
"selectShadow": "#000000cc"
|
|
228
276
|
}
|
|
229
277
|
},
|
|
230
278
|
"space": {
|
|
@@ -238,15 +286,18 @@
|
|
|
238
286
|
"px": 1,
|
|
239
287
|
"0.5": 2,
|
|
240
288
|
"1.5": 6,
|
|
241
|
-
"2.5": 10
|
|
289
|
+
"2.5": 10,
|
|
290
|
+
"3.5": 14
|
|
242
291
|
},
|
|
243
292
|
"radius": {
|
|
293
|
+
"xs": 4,
|
|
244
294
|
"chip": 7,
|
|
245
295
|
"sm": 6,
|
|
246
296
|
"md": 8,
|
|
247
297
|
"lg": 9,
|
|
248
298
|
"xl": 12,
|
|
249
299
|
"2xl": 16,
|
|
300
|
+
"3xl": 20,
|
|
250
301
|
"full": 999
|
|
251
302
|
},
|
|
252
303
|
"size": {
|
|
@@ -258,7 +309,10 @@
|
|
|
258
309
|
"tableHeader": 40,
|
|
259
310
|
"header": 48,
|
|
260
311
|
"calendarCell": 34,
|
|
261
|
-
"calendarPill": 32
|
|
312
|
+
"calendarPill": 32,
|
|
313
|
+
"selectTriggerMd": 40,
|
|
314
|
+
"selectTriggerLg": 52,
|
|
315
|
+
"selectIconLg": 20
|
|
262
316
|
},
|
|
263
317
|
"text": {
|
|
264
318
|
"xs": 11,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type AccentPickerProps = Omit<React.ComponentPropsWithoutRef<"div">, "value" | "className"> & {
|
|
3
|
+
/** Hex (or any CSS) colours, in display order. */
|
|
4
|
+
colors: string[];
|
|
5
|
+
/** Controlled selected colour. Omit to let the picker manage it (see `defaultValue`). */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** Initially selected colour, when uncontrolled. */
|
|
8
|
+
defaultValue?: string;
|
|
9
|
+
onValueChange?: (color: string) => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A row of selectable colour swatches — Attio's own accent-colour picker
|
|
14
|
+
* (Settings > Appearance). Not a fixed palette: pass the colours (and the
|
|
15
|
+
* accent isn't crisp's concern to theme the app with — this only picks one).
|
|
16
|
+
* Same roving-focus/arrow-key model every other crisp radio-like control
|
|
17
|
+
* shares (`useRadioGroupKeyboard`, also used by `RadioGroup` and
|
|
18
|
+
* `Segmented`).
|
|
19
|
+
*/
|
|
20
|
+
export declare function AccentPicker({ colors, value, defaultValue, onValueChange, className, onKeyDown: onKeyDownProp, ...rest }: AccentPickerProps): React.JSX.Element;
|
|
21
|
+
export declare namespace AccentPicker {
|
|
22
|
+
var displayName: string;
|
|
23
|
+
}
|
|
@@ -32,12 +32,12 @@ declare const spec: {
|
|
|
32
32
|
readonly parts: [{
|
|
33
33
|
readonly selector: "&:hover";
|
|
34
34
|
readonly decls: {
|
|
35
|
-
|
|
35
|
+
readonly filter: "brightness(0.96)";
|
|
36
36
|
};
|
|
37
37
|
}, {
|
|
38
38
|
readonly selector: "&:active";
|
|
39
39
|
readonly decls: {
|
|
40
|
-
|
|
40
|
+
readonly filter: "brightness(0.92)";
|
|
41
41
|
};
|
|
42
42
|
}];
|
|
43
43
|
};
|
|
@@ -8,13 +8,21 @@ export type CalloutProps = Omit<React.ComponentPropsWithoutRef<"div">, "title">
|
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
/** Trailing action (e.g. a Button). */
|
|
10
10
|
action?: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* A page-level banner look (crisp#869): a 1px border, 12px radius, tighter
|
|
13
|
+
* 8px/12px padding, and a brand-tinted background — measured live on
|
|
14
|
+
* Attio's own Objects settings page (a real full-width Pro-plan nudge).
|
|
15
|
+
* There's no measured close/dismiss button on that banner, so this adds
|
|
16
|
+
* none.
|
|
17
|
+
*/
|
|
18
|
+
bordered?: boolean;
|
|
11
19
|
className?: string;
|
|
12
20
|
};
|
|
13
21
|
/**
|
|
14
22
|
* An inline callout / banner — measured from info notices. `tone` tints
|
|
15
23
|
* the background and icon; pass a `title` and/or body `children`.
|
|
16
24
|
*/
|
|
17
|
-
export declare function Callout({ tone, icon, title, children, action, className, ...rest }: CalloutProps): React.JSX.Element;
|
|
25
|
+
export declare function Callout({ tone, icon, title, children, action, bordered, className, ...rest }: CalloutProps): React.JSX.Element;
|
|
18
26
|
export declare namespace Callout {
|
|
19
27
|
var displayName: string;
|
|
20
28
|
}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
declare const config: import("../..").RecipeConfig<{
|
|
2
|
-
|
|
1
|
+
declare const config: import("../..").RecipeConfig<{
|
|
2
|
+
bordered: {
|
|
3
|
+
true: string;
|
|
4
|
+
false: string;
|
|
5
|
+
};
|
|
6
|
+
}>;
|
|
7
|
+
export declare const calloutRecipe: import("../..").RecipeFn<{
|
|
8
|
+
bordered: {
|
|
9
|
+
true: string;
|
|
10
|
+
false: string;
|
|
11
|
+
};
|
|
12
|
+
}>;
|
|
3
13
|
export default config;
|
|
@@ -4,9 +4,16 @@ import { inputRecipe } from "./input.recipe";
|
|
|
4
4
|
export type InputProps = Omit<React.ComponentPropsWithoutRef<"input">, "size"> & VariantProps<typeof inputRecipe> & {
|
|
5
5
|
/** Class for the wrapper that draws the field chrome and focus ring. */
|
|
6
6
|
className?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Content after the value (crisp#634) — e.g. an "Edit" button on a
|
|
9
|
+
* read-only field. Measured live on Attio's own Settings > Profile
|
|
10
|
+
* primary-email field.
|
|
11
|
+
*/
|
|
12
|
+
suffix?: React.ReactNode;
|
|
7
13
|
};
|
|
8
14
|
export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "size"> & VariantProps<import("../..").RecipeFn<{
|
|
9
15
|
size: {
|
|
16
|
+
sm: string;
|
|
10
17
|
medium: string;
|
|
11
18
|
large: string;
|
|
12
19
|
};
|
|
@@ -17,6 +24,7 @@ export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.Deta
|
|
|
17
24
|
}> & {
|
|
18
25
|
config: import("../..").RecipeConfig<{
|
|
19
26
|
size: {
|
|
27
|
+
sm: string;
|
|
20
28
|
medium: string;
|
|
21
29
|
large: string;
|
|
22
30
|
};
|
|
@@ -28,4 +36,10 @@ export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.Deta
|
|
|
28
36
|
}> & {
|
|
29
37
|
/** Class for the wrapper that draws the field chrome and focus ring. */
|
|
30
38
|
className?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Content after the value (crisp#634) — e.g. an "Edit" button on a
|
|
41
|
+
* read-only field. Measured live on Attio's own Settings > Profile
|
|
42
|
+
* primary-email field.
|
|
43
|
+
*/
|
|
44
|
+
suffix?: React.ReactNode;
|
|
31
45
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
declare const config: import("../..").RecipeConfig<{
|
|
2
2
|
size: {
|
|
3
|
+
sm: string;
|
|
3
4
|
medium: string;
|
|
4
5
|
large: string;
|
|
5
6
|
};
|
|
@@ -10,6 +11,7 @@ declare const config: import("../..").RecipeConfig<{
|
|
|
10
11
|
}>;
|
|
11
12
|
export declare const inputRecipe: import("../..").RecipeFn<{
|
|
12
13
|
size: {
|
|
14
|
+
sm: string;
|
|
13
15
|
medium: string;
|
|
14
16
|
large: string;
|
|
15
17
|
};
|
|
@@ -20,6 +22,7 @@ export declare const inputRecipe: import("../..").RecipeFn<{
|
|
|
20
22
|
}> & {
|
|
21
23
|
config: import("../..").RecipeConfig<{
|
|
22
24
|
size: {
|
|
25
|
+
sm: string;
|
|
23
26
|
medium: string;
|
|
24
27
|
large: string;
|
|
25
28
|
};
|