@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,117 @@
1
+ /**
2
+ * The rail's navigation: groups of rows, one of which says where the reader is.
3
+ *
4
+ * THE ROW THE READER IS ON IS THE ONE PLACE THE ACCENT APPEARS IN THE CHROME,
5
+ * and it takes the accent twice over: the accent's soft tint as its ground,
6
+ * and the accent ink for its label and its glyph. Position AND hue, so the row
7
+ * is found at a glance by a reader who sees the hue and by one who does not.
8
+ * `aria-current="page"` says the same thing to a screen reader, and the style
9
+ * is drawn FROM that attribute, so the two cannot come apart. The stylesheet
10
+ * carries why this replaced a one-pixel accent bar outside the row's edge.
11
+ *
12
+ * THE LINK ELEMENT BELONGS TO THE APPLICATION (`renderLink`). A router's own
13
+ * link is what carries a client navigation and a leave guard; a plain anchor is
14
+ * what carries a middle click into a new tab. Neither is right everywhere, so
15
+ * neither is built in: the engine keeps plain anchors and the console passes
16
+ * its router's NavLink.
17
+ */
18
+ import { type MouseEventHandler, type ReactNode } from 'react';
19
+ export interface SidebarNavProps {
20
+ /**
21
+ * Names the navigation region. A page with two of them ("Sections" and
22
+ * "This company") needs both named, or a screen reader offers a reader two
23
+ * landmarks both called "navigation".
24
+ */
25
+ label: string;
26
+ className?: string | undefined;
27
+ children?: ReactNode;
28
+ }
29
+ export interface NavGroupProps {
30
+ /**
31
+ * The group's heading. Without one the rows are simply a run of rows, and an
32
+ * EMPTY one is without one: a rail whose first run has no name spells that
33
+ * as `""`, and a heading box with no word in it is sixteen pixels of the
34
+ * rail spent on nothing.
35
+ */
36
+ label?: ReactNode;
37
+ className?: string | undefined;
38
+ children?: ReactNode;
39
+ }
40
+ /** What a caller is handed when it draws the row's element itself. */
41
+ export interface NavLinkProps {
42
+ className: string;
43
+ children: ReactNode;
44
+ href?: string | undefined;
45
+ 'aria-current'?: 'page' | undefined;
46
+ onClick?: MouseEventHandler<HTMLElement> | undefined;
47
+ }
48
+ /**
49
+ * How loudly a row's badge is drawn.
50
+ *
51
+ * `neutral` is a quiet figure at the end of the row, in the row's own ink.
52
+ * `attention` is the one badge in the chrome allowed a status hue: a count of
53
+ * what is waiting on a person is the one thing that should pull the eye out of
54
+ * whatever screen the reader is on. It is a tint behind a word rather than a
55
+ * word in a hue, so it still reads to somebody who cannot separate the hue.
56
+ *
57
+ * A TONE RATHER THAN A COMPONENT THE CALLER PASSES IN, because the tint has to
58
+ * clear its floor on the ground the ROW has, which is the accent tint on the
59
+ * reader's own row. That is a fact about the rail, measured in the rail's own
60
+ * stylesheet, and not something a call site can be asked to know.
61
+ */
62
+ export type NavBadgeTone = 'neutral' | 'attention';
63
+ export interface NavItemProps {
64
+ /** What the row is called. */
65
+ label: ReactNode;
66
+ /** The row's glyph. Decoration: the label beside it carries the meaning. */
67
+ icon?: ReactNode;
68
+ /**
69
+ * A count or a state at the end of the row. The slot draws it: whatever is
70
+ * passed contributes its text and the name a screen reader reads after the
71
+ * row's own, so a `<Count>` here is a figure rather than a second pill.
72
+ */
73
+ badge?: ReactNode;
74
+ /** How loudly. Neutral unless this row is what needs a person. */
75
+ badgeTone?: NavBadgeTone | undefined;
76
+ href?: string | undefined;
77
+ /** Whether this row is the screen the reader is on. */
78
+ current?: boolean | undefined;
79
+ /**
80
+ * Unavailable, and why.
81
+ *
82
+ * NOT `disabled`: a row taken out of the tab order teaches a keyboard reader
83
+ * that the destination does not exist, when what is true is that it is not
84
+ * reachable yet. It stays focusable, says `aria-disabled`, and the reason is
85
+ * read after its name.
86
+ */
87
+ disabledReason?: string | undefined;
88
+ /** Draws the row's element, for a router that owns navigation. */
89
+ renderLink?: ((props: NavLinkProps) => ReactNode) | undefined;
90
+ onClick?: MouseEventHandler<HTMLElement> | undefined;
91
+ /** Nested rows. They expand and collapse under this one. */
92
+ children?: ReactNode;
93
+ expanded?: boolean | undefined;
94
+ defaultExpanded?: boolean | undefined;
95
+ onExpandedChange?: ((expanded: boolean) => void) | undefined;
96
+ /** Names the control that expands the nested rows. */
97
+ expandLabel?: string | undefined;
98
+ className?: string | undefined;
99
+ }
100
+ /** The navigation region in the rail. */
101
+ export declare function SidebarNav({ label, className, children }: SidebarNavProps): import("react/jsx-runtime").JSX.Element;
102
+ export declare namespace SidebarNav {
103
+ var Group: typeof NavGroup;
104
+ var Item: typeof NavItem;
105
+ }
106
+ /**
107
+ * A labelled run of rows: "Company", "Work", "Operations".
108
+ *
109
+ * A HEADING WITH NO WORD IN IT IS NOT A HEADING. `""`, `null` and `false` are
110
+ * all how a caller spells a run that has no name (the engine's first run,
111
+ * above "Company", is one), and each has to reach the same place: an empty
112
+ * `<div>` here still carries the label's own padding, which put sixteen blank
113
+ * pixels at the top of the rail and named a group nothing could read.
114
+ */
115
+ export declare function NavGroup({ label, className, children }: NavGroupProps): import("react/jsx-runtime").JSX.Element;
116
+ /** One row: a glyph, a label, an optional badge, and optionally rows beneath. */
117
+ export declare function NavItem({ label, icon, badge, badgeTone, href, current, disabledReason, renderLink, onClick, children, expanded, defaultExpanded, onExpandedChange, expandLabel, className, }: NavItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './SidebarNav.css';
2
+ export { NavGroup, NavItem, SidebarNav } from './SidebarNav.js';
3
+ export type { NavBadgeTone, NavGroupProps, NavItemProps, NavLinkProps, SidebarNavProps } from './SidebarNav.js';
@@ -0,0 +1,3 @@
1
+ export { NavGroup, NavItem, SidebarNav } from '../chunk-3EYF6HKB.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,319 @@
1
+ /*
2
+ * The rail's navigation.
3
+ *
4
+ * ONE VERTICAL LINE. The rail pads by --size-nav-gutter and each row pads by
5
+ * --size-nav-row-pad, so the mark, the group labels and every row's text start
6
+ * on the same line: shrink the gutter and grow the pad by the same step and
7
+ * nothing moves. That is why the row's own background takes the full width the
8
+ * gutter leaves it, rather than each row carrying a horizontal margin of its
9
+ * own.
10
+ */
11
+
12
+ .crewlet-sidebar-nav {
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: var(--spacing-1);
16
+ min-width: 0;
17
+ padding: var(--spacing-2) var(--size-nav-gutter) var(--spacing-4);
18
+ }
19
+
20
+ /*
21
+ * THE ROWS INSIDE A GROUP ARE FLUSH. A group is a run of destinations read as
22
+ * one block, and the space between two of them is already the row's own height
23
+ * against a 13px line; a step on top of that spends four pixels a rail cannot
24
+ * afford fifteen times over. It is what the group LABEL's bottom pad is for,
25
+ * and the rail's own gap between groups is what separates one run from the
26
+ * next.
27
+ *
28
+ * Measured rather than chosen: at one step per row the rail stood 823px in a
29
+ * 755px scroller, so the last two destinations in the product were reachable
30
+ * only by scrolling the rail. Flush it is 746px and every row is on screen.
31
+ */
32
+ .crewlet-nav-group {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: var(--spacing-0);
36
+ min-width: 0;
37
+ }
38
+
39
+ .crewlet-nav-group__label {
40
+ padding: var(--spacing-3) var(--size-nav-row-pad) var(--spacing-1);
41
+ font-family: var(--font-family-sans);
42
+ font-size: var(--font-size-2xs);
43
+ font-weight: var(--font-weight-medium);
44
+ /* The rail's own micro-label register, which is one step tighter than the
45
+ wider step an Eyebrow takes: a group name here sits four pixels above the
46
+ row it names, and at the wider step "OPERATIONS" was visibly broader than
47
+ the rows beneath it rather than quieter than them. */
48
+ letter-spacing: var(--font-letter-spacing-wide);
49
+ text-transform: uppercase;
50
+ /* The 4.5:1 step: a group name is a fact a reader has to read, not
51
+ decoration. */
52
+ color: var(--color-text-tertiary);
53
+ }
54
+
55
+ .crewlet-nav-item {
56
+ min-width: 0;
57
+ }
58
+
59
+ .crewlet-nav-item__head {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: var(--spacing-1);
63
+ min-width: 0;
64
+ }
65
+
66
+ .crewlet-nav-item__row {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: var(--spacing-2);
70
+ flex: 1 1 auto;
71
+ min-width: 0;
72
+ width: 100%;
73
+ min-height: var(--size-row-md);
74
+ padding: 0 var(--size-nav-row-pad);
75
+ border: none;
76
+ /* The chrome's radius, not a card's. A 12px corner on a 36px row leaves the
77
+ tint reading as a lozenge floating in the gutter rather than as a band the
78
+ width of the rail. */
79
+ border-radius: var(--radius-md);
80
+ background: transparent;
81
+ /*
82
+ * THE RAIL READS AT FULL INK. A destination is not secondary text: a rail of
83
+ * fifteen rows in the quiet step is a column of grey a reader has to hunt
84
+ * through, and the step down bought nothing the row's own tint does not
85
+ * already say. It is also the darker of the two on light and the lighter on
86
+ * dark, so the contrast on every ground the row can have goes up rather than
87
+ * down.
88
+ *
89
+ * WHAT CARRIES HOVER IS THEREFORE THE TINT, not an ink step: there is no
90
+ * step left above this one. The glyph is the second half of it, lifting from
91
+ * the decoration ramp to the row's own ink.
92
+ */
93
+ color: var(--color-text-primary);
94
+ font-family: var(--font-family-sans);
95
+ /* THE CHROME IS NOT BODY TEXT. A rail row names a destination; it is read at
96
+ a glance and never read through, so it takes the compact step in the
97
+ medium weight, which is what keeps a one-word row legible at 13px. */
98
+ font-size: var(--font-size-compact);
99
+ font-weight: var(--font-weight-medium);
100
+ letter-spacing: var(--font-letter-spacing-snug);
101
+ line-height: var(--font-line-height-tight);
102
+ text-align: left;
103
+ text-decoration: none;
104
+ cursor: pointer;
105
+ transition:
106
+ background var(--motion-duration-fast) var(--motion-easing-default),
107
+ color var(--motion-duration-fast) var(--motion-easing-default);
108
+ }
109
+
110
+ .crewlet-nav-item__row:hover {
111
+ background: var(--color-surface-hover);
112
+ text-decoration: none;
113
+ }
114
+
115
+ .crewlet-nav-item__row:focus-visible {
116
+ outline: 2px solid var(--color-focus);
117
+ /* Inside the row's own box: the rail is a clipping scroller, so an outset
118
+ ring on the first or last row is cut off by it. */
119
+ outline-offset: var(--size-focus-ring-inset-offset);
120
+ }
121
+
122
+ /*
123
+ * WHERE THE READER IS: the accent's own soft tint, with the label and the
124
+ * glyph in the accent ink. That is the whole job of an accent in a chrome, and
125
+ * the rail is the one place in the chrome it appears.
126
+ *
127
+ * It was a neutral lift with the accent as a one-pixel bar outside the row's
128
+ * left edge, on the reading that accent text in a rail competes with the
129
+ * status hues beside it and cannot be separated from the row above by a reader
130
+ * with a colour vision deficiency. Neither holds here. Nothing in this rail
131
+ * carries a status hue except the attention count below, which is a tint
132
+ * BEHIND a word rather than a word in a hue; and the tint is what answers the
133
+ * second objection, because the row still lifts off its ground by more than a
134
+ * hovered one does whether or not the hue is seen at all (@crewlethq/tokens
135
+ * measures exactly that, and measures this ink on this composite: 5.76:1 in
136
+ * light, 5.96:1 in dark).
137
+ *
138
+ * What the bar cost was that one pixel of hue was the entire signal, at the
139
+ * one moment a reader is scanning the rail to find out where they are.
140
+ *
141
+ * Drawn from aria-current, so the picture and what a screen reader is told
142
+ * cannot come apart. It is declared after :hover deliberately: both selectors
143
+ * weigh the same, a row shows the current tint or the hover overlay and never
144
+ * both, and later is what decides which.
145
+ */
146
+ .crewlet-nav-item__row[aria-current='page'] {
147
+ background: var(--color-brand-accent-soft);
148
+ color: var(--color-brand-accent-ink);
149
+ }
150
+
151
+ .crewlet-nav-item__row[aria-disabled='true'] {
152
+ cursor: not-allowed;
153
+ opacity: 0.55;
154
+ }
155
+
156
+ .crewlet-nav-item__row[aria-disabled='true']:hover {
157
+ background: transparent;
158
+ color: var(--color-text-primary);
159
+ }
160
+
161
+ /*
162
+ * THE GLYPH FOLLOWS THE LABEL. At rest it is quieter than the word beside it
163
+ * and takes the decoration step; on a hovered row and on the reader's own it
164
+ * takes the row's own colour, which on the current row is the accent ink.
165
+ *
166
+ * ONE inherit rather than a second ramp, because a second ramp is how a row
167
+ * comes to paint its label and its glyph two different answers to "where am
168
+ * I". The colour is set on the DRAWING rather than on the box around it, which
169
+ * is what says the decoration step is being spent on a glyph and not on text:
170
+ * the package's variable check holds that rule, and it is the rule the step
171
+ * exists for.
172
+ */
173
+ .crewlet-nav-item__icon {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ justify-content: center;
177
+ flex: none;
178
+ }
179
+
180
+ .crewlet-nav-item__icon svg {
181
+ color: var(--color-text-muted);
182
+ transition: color var(--motion-duration-fast) var(--motion-easing-default);
183
+ }
184
+
185
+ .crewlet-nav-item__row:hover .crewlet-nav-item__icon svg,
186
+ .crewlet-nav-item__row[aria-current='page'] .crewlet-nav-item__icon svg {
187
+ color: inherit;
188
+ }
189
+
190
+ .crewlet-nav-item__label {
191
+ flex: 1 1 auto;
192
+ min-width: 0;
193
+ overflow: hidden;
194
+ text-overflow: ellipsis;
195
+ white-space: nowrap;
196
+ }
197
+
198
+ .crewlet-nav-item__badge {
199
+ display: inline-flex;
200
+ align-items: center;
201
+ flex: none;
202
+ margin-left: auto;
203
+ font-size: var(--font-size-2xs);
204
+ font-variant-numeric: tabular-nums;
205
+ color: var(--color-text-tertiary);
206
+ }
207
+
208
+ /*
209
+ * THE SLOT IS WHAT PAINTS. A caller hands in the figure and the name a screen
210
+ * reader reads after the row's own ("3 things waiting on somebody"); the rail
211
+ * decides whether that is a quiet number at the end of the row or the one
212
+ * thing on the screen that should pull the eye. So whatever arrives
213
+ * contributes its text and its accessible name and nothing else, which is why
214
+ * a <Count> here draws its own text rather than a second pill inside this one.
215
+ */
216
+ .crewlet-nav-item__badge > * {
217
+ padding: 0;
218
+ border: none;
219
+ border-radius: 0;
220
+ background: transparent;
221
+ color: inherit;
222
+ min-width: 0;
223
+ font-size: inherit;
224
+ font-weight: inherit;
225
+ /* Not the `font` shorthand, which would reset font-variant and take the
226
+ tabular figures with it. */
227
+ font-variant-numeric: inherit;
228
+ line-height: inherit;
229
+ }
230
+
231
+ /* A quiet badge takes the row's ink, the current row's accent included. The
232
+ attention badge keeps its own, which is the whole point of it, and the
233
+ :not() is what says so: both selectors would otherwise weigh the same and a
234
+ tone would be decided by which rule a later edit happened to move. */
235
+ .crewlet-nav-item__row[aria-current='page'] .crewlet-nav-item__badge:not(.crewlet-nav-item__badge--attention) {
236
+ color: inherit;
237
+ }
238
+
239
+ /*
240
+ * THE ONE BADGE IN THE CHROME ALLOWED A STATUS HUE. A count of what is waiting
241
+ * on a person is the one thing that should pull the eye out of whatever screen
242
+ * the reader is on, and it stays a tint BEHIND a word rather than a word in a
243
+ * hue, so it reads to somebody who cannot separate the hue at all.
244
+ *
245
+ * Measured on every ground a row can have, the reader's own row included,
246
+ * which is a warning tint on the accent tint on the rail: @crewlethq/tokens'
247
+ * palette suite has that composite by name, at 5.08:1 in light and 9.75:1 in
248
+ * dark.
249
+ */
250
+ .crewlet-nav-item__badge--attention {
251
+ padding: 0 var(--spacing-2);
252
+ border-radius: var(--radius-pill);
253
+ background: var(--color-feedback-warning-soft);
254
+ color: var(--color-feedback-warning-ink);
255
+ font-weight: var(--font-weight-semibold);
256
+ }
257
+
258
+ .crewlet-nav-item__toggle {
259
+ display: inline-flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ flex: none;
263
+ width: var(--size-control-sm);
264
+ height: var(--size-control-sm);
265
+ padding: 0;
266
+ border: none;
267
+ border-radius: var(--radius-sm);
268
+ background: transparent;
269
+ color: var(--color-text-tertiary);
270
+ cursor: pointer;
271
+ }
272
+
273
+ .crewlet-nav-item__toggle:hover {
274
+ background: var(--color-surface-hover);
275
+ color: var(--color-text-primary);
276
+ }
277
+
278
+ .crewlet-nav-item__toggle:focus-visible {
279
+ outline: 2px solid var(--color-focus);
280
+ outline-offset: var(--size-focus-ring-inset-offset);
281
+ }
282
+
283
+ .crewlet-nav-item__chevron {
284
+ display: inline-flex;
285
+ transition: transform var(--motion-duration-fast) var(--motion-easing-default);
286
+ }
287
+
288
+ .crewlet-nav-item__chevron--open {
289
+ transform: rotate(180deg);
290
+ }
291
+
292
+ /*
293
+ * Nested rows carry an indent guide rather than more padding, because a run of
294
+ * indents with no line is a hierarchy a reader has to measure by eye. The
295
+ * guide takes the accent on the path the reader is on, which is the same
296
+ * signal the top-level rail gives.
297
+ */
298
+ .crewlet-nav-item__children {
299
+ display: flex;
300
+ flex-direction: column;
301
+ gap: var(--spacing-1);
302
+ margin-left: var(--size-nav-row-pad);
303
+ padding-left: var(--spacing-2);
304
+ border-left: 1px solid var(--color-border-default);
305
+ }
306
+
307
+ /* No type step of its own any more: every row in the rail reads at the compact
308
+ step now, and the indent guide is what says a row is nested. */
309
+ .crewlet-nav-item__children:has(.crewlet-nav-item__row[aria-current='page']) {
310
+ border-left-color: var(--color-brand-accent);
311
+ }
312
+
313
+ @media (prefers-reduced-motion: reduce) {
314
+ .crewlet-nav-item__row,
315
+ .crewlet-nav-item__icon svg,
316
+ .crewlet-nav-item__chevron {
317
+ transition: none;
318
+ }
319
+ }
@@ -0,0 +1,50 @@
1
+ import type { CSSProperties } from 'react';
2
+ export type SkeletonVariant = 'box' | 'text' | 'card' | 'grid' | 'list' | 'table' | 'info-grid' | 'pricing-card';
3
+ export interface SkeletonProps {
4
+ variant?: SkeletonVariant;
5
+ /** Row count for `text`, `grid`, `list`, `table` and `info-grid`. */
6
+ rows?: number;
7
+ /**
8
+ * How tall each line of the `text` variant is. A number of px, or a CSS
9
+ * length. Unset, the stylesheet's own step, which is a line of body text.
10
+ */
11
+ rowHeight?: number | string;
12
+ /** Column count for `table`, and for `grid` and `info-grid` (1 to 4). */
13
+ columns?: number;
14
+ /** Card count for `pricing-card`. */
15
+ count?: number;
16
+ /**
17
+ * What is loading, said once for a reader who cannot see the placeholder.
18
+ * Rendered in a polite status region beside it: "Loading seats".
19
+ *
20
+ * THE `aria-busy` BELONGS TO THE REGION THAT IS LOADING, not to this
21
+ * element. A placeholder is the thing that is there INSTEAD of the content,
22
+ * so marking it busy says the placeholder is loading; the panel or the list
23
+ * whose content has not arrived is what a reader is waiting on, and that is
24
+ * the element its caller puts `aria-busy` on.
25
+ */
26
+ label?: string;
27
+ /** Applied to the root element of every variant. */
28
+ className?: string;
29
+ /** Applied to the root element of every variant. */
30
+ style?: CSSProperties;
31
+ width?: number | string;
32
+ height?: number | string;
33
+ borderRadius?: number;
34
+ marginTop?: number;
35
+ marginBottom?: number;
36
+ }
37
+ /**
38
+ * Loading placeholder.
39
+ *
40
+ * ONLY WHERE CONTENT OF KNOWN SHAPE IS COMING. A spinner in place of a screen
41
+ * tells a reader nothing about what to expect; a placeholder that matches the
42
+ * shape of what will arrive tells them how much of it there is and stops the
43
+ * page moving when it does.
44
+ *
45
+ * The drawing is decoration and is hidden. `label` is what a reader who cannot
46
+ * see it is told, said once in a polite region; the `aria-busy` that goes with
47
+ * it belongs on the region whose content has not arrived, which is the
48
+ * caller's own element rather than this one.
49
+ */
50
+ export declare const Skeleton: ({ label, ...placeholder }: SkeletonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './Skeleton.css';
2
+ export { Skeleton } from './Skeleton.js';
3
+ export type { SkeletonProps, SkeletonVariant } from './Skeleton.js';
@@ -0,0 +1,3 @@
1
+ export { Skeleton } from '../chunk-W5J7R5EB.js';
2
+ import '../chunk-BZFWDIV6.js';
3
+ import '../chunk-ODEQTPFM.js';