@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,421 @@
1
+ /*
2
+ * Skeleton, the loading placeholder, in eight shapes:
3
+ * box One large rectangle with a sweeping glow, for a hero area.
4
+ * text Lines of text, with a row count and a row height.
5
+ * card One card: a title and two lines.
6
+ * grid An N by M grid of those cards.
7
+ * list Avatar and two-line rows.
8
+ * table A header and rows.
9
+ * info-grid Label and value pairs with row separators.
10
+ * pricing-card A row of cards laid out like PricingCard.Grid.
11
+ *
12
+ * Every class is namespaced under .crewlet-skeleton, so a placeholder never
13
+ * matches an application's own `.skeleton-line`.
14
+ *
15
+ * ITS GREY IS THE INSET OVERLAY, not a surface step. An overlay darkens
16
+ * whatever it is drawn on, so one value works on the page, on a card and
17
+ * inside a dialog; the elevated step it used to spell is invisible on an
18
+ * elevated surface, which is exactly where most of these sit.
19
+ *
20
+ * THE GLOW HAS ONE COLOUR, where it had five. A placeholder stands in for
21
+ * content that has not arrived, and a blue one and a red one say nothing
22
+ * different about that; each of the five was also a raw rgba outside the
23
+ * palette. It is the hover overlay sweeping across the inset one.
24
+ *
25
+ * EVERY BLOCK SWEEPS, where the small ones used to pulse. The engine draws one
26
+ * skeleton and it is a band of light travelling left to right; a block that
27
+ * fades in place beside one that sweeps reads as two different things loading
28
+ * in two different ways. The sweep is also the honest shape: it moves along
29
+ * the row the way the text will arrive, where a fade says only that something
30
+ * is happening somewhere.
31
+ */
32
+
33
+ /* ── The sweep, shared by every shimmer block ───────────────────── */
34
+ @keyframes crewlet-skeleton-sweep {
35
+ from {
36
+ background-position: 100% 50%;
37
+ }
38
+
39
+ to {
40
+ background-position: 0 50%;
41
+ }
42
+ }
43
+
44
+ /*
45
+ * The gradient is four times the box, so the lit band crosses it rather than
46
+ * standing still inside it. The two stops are the inset overlay and the hover
47
+ * one, which composite onto whatever the block is drawn on: one value works on
48
+ * the page, on a card and inside a dialog.
49
+ */
50
+ .crewlet-skeleton .crewlet-skeleton__line,
51
+ .crewlet-skeleton .crewlet-skeleton__avatar,
52
+ .crewlet-skeleton .crewlet-skeleton__circle,
53
+ .crewlet-skeleton .crewlet-skeleton__button {
54
+ background: linear-gradient(
55
+ 90deg,
56
+ var(--color-surface-inset) 25%,
57
+ var(--color-surface-hover) 37%,
58
+ var(--color-surface-inset) 63%
59
+ );
60
+ background-size: 400% 100%;
61
+ /* Five of the slow step: 1.5s, which is the engine's own sweep to within a
62
+ tenth of a second and the nearest the scale comes to it. */
63
+ animation: crewlet-skeleton-sweep calc(var(--motion-duration-slow) * 5) var(--motion-easing-in-out) infinite;
64
+ }
65
+
66
+ /* ── Primitives: line, avatar, circle, button ───────────────────── */
67
+ .crewlet-skeleton__line {
68
+ height: 12px;
69
+ border-radius: var(--radius-xs);
70
+ margin-bottom: var(--spacing-2);
71
+ }
72
+
73
+ .crewlet-skeleton__line:last-child {
74
+ margin-bottom: 0;
75
+ }
76
+
77
+ .crewlet-skeleton__line--title { height: 16px; width: 60%; margin-bottom: var(--spacing-3); }
78
+ .crewlet-skeleton__line--text { height: 12px; width: 100%; }
79
+ .crewlet-skeleton__line--short { width: 70%; }
80
+ .crewlet-skeleton__line--label { height: 13px; width: 40%; margin-bottom: var(--spacing-2); }
81
+ .crewlet-skeleton__line--value { height: 14px; width: 80%; }
82
+
83
+ .crewlet-skeleton__avatar {
84
+ width: 40px;
85
+ height: 40px;
86
+ border-radius: var(--radius-circle);
87
+ flex-shrink: 0;
88
+ }
89
+
90
+ .crewlet-skeleton__circle {
91
+ width: 24px;
92
+ height: 24px;
93
+ border-radius: var(--radius-circle);
94
+ flex-shrink: 0;
95
+ }
96
+
97
+ .crewlet-skeleton__circle--small {
98
+ width: 16px;
99
+ height: 16px;
100
+ }
101
+
102
+ .crewlet-skeleton__button {
103
+ width: 100%;
104
+ height: 36px;
105
+ border-radius: var(--radius-md);
106
+ }
107
+
108
+ /* ── card / grid / list containers ──────────────────────────────── */
109
+ .crewlet-skeleton--card {
110
+ background: var(--color-surface-subtle);
111
+ border: 1px solid var(--color-border-default);
112
+ border-radius: var(--radius-lg);
113
+ padding: var(--spacing-6);
114
+ }
115
+
116
+ /*
117
+ * grid and info-grid read their column count from --crewlet-skeleton-cols,
118
+ * set by the --cols-N modifier the component adds and lowered by the
119
+ * responsive rules at the end of this file.
120
+ */
121
+ .crewlet-skeleton--cols-1 { --crewlet-skeleton-cols: 1; }
122
+ .crewlet-skeleton--cols-2 { --crewlet-skeleton-cols: 2; }
123
+ .crewlet-skeleton--cols-3 { --crewlet-skeleton-cols: 3; }
124
+ .crewlet-skeleton--cols-4 { --crewlet-skeleton-cols: 4; }
125
+
126
+ .crewlet-skeleton--grid {
127
+ display: grid;
128
+ grid-template-columns: repeat(var(--crewlet-skeleton-cols, 1), 1fr);
129
+ gap: var(--spacing-4);
130
+ width: 100%;
131
+ }
132
+
133
+ .crewlet-skeleton__card {
134
+ background: var(--color-surface-subtle);
135
+ border: 1px solid var(--color-border-default);
136
+ border-radius: var(--radius-lg);
137
+ padding: var(--spacing-5);
138
+ }
139
+
140
+ .crewlet-skeleton--list {
141
+ display: flex;
142
+ flex-direction: column;
143
+ gap: var(--spacing-3);
144
+ width: 100%;
145
+ }
146
+
147
+ .crewlet-skeleton__list-item {
148
+ display: flex;
149
+ align-items: center;
150
+ gap: var(--spacing-4);
151
+ padding: var(--spacing-3);
152
+ background: var(--color-surface-subtle);
153
+ border: 1px solid var(--color-border-default);
154
+ border-radius: var(--radius-md);
155
+ }
156
+
157
+ .crewlet-skeleton__list-content {
158
+ flex: 1;
159
+ min-width: 0;
160
+ }
161
+
162
+ /* ── table ──────────────────────────────────────────────────────── */
163
+ .crewlet-skeleton--table {
164
+ width: 100%;
165
+ position: relative;
166
+ overflow-x: auto;
167
+ }
168
+
169
+ .crewlet-skeleton__table {
170
+ width: 100%;
171
+ border-collapse: collapse;
172
+ background: transparent;
173
+ display: table;
174
+ table-layout: auto;
175
+ }
176
+
177
+ .crewlet-skeleton__table thead {
178
+ border-bottom: 1px solid var(--color-border-default);
179
+ display: table-header-group;
180
+ }
181
+
182
+ .crewlet-skeleton__table tbody { display: table-row-group; }
183
+ .crewlet-skeleton__table tr { display: table-row; }
184
+
185
+ .crewlet-skeleton__th {
186
+ padding: 2px var(--spacing-4);
187
+ text-align: left;
188
+ position: relative;
189
+ display: table-cell;
190
+ white-space: nowrap;
191
+ vertical-align: middle;
192
+ }
193
+
194
+ .crewlet-skeleton__th .crewlet-skeleton__line {
195
+ height: 14px;
196
+ width: 60%;
197
+ margin: 0;
198
+ display: inline-block;
199
+ transform: translateY(-4px);
200
+ }
201
+
202
+ .crewlet-skeleton__th:first-child .crewlet-skeleton__line { width: 70%; }
203
+ .crewlet-skeleton__th:last-child .crewlet-skeleton__line { width: 40%; }
204
+
205
+ .crewlet-skeleton__tr {
206
+ background: var(--color-surface-subtle);
207
+ border-bottom: 1px solid var(--color-border-default);
208
+ display: table-row;
209
+ }
210
+
211
+ .crewlet-skeleton__td {
212
+ padding: var(--spacing-3) var(--spacing-4);
213
+ display: table-cell;
214
+ text-align: left;
215
+ vertical-align: middle;
216
+ white-space: nowrap;
217
+ }
218
+
219
+ .crewlet-skeleton__td .crewlet-skeleton__line {
220
+ height: 8px;
221
+ width: auto;
222
+ min-width: 80px;
223
+ margin: 0;
224
+ border-radius: var(--radius-xs);
225
+ }
226
+
227
+ .crewlet-skeleton__td:first-child .crewlet-skeleton__line { min-width: 200px; }
228
+ .crewlet-skeleton__td:last-child .crewlet-skeleton__line { min-width: 60px; width: 60px; }
229
+
230
+ /* ── info-grid (label and value pairs with row separators) ──────── */
231
+ .crewlet-skeleton--info-grid {
232
+ --crewlet-skeleton-row-gap: var(--spacing-7);
233
+ --crewlet-skeleton-col-gap: var(--spacing-9);
234
+ display: grid;
235
+ grid-template-columns: repeat(var(--crewlet-skeleton-cols, 1), 1fr);
236
+ gap: var(--crewlet-skeleton-row-gap) var(--crewlet-skeleton-col-gap);
237
+ width: 100%;
238
+ }
239
+
240
+ .crewlet-skeleton__info-item {
241
+ display: flex;
242
+ flex-direction: column;
243
+ gap: var(--spacing-2);
244
+ position: relative;
245
+ }
246
+
247
+ /*
248
+ * A separator centred in the row gap above the first item of every row after
249
+ * the first, drawn across the whole row: the item's own width times the column
250
+ * count, plus the column gaps between them. The row-start selectors are
251
+ * wrapped in :where() so every rule here shares one specificity and the
252
+ * responsive overrides win by source order.
253
+ */
254
+ .crewlet-skeleton__info-item::before {
255
+ content: '';
256
+ position: absolute;
257
+ left: 0;
258
+ top: calc(var(--crewlet-skeleton-row-gap) / -2);
259
+ width: calc(
260
+ 100% * var(--crewlet-skeleton-cols, 1) + var(--crewlet-skeleton-col-gap) * (var(--crewlet-skeleton-cols, 1) - 1)
261
+ );
262
+ height: 1px;
263
+ background: var(--color-border-default);
264
+ display: none;
265
+ }
266
+
267
+ :where(.crewlet-skeleton--cols-1) > .crewlet-skeleton__info-item:where(:nth-child(n + 2))::before,
268
+ :where(.crewlet-skeleton--cols-2) > .crewlet-skeleton__info-item:where(:nth-child(2n + 1):nth-child(n + 3))::before,
269
+ :where(.crewlet-skeleton--cols-3) > .crewlet-skeleton__info-item:where(:nth-child(3n + 1):nth-child(n + 4))::before,
270
+ :where(.crewlet-skeleton--cols-4) > .crewlet-skeleton__info-item:where(:nth-child(4n + 1):nth-child(n + 5))::before {
271
+ display: block;
272
+ }
273
+
274
+ /* ── pricing-card (mirrors PricingCard.Grid and the card surface) ── */
275
+ .crewlet-skeleton--pricing-card {
276
+ display: grid;
277
+ grid-template-columns: repeat(4, minmax(0, 1fr));
278
+ gap: var(--spacing-3);
279
+ align-items: stretch;
280
+ width: 100%;
281
+ }
282
+
283
+ .crewlet-skeleton__pricing-card {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: var(--spacing-3);
287
+ min-width: 0;
288
+ padding: var(--spacing-4);
289
+ background: var(--color-surface-subtle);
290
+ border: 1px solid var(--color-border-default);
291
+ border-radius: var(--radius-lg);
292
+ }
293
+
294
+ .crewlet-skeleton__pricing-card-header {
295
+ display: flex;
296
+ align-items: center;
297
+ gap: var(--spacing-2);
298
+ }
299
+
300
+ .crewlet-skeleton__pricing-card-description {
301
+ display: flex;
302
+ flex-direction: column;
303
+ }
304
+
305
+ .crewlet-skeleton__pricing-card-features {
306
+ display: flex;
307
+ flex-direction: column;
308
+ gap: var(--spacing-2);
309
+ }
310
+
311
+ .crewlet-skeleton__pricing-card-feature {
312
+ display: flex;
313
+ align-items: center;
314
+ gap: var(--spacing-2);
315
+ }
316
+
317
+ .crewlet-skeleton__line--heading { width: 80px; height: 16px; margin: 0; }
318
+ .crewlet-skeleton__line--wide { width: 90%; }
319
+ .crewlet-skeleton__line--three-quarter { width: 75%; }
320
+ .crewlet-skeleton__line--feature { width: 60px; height: 12px; margin: 0; }
321
+
322
+ /* ── Box variant: the hero shimmer ──────────────────────────────── */
323
+ .crewlet-skeleton--box {
324
+ width: 100%;
325
+ padding: 0;
326
+ }
327
+
328
+ .crewlet-skeleton__glow-box {
329
+ width: 100%;
330
+ background: var(--color-surface-inset);
331
+ border: 1px solid var(--color-border-default);
332
+ position: relative;
333
+ overflow: hidden;
334
+ }
335
+
336
+ .crewlet-skeleton__glow-wave {
337
+ position: absolute;
338
+ top: 0;
339
+ left: -100%;
340
+ width: 100%;
341
+ height: 100%;
342
+ background: linear-gradient(90deg, transparent, var(--color-surface-hover), transparent);
343
+ animation: crewlet-skeleton-wave calc(var(--motion-duration-slow) * 5) var(--motion-easing-in-out) infinite;
344
+ }
345
+
346
+ @keyframes crewlet-skeleton-wave {
347
+ 0% {
348
+ left: -100%;
349
+ }
350
+
351
+ 100% {
352
+ left: 100%;
353
+ }
354
+ }
355
+
356
+ /* ── responsive ─────────────────────────────────────────────────── */
357
+ @media (max-width: 1200px) {
358
+ .crewlet-skeleton--pricing-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
359
+ .crewlet-skeleton--grid.crewlet-skeleton--cols-4 { --crewlet-skeleton-cols: 2; }
360
+
361
+ .crewlet-skeleton--info-grid.crewlet-skeleton--cols-4 {
362
+ --crewlet-skeleton-cols: 2;
363
+ --crewlet-skeleton-row-gap: var(--spacing-6);
364
+ --crewlet-skeleton-col-gap: var(--spacing-7);
365
+ }
366
+
367
+ :where(.crewlet-skeleton--cols-4) > .crewlet-skeleton__info-item::before { display: none; }
368
+
369
+ :where(.crewlet-skeleton--cols-4) > .crewlet-skeleton__info-item:where(:nth-child(2n + 1):nth-child(n + 3))::before {
370
+ display: block;
371
+ }
372
+ }
373
+
374
+ @media (max-width: 768px) {
375
+ .crewlet-skeleton--pricing-card { grid-template-columns: minmax(0, 1fr); }
376
+
377
+ .crewlet-skeleton--grid.crewlet-skeleton--cols-2,
378
+ .crewlet-skeleton--grid.crewlet-skeleton--cols-3,
379
+ .crewlet-skeleton--grid.crewlet-skeleton--cols-4 { --crewlet-skeleton-cols: 1; }
380
+
381
+ .crewlet-skeleton--info-grid.crewlet-skeleton--cols-2,
382
+ .crewlet-skeleton--info-grid.crewlet-skeleton--cols-3,
383
+ .crewlet-skeleton--info-grid.crewlet-skeleton--cols-4 {
384
+ --crewlet-skeleton-cols: 1;
385
+ --crewlet-skeleton-row-gap: var(--spacing-5);
386
+ }
387
+
388
+ .crewlet-skeleton__info-item::before { display: none; }
389
+ .crewlet-skeleton__info-item:where(:nth-child(n + 2))::before { display: block; }
390
+
391
+ .crewlet-skeleton--card,
392
+ .crewlet-skeleton__card { padding: var(--spacing-4); }
393
+ }
394
+
395
+ /*
396
+ * A placeholder that cannot move is still a placeholder: it keeps its shape,
397
+ * its grey and its position, so the page still says how much is coming and
398
+ * still does not jump when it arrives.
399
+ */
400
+ @media (prefers-reduced-motion: reduce) {
401
+ .crewlet-skeleton .crewlet-skeleton__line,
402
+ .crewlet-skeleton .crewlet-skeleton__avatar,
403
+ .crewlet-skeleton .crewlet-skeleton__circle,
404
+ .crewlet-skeleton .crewlet-skeleton__button,
405
+ .crewlet-skeleton__glow-wave {
406
+ animation: none;
407
+ }
408
+
409
+ /* Held still ON the inset step rather than wherever the sweep stopped: a
410
+ gradient frozen mid-travel is a block with a bright stripe down it. */
411
+ .crewlet-skeleton .crewlet-skeleton__line,
412
+ .crewlet-skeleton .crewlet-skeleton__avatar,
413
+ .crewlet-skeleton .crewlet-skeleton__circle,
414
+ .crewlet-skeleton .crewlet-skeleton__button {
415
+ background: var(--color-surface-inset);
416
+ }
417
+
418
+ .crewlet-skeleton__glow-wave {
419
+ display: none;
420
+ }
421
+ }
@@ -0,0 +1,56 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * The STATE this number is in, when it has one.
4
+ *
5
+ * DELIBERATELY ABSENT FROM MOST STATS. Colour carries state and never
6
+ * identity, and a token count or an elapsed time is not in a state: tinting
7
+ * every tile would spend the four status hues on decoration and leave the one
8
+ * tile that means something indistinguishable from its neighbours. Use it
9
+ * where the value IS an outcome, such as a turn's decision or a probe's
10
+ * verdict, and nowhere else.
11
+ *
12
+ * There is no `brand` here. The accent means "where the reader is", and a
13
+ * number is never that.
14
+ */
15
+ export type StatCardTone = 'neutral' | 'success' | 'warning' | 'danger' | 'info';
16
+ export interface StatCardProps extends HTMLAttributes<HTMLDivElement> {
17
+ /** What is being counted, for example "Total tokens". */
18
+ label: ReactNode;
19
+ /** The headline value, already formatted by the caller. */
20
+ value: ReactNode;
21
+ /** A unit after the value, at a quieter weight: "ms", "/ 20K", "per turn". */
22
+ unit?: ReactNode;
23
+ /** A second line under the label: "3 working, 4 idle". Its line is reserved either way. */
24
+ sub?: ReactNode;
25
+ /** A glyph before the label. A component, not a name. */
26
+ icon?: ReactNode;
27
+ /** Colours the VALUE's ink. See the type for when that is right. */
28
+ tone?: StatCardTone;
29
+ /** The value has not arrived. Draws a placeholder and marks the tile busy. */
30
+ loading?: boolean;
31
+ /** What a reader is told while it is loading. */
32
+ loadingLabel?: string;
33
+ /**
34
+ * Drop the tile's own surface, border and radius, so a StatGroup can draw
35
+ * one card around the row and hairlines between the tiles inside it.
36
+ */
37
+ flush?: boolean;
38
+ }
39
+ /**
40
+ * One number, with what it counts.
41
+ *
42
+ * THE LABEL SITS ABOVE THE VALUE, in the micro-caps register, which is the
43
+ * engine's order and the one a board is actually read in: the labels are what
44
+ * a reader scans to find the tile they want, and the number is the answer
45
+ * underneath it. It is also the order a screen reader reads correctly, "live
46
+ * nodes, four, holding an unexpired lease" rather than "four, live nodes".
47
+ * The numbers still sit on one line across the row, because the label register
48
+ * is one line at every tile and the value box is a fixed step.
49
+ *
50
+ * WHILE IT IS LOADING IT SAYS SO. It used to draw a literal `--`, which a
51
+ * screen reader reads aloud as "dash dash" and which looks exactly like a
52
+ * measured value of nothing. A placeholder line plus `aria-busy` on the tile
53
+ * says the number has not arrived, which is a different fact from the number
54
+ * being zero.
55
+ */
56
+ export declare const StatCard: ({ label, value, unit, sub, icon, tone, loading, loadingLabel, flush, className, ...rest }: StatCardProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './StatCard.css';
2
+ export { StatCard } from './StatCard.js';
3
+ export type { StatCardProps, StatCardTone } from './StatCard.js';
@@ -0,0 +1,3 @@
1
+ export { StatCard } from '../chunk-22O7LAW2.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,111 @@
1
+ /*
2
+ * The stat tile.
3
+ *
4
+ * THE TONE PAINTS THE VALUE, which is what the props always said and what the
5
+ * stylesheet never did: 0.2.0 tinted the ICON, so a caller who passed a tone
6
+ * and no icon got a tile identical to a neutral one. Ink only, and never a
7
+ * fill: a tinted block behind a 24px number reads as a button.
8
+ */
9
+
10
+ .crewlet-statcard {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--spacing-1);
14
+ padding: var(--spacing-3) var(--spacing-4);
15
+ /* The panel recipe: the surface, the hairline, the 12px corner and the
16
+ elevation the engine gives every card on a screen, so a lone tile is the
17
+ same object as the panel beside it rather than a flatter cousin. */
18
+ background: var(--color-surface-subtle);
19
+ border: 1px solid var(--color-border-default);
20
+ border-radius: var(--radius-lg);
21
+ box-shadow: var(--shadow-xs), var(--shadow-hairline);
22
+ color: var(--color-text-primary);
23
+ font-family: var(--font-family-sans);
24
+ min-width: 0;
25
+ }
26
+
27
+ /* Inside a StatGroup the row is one card and the tiles are its columns, so a
28
+ tile brings no surface of its own. */
29
+ .crewlet-statcard--flush {
30
+ background: transparent;
31
+ border: 0;
32
+ border-radius: var(--radius-none);
33
+ box-shadow: none;
34
+ }
35
+
36
+ .crewlet-statcard__value {
37
+ display: flex;
38
+ align-items: baseline;
39
+ gap: var(--spacing-2);
40
+ min-width: 0;
41
+ font-size: var(--font-size-2xl);
42
+ font-weight: var(--font-weight-semibold);
43
+ letter-spacing: var(--font-letter-spacing-tight);
44
+ /* 1.1, the engine's, which is tighter than the tight step: a 24px number
45
+ with 1.2 of leading sits low in its box and opens a gap between the value
46
+ and the line under it that the 4px gap was already spending. */
47
+ line-height: 1.1;
48
+ /* A number that ticks up must not move the label under it. */
49
+ font-variant-numeric: tabular-nums;
50
+ overflow: hidden;
51
+ text-overflow: ellipsis;
52
+ white-space: nowrap;
53
+ }
54
+
55
+ .crewlet-statcard__unit {
56
+ font-size: var(--font-size-sm);
57
+ font-weight: var(--font-weight-regular);
58
+ letter-spacing: var(--font-letter-spacing-normal);
59
+ color: var(--color-text-tertiary);
60
+ }
61
+
62
+ /*
63
+ * The placeholder is a line, not a pair of dashes. `--` is read aloud as
64
+ * "dash dash" and looks exactly like a measured value of nothing; the tile
65
+ * carries aria-busy instead, and the line says the number is on its way.
66
+ */
67
+ .crewlet-statcard__placeholder {
68
+ display: inline-block;
69
+ width: 3ch;
70
+ height: 0.7em;
71
+ border-radius: var(--radius-xs);
72
+ background: var(--color-surface-inset);
73
+ }
74
+
75
+ .crewlet-statcard__label {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: var(--spacing-1);
79
+ font-size: var(--font-size-2xs);
80
+ font-weight: var(--font-weight-medium);
81
+ letter-spacing: var(--font-letter-spacing-wide);
82
+ text-transform: uppercase;
83
+ color: var(--color-text-tertiary);
84
+ min-width: 0;
85
+ }
86
+
87
+ .crewlet-statcard__icon {
88
+ display: inline-flex;
89
+ flex: none;
90
+ }
91
+
92
+ /*
93
+ * The second line keeps its space whether or not there is one, so a row of
94
+ * tiles where only some carry a sub still sits on one baseline.
95
+ */
96
+ .crewlet-statcard__sub {
97
+ min-height: 1.2em;
98
+ font-size: var(--font-size-xs);
99
+ /* The quiet step, with the label. The sub qualifies the number rather than
100
+ being a second one, and the engine keeps both of them a step under the
101
+ value they belong to. */
102
+ color: var(--color-text-tertiary);
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ }
107
+
108
+ .crewlet-statcard--success .crewlet-statcard__value { color: var(--color-feedback-success-ink); }
109
+ .crewlet-statcard--warning .crewlet-statcard__value { color: var(--color-feedback-warning-ink); }
110
+ .crewlet-statcard--danger .crewlet-statcard__value { color: var(--color-feedback-danger-ink); }
111
+ .crewlet-statcard--info .crewlet-statcard__value { color: var(--color-feedback-info-ink); }
@@ -0,0 +1,20 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface StatGroupProps extends HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * How many tiles a row holds. FIXED, and that is the whole point: the board
5
+ * this replaces reflowed from one column to three as tiles appeared and
6
+ * vanished, which moved every number on the page for a reason that had
7
+ * nothing to do with the numbers.
8
+ */
9
+ columns?: 2 | 3 | 4;
10
+ children?: ReactNode;
11
+ }
12
+ /**
13
+ * A row of stat tiles, as one card.
14
+ *
15
+ * The tiles inside it are `flush`, so the group draws the surface and the
16
+ * hairlines between them rather than four separate cards with gaps. Under the
17
+ * md breakpoint it drops to two columns, which is the last count at which a
18
+ * six-character number still fits on one line of a phone.
19
+ */
20
+ export declare function StatGroup({ columns, className, children, ...rest }: StatGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './StatGroup.css';
2
+ export { StatGroup } from './StatGroup.js';
3
+ export type { StatGroupProps } from './StatGroup.js';
@@ -0,0 +1,2 @@
1
+ export { StatGroup } from '../chunk-QNCVHRZL.js';
2
+ import '../chunk-ODEQTPFM.js';