@crisp-ui-kit/crisp 0.31.5 → 0.32.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 (403) hide show
  1. package/NOTICE +88 -0
  2. package/README.md +22 -0
  3. package/dist/accordion.css +13 -13
  4. package/dist/accordion.layered.css +23 -0
  5. package/dist/appshell.css +11 -11
  6. package/dist/appshell.layered.css +25 -0
  7. package/dist/authshell.css +23 -23
  8. package/dist/authshell.layered.css +59 -0
  9. package/dist/avatar.css +23 -23
  10. package/dist/avatar.layered.css +41 -0
  11. package/dist/avatargroup.css +2 -2
  12. package/dist/avatargroup.layered.css +7 -0
  13. package/dist/badge.css +31 -31
  14. package/dist/badge.layered.css +51 -0
  15. package/dist/barchart.css +15 -15
  16. package/dist/barchart.layered.css +25 -0
  17. package/dist/base.css +4 -4
  18. package/dist/board.css +20 -20
  19. package/dist/board.layered.css +34 -0
  20. package/dist/breadcrumb.css +8 -8
  21. package/dist/breadcrumb.layered.css +13 -0
  22. package/dist/bulkbar.css +13 -13
  23. package/dist/bulkbar.layered.css +23 -0
  24. package/dist/button.css +21 -21
  25. package/dist/button.layered.css +46 -0
  26. package/dist/callout.css +15 -15
  27. package/dist/callout.layered.css +18 -0
  28. package/dist/card.css +14 -14
  29. package/dist/card.layered.css +30 -0
  30. package/dist/checkbox.css +9 -9
  31. package/dist/checkbox.layered.css +21 -0
  32. package/dist/cjs/components/accordion/accordion.js +1 -1
  33. package/dist/cjs/components/accordion/accordion.recipe.js +10 -10
  34. package/dist/cjs/components/badge/badge.js +1 -1
  35. package/dist/cjs/components/badge/badge.recipe.js +1 -1
  36. package/dist/cjs/components/barchart/barchart.js +3 -3
  37. package/dist/cjs/components/barchart/barchart.recipe.js +14 -14
  38. package/dist/cjs/components/breadcrumb/breadcrumb.js +1 -1
  39. package/dist/cjs/components/breadcrumb/breadcrumb.recipe.js +6 -6
  40. package/dist/cjs/components/bulkbar/bulkbar.js +2 -2
  41. package/dist/cjs/components/bulkbar/bulkbar.recipe.js +10 -10
  42. package/dist/cjs/components/callout/callout.js +1 -1
  43. package/dist/cjs/components/callout/callout.recipe.js +9 -9
  44. package/dist/cjs/components/card/card.js +3 -3
  45. package/dist/cjs/components/card/card.recipe.js +5 -5
  46. package/dist/cjs/components/columncalc/columncalc.js +1 -1
  47. package/dist/cjs/components/columncalc/columncalc.recipe.js +16 -9
  48. package/dist/cjs/components/contextmenu/contextmenu.js +4 -4
  49. package/dist/cjs/components/contextmenu/contextmenu.recipe.js +9 -9
  50. package/dist/cjs/components/datatable/datatable.js +21 -19
  51. package/dist/cjs/components/datatable/datatable.recipe.js +57 -57
  52. package/dist/cjs/components/datepicker/datepicker.js +12 -12
  53. package/dist/cjs/components/datepicker/datepicker.recipe.js +45 -45
  54. package/dist/cjs/components/datepickerfield/datepickerfield.js +2 -2
  55. package/dist/cjs/components/datepickerfield/datepickerfield.recipe.js +9 -9
  56. package/dist/cjs/components/dialog/dialog.js +5 -5
  57. package/dist/cjs/components/dialog/dialog.recipe.js +16 -16
  58. package/dist/cjs/components/donutchart/donutchart.js +1 -1
  59. package/dist/cjs/components/donutchart/donutchart.recipe.js +12 -12
  60. package/dist/cjs/components/drawer/drawer.js +3 -3
  61. package/dist/cjs/components/drawer/drawer.recipe.js +14 -14
  62. package/dist/cjs/components/emptystate/emptystate.js +1 -1
  63. package/dist/cjs/components/emptystate/emptystate.recipe.js +9 -9
  64. package/dist/cjs/components/fileupload/fileupload.js +3 -3
  65. package/dist/cjs/components/fileupload/fileupload.recipe.js +23 -23
  66. package/dist/cjs/components/formfield/formfield.js +1 -1
  67. package/dist/cjs/components/formfield/formfield.recipe.js +5 -5
  68. package/dist/cjs/components/input/input.js +1 -1
  69. package/dist/cjs/components/input/input.recipe.js +6 -6
  70. package/dist/cjs/components/linechart/linechart.js +4 -4
  71. package/dist/cjs/components/linechart/linechart.recipe.js +14 -14
  72. package/dist/cjs/components/menu/menu.js +6 -6
  73. package/dist/cjs/components/menu/menu.recipe.js +19 -19
  74. package/dist/cjs/components/multiselect/multiselect.js +5 -5
  75. package/dist/cjs/components/multiselect/multiselect.recipe.js +29 -29
  76. package/dist/cjs/components/popover/popover.js +1 -1
  77. package/dist/cjs/components/popover/popover.recipe.js +3 -3
  78. package/dist/cjs/components/progress/progress.js +2 -2
  79. package/dist/cjs/components/progress/progress.recipe.js +3 -3
  80. package/dist/cjs/components/quantitypicker/quantitypicker.js +2 -2
  81. package/dist/cjs/components/quantitypicker/quantitypicker.recipe.js +16 -16
  82. package/dist/cjs/components/radiogroup/radiogroup.js +1 -1
  83. package/dist/cjs/components/radiogroup/radiogroup.recipe.js +14 -14
  84. package/dist/cjs/components/resizablepanel/resizablepanel.js +3 -3
  85. package/dist/cjs/components/resizablepanel/resizablepanel.recipe.js +24 -24
  86. package/dist/cjs/components/segmented/segmented.js +4 -4
  87. package/dist/cjs/components/segmented/segmented.recipe.js +7 -7
  88. package/dist/cjs/components/select/select.js +3 -3
  89. package/dist/cjs/components/select/select.recipe.js +25 -25
  90. package/dist/cjs/components/slider/slider.js +2 -2
  91. package/dist/cjs/components/slider/slider.recipe.js +15 -15
  92. package/dist/cjs/components/stagebar/stagebar.js +1 -1
  93. package/dist/cjs/components/stagebar/stagebar.recipe.js +1 -1
  94. package/dist/cjs/components/statcard/statcard.js +1 -1
  95. package/dist/cjs/components/statcard/statcard.recipe.js +9 -9
  96. package/dist/cjs/components/switch/switch.js +1 -1
  97. package/dist/cjs/components/switch/switch.recipe.js +2 -2
  98. package/dist/cjs/components/table/table.js +1 -1
  99. package/dist/cjs/components/table/table.recipe.js +1 -1
  100. package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +65 -64
  101. package/dist/cjs/components/tabletoolbar/tabletoolbar.js +13 -13
  102. package/dist/cjs/components/tabs/tabs.js +4 -4
  103. package/dist/cjs/components/tabs/tabs.recipe.js +12 -12
  104. package/dist/cjs/components/textarea/textarea.js +2 -2
  105. package/dist/cjs/components/textarea/textarea.recipe.js +11 -11
  106. package/dist/cjs/components/toast/toast.js +4 -4
  107. package/dist/cjs/components/toast/toast.recipe.js +14 -14
  108. package/dist/cjs/components/wheelpicker/wheelpicker.js +2 -2
  109. package/dist/cjs/components/wheelpicker/wheelpicker.recipe.js +19 -19
  110. package/dist/cjs/core/dialog-description.js +1 -1
  111. package/dist/cjs/core/namespace.js +17 -0
  112. package/dist/cjs/core/resolve.js +5 -3
  113. package/dist/cjs/index.js +1 -1
  114. package/dist/cjs/product/appshell/appshell.js +2 -2
  115. package/dist/cjs/product/appshell/appshell.recipe.js +8 -8
  116. package/dist/cjs/product/authshell/authshell.js +1 -1
  117. package/dist/cjs/product/authshell/authshell.recipe.js +20 -20
  118. package/dist/cjs/product/board/board.js +3 -3
  119. package/dist/cjs/product/board/board.recipe.js +17 -17
  120. package/dist/cjs/product/command/command.js +3 -3
  121. package/dist/cjs/product/command/command.recipe.js +25 -25
  122. package/dist/cjs/product/entitycard/entitycard.js +1 -1
  123. package/dist/cjs/product/entitycard/entitycard.recipe.js +7 -7
  124. package/dist/cjs/product/flowcanvas/flowcanvas.js +5 -5
  125. package/dist/cjs/product/flowcanvas/flowcanvas.recipe.js +11 -11
  126. package/dist/cjs/product/inbox/inbox.js +1 -1
  127. package/dist/cjs/product/inbox/inbox.recipe.js +22 -22
  128. package/dist/cjs/product/listpage/listpage.js +3 -3
  129. package/dist/cjs/product/listpage/listpage.recipe.js +18 -18
  130. package/dist/cjs/product/navitem/navitem.js +1 -1
  131. package/dist/cjs/product/navitem/navitem.recipe.js +2 -2
  132. package/dist/cjs/product/onboarding/onboarding.js +1 -1
  133. package/dist/cjs/product/onboarding/onboarding.recipe.js +19 -19
  134. package/dist/cjs/product/recordpage/recordpage.js +24 -24
  135. package/dist/cjs/product/recordpage/recordpage.recipe.js +117 -117
  136. package/dist/cjs/product/recordpanel/recordpanel.js +4 -4
  137. package/dist/cjs/product/recordpanel/recordpanel.recipe.js +15 -15
  138. package/dist/cjs/product/recordstable/recordstable.js +48 -48
  139. package/dist/cjs/product/recordstable/recordstable.recipe.js +87 -87
  140. package/dist/cjs/product/recordstable/recordstable.tag.js +8 -8
  141. package/dist/cjs/product/richtext/richtext.js +4 -4
  142. package/dist/cjs/product/richtext/richtext.recipe.js +21 -21
  143. package/dist/cjs/product/settingssection/settingssection.js +1 -1
  144. package/dist/cjs/product/settingssection/settingssection.recipe.js +6 -6
  145. package/dist/cjs/product/settingsshell/settingsshell.js +1 -1
  146. package/dist/cjs/product/settingsshell/settingsshell.recipe.js +20 -20
  147. package/dist/cjs/product/sidebar/sidebar.js +2 -2
  148. package/dist/cjs/product/sidebar/sidebar.recipe.js +21 -21
  149. package/dist/cjs/product/tasklist/tasklist.js +2 -2
  150. package/dist/cjs/product/tasklist/tasklist.recipe.js +14 -14
  151. package/dist/cjs/product/trialbanner/trialbanner.js +1 -1
  152. package/dist/cjs/product/trialbanner/trialbanner.recipe.js +6 -6
  153. package/dist/cjs/product/viewtoggle/viewtoggle.js +1 -1
  154. package/dist/cjs/product/viewtoggle/viewtoggle.recipe.js +4 -4
  155. package/dist/cjs/tokens/contract.js +3 -2
  156. package/dist/cjs/tokens/elevation.js +4 -4
  157. package/dist/cjs/tokens/palette.js +2 -2
  158. package/dist/cjs/tokens/scale.js +6 -6
  159. package/dist/cjs/tokens/semantic.js +1 -1
  160. package/dist/columncalc.css +19 -12
  161. package/dist/columncalc.layered.css +35 -0
  162. package/dist/command.css +28 -28
  163. package/dist/command.layered.css +44 -0
  164. package/dist/contextmenu.css +12 -12
  165. package/dist/contextmenu.layered.css +22 -0
  166. package/dist/datatable.css +66 -66
  167. package/dist/datatable.layered.css +108 -0
  168. package/dist/datepicker.css +86 -86
  169. package/dist/datepicker.layered.css +179 -0
  170. package/dist/datepickerfield.css +19 -19
  171. package/dist/datepickerfield.layered.css +29 -0
  172. package/dist/dialog.css +19 -19
  173. package/dist/dialog.layered.css +29 -0
  174. package/dist/divider.css +2 -2
  175. package/dist/divider.layered.css +7 -0
  176. package/dist/donutchart.css +15 -15
  177. package/dist/donutchart.layered.css +26 -0
  178. package/dist/drawer.css +17 -17
  179. package/dist/drawer.layered.css +27 -0
  180. package/dist/emptystate.css +15 -15
  181. package/dist/emptystate.layered.css +22 -0
  182. package/dist/entitycard.css +14 -14
  183. package/dist/entitycard.layered.css +28 -0
  184. package/dist/esm/components/accordion/accordion.js +1 -1
  185. package/dist/esm/components/accordion/accordion.recipe.js +10 -10
  186. package/dist/esm/components/badge/badge.js +1 -1
  187. package/dist/esm/components/badge/badge.recipe.js +1 -1
  188. package/dist/esm/components/barchart/barchart.js +3 -3
  189. package/dist/esm/components/barchart/barchart.recipe.js +14 -14
  190. package/dist/esm/components/breadcrumb/breadcrumb.js +1 -1
  191. package/dist/esm/components/breadcrumb/breadcrumb.recipe.js +6 -6
  192. package/dist/esm/components/bulkbar/bulkbar.js +2 -2
  193. package/dist/esm/components/bulkbar/bulkbar.recipe.js +10 -10
  194. package/dist/esm/components/callout/callout.js +1 -1
  195. package/dist/esm/components/callout/callout.recipe.js +9 -9
  196. package/dist/esm/components/card/card.js +3 -3
  197. package/dist/esm/components/card/card.recipe.js +5 -5
  198. package/dist/esm/components/columncalc/columncalc.js +1 -1
  199. package/dist/esm/components/columncalc/columncalc.recipe.js +16 -9
  200. package/dist/esm/components/contextmenu/contextmenu.js +4 -4
  201. package/dist/esm/components/contextmenu/contextmenu.recipe.js +9 -9
  202. package/dist/esm/components/datatable/datatable.js +21 -19
  203. package/dist/esm/components/datatable/datatable.recipe.js +57 -57
  204. package/dist/esm/components/datepicker/datepicker.js +12 -12
  205. package/dist/esm/components/datepicker/datepicker.recipe.js +45 -45
  206. package/dist/esm/components/datepickerfield/datepickerfield.js +2 -2
  207. package/dist/esm/components/datepickerfield/datepickerfield.recipe.js +9 -9
  208. package/dist/esm/components/dialog/dialog.js +5 -5
  209. package/dist/esm/components/dialog/dialog.recipe.js +16 -16
  210. package/dist/esm/components/donutchart/donutchart.js +1 -1
  211. package/dist/esm/components/donutchart/donutchart.recipe.js +12 -12
  212. package/dist/esm/components/drawer/drawer.js +3 -3
  213. package/dist/esm/components/drawer/drawer.recipe.js +14 -14
  214. package/dist/esm/components/emptystate/emptystate.js +1 -1
  215. package/dist/esm/components/emptystate/emptystate.recipe.js +9 -9
  216. package/dist/esm/components/fileupload/fileupload.js +3 -3
  217. package/dist/esm/components/fileupload/fileupload.recipe.js +23 -23
  218. package/dist/esm/components/formfield/formfield.js +1 -1
  219. package/dist/esm/components/formfield/formfield.recipe.js +5 -5
  220. package/dist/esm/components/input/input.js +1 -1
  221. package/dist/esm/components/input/input.recipe.js +6 -6
  222. package/dist/esm/components/linechart/linechart.js +4 -4
  223. package/dist/esm/components/linechart/linechart.recipe.js +14 -14
  224. package/dist/esm/components/menu/menu.js +6 -6
  225. package/dist/esm/components/menu/menu.recipe.js +19 -19
  226. package/dist/esm/components/multiselect/multiselect.js +5 -5
  227. package/dist/esm/components/multiselect/multiselect.recipe.js +29 -29
  228. package/dist/esm/components/popover/popover.js +1 -1
  229. package/dist/esm/components/popover/popover.recipe.js +3 -3
  230. package/dist/esm/components/progress/progress.js +2 -2
  231. package/dist/esm/components/progress/progress.recipe.js +3 -3
  232. package/dist/esm/components/quantitypicker/quantitypicker.js +2 -2
  233. package/dist/esm/components/quantitypicker/quantitypicker.recipe.js +16 -16
  234. package/dist/esm/components/radiogroup/radiogroup.js +1 -1
  235. package/dist/esm/components/radiogroup/radiogroup.recipe.js +14 -14
  236. package/dist/esm/components/resizablepanel/resizablepanel.js +3 -3
  237. package/dist/esm/components/resizablepanel/resizablepanel.recipe.js +24 -24
  238. package/dist/esm/components/segmented/segmented.js +4 -4
  239. package/dist/esm/components/segmented/segmented.recipe.js +7 -7
  240. package/dist/esm/components/select/select.js +3 -3
  241. package/dist/esm/components/select/select.recipe.js +25 -25
  242. package/dist/esm/components/slider/slider.js +2 -2
  243. package/dist/esm/components/slider/slider.recipe.js +15 -15
  244. package/dist/esm/components/stagebar/stagebar.js +1 -1
  245. package/dist/esm/components/stagebar/stagebar.recipe.js +1 -1
  246. package/dist/esm/components/statcard/statcard.js +1 -1
  247. package/dist/esm/components/statcard/statcard.recipe.js +9 -9
  248. package/dist/esm/components/switch/switch.js +1 -1
  249. package/dist/esm/components/switch/switch.recipe.js +2 -2
  250. package/dist/esm/components/table/table.js +1 -1
  251. package/dist/esm/components/table/table.recipe.js +1 -1
  252. package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +65 -64
  253. package/dist/esm/components/tabletoolbar/tabletoolbar.js +13 -13
  254. package/dist/esm/components/tabs/tabs.js +4 -4
  255. package/dist/esm/components/tabs/tabs.recipe.js +12 -12
  256. package/dist/esm/components/textarea/textarea.js +2 -2
  257. package/dist/esm/components/textarea/textarea.recipe.js +11 -11
  258. package/dist/esm/components/toast/toast.js +4 -4
  259. package/dist/esm/components/toast/toast.recipe.js +14 -14
  260. package/dist/esm/components/wheelpicker/wheelpicker.js +2 -2
  261. package/dist/esm/components/wheelpicker/wheelpicker.recipe.js +19 -19
  262. package/dist/esm/core/dialog-description.js +1 -1
  263. package/dist/esm/core/namespace.js +14 -0
  264. package/dist/esm/core/resolve.js +5 -3
  265. package/dist/esm/index.js +1 -1
  266. package/dist/esm/product/appshell/appshell.js +2 -2
  267. package/dist/esm/product/appshell/appshell.recipe.js +8 -8
  268. package/dist/esm/product/authshell/authshell.js +1 -1
  269. package/dist/esm/product/authshell/authshell.recipe.js +20 -20
  270. package/dist/esm/product/board/board.js +3 -3
  271. package/dist/esm/product/board/board.recipe.js +17 -17
  272. package/dist/esm/product/command/command.js +3 -3
  273. package/dist/esm/product/command/command.recipe.js +25 -25
  274. package/dist/esm/product/entitycard/entitycard.js +1 -1
  275. package/dist/esm/product/entitycard/entitycard.recipe.js +7 -7
  276. package/dist/esm/product/flowcanvas/flowcanvas.js +5 -5
  277. package/dist/esm/product/flowcanvas/flowcanvas.recipe.js +11 -11
  278. package/dist/esm/product/inbox/inbox.js +1 -1
  279. package/dist/esm/product/inbox/inbox.recipe.js +22 -22
  280. package/dist/esm/product/listpage/listpage.js +3 -3
  281. package/dist/esm/product/listpage/listpage.recipe.js +18 -18
  282. package/dist/esm/product/navitem/navitem.js +1 -1
  283. package/dist/esm/product/navitem/navitem.recipe.js +2 -2
  284. package/dist/esm/product/onboarding/onboarding.js +1 -1
  285. package/dist/esm/product/onboarding/onboarding.recipe.js +19 -19
  286. package/dist/esm/product/recordpage/recordpage.js +24 -24
  287. package/dist/esm/product/recordpage/recordpage.recipe.js +117 -117
  288. package/dist/esm/product/recordpanel/recordpanel.js +4 -4
  289. package/dist/esm/product/recordpanel/recordpanel.recipe.js +15 -15
  290. package/dist/esm/product/recordstable/recordstable.js +48 -48
  291. package/dist/esm/product/recordstable/recordstable.recipe.js +87 -87
  292. package/dist/esm/product/recordstable/recordstable.tag.js +8 -8
  293. package/dist/esm/product/richtext/richtext.js +4 -4
  294. package/dist/esm/product/richtext/richtext.recipe.js +21 -21
  295. package/dist/esm/product/settingssection/settingssection.js +1 -1
  296. package/dist/esm/product/settingssection/settingssection.recipe.js +6 -6
  297. package/dist/esm/product/settingsshell/settingsshell.js +1 -1
  298. package/dist/esm/product/settingsshell/settingsshell.recipe.js +20 -20
  299. package/dist/esm/product/sidebar/sidebar.js +2 -2
  300. package/dist/esm/product/sidebar/sidebar.recipe.js +21 -21
  301. package/dist/esm/product/tasklist/tasklist.js +2 -2
  302. package/dist/esm/product/tasklist/tasklist.recipe.js +14 -14
  303. package/dist/esm/product/trialbanner/trialbanner.js +1 -1
  304. package/dist/esm/product/trialbanner/trialbanner.recipe.js +6 -6
  305. package/dist/esm/product/viewtoggle/viewtoggle.js +1 -1
  306. package/dist/esm/product/viewtoggle/viewtoggle.recipe.js +4 -4
  307. package/dist/esm/tokens/contract.js +3 -2
  308. package/dist/esm/tokens/elevation.js +4 -4
  309. package/dist/esm/tokens/palette.js +2 -2
  310. package/dist/esm/tokens/scale.js +6 -6
  311. package/dist/esm/tokens/semantic.js +1 -1
  312. package/dist/fileupload.css +46 -46
  313. package/dist/fileupload.layered.css +91 -0
  314. package/dist/flowcanvas.css +13 -13
  315. package/dist/flowcanvas.layered.css +17 -0
  316. package/dist/formfield.css +7 -7
  317. package/dist/formfield.layered.css +10 -0
  318. package/dist/inbox.css +26 -26
  319. package/dist/inbox.layered.css +41 -0
  320. package/dist/input.css +17 -17
  321. package/dist/input.layered.css +45 -0
  322. package/dist/kbd.css +2 -2
  323. package/dist/kbd.layered.css +5 -0
  324. package/dist/linechart.css +14 -14
  325. package/dist/linechart.layered.css +17 -0
  326. package/dist/listpage.css +22 -22
  327. package/dist/listpage.layered.css +41 -0
  328. package/dist/menu.css +29 -29
  329. package/dist/menu.layered.css +48 -0
  330. package/dist/multiselect.css +42 -42
  331. package/dist/multiselect.layered.css +63 -0
  332. package/dist/navitem.css +14 -14
  333. package/dist/navitem.layered.css +25 -0
  334. package/dist/onboarding.css +24 -24
  335. package/dist/onboarding.layered.css +39 -0
  336. package/dist/popover.css +6 -6
  337. package/dist/popover.layered.css +16 -0
  338. package/dist/progress.css +7 -7
  339. package/dist/progress.layered.css +17 -0
  340. package/dist/quantitypicker.css +34 -34
  341. package/dist/quantitypicker.layered.css +80 -0
  342. package/dist/radiogroup.css +18 -18
  343. package/dist/radiogroup.layered.css +33 -0
  344. package/dist/recordpage.css +122 -122
  345. package/dist/recordpage.layered.css +153 -0
  346. package/dist/recordpanel.css +31 -31
  347. package/dist/recordpanel.layered.css +50 -0
  348. package/dist/recordstable.css +162 -162
  349. package/dist/recordstable.layered.css +222 -0
  350. package/dist/resizablepanel.css +26 -26
  351. package/dist/resizablepanel.layered.css +55 -0
  352. package/dist/richtext.css +24 -24
  353. package/dist/richtext.layered.css +38 -0
  354. package/dist/segmented.css +10 -10
  355. package/dist/segmented.layered.css +20 -0
  356. package/dist/select.css +43 -43
  357. package/dist/select.layered.css +72 -0
  358. package/dist/settingssection.css +8 -8
  359. package/dist/settingssection.layered.css +11 -0
  360. package/dist/settingsshell.css +23 -23
  361. package/dist/settingsshell.layered.css +44 -0
  362. package/dist/sidebar.css +27 -27
  363. package/dist/sidebar.layered.css +40 -0
  364. package/dist/skeleton.css +4 -4
  365. package/dist/skeleton.layered.css +15 -0
  366. package/dist/slider.css +23 -23
  367. package/dist/slider.layered.css +58 -0
  368. package/dist/spinner.css +3 -3
  369. package/dist/spinner.layered.css +14 -0
  370. package/dist/stagebar.css +4 -4
  371. package/dist/stagebar.layered.css +14 -0
  372. package/dist/statcard.css +14 -14
  373. package/dist/statcard.layered.css +21 -0
  374. package/dist/styles.css +1816 -1725
  375. package/dist/styles.layered.css +2932 -0
  376. package/dist/switch.css +7 -7
  377. package/dist/switch.layered.css +22 -0
  378. package/dist/table.css +16 -16
  379. package/dist/table.layered.css +36 -0
  380. package/dist/tabletoolbar.css +67 -67
  381. package/dist/tabletoolbar.layered.css +80 -0
  382. package/dist/tabs.css +15 -15
  383. package/dist/tabs.layered.css +29 -0
  384. package/dist/tasklist.css +17 -17
  385. package/dist/tasklist.layered.css +34 -0
  386. package/dist/textarea.css +18 -18
  387. package/dist/textarea.layered.css +42 -0
  388. package/dist/toast.css +17 -17
  389. package/dist/toast.layered.css +27 -0
  390. package/dist/tokens.css +199 -115
  391. package/dist/tooltip.css +3 -3
  392. package/dist/tooltip.layered.css +13 -0
  393. package/dist/trialbanner.css +13 -13
  394. package/dist/trialbanner.layered.css +28 -0
  395. package/dist/types/core/dialog-description.d.ts +1 -1
  396. package/dist/types/core/namespace.d.ts +2 -0
  397. package/dist/types/tokens/elevation.d.ts +4 -4
  398. package/dist/viewtoggle.css +10 -10
  399. package/dist/viewtoggle.layered.css +23 -0
  400. package/dist/wheelpicker.css +29 -29
  401. package/dist/wheelpicker.layered.css +70 -0
  402. package/licenses/Apache-2.0.txt +201 -0
  403. package/package.json +5 -2
@@ -126,25 +126,25 @@ function TagsValue({ values }) {
126
126
  const [expanded, setExpanded] = React.useState(false);
127
127
  const overflow = values.length - 1;
128
128
  const shown = expanded ? values : values.slice(0, 1);
129
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shown.map((t) => ((0, jsx_runtime_1.jsx)("span", { className: "recordstable-tag", "data-tone": (0, recordstable_1.tagTone)(t), children: t }, t))), !expanded && overflow > 0 && ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-morevalues", onClick: () => setExpanded(true), children: ["+", overflow] }))] }));
129
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shown.map((t) => ((0, jsx_runtime_1.jsx)("span", { className: "crisp-recordstable-tag", "data-tone": (0, recordstable_1.tagTone)(t), children: t }, t))), !expanded && overflow > 0 && ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-morevalues", onClick: () => setExpanded(true), children: ["+", overflow] }))] }));
130
130
  }
131
131
  function FieldValue({ col, row, labels, }) {
132
132
  const v = row[col.key];
133
133
  if (valueEmpty(v))
134
- return (0, jsx_runtime_1.jsx)("span", { className: "recordpage-empty", children: labels.setAValue });
134
+ return (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-empty", children: labels.setAValue });
135
135
  switch (col.type) {
136
136
  case "tags":
137
137
  return (0, jsx_runtime_1.jsx)(TagsValue, { values: v });
138
138
  case "number":
139
139
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: typeof v === "number" ? v.toLocaleString() : v });
140
140
  case "url":
141
- return ((0, jsx_runtime_1.jsx)("a", { className: "recordpage-link", href: `https://${v}`, target: "_blank", rel: "noreferrer", children: String(v) }));
141
+ return ((0, jsx_runtime_1.jsx)("a", { className: "crisp-recordpage-link", href: `https://${v}`, target: "_blank", rel: "noreferrer", children: String(v) }));
142
142
  default:
143
143
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: String(v) });
144
144
  }
145
145
  }
146
146
  function SectionHead({ title, count, action, }) {
147
- return ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-section-head", children: [(0, jsx_runtime_1.jsx)("span", { className: "recordpage-section-title", children: title }), count != null && ((0, jsx_runtime_1.jsx)("span", { className: "recordpage-section-count", children: count })), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-section-spacer" }), action] }));
147
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-section-head", children: [(0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-section-title", children: title }), count != null && ((0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-section-count", children: count })), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-section-spacer" }), action] }));
148
148
  }
149
149
  // A note/task composer: a textarea (or input) with Cancel / submit actions.
150
150
  function Composer({ placeholder, submitLabel, multiline, onSubmit, onCancel, labels, }) {
@@ -154,7 +154,7 @@ function Composer({ placeholder, submitLabel, multiline, onSubmit, onCancel, lab
154
154
  if (t)
155
155
  onSubmit(t);
156
156
  };
157
- return ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-composer", children: [(0, jsx_runtime_1.jsx)("textarea", {
157
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-composer", children: [(0, jsx_runtime_1.jsx)("textarea", {
158
158
  // biome-ignore lint/a11y/noAutofocus: focusing the just-opened composer is expected
159
159
  autoFocus: true, placeholder: placeholder, value: text, rows: multiline ? 3 : 1, onChange: (e) => setText(e.target.value), onKeyDown: (e) => {
160
160
  if (e.key === "Enter" && (!multiline || e.metaKey)) {
@@ -163,24 +163,24 @@ function Composer({ placeholder, submitLabel, multiline, onSubmit, onCancel, lab
163
163
  }
164
164
  if (e.key === "Escape")
165
165
  onCancel();
166
- } }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-composer-actions", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-btn", onClick: onCancel, children: labels.cancel }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-btn recordpage-btn--primary", disabled: !text.trim(), onClick: commit, children: submitLabel })] })] }));
166
+ } }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-composer-actions", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-btn", onClick: onCancel, children: labels.cancel }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-btn crisp-recordpage-btn--primary", disabled: !text.trim(), onClick: commit, children: submitLabel })] })] }));
167
167
  }
168
168
  function NotesSection({ notes, onAdd, labels, }) {
169
169
  const [open, setOpen] = React.useState(false);
170
- return ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: labels.tabs.notes, count: notes.length, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-addbtn", onClick: () => setOpen(true), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), labels.newNote] }) }), open && ((0, jsx_runtime_1.jsx)(Composer, { labels: labels, multiline: true, placeholder: labels.notePlaceholder, submitLabel: labels.saveNote, onCancel: () => setOpen(false), onSubmit: (t) => {
170
+ return ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: labels.tabs.notes, count: notes.length, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-addbtn", onClick: () => setOpen(true), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), labels.newNote] }) }), open && ((0, jsx_runtime_1.jsx)(Composer, { labels: labels, multiline: true, placeholder: labels.notePlaceholder, submitLabel: labels.saveNote, onCancel: () => setOpen(false), onSubmit: (t) => {
171
171
  onAdd(t);
172
172
  setOpen(false);
173
- } })), notes.length === 0 && !open ? ((0, jsx_runtime_1.jsx)("div", { className: "recordpage-emptystate", children: labels.noNotesYet })) : (notes.map((n) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-note", children: [(0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "sm", shape: "circle", tone: "neutral", children: "Y" }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-note-body", children: [(0, jsx_runtime_1.jsxs)("div", { className: "recordpage-note-head", children: [(0, jsx_runtime_1.jsx)("span", { className: "recordpage-note-author", children: labels.you }), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-note-time", children: n.time })] }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-note-text", children: n.text })] })] }, n.id))))] }));
173
+ } })), notes.length === 0 && !open ? ((0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-emptystate", children: labels.noNotesYet })) : (notes.map((n) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-note", children: [(0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "sm", shape: "circle", tone: "neutral", children: "Y" }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-note-body", children: [(0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-note-head", children: [(0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-note-author", children: labels.you }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-note-time", children: n.time })] }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-note-text", children: n.text })] })] }, n.id))))] }));
174
174
  }
175
175
  function TasksSection({ tasks, onAdd, onToggle, labels, }) {
176
176
  const [open, setOpen] = React.useState(false);
177
- return ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: labels.tabs.tasks, count: tasks.length, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-addbtn", onClick: () => setOpen(true), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), labels.newTask] }) }), open && ((0, jsx_runtime_1.jsx)(Composer, { labels: labels, placeholder: labels.taskPlaceholder, submitLabel: labels.addTask, onCancel: () => setOpen(false), onSubmit: (t) => {
177
+ return ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: labels.tabs.tasks, count: tasks.length, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-addbtn", onClick: () => setOpen(true), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), labels.newTask] }) }), open && ((0, jsx_runtime_1.jsx)(Composer, { labels: labels, placeholder: labels.taskPlaceholder, submitLabel: labels.addTask, onCancel: () => setOpen(false), onSubmit: (t) => {
178
178
  onAdd(t);
179
179
  setOpen(false);
180
- } })), tasks.length === 0 && !open ? ((0, jsx_runtime_1.jsx)("div", { className: "recordpage-emptystate", children: labels.noTasksYet })) : (tasks.map((t) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-task", "data-done": t.done ? "" : undefined, children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: t.done, onChange: () => onToggle(t.id), "aria-label": t.text }), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-task-text", children: t.text })] }, t.id))))] }));
180
+ } })), tasks.length === 0 && !open ? ((0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-emptystate", children: labels.noTasksYet })) : (tasks.map((t) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-task", "data-done": t.done ? "" : undefined, children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: t.done, onChange: () => onToggle(t.id), "aria-label": t.text }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-task-text", children: t.text })] }, t.id))))] }));
181
181
  }
182
182
  function EmptyCard({ icon, children, }) {
183
- return ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-emptycard", children: [icon, children] }));
183
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-emptycard", children: [icon, children] }));
184
184
  }
185
185
  /**
186
186
  * The full-page company record view — the page that opens when you click into a
@@ -374,38 +374,38 @@ function RecordPage({ record, columns, collection = "Records", labels, onBack, o
374
374
  },
375
375
  ].filter(Boolean);
376
376
  const shownActivity = showAllActivity ? activity : activity.slice(0, 2);
377
- const activityFeed = ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.activity, action: activity.length > 2 ? ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-viewall recordpage-viewall--inline", onClick: () => setShowAllActivity((s) => !s), children: showAllActivity ? t.showLess : t.viewAll })) : undefined }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-feed", children: shownActivity.map((a) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-feed-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "recordpage-feed-dot", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Activity, { size: 13, strokeWidth: 2 }) }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-feed-body", children: [a.text, (0, jsx_runtime_1.jsx)("div", { className: "recordpage-feed-time", children: a.time })] })] }, a.id))) })] }));
377
+ const activityFeed = ((0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.activity, action: activity.length > 2 ? ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-viewall crisp-recordpage-viewall--inline", onClick: () => setShowAllActivity((s) => !s), children: showAllActivity ? t.showLess : t.viewAll })) : undefined }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-feed", children: shownActivity.map((a) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-feed-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-feed-dot", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Activity, { size: 13, strokeWidth: 2 }) }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-feed-body", children: [a.text, (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-feed-time", children: a.time })] })] }, a.id))) })] }));
378
378
  const emailsEmpty = ((0, jsx_runtime_1.jsx)(EmptyCard, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Inbox, { size: 22, strokeWidth: 1.5 }), children: t.noEmailsWith(name) }));
379
379
  const panel = (active) => {
380
380
  switch (active) {
381
381
  case "overview":
382
- return ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-panel", children: [(0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)("div", { className: "recordpage-section-title", children: t.highlights }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-hl-card", children: (0, jsx_runtime_1.jsx)("div", { className: "recordpage-hl-grid", children: highlights.map((h) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-hl-cell", children: [(0, jsx_runtime_1.jsx)(h.icon, { className: "recordpage-hl-icon", size: 15, strokeWidth: 1.75 }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-hl-label", children: h.label }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-hl-value", children: h.value ?? ((0, jsx_runtime_1.jsx)("span", { className: "recordpage-hl-value--empty", children: h.empty })) })] }, h.label))) }) })] }), activityFeed, (0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.emails, count: 0 }), emailsEmpty] }), (0, jsx_runtime_1.jsx)(NotesSection, { notes: notes, onAdd: addNote, labels: t }), (0, jsx_runtime_1.jsx)(TasksSection, { tasks: tasks, onAdd: addTask, onToggle: toggleTask, labels: t })] }));
382
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-panel", children: [(0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-section-title", children: t.highlights }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-hl-card", children: (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-hl-grid", children: highlights.map((h) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-hl-cell", children: [(0, jsx_runtime_1.jsx)(h.icon, { className: "crisp-recordpage-hl-icon", size: 15, strokeWidth: 1.75 }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-hl-label", children: h.label }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-hl-value", children: h.value ?? ((0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-hl-value--empty", children: h.empty })) })] }, h.label))) }) })] }), activityFeed, (0, jsx_runtime_1.jsxs)("section", { children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.emails, count: 0 }), emailsEmpty] }), (0, jsx_runtime_1.jsx)(NotesSection, { notes: notes, onAdd: addNote, labels: t }), (0, jsx_runtime_1.jsx)(TasksSection, { tasks: tasks, onAdd: addTask, onToggle: toggleTask, labels: t })] }));
383
383
  case "activity":
384
- return (0, jsx_runtime_1.jsx)("div", { className: "recordpage-panel", children: activityFeed });
384
+ return (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-panel", children: activityFeed });
385
385
  case "notes":
386
- return ((0, jsx_runtime_1.jsx)("div", { className: "recordpage-panel", children: (0, jsx_runtime_1.jsx)(NotesSection, { notes: notes, onAdd: addNote, labels: t }) }));
386
+ return ((0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-panel", children: (0, jsx_runtime_1.jsx)(NotesSection, { notes: notes, onAdd: addNote, labels: t }) }));
387
387
  case "tasks":
388
- return ((0, jsx_runtime_1.jsx)("div", { className: "recordpage-panel", children: (0, jsx_runtime_1.jsx)(TasksSection, { tasks: tasks, onAdd: addTask, onToggle: toggleTask, labels: t }) }));
388
+ return ((0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-panel", children: (0, jsx_runtime_1.jsx)(TasksSection, { tasks: tasks, onAdd: addTask, onToggle: toggleTask, labels: t }) }));
389
389
  case "emails":
390
- return (0, jsx_runtime_1.jsx)("div", { className: "recordpage-panel", children: emailsEmpty });
390
+ return (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-panel", children: emailsEmpty });
391
391
  default:
392
- return ((0, jsx_runtime_1.jsx)("div", { className: "recordpage-panel", children: (0, jsx_runtime_1.jsx)(EmptyCard, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Folder, { size: 22, strokeWidth: 1.5 }), children: t.nothingHereYet }) }));
392
+ return ((0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-panel", children: (0, jsx_runtime_1.jsx)(EmptyCard, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Folder, { size: 22, strokeWidth: 1.5 }), children: t.nothingHereYet }) }));
393
393
  }
394
394
  };
395
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, recordpage_recipe_1.recordpageRecipe)({ className }), ...rest, children: [(0, jsx_runtime_1.jsxs)("div", { className: "recordpage-topbar", children: [(0, jsx_runtime_1.jsxs)("nav", { className: "recordpage-crumbs", "aria-label": t.breadcrumb, children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-crumb", onClick: onBack, "aria-label": `Back to ${collection}`, children: collection }), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-crumb-sep", children: "/" }), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-crumb-name", children: name })] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-actions", children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-action recordpage-action--ghost", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Sparkles, { size: 14, strokeWidth: 1.75, color: "var(--bg-brand-solid)" }), t.askAttio] }), onToggleFull && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-action recordpage-action--icon", onClick: onToggleFull, "aria-label": full ? t.exitFullScreen : t.fullScreen, children: full ? ((0, jsx_runtime_1.jsx)(lucide_react_1.Minimize2, { size: 15, strokeWidth: 1.75 })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.Maximize2, { size: 15, strokeWidth: 1.75 })) })), (0, jsx_runtime_1.jsxs)(menu_1.Menu, { align: "end", "aria-label": t.recordActions, trigger: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-action recordpage-action--icon", "aria-label": t.recordActions, children: (0, jsx_runtime_1.jsx)(lucide_react_1.MoreHorizontal, { size: 16, strokeWidth: 1.75 }) }), children: [(0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: 15, strokeWidth: 1.75 }), shortcut: "\u2318C", children: t.copyRecordLink }), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 15, strokeWidth: 1.75 }), children: t.addToList }), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 15, strokeWidth: 1.75 }), onSelect: () => setFavorite((f) => !f), children: favorite ? t.removeFromFavourites : t.addToFavourites }), (0, jsx_runtime_1.jsx)(menu_1.MenuSeparator, {}), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { size: 15, strokeWidth: 1.75 }), danger: true, shortcut: "\u232B", children: t.deleteRecord })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-body", children: [(0, jsx_runtime_1.jsxs)("aside", { className: "recordpage-details", style: { width: detailsW }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "recordpage-entity", children: [entity?.avatar ? ((0, jsx_runtime_1.jsx)("img", { className: "recordpage-entity-logo", src: entity.avatar, alt: "" })) : ((0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "lg", shape: "rounded", tone: "brand", children: name.charAt(0) })), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-entity-name", children: name }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-entity-iconbtn", "aria-label": t.editRecord, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Pencil, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-entity-iconbtn", "data-active": favorite ? "" : undefined, "aria-pressed": favorite, onClick: () => setFavorite((f) => !f), "aria-label": favorite ? t.removeFromFavourites : t.addToFavourites, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 15, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-quickactions", children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-compose", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 16, strokeWidth: 1.75 }), t.composeEmail] }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-quickbtn", "aria-label": t.copyRecordLink, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-quickbtn", "aria-label": t.logANote, children: (0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-quickbtn", "aria-label": t.linkRecords, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Share2, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-quickbtn", "aria-label": t.createATask, children: (0, jsx_runtime_1.jsx)(lucide_react_1.SquareCheck, { size: 15, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-section", children: [(0, jsx_runtime_1.jsxs)("div", { className: "recordpage-detailhead", children: [searchOpen ? ((0, jsx_runtime_1.jsx)("input", {
395
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, recordpage_recipe_1.recordpageRecipe)({ className }), ...rest, children: [(0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-topbar", children: [(0, jsx_runtime_1.jsxs)("nav", { className: "crisp-recordpage-crumbs", "aria-label": t.breadcrumb, children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-crumb", onClick: onBack, "aria-label": `Back to ${collection}`, children: collection }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-crumb-sep", children: "/" }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-crumb-name", children: name })] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-actions", children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-action crisp-recordpage-action--ghost", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Sparkles, { size: 14, strokeWidth: 1.75, color: "var(--bg-brand-solid)" }), t.askAttio] }), onToggleFull && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-action crisp-recordpage-action--icon", onClick: onToggleFull, "aria-label": full ? t.exitFullScreen : t.fullScreen, children: full ? ((0, jsx_runtime_1.jsx)(lucide_react_1.Minimize2, { size: 15, strokeWidth: 1.75 })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.Maximize2, { size: 15, strokeWidth: 1.75 })) })), (0, jsx_runtime_1.jsxs)(menu_1.Menu, { align: "end", "aria-label": t.recordActions, trigger: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-action crisp-recordpage-action--icon", "aria-label": t.recordActions, children: (0, jsx_runtime_1.jsx)(lucide_react_1.MoreHorizontal, { size: 16, strokeWidth: 1.75 }) }), children: [(0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: 15, strokeWidth: 1.75 }), shortcut: "\u2318C", children: t.copyRecordLink }), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 15, strokeWidth: 1.75 }), children: t.addToList }), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 15, strokeWidth: 1.75 }), onSelect: () => setFavorite((f) => !f), children: favorite ? t.removeFromFavourites : t.addToFavourites }), (0, jsx_runtime_1.jsx)(menu_1.MenuSeparator, {}), (0, jsx_runtime_1.jsx)(menu_1.MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { size: 15, strokeWidth: 1.75 }), danger: true, shortcut: "\u232B", children: t.deleteRecord })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-body", children: [(0, jsx_runtime_1.jsxs)("aside", { className: "crisp-recordpage-details", style: { width: detailsW }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-entity", children: [entity?.avatar ? ((0, jsx_runtime_1.jsx)("img", { className: "crisp-recordpage-entity-logo", src: entity.avatar, alt: "" })) : ((0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "lg", shape: "rounded", tone: "brand", children: name.charAt(0) })), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-entity-name", children: name }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-entity-iconbtn", "aria-label": t.editRecord, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Pencil, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-entity-iconbtn", "data-active": favorite ? "" : undefined, "aria-pressed": favorite, onClick: () => setFavorite((f) => !f), "aria-label": favorite ? t.removeFromFavourites : t.addToFavourites, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 15, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-quickactions", children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-compose", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 16, strokeWidth: 1.75 }), t.composeEmail] }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-quickbtn", "aria-label": t.copyRecordLink, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-quickbtn", "aria-label": t.logANote, children: (0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-quickbtn", "aria-label": t.linkRecords, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Share2, { size: 15, strokeWidth: 1.75 }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-quickbtn", "aria-label": t.createATask, children: (0, jsx_runtime_1.jsx)(lucide_react_1.SquareCheck, { size: 15, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-section", children: [(0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-detailhead", children: [searchOpen ? ((0, jsx_runtime_1.jsx)("input", {
396
396
  // biome-ignore lint/a11y/noAutofocus: focusing the just-opened field search is expected
397
- autoFocus: true, type: "text", className: "recordpage-fieldsearch", placeholder: t.searchPlaceholder, "aria-label": t.searchFields, value: fieldQuery, onChange: (e) => setFieldQuery(e.target.value), onKeyDown: (e) => {
397
+ autoFocus: true, type: "text", className: "crisp-recordpage-fieldsearch", placeholder: t.searchPlaceholder, "aria-label": t.searchFields, value: fieldQuery, onChange: (e) => setFieldQuery(e.target.value), onKeyDown: (e) => {
398
398
  if (e.key === "Escape") {
399
399
  setSearchOpen(false);
400
400
  setFieldQuery("");
401
401
  }
402
- } })) : ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-collapse", "data-collapsed": detailsOpen ? undefined : "", "aria-expanded": detailsOpen, onClick: () => setDetailsOpen((o) => !o), children: [t.recordDetails, (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: "recordpage-chev", size: 12, strokeWidth: 2.5 })] })), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-detailsearch", "data-active": searchOpen ? "" : undefined, "aria-label": searchOpen ? t.closeSearch : t.searchFields, "aria-pressed": searchOpen, onClick: () => {
402
+ } })) : ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-collapse", "data-collapsed": detailsOpen ? undefined : "", "aria-expanded": detailsOpen, onClick: () => setDetailsOpen((o) => !o), children: [t.recordDetails, (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: "crisp-recordpage-chev", size: 12, strokeWidth: 2.5 })] })), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-detailsearch", "data-active": searchOpen ? "" : undefined, "aria-label": searchOpen ? t.closeSearch : t.searchFields, "aria-pressed": searchOpen, onClick: () => {
403
403
  setSearchOpen((s) => !s);
404
404
  setFieldQuery("");
405
405
  if (!searchOpen)
406
406
  setDetailsOpen(true);
407
407
  }, children: searchOpen ? ((0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 14, strokeWidth: 1.75 })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.Search, { size: 14, strokeWidth: 1.75 })) })] }), detailsOpen &&
408
- (shownFields.length > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shownFields.map((col) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-field", children: [(0, jsx_runtime_1.jsxs)("span", { className: "recordpage-field-label", children: [col.icon ? ((0, jsx_runtime_1.jsx)(col.icon, { size: 15, strokeWidth: 1.75 })) : null, (0, jsx_runtime_1.jsx)("span", { className: "recordpage-field-label-text", children: col.label })] }), (0, jsx_runtime_1.jsx)("span", { className: "recordpage-field-value", children: (0, jsx_runtime_1.jsx)(FieldValue, { col: col, row: record, labels: t }) })] }, col.key))), canRevealFields && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpage-viewall recordpage-viewall--section", onClick: () => {
408
+ (shownFields.length > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shownFields.map((col) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-field", children: [(0, jsx_runtime_1.jsxs)("span", { className: "crisp-recordpage-field-label", children: [col.icon ? ((0, jsx_runtime_1.jsx)(col.icon, { size: 15, strokeWidth: 1.75 })) : null, (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-field-label-text", children: col.label })] }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpage-field-value", children: (0, jsx_runtime_1.jsx)(FieldValue, { col: col, row: record, labels: t }) })] }, col.key))), canRevealFields && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpage-viewall crisp-recordpage-viewall--section", onClick: () => {
409
409
  // Revealing all fields also opens the (focused)
410
410
  // field search; collapsing closes it.
411
411
  const next = !showAllValues;
@@ -413,7 +413,7 @@ function RecordPage({ record, columns, collection = "Records", labels, onBack, o
413
413
  setSearchOpen(next);
414
414
  if (!next)
415
415
  setFieldQuery("");
416
- }, children: showAllValues ? t.viewLess : t.viewAllValues }))] })) : ((0, jsx_runtime_1.jsxs)("div", { className: "recordpage-noresults", children: ["No fields match \u201C", fieldQuery, "\u201D."] })))] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpage-section", children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.lists, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "recordpage-addbtn", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), t.addToList] }) }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-emptystate", children: t.noLists })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "recordpage-resizer", "data-active": resizing ? "" : undefined, role: "separator", "aria-orientation": "vertical", "aria-label": t.resizeDetails, "aria-valuenow": Math.round(detailsW), "aria-valuemin": 300, "aria-valuemax": 560, tabIndex: 0, onPointerDown: onResizeDown, onPointerMove: onResizeMove, onPointerUp: onResizeUp, onKeyDown: (e) => {
416
+ }, children: showAllValues ? t.viewLess : t.viewAllValues }))] })) : ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-noresults", children: ["No fields match \u201C", fieldQuery, "\u201D."] })))] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpage-section", children: [(0, jsx_runtime_1.jsx)(SectionHead, { title: t.tabs.lists, action: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "crisp-recordpage-addbtn", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 14, strokeWidth: 2 }), t.addToList] }) }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-emptystate", children: t.noLists })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpage-resizer", "data-active": resizing ? "" : undefined, role: "separator", "aria-orientation": "vertical", "aria-label": t.resizeDetails, "aria-valuenow": Math.round(detailsW), "aria-valuemin": 300, "aria-valuemax": 560, tabIndex: 0, onPointerDown: onResizeDown, onPointerMove: onResizeMove, onPointerUp: onResizeUp, onKeyDown: (e) => {
417
417
  if (e.key !== "ArrowLeft" && e.key !== "ArrowRight")
418
418
  return;
419
419
  // The pointer drag learned its direction in #212; this did not.
@@ -423,6 +423,6 @@ function RecordPage({ record, columns, collection = "Records", labels, onBack, o
423
423
  const rtl = (0, core_1.isRtlElement)(e.currentTarget);
424
424
  const grow = e.key === (rtl ? "ArrowLeft" : "ArrowRight");
425
425
  setDetailsW((w) => grow ? Math.min(560, w + 16) : Math.max(300, w - 16));
426
- } }), (0, jsx_runtime_1.jsx)("main", { className: "recordpage-main", children: (0, jsx_runtime_1.jsx)(tabs_1.Tabs, { tabs: tabs, defaultValue: "overview", "aria-label": `${name} record`, children: panel }) })] })] }));
426
+ } }), (0, jsx_runtime_1.jsx)("main", { className: "crisp-recordpage-main", children: (0, jsx_runtime_1.jsx)(tabs_1.Tabs, { tabs: tabs, defaultValue: "overview", "aria-label": `${name} record`, children: panel }) })] })] }));
427
427
  }
428
428
  RecordPage.displayName = "RecordPage";
@@ -17,140 +17,140 @@ const config = (0, core_1.defineRecipe)({
17
17
  color: ${tokens_1.contract.fgPrimary};
18
18
  & * { box-sizing: border-box; }
19
19
 
20
- & .recordpage-topbar { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; height: 44px; flex-shrink: 0; padding: 0 ${tokens_1.contract.space["3"]}; border-bottom: 1px solid ${tokens_1.contract.borderSubtle}; }
21
- & .recordpage-crumbs { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; min-width: 0; }
22
- & .recordpage-crumb { display: inline-flex; align-items: center; height: 26px; padding: 0 ${tokens_1.contract.space["1.5"]}; margin: 0 calc(-1 * ${tokens_1.contract.space["1.5"]}) 0 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgMuted}; cursor: pointer; }
23
- & .recordpage-crumb:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
24
- & .recordpage-crumb-sep { color: ${tokens_1.contract.fgMuted}; font-size: ${tokens_1.contract.text.lg}; }
25
- & .recordpage-crumb-name { font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
26
- & .recordpage-actions { margin-inline-start: auto; display: flex; align-items: center; gap: ${tokens_1.contract.space["1"]}; }
27
- & .recordpage-action { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; height: 28px; padding: 0 ${tokens_1.contract.space["2"]} 0 ${tokens_1.contract.space["1.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; cursor: pointer; white-space: nowrap; }
28
- & .recordpage-action:hover { background: ${tokens_1.contract.bgRaised}; }
29
- & .recordpage-action--ghost { box-shadow: none; color: ${tokens_1.contract.fgMuted}; }
30
- & .recordpage-action--icon { width: 28px; padding: 0; justify-content: center; box-shadow: none; color: ${tokens_1.contract.fgMuted}; }
31
- & .recordpage-action svg { flex-shrink: 0; }
20
+ & .crisp-recordpage-topbar { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; height: 44px; flex-shrink: 0; padding: 0 ${tokens_1.contract.space["3"]}; border-bottom: 1px solid ${tokens_1.contract.borderSubtle}; }
21
+ & .crisp-recordpage-crumbs { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; min-width: 0; }
22
+ & .crisp-recordpage-crumb { display: inline-flex; align-items: center; height: 26px; padding: 0 ${tokens_1.contract.space["1.5"]}; margin: 0 calc(-1 * ${tokens_1.contract.space["1.5"]}) 0 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgMuted}; cursor: pointer; }
23
+ & .crisp-recordpage-crumb:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
24
+ & .crisp-recordpage-crumb-sep { color: ${tokens_1.contract.fgMuted}; font-size: ${tokens_1.contract.text.lg}; }
25
+ & .crisp-recordpage-crumb-name { font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
26
+ & .crisp-recordpage-actions { margin-inline-start: auto; display: flex; align-items: center; gap: ${tokens_1.contract.space["1"]}; }
27
+ & .crisp-recordpage-action { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; height: 28px; padding: 0 ${tokens_1.contract.space["2"]} 0 ${tokens_1.contract.space["1.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; cursor: pointer; white-space: nowrap; }
28
+ & .crisp-recordpage-action:hover { background: ${tokens_1.contract.bgRaised}; }
29
+ & .crisp-recordpage-action--ghost { box-shadow: none; color: ${tokens_1.contract.fgMuted}; }
30
+ & .crisp-recordpage-action--icon { width: 28px; padding: 0; justify-content: center; box-shadow: none; color: ${tokens_1.contract.fgMuted}; }
31
+ & .crisp-recordpage-action svg { flex-shrink: 0; }
32
32
 
33
- & .recordpage-body { flex: 1; min-height: 0; display: flex; }
33
+ & .crisp-recordpage-body { flex: 1; min-height: 0; display: flex; }
34
34
 
35
- & .recordpage-details { width: 320px; flex-shrink: 0; overflow-y: auto; border-inline-end: 1px solid ${tokens_1.contract.borderSubtle}; padding: ${tokens_1.contract.space["3"]}; }
36
- & .recordpage-resizer { position: relative; flex: 0 0 auto; width: 0; align-self: stretch; cursor: col-resize; z-index: 5; touch-action: none; }
37
- & .recordpage-resizer::before { content: ""; position: absolute; top: 0; bottom: 0; inset-inline-start: -4px; width: 9px; }
38
- & .recordpage-resizer::after { content: ""; position: absolute; top: 0; bottom: 0; inset-inline-start: -1px; width: 2px; background: transparent; transition: background-color .12s ease; }
39
- & .recordpage-resizer:hover::after, & .recordpage-resizer[data-active]::after { background: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 55%, transparent); }
40
- & .recordpage-entity { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["2"]}; }
41
- & .recordpage-entity-logo { width: 32px; height: 32px; border-radius: 30%; flex-shrink: 0; object-fit: cover; background: ${tokens_1.contract.bgRaised}; }
42
- & .recordpage-entity-name { flex: 0 1 auto; min-width: 0; font-size: ${tokens_1.contract.text.xl}; font-weight: ${tokens_1.contract.weight.semibold}; letter-spacing: -0.3px; color: ${tokens_1.contract.fgPrimary}; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
43
- & .recordpage-entity-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.sm}; background: none; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
44
- & .recordpage-entity-iconbtn:first-of-type { margin-inline-start: calc(-1 * ${tokens_1.contract.space["1"]}); }
45
- & .recordpage-entity-iconbtn:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
46
- & .recordpage-entity-iconbtn[data-active] svg { color: #f5b83d; fill: #f5b83d; }
47
- & .recordpage-quickactions { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; padding: 0 ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["3"]}; }
48
- & .recordpage-compose { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; height: 28px; padding: 0 ${tokens_1.contract.space["4"]} 0 ${tokens_1.contract.space["3"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; white-space: nowrap; cursor: pointer; transition: background-color .12s; }
49
- & .recordpage-compose:hover { background: ${tokens_1.contract.bgRaised}; }
50
- & .recordpage-compose svg { flex-shrink: 0; color: ${tokens_1.contract.fgMuted}; }
51
- & .recordpage-quickbtn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
52
- & .recordpage-quickbtn:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
53
- & .recordpage-section { padding-top: ${tokens_1.contract.space["2"]}; }
54
- & .recordpage-section-title { font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); padding: ${tokens_1.contract.space["1"]}; }
35
+ & .crisp-recordpage-details { width: 320px; flex-shrink: 0; overflow-y: auto; border-inline-end: 1px solid ${tokens_1.contract.borderSubtle}; padding: ${tokens_1.contract.space["3"]}; }
36
+ & .crisp-recordpage-resizer { position: relative; flex: 0 0 auto; width: 0; align-self: stretch; cursor: col-resize; z-index: 5; touch-action: none; }
37
+ & .crisp-recordpage-resizer::before { content: ""; position: absolute; top: 0; bottom: 0; inset-inline-start: -4px; width: 9px; }
38
+ & .crisp-recordpage-resizer::after { content: ""; position: absolute; top: 0; bottom: 0; inset-inline-start: -1px; width: 2px; background: transparent; transition: background-color .12s ease; }
39
+ & .crisp-recordpage-resizer:hover::after, & .crisp-recordpage-resizer[data-active]::after { background: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 55%, transparent); }
40
+ & .crisp-recordpage-entity { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["2"]}; }
41
+ & .crisp-recordpage-entity-logo { width: 32px; height: 32px; border-radius: 30%; flex-shrink: 0; object-fit: cover; background: ${tokens_1.contract.bgRaised}; }
42
+ & .crisp-recordpage-entity-name { flex: 0 1 auto; min-width: 0; font-size: ${tokens_1.contract.text.xl}; font-weight: ${tokens_1.contract.weight.semibold}; letter-spacing: -0.3px; color: ${tokens_1.contract.fgPrimary}; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
43
+ & .crisp-recordpage-entity-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.sm}; background: none; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
44
+ & .crisp-recordpage-entity-iconbtn:first-of-type { margin-inline-start: calc(-1 * ${tokens_1.contract.space["1"]}); }
45
+ & .crisp-recordpage-entity-iconbtn:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
46
+ & .crisp-recordpage-entity-iconbtn[data-active] svg { color: #f5b83d; fill: #f5b83d; }
47
+ & .crisp-recordpage-quickactions { display: flex; align-items: center; gap: ${tokens_1.contract.space["2"]}; padding: 0 ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["3"]}; }
48
+ & .crisp-recordpage-compose { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; height: 28px; padding: 0 ${tokens_1.contract.space["4"]} 0 ${tokens_1.contract.space["3"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; white-space: nowrap; cursor: pointer; transition: background-color .12s; }
49
+ & .crisp-recordpage-compose:hover { background: ${tokens_1.contract.bgRaised}; }
50
+ & .crisp-recordpage-compose svg { flex-shrink: 0; color: ${tokens_1.contract.fgMuted}; }
51
+ & .crisp-recordpage-quickbtn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
52
+ & .crisp-recordpage-quickbtn:hover { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
53
+ & .crisp-recordpage-section { padding-top: ${tokens_1.contract.space["2"]}; }
54
+ & .crisp-recordpage-section-title { font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); padding: ${tokens_1.contract.space["1"]}; }
55
55
  /* main-area section headers (Highlights / Activity / Emails / Notes / Tasks)
56
56
  are 14px; the left column's (Record Details / Lists) stay 12px. */
57
- & .recordpage-main .recordpage-section-title { font-size: ${tokens_1.contract.text.lg}; }
58
- & .recordpage-detailhead { display: flex; align-items: center; gap: ${tokens_1.contract.space["0.5"]}; margin-bottom: ${tokens_1.contract.space["3"]}; padding-inline-end: ${tokens_1.contract.space["0.5"]}; }
59
- & .recordpage-collapse { display: inline-flex; align-items: center; gap: 2px; flex: 1; min-width: 0; margin: 0; border: none; background: none; padding: ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.md}; font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: ${tokens_1.contract.fgMuted}; cursor: pointer; text-align: start; }
60
- & .recordpage-collapse:hover { color: ${tokens_1.contract.fgPrimary}; }
61
- & .recordpage-collapse .recordpage-chev { flex-shrink: 0; transition: transform .15s ease; }
62
- & .recordpage-collapse[data-collapsed] .recordpage-chev { transform: rotate(-90deg); }
63
- & .recordpage-fieldsearch { flex: 1; min-width: 0; border: none; outline: none; background: none; padding: ${tokens_1.contract.space["1"]}; font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: ${tokens_1.contract.fgPrimary}; }
64
- & .recordpage-fieldsearch:focus { box-shadow: inset 0 0 0 1px ${tokens_1.contract.bgBrandSolid}; border-radius: ${tokens_1.contract.radius.md}; }
65
- & .recordpage-fieldsearch::placeholder { color: ${tokens_1.contract.fgMuted}; font-weight: ${tokens_1.contract.weight.regular}; }
66
- & .recordpage-detailsearch { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: ${tokens_1.contract.size.chip}; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.sm}; background: none; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
67
- & .recordpage-detailsearch:hover, & .recordpage-detailsearch[data-active] { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
68
- & .recordpage-noresults { padding: ${tokens_1.contract.space["1.5"]} ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgMuted}; }
69
- & .recordpage-morevalues { display: inline-flex; align-items: center; padding: 0; margin: 0; border: none; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgMuted}; cursor: pointer; }
70
- & .recordpage-morevalues:hover { color: ${tokens_1.contract.fgPrimary}; }
71
- & .recordpage-viewall { flex-basis: 100%; margin-top: ${tokens_1.contract.space["0.5"]}; border: none; background: none; padding: 0; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 55%, transparent); font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.regular}; cursor: pointer; text-align: start; }
72
- & .recordpage-viewall:hover { color: ${tokens_1.contract.fgPrimary}; }
73
- & .recordpage-viewall--inline { flex-basis: auto; margin-top: 0; }
74
- & .recordpage-viewall--section { display: block; flex-basis: auto; margin-top: 0; padding: ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["1"]}; }
75
- & .recordpage-field { display: grid; grid-template-columns: 30% 1fr; align-items: start; column-gap: ${tokens_1.contract.space["2"]}; min-height: 32px; padding: ${tokens_1.contract.space["0.5"]} ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.md}; }
76
- & .recordpage-field + .recordpage-field { margin-top: ${tokens_1.contract.space["0.5"]}; }
77
- & .recordpage-field:hover { background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 3%, transparent); }
78
- & .recordpage-field-label { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; min-width: 0; overflow: hidden; padding-top: 2px; line-height: 20px; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; }
79
- & .recordpage-field-label svg { flex-shrink: 0; color: ${tokens_1.contract.fgMuted}; }
80
- & .recordpage-field-label-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
81
- & .recordpage-field-value { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: ${tokens_1.contract.space["1"]}; padding-top: 2px; line-height: 20px; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
82
- & .recordpage-empty { color: ${tokens_1.contract.fgMuted}; }
83
- & .recordpage-link { color: ${tokens_1.contract.fgPrimary}; text-decoration: none; overflow: hidden; text-overflow: ellipsis; }
84
- & .recordpage-link:hover { text-decoration: underline; }
85
- & .recordpage-emptystate { padding: ${tokens_1.contract.space["2"]} ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgMuted}; }
57
+ & .crisp-recordpage-main .crisp-recordpage-section-title { font-size: ${tokens_1.contract.text.lg}; }
58
+ & .crisp-recordpage-detailhead { display: flex; align-items: center; gap: ${tokens_1.contract.space["0.5"]}; margin-bottom: ${tokens_1.contract.space["3"]}; padding-inline-end: ${tokens_1.contract.space["0.5"]}; }
59
+ & .crisp-recordpage-collapse { display: inline-flex; align-items: center; gap: 2px; flex: 1; min-width: 0; margin: 0; border: none; background: none; padding: ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.md}; font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: ${tokens_1.contract.fgMuted}; cursor: pointer; text-align: start; }
60
+ & .crisp-recordpage-collapse:hover { color: ${tokens_1.contract.fgPrimary}; }
61
+ & .crisp-recordpage-collapse .crisp-recordpage-chev { flex-shrink: 0; transition: transform .15s ease; }
62
+ & .crisp-recordpage-collapse[data-collapsed] .crisp-recordpage-chev { transform: rotate(-90deg); }
63
+ & .crisp-recordpage-fieldsearch { flex: 1; min-width: 0; border: none; outline: none; background: none; padding: ${tokens_1.contract.space["1"]}; font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; letter-spacing: -0.12px; color: ${tokens_1.contract.fgPrimary}; }
64
+ & .crisp-recordpage-fieldsearch:focus { box-shadow: inset 0 0 0 1px ${tokens_1.contract.bgBrandSolid}; border-radius: ${tokens_1.contract.radius.md}; }
65
+ & .crisp-recordpage-fieldsearch::placeholder { color: ${tokens_1.contract.fgMuted}; font-weight: ${tokens_1.contract.weight.regular}; }
66
+ & .crisp-recordpage-detailsearch { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: ${tokens_1.contract.size.chip}; flex-shrink: 0; padding: 0; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.sm}; background: none; color: ${tokens_1.contract.fgMuted}; font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
67
+ & .crisp-recordpage-detailsearch:hover, & .crisp-recordpage-detailsearch[data-active] { background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgPrimary}; }
68
+ & .crisp-recordpage-noresults { padding: ${tokens_1.contract.space["1.5"]} ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgMuted}; }
69
+ & .crisp-recordpage-morevalues { display: inline-flex; align-items: center; padding: 0; margin: 0; border: none; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgMuted}; cursor: pointer; }
70
+ & .crisp-recordpage-morevalues:hover { color: ${tokens_1.contract.fgPrimary}; }
71
+ & .crisp-recordpage-viewall { flex-basis: 100%; margin-top: ${tokens_1.contract.space["0.5"]}; border: none; background: none; padding: 0; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 55%, transparent); font-family: inherit; font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.regular}; cursor: pointer; text-align: start; }
72
+ & .crisp-recordpage-viewall:hover { color: ${tokens_1.contract.fgPrimary}; }
73
+ & .crisp-recordpage-viewall--inline { flex-basis: auto; margin-top: 0; }
74
+ & .crisp-recordpage-viewall--section { display: block; flex-basis: auto; margin-top: 0; padding: ${tokens_1.contract.space["1"]} ${tokens_1.contract.space["1"]}; }
75
+ & .crisp-recordpage-field { display: grid; grid-template-columns: 30% 1fr; align-items: start; column-gap: ${tokens_1.contract.space["2"]}; min-height: 32px; padding: ${tokens_1.contract.space["0.5"]} ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.md}; }
76
+ & .crisp-recordpage-field + .crisp-recordpage-field { margin-top: ${tokens_1.contract.space["0.5"]}; }
77
+ & .crisp-recordpage-field:hover { background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 3%, transparent); }
78
+ & .crisp-recordpage-field-label { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; min-width: 0; overflow: hidden; padding-top: 2px; line-height: 20px; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; }
79
+ & .crisp-recordpage-field-label svg { flex-shrink: 0; color: ${tokens_1.contract.fgMuted}; }
80
+ & .crisp-recordpage-field-label-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
81
+ & .crisp-recordpage-field-value { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: ${tokens_1.contract.space["1"]}; padding-top: 2px; line-height: 20px; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
82
+ & .crisp-recordpage-empty { color: ${tokens_1.contract.fgMuted}; }
83
+ & .crisp-recordpage-link { color: ${tokens_1.contract.fgPrimary}; text-decoration: none; overflow: hidden; text-overflow: ellipsis; }
84
+ & .crisp-recordpage-link:hover { text-decoration: underline; }
85
+ & .crisp-recordpage-emptystate { padding: ${tokens_1.contract.space["2"]} ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgMuted}; }
86
86
 
87
- & .recordpage-main { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; padding: ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["5"]}; }
87
+ & .crisp-recordpage-main { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; padding: ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["5"]}; }
88
88
 
89
- & .recordpage-panel { padding-top: ${tokens_1.contract.space["4"]}; display: flex; flex-direction: column; gap: ${tokens_1.contract.space["4"]}; }
90
- & .recordpage-card { border: 1px solid ${tokens_1.contract.borderSubtle}; border-radius: ${tokens_1.contract.radius["2xl"]}; background: ${tokens_1.contract.bgSurface}; overflow: hidden; }
91
- & .recordpage-card-title { font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.semibold}; letter-spacing: -0.14px; color: ${tokens_1.contract.fgPrimary}; padding: ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["2"]}; }
92
- & .recordpage-hl-card { border: 1px solid ${tokens_1.contract.borderSubtle}; border-radius: ${tokens_1.contract.radius["2xl"]}; overflow: hidden; }
89
+ & .crisp-recordpage-panel { padding-top: ${tokens_1.contract.space["4"]}; display: flex; flex-direction: column; gap: ${tokens_1.contract.space["4"]}; }
90
+ & .crisp-recordpage-card { border: 1px solid ${tokens_1.contract.borderSubtle}; border-radius: ${tokens_1.contract.radius["2xl"]}; background: ${tokens_1.contract.bgSurface}; overflow: hidden; }
91
+ & .crisp-recordpage-card-title { font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.semibold}; letter-spacing: -0.14px; color: ${tokens_1.contract.fgPrimary}; padding: ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["3"]} ${tokens_1.contract.space["2"]}; }
92
+ & .crisp-recordpage-hl-card { border: 1px solid ${tokens_1.contract.borderSubtle}; border-radius: ${tokens_1.contract.radius["2xl"]}; overflow: hidden; }
93
93
  /* gap-as-gridlines: a 1px gap over the border colour draws dividers at any
94
94
  column count, so the grid stays responsive (auto-fit) without per-cell
95
95
  nth-child border hacks that break when the column count changes. */
96
- & .recordpage-hl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; background: ${tokens_1.contract.borderSubtle}; }
97
- & .recordpage-hl-cell { position: relative; min-height: 84px; padding: ${tokens_1.contract.space["2.5"]} ${tokens_1.contract.space["3"]}; background: ${tokens_1.contract.bgSurface}; }
98
- & .recordpage-hl-icon { position: absolute; top: ${tokens_1.contract.space["2.5"]}; inset-inline-end: ${tokens_1.contract.space["3"]}; color: ${tokens_1.contract.fgMuted}; }
99
- & .recordpage-hl-label { font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); margin-bottom: ${tokens_1.contract.space["2.5"]}; padding-inline-end: ${tokens_1.contract.space["4"]}; }
100
- & .recordpage-hl-value { display: flex; flex-wrap: wrap; align-items: center; gap: ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
101
- & .recordpage-hl-value--empty { color: ${tokens_1.contract.fgMuted}; font-weight: ${tokens_1.contract.weight.regular}; }
96
+ & .crisp-recordpage-hl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; background: ${tokens_1.contract.borderSubtle}; }
97
+ & .crisp-recordpage-hl-cell { position: relative; min-height: 84px; padding: ${tokens_1.contract.space["2.5"]} ${tokens_1.contract.space["3"]}; background: ${tokens_1.contract.bgSurface}; }
98
+ & .crisp-recordpage-hl-icon { position: absolute; top: ${tokens_1.contract.space["2.5"]}; inset-inline-end: ${tokens_1.contract.space["3"]}; color: ${tokens_1.contract.fgMuted}; }
99
+ & .crisp-recordpage-hl-label { font-size: ${tokens_1.contract.text.sm}; font-weight: ${tokens_1.contract.weight.medium}; color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 63%, transparent); margin-bottom: ${tokens_1.contract.space["2.5"]}; padding-inline-end: ${tokens_1.contract.space["4"]}; }
100
+ & .crisp-recordpage-hl-value { display: flex; flex-wrap: wrap; align-items: center; gap: ${tokens_1.contract.space["1"]}; font-size: ${tokens_1.contract.text.lg}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
101
+ & .crisp-recordpage-hl-value--empty { color: ${tokens_1.contract.fgMuted}; font-weight: ${tokens_1.contract.weight.regular}; }
102
102
 
103
- & .recordpage-feed { display: flex; flex-direction: column; }
104
- & .recordpage-feed-item { display: flex; align-items: flex-start; gap: ${tokens_1.contract.space["2.5"]}; padding: ${tokens_1.contract.space["2"]} 0; }
105
- & .recordpage-feed-dot { position: relative; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex-shrink: 0; border-radius: ${tokens_1.contract.radius.full}; background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgMuted}; }
106
- & .recordpage-feed-body { flex: 1; min-width: 0; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgPrimary}; }
107
- & .recordpage-feed-body b { font-weight: ${tokens_1.contract.weight.medium}; }
108
- & .recordpage-feed-time { font-size: ${tokens_1.contract.text.sm}; color: ${tokens_1.contract.fgMuted}; margin-top: 2px; }
109
- & .recordpage-feed-more { align-self: flex-start; margin-top: ${tokens_1.contract.space["1"]}; border: none; background: none; padding: ${tokens_1.contract.space["1"]} 0; color: ${tokens_1.contract.bgBrandSolid}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; }
110
- & .recordpage-feed-more:hover { text-decoration: underline; }
103
+ & .crisp-recordpage-feed { display: flex; flex-direction: column; }
104
+ & .crisp-recordpage-feed-item { display: flex; align-items: flex-start; gap: ${tokens_1.contract.space["2.5"]}; padding: ${tokens_1.contract.space["2"]} 0; }
105
+ & .crisp-recordpage-feed-dot { position: relative; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex-shrink: 0; border-radius: ${tokens_1.contract.radius.full}; background: ${tokens_1.contract.bgRaised}; color: ${tokens_1.contract.fgMuted}; }
106
+ & .crisp-recordpage-feed-body { flex: 1; min-width: 0; font-size: ${tokens_1.contract.text.md}; color: ${tokens_1.contract.fgPrimary}; }
107
+ & .crisp-recordpage-feed-body b { font-weight: ${tokens_1.contract.weight.medium}; }
108
+ & .crisp-recordpage-feed-time { font-size: ${tokens_1.contract.text.sm}; color: ${tokens_1.contract.fgMuted}; margin-top: 2px; }
109
+ & .crisp-recordpage-feed-more { align-self: flex-start; margin-top: ${tokens_1.contract.space["1"]}; border: none; background: none; padding: ${tokens_1.contract.space["1"]} 0; color: ${tokens_1.contract.bgBrandSolid}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; }
110
+ & .crisp-recordpage-feed-more:hover { text-decoration: underline; }
111
111
 
112
- & .recordpage-section-head { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; padding: ${tokens_1.contract.space["1"]}; }
113
- & .recordpage-section-head .recordpage-section-title { padding: 0; }
114
- & .recordpage-section-count { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.sm}; background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 6%, transparent); font-size: ${tokens_1.contract.text.xs}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgMuted}; }
115
- & .recordpage-section-spacer { flex: 1; }
116
- & .recordpage-addbtn { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1"]}; height: 26px; padding: 0 ${tokens_1.contract.space["1.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; color: ${tokens_1.contract.fgPrimary}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; }
117
- & .recordpage-addbtn:hover { background: ${tokens_1.contract.bgRaised}; }
118
- & .recordpage-addbtn svg { flex-shrink: 0; }
112
+ & .crisp-recordpage-section-head { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; padding: ${tokens_1.contract.space["1"]}; }
113
+ & .crisp-recordpage-section-head .crisp-recordpage-section-title { padding: 0; }
114
+ & .crisp-recordpage-section-count { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.sm}; background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 6%, transparent); font-size: ${tokens_1.contract.text.xs}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgMuted}; }
115
+ & .crisp-recordpage-section-spacer { flex: 1; }
116
+ & .crisp-recordpage-addbtn { display: inline-flex; align-items: center; gap: ${tokens_1.contract.space["1"]}; height: 26px; padding: 0 ${tokens_1.contract.space["1.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; background: ${tokens_1.contract.bgSurface}; box-shadow: ${tokens_1.elevation.field}; color: ${tokens_1.contract.fgPrimary}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; }
117
+ & .crisp-recordpage-addbtn:hover { background: ${tokens_1.contract.bgRaised}; }
118
+ & .crisp-recordpage-addbtn svg { flex-shrink: 0; }
119
119
 
120
- & .recordpage-composer { display: flex; flex-direction: column; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["2"]}; border: 1px solid ${tokens_1.contract.borderDefault}; border-radius: ${tokens_1.contract.radius.xl}; background: ${tokens_1.contract.bgSurface}; margin-bottom: ${tokens_1.contract.space["2"]}; }
121
- & .recordpage-composer textarea { width: 100%; min-height: 56px; resize: vertical; border: none; outline: none; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; }
122
- & .recordpage-composer textarea:focus { box-shadow: inset 0 0 0 1px ${tokens_1.contract.bgBrandSolid}; border-radius: ${tokens_1.contract.radius.md}; }
123
- & .recordpage-composer textarea::placeholder { color: ${tokens_1.contract.fgMuted}; }
124
- & .recordpage-composer-actions { display: flex; justify-content: flex-end; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; }
125
- & .recordpage-btn { display: inline-flex; align-items: center; height: 28px; padding: 0 ${tokens_1.contract.space["2.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; box-shadow: ${tokens_1.elevation.field}; background: ${tokens_1.contract.bgSurface}; color: ${tokens_1.contract.fgPrimary}; }
126
- & .recordpage-btn:hover { background: ${tokens_1.contract.bgRaised}; }
127
- & .recordpage-btn--primary { box-shadow: none; background: ${tokens_1.contract.bgBrandSolid}; color: ${tokens_1.contract.fgOnBrand}; }
128
- & .recordpage-btn--primary:disabled { opacity: 0.5; cursor: not-allowed; }
120
+ & .crisp-recordpage-composer { display: flex; flex-direction: column; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["2"]}; border: 1px solid ${tokens_1.contract.borderDefault}; border-radius: ${tokens_1.contract.radius.xl}; background: ${tokens_1.contract.bgSurface}; margin-bottom: ${tokens_1.contract.space["2"]}; }
121
+ & .crisp-recordpage-composer textarea { width: 100%; min-height: 56px; resize: vertical; border: none; outline: none; background: none; font-family: inherit; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; }
122
+ & .crisp-recordpage-composer textarea:focus { box-shadow: inset 0 0 0 1px ${tokens_1.contract.bgBrandSolid}; border-radius: ${tokens_1.contract.radius.md}; }
123
+ & .crisp-recordpage-composer textarea::placeholder { color: ${tokens_1.contract.fgMuted}; }
124
+ & .crisp-recordpage-composer-actions { display: flex; justify-content: flex-end; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; }
125
+ & .crisp-recordpage-btn { display: inline-flex; align-items: center; height: 28px; padding: 0 ${tokens_1.contract.space["2.5"]}; margin: 0; border: none; border-radius: ${tokens_1.contract.radius.md}; font-family: inherit; font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; cursor: pointer; box-shadow: ${tokens_1.elevation.field}; background: ${tokens_1.contract.bgSurface}; color: ${tokens_1.contract.fgPrimary}; }
126
+ & .crisp-recordpage-btn:hover { background: ${tokens_1.contract.bgRaised}; }
127
+ & .crisp-recordpage-btn--primary { box-shadow: none; background: ${tokens_1.contract.bgBrandSolid}; color: ${tokens_1.contract.fgOnBrand}; }
128
+ & .crisp-recordpage-btn--primary:disabled { opacity: 0.5; cursor: not-allowed; }
129
129
 
130
- & .recordpage-note { display: flex; gap: ${tokens_1.contract.space["2.5"]}; padding: ${tokens_1.contract.space["2.5"]} 0; border-top: 1px solid ${tokens_1.contract.borderSubtle}; }
131
- & .recordpage-note-body { flex: 1; min-width: 0; }
132
- & .recordpage-note-head { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; margin-bottom: ${tokens_1.contract.space["0.5"]}; }
133
- & .recordpage-note-author { font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
134
- & .recordpage-note-time { font-size: ${tokens_1.contract.text.sm}; color: ${tokens_1.contract.fgMuted}; }
135
- & .recordpage-note-text { font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; white-space: pre-wrap; word-break: break-word; }
130
+ & .crisp-recordpage-note { display: flex; gap: ${tokens_1.contract.space["2.5"]}; padding: ${tokens_1.contract.space["2.5"]} 0; border-top: 1px solid ${tokens_1.contract.borderSubtle}; }
131
+ & .crisp-recordpage-note-body { flex: 1; min-width: 0; }
132
+ & .crisp-recordpage-note-head { display: flex; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; margin-bottom: ${tokens_1.contract.space["0.5"]}; }
133
+ & .crisp-recordpage-note-author { font-size: ${tokens_1.contract.text.md}; font-weight: ${tokens_1.contract.weight.medium}; color: ${tokens_1.contract.fgPrimary}; }
134
+ & .crisp-recordpage-note-time { font-size: ${tokens_1.contract.text.sm}; color: ${tokens_1.contract.fgMuted}; }
135
+ & .crisp-recordpage-note-text { font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; white-space: pre-wrap; word-break: break-word; }
136
136
 
137
- & .recordpage-task { display: flex; align-items: flex-start; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["1.5"]} 0; border-top: 1px solid ${tokens_1.contract.borderSubtle}; }
138
- & .recordpage-task-text { flex: 1; min-width: 0; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; padding-top: 1px; }
139
- & .recordpage-task[data-done] .recordpage-task-text { text-decoration: line-through; color: ${tokens_1.contract.fgMuted}; }
137
+ & .crisp-recordpage-task { display: flex; align-items: flex-start; gap: ${tokens_1.contract.space["2"]}; padding: ${tokens_1.contract.space["1.5"]} 0; border-top: 1px solid ${tokens_1.contract.borderSubtle}; }
138
+ & .crisp-recordpage-task-text { flex: 1; min-width: 0; font-size: ${tokens_1.contract.text.lg}; color: ${tokens_1.contract.fgPrimary}; padding-top: 1px; }
139
+ & .crisp-recordpage-task[data-done] .crisp-recordpage-task-text { text-decoration: line-through; color: ${tokens_1.contract.fgMuted}; }
140
140
 
141
- & .recordpage-emptycard { display: flex; flex-direction: column; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; padding: ${tokens_1.contract.space["6"]} ${tokens_1.contract.space["3"]}; border: 1px dashed ${tokens_1.contract.borderDefault}; border-radius: ${tokens_1.contract.radius.xl}; color: ${tokens_1.contract.fgMuted}; font-size: ${tokens_1.contract.text.md}; text-align: center; }
142
- & .recordpage-emptycard svg { color: ${tokens_1.contract.fgMuted}; opacity: 0.7; }
141
+ & .crisp-recordpage-emptycard { display: flex; flex-direction: column; align-items: center; gap: ${tokens_1.contract.space["1.5"]}; padding: ${tokens_1.contract.space["6"]} ${tokens_1.contract.space["3"]}; border: 1px dashed ${tokens_1.contract.borderDefault}; border-radius: ${tokens_1.contract.radius.xl}; color: ${tokens_1.contract.fgMuted}; font-size: ${tokens_1.contract.text.md}; text-align: center; }
142
+ & .crisp-recordpage-emptycard svg { color: ${tokens_1.contract.fgMuted}; opacity: 0.7; }
143
143
 
144
- & .recordpage-action[data-active] svg { color: #f5b83d; fill: #f5b83d; }
144
+ & .crisp-recordpage-action[data-active] svg { color: #f5b83d; fill: #f5b83d; }
145
145
 
146
- & .recordstable-tag { display: inline-flex; align-items: center; height: ${tokens_1.contract.size.chip}; padding: 0 ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.chip}; font-size: ${tokens_1.contract.text.lg}; line-height: 20px; font-weight: ${tokens_1.contract.weight.medium}; white-space: nowrap; background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 6%, transparent); color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 82%, transparent); }
147
- & .recordstable-tag[data-tone="brand"] { background: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 14%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 82%, ${tokens_1.contract.fgPrimary}); }
148
- & .recordstable-tag[data-tone="success"] { background: color-mix(in srgb, ${tokens_1.contract.bgSuccess} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgSuccess} 78%, ${tokens_1.contract.fgPrimary}); }
149
- & .recordstable-tag[data-tone="warning"] { background: color-mix(in srgb, ${tokens_1.contract.bgWarning} 18%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgWarning} 82%, ${tokens_1.contract.fgPrimary}); }
150
- & .recordstable-tag[data-tone="danger"] { background: color-mix(in srgb, ${tokens_1.contract.bgDanger} 15%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgDanger} 80%, ${tokens_1.contract.fgPrimary}); }
151
- & .recordstable-tag[data-tone="purple"] { background: color-mix(in srgb, ${tokens_1.contract.bgPurple} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgPurple} 80%, ${tokens_1.contract.fgPrimary}); }
152
- & .recordstable-tag[data-tone="cyan"] { background: color-mix(in srgb, ${tokens_1.contract.bgCyan} 18%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgCyan} 82%, ${tokens_1.contract.fgPrimary}); }
153
- & .recordstable-tag[data-tone="orange"] { background: color-mix(in srgb, ${tokens_1.contract.bgOrange} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgOrange} 82%, ${tokens_1.contract.fgPrimary}); }
146
+ & .crisp-recordstable-tag { display: inline-flex; align-items: center; height: ${tokens_1.contract.size.chip}; padding: 0 ${tokens_1.contract.space["1"]}; border-radius: ${tokens_1.contract.radius.chip}; font-size: ${tokens_1.contract.text.lg}; line-height: 20px; font-weight: ${tokens_1.contract.weight.medium}; white-space: nowrap; background: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 6%, transparent); color: color-mix(in srgb, ${tokens_1.contract.fgPrimary} 82%, transparent); }
147
+ & .crisp-recordstable-tag[data-tone="brand"] { background: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 14%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgBrandSolid} 82%, ${tokens_1.contract.fgPrimary}); }
148
+ & .crisp-recordstable-tag[data-tone="success"] { background: color-mix(in srgb, ${tokens_1.contract.bgSuccess} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgSuccess} 78%, ${tokens_1.contract.fgPrimary}); }
149
+ & .crisp-recordstable-tag[data-tone="warning"] { background: color-mix(in srgb, ${tokens_1.contract.bgWarning} 18%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgWarning} 82%, ${tokens_1.contract.fgPrimary}); }
150
+ & .crisp-recordstable-tag[data-tone="danger"] { background: color-mix(in srgb, ${tokens_1.contract.bgDanger} 15%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgDanger} 80%, ${tokens_1.contract.fgPrimary}); }
151
+ & .crisp-recordstable-tag[data-tone="purple"] { background: color-mix(in srgb, ${tokens_1.contract.bgPurple} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgPurple} 80%, ${tokens_1.contract.fgPrimary}); }
152
+ & .crisp-recordstable-tag[data-tone="cyan"] { background: color-mix(in srgb, ${tokens_1.contract.bgCyan} 18%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgCyan} 82%, ${tokens_1.contract.fgPrimary}); }
153
+ & .crisp-recordstable-tag[data-tone="orange"] { background: color-mix(in srgb, ${tokens_1.contract.bgOrange} 16%, transparent); color: color-mix(in srgb, ${tokens_1.contract.bgOrange} 82%, ${tokens_1.contract.fgPrimary}); }
154
154
  `,
155
155
  variants: {},
156
156
  defaultVariants: {},
@@ -43,15 +43,15 @@ const recordpanel_recipe_1 = require("./recordpanel.recipe");
43
43
  function FieldValue({ col, row, emptyLabel, }) {
44
44
  const v = row[col.key];
45
45
  if (v == null || v === "" || (Array.isArray(v) && !v.length)) {
46
- return (0, jsx_runtime_1.jsx)("span", { className: "recordpanel-empty", children: emptyLabel });
46
+ return (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpanel-empty", children: emptyLabel });
47
47
  }
48
48
  switch (col.type) {
49
49
  case "tags":
50
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: v.map((t) => ((0, jsx_runtime_1.jsx)("span", { className: "recordstable-tag", "data-tone": (0, recordstable_1.tagTone)(t), children: t }, t))) }));
50
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: v.map((t) => ((0, jsx_runtime_1.jsx)("span", { className: "crisp-recordstable-tag", "data-tone": (0, recordstable_1.tagTone)(t), children: t }, t))) }));
51
51
  case "number":
52
52
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: typeof v === "number" ? v.toLocaleString() : v });
53
53
  case "url":
54
- return ((0, jsx_runtime_1.jsx)("a", { className: "recordpanel-link", href: `https://${v}`, target: "_blank", rel: "noreferrer", children: v }));
54
+ return ((0, jsx_runtime_1.jsx)("a", { className: "crisp-recordpanel-link", href: `https://${v}`, target: "_blank", rel: "noreferrer", children: v }));
55
55
  default:
56
56
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: String(v) });
57
57
  }
@@ -78,6 +78,6 @@ function RecordPanel({ record, columns, onClose, className, closeLabel = "Close
78
78
  ? record[entityCol.key]
79
79
  : undefined;
80
80
  const fields = columns.filter((c) => c.type !== "entity");
81
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, recordpanel_recipe_1.recordpanelRecipe)({ className }), ...rest, role: "dialog", "aria-label": entity?.name ?? "Record", children: [(0, jsx_runtime_1.jsxs)("div", { className: "recordpanel-header", children: [entity?.avatar ? ((0, jsx_runtime_1.jsx)("img", { className: "recordpanel-fav", src: entity.avatar, alt: "" })) : entity ? ((0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "md", shape: "rounded", tone: "brand", children: entity.name.charAt(0) })) : null, (0, jsx_runtime_1.jsx)("span", { className: "recordpanel-title", children: entity?.name ?? "Record" }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "recordpanel-iconbtn", "aria-label": closeLabel, onClick: onClose, children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 18, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "recordpanel-body", children: [(0, jsx_runtime_1.jsx)("div", { className: "recordpanel-sectionlabel", children: detailsLabel }), fields.map((col) => ((0, jsx_runtime_1.jsxs)("div", { className: "recordpanel-field", children: [(0, jsx_runtime_1.jsxs)("span", { className: "recordpanel-field-label", children: [col.icon ? (0, jsx_runtime_1.jsx)(col.icon, { size: 15, strokeWidth: 1.75 }) : null, col.label] }), (0, jsx_runtime_1.jsx)("span", { className: "recordpanel-field-value", children: (0, jsx_runtime_1.jsx)(FieldValue, { col: col, row: record, emptyLabel: emptyLabel }) })] }, col.key)))] })] }));
81
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, recordpanel_recipe_1.recordpanelRecipe)({ className }), ...rest, role: "dialog", "aria-label": entity?.name ?? "Record", children: [(0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpanel-header", children: [entity?.avatar ? ((0, jsx_runtime_1.jsx)("img", { className: "crisp-recordpanel-fav", src: entity.avatar, alt: "" })) : entity ? ((0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: "md", shape: "rounded", tone: "brand", children: entity.name.charAt(0) })) : null, (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpanel-title", children: entity?.name ?? "Record" }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "crisp-recordpanel-iconbtn", "aria-label": closeLabel, onClick: onClose, children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 18, strokeWidth: 1.75 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpanel-body", children: [(0, jsx_runtime_1.jsx)("div", { className: "crisp-recordpanel-sectionlabel", children: detailsLabel }), fields.map((col) => ((0, jsx_runtime_1.jsxs)("div", { className: "crisp-recordpanel-field", children: [(0, jsx_runtime_1.jsxs)("span", { className: "crisp-recordpanel-field-label", children: [col.icon ? (0, jsx_runtime_1.jsx)(col.icon, { size: 15, strokeWidth: 1.75 }) : null, col.label] }), (0, jsx_runtime_1.jsx)("span", { className: "crisp-recordpanel-field-value", children: (0, jsx_runtime_1.jsx)(FieldValue, { col: col, row: record, emptyLabel: emptyLabel }) })] }, col.key)))] })] }));
82
82
  }
83
83
  RecordPanel.displayName = "RecordPanel";