@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,176 @@
1
+ /*
2
+ * The disclosure anatomy, declared once for every expander in the package.
3
+ *
4
+ * THE TRIGGER AND THE SECTION'S CONTROLS ARE SIBLINGS. A copy button nested
5
+ * inside the trigger would be a button inside a button, which is invalid, and
6
+ * worse, pressing it would collapse the very thing it just copied. The bar is
7
+ * what puts them side by side, and `width: auto` on the trigger is load
8
+ * bearing: it overrides the standalone case's `width: 100%`, which inside this
9
+ * row would claim the whole line and push the controls onto one of their own.
10
+ */
11
+
12
+ .crewlet-disclosure {
13
+ min-width: 0;
14
+ }
15
+
16
+ .crewlet-disclosure__bar {
17
+ display: flex;
18
+ align-items: center;
19
+ gap: var(--spacing-1);
20
+ min-width: 0;
21
+ }
22
+
23
+ .crewlet-disclosure__heading {
24
+ margin: 0;
25
+ font: inherit;
26
+ flex: 1;
27
+ min-width: 0;
28
+ }
29
+
30
+ /*
31
+ * The expander head the dashboard draws: the caption size, the chevron a step
32
+ * closer to the words than the words are to each other, and the whole row on
33
+ * the secondary step until a pointer reaches it. `--size-row-sm` is the one
34
+ * addition, and it is not decoration: a 12px row with 4px of padding is a
35
+ * 20px target, under the 24px WCAG 2.2 accepts, so the row keeps the floor
36
+ * every other control in the package keeps.
37
+ */
38
+ .crewlet-disclosure__trigger {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: var(--spacing-1);
42
+ width: 100%;
43
+ min-width: 0;
44
+ min-height: var(--size-row-sm);
45
+ padding: var(--spacing-1) var(--spacing-2);
46
+ border: none;
47
+ border-radius: var(--radius-xs);
48
+ background: none;
49
+ color: var(--color-text-secondary);
50
+ font: inherit;
51
+ font-size: var(--font-size-xs);
52
+ text-align: left;
53
+ cursor: pointer;
54
+ transition:
55
+ color var(--motion-duration-fast) var(--motion-easing-default),
56
+ background var(--motion-duration-fast) var(--motion-easing-default);
57
+ }
58
+
59
+ .crewlet-disclosure__bar > .crewlet-disclosure__trigger {
60
+ flex: 1;
61
+ width: auto;
62
+ }
63
+
64
+ /*
65
+ * NEUTRAL on hover, not the accent. The accent is the one colour that means
66
+ * "where the reader is"; spending it on every expander a pointer passes over
67
+ * makes it mean "under the cursor" instead.
68
+ */
69
+ .crewlet-disclosure__trigger:hover {
70
+ color: var(--color-text-primary);
71
+ background: var(--color-surface-hover);
72
+ }
73
+
74
+ .crewlet-disclosure__trigger:focus-visible {
75
+ outline: 2px solid var(--color-focus);
76
+ outline-offset: var(--size-focus-ring-inset-offset);
77
+ }
78
+
79
+ .crewlet-disclosure__trigger:disabled {
80
+ cursor: not-allowed;
81
+ /* Quieter, but still legible: a disabled row a reader cannot read is a row
82
+ they cannot learn is unavailable. */
83
+ color: var(--color-text-tertiary);
84
+ }
85
+
86
+ .crewlet-disclosure__trigger:disabled:hover {
87
+ background: none;
88
+ }
89
+
90
+ /*
91
+ * ONE glyph, turned. Two drawings (a right chevron closed, a down one open)
92
+ * swap shapes at the moment of the change, so the control reads as two
93
+ * different controls rather than as one that moved.
94
+ */
95
+ .crewlet-disclosure__chevron {
96
+ flex: none;
97
+ color: var(--color-text-tertiary);
98
+ transform: rotate(-90deg);
99
+ transition: transform var(--motion-duration-base) var(--motion-easing-out);
100
+ }
101
+
102
+ .crewlet-disclosure__trigger[aria-expanded='true'] .crewlet-disclosure__chevron {
103
+ transform: rotate(0deg);
104
+ }
105
+
106
+ .crewlet-disclosure__title {
107
+ min-width: 0;
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ }
112
+
113
+ .crewlet-disclosure__title--mono {
114
+ font-family: var(--font-family-mono);
115
+ font-variant-ligatures: none;
116
+ }
117
+
118
+ /* A fact inside the button: quieter than the title it belongs to. */
119
+ .crewlet-disclosure__meta {
120
+ flex: none;
121
+ color: var(--color-text-tertiary);
122
+ font-size: var(--font-size-xs);
123
+ }
124
+
125
+ .crewlet-disclosure__actions {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: var(--spacing-1);
129
+ flex: none;
130
+ }
131
+
132
+ .crewlet-disclosure__panel {
133
+ display: flex;
134
+ flex-direction: column;
135
+ gap: var(--spacing-2);
136
+ padding: var(--spacing-2);
137
+ color: var(--color-text-secondary);
138
+ }
139
+
140
+ /* ---- Sizes and variants ------------------------------------------------ */
141
+
142
+ /*
143
+ * ONLY THE PANEL. The trigger's compact register was one size down and one gap
144
+ * in; both are what the standalone trigger is now set at, so a second rule
145
+ * restating them would be a rule that can only ever drift from the first.
146
+ */
147
+ .crewlet-disclosure--compact .crewlet-disclosure__panel {
148
+ gap: var(--spacing-1);
149
+ padding: var(--spacing-1) var(--spacing-2);
150
+ }
151
+
152
+ /*
153
+ * An aside: what was considered, not what was decided. The rule down its edge
154
+ * is what lets a reader skip the block by its shape.
155
+ */
156
+ .crewlet-disclosure--aside .crewlet-disclosure__trigger {
157
+ color: var(--color-text-tertiary);
158
+ }
159
+
160
+ /*
161
+ * The hover step rather than the strong one. This rule is a margin down the
162
+ * side of an aside, not a boundary a reader has to find: at the strong step it
163
+ * reads as a second border inside the card it sits in.
164
+ */
165
+ .crewlet-disclosure--aside .crewlet-disclosure__panel {
166
+ border-left: 2px solid var(--color-border-hover);
167
+ margin-left: var(--spacing-1);
168
+ padding-left: var(--spacing-3);
169
+ }
170
+
171
+ @media (prefers-reduced-motion: reduce) {
172
+ .crewlet-disclosure__trigger,
173
+ .crewlet-disclosure__chevron {
174
+ transition: none;
175
+ }
176
+ }
@@ -0,0 +1,39 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ import { type HeadingLevel } from '../utils/headingLevel.js';
3
+ export type EmptyStateSize = 'default' | 'compact';
4
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
5
+ /** A glyph, drawn large and quiet. Replaced by `illustration` when both are given. */
6
+ icon?: ReactNode;
7
+ /** A full drawing, where a glyph is too small to carry the moment: a first run. */
8
+ illustration?: ReactNode;
9
+ title: ReactNode;
10
+ /**
11
+ * WHY it is empty and what would fill it. REQUIRED, and not optional
12
+ * politeness: "No events" on a company that has never run and "no events"
13
+ * on a node whose event store could not be read are the same sentence and
14
+ * completely different problems, and a reader cannot tell them apart from
15
+ * the list. The story shows the three cases this distinguishes.
16
+ */
17
+ description: ReactNode;
18
+ /** What would fill it, as a control: "Create the first seat", "Connect Slack". */
19
+ action?: ReactNode;
20
+ /** `compact` is for an empty state inside a panel rather than a screen. */
21
+ size?: EmptyStateSize | undefined;
22
+ /**
23
+ * The heading level of the title. Taken from where the component finds
24
+ * itself by default; `none` renders no heading at all, for an empty state
25
+ * inside a section whose own heading already names it.
26
+ */
27
+ headingLevel?: HeadingLevel | 'none' | undefined;
28
+ }
29
+ /**
30
+ * Nothing here, said honestly.
31
+ *
32
+ * AN EMPTY STATE IS A SENTENCE, NOT A SHRUG. The three states it has to keep
33
+ * apart are "nothing has happened yet", "nothing could be read" and "this is
34
+ * not configured": the first is fine, the second is a fault somebody has to
35
+ * look at, and the third is a thing they can go and do. Rendered as the same
36
+ * grey "No data", they are indistinguishable, and the fault is the one that
37
+ * gets missed.
38
+ */
39
+ export declare function EmptyState({ icon, illustration, title, description, action, size, headingLevel, className, ...rest }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './EmptyState.css';
2
+ export { EmptyState } from './EmptyState.js';
3
+ export type { EmptyStateProps, EmptyStateSize } from './EmptyState.js';
@@ -0,0 +1,3 @@
1
+ export { EmptyState } from '../chunk-RA2ULG6H.js';
2
+ import '../chunk-PQADV6P6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,73 @@
1
+ /*
2
+ * The empty state.
3
+ *
4
+ * ITS MARK IS DECORATION and takes the decoration ink, which is the one place
5
+ * that step is allowed: a 32px glyph a reader does not have to make out. Every
6
+ * word in the box is on a step that clears 4.5:1, because the sentence is the
7
+ * whole point of the component.
8
+ */
9
+
10
+ .crewlet-empty-state {
11
+ display: flex;
12
+ flex-direction: column;
13
+ align-items: center;
14
+ justify-content: center;
15
+ gap: var(--spacing-2);
16
+ padding: var(--spacing-8) var(--spacing-4);
17
+ text-align: center;
18
+ font-family: var(--font-family-sans);
19
+ }
20
+
21
+ .crewlet-empty-state--compact {
22
+ padding: var(--spacing-6) var(--spacing-4);
23
+ }
24
+
25
+ .crewlet-empty-state__mark {
26
+ display: inline-flex;
27
+ margin-bottom: var(--spacing-1);
28
+ }
29
+
30
+ /*
31
+ * The decoration step, and this is the one thing it is for: a 32px drawing a
32
+ * reader does not have to make out. It is set on the svg rather than on the
33
+ * wrapper so that it can never reach a word, which is the rule the package
34
+ * checks.
35
+ */
36
+ .crewlet-empty-state__mark svg {
37
+ color: var(--color-text-muted);
38
+ }
39
+
40
+ /*
41
+ * A STEP DOWN FROM THE PAGE'S OWN INK, both of them. The engine sets the
42
+ * sentence at the secondary step and the line under it at the tertiary one,
43
+ * and the reason is that nothing is here: the box is telling a reader what is
44
+ * absent, so it should not out-shout the content around it that is present.
45
+ * Both steps clear 4.5:1 on every ground in both palettes, which is what makes
46
+ * quiet different from faint.
47
+ */
48
+ /*
49
+ * The page's own leading. The box is a sentence with a sentence under it, and
50
+ * at the tight step the heading's line sits closer to its own descenders than
51
+ * to the line it introduces.
52
+ */
53
+ .crewlet-empty-state__title {
54
+ margin: 0;
55
+ font-size: var(--font-size-sm);
56
+ font-weight: var(--font-weight-medium);
57
+ line-height: var(--font-line-height-normal);
58
+ color: var(--color-text-secondary);
59
+ }
60
+
61
+ .crewlet-empty-state__description {
62
+ margin: 0;
63
+ /* Narrow on purpose: this is one or two sentences, and a line of it running
64
+ the width of a screen is a line nobody finishes. */
65
+ max-width: var(--size-measure-narrow);
66
+ font-size: var(--font-size-xs);
67
+ line-height: var(--font-line-height-normal);
68
+ color: var(--color-text-tertiary);
69
+ }
70
+
71
+ .crewlet-empty-state__action {
72
+ margin-top: var(--spacing-2);
73
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The mark an absent value is drawn as: an EN dash, U+2013.
3
+ *
4
+ * An en dash rather than an em dash, which this design system does not use
5
+ * anywhere; rather than a hyphen, which is a minus sign in a column of
6
+ * numbers; and rather than an empty cell, which reads as a value nobody has
7
+ * looked at yet.
8
+ */
9
+ export declare const EMPTY_VALUE = "\u2013";
10
+ export interface EmptyValueProps {
11
+ /**
12
+ * What the absence means, read in place of the dash. "Not reported" is the
13
+ * honest default: the value was asked for and nothing came back. A caller
14
+ * that knows better should say so, because the distinctions matter: "Not
15
+ * configured" is a thing somebody can fix, "Not applicable" is not a gap at
16
+ * all, and "Not reported yet" is a thing that may still arrive.
17
+ */
18
+ label?: string | undefined;
19
+ className?: string | undefined;
20
+ }
21
+ /**
22
+ * A value that is not there, said once rather than drawn as a punctuation mark
23
+ * a screen reader reads as "dash" or skips entirely.
24
+ *
25
+ * AN ABSENT NUMBER IS A MARKED ABSENCE, NEVER A ZERO. A cost nobody measured
26
+ * and a cost of nothing are different facts, and a table that draws both as
27
+ * `0` has thrown the difference away where it can never be recovered. Every
28
+ * place that would have written a bare dash uses this instead, so the absence
29
+ * carries its own meaning and its own reading.
30
+ */
31
+ export declare function EmptyValue({ label, className }: EmptyValueProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './EmptyValue.css';
2
+ export { EMPTY_VALUE, EmptyValue } from './EmptyValue.js';
3
+ export type { EmptyValueProps } from './EmptyValue.js';
@@ -0,0 +1,3 @@
1
+ export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,12 @@
1
+ /*
2
+ * The absent value sits on the tertiary step, quieter than the values around
3
+ * it in a column and still over the 4.5:1 floor. NOT the decoration step: the
4
+ * dash is what tells a sighted reader the value is absent, so it is a fact
5
+ * they have to be able to make out, not an ornament.
6
+ */
7
+
8
+ .crewlet-empty-value {
9
+ color: var(--color-text-tertiary);
10
+ /* A dash in a numeric column lines up with the digits above it. */
11
+ font-variant-numeric: tabular-nums;
12
+ }
@@ -0,0 +1,40 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type AvatarSizeStep } from '../Avatar/index.js';
3
+ /**
4
+ * Whether the engine runs this one.
5
+ *
6
+ * `human` draws the badge with a dashed edge, which is structure and not
7
+ * status: a human seat is a real seat that no agent occupies. It is carried by
8
+ * the edge rather than by a hue, so the status hues keep meaning only what
9
+ * they mean.
10
+ */
11
+ export type EntityChipVariant = 'agent' | 'human';
12
+ export interface EntityChipProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
13
+ /** Who or what this is. Drawn as initials and read as the chip's own text. */
14
+ name: string;
15
+ /** Where it goes. With neither this nor `asChild` the chip is inert text. */
16
+ href?: string | undefined;
17
+ /**
18
+ * Render the single child element as the chip instead of an anchor, to put
19
+ * this look on a router's own Link while keeping its navigation.
20
+ */
21
+ asChild?: boolean | undefined;
22
+ variant?: EntityChipVariant | undefined;
23
+ /** The badge's step. The name takes the surrounding text size either way. */
24
+ size?: AvatarSizeStep | undefined;
25
+ children?: ReactNode;
26
+ }
27
+ /**
28
+ * A name with its badge, as one thing.
29
+ *
30
+ * IT IS NOT DRAWN IN THE ACCENT, and that is the rule the component exists to
31
+ * hold. A seat's name is IDENTITY, and the accent means "where the reader is";
32
+ * a name rendered in the accent at every place it appears is identity-colouring
33
+ * by accident, and it leaves the one thing on the page that IS the reader's
34
+ * position indistinguishable from forty links that are not. The affordance is
35
+ * the hover and the cursor, which is what a whole-row link has anyway.
36
+ *
37
+ * The badge is DECORATIVE here: the name is printed right beside it, and a
38
+ * badge that was also read would make every row say the name twice.
39
+ */
40
+ export declare function EntityChip({ name, href, asChild, variant, size, className, children, ...rest }: EntityChipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './EntityChip.css';
2
+ export { EntityChip } from './EntityChip.js';
3
+ export type { EntityChipProps, EntityChipVariant } from './EntityChip.js';
@@ -0,0 +1,3 @@
1
+ export { EntityChip } from '../chunk-QYOFACSP.js';
2
+ import '../chunk-PNFASD6F.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,64 @@
1
+ /*
2
+ * A name with its badge, as one thing.
3
+ *
4
+ * A LINK THAT IS A ROW TAKES THE PAGE'S TEXT COLOUR, not the link colour.
5
+ * Otherwise every seat name in every list renders in the accent, which is
6
+ * identity-colouring by accident and leaves the one thing on the page that IS
7
+ * the reader's position looking exactly like forty links that are not. The
8
+ * affordance is the hover and the cursor.
9
+ */
10
+
11
+ .crewlet-entity-chip {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ gap: var(--spacing-2);
15
+ min-width: 0;
16
+ max-width: 100%;
17
+ color: var(--color-text-primary);
18
+ font-family: var(--font-family-sans);
19
+ text-decoration: none;
20
+ }
21
+
22
+ .crewlet-entity-chip__name {
23
+ overflow: hidden;
24
+ text-overflow: ellipsis;
25
+ white-space: nowrap;
26
+ min-width: 0;
27
+ }
28
+
29
+ .crewlet-entity-chip--link {
30
+ cursor: pointer;
31
+ transition: color var(--motion-duration-fast) var(--motion-easing-default);
32
+ }
33
+
34
+ /*
35
+ * TWO CARRIERS ON HOVER: the accent ink on the chip, and an underline on the
36
+ * NAME. The ink is the engine's, and it is the accent's own meaning, where the
37
+ * reader is about to be, spent for exactly as long as the pointer is there; at
38
+ * rest the chip stays in the page's ink, because a name rendered in the accent
39
+ * everywhere it appears is identity-colouring by accident and leaves the one
40
+ * thing on the page that IS the reader's position looking like forty links
41
+ * that are not. The underline is what a reader who cannot separate the two
42
+ * inks sees instead, and it costs the badge beside it no movement.
43
+ */
44
+ .crewlet-entity-chip--link:hover,
45
+ .crewlet-entity-chip--link:focus-visible {
46
+ color: var(--color-brand-accent-ink);
47
+ }
48
+
49
+ .crewlet-entity-chip--link:hover .crewlet-entity-chip__name,
50
+ .crewlet-entity-chip--link:focus-visible .crewlet-entity-chip__name {
51
+ text-decoration: underline;
52
+ }
53
+
54
+ .crewlet-entity-chip--link:focus-visible {
55
+ outline: 2px solid var(--color-focus);
56
+ outline-offset: 2px;
57
+ border-radius: var(--radius-xs);
58
+ }
59
+
60
+ @media (prefers-reduced-motion: reduce) {
61
+ .crewlet-entity-chip--link {
62
+ transition: none;
63
+ }
64
+ }
@@ -0,0 +1,58 @@
1
+ import { Component, type ErrorInfo, type ReactNode } from 'react';
2
+ export interface ErrorBoundaryProps {
3
+ /**
4
+ * What the reader is looking at. A NEW VALUE IS A NEW CHANCE TO RENDER, so a
5
+ * route, a tab or a selected record is the right thing to pass: without one,
6
+ * a boundary that has caught stays caught until the page is reloaded, and
7
+ * going somewhere else shows the failure of the screen you left.
8
+ */
9
+ resetKey?: string | number | undefined;
10
+ /** Draws the failure. Without one, the boundary draws the block below. */
11
+ fallback?: ((error: Error, reset: () => void) => ReactNode) | undefined;
12
+ /**
13
+ * Reports the failure to wherever the application collects them.
14
+ *
15
+ * The one thing a fallback cannot do: it runs during a render, where a write
16
+ * to a log, a counter or a session is a side effect in the wrong phase.
17
+ */
18
+ onError?: ((error: Error, info: ErrorInfo) => void) | undefined;
19
+ /** The default fallback's heading. */
20
+ title?: string | undefined;
21
+ /** The default fallback's sentence. */
22
+ description?: string | undefined;
23
+ /** The default fallback's button. */
24
+ retryLabel?: string | undefined;
25
+ children?: ReactNode;
26
+ }
27
+ interface ErrorBoundaryState {
28
+ error: Error | null;
29
+ /** The key the current state belongs to, so a change of key is visible here. */
30
+ resetKey: string | number | undefined;
31
+ }
32
+ /**
33
+ * One region that throws takes itself down, and nothing else.
34
+ *
35
+ * WITHOUT ONE, A RENDER ERROR UNMOUNTS THE WHOLE APPLICATION. That is React's
36
+ * contract, and it is what one malformed field did to the dashboard this is
37
+ * ported from: a seat whose model was a per-phase mapping reached a component
38
+ * as an object child, and the reader was left with a blank page, no navigation
39
+ * and no way to learn which screen or which field. The console that has no
40
+ * boundary at all has the same failure waiting in it.
41
+ *
42
+ * WHERE IT GOES: around the routed screen, and only there. The shell around it
43
+ * is what a reader needs in order to get somewhere else, so a boundary that
44
+ * wraps the shell too takes the way out down with the screen.
45
+ *
46
+ * IT RESETS on a new `resetKey` and when the reader asks to try again. React
47
+ * reports a caught error to the console itself, so this logs nothing: a second
48
+ * report says the same thing twice and makes the first one harder to find.
49
+ */
50
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
51
+ state: ErrorBoundaryState;
52
+ static getDerivedStateFromError(error: unknown): Partial<ErrorBoundaryState>;
53
+ static getDerivedStateFromProps(props: ErrorBoundaryProps, state: ErrorBoundaryState): Partial<ErrorBoundaryState> | null;
54
+ componentDidCatch(error: Error, info: ErrorInfo): void;
55
+ private readonly reset;
56
+ render(): ReactNode;
57
+ }
58
+ export {};
@@ -0,0 +1,3 @@
1
+ import './ErrorBoundary.css';
2
+ export { ErrorBoundary } from './ErrorBoundary.js';
3
+ export type { ErrorBoundaryProps } from './ErrorBoundary.js';
@@ -0,0 +1,4 @@
1
+ export { ErrorBoundary } from '../chunk-7EM5T4ME.js';
2
+ import '../chunk-BZYDZBAN.js';
3
+ import '../chunk-BZFWDIV6.js';
4
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,59 @@
1
+ /*
2
+ * The default fallback: a quiet block on the inset surface rather than a red
3
+ * panel. A screen that failed to draw is not an error the reader made, and a
4
+ * danger frame around it says the opposite. The one danger note is the
5
+ * message itself, which is the part a report needs.
6
+ */
7
+
8
+ .crewlet-error-boundary {
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: flex-start;
12
+ gap: var(--spacing-3);
13
+ /* The panel's own body inset and its lift: a fallback is still a panel of
14
+ the product, and one drawn without the rim read as a block of unstyled
15
+ text where the screen should have been. */
16
+ padding: var(--spacing-4);
17
+ border: 1px solid var(--color-border-default);
18
+ border-radius: var(--radius-lg);
19
+ background: var(--color-surface-subtle);
20
+ box-shadow: var(--shadow-xs), var(--shadow-hairline);
21
+ max-width: var(--size-measure);
22
+ }
23
+
24
+ .crewlet-error-boundary__title {
25
+ margin: 0;
26
+ font-family: var(--font-family-sans);
27
+ /* The panel title register. It was the 18px heading step, which on a block
28
+ that replaces one section of a screen announced itself more loudly than
29
+ the screen's own name. */
30
+ font-size: var(--font-size-sm);
31
+ font-weight: var(--font-weight-semibold);
32
+ letter-spacing: var(--font-letter-spacing-tight);
33
+ color: var(--color-text-primary);
34
+ }
35
+
36
+ .crewlet-error-boundary__description {
37
+ margin: 0;
38
+ font-family: var(--font-family-sans);
39
+ font-size: var(--font-size-compact);
40
+ line-height: var(--font-line-height-normal);
41
+ color: var(--color-text-secondary);
42
+ }
43
+
44
+ /* The message wraps rather than scrolls: it is one sentence from a thrown
45
+ error, and a reader asked to copy it should be able to see all of it. */
46
+ .crewlet-error-boundary__message {
47
+ margin: 0;
48
+ max-width: 100%;
49
+ padding: var(--spacing-3);
50
+ border: 1px solid var(--color-feedback-danger-line);
51
+ border-radius: var(--radius-md);
52
+ background: var(--color-surface-inset);
53
+ font-family: var(--font-family-mono);
54
+ font-size: var(--font-size-compact);
55
+ line-height: var(--font-line-height-normal);
56
+ color: var(--color-feedback-danger-ink);
57
+ white-space: pre-wrap;
58
+ overflow-wrap: anywhere;
59
+ }
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ export type EyebrowVariant = 'muted' | 'accent' | 'gradient';
3
+ export type EyebrowElement = 'span' | 'div' | 'p';
4
+ export interface EyebrowProps extends HTMLAttributes<HTMLElement> {
5
+ /** Element to render. Defaults to an inline span. */
6
+ as?: EyebrowElement | undefined;
7
+ variant?: EyebrowVariant | undefined;
8
+ }
9
+ /**
10
+ * Eyebrow (kicker), the small uppercase label that sits above a section title
11
+ * to name the section.
12
+ *
13
+ * It is set in THE micro-label register, the same one `Text variant="label"`
14
+ * and a table's column head take, so a kicker over a marketing band and a
15
+ * column head in a console read as one system rather than as two ideas of
16
+ * what a small uppercase label is.
17
+ */
18
+ export declare const Eyebrow: ({ as: As, variant, className, children, ...rest }: EyebrowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './Eyebrow.css';
2
+ export { Eyebrow } from './Eyebrow.js';
3
+ export type { EyebrowProps, EyebrowVariant, EyebrowElement } from './Eyebrow.js';
@@ -0,0 +1,2 @@
1
+ export { Eyebrow } from '../chunk-RK4XPHVG.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Eyebrow (kicker), the uppercase label that names a section.
3
+ *
4
+ * THE ONE MICRO-LABEL REGISTER, and it is the same one `Text variant="label"`
5
+ * and a table's column head are set in: 11px, medium, the wide track,
6
+ * uppercase, on the tertiary step. It used to be its own thing (monospace, one
7
+ * size up, semibold, the wider track), and two registers that mean "this names
8
+ * the block under it" is exactly how a page ends up with six tracking values
9
+ * for one job.
10
+ */
11
+
12
+ .crewlet-eyebrow {
13
+ display: inline-block;
14
+ font-size: var(--font-size-2xs);
15
+ font-weight: var(--font-weight-medium);
16
+ letter-spacing: var(--font-letter-spacing-wide);
17
+ text-transform: uppercase;
18
+ line-height: var(--font-line-height-snug);
19
+ color: var(--color-text-tertiary);
20
+ }
21
+
22
+ .crewlet-eyebrow--muted {
23
+ color: var(--color-text-tertiary);
24
+ }
25
+
26
+ /*
27
+ * The accent as TEXT takes the INK step, never the fill. The fill is a mark
28
+ * and clears 3:1; a word has to clear 4.5:1, and an 11px uppercase label is
29
+ * exactly where a fill-as-text fails.
30
+ */
31
+ .crewlet-eyebrow--accent {
32
+ color: var(--color-brand-accent-ink);
33
+ }
34
+
35
+ /*
36
+ * A marketing hero's kicker. A gradient painted through the glyphs has no
37
+ * measurable contrast, so it is reserved for display type over a surface the
38
+ * page controls, never for a label carrying a fact on its own.
39
+ */
40
+ .crewlet-eyebrow--gradient {
41
+ background: var(--color-brand-gradient);
42
+ -webkit-background-clip: text;
43
+ background-clip: text;
44
+ -webkit-text-fill-color: transparent;
45
+ color: transparent;
46
+ }