react-os-shell 3.9.0 → 3.10.1

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 (55) hide show
  1. package/dist/Browser-3SDMP5NU.js +7 -0
  2. package/dist/{Browser-Z6EGTCHG.js.map → Browser-3SDMP5NU.js.map} +1 -1
  3. package/dist/{Calculator-2HX5CQHC.js → Calculator-K3KWPHJI.js} +4 -4
  4. package/dist/{Calculator-2HX5CQHC.js.map → Calculator-K3KWPHJI.js.map} +1 -1
  5. package/dist/{CurrencyConverter-CCYVPA2T.js → CurrencyConverter-ROLJLHT4.js} +4 -4
  6. package/dist/{CurrencyConverter-CCYVPA2T.js.map → CurrencyConverter-ROLJLHT4.js.map} +1 -1
  7. package/dist/{Documents-W3WVPHAM.js → Documents-FOCBCZHY.js} +4 -4
  8. package/dist/{Documents-W3WVPHAM.js.map → Documents-FOCBCZHY.js.map} +1 -1
  9. package/dist/Files-P37UZJVD.js +12 -0
  10. package/dist/{Files-7TGZSJHD.js.map → Files-P37UZJVD.js.map} +1 -1
  11. package/dist/{Notepad-CVKD2JFL.js → Notepad-WDDJQVXF.js} +5 -5
  12. package/dist/{Notepad-CVKD2JFL.js.map → Notepad-WDDJQVXF.js.map} +1 -1
  13. package/dist/{PomodoroTimer-CHR6G3HN.js → PomodoroTimer-IKLRQIU3.js} +5 -5
  14. package/dist/{PomodoroTimer-CHR6G3HN.js.map → PomodoroTimer-IKLRQIU3.js.map} +1 -1
  15. package/dist/Preview-CESYNTOE.js +8 -0
  16. package/dist/{Preview-DVXWKJYX.js.map → Preview-CESYNTOE.js.map} +1 -1
  17. package/dist/Spreadsheet-6SICRWKK.js +7 -0
  18. package/dist/{Spreadsheet-26YE7FV7.js.map → Spreadsheet-6SICRWKK.js.map} +1 -1
  19. package/dist/{Stock-ALK2CV7R.js → Stock-VGTJEM4B.js} +4 -4
  20. package/dist/{Stock-ALK2CV7R.js.map → Stock-VGTJEM4B.js.map} +1 -1
  21. package/dist/{Weather-CW5JMDKQ.js → Weather-JXDY47YQ.js} +4 -4
  22. package/dist/{Weather-CW5JMDKQ.js.map → Weather-JXDY47YQ.js.map} +1 -1
  23. package/dist/{WorldClock-7B4JZOQR.js → WorldClock-ACR63JED.js} +4 -4
  24. package/dist/{WorldClock-7B4JZOQR.js.map → WorldClock-ACR63JED.js.map} +1 -1
  25. package/dist/apps/index.js +20 -20
  26. package/dist/{chunk-YFKCWZ3A.js → chunk-3SOG3MFC.js} +6 -6
  27. package/dist/{chunk-YFKCWZ3A.js.map → chunk-3SOG3MFC.js.map} +1 -1
  28. package/dist/{chunk-JXW7H3DU.js → chunk-HLWEKEKD.js} +10 -3
  29. package/dist/chunk-HLWEKEKD.js.map +1 -0
  30. package/dist/{chunk-R2M7SXLN.js → chunk-L5SPKS76.js} +4 -4
  31. package/dist/{chunk-R2M7SXLN.js.map → chunk-L5SPKS76.js.map} +1 -1
  32. package/dist/{chunk-PM5G3GVW.js → chunk-MRFKIP3G.js} +3 -3
  33. package/dist/{chunk-PM5G3GVW.js.map → chunk-MRFKIP3G.js.map} +1 -1
  34. package/dist/{chunk-H7K4IKB6.js → chunk-OZFGITVF.js} +4 -4
  35. package/dist/{chunk-H7K4IKB6.js.map → chunk-OZFGITVF.js.map} +1 -1
  36. package/dist/{chunk-RTHUQTNU.js → chunk-SRFLPGGO.js} +4 -4
  37. package/dist/{chunk-RTHUQTNU.js.map → chunk-SRFLPGGO.js.map} +1 -1
  38. package/dist/{chunk-YLJY5LDU.js → chunk-VGJ3KCOP.js} +3 -3
  39. package/dist/{chunk-YLJY5LDU.js.map → chunk-VGJ3KCOP.js.map} +1 -1
  40. package/dist/{chunk-2E474D7Q.js → chunk-WEQXKNOA.js} +4 -4
  41. package/dist/{chunk-2E474D7Q.js.map → chunk-WEQXKNOA.js.map} +1 -1
  42. package/dist/{chunk-VGTEM5RZ.js → chunk-YG45DAUT.js} +10 -3
  43. package/dist/chunk-YG45DAUT.js.map +1 -0
  44. package/dist/{chunk-SNIBFLLT.js → chunk-YPIDICFR.js} +4 -4
  45. package/dist/{chunk-SNIBFLLT.js.map → chunk-YPIDICFR.js.map} +1 -1
  46. package/dist/index.d.ts +43 -3
  47. package/dist/index.js +46 -17
  48. package/dist/index.js.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/Browser-Z6EGTCHG.js +0 -7
  51. package/dist/Files-7TGZSJHD.js +0 -12
  52. package/dist/Preview-DVXWKJYX.js +0 -8
  53. package/dist/Spreadsheet-26YE7FV7.js +0 -7
  54. package/dist/chunk-JXW7H3DU.js.map +0 -1
  55. package/dist/chunk-VGTEM5RZ.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -525,8 +525,18 @@ declare function EditableGrid({ columns, data, onChange, onColumnsChange, fixedR
525
525
  * </SidebarLayout>
526
526
  */
527
527
  interface SidebarLayoutProps {
528
- /** Content of the left sidebar pane. */
528
+ /** Content of the left sidebar pane. When `sidebarTop`/`sidebarBottom` are
529
+ * set this is the scrolling middle region (the filter nav); otherwise it is
530
+ * the whole pane. */
529
531
  sidebar: ReactNode;
532
+ /** Optional node pinned at the TOP of the sidebar, above `sidebar`, in a
533
+ * padded non-scrolling region (e.g. a primary "New X" `SidebarActionButton`).
534
+ * The list-window convention: primary create action lives here. */
535
+ sidebarTop?: ReactNode;
536
+ /** Optional node pinned at the BOTTOM of the sidebar, below `sidebar`, in a
537
+ * padded, top-bordered non-scrolling region (e.g. an "Export CSV" button).
538
+ * The middle `sidebar` grows to fill, so this stays flush to the bottom. */
539
+ sidebarBottom?: ReactNode;
530
540
  /** Content of the main pane (opposite the sidebar). */
531
541
  children: ReactNode;
532
542
  /** Which side the sidebar sits on. Default `'left'`. When `'right'`, the
@@ -550,7 +560,37 @@ interface SidebarLayoutProps {
550
560
  /** Classes for the main content pane. Defaults to a white background. */
551
561
  contentClassName?: string;
552
562
  }
553
- declare function SidebarLayout({ sidebar, children, side, storageKey, defaultWidth, minWidth, maxWidth, className, sidebarClassName, contentClassName, }: SidebarLayoutProps): react_jsx_runtime.JSX.Element;
563
+ declare function SidebarLayout({ sidebar, sidebarTop, sidebarBottom, children, side, storageKey, defaultWidth, minWidth, maxWidth, className, sidebarClassName, contentClassName, }: SidebarLayoutProps): react_jsx_runtime.JSX.Element;
564
+
565
+ /**
566
+ * Full-width action button for the `SidebarLayout` `sidebarTop` / `sidebarBottom`
567
+ * slots — the standard list-window pattern of a primary "New X" button pinned
568
+ * at the top and a secondary action (e.g. "Export CSV") pinned at the bottom.
569
+ *
570
+ * `variant="primary"` is the solid-blue create button; `"secondary"` is the
571
+ * white outline button. Pass `hotkey` (e.g. `ALT_SHIFT_N`) to render the small
572
+ * keyboard-hint chip the shell's `useNewHotkey` binds.
573
+ *
574
+ * @example
575
+ * <SidebarLayout
576
+ * sidebarTop={<SidebarActionButton hotkey={ALT_SHIFT_N} onClick={onNew}>New Invoice</SidebarActionButton>}
577
+ * sidebar={<StatusNav />}
578
+ * >…</SidebarLayout>
579
+ */
580
+ interface SidebarActionButtonProps {
581
+ children: ReactNode;
582
+ onClick?: () => void;
583
+ /** Solid-blue create button (`'primary'`, default) or white outline (`'secondary'`). */
584
+ variant?: 'primary' | 'secondary';
585
+ /** Keyboard-hint label rendered as a trailing chip, e.g. `ALT_SHIFT_N`. */
586
+ hotkey?: string;
587
+ disabled?: boolean;
588
+ type?: 'button' | 'submit';
589
+ title?: string;
590
+ /** Extra classes appended after the variant styles (escape hatch). */
591
+ className?: string;
592
+ }
593
+ declare function SidebarActionButton({ children, onClick, variant, hotkey, disabled, type, title, className, }: SidebarActionButtonProps): react_jsx_runtime.JSX.Element;
554
594
 
555
595
  interface SearchableOption {
556
596
  value: string;
@@ -2305,4 +2345,4 @@ declare function useNewHotkey(callback: () => void): void;
2305
2345
  */
2306
2346
  declare function useEditHotkey(callback: (() => void) | null): void;
2307
2347
 
2308
- 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 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, type MergeBulkOptions, type MergeBulkResult, 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 ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, type ShellPrefsAdapter, ShellPrefsProvider, ShortcutHelp, 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, mergeBulkItems, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
2348
+ 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 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, type MergeBulkOptions, type MergeBulkResult, 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 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, mergeBulkItems, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
package/dist/index.js CHANGED
@@ -1,22 +1,22 @@
1
- import { subscribePomo, getPomoSnapshot } from './chunk-YLJY5LDU.js';
2
- export { setShellTodoProvider } from './chunk-YLJY5LDU.js';
3
- import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-R2M7SXLN.js';
4
- export { Breadcrumbs } from './chunk-R2M7SXLN.js';
5
- import { SidebarLayout } from './chunk-VGTEM5RZ.js';
6
- export { SidebarLayout } from './chunk-VGTEM5RZ.js';
1
+ import { subscribePomo, getPomoSnapshot } from './chunk-VGJ3KCOP.js';
2
+ export { setShellTodoProvider } from './chunk-VGJ3KCOP.js';
3
+ import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-L5SPKS76.js';
4
+ export { Breadcrumbs } from './chunk-L5SPKS76.js';
5
+ import { SidebarLayout } from './chunk-YG45DAUT.js';
6
+ export { SidebarLayout } from './chunk-YG45DAUT.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-2E474D7Q.js';
9
- export { ImageAnnotator_default as ImageAnnotator } from './chunk-2E474D7Q.js';
8
+ import { setPdfPreview } from './chunk-WEQXKNOA.js';
9
+ export { ImageAnnotator_default as ImageAnnotator } from './chunk-WEQXKNOA.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-SNIBFLLT.js';
13
- export { EditableGrid } from './chunk-SNIBFLLT.js';
12
+ import { EditableGrid } from './chunk-YPIDICFR.js';
13
+ export { EditableGrid } from './chunk-YPIDICFR.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-RTHUQTNU.js';
17
- export { VERSION } from './chunk-RTHUQTNU.js';
18
- import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, CancelButton, setWindowPosition, ThumbCard, activateModal } from './chunk-JXW7H3DU.js';
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-JXW7H3DU.js';
16
+ import { APP_VERSION, VERSION } from './chunk-SRFLPGGO.js';
17
+ export { VERSION } from './chunk-SRFLPGGO.js';
18
+ import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, CancelButton, setWindowPosition, ThumbCard, activateModal } from './chunk-HLWEKEKD.js';
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-HLWEKEKD.js';
20
20
  export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-UBN4IUDE.js';
21
21
  import { glassStyle, startMenuCategories, navSections, isSection, GLASS_INPUT_BG, navIcons, sectionIcons } from './chunk-ZF6AYO4G.js';
22
22
  export { GLASS_DIVIDER, GLASS_INPUT_BG, glassStyle, setShellNavIcons } from './chunk-ZF6AYO4G.js';
@@ -562,6 +562,35 @@ function HelpCenter({
562
562
  ] }) : /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center justify-center px-6 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500", children: loading ? "Loading\u2026" : "Pick a help article from the left." }) }) })
563
563
  ] });
564
564
  }
565
+ var VARIANTS = {
566
+ primary: "bg-blue-600 text-white hover:bg-blue-700",
567
+ secondary: "bg-white text-gray-700 border border-gray-300 hover:bg-gray-50"
568
+ };
569
+ function SidebarActionButton({
570
+ children,
571
+ onClick,
572
+ variant = "primary",
573
+ hotkey,
574
+ disabled = false,
575
+ type = "button",
576
+ title,
577
+ className = ""
578
+ }) {
579
+ return /* @__PURE__ */ jsxs(
580
+ "button",
581
+ {
582
+ type,
583
+ onClick,
584
+ disabled,
585
+ title,
586
+ className: `w-full inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors disabled:opacity-50 ${VARIANTS[variant]} ${className}`,
587
+ children: [
588
+ children,
589
+ hotkey && /* @__PURE__ */ jsx("kbd", { className: "rounded border border-blue-400/50 bg-blue-500/30 px-1.5 py-0.5 text-[10px] font-medium", children: hotkey })
590
+ ]
591
+ }
592
+ );
593
+ }
565
594
  function useClickOutside(ref, onClose) {
566
595
  useEffect(() => {
567
596
  const handler = (e) => {
@@ -6229,7 +6258,7 @@ function Pagination({
6229
6258
  ] });
6230
6259
  }
6231
6260
  var BASE = "inline-flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-60";
6232
- var VARIANTS = {
6261
+ var VARIANTS2 = {
6233
6262
  primary: "bg-blue-600 text-white shadow-sm hover:bg-blue-700 focus:ring-blue-400/40",
6234
6263
  secondary: "border border-gray-300 bg-white text-gray-700 shadow-sm hover:bg-gray-50 focus:ring-blue-400/30",
6235
6264
  ghost: "text-gray-700 hover:bg-gray-100 focus:ring-blue-400/30",
@@ -6265,7 +6294,7 @@ var Button = forwardRef(function Button2({
6265
6294
  type,
6266
6295
  disabled: disabled || loading,
6267
6296
  "aria-busy": loading || void 0,
6268
- className: [BASE, VARIANTS[variant], SIZES[size], block ? "w-full" : "", className].filter(Boolean).join(" "),
6297
+ className: [BASE, VARIANTS2[variant], SIZES[size], block ? "w-full" : "", className].filter(Boolean).join(" "),
6269
6298
  ...rest,
6270
6299
  children: [
6271
6300
  loading ? /* @__PURE__ */ jsx(Spinner, {}) : leftIcon,
@@ -8939,6 +8968,6 @@ function useEditHotkey(callback) {
8939
8968
  }, [callback, isActive]);
8940
8969
  }
8941
8970
 
8942
- export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, BehaviorPanel, BulkImportGrid, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Card, ChangePasswordForm, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, Customization, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, DesktopHostProvider, DevIndicator, DonutChart, ENTER, EmailTemplate, EmptyState, EntityList, ErrorPage, FilterBar, FormField, FormLayoutPage, GalleryTemplate, GlobalSearch, HelpCenter, INPUT_BASE, Input_default as Input, Kanban, Label, Layout, ListFooter, LoadingSpinner2 as LoadingSpinner, MOD, Markdown, MilestoneTimeline, NotificationBell, PageHeader, Pagination, PdfActionButton, Radio_default as Radio, ResizableTable, SHIFT, SearchableSelect, Select_default as Select, ServerStatusIndicator, ShellEntityFetcherProvider, ShortcutHelp, SidebarGroupLabel, SidebarNavItem, SoundsPanel, Sparkline, StartMenu, StatCard, StatusBadge, StatusBadgeProvider, SystemPreferences, Tabs, Textarea_default as Textarea, Tooltip, TopNav, WidgetManager, applyDevTitle, createWindowRegistry, findDuplicateKeys, formatDate, inputClasses, isDevEnv, isMac, mergeBulkItems, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
8971
+ export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, BehaviorPanel, BulkImportGrid, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Card, ChangePasswordForm, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, Customization, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, DesktopHostProvider, DevIndicator, DonutChart, ENTER, EmailTemplate, EmptyState, EntityList, ErrorPage, FilterBar, FormField, FormLayoutPage, GalleryTemplate, GlobalSearch, HelpCenter, INPUT_BASE, Input_default as Input, Kanban, Label, Layout, ListFooter, LoadingSpinner2 as LoadingSpinner, MOD, Markdown, MilestoneTimeline, NotificationBell, PageHeader, Pagination, PdfActionButton, Radio_default as Radio, ResizableTable, SHIFT, SearchableSelect, Select_default as Select, ServerStatusIndicator, ShellEntityFetcherProvider, ShortcutHelp, SidebarActionButton, SidebarGroupLabel, SidebarNavItem, SoundsPanel, Sparkline, StartMenu, StatCard, StatusBadge, StatusBadgeProvider, SystemPreferences, Tabs, Textarea_default as Textarea, Tooltip, TopNav, WidgetManager, applyDevTitle, createWindowRegistry, findDuplicateKeys, formatDate, inputClasses, isDevEnv, isMac, mergeBulkItems, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
8943
8972
  //# sourceMappingURL=index.js.map
8944
8973
  //# sourceMappingURL=index.js.map