@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,360 @@
1
+ /*
2
+ * An organization as an indented table of rows (OrgTable.tsx).
3
+ *
4
+ * The rows, the cells and the column template are `TreeGrid`'s, and the add's
5
+ * own split is `AddPill`'s. What is here is the console org table's own drawing
6
+ * on top of them: the gutter the wires run down, the two-line name group, the
7
+ * controls that stay quiet until a row is reached, the slot the add splits open
8
+ * in, and the tab of tree controls attached to the table's top edge.
9
+ *
10
+ * IT KEYS ON ROLES, NOT ON THE GRID'S CLASS NAMES. A row is `[role='row']` and
11
+ * a cell is `[role='gridcell']`, which is the contract that component
12
+ * documents and a suite here holds it to; a private class name would be a
13
+ * second component's internals read from the outside, which changes without
14
+ * anything noticing.
15
+ */
16
+
17
+ .crewlet-org-table {
18
+ /*
19
+ * THE STEP EACH LEVEL IS INDENTED BY, and therefore how long a row's own
20
+ * branch is. One step per level, on the spacing scale, and the step is the
21
+ * console org table's own 40px: at half of it a seat four levels down was
22
+ * offset 80px where the console offsets it 160, so the indent that IS the
23
+ * answer to "where is this in the organization" read at half strength.
24
+ */
25
+ --crewlet-org-table-indent: var(--spacing-8);
26
+ /* The wire arriving at a row, and what it fades to at the row's own end.
27
+ Rebound per hue below. */
28
+ --crewlet-org-table-wire: var(--color-border-control);
29
+ --crewlet-org-table-wire-fade: var(--color-border-default);
30
+ /* What a row's name and its mark are drawn in. Rebound per hue below. */
31
+ --crewlet-org-table-ink: var(--color-text-primary);
32
+ --crewlet-org-table-accent: var(--color-text-tertiary);
33
+ /*
34
+ * HOW MANY KINDS THE ROW'S ADD OFFERS, which is what the slot holding it
35
+ * reserves: the pill opens to one target per kind and it opens IN PLACE, so
36
+ * the room it needs is room the closed row already holds. Three is what an
37
+ * organization takes (a unit, an agent seat, a human seat); a caller
38
+ * offering another number sets this once, here, and the slot and the track
39
+ * below both follow it.
40
+ */
41
+ --crewlet-org-table-add-kinds: 3;
42
+ /*
43
+ * THE SLOT THE ADD SITS IN: the OPEN pill's own width, which is one pointer
44
+ * target per kind and the pill's own boundary. Reserved rather than
45
+ * overflowed, because the pill used to open back over the row and cover the
46
+ * Problems cell beside it, which is the check's own answer for that row; and
47
+ * a pill that opened the other way would have run off the end of the row and
48
+ * out of the grid's scroller.
49
+ */
50
+ --crewlet-org-table-add: calc(
51
+ var(--size-target-min) * var(--crewlet-org-table-add-kinds) + 2px
52
+ );
53
+ /*
54
+ * THE TRACK A ROW'S CONTROL STRIP TAKES, and why it is a number at all:
55
+ * EVERY ROW IS ITS OWN GRID, so an `auto` last track is as wide as that
56
+ * row's own controls. The header row holds none, so its last track measured
57
+ * 16px where a row's measured 108, and every flexible column before it began
58
+ * somewhere else in the header than in the rows: a table whose headings
59
+ * named the wrong columns.
60
+ *
61
+ * The add's slot, the strip, and the cell's own inset. A caller with a
62
+ * different number sets its own track; what matters is that the track is
63
+ * fixed, and that it holds the add OPEN.
64
+ */
65
+ --crewlet-org-table-actions: calc(
66
+ var(--crewlet-org-table-add) + var(--crewlet-org-table-strip) + var(--spacing-2) * 3
67
+ );
68
+ /*
69
+ * THE ROOM THE QUIET STRIP KEEPS, whatever that row draws in it: three
70
+ * controls and their two gaps, which is the most a row here takes (a
71
+ * pencil, a trash, a menu).
72
+ *
73
+ * RESERVED, because the cell is end-aligned and the ADD sits before the
74
+ * strip: measured, the company's row draws no trash and no menu, so its
75
+ * strip was 28px where every other row's was 92, and the plus a reader
76
+ * scans down the table for stood 64px to the right of the one on the row
77
+ * beneath it. A row that draws fewer controls leaves the room empty rather
78
+ * than moving what is beside it.
79
+ */
80
+ --crewlet-org-table-strip: calc(var(--size-control-sm) * 3 + var(--spacing-1) * 2);
81
+ /*
82
+ * THE WIDTH BELOW WHICH THE TABLE SCROLLS SIDEWAYS, wider than a plain
83
+ * treegrid's because a row here spends its first column on a mark, two lines
84
+ * of text and an indent that grows with the level. At the treegrid's own
85
+ * 45rem a seat four levels down had 59px left for its name, so the column a
86
+ * reader scans said "SR…" and, on one row, nothing at all.
87
+ */
88
+ --crewlet-tree-grid-min-width: 60rem;
89
+ display: flex;
90
+ flex-direction: column;
91
+ align-items: stretch;
92
+ min-width: 0;
93
+ }
94
+
95
+ /*
96
+ * THE TREE CONTROLS ARE A TAB ON THE TABLE'S OWN EDGE, not a toolbar above it:
97
+ * they act on this table and nothing else, and a strip floating over the page
98
+ * would read as the screen's. Its bottom hairline is the table's top one, so
99
+ * the two are one frame.
100
+ */
101
+ .crewlet-org-table__controls {
102
+ display: flex;
103
+ align-self: flex-start;
104
+ align-items: center;
105
+ margin-inline-start: var(--spacing-4);
106
+ margin-bottom: -1px;
107
+ padding: var(--spacing-1);
108
+ background: var(--color-surface-subtle);
109
+ border: 1px solid var(--color-border-default);
110
+ border-bottom: 0;
111
+ border-start-start-radius: var(--radius-sm);
112
+ border-start-end-radius: var(--radius-sm);
113
+ }
114
+
115
+ /*
116
+ * A ROW IS TWO LINES TALL, so it stands on the TALL row step rather than the
117
+ * grid's own. The name group is a name over a caption and the grid's step left
118
+ * it 1.8px of air above and below, which is what made these rows read as
119
+ * cramped beside the console's 48.5px ones; it is also the room a wiring mark
120
+ * riding the caption needs before it can grow the row.
121
+ *
122
+ * KEYED ON `aria-level`, which is the ARIA contract's own mark of a row IN the
123
+ * tree: the head's row carries none, so a column heading keeps the shorter
124
+ * step it should have and no private class name is read from the outside.
125
+ */
126
+ .crewlet-org-table [role='row'][aria-level] {
127
+ min-height: var(--size-row-lg);
128
+ }
129
+
130
+ /*
131
+ * THE INDENT IS THE WIRE'S, NOT THE CELL'S. `TreeGrid` indents its first cell
132
+ * by the row's level, which moves the row's own toggle right with it; the
133
+ * console table holds the toggle in a column of its own and indents what
134
+ * follows, so the trunk is one line down the whole table rather than one per
135
+ * level. The cell's padding is taken back and the wire element carries the
136
+ * level instead.
137
+ */
138
+ .crewlet-org-table [role='gridcell']:first-child {
139
+ padding-inline-start: var(--spacing-2);
140
+ }
141
+
142
+ /*
143
+ * THE STRIP ENDS THE ROW, AND AN OPEN PILL GROWS BACK ALONG IT. The last track
144
+ * is the width of the CLOSED strip, so an open pill is wider than the cell
145
+ * holding it; a flex item that overflows a flex-start container spills off the
146
+ * END of the row, past the table's own edge and out of its scroller. Ended, it
147
+ * spills back over the row instead, where the pill's own ground covers
148
+ * whatever it crosses.
149
+ */
150
+ .crewlet-org-table [role='gridcell']:last-child {
151
+ justify-content: flex-end;
152
+ }
153
+
154
+ .crewlet-org-table__wire {
155
+ position: relative;
156
+ flex: none;
157
+ align-self: stretch;
158
+ width: calc(var(--crewlet-org-table-indent) * var(--crewlet-org-table-depth, 0));
159
+ }
160
+
161
+ .crewlet-org-table__wire::before,
162
+ .crewlet-org-table__wire::after {
163
+ content: '';
164
+ position: absolute;
165
+ pointer-events: none;
166
+ }
167
+
168
+ /*
169
+ * THE TRUNK: a segment down the gutter on every row inside the tree, so the
170
+ * segments stack into one line. Neutral, always: it belongs to the table
171
+ * rather than to any row, and a trunk that took each row's hue in turn would
172
+ * be a striped line saying nothing.
173
+ */
174
+ .crewlet-org-table__wire[data-trunk]::before {
175
+ inset-block: 0;
176
+ inset-inline-start: 0;
177
+ width: 2px;
178
+ background: var(--color-border-default);
179
+ }
180
+
181
+ /* A root row's trunk starts at the row's middle: nothing hangs above the
182
+ first row of the table. */
183
+ .crewlet-org-table__wire[data-root][data-trunk]::before {
184
+ inset-block-start: 50%;
185
+ }
186
+
187
+ /*
188
+ * THE BRANCH: from the trunk across the gutter to the row's own mark, fading
189
+ * as it arrives. It reaches one cell gap past the wire's own width, which is
190
+ * where the mark begins. A root row has no branch, because its width is zero.
191
+ */
192
+ .crewlet-org-table__wire::after {
193
+ inset-inline-start: 0;
194
+ inset-block-start: 50%;
195
+ width: calc(100% + var(--spacing-2));
196
+ height: 2px;
197
+ background: linear-gradient(
198
+ 90deg,
199
+ var(--crewlet-org-table-wire),
200
+ var(--crewlet-org-table-wire-fade)
201
+ );
202
+ }
203
+
204
+ /* A root row has nothing above it to branch off, so it draws none: the stub a
205
+ branch would leave beside the first row of the table is a line to nowhere. */
206
+ .crewlet-org-table__wire[data-root]::after {
207
+ content: none;
208
+ }
209
+
210
+ /*
211
+ * The six hues, on the branch arriving at a row and on the mark and name in
212
+ * it. Measured on the table's own ground (--color-surface-subtle): the ink
213
+ * every hue's name is drawn in clears 8.2:1 in both themes, and the accent the
214
+ * mark takes clears 4.2:1, which is over the floor for a drawing and under it
215
+ * for words. So the caption stays in the neutral tertiary ink, where the
216
+ * console table tints it: a word at 4.2:1 is a word a reader has to work at.
217
+ */
218
+ .crewlet-org-table__wire[data-tone='purple'],
219
+ .crewlet-org-label--row[data-tone='purple'] {
220
+ --crewlet-org-table-wire: var(--color-node-purple-line);
221
+ --crewlet-org-table-wire-fade: var(--color-node-purple-halo);
222
+ --crewlet-org-table-ink: var(--color-node-purple-ink);
223
+ --crewlet-org-table-accent: var(--color-node-purple);
224
+ }
225
+
226
+ .crewlet-org-table__wire[data-tone='cyan'],
227
+ .crewlet-org-label--row[data-tone='cyan'] {
228
+ --crewlet-org-table-wire: var(--color-node-cyan-line);
229
+ --crewlet-org-table-wire-fade: var(--color-node-cyan-halo);
230
+ --crewlet-org-table-ink: var(--color-node-cyan-ink);
231
+ --crewlet-org-table-accent: var(--color-node-cyan);
232
+ }
233
+
234
+ .crewlet-org-table__wire[data-tone='green'],
235
+ .crewlet-org-label--row[data-tone='green'] {
236
+ --crewlet-org-table-wire: var(--color-node-green-line);
237
+ --crewlet-org-table-wire-fade: var(--color-node-green-halo);
238
+ --crewlet-org-table-ink: var(--color-node-green-ink);
239
+ --crewlet-org-table-accent: var(--color-node-green);
240
+ }
241
+
242
+ .crewlet-org-table__wire[data-tone='amber'],
243
+ .crewlet-org-label--row[data-tone='amber'] {
244
+ --crewlet-org-table-wire: var(--color-node-amber-line);
245
+ --crewlet-org-table-wire-fade: var(--color-node-amber-halo);
246
+ --crewlet-org-table-ink: var(--color-node-amber-ink);
247
+ --crewlet-org-table-accent: var(--color-node-amber);
248
+ }
249
+
250
+ .crewlet-org-table__wire[data-tone='rose'],
251
+ .crewlet-org-label--row[data-tone='rose'] {
252
+ --crewlet-org-table-wire: var(--color-node-rose-line);
253
+ --crewlet-org-table-wire-fade: var(--color-node-rose-halo);
254
+ --crewlet-org-table-ink: var(--color-node-rose-ink);
255
+ --crewlet-org-table-accent: var(--color-node-rose);
256
+ }
257
+
258
+ .crewlet-org-table__wire[data-tone='blue'],
259
+ .crewlet-org-label--row[data-tone='blue'] {
260
+ --crewlet-org-table-wire: var(--color-node-blue-line);
261
+ --crewlet-org-table-wire-fade: var(--color-node-blue-halo);
262
+ --crewlet-org-table-ink: var(--color-node-blue-ink);
263
+ --crewlet-org-table-accent: var(--color-node-blue);
264
+ }
265
+
266
+ /* ---- The name group ------------------------------------------------------ */
267
+
268
+ /*
269
+ * WHAT A ROW SAYS IS `OrgLabel`, in its row layout, because a chart node says
270
+ * the same four things in the same words: see `OrgLabel.css`, which holds
271
+ * every rule that draws them. What is left here is the one thing that is the
272
+ * TABLE's and not the label's, which is the ink.
273
+ *
274
+ * THE SIX HUES ARE ABOVE, on the wire and on the row together, and they are a
275
+ * system this table owns: the chart's equivalent is published by a card, so
276
+ * the shared component cannot read either directly without knowing about both.
277
+ * It reads what is handed to it instead, and this is the table handing it over
278
+ * beside the rules that produce it.
279
+ *
280
+ * THE CAPTION IS NOT IN THIS. It stays the neutral tertiary ink, because a
281
+ * hue's own step measures 4.2:1 on this ground: over the floor for a drawing
282
+ * and under it for a word.
283
+ */
284
+ .crewlet-org-label--row .crewlet-org-label__icon {
285
+ color: var(--crewlet-org-table-accent);
286
+ }
287
+
288
+ .crewlet-org-label--row .crewlet-org-label__name {
289
+ color: var(--crewlet-org-table-ink);
290
+ }
291
+
292
+ /* ---- The row's own controls ---------------------------------------------- */
293
+
294
+ /*
295
+ * THE STRIP IS WHAT ACTS ON THIS ROW, and the add is not in it: see the slot
296
+ * below. No auto margin, because the cell already ends its content and an auto
297
+ * margin between the add and this strip would push the two apart by whatever a
298
+ * row's own controls left over, which is a different gap on every row.
299
+ */
300
+ .crewlet-org-table__actions {
301
+ display: inline-flex;
302
+ align-items: center;
303
+ /* END-ALIGNED INSIDE THE ROOM IT KEEPS, so the control a row draws last is
304
+ at the row's own end whether it draws one or three. */
305
+ justify-content: flex-end;
306
+ gap: var(--spacing-1);
307
+ min-width: var(--crewlet-org-table-strip);
308
+ opacity: 0;
309
+ transition: opacity var(--motion-duration-fast) var(--motion-easing-default);
310
+ }
311
+
312
+ /*
313
+ * REACHED BY THE POINTER, BY FOCUS, AND ON THE SELECTED ROW. Focus is the half
314
+ * that is not decoration: a control a keyboard can reach but nobody can see is
315
+ * a control that fails the focus-visibility rule, so the strip comes back the
316
+ * moment focus enters the row.
317
+ */
318
+ .crewlet-org-table [role='row']:hover .crewlet-org-table__actions,
319
+ .crewlet-org-table [role='row']:focus-within .crewlet-org-table__actions,
320
+ .crewlet-org-table [role='row'][aria-selected='true'] .crewlet-org-table__actions {
321
+ opacity: 1;
322
+ }
323
+
324
+ /*
325
+ * A POINTER THAT CANNOT HOVER NEVER REACHES A ROW, so on a touch screen the
326
+ * strip is simply drawn. Without this the table is unusable on a phone: every
327
+ * control on it is behind a state that device has no way to enter.
328
+ */
329
+ @media (hover: none) {
330
+ .crewlet-org-table__actions {
331
+ opacity: 1;
332
+ }
333
+ }
334
+
335
+ @media (prefers-reduced-motion: reduce) {
336
+ .crewlet-org-table__actions {
337
+ transition: none;
338
+ }
339
+ }
340
+
341
+ /*
342
+ * THE ADD IS NOT ONE OF THE ROW'S QUIET CONTROLS. It is the console's own
343
+ * green plus and it is DRAWN on every row that can take a child, at the quiet
344
+ * opacity `AddPill` holds its mark at; only the controls that act on the row
345
+ * itself wait to be reached. Inside the strip it inherited `opacity: 0`, so
346
+ * the one control an operator reaches for by its colour could not be seen
347
+ * until the pointer was already on the row.
348
+ *
349
+ * THE SLOT IS AS WIDE AS THE PILL IS OPEN, so the split happens inside the
350
+ * track the row already reserved: the pill is centred on its own mark, the
351
+ * mark is centred here, and nothing the pill covers is something a reader was
352
+ * reading.
353
+ */
354
+ .crewlet-org-table__add {
355
+ display: inline-flex;
356
+ flex: none;
357
+ align-items: center;
358
+ justify-content: center;
359
+ width: var(--crewlet-org-table-add);
360
+ }
@@ -0,0 +1,35 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type HeadingLevel } from '../utils/headingLevel.js';
3
+ export interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
4
+ /** What this screen is. */
5
+ title: ReactNode;
6
+ /**
7
+ * The heading element to draw. It follows the surrounding heading level by
8
+ * default, which is 2 on a page whose shell already spends the `h1` on the
9
+ * screen's name, and 3 inside a dialog that has taken 2 for its own title.
10
+ */
11
+ headingLevel?: HeadingLevel | undefined;
12
+ /** One sentence saying what the screen answers. It sits on the measure. */
13
+ description?: ReactNode;
14
+ /** Status beside the title: a tag, a count, a live dot. */
15
+ badges?: ReactNode;
16
+ /** What a reader can do here. They wrap under the title when there is no room. */
17
+ actions?: ReactNode;
18
+ /** Names the heading, for a region that points at it with aria-labelledby. */
19
+ titleId?: string | undefined;
20
+ }
21
+ /**
22
+ * The standard head of a screen: what it is, what it answers, and what can be
23
+ * done here.
24
+ *
25
+ * WHY IT IS A COMPONENT. Twenty screens spelled this out of a div, a flex row
26
+ * and two inline styles each, and they had drifted: three gaps, two title
27
+ * sizes, and a badge row that wrapped on some screens and pushed the actions
28
+ * off the side on others. One header is also the only way the heading LEVEL
29
+ * can be right, which is what a reader navigating by heading uses to move
30
+ * around a page at all.
31
+ *
32
+ * The actions are a sibling of the title rather than part of it, so a heading
33
+ * a screen reader reads is the screen's name and not the name plus three verbs.
34
+ */
35
+ export declare function PageHeader({ title, headingLevel, description, badges, actions, titleId, className, children, ...rest }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './PageHeader.css';
2
+ export { PageHeader } from './PageHeader.js';
3
+ export type { PageHeaderProps } from './PageHeader.js';
@@ -0,0 +1,3 @@
1
+ export { PageHeader } from '../chunk-HOXGBLEY.js';
2
+ import '../chunk-PQADV6P6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,88 @@
1
+ /*
2
+ * The head of a screen.
3
+ *
4
+ * THE OPERATOR'S TITLE, NOT THE MARKETING ONE. It was the 32px display step
5
+ * over a 16px sentence, which is the type a landing page opens with: on a
6
+ * screen whose job is to show a table it took a third of the first fold and
7
+ * pushed the rows a reader came for below it, and it said the screen's name
8
+ * twice as loudly as the shell's own bar says it. The 20px step over the
9
+ * compact sentence is the head every screen on the dashboard wears, and it
10
+ * leaves the content the largest thing on the page.
11
+ */
12
+
13
+ .crewlet-page-header {
14
+ display: flex;
15
+ align-items: flex-end;
16
+ justify-content: space-between;
17
+ gap: var(--spacing-3);
18
+ flex-wrap: wrap;
19
+ min-width: 0;
20
+ }
21
+
22
+ .crewlet-page-header__lead {
23
+ display: flex;
24
+ flex-direction: column;
25
+ /* One step. The title and the sentence under it are ONE block: at the
26
+ 8px step they read as a heading with a caption parked below it. */
27
+ gap: var(--spacing-1);
28
+ min-width: 0;
29
+ /* Takes the row, so the actions wrap under the title rather than squeezing
30
+ a long screen name into two words and an ellipsis. */
31
+ flex: 1 1 auto;
32
+ }
33
+
34
+ .crewlet-page-header__titles {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: var(--spacing-2);
38
+ flex-wrap: wrap;
39
+ min-width: 0;
40
+ }
41
+
42
+ /*
43
+ * THE TITLE KEEPS THE PAGE'S OWN LEADING. It is a heading element, and the
44
+ * document baseline sets every heading at the tight step, which is the right
45
+ * answer for a stack of headings in prose and the wrong one here: this is one
46
+ * line above one sentence, and at 1.2 the two sit closer than the gap between
47
+ * them, so the head reads as three lines of something rather than a title with
48
+ * a caption. Declared here rather than left to the baseline because a screen
49
+ * that renders the title in a `div` would otherwise draw a different head from
50
+ * the one that renders it in an `h1`.
51
+ */
52
+ .crewlet-page-header__title {
53
+ margin: 0;
54
+ font-family: var(--font-family-display);
55
+ font-size: var(--font-size-xl);
56
+ font-weight: var(--font-weight-semibold);
57
+ line-height: var(--font-line-height-normal);
58
+ letter-spacing: var(--font-letter-spacing-tight);
59
+ color: var(--color-text-primary);
60
+ min-width: 0;
61
+ }
62
+
63
+ .crewlet-page-header__badges {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: var(--spacing-2);
67
+ flex-wrap: wrap;
68
+ }
69
+
70
+ .crewlet-page-header__description {
71
+ margin: 0;
72
+ max-width: var(--size-measure);
73
+ font-family: var(--font-family-sans);
74
+ /* A sentence that answers "what is this screen for", read once. It is not
75
+ body copy, and at the body step it competed with the table under it. */
76
+ font-size: var(--font-size-compact);
77
+ line-height: var(--font-line-height-normal);
78
+ color: var(--color-text-tertiary);
79
+ }
80
+
81
+ /* One step between actions, which is what keeps a run of buttons reading as
82
+ one cluster at the end of the row rather than as three separate controls. */
83
+ .crewlet-page-header__actions {
84
+ display: flex;
85
+ align-items: center;
86
+ gap: var(--spacing-1);
87
+ flex-wrap: wrap;
88
+ }
@@ -0,0 +1,91 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import { type DismissReason } from '../Layer/index.js';
3
+ export type PopoverAlign = 'start' | 'end';
4
+ export type PopoverSide = 'top' | 'bottom';
5
+ export type PopoverWidth = 'auto' | 'match';
6
+ /**
7
+ * What the panel IS. `dialog` is the default because a panel holding a form, a
8
+ * date grid or a filter editor is a dialog; `menu` and `listbox` are for a
9
+ * panel whose children carry the matching item roles; `none` is for a panel
10
+ * whose own children already declare the structure.
11
+ */
12
+ export type PopoverRole = 'dialog' | 'menu' | 'listbox' | 'none';
13
+ interface PopoverBaseProps {
14
+ trigger: (open: boolean, toggle: () => void) => ReactElement;
15
+ children: ReactNode | ((close: () => void) => ReactNode);
16
+ /** Which edge of the anchor the panel lines up with. */
17
+ align?: PopoverAlign | undefined;
18
+ /** The preferred side. It flips when there is not room and there is more room the other way. */
19
+ side?: PopoverSide | undefined;
20
+ /** `match` sizes the panel to the anchor, which is what a Select wants. */
21
+ width?: PopoverWidth | undefined;
22
+ className?: string | undefined;
23
+ /** Controlled. Leave it out for a panel that owns its own open state. */
24
+ open?: boolean | undefined;
25
+ defaultOpen?: boolean | undefined;
26
+ /**
27
+ * Reports a change, and ONLY a change: it is never called on mount, which
28
+ * the effect this replaced did on every render, so a caller that cleared a
29
+ * flag when the panel opened cleared it immediately and forever.
30
+ */
31
+ onOpenChange?: ((open: boolean, reason: PopoverReason) => void) | undefined;
32
+ }
33
+ /**
34
+ * A DIALOG MUST BE NAMED, and the type is what says so.
35
+ *
36
+ * A dialog is announced by its name and by nothing else: with none, a screen
37
+ * reader says "dialog" and the reader is left to guess what opened. The
38
+ * default role is `dialog`, so an optional `label` meant the default was an
39
+ * unnamed one, which is what two pickers in this package shipped the day the
40
+ * default changed. The other roles take their meaning from the items inside
41
+ * them and a name is a courtesy, so it stays optional there.
42
+ *
43
+ * Zero values are meaningful or the type refuses them: this is the second.
44
+ */
45
+ export type PopoverProps = PopoverBaseProps & ({
46
+ role?: 'dialog' | undefined;
47
+ /** Names the panel, and is what a screen reader announces when it opens. */
48
+ label: string;
49
+ } | {
50
+ role: 'menu' | 'listbox' | 'none';
51
+ /** Names the panel. Optional here: the items inside carry the meaning. */
52
+ label?: string | undefined;
53
+ });
54
+ /** Why the panel opened or closed. */
55
+ export type PopoverReason = DismissReason | 'trigger' | 'content' | 'anchor-gone';
56
+ /**
57
+ * An anchored floating panel: a filter editor, a sort menu, a date grid, a
58
+ * select's list.
59
+ *
60
+ * WHAT CHANGED, AND WHY. It used to add its own `keydown` and `mousedown`
61
+ * listeners to the document, so a panel inside a Modal closed the Modal with
62
+ * it on one Escape, and a panel hosting another panel needed a
63
+ * `stopPropagation` on `mousedown` to stop the outer one closing. Both are
64
+ * gone: it is a popup on the shared layer stack, which dismisses the TOPMOST
65
+ * surface and nothing beneath it.
66
+ *
67
+ * It also used to force `role="menu"` on every panel, which told a screen
68
+ * reader that a filter form was a menu of commands and that its inputs were
69
+ * menu items, and to portal to `document.body`, where a fullscreen container
70
+ * does not paint it at all.
71
+ *
72
+ * THE RULES IT KEEPS NOW.
73
+ *
74
+ * - PLACED BY ARITHMETIC, inside the bounds of the layer it renders into:
75
+ * below the anchor and aligned to its start by default, flipped when there
76
+ * is not room, and slid back inside an edge it opened near.
77
+ * - HIDDEN UNTIL PLACED. A panel drawn at the layer's corner for one frame is
78
+ * a flash, and a browser refuses focus to a hidden element, so focus moves
79
+ * in only once it has somewhere to be.
80
+ * - IT FOLLOWS ITS ANCHOR through a pan, a scroll and a resize, and CLOSES
81
+ * when the anchor is carried out of the bounds: a panel for something nobody
82
+ * can see is a panel for nothing.
83
+ * - WHAT HAPPENS IN THE PANEL STAYS IN THE PANEL. A portal carries React
84
+ * events up the COMPONENT tree rather than the document one, so without this
85
+ * the Enter that presses a button inside would also reach the row the panel
86
+ * was opened from. Escape and Tab still travel, because the layer stack acts
87
+ * on them at the document, and so does a chord with Control, Command or Alt,
88
+ * which is an application shortcut rather than a key of the panel's.
89
+ */
90
+ export declare function Popover({ trigger, children, align, side, width, role, label, className, open: controlled, defaultOpen, onOpenChange, }: PopoverProps): import("react/jsx-runtime").JSX.Element;
91
+ export {};
@@ -0,0 +1,3 @@
1
+ import './Popover.css';
2
+ export { Popover } from './Popover.js';
3
+ export type { PopoverAlign, PopoverProps, PopoverReason, PopoverRole, PopoverSide, PopoverWidth } from './Popover.js';
@@ -0,0 +1,4 @@
1
+ export { Popover } from '../chunk-DD5BBGBE.js';
2
+ import '../chunk-7RPGY3JE.js';
3
+ import '../chunk-ITHXJHBB.js';
4
+ import '../chunk-ODEQTPFM.js';