@rahdar/plugin-sdk 2026.10.58 → 2026.10.64

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.
@@ -5,9 +5,9 @@ import type { AnyRoute } from '@tanstack/react-router';
5
5
  import type { NavGroupId } from './nav/groups.ts';
6
6
  import type { SlotContributions } from './slots.ts';
7
7
  /** The extension contract version, shared with the backend's `Contract.VERSION` (ADR-0070). */
8
- export declare const CONTRACT = 17;
8
+ export declare const CONTRACT = 18;
9
9
  /** The module ids the backend manifest reports. A frontend feature uses the same id as its backend module. */
10
- export declare const FEATURE_IDS: readonly ["security", "audit", "auditfeed", "settings", "lifecycle", "stream", "inbox", "approvals", "broker", "clusters", "governance", "scrape", "artemis", "mcp", "resources", "messages", "routing", "metrics", "alerting", "events", "rr", "sql", "brokerconfig", "flow", "triage", "bulk", "transfer", "setupreview", "diagnostics", "apitokens", "plugins", "identity-local", "identity-oidc"];
10
+ export declare const FEATURE_IDS: readonly ["security", "audit", "auditfeed", "settings", "lifecycle", "stream", "inbox", "approvals", "broker", "clusters", "governance", "scrape", "artemis", "mcp", "resources", "messages", "routing", "metrics", "alerting", "events", "rr", "sql", "brokerconfig", "flow", "triage", "bulk", "transfer", "setupreview", "kafka", "diagnostics", "apitokens", "plugins", "identity-local", "identity-oidc"];
11
11
  export type FeatureId = (typeof FEATURE_IDS)[number];
12
12
  /**
13
13
  * An installed plugin's id, as its `plugin.json` declares it: lowercase kebab-case, vendor first,
@@ -2,10 +2,10 @@ import type { ComponentType } from 'react';
2
2
  import type { ActionProps, ActionSection, ChannelTarget, ClientTarget, ConnectionTarget, ConsumerTarget, DestinationTarget, LinkProps, MessageTarget, ProducerTarget, ResourceRef, RouteTarget, SubscriptionTarget } from './actions/types.ts';
3
3
  import type { HeldOperationDetail } from './approvals/api.ts';
4
4
  import type { MetricRange } from './time/ranges.ts';
5
- /** Subscriptions picked by name, or every subscription matching the subscriptions screen's filter (`q`, blank for all). */
5
+ /** Subscriptions picked by id (`kind/path`), or every subscription matching the subscriptions screen's filter (`q`, blank for all). */
6
6
  export type SubscriptionSelection = {
7
- kind: 'names';
8
- names: string[];
7
+ kind: 'ids';
8
+ ids: string[];
9
9
  } | {
10
10
  kind: 'filter';
11
11
  q: string;
@@ -18,7 +18,7 @@ import { type ReactNode } from 'react';
18
18
  * Close, and closing returns focus to the control that opened the dialog.
19
19
  * </ul>
20
20
  */
21
- export declare function ConfirmDialog({ opened, onClose, title, consequence, confirmLabel, dismissLabel, tone, pending, blocked, result, onConfirm, }: ConfirmDialogProps): import("react").JSX.Element;
21
+ export declare function ConfirmDialog({ opened, onClose, title, consequence, confirmLabel, dismissLabel, tone, pending, blocked, result, size, align, onConfirm, }: ConfirmDialogProps): import("react").JSX.Element;
22
22
  export type ConfirmDialogProps = Readonly<{
23
23
  opened: boolean;
24
24
  onClose: () => void;
@@ -28,6 +28,10 @@ export type ConfirmDialogProps = Readonly<{
28
28
  consequence: ReactNode;
29
29
  /** The exact action, such as "Delete subscription". */
30
30
  confirmLabel: string;
31
+ /** A wider dialog for a consequence that holds a table. */
32
+ size?: 'md' | 'lg';
33
+ /** `top` keeps the top edge where it opened, for a consequence that grows as it is read; the default centres it. */
34
+ align?: 'center' | 'top';
31
35
  /**
32
36
  * The button that dismisses without acting; defaults to "Cancel". Name what is kept, such as "Keep
33
37
  * request", when the action itself is a cancel, so the two buttons never both read "Cancel".
@@ -22,7 +22,7 @@ type Settles = Readonly<{
22
22
  pendingId?: string;
23
23
  }>;
24
24
  /**
25
- * One helper for the four outcomes of a mutation (pending, succeeded, failed, partial), over
25
+ * One helper for the four outcomes of a mutation (pending, succeeded, failed, partial), and in doubt, over
26
26
  * Mantine's notifications, which must be mounted once at the root.
27
27
  *
28
28
  * <ul>
@@ -55,6 +55,13 @@ export declare const notify: {
55
55
  reached: string;
56
56
  next: string;
57
57
  }>): string;
58
+ /**
59
+ * The action may or may not have happened: it left, and the broker's confirmation never came back. Neither a
60
+ * success nor a failure, so it stays until dismissed and says what to check before trying again.
61
+ */
62
+ inDoubt({ action, subject, pendingId, detail }: Notice & Settles & Readonly<{
63
+ detail: string;
64
+ }>): string;
58
65
  /**
59
66
  * The action was sent for approval instead of running: it waits for a second person, and the toast links to
60
67
  * its request. Announced politely, because nothing went wrong.
@@ -1,4 +1,9 @@
1
1
  import type { ReactNode } from 'react';
2
+ /** A kind's name for people, as its driver gives it: "Queue" and "Queues". */
3
+ export interface KindName {
4
+ singular: string;
5
+ plural: string;
6
+ }
2
7
  /** What a column holds. It sets the column's bounds, font and how an overlong value is shortened. */
3
8
  export type ColumnKind = 'text' | 'identifier' | 'code' | 'number' | 'time' | 'status';
4
9
  /**
@@ -51,8 +56,8 @@ export declare const KIND_PRESETS: Record<ColumnKind, KindPreset>;
51
56
  * `low` so a narrow table drops it first; the name still identifies the row.
52
57
  */
53
58
  export declare function kindColumn<T extends {
54
- kindLabel: string;
59
+ kindLabel: KindName;
55
60
  }>(): Column<T>;
56
61
  /** The same column for rows that hold the label deeper, such as a dead-letter row's subscription. */
57
- export declare function kindColumn<T>(label: (row: T) => string): Column<T>;
62
+ export declare function kindColumn<T>(label: (row: T) => KindName): Column<T>;
58
63
  export {};