@marktiderman/genesis-ui 2.8.0 → 2.10.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 (33) hide show
  1. package/SKILL.md +75 -4
  2. package/dist/{AppShell-LXQykEqe.d.ts → AppShell-BVr4V0UK.d.ts} +1 -110
  3. package/dist/PageHeader-V9lVkZtF.d.ts +114 -0
  4. package/dist/{chunk-S7NXD37O.js → chunk-25XEXYGC.js} +4 -4
  5. package/dist/chunk-25XEXYGC.js.map +1 -0
  6. package/dist/chunk-C7PQ54JI.js +763 -0
  7. package/dist/chunk-C7PQ54JI.js.map +1 -0
  8. package/dist/chunk-DIV4BYXX.js +58 -0
  9. package/dist/chunk-DIV4BYXX.js.map +1 -0
  10. package/dist/chunk-I4NBE2KL.js +16 -0
  11. package/dist/chunk-I4NBE2KL.js.map +1 -0
  12. package/dist/{chunk-DWCAC2E7.js → chunk-RKPS7ERS.js} +5 -4
  13. package/dist/chunk-RKPS7ERS.js.map +1 -0
  14. package/dist/components/data/index.d.ts +42 -949
  15. package/dist/components/data/index.js +962 -777
  16. package/dist/components/data/index.js.map +1 -1
  17. package/dist/components/layout/index.d.ts +2 -1
  18. package/dist/components/layout/index.js +7 -7
  19. package/dist/components/patterns/index.js +2 -1
  20. package/dist/components/patterns/sortable-list.js +2 -1
  21. package/dist/hooks/index.d.ts +8 -1
  22. package/dist/hooks/index.js +4 -1
  23. package/dist/hooks/use-resource-page.d.ts +1 -1
  24. package/dist/hooks/use-resource-page.js +1 -1
  25. package/dist/hooks/use-resource-url-state.d.ts +68 -0
  26. package/dist/hooks/use-resource-url-state.js +3 -0
  27. package/dist/hooks/use-resource-url-state.js.map +1 -0
  28. package/dist/index.js +21 -20
  29. package/dist/{use-resource-page-D4byuwAs.d.ts → use-resource-page-DaJzuq3M.d.ts} +63 -2
  30. package/dist/use-resource-table-DCVf_lEG.d.ts +1113 -0
  31. package/package.json +4 -8
  32. package/dist/chunk-DWCAC2E7.js.map +0 -1
  33. package/dist/chunk-S7NXD37O.js.map +0 -1
@@ -1,5 +1,6 @@
1
- export { A as AppShell, a as AppShellOptions, b as AppShellProps, N as NavItem, P as PageHeader, c as PageHeaderOptions, d as PageHeaderProps, e as ParentNavigation } from '../../AppShell-LXQykEqe.js';
1
+ export { A as AppShell, a as AppShellOptions, b as AppShellProps, N as NavItem, P as ParentNavigation } from '../../AppShell-BVr4V0UK.js';
2
2
  export { G as GenesisLinkProps, L as LinkComponent, N as NavigationNode, R as ResolvedNavigation, r as resolveNavigation } from '../../navigation-Bha0R3Fu.js';
3
+ export { P as PageHeader, a as PageHeaderOptions, b as PageHeaderProps } from '../../PageHeader-V9lVkZtF.js';
3
4
  export { DetailPage, DetailPageProps } from './detail-page.js';
4
5
  export { FormPage, FormPageProps } from './form-page.js';
5
6
  export { D as DashboardPage, a as DashboardPageProps, G as Grid, b as GridProps, g as gridVariants } from '../../dashboard-page-C0TihRl5.js';
@@ -1,19 +1,19 @@
1
1
  export { AppShell, PageHeader } from '../../chunk-UYI3GLFJ.js';
2
2
  import '../../chunk-46TZGMFW.js';
3
3
  export { Container, Stack, containerVariants, stackVariants } from '../../chunk-4CQHPWJD.js';
4
- export { DashboardPage, Grid, gridVariants } from '../../chunk-ARJI2JUV.js';
5
- export { FormPage } from '../../chunk-MPI33I4K.js';
6
- import '../../chunk-OZZTPE7F.js';
7
- export { Section, SettingsPage, sectionHeadingVariants } from '../../chunk-P64MFQXZ.js';
8
4
  import '../../chunk-B2GIBUQD.js';
9
5
  import '../../chunk-NPNADZHM.js';
10
- export { DetailPage } from '../../chunk-AFZ76Q26.js';
11
- export { Split, splitVariants } from '../../chunk-D2LIXA2Y.js';
12
- export { GAP_CLASSES, spaceScale } from '../../chunk-AVFZ4P4B.js';
13
6
  import '../../chunk-FK42ZGGV.js';
14
7
  import '../../chunk-QJ6P2DW6.js';
15
8
  import '../../chunk-27ELYTGE.js';
16
9
  import '../../chunk-22XB3Q6H.js';
10
+ export { DashboardPage, Grid, gridVariants } from '../../chunk-ARJI2JUV.js';
11
+ export { DetailPage } from '../../chunk-AFZ76Q26.js';
12
+ export { FormPage } from '../../chunk-MPI33I4K.js';
13
+ import '../../chunk-OZZTPE7F.js';
14
+ export { Section, SettingsPage, sectionHeadingVariants } from '../../chunk-P64MFQXZ.js';
15
+ export { Split, splitVariants } from '../../chunk-D2LIXA2Y.js';
16
+ export { GAP_CLASSES, spaceScale } from '../../chunk-AVFZ4P4B.js';
17
17
  import '../../chunk-NWSCYLPT.js';
18
18
  import '../../chunk-F47U5KNW.js';
19
19
  import '../../chunk-NZ5WBA4R.js';
@@ -1,5 +1,5 @@
1
1
  export { ViewSettings, ViewToggle } from '../../chunk-46TZGMFW.js';
2
- export { SortableList } from '../../chunk-S7NXD37O.js';
2
+ export { SortableList } from '../../chunk-25XEXYGC.js';
3
3
  export { StatusBadge, statusBadgeVariants } from '../../chunk-XMK3T4TA.js';
4
4
  export { ToggleRow } from '../../chunk-6M4NHHKG.js';
5
5
  export { SettingsRow } from '../../chunk-A7AHVDG7.js';
@@ -7,6 +7,7 @@ export { UserAvatar, userAvatarVariants } from '../../chunk-XBX6QMR5.js';
7
7
  import '../../chunk-LNFF2RBD.js';
8
8
  export { PageLoading, pageLoadingVariants } from '../../chunk-YRYQXU3G.js';
9
9
  import '../../chunk-OVU3Z2MT.js';
10
+ import '../../chunk-I4NBE2KL.js';
10
11
  import '../../chunk-FK42ZGGV.js';
11
12
  import '../../chunk-QJ6P2DW6.js';
12
13
  import '../../chunk-27ELYTGE.js';
@@ -1,4 +1,5 @@
1
- export { SortableList } from '../../chunk-S7NXD37O.js';
1
+ export { SortableList } from '../../chunk-25XEXYGC.js';
2
+ import '../../chunk-I4NBE2KL.js';
2
3
  import '../../chunk-QJ6P2DW6.js';
3
4
  import '../../chunk-NZ5WBA4R.js';
4
5
  //# sourceMappingURL=sortable-list.js.map
@@ -6,9 +6,16 @@ export { ResponsiveViewMode, ViewModeDefault, useViewPreference } from './use-vi
6
6
  export { Density, ViewSettings, useViewSettings } from './use-view-settings.js';
7
7
  export { UseSavedViewsReturn, useSavedViews } from './use-saved-views.js';
8
8
  export { RouteMap, createPrefetch } from './use-prefetch.js';
9
- export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, u as useResourcePage } from '../use-resource-page-D4byuwAs.js';
9
+ export { R as ResourceTableState, u as useResourceTable } from '../use-resource-table-DCVf_lEG.js';
10
+ export { ResourceUrlParams, ResourceUrlState, ResourceUrlStateOptions, useResourceUrlState } from './use-resource-url-state.js';
11
+ export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, u as useResourcePage } from '../use-resource-page-DaJzuq3M.js';
10
12
  export { CommandPalette, CommandPaletteItem, CommandPaletteProps, useCommandPaletteHotkey } from '../components/ui/command-palette.js';
11
13
  import '../navigation-Bha0R3Fu.js';
12
14
  import 'react';
13
15
  import '../view-toggle-CahQ87PW.js';
16
+ import 'lucide-react';
17
+ import 'react-hook-form';
18
+ import '../PageHeader-V9lVkZtF.js';
19
+ import '@marktiderman/genesis-core';
20
+ import '../slots-tR0wf89f.js';
14
21
  import '@marktiderman/genesis-core/provider';
@@ -1,7 +1,10 @@
1
- export { useResourcePage } from '../chunk-DWCAC2E7.js';
1
+ export { useResourceTable } from '../chunk-C7PQ54JI.js';
2
+ export { useResourcePage } from '../chunk-RKPS7ERS.js';
3
+ export { useResourceUrlState } from '../chunk-DIV4BYXX.js';
2
4
  export { useSavedViews } from '../chunk-GCQFVMPI.js';
3
5
  export { useViewPreference } from '../chunk-PKFDGGZV.js';
4
6
  export { useViewSettings } from '../chunk-OZ7ZAYCS.js';
7
+ import '../chunk-4RAZJ6LL.js';
5
8
  export { CommandPalette, useCommandPaletteHotkey } from '../chunk-CNTWQSUT.js';
6
9
  import '../chunk-SEFK4NZV.js';
7
10
  import '../chunk-7XMZVISM.js';
@@ -1,5 +1,5 @@
1
1
  import 'react';
2
- export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, t as titleCase, u as useResourcePage } from '../use-resource-page-D4byuwAs.js';
2
+ export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, t as titleCase, u as useResourcePage } from '../use-resource-page-DaJzuq3M.js';
3
3
  import '../view-toggle-CahQ87PW.js';
4
4
  import '@marktiderman/genesis-core/provider';
5
5
  import './use-view-preference.js';
@@ -1,4 +1,4 @@
1
- export { titleCase, useResourcePage } from '../chunk-DWCAC2E7.js';
1
+ export { titleCase, useResourcePage } from '../chunk-RKPS7ERS.js';
2
2
  import '../chunk-PKFDGGZV.js';
3
3
  import '../chunk-VFO3I7PV.js';
4
4
  //# sourceMappingURL=use-resource-page.js.map
@@ -0,0 +1,68 @@
1
+ import { S as SearchParamsAdapter } from '../navigation-Bha0R3Fu.js';
2
+ import { SortParam } from '@marktiderman/genesis-core/provider';
3
+ import 'react';
4
+
5
+ /**
6
+ * The query-string names a list keeps its state under. Rename one when two
7
+ * lists share a page, or when `id` already means something in your routes.
8
+ *
9
+ * @stability Beta
10
+ */
11
+ interface ResourceUrlParams {
12
+ /** The open record's key. Default `"id"`. */
13
+ detail?: string;
14
+ /** The page number (from 1). Default `"page"`. */
15
+ page?: string;
16
+ /** `field:asc` or `field:desc`. Default `"sort"`. */
17
+ sort?: string;
18
+ /** The search text. Default `"q"`. */
19
+ q?: string;
20
+ }
21
+ /**
22
+ * Where a list's state lives in the URL: the router's search params, plus
23
+ * optional names for each value.
24
+ *
25
+ * @stability Beta
26
+ */
27
+ interface ResourceUrlStateOptions {
28
+ searchParams: SearchParamsAdapter;
29
+ params?: ResourceUrlParams;
30
+ }
31
+ /** @stability Beta */
32
+ interface ResourceUrlState {
33
+ /** The open record's key, or null when no record is open. */
34
+ detailId: string | null;
35
+ /** Open a record (a new history entry, so Back closes it) or close it (null; replaces). */
36
+ setDetailId: (id: string | null) => void;
37
+ /** The page from the URL, or null when absent or not a positive integer. */
38
+ page: number | null;
39
+ /** The sort from the URL, or null. */
40
+ sort: SortParam | null;
41
+ /** The search text from the URL ("" when absent). */
42
+ q: string;
43
+ /**
44
+ * Write page, sort and search. Replaces the history entry (typing a search
45
+ * shouldn't fill Back with every keystroke). A default value (page 1, no
46
+ * sort, empty search) is dropped from the URL; `undefined` leaves a value as is.
47
+ */
48
+ write: (next: {
49
+ page?: number | null;
50
+ sort?: SortParam | null;
51
+ q?: string;
52
+ }) => void;
53
+ }
54
+ /**
55
+ * A list's peek, page, sort and search, kept in the URL through any
56
+ * {@link SearchParamsAdapter} (the browser's, React Router's or TanStack
57
+ * Router's). The URL is the source of truth: a copied link reopens the same
58
+ * record on the same page, and Back closes a record that was opened.
59
+ *
60
+ * `ResourcePage` uses it when given `urlState`; a server-controlled page
61
+ * that owns its own page/sort/search can call it directly.
62
+ *
63
+ * @stability Beta
64
+ */
65
+ declare function useResourceUrlState(options: ResourceUrlStateOptions): ResourceUrlState;
66
+ declare function useResourceUrlState(options: ResourceUrlStateOptions | undefined): ResourceUrlState | undefined;
67
+
68
+ export { type ResourceUrlParams, type ResourceUrlState, type ResourceUrlStateOptions, useResourceUrlState };
@@ -0,0 +1,3 @@
1
+ export { useResourceUrlState } from '../chunk-DIV4BYXX.js';
2
+ //# sourceMappingURL=use-resource-url-state.js.map
3
+ //# sourceMappingURL=use-resource-url-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"use-resource-url-state.js"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
+ export { VisuallyHidden } from './chunk-SY62XJFA.js';
1
2
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-VXFYETRK.js';
2
3
  export { ToggleGroup, ToggleGroupItem } from './chunk-NUXW6NPP.js';
3
4
  export { H1, H2, H3, H4, Large, Lead, Muted, P, Small } from './chunk-HVQCZFJ7.js';
4
- export { VisuallyHidden } from './chunk-SY62XJFA.js';
5
5
  export { Slider } from './chunk-PSR47JRA.js';
6
- export { Toaster, toast } from './chunk-4RAZJ6LL.js';
6
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from './chunk-THD3YOOZ.js';
7
7
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './chunk-IJCT5IJD.js';
8
8
  export { PasswordToggleField, PasswordToggleFieldIcon, PasswordToggleFieldInput, PasswordToggleFieldSlot, PasswordToggleFieldToggle } from './chunk-SRIT4NFQ.js';
9
9
  export { RadioGroup, RadioGroupItem } from './chunk-ZZ7H7VVX.js';
@@ -13,7 +13,6 @@ export { HoverCard, HoverCardContent, HoverCardTrigger } from './chunk-P3ZL6FGR.
13
13
  export { InputGroup, InputGroupInput, InputGroupPrefix, InputGroupSuffix } from './chunk-GJ6XSCNF.js';
14
14
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from './chunk-K23AQNOM.js';
15
15
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from './chunk-AL5TMEZQ.js';
16
- export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from './chunk-THD3YOOZ.js';
17
16
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './chunk-6TVMQH6M.js';
18
17
  export { DatePicker } from './chunk-6XPMU65K.js';
19
18
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-JYPENH7T.js';
@@ -25,47 +24,49 @@ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartToolt
25
24
  export { AccessibleIcon } from './chunk-JAMLFMDS.js';
26
25
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './chunk-YWFPMND7.js';
27
26
  export { AspectRatio } from './chunk-6Q6CLLJ4.js';
28
- export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarVariants } from './chunk-YYEGAFUE.js';
29
- export { Toggle, toggleVariants } from './chunk-C46ITXE4.js';
30
- export { Tooltip } from './chunk-G5YKBPBF.js';
31
- export { Kbd } from './chunk-FFSDFQQN.js';
32
- export { Container, Stack, containerVariants, stackVariants } from './chunk-4CQHPWJD.js';
33
- export { DashboardPage, Grid, gridVariants } from './chunk-ARJI2JUV.js';
34
- export { FormPage } from './chunk-MPI33I4K.js';
35
- export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-OZZTPE7F.js';
36
- export { Section, SettingsPage, sectionHeadingVariants } from './chunk-P64MFQXZ.js';
37
- export { SortableList } from './chunk-S7NXD37O.js';
27
+ export { SortableList } from './chunk-25XEXYGC.js';
38
28
  export { StatusBadge, statusBadgeVariants } from './chunk-XMK3T4TA.js';
39
29
  export { ToggleRow } from './chunk-6M4NHHKG.js';
40
30
  export { SettingsRow } from './chunk-A7AHVDG7.js';
41
31
  export { UserAvatar, userAvatarVariants } from './chunk-XBX6QMR5.js';
42
32
  export { Avatar, AvatarFallback, AvatarImage } from './chunk-LNFF2RBD.js';
33
+ export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarVariants } from './chunk-YYEGAFUE.js';
34
+ export { Toggle, toggleVariants } from './chunk-C46ITXE4.js';
35
+ export { Tooltip } from './chunk-G5YKBPBF.js';
36
+ export { Kbd } from './chunk-FFSDFQQN.js';
43
37
  export { renderSlot } from './chunk-7S7LKQBD.js';
38
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-N2ZFNOOT.js';
44
39
  export { Textarea } from './chunk-YETMISCE.js';
45
40
  export { Separator } from './chunk-SXSCHWZU.js';
46
41
  export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from './chunk-XCGZPFT7.js';
47
42
  export { Skeleton } from './chunk-QFM4Z2SS.js';
48
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-N2ZFNOOT.js';
49
43
  export { Progress } from './chunk-W5Y3LG5K.js';
50
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-FN3FZVUR.js';
51
44
  export { Checkbox } from './chunk-SEBU6JCK.js';
45
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-FN3FZVUR.js';
52
46
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-4C4ESW6O.js';
47
+ export { PageLoading, pageLoadingVariants } from './chunk-YRYQXU3G.js';
48
+ export { Spinner } from './chunk-OVU3Z2MT.js';
49
+ import './chunk-I4NBE2KL.js';
53
50
  export { Input } from './chunk-QSXVL5UB.js';
51
+ export { Container, Stack, containerVariants, stackVariants } from './chunk-4CQHPWJD.js';
54
52
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-B2GIBUQD.js';
55
53
  export { Badge } from './chunk-NPNADZHM.js';
56
- export { DetailPage } from './chunk-AFZ76Q26.js';
57
- export { Split, splitVariants } from './chunk-D2LIXA2Y.js';
58
- export { GAP_CLASSES, spaceScale } from './chunk-AVFZ4P4B.js';
59
- export { PageLoading, pageLoadingVariants } from './chunk-YRYQXU3G.js';
60
- export { Spinner } from './chunk-OVU3Z2MT.js';
61
54
  export { Select, SelectContent, SelectGroup, SelectItem, SelectScrollDownButton, SelectScrollUpButton, SelectTrigger, SelectValue } from './chunk-FK42ZGGV.js';
62
55
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-QJ6P2DW6.js';
63
56
  export { Switch } from './chunk-27ELYTGE.js';
64
57
  export { Popover, PopoverContent, PopoverTrigger } from './chunk-22XB3Q6H.js';
58
+ export { DashboardPage, Grid, gridVariants } from './chunk-ARJI2JUV.js';
59
+ export { DetailPage } from './chunk-AFZ76Q26.js';
60
+ export { FormPage } from './chunk-MPI33I4K.js';
61
+ export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-OZZTPE7F.js';
62
+ export { Section, SettingsPage, sectionHeadingVariants } from './chunk-P64MFQXZ.js';
63
+ export { Split, splitVariants } from './chunk-D2LIXA2Y.js';
64
+ export { GAP_CLASSES, spaceScale } from './chunk-AVFZ4P4B.js';
65
65
  export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './chunk-65SPT7EA.js';
66
66
  export { Button } from './chunk-NWSCYLPT.js';
67
67
  export { FormDescription, FormError, FormField, FormLabel } from './chunk-R7QFP6EL.js';
68
68
  export { Label } from './chunk-F47U5KNW.js';
69
+ export { Toaster, toast } from './chunk-4RAZJ6LL.js';
69
70
  export { CommandPalette, useCommandPaletteHotkey } from './chunk-CNTWQSUT.js';
70
71
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from './chunk-SEFK4NZV.js';
71
72
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-7XMZVISM.js';
@@ -72,8 +72,63 @@ interface DataTableProps<T> {
72
72
  * - spacious: taller (py-3)
73
73
  */
74
74
  density?: Density;
75
+ /**
76
+ * Keyboard use of rows when `onRowClick` is set. Each row's open column
77
+ * (see `openColumn`) is a button named by its content, and the table is
78
+ * one tab stop: Tab reaches the current row's button, Enter or Space
79
+ * opens it, ↑/↓ (or j/k) and Home/End move between rows, and x toggles
80
+ * the row's selection when `selectable`. Default true.
81
+ */
82
+ keyboardNavigation?: boolean;
83
+ /**
84
+ * The column whose cell opens the row (as a button), by key. Default: the
85
+ * first visible column that isn't `editable`. A plain-text cell is wrapped
86
+ * by the button; an `editable` or `render` cell keeps its own content (a
87
+ * link or input stays usable) with the open button beside it, shown when
88
+ * focused. `null` makes no cell a button (mouse only).
89
+ */
90
+ openColumn?: string | null;
91
+ /**
92
+ * Render only the rows in view, for a long table without pagination
93
+ * (`pagination={false}`). The table scrolls inside a box of `height` px
94
+ * (default 600). Ignored while paginated.
95
+ */
96
+ virtualize?: boolean | {
97
+ height?: number;
98
+ estimateRowHeight?: number;
99
+ };
100
+ /**
101
+ * Columns that stay in view when the table scrolls sideways, by key, on
102
+ * the left and right. `stickyFirstColumn` is shorthand for pinning the
103
+ * first visible column left.
104
+ */
105
+ pinnedColumns?: {
106
+ left?: string[];
107
+ right?: string[];
108
+ };
109
+ /**
110
+ * Let users reorder columns: drag a header, or press Alt+←/→ on its sort
111
+ * button. Default true; the order is kept per device under
112
+ * `columnOrderKey`, and "Reset to defaults" in the Columns menu restores it.
113
+ */
114
+ reorderableColumns?: boolean;
115
+ /** localStorage key for the user's column order. */
116
+ columnOrderKey?: string;
117
+ /**
118
+ * The header sort, controlled: the first entry is the primary sort, later
119
+ * ones break ties (Shift-click adds one). Leave it unset and the table
120
+ * keeps its own sort, starting unsorted.
121
+ */
122
+ sort?: readonly DataTableSort[];
123
+ /** Called with the next header sort whenever a header is clicked. */
124
+ onSortChange?: (sort: DataTableSort[]) => void;
75
125
  }
76
- declare function DataTable<T>({ items, columns, getKey, onRowClick, selectable, selected, onToggleSelect, onToggleAll, renderActions, emptyMessage, columnVisibility, columnVisibilityKey, resizableColumns, pagination, pageSize: initialPageSize, pageSizeOptions, stickyHeader, resizeKey, stickyFirstColumn, density, }: DataTableProps<T>): React.JSX.Element;
126
+ /** One column of a `DataTable` header sort. */
127
+ interface DataTableSort {
128
+ key: string;
129
+ dir: "asc" | "desc";
130
+ }
131
+ declare function DataTable<T>({ items, columns, getKey, onRowClick, selectable, selected, onToggleSelect, onToggleAll, renderActions, emptyMessage, columnVisibility, columnVisibilityKey, resizableColumns, pagination, pageSize: initialPageSize, pageSizeOptions, stickyHeader, resizeKey, stickyFirstColumn, density, keyboardNavigation, openColumn, virtualize, pinnedColumns, reorderableColumns, columnOrderKey, sort: sortProp, onSortChange, }: DataTableProps<T>): React.JSX.Element;
77
132
  declare function ThumbnailCell({ src, alt, }: {
78
133
  src?: string | null;
79
134
  alt: string;
@@ -136,6 +191,12 @@ interface UseResourcePageProps<T> {
136
191
  * a table on desktops); only an explicit pick is persisted.
137
192
  */
138
193
  defaultView?: ViewModeDefault;
194
+ /**
195
+ * Where the table/cards/list choice is remembered. Default: `resource`,
196
+ * else one key shared by every keyless page — so pages without a
197
+ * `resource` (rows passed in) should each set their own.
198
+ */
199
+ viewKey?: string;
139
200
  /** Detail interaction mode. */
140
201
  detail?: "panel" | "modal" | "route" | "none";
141
202
  /** Field used for the detail title. Defaults to first column key. */
@@ -207,4 +268,4 @@ interface UseResourcePageReturn<T> {
207
268
  declare function titleCase(str: string): string;
208
269
  declare function useResourcePage<T = Record<string, unknown>>(props: UseResourcePageProps<T>): UseResourcePageReturn<T>;
209
270
 
210
- export { DataTable as D, LinkCell as L, type ResourceActions as R, ThumbnailCell as T, type UseResourcePageProps as U, type ResourceColumnDef as a, type UseResourcePageReturn as b, type DataTableColumn as c, type DataTableProps as d, titleCase as t, useResourcePage as u };
271
+ export { DataTable as D, LinkCell as L, type ResourceActions as R, ThumbnailCell as T, type UseResourcePageProps as U, type ResourceColumnDef as a, type UseResourcePageReturn as b, type DataTableColumn as c, type DataTableSort as d, type DataTableProps as e, titleCase as t, useResourcePage as u };