gridsmith-ui 0.9.1 → 0.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.
package/dist/index.d.ts CHANGED
@@ -443,7 +443,7 @@ interface FormWrapperProps {
443
443
  className?: string;
444
444
  ref?: React.Ref<HTMLFormElement>;
445
445
  }
446
- declare function FormWrapper({ onSubmit, validationMode, children, actions, actionsAlign, focusFirstError, errorSummary, className, ref }: FormWrapperProps): react_jsx_runtime.JSX.Element;
446
+ declare function FormWrapper({ onSubmit, validationMode: validationModeProp, children, actions, actionsAlign: actionsAlignProp, focusFirstError, errorSummary, className, ref }: FormWrapperProps): react_jsx_runtime.JSX.Element;
447
447
 
448
448
  interface TransferItem {
449
449
  id: string;
@@ -599,6 +599,13 @@ interface Column {
599
599
  };
600
600
  /** CSS max-width for the column (e.g. "200px", "30ch"). Helps constrain wide text columns. */
601
601
  maxWidth?: string;
602
+ /**
603
+ * CSS width for the column (e.g. "40%", "240px"). Sibling tables that share a column set (a permissions matrix
604
+ * split into sections) line up when their columns carry the same widths (round 14, the owner's 50.3).
605
+ */
606
+ width?: string;
607
+ /** CSS min-width for the column. */
608
+ minWidth?: string;
602
609
  /** Explicit column kind. When omitted the Table infers it from data values. */
603
610
  kind?: ColumnKind;
604
611
  }
@@ -627,7 +634,7 @@ interface TableProps {
627
634
  mobileBreakpoint?: BreakpointKey;
628
635
  ref?: Ref<HTMLDivElement>;
629
636
  }
630
- declare function Table({ columns, data, className, sortable, sortKey: controlledSortKey, sortDir: controlledSortDir, onSortChange, selectable, selectedRows, onSelectionChange, expandable, renderExpanded, density, stickyHeader, striped, loading, emptyState, onRowClick, mobileBreakpoint, ref, }: TableProps): react_jsx_runtime.JSX.Element;
637
+ declare function Table({ columns, data, className, sortable, sortKey: controlledSortKey, sortDir: controlledSortDir, onSortChange, selectable, selectedRows, onSelectionChange, expandable, renderExpanded, density, stickyHeader, striped, loading, emptyState, onRowClick, mobileBreakpoint: mobileBreakpointProp, ref, }: TableProps): react_jsx_runtime.JSX.Element;
631
638
 
632
639
  interface CalendarEvent {
633
640
  id: string;
@@ -769,9 +776,15 @@ interface EmptyStateProps {
769
776
  * frame (the old default) is what FileUpload uses to mean "drop here".
770
777
  */
771
778
  bordered?: boolean;
779
+ /**
780
+ * The customer's emptyStates.emptyStyle (Sprint 25.6): `illustration` frames an icon above the title (the default),
781
+ * `text` shows the title, description and action alone. Read from the shell when not passed; a `redirect` preference
782
+ * renders as `text` here — the page itself decides to navigate.
783
+ */
784
+ style?: "illustration" | "text";
772
785
  className?: string;
773
786
  }
774
- declare function EmptyState({ icon, iconFrame, title, description, action, variant, bordered, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
787
+ declare function EmptyState({ icon, iconFrame, title, description, action, variant, bordered, style: styleProp, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
775
788
 
776
789
  interface EntityCellProps {
777
790
  /** A ready-made element (an Avatar with a status, an icon), or a string: initials, or a URL when it looks like one. */
@@ -785,7 +798,7 @@ interface EntityCellProps {
785
798
  size?: "sm" | "md";
786
799
  className?: string;
787
800
  }
788
- declare function EntityCell({ avatar, src, initials, primary, secondary, size, className }: EntityCellProps): react_jsx_runtime.JSX.Element;
801
+ declare function EntityCell({ avatar, src, initials, primary, secondary, size: sizeProp, className }: EntityCellProps): react_jsx_runtime.JSX.Element;
789
802
 
790
803
  interface SkipLinkProps {
791
804
  /** The id of the main region (AppShell names its <main> "main"). */
@@ -1446,7 +1459,7 @@ interface PaginationProps {
1446
1459
  onPageSizeChange?: (size: number) => void;
1447
1460
  className?: string;
1448
1461
  }
1449
- declare function Pagination({ currentPage, totalPages, onPageChange, pageSize, pageSizeOptions, onPageSizeChange, className }: PaginationProps): react_jsx_runtime.JSX.Element;
1462
+ declare function Pagination({ currentPage, totalPages, onPageChange, pageSize: pageSizeProp, pageSizeOptions, onPageSizeChange, className }: PaginationProps): react_jsx_runtime.JSX.Element;
1450
1463
 
1451
1464
  interface Step {
1452
1465
  label: string;
@@ -1752,7 +1765,8 @@ interface DialogProps {
1752
1765
  open: boolean;
1753
1766
  onClose: () => void;
1754
1767
  title: string;
1755
- description?: string;
1768
+ /** Under the title. Rich text is allowed so a confirmation can emphasise the thing it acts on (round 17, F-7): `<>Revoke <strong>{email}</strong>?</>`. */
1769
+ description?: ReactNode;
1756
1770
  children?: ReactNode;
1757
1771
  footer?: ReactNode;
1758
1772
  /** The content has unsaved changes: Escape, the backdrop and the close control ask before discarding, inside the dialog (Sprint 25.2, C1). */
@@ -2030,6 +2044,8 @@ interface ToastOptions {
2030
2044
  action?: ToastAction;
2031
2045
  /** Supply to update an existing toast in place instead of adding a new one. */
2032
2046
  id?: string;
2047
+ /** Coalescing key (round 15): while the visible slots are full, a new toast replaces the queued toast with the same key instead of joining the queue behind it. Defaults to the variant. */
2048
+ key?: string;
2033
2049
  }
2034
2050
  interface PromiseToastMessages<T> {
2035
2051
  loading: ReactNode;
@@ -2051,25 +2067,33 @@ interface ToastApi {
2051
2067
  }
2052
2068
  interface ToastProviderProps {
2053
2069
  children: ReactNode;
2054
- /** Maximum toasts shown at once; further toasts queue until one dismisses. Default 3. */
2070
+ /** Maximum toasts shown at once; further toasts queue until one dismisses. Default 1 — the house rule (feedback-notifications rule 4: one at a time, the rest queued). */
2055
2071
  maxVisible?: number;
2056
2072
  /** Where the stack is anchored. Default "bottom-right". */
2057
2073
  position?: ToastPosition;
2058
- /** Default auto-dismiss duration in ms. Default 3000. */
2074
+ /** Default auto-dismiss duration in ms. Default 5000. */
2059
2075
  duration?: number;
2076
+ /**
2077
+ * Round 15 (the owner's 52.4): ten toggle flips queued ten toasts, each waiting its full duration. While the visible
2078
+ * slots are full, a new toast replaces the queued toast that shares its key (the variant by default) — the user sees
2079
+ * the current one and the latest, never a backlog. Default true.
2080
+ */
2081
+ coalesce?: boolean;
2060
2082
  /** Independent colour mode for toasts, when the theme configures one. */
2061
2083
  mode?: "light" | "dark";
2062
2084
  /** Pause a toast's timer while hovered. Default true. */
2063
2085
  pauseOnHover?: boolean;
2064
2086
  }
2065
2087
  declare function useToast(): ToastApi;
2088
+ /** The toast API when a ToastProvider is above, else null — for components that can do without one (useDestructiveAction in dialog mode). */
2089
+ declare function useToastOptional(): ToastApi | null;
2066
2090
  /**
2067
2091
  * Queue-backed toast manager. Wrap the app once (get_app_shell does this),
2068
2092
  * then call useToast() anywhere. Enforces the configured maximum visible
2069
2093
  * count, stacks toasts at the configured position, and provides success /
2070
2094
  * error / promise helpers so pages never hand-roll their own queue.
2071
2095
  */
2072
- declare function ToastProvider({ children, maxVisible, position, duration, mode, pauseOnHover }: ToastProviderProps): react_jsx_runtime.JSX.Element;
2096
+ declare function ToastProvider({ children, maxVisible, position, duration, mode, pauseOnHover, coalesce }: ToastProviderProps): react_jsx_runtime.JSX.Element;
2073
2097
 
2074
2098
  type ProgressVariant = "default" | "success" | "warning" | "error";
2075
2099
  interface ProgressProps {
@@ -2115,6 +2139,45 @@ interface ScrollAreaProps {
2115
2139
  }
2116
2140
  declare function ScrollArea({ children, className, orientation, maxHeight, maxWidth, }: ScrollAreaProps): react_jsx_runtime.JSX.Element;
2117
2141
 
2142
+ type PreferenceValidationTiming = "onBlur" | "onSubmit" | "onChange";
2143
+ type PreferenceBreakpoint = "sm" | "md" | "lg";
2144
+ type PreferenceEmptyStyle = "illustration-cta" | "text-cta" | "redirect";
2145
+ type PreferenceLoadingStyle = "skeleton" | "spinner" | "progress-bar";
2146
+ type PreferenceDestructiveMode = "dialog" | "undo";
2147
+ interface AppShellPreferences {
2148
+ /** forms.validationTiming — when a field first shows its error. */
2149
+ validationTiming?: PreferenceValidationTiming;
2150
+ /** forms.actions — where a form's buttons sit and how they align. */
2151
+ formActions?: {
2152
+ align?: "start" | "end";
2153
+ placement?: "auto" | "inline";
2154
+ };
2155
+ /** dataDisplay.itemsPerPage — the page size of a paged or load-more list. */
2156
+ itemsPerPage?: number;
2157
+ /** responsive.tableToCardsBreakpoint — below this width a Table becomes stacked cards. */
2158
+ tableToCardsBreakpoint?: PreferenceBreakpoint;
2159
+ /** emptyStates.emptyStyle — illustration with an action, text with an action, or redirect to creation. */
2160
+ emptyStyle?: PreferenceEmptyStyle;
2161
+ /** emptyStates.loadingStyle — what a page shows while data loads. */
2162
+ loadingStyle?: PreferenceLoadingStyle;
2163
+ /** destructiveActions.mode — confirm in a dialog, or act now with an Undo toast. */
2164
+ destructiveMode?: PreferenceDestructiveMode;
2165
+ /** destructiveActions.highSeverityActions — always confirm in a dialog, even in undo mode. */
2166
+ highSeverityActions?: string[];
2167
+ /** destructiveActions.typeToConfirmActions — the user types the name before the confirm enables. */
2168
+ typeToConfirmActions?: string[];
2169
+ /** destructiveActions.undoWindowSeconds — how long the Undo toast stays. */
2170
+ undoWindowSeconds?: number;
2171
+ }
2172
+ declare const PreferencesContext: react.Context<AppShellPreferences | null>;
2173
+ /** The shell's preferences, or an empty object outside any shell — so `usePreferences().itemsPerPage ?? 25` reads naturally. */
2174
+ declare function usePreferences(): AppShellPreferences;
2175
+ /**
2176
+ * "Remove range" → "remove_range": the key the high-severity and type-to-confirm lists use. The engine's `actionKey`
2177
+ * (platform/src/lib/destructive-mode.ts) is the same rule for compliance; a platform test keeps the two identical.
2178
+ */
2179
+ declare function preferenceActionKey(label: string): string;
2180
+
2118
2181
  interface AppShellContextValue {
2119
2182
  hasSidebar: boolean;
2120
2183
  hasMobileMenu: boolean;
@@ -2205,6 +2268,8 @@ interface AppShellProps {
2205
2268
  scrollable?: boolean;
2206
2269
  /** The theme's shell-level decisions: what the generated shell passes once so pages carry nothing (Sprint 25). */
2207
2270
  theme?: AppShellTheme;
2271
+ /** The customer's UX preferences, passed once by the generated shell so pages and components carry nothing (Sprint 25.6). */
2272
+ preferences?: AppShellPreferences;
2208
2273
  /** The current route's path, so the shell knows which page is home. */
2209
2274
  currentPath?: string;
2210
2275
  /** The home page's path. Default "/". */
@@ -2212,6 +2277,51 @@ interface AppShellProps {
2212
2277
  }
2213
2278
  declare const AppShell: react.ForwardRefExoticComponent<AppShellProps & react.RefAttributes<HTMLDivElement>>;
2214
2279
 
2280
+ interface DestructiveActionOptions {
2281
+ /** The action's key as the preference lists name it ("remove_range"); derived from `title` when omitted. */
2282
+ action?: string;
2283
+ /** The confirmation's title ("Remove range?"). */
2284
+ title: string;
2285
+ /** What will be lost and whether it can be recovered — shown in the dialog; the Undo toast says it briefly. */
2286
+ description?: ReactNode;
2287
+ /** The destructive confirm's label ("Remove"); the title's first word when omitted. */
2288
+ confirmLabel?: string;
2289
+ /** The text the user must type when the action is on the type-to-confirm list (the item's name). */
2290
+ typeToConfirm?: string;
2291
+ /** Performs the action. In undo mode it runs at once. */
2292
+ onConfirm: () => void | Promise<void>;
2293
+ /** Restores what the action removed; the Undo toast's action in undo mode. Without it the toast has no Undo. */
2294
+ onUndo?: () => void;
2295
+ /** The toast's message in undo mode ("Office removed"). */
2296
+ undoMessage?: ReactNode;
2297
+ /** `high` always confirms in a dialog, even in undo mode; the preference's high-severity list does the same by key. */
2298
+ severity?: "low" | "high";
2299
+ }
2300
+ interface DestructiveActionHandle {
2301
+ /** Call from the trigger's onClick: opens the dialog (dialog mode) or acts at once with an Undo toast (undo mode). */
2302
+ run: () => void;
2303
+ /** Render once on the page: the confirmation dialog, mounted only while open. */
2304
+ element: ReactNode;
2305
+ /** True while the dialog is open. */
2306
+ open: boolean;
2307
+ }
2308
+ /**
2309
+ * The destructive safety net as the customer configured it (Sprint 25.6 B10). The hook reads the mode, the
2310
+ * high-severity and type-to-confirm lists and the undo window from the shell's preferences, so a page never decides:
2311
+ *
2312
+ * - dialog mode: `run()` opens a Dialog (variant destructive) whose confirm performs the action; an action on the
2313
+ * type-to-confirm list adds an input the user must match before the confirm enables;
2314
+ * - undo mode: `run()` performs the action, waits for it, and shows a toast with an Undo action for the configured
2315
+ * window; a high-severity action (by `severity` or by the preference's list) still confirms in a dialog, and so does an
2316
+ * action with no `onUndo` — a toast that cannot undo is not a safety net.
2317
+ *
2318
+ * A listed or high-severity action (by the prop or by the preference's list) with no `typeToConfirm` asks for the confirm
2319
+ * word in capitals. A rejected `onConfirm` keeps the dialog
2320
+ * open (dialog mode) or skips the success toast (undo mode) and reports the failure as an error toast.
2321
+ * Outside any shell the mode is dialog and the lists are empty.
2322
+ */
2323
+ declare function useDestructiveAction(options: DestructiveActionOptions): DestructiveActionHandle;
2324
+
2215
2325
  type MaxWidth = "sm" | "md" | "lg" | "xl" | "full";
2216
2326
  type PageContainerWidth = "constrained" | "full" | "narrow";
2217
2327
  type Padding = "none" | "default" | "wide";
@@ -2221,6 +2331,13 @@ interface PageContainerProps {
2221
2331
  width?: PageContainerWidth;
2222
2332
  /** Lower-level max-width escape hatch. Use `width` for standard cases. */
2223
2333
  maxWidth?: MaxWidth;
2334
+ /**
2335
+ * Caps the content under the header without narrowing the page: the header and tab strip keep the page's width, the
2336
+ * content column below is capped at this width and left-aligned. For a form tab inside a tabbed area (round 17,
2337
+ * 54.1) — `contentWidth="narrow"`; a layout pattern that wraps PageContainer passes it through. Never a hand-rolled
2338
+ * `max-w-` wrapper around the form.
2339
+ */
2340
+ contentWidth?: PageContainerWidth;
2224
2341
  padding?: Padding;
2225
2342
  /**
2226
2343
  * Vertical padding of the content column. With a PageHeader as a direct child the header owns the space under the
@@ -2237,6 +2354,12 @@ interface PageContainerProps {
2237
2354
  */
2238
2355
  renderHeader?: (header: ReactNode) => ReactNode;
2239
2356
  }
2357
+ /**
2358
+ * Ask the nearest PageContainer to cap its content (left-aligned, the header and tab strip keep the page's width) —
2359
+ * for a form page that is an Outlet route under a layout pattern, which cannot set `contentWidth` on the container itself.
2360
+ * `useContentWidth("narrow")` at the top of the page; the cap lifts when the page unmounts.
2361
+ */
2362
+ declare function useContentWidth(width: PageContainerWidth): void;
2240
2363
  /**
2241
2364
  * The page's width constraint, and — when a PageHeader is among its direct
2242
2365
  * children — the page's composition: the header is placed inside the column
@@ -2329,4 +2452,4 @@ interface UseTextOverflowResult {
2329
2452
  */
2330
2453
  declare function useTextOverflow(options?: UseTextOverflowOptions): UseTextOverflowResult;
2331
2454
 
2332
- export { Accordion, ActionPanel, ActionPanelGroup, Alert, type AlertPlacement, AppShell, type AppShellContextValue, type AppShellTheme, AsidePanel, type AsidePanelProps, type AsidePanelSide, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSeverity, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, type BreadcrumbItem$1 as BreadcrumbItem, Breadcrumbs, type BreadcrumbsSeparator, type BreadcrumbsSize, type BreadcrumbsVariant, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, type ChatMessage, type ChatMessageAction, type ChatMessageLayout, ChatMessageList, type ChatMessageSender, type ChatMessageSource, type ChatMessageStatus, ChatPanel, type ChatPanelProps, type ChatPanelStatusTone, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, type ControlSize, ControlSizeContext, CornerPanel, type CornerPanelEdge, type CornerPanelProps, DEFAULT_DATE_RANGE_PRESETS, DataList, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, type DropdownMenuDivider, type DropdownMenuEntry, type DropdownMenuItem, EmptyState, EntityCell, Field, type FieldControlProps, type FieldProps, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, Kbd, Label, Launcher, type LauncherEdge, type LauncherProps, type LauncherVariant, type LauncherWhenOpen, Link, type LinkProps, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pagination, PinInput, Popover, Progress, type PromiseToastMessages, RadioGroup, Rating, ScrollArea, SectionHeading, type SectionHeadingProps, SegmentedControl, SettingsLayout, type SettingsLayoutProps, type SettingsSection, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SkipLink, SliderRange, Spinner, StackedList, type StackedListVariant, StatsCard, StatusDot, type StatusDotVariant, Stepper, type Tab, Table, type TableDensity, type TableProps, TableToolbar, type TableToolbarActiveFilter, type TableToolbarFilterOption, Tabs, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimePicker, Timeline, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type Trend, type UseTextOverflowOptions, type UseTextOverflowResult, useAppShell, useFormContext, useSidebar, useTextOverflow, useToast };
2455
+ export { Accordion, ActionPanel, ActionPanelGroup, Alert, type AlertPlacement, AppShell, type AppShellContextValue, type AppShellPreferences, type AppShellTheme, AsidePanel, type AsidePanelProps, type AsidePanelSide, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSeverity, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, type BreadcrumbItem$1 as BreadcrumbItem, Breadcrumbs, type BreadcrumbsSeparator, type BreadcrumbsSize, type BreadcrumbsVariant, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, type ChatMessage, type ChatMessageAction, type ChatMessageLayout, ChatMessageList, type ChatMessageSender, type ChatMessageSource, type ChatMessageStatus, ChatPanel, type ChatPanelProps, type ChatPanelStatusTone, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, type ControlSize, ControlSizeContext, CornerPanel, type CornerPanelEdge, type CornerPanelProps, DEFAULT_DATE_RANGE_PRESETS, DataList, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, type DestructiveActionHandle, type DestructiveActionOptions, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, type DropdownMenuDivider, type DropdownMenuEntry, type DropdownMenuItem, EmptyState, EntityCell, Field, type FieldControlProps, type FieldProps, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, Kbd, Label, Launcher, type LauncherEdge, type LauncherProps, type LauncherVariant, type LauncherWhenOpen, Link, type LinkProps, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pagination, PinInput, Popover, PreferencesContext, Progress, type PromiseToastMessages, RadioGroup, Rating, ScrollArea, SectionHeading, type SectionHeadingProps, SegmentedControl, SettingsLayout, type SettingsLayoutProps, type SettingsSection, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SkipLink, SliderRange, Spinner, StackedList, type StackedListVariant, StatsCard, StatusDot, type StatusDotVariant, Stepper, type Tab, Table, type TableDensity, type TableProps, TableToolbar, type TableToolbarActiveFilter, type TableToolbarFilterOption, Tabs, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimePicker, Timeline, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type Trend, type UseTextOverflowOptions, type UseTextOverflowResult, preferenceActionKey, useAppShell, useContentWidth, useDestructiveAction, useFormContext, usePreferences, useSidebar, useTextOverflow, useToast, useToastOptional };