@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,403 @@
1
+ /*
2
+ * TimeWindowPicker: one trigger over one panel.
3
+ *
4
+ * The trigger takes the same geometry as a Select and a DateTimePicker, so the
5
+ * three line up in a filter bar. The panel is a RAIL of named windows beside
6
+ * the calendars, rather than two tabs with one of them hidden: the windows a
7
+ * reader picks by name are the road, and the absolute range is the turning off
8
+ * it, so both are on screen at once and each shows what the other chose.
9
+ */
10
+
11
+ .crewlet-time-window {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ gap: var(--spacing-2);
15
+ width: 100%;
16
+ min-height: var(--size-control-md);
17
+ /* The side inset only: see DateTimePicker's own trigger. */
18
+ padding: 0 var(--spacing-2) 0 var(--spacing-3);
19
+ background: var(--color-surface-subtle);
20
+ border: 1px solid var(--color-border-control);
21
+ border-radius: var(--radius-md);
22
+ color: var(--color-text-primary);
23
+ font-family: inherit;
24
+ font-size: var(--font-size-compact);
25
+ text-align: left;
26
+ cursor: pointer;
27
+ transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
28
+ }
29
+
30
+ .crewlet-time-window--sm {
31
+ min-height: var(--size-control-sm);
32
+ padding: 0 var(--spacing-2);
33
+ font-size: var(--font-size-xs);
34
+ }
35
+
36
+ .crewlet-time-window:hover:not(:disabled) {
37
+ border-color: var(--color-border-hover);
38
+ }
39
+
40
+ .crewlet-time-window:focus-visible,
41
+ .crewlet-time-window.is-open {
42
+ outline: 2px solid var(--color-focus);
43
+ outline-offset: 2px;
44
+ border-color: var(--color-focus);
45
+ }
46
+
47
+ .crewlet-time-window.is-disabled,
48
+ .crewlet-time-window:disabled {
49
+ opacity: 0.55;
50
+ cursor: not-allowed;
51
+ }
52
+
53
+ /* Decoration, as every glyph that repeats what the control already says. */
54
+ svg.crewlet-time-window__icon,
55
+ svg.crewlet-time-window__chevron {
56
+ color: var(--color-text-muted);
57
+ flex-shrink: 0;
58
+ }
59
+
60
+ .crewlet-time-window__label {
61
+ flex: 1;
62
+ min-width: 0;
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ font-variant-numeric: tabular-nums;
67
+ }
68
+
69
+ .crewlet-time-window__label.is-placeholder {
70
+ color: var(--color-text-tertiary);
71
+ }
72
+
73
+ /* ─── The panel ──────────────────────────────────────────────── */
74
+
75
+ /*
76
+ * SIZED BY WHAT IS IN IT, not to a number. A calendar's width is seven control
77
+ * squares, and a control square is a different size at each density, so a panel
78
+ * pinned to one width is a panel with a hole in it at compact and a wrapped
79
+ * week at comfortable. The max-width is the only number, and it is the window's.
80
+ */
81
+ .crewlet-time-window__popover {
82
+ padding: 0;
83
+ /* A window picker is one fixed-size thing: shown whole, or not shown. */
84
+ overflow: visible;
85
+ width: max-content;
86
+ max-width: calc(100vw - var(--spacing-8));
87
+ max-height: none;
88
+ }
89
+
90
+ .crewlet-time-window__panel {
91
+ display: grid;
92
+ grid-template-columns: auto;
93
+ gap: var(--spacing-4);
94
+ padding: var(--spacing-3);
95
+ }
96
+
97
+ .crewlet-time-window__panel--both {
98
+ grid-template-columns: auto auto;
99
+ }
100
+
101
+ /* ─── The rail of named windows ──────────────────────────────── */
102
+
103
+ .crewlet-time-window__relative {
104
+ display: flex;
105
+ flex-direction: column;
106
+ gap: var(--spacing-2);
107
+ min-width: 0;
108
+ }
109
+
110
+ .crewlet-time-window__rail {
111
+ display: flex;
112
+ flex-direction: column;
113
+ gap: 1px;
114
+ }
115
+
116
+ /*
117
+ * A window on the rail is a MENU ROW, drawn the way every other row of choices
118
+ * in the package is drawn: one line, the row corner, the tick in the accent ink
119
+ * for the one that is on and the hover tint for the one under the pointer. The
120
+ * two are different facts about different rows, so they are never the same
121
+ * paint.
122
+ */
123
+ .crewlet-time-window__preset {
124
+ display: flex;
125
+ align-items: center;
126
+ gap: var(--spacing-2);
127
+ min-height: var(--size-row-sm);
128
+ padding: 0 var(--spacing-2);
129
+ background: transparent;
130
+ border: none;
131
+ border-radius: var(--radius-xs);
132
+ color: var(--color-text-secondary);
133
+ font: inherit;
134
+ font-size: var(--font-size-compact);
135
+ text-align: left;
136
+ white-space: nowrap;
137
+ cursor: pointer;
138
+ transition:
139
+ background-color var(--motion-duration-fast) var(--motion-easing-default),
140
+ color var(--motion-duration-fast) var(--motion-easing-default);
141
+ }
142
+
143
+ .crewlet-time-window__preset:hover {
144
+ background: var(--color-surface-hover);
145
+ color: var(--color-text-primary);
146
+ }
147
+
148
+ .crewlet-time-window__preset.is-active {
149
+ color: var(--color-text-primary);
150
+ font-weight: var(--font-weight-medium);
151
+ }
152
+
153
+ .crewlet-time-window__preset:focus-visible {
154
+ outline: 2px solid var(--color-focus);
155
+ /* Drawn inside: the rail is a column in a grid with a panel edge beside it,
156
+ and an outset ring on the last row is clipped by it. */
157
+ outline-offset: var(--size-focus-ring-inset-offset);
158
+ }
159
+
160
+ /* Held, rather than dropped, so the labels do not step sideways as the
161
+ choice moves down the rail. */
162
+ svg.crewlet-time-window__tick {
163
+ flex-shrink: 0;
164
+ visibility: hidden;
165
+ color: var(--color-brand-accent-ink);
166
+ }
167
+
168
+ .crewlet-time-window__preset.is-active svg.crewlet-time-window__tick {
169
+ visibility: visible;
170
+ }
171
+
172
+ .crewlet-time-window__preset-label {
173
+ min-width: 0;
174
+ overflow: hidden;
175
+ text-overflow: ellipsis;
176
+ }
177
+
178
+ .crewlet-time-window__custom {
179
+ display: flex;
180
+ flex-direction: column;
181
+ gap: var(--spacing-1);
182
+ padding-top: var(--spacing-2);
183
+ border-top: 1px solid var(--color-border-default);
184
+ }
185
+
186
+ .crewlet-time-window__custom-label {
187
+ font-size: var(--font-size-2xs);
188
+ font-weight: var(--font-weight-medium);
189
+ letter-spacing: var(--font-letter-spacing-wide);
190
+ text-transform: uppercase;
191
+ color: var(--color-text-tertiary);
192
+ }
193
+
194
+ .crewlet-time-window__custom-row {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: var(--spacing-2);
198
+ }
199
+
200
+ /* ─── The absolute range ─────────────────────────────────────── */
201
+
202
+ .crewlet-time-window__absolute {
203
+ display: flex;
204
+ flex-direction: column;
205
+ gap: var(--spacing-3);
206
+ min-width: 0;
207
+ }
208
+
209
+ .crewlet-time-window__absolute-head {
210
+ display: flex;
211
+ align-items: center;
212
+ justify-content: space-between;
213
+ gap: var(--spacing-3);
214
+ }
215
+
216
+ .crewlet-time-window__absolute-title {
217
+ font-size: var(--font-size-2xs);
218
+ font-weight: var(--font-weight-medium);
219
+ letter-spacing: var(--font-letter-spacing-wide);
220
+ text-transform: uppercase;
221
+ color: var(--color-text-tertiary);
222
+ }
223
+
224
+ .crewlet-time-window__tz {
225
+ flex: 0 0 auto;
226
+ }
227
+
228
+ .crewlet-time-window__calendars {
229
+ display: grid;
230
+ grid-template-columns: auto auto;
231
+ gap: var(--spacing-4);
232
+ }
233
+
234
+ .crewlet-time-window__calendar {
235
+ display: flex;
236
+ flex-direction: column;
237
+ gap: var(--spacing-1);
238
+ min-width: 0;
239
+ }
240
+
241
+ .crewlet-time-window__calendar-head {
242
+ display: flex;
243
+ align-items: center;
244
+ justify-content: space-between;
245
+ gap: var(--spacing-1);
246
+ }
247
+
248
+ .crewlet-time-window__calendar-title {
249
+ font-size: var(--font-size-compact);
250
+ font-weight: var(--font-weight-semibold);
251
+ color: var(--color-text-primary);
252
+ }
253
+
254
+ .crewlet-time-window__fields {
255
+ display: grid;
256
+ grid-template-columns: 1fr 1fr;
257
+ gap: var(--spacing-3);
258
+ }
259
+
260
+ .crewlet-time-window__field {
261
+ display: flex;
262
+ flex-direction: column;
263
+ gap: var(--spacing-1);
264
+ min-width: 0;
265
+ }
266
+
267
+ .crewlet-time-window__field-label {
268
+ font-size: var(--font-size-2xs);
269
+ font-weight: var(--font-weight-medium);
270
+ letter-spacing: var(--font-letter-spacing-wide);
271
+ text-transform: uppercase;
272
+ color: var(--color-text-tertiary);
273
+ }
274
+
275
+ .crewlet-time-window__field-row {
276
+ display: flex;
277
+ gap: var(--spacing-2);
278
+ }
279
+
280
+ /* ─── The masked boxes ───────────────────────────────────────── */
281
+
282
+ /*
283
+ * The value and the shape still to be filled sit side by side in one box, in
284
+ * the same mono face at the same size, so the two read as one string. The
285
+ * remainder is a PICTURE: it is aria-hidden, because a reader hearing "Y Y Y
286
+ * Y slash M M" is being read a template rather than a value.
287
+ */
288
+ .crewlet-time-window__masked {
289
+ display: inline-flex;
290
+ align-items: center;
291
+ flex: 1;
292
+ min-width: 0;
293
+ min-height: var(--size-control-sm);
294
+ padding: 0 var(--spacing-2);
295
+ background: var(--color-surface-subtle);
296
+ border: 1px solid var(--color-border-control);
297
+ border-radius: var(--radius-md);
298
+ font-family: var(--font-family-mono);
299
+ font-size: var(--font-size-compact);
300
+ font-variant-numeric: tabular-nums;
301
+ transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
302
+ }
303
+
304
+ .crewlet-time-window__masked:focus-within {
305
+ outline: 2px solid transparent;
306
+ outline-offset: 2px;
307
+ border-color: var(--color-focus);
308
+ box-shadow: var(--shadow-focus);
309
+ }
310
+
311
+ .crewlet-time-window__masked-input {
312
+ min-width: 0;
313
+ /* The `size` attribute the component sets is what holds the width open in
314
+ every engine; this narrows it to the text where it is supported. */
315
+ width: auto;
316
+ field-sizing: content;
317
+ padding: 0;
318
+ background: transparent;
319
+ border: none;
320
+ outline: none;
321
+ font: inherit;
322
+ color: var(--color-text-primary);
323
+ }
324
+
325
+ .crewlet-time-window__masked-input[aria-invalid='true'] {
326
+ color: var(--color-feedback-danger-ink);
327
+ }
328
+
329
+ .crewlet-time-window__masked-rest {
330
+ color: var(--color-text-tertiary);
331
+ pointer-events: none;
332
+ }
333
+
334
+ /* ─── The footer ─────────────────────────────────────────────── */
335
+
336
+ /*
337
+ * WHAT IS SELECTED, and what to do about it, on one line under both columns.
338
+ * The sentence is first because it is the answer to the question the panel was
339
+ * opened to ask, and the buttons are what a reader reaches for after reading
340
+ * it.
341
+ */
342
+ .crewlet-time-window__footer {
343
+ grid-column: 1 / -1;
344
+ display: flex;
345
+ align-items: center;
346
+ justify-content: space-between;
347
+ gap: var(--spacing-3);
348
+ padding-top: var(--spacing-2);
349
+ border-top: 1px solid var(--color-border-default);
350
+ }
351
+
352
+ .crewlet-time-window__summary {
353
+ flex: 1;
354
+ min-width: 0;
355
+ margin: 0;
356
+ font-size: var(--font-size-xs);
357
+ color: var(--color-text-tertiary);
358
+ font-variant-numeric: tabular-nums;
359
+ }
360
+
361
+ .crewlet-time-window__actions {
362
+ display: flex;
363
+ align-items: center;
364
+ gap: var(--spacing-2);
365
+ flex-shrink: 0;
366
+ }
367
+
368
+ /*
369
+ * One column on a narrow window: the rail over the calendars, and the two
370
+ * months stacked. The panel is as wide as its content, so without this the
371
+ * only thing a phone-sized window could do with it is clip it.
372
+ */
373
+ @media (max-width: 768px) {
374
+ .crewlet-time-window__panel--both,
375
+ .crewlet-time-window__calendars,
376
+ .crewlet-time-window__fields {
377
+ grid-template-columns: 1fr;
378
+ }
379
+
380
+ .crewlet-time-window__footer {
381
+ flex-direction: column;
382
+ align-items: flex-start;
383
+ }
384
+
385
+ /*
386
+ * One column is a tall column, and a panel taller than the window puts Apply
387
+ * below the fold of a surface the page cannot scroll: the reader can change
388
+ * the window and never commit it. So here, and only here, the panel takes
389
+ * back the scrolling every other popover in the package does.
390
+ */
391
+ .crewlet-time-window__popover {
392
+ max-height: calc(100vh - var(--spacing-10));
393
+ overflow: auto;
394
+ }
395
+ }
396
+
397
+ @media (prefers-reduced-motion: reduce) {
398
+ .crewlet-time-window,
399
+ .crewlet-time-window__masked,
400
+ .crewlet-time-window__preset {
401
+ transition: none;
402
+ }
403
+ }
@@ -0,0 +1,51 @@
1
+ import { type HTMLAttributes, type LiHTMLAttributes, type ReactNode } from 'react';
2
+ export type TimelineItemState =
3
+ /** Done, or simply past. */
4
+ 'default'
5
+ /** This step failed. */
6
+ | 'danger'
7
+ /** This step is where the work is now. */
8
+ | 'active';
9
+ export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
10
+ /**
11
+ * The word read before an item's number. "Round" makes the hidden label
12
+ * "Round 3", which is what a reader listening to a long ledger needs.
13
+ */
14
+ itemLabel?: string | undefined;
15
+ /**
16
+ * Tints every other item on the inset surface. Two steps, alternating: it
17
+ * separates adjacent blocks without claiming a meaning.
18
+ */
19
+ alternating?: boolean | undefined;
20
+ }
21
+ /**
22
+ * A numbered sequence of steps, each bracketed by its own rail.
23
+ *
24
+ * THE RAIL BRACKETS AN ITEM, it does not connect siblings. Drawn between items
25
+ * instead, a sequence of one gets no rail at all, which is the common case and
26
+ * the one a reader complained about: a bare numeral in the gutter beside a
27
+ * flat stack of look-alike rows. Bounded to its own item, every step is
28
+ * delimited and the ledger still ends where its last step's content ends.
29
+ */
30
+ export declare function Timeline({ itemLabel, alternating, className, children, ...rest }: TimelineProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare namespace Timeline {
32
+ var Item: typeof TimelineItem;
33
+ }
34
+ export interface TimelineItemProps extends LiHTMLAttributes<HTMLLIElement> {
35
+ state?: TimelineItemState | undefined;
36
+ /**
37
+ * What the node draws. The item's own number by default, which is what a
38
+ * numbered ledger wants; a glyph where the step has an identity of its own.
39
+ */
40
+ marker?: ReactNode;
41
+ /** Overrides the hidden label, for a step whose name is not its number. */
42
+ label?: string | undefined;
43
+ }
44
+ /**
45
+ * One step.
46
+ *
47
+ * Its rail runs from under the node to the bottom of THIS item's content, on
48
+ * every item including the last, so appending one changes nothing about the
49
+ * items already drawn.
50
+ */
51
+ export declare function TimelineItem({ state, marker, label, className, children, ...rest }: TimelineItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './Timeline.css';
2
+ export { Timeline, TimelineItem } from './Timeline.js';
3
+ export type { TimelineProps, TimelineItemProps, TimelineItemState } from './Timeline.js';
@@ -0,0 +1,3 @@
1
+ export { Timeline, TimelineItem } from '../chunk-O67VF5MS.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,144 @@
1
+ /*
2
+ * A numbered ledger: a node per step, a rail bracketing that step's content.
3
+ *
4
+ * TWO DEVICES, TWO JOBS. The alternating tint separates adjacent blocks; the
5
+ * rail bounds one. Drawn the other way round, as a connector strictly BETWEEN
6
+ * steps, a ledger of one step got neither, and it rendered as a bare numeral
7
+ * in the gutter beside a flat stack of look-alike rows.
8
+ */
9
+
10
+ .crewlet-timeline {
11
+ /* The node's diameter, which the rail's offset and its left edge both read
12
+ off, so moving the node is one edit rather than three. */
13
+ --crewlet-timeline-node-size: 18px;
14
+ --crewlet-timeline-pulse-period: 1.8s;
15
+ display: flex;
16
+ flex-direction: column;
17
+ margin: 0;
18
+ padding: 0;
19
+ list-style: none;
20
+ }
21
+
22
+ /*
23
+ * The block padding separates one step from the next, and it has to beat the
24
+ * gap INSIDE a step by enough to read as a different kind of boundary.
25
+ */
26
+ .crewlet-timeline__item {
27
+ display: grid;
28
+ grid-template-columns: var(--crewlet-timeline-node-size) minmax(0, 1fr);
29
+ gap: var(--spacing-2);
30
+ padding: var(--spacing-3) var(--spacing-2) var(--spacing-3) 0;
31
+ /* The well's radius, which is what every inset block on a screen is drawn
32
+ at. A step tighter here made a tinted step read as a chip. */
33
+ border-radius: var(--radius-md);
34
+ }
35
+
36
+ /*
37
+ * Two steps, alternating: enough to separate adjacent blocks, not enough to
38
+ * claim a meaning. The inset surface rather than a second grey step, because
39
+ * two adjacent surface steps are nearly the same colour in the dark theme.
40
+ */
41
+ .crewlet-timeline--alternating .crewlet-timeline__item:nth-child(even) {
42
+ background: var(--color-surface-inset);
43
+ }
44
+
45
+ .crewlet-timeline__rail {
46
+ position: relative;
47
+ display: flex;
48
+ justify-content: center;
49
+ }
50
+
51
+ .crewlet-timeline__node {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ flex: none;
56
+ position: relative;
57
+ width: var(--crewlet-timeline-node-size);
58
+ height: var(--crewlet-timeline-node-size);
59
+ margin-top: 2px;
60
+ border-radius: var(--radius-pill);
61
+ background: var(--color-surface-inset);
62
+ border: 1px solid var(--color-border-default);
63
+ color: var(--color-text-tertiary);
64
+ font-size: var(--font-size-2xs);
65
+ font-weight: var(--font-weight-medium);
66
+ font-variant-numeric: tabular-nums;
67
+ }
68
+
69
+ /*
70
+ * From just under the node to the bottom of THIS step's content, on every
71
+ * step including the last. Starting it clear of the node left a detached dash
72
+ * on a step only one row tall.
73
+ */
74
+ .crewlet-timeline__rail::after {
75
+ content: '';
76
+ position: absolute;
77
+ left: calc(50% - 1px);
78
+ top: calc(var(--crewlet-timeline-node-size) + 4px);
79
+ bottom: 0;
80
+ width: 2px;
81
+ border-radius: var(--radius-pill);
82
+ /* The default border step, not the subtle one: this line is the thing that
83
+ says which blocks are one step, and a rule a reader has to look for is not
84
+ doing that job. */
85
+ background: var(--color-border-default);
86
+ }
87
+
88
+ .crewlet-timeline__body {
89
+ display: flex;
90
+ flex-direction: column;
91
+ gap: var(--spacing-2);
92
+ min-width: 0;
93
+ }
94
+
95
+ /*
96
+ * A step that failed. The one other colour the ledger carries, and it is
97
+ * earned: scanning nine steps for where it went wrong is the actual question a
98
+ * reader brings to a stuck run.
99
+ */
100
+ .crewlet-timeline__item--danger .crewlet-timeline__node {
101
+ border-color: var(--color-feedback-danger-line);
102
+ background: var(--color-feedback-danger-soft);
103
+ color: var(--color-feedback-danger-ink);
104
+ }
105
+
106
+ /* The step in flight. The accent is the one colour that means "where it is". */
107
+ .crewlet-timeline__item--active .crewlet-timeline__node {
108
+ border-color: var(--color-brand-accent);
109
+ background: var(--color-brand-accent-soft);
110
+ color: var(--color-brand-accent-ink);
111
+ }
112
+
113
+ .crewlet-timeline__item--active .crewlet-timeline__node::before {
114
+ content: '';
115
+ position: absolute;
116
+ width: var(--crewlet-timeline-node-size);
117
+ height: var(--crewlet-timeline-node-size);
118
+ border-radius: var(--radius-pill);
119
+ border: 1px solid var(--color-brand-accent);
120
+ animation: crewlet-timeline-pulse var(--crewlet-timeline-pulse-period) var(--motion-easing-out) infinite;
121
+ }
122
+
123
+ @keyframes crewlet-timeline-pulse {
124
+ 0% {
125
+ opacity: 0.7;
126
+ transform: scale(1);
127
+ }
128
+
129
+ 100% {
130
+ opacity: 0;
131
+ transform: scale(1.9);
132
+ }
133
+ }
134
+
135
+ /*
136
+ * A live indicator that will not stop is exactly what this setting is for, so
137
+ * it stops rather than slowing. The node keeps its accent ring, so the step in
138
+ * flight is still the one that looks different.
139
+ */
140
+ @media (prefers-reduced-motion: reduce) {
141
+ .crewlet-timeline__item--active .crewlet-timeline__node::before {
142
+ animation: none;
143
+ }
144
+ }