@crisp-ui-kit/crisp 0.54.6 → 0.54.8

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.
Files changed (113) hide show
  1. package/dist/authshell.css +5 -1
  2. package/dist/authshell.layered.css +5 -1
  3. package/dist/badge.css +5 -5
  4. package/dist/badge.layered.css +5 -5
  5. package/dist/board.css +13 -9
  6. package/dist/board.layered.css +13 -9
  7. package/dist/button.css +3 -1
  8. package/dist/button.layered.css +3 -1
  9. package/dist/cjs/components/badge/badge.recipe.js +28 -5
  10. package/dist/cjs/components/button/button.js +33 -2
  11. package/dist/cjs/components/button/button.recipe.js +31 -5
  12. package/dist/cjs/components/datatable/datatable.js +66 -7
  13. package/dist/cjs/components/datatable/datatable.recipe.js +57 -2
  14. package/dist/cjs/components/dialog/dialog.js +8 -5
  15. package/dist/cjs/components/dialog/dialog.recipe.js +15 -1
  16. package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +19 -1
  17. package/dist/cjs/components/tabletoolbar/tabletoolbar.js +239 -50
  18. package/dist/cjs/components/tabletoolbar/tabletoolbar.recipe.js +44 -0
  19. package/dist/cjs/components/tabs/tabs.recipe.js +11 -2
  20. package/dist/cjs/components/tooltip/tooltip.js +23 -9
  21. package/dist/cjs/components/tooltip/tooltip.recipe.js +10 -9
  22. package/dist/cjs/product/authshell/authshell.js +14 -1
  23. package/dist/cjs/product/authshell/authshell.recipe.js +13 -1
  24. package/dist/cjs/product/board/board.js +122 -27
  25. package/dist/cjs/product/board/board.recipe.js +14 -2
  26. package/dist/cjs/product/comments/comments.js +23 -10
  27. package/dist/cjs/product/comments/comments.recipe.js +17 -3
  28. package/dist/cjs/product/formdialog/formdialog.js +10 -4
  29. package/dist/cjs/product/navitem/navitem.js +7 -2
  30. package/dist/cjs/product/navitem/navitem.recipe.js +16 -0
  31. package/dist/cjs/product/objectsettings/index.js +1 -2
  32. package/dist/cjs/product/objectsettings/objectsettings.js +3 -13
  33. package/dist/cjs/product/richtext/richtext.js +76 -1
  34. package/dist/cjs/product/sidebar/sidebar.js +68 -15
  35. package/dist/cjs/product/sidebar/sidebar.recipe.js +6 -1
  36. package/dist/cjs/tokens/palette.js +32 -1
  37. package/dist/cjs/tokens/semantic.js +11 -0
  38. package/dist/comments.css +36 -10
  39. package/dist/comments.layered.css +36 -10
  40. package/dist/datatable.css +47 -9
  41. package/dist/datatable.layered.css +47 -9
  42. package/dist/dialog.css +13 -1
  43. package/dist/dialog.layered.css +13 -1
  44. package/dist/esm/components/badge/badge.recipe.js +28 -5
  45. package/dist/esm/components/button/button.js +34 -3
  46. package/dist/esm/components/button/button.recipe.js +31 -5
  47. package/dist/esm/components/datatable/datatable.js +67 -8
  48. package/dist/esm/components/datatable/datatable.recipe.js +57 -2
  49. package/dist/esm/components/dialog/dialog.js +8 -5
  50. package/dist/esm/components/dialog/dialog.recipe.js +15 -1
  51. package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +19 -1
  52. package/dist/esm/components/tabletoolbar/tabletoolbar.js +240 -51
  53. package/dist/esm/components/tabletoolbar/tabletoolbar.recipe.js +44 -0
  54. package/dist/esm/components/tabs/tabs.recipe.js +11 -2
  55. package/dist/esm/components/tooltip/tooltip.js +23 -9
  56. package/dist/esm/components/tooltip/tooltip.recipe.js +10 -9
  57. package/dist/esm/product/authshell/authshell.js +15 -2
  58. package/dist/esm/product/authshell/authshell.recipe.js +13 -1
  59. package/dist/esm/product/authshell/index.js +1 -1
  60. package/dist/esm/product/board/board.js +122 -27
  61. package/dist/esm/product/board/board.recipe.js +14 -2
  62. package/dist/esm/product/comments/comments.js +23 -10
  63. package/dist/esm/product/comments/comments.recipe.js +17 -3
  64. package/dist/esm/product/formdialog/formdialog.js +10 -4
  65. package/dist/esm/product/navitem/index.js +1 -1
  66. package/dist/esm/product/navitem/navitem.js +7 -2
  67. package/dist/esm/product/navitem/navitem.recipe.js +16 -0
  68. package/dist/esm/product/objectsettings/index.js +1 -1
  69. package/dist/esm/product/objectsettings/objectsettings.js +2 -12
  70. package/dist/esm/product/richtext/richtext.js +76 -1
  71. package/dist/esm/product/sidebar/sidebar.js +69 -16
  72. package/dist/esm/product/sidebar/sidebar.recipe.js +6 -1
  73. package/dist/esm/tokens/palette.js +32 -1
  74. package/dist/esm/tokens/semantic.js +11 -0
  75. package/dist/native/tokens.d.ts +1 -1
  76. package/dist/native/tokens.js +16 -2
  77. package/dist/navitem.css +7 -0
  78. package/dist/navitem.layered.css +7 -0
  79. package/dist/recordstable.css +2 -1
  80. package/dist/recordstable.layered.css +2 -1
  81. package/dist/sidebar.css +6 -1
  82. package/dist/sidebar.layered.css +6 -1
  83. package/dist/styles.css +165 -42
  84. package/dist/styles.layered.css +165 -42
  85. package/dist/tabletoolbar.css +17 -1
  86. package/dist/tabletoolbar.layered.css +17 -1
  87. package/dist/tabs.css +1 -1
  88. package/dist/tabs.layered.css +1 -1
  89. package/dist/tokens.css +9 -1
  90. package/dist/tokens.json +16 -2
  91. package/dist/tooltip.css +1 -1
  92. package/dist/tooltip.layered.css +1 -1
  93. package/dist/types/components/badge/badge.recipe.d.ts +5 -1
  94. package/dist/types/components/button/button.recipe.d.ts +18 -5
  95. package/dist/types/components/datatable/datatable.d.ts +9 -0
  96. package/dist/types/components/dialog/dialog.d.ts +25 -2
  97. package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +47 -5
  98. package/dist/types/components/tooltip/tooltip.d.ts +12 -4
  99. package/dist/types/components/tooltip/tooltip.recipe.d.ts +1 -1
  100. package/dist/types/product/authshell/authshell.d.ts +26 -2
  101. package/dist/types/product/authshell/index.d.ts +1 -1
  102. package/dist/types/product/board/board.d.ts +5 -4
  103. package/dist/types/product/comments/comments.d.ts +10 -2
  104. package/dist/types/product/formdialog/formdialog.d.ts +2 -1
  105. package/dist/types/product/navitem/index.d.ts +1 -1
  106. package/dist/types/product/navitem/navitem.d.ts +23 -0
  107. package/dist/types/product/objectsettings/index.d.ts +1 -1
  108. package/dist/types/product/objectsettings/objectsettings.d.ts +0 -10
  109. package/dist/types/product/sidebar/sidebar.d.ts +33 -5
  110. package/dist/types/tokens/contract.d.ts +4 -0
  111. package/dist/types/tokens/palette.d.ts +13 -1
  112. package/dist/types/tokens/semantic.d.ts +11 -0
  113. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  import * as React from "react";
2
2
  import type { AvatarProps } from "../../components/avatar";
3
3
  import { type CommandItem } from "../command";
4
+ import { type NavItemShortcut } from "../navitem";
5
+ export type { NavItemShortcut };
4
6
  type IconProps = {
5
7
  className?: string;
6
8
  };
@@ -19,6 +21,8 @@ export type SidebarNavItem = {
19
21
  * be missing this wiring. */
20
22
  href?: string;
21
23
  onSelect?: () => void;
24
+ /** The hotkey hint tooltip (crisp#633, P-108) — see `NavItemShortcut`. */
25
+ shortcut?: NavItemShortcut;
22
26
  };
23
27
  /** A row in the Records section — rendered as a tinted 20px glyph avatar. */
24
28
  export type SidebarRecordItem = {
@@ -26,6 +30,8 @@ export type SidebarRecordItem = {
26
30
  tone: NonNullable<AvatarProps["tone"]>;
27
31
  /** 12px glyph, rendered `<Glyph />` inside the tone avatar. */
28
32
  glyph: React.ComponentType;
33
+ /** The hotkey hint tooltip (crisp#633, P-108) — see `NavItemShortcut`. */
34
+ shortcut?: NavItemShortcut;
29
35
  };
30
36
  /** The workspace switcher at the top of the sidebar. */
31
37
  export type SidebarWorkspace = {
@@ -38,16 +44,24 @@ export type SidebarWorkspace = {
38
44
  export type SidebarSection = {
39
45
  label: string;
40
46
  items: SidebarNavItem[];
47
+ /** Hover-only icon buttons at the header's right edge (crisp#633, P-109) —
48
+ * e.g. Attio's own gear ("<Section> options") + add glyph, faded in on
49
+ * row hover/focus-within. Omit for none (unchanged default). */
50
+ actions?: React.ReactNode;
41
51
  };
42
52
  /** The Records section — same shape as SidebarSection but with glyph-avatar rows. */
43
53
  export type SidebarRecordsSection = {
44
54
  label: string;
45
55
  items: SidebarRecordItem[];
56
+ /** See `SidebarSection.actions`. */
57
+ actions?: React.ReactNode;
46
58
  };
47
59
  /** The Lists section — has no item list of its own, just the "+ New list" affordance. */
48
60
  export type SidebarListsSection = {
49
61
  label: string;
50
62
  newListLabel: string;
63
+ /** See `SidebarSection.actions`. */
64
+ actions?: React.ReactNode;
51
65
  };
52
66
  /** A row in a `groups` section (#325). */
53
67
  export type SidebarNavGroupItem = {
@@ -66,6 +80,8 @@ export type SidebarNavGroupItem = {
66
80
  /** Trailing content — a count, a badge, anything `NavItem`'s own
67
81
  * `trailing` slot already takes. */
68
82
  count?: React.ReactNode;
83
+ /** The hotkey hint tooltip (crisp#633, P-108) — see `NavItemShortcut`. */
84
+ shortcut?: NavItemShortcut;
69
85
  };
70
86
  /**
71
87
  * A named, collapsible group of `SidebarNavGroupItem` rows — navigation as
@@ -84,6 +100,8 @@ export type SidebarNavGroup = {
84
100
  /** Starts this group collapsed (default: expanded, matching every
85
101
  * existing section). Read once, on mount. */
86
102
  defaultCollapsed?: boolean;
103
+ /** See `SidebarSection.actions`. */
104
+ actions?: React.ReactNode;
87
105
  };
88
106
  /** Footer copy: the onboarding pill, the invite row, and the trial banner. */
89
107
  export type SidebarFooter = {
@@ -172,13 +190,24 @@ export type SidebarProps = React.ComponentPropsWithoutRef<"nav"> & {
172
190
  };
173
191
  /** The measured workspace switcher — the default `workspace` prop. */
174
192
  export declare const ATTIO_SIDEBAR_WORKSPACE: SidebarWorkspace;
175
- /** The measured main nav — the default `items` prop. */
193
+ /** The measured main nav — the default `items` prop.
194
+ *
195
+ * `shortcut` is set only where a live hover produced Attio's "G then
196
+ * <letter>" tooltip (crisp#633, P-108) -- Calls/Sequences/Workflows showed
197
+ * no tooltip at all after a 1.2s hover, tried repeatedly, so they're left
198
+ * without one rather than guessed. */
176
199
  export declare const ATTIO_SIDEBAR_ITEMS: SidebarNavItem[];
177
- /** The measured Records section — the default `recordsSection` prop. */
200
+ /** The measured Records section — the default `recordsSection` prop. Same
201
+ * `shortcut` caveat as `ATTIO_SIDEBAR_ITEMS`: Deals/Users/Workspaces showed
202
+ * no hover tooltip. `actions` is Attio's own gear + add glyph (P-109),
203
+ * measured aria-labels "Record options" / "Create new objects or enable
204
+ * standard objects". */
178
205
  export declare const ATTIO_SIDEBAR_RECORDS_SECTION: SidebarRecordsSection;
179
- /** The measured Lists section — the default `listsSection` prop. */
206
+ /** The measured Lists section — the default `listsSection` prop. `actions`
207
+ * per P-109, measured aria-labels "List options" / "Add list". */
180
208
  export declare const ATTIO_SIDEBAR_LISTS_SECTION: SidebarListsSection;
181
- /** The measured Chats section — the default `chatsSection` prop. */
209
+ /** The measured Chats section — the default `chatsSection` prop. `actions`
210
+ * per P-109, measured aria-labels "Chat options" / "New chat". */
182
211
  export declare const ATTIO_SIDEBAR_CHATS_SECTION: SidebarSection;
183
212
  /** The measured footer copy — the default `footer` prop. */
184
213
  export declare const ATTIO_SIDEBAR_FOOTER: SidebarFooter;
@@ -260,4 +289,3 @@ export declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.Detaile
260
289
  */
261
290
  commandShortcut?: boolean;
262
291
  } & React.RefAttributes<HTMLElement>>;
263
- export {};
@@ -7,14 +7,18 @@ export declare const contract: MapLeafNodes<{
7
7
  fgOnTone: "ink";
8
8
  bgSurface: "gray00";
9
9
  bgRaised: "gray50";
10
+ bgSurfaceMuted: "gray25";
10
11
  borderDefault: "line200";
11
12
  borderSubtle: "line100";
12
13
  borderDropzone: "line150";
14
+ borderDivider: "line150";
13
15
  ringNeutral: "ringNeutral";
14
16
  ringField: "ringField";
15
17
  ringSwitch: "ringSwitch";
16
18
  bgTileActive: "tileActive";
17
19
  shadowTileActive: "tileActiveShadow";
20
+ bgScrim: "bgScrim";
21
+ fgAlertDescription: "fgAlertDescription";
18
22
  bgOverlayFrost: "overlayFrost";
19
23
  shadowOverlay1: "shadowOverlay1";
20
24
  shadowOverlay2: "shadowOverlay2";
@@ -31,6 +31,10 @@ export declare const palette: {
31
31
  readonly light: "#e6e7ea";
32
32
  readonly dark: "#212224";
33
33
  };
34
+ readonly gray25: {
35
+ readonly light: "#f6f7f7";
36
+ readonly dark: "#101112";
37
+ };
34
38
  readonly ringNeutral: {
35
39
  readonly light: "transparent";
36
40
  readonly dark: "#212224";
@@ -51,6 +55,14 @@ export declare const palette: {
51
55
  readonly light: "rgba(0,0,0,0.04)";
52
56
  readonly dark: "rgba(0,0,0,0)";
53
57
  };
58
+ readonly bgScrim: {
59
+ readonly light: "rgba(0,0,0,0.25)";
60
+ readonly dark: "rgba(0,0,0,0.55)";
61
+ };
62
+ readonly fgAlertDescription: {
63
+ readonly light: "rgba(0,0,0,0.63)";
64
+ readonly dark: "rgba(255,255,255,0.6)";
65
+ };
54
66
  readonly overlayFrost: {
55
67
  readonly light: "#ffffff";
56
68
  readonly dark: "#1c1d1f";
@@ -184,7 +196,7 @@ export declare const palette: {
184
196
  readonly dark: "#ff5a5f";
185
197
  };
186
198
  readonly softNeutralText: {
187
- readonly light: "#686870";
199
+ readonly light: "#505155";
188
200
  readonly dark: "#9a9aa2";
189
201
  };
190
202
  readonly purpleTint: {
@@ -5,15 +5,26 @@ export declare const semantic: {
5
5
  fgOnTone: "ink";
6
6
  bgSurface: "gray00";
7
7
  bgRaised: "gray50";
8
+ /** A surface lighter than `bgRaised` for content that isn't actionable
9
+ * yet — the filter chip's field/value segments before the condition has
10
+ * a value (see palette.ts's `gray25`). */
11
+ bgSurfaceMuted: "gray25";
8
12
  borderDefault: "line200";
9
13
  borderSubtle: "line100";
10
14
  /** ImportDialog's dashed dropzone border — see palette.ts's `line150`. */
11
15
  borderDropzone: "line150";
16
+ /** A hairline between adjacent same-height segments (the filter chip's
17
+ * field/operator/value/kebab boxes) — same measured hex as
18
+ * `borderDropzone` (`line150`), aliased under its own name because the
19
+ * two consumers share nothing but the colour. */
20
+ borderDivider: "line150";
12
21
  ringNeutral: "ringNeutral";
13
22
  ringField: "ringField";
14
23
  ringSwitch: "ringSwitch";
15
24
  bgTileActive: "tileActive";
16
25
  shadowTileActive: "tileActiveShadow";
26
+ bgScrim: "bgScrim";
27
+ fgAlertDescription: "fgAlertDescription";
17
28
  bgOverlayFrost: "overlayFrost";
18
29
  shadowOverlay1: "shadowOverlay1";
19
30
  shadowOverlay2: "shadowOverlay2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crisp-ui-kit/crisp",
3
- "version": "0.54.6",
3
+ "version": "0.54.8",
4
4
  "description": "A lean React design system, measured pixel-for-pixel from Attio.",
5
5
  "license": "MIT",
6
6
  "type": "module",