react-os-shell 3.8.3 → 3.8.5
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/{Browser-OFAWCWA7.js → Browser-46EJUBW5.js} +4 -4
- package/dist/{Browser-OFAWCWA7.js.map → Browser-46EJUBW5.js.map} +1 -1
- package/dist/{Documents-4LBBVF6R.js → Documents-U7KFKFNT.js} +3 -3
- package/dist/{Documents-4LBBVF6R.js.map → Documents-U7KFKFNT.js.map} +1 -1
- package/dist/Files-ZBUFKYWD.js +12 -0
- package/dist/{Files-K7YYLFER.js.map → Files-ZBUFKYWD.js.map} +1 -1
- package/dist/{Notepad-VEBKUHQE.js → Notepad-5OGGCJGO.js} +3 -3
- package/dist/{Notepad-VEBKUHQE.js.map → Notepad-5OGGCJGO.js.map} +1 -1
- package/dist/Preview-JA4S64C6.js +8 -0
- package/dist/{Preview-K2QPBTWW.js.map → Preview-JA4S64C6.js.map} +1 -1
- package/dist/{Spreadsheet-CMNESS2Z.js → Spreadsheet-G6CQ6FU4.js} +4 -4
- package/dist/{Spreadsheet-CMNESS2Z.js.map → Spreadsheet-G6CQ6FU4.js.map} +1 -1
- package/dist/apps/index.d.ts +13 -14
- package/dist/apps/index.js +12 -12
- package/dist/{chunk-G6GRIOEQ.js → chunk-3T75O6VR.js} +3 -3
- package/dist/{chunk-G6GRIOEQ.js.map → chunk-3T75O6VR.js.map} +1 -1
- package/dist/{chunk-N4LKUQFC.js → chunk-6FET2LA4.js} +3 -3
- package/dist/{chunk-N4LKUQFC.js.map → chunk-6FET2LA4.js.map} +1 -1
- package/dist/{chunk-Z6OFNDHV.js → chunk-OY6GC3ZI.js} +4 -4
- package/dist/{chunk-Z6OFNDHV.js.map → chunk-OY6GC3ZI.js.map} +1 -1
- package/dist/{chunk-GRO7CFKE.js → chunk-QTDUNBNQ.js} +3 -3
- package/dist/{chunk-GRO7CFKE.js.map → chunk-QTDUNBNQ.js.map} +1 -1
- package/dist/{chunk-76Y7ARZ6.js → chunk-S3ZVBCKK.js} +3 -3
- package/dist/{chunk-76Y7ARZ6.js.map → chunk-S3ZVBCKK.js.map} +1 -1
- package/dist/{chunk-JC4DRXZT.js → chunk-YWRNK24T.js} +4 -4
- package/dist/{chunk-JC4DRXZT.js.map → chunk-YWRNK24T.js.map} +1 -1
- package/dist/index.d.ts +81 -82
- package/dist/index.js +18 -11
- package/dist/index.js.map +1 -1
- package/dist/{types-CTPtgkiG.d.ts → types-CXBKusuC.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/Files-K7YYLFER.js +0 -12
- package/dist/Preview-K2QPBTWW.js +0 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { W as WindowRegistry } from './types-
|
|
2
|
-
export { M as ModalRegistryEntry, P as PageRegistryEntry, a as WindowRegistryEntry, i as isEntityEntry, b as isPageEntry, s as setShellWindowRegistry } from './types-
|
|
1
|
+
import { W as WindowRegistry } from './types-CXBKusuC.js';
|
|
2
|
+
export { M as ModalRegistryEntry, P as PageRegistryEntry, a as WindowRegistryEntry, i as isEntityEntry, b as isPageEntry, s as setShellWindowRegistry } from './types-CXBKusuC.js';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import react__default, { ReactNode, Component, ErrorInfo, CSSProperties, Dispatch, SetStateAction, RefObject, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes, LabelHTMLAttributes } from 'react';
|
|
5
|
-
import * as
|
|
6
|
-
import * as _tanstack_query_core from '@tanstack/query-core';
|
|
5
|
+
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
7
6
|
import { AxiosInstance } from 'axios';
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -90,7 +89,7 @@ declare function useWindowMenuItem(label: string, onClick: () => void, icon?: Re
|
|
|
90
89
|
* than React Context, which has separate instances in each bundle). */
|
|
91
90
|
declare function WindowTitle({ title }: {
|
|
92
91
|
title: string;
|
|
93
|
-
}):
|
|
92
|
+
}): react.JSX.Element;
|
|
94
93
|
/** @deprecated Use <WindowTitle> instead — the hook variant doesn't work
|
|
95
94
|
* across bundle boundaries (apps barrel has its own ModalIdContext). */
|
|
96
95
|
declare function useWindowTitle(_title: string): void;
|
|
@@ -100,7 +99,7 @@ declare function useWindowTitle(_title: string): void;
|
|
|
100
99
|
*/
|
|
101
100
|
declare function CopyButton({ text }: {
|
|
102
101
|
text: string;
|
|
103
|
-
}):
|
|
102
|
+
}): react.JSX.Element;
|
|
104
103
|
/** Hook to check if the current modal is active (frontmost) */
|
|
105
104
|
declare function useModalActive(): boolean;
|
|
106
105
|
declare function ModalActions({ children, position }: {
|
|
@@ -115,7 +114,7 @@ declare function CancelButton({ onClick, children, className }: {
|
|
|
115
114
|
onClick: () => void;
|
|
116
115
|
children?: React.ReactNode;
|
|
117
116
|
className?: string;
|
|
118
|
-
}):
|
|
117
|
+
}): react.JSX.Element;
|
|
119
118
|
/**
|
|
120
119
|
* Seed an initial position for a window — applied only when no saved
|
|
121
120
|
* position already exists for the given key. Use this from the consumer
|
|
@@ -247,7 +246,7 @@ declare function Modal({ open, onClose, title, icon, copyText, size, dirty, onNe
|
|
|
247
246
|
declare function WindowCrashedFallback({ error, onReload }: {
|
|
248
247
|
error: Error;
|
|
249
248
|
onReload: () => void;
|
|
250
|
-
}):
|
|
249
|
+
}): react.JSX.Element;
|
|
251
250
|
interface WindowErrorBoundaryProps {
|
|
252
251
|
children: ReactNode;
|
|
253
252
|
/** Replaces the default inline {@link WindowCrashedFallback}. `reset`
|
|
@@ -274,7 +273,7 @@ declare class WindowErrorBoundary extends Component<WindowErrorBoundaryProps, {
|
|
|
274
273
|
};
|
|
275
274
|
componentDidCatch(error: Error, info: ErrorInfo): void;
|
|
276
275
|
reset: () => void;
|
|
277
|
-
render(): string | number | boolean | Iterable<ReactNode> |
|
|
276
|
+
render(): string | number | boolean | Iterable<ReactNode> | react.JSX.Element | null | undefined;
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
/**
|
|
@@ -296,7 +295,7 @@ interface PopupMenuProps {
|
|
|
296
295
|
portal?: boolean;
|
|
297
296
|
}
|
|
298
297
|
/** Container for a popup menu — auto-clamps to stay within viewport */
|
|
299
|
-
declare function PopupMenu({ children, style, className, onClose, minWidth, portal }: PopupMenuProps):
|
|
298
|
+
declare function PopupMenu({ children, style, className, onClose, minWidth, portal }: PopupMenuProps): react.JSX.Element;
|
|
300
299
|
/** A clickable menu item */
|
|
301
300
|
declare function PopupMenuItem({ onClick, children, className, danger, disabled }: {
|
|
302
301
|
onClick?: () => void;
|
|
@@ -304,13 +303,13 @@ declare function PopupMenuItem({ onClick, children, className, danger, disabled
|
|
|
304
303
|
className?: string;
|
|
305
304
|
danger?: boolean;
|
|
306
305
|
disabled?: boolean;
|
|
307
|
-
}):
|
|
306
|
+
}): react.JSX.Element;
|
|
308
307
|
/** A divider line between menu items */
|
|
309
|
-
declare function PopupMenuDivider():
|
|
308
|
+
declare function PopupMenuDivider(): react.JSX.Element;
|
|
310
309
|
/** A section header label */
|
|
311
310
|
declare function PopupMenuLabel({ children }: {
|
|
312
311
|
children: ReactNode;
|
|
313
|
-
}):
|
|
312
|
+
}): react.JSX.Element;
|
|
314
313
|
|
|
315
314
|
interface ConfirmOptions {
|
|
316
315
|
title?: string;
|
|
@@ -339,7 +338,7 @@ interface PromptOptions {
|
|
|
339
338
|
declare const prompt: (opts: PromptOptions | string) => Promise<string | null>;
|
|
340
339
|
declare function ConfirmProvider({ children }: {
|
|
341
340
|
children: React.ReactNode;
|
|
342
|
-
}):
|
|
341
|
+
}): react.JSX.Element;
|
|
343
342
|
|
|
344
343
|
interface SearchResult {
|
|
345
344
|
/** Category label, e.g. "Sales Order". */
|
|
@@ -365,9 +364,9 @@ interface SearchConfig {
|
|
|
365
364
|
}
|
|
366
365
|
interface GlobalSearchProps extends Partial<SearchConfig> {
|
|
367
366
|
}
|
|
368
|
-
declare function GlobalSearch({ providers, typeIcons, placeholder }?: GlobalSearchProps):
|
|
367
|
+
declare function GlobalSearch({ providers, typeIcons, placeholder }?: GlobalSearchProps): react.JSX.Element | null;
|
|
369
368
|
|
|
370
|
-
declare function ShortcutHelp():
|
|
369
|
+
declare function ShortcutHelp(): react.JSX.Element;
|
|
371
370
|
|
|
372
371
|
/**
|
|
373
372
|
* One help article. Generic shape — the consuming portal maps its own
|
|
@@ -412,13 +411,13 @@ interface HelpCenterProps {
|
|
|
412
411
|
* Search is client-side: a case-insensitive substring match over title, body
|
|
413
412
|
* and category label. While searching, matching groups auto-expand.
|
|
414
413
|
*/
|
|
415
|
-
declare function HelpCenter({ docs, loading, categoryOrder, canEdit, onNew, onEdit, renderBody, emptyMessage, }: HelpCenterProps):
|
|
414
|
+
declare function HelpCenter({ docs, loading, categoryOrder, canEdit, onNew, onEdit, renderBody, emptyMessage, }: HelpCenterProps): react.JSX.Element;
|
|
416
415
|
|
|
417
416
|
interface MarkdownProps {
|
|
418
417
|
children: string;
|
|
419
418
|
className?: string;
|
|
420
419
|
}
|
|
421
|
-
declare function Markdown({ children, className }: MarkdownProps):
|
|
420
|
+
declare function Markdown({ children, className }: MarkdownProps): react.JSX.Element;
|
|
422
421
|
|
|
423
422
|
declare const isMac: boolean;
|
|
424
423
|
/** Platform-aware modifier symbols */
|
|
@@ -507,7 +506,7 @@ interface EditableGridProps {
|
|
|
507
506
|
* - Multi-cell paste from spreadsheets (Ctrl+V)
|
|
508
507
|
* - Tab/Enter/Arrow keyboard navigation
|
|
509
508
|
*/
|
|
510
|
-
declare function EditableGrid({ columns, data, onChange, onColumnsChange, fixedRows, minRows, maxHeight, cellStyles, onFocusChange, onSelectionChange }: EditableGridProps):
|
|
509
|
+
declare function EditableGrid({ columns, data, onChange, onColumnsChange, fixedRows, minRows, maxHeight, cellStyles, onFocusChange, onSelectionChange }: EditableGridProps): react.JSX.Element;
|
|
511
510
|
|
|
512
511
|
/**
|
|
513
512
|
* Two-pane layout with a drag-to-resize sidebar (left or right).
|
|
@@ -550,7 +549,7 @@ interface SidebarLayoutProps {
|
|
|
550
549
|
/** Classes for the main content pane. Defaults to a white background. */
|
|
551
550
|
contentClassName?: string;
|
|
552
551
|
}
|
|
553
|
-
declare function SidebarLayout({ sidebar, children, side, storageKey, defaultWidth, minWidth, maxWidth, className, sidebarClassName, contentClassName, }: SidebarLayoutProps):
|
|
552
|
+
declare function SidebarLayout({ sidebar, children, side, storageKey, defaultWidth, minWidth, maxWidth, className, sidebarClassName, contentClassName, }: SidebarLayoutProps): react.JSX.Element;
|
|
554
553
|
|
|
555
554
|
interface SearchableOption {
|
|
556
555
|
value: string;
|
|
@@ -592,7 +591,7 @@ interface SearchableSelectProps {
|
|
|
592
591
|
* Hidden while the user is typing so the search text stays legible. */
|
|
593
592
|
rightAdornment?: ReactNode;
|
|
594
593
|
}
|
|
595
|
-
declare function SearchableSelect({ value, onChange, options, placeholder, emptyOptionLabel, className, disabled, id, allowFreeText, onSearchChange, rightAdornment, }: SearchableSelectProps):
|
|
594
|
+
declare function SearchableSelect({ value, onChange, options, placeholder, emptyOptionLabel, className, disabled, id, allowFreeText, onSearchChange, rightAdornment, }: SearchableSelectProps): react.JSX.Element;
|
|
596
595
|
|
|
597
596
|
/**
|
|
598
597
|
* Generic top navigation bar. A horizontal row of tab-style links with an
|
|
@@ -624,7 +623,7 @@ interface TopNavProps {
|
|
|
624
623
|
actions?: ReactNode;
|
|
625
624
|
className?: string;
|
|
626
625
|
}
|
|
627
|
-
declare function TopNav({ items, activeKey, onSelect, brand, actions, className }: TopNavProps):
|
|
626
|
+
declare function TopNav({ items, activeKey, onSelect, brand, actions, className }: TopNavProps): react.JSX.Element;
|
|
628
627
|
|
|
629
628
|
/**
|
|
630
629
|
* Generic breadcrumb trail. Self-contained and styled with the same Tailwind
|
|
@@ -653,7 +652,7 @@ interface BreadcrumbsProps {
|
|
|
653
652
|
maxItems?: number;
|
|
654
653
|
className?: string;
|
|
655
654
|
}
|
|
656
|
-
declare function Breadcrumbs({ items, separator, maxItems, className }: BreadcrumbsProps):
|
|
655
|
+
declare function Breadcrumbs({ items, separator, maxItems, className }: BreadcrumbsProps): react.JSX.Element | null;
|
|
657
656
|
|
|
658
657
|
/** Generic notification shape consumed by the shell. Consumer-specific
|
|
659
658
|
* fields live on `extra` (or just on additional properties — TS structural
|
|
@@ -693,17 +692,17 @@ interface NotificationsConfig {
|
|
|
693
692
|
interface NotificationBellProps extends NotificationsConfig {
|
|
694
693
|
popDirection?: 'left' | 'right';
|
|
695
694
|
}
|
|
696
|
-
declare function NotificationBell({ useUnreadCount, list, markRead, markAllRead, onItemClick, onViewAll, popDirection, }: NotificationBellProps):
|
|
695
|
+
declare function NotificationBell({ useUnreadCount, list, markRead, markAllRead, onItemClick, onViewAll, popDirection, }: NotificationBellProps): react.JSX.Element;
|
|
697
696
|
|
|
698
697
|
type SemanticGroup = 'success' | 'active' | 'queued' | 'info' | 'pending' | 'warning' | 'danger' | 'draft' | 'neutral';
|
|
699
698
|
declare function StatusBadgeProvider({ groups, children, }: {
|
|
700
699
|
groups: Record<string, SemanticGroup>;
|
|
701
700
|
children: ReactNode;
|
|
702
|
-
}):
|
|
701
|
+
}): react.JSX.Element;
|
|
703
702
|
interface StatusBadgeProps {
|
|
704
703
|
status: string;
|
|
705
704
|
}
|
|
706
|
-
declare function StatusBadge({ status }: StatusBadgeProps):
|
|
705
|
+
declare function StatusBadge({ status }: StatusBadgeProps): react.JSX.Element;
|
|
707
706
|
|
|
708
707
|
/**
|
|
709
708
|
* System-tray badge shown only when the app is served from a developer's own
|
|
@@ -711,7 +710,7 @@ declare function StatusBadge({ status }: StatusBadgeProps): react_jsx_runtime.JS
|
|
|
711
710
|
* slot — it renders nothing off-localhost, so it's safe to leave wired on every
|
|
712
711
|
* build. Visibility is gated on the runtime hostname; see utils/env.ts.
|
|
713
712
|
*/
|
|
714
|
-
declare function DevIndicator():
|
|
713
|
+
declare function DevIndicator(): react.JSX.Element | null;
|
|
715
714
|
|
|
716
715
|
/**
|
|
717
716
|
* Dev-environment detection + browser chrome.
|
|
@@ -790,7 +789,7 @@ declare function DocFavStar({ entityType, entityId, label }: {
|
|
|
790
789
|
entityType: string;
|
|
791
790
|
entityId: string;
|
|
792
791
|
label: string;
|
|
793
|
-
}):
|
|
792
|
+
}): react.JSX.Element;
|
|
794
793
|
/** Public, framework-free helper: route ('/orders', '/qc-reports', …)
|
|
795
794
|
* of the window the user is currently focused on. Returns undefined
|
|
796
795
|
* when no app window is active (start menu / dashboard with nothing
|
|
@@ -800,7 +799,7 @@ declare function DocFavStar({ entityType, entityId, label }: {
|
|
|
800
799
|
declare function getActiveWindowRoute(): string | undefined;
|
|
801
800
|
declare function WindowManagerProvider({ children }: {
|
|
802
801
|
children: ReactNode;
|
|
803
|
-
}):
|
|
802
|
+
}): react.JSX.Element;
|
|
804
803
|
|
|
805
804
|
/**
|
|
806
805
|
* INTERNAL stub — Desktop's About modal references the consumer-side
|
|
@@ -893,11 +892,11 @@ interface DesktopHostConfig {
|
|
|
893
892
|
declare function DesktopHostProvider({ value, children }: {
|
|
894
893
|
value: DesktopHostConfig;
|
|
895
894
|
children: ReactNode;
|
|
896
|
-
}):
|
|
895
|
+
}): react.JSX.Element;
|
|
897
896
|
declare function useDesktopHost(): DesktopHostConfig;
|
|
898
897
|
declare function Desktop({ profile }: {
|
|
899
898
|
profile: any;
|
|
900
|
-
}):
|
|
899
|
+
}): react.JSX.Element;
|
|
901
900
|
|
|
902
901
|
interface LayoutProps {
|
|
903
902
|
/** Brand label rendered on the start-menu button. */
|
|
@@ -947,7 +946,7 @@ interface ClockCalendarConfig {
|
|
|
947
946
|
close: () => void;
|
|
948
947
|
}) => ReactNode;
|
|
949
948
|
}
|
|
950
|
-
declare function Layout({ productName, productIcon, wallpapers, navSections, navIcons, sectionIcons, categories, notifications, search, taskbarTrayLeft, clockCalendar, }?: LayoutProps):
|
|
949
|
+
declare function Layout({ productName, productIcon, wallpapers, navSections, navIcons, sectionIcons, categories, notifications, search, taskbarTrayLeft, clockCalendar, }?: LayoutProps): react.JSX.Element;
|
|
951
950
|
|
|
952
951
|
interface StartMenuProps {
|
|
953
952
|
open: boolean;
|
|
@@ -974,7 +973,7 @@ interface StartMenuProps {
|
|
|
974
973
|
/** Section grouping + virtual flyouts (Utilities-style trays). */
|
|
975
974
|
categories?: StartMenuCategories;
|
|
976
975
|
}
|
|
977
|
-
declare function StartMenu({ open, onClose, openPage, profile, user, onLogout, taskbarPosition, taskbarH, taskbarW, size, navSections, navIcons, sectionIcons, categories, }: StartMenuProps):
|
|
976
|
+
declare function StartMenu({ open, onClose, openPage, profile, user, onLogout, taskbarPosition, taskbarH, taskbarW, size, navSections, navIcons, sectionIcons, categories, }: StartMenuProps): react.JSX.Element | null;
|
|
978
977
|
|
|
979
978
|
/**
|
|
980
979
|
* Widget gallery — the "manage widgets on the desktop" surface.
|
|
@@ -994,7 +993,7 @@ declare function StartMenu({ open, onClose, openPage, profile, user, onLogout, t
|
|
|
994
993
|
declare function WidgetManager({ open, onClose }: {
|
|
995
994
|
open: boolean;
|
|
996
995
|
onClose: () => void;
|
|
997
|
-
}):
|
|
996
|
+
}): react.JSX.Element | null;
|
|
998
997
|
|
|
999
998
|
/** Sections that can be omitted from the inline Customization page when the
|
|
1000
999
|
* consumer renders them elsewhere (e.g. as separate entries in SystemPreferences). */
|
|
@@ -1008,7 +1007,7 @@ interface CustomizationProps {
|
|
|
1008
1007
|
/** Render only one logical group of settings. Omit to render everything. */
|
|
1009
1008
|
section?: CustomizationSection;
|
|
1010
1009
|
}
|
|
1011
|
-
declare function Customization({ omit, section }?: CustomizationProps):
|
|
1010
|
+
declare function Customization({ omit, section }?: CustomizationProps): react.JSX.Element;
|
|
1012
1011
|
|
|
1013
1012
|
/**
|
|
1014
1013
|
* Standalone Behavior settings panel — window position, double-click,
|
|
@@ -1018,7 +1017,7 @@ declare function Customization({ omit, section }?: CustomizationProps): react_js
|
|
|
1018
1017
|
* Reads/writes shell prefs via `useShellPrefs()`. Suitable for use as a
|
|
1019
1018
|
* section in `SystemPreferences` or rendered standalone.
|
|
1020
1019
|
*/
|
|
1021
|
-
declare function BehaviorPanel():
|
|
1020
|
+
declare function BehaviorPanel(): react.JSX.Element;
|
|
1022
1021
|
|
|
1023
1022
|
/**
|
|
1024
1023
|
* Standalone Sounds settings panel — sound effects toggle + per-event
|
|
@@ -1027,7 +1026,7 @@ declare function BehaviorPanel(): react_jsx_runtime.JSX.Element;
|
|
|
1027
1026
|
* picked. Suitable as a section in `SystemPreferences` or rendered
|
|
1028
1027
|
* standalone.
|
|
1029
1028
|
*/
|
|
1030
|
-
declare function SoundsPanel():
|
|
1029
|
+
declare function SoundsPanel(): react.JSX.Element;
|
|
1031
1030
|
|
|
1032
1031
|
/** One section in the SystemPreferences sidebar. */
|
|
1033
1032
|
interface SystemPreferencesSection {
|
|
@@ -1074,7 +1073,7 @@ interface SystemPreferencesProps {
|
|
|
1074
1073
|
* ]} />
|
|
1075
1074
|
* ```
|
|
1076
1075
|
*/
|
|
1077
|
-
declare function SystemPreferences({ sections, defaultSelected, className, }: SystemPreferencesProps):
|
|
1076
|
+
declare function SystemPreferences({ sections, defaultSelected, className, }: SystemPreferencesProps): react.JSX.Element;
|
|
1078
1077
|
|
|
1079
1078
|
interface ImageAnnotatorHandle {
|
|
1080
1079
|
copy: () => Promise<void>;
|
|
@@ -1159,7 +1158,7 @@ interface EntityListProps<T> {
|
|
|
1159
1158
|
* emptyState={<EmptyState message="No suppliers yet." />}
|
|
1160
1159
|
* />
|
|
1161
1160
|
*/
|
|
1162
|
-
declare function EntityList<T>(props: EntityListProps<T>):
|
|
1161
|
+
declare function EntityList<T>(props: EntityListProps<T>): react.JSX.Element;
|
|
1163
1162
|
|
|
1164
1163
|
/**
|
|
1165
1164
|
* Generic, drag-and-drop Kanban board. Self-contained (native HTML5 DnD, no
|
|
@@ -1221,7 +1220,7 @@ interface KanbanProps<T> {
|
|
|
1221
1220
|
/** Label for the per-column add button. */
|
|
1222
1221
|
addItemText?: string;
|
|
1223
1222
|
}
|
|
1224
|
-
declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText, emptyState, columnEmptyText, onAddItem, addItemText, }: KanbanProps<T>):
|
|
1223
|
+
declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText, emptyState, columnEmptyText, onAddItem, addItemText, }: KanbanProps<T>): react.JSX.Element;
|
|
1225
1224
|
|
|
1226
1225
|
interface PaginatedResponse<T> {
|
|
1227
1226
|
count: number;
|
|
@@ -1270,7 +1269,7 @@ interface ResizableTableProps {
|
|
|
1270
1269
|
* - per-user persistence (via the shell-registered apiClient)
|
|
1271
1270
|
* - mobile-aware selection mode toggle
|
|
1272
1271
|
*/
|
|
1273
|
-
declare function ResizableTable({ tableId, columns, sort, onSort, footer, afterBody, saveDefaultPerms, children, }: ResizableTableProps):
|
|
1272
|
+
declare function ResizableTable({ tableId, columns, sort, onSort, footer, afterBody, saveDefaultPerms, children, }: ResizableTableProps): react.JSX.Element;
|
|
1274
1273
|
|
|
1275
1274
|
interface ListFooterProps {
|
|
1276
1275
|
selectedCount: number;
|
|
@@ -1286,7 +1285,7 @@ interface ListFooterProps {
|
|
|
1286
1285
|
* "Y of Z records · Loading more..."
|
|
1287
1286
|
* "All N records loaded"
|
|
1288
1287
|
*/
|
|
1289
|
-
declare function ListFooter({ selectedCount, loadedCount, totalCount, label, isFetchingMore, extra, }: ListFooterProps):
|
|
1288
|
+
declare function ListFooter({ selectedCount, loadedCount, totalCount, label, isFetchingMore, extra, }: ListFooterProps): react.JSX.Element;
|
|
1290
1289
|
|
|
1291
1290
|
/**
|
|
1292
1291
|
* Keyboard + shift-click navigation for table rows.
|
|
@@ -1364,7 +1363,7 @@ declare function useInfiniteScroll<T>({ queryKey, fetchFn, extraParams, pageSize
|
|
|
1364
1363
|
isFetchingNextPage: boolean;
|
|
1365
1364
|
hasNextPage: boolean;
|
|
1366
1365
|
sentinelRef: react.RefObject<HTMLDivElement>;
|
|
1367
|
-
refetch: (options?:
|
|
1366
|
+
refetch: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<_tanstack_react_query.InfiniteData<PaginatedResponse<T>, unknown>, Error>>;
|
|
1368
1367
|
};
|
|
1369
1368
|
|
|
1370
1369
|
/**
|
|
@@ -1397,7 +1396,7 @@ interface PaginationProps {
|
|
|
1397
1396
|
showEdges?: boolean;
|
|
1398
1397
|
className?: string;
|
|
1399
1398
|
}
|
|
1400
|
-
declare function Pagination({ page, pageCount, onPageChange, siblingCount, showEdges, className, }: PaginationProps):
|
|
1399
|
+
declare function Pagination({ page, pageCount, onPageChange, siblingCount, showEdges, className, }: PaginationProps): react.JSX.Element | null;
|
|
1401
1400
|
|
|
1402
1401
|
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
1403
1402
|
type ButtonSize = 'sm' | 'md';
|
|
@@ -1481,13 +1480,13 @@ interface FormFieldProps {
|
|
|
1481
1480
|
className?: string;
|
|
1482
1481
|
children: ReactNode;
|
|
1483
1482
|
}
|
|
1484
|
-
declare function FormField({ label, htmlFor, hint, error, required, className, children, }: FormFieldProps):
|
|
1483
|
+
declare function FormField({ label, htmlFor, hint, error, required, className, children, }: FormFieldProps): react.JSX.Element;
|
|
1485
1484
|
|
|
1486
1485
|
interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
1487
1486
|
/** Append a red asterisk. */
|
|
1488
1487
|
required?: boolean;
|
|
1489
1488
|
}
|
|
1490
|
-
declare function Label({ required, children, className, ...rest }: LabelProps):
|
|
1489
|
+
declare function Label({ required, children, className, ...rest }: LabelProps): react.JSX.Element;
|
|
1491
1490
|
|
|
1492
1491
|
/**
|
|
1493
1492
|
* Shared form-control styling — the single source of truth for the kit's
|
|
@@ -1518,7 +1517,7 @@ interface CardProps {
|
|
|
1518
1517
|
padded?: boolean;
|
|
1519
1518
|
className?: string;
|
|
1520
1519
|
}
|
|
1521
|
-
declare function Card({ children, header, footer, padded, className }: CardProps):
|
|
1520
|
+
declare function Card({ children, header, footer, padded, className }: CardProps): react.JSX.Element;
|
|
1522
1521
|
interface StatCardProps {
|
|
1523
1522
|
label: ReactNode;
|
|
1524
1523
|
value: ReactNode;
|
|
@@ -1530,7 +1529,7 @@ interface StatCardProps {
|
|
|
1530
1529
|
};
|
|
1531
1530
|
className?: string;
|
|
1532
1531
|
}
|
|
1533
|
-
declare function StatCard({ label, value, icon, delta, className }: StatCardProps):
|
|
1532
|
+
declare function StatCard({ label, value, icon, delta, className }: StatCardProps): react.JSX.Element;
|
|
1534
1533
|
|
|
1535
1534
|
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
1536
1535
|
type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';
|
|
@@ -1542,7 +1541,7 @@ interface AvatarProps {
|
|
|
1542
1541
|
status?: AvatarStatus;
|
|
1543
1542
|
className?: string;
|
|
1544
1543
|
}
|
|
1545
|
-
declare function Avatar({ src, name, size, status, className }: AvatarProps):
|
|
1544
|
+
declare function Avatar({ src, name, size, status, className }: AvatarProps): react.JSX.Element;
|
|
1546
1545
|
interface AvatarGroupProps {
|
|
1547
1546
|
children: ReactNode;
|
|
1548
1547
|
/** Show at most this many avatars; the rest collapse into a +N chip. */
|
|
@@ -1552,7 +1551,7 @@ interface AvatarGroupProps {
|
|
|
1552
1551
|
size?: AvatarSize;
|
|
1553
1552
|
className?: string;
|
|
1554
1553
|
}
|
|
1555
|
-
declare function AvatarGroup({ children, max, size, className }: AvatarGroupProps):
|
|
1554
|
+
declare function AvatarGroup({ children, max, size, className }: AvatarGroupProps): react.JSX.Element;
|
|
1556
1555
|
|
|
1557
1556
|
type BannerTone = 'info' | 'success' | 'warning' | 'danger';
|
|
1558
1557
|
interface BannerProps {
|
|
@@ -1565,7 +1564,7 @@ interface BannerProps {
|
|
|
1565
1564
|
onDismiss?: () => void;
|
|
1566
1565
|
className?: string;
|
|
1567
1566
|
}
|
|
1568
|
-
declare function Banner({ tone, title, children, icon, onDismiss, className }: BannerProps):
|
|
1567
|
+
declare function Banner({ tone, title, children, icon, onDismiss, className }: BannerProps): react.JSX.Element;
|
|
1569
1568
|
|
|
1570
1569
|
interface TabItem {
|
|
1571
1570
|
id: string;
|
|
@@ -1580,7 +1579,7 @@ interface TabsProps {
|
|
|
1580
1579
|
variant?: 'underline' | 'pill';
|
|
1581
1580
|
className?: string;
|
|
1582
1581
|
}
|
|
1583
|
-
declare function Tabs({ items, value, onChange, variant, className }: TabsProps):
|
|
1582
|
+
declare function Tabs({ items, value, onChange, variant, className }: TabsProps): react.JSX.Element;
|
|
1584
1583
|
|
|
1585
1584
|
interface AccordionItem {
|
|
1586
1585
|
id: string;
|
|
@@ -1597,7 +1596,7 @@ interface AccordionProps {
|
|
|
1597
1596
|
allowMultiple?: boolean;
|
|
1598
1597
|
className?: string;
|
|
1599
1598
|
}
|
|
1600
|
-
declare function Accordion({ items, defaultOpenIds, openIds, onOpenChange, allowMultiple, className, }: AccordionProps):
|
|
1599
|
+
declare function Accordion({ items, defaultOpenIds, openIds, onOpenChange, allowMultiple, className, }: AccordionProps): react.JSX.Element;
|
|
1601
1600
|
|
|
1602
1601
|
interface TooltipProps {
|
|
1603
1602
|
content: ReactNode;
|
|
@@ -1606,7 +1605,7 @@ interface TooltipProps {
|
|
|
1606
1605
|
delay?: number;
|
|
1607
1606
|
children: ReactNode;
|
|
1608
1607
|
}
|
|
1609
|
-
declare function Tooltip({ content, side, delay, children }: TooltipProps):
|
|
1608
|
+
declare function Tooltip({ content, side, delay, children }: TooltipProps): react.JSX.Element;
|
|
1610
1609
|
|
|
1611
1610
|
interface ColoredBadgeProps {
|
|
1612
1611
|
/** Tailwind classes for the badge color, e.g. `bg-green-100 text-green-800`.
|
|
@@ -1625,7 +1624,7 @@ interface ColoredBadgeProps {
|
|
|
1625
1624
|
* Tailwind class string. Generic counterpart to StatusBadge (which maps status
|
|
1626
1625
|
* strings to semantic groups); use this when the caller already knows the color.
|
|
1627
1626
|
*/
|
|
1628
|
-
declare function ColoredBadge({ colorClass, children, size, capitalize }: ColoredBadgeProps):
|
|
1627
|
+
declare function ColoredBadge({ colorClass, children, size, capitalize }: ColoredBadgeProps): react.JSX.Element;
|
|
1629
1628
|
|
|
1630
1629
|
interface EmptyStateProps {
|
|
1631
1630
|
/** Bold heading, e.g. "No invoices yet". */
|
|
@@ -1652,7 +1651,7 @@ interface EmptyStateProps {
|
|
|
1652
1651
|
* copies: accepts both the `title`/`description` and `message`/`hint`/`frameless`
|
|
1653
1652
|
* prop shapes, with a single unified look.
|
|
1654
1653
|
*/
|
|
1655
|
-
declare function EmptyState({ title, message, description, hint, variant, frameless, icon, children, }: EmptyStateProps):
|
|
1654
|
+
declare function EmptyState({ title, message, description, hint, variant, frameless, icon, children, }: EmptyStateProps): react.JSX.Element;
|
|
1656
1655
|
|
|
1657
1656
|
interface PageHeaderProps {
|
|
1658
1657
|
title: string;
|
|
@@ -1669,7 +1668,7 @@ interface PageHeaderProps {
|
|
|
1669
1668
|
* right-aligned actions slot. Accepts both the `description`/`actions` and the
|
|
1670
1669
|
* `subtitle`/`children` prop shapes the portals previously used locally.
|
|
1671
1670
|
*/
|
|
1672
|
-
declare function PageHeader({ title, description, subtitle, actions, children }: PageHeaderProps):
|
|
1671
|
+
declare function PageHeader({ title, description, subtitle, actions, children }: PageHeaderProps): react.JSX.Element;
|
|
1673
1672
|
|
|
1674
1673
|
interface LoadingSpinnerProps {
|
|
1675
1674
|
/** Ring diameter: `sm` = 20px, `md` = 32px (default), `lg` = 48px. */
|
|
@@ -1683,7 +1682,7 @@ interface LoadingSpinnerProps {
|
|
|
1683
1682
|
* LoadingSpinner — a centered animated ring for pending/loading regions.
|
|
1684
1683
|
* (Distinct from the shell's internal "Loading…" text used inside data grids.)
|
|
1685
1684
|
*/
|
|
1686
|
-
declare function LoadingSpinner({ size, padding, className }: LoadingSpinnerProps):
|
|
1685
|
+
declare function LoadingSpinner({ size, padding, className }: LoadingSpinnerProps): react.JSX.Element;
|
|
1687
1686
|
|
|
1688
1687
|
interface FilterOption {
|
|
1689
1688
|
label: string;
|
|
@@ -1706,7 +1705,7 @@ interface FilterBarProps {
|
|
|
1706
1705
|
* `<select>` or, for long lists, a glass-styled searchable dropdown; a "Clear
|
|
1707
1706
|
* filters" button appears when any filter is active. Pair with `useFilters`.
|
|
1708
1707
|
*/
|
|
1709
|
-
declare function FilterBar({ filters, values, onChange, onClear, children }: FilterBarProps):
|
|
1708
|
+
declare function FilterBar({ filters, values, onChange, onClear, children }: FilterBarProps): react.JSX.Element;
|
|
1710
1709
|
/** Local filter-state helper: tracks active filter values + derived params. */
|
|
1711
1710
|
declare function useFilters(): {
|
|
1712
1711
|
filterValues: Record<string, string>;
|
|
@@ -1722,13 +1721,13 @@ declare function useFilters(): {
|
|
|
1722
1721
|
*/
|
|
1723
1722
|
declare function SidebarGroupLabel({ children }: {
|
|
1724
1723
|
children: ReactNode;
|
|
1725
|
-
}):
|
|
1724
|
+
}): react.JSX.Element;
|
|
1726
1725
|
declare function SidebarNavItem({ label, count, active, onClick }: {
|
|
1727
1726
|
label: string;
|
|
1728
1727
|
count?: number;
|
|
1729
1728
|
active: boolean;
|
|
1730
1729
|
onClick: () => void;
|
|
1731
|
-
}):
|
|
1730
|
+
}): react.JSX.Element;
|
|
1732
1731
|
|
|
1733
1732
|
/**
|
|
1734
1733
|
* Semantic role of a column, used to auto-map CSV columns to fields and to
|
|
@@ -1780,7 +1779,7 @@ interface BulkImportGridProps {
|
|
|
1780
1779
|
* column's `kind` (`price`/`qty`) to opt it into CSV auto-detection and the
|
|
1781
1780
|
* totals strip.
|
|
1782
1781
|
*/
|
|
1783
|
-
declare function BulkImportGrid({ columns, onImport, description, mergeDuplicates }: BulkImportGridProps):
|
|
1782
|
+
declare function BulkImportGrid({ columns, onImport, description, mergeDuplicates }: BulkImportGridProps): react.JSX.Element;
|
|
1784
1783
|
|
|
1785
1784
|
/**
|
|
1786
1785
|
* Pure helpers for reconciling a bulk-import grid (rows of string cells) against
|
|
@@ -1887,7 +1886,7 @@ interface ContainerFillChartProps<T = ContainerFillItem> {
|
|
|
1887
1886
|
* `getVolume` to inject per-unit volumes; the chart owns the container math and
|
|
1888
1887
|
* the instruction-vs-loaded dual-bar rendering.
|
|
1889
1888
|
*/
|
|
1890
|
-
declare function ContainerFillChart<T = ContainerFillItem>({ items, getVolume, qtyField, showNewIndicator, getInstructionQty, getActualQty, isFilled, isNew, className, style, }: ContainerFillChartProps<T>):
|
|
1889
|
+
declare function ContainerFillChart<T = ContainerFillItem>({ items, getVolume, qtyField, showNewIndicator, getInstructionQty, getActualQty, isFilled, isNew, className, style, }: ContainerFillChartProps<T>): react.JSX.Element | null;
|
|
1891
1890
|
|
|
1892
1891
|
/** Result of a single health poll. `latencyMs` is optional; when omitted on
|
|
1893
1892
|
* an ok result the indicator simply shows no latency for that poll. */
|
|
@@ -1932,7 +1931,7 @@ interface ServerStatusIndicatorProps {
|
|
|
1932
1931
|
* notification bell; supply `healthCheck` (or `healthUrl`), `user`, and
|
|
1933
1932
|
* `version` via a thin per-app wrapper.
|
|
1934
1933
|
*/
|
|
1935
|
-
declare function ServerStatusIndicator({ healthCheck, healthUrl, pollMs, requestTimeoutMs, user, version, }: ServerStatusIndicatorProps):
|
|
1934
|
+
declare function ServerStatusIndicator({ healthCheck, healthUrl, pollMs, requestTimeoutMs, user, version, }: ServerStatusIndicatorProps): react.JSX.Element;
|
|
1936
1935
|
|
|
1937
1936
|
interface ChangePasswordFormProps {
|
|
1938
1937
|
/**
|
|
@@ -1959,7 +1958,7 @@ interface ChangePasswordFormProps {
|
|
|
1959
1958
|
* Product-agnostic change-password form. The host supplies `onSubmit` to do the
|
|
1960
1959
|
* actual change (e.g. call an API then re-authenticate).
|
|
1961
1960
|
*/
|
|
1962
|
-
declare function ChangePasswordForm({ onSubmit, onSuccess, confirmOnSuccess, minLength, submitLabel, doneLabel, }: ChangePasswordFormProps):
|
|
1961
|
+
declare function ChangePasswordForm({ onSubmit, onSuccess, confirmOnSuccess, minLength, submitLabel, doneLabel, }: ChangePasswordFormProps): react.JSX.Element;
|
|
1963
1962
|
|
|
1964
1963
|
interface PdfActionButtonProps {
|
|
1965
1964
|
/**
|
|
@@ -2005,7 +2004,7 @@ interface PdfActionButtonProps {
|
|
|
2005
2004
|
* recent-documents logging) are lifted to the optional `onEmail` /
|
|
2006
2005
|
* `onPreviewOpened` callbacks.
|
|
2007
2006
|
*/
|
|
2008
|
-
declare function PdfActionButton({ fetchPdf, filename, label, className, disabled, onEmail, onPreviewOpened, icon, }: PdfActionButtonProps):
|
|
2007
|
+
declare function PdfActionButton({ fetchPdf, filename, label, className, disabled, onEmail, onPreviewOpened, icon, }: PdfActionButtonProps): react.JSX.Element;
|
|
2009
2008
|
|
|
2010
2009
|
/** Visual category for a milestone. Drives shape + colour so the user can
|
|
2011
2010
|
* tell different milestone types apart at a glance. */
|
|
@@ -2065,7 +2064,7 @@ interface MilestoneTimelineProps {
|
|
|
2065
2064
|
* Product-agnostic: it takes generic `Milestone` data as props. Map your
|
|
2066
2065
|
* domain records to the `Milestone` shape in a thin wrapper at the call site.
|
|
2067
2066
|
*/
|
|
2068
|
-
declare function MilestoneTimeline({ title, milestones, summary, endDate, phaseLabels }: MilestoneTimelineProps):
|
|
2067
|
+
declare function MilestoneTimeline({ title, milestones, summary, endDate, phaseLabels }: MilestoneTimelineProps): react.JSX.Element;
|
|
2069
2068
|
|
|
2070
2069
|
/**
|
|
2071
2070
|
* Shared chart types. The charts are dependency-free inline SVG/CSS — color
|
|
@@ -2118,35 +2117,35 @@ interface DonutChartProps {
|
|
|
2118
2117
|
style?: CSSProperties;
|
|
2119
2118
|
}
|
|
2120
2119
|
|
|
2121
|
-
declare function Sparkline({ data, width, height, stroke, fill, strokeWidth, showDots, className, style, }: SparklineProps):
|
|
2120
|
+
declare function Sparkline({ data, width, height, stroke, fill, strokeWidth, showDots, className, style, }: SparklineProps): react.JSX.Element | null;
|
|
2122
2121
|
|
|
2123
|
-
declare function BarChart({ data, labels, height, color, colors, max, gap, className, style, }: BarChartProps):
|
|
2122
|
+
declare function BarChart({ data, labels, height, color, colors, max, gap, className, style, }: BarChartProps): react.JSX.Element | null;
|
|
2124
2123
|
|
|
2125
|
-
declare function DonutChart({ segments, size, thickness, centerLabel, className, style }: DonutChartProps):
|
|
2124
|
+
declare function DonutChart({ segments, size, thickness, centerLabel, className, style }: DonutChartProps): react.JSX.Element;
|
|
2126
2125
|
|
|
2127
|
-
declare function DashboardTemplate():
|
|
2126
|
+
declare function DashboardTemplate(): react.JSX.Element;
|
|
2128
2127
|
|
|
2129
|
-
declare function DataTablePage():
|
|
2128
|
+
declare function DataTablePage(): react.JSX.Element;
|
|
2130
2129
|
|
|
2131
|
-
declare function FormLayoutPage():
|
|
2130
|
+
declare function FormLayoutPage(): react.JSX.Element;
|
|
2132
2131
|
|
|
2133
|
-
declare function CheckoutTemplate():
|
|
2132
|
+
declare function CheckoutTemplate(): react.JSX.Element;
|
|
2134
2133
|
|
|
2135
|
-
declare function EmailTemplate():
|
|
2134
|
+
declare function EmailTemplate(): react.JSX.Element;
|
|
2136
2135
|
|
|
2137
|
-
declare function ChatTemplate():
|
|
2136
|
+
declare function ChatTemplate(): react.JSX.Element;
|
|
2138
2137
|
|
|
2139
|
-
declare function GalleryTemplate():
|
|
2138
|
+
declare function GalleryTemplate(): react.JSX.Element;
|
|
2140
2139
|
|
|
2141
2140
|
interface AuthScreenProps {
|
|
2142
2141
|
mode?: 'login' | 'register' | 'forgot';
|
|
2143
2142
|
}
|
|
2144
|
-
declare function AuthScreen({ mode }: AuthScreenProps):
|
|
2143
|
+
declare function AuthScreen({ mode }: AuthScreenProps): react.JSX.Element;
|
|
2145
2144
|
|
|
2146
2145
|
interface ErrorPageProps {
|
|
2147
2146
|
code?: 403 | 404 | 500;
|
|
2148
2147
|
}
|
|
2149
|
-
declare function ErrorPage({ code }: ErrorPageProps):
|
|
2148
|
+
declare function ErrorPage({ code }: ErrorPageProps): react.JSX.Element;
|
|
2150
2149
|
|
|
2151
2150
|
/** Package version, injected by tsup at build time. Stays as an empty
|
|
2152
2151
|
* string when the source is consumed without a build (e.g. tests). */
|
|
@@ -2159,7 +2158,7 @@ interface ShellAuth {
|
|
|
2159
2158
|
declare function ShellAuthProvider({ value, children }: {
|
|
2160
2159
|
value: ShellAuth;
|
|
2161
2160
|
children: ReactNode;
|
|
2162
|
-
}):
|
|
2161
|
+
}): react.JSX.Element;
|
|
2163
2162
|
declare function useShellAuth(): ShellAuth;
|
|
2164
2163
|
|
|
2165
2164
|
interface ShellPrefsAdapter {
|
|
@@ -2172,7 +2171,7 @@ interface ShellPrefsAdapter {
|
|
|
2172
2171
|
declare function ShellPrefsProvider({ value, children, }: {
|
|
2173
2172
|
value: ShellPrefsAdapter;
|
|
2174
2173
|
children: ReactNode;
|
|
2175
|
-
}):
|
|
2174
|
+
}): react.JSX.Element;
|
|
2176
2175
|
/** Default localStorage-backed adapter — useful when the consumer doesn't
|
|
2177
2176
|
* ship a backend. Pass the result into <ShellPrefsProvider value={…}>.
|
|
2178
2177
|
*
|
|
@@ -2189,7 +2188,7 @@ type EntityFetcher = (endpoint: string, id: string) => Promise<any>;
|
|
|
2189
2188
|
declare function ShellEntityFetcherProvider({ value, children, }: {
|
|
2190
2189
|
value: EntityFetcher;
|
|
2191
2190
|
children: ReactNode;
|
|
2192
|
-
}):
|
|
2191
|
+
}): react.JSX.Element;
|
|
2193
2192
|
/** Returns the consumer-supplied entity fetcher, or a stub that throws
|
|
2194
2193
|
* on call. Components that fetch entities call this hook eagerly so any
|
|
2195
2194
|
* misconfiguration surfaces synchronously rather than at click-time. */
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { subscribePomo, getPomoSnapshot } from './chunk-F2KBTMSP.js';
|
|
2
2
|
export { setShellTodoProvider } from './chunk-F2KBTMSP.js';
|
|
3
|
-
import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-
|
|
4
|
-
export { Breadcrumbs } from './chunk-
|
|
3
|
+
import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-OY6GC3ZI.js';
|
|
4
|
+
export { Breadcrumbs } from './chunk-OY6GC3ZI.js';
|
|
5
5
|
import { SidebarLayout } from './chunk-VGTEM5RZ.js';
|
|
6
6
|
export { SidebarLayout } from './chunk-VGTEM5RZ.js';
|
|
7
7
|
import { playNotification, playStartup, soundsEnabled, getSoundConfig, SOUND_PACK_KEYS, SOUND_PACKS, SOUND_TYPES, SOUND_TYPE_LABELS, setSoundForType, previewSound, setAllSounds, playLogout } from './chunk-D7PYW2QS.js';
|
|
8
|
-
import { setPdfPreview } from './chunk-
|
|
9
|
-
export { ImageAnnotator_default as ImageAnnotator } from './chunk-
|
|
8
|
+
import { setPdfPreview } from './chunk-S3ZVBCKK.js';
|
|
9
|
+
export { ImageAnnotator_default as ImageAnnotator } from './chunk-S3ZVBCKK.js';
|
|
10
10
|
import { toast_default } from './chunk-VENYVK3L.js';
|
|
11
11
|
export { toast_default as toast } from './chunk-VENYVK3L.js';
|
|
12
|
-
import { EditableGrid } from './chunk-
|
|
13
|
-
export { EditableGrid } from './chunk-
|
|
12
|
+
import { EditableGrid } from './chunk-3T75O6VR.js';
|
|
13
|
+
export { EditableGrid } from './chunk-3T75O6VR.js';
|
|
14
14
|
import { useAuth, useShellAuth } from './chunk-ADJ3CERD.js';
|
|
15
15
|
export { ShellAuthProvider, setShellAuthBridge, useShellAuth } from './chunk-ADJ3CERD.js';
|
|
16
|
-
import { APP_VERSION, VERSION } from './chunk-
|
|
17
|
-
export { VERSION } from './chunk-
|
|
16
|
+
import { APP_VERSION, VERSION } from './chunk-6FET2LA4.js';
|
|
17
|
+
export { VERSION } from './chunk-6FET2LA4.js';
|
|
18
18
|
import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, CancelButton, setWindowPosition, ThumbCard, activateModal } from './chunk-HJ5ZNXPB.js';
|
|
19
19
|
export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ShellPrefsProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useLocalStoragePrefs, useModalActive, useShellPrefs, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-HJ5ZNXPB.js';
|
|
20
20
|
export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-UBN4IUDE.js';
|
|
@@ -5351,8 +5351,8 @@ function useTableNav(items, onSelect, onToggle, onSelectAll, onSelectRange) {
|
|
|
5351
5351
|
setFocusIdx(idx);
|
|
5352
5352
|
}
|
|
5353
5353
|
};
|
|
5354
|
-
document.addEventListener("click", handler);
|
|
5355
|
-
return () => document.removeEventListener("click", handler);
|
|
5354
|
+
document.addEventListener("click", handler, true);
|
|
5355
|
+
return () => document.removeEventListener("click", handler, true);
|
|
5356
5356
|
}, []);
|
|
5357
5357
|
useEffect(() => {
|
|
5358
5358
|
const handler = (e) => {
|
|
@@ -6150,7 +6150,14 @@ function useInfiniteScroll({
|
|
|
6150
6150
|
observer.observe(el);
|
|
6151
6151
|
return () => observer.disconnect();
|
|
6152
6152
|
}, [handleObserver]);
|
|
6153
|
-
const
|
|
6153
|
+
const seenIds = /* @__PURE__ */ new Set();
|
|
6154
|
+
const allItems = (query.data?.pages.flatMap((page) => page?.results ?? []) ?? []).filter((x) => x != null).filter((x) => {
|
|
6155
|
+
const id = x.id;
|
|
6156
|
+
if (id == null) return true;
|
|
6157
|
+
if (seenIds.has(id)) return false;
|
|
6158
|
+
seenIds.add(id);
|
|
6159
|
+
return true;
|
|
6160
|
+
});
|
|
6154
6161
|
const totalCount = query.data?.pages[0]?.count ?? 0;
|
|
6155
6162
|
return {
|
|
6156
6163
|
items: allItems,
|