react-os-shell 3.23.0 → 3.26.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 (61) hide show
  1. package/README.md +15 -1
  2. package/dist/{Browser-4OFMDAFQ.js → Browser-OYJVFNED.js} +5 -6
  3. package/dist/Browser-OYJVFNED.js.map +1 -0
  4. package/dist/{Calculator-WZ4253NB.js → Calculator-DMOIIGKO.js} +4 -5
  5. package/dist/Calculator-DMOIIGKO.js.map +1 -0
  6. package/dist/ConfirmDialog-3RUHJG5R.js +4 -0
  7. package/dist/{ConfirmDialog-BEALMXZM.js.map → ConfirmDialog-3RUHJG5R.js.map} +1 -1
  8. package/dist/{CurrencyConverter-EIURQFXI.js → CurrencyConverter-ROSY6A3Q.js} +4 -5
  9. package/dist/CurrencyConverter-ROSY6A3Q.js.map +1 -0
  10. package/dist/{Documents-EB7USJHP.js → Documents-VLKG4D22.js} +5 -6
  11. package/dist/Documents-VLKG4D22.js.map +1 -0
  12. package/dist/{Files-XW25IMSY.js → Files-WRMJX4QG.js} +5 -6
  13. package/dist/Files-WRMJX4QG.js.map +1 -0
  14. package/dist/{Notepad-5DIE5PIL.js → Notepad-JVB7OIPO.js} +5 -6
  15. package/dist/Notepad-JVB7OIPO.js.map +1 -0
  16. package/dist/{PomodoroTimer-K7HV6SYF.js → PomodoroTimer-RVNX4CYS.js} +5 -6
  17. package/dist/PomodoroTimer-RVNX4CYS.js.map +1 -0
  18. package/dist/{Preview-G6WP5VY7.js → Preview-DUADZWDA.js} +5 -6
  19. package/dist/Preview-DUADZWDA.js.map +1 -0
  20. package/dist/{Spreadsheet-3J2V6LA6.js → Spreadsheet-EIWL7RIF.js} +5 -6
  21. package/dist/Spreadsheet-EIWL7RIF.js.map +1 -0
  22. package/dist/{Stock-U6WNEYFL.js → Stock-7BIHXBPQ.js} +4 -5
  23. package/dist/Stock-7BIHXBPQ.js.map +1 -0
  24. package/dist/{Weather-BB2AWRWR.js → Weather-7KUHPWTZ.js} +4 -5
  25. package/dist/Weather-7KUHPWTZ.js.map +1 -0
  26. package/dist/{WorldClock-7HUITOM4.js → WorldClock-I24ASGUI.js} +4 -5
  27. package/dist/WorldClock-I24ASGUI.js.map +1 -0
  28. package/dist/apps/index.js +15 -16
  29. package/dist/apps/index.js.map +1 -1
  30. package/dist/chunk-4BOGLRCL.js +7 -0
  31. package/dist/{chunk-M556CQ5G.js.map → chunk-4BOGLRCL.js.map} +1 -1
  32. package/dist/{chunk-2L4FCFCT.js → chunk-E6ZOCXEA.js} +2923 -2564
  33. package/dist/chunk-E6ZOCXEA.js.map +1 -0
  34. package/dist/{chunk-ROGXCFUS.js → chunk-FPDVIPLM.js} +4 -4
  35. package/dist/{chunk-ROGXCFUS.js.map → chunk-FPDVIPLM.js.map} +1 -1
  36. package/dist/{chunk-3FYPH5GF.js → chunk-MU7UZXAS.js} +3 -3
  37. package/dist/{chunk-3FYPH5GF.js.map → chunk-MU7UZXAS.js.map} +1 -1
  38. package/dist/{chunk-H7BUBYC2.js → chunk-NQ2QVUVX.js} +3 -3
  39. package/dist/{chunk-H7BUBYC2.js.map → chunk-NQ2QVUVX.js.map} +1 -1
  40. package/dist/index.d.ts +122 -4
  41. package/dist/index.js +189 -10
  42. package/dist/index.js.map +1 -1
  43. package/dist/styles.css +8 -1
  44. package/package.json +5 -2
  45. package/dist/Browser-4OFMDAFQ.js.map +0 -1
  46. package/dist/Calculator-WZ4253NB.js.map +0 -1
  47. package/dist/ConfirmDialog-BEALMXZM.js +0 -3
  48. package/dist/CurrencyConverter-EIURQFXI.js.map +0 -1
  49. package/dist/Documents-EB7USJHP.js.map +0 -1
  50. package/dist/Files-XW25IMSY.js.map +0 -1
  51. package/dist/Notepad-5DIE5PIL.js.map +0 -1
  52. package/dist/PomodoroTimer-K7HV6SYF.js.map +0 -1
  53. package/dist/Preview-G6WP5VY7.js.map +0 -1
  54. package/dist/Spreadsheet-3J2V6LA6.js.map +0 -1
  55. package/dist/Stock-U6WNEYFL.js.map +0 -1
  56. package/dist/Weather-BB2AWRWR.js.map +0 -1
  57. package/dist/WorldClock-7HUITOM4.js.map +0 -1
  58. package/dist/chunk-2L4FCFCT.js.map +0 -1
  59. package/dist/chunk-M556CQ5G.js +0 -7
  60. package/dist/chunk-UBN4IUDE.js +0 -229
  61. package/dist/chunk-UBN4IUDE.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { subscribePomo, getPomoSnapshot } from './chunk-3FYPH5GF.js';
2
- export { setShellTodoProvider } from './chunk-3FYPH5GF.js';
1
+ import { subscribePomo, getPomoSnapshot } from './chunk-MU7UZXAS.js';
2
+ export { setShellTodoProvider } from './chunk-MU7UZXAS.js';
3
3
  export { ImageAnnotator_default as ImageAnnotator } from './chunk-QU5L5ZYM.js';
4
4
  import { PREVIEW_OPENED_EVENT, openPreviewFile } from './chunk-DINNWYVB.js';
5
5
  export { Breadcrumbs } from './chunk-DINNWYVB.js';
@@ -15,11 +15,10 @@ export { ShellAuthProvider, setShellAuthBridge, useShellAuth } from './chunk-ADJ
15
15
  import { EditableGrid } from './chunk-GP4Y3VCB.js';
16
16
  export { EditableGrid } from './chunk-GP4Y3VCB.js';
17
17
  import './chunk-4SQU5YV6.js';
18
- import { APP_VERSION, VERSION } from './chunk-M556CQ5G.js';
19
- export { VERSION } from './chunk-M556CQ5G.js';
20
- import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, CancelButton, setWindowPosition, ThumbCard, activateModal } from './chunk-2L4FCFCT.js';
21
- 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-2L4FCFCT.js';
22
- export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-UBN4IUDE.js';
18
+ import { APP_VERSION, VERSION } from './chunk-4BOGLRCL.js';
19
+ export { VERSION } from './chunk-4BOGLRCL.js';
20
+ import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, CancelButton, setWindowPosition, ThumbCard, activateModal } from './chunk-E6ZOCXEA.js';
21
+ export { CancelButton, ConfirmProvider, CopyButton, DocFavStar, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ShellPrefsProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, commitExposeHighlight, confirm, confirmDestructive, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useLocalStoragePrefs, useModalActive, useShellPrefs, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-E6ZOCXEA.js';
23
22
  import { glassStyle, startMenuCategories, navSections, isSection, GLASS_INPUT_BG, navIcons, sectionIcons } from './chunk-GW3RA6IS.js';
24
23
  export { GLASS_DIVIDER, GLASS_INPUT_BG, glassStyle, setShellNavIcons } from './chunk-GW3RA6IS.js';
25
24
  import { createContext, lazy, forwardRef, useCallback, useState, useRef, useEffect, useMemo, useLayoutEffect, useContext, isValidElement, cloneElement, Suspense, Fragment as Fragment$1, useId, Children, useSyncExternalStore } from 'react';
@@ -7601,10 +7600,84 @@ function useFilters() {
7601
7600
  }
7602
7601
  return { filterValues, setFilter, clearFilters, filterParams };
7603
7602
  }
7603
+
7604
+ // src/shell/severity.ts
7605
+ var SEVERITY_TONES = ["success", "warning", "danger"];
7606
+ function isSeverityTone(value) {
7607
+ return typeof value === "string" && SEVERITY_TONES.includes(value);
7608
+ }
7609
+ function severityOf(value, warn, crit) {
7610
+ if (value == null || !Number.isFinite(value)) return null;
7611
+ const warnAt = boundOf(warn);
7612
+ const critAt = boundOf(crit);
7613
+ if (warnAt == null && critAt == null) return null;
7614
+ if (critAt != null && value >= critAt) return "danger";
7615
+ if (warnAt != null && value >= warnAt) return "warning";
7616
+ return "success";
7617
+ }
7618
+ function boundOf(value) {
7619
+ return value != null && Number.isFinite(value) ? value : null;
7620
+ }
7621
+ var SEVERITY_FILL = {
7622
+ success: "bg-green-500",
7623
+ warning: "bg-amber-500",
7624
+ danger: "bg-red-500"
7625
+ };
7626
+ var SEVERITY_INK = {
7627
+ success: "text-gray-900",
7628
+ warning: "text-amber-600",
7629
+ danger: "text-red-600"
7630
+ };
7631
+ var SEVERITY_WORD = {
7632
+ success: "ok",
7633
+ warning: "warning",
7634
+ danger: "critical"
7635
+ };
7636
+ var SEVERITY_UNKNOWN_FILL = "bg-gray-300 border border-red-500";
7637
+ var SEVERITY_UNKNOWN_INK = "text-gray-900";
7638
+ var TONE_STYLES = {
7639
+ success: { tone: "success", fill: SEVERITY_FILL.success, ink: SEVERITY_INK.success, word: SEVERITY_WORD.success },
7640
+ warning: { tone: "warning", fill: SEVERITY_FILL.warning, ink: SEVERITY_INK.warning, word: SEVERITY_WORD.warning },
7641
+ danger: { tone: "danger", fill: SEVERITY_FILL.danger, ink: SEVERITY_INK.danger, word: SEVERITY_WORD.danger }
7642
+ };
7643
+ function styleForTone(tone) {
7644
+ return tone == null ? null : TONE_STYLES[tone];
7645
+ }
7646
+ function describeToken(value) {
7647
+ const raw = typeof value === "string" ? JSON.stringify(value) : typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" ? String(value) : Object.prototype.toString.call(value);
7648
+ return raw.length > 32 ? `${raw.slice(0, 31)}\u2026` : raw;
7649
+ }
7650
+ var reported = /* @__PURE__ */ new Set();
7651
+ function reportUnknownSeverity(component, described) {
7652
+ const key = `${component}:${described}`;
7653
+ if (reported.has(key)) return;
7654
+ reported.add(key);
7655
+ console.error(
7656
+ `[react-os-shell] ${component}: severity ${described} is not one of ${SEVERITY_TONES.join(" | ")}. Rendering an "unknown severity" marker \u2014 a health marker must never silently disappear. If this came from a backend rollup, map it to the shell's vocabulary at the fetch boundary (see isSeverityTone).`
7657
+ );
7658
+ }
7659
+ function resolveSeverity(severity, component) {
7660
+ if (severity == null) return null;
7661
+ if (isSeverityTone(severity)) return TONE_STYLES[severity];
7662
+ const described = describeToken(severity);
7663
+ reportUnknownSeverity(component, described);
7664
+ return {
7665
+ tone: null,
7666
+ fill: SEVERITY_UNKNOWN_FILL,
7667
+ ink: SEVERITY_UNKNOWN_INK,
7668
+ word: `unrecognised severity ${described}`
7669
+ };
7670
+ }
7671
+ function warnOnce(key, message) {
7672
+ if (reported.has(key)) return;
7673
+ reported.add(key);
7674
+ console.error(message);
7675
+ }
7604
7676
  function SidebarGroupLabel({ children }) {
7605
7677
  return /* @__PURE__ */ jsx("p", { className: "px-2.5 pb-1 pt-1 text-[11px] font-semibold uppercase tracking-wide text-gray-400", children });
7606
7678
  }
7607
- function SidebarNavItem({ label, count, active, onClick }) {
7679
+ function SidebarNavItem({ label, count, active, onClick, severity }) {
7680
+ const marker = resolveSeverity(severity, "SidebarNavItem");
7608
7681
  return /* @__PURE__ */ jsxs(
7609
7682
  "button",
7610
7683
  {
@@ -7612,12 +7685,118 @@ function SidebarNavItem({ label, count, active, onClick }) {
7612
7685
  onClick,
7613
7686
  className: `flex w-full items-center justify-between gap-2 rounded-lg px-2.5 py-1.5 text-sm text-left ${active ? "bg-blue-50 font-medium text-blue-700" : "text-gray-700 hover:bg-gray-100"}`,
7614
7687
  children: [
7615
- /* @__PURE__ */ jsx("span", { className: "truncate", children: label }),
7688
+ marker && // Decorative in the a11y tree — the word itself follows the label, so
7689
+ // the item reads "Warehouses, warning, 12" in that order instead of
7690
+ // leading with a tone before anyone knows what it belongs to.
7691
+ /* @__PURE__ */ jsx(
7692
+ "span",
7693
+ {
7694
+ "aria-hidden": "true",
7695
+ title: marker.word,
7696
+ className: `shrink-0 h-1.5 w-1.5 rounded-full ${marker.fill}`
7697
+ }
7698
+ ),
7699
+ /* @__PURE__ */ jsx("span", { className: marker ? "truncate mr-auto" : "truncate", children: label }),
7700
+ marker && /* @__PURE__ */ jsx("span", { className: "sr-only", children: marker.word }),
7616
7701
  count != null && count > 0 && /* @__PURE__ */ jsx("span", { className: `shrink-0 inline-flex items-center justify-center min-w-[1.25rem] px-1.5 h-5 rounded-full text-[11px] font-medium ${active ? "bg-blue-100 text-blue-700" : "bg-gray-100 text-gray-600"}`, children: count })
7617
7702
  ]
7618
7703
  }
7619
7704
  );
7620
7705
  }
7706
+ function Tick({ at, title, className }) {
7707
+ return /* @__PURE__ */ jsx(
7708
+ "div",
7709
+ {
7710
+ title,
7711
+ className: `absolute -top-[3px] h-3 w-0.5 rounded-[1px] ${className}`,
7712
+ style: { left: `${at}%` }
7713
+ }
7714
+ );
7715
+ }
7716
+ var clampPct = (n) => Math.min(100, Math.max(0, n));
7717
+ function MetricBar({
7718
+ label,
7719
+ value,
7720
+ max = 100,
7721
+ warn,
7722
+ crit,
7723
+ severity,
7724
+ detail,
7725
+ formatValue,
7726
+ emptyLabel = "no data",
7727
+ size = "sm",
7728
+ ariaLabel,
7729
+ className = ""
7730
+ }) {
7731
+ const reading = value != null && Number.isFinite(value) ? value : null;
7732
+ const scale = Number.isFinite(max) && max > 0 ? max : null;
7733
+ if (scale == null) {
7734
+ warnOnce(
7735
+ `MetricBar:max:${String(max)}`,
7736
+ `[react-os-shell] MetricBar: max=${String(max)} is not a positive finite number, so there is no scale to draw a proportional bar against. Printing the value without a bar. Pass the real capacity, or leave the reading out entirely (value={null}) when it is unknown \u2014 do not pass 0.`
7737
+ );
7738
+ }
7739
+ const supplied = resolveSeverity(severity, "MetricBar");
7740
+ const paint = reading != null ? supplied ?? styleForTone(severityOf(reading, warn, crit)) : null;
7741
+ const warnAt = boundOf(warn);
7742
+ const critAt = boundOf(crit);
7743
+ const width = reading != null && scale != null ? clampPct(reading / scale * 100) : 0;
7744
+ const format = formatValue ?? ((v) => scale === 100 ? `${v.toFixed(1)}%` : String(v));
7745
+ const printed = reading != null ? format(reading) : "\u2014";
7746
+ const showTicks = reading != null && scale != null && (warnAt != null || critAt != null);
7747
+ const meterLabel = ariaLabel ?? (typeof label === "string" ? label : void 0);
7748
+ const barHeight = size === "md" ? "h-2" : "h-1.5";
7749
+ const isMeter = reading != null && scale != null;
7750
+ const bar = /* @__PURE__ */ jsxs(
7751
+ "div",
7752
+ {
7753
+ ...isMeter ? {
7754
+ role: "meter",
7755
+ "aria-label": meterLabel,
7756
+ "aria-valuemin": 0,
7757
+ "aria-valuemax": scale,
7758
+ // Kept inside the declared range: the bar clamps, and a valuenow
7759
+ // past its own valuemax is an invalid widget. `aria-valuetext`
7760
+ // still carries the unclamped truth, and takes precedence in the
7761
+ // announcement.
7762
+ "aria-valuenow": Math.min(scale, Math.max(0, reading)),
7763
+ "aria-valuetext": printed
7764
+ } : { "aria-hidden": true },
7765
+ className: isMeter && paint ? `relative mt-2 ${barHeight} rounded-full bg-gray-200` : `relative mt-2 ${barHeight} rounded-full border border-dashed border-gray-300 bg-transparent`,
7766
+ children: [
7767
+ isMeter && // Grey when unjudged: the magnitude is real, the verdict is not ours.
7768
+ /* @__PURE__ */ jsx(
7769
+ "div",
7770
+ {
7771
+ className: `absolute inset-y-0 left-0 rounded-full ${paint ? paint.fill : "bg-gray-400"}`,
7772
+ style: { width: `${width}%` }
7773
+ }
7774
+ ),
7775
+ showTicks && scale != null && warnAt != null && /* @__PURE__ */ jsx(Tick, { at: clampPct(warnAt / scale * 100), title: `warning \u2265 ${warnAt}`, className: "bg-gray-400 opacity-75" }),
7776
+ showTicks && scale != null && critAt != null && /* @__PURE__ */ jsx(Tick, { at: clampPct(critAt / scale * 100), title: `critical \u2265 ${critAt}`, className: "bg-gray-500" })
7777
+ ]
7778
+ }
7779
+ );
7780
+ const valueInk = paint ? paint.ink : reading != null ? "text-gray-900" : "text-gray-400";
7781
+ if (size === "md") {
7782
+ return /* @__PURE__ */ jsxs("div", { className, children: [
7783
+ label != null && /* @__PURE__ */ jsx("div", { className: "text-[10px] font-medium uppercase tracking-wide text-gray-500", children: label }),
7784
+ /* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-baseline gap-2", children: [
7785
+ /* @__PURE__ */ jsx("span", { className: `text-2xl font-semibold leading-[30px] tabular-nums ${valueInk}`, children: printed }),
7786
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-[11px] tabular-nums text-gray-400", children: reading != null ? detail : emptyLabel })
7787
+ ] }),
7788
+ bar
7789
+ ] });
7790
+ }
7791
+ return /* @__PURE__ */ jsxs("div", { className, children: [
7792
+ /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
7793
+ label != null && /* @__PURE__ */ jsx("span", { className: "w-14 shrink-0 truncate text-[10px] font-medium uppercase tracking-wide text-gray-500", children: label }),
7794
+ /* @__PURE__ */ jsx("span", { className: `text-sm font-semibold tabular-nums ${valueInk}`, children: printed }),
7795
+ /* @__PURE__ */ jsx("span", { className: "ml-auto min-w-0 truncate text-[10px] tabular-nums text-gray-400", children: reading != null ? detail : emptyLabel })
7796
+ ] }),
7797
+ bar
7798
+ ] });
7799
+ }
7621
7800
 
7622
7801
  // src/utils/mergeBulkItems.ts
7623
7802
  function findDuplicateKeys(rows, keyRowKey) {
@@ -9700,6 +9879,6 @@ function useEditHotkey(callback) {
9700
9879
  }, [callback, isActive]);
9701
9880
  }
9702
9881
 
9703
- 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, MediaUploadField, MediaUploadGrid, 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, mediaFileName, mergeBulkItems, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
9882
+ 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, MediaUploadField, MediaUploadGrid, MetricBar, 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, isSeverityTone, mediaFileName, mergeBulkItems, severityOf, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
9704
9883
  //# sourceMappingURL=index.js.map
9705
9884
  //# sourceMappingURL=index.js.map