@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,615 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * DataTable, the sortable table the whole product reads its records from, in
4
+ * two visual variants (default and compact) over one data, sort, pagination
5
+ * and persistence model.
6
+ *
7
+ * THE FOUR RULES THAT DECIDE ITS SHAPE, each of them a defect that reached a
8
+ * reader before it was one:
9
+ *
10
+ * 1. THE SORT CONTROL IS A BUTTON INSIDE THE HEADER CELL, and `aria-sort`
11
+ * sits on the cell. A `th` with a click handler is neither focusable nor
12
+ * announced as a control, so a keyboard reader could see which way a column
13
+ * was sorted and could not change it.
14
+ * 2. THE COMPARATOR IS THREE-WAY, ABSENT LAST AND INDEX-STABLE. An absent
15
+ * value is not a small one: a seat with no meter has not spent nothing, it
16
+ * has not been measured, so it sorts below every measurement in BOTH
17
+ * directions. A comparator that returns -1 for equal operands (the
18
+ * `a < b ? 1 : -1` idiom) makes equal rows trade places on every render
19
+ * under V8's sort, which is a list that shuffles itself while somebody
20
+ * reads it.
21
+ * 3. A ROW THAT NAVIGATES IS A LINK, and a press that started on a control
22
+ * inside the row is that control's press and nobody else's. Both halves
23
+ * were wrong: a clickable `tr` could not be reached by keyboard, and a
24
+ * click on a chip inside it navigated twice.
25
+ * 4. NOTHING IT PERSISTS IS TRUSTED ON THE WAY BACK IN. A corrupt entry under
26
+ * `storageKey` used to throw from a state initialiser, which is a blank
27
+ * screen rather than a table, and `storageKey` stays optional because a
28
+ * surface whose state belongs in the URL should read no storage at all.
29
+ */
30
+ /**
31
+ * A row, as the table itself sees one: an opaque record it reads named
32
+ * columns out of. A caller names its own row type through the generic, and
33
+ * every callback on the column and on the table is typed with it.
34
+ */
35
+ export type DataTableRow = Record<string, unknown>;
36
+ export type DataTableSortDirection = 'asc' | 'desc';
37
+ /**
38
+ * What a second and third press on the same header do.
39
+ *
40
+ * `asc-desc-none` is the default: the third press clears the sort and hands
41
+ * the rows back in the order the server sent them, which on a live table is
42
+ * the only ordering that means anything. `asc-desc` is for a table that has
43
+ * no meaningful unsorted order, where clearing the sort would look like a
44
+ * glitch.
45
+ */
46
+ export type DataTableSortCycle = 'asc-desc-none' | 'asc-desc';
47
+ /**
48
+ * How a row is marked as a state rather than as an identity.
49
+ *
50
+ * Three, and they are the rail colours a state may take: `info` for something
51
+ * that is happening, `warning` for something a person has to look at, and
52
+ * `danger` for something that failed. There is no brand tone, because the
53
+ * accent means "where the reader is" and a selected row already spends it.
54
+ */
55
+ export type DataTableRowTone = 'info' | 'warning' | 'danger';
56
+ /**
57
+ * The column order a table draws, given the order a reader arranged and the
58
+ * columns the caller declares now.
59
+ *
60
+ * Kept order first, so nothing a reader did is lost; anything newly declared
61
+ * goes in BESIDE THE COLUMN IT WAS DECLARED AFTER, wherever the reader has
62
+ * since put that one, so a column that arrives in the middle of the set does
63
+ * not appear at the far end of the row. Counting the earlier columns instead
64
+ * of finding the nearest one puts it at the right DEPTH of a row the reader
65
+ * has rearranged rather than in the right PLACE: with the last two columns
66
+ * swapped, a column declared third landed second.
67
+ */
68
+ export declare function reconcileOrder(current: readonly string[], declared: readonly string[]): string[];
69
+ export interface DataTableColumn<TRow = DataTableRow> {
70
+ label: ReactNode;
71
+ render?: (row: TRow, value: unknown) => ReactNode;
72
+ sortable?: boolean;
73
+ defaultVisible?: boolean;
74
+ /**
75
+ * Whether a reader may hide this column. Defaults to true.
76
+ *
77
+ * FALSE IS FOR THE COLUMN THAT SAYS WHICH ROW THIS IS: the node, the seat,
78
+ * the name. Hidden, every remaining cell is a fact about something the
79
+ * reader can no longer identify, which is a table of numbers belonging to
80
+ * nobody. The tick is drawn, and drawn fixed with a reason beside it, rather
81
+ * than left out: a column missing from the list reads as a column that is
82
+ * not there at all.
83
+ */
84
+ hideable?: boolean;
85
+ defaultWidth?: number;
86
+ /** Override the value used when sorting this column (defaults to row[key]). */
87
+ sortValue?: (row: TRow) => string | number | Date | null | undefined;
88
+ /**
89
+ * Which way the FIRST press on this header sorts. A name reads ascending
90
+ * first and a cost reads descending first, because the interesting end of
91
+ * each is the one the reader came for.
92
+ */
93
+ firstDirection?: DataTableSortDirection;
94
+ /**
95
+ * Cell alignment. A right-aligned column is a column of numbers, so it also
96
+ * takes tabular figures and stops wrapping: a digit that changes width is a
97
+ * column that jiggles on every push.
98
+ */
99
+ align?: 'left' | 'right' | 'center';
100
+ /** Shrink to the content and never wrap. For a status chip or a short id. */
101
+ shrink?: boolean;
102
+ /**
103
+ * Monospace cell content at a smaller font, suitable for opaque ids,
104
+ * timestamps, and similar fixed-pitch values. Compact variant only.
105
+ */
106
+ mono?: boolean;
107
+ /**
108
+ * When true, the cell value is wrapped in a hover-revealed copy
109
+ * affordance. The clipboard value defaults to String(row[key]) but
110
+ * can be overridden via copyValue. Compact variant only.
111
+ */
112
+ copyable?: boolean;
113
+ copyValue?: (row: TRow) => unknown;
114
+ /**
115
+ * Fixed pixel-or-string width applied directly to the <th>/<td>. A
116
+ * column with `width` is locked at exactly that width; `defaultWidth`
117
+ * is a starting width that resizing and the fit-to-container pass can
118
+ * change.
119
+ */
120
+ width?: string | number;
121
+ /**
122
+ * Pin the column to the right edge of the scroll container so it
123
+ * stays visible regardless of horizontal scroll or how the operator
124
+ * resizes the surrounding data columns. Typical use is a trailing
125
+ * row-action link or affordance that must always be reachable
126
+ * without scrolling. Compact variant only; the default variant
127
+ * already uses fixed widths that do not overflow.
128
+ */
129
+ sticky?: 'right';
130
+ }
131
+ export interface DataTableSortState {
132
+ key: string;
133
+ direction: DataTableSortDirection;
134
+ }
135
+ /**
136
+ * Single action shown in the row-actions kebab menu. `rowActions` returns
137
+ * a list of these per row; falsy entries are dropped, so a caller can
138
+ * include an action conditionally with `condition && { ... }`.
139
+ */
140
+ export interface DataTableRowAction {
141
+ label: string;
142
+ onClick?: () => void;
143
+ /** A glyph component, drawn before the label. */
144
+ icon?: ReactNode;
145
+ /** A destructive action, drawn in the critical ink. */
146
+ danger?: boolean;
147
+ disabled?: boolean;
148
+ visible?: boolean;
149
+ description?: string;
150
+ divider?: 'before' | 'after';
151
+ }
152
+ export type DataTableVariant = 'default' | 'compact';
153
+ /**
154
+ * The value the All chip stands for.
155
+ *
156
+ * A SENTINEL RATHER THAN A COUNT. It used to be written as `data.length`,
157
+ * which is not "all" but "as many as there were at the instant somebody
158
+ * pressed it": a reader who chose All on twelve rows was on twelve per page,
159
+ * and the table quietly began paging the moment a thirteenth arrived. On an
160
+ * empty table the same press wrote 0, and a page of zero rows hid every row
161
+ * that came afterwards, for the life of the screen and, with a `storageKey`,
162
+ * for every session after it. A word cannot go stale, so the word is what is
163
+ * stored, what a controlled caller is handed, and what the chip compares
164
+ * itself against.
165
+ */
166
+ export declare const ALL_ITEMS = "all";
167
+ /** How many rows a page holds: a count, or every row there is. */
168
+ export type DataTableItemsPerPage = number | typeof ALL_ITEMS;
169
+ /**
170
+ * Row density for the compact variant. The two presets cover the two
171
+ * places a compact table usually sits:
172
+ *
173
+ * - 'compact' the 2xs header over the compact cell step, tight
174
+ * padding. For full-width list pages where density
175
+ * matters more than air.
176
+ * - 'comfortable' the small cell step with more padding and extra outer
177
+ * space on the first and last cells, so the rows align
178
+ * with the inner padding of the card they sit in.
179
+ *
180
+ * Has no effect on variant="default" since the default variant uses
181
+ * its own resizable column widths.
182
+ */
183
+ export type DataTableDensity = 'compact' | 'comfortable';
184
+ /**
185
+ * Every string the table renders on its own behalf, in one prop.
186
+ *
187
+ * ONE PROP RATHER THAN THIRTY. A table draws a lot of chrome it invents the
188
+ * words for, and each of those words is one a product may have to say
189
+ * differently or in another language. They are gathered here so the signature
190
+ * stays readable and so a caller can override one without restating the rest;
191
+ * `DATA_TABLE_LABELS` is the English default, exported so an override can
192
+ * start from it.
193
+ */
194
+ export interface DataTableLabels {
195
+ settings: string;
196
+ resetColumns: string;
197
+ resetConfirmed: string;
198
+ cancel: string;
199
+ apply: string;
200
+ settingsTitle: string;
201
+ itemsPerPage: string;
202
+ allItems: string;
203
+ /**
204
+ * HOW MANY ROWS All IS, read after the word itself, so the chip's whole name
205
+ * is "All 1,284 rows". The word alone is a promise with no size on it, and
206
+ * the size is what a reader is deciding: every row of a list of forty is a
207
+ * page, and every row of a list of forty thousand is a layout the browser
208
+ * will spend seconds on.
209
+ */
210
+ allItemsCount: (rows: number) => string;
211
+ wrapLines: string;
212
+ wrapLinesHint: string;
213
+ columnsSection: string;
214
+ columnsHint: string;
215
+ moveUp: (column: string) => string;
216
+ moveDown: (column: string) => string;
217
+ /** Why Move up does nothing, for the column already at the top. */
218
+ atTop: (column: string) => string;
219
+ atBottom: (column: string) => string;
220
+ /** The drag handle, which is also the arrow-key control beside it. */
221
+ reorder: (column: string) => string;
222
+ reorderHint: string;
223
+ /** Where a column landed, said after a move nobody can see happen. */
224
+ columnMoved: (column: string, position: number, of: number) => string;
225
+ /** Why a column's tick is fixed: the caller's rule, and the table's own. */
226
+ columnAlwaysShown: string;
227
+ columnLastShown: string;
228
+ pagination: string;
229
+ firstPage: string;
230
+ previousPage: string;
231
+ nextPage: string;
232
+ lastPage: string;
233
+ page: (page: number, of: number) => string;
234
+ /**
235
+ * WHICH ROWS THIS PAGE IS, said after which page it is. "Page 2 of 7" tells
236
+ * a reader where they are in the chrome; it does not tell them what they
237
+ * are looking at, and on a table whose page size the same panel sets, the
238
+ * range is the answer to both "how far in am I" and "how much is there".
239
+ */
240
+ pageRange: (from: number, to: number, total: number) => string;
241
+ expandRow: string;
242
+ collapseRow: string;
243
+ expandAll: string;
244
+ collapseAll: string;
245
+ resize: (column: string) => string;
246
+ /** The width a resize handle is at, for a reader who cannot see the edge. */
247
+ resizeWidth: (pixels: number) => string;
248
+ copyCell: (column: string) => string;
249
+ rowActions: string;
250
+ /** The action column's own header, for a reader moving across a row. */
251
+ actions: string;
252
+ /** Said of a row the caller marks archived, in that row's own title. */
253
+ archivedRow: (label: string) => string;
254
+ /** Read in place of the dash a cell with no value is drawn as. */
255
+ absent: string;
256
+ /** Said while the rows are being fetched and none are on screen yet. */
257
+ loading: string;
258
+ tone: Record<DataTableRowTone, string>;
259
+ }
260
+ export declare const DATA_TABLE_LABELS: DataTableLabels;
261
+ export interface DataTableProps<TRow = DataTableRow> {
262
+ data?: TRow[];
263
+ columns?: Record<string, DataTableColumn<TRow>>;
264
+ /**
265
+ * Where the operator's own layout choices are kept. Leave it out and the
266
+ * table reads no storage at all, which is what a surface whose state
267
+ * belongs in the URL wants.
268
+ *
269
+ * WHAT IS KEPT HERE, AND WHAT IS NOT. Two of this table's choices are facts
270
+ * about the browser somebody is reading in: whether cells wrap at this
271
+ * window width, and how wide each column was dragged. Those are stored, and
272
+ * only here. The other five, which page, how many rows a page holds, which
273
+ * columns are shown, in what order, and the sort, are facts about WHAT IS ON
274
+ * SCREEN: they are what a reader would send somebody, so each one has a
275
+ * controlled pair a screen can keep in its own history and hand back. A
276
+ * controlled choice is never written to storage, even with a key set, and
277
+ * never read from it either, because the caller holding it has somewhere
278
+ * better and the two would disagree on the first reload.
279
+ */
280
+ storageKey?: string;
281
+ defaultColumnOrder?: string[] | null;
282
+ /**
283
+ * The order the columns are drawn in, as a controlled pair with
284
+ * `onColumnOrderChange`. Names every declared column; a column the caller
285
+ * leaves out is put back beside the one it was declared after.
286
+ *
287
+ * Without the pair, the order a reader arranges in the settings frame lives
288
+ * in `localStorage` under `storageKey`, so it cannot be shared and, on a
289
+ * surface with no key, cannot survive a reload at all.
290
+ */
291
+ columnOrder?: string[];
292
+ onColumnOrderChange?: (next: string[]) => void;
293
+ defaultItemsPerPage?: DataTableItemsPerPage;
294
+ itemsPerPageOptions?: number[];
295
+ /**
296
+ * How many rows a page holds, as a controlled pair with
297
+ * `onItemsPerPageChange`. `ALL_ITEMS` is every row.
298
+ *
299
+ * Passing `onItemsPerPageChange` is also what offers the size to a table
300
+ * that does NOT slice its own rows: the number then means something (the
301
+ * caller reads it), so the frame draws the row of chips.
302
+ */
303
+ itemsPerPage?: DataTableItemsPerPage;
304
+ onItemsPerPageChange?: (next: DataTableItemsPerPage) => void;
305
+ /**
306
+ * Which page the table is on, 1-indexed, as a controlled pair with
307
+ * `onPageChange`. It is where the reader is, so it belongs in the screen's
308
+ * own history: a link to page four of an event log is a link somebody sends.
309
+ */
310
+ page?: number;
311
+ onPageChange?: (next: number) => void;
312
+ /**
313
+ * How many pages there are, for a caller that slices or fetches its own.
314
+ *
315
+ * Required to draw the chevrons for a table with `paginated={false}`, and
316
+ * not defaulted: a bound nobody supplied would be a Next button disabled on
317
+ * page one of a server's ten. With `paginated` on, the table counts its own
318
+ * rows and this is ignored.
319
+ */
320
+ pageCount?: number;
321
+ /**
322
+ * Minimum column width, in pixels, that the resize handle will
323
+ * honor. Operators can drag a column down to this width but no
324
+ * further; trying to shrink past it pins the column at the floor.
325
+ * Default 80px, which keeps short labels and the sort indicator
326
+ * legible without being chatty.
327
+ */
328
+ minColumnWidth?: number;
329
+ /**
330
+ * Enable the per-column drag-to-resize handle on every header.
331
+ * Defaults to true. Set to false on tables whose width should be
332
+ * controlled entirely by the fit-to-container pass (read-mostly
333
+ * lists, single-purpose tables that should not invite the
334
+ * operator to reflow the row). When off, no resize handles
335
+ * render anywhere on the table.
336
+ */
337
+ resizable?: boolean;
338
+ onRowAction?: ((row: TRow) => void) | null;
339
+ actionLabel?: string;
340
+ /** The action column's glyph. A component, not a name. */
341
+ actionIcon?: ReactNode;
342
+ getRowKey?: (row: TRow) => string | number;
343
+ /** Pulls the row key from a fixed property (alternative to getRowKey). */
344
+ rowKey?: string;
345
+ /**
346
+ * What an empty table says. A node, so an EmptyState with its own title,
347
+ * cause and action goes here: "nothing happened", "nothing could be read"
348
+ * and "not configured" are three different facts and a reader has to be
349
+ * told which one this is.
350
+ */
351
+ emptyMessage?: ReactNode;
352
+ /**
353
+ * What sits after the last row when there are no more to fetch. Left out,
354
+ * the end of the rows is silent, which is right for a table that is simply
355
+ * short and wrong for a feed somebody has paged to the bottom of.
356
+ */
357
+ endMessage?: ReactNode;
358
+ showActions?: boolean;
359
+ className?: string;
360
+ /**
361
+ * Visual treatment.
362
+ * - 'default': roomier cells with the settings cog in the Actions
363
+ * column header; suited to directory-style tables an operator
364
+ * reshapes and revisits.
365
+ * - 'compact': lighter chrome, tight padding, uppercase headers,
366
+ * full-row loading and error states, and the settings cog beside the
367
+ * pager rather than in the header row. That pair is drawn in the
368
+ * table's own bar, in its own header where it has one, or on the header
369
+ * of the card the table fills. Designed for dense list pages.
370
+ * Both variants honour `resizable` and open the same settings frame.
371
+ */
372
+ variant?: DataTableVariant;
373
+ /**
374
+ * Row density for the compact variant. Defaults to 'compact'.
375
+ * See the DataTableDensity docs for what each preset paints.
376
+ */
377
+ density?: DataTableDensity;
378
+ /**
379
+ * How tall the rows may grow before they scroll, which is ALSO what pins the
380
+ * column names and paints the band they need to be read over the rows
381
+ * passing behind them. A number is pixels; a string is any CSS length.
382
+ *
383
+ * ONE PROP, because a pinned header and a bounded body are one thing. The
384
+ * rows already sit in a scroller of their own (the table has to be able to
385
+ * overflow sideways, and a box that scrolls in one axis scrolls in both), so
386
+ * a `position: sticky` header pins against THAT box and against nothing
387
+ * else. Left unbounded it is as tall as its rows, never scrolls, and the
388
+ * pin has nothing to happen against: a table told to pin its header and not
389
+ * told how tall to be simply does not pin it, which is a boolean whose true
390
+ * case does nothing. Naming the height is the whole of what a caller has to
391
+ * decide, and it cannot be said without also meaning the pin.
392
+ *
393
+ * Unset, the rows are as tall as they are and the header row is an ordinary
394
+ * row of names on whatever the table stands on, which is what a table the
395
+ * PAGE scrolls wants.
396
+ */
397
+ maxBodyHeight?: number | string;
398
+ /**
399
+ * Controlled sort state. When provided, the table delegates sort to
400
+ * the caller (typical pairing: an external sort menu shares state
401
+ * with the column headers). When omitted, sort is internal.
402
+ */
403
+ sort?: DataTableSortState | null;
404
+ onSortChange?: (next: DataTableSortState | null) => void;
405
+ /**
406
+ * Which column the table opens sorted on, and which order Reset puts back.
407
+ *
408
+ * It seeds the sort only while the sort is the table's own, but it is what
409
+ * BOTH resets mean by "default" either way: a caller holding the sort still
410
+ * has to say what the default IS, or Reset to Default can only offer to
411
+ * order the rows by nothing.
412
+ */
413
+ defaultSort?: DataTableSortState | null;
414
+ /** What a second and third press on the same header do. */
415
+ sortCycle?: DataTableSortCycle;
416
+ /**
417
+ * Holds the order a sort produced until a header is pressed again.
418
+ *
419
+ * For a LIVE table. Without it, a table sorted by a number that a push
420
+ * updates re-ranks itself under the reader's cursor several times a second,
421
+ * so the row somebody is reading is not the row they click. With it, the
422
+ * order is taken once, when the sort is chosen; rows that arrive afterwards
423
+ * join the end until the next press re-ranks everything.
424
+ */
425
+ stableOrder?: boolean;
426
+ /**
427
+ * Multi-action menu per row. When supplied, an actions column is
428
+ * appended on the right that renders a kebab menu. Takes precedence
429
+ * over onRowAction (the single-button affordance).
430
+ */
431
+ rowActions?: (row: TRow) => Array<DataTableRowAction | null | undefined | false>;
432
+ /** Dim rows the predicate marks as archived, with a left edge accent. */
433
+ archivedPredicate?: (row: TRow) => boolean;
434
+ archivedLabel?: string;
435
+ /**
436
+ * Skeleton loading state. While true and no rows are present, the
437
+ * body renders shimmer bars inside the real table structure (one
438
+ * bar per visible column) so column alignment, paddings, and row
439
+ * heights match the data that replaces them, no layout shift when
440
+ * the fetch lands. Tables that already have rows keep showing them
441
+ * during a refresh.
442
+ */
443
+ loading?: boolean;
444
+ /** Number of shimmer rows painted while loading. Default 5. */
445
+ skeletonRows?: number;
446
+ /** Renders a single full-row error message when truthy. Wins over empty. */
447
+ error?: ReactNode;
448
+ /**
449
+ * Whether the TABLE slices the rows into pages. When false the caller
450
+ * slices them, and says how many there are with `pageCount` if it wants the
451
+ * chevrons drawn.
452
+ */
453
+ paginated?: boolean;
454
+ /** When false, the settings cog and Actions column header are suppressed. */
455
+ showSettings?: boolean;
456
+ /**
457
+ * Fires when a row's surface is clicked. Used by click-to-detail tables
458
+ * (an order row opening its detail page, a log entry opening a drawer).
459
+ * The row becomes focusable and takes Enter and Space, and a press that
460
+ * began on a control inside the row belongs to that control alone.
461
+ */
462
+ onRowClick?: (row: TRow) => void;
463
+ /**
464
+ * Where a row leads, for a row that navigates.
465
+ *
466
+ * A REAL LINK, not a click handler: the first cell carries an anchor whose
467
+ * hit area covers the row, so the row can be opened in a new tab, its
468
+ * address copied, and read by a screen reader as the link it is. Prefer it
469
+ * to `onRowClick` wherever the destination is a URL.
470
+ */
471
+ getRowHref?: (row: TRow) => string | null | undefined;
472
+ /**
473
+ * Marks a row as a state. The row takes a rail in the tone's colour and a
474
+ * word for a reader who cannot see the rail, because colour is never the
475
+ * only carrier of a state.
476
+ */
477
+ rowTone?: (row: TRow) => DataTableRowTone | null | undefined;
478
+ /** Whether a row is the selected one: `aria-selected` and the selection ring. */
479
+ isSelected?: (row: TRow) => boolean;
480
+ /**
481
+ * Optional secondary row rendered immediately below each main row,
482
+ * spanning the full column width. Returning null skips it for that
483
+ * row. Used by tree-like tables (for example API keys grouped under
484
+ * their owner) where each entity owns an attached detail strip that
485
+ * visually belongs to the main row but does not share its column
486
+ * layout.
487
+ */
488
+ renderAccessoryRow?: (row: TRow) => ReactNode | null | undefined;
489
+ /**
490
+ * Slot rendered above the table header (and inside the same root
491
+ * wrapper) for filter bars, search inputs, or batch-action toolbars.
492
+ * uilet is intentionally agnostic about what goes here, the caller
493
+ * composes whichever primitives match its domain (Select, Input,
494
+ * datetime-local, etc.). The slot is rendered exactly once per
495
+ * mount, regardless of pagination state.
496
+ */
497
+ renderToolbar?: ReactNode;
498
+ /**
499
+ * A band BETWEEN the toolbar and the rows, inside the same panel, for what
500
+ * the toolbar has switched on: the chips a list screen draws for its active
501
+ * filters, a selection count, a batch action bar.
502
+ *
503
+ * It is a slot of its own rather than more of `renderToolbar` because the
504
+ * two are different rows: the toolbar is a row of controls the table's own
505
+ * pagination and settings share, and this is the state those controls
506
+ * produced. Stacked into one slot, the controls at the table's right edge
507
+ * would centre themselves against a two-line block. Left out, no band is
508
+ * drawn at all, so a screen with no chips on has no empty strip.
509
+ */
510
+ renderFilterBar?: ReactNode;
511
+ /**
512
+ * Clear-filters affordance for tables whose renderToolbar slot
513
+ * carries filter controls. When onClearFilters is supplied and
514
+ * filtersActive is true, a "Clear filters" link button renders at
515
+ * the end of the filter slot; clicking it fires the callback so
516
+ * the caller resets its own filter state. The button stays hidden
517
+ * while filtersActive is false so an untouched toolbar carries no
518
+ * dead control.
519
+ */
520
+ onClearFilters?: () => void;
521
+ filtersActive?: boolean;
522
+ /** Label override for the clear-filters button. */
523
+ clearFiltersLabel?: string;
524
+ /**
525
+ * A value that changes whenever the caller's own filters change, so the
526
+ * table can go back to the first page.
527
+ *
528
+ * THE PAGE IS RESET BY A FILTER OR A SORT, AND BY NOTHING ELSE. It used to
529
+ * reset whenever the row COUNT changed, which on a live table is whenever
530
+ * anything happened: a reader on page four of an activity feed was thrown
531
+ * back to page one by an event they were not looking at.
532
+ */
533
+ filterKey?: string | number;
534
+ /**
535
+ * Which columns are shown, as a controlled pair with
536
+ * `onVisibleColumnsChange`.
537
+ *
538
+ * Without the pair the table owns the choice and keeps it in
539
+ * `localStorage` under `storageKey`, so a surface that passes neither can
540
+ * never bring back a column hidden by `defaultVisible: false`. Supplied,
541
+ * the caller keeps it wherever its other state lives, which for a dashboard
542
+ * screen is the URL.
543
+ *
544
+ * EITHER WAY, THE SETTINGS FRAME IS THE WAY IN, so a caller that passes the
545
+ * pair and `showSettings={false}` has taken the reader's way in with it and
546
+ * owes them a control of its own. The pair still drives the table: what it
547
+ * says is what is drawn, whoever changed it.
548
+ */
549
+ visibleColumns?: Record<string, boolean>;
550
+ onVisibleColumnsChange?: (next: Record<string, boolean>) => void;
551
+ /**
552
+ * When supplied, each row becomes expandable. The chevron button in the
553
+ * leading cell toggles a detail panel rendered immediately below the row,
554
+ * spanning the full column width. Returning null from the function
555
+ * suppresses expansion for that row.
556
+ *
557
+ * Mutually exclusive with onRowClick (expansion takes the click);
558
+ * combine with rowActions freely since the kebab stops propagation.
559
+ * ANY NUMBER OF ROWS MAY BE OPEN AT ONCE: opening one closes nothing, and
560
+ * the header chevron opens or closes every row on the page.
561
+ */
562
+ renderExpandedRow?: (row: TRow) => ReactNode | null | undefined;
563
+ /** Optional initial expanded row key (resolved via the row-key resolver). */
564
+ defaultExpandedKey?: string | number | null;
565
+ /**
566
+ * Cursor-pagination footer. When hasMore is true, the table renders
567
+ * a centered "Load more" button below the rows that fires onLoadMore.
568
+ * The button is disabled while loadingMore is true. When hasMore is
569
+ * false, `endMessage` says so, or nothing does.
570
+ *
571
+ * Independent from the built-in client-side paginated prop: cursor
572
+ * pagination is server-driven (caller fetches and appends rows),
573
+ * client pagination slices a fully loaded dataset.
574
+ */
575
+ hasMore?: boolean;
576
+ onLoadMore?: () => void;
577
+ loadingMore?: boolean;
578
+ loadMoreLabel?: string;
579
+ /**
580
+ * Optional table header rendered above the toolbar. The title is the
581
+ * section name (e.g. "Projects"), the description is a one-line
582
+ * explanation of what the rows represent, and icon is an optional
583
+ * glyph rendered to the left of the title (the same icon, title and
584
+ * description header a settings card uses). Folding them into the table
585
+ * primitive lets the entire surface, header + toolbar + table, share the
586
+ * same card boundary and spacing without each caller recomposing the
587
+ * `<header><h2/><p/></header>` pattern.
588
+ *
589
+ * When a header is present, the table's right-side controls
590
+ * (pagination chevrons + settings cog) move ONTO the header row so
591
+ * the section title and the controls share the same line. The
592
+ * caller-supplied filter slot (renderToolbar) renders on its own
593
+ * row below the header.
594
+ *
595
+ * A TABLE THAT FILLS A CARD USUALLY WANTS THE CARD'S HEADER INSTEAD, which
596
+ * carries the icon, the name and the count, and which takes the same
597
+ * controls with nothing passed: see `Card.Header` and `useCardHeaderSlot`.
598
+ * This one is for a table that is the whole of its own surface.
599
+ */
600
+ title?: ReactNode;
601
+ description?: ReactNode;
602
+ /** The header's glyph. A component, not a name. */
603
+ icon?: ReactNode;
604
+ /**
605
+ * Initial value for the Wrap lines toggle.
606
+ * When true, cells wrap their content with overflow-wrap: anywhere.
607
+ * When false, cells stay on a single line and truncate with an
608
+ * ellipsis. Persisted under `${storageKey}_wrapLines` when a
609
+ * storageKey is provided.
610
+ */
611
+ defaultWrapLines?: boolean;
612
+ /** Every string the table renders itself. Merged over the English defaults. */
613
+ labels?: Partial<DataTableLabels>;
614
+ }
615
+ export declare const DataTable: <TRow>({ data, columns, storageKey, defaultColumnOrder, columnOrder: columnOrderProp, onColumnOrderChange, defaultItemsPerPage, itemsPerPage: itemsPerPageProp, onItemsPerPageChange, page: pageProp, onPageChange, pageCount, minColumnWidth, resizable, itemsPerPageOptions, onRowAction, actionLabel, actionIcon, getRowKey, rowKey, emptyMessage, endMessage, showActions, className, variant, density, maxBodyHeight, sort: sortProp, onSortChange, defaultSort, sortCycle, stableOrder, rowActions, archivedPredicate, archivedLabel, loading, skeletonRows, error, paginated, showSettings, onRowClick, getRowHref, rowTone, isSelected, renderAccessoryRow, renderToolbar, renderFilterBar, onClearFilters, filtersActive, clearFiltersLabel, filterKey, visibleColumns: visibleColumnsProp, onVisibleColumnsChange, renderExpandedRow, defaultExpandedKey, hasMore, onLoadMore, loadingMore, loadMoreLabel, title, description, icon, defaultWrapLines, labels: labelOverrides, }: DataTableProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import type { DataTableRowAction } from './DataTable.js';
2
+ export interface RowActionsMenuProps {
3
+ actions: Array<DataTableRowAction | null | undefined | false>;
4
+ /** The trigger's accessible name. */
5
+ label?: string;
6
+ }
7
+ export declare const RowActionsMenu: ({ actions, label }: RowActionsMenuProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,7 @@
1
+ import './DataTable.css';
2
+ export { DataTable, DATA_TABLE_LABELS, ALL_ITEMS } from './DataTable.js';
3
+ export type { DataTableColumn, DataTableDensity, DataTableItemsPerPage, DataTableLabels, DataTableProps, DataTableRow, DataTableRowAction, DataTableRowTone, DataTableSortCycle, DataTableSortDirection, DataTableSortState, DataTableVariant, } from './DataTable.js';
4
+ export { CopyableCell } from './CopyableCell.js';
5
+ export type { CopyableCellProps } from './CopyableCell.js';
6
+ export { RowActionsMenu } from './RowActionsMenu.js';
7
+ export type { RowActionsMenuProps } from './RowActionsMenu.js';
@@ -0,0 +1,14 @@
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-EHMQQHYR.js';
2
+ import '../chunk-FBZAKNSX.js';
3
+ import '../chunk-EUCC37WY.js';
4
+ import '../chunk-2EOKFKHX.js';
5
+ import '../chunk-AV2DXAEL.js';
6
+ import '../chunk-2PRH365R.js';
7
+ import '../chunk-V663QU4R.js';
8
+ import '../chunk-PQADV6P6.js';
9
+ import '../chunk-7RPGY3JE.js';
10
+ import '../chunk-ITHXJHBB.js';
11
+ import '../chunk-F27EPQ7D.js';
12
+ import '../chunk-BZYDZBAN.js';
13
+ import '../chunk-BZFWDIV6.js';
14
+ import '../chunk-ODEQTPFM.js';