react-os-shell 4.21.1 → 4.41.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/{Browser-2GQLOOS7.js → Browser-TKBH4DZ3.js} +6 -6
- package/dist/{Browser-2GQLOOS7.js.map → Browser-TKBH4DZ3.js.map} +1 -1
- package/dist/{Calculator-QCAJ6ITI.js → Calculator-XERXEV35.js} +5 -5
- package/dist/{Calculator-QCAJ6ITI.js.map → Calculator-XERXEV35.js.map} +1 -1
- package/dist/ConfirmDialog-EEH4CWSW.js +3 -0
- package/dist/{ConfirmDialog-WAM5OKAV.js.map → ConfirmDialog-EEH4CWSW.js.map} +1 -1
- package/dist/{CurrencyConverter-PCYC6RL5.js → CurrencyConverter-OSZISLHT.js} +5 -5
- package/dist/{CurrencyConverter-PCYC6RL5.js.map → CurrencyConverter-OSZISLHT.js.map} +1 -1
- package/dist/{Documents-MOQNF6HE.js → Documents-YRTLDTLX.js} +6 -6
- package/dist/{Documents-MOQNF6HE.js.map → Documents-YRTLDTLX.js.map} +1 -1
- package/dist/{Files-YBH6XKXE.js → Files-WHYCDRYU.js} +7 -7
- package/dist/{Files-YBH6XKXE.js.map → Files-WHYCDRYU.js.map} +1 -1
- package/dist/{Notepad-E3L6AOGU.js → Notepad-6UAWRNZH.js} +6 -6
- package/dist/{Notepad-E3L6AOGU.js.map → Notepad-6UAWRNZH.js.map} +1 -1
- package/dist/{PomodoroTimer-YABFEPEV.js → PomodoroTimer-5ZSIG7SQ.js} +5 -5
- package/dist/{PomodoroTimer-YABFEPEV.js.map → PomodoroTimer-5ZSIG7SQ.js.map} +1 -1
- package/dist/{Preview-SNPHS4PS.js → Preview-VBIWWJLK.js} +6 -6
- package/dist/{Preview-SNPHS4PS.js.map → Preview-VBIWWJLK.js.map} +1 -1
- package/dist/{Spreadsheet-JXQCWZES.js → Spreadsheet-GRD4P3OI.js} +6 -6
- package/dist/{Spreadsheet-JXQCWZES.js.map → Spreadsheet-GRD4P3OI.js.map} +1 -1
- package/dist/{Stock-IPLLRUOC.js → Stock-4BORXILI.js} +5 -5
- package/dist/{Stock-IPLLRUOC.js.map → Stock-4BORXILI.js.map} +1 -1
- package/dist/{Weather-SI5QN7X2.js → Weather-ZPPSEUIY.js} +5 -5
- package/dist/{Weather-SI5QN7X2.js.map → Weather-ZPPSEUIY.js.map} +1 -1
- package/dist/{WorldClock-WYDSMUWX.js → WorldClock-LBKYWDWE.js} +5 -5
- package/dist/{WorldClock-WYDSMUWX.js.map → WorldClock-LBKYWDWE.js.map} +1 -1
- package/dist/apps/index.js +16 -16
- package/dist/{chunk-XRBJARD7.js → chunk-COTCIYLS.js} +4 -4
- package/dist/{chunk-XRBJARD7.js.map → chunk-COTCIYLS.js.map} +1 -1
- package/dist/{chunk-XBV7NUZK.js → chunk-D4WFGAUW.js} +556 -131
- package/dist/chunk-D4WFGAUW.js.map +1 -0
- package/dist/{chunk-IGPSRRL7.js → chunk-GUWAKATU.js} +10 -7
- package/dist/chunk-GUWAKATU.js.map +1 -0
- package/dist/{chunk-HYAW6KIL.js → chunk-HNH7FOYB.js} +16 -4
- package/dist/chunk-HNH7FOYB.js.map +1 -0
- package/dist/{chunk-L2O6B5KT.js → chunk-OXLLRKBC.js} +24 -4
- package/dist/chunk-OXLLRKBC.js.map +1 -0
- package/dist/chunk-TQFUNASX.js +7 -0
- package/dist/{chunk-CM2NWGYZ.js.map → chunk-TQFUNASX.js.map} +1 -1
- package/dist/{chunk-Q3AOIJ7B.js → chunk-X6DOWIY2.js} +3 -3
- package/dist/{chunk-Q3AOIJ7B.js.map → chunk-X6DOWIY2.js.map} +1 -1
- package/dist/{index-Czn1re5M.d.ts → index-B4RRJ5bp.d.ts} +300 -64
- package/dist/index.d.ts +53 -29
- package/dist/index.js +54 -146
- package/dist/index.js.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +4 -4
- package/package.json +1 -1
- package/dist/ConfirmDialog-WAM5OKAV.js +0 -3
- package/dist/chunk-CM2NWGYZ.js +0 -7
- package/dist/chunk-HYAW6KIL.js.map +0 -1
- package/dist/chunk-IGPSRRL7.js.map +0 -1
- package/dist/chunk-L2O6B5KT.js.map +0 -1
- package/dist/chunk-XBV7NUZK.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as ColumnDef,
|
|
2
|
-
export { A as ALT,
|
|
1
|
+
import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-B4RRJ5bp.js';
|
|
2
|
+
export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as Accordion, f as AccordionItem, g as AccordionProps, h as Align, i as AuthScreen, j as AuthScreenProps, k as Avatar, l as AvatarGroup, m as AvatarGroupProps, n as AvatarProps, o as AvatarSize, p as AvatarStatus, B as Banner, q as BannerEmphasis, r as BannerProps, s as BannerTone, t as BarChart, u as BarChartProps, v as BreadcrumbItem, w as Breadcrumbs, x as BreadcrumbsProps, y as Button, z as ButtonProps, D as ButtonSize, E as ButtonVariant, F as CMD_A, G as CMD_DOT, H as CMD_ENTER, I as CMD_K, J as CMD_S, K as Card, L as CardPadding, M as CardProps, N as CellStyle, O as ChatTemplate, Q as Checkbox, R as CheckboxProps, T as CheckoutTemplate, U as ColoredBadge, V as ColoredBadgeProps, W as ConfirmProvider, X as ContainerFillChart, Y as ContainerFillChartProps, Z as ContainerFillItem, _ as CountBadge, $ as CountBadgeProps, a0 as CountBadgeTone, a1 as DashboardTemplate, a2 as DataTable, a3 as DataTableColumn, a4 as DataTablePage, a5 as DataTableProps, a6 as DatePicker, a7 as DatePickerProps, a8 as DateRangePicker, a9 as DateRangePickerProps, aa as DescriptionColumns, ab as DescriptionItem, ac as DescriptionList, ad as DescriptionListProps, ae as Dialog, af as DialogProps, ag as DialogSize, ah as Divider, ai as DividerProps, aj as DividerSpacing, ak as DonutChart, al as DonutChartProps, am as DonutSegment, an as Drawer, ao as DrawerProps, ap as DrawerSide, aq as DrawerSize, ar as ENTER, as as EditableGrid, at as EditableGridProps, au as EmailTemplate, av as EmptyState, aw as EmptyStateProps, ax as ErrorPage, ay as ErrorPageProps, az as FilePicker, aA as FilePickerProps, aB as FormField, aC as FormFieldProps, aD as FormLayoutPage, aE as GLASS_DIVIDER, aF as GLASS_INPUT_BG, aG as GROUP_COLORS, aH as GalleryTemplate, aI as Gap, aJ as GlobalSearch, aK as GlobalSearchProps, aL as Grid, aM as GridCols, aN as GridColumn, aO as GridProps, aP as HelpCenter, aQ as HelpCenterDoc, aR as HelpCenterProps, aS as INPUT_BASE, aT as INPUT_SIZES, aU as IconButton, aV as IconButtonProps, aW as Inline, aX as InlineProps, aY as Input, aZ as InputNumber, a_ as InputNumberProps, a$ as InputProps, b0 as InputSize, b1 as Justify, b2 as Kanban, b3 as KanbanColumn, b4 as KanbanProps, b5 as Label, b6 as LabelProps, b7 as ListFooter, b8 as ListLoadError, b9 as ListLoadErrorProps, ba as LoadingSpinner, bb as LoadingSpinnerProps, bc as MAX_FRACTION_DIGITS, bd as MOD, be as Markdown, bf as MarkdownProps, bg as MediaUploadField, bh as MediaUploadFieldProps, bi as MediaUploadGrid, bj as MediaUploadGridItem, bk as MediaUploadGridProps, bl as MetricBar, bm as MetricBarProps, bn as Milestone, bo as MilestoneKind, bp as MilestoneTimeline, bq as MilestoneTimelineProps, br as NativeSelect, bs as NumericKeypad, bt as NumericKeypadProps, bu as PageHeader, bv as PageHeaderProps, bw as Pagination, bx as PaginationProps, by as Paragraph, bz as ParagraphProps, bA as PopupMenu, bB as PopupMenuDivider, bC as PopupMenuItem, bD as PopupMenuLabel, bE as Radio, bF as RadioProps, bG as Result, bH as ResultProps, bI as ResultStatus, bJ as SHIFT, bK as SearchProvider, bL as SearchResult, bM as SearchableOption, bN as SearchableSelect, bO as SearchableSelectProps, bP as Segmented, bQ as SegmentedOption, bR as SegmentedProps, bS as SegmentedSize, bT as Select, bU as SelectOption, bV as SelectProps, bW as SemanticGroup, bX as SeverityTone, bY as ShellPrefsAdapter, bZ as ShellPrefsProvider, b_ as SidebarActionButton, b$ as SidebarActionButtonProps, c0 as SidebarGroupLabel, c1 as SidebarLayout, c2 as SidebarLayoutProps, c3 as SidebarNavItem, c4 as Skeleton, c5 as SkeletonProps, c6 as SkeletonVariant, c7 as Sparkline, c8 as SparklineProps, c9 as Stack, ca as StackProps, cb as StatCard, cc as StatCardProps, cd as Statistic, ce as StatisticProps, cf as StatisticSize, cg as StatisticTone, ch as StatusBadge, ci as StatusBadgeProvider, cj as Switch, ck as SwitchProps, cl as SwitchSize, cm as TabItem, cn as Tabs, co as TabsProps, cp as Text, cq as TextProps, cr as TextSize, cs as TextTone, ct as TextWeight, cu as Textarea, cv as TextareaProps, cw as Theme, cx as TileButton, cy as TileButtonProps, cz as TileSize, cA as Title, cB as TitleLevel, cC as TitleProps, cD as ToastOptions, cE as ToastPlacement, cF as Tooltip, cG as TooltipProps, cH as TopNav, cI as TopNavItem, cJ as TopNavProps, cK as VERSION, cL as appendKey, cM as applyThemePrefs, cN as backspace, cO as confirm, cP as confirmDestructive, cQ as formatDate, cR as glassStyle, cS as inputClasses, cT as isMac, cU as isSeverityTone, cV as mediaFileName, cW as prompt, cX as resolveTheme, cY as severityOf, cZ as tabButtonId, c_ as tabPanelId, c$ as toISODate, d0 as toast, d1 as useClickOutside, d2 as useConfirm, d3 as useFocusTrap, d4 as useIsMobile, d5 as useLocalStoragePrefs, d6 as useScrollLock, d7 as useShellPrefs, d8 as useTheme } from './index-B4RRJ5bp.js';
|
|
3
3
|
import { W as WindowRegistry } from './types-BHVq95fp.js';
|
|
4
4
|
export { M as ModalRegistryEntry, P as PageRegistryEntry, a as WindowRegistryEntry, i as isEntityEntry, b as isPageEntry, s as setShellWindowRegistry } from './types-BHVq95fp.js';
|
|
5
5
|
import * as react from 'react';
|
|
@@ -120,6 +120,20 @@ declare function useWindowTitle(_title: string): void;
|
|
|
120
120
|
declare function CopyButton({ text }: {
|
|
121
121
|
text: string;
|
|
122
122
|
}): react_jsx_runtime.JSX.Element;
|
|
123
|
+
/**
|
|
124
|
+
* The id of the `<Modal>` this component is rendered inside, or `''` outside one.
|
|
125
|
+
*
|
|
126
|
+
* This is the PRIVATE per-mount id (`modal-xxxxxx`) that `activationOrder` and
|
|
127
|
+
* the window-scoped CustomEvents carry — not the caller-supplied `windowKey`.
|
|
128
|
+
* Same context `useWindowMenuItem` and `useWidgetSettings` already read, and it
|
|
129
|
+
* reaches portal window content the same way theirs does.
|
|
130
|
+
*
|
|
131
|
+
* Use it to answer "was this event meant for MY window?", which
|
|
132
|
+
* {@link useModalActive} cannot: that asks "is the frontmost modal mine", and
|
|
133
|
+
* every nested dialog a form opens pushes itself onto `activationOrder`, so a
|
|
134
|
+
* form with a child dialog open reads as inactive.
|
|
135
|
+
*/
|
|
136
|
+
declare function useEnclosingModalId(): string;
|
|
123
137
|
/** Hook to check if the current modal is active (frontmost) */
|
|
124
138
|
declare function useModalActive(): boolean;
|
|
125
139
|
declare function ModalActions({ children, position }: {
|
|
@@ -413,32 +427,6 @@ declare class WindowErrorBoundary extends Component<WindowErrorBoundaryProps, {
|
|
|
413
427
|
render(): string | number | boolean | Iterable<ReactNode> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
414
428
|
}
|
|
415
429
|
|
|
416
|
-
interface SearchResult {
|
|
417
|
-
/** Category label, e.g. "Sales Order". */
|
|
418
|
-
type: string;
|
|
419
|
-
/** Primary text shown in the result row. */
|
|
420
|
-
label: string;
|
|
421
|
-
/** Optional secondary line. */
|
|
422
|
-
sub?: string;
|
|
423
|
-
/** Window-registry key passed to openEntity. */
|
|
424
|
-
entity_type: string;
|
|
425
|
-
entity_id: string;
|
|
426
|
-
}
|
|
427
|
-
/** A search provider — given a query, returns matching results. The shell
|
|
428
|
-
* calls every provider in parallel and concatenates the responses. */
|
|
429
|
-
type SearchProvider = (query: string) => Promise<SearchResult[]>;
|
|
430
|
-
/** Bundle of search-related consumer config. */
|
|
431
|
-
interface SearchConfig {
|
|
432
|
-
providers: SearchProvider[];
|
|
433
|
-
/** Per-result-type icon (SVG path `d` attribute). Unmatched types fall
|
|
434
|
-
* back to a generic magnifier glyph. */
|
|
435
|
-
typeIcons?: Record<string, string>;
|
|
436
|
-
placeholder?: string;
|
|
437
|
-
}
|
|
438
|
-
interface GlobalSearchProps extends Partial<SearchConfig> {
|
|
439
|
-
}
|
|
440
|
-
declare function GlobalSearch({ providers, typeIcons, placeholder }?: GlobalSearchProps): react_jsx_runtime.JSX.Element | null;
|
|
441
|
-
|
|
442
430
|
declare function ShortcutHelp(): react_jsx_runtime.JSX.Element;
|
|
443
431
|
|
|
444
432
|
/** Generic notification shape consumed by the shell. Consumer-specific
|
|
@@ -1960,6 +1948,42 @@ declare function useNewHotkey(callback: () => void): void;
|
|
|
1960
1948
|
*/
|
|
1961
1949
|
declare function useEditHotkey(callback: (() => void) | null): void;
|
|
1962
1950
|
|
|
1951
|
+
/**
|
|
1952
|
+
* Registers a handler for the Cmd+S "save and stay" event dispatched by Modal.
|
|
1953
|
+
* The callback should save the form data WITHOUT closing the modal.
|
|
1954
|
+
*
|
|
1955
|
+
* Fires ONLY for the window the keystroke was aimed at. Modal restricts the
|
|
1956
|
+
* dispatch to the topmost modal, but the event goes to `document`, so without
|
|
1957
|
+
* this match every mounted window's hook answered one keypress — and with two
|
|
1958
|
+
* forms open, a single Cmd+S saved both. Depending on each form's mode that
|
|
1959
|
+
* either PATCHed a background record or CREATEd a brand new one, each with its
|
|
1960
|
+
* own success toast, so the user saw the write and misread which window it came
|
|
1961
|
+
* from.
|
|
1962
|
+
*
|
|
1963
|
+
* The match is on the originating modal's id rather than on
|
|
1964
|
+
* {@link useModalActive}, which asks a different question: "is the frontmost
|
|
1965
|
+
* modal mine". Every nested dialog a form opens pushes itself onto the
|
|
1966
|
+
* activation order, so a form with a child dialog open would read as inactive
|
|
1967
|
+
* and Cmd+S would silently do nothing where it used to save.
|
|
1968
|
+
*
|
|
1969
|
+
* An event with no `detail.modalId` is treated as "for me", so a consumer on a
|
|
1970
|
+
* newer package than the shell that dispatched it keeps working exactly as
|
|
1971
|
+
* before rather than losing Cmd+S entirely.
|
|
1972
|
+
*/
|
|
1973
|
+
declare function useModalSave(callback: (() => void) | null): void;
|
|
1974
|
+
|
|
1975
|
+
/**
|
|
1976
|
+
* Registers a handler for the Alt+Shift+D "save as new / duplicate" event
|
|
1977
|
+
* dispatched by Modal. The callback should save the form data as a NEW record
|
|
1978
|
+
* (ignoring the current ID).
|
|
1979
|
+
*
|
|
1980
|
+
* Window-scoped for the same reason as {@link useModalSave}, and the stakes are
|
|
1981
|
+
* higher here: an unscoped duplicate created a second record from every open
|
|
1982
|
+
* form at once, and one consumer closes its window on success, so a background
|
|
1983
|
+
* window vanished as well.
|
|
1984
|
+
*/
|
|
1985
|
+
declare function useModalDuplicate(callback: (() => void) | null): void;
|
|
1986
|
+
|
|
1963
1987
|
interface UndoProviderProps {
|
|
1964
1988
|
children: React.ReactNode;
|
|
1965
1989
|
/**
|
|
@@ -2140,4 +2164,4 @@ interface UndoState {
|
|
|
2140
2164
|
future: UndoStep[];
|
|
2141
2165
|
}
|
|
2142
2166
|
|
|
2143
|
-
export { type ActivityKind, type AsyncEnvironment, BLOCKED_PCT_CPU, type BatteryInfo, BehaviorPanel, type BottleneckKind, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, CancelButton, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, type ClockCalendarConfig, ColumnDef, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, type DuplicateGroup, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, FilterBar, type FilterOption, type FpsGroup,
|
|
2167
|
+
export { type ActivityKind, type AsyncEnvironment, BLOCKED_PCT_CPU, type BatteryInfo, BehaviorPanel, type BottleneckKind, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, CancelButton, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, type ClockCalendarConfig, ColumnDef, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, type DuplicateGroup, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, FilterBar, type FilterOption, type FpsGroup, type HealthCheckResult, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, LOG_CAP, Layout, type LayoutProps, type LogSummary, MIN_EVENT_SAMPLES, MIN_GROUP_SAMPLES, type MenuLayer, type MergeBulkOptions, type MergeBulkResult, type MobileAppConfig, Modal, ModalActions, NotificationBell, type NotificationsConfig, PaginatedResponse, PdfActionButton, type PdfActionButtonProps, type PerfEnvironment, type PerfLogRecord, type PerfReading, type PerfReport, PerfStats, type PerfStatsProps, type PlatformHints, ResizableTable, SMOOTH_FPS, SearchConfig, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, ShortcutHelp, SortState, SoundsPanel, type StagedTarget, StartMenu, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TodoProvider, type TodoTask, UndoControls, type UndoControlsApi, type UndoControlsProps, UndoProvider, type UndoProviderProps, type UndoSnapshot, type UndoState, type UndoStep, type UndoableOptions, type Verdict, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, type WindowTarget, type WindowTargetOptions, WindowTitle, appendRecord as appendPerfRecord, applyDevTitle, beginWindowGesture, classifyActivity, classify as classifyPerf, commitExposeHighlight, createWindowRegistry, createWindowTarget, describeMachine, describePerfReport, exitExposeMode, findDuplicateKeys, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isDevEnv, isInteracting, markMenuOpen, mergeBulkItems, toCsv as perfLogToCsv, perfReportFile, readEnvironment as readPerfEnvironment, registerModalEscapeInterceptor, requestAsyncEnvironment, requestWindowFront, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, summariseFrames, summariseLog as summarisePerfLog, toggleExposeMode, useColumnConfig, useDesktopHost, useEditHotkey, useEnclosingModalId, useFilters, useInfiniteScroll, useIsActiveWindow, useModalActive, useModalDuplicate, useModalSave, useNewHotkey, useShellAuth, useShellEntityFetcher, useSort, useTableNav, useUndo, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTarget, useWindowTitle };
|
package/dist/index.js
CHANGED
|
@@ -5,33 +5,33 @@ export { ImageAnnotator_default as ImageAnnotator } from './chunk-X5PZYTAK.js';
|
|
|
5
5
|
import { publishDesktopFolders, requestFilesTrashView, FolderGlyph, requestFilesDesktopFolderView, FileIconTile } from './chunk-OQ7GRU7G.js';
|
|
6
6
|
import './chunk-4SQU5YV6.js';
|
|
7
7
|
import { setPdfPreview } from './chunk-BV6SQ46N.js';
|
|
8
|
-
import { CMD_K, CMD_DOT, CMD_A, ALT_SHIFT_N, ALT_SHIFT_E, CMD_ENTER, CMD_S, ALT_SHIFT_D, CMD_Z, CMD_SHIFT_Z, formatDate, useTheme, resolveTheme, useClickOutside, ListLoadError, ListFooter, firstEnabledIndex, Button_default, FormField, Input_default, applyThemePrefs, lastEnabledIndex, nextEnabledIndex, matchTypeahead } from './chunk-
|
|
9
|
-
export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Card, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, CountBadge, DashboardTemplate, DataTable, DataTablePage, DateRangePicker, DescriptionList, Divider, DonutChart, Drawer, ENTER, EmailTemplate, EmptyState, ErrorPage, FilePicker, FormField, FormLayoutPage, GalleryTemplate, Grid, HelpCenter, INPUT_BASE, INPUT_SIZES, Inline, Input_default as Input, InputNumber_default as InputNumber, Kanban, Label, ListFooter, ListLoadError, LoadingSpinner, MAX_FRACTION_DIGITS, MOD, Markdown, MediaUploadField, MediaUploadGrid, MetricBar, MilestoneTimeline, NativeSelect, NumericKeypad, PageHeader, Pagination, Paragraph, Radio_default as Radio, Result, SHIFT, SearchableSelect, Segmented, Select_default as Select, SidebarActionButton, SidebarGroupLabel, SidebarNavItem, Skeleton, Sparkline, Stack, StatCard, Statistic, StatusBadge, StatusBadgeProvider, Switch, Tabs, Text, Textarea_default as Textarea, TileButton_default as TileButton, Title, Tooltip, TopNav, appendKey, applyThemePrefs, backspace, formatDate, inputClasses, isMac, isSeverityTone, mediaFileName, resolveTheme, severityOf, toISODate, useClickOutside, useTheme } from './chunk-
|
|
10
|
-
export { Breadcrumbs } from './chunk-
|
|
8
|
+
import { CMD_K, CMD_DOT, CMD_A, ALT_SHIFT_N, ALT_SHIFT_E, CMD_ENTER, CMD_S, ALT_SHIFT_D, CMD_Z, CMD_SHIFT_Z, formatDate, useTheme, GlobalSearch, resolveTheme, useClickOutside, ListLoadError, ListFooter, firstEnabledIndex, Button_default, FormField, Input_default, applyThemePrefs, lastEnabledIndex, nextEnabledIndex, matchTypeahead } from './chunk-D4WFGAUW.js';
|
|
9
|
+
export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Card, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, CountBadge, DashboardTemplate, DataTable, DataTablePage, DatePicker_default as DatePicker, DateRangePicker, DescriptionList, Divider, DonutChart, Drawer, ENTER, EmailTemplate, EmptyState, ErrorPage, FilePicker, FormField, FormLayoutPage, GROUP_COLORS, GalleryTemplate, GlobalSearch, Grid, HelpCenter, INPUT_BASE, INPUT_SIZES, IconButton_default as IconButton, Inline, Input_default as Input, InputNumber_default as InputNumber, Kanban, Label, ListFooter, ListLoadError, LoadingSpinner, MAX_FRACTION_DIGITS, MOD, Markdown, MediaUploadField, MediaUploadGrid, MetricBar, MilestoneTimeline, NativeSelect, NumericKeypad, PageHeader, Pagination, Paragraph, Radio_default as Radio, Result, SHIFT, SearchableSelect, Segmented, Select_default as Select, SidebarActionButton, SidebarGroupLabel, SidebarNavItem, Skeleton, Sparkline, Stack, StatCard, Statistic, StatusBadge, StatusBadgeProvider, Switch_default as Switch, Tabs, Text, Textarea_default as Textarea, TileButton_default as TileButton, Title, Tooltip, TopNav, appendKey, applyThemePrefs, backspace, formatDate, inputClasses, isMac, isSeverityTone, mediaFileName, resolveTheme, severityOf, tabButtonId, tabPanelId, toISODate, useClickOutside, useTheme } from './chunk-D4WFGAUW.js';
|
|
10
|
+
export { Breadcrumbs } from './chunk-HNH7FOYB.js';
|
|
11
11
|
import { withSpareRow, EditableGrid } from './chunk-DC6BYGZ6.js';
|
|
12
12
|
export { EditableGrid } from './chunk-DC6BYGZ6.js';
|
|
13
13
|
import { SidebarLayout } from './chunk-YG45DAUT.js';
|
|
14
14
|
export { SidebarLayout } from './chunk-YG45DAUT.js';
|
|
15
15
|
import { toast_default } from './chunk-4AKVHY4B.js';
|
|
16
16
|
export { toast_default as toast } from './chunk-4AKVHY4B.js';
|
|
17
|
-
import { APP_VERSION, VERSION } from './chunk-
|
|
18
|
-
export { VERSION } from './chunk-
|
|
17
|
+
import { APP_VERSION, VERSION } from './chunk-TQFUNASX.js';
|
|
18
|
+
export { VERSION } from './chunk-TQFUNASX.js';
|
|
19
19
|
import { playNotification, playStartup, soundsEnabled, getSoundConfig, SOUND_PACK_KEYS, SOUND_PACKS, SOUND_TYPES, SOUND_TYPE_LABELS, setSoundForType, previewSound, setAllSounds, playLogout } from './chunk-D7PYW2QS.js';
|
|
20
20
|
import { useAuth } from './chunk-EWDYCO65.js';
|
|
21
21
|
export { setShellAuthBridge } from './chunk-EWDYCO65.js';
|
|
22
|
-
import { cancelWindowFront, requestWindowFront, useWindowManager, WINDOW_REGISTRY, isPageEntry, Modal, setPerfCollecting, drainPerfEvents, markMenuOpen, SIDEBAR_STRIP_W, forgetMaximizedWindowBoxes, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, useUndo, CancelButton, setWindowPosition } from './chunk-
|
|
23
|
-
export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, UndoProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, beginWindowGesture, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, markMenuOpen, requestWindowFront, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useIsActiveWindow, useModalActive, useUndo, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-
|
|
22
|
+
import { cancelWindowFront, requestWindowFront, useWindowManager, WINDOW_REGISTRY, isPageEntry, Modal, setPerfCollecting, drainPerfEvents, markMenuOpen, SIDEBAR_STRIP_W, forgetMaximizedWindowBoxes, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, useUndo, useEnclosingModalId, CancelButton, setWindowPosition } from './chunk-GUWAKATU.js';
|
|
23
|
+
export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, UndoProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, beginWindowGesture, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, markMenuOpen, requestWindowFront, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useEnclosingModalId, useIsActiveWindow, useModalActive, useUndo, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-GUWAKATU.js';
|
|
24
24
|
import { PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, useShellPrefs, useIsMobile } from './chunk-C22EFSND.js';
|
|
25
25
|
export { PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ShellPrefsProvider, useIsMobile, useLocalStoragePrefs, useShellPrefs } from './chunk-C22EFSND.js';
|
|
26
|
-
import { registerModalEscapeInterceptor } from './chunk-
|
|
27
|
-
export { ConfirmProvider, Dialog, confirm, confirmDestructive, prompt, registerModalEscapeInterceptor, useConfirm, useFocusTrap, useScrollLock } from './chunk-
|
|
26
|
+
import { registerModalEscapeInterceptor } from './chunk-OXLLRKBC.js';
|
|
27
|
+
export { ConfirmProvider, Dialog, confirm, confirmDestructive, prompt, registerModalEscapeInterceptor, useConfirm, useFocusTrap, useScrollLock } from './chunk-OXLLRKBC.js';
|
|
28
28
|
import { startMenuCategories, navVisible, navSections, isSection, navIcons, isReachable, sectionIcons, useShellAuth, visibleChildren } from './chunk-WNLPTLT6.js';
|
|
29
29
|
export { ShellAuthProvider, setShellNavIcons, useShellAuth } from './chunk-WNLPTLT6.js';
|
|
30
|
-
import {
|
|
30
|
+
import { GLASS_INPUT_BG, glassStyle } from './chunk-3CUSBZWG.js';
|
|
31
31
|
export { GLASS_DIVIDER, GLASS_INPUT_BG, glassStyle } from './chunk-3CUSBZWG.js';
|
|
32
|
-
import { createContext, lazy, useSyncExternalStore, useState,
|
|
33
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
32
|
+
import { createContext, lazy, useSyncExternalStore, useState, useEffect, useRef, useCallback, useLayoutEffect, useMemo, useContext, isValidElement, cloneElement, Suspense, useId } from 'react';
|
|
34
33
|
import { Dialog, DialogBackdrop, DialogPanel } from '@headlessui/react';
|
|
34
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
35
35
|
import { createPortal } from 'react-dom';
|
|
36
36
|
import { useQueryClient, useQuery, useMutation, useInfiniteQuery } from '@tanstack/react-query';
|
|
37
37
|
import 'react-router-dom';
|
|
@@ -75,138 +75,6 @@ function createWindowTarget(windowKey) {
|
|
|
75
75
|
function useWindowTarget(target) {
|
|
76
76
|
return useSyncExternalStore(target.subscribe, target.get, target.get);
|
|
77
77
|
}
|
|
78
|
-
var DEFAULT_MAGNIFIER = "M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z";
|
|
79
|
-
function GlobalSearch({ providers, typeIcons, placeholder = "Search..." } = {}) {
|
|
80
|
-
const [open, setOpen] = useState(false);
|
|
81
|
-
const [query, setQuery] = useState("");
|
|
82
|
-
const [results, setResults] = useState([]);
|
|
83
|
-
const [loading, setLoading] = useState(false);
|
|
84
|
-
const [activeIdx, setActiveIdx] = useState(0);
|
|
85
|
-
const inputRef = useRef(null);
|
|
86
|
-
const { openEntity } = useWindowManager();
|
|
87
|
-
const debounceRef = useRef();
|
|
88
|
-
useEffect(() => {
|
|
89
|
-
const handler = (e) => {
|
|
90
|
-
if ((e.ctrlKey || e.metaKey) && e.key === "k") {
|
|
91
|
-
e.preventDefault();
|
|
92
|
-
setOpen((prev) => !prev);
|
|
93
|
-
}
|
|
94
|
-
if (e.key === "Escape" && open) {
|
|
95
|
-
setOpen(false);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
window.addEventListener("keydown", handler);
|
|
99
|
-
return () => window.removeEventListener("keydown", handler);
|
|
100
|
-
}, [open]);
|
|
101
|
-
useEffect(() => {
|
|
102
|
-
if (open) {
|
|
103
|
-
setTimeout(() => inputRef.current?.focus(), 50);
|
|
104
|
-
} else {
|
|
105
|
-
setQuery("");
|
|
106
|
-
setResults([]);
|
|
107
|
-
}
|
|
108
|
-
}, [open]);
|
|
109
|
-
useEffect(() => {
|
|
110
|
-
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
111
|
-
if (query.length < 2) {
|
|
112
|
-
setResults([]);
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
if (!providers || providers.length === 0) {
|
|
116
|
-
setResults([]);
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
debounceRef.current = setTimeout(async () => {
|
|
120
|
-
setLoading(true);
|
|
121
|
-
try {
|
|
122
|
-
const responses = await Promise.all(providers.map((p) => p(query).catch(() => [])));
|
|
123
|
-
setResults(responses.flat());
|
|
124
|
-
setActiveIdx(0);
|
|
125
|
-
} catch {
|
|
126
|
-
setResults([]);
|
|
127
|
-
}
|
|
128
|
-
setLoading(false);
|
|
129
|
-
}, 250);
|
|
130
|
-
return () => {
|
|
131
|
-
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
132
|
-
};
|
|
133
|
-
}, [query, providers]);
|
|
134
|
-
const handleSelect = useCallback((result) => {
|
|
135
|
-
setOpen(false);
|
|
136
|
-
openEntity(result.entity_type, result.entity_id, null, result.label);
|
|
137
|
-
}, [openEntity]);
|
|
138
|
-
const handleKeyDown = (e) => {
|
|
139
|
-
if (e.key === "ArrowDown") {
|
|
140
|
-
e.preventDefault();
|
|
141
|
-
setActiveIdx((i) => Math.min(i + 1, results.length - 1));
|
|
142
|
-
} else if (e.key === "ArrowUp") {
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
setActiveIdx((i) => Math.max(i - 1, 0));
|
|
145
|
-
} else if (e.key === "Enter" && results[activeIdx]) {
|
|
146
|
-
handleSelect(results[activeIdx]);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
if (!open) return null;
|
|
150
|
-
return /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-[200] flex items-start justify-center pt-[15vh]", onClick: () => setOpen(false), children: [
|
|
151
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm" }),
|
|
152
|
-
/* @__PURE__ */ jsxs("div", { className: "relative z-10 w-full max-w-xl rounded-2xl overflow-hidden", onClick: (e) => e.stopPropagation(), style: glassStyle(), children: [
|
|
153
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-4 py-3 border-b border-gray-200", children: [
|
|
154
|
-
/* @__PURE__ */ jsx("svg", { className: "h-5 w-5 text-gray-400 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: DEFAULT_MAGNIFIER }) }),
|
|
155
|
-
/* @__PURE__ */ jsx(
|
|
156
|
-
"input",
|
|
157
|
-
{
|
|
158
|
-
ref: inputRef,
|
|
159
|
-
type: "text",
|
|
160
|
-
value: query,
|
|
161
|
-
onChange: (e) => setQuery(e.target.value),
|
|
162
|
-
onKeyDown: handleKeyDown,
|
|
163
|
-
placeholder,
|
|
164
|
-
className: "flex-1 text-sm bg-transparent border-0 outline-none placeholder-gray-400"
|
|
165
|
-
}
|
|
166
|
-
),
|
|
167
|
-
/* @__PURE__ */ jsx("kbd", { className: "hidden sm:inline-flex items-center rounded border border-gray-300 px-1.5 py-0.5 text-[10px] font-medium text-gray-400", children: "ESC" })
|
|
168
|
-
] }),
|
|
169
|
-
/* @__PURE__ */ jsxs("div", { className: "max-h-[50vh] overflow-y-auto", children: [
|
|
170
|
-
loading && /* @__PURE__ */ jsx("div", { className: "px-4 py-6 text-center text-sm text-gray-400", children: "Searching..." }),
|
|
171
|
-
!loading && query.length >= 2 && results.length === 0 && /* @__PURE__ */ jsx("div", { className: "px-4 py-6 text-center text-sm text-gray-400", children: "No results found." }),
|
|
172
|
-
!loading && results.length > 0 && /* @__PURE__ */ jsx("ul", { className: "py-2", children: results.map((r, i) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
173
|
-
"button",
|
|
174
|
-
{
|
|
175
|
-
className: `flex items-center gap-3 w-full px-4 py-2.5 text-left transition-colors ${i === activeIdx ? "bg-blue-50" : "hover:bg-gray-50"}`,
|
|
176
|
-
onClick: () => handleSelect(r),
|
|
177
|
-
onMouseEnter: () => setActiveIdx(i),
|
|
178
|
-
children: [
|
|
179
|
-
/* @__PURE__ */ jsx("svg", { className: "h-4 w-4 text-gray-400 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.5, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: typeIcons?.[r.type] || DEFAULT_MAGNIFIER }) }),
|
|
180
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
181
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-gray-900 truncate", children: r.label }),
|
|
182
|
-
r.sub && /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400 truncate", children: r.sub })
|
|
183
|
-
] }),
|
|
184
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-500", children: r.type })
|
|
185
|
-
]
|
|
186
|
-
}
|
|
187
|
-
) }, `${r.type}-${r.label}-${i}`)) }),
|
|
188
|
-
!loading && query.length < 2 && /* @__PURE__ */ jsx("div", { className: "px-4 py-6 text-center text-sm text-gray-400", children: "Type at least 2 characters to search..." })
|
|
189
|
-
] }),
|
|
190
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-2 border-t border-gray-100 bg-gray-50 text-[11px] text-gray-400", children: [
|
|
191
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
192
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
193
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-gray-300 px-1 py-0.5 font-medium", children: "\u2191" }),
|
|
194
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-gray-300 px-1 py-0.5 font-medium", children: "\u2193" }),
|
|
195
|
-
" navigate"
|
|
196
|
-
] }),
|
|
197
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
198
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-gray-300 px-1 py-0.5 font-medium", children: "Enter" }),
|
|
199
|
-
" open"
|
|
200
|
-
] })
|
|
201
|
-
] }),
|
|
202
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
203
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-gray-300 px-1 py-0.5 font-medium", children: "Esc" }),
|
|
204
|
-
" close"
|
|
205
|
-
] })
|
|
206
|
-
] })
|
|
207
|
-
] })
|
|
208
|
-
] });
|
|
209
|
-
}
|
|
210
78
|
var sections = [
|
|
211
79
|
{
|
|
212
80
|
title: "Global",
|
|
@@ -3946,7 +3814,13 @@ function Layout({
|
|
|
3946
3814
|
onReportBug: host.onReportBug
|
|
3947
3815
|
}
|
|
3948
3816
|
),
|
|
3949
|
-
/* @__PURE__ */ jsx(
|
|
3817
|
+
/* @__PURE__ */ jsx(
|
|
3818
|
+
GlobalSearch,
|
|
3819
|
+
{
|
|
3820
|
+
...search,
|
|
3821
|
+
onSelect: (result) => openEntity(result.entity_type, result.entity_id, null, result.label)
|
|
3822
|
+
}
|
|
3823
|
+
),
|
|
3950
3824
|
/* @__PURE__ */ jsx(ShortcutHelp, {})
|
|
3951
3825
|
] });
|
|
3952
3826
|
}
|
|
@@ -6995,6 +6869,40 @@ function useEditHotkey(callback) {
|
|
|
6995
6869
|
}, [callback, isActive]);
|
|
6996
6870
|
}
|
|
6997
6871
|
|
|
6998
|
-
|
|
6872
|
+
// src/shell/modalEventScope.ts
|
|
6873
|
+
function isEventForModal(detail, modalId) {
|
|
6874
|
+
const from = detail?.modalId;
|
|
6875
|
+
if (typeof from !== "string" || from === "") return true;
|
|
6876
|
+
if (!modalId) return true;
|
|
6877
|
+
return from === modalId;
|
|
6878
|
+
}
|
|
6879
|
+
|
|
6880
|
+
// src/hooks/useModalSave.ts
|
|
6881
|
+
function useModalSave(callback) {
|
|
6882
|
+
const modalId = useEnclosingModalId();
|
|
6883
|
+
useEffect(() => {
|
|
6884
|
+
if (!callback) return;
|
|
6885
|
+
const handler = (e) => {
|
|
6886
|
+
if (!isEventForModal(e.detail, modalId)) return;
|
|
6887
|
+
callback();
|
|
6888
|
+
};
|
|
6889
|
+
document.addEventListener("modal-save", handler);
|
|
6890
|
+
return () => document.removeEventListener("modal-save", handler);
|
|
6891
|
+
}, [callback, modalId]);
|
|
6892
|
+
}
|
|
6893
|
+
function useModalDuplicate(callback) {
|
|
6894
|
+
const modalId = useEnclosingModalId();
|
|
6895
|
+
useEffect(() => {
|
|
6896
|
+
if (!callback) return;
|
|
6897
|
+
const handler = (e) => {
|
|
6898
|
+
if (!isEventForModal(e.detail, modalId)) return;
|
|
6899
|
+
callback();
|
|
6900
|
+
};
|
|
6901
|
+
document.addEventListener("modal-duplicate", handler);
|
|
6902
|
+
return () => document.removeEventListener("modal-duplicate", handler);
|
|
6903
|
+
}, [callback, modalId]);
|
|
6904
|
+
}
|
|
6905
|
+
|
|
6906
|
+
export { BLOCKED_PCT_CPU, BehaviorPanel, BulkImportGrid, ChangePasswordForm, Customization, DEV_BANNER_TEXT, Desktop, DesktopHostProvider, DevIndicator, EntityList, FilterBar, LOG_CAP, Layout, MIN_EVENT_SAMPLES, MIN_GROUP_SAMPLES, NotificationBell, PdfActionButton, PerfStats, ResizableTable, SMOOTH_FPS, ServerStatusIndicator, ShellEntityFetcherProvider, ShortcutHelp, SoundsPanel, StartMenu, SystemPreferences, UndoControls, WidgetManager, appendRecord as appendPerfRecord, applyDevTitle, classifyActivity, classify as classifyPerf, createWindowRegistry, createWindowTarget, describeMachine, describePerfReport, findDuplicateKeys, isDevEnv, isInteracting, mergeBulkItems, toCsv as perfLogToCsv, perfReportFile, readEnvironment as readPerfEnvironment, requestAsyncEnvironment, summariseFrames, summariseLog as summarisePerfLog, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useModalDuplicate, useModalSave, useNewHotkey, useShellEntityFetcher, useSort, useTableNav, useWindowTarget };
|
|
6999
6907
|
//# sourceMappingURL=index.js.map
|
|
7000
6908
|
//# sourceMappingURL=index.js.map
|