@crisp-ui-kit/crisp 0.1.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +6 -0
  2. package/dist/base.css +25 -0
  3. package/dist/bulkbar.css +13 -0
  4. package/dist/bulkbar.d.ts +7 -0
  5. package/dist/button.css +1 -1
  6. package/dist/command.css +1 -1
  7. package/dist/contextmenu.css +1 -1
  8. package/dist/datatable.css +60 -0
  9. package/dist/datatable.d.ts +7 -0
  10. package/dist/datepicker.css +1 -1
  11. package/dist/dialog.css +1 -1
  12. package/dist/esm/components/accordion/accordion.js +32 -0
  13. package/dist/esm/components/accordion/accordion.recipe.js +23 -0
  14. package/dist/esm/components/accordion/index.js +2 -0
  15. package/dist/esm/components/avatar/avatar.js +8 -0
  16. package/dist/esm/components/avatar/avatar.recipe.js +39 -0
  17. package/dist/esm/components/avatar/index.js +2 -0
  18. package/dist/esm/components/avatargroup/avatargroup.js +16 -0
  19. package/dist/esm/components/avatargroup/avatargroup.recipe.js +15 -0
  20. package/dist/esm/components/avatargroup/index.js +2 -0
  21. package/dist/esm/components/badge/badge.js +8 -0
  22. package/dist/esm/components/badge/badge.recipe.js +65 -0
  23. package/dist/esm/components/badge/index.js +2 -0
  24. package/dist/esm/components/barchart/barchart.js +29 -0
  25. package/dist/esm/components/barchart/barchart.recipe.js +26 -0
  26. package/dist/esm/components/barchart/index.js +2 -0
  27. package/dist/esm/components/breadcrumb/breadcrumb.js +17 -0
  28. package/dist/esm/components/breadcrumb/breadcrumb.recipe.js +18 -0
  29. package/dist/esm/components/breadcrumb/index.js +2 -0
  30. package/dist/esm/components/bulkbar/bulkbar.js +16 -0
  31. package/dist/esm/components/bulkbar/bulkbar.recipe.js +28 -0
  32. package/dist/esm/components/bulkbar/index.js +2 -0
  33. package/dist/esm/components/button/button.js +15 -0
  34. package/dist/esm/components/button/button.recipe.js +39 -0
  35. package/dist/esm/components/button/index.js +2 -0
  36. package/dist/esm/components/callout/callout.js +22 -0
  37. package/dist/esm/components/callout/callout.recipe.js +26 -0
  38. package/dist/esm/components/callout/index.js +2 -0
  39. package/dist/esm/components/card/card.js +15 -0
  40. package/dist/esm/components/card/card.recipe.js +28 -0
  41. package/dist/esm/components/card/index.js +2 -0
  42. package/dist/esm/components/checkbox/checkbox.js +20 -0
  43. package/dist/esm/components/checkbox/checkbox.recipe.js +23 -0
  44. package/dist/esm/components/checkbox/index.js +2 -0
  45. package/dist/esm/components/contextmenu/contextmenu.js +42 -0
  46. package/dist/esm/components/contextmenu/contextmenu.recipe.js +21 -0
  47. package/dist/esm/components/contextmenu/index.js +2 -0
  48. package/dist/esm/components/datatable/datatable.js +245 -0
  49. package/dist/esm/components/datatable/datatable.recipe.js +72 -0
  50. package/dist/esm/components/datatable/index.js +2 -0
  51. package/dist/esm/components/datepicker/datepicker.js +57 -0
  52. package/dist/esm/components/datepicker/datepicker.recipe.js +32 -0
  53. package/dist/esm/components/datepicker/index.js +2 -0
  54. package/dist/esm/components/dialog/dialog.js +48 -0
  55. package/dist/esm/components/dialog/dialog.recipe.js +32 -0
  56. package/dist/esm/components/dialog/index.js +2 -0
  57. package/dist/esm/components/divider/divider.js +7 -0
  58. package/dist/esm/components/divider/divider.recipe.js +14 -0
  59. package/dist/esm/components/divider/index.js +2 -0
  60. package/dist/esm/components/donutchart/donutchart.js +38 -0
  61. package/dist/esm/components/donutchart/donutchart.recipe.js +27 -0
  62. package/dist/esm/components/donutchart/index.js +2 -0
  63. package/dist/esm/components/drawer/drawer.js +42 -0
  64. package/dist/esm/components/drawer/drawer.recipe.js +27 -0
  65. package/dist/esm/components/drawer/index.js +2 -0
  66. package/dist/esm/components/emptystate/emptystate.js +7 -0
  67. package/dist/esm/components/emptystate/emptystate.recipe.js +31 -0
  68. package/dist/esm/components/emptystate/index.js +2 -0
  69. package/dist/esm/components/formfield/formfield.js +14 -0
  70. package/dist/esm/components/formfield/formfield.recipe.js +19 -0
  71. package/dist/esm/components/formfield/index.js +2 -0
  72. package/dist/esm/components/input/index.js +2 -0
  73. package/dist/esm/components/input/input.js +8 -0
  74. package/dist/esm/components/input/input.recipe.js +23 -0
  75. package/dist/esm/components/kbd/index.js +2 -0
  76. package/dist/esm/components/kbd/kbd.js +8 -0
  77. package/dist/esm/components/kbd/kbd.recipe.js +20 -0
  78. package/dist/esm/components/linechart/index.js +2 -0
  79. package/dist/esm/components/linechart/linechart.js +41 -0
  80. package/dist/esm/components/linechart/linechart.recipe.js +27 -0
  81. package/dist/esm/components/menu/index.js +2 -0
  82. package/dist/esm/components/menu/menu.js +137 -0
  83. package/dist/esm/components/menu/menu.recipe.js +51 -0
  84. package/dist/esm/components/multiselect/index.js +2 -0
  85. package/dist/esm/components/multiselect/multiselect.js +118 -0
  86. package/dist/esm/components/multiselect/multiselect.recipe.js +68 -0
  87. package/dist/esm/components/popover/index.js +2 -0
  88. package/dist/esm/components/popover/popover.js +70 -0
  89. package/dist/esm/components/popover/popover.recipe.js +18 -0
  90. package/dist/esm/components/progress/index.js +2 -0
  91. package/dist/esm/components/progress/progress.js +23 -0
  92. package/dist/esm/components/progress/progress.recipe.js +17 -0
  93. package/dist/esm/components/radiogroup/index.js +2 -0
  94. package/dist/esm/components/radiogroup/radiogroup.js +46 -0
  95. package/dist/esm/components/radiogroup/radiogroup.recipe.js +37 -0
  96. package/dist/esm/components/segmented/index.js +2 -0
  97. package/dist/esm/components/segmented/segmented.js +59 -0
  98. package/dist/esm/components/segmented/segmented.recipe.js +20 -0
  99. package/dist/esm/components/select/index.js +2 -0
  100. package/dist/esm/components/select/select.js +144 -0
  101. package/dist/esm/components/select/select.recipe.js +76 -0
  102. package/dist/esm/components/skeleton/index.js +2 -0
  103. package/dist/esm/components/skeleton/skeleton.js +7 -0
  104. package/dist/esm/components/skeleton/skeleton.recipe.js +14 -0
  105. package/dist/esm/components/spinner/index.js +2 -0
  106. package/dist/esm/components/spinner/spinner.js +11 -0
  107. package/dist/esm/components/spinner/spinner.recipe.js +13 -0
  108. package/dist/esm/components/stagebar/index.js +2 -0
  109. package/dist/esm/components/stagebar/stagebar.js +23 -0
  110. package/dist/esm/components/stagebar/stagebar.recipe.js +14 -0
  111. package/dist/esm/components/statcard/index.js +2 -0
  112. package/dist/esm/components/statcard/statcard.js +12 -0
  113. package/dist/esm/components/statcard/statcard.recipe.js +34 -0
  114. package/dist/esm/components/switch/index.js +2 -0
  115. package/dist/esm/components/switch/switch.js +22 -0
  116. package/dist/esm/components/switch/switch.recipe.js +26 -0
  117. package/dist/esm/components/table/index.js +2 -0
  118. package/dist/esm/components/table/table.js +30 -0
  119. package/dist/esm/components/table/table.recipe.js +40 -0
  120. package/dist/esm/components/tabletoolbar/index.js +2 -0
  121. package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +79 -0
  122. package/dist/esm/components/tabletoolbar/tabletoolbar.js +191 -0
  123. package/dist/esm/components/tabletoolbar/tabletoolbar.recipe.js +23 -0
  124. package/dist/esm/components/tabs/index.js +2 -0
  125. package/dist/esm/components/tabs/tabs.js +70 -0
  126. package/dist/esm/components/tabs/tabs.recipe.js +33 -0
  127. package/dist/esm/components/textarea/index.js +2 -0
  128. package/dist/esm/components/textarea/textarea.js +20 -0
  129. package/dist/esm/components/textarea/textarea.recipe.js +31 -0
  130. package/dist/esm/components/toast/index.js +2 -0
  131. package/dist/esm/components/toast/toast.js +58 -0
  132. package/dist/esm/components/toast/toast.recipe.js +28 -0
  133. package/dist/esm/components/tooltip/index.js +2 -0
  134. package/dist/esm/components/tooltip/tooltip.js +45 -0
  135. package/dist/esm/components/tooltip/tooltip.recipe.js +13 -0
  136. package/dist/esm/core/cx.js +1 -0
  137. package/dist/esm/core/define.js +3 -0
  138. package/dist/esm/core/index.js +4 -0
  139. package/dist/esm/core/primitive.js +13 -0
  140. package/dist/esm/core/resolve.js +41 -0
  141. package/dist/esm/core/types.js +1 -0
  142. package/dist/esm/index.js +71 -0
  143. package/dist/esm/product/appshell/appshell.js +44 -0
  144. package/dist/esm/product/appshell/appshell.recipe.js +27 -0
  145. package/dist/esm/product/appshell/index.js +2 -0
  146. package/dist/esm/product/board/board.js +42 -0
  147. package/dist/esm/product/board/board.recipe.js +28 -0
  148. package/dist/esm/product/board/index.js +2 -0
  149. package/dist/esm/product/command/command.js +188 -0
  150. package/dist/esm/product/command/command.recipe.js +19 -0
  151. package/dist/esm/product/command/index.js +2 -0
  152. package/dist/esm/product/entitycard/entitycard.js +11 -0
  153. package/dist/esm/product/entitycard/entitycard.recipe.js +29 -0
  154. package/dist/esm/product/entitycard/index.js +2 -0
  155. package/dist/esm/product/flowcanvas/flowcanvas.js +85 -0
  156. package/dist/esm/product/flowcanvas/flowcanvas.recipe.js +25 -0
  157. package/dist/esm/product/flowcanvas/index.js +2 -0
  158. package/dist/esm/product/inbox/inbox.js +13 -0
  159. package/dist/esm/product/inbox/inbox.recipe.js +43 -0
  160. package/dist/esm/product/inbox/index.js +2 -0
  161. package/dist/esm/product/listpage/index.js +2 -0
  162. package/dist/esm/product/listpage/listpage.js +21 -0
  163. package/dist/esm/product/listpage/listpage.recipe.js +43 -0
  164. package/dist/esm/product/navitem/index.js +1 -0
  165. package/dist/esm/product/navitem/navitem.js +8 -0
  166. package/dist/esm/product/navitem/navitem.recipe.js +21 -0
  167. package/dist/esm/product/onboarding/index.js +2 -0
  168. package/dist/esm/product/onboarding/onboarding.js +14 -0
  169. package/dist/esm/product/onboarding/onboarding.recipe.js +41 -0
  170. package/dist/esm/product/recordpage/index.js +2 -0
  171. package/dist/esm/product/recordpage/recordpage.js +286 -0
  172. package/dist/esm/product/recordpage/recordpage.recipe.js +157 -0
  173. package/dist/esm/product/recordpanel/index.js +2 -0
  174. package/dist/esm/product/recordpanel/recordpanel.js +47 -0
  175. package/dist/esm/product/recordpanel/recordpanel.recipe.js +52 -0
  176. package/dist/esm/product/recordstable/company-logos.js +26 -0
  177. package/dist/esm/product/recordstable/index.js +2 -0
  178. package/dist/esm/product/recordstable/recordstable.js +963 -0
  179. package/dist/esm/product/recordstable/recordstable.recipe.js +149 -0
  180. package/dist/esm/product/richtext/index.js +2 -0
  181. package/dist/esm/product/richtext/richtext.js +111 -0
  182. package/dist/esm/product/richtext/richtext.recipe.js +40 -0
  183. package/dist/esm/product/settingssection/index.js +2 -0
  184. package/dist/esm/product/settingssection/settingssection.js +11 -0
  185. package/dist/esm/product/settingssection/settingssection.recipe.js +20 -0
  186. package/dist/esm/product/settingsshell/index.js +2 -0
  187. package/dist/esm/product/settingsshell/settingsshell.js +23 -0
  188. package/dist/esm/product/settingsshell/settingsshell.recipe.js +38 -0
  189. package/dist/esm/product/sidebar/index.js +2 -0
  190. package/dist/esm/product/sidebar/sidebar.js +112 -0
  191. package/dist/esm/product/sidebar/sidebar.recipe.js +18 -0
  192. package/dist/esm/product/tasklist/index.js +2 -0
  193. package/dist/esm/product/tasklist/tasklist.js +16 -0
  194. package/dist/esm/product/tasklist/tasklist.recipe.js +35 -0
  195. package/dist/esm/product/trialbanner/index.js +2 -0
  196. package/dist/esm/product/trialbanner/trialbanner.js +10 -0
  197. package/dist/esm/product/trialbanner/trialbanner.recipe.js +29 -0
  198. package/dist/esm/product/viewtoggle/index.js +2 -0
  199. package/dist/esm/product/viewtoggle/viewtoggle.js +11 -0
  200. package/dist/esm/product/viewtoggle/viewtoggle.recipe.js +24 -0
  201. package/dist/esm/tokens/contract.js +18 -0
  202. package/dist/esm/tokens/index.js +4 -0
  203. package/dist/esm/tokens/palette.js +30 -0
  204. package/dist/esm/tokens/scale.js +60 -0
  205. package/dist/esm/tokens/semantic.js +30 -0
  206. package/dist/menu.css +2 -2
  207. package/dist/multiselect.css +3 -3
  208. package/dist/popover.css +1 -1
  209. package/dist/recordpage.css +5 -5
  210. package/dist/recordstable.css +5 -14
  211. package/dist/select.css +10 -4
  212. package/dist/select.d.ts +2 -1
  213. package/dist/sidebar.css +1 -1
  214. package/dist/statcard.css +6 -0
  215. package/dist/statcard.d.ts +2 -2
  216. package/dist/styles.css +237 -37
  217. package/dist/table.css +26 -0
  218. package/dist/table.d.ts +8 -0
  219. package/dist/tabletoolbar.css +70 -0
  220. package/dist/tabletoolbar.d.ts +7 -0
  221. package/dist/tokens.css +24 -0
  222. package/dist/types/components/bulkbar/bulkbar.d.ts +32 -0
  223. package/dist/types/components/bulkbar/bulkbar.recipe.d.ts +3 -0
  224. package/dist/types/components/bulkbar/index.d.ts +2 -0
  225. package/dist/types/components/datatable/datatable.d.ts +98 -0
  226. package/dist/types/components/datatable/datatable.recipe.d.ts +3 -0
  227. package/dist/types/components/datatable/index.d.ts +2 -0
  228. package/dist/types/components/select/select.d.ts +3 -1
  229. package/dist/types/components/select/select.recipe.d.ts +12 -0
  230. package/dist/types/components/statcard/statcard.d.ts +6 -1
  231. package/dist/types/components/statcard/statcard.recipe.d.ts +12 -2
  232. package/dist/types/components/table/index.d.ts +2 -0
  233. package/dist/types/components/table/table.d.ts +53 -0
  234. package/dist/types/components/table/table.recipe.d.ts +21 -0
  235. package/dist/types/components/tabletoolbar/index.d.ts +2 -0
  236. package/dist/types/components/tabletoolbar/tabletoolbar.chrome.d.ts +2 -0
  237. package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +63 -0
  238. package/dist/types/components/tabletoolbar/tabletoolbar.recipe.d.ts +3 -0
  239. package/dist/types/index.d.ts +4 -0
  240. package/dist/types/product/recordstable/company-logos.d.ts +1 -0
  241. package/dist/types/product/recordstable/recordstable.d.ts +44 -1
  242. package/dist/types/product/sidebar/index.d.ts +1 -1
  243. package/dist/types/product/sidebar/sidebar.d.ts +85 -0
  244. package/dist/types/tokens/contract.d.ts +12 -0
  245. package/dist/types/tokens/palette.d.ts +48 -0
  246. package/dist/types/tokens/semantic.d.ts +12 -0
  247. package/dist/viewtoggle.css +2 -2
  248. package/package.json +259 -9
  249. package/dist/index.js +0 -9653
@@ -1,11 +1,96 @@
1
1
  import * as React from "react";
2
+ import type { AvatarProps } from "../../components/avatar";
3
+ type IconProps = {
4
+ className?: string;
5
+ };
6
+ /** A row in the main nav, or in a section's item list (Chats, etc). */
7
+ export type SidebarNavItem = {
8
+ label: string;
9
+ /** 16px icon component, rendered `<Icon />`. */
10
+ icon: React.ComponentType<IconProps>;
11
+ active?: boolean;
12
+ trailing?: React.ReactNode;
13
+ };
14
+ /** A row in the Records section — rendered as a tinted 20px glyph avatar. */
15
+ export type SidebarRecordItem = {
16
+ label: string;
17
+ tone: NonNullable<AvatarProps["tone"]>;
18
+ /** 12px glyph, rendered `<Glyph />` inside the tone avatar. */
19
+ glyph: React.ComponentType;
20
+ };
21
+ /** The workspace switcher at the top of the sidebar. */
22
+ export type SidebarWorkspace = {
23
+ name: string;
24
+ /** Avatar initial/letter. */
25
+ avatarLabel: string;
26
+ avatarTone?: NonNullable<AvatarProps["tone"]>;
27
+ };
28
+ /** A collapsible section built from nav-item rows (main nav shape is used, less the divider). */
29
+ export type SidebarSection = {
30
+ label: string;
31
+ items: SidebarNavItem[];
32
+ };
33
+ /** The Records section — same shape as SidebarSection but with glyph-avatar rows. */
34
+ export type SidebarRecordsSection = {
35
+ label: string;
36
+ items: SidebarRecordItem[];
37
+ };
38
+ /** The Lists section — has no item list of its own, just the "+ New list" affordance. */
39
+ export type SidebarListsSection = {
40
+ label: string;
41
+ newListLabel: string;
42
+ };
43
+ /** Footer copy: the onboarding pill, the invite row, and the trial banner. */
44
+ export type SidebarFooter = {
45
+ gettingStartedLabel: string;
46
+ inviteLabel: string;
47
+ trialText: string;
48
+ trialActionLabel: string;
49
+ };
2
50
  export type SidebarProps = React.ComponentPropsWithoutRef<"nav"> & {
3
51
  asChild?: boolean;
4
52
  /** Called when the collapse-panel button in the header is pressed. */
5
53
  onToggleCollapse?: () => void;
54
+ /** Workspace switcher content. Defaults to the measured Attio workspace. */
55
+ workspace?: SidebarWorkspace;
56
+ /** Main nav rows (Home, Tasks, …). Defaults to the measured Attio nav. */
57
+ items?: SidebarNavItem[];
58
+ /** The Records section (label + glyph-avatar rows). */
59
+ recordsSection?: SidebarRecordsSection;
60
+ /** The Lists section (label + "new list" affordance label). */
61
+ listsSection?: SidebarListsSection;
62
+ /** The Chats section (label + nav-item rows). */
63
+ chatsSection?: SidebarSection;
64
+ /** Footer copy (onboarding pill, invite row, trial banner). */
65
+ footer?: SidebarFooter;
6
66
  };
67
+ /** The measured Attio workspace switcher — the default `workspace` prop. */
68
+ export declare const ATTIO_SIDEBAR_WORKSPACE: SidebarWorkspace;
69
+ /** The measured Attio main nav — the default `items` prop. */
70
+ export declare const ATTIO_SIDEBAR_ITEMS: SidebarNavItem[];
71
+ /** The measured Attio Records section — the default `recordsSection` prop. */
72
+ export declare const ATTIO_SIDEBAR_RECORDS_SECTION: SidebarRecordsSection;
73
+ /** The measured Attio Lists section — the default `listsSection` prop. */
74
+ export declare const ATTIO_SIDEBAR_LISTS_SECTION: SidebarListsSection;
75
+ /** The measured Attio Chats section — the default `chatsSection` prop. */
76
+ export declare const ATTIO_SIDEBAR_CHATS_SECTION: SidebarSection;
77
+ /** The measured Attio footer copy — the default `footer` prop. */
78
+ export declare const ATTIO_SIDEBAR_FOOTER: SidebarFooter;
7
79
  export declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
8
80
  asChild?: boolean;
9
81
  /** Called when the collapse-panel button in the header is pressed. */
10
82
  onToggleCollapse?: () => void;
83
+ /** Workspace switcher content. Defaults to the measured Attio workspace. */
84
+ workspace?: SidebarWorkspace;
85
+ /** Main nav rows (Home, Tasks, …). Defaults to the measured Attio nav. */
86
+ items?: SidebarNavItem[];
87
+ /** The Records section (label + glyph-avatar rows). */
88
+ recordsSection?: SidebarRecordsSection;
89
+ /** The Lists section (label + "new list" affordance label). */
90
+ listsSection?: SidebarListsSection;
91
+ /** The Chats section (label + nav-item rows). */
92
+ chatsSection?: SidebarSection;
93
+ /** Footer copy (onboarding pill, invite row, trial banner). */
94
+ footer?: SidebarFooter;
11
95
  } & React.RefAttributes<HTMLDivElement>>;
96
+ export {};
@@ -8,6 +8,18 @@ export declare const contract: MapLeafNodes<{
8
8
  bgRaised: "gray50";
9
9
  borderDefault: "line200";
10
10
  borderSubtle: "line100";
11
+ ringNeutral: "ringNeutral";
12
+ bgTileActive: "tileActive";
13
+ shadowTileActive: "tileActiveShadow";
14
+ bgOverlayFrost: "overlayFrost";
15
+ shadowOverlay1: "shadowOverlay1";
16
+ shadowOverlay2: "shadowOverlay2";
17
+ shadowOverlay3: "shadowOverlay3";
18
+ bgPopover: "popoverBg";
19
+ ringPopover: "ringPopover";
20
+ shadowPopover1: "shadowPopover1";
21
+ shadowPopover2: "shadowPopover2";
22
+ shadowPopover3: "shadowPopover3";
11
23
  fgPrimary: "gray900";
12
24
  fgMuted: "gray400";
13
25
  bgDanger: "red600";
@@ -23,6 +23,54 @@ export declare const palette: {
23
23
  readonly light: "#eeeff1";
24
24
  readonly dark: "#1c1d1f";
25
25
  };
26
+ readonly ringNeutral: {
27
+ readonly light: "transparent";
28
+ readonly dark: "#212224";
29
+ };
30
+ readonly tileActive: {
31
+ readonly light: "#ffffff";
32
+ readonly dark: "#101112";
33
+ };
34
+ readonly tileActiveShadow: {
35
+ readonly light: "rgba(0,0,0,0.04)";
36
+ readonly dark: "rgba(0,0,0,0)";
37
+ };
38
+ readonly overlayFrost: {
39
+ readonly light: "#ffffff";
40
+ readonly dark: "#1c1d1f";
41
+ };
42
+ readonly shadowOverlay1: {
43
+ readonly light: "rgba(28,40,64,0.12)";
44
+ readonly dark: "rgba(0,0,0,0.48)";
45
+ };
46
+ readonly shadowOverlay2: {
47
+ readonly light: "rgba(28,40,64,0.16)";
48
+ readonly dark: "rgba(0,0,0,0.64)";
49
+ };
50
+ readonly shadowOverlay3: {
51
+ readonly light: "rgba(28,40,64,0.16)";
52
+ readonly dark: "rgba(0,0,0,0)";
53
+ };
54
+ readonly popoverBg: {
55
+ readonly light: "#ffffff";
56
+ readonly dark: "#17181a";
57
+ };
58
+ readonly ringPopover: {
59
+ readonly light: "rgba(0,0,0,0)";
60
+ readonly dark: "#212224";
61
+ };
62
+ readonly shadowPopover1: {
63
+ readonly light: "rgba(28,40,64,0.04)";
64
+ readonly dark: "rgba(0,0,0,0.16)";
65
+ };
66
+ readonly shadowPopover2: {
67
+ readonly light: "rgba(28,40,64,0.12)";
68
+ readonly dark: "rgba(0,0,0,0.24)";
69
+ };
70
+ readonly shadowPopover3: {
71
+ readonly light: "rgba(24,41,75,0.16)";
72
+ readonly dark: "rgba(0,0,0,0.32)";
73
+ };
26
74
  readonly gray400: {
27
75
  readonly light: "#71717a";
28
76
  readonly dark: "#9a9aa2";
@@ -6,6 +6,18 @@ export declare const semantic: {
6
6
  bgRaised: "gray50";
7
7
  borderDefault: "line200";
8
8
  borderSubtle: "line100";
9
+ ringNeutral: "ringNeutral";
10
+ bgTileActive: "tileActive";
11
+ shadowTileActive: "tileActiveShadow";
12
+ bgOverlayFrost: "overlayFrost";
13
+ shadowOverlay1: "shadowOverlay1";
14
+ shadowOverlay2: "shadowOverlay2";
15
+ shadowOverlay3: "shadowOverlay3";
16
+ bgPopover: "popoverBg";
17
+ ringPopover: "ringPopover";
18
+ shadowPopover1: "shadowPopover1";
19
+ shadowPopover2: "shadowPopover2";
20
+ shadowPopover3: "shadowPopover3";
9
21
  fgPrimary: "gray900";
10
22
  fgMuted: "gray400";
11
23
  bgDanger: "red600";
@@ -7,7 +7,7 @@
7
7
  padding: 0; margin: 0; border: none; border-radius: var(--radius-md); background: none; color: var(--fg-muted);
8
8
  cursor: pointer; transition: background-color .12s, color .12s, box-shadow .12s; }
9
9
  & .viewtoggle-tile:hover { color: var(--fg-primary); }
10
- & .viewtoggle-tile[data-active] { background: var(--bg-surface); color: var(--fg-primary);
11
- box-shadow: 0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04); }
10
+ & .viewtoggle-tile[data-active] { background: var(--bg-tile-active); color: var(--fg-primary);
11
+ box-shadow: 0 1px 2px -1px var(--shadow-tile-active); }
12
12
  & .viewtoggle-tile:focus-visible { outline: 2px solid var(--bg-brand-solid); outline-offset: 1px; }
13
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crisp-ui-kit/crisp",
3
- "version": "0.1.0",
3
+ "version": "0.5.0",
4
4
  "description": "A lean React design system, measured pixel-for-pixel from Attio.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -21,15 +21,264 @@
21
21
  "attio",
22
22
  "tokens"
23
23
  ],
24
- "main": "./dist/index.js",
25
- "module": "./dist/index.js",
24
+ "main": "./dist/esm/index.js",
25
+ "module": "./dist/esm/index.js",
26
26
  "types": "./dist/types/index.d.ts",
27
27
  "exports": {
28
28
  ".": {
29
29
  "types": "./dist/types/index.d.ts",
30
- "import": "./dist/index.js"
30
+ "import": "./dist/esm/index.js"
31
31
  },
32
- "./styles.css": "./dist/styles.css"
32
+ "./styles.css": "./dist/styles.css",
33
+ "./base.css": "./dist/base.css",
34
+ "./accordion": {
35
+ "types": "./dist/types/components/accordion/index.d.ts",
36
+ "import": "./dist/esm/components/accordion/index.js"
37
+ },
38
+ "./avatar": {
39
+ "types": "./dist/types/components/avatar/index.d.ts",
40
+ "import": "./dist/esm/components/avatar/index.js"
41
+ },
42
+ "./avatargroup": {
43
+ "types": "./dist/types/components/avatargroup/index.d.ts",
44
+ "import": "./dist/esm/components/avatargroup/index.js"
45
+ },
46
+ "./badge": {
47
+ "types": "./dist/types/components/badge/index.d.ts",
48
+ "import": "./dist/esm/components/badge/index.js"
49
+ },
50
+ "./barchart": {
51
+ "types": "./dist/types/components/barchart/index.d.ts",
52
+ "import": "./dist/esm/components/barchart/index.js"
53
+ },
54
+ "./breadcrumb": {
55
+ "types": "./dist/types/components/breadcrumb/index.d.ts",
56
+ "import": "./dist/esm/components/breadcrumb/index.js"
57
+ },
58
+ "./bulkbar": {
59
+ "types": "./dist/types/components/bulkbar/index.d.ts",
60
+ "import": "./dist/esm/components/bulkbar/index.js"
61
+ },
62
+ "./button": {
63
+ "types": "./dist/types/components/button/index.d.ts",
64
+ "import": "./dist/esm/components/button/index.js"
65
+ },
66
+ "./callout": {
67
+ "types": "./dist/types/components/callout/index.d.ts",
68
+ "import": "./dist/esm/components/callout/index.js"
69
+ },
70
+ "./card": {
71
+ "types": "./dist/types/components/card/index.d.ts",
72
+ "import": "./dist/esm/components/card/index.js"
73
+ },
74
+ "./checkbox": {
75
+ "types": "./dist/types/components/checkbox/index.d.ts",
76
+ "import": "./dist/esm/components/checkbox/index.js"
77
+ },
78
+ "./contextmenu": {
79
+ "types": "./dist/types/components/contextmenu/index.d.ts",
80
+ "import": "./dist/esm/components/contextmenu/index.js"
81
+ },
82
+ "./datatable": {
83
+ "types": "./dist/types/components/datatable/index.d.ts",
84
+ "import": "./dist/esm/components/datatable/index.js"
85
+ },
86
+ "./datepicker": {
87
+ "types": "./dist/types/components/datepicker/index.d.ts",
88
+ "import": "./dist/esm/components/datepicker/index.js"
89
+ },
90
+ "./dialog": {
91
+ "types": "./dist/types/components/dialog/index.d.ts",
92
+ "import": "./dist/esm/components/dialog/index.js"
93
+ },
94
+ "./divider": {
95
+ "types": "./dist/types/components/divider/index.d.ts",
96
+ "import": "./dist/esm/components/divider/index.js"
97
+ },
98
+ "./donutchart": {
99
+ "types": "./dist/types/components/donutchart/index.d.ts",
100
+ "import": "./dist/esm/components/donutchart/index.js"
101
+ },
102
+ "./drawer": {
103
+ "types": "./dist/types/components/drawer/index.d.ts",
104
+ "import": "./dist/esm/components/drawer/index.js"
105
+ },
106
+ "./emptystate": {
107
+ "types": "./dist/types/components/emptystate/index.d.ts",
108
+ "import": "./dist/esm/components/emptystate/index.js"
109
+ },
110
+ "./formfield": {
111
+ "types": "./dist/types/components/formfield/index.d.ts",
112
+ "import": "./dist/esm/components/formfield/index.js"
113
+ },
114
+ "./input": {
115
+ "types": "./dist/types/components/input/index.d.ts",
116
+ "import": "./dist/esm/components/input/index.js"
117
+ },
118
+ "./kbd": {
119
+ "types": "./dist/types/components/kbd/index.d.ts",
120
+ "import": "./dist/esm/components/kbd/index.js"
121
+ },
122
+ "./linechart": {
123
+ "types": "./dist/types/components/linechart/index.d.ts",
124
+ "import": "./dist/esm/components/linechart/index.js"
125
+ },
126
+ "./menu": {
127
+ "types": "./dist/types/components/menu/index.d.ts",
128
+ "import": "./dist/esm/components/menu/index.js"
129
+ },
130
+ "./multiselect": {
131
+ "types": "./dist/types/components/multiselect/index.d.ts",
132
+ "import": "./dist/esm/components/multiselect/index.js"
133
+ },
134
+ "./popover": {
135
+ "types": "./dist/types/components/popover/index.d.ts",
136
+ "import": "./dist/esm/components/popover/index.js"
137
+ },
138
+ "./progress": {
139
+ "types": "./dist/types/components/progress/index.d.ts",
140
+ "import": "./dist/esm/components/progress/index.js"
141
+ },
142
+ "./radiogroup": {
143
+ "types": "./dist/types/components/radiogroup/index.d.ts",
144
+ "import": "./dist/esm/components/radiogroup/index.js"
145
+ },
146
+ "./segmented": {
147
+ "types": "./dist/types/components/segmented/index.d.ts",
148
+ "import": "./dist/esm/components/segmented/index.js"
149
+ },
150
+ "./select": {
151
+ "types": "./dist/types/components/select/index.d.ts",
152
+ "import": "./dist/esm/components/select/index.js"
153
+ },
154
+ "./skeleton": {
155
+ "types": "./dist/types/components/skeleton/index.d.ts",
156
+ "import": "./dist/esm/components/skeleton/index.js"
157
+ },
158
+ "./spinner": {
159
+ "types": "./dist/types/components/spinner/index.d.ts",
160
+ "import": "./dist/esm/components/spinner/index.js"
161
+ },
162
+ "./stagebar": {
163
+ "types": "./dist/types/components/stagebar/index.d.ts",
164
+ "import": "./dist/esm/components/stagebar/index.js"
165
+ },
166
+ "./statcard": {
167
+ "types": "./dist/types/components/statcard/index.d.ts",
168
+ "import": "./dist/esm/components/statcard/index.js"
169
+ },
170
+ "./switch": {
171
+ "types": "./dist/types/components/switch/index.d.ts",
172
+ "import": "./dist/esm/components/switch/index.js"
173
+ },
174
+ "./table": {
175
+ "types": "./dist/types/components/table/index.d.ts",
176
+ "import": "./dist/esm/components/table/index.js"
177
+ },
178
+ "./tabletoolbar": {
179
+ "types": "./dist/types/components/tabletoolbar/index.d.ts",
180
+ "import": "./dist/esm/components/tabletoolbar/index.js"
181
+ },
182
+ "./tabs": {
183
+ "types": "./dist/types/components/tabs/index.d.ts",
184
+ "import": "./dist/esm/components/tabs/index.js"
185
+ },
186
+ "./textarea": {
187
+ "types": "./dist/types/components/textarea/index.d.ts",
188
+ "import": "./dist/esm/components/textarea/index.js"
189
+ },
190
+ "./toast": {
191
+ "types": "./dist/types/components/toast/index.d.ts",
192
+ "import": "./dist/esm/components/toast/index.js"
193
+ },
194
+ "./tooltip": {
195
+ "types": "./dist/types/components/tooltip/index.d.ts",
196
+ "import": "./dist/esm/components/tooltip/index.js"
197
+ },
198
+ "./appshell": {
199
+ "types": "./dist/types/product/appshell/index.d.ts",
200
+ "import": "./dist/esm/product/appshell/index.js"
201
+ },
202
+ "./board": {
203
+ "types": "./dist/types/product/board/index.d.ts",
204
+ "import": "./dist/esm/product/board/index.js"
205
+ },
206
+ "./command": {
207
+ "types": "./dist/types/product/command/index.d.ts",
208
+ "import": "./dist/esm/product/command/index.js"
209
+ },
210
+ "./entitycard": {
211
+ "types": "./dist/types/product/entitycard/index.d.ts",
212
+ "import": "./dist/esm/product/entitycard/index.js"
213
+ },
214
+ "./flowcanvas": {
215
+ "types": "./dist/types/product/flowcanvas/index.d.ts",
216
+ "import": "./dist/esm/product/flowcanvas/index.js"
217
+ },
218
+ "./inbox": {
219
+ "types": "./dist/types/product/inbox/index.d.ts",
220
+ "import": "./dist/esm/product/inbox/index.js"
221
+ },
222
+ "./listpage": {
223
+ "types": "./dist/types/product/listpage/index.d.ts",
224
+ "import": "./dist/esm/product/listpage/index.js"
225
+ },
226
+ "./navitem": {
227
+ "types": "./dist/types/product/navitem/index.d.ts",
228
+ "import": "./dist/esm/product/navitem/index.js"
229
+ },
230
+ "./onboarding": {
231
+ "types": "./dist/types/product/onboarding/index.d.ts",
232
+ "import": "./dist/esm/product/onboarding/index.js"
233
+ },
234
+ "./recordpage": {
235
+ "types": "./dist/types/product/recordpage/index.d.ts",
236
+ "import": "./dist/esm/product/recordpage/index.js"
237
+ },
238
+ "./recordpanel": {
239
+ "types": "./dist/types/product/recordpanel/index.d.ts",
240
+ "import": "./dist/esm/product/recordpanel/index.js"
241
+ },
242
+ "./recordstable": {
243
+ "types": "./dist/types/product/recordstable/index.d.ts",
244
+ "import": "./dist/esm/product/recordstable/index.js"
245
+ },
246
+ "./richtext": {
247
+ "types": "./dist/types/product/richtext/index.d.ts",
248
+ "import": "./dist/esm/product/richtext/index.js"
249
+ },
250
+ "./settingssection": {
251
+ "types": "./dist/types/product/settingssection/index.d.ts",
252
+ "import": "./dist/esm/product/settingssection/index.js"
253
+ },
254
+ "./settingsshell": {
255
+ "types": "./dist/types/product/settingsshell/index.d.ts",
256
+ "import": "./dist/esm/product/settingsshell/index.js"
257
+ },
258
+ "./sidebar": {
259
+ "types": "./dist/types/product/sidebar/index.d.ts",
260
+ "import": "./dist/esm/product/sidebar/index.js"
261
+ },
262
+ "./tasklist": {
263
+ "types": "./dist/types/product/tasklist/index.d.ts",
264
+ "import": "./dist/esm/product/tasklist/index.js"
265
+ },
266
+ "./trialbanner": {
267
+ "types": "./dist/types/product/trialbanner/index.d.ts",
268
+ "import": "./dist/esm/product/trialbanner/index.js"
269
+ },
270
+ "./viewtoggle": {
271
+ "types": "./dist/types/product/viewtoggle/index.d.ts",
272
+ "import": "./dist/esm/product/viewtoggle/index.js"
273
+ },
274
+ "./tokens": {
275
+ "types": "./dist/types/tokens/index.d.ts",
276
+ "import": "./dist/esm/tokens/index.js"
277
+ },
278
+ "./core": {
279
+ "types": "./dist/types/core/index.d.ts",
280
+ "import": "./dist/esm/core/index.js"
281
+ }
33
282
  },
34
283
  "files": [
35
284
  "dist",
@@ -38,14 +287,15 @@
38
287
  ],
39
288
  "scripts": {
40
289
  "build:css": "bun run build.mjs",
41
- "build:js": "bun build ./index.ts --outdir dist --format esm --packages external",
42
290
  "build:types": "tsc -p tsconfig.build.json",
43
- "build": "bun run build:css && bun run build:js && bun run build:types",
44
- "prepublishOnly": "bun run build",
291
+ "build": "bun run build:css && bun run build:esm && bun run build:types",
292
+ "check:dist": "bun scripts/check-dist.mjs",
293
+ "prepublishOnly": "bun run build && bun run check:dist",
45
294
  "typecheck": "tsc --noEmit",
46
295
  "lint": "biome check .",
47
296
  "test": "bun test",
48
- "spec": "bun build/spec-check.mjs"
297
+ "spec": "bun build/spec-check.mjs",
298
+ "build:esm": "tsc -p tsconfig.esm.json && bun scripts/fix-esm-extensions.mjs"
49
299
  },
50
300
  "peerDependencies": {
51
301
  "react": ">=18",