react-os-shell 4.79.4 → 4.83.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.
- package/README.md +38 -0
- package/dist/{Browser-3Z6IC25F.js → Browser-TGOOIGEP.js} +7 -7
- package/dist/{Browser-3Z6IC25F.js.map → Browser-TGOOIGEP.js.map} +1 -1
- package/dist/{Calculator-PAPSDNSJ.js → Calculator-2FCNKTPN.js} +6 -6
- package/dist/{Calculator-PAPSDNSJ.js.map → Calculator-2FCNKTPN.js.map} +1 -1
- package/dist/{CurrencyConverter-VJQI2XVV.js → CurrencyConverter-KZU7MTWE.js} +6 -6
- package/dist/{CurrencyConverter-VJQI2XVV.js.map → CurrencyConverter-KZU7MTWE.js.map} +1 -1
- package/dist/{Documents-6LSU5BZL.js → Documents-TRV2LWMG.js} +8 -16
- package/dist/Documents-TRV2LWMG.js.map +1 -0
- package/dist/{Files-6WCC7TQO.js → Files-PFVZJYRV.js} +9 -9
- package/dist/{Files-6WCC7TQO.js.map → Files-PFVZJYRV.js.map} +1 -1
- package/dist/{Notepad-NOA4XZBK.js → Notepad-UBDMMVLB.js} +7 -7
- package/dist/{Notepad-NOA4XZBK.js.map → Notepad-UBDMMVLB.js.map} +1 -1
- package/dist/{PomodoroTimer-GFL4L3XS.js → PomodoroTimer-SL372V3I.js} +7 -7
- package/dist/{PomodoroTimer-GFL4L3XS.js.map → PomodoroTimer-SL372V3I.js.map} +1 -1
- package/dist/{Preview-GEDTZPMG.js → Preview-7QUDHTDN.js} +35 -8
- package/dist/Preview-7QUDHTDN.js.map +1 -0
- package/dist/{Sidebar-B3LY5T2U.js → Sidebar-GFDPPC4X.js} +24 -6
- package/dist/Sidebar-GFDPPC4X.js.map +1 -0
- package/dist/{Spreadsheet-664SZSSQ.js → Spreadsheet-F24CHTRL.js} +9 -8
- package/dist/Spreadsheet-F24CHTRL.js.map +1 -0
- package/dist/{Stock-WZXVQX3G.js → Stock-YDCHLKSV.js} +6 -6
- package/dist/{Stock-WZXVQX3G.js.map → Stock-YDCHLKSV.js.map} +1 -1
- package/dist/{Weather-FQ7ZVXVR.js → Weather-HM3Y5LMI.js} +6 -6
- package/dist/{Weather-FQ7ZVXVR.js.map → Weather-HM3Y5LMI.js.map} +1 -1
- package/dist/{WorldClock-XAFQ5ZQF.js → WorldClock-RXKMY3YJ.js} +6 -6
- package/dist/{WorldClock-XAFQ5ZQF.js.map → WorldClock-RXKMY3YJ.js.map} +1 -1
- package/dist/apps/index.js +19 -19
- package/dist/{chunk-DC6BYGZ6.js → chunk-2P6CJAR5.js} +4 -4
- package/dist/chunk-2P6CJAR5.js.map +1 -0
- package/dist/{chunk-EWDYCO65.js → chunk-35RG2LD2.js} +3 -3
- package/dist/{chunk-EWDYCO65.js.map → chunk-35RG2LD2.js.map} +1 -1
- package/dist/{chunk-ZO4XGUZQ.js → chunk-3TSIRZUW.js} +3 -3
- package/dist/{chunk-ZO4XGUZQ.js.map → chunk-3TSIRZUW.js.map} +1 -1
- package/dist/{chunk-BLLINYDD.js → chunk-5TLIIDRZ.js} +186 -5
- package/dist/chunk-5TLIIDRZ.js.map +1 -0
- package/dist/chunk-6XQHH7D2.js +105 -0
- package/dist/chunk-6XQHH7D2.js.map +1 -0
- package/dist/{chunk-OQ7GRU7G.js → chunk-7RUYFI6O.js} +3 -3
- package/dist/{chunk-OQ7GRU7G.js.map → chunk-7RUYFI6O.js.map} +1 -1
- package/dist/{chunk-TT2WNTDS.js → chunk-IZ2FABWU.js} +3 -3
- package/dist/{chunk-TT2WNTDS.js.map → chunk-IZ2FABWU.js.map} +1 -1
- package/dist/{chunk-YZVJCHXV.js → chunk-LEMEFL6U.js} +300 -194
- package/dist/chunk-LEMEFL6U.js.map +1 -0
- package/dist/chunk-LZJW4FMH.js +7 -0
- package/dist/{chunk-QKVUOX5N.js.map → chunk-LZJW4FMH.js.map} +1 -1
- package/dist/chunk-MGGY74RY.js +14 -0
- package/dist/chunk-MGGY74RY.js.map +1 -0
- package/dist/{chunk-EXSEW5F3.js → chunk-MHUVU7ZX.js} +102 -16
- package/dist/chunk-MHUVU7ZX.js.map +1 -0
- package/dist/{chunk-QJS6RBH4.js → chunk-XWLEA4B7.js} +3 -3
- package/dist/{chunk-QJS6RBH4.js.map → chunk-XWLEA4B7.js.map} +1 -1
- package/dist/{chunk-J46YHNHL.js → chunk-Y2F2RTXM.js} +6 -6
- package/dist/{chunk-J46YHNHL.js.map → chunk-Y2F2RTXM.js.map} +1 -1
- package/dist/{chunk-WNLPTLT6.js → chunk-ZESNO4TZ.js} +2 -2
- package/dist/chunk-ZESNO4TZ.js.map +1 -0
- package/dist/{index-BjEcKEsJ.d.ts → index-D9ZuIsBe.d.ts} +130 -1
- package/dist/index.d.ts +53 -3
- package/dist/index.js +157 -55
- package/dist/index.js.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +6 -4
- package/package.json +4 -4
- package/dist/Documents-6LSU5BZL.js.map +0 -1
- package/dist/Preview-GEDTZPMG.js.map +0 -1
- package/dist/Sidebar-B3LY5T2U.js.map +0 -1
- package/dist/Spreadsheet-664SZSSQ.js.map +0 -1
- package/dist/chunk-BLLINYDD.js.map +0 -1
- package/dist/chunk-DC6BYGZ6.js.map +0 -1
- package/dist/chunk-EXSEW5F3.js.map +0 -1
- package/dist/chunk-QKVUOX5N.js +0 -7
- package/dist/chunk-WNLPTLT6.js.map +0 -1
- package/dist/chunk-YZVJCHXV.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { requestFilesTrashView } from './chunk-
|
|
1
|
+
import { requestFilesTrashView } from './chunk-7RUYFI6O.js';
|
|
2
2
|
|
|
3
3
|
// src/apps/_filesShared.ts
|
|
4
4
|
var filesDemoTree = null;
|
|
@@ -13,5 +13,5 @@ function openFilesInTrashMode() {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { getFilesDemoTree, openFilesInTrashMode, setFilesDemoTree };
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-XWLEA4B7.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-XWLEA4B7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/apps/_filesShared.ts"],"names":[],"mappings":";;;AAwBA,IAAI,aAAA,GAAwC,IAAA;AAErC,SAAS,iBAAiB,IAAA,EAA8B;AAC7D,EAAA,aAAA,GAAgB,IAAA;AAClB;AAGO,SAAS,gBAAA,GAA2C;AACzD,EAAA,OAAO,aAAA;AACT;AAKO,SAAS,oBAAA,GAAuB;AACrC,EAAA,qBAAA,EAAsB;AACxB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/apps/_filesShared.ts"],"names":[],"mappings":";;;AAwBA,IAAI,aAAA,GAAwC,IAAA;AAErC,SAAS,iBAAiB,IAAA,EAA8B;AAC7D,EAAA,aAAA,GAAgB,IAAA;AAClB;AAGO,SAAS,gBAAA,GAA2C;AACzD,EAAA,OAAO,aAAA;AACT;AAKO,SAAS,oBAAA,GAAuB;AACrC,EAAA,qBAAA,EAAsB;AACxB","file":"chunk-XWLEA4B7.js","sourcesContent":["/**\n * Files app config — the tiny consumer-facing surface of the Files app\n * (demo-tree injection + trash-mode open). Lives apart from Files.tsx so\n * importing these from `react-os-shell/apps` never drags the Files\n * implementation into a host's startup bundle; the Files window component\n * stays behind its React.lazy dynamic import.\n */\nimport { requestFilesTrashView } from '../shell/desktopIcons';\n\n/**\n * Demo filesystem. When a consumer (e.g. the demo app) injects a static tree\n * via `setFilesDemoTree`, Files browses it in-memory — no file server needed.\n * Browse-only: upload / new-folder / rename / delete / trash are hidden while a\n * demo tree is set. Consumers with a real file server never call it, so their\n * behaviour is unchanged.\n */\nexport interface FilesDemoNode {\n name: string;\n kind: 'file' | 'folder';\n size?: number;\n modifiedAt?: string;\n children?: FilesDemoNode[];\n}\n\nlet filesDemoTree: FilesDemoNode[] | null = null;\n\nexport function setFilesDemoTree(tree: FilesDemoNode[] | null) {\n filesDemoTree = tree;\n}\n\n/** @internal Current injected demo tree, if any — read by Files.tsx. */\nexport function getFilesDemoTree(): FilesDemoNode[] | null {\n return filesDemoTree;\n}\n\n// Side-channel for opening Files on a specific view (trash, desktop folder).\n// The flag + event plumbing lives in shell/desktopIcons.tsx; this wrapper is\n// kept because consumers import it from the package.\nexport function openFilesInTrashMode() {\n requestFilesTrashView();\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { VERSION } from './chunk-
|
|
2
|
-
import { useWindowMenuItem, Modal } from './chunk-
|
|
3
|
-
import { navIcons } from './chunk-
|
|
1
|
+
import { VERSION } from './chunk-LZJW4FMH.js';
|
|
2
|
+
import { useWindowMenuItem, Modal } from './chunk-MHUVU7ZX.js';
|
|
3
|
+
import { navIcons } from './chunk-ZESNO4TZ.js';
|
|
4
4
|
import { useState, useCallback, isValidElement, cloneElement } from 'react';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ var BUILTIN_APP_INFO = {
|
|
|
25
25
|
},
|
|
26
26
|
preview: {
|
|
27
27
|
name: "Preview",
|
|
28
|
-
version: "1.
|
|
28
|
+
version: "1.3.0",
|
|
29
29
|
route: "/preview",
|
|
30
30
|
description: "Viewer for PDF documents, images, DXF drawings and 3D models \u2014 CAD-style measuring with object snap and an AutoCAD-like command bar."
|
|
31
31
|
},
|
|
@@ -75,5 +75,5 @@ function AboutApp({ app }) {
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
export { AboutApp, BUILTIN_APP_INFO };
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
79
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-Y2F2RTXM.js.map
|
|
79
|
+
//# sourceMappingURL=chunk-Y2F2RTXM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/apps/_about.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/apps/_about.tsx"],"names":[],"mappings":"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","file":"chunk-Y2F2RTXM.js","sourcesContent":["/**\n * Shared \"About\" dialog for the bundled apps.\n *\n * Each bundled app carries its own version (independent of the package\n * version) so app-level changes can be tracked without bumping every app at\n * once. `<AboutApp app=\"…\" />` registers an \"About <Name>\" item in the\n * window title menu and renders the dialog: app icon, name, app version and\n * the react-os-shell attribution + shell version.\n *\n * Bump an app's version in `BUILTIN_APP_INFO` whenever that app's behaviour\n * changes, alongside the package-level CHANGELOG entry.\n */\nimport { useCallback, useState, isValidElement, cloneElement, type ReactElement } from 'react';\nimport Modal, { useWindowMenuItem } from '../shell/Modal';\nimport { navIcons } from '../shell-config/nav';\nimport { VERSION } from '../version';\n\nexport interface BuiltinAppInfo {\n /** Display name — matches the window-registry label. */\n name: string;\n /** App version, independent of the package version. */\n version: string;\n /** One-line summary shown in the About dialog. */\n description: string;\n /** Registry route — used to look up the consumer-registered nav icon. */\n route: string;\n}\n\nexport const BUILTIN_APP_INFO = {\n spreadsheet: {\n name: 'Spreadsheets',\n version: '1.1.2',\n route: '/spreadsheet',\n description: 'Multi-sheet spreadsheet editor with CSV / TSV import and export.',\n },\n notepad: {\n name: 'Notepad',\n version: '1.0.0',\n route: '/notepad',\n description: 'Color-coded notes with checklists, desktop stickies and entity autolinking.',\n },\n documents: {\n name: 'Documents',\n version: '1.1.0',\n route: '/documents',\n description: 'Letter-page editor for Word documents and plain-text files — images, lists, alignment.',\n },\n preview: {\n name: 'Preview',\n version: '1.3.0',\n route: '/preview',\n description: 'Viewer for PDF documents, images, DXF drawings and 3D models — CAD-style measuring with object snap and an AutoCAD-like command bar.',\n },\n files: {\n name: 'Files',\n version: '1.1.0',\n route: '/files',\n description: 'Personal file manager with folders, uploads, quota, trash and desktop shortcut folders.',\n },\n browser: {\n name: 'Browser',\n version: '1.0.1',\n route: '/browser',\n description: 'Minimal web browser with bookmarks, history and navigation bar.',\n },\n} satisfies Record<string, BuiltinAppInfo>;\n\nexport type BuiltinAppId = keyof typeof BUILTIN_APP_INFO;\n\nconst ABOUT_MENU_ICON = (\n <svg className=\"h-4 w-4 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n);\n\n// Generic window glyph shown when the consumer hasn't registered a nav icon\n// for the app's route (same fallback shape as the Modal title bar).\nconst FALLBACK_APP_ICON = (\n <svg className=\"h-9 w-9\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 6.75A2.25 2.25 0 016 4.5h12a2.25 2.25 0 012.25 2.25v10.5A2.25 2.25 0 0118 19.5H6a2.25 2.25 0 01-2.25-2.25V6.75z M3.75 9h16.5\" />\n </svg>\n);\n\n/** Registers \"About <Name>\" in the window title menu and renders the dialog.\n * Render anywhere inside the app's window. */\nexport default function AboutApp({ app }: { app: BuiltinAppId }) {\n const info = BUILTIN_APP_INFO[app];\n const [open, setOpen] = useState(false);\n const openDialog = useCallback(() => setOpen(true), []);\n useWindowMenuItem(`About ${info.name}`, openDialog, ABOUT_MENU_ICON);\n\n if (!open) return null;\n\n const registered = navIcons[info.route];\n const appIcon = isValidElement(registered)\n ? cloneElement(registered as ReactElement, { className: 'h-9 w-9' } as any)\n : FALLBACK_APP_ICON;\n\n return (\n <Modal open onClose={() => setOpen(false)} title={`About ${info.name}`} size=\"sm\" compact bodyScroll={false} autoHeight dimensions={[320, 320]}>\n <div className=\"flex flex-col items-center text-center px-5 pt-5 pb-4\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-2xl bg-gray-100 text-gray-600 shrink-0\">\n {appIcon}\n </div>\n <h2 className=\"mt-3 text-lg font-bold text-gray-900\">{info.name}</h2>\n <p className=\"text-[11px] font-mono text-gray-400\">Version {info.version}</p>\n <p className=\"mt-2 text-xs text-gray-500 leading-relaxed\">{info.description}</p>\n <div className=\"mt-4 pt-3 border-t border-gray-200 w-full\">\n <p className=\"text-[11px] text-gray-500\">\n Part of the <span className=\"font-medium text-gray-700\">react-os-shell</span> desktop environment\n </p>\n {VERSION && <p className=\"mt-0.5 text-[10px] font-mono text-gray-400\">shell v{VERSION}</p>}\n </div>\n </div>\n </Modal>\n );\n}\n"]}
|
|
@@ -52,5 +52,5 @@ function useShellAuth() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
export { ShellAuthProvider, isReachable, isSection, navIcons, navSections, navVisible, sectionIcons, setShellNavIcons, startMenuCategories, useShellAuth, visibleChildren };
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-ZESNO4TZ.js.map
|
|
56
|
+
//# sourceMappingURL=chunk-ZESNO4TZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shell/nav-types.ts","../src/shell-config/nav.tsx","../src/shell/ShellAuth.tsx"],"names":[],"mappings":";;;;AAuEO,SAAS,UAAU,IAAA,EAAgD;AACxE,EAAA,OAAO,OAAA,IAAW,IAAA;AACpB;AAoBO,SAAS,UAAA,CACd,OACA,UAAA,EACS;AACT,EAAA,IAAI,KAAA,CAAM,OAAO,MAAA,IAAU,CAAC,WAAW,KAAA,CAAM,KAAK,GAAG,OAAO,KAAA;AAC5D,EAAA,IAAI,KAAA,CAAM,QAAA,EAAU,MAAA,IAAU,CAAC,MAAM,QAAA,CAAS,KAAA,CAAM,CAAA,CAAA,KAAK,UAAA,CAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,KAAA;AAClF,EAAA,OAAO,IAAA;AACT;AAWO,SAAS,eAAA,CAAgB,MAAe,UAAA,EAAmC;AAChF,EAAA,OAAA,CAAQ,IAAA,CAAK,YAAY,EAAC,EAAG,OAAO,CAAA,CAAA,KAAK,UAAA,CAAW,CAAA,EAAG,UAAU,CAAC,CAAA;AACpE;AAcO,SAAS,WAAA,CAAY,MAAe,UAAA,EAAiC;AAC1E,EAAA,IAAI,CAAC,IAAA,CAAK,QAAA,EAAU,MAAA,EAAQ,OAAO,IAAA;AACnC,EAAA,OAAO,eAAA,CAAgB,MAAM,UAAU,CAAA,CAAE,KAAK,CAAA,KAAA,KAAS,WAAA,CAAY,KAAA,EAAO,UAAU,CAAC,CAAA;AACvF;;;AClHA,IAAM,YAAuC,EAAC;AACvC,IAAM,QAAA,GAAsC,IAAI,KAAA,CAAM,SAAA,EAAW;AAAA,EACtE,GAAA,CAAI,IAAI,CAAA,EAAW;AAAE,IAAA,OAAO,UAAU,CAAC,CAAA;AAAA,EAAG,CAAA;AAAA,EAC1C,GAAA,CAAI,IAAI,CAAA,EAAW;AAAE,IAAA,OAAO,CAAA,IAAK,SAAA;AAAA,EAAW,CAAA;AAAA,EAC5C,OAAA,GAAU;AAAE,IAAA,OAAO,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,EAAG,CAAA;AAAA,EAC3C,wBAAA,CAAyB,IAAI,CAAA,EAAW;AACtC,IAAA,IAAI,CAAA,IAAK,SAAA,EAAW,OAAO,EAAE,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,KAAA,EAAO,SAAA,CAAU,CAAC,CAAA,EAAE;AACvF,IAAA,OAAO,MAAA;AAAA,EACT;AACF,CAAC;AACM,SAAS,iBAAiB,KAAA,EAAwC;AACvE,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,EAAG,OAAO,UAAU,CAAC,CAAA;AAC1D,EAAA,MAAA,CAAO,MAAA,CAAO,WAAW,KAAK,CAAA;AAChC;AAEO,IAAM,eAA0C;AAChD,IAAM,cAAwC;AAC9C,IAAM,mBAAA,GAA2C,EAAE,GAAA,EAAK,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAG,OAAA,EAAS,EAAC,EAAG,MAAA,EAAQ,EAAC;ACZrG,IAAM,OAAA,GAAqB,EAAE,UAAA,EAAY,MAAM,IAAA,EAAK;AAEpD,IAAM,gBAAA,GAAmB,cAAyB,OAAO,CAAA;AAElD,SAAS,iBAAA,CAAkB,EAAE,KAAA,EAAO,QAAA,EAAS,EAA8C;AAChG,EAAA,uBAAO,GAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,OAAe,QAAA,EAAS,CAAA;AAC5D;AAEO,SAAS,YAAA,GAA0B;AACxC,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACpC","file":"chunk-ZESNO4TZ.js","sourcesContent":["/**\n * Nav data types used by <Layout> + <StartMenu>. The actual sections, icons,\n * and categories are consumer-supplied via Layout props — the package never\n * ships nav DATA, only the shape it expects.\n */\nimport type { ReactNode } from 'react';\n\nexport interface NavItem {\n to: string;\n label: string;\n /** Optional compact wording used only inside navigation menus. Keep `label`\n * as the full semantic name for windows, search and assistive technology. */\n menuLabel?: string;\n perms?: string[];\n /** Permissions the user must hold EVERY one of, unlike `perms` which needs\n * only one. For an entry whose page is gated on a narrower permission than\n * the one that puts it in the menu: listing both in `perms` would widen the\n * audience (it's an OR), so the extra one goes here instead. */\n allPerms?: string[];\n dividerAfter?: boolean;\n /** Optional sub-items, to any depth — a child may have children of its own.\n * Hovering the parent in <StartMenu> opens a nested flyout; in <Sidebar>\n * the parent becomes an inline sub-accordion. */\n children?: NavItem[];\n}\n\nexport interface NavSection {\n label: string;\n /** Optional compact wording used only inside navigation menus. */\n menuLabel?: string;\n items: NavItem[];\n perms?: string[];\n /** Same all-of rule as `NavItem.allPerms`, for a whole section. */\n allPerms?: string[];\n /** Optional landing route for clicks on the section title itself\n * (e.g. R&D's `/rd` dashboard). */\n to?: string;\n /** Draw a divider under this section's row, so a consumer can split one\n * flat group into visual bands (e.g. an operator console pinned above the\n * ERP sections). Same knob as `NavItem.dividerAfter`, and drawn INSIDE the\n * section's wrapper so it stays below the row in the `flex-col-reverse`\n * Start menu a side/top taskbar renders. */\n dividerAfter?: boolean;\n}\n\nexport interface VirtualSection {\n label: string;\n /** Optional compact wording used only inside navigation menus. */\n menuLabel?: string;\n items: NavItem[];\n icon?: ReactNode;\n}\n\nexport interface StartMenuCategories {\n /** Section labels rendered in the \"ERP\" group (bold, with section icon). */\n erp: string[];\n /** Section labels rendered in the \"system\" group. */\n system: string[];\n /** Optional virtual flyouts (e.g. a \"Utilities\" tray). */\n virtual?: VirtualSection[];\n /** Optional section labels pinned to the bottom of the menu, next to the user\n * profile, separated from the ERP group by a divider. */\n footer?: string[];\n /** Optional flat top-level items pinned to the bottom of the menu, next to\n * the user profile, separated from the ERP group by a divider. Unlike\n * `footer` (section labels rendered as flyouts), these render as direct\n * clickable rows — use for standalone destinations like System Preferences\n * or a bug-report link. */\n footerItems?: NavItem[];\n}\n\nexport function isSection(item: NavSection | NavItem): item is NavSection {\n return 'items' in item;\n}\n\n/** The host app's permission predicate — `useAuth().hasAnyPerm`. */\ntype HasAnyPerm = (perms: string[]) => boolean;\n\n/**\n * Whether this user may see a nav entry, honouring BOTH permission rules.\n *\n * Every visibility test in the shell goes through here. It used to be an inline\n * `!x.perms || hasAnyPerm(x.perms)` repeated at nine call sites, which made the\n * all-of rule impossible to add without missing one — and a missed site shows a\n * row that refuses on click (SG#00214: a price-blind supplier role kept the\n * Price Sheets entry, because the entry is gated on the permission that lists\n * price sheets while the page is gated on the narrower one that reveals prices).\n *\n * `perms` keeps its any-of meaning, so existing nav data is untouched.\n * `allPerms` requires every entry, and is tested one permission at a time\n * because `hasAnyPerm` is the only predicate a host supplies — asking for all\n * of them in one call would be an OR and quietly grant the row.\n */\nexport function navVisible(\n entry: { perms?: string[]; allPerms?: string[] },\n hasAnyPerm: HasAnyPerm,\n): boolean {\n if (entry.perms?.length && !hasAnyPerm(entry.perms)) return false;\n if (entry.allPerms?.length && !entry.allPerms.every(p => hasAnyPerm([p]))) return false;\n return true;\n}\n\n/**\n * The sub-items of `item` this user may actually see.\n *\n * Every affordance for a nested group has to be derived from THIS list — the\n * chevron that advertises it, the hover handler that opens it, and the flyout\n * itself. Reading the raw `item.children` for the chevron while filtering only\n * for the flyout put an arrow on groups whose children were all\n * permission-hidden: hovering one highlighted the row and opened nothing.\n */\nexport function visibleChildren(item: NavItem, hasAnyPerm: HasAnyPerm): NavItem[] {\n return (item.children ?? []).filter(c => navVisible(c, hasAnyPerm));\n}\n\n/**\n * Whether a nav row leads anywhere for this user: either it's a plain\n * destination, or it's a group with at least one child that itself leads\n * somewhere. A group whose children are all hidden has nothing to open — and\n * by convention a group's `to` is a synthetic key that never navigates, so\n * there is nothing to fall back to either. Such a row is dropped rather than\n * rendered inert.\n *\n * The test recurses because nesting does: a group holding one sub-group whose\n * own children are all permission-hidden is just as inert as a group holding\n * nothing, and at four levels deep that shape is easy to build by accident.\n */\nexport function isReachable(item: NavItem, hasAnyPerm: HasAnyPerm): boolean {\n if (!item.children?.length) return true;\n return visibleChildren(item, hasAnyPerm).some(child => isReachable(child, hasAnyPerm));\n}\n","/**\n * INTERNAL stub — package-side compatibility for files that legacy-imported\n * default nav data from `shell-config/nav`. The package never ships nav\n * DATA; consumers always supply `navSections` / `navIcons` / `sectionIcons` /\n * `categories` as Layout props.\n *\n * Empty defaults exported here so the copied files compile during the\n * extraction transition. Each consumer-facing field is also re-exported as\n * a TYPE alias for code that only needed the shape.\n */\nimport type { ReactNode } from 'react';\nimport type { NavItem, NavSection, StartMenuCategories, VirtualSection } from '../shell/nav-types';\n\n// Live proxy: WindowManager reads window-title icons from this module-level\n// map. Consumers register their full icon set once at app startup so the\n// title bars show the same glyphs as the start menu.\nconst _navIcons: Record<string, ReactNode> = {};\nexport const navIcons: Record<string, ReactNode> = new Proxy(_navIcons, {\n get(_t, k: string) { return _navIcons[k]; },\n has(_t, k: string) { return k in _navIcons; },\n ownKeys() { return Object.keys(_navIcons); },\n getOwnPropertyDescriptor(_t, k: string) {\n if (k in _navIcons) return { configurable: true, enumerable: true, value: _navIcons[k] };\n return undefined;\n },\n});\nexport function setShellNavIcons(icons: Record<string, ReactNode>): void {\n for (const k of Object.keys(_navIcons)) delete _navIcons[k];\n Object.assign(_navIcons, icons);\n}\n\nexport const sectionIcons: Record<string, ReactNode> = {};\nexport const navSections: (NavSection | NavItem)[] = [];\nexport const startMenuCategories: StartMenuCategories = { erp: [], system: [], virtual: [], footer: [] };\n\nexport { isSection } from '../shell/nav-types';\nexport type { NavItem, NavSection, StartMenuCategories, VirtualSection };\n","/**\n * Shell-side auth surface — JUST permission checking. The shell never\n * authenticates anyone or holds tokens; it only asks \"is the current user\n * allowed to see this nav item?\".\n *\n * Consumer wraps the app:\n *\n * <ShellAuthProvider value={{ hasAnyPerm: (perms) => myAuth.has(...perms) }}>\n * <Layout ... />\n * </ShellAuthProvider>\n *\n * When no provider is mounted, every permission check returns true — useful\n * for demos and consumers that don't gate their UI.\n */\nimport { createContext, useContext, type ReactNode } from 'react';\n\nexport interface ShellAuth {\n /** Returns true if the current user has any of the listed permission codes. */\n hasAnyPerm: (perms: string[]) => boolean;\n}\n\nconst DEFAULT: ShellAuth = { hasAnyPerm: () => true };\n\nconst ShellAuthContext = createContext<ShellAuth>(DEFAULT);\n\nexport function ShellAuthProvider({ value, children }: { value: ShellAuth; children: ReactNode }) {\n return <ShellAuthContext.Provider value={value}>{children}</ShellAuthContext.Provider>;\n}\n\nexport function useShellAuth(): ShellAuth {\n return useContext(ShellAuthContext);\n}\n"]}
|
|
@@ -395,6 +395,135 @@ interface MediaUploadFieldProps {
|
|
|
395
395
|
|
|
396
396
|
declare function MediaUploadField({ value, onChange, onPick, label, hint, error, required, className, accept, fit, height, placeholder, cta, acceptHint, showFilename, allowReplace, allowRemove, replaceLabel, removeLabel, busy, busyLabel, disabled, }: MediaUploadFieldProps): react_jsx_runtime.JSX.Element;
|
|
397
397
|
|
|
398
|
+
type BrandMarkSlot = 'favicon' | 'compact' | 'wordmark';
|
|
399
|
+
type BrandMarkSurface = 'light' | 'dark';
|
|
400
|
+
type BrandMarkTreatment = 'plate-light' | 'plate-dark' | 'framed' | 'bare';
|
|
401
|
+
interface BrandMarkProps {
|
|
402
|
+
src?: string | null;
|
|
403
|
+
fallbackSrc?: string | null;
|
|
404
|
+
fallbackHasAlpha?: boolean | null;
|
|
405
|
+
fallbackIsLight?: boolean | null;
|
|
406
|
+
fallbackAdaptive?: boolean;
|
|
407
|
+
alt: string;
|
|
408
|
+
slot?: BrandMarkSlot;
|
|
409
|
+
surface?: BrandMarkSurface;
|
|
410
|
+
/** Override the square slot size in pixels for compact shell chrome. */
|
|
411
|
+
size?: number;
|
|
412
|
+
/** Override a natural-aspect slot width without forcing square dimensions. */
|
|
413
|
+
width?: number | string;
|
|
414
|
+
/** Override a natural-aspect slot height without forcing square dimensions. */
|
|
415
|
+
height?: number | string;
|
|
416
|
+
/** Mark the image decorative when the adjacent text already names it. */
|
|
417
|
+
decorative?: boolean;
|
|
418
|
+
/** Hide the slot after load failure when surrounding UI owns the fallback. */
|
|
419
|
+
fallbackMode?: 'monogram' | 'none';
|
|
420
|
+
/** Keep an arbitrary tenant mark readable without recolouring the artwork. */
|
|
421
|
+
adaptive?: boolean;
|
|
422
|
+
/** Server-detected transparency hint for the selected asset. */
|
|
423
|
+
hasAlpha?: boolean | null;
|
|
424
|
+
/** Server-detected tone hint for the selected asset. */
|
|
425
|
+
isLight?: boolean | null;
|
|
426
|
+
treatmentPadding?: number | string;
|
|
427
|
+
treatmentRadius?: number;
|
|
428
|
+
className?: string;
|
|
429
|
+
style?: CSSProperties;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Chooses the smallest backing needed to preserve contrast. Opaque artwork
|
|
433
|
+
* carries its own background; transparent artwork only needs a plate when its
|
|
434
|
+
* tone would disappear into the current surface. Unknown artwork gets the
|
|
435
|
+
* conservative light plate used by every portal.
|
|
436
|
+
*/
|
|
437
|
+
declare function resolveBrandMarkTreatment(hasAlpha: boolean | null, isLight: boolean | null, surface: BrandMarkSurface): BrandMarkTreatment;
|
|
438
|
+
/**
|
|
439
|
+
* Renders a brand asset inside a stable portal slot without ever cropping or
|
|
440
|
+
* stretching the source. Raster normalisation belongs to the server; this
|
|
441
|
+
* component owns only the presentation contract shared by portal surfaces.
|
|
442
|
+
*/
|
|
443
|
+
declare function BrandMark({ src, fallbackSrc, fallbackHasAlpha, fallbackIsLight, fallbackAdaptive, alt, slot, surface, size, width, height, decorative, fallbackMode, adaptive, hasAlpha, isLight, treatmentPadding, treatmentRadius, className, style, }: BrandMarkProps): react_jsx_runtime.JSX.Element | null;
|
|
444
|
+
|
|
445
|
+
interface BrandAssetPreview {
|
|
446
|
+
label: string;
|
|
447
|
+
slot: BrandMarkSlot;
|
|
448
|
+
surface?: BrandMarkSurface;
|
|
449
|
+
kind?: 'brand-slot' | 'browser-tab' | 'search-result';
|
|
450
|
+
title?: string;
|
|
451
|
+
url?: string;
|
|
452
|
+
description?: string;
|
|
453
|
+
}
|
|
454
|
+
interface BrandAssetEditorProps {
|
|
455
|
+
committedUrl?: string | null;
|
|
456
|
+
committedHasAlpha?: boolean | null;
|
|
457
|
+
committedIsLight?: boolean | null;
|
|
458
|
+
/** Read-only inherited asset shown until this surface saves an override. */
|
|
459
|
+
fallbackUrl?: string | null;
|
|
460
|
+
fallbackHasAlpha?: boolean | null;
|
|
461
|
+
fallbackIsLight?: boolean | null;
|
|
462
|
+
subjectName: string;
|
|
463
|
+
assetName: string;
|
|
464
|
+
onSave: (file: File) => void | Promise<void>;
|
|
465
|
+
onRemove: () => void | Promise<void>;
|
|
466
|
+
accept?: string;
|
|
467
|
+
acceptHint?: string;
|
|
468
|
+
maxBytes?: number;
|
|
469
|
+
previews?: BrandAssetPreview[];
|
|
470
|
+
disabled?: boolean;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Shared staged-upload surface for portal branding. Network and persistence
|
|
474
|
+
* remain consumer-owned through onSave/onRemove; validation, preview and file
|
|
475
|
+
* lifecycle are identical everywhere.
|
|
476
|
+
*/
|
|
477
|
+
declare function BrandAssetEditor({ committedUrl, committedHasAlpha, committedIsLight, fallbackUrl, fallbackHasAlpha, fallbackIsLight, subjectName, assetName, onSave, onRemove, accept, acceptHint, maxBytes, previews, disabled, }: BrandAssetEditorProps): react_jsx_runtime.JSX.Element;
|
|
478
|
+
|
|
479
|
+
type PublicPortal = 'dealer' | 'customer' | 'supplier';
|
|
480
|
+
interface PublicPortalBranding {
|
|
481
|
+
portal: PublicPortal;
|
|
482
|
+
company_name: string | null;
|
|
483
|
+
logo_url: string | null;
|
|
484
|
+
logo_on_dark_url: string | null;
|
|
485
|
+
logo_square_url: string | null;
|
|
486
|
+
favicon_url: string | null;
|
|
487
|
+
logo_has_alpha: boolean | null;
|
|
488
|
+
logo_is_light: boolean | null;
|
|
489
|
+
logo_square_has_alpha: boolean | null;
|
|
490
|
+
logo_square_is_light: boolean | null;
|
|
491
|
+
}
|
|
492
|
+
interface ResolvedPortalBrandAsset {
|
|
493
|
+
src: string | null;
|
|
494
|
+
hasAlpha: boolean | null;
|
|
495
|
+
isLight: boolean | null;
|
|
496
|
+
adaptive: boolean;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Select one tenant-owned asset and its matching display metadata. Compact
|
|
500
|
+
* hints must never be borrowed from the primary wordmark; a dedicated dark
|
|
501
|
+
* variant is authoritative for that surface and therefore needs no treatment.
|
|
502
|
+
*/
|
|
503
|
+
declare function resolvePortalBrandAsset(branding: PublicPortalBranding, options?: {
|
|
504
|
+
preferSquare?: boolean;
|
|
505
|
+
surface?: 'light' | 'dark';
|
|
506
|
+
}): ResolvedPortalBrandAsset;
|
|
507
|
+
interface PortalBrandingContextValue {
|
|
508
|
+
branding: PublicPortalBranding;
|
|
509
|
+
loading: boolean;
|
|
510
|
+
error: Error | null;
|
|
511
|
+
}
|
|
512
|
+
interface PortalBrandingProviderProps {
|
|
513
|
+
load: (signal?: AbortSignal) => Promise<PublicPortalBranding>;
|
|
514
|
+
fallback: PublicPortalBranding;
|
|
515
|
+
/** Consistent browser title derived from the hostname-scoped public identity. */
|
|
516
|
+
documentTitle?: (branding: PublicPortalBranding) => string;
|
|
517
|
+
children: ReactNode;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Loads pre-auth, hostname-scoped identity without reading or mutating the
|
|
521
|
+
* signed-in session. Consumers inject the HTTP adapter; the shared lifecycle,
|
|
522
|
+
* fallback and document favicon behaviour stay consistent across portals.
|
|
523
|
+
*/
|
|
524
|
+
declare function PortalBrandingProvider({ load, fallback, documentTitle, children, }: PortalBrandingProviderProps): react_jsx_runtime.JSX.Element;
|
|
525
|
+
declare function usePortalBranding(): PortalBrandingContextValue;
|
|
526
|
+
|
|
398
527
|
interface MediaUploadGridItem {
|
|
399
528
|
/** Stable key — used for React keys, remove, and reorder. */
|
|
400
529
|
id: string;
|
|
@@ -2828,4 +2957,4 @@ declare const ALT_SHIFT_N: string;
|
|
|
2828
2957
|
* string when the source is consumed without a build (e.g. tests). */
|
|
2829
2958
|
declare const VERSION: string;
|
|
2830
2959
|
|
|
2831
|
-
export {
|
|
2960
|
+
export { ChatTemplate as $, ALT as A, Banner as B, type ColumnDef as C, type BrandMarkSlot as D, type BrandMarkSurface as E, type BrandMarkTreatment as F, type BreadcrumbItem as G, Breadcrumbs as H, type BreadcrumbsProps as I, Button as J, type ButtonProps as K, type ButtonSize as L, type ButtonVariant as M, CMD_A as N, CMD_DOT as O, type PaginatedResponse as P, CMD_ENTER as Q, CMD_K as R, type SearchConfig as S, CMD_S as T, Calendar as U, type CalendarMode as V, type CalendarProps as W, Card as X, type CardPadding as Y, type CardProps as Z, type CellStyle as _, type SortState as a, FormField as a$, Checkbox as a0, type CheckboxProps as a1, CheckoutTemplate as a2, ColoredBadge as a3, type ColoredBadgeProps as a4, ConfirmProvider as a5, ContainerFillChart as a6, type ContainerFillChartProps as a7, type ContainerFillItem as a8, CountBadge as a9, DonutChart as aA, type DonutChartProps as aB, type DonutSegment as aC, Drawer as aD, type DrawerProps as aE, type DrawerSide as aF, type DrawerSize as aG, DropdownMenu as aH, type DropdownMenuAlign as aI, type DropdownMenuItem as aJ, type DropdownMenuProps as aK, type DropdownMenuSide as aL, ENTER as aM, EditableGrid as aN, type EditableGridProps as aO, EmailTemplate as aP, EmptyState as aQ, type EmptyStateProps as aR, ErrorBoundary as aS, type ErrorBoundaryProps as aT, ErrorPage as aU, type ErrorPageProps as aV, FilePicker as aW, type FilePickerProps as aX, type FormError as aY, FormErrorSummary as aZ, type FormErrorSummaryProps as a_, type CountBadgeProps as aa, type CountBadgeTone as ab, DEFAULT_SHELL_STRINGS as ac, DashboardTemplate as ad, DataTable as ae, type DataTableColumn as af, type DataTableColumnGroup as ag, type DataTableHeader as ah, DataTablePage as ai, type DataTableProps as aj, DatePicker as ak, type DatePickerProps as al, DateRangePicker as am, type DateRangePickerProps as an, DateTimePicker as ao, type DateTimePickerProps as ap, type DescriptionColumns as aq, type DescriptionItem as ar, DescriptionList as as, type DescriptionListProps as at, Dialog as au, type DialogProps as av, type DialogSize as aw, Divider as ax, type DividerProps as ay, type DividerSpacing as az, ALT_SHIFT_D as b, Paragraph as b$, type FormFieldProps as b0, FormLayoutPage as b1, GLASS_DIVIDER as b2, GLASS_INPUT_BG as b3, GROUP_COLORS as b4, GalleryTemplate as b5, type Gap as b6, GlobalSearch as b7, type GlobalSearchProps as b8, Grid as b9, ListFooter as bA, ListLoadError as bB, type ListLoadErrorProps as bC, LoadingSpinner as bD, type LoadingSpinnerProps as bE, MAX_FRACTION_DIGITS as bF, MOD as bG, Markdown as bH, type MarkdownProps as bI, MediaUploadField as bJ, type MediaUploadFieldProps as bK, MediaUploadGrid as bL, type MediaUploadGridItem as bM, type MediaUploadGridProps as bN, MetricBar as bO, type MetricBarProps as bP, type Milestone as bQ, type MilestoneKind as bR, MilestoneTimeline as bS, type MilestoneTimelineProps as bT, NativeSelect as bU, NumericKeypad as bV, type NumericKeypadProps as bW, PageHeader as bX, type PageHeaderProps as bY, Pagination as bZ, type PaginationProps as b_, type GridCols as ba, type GridColumn as bb, type GridProps as bc, HelpCenter as bd, type HelpCenterDoc as be, type HelpCenterProps as bf, INPUT_BASE as bg, INPUT_SIZES as bh, IconButton as bi, type IconButtonProps as bj, Inline as bk, type InlineProps as bl, Input as bm, InputNumber as bn, type InputNumberProps as bo, type InputProps as bp, type InputSize as bq, type Justify as br, Kanban as bs, type KanbanColumn as bt, type KanbanProps as bu, Label as bv, type LabelProps as bw, LineChart as bx, type LineChartProps as by, type LineChartSeries as bz, ALT_SHIFT_E as c, type TabItem as c$, type ParagraphProps as c0, PopupMenu as c1, PopupMenuDivider as c2, PopupMenuItem as c3, PopupMenuLabel as c4, type PortalBrandingContextValue as c5, PortalBrandingProvider as c6, type PortalBrandingProviderProps as c7, type PublicPortal as c8, type PublicPortalBranding as c9, SidebarActionButton as cA, type SidebarActionButtonProps as cB, SidebarGroupLabel as cC, SidebarLayout as cD, type SidebarLayoutProps as cE, SidebarNavItem as cF, Skeleton as cG, type SkeletonProps as cH, type SkeletonVariant as cI, Sparkline as cJ, type SparklineProps as cK, Stack as cL, type StackProps as cM, StatCard as cN, type StatCardProps as cO, Statistic as cP, type StatisticProps as cQ, type StatisticSize as cR, type StatisticTone as cS, StatusBadge as cT, StatusBadgeProvider as cU, type StepItem as cV, Stepper as cW, type StepperProps as cX, Switch as cY, type SwitchProps as cZ, type SwitchSize as c_, Radio as ca, type RadioProps as cb, type ResolvedPortalBrandAsset as cc, Result as cd, type ResultProps as ce, type ResultStatus as cf, SHIFT as cg, type SearchProvider as ch, type SearchResult as ci, type SearchableOption as cj, SearchableSelect as ck, type SearchableSelectProps as cl, Segmented as cm, type SegmentedOption as cn, type SegmentedProps as co, type SegmentedSize as cp, Select as cq, type SelectOption as cr, type SelectProps as cs, type SemanticGroup as ct, type SeverityTone as cu, type ShellPrefsAdapter as cv, ShellPrefsProvider as cw, type ShellStrings as cx, type ShellStringsOverride as cy, ShellStringsProvider as cz, ALT_SHIFT_N as d, Tabs as d0, type TabsProps as d1, TagInput as d2, type TagInputOption as d3, type TagInputProps as d4, Text as d5, type TextProps as d6, type TextSize as d7, type TextTone as d8, type TextWeight as d9, fromKey as dA, glassStyle as dB, inputClasses as dC, isMac as dD, isSeverityTone as dE, mediaFileName as dF, prompt as dG, resolveBrandMarkTreatment as dH, resolvePortalBrandAsset as dI, resolveTheme as dJ, severityOf as dK, tabButtonId as dL, tabPanelId as dM, toKey as dN, toISODate as dO, toast as dP, useClickOutside as dQ, useConfirm as dR, useFocusTrap as dS, useIsMobile as dT, useLocalStoragePrefs as dU, usePortalBranding as dV, useScrollLock as dW, useShellPrefs as dX, useShellStrings as dY, useTheme as dZ, Textarea as da, type TextareaProps as db, type Theme as dc, TileButton as dd, type TileButtonProps as de, type TileSize as df, TimePicker as dg, type TimePickerProps as dh, Title as di, type TitleLevel as dj, type TitleProps as dk, type ToastOptions as dl, type ToastPlacement as dm, Tooltip as dn, type TooltipProps as dp, TopNav as dq, type TopNavItem as dr, type TopNavProps as ds, VERSION as dt, appendKey as du, applyThemePrefs as dv, backspace as dw, confirm as dx, confirmDestructive as dy, formatDate as dz, Accordion as e, type AccordionItem as f, type AccordionProps as g, type Align as h, AuthScreen as i, type AuthScreenProps as j, Avatar as k, AvatarGroup as l, type AvatarGroupProps as m, type AvatarProps as n, type AvatarSize as o, type AvatarStatus as p, type BannerEmphasis as q, type BannerProps as r, type BannerTone as s, BarChart as t, type BarChartProps as u, BrandAssetEditor as v, type BrandAssetEditorProps as w, type BrandAssetPreview as x, BrandMark as y, type BrandMarkProps as z };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-
|
|
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
|
|
1
|
+
import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-D9ZuIsBe.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 BrandAssetEditor, w as BrandAssetEditorProps, x as BrandAssetPreview, y as BrandMark, z as BrandMarkProps, D as BrandMarkSlot, E as BrandMarkSurface, F as BrandMarkTreatment, G as BreadcrumbItem, H as Breadcrumbs, I as BreadcrumbsProps, J as Button, K as ButtonProps, L as ButtonSize, M as ButtonVariant, N as CMD_A, O as CMD_DOT, Q as CMD_ENTER, R as CMD_K, T as CMD_S, U as Calendar, V as CalendarMode, W as CalendarProps, X as Card, Y as CardPadding, Z as CardProps, _ as CellStyle, $ as ChatTemplate, a0 as Checkbox, a1 as CheckboxProps, a2 as CheckoutTemplate, a3 as ColoredBadge, a4 as ColoredBadgeProps, a5 as ConfirmProvider, a6 as ContainerFillChart, a7 as ContainerFillChartProps, a8 as ContainerFillItem, a9 as CountBadge, aa as CountBadgeProps, ab as CountBadgeTone, ac as DEFAULT_SHELL_STRINGS, ad as DashboardTemplate, ae as DataTable, af as DataTableColumn, ag as DataTableColumnGroup, ah as DataTableHeader, ai as DataTablePage, aj as DataTableProps, ak as DatePicker, al as DatePickerProps, am as DateRangePicker, an as DateRangePickerProps, ao as DateTimePicker, ap as DateTimePickerProps, aq as DescriptionColumns, ar as DescriptionItem, as as DescriptionList, at as DescriptionListProps, au as Dialog, av as DialogProps, aw as DialogSize, ax as Divider, ay as DividerProps, az as DividerSpacing, aA as DonutChart, aB as DonutChartProps, aC as DonutSegment, aD as Drawer, aE as DrawerProps, aF as DrawerSide, aG as DrawerSize, aH as DropdownMenu, aI as DropdownMenuAlign, aJ as DropdownMenuItem, aK as DropdownMenuProps, aL as DropdownMenuSide, aM as ENTER, aN as EditableGrid, aO as EditableGridProps, aP as EmailTemplate, aQ as EmptyState, aR as EmptyStateProps, aS as ErrorBoundary, aT as ErrorBoundaryProps, aU as ErrorPage, aV as ErrorPageProps, aW as FilePicker, aX as FilePickerProps, aY as FormError, aZ as FormErrorSummary, a_ as FormErrorSummaryProps, a$ as FormField, b0 as FormFieldProps, b1 as FormLayoutPage, b2 as GLASS_DIVIDER, b3 as GLASS_INPUT_BG, b4 as GROUP_COLORS, b5 as GalleryTemplate, b6 as Gap, b7 as GlobalSearch, b8 as GlobalSearchProps, b9 as Grid, ba as GridCols, bb as GridColumn, bc as GridProps, bd as HelpCenter, be as HelpCenterDoc, bf as HelpCenterProps, bg as INPUT_BASE, bh as INPUT_SIZES, bi as IconButton, bj as IconButtonProps, bk as Inline, bl as InlineProps, bm as Input, bn as InputNumber, bo as InputNumberProps, bp as InputProps, bq as InputSize, br as Justify, bs as Kanban, bt as KanbanColumn, bu as KanbanProps, bv as Label, bw as LabelProps, bx as LineChart, by as LineChartProps, bz as LineChartSeries, bA as ListFooter, bB as ListLoadError, bC as ListLoadErrorProps, bD as LoadingSpinner, bE as LoadingSpinnerProps, bF as MAX_FRACTION_DIGITS, bG as MOD, bH as Markdown, bI as MarkdownProps, bJ as MediaUploadField, bK as MediaUploadFieldProps, bL as MediaUploadGrid, bM as MediaUploadGridItem, bN as MediaUploadGridProps, bO as MetricBar, bP as MetricBarProps, bQ as Milestone, bR as MilestoneKind, bS as MilestoneTimeline, bT as MilestoneTimelineProps, bU as NativeSelect, bV as NumericKeypad, bW as NumericKeypadProps, bX as PageHeader, bY as PageHeaderProps, bZ as Pagination, b_ as PaginationProps, b$ as Paragraph, c0 as ParagraphProps, c1 as PopupMenu, c2 as PopupMenuDivider, c3 as PopupMenuItem, c4 as PopupMenuLabel, c5 as PortalBrandingContextValue, c6 as PortalBrandingProvider, c7 as PortalBrandingProviderProps, c8 as PublicPortal, c9 as PublicPortalBranding, ca as Radio, cb as RadioProps, cc as ResolvedPortalBrandAsset, cd as Result, ce as ResultProps, cf as ResultStatus, cg as SHIFT, ch as SearchProvider, ci as SearchResult, cj as SearchableOption, ck as SearchableSelect, cl as SearchableSelectProps, cm as Segmented, cn as SegmentedOption, co as SegmentedProps, cp as SegmentedSize, cq as Select, cr as SelectOption, cs as SelectProps, ct as SemanticGroup, cu as SeverityTone, cv as ShellPrefsAdapter, cw as ShellPrefsProvider, cx as ShellStrings, cy as ShellStringsOverride, cz as ShellStringsProvider, cA as SidebarActionButton, cB as SidebarActionButtonProps, cC as SidebarGroupLabel, cD as SidebarLayout, cE as SidebarLayoutProps, cF as SidebarNavItem, cG as Skeleton, cH as SkeletonProps, cI as SkeletonVariant, cJ as Sparkline, cK as SparklineProps, cL as Stack, cM as StackProps, cN as StatCard, cO as StatCardProps, cP as Statistic, cQ as StatisticProps, cR as StatisticSize, cS as StatisticTone, cT as StatusBadge, cU as StatusBadgeProvider, cV as StepItem, cW as Stepper, cX as StepperProps, cY as Switch, cZ as SwitchProps, c_ as SwitchSize, c$ as TabItem, d0 as Tabs, d1 as TabsProps, d2 as TagInput, d3 as TagInputOption, d4 as TagInputProps, d5 as Text, d6 as TextProps, d7 as TextSize, d8 as TextTone, d9 as TextWeight, da as Textarea, db as TextareaProps, dc as Theme, dd as TileButton, de as TileButtonProps, df as TileSize, dg as TimePicker, dh as TimePickerProps, di as Title, dj as TitleLevel, dk as TitleProps, dl as ToastOptions, dm as ToastPlacement, dn as Tooltip, dp as TooltipProps, dq as TopNav, dr as TopNavItem, ds as TopNavProps, dt as VERSION, du as appendKey, dv as applyThemePrefs, dw as backspace, dx as confirm, dy as confirmDestructive, dz as formatDate, dA as fromDateKey, dB as glassStyle, dC as inputClasses, dD as isMac, dE as isSeverityTone, dF as mediaFileName, dG as prompt, dH as resolveBrandMarkTreatment, dI as resolvePortalBrandAsset, dJ as resolveTheme, dK as severityOf, dL as tabButtonId, dM as tabPanelId, dN as toDateKey, dO as toISODate, dP as toast, dQ as useClickOutside, dR as useConfirm, dS as useFocusTrap, dT as useIsMobile, dU as useLocalStoragePrefs, dV as usePortalBranding, dW as useScrollLock, dX as useShellPrefs, dY as useShellStrings, dZ as useTheme } from './index-D9ZuIsBe.js';
|
|
3
3
|
import { W as WindowRegistry } from './types-C4Fy2SUD.js';
|
|
4
4
|
export { M as ModalRegistryEntry, P as PageRegistryEntry, a as WindowRegistryEntry, i as isEntityEntry, b as isPageEntry, s as setShellWindowRegistry } from './types-C4Fy2SUD.js';
|
|
5
5
|
import * as react from 'react';
|
|
@@ -33,6 +33,9 @@ declare function createWindowRegistry(...partials: WindowRegistry[]): WindowRegi
|
|
|
33
33
|
interface NavItem {
|
|
34
34
|
to: string;
|
|
35
35
|
label: string;
|
|
36
|
+
/** Optional compact wording used only inside navigation menus. Keep `label`
|
|
37
|
+
* as the full semantic name for windows, search and assistive technology. */
|
|
38
|
+
menuLabel?: string;
|
|
36
39
|
perms?: string[];
|
|
37
40
|
/** Permissions the user must hold EVERY one of, unlike `perms` which needs
|
|
38
41
|
* only one. For an entry whose page is gated on a narrower permission than
|
|
@@ -47,6 +50,8 @@ interface NavItem {
|
|
|
47
50
|
}
|
|
48
51
|
interface NavSection {
|
|
49
52
|
label: string;
|
|
53
|
+
/** Optional compact wording used only inside navigation menus. */
|
|
54
|
+
menuLabel?: string;
|
|
50
55
|
items: NavItem[];
|
|
51
56
|
perms?: string[];
|
|
52
57
|
/** Same all-of rule as `NavItem.allPerms`, for a whole section. */
|
|
@@ -63,6 +68,8 @@ interface NavSection {
|
|
|
63
68
|
}
|
|
64
69
|
interface VirtualSection {
|
|
65
70
|
label: string;
|
|
71
|
+
/** Optional compact wording used only inside navigation menus. */
|
|
72
|
+
menuLabel?: string;
|
|
66
73
|
items: NavItem[];
|
|
67
74
|
icon?: ReactNode;
|
|
68
75
|
}
|
|
@@ -612,6 +619,43 @@ declare function WindowManagerProvider({ children, windowAccentForRoute }: {
|
|
|
612
619
|
windowAccentForRoute?: (route: string) => string | undefined;
|
|
613
620
|
}): react_jsx_runtime.JSX.Element;
|
|
614
621
|
|
|
622
|
+
interface EntityWindowStateProps<T> extends EntityWindowFallbackProps {
|
|
623
|
+
entity: T | null | undefined;
|
|
624
|
+
children: (entity: T) => ReactNode;
|
|
625
|
+
}
|
|
626
|
+
interface EntityWindowFallbackProps {
|
|
627
|
+
isPending: boolean;
|
|
628
|
+
isFetching: boolean;
|
|
629
|
+
/**
|
|
630
|
+
* Whether the query is switched on. FALSE for a window whose detail fetch is
|
|
631
|
+
* deliberately skipped — a `new-` draft, a duplicate, or a host that never
|
|
632
|
+
* called `setShellApiClient`.
|
|
633
|
+
*
|
|
634
|
+
* This has to be passed, because a DISABLED TanStack query is
|
|
635
|
+
* `status: 'pending'` / `fetchStatus: 'idle'` forever, so `isPending` alone
|
|
636
|
+
* reads as "still loading" for a request that will never be made — and the
|
|
637
|
+
* window sits on a spinner it can never leave. `isLoading` (`isPending &&
|
|
638
|
+
* isFetching`) is the pair that already accounts for this, which is why the
|
|
639
|
+
* old inline check did not have the bug.
|
|
640
|
+
*/
|
|
641
|
+
enabled?: boolean;
|
|
642
|
+
error: unknown;
|
|
643
|
+
onRetry: () => void;
|
|
644
|
+
}
|
|
645
|
+
declare function EntityWindowLoading(): react_jsx_runtime.JSX.Element;
|
|
646
|
+
/**
|
|
647
|
+
* The no-data half of an entity window: what to show when there is no entity
|
|
648
|
+
* to render yet, or never will be. Split out from `EntityWindowState` because
|
|
649
|
+
* a `rendersOwnModal` entry supplies its own Modal only once it HAS an entity,
|
|
650
|
+
* so these states need a modal of their own to live inside.
|
|
651
|
+
*/
|
|
652
|
+
declare function EntityWindowFallback({ isPending, isFetching, enabled, error, onRetry, }: EntityWindowFallbackProps): react_jsx_runtime.JSX.Element;
|
|
653
|
+
/**
|
|
654
|
+
* Owns the no-data states for an entity window. Existing data always wins so
|
|
655
|
+
* background refreshes never replace a usable detail with transient chrome.
|
|
656
|
+
*/
|
|
657
|
+
declare function EntityWindowState<T>({ entity, children, ...fallback }: EntityWindowStateProps<T>): react_jsx_runtime.JSX.Element;
|
|
658
|
+
|
|
615
659
|
/**
|
|
616
660
|
* Frame-timing maths + bottleneck attribution for the desktop perf HUD.
|
|
617
661
|
*
|
|
@@ -1114,6 +1158,12 @@ interface ShellBranding {
|
|
|
1114
1158
|
productName?: string;
|
|
1115
1159
|
/** Logo URL — start-menu button, splash and logout covers. Defaults to `/favicon.svg`. */
|
|
1116
1160
|
logo?: string;
|
|
1161
|
+
/** Apply the shared contrast treatment to arbitrary tenant artwork. */
|
|
1162
|
+
adaptiveLogo?: boolean;
|
|
1163
|
+
/** Server-detected transparency hint for `logo`. */
|
|
1164
|
+
logoHasAlpha?: boolean | null;
|
|
1165
|
+
/** Server-detected tone hint for `logo`. */
|
|
1166
|
+
logoIsLight?: boolean | null;
|
|
1117
1167
|
/** Line under the product name on the splash and logout covers —
|
|
1118
1168
|
* typically the company name. */
|
|
1119
1169
|
tagline?: string;
|
|
@@ -2228,4 +2278,4 @@ interface UndoState {
|
|
|
2228
2278
|
future: UndoStep[];
|
|
2229
2279
|
}
|
|
2230
2280
|
|
|
2231
|
-
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, MODAL_SUBMIT_SELECTOR, 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, type ShellBranding, 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 };
|
|
2281
|
+
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, EntityWindowFallback, type EntityWindowFallbackProps, EntityWindowLoading, EntityWindowState, type EntityWindowStateProps, 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, MODAL_SUBMIT_SELECTOR, 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, type ShellBranding, 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 };
|