@flanksource/clicky-ui 0.3.57 → 0.3.59

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 (94) hide show
  1. package/dist/clicky.cjs +3 -1
  2. package/dist/clicky.d.ts +1 -0
  3. package/dist/clicky.d.ts.map +1 -1
  4. package/dist/clicky.js +3 -1
  5. package/dist/data/Clicky.cjs +22 -270
  6. package/dist/data/Clicky.cjs.map +1 -1
  7. package/dist/data/Clicky.d.ts +3 -29
  8. package/dist/data/Clicky.d.ts.map +1 -1
  9. package/dist/data/Clicky.js +10 -259
  10. package/dist/data/Clicky.js.map +1 -1
  11. package/dist/data/clicky-download.cjs +251 -0
  12. package/dist/data/clicky-download.cjs.map +1 -0
  13. package/dist/data/clicky-download.d.ts +55 -0
  14. package/dist/data/clicky-download.d.ts.map +1 -0
  15. package/dist/data/clicky-download.js +244 -0
  16. package/dist/data/clicky-download.js.map +1 -0
  17. package/dist/data/traces/index.d.ts +2 -0
  18. package/dist/data/traces/index.d.ts.map +1 -1
  19. package/dist/data/traces/otel/OtelTraceDetail.cjs +102 -78
  20. package/dist/data/traces/otel/OtelTraceDetail.cjs.map +1 -1
  21. package/dist/data/traces/otel/OtelTraceDetail.d.ts +6 -2
  22. package/dist/data/traces/otel/OtelTraceDetail.d.ts.map +1 -1
  23. package/dist/data/traces/otel/OtelTraceDetail.js +102 -78
  24. package/dist/data/traces/otel/OtelTraceDetail.js.map +1 -1
  25. package/dist/data/traces/otel/OtelTraceTable.cjs +43 -7
  26. package/dist/data/traces/otel/OtelTraceTable.cjs.map +1 -1
  27. package/dist/data/traces/otel/OtelTraceTable.d.ts +14 -3
  28. package/dist/data/traces/otel/OtelTraceTable.d.ts.map +1 -1
  29. package/dist/data/traces/otel/OtelTraceTable.js +44 -8
  30. package/dist/data/traces/otel/OtelTraceTable.js.map +1 -1
  31. package/dist/data/traces/otel/profile-listing.cjs +61 -0
  32. package/dist/data/traces/otel/profile-listing.cjs.map +1 -0
  33. package/dist/data/traces/otel/profile-listing.d.ts +23 -0
  34. package/dist/data/traces/otel/profile-listing.d.ts.map +1 -0
  35. package/dist/data/traces/otel/profile-listing.js +60 -0
  36. package/dist/data/traces/otel/profile-listing.js.map +1 -0
  37. package/dist/data/traces/otel/profile-spans.cjs +22 -0
  38. package/dist/data/traces/otel/profile-spans.cjs.map +1 -0
  39. package/dist/data/traces/otel/profile-spans.d.ts +4 -0
  40. package/dist/data/traces/otel/profile-spans.d.ts.map +1 -0
  41. package/dist/data/traces/otel/profile-spans.js +22 -0
  42. package/dist/data/traces/otel/profile-spans.js.map +1 -0
  43. package/dist/data/traces/otel/span-traces.cjs +7 -1
  44. package/dist/data/traces/otel/span-traces.cjs.map +1 -1
  45. package/dist/data/traces/otel/span-traces.d.ts +2 -0
  46. package/dist/data/traces/otel/span-traces.d.ts.map +1 -1
  47. package/dist/data/traces/otel/span-traces.js +7 -2
  48. package/dist/data/traces/otel/span-traces.js.map +1 -1
  49. package/dist/data/useClickyTableMenu.cjs +33 -0
  50. package/dist/data/useClickyTableMenu.cjs.map +1 -0
  51. package/dist/data/useClickyTableMenu.d.ts +17 -0
  52. package/dist/data/useClickyTableMenu.d.ts.map +1 -0
  53. package/dist/data/useClickyTableMenu.js +33 -0
  54. package/dist/data/useClickyTableMenu.js.map +1 -0
  55. package/dist/data/version-info.cjs +3 -3
  56. package/dist/data/version-info.js +3 -3
  57. package/dist/data.cjs +7 -2
  58. package/dist/data.js +5 -3
  59. package/dist/index.cjs +14 -3
  60. package/dist/index.js +9 -4
  61. package/dist/rpc/CommandForm.cjs +1 -1
  62. package/dist/rpc/CommandForm.cjs.map +1 -1
  63. package/dist/rpc/CommandForm.js +1 -1
  64. package/dist/rpc/CommandForm.js.map +1 -1
  65. package/dist/rpc/EntityExplorerApp.cjs +49 -12
  66. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  67. package/dist/rpc/EntityExplorerApp.d.ts +10 -1
  68. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  69. package/dist/rpc/EntityExplorerApp.js +51 -14
  70. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  71. package/dist/rpc/EntitySurface.cjs +38 -0
  72. package/dist/rpc/EntitySurface.cjs.map +1 -0
  73. package/dist/rpc/EntitySurface.d.ts +17 -0
  74. package/dist/rpc/EntitySurface.d.ts.map +1 -0
  75. package/dist/rpc/EntitySurface.js +38 -0
  76. package/dist/rpc/EntitySurface.js.map +1 -0
  77. package/dist/rpc/ExplorerNav.cjs +48 -0
  78. package/dist/rpc/ExplorerNav.cjs.map +1 -0
  79. package/dist/rpc/ExplorerNav.d.ts +12 -0
  80. package/dist/rpc/ExplorerNav.d.ts.map +1 -0
  81. package/dist/rpc/ExplorerNav.js +48 -0
  82. package/dist/rpc/ExplorerNav.js.map +1 -0
  83. package/dist/rpc/explorer-nav-context.cjs +5 -0
  84. package/dist/rpc/explorer-nav-context.cjs.map +1 -0
  85. package/dist/rpc/explorer-nav-context.d.ts +11 -0
  86. package/dist/rpc/explorer-nav-context.d.ts.map +1 -0
  87. package/dist/rpc/explorer-nav-context.js +6 -0
  88. package/dist/rpc/explorer-nav-context.js.map +1 -0
  89. package/dist/rpc.cjs +4 -0
  90. package/dist/rpc.d.ts +2 -0
  91. package/dist/rpc.d.ts.map +1 -1
  92. package/dist/rpc.js +3 -1
  93. package/dist/styles.css +1 -1
  94. package/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ const require_router = require("./router.cjs");
2
+ const require_useOperations = require("./useOperations.cjs");
3
+ const require_clickyMetadata = require("./clickyMetadata.cjs");
4
+ const require_OperationCatalog = require("./OperationCatalog.cjs");
5
+ let react = require("react");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ // src/rpc/EntitySurface.tsx
8
+ /**
9
+ * EntitySurface lists one surface wherever a host places it — the same listing,
10
+ * filters and result renderer EntityExplorerApp shows on the surface's own
11
+ * route, embedded in another page (e.g. a connection's logs on its detail page).
12
+ * Filter state lives in the current URL's query string, as it does on the route.
13
+ */
14
+ function EntitySurface({ client, surfaceKey, resultRenderer, paginationMode }) {
15
+ const { renderLink } = require_router.useRouter();
16
+ const { spec } = require_useOperations.useOperations(client);
17
+ const surface = (0, react.useMemo)(() => spec ? require_clickyMetadata.getClickySurfaces(spec).find((item) => item.key === surfaceKey) : void 0, [spec, surfaceKey]);
18
+ if (!spec) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
19
+ className: "text-sm text-muted-foreground",
20
+ children: "Loading…"
21
+ });
22
+ if (!surface) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
23
+ className: "text-sm text-muted-foreground",
24
+ children: ["Unknown surface: ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: surfaceKey })]
25
+ });
26
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_OperationCatalog.OperationCatalog, {
27
+ definition: require_clickyMetadata.makeSurfaceDefinition(surface),
28
+ entities: [surface.entity],
29
+ client,
30
+ renderLink,
31
+ surfaceKey: surface.key,
32
+ ...resultRenderer ? { resultRenderer } : {},
33
+ ...paginationMode ? { paginationMode } : {}
34
+ }, surface.key);
35
+ }
36
+ exports.EntitySurface = EntitySurface;
37
+
38
+ //# sourceMappingURL=EntitySurface.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitySurface.cjs","names":["useRouter","useOperations","useMemo","getClickySurfaces","OperationCatalog","makeSurfaceDefinition"],"sources":["../../src/rpc/EntitySurface.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { getClickySurfaces, makeSurfaceDefinition } from \"./clickyMetadata\";\nimport { OperationCatalog } from \"./OperationCatalog\";\nimport type { ResultRenderer } from \"./OperationResultView\";\nimport { useRouter } from \"./router\";\nimport type { OperationsApiClient } from \"./useOperations\";\nimport { useOperations } from \"./useOperations\";\n\nexport type EntitySurfaceProps = {\n client: OperationsApiClient;\n /** The surface to list, as the OpenAPI spec's `x-clicky.surfaces` keys it. */\n surfaceKey: string;\n resultRenderer?: ResultRenderer;\n paginationMode?: \"paged\" | \"infinite\";\n};\n\n/**\n * EntitySurface lists one surface wherever a host places it — the same listing,\n * filters and result renderer EntityExplorerApp shows on the surface's own\n * route, embedded in another page (e.g. a connection's logs on its detail page).\n * Filter state lives in the current URL's query string, as it does on the route.\n */\nexport function EntitySurface({ client, surfaceKey, resultRenderer, paginationMode }: EntitySurfaceProps) {\n const { renderLink } = useRouter();\n const { spec } = useOperations(client);\n const surface = useMemo(\n () => (spec ? getClickySurfaces(spec).find((item) => item.key === surfaceKey) : undefined),\n [spec, surfaceKey],\n );\n if (!spec) return <div className=\"text-sm text-muted-foreground\">Loading…</div>;\n if (!surface) {\n return (\n <div className=\"text-sm text-muted-foreground\">\n Unknown surface: <code>{surfaceKey}</code>\n </div>\n );\n }\n return (\n <OperationCatalog\n key={surface.key}\n definition={makeSurfaceDefinition(surface)}\n entities={[surface.entity]}\n client={client}\n renderLink={renderLink}\n surfaceKey={surface.key}\n {...(resultRenderer ? { resultRenderer } : {})}\n {...(paginationMode ? { paginationMode } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,SAAgB,cAAc,EAAE,QAAQ,YAAY,gBAAgB,kBAAsC;CACxG,MAAM,EAAE,eAAeA,eAAAA,UAAU;CACjC,MAAM,EAAE,SAASC,sBAAAA,cAAc,MAAM;CACrC,MAAM,WAAA,GAAUC,MAAAA,QAAAA,OACP,OAAOC,uBAAAA,kBAAkB,IAAI,CAAC,CAAC,MAAM,SAAS,KAAK,QAAQ,UAAU,IAAI,KAAA,GAChF,CAAC,MAAM,UAAU,CACnB;CACA,IAAI,CAAC,MAAM,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAgC,UAAA;CAAa,CAAA;CAC9E,IAAI,CAAC,SACH,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CAA+C,qBAC5B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAO,WAAiB,CAAA,CACtC;;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,kBAAD;EAEE,YAAYC,uBAAAA,sBAAsB,OAAO;EACzC,UAAU,CAAC,QAAQ,MAAM;EACjB;EACI;EACZ,YAAY,QAAQ;EACpB,GAAK,iBAAiB,EAAE,eAAe,IAAI,CAAC;EAC5C,GAAK,iBAAiB,EAAE,eAAe,IAAI,CAAC;CAC7C,GARM,QAAQ,GAQd;AAEL"}
@@ -0,0 +1,17 @@
1
+ import { ResultRenderer } from './OperationResultView.js';
2
+ import { OperationsApiClient } from './useOperations.js';
3
+ export type EntitySurfaceProps = {
4
+ client: OperationsApiClient;
5
+ /** The surface to list, as the OpenAPI spec's `x-clicky.surfaces` keys it. */
6
+ surfaceKey: string;
7
+ resultRenderer?: ResultRenderer;
8
+ paginationMode?: "paged" | "infinite";
9
+ };
10
+ /**
11
+ * EntitySurface lists one surface wherever a host places it — the same listing,
12
+ * filters and result renderer EntityExplorerApp shows on the surface's own
13
+ * route, embedded in another page (e.g. a connection's logs on its detail page).
14
+ * Filter state lives in the current URL's query string, as it does on the route.
15
+ */
16
+ export declare function EntitySurface({ client, surfaceKey, resultRenderer, paginationMode }: EntitySurfaceProps): import("react").JSX.Element;
17
+ //# sourceMappingURL=EntitySurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitySurface.d.ts","sourceRoot":"","sources":["../../src/rpc/EntitySurface.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CACvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,kBAAkB,+BA2BvG"}
@@ -0,0 +1,38 @@
1
+ import { useRouter } from "./router.js";
2
+ import { useOperations } from "./useOperations.js";
3
+ import { getClickySurfaces, makeSurfaceDefinition } from "./clickyMetadata.js";
4
+ import { OperationCatalog } from "./OperationCatalog.js";
5
+ import { useMemo } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ // src/rpc/EntitySurface.tsx
8
+ /**
9
+ * EntitySurface lists one surface wherever a host places it — the same listing,
10
+ * filters and result renderer EntityExplorerApp shows on the surface's own
11
+ * route, embedded in another page (e.g. a connection's logs on its detail page).
12
+ * Filter state lives in the current URL's query string, as it does on the route.
13
+ */
14
+ function EntitySurface({ client, surfaceKey, resultRenderer, paginationMode }) {
15
+ const { renderLink } = useRouter();
16
+ const { spec } = useOperations(client);
17
+ const surface = useMemo(() => spec ? getClickySurfaces(spec).find((item) => item.key === surfaceKey) : void 0, [spec, surfaceKey]);
18
+ if (!spec) return /* @__PURE__ */ jsx("div", {
19
+ className: "text-sm text-muted-foreground",
20
+ children: "Loading…"
21
+ });
22
+ if (!surface) return /* @__PURE__ */ jsxs("div", {
23
+ className: "text-sm text-muted-foreground",
24
+ children: ["Unknown surface: ", /* @__PURE__ */ jsx("code", { children: surfaceKey })]
25
+ });
26
+ return /* @__PURE__ */ jsx(OperationCatalog, {
27
+ definition: makeSurfaceDefinition(surface),
28
+ entities: [surface.entity],
29
+ client,
30
+ renderLink,
31
+ surfaceKey: surface.key,
32
+ ...resultRenderer ? { resultRenderer } : {},
33
+ ...paginationMode ? { paginationMode } : {}
34
+ }, surface.key);
35
+ }
36
+ export { EntitySurface };
37
+
38
+ //# sourceMappingURL=EntitySurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitySurface.js","names":[],"sources":["../../src/rpc/EntitySurface.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { getClickySurfaces, makeSurfaceDefinition } from \"./clickyMetadata\";\nimport { OperationCatalog } from \"./OperationCatalog\";\nimport type { ResultRenderer } from \"./OperationResultView\";\nimport { useRouter } from \"./router\";\nimport type { OperationsApiClient } from \"./useOperations\";\nimport { useOperations } from \"./useOperations\";\n\nexport type EntitySurfaceProps = {\n client: OperationsApiClient;\n /** The surface to list, as the OpenAPI spec's `x-clicky.surfaces` keys it. */\n surfaceKey: string;\n resultRenderer?: ResultRenderer;\n paginationMode?: \"paged\" | \"infinite\";\n};\n\n/**\n * EntitySurface lists one surface wherever a host places it — the same listing,\n * filters and result renderer EntityExplorerApp shows on the surface's own\n * route, embedded in another page (e.g. a connection's logs on its detail page).\n * Filter state lives in the current URL's query string, as it does on the route.\n */\nexport function EntitySurface({ client, surfaceKey, resultRenderer, paginationMode }: EntitySurfaceProps) {\n const { renderLink } = useRouter();\n const { spec } = useOperations(client);\n const surface = useMemo(\n () => (spec ? getClickySurfaces(spec).find((item) => item.key === surfaceKey) : undefined),\n [spec, surfaceKey],\n );\n if (!spec) return <div className=\"text-sm text-muted-foreground\">Loading…</div>;\n if (!surface) {\n return (\n <div className=\"text-sm text-muted-foreground\">\n Unknown surface: <code>{surfaceKey}</code>\n </div>\n );\n }\n return (\n <OperationCatalog\n key={surface.key}\n definition={makeSurfaceDefinition(surface)}\n entities={[surface.entity]}\n client={client}\n renderLink={renderLink}\n surfaceKey={surface.key}\n {...(resultRenderer ? { resultRenderer } : {})}\n {...(paginationMode ? { paginationMode } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,SAAgB,cAAc,EAAE,QAAQ,YAAY,gBAAgB,kBAAsC;CACxG,MAAM,EAAE,eAAe,UAAU;CACjC,MAAM,EAAE,SAAS,cAAc,MAAM;CACrC,MAAM,UAAU,cACP,OAAO,kBAAkB,IAAI,CAAC,CAAC,MAAM,SAAS,KAAK,QAAQ,UAAU,IAAI,KAAA,GAChF,CAAC,MAAM,UAAU,CACnB;CACA,IAAI,CAAC,MAAM,OAAO,oBAAC,OAAD;EAAK,WAAU;EAAgC,UAAA;CAAa,CAAA;CAC9E,IAAI,CAAC,SACH,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CAA+C,qBAC5B,oBAAC,QAAD,EAAA,UAAO,WAAiB,CAAA,CACtC;;CAGT,OACE,oBAAC,kBAAD;EAEE,YAAY,sBAAsB,OAAO;EACzC,UAAU,CAAC,QAAQ,MAAM;EACjB;EACI;EACZ,YAAY,QAAQ;EACpB,GAAK,iBAAiB,EAAE,eAAe,IAAI,CAAC;EAC5C,GAAK,iBAAiB,EAAE,eAAe,IAAI,CAAC;CAC7C,GARM,QAAQ,GAQd;AAEL"}
@@ -0,0 +1,48 @@
1
+ const require_UiChevronRight = require("../icons/components/UiChevronRight.cjs");
2
+ const require_Icon = require("../data/Icon.cjs");
3
+ const require_router = require("./router.cjs");
4
+ const require_explorer_nav_context = require("./explorer-nav-context.cjs");
5
+ let react = require("react");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ let react_dom = require("react-dom");
8
+ // src/rpc/ExplorerNav.tsx
9
+ /**
10
+ * Renders a drill-down page's title into EntityExplorerApp's top bar, after a
11
+ * breadcrumb back to the surface it was opened from.
12
+ */
13
+ function ExplorerNavPortal({ parentHref, children }) {
14
+ const slot = (0, react.useContext)(require_explorer_nav_context.ExplorerNavContext);
15
+ const { renderLink } = require_router.useRouter();
16
+ const claim = slot?.claim;
17
+ (0, react.useEffect)(() => claim?.(), [claim]);
18
+ if (!slot) throw new Error("ExplorerNavPortal must render inside EntityExplorerApp");
19
+ const { container, title, titleActions } = slot;
20
+ if (!container) return null;
21
+ return (0, react_dom.createPortal)(/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("nav", {
22
+ "aria-label": "Breadcrumb",
23
+ className: "flex min-w-0 flex-1 items-center gap-density-2",
24
+ children: [
25
+ renderLink({
26
+ to: parentHref,
27
+ className: "shrink-0 text-base font-semibold tracking-tight text-muted-foreground hover:text-foreground hover:underline",
28
+ children: title
29
+ }),
30
+ titleActions ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ className: "flex shrink-0 items-center",
32
+ children: titleActions
33
+ }) : null,
34
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
35
+ icon: require_UiChevronRight.UiChevronRight,
36
+ className: "shrink-0 text-muted-foreground"
37
+ }),
38
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
39
+ "aria-current": "page",
40
+ className: "flex min-w-0 flex-1 items-center gap-density-2",
41
+ children
42
+ })
43
+ ]
44
+ }), container);
45
+ }
46
+ exports.ExplorerNavPortal = ExplorerNavPortal;
47
+
48
+ //# sourceMappingURL=ExplorerNav.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerNav.cjs","names":["useContext","ExplorerNavContext","useRouter","createPortal","Icon","UiChevronRight"],"sources":["../../src/rpc/ExplorerNav.tsx"],"sourcesContent":["import { useContext, useEffect, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon } from \"../data/Icon\";\nimport { UiChevronRight } from \"../icons\";\nimport { useRouter } from \"./router\";\nimport { ExplorerNavContext } from \"./explorer-nav-context\";\n\nexport type ExplorerNavPortalProps = {\n /** Where the surface breadcrumb leads — the surface listing with the host's filters kept. */\n parentHref: string;\n children: ReactNode;\n};\n\n/**\n * Renders a drill-down page's title into EntityExplorerApp's top bar, after a\n * breadcrumb back to the surface it was opened from.\n */\nexport function ExplorerNavPortal({ parentHref, children }: ExplorerNavPortalProps) {\n const slot = useContext(ExplorerNavContext);\n const { renderLink } = useRouter();\n const claim = slot?.claim;\n useEffect(() => claim?.(), [claim]);\n if (!slot) throw new Error(\"ExplorerNavPortal must render inside EntityExplorerApp\");\n const { container, title, titleActions } = slot;\n if (!container) return null;\n return createPortal(\n <nav aria-label=\"Breadcrumb\" className=\"flex min-w-0 flex-1 items-center gap-density-2\">\n {renderLink({\n to: parentHref,\n className: \"shrink-0 text-base font-semibold tracking-tight text-muted-foreground hover:text-foreground hover:underline\",\n children: title,\n })}\n {titleActions ? <div className=\"flex shrink-0 items-center\">{titleActions}</div> : null}\n <Icon icon={UiChevronRight} className=\"shrink-0 text-muted-foreground\" />\n <div aria-current=\"page\" className=\"flex min-w-0 flex-1 items-center gap-density-2\">\n {children}\n </div>\n </nav>,\n container,\n );\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAgB,kBAAkB,EAAE,YAAY,YAAoC;CAClF,MAAM,QAAA,GAAOA,MAAAA,WAAAA,CAAWC,6BAAAA,kBAAkB;CAC1C,MAAM,EAAE,eAAeC,eAAAA,UAAU;CACjC,MAAM,QAAQ,MAAM;CACpB,CAAA,GAAA,MAAA,UAAA,OAAgB,QAAQ,GAAG,CAAC,KAAK,CAAC;CAClC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,wDAAwD;CACnF,MAAM,EAAE,WAAW,OAAO,iBAAiB;CAC3C,IAAI,CAAC,WAAW,OAAO;CACvB,QAAA,GAAOC,UAAAA,aAAAA,CACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,cAAW;EAAa,WAAU;EAAvC,UAAA;GACG,WAAW;IACV,IAAI;IACJ,WAAW;IACX,UAAU;GACZ,CAAC;GACA,eAAe,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IAA8B,UAAA;GAAkB,CAAA,IAAI;GACnF,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;IAAM,MAAMC,uBAAAA;IAAgB,WAAU;GAAkC,CAAA;GACxE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,gBAAa;IAAO,WAAU;IAChC;GACE,CAAA;EACF;CACL,CAAA,GAAA,SACF;AACF"}
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export type ExplorerNavPortalProps = {
3
+ /** Where the surface breadcrumb leads — the surface listing with the host's filters kept. */
4
+ parentHref: string;
5
+ children: ReactNode;
6
+ };
7
+ /**
8
+ * Renders a drill-down page's title into EntityExplorerApp's top bar, after a
9
+ * breadcrumb back to the surface it was opened from.
10
+ */
11
+ export declare function ExplorerNavPortal({ parentHref, children }: ExplorerNavPortalProps): import('react').ReactPortal | null;
12
+ //# sourceMappingURL=ExplorerNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerNav.d.ts","sourceRoot":"","sources":["../../src/rpc/ExplorerNav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAO9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,6FAA6F;IAC7F,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB,sCAuBjF"}
@@ -0,0 +1,48 @@
1
+ import { UiChevronRight } from "../icons/components/UiChevronRight.js";
2
+ import { Icon } from "../data/Icon.js";
3
+ import { useRouter } from "./router.js";
4
+ import { ExplorerNavContext } from "./explorer-nav-context.js";
5
+ import { useContext, useEffect } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { createPortal } from "react-dom";
8
+ // src/rpc/ExplorerNav.tsx
9
+ /**
10
+ * Renders a drill-down page's title into EntityExplorerApp's top bar, after a
11
+ * breadcrumb back to the surface it was opened from.
12
+ */
13
+ function ExplorerNavPortal({ parentHref, children }) {
14
+ const slot = useContext(ExplorerNavContext);
15
+ const { renderLink } = useRouter();
16
+ const claim = slot?.claim;
17
+ useEffect(() => claim?.(), [claim]);
18
+ if (!slot) throw new Error("ExplorerNavPortal must render inside EntityExplorerApp");
19
+ const { container, title, titleActions } = slot;
20
+ if (!container) return null;
21
+ return createPortal(/* @__PURE__ */ jsxs("nav", {
22
+ "aria-label": "Breadcrumb",
23
+ className: "flex min-w-0 flex-1 items-center gap-density-2",
24
+ children: [
25
+ renderLink({
26
+ to: parentHref,
27
+ className: "shrink-0 text-base font-semibold tracking-tight text-muted-foreground hover:text-foreground hover:underline",
28
+ children: title
29
+ }),
30
+ titleActions ? /* @__PURE__ */ jsx("div", {
31
+ className: "flex shrink-0 items-center",
32
+ children: titleActions
33
+ }) : null,
34
+ /* @__PURE__ */ jsx(Icon, {
35
+ icon: UiChevronRight,
36
+ className: "shrink-0 text-muted-foreground"
37
+ }),
38
+ /* @__PURE__ */ jsx("div", {
39
+ "aria-current": "page",
40
+ className: "flex min-w-0 flex-1 items-center gap-density-2",
41
+ children
42
+ })
43
+ ]
44
+ }), container);
45
+ }
46
+ export { ExplorerNavPortal };
47
+
48
+ //# sourceMappingURL=ExplorerNav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerNav.js","names":[],"sources":["../../src/rpc/ExplorerNav.tsx"],"sourcesContent":["import { useContext, useEffect, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon } from \"../data/Icon\";\nimport { UiChevronRight } from \"../icons\";\nimport { useRouter } from \"./router\";\nimport { ExplorerNavContext } from \"./explorer-nav-context\";\n\nexport type ExplorerNavPortalProps = {\n /** Where the surface breadcrumb leads — the surface listing with the host's filters kept. */\n parentHref: string;\n children: ReactNode;\n};\n\n/**\n * Renders a drill-down page's title into EntityExplorerApp's top bar, after a\n * breadcrumb back to the surface it was opened from.\n */\nexport function ExplorerNavPortal({ parentHref, children }: ExplorerNavPortalProps) {\n const slot = useContext(ExplorerNavContext);\n const { renderLink } = useRouter();\n const claim = slot?.claim;\n useEffect(() => claim?.(), [claim]);\n if (!slot) throw new Error(\"ExplorerNavPortal must render inside EntityExplorerApp\");\n const { container, title, titleActions } = slot;\n if (!container) return null;\n return createPortal(\n <nav aria-label=\"Breadcrumb\" className=\"flex min-w-0 flex-1 items-center gap-density-2\">\n {renderLink({\n to: parentHref,\n className: \"shrink-0 text-base font-semibold tracking-tight text-muted-foreground hover:text-foreground hover:underline\",\n children: title,\n })}\n {titleActions ? <div className=\"flex shrink-0 items-center\">{titleActions}</div> : null}\n <Icon icon={UiChevronRight} className=\"shrink-0 text-muted-foreground\" />\n <div aria-current=\"page\" className=\"flex min-w-0 flex-1 items-center gap-density-2\">\n {children}\n </div>\n </nav>,\n container,\n );\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAgB,kBAAkB,EAAE,YAAY,YAAoC;CAClF,MAAM,OAAO,WAAW,kBAAkB;CAC1C,MAAM,EAAE,eAAe,UAAU;CACjC,MAAM,QAAQ,MAAM;CACpB,gBAAgB,QAAQ,GAAG,CAAC,KAAK,CAAC;CAClC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,wDAAwD;CACnF,MAAM,EAAE,WAAW,OAAO,iBAAiB;CAC3C,IAAI,CAAC,WAAW,OAAO;CACvB,OAAO,aACL,qBAAC,OAAD;EAAK,cAAW;EAAa,WAAU;EAAvC,UAAA;GACG,WAAW;IACV,IAAI;IACJ,WAAW;IACX,UAAU;GACZ,CAAC;GACA,eAAe,oBAAC,OAAD;IAAK,WAAU;IAA8B,UAAA;GAAkB,CAAA,IAAI;GACnF,oBAAC,MAAD;IAAM,MAAM;IAAgB,WAAU;GAAkC,CAAA;GACxE,oBAAC,OAAD;IAAK,gBAAa;IAAO,WAAU;IAChC;GACE,CAAA;EACF;CACL,CAAA,GAAA,SACF;AACF"}
@@ -0,0 +1,5 @@
1
+ // src/rpc/explorer-nav-context.ts
2
+ var ExplorerNavContext = (0, require("react").createContext)(null);
3
+ exports.ExplorerNavContext = ExplorerNavContext;
4
+
5
+ //# sourceMappingURL=explorer-nav-context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-nav-context.cjs","names":["createContext"],"sources":["../../src/rpc/explorer-nav-context.ts"],"sourcesContent":["import { createContext, type ReactNode } from \"react\";\n\nexport type ExplorerNavSlot = {\n container: HTMLElement | null;\n title: string;\n /** Host controls kept beside the surface crumb, as beside the default title. */\n titleActions?: ReactNode;\n /** Hides the surface's default title while a portal is mounted; returns the release. */\n claim: () => () => void;\n};\n\nexport const ExplorerNavContext = createContext<ExplorerNavSlot | null>(null);\n"],"mappings":";AAWA,IAAa,sBAAA,G,eAAqBA,CAAAA,CAAAA,cAAAA,CAAsC,IAAI"}
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ export type ExplorerNavSlot = {
3
+ container: HTMLElement | null;
4
+ title: string;
5
+ /** Host controls kept beside the surface crumb, as beside the default title. */
6
+ titleActions?: ReactNode;
7
+ /** Hides the surface's default title while a portal is mounted; returns the release. */
8
+ claim: () => () => void;
9
+ };
10
+ export declare const ExplorerNavContext: import('react').Context<ExplorerNavSlot | null>;
11
+ //# sourceMappingURL=explorer-nav-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-nav-context.d.ts","sourceRoot":"","sources":["../../src/rpc/explorer-nav-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wFAAwF;IACxF,KAAK,EAAE,MAAM,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,iDAA8C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { createContext } from "react";
2
+ // src/rpc/explorer-nav-context.ts
3
+ var ExplorerNavContext = createContext(null);
4
+ export { ExplorerNavContext };
5
+
6
+ //# sourceMappingURL=explorer-nav-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-nav-context.js","names":[],"sources":["../../src/rpc/explorer-nav-context.ts"],"sourcesContent":["import { createContext, type ReactNode } from \"react\";\n\nexport type ExplorerNavSlot = {\n container: HTMLElement | null;\n title: string;\n /** Host controls kept beside the surface crumb, as beside the default title. */\n titleActions?: ReactNode;\n /** Hides the surface's default title while a portal is mounted; returns the release. */\n claim: () => () => void;\n};\n\nexport const ExplorerNavContext = createContext<ExplorerNavSlot | null>(null);\n"],"mappings":";;AAWA,IAAa,qBAAqB,cAAsC,IAAI"}
package/dist/rpc.cjs CHANGED
@@ -27,6 +27,8 @@ const require_OperationActionDialog = require("./rpc/OperationActionDialog.cjs")
27
27
  const require_OperationCommandPage = require("./rpc/OperationCommandPage.cjs");
28
28
  const require_OperationEntityPage = require("./rpc/OperationEntityPage.cjs");
29
29
  const require_EntityExplorerApp = require("./rpc/EntityExplorerApp.cjs");
30
+ const require_ExplorerNav = require("./rpc/ExplorerNav.cjs");
31
+ const require_EntitySurface = require("./rpc/EntitySurface.cjs");
30
32
  const require_accept_options = require("./rpc/accept-options.cjs");
31
33
  const require_OperationArgsForm = require("./rpc/OperationArgsForm.cjs");
32
34
  const require_operation_schedule_model = require("./rpc/operation-schedule-model.cjs");
@@ -43,6 +45,8 @@ exports.CommandOutput = require_CommandOutput.CommandOutput;
43
45
  exports.DEFAULT_SESSION_DURATION_PRESETS_MS = require_sessionHeaderModel.DEFAULT_SESSION_DURATION_PRESETS_MS;
44
46
  exports.EndpointList = require_EndpointList.EndpointList;
45
47
  exports.EntityExplorerApp = require_EntityExplorerApp.EntityExplorerApp;
48
+ exports.EntitySurface = require_EntitySurface.EntitySurface;
49
+ exports.ExplorerNavPortal = require_ExplorerNav.ExplorerNavPortal;
46
50
  exports.FilterForm = require_FilterForm.FilterForm;
47
51
  exports.InlineError = require_InlineError.InlineError;
48
52
  exports.OperationActionBar = require_OperationActionBar.OperationActionBar;
package/dist/rpc.d.ts CHANGED
@@ -8,6 +8,8 @@ export { SESSION_STATES, isSessionTerminal, parseSessionInfo, sessionDurationPar
8
8
  export { DEFAULT_SESSION_DURATION_PRESETS_MS, formatSessionCountdown, formatSessionDuration, formatSessionStoreLocation, sessionControls, type SessionControls, } from './rpc/sessionHeaderModel.js';
9
9
  export { QueryClient, QueryClientProvider } from '@tanstack/react-query';
10
10
  export { EntityExplorerApp, type EntityExplorerAppProps, type SurfaceActionLabels, } from './rpc/EntityExplorerApp.js';
11
+ export { ExplorerNavPortal, type ExplorerNavPortalProps } from './rpc/ExplorerNav.js';
12
+ export { EntitySurface, type EntitySurfaceProps } from './rpc/EntitySurface.js';
11
13
  export { ACCEPT_OPTIONS, VIEW_OPTIONS, type AcceptOption, type AcceptValue, } from './rpc/accept-options.js';
12
14
  export { SchemaActionForm, type SchemaActionFormProps, type FormActionContext, type FormActionsRenderer, type SchemaActionFormSlots, } from './rpc/SchemaActionForm.js';
13
15
  export { useOperationLookupFetcher } from './rpc/operationLookupFetcher.js';
package/dist/rpc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,4BAA4B,EAC5B,mCAAmC,EACnC,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,EACtC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,GACvC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,KAAK,aAAa,EAClB,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC"}
package/dist/rpc.js CHANGED
@@ -26,6 +26,8 @@ import { OperationActionDialog } from "./rpc/OperationActionDialog.js";
26
26
  import { OperationCommandPage } from "./rpc/OperationCommandPage.js";
27
27
  import { OperationEntityPage } from "./rpc/OperationEntityPage.js";
28
28
  import { EntityExplorerApp } from "./rpc/EntityExplorerApp.js";
29
+ import { ExplorerNavPortal } from "./rpc/ExplorerNav.js";
30
+ import { EntitySurface } from "./rpc/EntitySurface.js";
29
31
  import { ACCEPT_OPTIONS, VIEW_OPTIONS } from "./rpc/accept-options.js";
30
32
  import { OperationArgsForm } from "./rpc/OperationArgsForm.js";
31
33
  import { schedulableOperations } from "./rpc/operation-schedule-model.js";
@@ -36,4 +38,4 @@ import { clickyRowRecord, contextItemFromEntityRow, entityContextItemID } from "
36
38
  import { OperationEntityContextPicker } from "./rpc/OperationEntityContextPicker.js";
37
39
  import { RouterProvider } from "./rpc/RouterProvider.js";
38
40
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
39
- export { ACCEPT_OPTIONS, CommandForm, CommandOutput, DEFAULT_SESSION_DURATION_PRESETS_MS, EndpointList, EntityExplorerApp, FilterForm, InlineError, OperationActionBar, OperationActionDialog, OperationArgsForm, OperationCatalog, OperationCommandPage, OperationEntityContextPicker, OperationEntityPage, OperationEntityPicker, OperationPicker, OperationResultView, OperationScheduleDialog, OperationSchedules, OperationsApiClientError, QueryClient, QueryClientProvider, RouterProvider, SESSIONS_SURFACE_KEY, SESSION_POLL_MS, SESSION_STATES, SchemaActionForm, SessionHeader, SessionsCatalog, VIEW_OPTIONS, buildCommandHref, clickyRowRecord, contextItemFromEntityRow, createOperationsApiClient, entityContextItemID, filterOperationsByDomain, findDetailEndpoint, findListEndpoint, findSurfaceListOperation, formatSessionCountdown, formatSessionDuration, formatSessionStoreLocation, getClickySurfaces, isPositionalParam, isSessionTerminal, makeSurfaceDefinition, normalizeParameters, normalizeRows, parseJsonBody, parseSessionInfo, pathParamNames, schedulableOperations, sessionControls, sessionDurationParam, sessionParamsDurationMs, submitValue, useBrowserRouter, useMemoryRouter, useOpenAPI, useOperationById, useOperationLookupFetcher, useOperations, useRouter, useSession, withBasePath };
41
+ export { ACCEPT_OPTIONS, CommandForm, CommandOutput, DEFAULT_SESSION_DURATION_PRESETS_MS, EndpointList, EntityExplorerApp, EntitySurface, ExplorerNavPortal, FilterForm, InlineError, OperationActionBar, OperationActionDialog, OperationArgsForm, OperationCatalog, OperationCommandPage, OperationEntityContextPicker, OperationEntityPage, OperationEntityPicker, OperationPicker, OperationResultView, OperationScheduleDialog, OperationSchedules, OperationsApiClientError, QueryClient, QueryClientProvider, RouterProvider, SESSIONS_SURFACE_KEY, SESSION_POLL_MS, SESSION_STATES, SchemaActionForm, SessionHeader, SessionsCatalog, VIEW_OPTIONS, buildCommandHref, clickyRowRecord, contextItemFromEntityRow, createOperationsApiClient, entityContextItemID, filterOperationsByDomain, findDetailEndpoint, findListEndpoint, findSurfaceListOperation, formatSessionCountdown, formatSessionDuration, formatSessionStoreLocation, getClickySurfaces, isPositionalParam, isSessionTerminal, makeSurfaceDefinition, normalizeParameters, normalizeRows, parseJsonBody, parseSessionInfo, pathParamNames, schedulableOperations, sessionControls, sessionDurationParam, sessionParamsDurationMs, submitValue, useBrowserRouter, useMemoryRouter, useOpenAPI, useOperationById, useOperationLookupFetcher, useOperations, useRouter, useSession, withBasePath };