@crewlethq/ui 0.32.0 → 0.34.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 (292) hide show
  1. package/README.md +149 -5
  2. package/dist/AccessDeniedCard/AccessDeniedCard.d.ts +5 -0
  3. package/dist/AccessDeniedCard/index.js +1 -5
  4. package/dist/AccessDeniedCard-QVNDMT46.css +8 -0
  5. package/dist/AppShell/index.js +4 -4
  6. package/dist/{AppShell-GCM4TDVY.css → AppShell-JTSEOA57.css} +3 -1
  7. package/dist/ArrangeGroup/ArrangeGroup.d.ts +16 -1
  8. package/dist/ArrangeGroup/index.d.ts +1 -1
  9. package/dist/ArrangeGroup/index.js +1 -1
  10. package/dist/{ArrangeGroup-GY5YMP6E.css → ArrangeGroup-KRWWOJKR.css} +43 -0
  11. package/dist/ArrangeList/index.js +2 -2
  12. package/dist/ArtifactBar/index.js +14 -12
  13. package/dist/{ArtifactBar-MLMJHWY6.css → ArtifactBar-C462VD4C.css} +8 -3
  14. package/dist/ArtifactCard/ArtifactCard.d.ts +64 -6
  15. package/dist/ArtifactCard/index.d.ts +2 -2
  16. package/dist/ArtifactCard/index.js +6 -4
  17. package/dist/ArtifactCard-XHRLAL7C.css +289 -0
  18. package/dist/ArtifactCover/index.js +8 -6
  19. package/dist/ArtifactIcon/index.js +7 -5
  20. package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +53 -0
  21. package/dist/ArtifactKindIllustration/index.d.ts +3 -0
  22. package/dist/ArtifactKindIllustration/index.js +3 -0
  23. package/dist/ArtifactKindIllustration-4NG6IE3C.css +211 -0
  24. package/dist/ArtifactPanel/ArtifactPanel.d.ts +6 -2
  25. package/dist/ArtifactPanel/index.js +1 -1
  26. package/dist/{ArtifactPanel-YFXT5O77.css → ArtifactPanel-HW3SU7CP.css} +25 -7
  27. package/dist/Avatar/Avatar.d.ts +6 -4
  28. package/dist/Avatar/index.js +2 -2
  29. package/dist/AvatarPicker/index.js +8 -8
  30. package/dist/Callout/index.js +1 -1
  31. package/dist/{Callout-SXXK4B5R.css → Callout-ZAVG3P66.css} +46 -6
  32. package/dist/Canvas/Canvas.d.ts +33 -2
  33. package/dist/Canvas/index.d.ts +1 -1
  34. package/dist/Canvas/index.js +4 -4
  35. package/dist/{Canvas-LRVNW7XN.css → Canvas-VUG2HLZK.css} +23 -0
  36. package/dist/CanvasBoard/CanvasBoard.d.ts +38 -3
  37. package/dist/CanvasBoard/budget.d.ts +9 -3
  38. package/dist/CanvasBoard/index.d.ts +2 -2
  39. package/dist/CanvasBoard/index.js +7 -7
  40. package/dist/{CanvasBoard-MBZVBWDO.css → CanvasBoard-5NNSKY6A.css} +127 -6
  41. package/dist/CanvasToolbar/index.js +5 -5
  42. package/dist/{CanvasToolbar-AE5MXH7T.css → CanvasToolbar-EM5EVZED.css} +4 -2
  43. package/dist/ChangeMark/index.js +4 -4
  44. package/dist/CharacterPicker/index.js +2 -2
  45. package/dist/Charts/ActivityStrip.d.ts +16 -1
  46. package/dist/Charts/BarList.d.ts +6 -0
  47. package/dist/Charts/ChartEmpty.d.ts +33 -0
  48. package/dist/Charts/Legend.d.ts +6 -0
  49. package/dist/Charts/StackedBar.d.ts +4 -1
  50. package/dist/Charts/StackedColumns.d.ts +14 -3
  51. package/dist/Charts/TimeSeries.d.ts +11 -1
  52. package/dist/Charts/index.d.ts +2 -0
  53. package/dist/Charts/index.js +1 -1
  54. package/dist/{Charts-RY4JN5FC.css → Charts-MBJG72BS.css} +140 -16
  55. package/dist/Checkbox/index.js +1 -1
  56. package/dist/{Checkbox-5UORUG3F.css → Checkbox-ALWG3WV2.css} +11 -0
  57. package/dist/CommandPalette/index.js +3 -3
  58. package/dist/{CommandPalette-HBTNKHZQ.css → CommandPalette-7CFGVBND.css} +4 -0
  59. package/dist/CommentThread/index.js +5 -5
  60. package/dist/Container/index.js +1 -1
  61. package/dist/{Container-3TSKMGNI.css → Container-34BAKG7B.css} +3 -1
  62. package/dist/{DashboardCover-RMINBODB.css → DashboardCover-KYGYMRKW.css} +42 -9
  63. package/dist/DataTable/index.js +5 -5
  64. package/dist/{DataTable-WZK3V62B.css → DataTable-NL2YWAIA.css} +4 -1
  65. package/dist/DataView/index.js +8 -8
  66. package/dist/DateTimePicker/index.js +3 -3
  67. package/dist/DocTabsEditor/DocTabsEditor.d.ts +34 -21
  68. package/dist/DocTabsEditor/index.js +4 -1
  69. package/dist/DocTabsEditor-4M452LNS.css +189 -0
  70. package/dist/Document/Document.d.ts +18 -1
  71. package/dist/Document/index.d.ts +2 -2
  72. package/dist/Document/index.js +1 -1
  73. package/dist/{Document-G3YTZIUL.css → Document-JUGCSQ4L.css} +78 -5
  74. package/dist/EditingStatus/index.js +1 -1
  75. package/dist/{EditingStatus-L6THUAN7.css → EditingStatus-NNA2CKIL.css} +17 -4
  76. package/dist/{Editor-YWBUJAQU.js → Editor-UUZ7XKCU.js} +5 -5
  77. package/dist/EntityChip/index.js +3 -3
  78. package/dist/FactList/index.js +3 -3
  79. package/dist/FollowBanner/index.js +3 -3
  80. package/dist/Fullscreen/index.d.ts +1 -0
  81. package/dist/Fullscreen/index.js +1 -1
  82. package/dist/Fullscreen/useIdle.d.ts +16 -0
  83. package/dist/HuePicker/index.js +3 -3
  84. package/dist/ImageUpload/index.js +3 -3
  85. package/dist/Layer/index.d.ts +1 -1
  86. package/dist/Layer/index.js +1 -1
  87. package/dist/Layer/place.d.ts +18 -0
  88. package/dist/LayersList/LayersList.d.ts +57 -0
  89. package/dist/LayersList/index.d.ts +3 -0
  90. package/dist/LayersList/index.js +3 -0
  91. package/dist/LayersList-NQZEIPZB.css +82 -0
  92. package/dist/LinkInterstitial/index.js +4 -4
  93. package/dist/ListInput/index.js +1 -1
  94. package/dist/LivePreview/LivePreview.d.ts +83 -0
  95. package/dist/LivePreview/budget.d.ts +50 -0
  96. package/dist/LivePreview/index.d.ts +5 -0
  97. package/dist/LivePreview/index.js +2 -0
  98. package/dist/LivePreview-SRO7KHO4.css +65 -0
  99. package/dist/Markdown/index.js +1 -1
  100. package/dist/MarkdownEditor/index.js +5 -5
  101. package/dist/MediaMatch/index.d.ts +1 -0
  102. package/dist/MediaMatch/index.js +1 -0
  103. package/dist/MediaMatch/useMediaMatch.d.ts +19 -0
  104. package/dist/Menu/index.js +2 -2
  105. package/dist/MergeConflicts/index.js +4 -4
  106. package/dist/Modal/index.js +2 -2
  107. package/dist/{Modal-XOSV6FAH.css → Modal-7MWRCWAI.css} +30 -0
  108. package/dist/Note/index.js +1 -1
  109. package/dist/{Note-ONSKKTOA.css → Note-WI5MLZOO.css} +13 -0
  110. package/dist/OrgLabel/index.js +3 -3
  111. package/dist/OrgNode/index.js +4 -4
  112. package/dist/OrgTable/index.js +7 -7
  113. package/dist/PeopleRail/index.js +3 -3
  114. package/dist/Popover/index.js +2 -2
  115. package/dist/PresenceStack/index.js +3 -3
  116. package/dist/{PresenceStack-QSXQJND5.css → PresenceStack-FJJQVH74.css} +11 -3
  117. package/dist/PresenterView/PresenterView.d.ts +3 -0
  118. package/dist/PresenterView/index.js +5 -3
  119. package/dist/PresenterView-T3EXIQ5S.css +147 -0
  120. package/dist/Principal/index.js +3 -3
  121. package/dist/PrincipalPicker/index.js +4 -4
  122. package/dist/RichEditor/index.js +5 -5
  123. package/dist/RichEditor/schema.d.ts +1 -1
  124. package/dist/RichEditorMarkdown/index.js +3 -3
  125. package/dist/SandboxedFrame/SandboxedFrame.d.ts +44 -2
  126. package/dist/SandboxedFrame/index.d.ts +2 -2
  127. package/dist/SandboxedFrame/index.js +3 -3
  128. package/dist/SandboxedFrame-P5NASXB7.css +72 -0
  129. package/dist/Section/index.js +1 -1
  130. package/dist/{Section-QR3ILQVK.css → Section-O5AHGSOG.css} +28 -5
  131. package/dist/SegmentedControl/index.js +3 -3
  132. package/dist/Select/Select.d.ts +10 -0
  133. package/dist/Select/index.d.ts +1 -1
  134. package/dist/Select/index.js +2 -2
  135. package/dist/{Select-2P7AWUE4.css → Select-A54YS5EP.css} +29 -0
  136. package/dist/ShareDialog/ShareDialog.d.ts +10 -0
  137. package/dist/ShareDialog/index.js +9 -9
  138. package/dist/{ShareDialog-YZ4F37MW.css → ShareDialog-4QDCBWMH.css} +12 -0
  139. package/dist/SheetGrid/SheetGrid.d.ts +7 -3
  140. package/dist/SheetGrid/index.js +8 -8
  141. package/dist/{SheetGrid-J3TKKXZL.css → SheetGrid-GDPCCZ4V.css} +154 -14
  142. package/dist/SheetModel/fit.d.ts +34 -0
  143. package/dist/SheetModel/index.d.ts +1 -0
  144. package/dist/SheetModel/index.js +1 -1
  145. package/dist/SheetModel/labels.d.ts +1 -1
  146. package/dist/Shortcut/index.js +1 -1
  147. package/dist/Skeleton/Skeleton.d.ts +2 -1
  148. package/dist/Skeleton/index.js +1 -1
  149. package/dist/SlideCompare/SlideCompare.d.ts +6 -1
  150. package/dist/SlideCompare/index.js +3 -3
  151. package/dist/{SlideCompare-MGM3U2ME.css → SlideCompare-HTCMPQFY.css} +36 -3
  152. package/dist/SlideFilmstrip/SlideFilmstrip.d.ts +14 -3
  153. package/dist/SlideFilmstrip/index.js +3 -3
  154. package/dist/{SlideFilmstrip-BCLNAHFX.css → SlideFilmstrip-5U6Z55GS.css} +63 -2
  155. package/dist/SlideGrid/index.js +3 -3
  156. package/dist/{SlideGrid-RT6QEQEE.css → SlideGrid-S4LTJ4UU.css} +9 -5
  157. package/dist/SlideNav/SlideNav.d.ts +49 -0
  158. package/dist/SlideNav/index.d.ts +3 -0
  159. package/dist/SlideNav/index.js +4 -0
  160. package/dist/SlideNav-BLFJF6AH.css +53 -0
  161. package/dist/SlideStage/SlideStage.d.ts +9 -1
  162. package/dist/SlideStage/index.js +2 -2
  163. package/dist/{SlideStage-KGRRALXR.css → SlideStage-S2FISF4C.css} +23 -0
  164. package/dist/StatCard/StatCard.d.ts +16 -1
  165. package/dist/StatCard/index.js +1 -1
  166. package/dist/{StatCard-KPAFD4E2.css → StatCard-4T7TMWMN.css} +40 -13
  167. package/dist/Switcher/index.js +6 -6
  168. package/dist/TableCells/index.js +3 -3
  169. package/dist/Tabs/Tabs.d.ts +21 -4
  170. package/dist/Tabs/index.js +1 -1
  171. package/dist/{Tabs-CJGO35BH.css → Tabs-MMZXV5EF.css} +9 -8
  172. package/dist/TagsInput/index.js +1 -1
  173. package/dist/ThemeSwitcher/index.js +4 -4
  174. package/dist/TimeWindowPicker/index.js +4 -4
  175. package/dist/Toaster/index.js +2 -2
  176. package/dist/{Toaster-EOOOTSJT.css → Toaster-C6BQ7L6I.css} +10 -1
  177. package/dist/Toolbar/index.js +1 -1
  178. package/dist/Tooltip/Tooltip.d.ts +12 -1
  179. package/dist/Tooltip/index.d.ts +1 -1
  180. package/dist/Tooltip/index.js +2 -2
  181. package/dist/TreeCanvas/index.js +5 -5
  182. package/dist/TreeGrid/index.js +3 -3
  183. package/dist/VersionCompare/index.js +4 -4
  184. package/dist/VersionTimeline/index.js +4 -4
  185. package/dist/WidgetFrame/WidgetFrame.d.ts +8 -1
  186. package/dist/WidgetFrame/index.js +2 -2
  187. package/dist/{WidgetFrame-LRZIL62O.css → WidgetFrame-BTFW3CRK.css} +49 -5
  188. package/dist/{chunk-WJDQ7XQA.js → chunk-2QEDJSJC.js} +1 -1
  189. package/dist/{chunk-VYDFB6PJ.js → chunk-356JNSER.js} +50 -17
  190. package/dist/{chunk-2HIOJ4YZ.js → chunk-3EB2AV3H.js} +2 -3
  191. package/dist/{chunk-ODT5H4MN.js → chunk-3LYWD3BO.js} +2 -2
  192. package/dist/{chunk-OTN35CI4.js → chunk-3P4Y5RX6.js} +18 -6
  193. package/dist/{chunk-FAQGGX2Z.js → chunk-3TFDQLW3.js} +1 -1
  194. package/dist/{chunk-E6EWK5YY.js → chunk-3Y56GQPM.js} +3 -3
  195. package/dist/{chunk-A4E5YLXO.js → chunk-4B6LSFDS.js} +1 -1
  196. package/dist/{chunk-UAN5NE7M.js → chunk-5AQBPHZD.js} +1 -1
  197. package/dist/{chunk-CJKMURZO.js → chunk-5SZGKSGL.js} +1 -1
  198. package/dist/chunk-6VOS2GMB.js +54 -0
  199. package/dist/{chunk-QWOPX2MN.js → chunk-6ZJ3N7QI.js} +7 -5
  200. package/dist/{chunk-3ZAFJ4GK.js → chunk-7Q7WDXHG.js} +4 -4
  201. package/dist/{chunk-QH3AKP2N.js → chunk-AC22RZKC.js} +2 -2
  202. package/dist/{chunk-UZ6MA2V6.js → chunk-AORVEG5V.js} +2 -2
  203. package/dist/{chunk-ZITJKF6Z.js → chunk-AYB6AYNH.js} +1 -1
  204. package/dist/{chunk-FC4YTTFJ.js → chunk-BQ7AKL2N.js} +5 -5
  205. package/dist/{chunk-Y5NQ2LMS.js → chunk-BY4N65PM.js} +1 -1
  206. package/dist/{chunk-YFW4MTK4.js → chunk-C7DKX453.js} +1 -1
  207. package/dist/{chunk-RCQXUT5K.js → chunk-CCAXYHQS.js} +1 -1
  208. package/dist/{chunk-JQLTG4KH.js → chunk-CCLNGVCM.js} +62 -51
  209. package/dist/{chunk-6AH2XJ3Q.js → chunk-CFAJP777.js} +3 -3
  210. package/dist/{chunk-4KP4RC3O.js → chunk-CI3VPIJN.js} +1 -1
  211. package/dist/{chunk-7T42VQQT.js → chunk-CPEPST4S.js} +1 -1
  212. package/dist/{chunk-AAOH2P6Y.js → chunk-DFK5EQTU.js} +5 -3
  213. package/dist/{chunk-V5IGUXMZ.js → chunk-E4NNGC6X.js} +4 -4
  214. package/dist/{chunk-TGYDROIB.js → chunk-EBCHVFCS.js} +4 -4
  215. package/dist/{chunk-LWXRD6L6.js → chunk-EWAFN2IU.js} +118 -27
  216. package/dist/{chunk-YDBC4DNW.js → chunk-FWYHRU7M.js} +1 -1
  217. package/dist/{chunk-HVNTQ36V.js → chunk-GMU6SQ6B.js} +4 -4
  218. package/dist/{chunk-LIXSV5YI.js → chunk-GPHWCK7M.js} +1 -1
  219. package/dist/{chunk-UQHKFF2N.js → chunk-GPWJCP3U.js} +1 -1
  220. package/dist/{chunk-77DRMDXR.js → chunk-HG5VF3TZ.js} +192 -67
  221. package/dist/{chunk-QVE4GJAT.js → chunk-HJO4WCH6.js} +1 -1
  222. package/dist/{chunk-JI5AVQLA.js → chunk-HOIZ6MIS.js} +1 -1
  223. package/dist/{chunk-I3BSQUKN.js → chunk-HUVG2FFT.js} +1 -1
  224. package/dist/{chunk-VS3KOOOL.js → chunk-ILAEBSLJ.js} +3 -3
  225. package/dist/{chunk-P4BOXB6E.js → chunk-IUD5VA2Z.js} +6 -7
  226. package/dist/{chunk-GR55WT4R.js → chunk-IYO2N5ZH.js} +2 -2
  227. package/dist/{chunk-RWA4H2TV.js → chunk-J6ON5SYE.js} +1 -1
  228. package/dist/{chunk-AMNN4WDX.js → chunk-JBUMD6DS.js} +2 -2
  229. package/dist/{chunk-BWRGFKJP.js → chunk-K3IJQNB7.js} +2 -3
  230. package/dist/{chunk-LFNUH4GY.js → chunk-K4VP6ZKE.js} +1 -1
  231. package/dist/{chunk-ZR5VN5IV.js → chunk-KD2IRYCT.js} +2 -2
  232. package/dist/chunk-KF6YGL4B.js +160 -0
  233. package/dist/{chunk-SKOYC2CF.js → chunk-KK5OYNAF.js} +2 -1
  234. package/dist/{chunk-UB7TJEKZ.js → chunk-KV3ODJXH.js} +6 -7
  235. package/dist/chunk-LL5AFXU7.js +96 -0
  236. package/dist/{chunk-VYOKRN2I.js → chunk-LM3ISVJA.js} +1 -1
  237. package/dist/{chunk-E6CR5PEV.js → chunk-LV4APO72.js} +8 -2
  238. package/dist/{chunk-B4EBHPK3.js → chunk-M5KZX5JE.js} +9 -2
  239. package/dist/{chunk-HMPFGIWM.js → chunk-OMV5W53A.js} +10 -1
  240. package/dist/chunk-ONL54WMH.js +55 -0
  241. package/dist/{chunk-AKEZ3G5V.js → chunk-ONQKKHON.js} +1 -1
  242. package/dist/{chunk-LZHLSQYK.js → chunk-OOWPSBIS.js} +2 -2
  243. package/dist/{chunk-4KWOKX2B.js → chunk-OSKJZNBT.js} +1 -1
  244. package/dist/{chunk-4JUKWWUD.js → chunk-PLDUNXAO.js} +1 -1
  245. package/dist/{chunk-EHQTPVV4.js → chunk-PLTCDSTU.js} +1 -1
  246. package/dist/{chunk-5OM447RW.js → chunk-PZKHBB7D.js} +1 -1
  247. package/dist/{chunk-VEB5ERRE.js → chunk-QWNVSR6G.js} +2 -2
  248. package/dist/{chunk-IG75YMUN.js → chunk-RTPQDNW3.js} +1 -1
  249. package/dist/{chunk-YEKYVJQR.js → chunk-SGHIAGPR.js} +2 -2
  250. package/dist/{chunk-SVSCLHHI.js → chunk-SZZRIHGT.js} +1 -1
  251. package/dist/{chunk-EBNI36UQ.js → chunk-T46NR3WP.js} +3 -3
  252. package/dist/{chunk-FPS3JIPQ.js → chunk-TC7DJTXI.js} +1 -1
  253. package/dist/{chunk-W5J7R5EB.js → chunk-TEUQWOWZ.js} +1 -1
  254. package/dist/chunk-THROPJZC.js +115 -0
  255. package/dist/{chunk-IDBHX5SR.js → chunk-TRQCHF2F.js} +1 -1
  256. package/dist/{chunk-M3LUNN7F.js → chunk-TYKQ33CL.js} +13 -2
  257. package/dist/chunk-UDQW6UK7.js +129 -0
  258. package/dist/{chunk-WTNUVQVI.js → chunk-UHJQDFKQ.js} +1 -1
  259. package/dist/{chunk-VVRL27HM.js → chunk-ULPL26BU.js} +2 -2
  260. package/dist/{chunk-EBJREOKS.js → chunk-UXXJDIYE.js} +4 -4
  261. package/dist/{chunk-5LUI3WQP.js → chunk-V43UVX4H.js} +1 -1
  262. package/dist/{chunk-W4XYY73O.js → chunk-VHZ3AXJD.js} +1 -1
  263. package/dist/{chunk-NHBP2XS5.js → chunk-VI5FWDZW.js} +51 -3
  264. package/dist/{chunk-HJEVSQN6.js → chunk-VL6CUNSX.js} +11 -5
  265. package/dist/{chunk-XDTYBF2F.js → chunk-W5XCNEZC.js} +39 -1
  266. package/dist/{chunk-LDJ3J4TQ.js → chunk-WGD2HX2A.js} +1 -1
  267. package/dist/{chunk-FQCLKD7U.js → chunk-WKEPORNM.js} +1 -1
  268. package/dist/{chunk-PJD2KFHX.js → chunk-WPX6A5BV.js} +38 -13
  269. package/dist/{chunk-I3KKZ2O3.js → chunk-XEGZHHRH.js} +45 -36
  270. package/dist/{chunk-IKB6HFGK.js → chunk-XO7PUL4F.js} +6 -4
  271. package/dist/chunk-XTOVADJU.js +170 -0
  272. package/dist/chunk-XV32RKQZ.js +142 -0
  273. package/dist/{chunk-TBMDMXEX.js → chunk-YA3AWELW.js} +1 -1
  274. package/dist/{chunk-HVIX5ECM.js → chunk-YEVG2X5R.js} +1 -1
  275. package/dist/chunk-YZFLH463.js +215 -0
  276. package/dist/generated/index.d.ts +5 -0
  277. package/dist/generated/index.js +112 -108
  278. package/dist/index.js +112 -108
  279. package/dist/styles.css +1982 -228
  280. package/package.json +3 -3
  281. package/dist/AccessDeniedCard-WXM5DBDZ.css +0 -8
  282. package/dist/ArtifactCard-EXVAEBV6.css +0 -109
  283. package/dist/DocTabsEditor-RCOWHX5J.css +0 -78
  284. package/dist/PresenterView-T2C6ZZ3N.css +0 -103
  285. package/dist/SandboxedFrame-L6HBQZCD.css +0 -50
  286. package/dist/chunk-CRKFL423.js +0 -74
  287. package/dist/chunk-GOSQXEZU.js +0 -102
  288. package/dist/chunk-MBNFJSZS.js +0 -107
  289. package/dist/chunk-RV7SZAHR.js +0 -105
  290. package/dist/chunk-UZ7ZUSLH.js +0 -179
  291. package/dist/utils/useMediaMatch.d.ts +0 -12
  292. /package/dist/{chunk-TF2P3OPS.js → chunk-YCARLYI6.js} +0 -0
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  export interface ActivityBucket {
2
3
  /** The bucket's start, epoch milliseconds. It is also the cell's key. */
3
4
  t: number;
@@ -21,6 +22,20 @@ export interface ActivityStripProps {
21
22
  total: number;
22
23
  buckets: number;
23
24
  }) => string;
25
+ /**
26
+ * Makes every cell READABLE, as every other chart's marks are: pointing at a
27
+ * cell, or walking the cells with ←/→ once the strip has focus, opens a
28
+ * tooltip with the bucket's time and value. Opt-in, because a strip is also
29
+ * a glance beside a row (a seat's last hour on Live), where a tab stop and a
30
+ * tooltip on every row of a list would be noise; a strip that is a figure of
31
+ * its own, on a dashboard, passes it.
32
+ */
33
+ reading?: {
34
+ formatTime: (at: number) => string;
35
+ format?: (value: number) => string;
36
+ } | undefined;
37
+ /** What the strip says in place of the cells when it has no bucket. */
38
+ emptyLabel?: ReactNode;
24
39
  className?: string;
25
40
  }
26
41
  /**
@@ -42,4 +57,4 @@ export interface ActivityStripProps {
42
57
  * ONE IMAGE, not sixty. The cells are marks in a single picture, so the
43
58
  * strip is the `img` and its label is the sentence.
44
59
  */
45
- export declare function ActivityStrip({ buckets, label, summary, className }: ActivityStripProps): import("react").JSX.Element;
60
+ export declare function ActivityStrip({ buckets, label, summary, reading, emptyLabel, className, }: ActivityStripProps): import("react").JSX.Element;
@@ -26,6 +26,12 @@ export interface BarDatum {
26
26
  display?: ReactNode;
27
27
  /** A second line under the label. */
28
28
  sub?: ReactNode;
29
+ /**
30
+ * The bar's hue. Defaults to the first data hue for EVERY row: a ranked
31
+ * list is one series, and a hue per rank (blue, orange, green, amber, then
32
+ * the residual grey) gave five rows five identities the data does not have
33
+ * and painted the tail as "the rest" although every row is named.
34
+ */
29
35
  color?: string;
30
36
  /** Where the row leads. A link, wherever the destination is an address. */
31
37
  href?: string;
@@ -0,0 +1,33 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface ChartEmptyProps {
3
+ children: ReactNode;
4
+ /**
5
+ * The height of the plot it stands in for, as a CSS length, so a chart with
6
+ * nothing to draw keeps the height it would have drawn and a row of figures
7
+ * stays even. Left out, it is as tall as its sentence, or as its container
8
+ * when that is given a height.
9
+ */
10
+ height?: string | undefined;
11
+ /**
12
+ * Where the sentence stands: `center`, the default, in the middle of the
13
+ * plot it stands in for; `start` at the start of a list, where its rows
14
+ * would have begun.
15
+ */
16
+ align?: 'center' | 'start' | undefined;
17
+ className?: string | undefined;
18
+ }
19
+ /**
20
+ * What a chart says when it has nothing to draw.
21
+ *
22
+ * ONE SENTENCE IN THE CHART'S PLACE, the same for every chart in the kit. A
23
+ * chart of no data drew its scaffolding (an empty grid, a scale of 0 to 4, a
24
+ * track with nothing on it, a window starting at the epoch), which is a
25
+ * picture of a measurement that was never taken.
26
+ *
27
+ * IN THE MIDDLE OF THE PLOT, AT ITS HEIGHT. At the top left of a tall empty
28
+ * card the sentence read as a card that had failed to draw; centred in the
29
+ * area the plot would have filled, in the quiet ink, it reads as a chart with
30
+ * nothing in it, and the card keeps its height. A list's sentence stands
31
+ * where its rows would have begun (`align="start"`).
32
+ */
33
+ export declare function ChartEmpty({ children, height, align, className }: ChartEmptyProps): import("react").JSX.Element;
@@ -12,6 +12,12 @@ export interface LegendItem {
12
12
  color?: string;
13
13
  /** The number beside the name, where the legend doubles as the readout. */
14
14
  value?: ReactNode;
15
+ /**
16
+ * The key's shape, which MIRRORS THE MARK it names: a `swatch` for a fill
17
+ * (a bar, a column, a part of a whole), the default, and a `line` for a
18
+ * series drawn as a line, so a reader matches a stroke to a stroke.
19
+ */
20
+ shape?: 'swatch' | 'line';
15
21
  }
16
22
  export interface LegendProps {
17
23
  items: LegendItem[];
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  export interface StackedSegment {
2
3
  /** Keyed by id, so a push that re-ranks the parts moves no other part. */
3
4
  id: string;
@@ -22,6 +23,8 @@ export interface StackedBarProps {
22
23
  * Defaults to the reader's own number format.
23
24
  */
24
25
  format?: (value: number) => string;
26
+ /** What the bar says in place of the track when no part holds anything. */
27
+ emptyLabel?: ReactNode;
25
28
  className?: string;
26
29
  }
27
30
  /**
@@ -53,4 +56,4 @@ export interface StackedBarProps {
53
56
  * `segments`, zero parts included, so the swatch in its reading is the hue the
54
57
  * Legend keyed from the same list shows.
55
58
  */
56
- export declare function StackedBar({ segments, summary, format, className }: StackedBarProps): import("react").JSX.Element;
59
+ export declare function StackedBar({ segments, summary, format, emptyLabel, className, }: StackedBarProps): import("react").JSX.Element;
@@ -9,7 +9,10 @@ export interface StackedColumnsSeries {
9
9
  export interface StackedColumnsBucket {
10
10
  /** The bucket's start, epoch milliseconds. It is the column's identity. */
11
11
  t: number;
12
- /** Each series' value in this bucket, by series id. A missing id is zero. */
12
+ /**
13
+ * Each series' value in this bucket, by series id. A missing id is zero. A
14
+ * negative value stands below the zero line, its parts stacked down from it.
15
+ */
13
16
  values: Readonly<Record<string, number>>;
14
17
  }
15
18
  /**
@@ -66,10 +69,18 @@ export interface StackedColumnsProps {
66
69
  * a plot given none.
67
70
  */
68
71
  minHeight?: string;
69
- /** How a value reads out, on the scale and in the tooltip. Defaults to a compact number. */
72
+ /** How a value reads out, in the tooltip and the summary. Defaults to a compact number. */
70
73
  format?: (value: number) => string;
74
+ /**
75
+ * How the scale's words read. Defaults to `format`. A scale is read at a
76
+ * glance, so a caller whose values carry a unit or every digit ("7,500 USD")
77
+ * passes the short form here and keeps the exact one for the tooltip.
78
+ */
79
+ formatScale?: (value: number) => string;
71
80
  /** How a bucket reads out, under the plot and in the tooltip. Defaults to the reader's date. */
72
81
  formatTime?: (at: number) => string;
82
+ /** What the chart says in place of the plot when there is no bucket to draw. */
83
+ emptyLabel?: ReactNode;
73
84
  /** The chart's own sentence. The default names the window, the tallest column and each series' total. */
74
85
  summary?: (facts: {
75
86
  from: number | null;
@@ -132,4 +143,4 @@ export declare function niceScale(peak: number, steps?: number): {
132
143
  * gap and a true 4px corner at any width, which a stretched SVG cannot, and no
133
144
  * style element is ever drawn.
134
145
  */
135
- export declare function StackedColumns({ series, buckets, hidden, label, legend, head, height, minHeight, format, formatTime, summary, className, }: StackedColumnsProps): import("react").JSX.Element;
146
+ export declare function StackedColumns({ series, buckets, hidden, label, legend, head, height, minHeight, format, formatScale, formatTime, emptyLabel, summary, className, }: StackedColumnsProps): import("react").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  export interface SeriesPoint {
2
3
  /** The bucket's start, epoch milliseconds. */
3
4
  t: number;
@@ -42,6 +43,15 @@ export interface TimeSeriesProps {
42
43
  peak: number;
43
44
  }[];
44
45
  }) => string;
46
+ /**
47
+ * Where the legend goes: `below`, the default, under the scale, or `none`
48
+ * for a screen that names the series somewhere the chart cannot reach, such
49
+ * as a card whose title names its one series. A split that answered one band
50
+ * still draws its key: nothing else names the band.
51
+ */
52
+ legend?: 'below' | 'none';
53
+ /** What the chart says in place of the plot when no series has a point. */
54
+ emptyLabel?: ReactNode;
45
55
  className?: string;
46
56
  }
47
57
  /**
@@ -72,7 +82,7 @@ export interface TimeSeriesProps {
72
82
  * contrast floors the palette suite measures, and a library's theming surface
73
83
  * is a second design system to keep in step with this one.
74
84
  */
75
- export declare function TimeSeries({ series, from, to, label, height, format, formatTime, summary, className, }: TimeSeriesProps): import("react").JSX.Element;
85
+ export declare function TimeSeries({ series, from, to, label, height, format, formatTime, summary, legend, emptyLabel, className, }: TimeSeriesProps): import("react").JSX.Element;
76
86
  export interface SparklineProps {
77
87
  values: readonly number[];
78
88
  /**
@@ -12,6 +12,8 @@ export { TimeSeries, Sparkline } from './TimeSeries.js';
12
12
  export type { Series, SeriesPoint, SparklineProps, TimeSeriesProps } from './TimeSeries.js';
13
13
  export { StackedColumns, niceScale } from './StackedColumns.js';
14
14
  export type { StackedColumnsBucket, StackedColumnsHeight, StackedColumnsLegend, StackedColumnsProps, StackedColumnsSeries, } from './StackedColumns.js';
15
+ export { ChartEmpty } from './ChartEmpty.js';
16
+ export type { ChartEmptyProps } from './ChartEmpty.js';
15
17
  export { ChartTooltip } from './ChartTooltip.js';
16
18
  export type { ChartTooltipProps, ChartTooltipRow } from './ChartTooltip.js';
17
19
  export { useChartHover } from './useChartHover.js';
@@ -1,3 +1,3 @@
1
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-77DRMDXR.js';
1
+ export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-HG5VF3TZ.js';
2
2
  import '../chunk-BZFWDIV6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -39,6 +39,12 @@
39
39
  background: var(--crewlet-legend-swatch-color, var(--color-data-other));
40
40
  }
41
41
 
42
+ .crewlet-legend__swatch--line {
43
+ width: 12px;
44
+ height: 2px;
45
+ border-radius: calc(var(--radius-xs) / 4);
46
+ }
47
+
42
48
  .crewlet-legend__label {
43
49
  overflow: hidden;
44
50
  text-overflow: ellipsis;
@@ -157,7 +163,7 @@
157
163
  */
158
164
  .crewlet-bar-list__sub,
159
165
  .crewlet-bar-list__more,
160
- .crewlet-bar-list__empty {
166
+ .crewlet-chart-empty {
161
167
  font-size: var(--font-size-xs);
162
168
  color: var(--color-text-tertiary);
163
169
  }
@@ -174,9 +180,22 @@
174
180
  * A card draws its own content in a body now, so a padding here is the panel's
175
181
  * inset a second time.
176
182
  */
177
- .crewlet-bar-list__empty {
183
+ .crewlet-chart-empty {
184
+ box-sizing: border-box;
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ height: 100%;
178
189
  margin: 0;
179
190
  padding: 0;
191
+ line-height: var(--font-line-height-normal);
192
+ text-align: center;
193
+ }
194
+
195
+ .crewlet-chart-empty--start {
196
+ display: block;
197
+ height: auto;
198
+ text-align: start;
180
199
  }
181
200
 
182
201
  .crewlet-bar-list__sub {
@@ -403,6 +422,8 @@
403
422
  row-gap: var(--spacing-1);
404
423
  margin: 0;
405
424
  min-width: 0;
425
+ /* Measured by its own width, for the dates under the plot. */
426
+ container: crewlet-stacked-columns / inline-size;
406
427
  }
407
428
 
408
429
  /*
@@ -427,12 +448,16 @@
427
448
  align-items: flex-end;
428
449
  }
429
450
 
451
+ /*
452
+ * The scale's words are set as the dates under the plot are, the sans at the
453
+ * caption step with tabular figures, so the two axes of one chart read as one
454
+ * scale. They were the mono at the step below, beside dates in the sans.
455
+ */
430
456
  .crewlet-stacked-columns__tick {
431
457
  display: flex;
432
458
  align-items: center;
433
459
  height: 0;
434
- font-family: var(--font-family-mono);
435
- font-size: var(--font-size-2xs);
460
+ font-size: var(--font-size-xs);
436
461
  line-height: var(--font-line-height-tight);
437
462
  color: var(--color-text-tertiary);
438
463
  font-variant-numeric: tabular-nums;
@@ -447,7 +472,7 @@
447
472
  * keeps that half line above the plot itself.
448
473
  */
449
474
  .crewlet-stacked-columns--headless {
450
- padding-block-start: calc(var(--font-size-2xs) * var(--font-line-height-tight) / 2);
475
+ padding-block-start: calc(var(--font-size-xs) * var(--font-line-height-tight) / 2);
451
476
  }
452
477
 
453
478
  .crewlet-stacked-columns__plot {
@@ -497,14 +522,23 @@
497
522
  /*
498
523
  * THE COLUMN IS ITS TOTAL'S HEIGHT (a style property), and its parts share it
499
524
  * by value, first series at the baseline. They stand 2px apart for the reason
500
- * a stacked bar's do, and the gap comes out of the parts.
525
+ * a stacked bar's do, and the gap comes out of the parts. It stands on the
526
+ * zero line (a style property), centred in its slot; the column of a
527
+ * bucket's negative parts hangs from the same line, first series nearest it.
501
528
  */
502
529
  .crewlet-stacked-columns__column {
530
+ position: absolute;
531
+ inset-inline-start: 50%;
503
532
  display: flex;
504
533
  flex-direction: column-reverse;
505
534
  gap: 2px;
506
535
  width: 63%;
507
- max-width: var(--spacing-7);
536
+ max-width: var(--spacing-6);
537
+ transform: translateX(-50%);
538
+ }
539
+
540
+ .crewlet-stacked-columns__column--below {
541
+ flex-direction: column;
508
542
  }
509
543
 
510
544
  .crewlet-stacked-columns__segment {
@@ -516,13 +550,19 @@
516
550
  background: var(--crewlet-stacked-columns-segment-color, var(--color-data-other));
517
551
  }
518
552
 
519
- /* The VALUE END: the top of the topmost part, rounded at the smallest step.
520
- The foot stays square on the baseline every column shares. */
521
- .crewlet-stacked-columns__segment:last-child {
553
+ /* The VALUE END: the top of the topmost part, rounded at the smallest step
554
+ (the foot of the lowest one, below zero). The end on the zero line stays
555
+ square, where every column starts. */
556
+ .crewlet-stacked-columns__column:not(.crewlet-stacked-columns__column--below) > .crewlet-stacked-columns__segment:last-child {
522
557
  border-top-left-radius: var(--radius-xs);
523
558
  border-top-right-radius: var(--radius-xs);
524
559
  }
525
560
 
561
+ .crewlet-stacked-columns__column--below > .crewlet-stacked-columns__segment:last-child {
562
+ border-bottom-left-radius: var(--radius-xs);
563
+ border-bottom-right-radius: var(--radius-xs);
564
+ }
565
+
526
566
  .crewlet-stacked-columns__scale {
527
567
  position: relative;
528
568
  grid-column: 2;
@@ -574,7 +614,9 @@
574
614
  margin-top: var(--spacing-2);
575
615
  }
576
616
 
577
- /* The middle label stands on the column it names (a style property). */
617
+ /* The middle label stands on the column it names (a style property). On a
618
+ chart too narrow for three dates it leaves the line to the two ends, which
619
+ it ran into; the tooltip reads every column's date. */
578
620
  .crewlet-stacked-columns__middle {
579
621
  position: absolute;
580
622
  top: 0;
@@ -582,6 +624,16 @@
582
624
  white-space: nowrap;
583
625
  }
584
626
 
627
+ .crewlet-stacked-columns__scale > span {
628
+ white-space: nowrap;
629
+ }
630
+
631
+ @container crewlet-stacked-columns (width < 22rem) {
632
+ .crewlet-stacked-columns__middle {
633
+ display: none;
634
+ }
635
+ }
636
+
585
637
  /* ─── The reading layer: a focusable plot and its tooltip ─────── */
586
638
 
587
639
  /*
@@ -681,13 +733,18 @@
681
733
  background: var(--crewlet-chart-tooltip-swatch-color, var(--color-data-other));
682
734
  }
683
735
 
736
+ /* A name too long for the box ends in an ellipsis before its value: it ran
737
+ under the number ("lifec1,397 USD"). The value is never cut. */
684
738
  .crewlet-chart-tooltip__name {
685
739
  flex: 1;
686
740
  min-width: 0;
741
+ overflow: hidden;
742
+ text-overflow: ellipsis;
687
743
  color: var(--color-text-secondary);
688
744
  }
689
745
 
690
746
  .crewlet-chart-tooltip__value {
747
+ flex: none;
691
748
  color: var(--color-text-primary);
692
749
  font-variant-numeric: tabular-nums;
693
750
  }
@@ -710,9 +767,14 @@
710
767
  width: 100%;
711
768
  }
712
769
 
770
+ /*
771
+ * A cell shares the strip's width with the others, up to a column's width,
772
+ * so a strip of one day is one mark rather than a slab across the figure.
773
+ */
713
774
  .crewlet-activity-strip__cell {
714
775
  flex: 1;
715
776
  min-width: var(--crewlet-activity-strip-cell-min-width, 2px);
777
+ max-width: var(--crewlet-activity-strip-cell-max-width, var(--spacing-6));
716
778
  height: var(--crewlet-activity-strip-fill, 10%);
717
779
  /*
718
780
  * A quarter of the smallest step. A cell is two pixels wide, so at the step
@@ -730,6 +792,12 @@
730
792
  background: var(--color-data-1);
731
793
  }
732
794
 
795
+ /* The cell being read lifts, as a column being read does, by the hover step
796
+ behind it rather than by a second colour. */
797
+ .crewlet-activity-strip__cell.is-read {
798
+ box-shadow: 0 0 0 2px var(--color-surface-hover);
799
+ }
800
+
733
801
  /* ─── Time series, and the sparkline beside a number ──────────── */
734
802
 
735
803
  /*
@@ -756,14 +824,16 @@
756
824
  }
757
825
 
758
826
  /*
759
- * The grid is DASHED, which is what keeps three horizontal lines from reading
760
- * as three series. They carry no values of their own: the peak under the plot
761
- * is the scale, and a chart this size cannot label four gridlines legibly.
827
+ * The grid is a SOLID HAIRLINE in the default border, the ink the column
828
+ * chart's grid is drawn in. It was dashed, so that three lines would
829
+ * not read as three series, but a one pixel rule in a border ink beside a two
830
+ * pixel line in a data hue reads as neither, and a dash is how a chart says
831
+ * "projection" or "threshold". The lines carry no values of their own: the
832
+ * peak under the plot is the scale.
762
833
  */
763
834
  .crewlet-chart__grid-line {
764
835
  stroke: var(--color-border-default);
765
836
  stroke-width: 1;
766
- stroke-dasharray: 2 4;
767
837
  }
768
838
 
769
839
  /*
@@ -788,7 +858,34 @@
788
858
  pointer-events: none;
789
859
  }
790
860
 
791
- /* The window's two ends and its peak, under the plot: the scale, as words. */
861
+ /*
862
+ * A POINT: a disc 8px across in its series' hue, cut out of the ground by a
863
+ * 2px ring of the card (`--crewlet-spark-ground`, as a sparkline's point is),
864
+ * centred on its value. It stands over the plot rather than in it, so it stays
865
+ * round at every width, and is drawn for a series of one point and for every
866
+ * series at the instant being read.
867
+ */
868
+ .crewlet-time-series__dot {
869
+ position: absolute;
870
+ width: 8px;
871
+ height: 8px;
872
+ border-radius: 50%;
873
+ background: var(--crewlet-time-series-dot-color, var(--color-data-other));
874
+ box-shadow: 0 0 0 2px var(--crewlet-spark-ground, var(--color-surface-subtle));
875
+ transform: translate(-50%, -50%);
876
+ pointer-events: none;
877
+ }
878
+
879
+ /*
880
+ * The window's two ends and its peak, under the plot: the scale, as words.
881
+ * The ends hold their words whole and the range between them gives way, so a
882
+ * narrow chart never runs one into another; under 18rem the range leaves the
883
+ * line to the tooltip and the summary, which carry it too.
884
+ */
885
+ .crewlet-time-series {
886
+ container: crewlet-time-series / inline-size;
887
+ }
888
+
792
889
  .crewlet-time-series__scale {
793
890
  display: flex;
794
891
  justify-content: space-between;
@@ -799,6 +896,33 @@
799
896
  font-variant-numeric: tabular-nums;
800
897
  }
801
898
 
899
+ .crewlet-time-series__scale > span {
900
+ flex: none;
901
+ white-space: nowrap;
902
+ }
903
+
904
+ /* A window of one instant is drawn at the plot's middle, and so is its date. */
905
+ .crewlet-time-series__scale--instant {
906
+ justify-content: center;
907
+ }
908
+
909
+ .crewlet-time-series__scale > .crewlet-time-series__range {
910
+ flex: 0 1 auto;
911
+ min-width: 0;
912
+ overflow: hidden;
913
+ text-overflow: ellipsis;
914
+ }
915
+
916
+ @container crewlet-time-series (width < 18rem) {
917
+ .crewlet-time-series__range {
918
+ display: none;
919
+ }
920
+ }
921
+
922
+ .crewlet-time-series__legend {
923
+ margin-top: var(--spacing-2);
924
+ }
925
+
802
926
  /*
803
927
  * THE SPARKLINE: the plot stretched to the box, and, with `current`, one
804
928
  * accent point on the last value.
@@ -1,4 +1,4 @@
1
- export { Checkbox, CheckboxGroup } from '../chunk-7T42VQQT.js';
1
+ export { Checkbox, CheckboxGroup } from '../chunk-CPEPST4S.js';
2
2
  import '../chunk-6QFAK2WV.js';
3
3
  import '../chunk-PQADV6P6.js';
4
4
  import '../chunk-4FQT6ZAY.js';
@@ -108,6 +108,17 @@
108
108
  .crewlet-checkbox--sm {
109
109
  --crewlet-checkbox-size: 14px;
110
110
 
111
+ /*
112
+ * ITS LINE IS CENTRED IN THE ROW. The row's floor was a minimum height with
113
+ * the label at its top, so in a form row of small inputs (whose text sits
114
+ * on their middle) the box and its label stood 5px above the line every
115
+ * other control's text was on. The floor is made of equal padding round
116
+ * the first line instead: one line comes out exactly the row's height with
117
+ * the text on its middle, and a longer label grows the row downwards with
118
+ * the box still on its first line.
119
+ */
120
+ min-height: 0;
121
+ padding-block: calc((var(--size-row-sm) - var(--font-line-height-snug) * 1em) / 2);
111
122
  font-size: var(--font-size-compact);
112
123
  }
113
124
 
@@ -1,11 +1,11 @@
1
- export { CommandPalette } from '../chunk-VVRL27HM.js';
2
- import '../chunk-I3KKZ2O3.js';
1
+ export { CommandPalette } from '../chunk-ULPL26BU.js';
2
+ import '../chunk-XEGZHHRH.js';
3
3
  import '../chunk-F73MC7EZ.js';
4
4
  import '../chunk-6QFAK2WV.js';
5
5
  import '../chunk-SMBKXWML.js';
6
6
  import '../chunk-BHHIIK3M.js';
7
7
  import '../chunk-PQADV6P6.js';
8
- import '../chunk-HMPFGIWM.js';
8
+ import '../chunk-OMV5W53A.js';
9
9
  import '../chunk-R25RGPUB.js';
10
10
  import '../chunk-OG6CL3EB.js';
11
11
  import '../chunk-4FQT6ZAY.js';
@@ -147,7 +147,11 @@
147
147
  background: var(--color-surface-background);
148
148
  }
149
149
 
150
+ /* THE LEGEND SPANS THE BAND: a palette's foot has no actions, so its start
151
+ slot takes the whole width, and a consumer that ends the legend with what
152
+ the search is doing can push that to the band's end. */
150
153
  .crewlet-palette .crewlet-modal__footer-start {
154
+ flex: 1 1 auto;
151
155
  gap: var(--spacing-4);
152
156
  font-size: var(--font-size-xs);
153
157
  }
@@ -1,13 +1,13 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-GR55WT4R.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-IYO2N5ZH.js';
2
2
  import '../chunk-7DZDSSJS.js';
3
3
  import '../chunk-6QFAK2WV.js';
4
4
  import '../chunk-SMBKXWML.js';
5
- import '../chunk-M3LUNN7F.js';
6
- import '../chunk-4KP4RC3O.js';
5
+ import '../chunk-TYKQ33CL.js';
6
+ import '../chunk-CI3VPIJN.js';
7
7
  import '../chunk-3CZ7XAVY.js';
8
8
  import '../chunk-EUCC37WY.js';
9
- import '../chunk-UAN5NE7M.js';
10
- import '../chunk-5OM447RW.js';
9
+ import '../chunk-5AQBPHZD.js';
10
+ import '../chunk-PZKHBB7D.js';
11
11
  import '../chunk-BHHIIK3M.js';
12
12
  import '../chunk-PQADV6P6.js';
13
13
  import '../chunk-OG6CL3EB.js';
@@ -1,2 +1,2 @@
1
- export { Container } from '../chunk-QVE4GJAT.js';
1
+ export { Container } from '../chunk-HJO4WCH6.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -45,8 +45,10 @@
45
45
  max-width: none;
46
46
  }
47
47
 
48
+ /* A PHONE'S GUTTER IS THE SHELL'S, 16px, the top bar's own inset: a narrower
49
+ one stood a page's content left of the title over it. */
48
50
  @media (max-width: 480px) {
49
51
  .crewlet-container {
50
- padding-inline: var(--spacing-3);
52
+ padding-inline: var(--spacing-4);
51
53
  }
52
54
  }
@@ -11,23 +11,27 @@
11
11
  color: var(--color-text-tertiary);
12
12
  }
13
13
 
14
+ /*
15
+ * THE FIGURES ARE ROWS, the label at the start and the figure (or the dataset
16
+ * it cites) at the end. Three tiles side by side gave each label a third of a
17
+ * card's width, so every one was cut to its first word ("Open w…" over "Open
18
+ * w…"); a row gives the label the card's width, which is what says what the
19
+ * board measures.
20
+ */
14
21
  .crewlet-dashboard-cover--stats {
15
22
  display: grid;
16
- grid-auto-columns: minmax(0, 1fr);
17
- grid-auto-flow: column;
18
- align-items: center;
23
+ grid-auto-rows: minmax(0, 1fr);
19
24
  gap: var(--spacing-2);
20
25
  }
21
26
 
22
27
  .crewlet-dashboard-cover__stat {
23
28
  display: flex;
24
- flex-direction: column;
25
- justify-content: center;
26
- gap: var(--spacing-1);
29
+ align-items: center;
30
+ justify-content: space-between;
31
+ gap: var(--spacing-3);
27
32
  min-width: 0;
28
- height: 100%;
29
- max-height: 100%;
30
- padding: var(--spacing-2) var(--spacing-3);
33
+ min-height: 0;
34
+ padding: 0 var(--spacing-3);
31
35
  border: 1px solid var(--color-border-default);
32
36
  border-radius: var(--radius-md);
33
37
  background: var(--color-surface-elevated);
@@ -42,6 +46,33 @@
42
46
  white-space: nowrap;
43
47
  }
44
48
 
49
+ .crewlet-dashboard-cover__label {
50
+ flex: 1 1 auto;
51
+ min-width: 0;
52
+ color: var(--color-text-secondary);
53
+ }
54
+
55
+ .crewlet-dashboard-cover__value {
56
+ flex: none;
57
+ max-width: 50%;
58
+ overflow: hidden;
59
+ color: var(--color-text-primary);
60
+ font-size: var(--font-size-lg);
61
+ font-variant-numeric: tabular-nums;
62
+ font-weight: var(--font-weight-semibold);
63
+ line-height: var(--font-line-height-tight);
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ }
67
+
68
+ .crewlet-dashboard-cover__source {
69
+ overflow: hidden;
70
+ font-size: var(--font-size-xs);
71
+ line-height: var(--font-line-height-snug);
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ }
75
+
45
76
  .crewlet-dashboard-cover__label {
46
77
  color: var(--color-text-secondary);
47
78
  }
@@ -58,6 +89,8 @@
58
89
  }
59
90
 
60
91
  .crewlet-dashboard-cover__source {
92
+ flex: 0 1 auto;
93
+ max-width: 50%;
61
94
  color: var(--color-text-tertiary);
62
95
  }
63
96