react-os-shell 3.26.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/{Browser-OYJVFNED.js → Browser-YRYIHBS5.js} +5 -5
  2. package/dist/{Browser-OYJVFNED.js.map → Browser-YRYIHBS5.js.map} +1 -1
  3. package/dist/{Calculator-DMOIIGKO.js → Calculator-ZB3PBT4Y.js} +4 -4
  4. package/dist/{Calculator-DMOIIGKO.js.map → Calculator-ZB3PBT4Y.js.map} +1 -1
  5. package/dist/ConfirmDialog-YEYQG4TI.js +4 -0
  6. package/dist/{ConfirmDialog-3RUHJG5R.js.map → ConfirmDialog-YEYQG4TI.js.map} +1 -1
  7. package/dist/{CurrencyConverter-ROSY6A3Q.js → CurrencyConverter-LARMJEQO.js} +4 -4
  8. package/dist/{CurrencyConverter-ROSY6A3Q.js.map → CurrencyConverter-LARMJEQO.js.map} +1 -1
  9. package/dist/{Documents-VLKG4D22.js → Documents-LNKBJNNL.js} +5 -5
  10. package/dist/{Documents-VLKG4D22.js.map → Documents-LNKBJNNL.js.map} +1 -1
  11. package/dist/{Files-WRMJX4QG.js → Files-SAV2TFVZ.js} +7 -7
  12. package/dist/{Files-WRMJX4QG.js.map → Files-SAV2TFVZ.js.map} +1 -1
  13. package/dist/{Notepad-JVB7OIPO.js → Notepad-V3Y6YWWL.js} +5 -5
  14. package/dist/{Notepad-JVB7OIPO.js.map → Notepad-V3Y6YWWL.js.map} +1 -1
  15. package/dist/{PomodoroTimer-RVNX4CYS.js → PomodoroTimer-IFNOHNFU.js} +5 -5
  16. package/dist/{PomodoroTimer-RVNX4CYS.js.map → PomodoroTimer-IFNOHNFU.js.map} +1 -1
  17. package/dist/{Preview-DUADZWDA.js → Preview-FFBHSUHL.js} +5 -5
  18. package/dist/{Preview-DUADZWDA.js.map → Preview-FFBHSUHL.js.map} +1 -1
  19. package/dist/{Spreadsheet-EIWL7RIF.js → Spreadsheet-6WDNXIAL.js} +5 -5
  20. package/dist/{Spreadsheet-EIWL7RIF.js.map → Spreadsheet-6WDNXIAL.js.map} +1 -1
  21. package/dist/{Stock-7BIHXBPQ.js → Stock-QVCSPVG2.js} +4 -4
  22. package/dist/{Stock-7BIHXBPQ.js.map → Stock-QVCSPVG2.js.map} +1 -1
  23. package/dist/{Weather-7KUHPWTZ.js → Weather-LJLGXB5M.js} +4 -4
  24. package/dist/{Weather-7KUHPWTZ.js.map → Weather-LJLGXB5M.js.map} +1 -1
  25. package/dist/{WorldClock-I24ASGUI.js → WorldClock-N5CTLHPG.js} +4 -4
  26. package/dist/{WorldClock-I24ASGUI.js.map → WorldClock-N5CTLHPG.js.map} +1 -1
  27. package/dist/apps/index.js +17 -17
  28. package/dist/{chunk-NQ2QVUVX.js → chunk-63Y56L3Z.js} +3 -3
  29. package/dist/{chunk-NQ2QVUVX.js.map → chunk-63Y56L3Z.js.map} +1 -1
  30. package/dist/{chunk-MU7UZXAS.js → chunk-PG2PMKTJ.js} +3 -3
  31. package/dist/{chunk-MU7UZXAS.js.map → chunk-PG2PMKTJ.js.map} +1 -1
  32. package/dist/{chunk-LRVPNWRE.js → chunk-QXWBHX7J.js} +3 -3
  33. package/dist/chunk-QXWBHX7J.js.map +1 -0
  34. package/dist/{chunk-AA24QYTD.js → chunk-RVUMXSQE.js} +3 -3
  35. package/dist/{chunk-AA24QYTD.js.map → chunk-RVUMXSQE.js.map} +1 -1
  36. package/dist/{chunk-FPDVIPLM.js → chunk-V45E4R5P.js} +4 -4
  37. package/dist/{chunk-FPDVIPLM.js.map → chunk-V45E4R5P.js.map} +1 -1
  38. package/dist/chunk-YIDTMPOP.js +7 -0
  39. package/dist/{chunk-4BOGLRCL.js.map → chunk-YIDTMPOP.js.map} +1 -1
  40. package/dist/{chunk-E6ZOCXEA.js → chunk-YJJDW4GG.js} +87 -25
  41. package/dist/chunk-YJJDW4GG.js.map +1 -0
  42. package/dist/index.d.ts +66 -5
  43. package/dist/index.js +580 -824
  44. package/dist/index.js.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/ConfirmDialog-3RUHJG5R.js +0 -4
  47. package/dist/chunk-4BOGLRCL.js +0 -7
  48. package/dist/chunk-E6ZOCXEA.js.map +0 -1
  49. package/dist/chunk-LRVPNWRE.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -954,6 +954,19 @@ declare function Desktop({ profile }: {
954
954
  profile: any;
955
955
  }): react_jsx_runtime.JSX.Element;
956
956
 
957
+ interface MobileAppConfig {
958
+ /** Link the primary button opens — a native deep link, an App Store /
959
+ * Play Store page, or a mobile-optimised web app. When omitted the screen
960
+ * still renders (branding + message) but without a call-to-action. */
961
+ url?: string;
962
+ /** Primary button label. Defaults to `Open the app`. */
963
+ ctaLabel?: string;
964
+ /** Headline. Defaults to a message built from the product name. */
965
+ heading?: string;
966
+ /** Supporting copy under the headline. */
967
+ description?: string;
968
+ }
969
+
957
970
  interface LayoutProps {
958
971
  /** Brand label rendered on the start-menu button. */
959
972
  productName?: string;
@@ -986,6 +999,11 @@ interface LayoutProps {
986
999
  * (e.g. tasks due that day) inside the mini month calendar. When omitted
987
1000
  * the popover stays a plain date grid. */
988
1001
  clockCalendar?: ClockCalendarConfig;
1002
+ /** Mobile-app link shown on phone/tablet-portrait viewports in place of the
1003
+ * desktop chrome. The shell has no built-in touch UI — wire a link to your
1004
+ * dedicated mobile app here (see MobileAppConfig). When omitted, small
1005
+ * screens get a plain "best viewed on desktop" notice. */
1006
+ mobileApp?: MobileAppConfig;
989
1007
  }
990
1008
  interface ClockCalendarConfig {
991
1009
  /** Local dates (YYYY-MM-DD) to mark with a dot in the mini month grid —
@@ -1002,7 +1020,7 @@ interface ClockCalendarConfig {
1002
1020
  close: () => void;
1003
1021
  }) => ReactNode;
1004
1022
  }
1005
- declare function Layout({ productName, productIcon, wallpapers, navSections, navIcons, sectionIcons, categories, notifications, search, taskbarTrayLeft, clockCalendar, }?: LayoutProps): react_jsx_runtime.JSX.Element;
1023
+ declare function Layout({ productName, productIcon, wallpapers, navSections, navIcons, sectionIcons, categories, notifications, search, taskbarTrayLeft, clockCalendar, mobileApp, }?: LayoutProps): react_jsx_runtime.JSX.Element;
1006
1024
 
1007
1025
  interface StartMenuProps {
1008
1026
  open: boolean;
@@ -1175,6 +1193,14 @@ interface EntityListProps<T> {
1175
1193
  isLoading: boolean;
1176
1194
  emptyState: ReactNode;
1177
1195
  totalCount?: number;
1196
+ /** When true and no rows have loaded yet, render {@link ListLoadError}
1197
+ * (with a retry) instead of `emptyState` — so a failed fetch reads as an
1198
+ * error, not "nothing here". Wire `useInfiniteScroll`'s `isError`. A
1199
+ * mid-scroll next-page failure (rows already loaded) keeps the list.
1200
+ * Defaults to unset → behaviour unchanged for existing callers. */
1201
+ isError?: boolean;
1202
+ /** Retry handler for the error state — wire the data source's `refetch`. */
1203
+ onRetry?: () => void;
1178
1204
  tableId: string;
1179
1205
  columns: EntityListColumn[];
1180
1206
  renderCell: (item: T, colKey: string) => ReactNode;
@@ -1366,6 +1392,26 @@ interface ListFooterProps {
1366
1392
  */
1367
1393
  declare function ListFooter({ selectedCount, loadedCount, totalCount, label, isFetchingMore, extra, }: ListFooterProps): react_jsx_runtime.JSX.Element;
1368
1394
 
1395
+ interface ListLoadErrorProps {
1396
+ /** Bold heading. Defaults to "Couldn't load this list". */
1397
+ title?: string;
1398
+ /** Muted explanatory line. Defaults to a generic connection/retry message. */
1399
+ message?: string;
1400
+ /** When provided, renders a "Try again" button that calls it (wire the
1401
+ * data source's `refetch`). Omit for a static, non-retryable error. */
1402
+ onRetry?: () => void;
1403
+ /** Frame around the content, mirroring {@link EmptyState}: `dashed`
1404
+ * (default), `card` (bordered surface), or `none`. */
1405
+ variant?: 'dashed' | 'card' | 'none';
1406
+ }
1407
+ /**
1408
+ * ListLoadError — the error counterpart to `EmptyState` for data lists. Shown
1409
+ * when a list's fetch fails (5xx, auth expiry, network) so an outage reads as
1410
+ * an error with a retry affordance instead of a misleading "nothing here"
1411
+ * empty state. Visual language mirrors `EmptyState`, tinted for error.
1412
+ */
1413
+ declare function ListLoadError({ title, message, onRetry, variant, }: ListLoadErrorProps): react_jsx_runtime.JSX.Element;
1414
+
1369
1415
  /**
1370
1416
  * Keyboard + shift-click navigation for table rows.
1371
1417
  *
@@ -1439,6 +1485,8 @@ declare function useInfiniteScroll<T>({ queryKey, fetchFn, extraParams, pageSize
1439
1485
  items: T[];
1440
1486
  totalCount: number;
1441
1487
  isLoading: boolean;
1488
+ isError: boolean;
1489
+ error: Error | null;
1442
1490
  isFetchingNextPage: boolean;
1443
1491
  hasNextPage: boolean;
1444
1492
  sentinelRef: react.RefObject<HTMLDivElement>;
@@ -1535,6 +1583,13 @@ interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'onC
1535
1583
  invalid?: boolean;
1536
1584
  className?: string;
1537
1585
  }
1586
+ /**
1587
+ * Raw native `<select>` styled to match the kit's inputs. This is the original
1588
+ * Select — kept as the mobile rendering and exported for callers that need a
1589
+ * real `HTMLSelectElement` (form posts, native attribute spread, focus).
1590
+ */
1591
+ declare const NativeSelect: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLSelectElement>>;
1592
+ /** Smart Select: native `<select>` on touch, custom listbox on desktop. */
1538
1593
  declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLSelectElement>>;
1539
1594
 
1540
1595
  interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'checked' | 'className'> {
@@ -1925,9 +1980,15 @@ interface FilterBarProps {
1925
1980
  children?: ReactNode;
1926
1981
  }
1927
1982
  /**
1928
- * FilterBar — a horizontal row of filter controls. Each filter renders a native
1929
- * `<select>` or, for long lists, a glass-styled searchable dropdown; a "Clear
1930
- * filters" button appears when any filter is active. Pair with `useFilters`.
1983
+ * FilterBar — a horizontal row of filter controls. Each filter renders a custom
1984
+ * listbox dropdown or, for long lists, a glass-styled searchable dropdown; a
1985
+ * "Clear filters" button appears when any filter is active. Pair with
1986
+ * `useFilters`.
1987
+ *
1988
+ * The short-list path used to render a native `<select>`, but a native select's
1989
+ * OS popup swallows every key event while open — so list-page hotkeys died
1990
+ * until it closed (BG#00421). PlainFilter is a custom listbox that keeps key
1991
+ * events flowing to the page.
1931
1992
  */
1932
1993
  declare function FilterBar({ filters, values, onChange, onClear, children }: FilterBarProps): react_jsx_runtime.JSX.Element;
1933
1994
  /** Local filter-state helper: tracks active filter values + derived params. */
@@ -2631,4 +2692,4 @@ declare function useNewHotkey(callback: () => void): void;
2631
2692
  */
2632
2693
  declare function useEditHotkey(callback: (() => void) | null): void;
2633
2694
 
2634
- export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, type AccordionItem, type AccordionProps, AuthScreen, type AuthScreenProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Banner, type BannerProps, type BannerTone, BarChart, type BarChartProps, BehaviorPanel, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, CancelButton, Card, type CardProps, type CellStyle, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, ChatTemplate, Checkbox, type CheckboxProps, CheckoutTemplate, type ClockCalendarConfig, ColoredBadge, type ColoredBadgeProps, type ColumnDef, ConfirmProvider, ContainerFillChart, type ContainerFillChartProps, type ContainerFillItem, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, DonutChart, type DonutChartProps, type DonutSegment, type DuplicateGroup, ENTER, EditableGrid, type EditableGridProps, EmailTemplate, EmptyState, type EmptyStateProps, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, ErrorPage, type ErrorPageProps, FilterBar, type FilterOption, FormField, type FormFieldProps, FormLayoutPage, GLASS_DIVIDER, GLASS_INPUT_BG, GalleryTemplate, GlobalSearch, type GridColumn, type HealthCheckResult, HelpCenter, type HelpCenterDoc, type HelpCenterProps, INPUT_BASE, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, Input, type InputProps, Kanban, type KanbanColumn, type KanbanProps, Label, type LabelProps, Layout, type LayoutProps, ListFooter, LoadingSpinner, type LoadingSpinnerProps, MOD, Markdown, type MarkdownProps, MediaUploadField, type MediaUploadFieldProps, MediaUploadGrid, type MediaUploadGridItem, type MediaUploadGridProps, type MergeBulkOptions, type MergeBulkResult, MetricBar, type MetricBarProps, type Milestone, type MilestoneKind, MilestoneTimeline, type MilestoneTimelineProps, Modal, ModalActions, NotificationBell, type NotificationsConfig, PageHeader, type PageHeaderProps, type PaginatedResponse, Pagination, type PaginationProps, PdfActionButton, type PdfActionButtonProps, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, Radio, type RadioProps, ResizableTable, SHIFT, type SearchConfig, type SearchProvider, type SearchResult, type SearchableOption, SearchableSelect, type SearchableSelectProps, Select, type SelectOption, type SelectProps, type SemanticGroup, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type SeverityTone, type ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, type ShellPrefsAdapter, ShellPrefsProvider, ShortcutHelp, SidebarActionButton, type SidebarActionButtonProps, SidebarGroupLabel, SidebarLayout, type SidebarLayoutProps, SidebarNavItem, type SortState, SoundsPanel, Sparkline, type SparklineProps, StartMenu, StatCard, type StatCardProps, StatusBadge, StatusBadgeProvider, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, type TodoProvider, type TodoTask, Tooltip, type TooltipProps, TopNav, type TopNavItem, type TopNavProps, VERSION, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, WindowTitle, applyDevTitle, commitExposeHighlight, confirm, confirmDestructive, createWindowRegistry, exitExposeMode, findDuplicateKeys, formatDate, getActiveWindowRoute, getExposeHighlight, getWindowPosition, glassStyle, inputClasses, isDevEnv, isMac, isSeverityTone, mediaFileName, mergeBulkItems, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, severityOf, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
2695
+ export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, type AccordionItem, type AccordionProps, AuthScreen, type AuthScreenProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Banner, type BannerProps, type BannerTone, BarChart, type BarChartProps, BehaviorPanel, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, CancelButton, Card, type CardProps, type CellStyle, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, ChatTemplate, Checkbox, type CheckboxProps, CheckoutTemplate, type ClockCalendarConfig, ColoredBadge, type ColoredBadgeProps, type ColumnDef, ConfirmProvider, ContainerFillChart, type ContainerFillChartProps, type ContainerFillItem, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, DonutChart, type DonutChartProps, type DonutSegment, type DuplicateGroup, ENTER, EditableGrid, type EditableGridProps, EmailTemplate, EmptyState, type EmptyStateProps, type EntityFetcher, EntityList, type EntityListColumn, type EntityListContextAction, type EntityListProps, ErrorPage, type ErrorPageProps, FilterBar, type FilterOption, FormField, type FormFieldProps, FormLayoutPage, GLASS_DIVIDER, GLASS_INPUT_BG, GalleryTemplate, GlobalSearch, type GridColumn, type HealthCheckResult, HelpCenter, type HelpCenterDoc, type HelpCenterProps, INPUT_BASE, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, Input, type InputProps, Kanban, type KanbanColumn, type KanbanProps, Label, type LabelProps, Layout, type LayoutProps, ListFooter, ListLoadError, type ListLoadErrorProps, LoadingSpinner, type LoadingSpinnerProps, MOD, Markdown, type MarkdownProps, MediaUploadField, type MediaUploadFieldProps, MediaUploadGrid, type MediaUploadGridItem, type MediaUploadGridProps, type MergeBulkOptions, type MergeBulkResult, MetricBar, type MetricBarProps, type Milestone, type MilestoneKind, MilestoneTimeline, type MilestoneTimelineProps, type MobileAppConfig, Modal, ModalActions, NativeSelect, NotificationBell, type NotificationsConfig, PageHeader, type PageHeaderProps, type PaginatedResponse, Pagination, type PaginationProps, PdfActionButton, type PdfActionButtonProps, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, Radio, type RadioProps, ResizableTable, SHIFT, type SearchConfig, type SearchProvider, type SearchResult, type SearchableOption, SearchableSelect, type SearchableSelectProps, Select, type SelectOption, type SelectProps, type SemanticGroup, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type SeverityTone, type ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, type ShellPrefsAdapter, ShellPrefsProvider, ShortcutHelp, SidebarActionButton, type SidebarActionButtonProps, SidebarGroupLabel, SidebarLayout, type SidebarLayoutProps, SidebarNavItem, type SortState, SoundsPanel, Sparkline, type SparklineProps, StartMenu, StatCard, type StatCardProps, StatusBadge, StatusBadgeProvider, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, type TodoProvider, type TodoTask, Tooltip, type TooltipProps, TopNav, type TopNavItem, type TopNavProps, VERSION, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, WindowTitle, applyDevTitle, commitExposeHighlight, confirm, confirmDestructive, createWindowRegistry, exitExposeMode, findDuplicateKeys, formatDate, getActiveWindowRoute, getExposeHighlight, getWindowPosition, glassStyle, inputClasses, isDevEnv, isMac, isSeverityTone, mediaFileName, mergeBulkItems, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, severityOf, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };