react-os-shell 3.24.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.
- package/README.md +15 -1
- package/dist/{Browser-MU2LBUTA.js → Browser-OYJVFNED.js} +5 -6
- package/dist/Browser-OYJVFNED.js.map +1 -0
- package/dist/{Calculator-BFRUXV7E.js → Calculator-DMOIIGKO.js} +4 -5
- package/dist/Calculator-DMOIIGKO.js.map +1 -0
- package/dist/ConfirmDialog-3RUHJG5R.js +4 -0
- package/dist/{ConfirmDialog-BEALMXZM.js.map → ConfirmDialog-3RUHJG5R.js.map} +1 -1
- package/dist/{CurrencyConverter-543D5YHO.js → CurrencyConverter-ROSY6A3Q.js} +4 -5
- package/dist/CurrencyConverter-ROSY6A3Q.js.map +1 -0
- package/dist/{Documents-UGITESQI.js → Documents-VLKG4D22.js} +5 -6
- package/dist/Documents-VLKG4D22.js.map +1 -0
- package/dist/{Files-6E3RNGNQ.js → Files-WRMJX4QG.js} +5 -6
- package/dist/Files-WRMJX4QG.js.map +1 -0
- package/dist/{Notepad-LFLER4N2.js → Notepad-JVB7OIPO.js} +5 -6
- package/dist/Notepad-JVB7OIPO.js.map +1 -0
- package/dist/{PomodoroTimer-V4FCRP35.js → PomodoroTimer-RVNX4CYS.js} +5 -6
- package/dist/PomodoroTimer-RVNX4CYS.js.map +1 -0
- package/dist/{Preview-6SVV4EVG.js → Preview-DUADZWDA.js} +5 -6
- package/dist/Preview-DUADZWDA.js.map +1 -0
- package/dist/{Spreadsheet-OVFTWCJ6.js → Spreadsheet-EIWL7RIF.js} +5 -6
- package/dist/Spreadsheet-EIWL7RIF.js.map +1 -0
- package/dist/{Stock-UVBHR5NW.js → Stock-7BIHXBPQ.js} +4 -5
- package/dist/Stock-7BIHXBPQ.js.map +1 -0
- package/dist/{Weather-3GHOQR2B.js → Weather-7KUHPWTZ.js} +4 -5
- package/dist/Weather-7KUHPWTZ.js.map +1 -0
- package/dist/{WorldClock-B5ZW37KG.js → WorldClock-I24ASGUI.js} +4 -5
- package/dist/WorldClock-I24ASGUI.js.map +1 -0
- package/dist/apps/index.js +15 -16
- package/dist/apps/index.js.map +1 -1
- package/dist/chunk-4BOGLRCL.js +7 -0
- package/dist/{chunk-TGEZDU6N.js.map → chunk-4BOGLRCL.js.map} +1 -1
- package/dist/{chunk-2YTZ6COH.js → chunk-E6ZOCXEA.js} +2928 -2588
- package/dist/chunk-E6ZOCXEA.js.map +1 -0
- package/dist/{chunk-L3RPWMS4.js → chunk-FPDVIPLM.js} +4 -4
- package/dist/{chunk-L3RPWMS4.js.map → chunk-FPDVIPLM.js.map} +1 -1
- package/dist/{chunk-WNZH4GVY.js → chunk-MU7UZXAS.js} +3 -3
- package/dist/{chunk-WNZH4GVY.js.map → chunk-MU7UZXAS.js.map} +1 -1
- package/dist/{chunk-JDGURXTZ.js → chunk-NQ2QVUVX.js} +3 -3
- package/dist/{chunk-JDGURXTZ.js.map → chunk-NQ2QVUVX.js.map} +1 -1
- package/dist/index.d.ts +105 -2
- package/dist/index.js +189 -10
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
- package/dist/Browser-MU2LBUTA.js.map +0 -1
- package/dist/Calculator-BFRUXV7E.js.map +0 -1
- package/dist/ConfirmDialog-BEALMXZM.js +0 -3
- package/dist/CurrencyConverter-543D5YHO.js.map +0 -1
- package/dist/Documents-UGITESQI.js.map +0 -1
- package/dist/Files-6E3RNGNQ.js.map +0 -1
- package/dist/Notepad-LFLER4N2.js.map +0 -1
- package/dist/PomodoroTimer-V4FCRP35.js.map +0 -1
- package/dist/Preview-6SVV4EVG.js.map +0 -1
- package/dist/Spreadsheet-OVFTWCJ6.js.map +0 -1
- package/dist/Stock-UVBHR5NW.js.map +0 -1
- package/dist/Weather-3GHOQR2B.js.map +0 -1
- package/dist/WorldClock-B5ZW37KG.js.map +0 -1
- package/dist/chunk-2YTZ6COH.js.map +0 -1
- package/dist/chunk-TGEZDU6N.js +0 -7
- package/dist/chunk-UBN4IUDE.js +0 -229
- package/dist/chunk-UBN4IUDE.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { subscribePomo, getPomoSnapshot } from './chunk-
|
|
2
|
-
export { setShellTodoProvider } from './chunk-
|
|
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-
|
|
19
|
-
export { VERSION } from './chunk-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|