@crewlethq/ui 0.2.0 → 0.3.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 (497) hide show
  1. package/README.md +1714 -14
  2. package/dist/Accordion/Accordion.d.ts +54 -0
  3. package/dist/Accordion/index.d.ts +4 -0
  4. package/dist/Accordion/index.js +6 -0
  5. package/dist/Accordion-ZI2WLD5C.css +87 -0
  6. package/dist/AddPill/AddPill.d.ts +114 -0
  7. package/dist/AddPill/index.d.ts +3 -0
  8. package/dist/AddPill/index.js +3 -0
  9. package/dist/AddPill-DFWXYLIQ.css +434 -0
  10. package/dist/Announcer/Announcer.d.ts +15 -0
  11. package/dist/Announcer/index.d.ts +2 -0
  12. package/dist/Announcer/index.js +3 -0
  13. package/dist/AppShell/AppShell.d.ts +193 -0
  14. package/dist/AppShell/index.d.ts +3 -0
  15. package/dist/AppShell/index.js +6 -0
  16. package/dist/AppShell-NVE6LHNI.css +395 -0
  17. package/dist/Avatar/Avatar.d.ts +104 -0
  18. package/dist/Avatar/index.d.ts +3 -0
  19. package/dist/Avatar/index.js +2 -0
  20. package/dist/Avatar-P2KRQM2B.css +156 -0
  21. package/dist/BrandLockup/BrandLockup.d.ts +41 -0
  22. package/dist/BrandLockup/index.d.ts +3 -0
  23. package/dist/BrandLockup/index.js +2 -0
  24. package/dist/BrandLockup-6ISDEHPJ.css +108 -0
  25. package/dist/Button/Button.d.ts +88 -0
  26. package/dist/Button/index.d.ts +3 -0
  27. package/dist/Button/index.js +3 -0
  28. package/dist/Button-D4J6B4MA.css +302 -0
  29. package/dist/CalendarGrid/CalendarGrid.d.ts +87 -0
  30. package/dist/CalendarGrid/index.d.ts +3 -0
  31. package/dist/CalendarGrid/index.js +2 -0
  32. package/dist/CalendarGrid-V6TQ5QKS.css +128 -0
  33. package/dist/Callout/Callout.d.ts +47 -0
  34. package/dist/Callout/index.d.ts +3 -0
  35. package/dist/Callout/index.js +2 -0
  36. package/dist/Callout-S7QDWHDL.css +111 -0
  37. package/dist/Canvas/Canvas.d.ts +234 -0
  38. package/dist/Canvas/geometry.d.ts +249 -0
  39. package/dist/Canvas/index.d.ts +5 -0
  40. package/dist/Canvas/index.js +8 -0
  41. package/dist/Canvas/layerNode.d.ts +20 -0
  42. package/dist/Canvas-Q6JETCWR.css +315 -0
  43. package/dist/Card/Card.d.ts +142 -0
  44. package/dist/Card/headerSlot.d.ts +65 -0
  45. package/dist/Card/index.d.ts +5 -0
  46. package/dist/Card/index.js +6 -0
  47. package/dist/Card-AHX3Q2JD.css +428 -0
  48. package/dist/Charts/ActivityStrip.d.ts +45 -0
  49. package/dist/Charts/BarList.d.ts +51 -0
  50. package/dist/Charts/Legend.d.ts +32 -0
  51. package/dist/Charts/StackedBar.d.ts +38 -0
  52. package/dist/Charts/TimeSeries.d.ts +92 -0
  53. package/dist/Charts/dataColor.d.ts +20 -0
  54. package/dist/Charts/index.d.ts +12 -0
  55. package/dist/Charts/index.js +3 -0
  56. package/dist/Charts-D7G2BSXH.css +277 -0
  57. package/dist/Checkbox/Checkbox.d.ts +45 -0
  58. package/dist/Checkbox/index.d.ts +3 -0
  59. package/dist/Checkbox/index.js +2 -0
  60. package/dist/Checkbox-VGW26YLQ.css +111 -0
  61. package/dist/CodeBlock/CodeBlock.d.ts +60 -0
  62. package/dist/CodeBlock/index.d.ts +3 -0
  63. package/dist/CodeBlock/index.js +7 -0
  64. package/dist/CodeBlock-U2W6NNVC.css +153 -0
  65. package/dist/Combobox/Combobox.d.ts +89 -0
  66. package/dist/Combobox/index.d.ts +3 -0
  67. package/dist/Combobox/index.js +8 -0
  68. package/dist/Combobox-4FUVYIE7.css +80 -0
  69. package/dist/CommandPalette/CommandPalette.d.ts +77 -0
  70. package/dist/CommandPalette/index.d.ts +3 -0
  71. package/dist/CommandPalette/index.js +11 -0
  72. package/dist/CommandPalette-CSJDUCQA.css +115 -0
  73. package/dist/Container/Container.d.ts +17 -0
  74. package/dist/Container/index.d.ts +3 -0
  75. package/dist/Container/index.js +2 -0
  76. package/dist/Container-3TSKMGNI.css +52 -0
  77. package/dist/Copyable/CopyButton.d.ts +54 -0
  78. package/dist/Copyable/Copyable.d.ts +34 -0
  79. package/dist/Copyable/index.d.ts +5 -0
  80. package/dist/Copyable/index.js +6 -0
  81. package/dist/Copyable-5PNRFOLS.css +125 -0
  82. package/dist/Count/Count.d.ts +24 -0
  83. package/dist/Count/index.d.ts +3 -0
  84. package/dist/Count/index.js +3 -0
  85. package/dist/Count-ZVCJ6VPD.css +20 -0
  86. package/dist/DataTable/CopyableCell.d.ts +12 -0
  87. package/dist/DataTable/DataTable.d.ts +615 -0
  88. package/dist/DataTable/RowActionsMenu.d.ts +7 -0
  89. package/dist/DataTable/index.d.ts +7 -0
  90. package/dist/DataTable/index.js +14 -0
  91. package/dist/DataTable-ITNACQ2X.css +2020 -0
  92. package/dist/DataView/DataView.d.ts +109 -0
  93. package/dist/DataView/DataViewToolbar.d.ts +87 -0
  94. package/dist/DataView/FilterAxisBar.d.ts +103 -0
  95. package/dist/DataView/columns.d.ts +35 -0
  96. package/dist/DataView/filters.d.ts +184 -0
  97. package/dist/DataView/index.d.ts +11 -0
  98. package/dist/DataView/index.js +25 -0
  99. package/dist/DataView-256YF32J.css +441 -0
  100. package/dist/DateTimePicker/DateTimePicker.d.ts +91 -0
  101. package/dist/DateTimePicker/index.d.ts +3 -0
  102. package/dist/DateTimePicker/index.js +9 -0
  103. package/dist/DateTimePicker-22VNXRWC.css +199 -0
  104. package/dist/DescriptionList/DescriptionList.d.ts +36 -0
  105. package/dist/DescriptionList/index.d.ts +3 -0
  106. package/dist/DescriptionList/index.js +2 -0
  107. package/dist/DescriptionList-YYY3V3O6.css +59 -0
  108. package/dist/DiffList/DiffList.d.ts +47 -0
  109. package/dist/DiffList/index.d.ts +3 -0
  110. package/dist/DiffList/index.js +3 -0
  111. package/dist/DiffList-3EX64AAE.css +94 -0
  112. package/dist/Disclosure/Disclosure.d.ts +56 -0
  113. package/dist/Disclosure/anatomy.d.ts +43 -0
  114. package/dist/Disclosure/index.d.ts +5 -0
  115. package/dist/Disclosure/index.js +6 -0
  116. package/dist/Disclosure-VKBJJIZ7.css +176 -0
  117. package/dist/EmptyState/EmptyState.d.ts +39 -0
  118. package/dist/EmptyState/index.d.ts +3 -0
  119. package/dist/EmptyState/index.js +3 -0
  120. package/dist/EmptyState-C6HRBGT7.css +73 -0
  121. package/dist/EmptyValue/EmptyValue.d.ts +31 -0
  122. package/dist/EmptyValue/index.d.ts +3 -0
  123. package/dist/EmptyValue/index.js +3 -0
  124. package/dist/EmptyValue-4B6ODXHT.css +12 -0
  125. package/dist/EntityChip/EntityChip.d.ts +40 -0
  126. package/dist/EntityChip/index.d.ts +3 -0
  127. package/dist/EntityChip/index.js +3 -0
  128. package/dist/EntityChip-LUCPZBBG.css +64 -0
  129. package/dist/ErrorBoundary/ErrorBoundary.d.ts +58 -0
  130. package/dist/ErrorBoundary/index.d.ts +3 -0
  131. package/dist/ErrorBoundary/index.js +4 -0
  132. package/dist/ErrorBoundary-ME36CQTA.css +59 -0
  133. package/dist/Eyebrow/Eyebrow.d.ts +18 -0
  134. package/dist/Eyebrow/index.d.ts +3 -0
  135. package/dist/Eyebrow/index.js +2 -0
  136. package/dist/Eyebrow-5NREGHQH.css +46 -0
  137. package/dist/FilterChip/FilterChip.d.ts +68 -0
  138. package/dist/FilterChip/index.d.ts +3 -0
  139. package/dist/FilterChip/index.js +3 -0
  140. package/dist/FilterChip-GTGLLOXE.css +107 -0
  141. package/dist/Fullscreen/index.d.ts +2 -0
  142. package/dist/Fullscreen/index.js +1 -0
  143. package/dist/Fullscreen/useFullscreen.d.ts +32 -0
  144. package/dist/IconButton/IconButton.d.ts +45 -0
  145. package/dist/IconButton/index.d.ts +3 -0
  146. package/dist/IconButton/index.js +3 -0
  147. package/dist/IconButton-VQGNMJDI.css +158 -0
  148. package/dist/ImageUpload/ImageUpload.d.ts +37 -0
  149. package/dist/ImageUpload/index.d.ts +3 -0
  150. package/dist/ImageUpload/index.js +3 -0
  151. package/dist/ImageUpload-HKFIZR6D.css +193 -0
  152. package/dist/InlineCode/InlineCode.d.ts +37 -0
  153. package/dist/InlineCode/index.d.ts +3 -0
  154. package/dist/InlineCode/index.js +2 -0
  155. package/dist/InlineCode-6WSR5COL.css +65 -0
  156. package/dist/Input/FormField.d.ts +61 -0
  157. package/dist/Input/FormRow.d.ts +6 -0
  158. package/dist/Input/FormSection.d.ts +28 -0
  159. package/dist/Input/Input.d.ts +98 -0
  160. package/dist/Input/Label.d.ts +31 -0
  161. package/dist/Input/ReadOnlyField.d.ts +30 -0
  162. package/dist/Input/Textarea.d.ts +16 -0
  163. package/dist/Input/index.d.ts +15 -0
  164. package/dist/Input/index.js +5 -0
  165. package/dist/Input-2PU5CPKK.css +616 -0
  166. package/dist/Kbd/Kbd.d.ts +40 -0
  167. package/dist/Kbd/index.d.ts +3 -0
  168. package/dist/Kbd/index.js +3 -0
  169. package/dist/Kbd-W66MXQI5.css +61 -0
  170. package/dist/Layer/LayerHost.d.ts +23 -0
  171. package/dist/Layer/index.d.ts +7 -0
  172. package/dist/Layer/index.js +3 -0
  173. package/dist/Layer/place.d.ts +63 -0
  174. package/dist/Layer/stack.d.ts +159 -0
  175. package/dist/Layer-NAFSGCFA.css +23 -0
  176. package/dist/Layout/Layout.d.ts +104 -0
  177. package/dist/Layout/index.d.ts +3 -0
  178. package/dist/Layout/index.js +2 -0
  179. package/dist/Layout-2ZCV3IGF.css +171 -0
  180. package/dist/Link/Link.d.ts +45 -0
  181. package/dist/Link/index.d.ts +3 -0
  182. package/dist/Link/index.js +3 -0
  183. package/dist/Link-6BEFNMN2.css +80 -0
  184. package/dist/List/List.d.ts +73 -0
  185. package/dist/List/index.d.ts +3 -0
  186. package/dist/List/index.js +3 -0
  187. package/dist/List-XTHESXLR.css +161 -0
  188. package/dist/ListInput/ListInput.d.ts +68 -0
  189. package/dist/ListInput/index.d.ts +3 -0
  190. package/dist/ListInput/index.js +10 -0
  191. package/dist/ListInput-O7LJKOIG.css +147 -0
  192. package/dist/Listbox/index.d.ts +5 -0
  193. package/dist/Listbox/index.js +2 -0
  194. package/dist/Listbox/useListbox.d.ts +97 -0
  195. package/dist/Listbox/useOptionKeys.d.ts +64 -0
  196. package/dist/Listbox-X2DOTSQA.css +110 -0
  197. package/dist/Menu/Menu.d.ts +118 -0
  198. package/dist/Menu/index.d.ts +3 -0
  199. package/dist/Menu/index.js +7 -0
  200. package/dist/Menu-6DE7I66I.css +222 -0
  201. package/dist/Meter/Meter.d.ts +49 -0
  202. package/dist/Meter/index.d.ts +3 -0
  203. package/dist/Meter/index.js +3 -0
  204. package/dist/Meter-SKOOXQBC.css +87 -0
  205. package/dist/Modal/ConfirmModal.d.ts +74 -0
  206. package/dist/Modal/Modal.d.ts +154 -0
  207. package/dist/Modal/index.d.ts +5 -0
  208. package/dist/Modal/index.js +8 -0
  209. package/dist/Modal-XYQJ4BL6.css +484 -0
  210. package/dist/NewItemsNotice/NewItemsNotice.d.ts +28 -0
  211. package/dist/NewItemsNotice/index.d.ts +3 -0
  212. package/dist/NewItemsNotice/index.js +4 -0
  213. package/dist/NewItemsNotice-T4DSSPVV.css +60 -0
  214. package/dist/OrgLabel/OrgLabel.d.ts +117 -0
  215. package/dist/OrgLabel/index.d.ts +3 -0
  216. package/dist/OrgLabel/index.js +2 -0
  217. package/dist/OrgLabel-D7U6QJZD.css +293 -0
  218. package/dist/OrgNode/OrgNode.d.ts +103 -0
  219. package/dist/OrgNode/index.d.ts +3 -0
  220. package/dist/OrgNode/index.js +3 -0
  221. package/dist/OrgNode-BT7T2Q2X.css +214 -0
  222. package/dist/OrgTable/OrgTable.d.ts +113 -0
  223. package/dist/OrgTable/index.d.ts +3 -0
  224. package/dist/OrgTable/index.js +11 -0
  225. package/dist/OrgTable-VWMFC3TB.css +360 -0
  226. package/dist/PageHeader/PageHeader.d.ts +35 -0
  227. package/dist/PageHeader/index.d.ts +3 -0
  228. package/dist/PageHeader/index.js +3 -0
  229. package/dist/PageHeader-6EYWQXRE.css +88 -0
  230. package/dist/Popover/Popover.d.ts +91 -0
  231. package/dist/Popover/index.d.ts +3 -0
  232. package/dist/Popover/index.js +4 -0
  233. package/dist/Popover-WJGCF3ZQ.css +185 -0
  234. package/dist/PricingCard/PricingCard.d.ts +56 -0
  235. package/dist/PricingCard/index.d.ts +3 -0
  236. package/dist/PricingCard/index.js +4 -0
  237. package/dist/PricingCard-JFI7RYXP.css +278 -0
  238. package/dist/Prose/Prose.d.ts +33 -0
  239. package/dist/Prose/index.d.ts +3 -0
  240. package/dist/Prose/index.js +2 -0
  241. package/dist/Prose-BTXNFT2Q.css +99 -0
  242. package/dist/RelativeTime/RelativeTime.d.ts +31 -0
  243. package/dist/RelativeTime/clock.d.ts +9 -0
  244. package/dist/RelativeTime/format.d.ts +38 -0
  245. package/dist/RelativeTime/index.d.ts +6 -0
  246. package/dist/RelativeTime/index.js +4 -0
  247. package/dist/RelativeTime-EBAQPGO2.css +10 -0
  248. package/dist/SearchTrigger/SearchTrigger.d.ts +29 -0
  249. package/dist/SearchTrigger/index.d.ts +3 -0
  250. package/dist/SearchTrigger/index.js +2 -0
  251. package/dist/SearchTrigger-QXOYAUUY.css +79 -0
  252. package/dist/Section/Section.d.ts +41 -0
  253. package/dist/Section/index.d.ts +3 -0
  254. package/dist/Section/index.js +3 -0
  255. package/dist/Section-QRUPRIQ2.css +127 -0
  256. package/dist/SegmentedControl/SegmentedControl.d.ts +68 -0
  257. package/dist/SegmentedControl/index.d.ts +4 -0
  258. package/dist/SegmentedControl/index.js +5 -0
  259. package/dist/SegmentedControl-X3BI3XU4.css +68 -0
  260. package/dist/Select/Select.d.ts +138 -0
  261. package/dist/Select/index.d.ts +3 -0
  262. package/dist/Select/index.js +5 -0
  263. package/dist/Select-2X77FSWR.css +350 -0
  264. package/dist/Shortcut/index.d.ts +2 -0
  265. package/dist/Shortcut/index.js +4 -0
  266. package/dist/Shortcut/useShortcut.d.ts +68 -0
  267. package/dist/SidebarNav/SidebarNav.d.ts +117 -0
  268. package/dist/SidebarNav/index.d.ts +3 -0
  269. package/dist/SidebarNav/index.js +3 -0
  270. package/dist/SidebarNav-QGSFKZYA.css +319 -0
  271. package/dist/Skeleton/Skeleton.d.ts +50 -0
  272. package/dist/Skeleton/index.d.ts +3 -0
  273. package/dist/Skeleton/index.js +3 -0
  274. package/dist/Skeleton-V735HRGM.css +421 -0
  275. package/dist/StatCard/StatCard.d.ts +56 -0
  276. package/dist/StatCard/index.d.ts +3 -0
  277. package/dist/StatCard/index.js +3 -0
  278. package/dist/StatCard-KYPKZUWX.css +111 -0
  279. package/dist/StatGroup/StatGroup.d.ts +20 -0
  280. package/dist/StatGroup/index.d.ts +3 -0
  281. package/dist/StatGroup/index.js +2 -0
  282. package/dist/StatGroup-TGB6AEKM.css +80 -0
  283. package/dist/StatusDot/StatusDot.d.ts +25 -0
  284. package/dist/StatusDot/index.d.ts +3 -0
  285. package/dist/StatusDot/index.js +2 -0
  286. package/dist/StatusDot-HA2L2FSX.css +84 -0
  287. package/dist/Switch/Switch.d.ts +38 -0
  288. package/dist/Switch/index.d.ts +3 -0
  289. package/dist/Switch/index.js +2 -0
  290. package/dist/Switch-U4OWK4CL.css +169 -0
  291. package/dist/Table/Table.d.ts +51 -0
  292. package/dist/Table/index.d.ts +3 -0
  293. package/dist/Table/index.js +3 -0
  294. package/dist/Table-MDOLVUAW.css +159 -0
  295. package/dist/Tabs/Tabs.d.ts +97 -0
  296. package/dist/Tabs/index.d.ts +3 -0
  297. package/dist/Tabs/index.js +4 -0
  298. package/dist/Tabs/roving.d.ts +36 -0
  299. package/dist/Tabs-VLICJFVB.css +275 -0
  300. package/dist/Tag/Tag.d.ts +107 -0
  301. package/dist/Tag/index.d.ts +3 -0
  302. package/dist/Tag/index.js +3 -0
  303. package/dist/Tag-VNZEYLB6.css +406 -0
  304. package/dist/TagGroup/TagGroup.d.ts +41 -0
  305. package/dist/TagGroup/index.d.ts +3 -0
  306. package/dist/TagGroup/index.js +4 -0
  307. package/dist/TagGroup-APC2EFH4.css +75 -0
  308. package/dist/TagsInput/TagsInput.d.ts +112 -0
  309. package/dist/TagsInput/index.d.ts +3 -0
  310. package/dist/TagsInput/index.js +10 -0
  311. package/dist/TagsInput-W4P36PRJ.css +168 -0
  312. package/dist/Text/Text.d.ts +67 -0
  313. package/dist/Text/index.d.ts +3 -0
  314. package/dist/Text/index.js +2 -0
  315. package/dist/Text-XIPYYZX2.css +154 -0
  316. package/dist/ThemeSwitcher/ThemeSwitcher.d.ts +47 -0
  317. package/dist/ThemeSwitcher/index.d.ts +4 -0
  318. package/dist/ThemeSwitcher/index.js +6 -0
  319. package/dist/ThemeSwitcher/preferences.d.ts +51 -0
  320. package/dist/TimeWindowPicker/TimeWindowPicker.d.ts +231 -0
  321. package/dist/TimeWindowPicker/index.d.ts +3 -0
  322. package/dist/TimeWindowPicker/index.js +13 -0
  323. package/dist/TimeWindowPicker/mask.d.ts +82 -0
  324. package/dist/TimeWindowPicker-7I7KWCMU.css +403 -0
  325. package/dist/Timeline/Timeline.d.ts +51 -0
  326. package/dist/Timeline/index.d.ts +3 -0
  327. package/dist/Timeline/index.js +3 -0
  328. package/dist/Timeline-27SYKOFX.css +144 -0
  329. package/dist/Toaster/Toaster.d.ts +108 -0
  330. package/dist/Toaster/index.d.ts +3 -0
  331. package/dist/Toaster/index.js +5 -0
  332. package/dist/Toaster-NVDCEIP5.css +306 -0
  333. package/dist/Toolbar/Toolbar.d.ts +62 -0
  334. package/dist/Toolbar/index.d.ts +3 -0
  335. package/dist/Toolbar/index.js +4 -0
  336. package/dist/Toolbar-IP6LXN45.css +48 -0
  337. package/dist/Tooltip/Tooltip.d.ts +51 -0
  338. package/dist/Tooltip/index.d.ts +3 -0
  339. package/dist/Tooltip/index.js +4 -0
  340. package/dist/Tooltip-LKQF7CE4.css +71 -0
  341. package/dist/Tree/index.d.ts +8 -0
  342. package/dist/Tree/index.js +1 -0
  343. package/dist/Tree/layout.d.ts +160 -0
  344. package/dist/Tree/model.d.ts +110 -0
  345. package/dist/Tree/useMeasuredSizes.d.ts +61 -0
  346. package/dist/Tree/useTreeState.d.ts +89 -0
  347. package/dist/TreeCanvas/TreeCanvas.d.ts +384 -0
  348. package/dist/TreeCanvas/index.d.ts +3 -0
  349. package/dist/TreeCanvas/index.js +10 -0
  350. package/dist/TreeCanvas/motion.d.ts +59 -0
  351. package/dist/TreeCanvas-WBNQPHC7.css +1098 -0
  352. package/dist/TreeGrid/TreeGrid.d.ts +142 -0
  353. package/dist/TreeGrid/index.d.ts +3 -0
  354. package/dist/TreeGrid/index.js +8 -0
  355. package/dist/TreeGrid-NSW7VMOX.css +132 -0
  356. package/dist/VisuallyHidden/VisuallyHidden.d.ts +23 -0
  357. package/dist/VisuallyHidden/index.d.ts +3 -0
  358. package/dist/VisuallyHidden/index.js +2 -0
  359. package/dist/VisuallyHidden-L552H7OA.css +21 -0
  360. package/dist/chunk-22O7LAW2.js +41 -0
  361. package/dist/chunk-23DHIMJA.js +38 -0
  362. package/dist/chunk-2EOKFKHX.js +263 -0
  363. package/dist/chunk-2PRH365R.js +74 -0
  364. package/dist/chunk-2ZQMA2WB.js +57 -0
  365. package/dist/chunk-3CZ7XAVY.js +139 -0
  366. package/dist/chunk-3EYF6HKB.js +135 -0
  367. package/dist/chunk-3ZP55QZE.js +40 -0
  368. package/dist/chunk-53DVJCVW.js +14 -0
  369. package/dist/chunk-5C5YMZQU.js +51 -0
  370. package/dist/chunk-5EKIWVOR.js +132 -0
  371. package/dist/chunk-5IMACPJS.js +495 -0
  372. package/dist/chunk-5KPQ6D7N.js +54 -0
  373. package/dist/chunk-5SDBMKUO.js +297 -0
  374. package/dist/chunk-5WS6L6FA.js +114 -0
  375. package/dist/chunk-7EM5T4ME.js +39 -0
  376. package/dist/chunk-7FZ53WDJ.js +163 -0
  377. package/dist/chunk-7HPRF5XN.js +525 -0
  378. package/dist/chunk-7RPGY3JE.js +43 -0
  379. package/dist/chunk-A2UXBCLO.js +48 -0
  380. package/dist/chunk-ARMRX2YV.js +96 -0
  381. package/dist/chunk-AV2DXAEL.js +27 -0
  382. package/dist/chunk-BHHIIK3M.js +17 -0
  383. package/dist/chunk-BZFWDIV6.js +9 -0
  384. package/dist/chunk-BZYDZBAN.js +123 -0
  385. package/dist/chunk-CMEE37QJ.js +628 -0
  386. package/dist/chunk-D3OADIM6.js +112 -0
  387. package/dist/chunk-DD5BBGBE.js +162 -0
  388. package/dist/chunk-EHMQQHYR.js +1652 -0
  389. package/dist/chunk-EN6K2IFA.js +256 -0
  390. package/dist/chunk-EPOOQZYA.js +118 -0
  391. package/dist/chunk-ESCO4XYW.js +144 -0
  392. package/dist/chunk-EUCC37WY.js +14 -0
  393. package/dist/chunk-EV6IMYJ6.js +62 -0
  394. package/dist/chunk-F27EPQ7D.js +68 -0
  395. package/dist/chunk-F4PJZ4ED.js +245 -0
  396. package/dist/chunk-F6OE5FH3.js +49 -0
  397. package/dist/chunk-FBZAKNSX.js +263 -0
  398. package/dist/chunk-FEFTGVMF.js +46 -0
  399. package/dist/chunk-G2QFRTJ2.js +823 -0
  400. package/dist/chunk-GHYY2WPF.js +907 -0
  401. package/dist/chunk-GTOUGQQK.js +147 -0
  402. package/dist/chunk-GUIF6Q6N.js +143 -0
  403. package/dist/chunk-GXQ3B46I.js +216 -0
  404. package/dist/chunk-H4FBTAYS.js +130 -0
  405. package/dist/chunk-HOXGBLEY.js +37 -0
  406. package/dist/chunk-HQNHV7D6.js +54 -0
  407. package/dist/chunk-HTDFCRJZ.js +92 -0
  408. package/dist/chunk-HZ5XZNPS.js +98 -0
  409. package/dist/chunk-IAJLHVUA.js +28 -0
  410. package/dist/chunk-IJ7QXNIJ.js +1 -0
  411. package/dist/chunk-ITHXJHBB.js +280 -0
  412. package/dist/chunk-JCSA3XVH.js +32 -0
  413. package/dist/chunk-KLJCCMF3.js +97 -0
  414. package/dist/chunk-LGCPQIOZ.js +49 -0
  415. package/dist/chunk-LWKJQTOM.js +77 -0
  416. package/dist/chunk-MNAXYY3R.js +215 -0
  417. package/dist/chunk-NN62JQLR.js +29 -0
  418. package/dist/chunk-NPZY6YYL.js +251 -0
  419. package/dist/chunk-NTRZGNEX.js +529 -0
  420. package/dist/chunk-O6232G37.js +273 -0
  421. package/dist/chunk-O67VF5MS.js +58 -0
  422. package/dist/chunk-ODEQTPFM.js +6 -0
  423. package/dist/chunk-PNFASD6F.js +98 -0
  424. package/dist/chunk-PQADV6P6.js +19 -0
  425. package/dist/chunk-PZSWF74H.js +15 -0
  426. package/dist/chunk-Q4ZPPART.js +26 -0
  427. package/dist/chunk-QNCVHRZL.js +17 -0
  428. package/dist/chunk-QVE4GJAT.js +15 -0
  429. package/dist/chunk-QYOFACSP.js +36 -0
  430. package/dist/chunk-RA2ULG6H.js +29 -0
  431. package/dist/chunk-RDGD7Z7I.js +350 -0
  432. package/dist/chunk-RK4XPHVG.js +16 -0
  433. package/dist/chunk-RSAQOKH3.js +38 -0
  434. package/dist/chunk-S2XHHEW4.js +84 -0
  435. package/dist/chunk-S4GZWSKR.js +137 -0
  436. package/dist/chunk-SFZOKW2G.js +52 -0
  437. package/dist/chunk-T7FKOJKW.js +221 -0
  438. package/dist/chunk-UG46QBLT.js +325 -0
  439. package/dist/chunk-UOGSZKLT.js +134 -0
  440. package/dist/chunk-V2XMNLMS.js +52 -0
  441. package/dist/chunk-V663QU4R.js +51 -0
  442. package/dist/chunk-W4ENKCXJ.js +40 -0
  443. package/dist/chunk-W5J7R5EB.js +107 -0
  444. package/dist/chunk-WNI2WSJF.js +27 -0
  445. package/dist/chunk-XDTYBF2F.js +36 -0
  446. package/dist/chunk-XN4JBAN3.js +32 -0
  447. package/dist/chunk-XV6WRMBC.js +211 -0
  448. package/dist/chunk-YLYOWZ4V.js +33 -0
  449. package/dist/chunk-YMWONFSI.js +170 -0
  450. package/dist/chunk-ZCR6YGQ4.js +1 -0
  451. package/dist/generated/index.d.ts +83 -0
  452. package/dist/generated/index.js +91 -0
  453. package/dist/index.d.ts +1 -1217
  454. package/dist/index.js +91 -4518
  455. package/dist/styles.css +14841 -4274
  456. package/dist/utils/cx.d.ts +10 -0
  457. package/dist/utils/headingLevel.d.ts +16 -0
  458. package/dist/utils/index.d.ts +6 -0
  459. package/dist/utils/index.js +4 -0
  460. package/dist/utils/tone.d.ts +25 -0
  461. package/dist/utils/useClipboard.d.ts +30 -0
  462. package/package.json +18 -10
  463. package/scripts/bundle-css.mjs +25 -0
  464. package/scripts/check-css-literals.mjs +166 -0
  465. package/scripts/check-css-variables.mjs +184 -0
  466. package/scripts/check-css.mjs +27 -0
  467. package/scripts/css-source.mjs +67 -0
  468. package/scripts/write-barrel.mjs +60 -0
  469. package/dist/Accordion-NIMJQIOI.css +0 -88
  470. package/dist/AppShell-ZW3NSFBP.css +0 -51
  471. package/dist/Avatar-V6NG6Q45.css +0 -67
  472. package/dist/Button-XGCTXXYP.css +0 -174
  473. package/dist/Callout-LEGDIMAM.css +0 -52
  474. package/dist/Card-BOZGBML7.css +0 -86
  475. package/dist/Checkbox-OCUICIIZ.css +0 -58
  476. package/dist/CodeBlock-IEMBNIQC.css +0 -90
  477. package/dist/Container-LTKBA2FW.css +0 -21
  478. package/dist/Copyable-IB57OTHZ.css +0 -123
  479. package/dist/DataTable-3GALZUW2.css +0 -1593
  480. package/dist/DateTimePicker-NMSSGVPK.css +0 -312
  481. package/dist/Eyebrow-AVBORAS2.css +0 -30
  482. package/dist/IconButton-GB4PJDG2.css +0 -82
  483. package/dist/ImageUpload-3HQDF2KC.css +0 -158
  484. package/dist/Input-ZHUTN7CU.css +0 -210
  485. package/dist/Kbd-Q77CDZY7.css +0 -23
  486. package/dist/Modal-FJVG66S4.css +0 -138
  487. package/dist/Popover-FUFULUE2.css +0 -123
  488. package/dist/PricingCard-NKYV3JHA.css +0 -238
  489. package/dist/Section-665ZIPG6.css +0 -20
  490. package/dist/Select-GPRF7PRB.css +0 -294
  491. package/dist/Skeleton-3WEFLRDN.css +0 -378
  492. package/dist/StatCard-RTJIVTRB.css +0 -50
  493. package/dist/Table-AR3TRY2E.css +0 -89
  494. package/dist/Tabs-XZ4JIH3E.css +0 -153
  495. package/dist/Tag-R5QDJLYJ.css +0 -163
  496. package/dist/TimeWindowPicker-L3G5Q7UT.css +0 -629
  497. package/dist/Toaster-2O65VOR4.css +0 -264
@@ -0,0 +1,51 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface BarDatum {
3
+ /**
4
+ * What this row is, as a stable identity. REQUIRED: a ranked list is
5
+ * re-ranked by every push, and a row keyed by its position hands the
6
+ * focused row's node to whichever series has taken that place, so a
7
+ * keyboard reader who was on "planner" finds themselves on "reviewer"
8
+ * without having moved.
9
+ */
10
+ id: string;
11
+ label: ReactNode;
12
+ /** Sorting is the caller's; the width is this. */
13
+ value: number;
14
+ /** What the number reads as: "412k", "1.2 s", "38%". Defaults to the value. */
15
+ display?: ReactNode;
16
+ /** A second line under the label. */
17
+ sub?: ReactNode;
18
+ color?: string;
19
+ /** Where the row leads. A link, wherever the destination is an address. */
20
+ href?: string;
21
+ /** What pressing the row does, where it is not a destination. */
22
+ onSelect?: () => void;
23
+ }
24
+ export interface BarListProps {
25
+ data: BarDatum[];
26
+ /** The value the longest bar stands for. Defaults to the largest present. */
27
+ max?: number;
28
+ /** How many rows to draw. The rest are counted by `moreLabel`. */
29
+ limit?: number;
30
+ /** What the tail says. It is a count, so the caller can phrase it. */
31
+ moreLabel?: (remaining: number) => ReactNode;
32
+ emptyLabel?: ReactNode;
33
+ className?: string;
34
+ }
35
+ /**
36
+ * A ranked horizontal bar list: the comparison this product asks for most.
37
+ *
38
+ * BARS ARE A FRACTION OF THE LARGEST VALUE, not of the total, because the
39
+ * question is "how does this compare with the biggest one". A total-relative
40
+ * bar makes every row of a long tail an invisible sliver of the same width.
41
+ *
42
+ * A ZERO DRAWS NOTHING. The list used to floor every bar at 1.5 percent so
43
+ * that a zero still had a sliver, which is a picture of a quantity that is
44
+ * not there: a seat that spent nothing and a seat that spent a little read
45
+ * the same. The number beside the label is what says zero.
46
+ *
47
+ * The bar is decoration. Every row carries its label and its value as text,
48
+ * so the bar adds a shape to a number that is already readable, and a reader
49
+ * who cannot see it has lost nothing.
50
+ */
51
+ export declare function BarList({ data, max, limit, moreLabel, emptyLabel, className, }: BarListProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,32 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface LegendItem {
3
+ /**
4
+ * The series this entry is for. KEYED BY ID, never by position: a legend
5
+ * beside a live chart is re-ranked on every push, and index keys hand one
6
+ * series' node to another, so the swatch a reader was looking at changes
7
+ * meaning underneath them.
8
+ */
9
+ id: string;
10
+ label: ReactNode;
11
+ /** Defaults to the series' own place in the data ramp. */
12
+ color?: string;
13
+ /** The number beside the name, where the legend doubles as the readout. */
14
+ value?: ReactNode;
15
+ }
16
+ export interface LegendProps {
17
+ items: LegendItem[];
18
+ className?: string;
19
+ }
20
+ /**
21
+ * What the colours in a chart mean.
22
+ *
23
+ * A STACKED BAR IS NEVER DRAWN WITHOUT ONE. A proportional bar with no legend
24
+ * is a picture of some numbers: the reader can see that one part is bigger
25
+ * than another and cannot learn which parts they are. The same goes for any
26
+ * mark that carries a data hue; the hue is a pointer into this list and
27
+ * nothing else.
28
+ *
29
+ * A list, and read as one, so a screen reader says how many series there are
30
+ * before it reads them.
31
+ */
32
+ export declare function Legend({ items, className }: LegendProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,38 @@
1
+ export interface StackedSegment {
2
+ /** Keyed by id, so a push that re-ranks the parts moves no other part. */
3
+ id: string;
4
+ label: string;
5
+ value: number;
6
+ color?: string;
7
+ }
8
+ export interface StackedBarProps {
9
+ segments: StackedSegment[];
10
+ /**
11
+ * How the parts are read out, for anybody who cannot see the bar. The
12
+ * default names each part and its share; a caller with a better sentence
13
+ * (units, an total worth saying) passes its own.
14
+ */
15
+ summary?: (parts: {
16
+ label: string;
17
+ value: number;
18
+ percent: number;
19
+ }[]) => string;
20
+ className?: string;
21
+ }
22
+ /**
23
+ * One whole, split into its parts.
24
+ *
25
+ * ALWAYS BESIDE ITS LEGEND. The bar carries no labels of its own, so without
26
+ * a Legend the parts are anonymous colours; pair the two, always, and key
27
+ * both from the same list.
28
+ *
29
+ * A ZERO PART IS NOT DRAWN. Every segment used to get at least two pixels so
30
+ * that it existed, which drew a phase that never ran as a thin slice of one
31
+ * that did, and made the eleven-part bar of a quiet company look busy.
32
+ *
33
+ * THE VALUES ARE IN THE MARKUP, not only in a `title`. A tooltip on a
34
+ * fragment of a bar is reachable by a mouse and by nothing else: no keyboard,
35
+ * no screen reader, no touch. The summary sentence is what a reader who
36
+ * cannot hover is left with, so it says everything the picture does.
37
+ */
38
+ export declare function StackedBar({ segments, summary, className }: StackedBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,92 @@
1
+ export interface SeriesPoint {
2
+ /** The bucket's start, epoch milliseconds. */
3
+ t: number;
4
+ v: number;
5
+ }
6
+ export interface Series {
7
+ /** Keyed by id, so a push that reorders the series moves no other one. */
8
+ id: string;
9
+ name: string;
10
+ points: readonly SeriesPoint[];
11
+ /** Defaults to the series' own place in the data ramp. */
12
+ color?: string;
13
+ }
14
+ export interface TimeSeriesProps {
15
+ series: readonly Series[];
16
+ /** The window the chart draws, epoch milliseconds. */
17
+ from: number;
18
+ to: number;
19
+ /**
20
+ * What the chart is, read in place of the picture: "tokens spent per hour".
21
+ * Required, because a picture with no name is announced as "image" and the
22
+ * reader is left to guess.
23
+ */
24
+ label: string;
25
+ /** How tall the plot is, as a CSS length. */
26
+ height?: string;
27
+ /** How a value reads out. Defaults to the reader's own locale. */
28
+ format?: (value: number) => string;
29
+ /** How an instant reads out under the plot. Defaults to the reader's locale. */
30
+ formatTime?: (at: number) => string;
31
+ /**
32
+ * The chart's own sentence, where the name is not the whole story. The
33
+ * default names the window and each series' peak, which is what the shape
34
+ * shows.
35
+ */
36
+ summary?: (facts: {
37
+ from: number;
38
+ to: number;
39
+ peak: number;
40
+ series: {
41
+ name: string;
42
+ peak: number;
43
+ }[];
44
+ }) => string;
45
+ className?: string;
46
+ }
47
+ /**
48
+ * A quantity over time, when TIME is the question.
49
+ *
50
+ * THE X DOMAIN IS THE WINDOW, NOT THE DATA. A series that covers only the last
51
+ * ten minutes of a twenty-four hour window is drawn in the last twentieth of
52
+ * the plot, never stretched across it. Stretching is how a quiet company came
53
+ * to look busy.
54
+ *
55
+ * THE PICTURE IS NOT THE ONLY COPY. The window's ends and the peak are drawn
56
+ * as text under the plot, and the summary sentence is the plot's own name, so
57
+ * a reader who cannot see it has the same facts rather than an "image".
58
+ *
59
+ * ONCE, THOUGH. The sentence was the plot's `aria-label` AND a visually
60
+ * hidden line beside it, so a screen reader read the whole of it, then the
61
+ * scale, then the whole of it again. A name is how a graphic carries its
62
+ * meaning; a second copy in the text is not a fallback, it is a repeat.
63
+ *
64
+ * The plot is hand drawn rather than taken from a charting library for one
65
+ * reason that decides it: every mark here reads tokens, in two themes, at the
66
+ * contrast floors the palette suite measures, and a library's theming surface
67
+ * is a second design system to keep in step with this one.
68
+ */
69
+ export declare function TimeSeries({ series, from, to, label, height, format, formatTime, summary, className, }: TimeSeriesProps): import("react/jsx-runtime").JSX.Element;
70
+ export interface SparklineProps {
71
+ values: readonly number[];
72
+ /** The line's colour. Defaults to the accent, which is what a trend takes. */
73
+ color?: string;
74
+ /** How tall the shape is, as a CSS length. */
75
+ height?: string;
76
+ className?: string;
77
+ }
78
+ /**
79
+ * A shape beside a number. NEVER ON ITS OWN.
80
+ *
81
+ * It has no scale, no axis and no labels, so it cannot be read without the
82
+ * figure it is captioned by: it says which way a quantity has been going, and
83
+ * the number beside it says what the quantity is. That is also why it is
84
+ * hidden from assistive technology rather than given a name of its own. A
85
+ * reader who is told "412k, sparkline" has learnt nothing the figure did not
86
+ * already say; a shape that genuinely carries a fact on its own is a
87
+ * TimeSeries, which has a window, a peak and a sentence.
88
+ *
89
+ * Fewer than two values draw nothing, and the box keeps its height, so a row
90
+ * of figures does not jump as one of them gains its second point.
91
+ */
92
+ export declare function Sparkline({ values, color, height, className }: SparklineProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The data ramp: five series and a residual, in a fixed order.
3
+ *
4
+ * FIVE, AND THEN EVERYTHING ELSE. The ramp is measured for five hues that a
5
+ * reader can tell apart from each other and from the accent under normal,
6
+ * protan and deutan vision; a sixth would have to sit between two of them,
7
+ * and the honest answer to "what colour is the eleventh series" is that
8
+ * eleven series are not a comparison anybody can read. Past the fifth, a
9
+ * series takes the residual, which is the neutral that means "the rest".
10
+ *
11
+ * A DATA HUE IS ONLY EVER USED INSIDE A CHART THAT CARRIES A LEGEND. It says
12
+ * "this series", and a mark with no legend says nothing at all. Status,
13
+ * phase and the accent have their own families for exactly that reason: a
14
+ * chart colour never means success, and never means "you are here".
15
+ */
16
+ export declare const DATA_COLORS: readonly ["var(--color-data-1)", "var(--color-data-2)", "var(--color-data-3)", "var(--color-data-4)", "var(--color-data-5)"];
17
+ /** The neutral for everything past the fifth series. */
18
+ export declare const DATA_COLOR_OTHER = "var(--color-data-other)";
19
+ /** The colour of series `index`, with everything past the fifth as the residual. */
20
+ export declare function dataColor(index: number): string;
@@ -0,0 +1,12 @@
1
+ import './Charts.css';
2
+ export { DATA_COLORS, DATA_COLOR_OTHER, dataColor } from './dataColor.js';
3
+ export { Legend } from './Legend.js';
4
+ export type { LegendItem, LegendProps } from './Legend.js';
5
+ export { BarList } from './BarList.js';
6
+ export type { BarDatum, BarListProps } from './BarList.js';
7
+ export { StackedBar } from './StackedBar.js';
8
+ export type { StackedBarProps, StackedSegment } from './StackedBar.js';
9
+ export { ActivityStrip } from './ActivityStrip.js';
10
+ export type { ActivityBucket, ActivityStripProps } from './ActivityStrip.js';
11
+ export { TimeSeries, Sparkline } from './TimeSeries.js';
12
+ export type { Series, SeriesPoint, SparklineProps, TimeSeriesProps } from './TimeSeries.js';
@@ -0,0 +1,3 @@
1
+ export { ActivityStrip, BarList, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, TimeSeries, dataColor } from '../chunk-F4PJZ4ED.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,277 @@
1
+ /* The chart kit: a legend, a ranked bar list, a stacked bar and an activity
2
+ strip. Hand-drawn rather than a charting library, for one reason that
3
+ decides it: every mark here reads tokens, in two themes, at the contrast
4
+ floors the palette suite measures, and a library's theming surface is a
5
+ second design system to keep in step with this one. */
6
+
7
+ /* ─── Legend ──────────────────────────────────────────────────── */
8
+ .crewlet-legend {
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ align-items: center;
12
+ gap: var(--spacing-1) var(--spacing-3);
13
+ margin: 0;
14
+ padding: 0;
15
+ list-style: none;
16
+ font-size: var(--font-size-xs);
17
+ color: var(--color-text-tertiary);
18
+ }
19
+
20
+ .crewlet-legend__item {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ gap: var(--spacing-1);
24
+ min-width: 0;
25
+ }
26
+
27
+ /*
28
+ * A ROUNDED SQUARE, NOT A DOT. At the smallest radius step an 8px swatch is a
29
+ * circle, and a circle in this system is a StatusDot: a legend beside a chart
30
+ * was reading as a row of live states. Half that step keeps the corner soft
31
+ * and the shape square, and it is written as half a step rather than as 2px so
32
+ * it is still a value off the scale.
33
+ */
34
+ .crewlet-legend__swatch {
35
+ width: 8px;
36
+ height: 8px;
37
+ flex: none;
38
+ border-radius: calc(var(--radius-xs) / 2);
39
+ background: var(--crewlet-legend-swatch-color, var(--color-data-other));
40
+ }
41
+
42
+ .crewlet-legend__label {
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
46
+ }
47
+
48
+ .crewlet-legend__value {
49
+ color: var(--color-text-secondary);
50
+ font-variant-numeric: tabular-nums;
51
+ }
52
+
53
+ /* ─── Bar list ────────────────────────────────────────────────── */
54
+ .crewlet-bar-list {
55
+ display: flex;
56
+ flex-direction: column;
57
+ gap: var(--spacing-2);
58
+ margin: 0;
59
+ padding: 0;
60
+ list-style: none;
61
+ }
62
+
63
+ .crewlet-bar-list__item {
64
+ min-width: 0;
65
+ }
66
+
67
+ .crewlet-bar-list__row {
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: var(--spacing-1);
71
+ width: 100%;
72
+ padding: 0;
73
+ border: none;
74
+ background: none;
75
+ color: inherit;
76
+ font: inherit;
77
+ text-align: left;
78
+ text-decoration: none;
79
+ }
80
+
81
+ .crewlet-bar-list__row--pressable {
82
+ cursor: pointer;
83
+ }
84
+
85
+ .crewlet-bar-list__row--pressable:hover .crewlet-bar-list__label {
86
+ color: var(--color-text-primary);
87
+ }
88
+
89
+ .crewlet-bar-list__row--pressable:focus-visible {
90
+ outline: 2px solid var(--color-focus);
91
+ outline-offset: 2px;
92
+ border-radius: var(--radius-xs);
93
+ }
94
+
95
+ .crewlet-bar-list__head {
96
+ display: flex;
97
+ align-items: baseline;
98
+ gap: var(--spacing-2);
99
+ min-width: 0;
100
+ }
101
+
102
+ .crewlet-bar-list__label {
103
+ flex: 1;
104
+ min-width: 0;
105
+ overflow: hidden;
106
+ text-overflow: ellipsis;
107
+ white-space: nowrap;
108
+ font-size: var(--font-size-compact);
109
+ color: var(--color-text-primary);
110
+ }
111
+
112
+ .crewlet-bar-list__value {
113
+ font-size: var(--font-size-compact);
114
+ color: var(--color-text-secondary);
115
+ /* Tabular, so a column of numbers lines up on its digits and a push that
116
+ changes one of them does not move the rest. */
117
+ font-variant-numeric: tabular-nums;
118
+ }
119
+
120
+ .crewlet-bar-list__track {
121
+ display: block;
122
+ height: 5px;
123
+ border-radius: var(--radius-pill);
124
+ background: var(--color-surface-inset);
125
+ overflow: hidden;
126
+ }
127
+
128
+ .crewlet-bar-list__bar {
129
+ display: block;
130
+ height: 100%;
131
+ border-radius: var(--radius-pill);
132
+ background: var(--crewlet-bar-list-bar-color, var(--color-data-other));
133
+ }
134
+
135
+ /*
136
+ * THE CAPTION STEP. These are sentences a reader actually reads (what a row is
137
+ * besides its name, how long the tail is, that there is nothing here at all),
138
+ * and the 11px step is the MICRO-LABEL register: it is for a word above a
139
+ * column, not for a line of prose.
140
+ */
141
+ .crewlet-bar-list__sub,
142
+ .crewlet-bar-list__more,
143
+ .crewlet-bar-list__empty {
144
+ font-size: var(--font-size-xs);
145
+ color: var(--color-text-tertiary);
146
+ }
147
+
148
+ /*
149
+ * THE SENTENCE STARTS WHERE THE BARS WOULD HAVE. It stands in for them, so it
150
+ * takes the inset the panel holding it gives every other row and none of its
151
+ * own.
152
+ *
153
+ * It carried the panel's own step for a while, which was a repair applied at
154
+ * the wrong end: the sentence was landing against a card's border because the
155
+ * CARD was drawing its content with no inset at all, and a padding here moved
156
+ * this one line while every sibling in the same card stayed against the edge.
157
+ * A card draws its own content in a body now, so a padding here is the panel's
158
+ * inset a second time.
159
+ */
160
+ .crewlet-bar-list__empty {
161
+ margin: 0;
162
+ padding: 0;
163
+ }
164
+
165
+ .crewlet-bar-list__sub {
166
+ overflow: hidden;
167
+ text-overflow: ellipsis;
168
+ white-space: nowrap;
169
+ }
170
+
171
+ /* ─── Stacked bar ─────────────────────────────────────────────── */
172
+ .crewlet-stacked-bar__track {
173
+ display: flex;
174
+ height: 6px;
175
+ border-radius: var(--radius-pill);
176
+ background: var(--color-surface-inset);
177
+ overflow: hidden;
178
+ }
179
+
180
+ .crewlet-stacked-bar__segment {
181
+ height: 100%;
182
+ background: var(--crewlet-stacked-bar-segment-color, var(--color-data-other));
183
+ }
184
+
185
+ /* ─── Activity strip ──────────────────────────────────────────── */
186
+ .crewlet-activity-strip {
187
+ display: flex;
188
+ align-items: flex-end;
189
+ gap: var(--crewlet-activity-strip-gap, 2px);
190
+ height: var(--crewlet-activity-strip-height, 26px);
191
+ width: 100%;
192
+ }
193
+
194
+ .crewlet-activity-strip__cell {
195
+ flex: 1;
196
+ min-width: var(--crewlet-activity-strip-cell-min-width, 2px);
197
+ height: var(--crewlet-activity-strip-fill, 10%);
198
+ /*
199
+ * A quarter of the smallest step. A cell is two pixels wide, so at the step
200
+ * itself every mark was a capsule and the strip read as a row of pills
201
+ * rather than as a shape.
202
+ */
203
+ border-radius: calc(var(--radius-xs) / 4);
204
+ /* An empty bucket is a neutral hairline: the bucket happened, and nothing
205
+ happened in it. That is a different fact from a quiet one, so it takes a
206
+ different colour rather than a fainter version of the same one. */
207
+ background: var(--color-border-default);
208
+ }
209
+
210
+ .crewlet-activity-strip__cell.is-active {
211
+ background: var(--color-data-1);
212
+ }
213
+
214
+ /* ─── Time series, and the sparkline beside a number ──────────── */
215
+
216
+ /*
217
+ * The plot fills the width it is given and does not clip: a line that touches
218
+ * the top of its own box is a peak, and a box that clipped it would silently
219
+ * flatten exactly the moment a reader is looking for.
220
+ */
221
+ .crewlet-time-series {
222
+ margin: 0;
223
+ min-width: 0;
224
+ }
225
+
226
+ .crewlet-chart {
227
+ display: block;
228
+ width: 100%;
229
+ overflow: visible;
230
+ }
231
+
232
+ /* The baseline: a hairline, because it is where the plot sits rather than
233
+ something to read. */
234
+ .crewlet-chart__axis-line {
235
+ stroke: var(--color-border-default);
236
+ stroke-width: 1;
237
+ }
238
+
239
+ /*
240
+ * The grid is DASHED, which is what keeps three horizontal lines from reading
241
+ * as three series. They carry no values of their own: the peak under the plot
242
+ * is the scale, and a chart this size cannot label four gridlines legibly.
243
+ */
244
+ .crewlet-chart__grid-line {
245
+ stroke: var(--color-border-default);
246
+ stroke-width: 1;
247
+ stroke-dasharray: 2 4;
248
+ }
249
+
250
+ /*
251
+ * The series line. It is painted with the colour passed on the element,
252
+ * because a series' hue is data rather than style; the shape of the stroke is
253
+ * the one thing that is the same for all of them.
254
+ */
255
+ .crewlet-chart__series {
256
+ fill: none;
257
+ stroke-width: 1.75;
258
+ stroke-linejoin: round;
259
+ stroke-linecap: round;
260
+ }
261
+
262
+ /* The window's two ends and its peak, under the plot: the scale, as words. */
263
+ .crewlet-time-series__scale {
264
+ display: flex;
265
+ justify-content: space-between;
266
+ gap: var(--spacing-2);
267
+ min-width: 0;
268
+ font-size: var(--font-size-xs);
269
+ color: var(--color-text-tertiary);
270
+ font-variant-numeric: tabular-nums;
271
+ }
272
+
273
+ .crewlet-spark {
274
+ display: block;
275
+ width: 100%;
276
+ overflow: visible;
277
+ }
@@ -0,0 +1,45 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
3
+ /**
4
+ * The label beside the box, and the box's NAME. Always present: a checkbox
5
+ * without one is only meaningful to somebody who can see what it sits next
6
+ * to.
7
+ */
8
+ label: ReactNode;
9
+ /** What ticking it does, when the label alone does not say. */
10
+ description?: ReactNode;
11
+ /** Marks the choice as one that destroys something. */
12
+ tone?: 'default' | 'danger';
13
+ /** The bordered row a dialog uses for a decision that stands on its own. */
14
+ framed?: boolean;
15
+ /**
16
+ * Neither on nor off: some of what this box stands for is ticked. It is a
17
+ * DOM property rather than an attribute, so it can only be set from script,
18
+ * which is why it is a prop here rather than something a caller can spell.
19
+ */
20
+ indeterminate?: boolean;
21
+ /** The new state, for a caller that does not want to read it off an event. */
22
+ onCheckedChange?: (checked: boolean) => void;
23
+ }
24
+ /**
25
+ * A checkbox with its sentence.
26
+ *
27
+ * THE NAME IS THE LABEL; THE DESCRIPTION DESCRIBES. Wrapping both in one
28
+ * `label` element makes the accessible name the whole paragraph, so a screen
29
+ * reader announced "Also remove the accounts Crewlet created Each agent's
30
+ * account at the vendor is deleted., checkbox" as one run-on name, with the
31
+ * consequence buried inside the thing it is a consequence of. The label span
32
+ * names the box through `aria-labelledby` and the description is pointed at
33
+ * with `aria-describedby`, which is read after the name and on request.
34
+ *
35
+ * THE WHOLE ROW IS ONE TARGET. The root is the `label`, so a press anywhere
36
+ * on the box, the words or the sentence beneath them ticks it: a 16px square
37
+ * is under every pointer-target floor there is, and the row is what makes it
38
+ * pass.
39
+ *
40
+ * A CALLER'S OWN `aria-describedby` IS MERGED, not replaced. A checkbox
41
+ * inside a FormField is described by that field's help line as well as by its
42
+ * own consequence, and a component that overwrites the attribute silently
43
+ * drops whichever sentence it did not write.
44
+ */
45
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,3 @@
1
+ import './Checkbox.css';
2
+ export { Checkbox } from './Checkbox.js';
3
+ export type { CheckboxProps } from './Checkbox.js';
@@ -0,0 +1,2 @@
1
+ export { Checkbox } from '../chunk-2PRH365R.js';
2
+ import '../chunk-ODEQTPFM.js';