@knpkv/rly 0.4.1 → 0.5.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.
@@ -0,0 +1,3320 @@
1
+ import { i as e, r as t, t as n } from "./PortalProvider-CN_81Fy3.js";
2
+ import { n as r } from "./LinkProvider-DMkhwZ3P.js";
3
+ import { a as i, c as a, i as o, l as s, n as c, r as l, s as u, t as d } from "./component-DKy8kjZl.js";
4
+ import { A as f, D as p, F as m, I as h, M as g, N as _, O as v, P as y, S as b, f as x, g as S, h as C, j as ee, k as te, o as ne, s as re, t as w, x as T } from "./Dialog-DSwimdwG.js";
5
+ import { Portal as ie } from "radix-ui";
6
+ import { useCallback as ae, useId as E, useLayoutEffect as oe, useRef as D, useState as se, useSyncExternalStore as ce } from "react";
7
+ import { Fragment as le, jsx as O, jsxs as k } from "react/jsx-runtime";
8
+ var ue = {
9
+ root: "rly_AgentContextButton-module__root",
10
+ mark: "rly_AgentContextButton-module__mark",
11
+ glyph: "rly_AgentContextButton-module__glyph",
12
+ copy: "rly_AgentContextButton-module__copy",
13
+ contextRow: "rly_AgentContextButton-module__contextRow",
14
+ action: "rly_AgentContextButton-module__action",
15
+ agent: "rly_AgentContextButton-module__agent",
16
+ contextLabel: "rly_AgentContextButton-module__contextLabel",
17
+ context: "rly_AgentContextButton-module__context",
18
+ job: "rly_AgentContextButton-module__job",
19
+ count: "rly_AgentContextButton-module__count"
20
+ }, A = (e) => c(ue, e), de = () => /* @__PURE__ */ O("span", {
21
+ "aria-hidden": "true",
22
+ className: A("mark"),
23
+ children: /* @__PURE__ */ O("svg", {
24
+ className: A("glyph"),
25
+ focusable: "false",
26
+ viewBox: "0 0 24 24",
27
+ children: /* @__PURE__ */ O("path", {
28
+ d: "M12 3.5 14 10l6.5 2-6.5 2-2 6.5L10 14l-6.5-2 6.5-2Z",
29
+ fill: "currentColor"
30
+ })
31
+ })
32
+ }), fe = ({ actionLabel: e = "Ask agent", agentName: t, className: n, context: r, contextLabel: i = "Context", job: a, type: s, ...c }) => {
33
+ let l = o(e, "AgentContextButton actionLabel"), u = o(t, "AgentContextButton agentName"), f = o(r, "AgentContextButton context"), p = o(i, "AgentContextButton contextLabel"), m = a === void 0 ? void 0 : o(a.status, "AgentContextButton job status");
34
+ if (a?.count !== void 0 && (!Number.isInteger(a.count) || a.count < 0)) throw Error("AgentContextButton job count must be a non-negative integer");
35
+ return /* @__PURE__ */ k("button", {
36
+ ...c,
37
+ className: d(A("root"), n),
38
+ "data-rly-agent-context-button": "",
39
+ type: s ?? "button",
40
+ children: [
41
+ /* @__PURE__ */ O(de, {}),
42
+ /* @__PURE__ */ k("span", {
43
+ className: A("copy"),
44
+ children: [
45
+ /* @__PURE__ */ O("span", {
46
+ className: A("action"),
47
+ children: l
48
+ }),
49
+ /* @__PURE__ */ O("span", {
50
+ className: A("agent"),
51
+ children: u
52
+ }),
53
+ /* @__PURE__ */ k("span", {
54
+ className: A("contextRow"),
55
+ children: [/* @__PURE__ */ O("span", {
56
+ className: A("contextLabel"),
57
+ children: p
58
+ }), /* @__PURE__ */ O("span", {
59
+ className: A("context"),
60
+ children: f
61
+ })]
62
+ })
63
+ ]
64
+ }),
65
+ m === void 0 ? null : /* @__PURE__ */ k("span", {
66
+ className: A("job"),
67
+ "data-rly-agent-job": "",
68
+ children: [m, a?.count === void 0 ? null : /* @__PURE__ */ O("span", {
69
+ className: A("count"),
70
+ children: a.count
71
+ })]
72
+ })
73
+ ]
74
+ });
75
+ }, pe = {
76
+ drawer: "rly_AgentDrawer-module__drawer",
77
+ body: "rly_AgentDrawer-module__body",
78
+ slot: "rly_AgentDrawer-module__slot",
79
+ slotContent: "rly_AgentDrawer-module__slotContent",
80
+ identityCopy: "rly_AgentDrawer-module__identityCopy",
81
+ contextSlot: "rly_AgentDrawer-module__contextSlot",
82
+ identity: "rly_AgentDrawer-module__identity",
83
+ mark: "rly_AgentDrawer-module__mark",
84
+ glyph: "rly_AgentDrawer-module__glyph",
85
+ eyebrow: "rly_AgentDrawer-module__eyebrow",
86
+ slotTitle: "rly_AgentDrawer-module__slotTitle",
87
+ contextSummary: "rly_AgentDrawer-module__contextSummary"
88
+ }, j = (e) => c(pe, e), me = () => /* @__PURE__ */ O("span", {
89
+ "aria-hidden": "true",
90
+ className: j("mark"),
91
+ children: /* @__PURE__ */ O("svg", {
92
+ className: j("glyph"),
93
+ focusable: "false",
94
+ viewBox: "0 0 24 24",
95
+ children: /* @__PURE__ */ O("path", {
96
+ d: "M12 3.5 14 10l6.5 2-6.5 2-2 6.5L10 14l-6.5-2 6.5-2Z",
97
+ fill: "currentColor"
98
+ })
99
+ })
100
+ }), he = ({ children: e, label: t, name: n }) => /* @__PURE__ */ k("section", {
101
+ className: j("slot"),
102
+ "data-rly-agent-drawer-slot": n,
103
+ children: [/* @__PURE__ */ O("h2", {
104
+ className: j("slotTitle"),
105
+ children: t
106
+ }), /* @__PURE__ */ O("div", {
107
+ className: j("slotContent"),
108
+ children: e
109
+ })]
110
+ }), ge = ({ agentName: e, capabilities: t, className: n, composer: r, context: i, contextSummary: a, evidence: s, onOpenChange: c, open: l, thread: u, title: f, ...m }) => {
111
+ let h = o(e, "AgentDrawer agentName"), g = o(a, "AgentDrawer contextSummary"), _ = o(f, "AgentDrawer title"), v = D(null);
112
+ return /* @__PURE__ */ O(p.Root, {
113
+ onOpenChange: c,
114
+ open: l,
115
+ children: /* @__PURE__ */ O(p.Content, {
116
+ className: d(j("drawer"), n),
117
+ description: `Context-aware session with ${h}`,
118
+ initialFocusRef: v,
119
+ title: _,
120
+ children: /* @__PURE__ */ k(p.Body, {
121
+ ...m,
122
+ className: j("body"),
123
+ children: [
124
+ /* @__PURE__ */ k("section", {
125
+ className: d(j("slot"), j("contextSlot")),
126
+ "data-rly-agent-drawer-slot": "context",
127
+ ref: v,
128
+ tabIndex: -1,
129
+ children: [/* @__PURE__ */ k("div", {
130
+ className: j("identity"),
131
+ children: [/* @__PURE__ */ O(me, {}), /* @__PURE__ */ k("div", {
132
+ className: j("identityCopy"),
133
+ children: [/* @__PURE__ */ O("span", {
134
+ className: j("eyebrow"),
135
+ children: h
136
+ }), /* @__PURE__ */ O("h2", {
137
+ className: j("contextSummary"),
138
+ children: g
139
+ })]
140
+ })]
141
+ }), /* @__PURE__ */ O("div", {
142
+ className: j("slotContent"),
143
+ children: i
144
+ })]
145
+ }),
146
+ /* @__PURE__ */ O(he, {
147
+ label: "Evidence",
148
+ name: "evidence",
149
+ children: s
150
+ }),
151
+ /* @__PURE__ */ O(he, {
152
+ label: "Capabilities",
153
+ name: "capabilities",
154
+ children: t
155
+ }),
156
+ /* @__PURE__ */ k("section", {
157
+ "aria-live": "polite",
158
+ "aria-relevant": "additions text",
159
+ className: j("slot"),
160
+ "data-rly-agent-drawer-slot": "thread",
161
+ children: [/* @__PURE__ */ O("h2", {
162
+ className: j("slotTitle"),
163
+ children: "Thread"
164
+ }), /* @__PURE__ */ O("div", {
165
+ className: j("slotContent"),
166
+ children: u
167
+ })]
168
+ }),
169
+ /* @__PURE__ */ O(he, {
170
+ label: "Message",
171
+ name: "composer",
172
+ children: r
173
+ })
174
+ ]
175
+ })
176
+ })
177
+ });
178
+ }, _e = {
179
+ root: "rly_AgentJob-module__root",
180
+ header: "rly_AgentJob-module__header",
181
+ agentGlyph: "rly_AgentJob-module__agentGlyph",
182
+ titleBlock: "rly_AgentJob-module__titleBlock",
183
+ eyebrow: "rly_AgentJob-module__eyebrow",
184
+ progressLabel: "rly_AgentJob-module__progressLabel",
185
+ metadata: "rly_AgentJob-module__metadata",
186
+ progressBlock: "rly_AgentJob-module__progressBlock",
187
+ slot: "rly_AgentJob-module__slot",
188
+ footer: "rly_AgentJob-module__footer",
189
+ outcome: "rly_AgentJob-module__outcome"
190
+ }, M = (e) => c(_e, e), ve = (e, t) => {
191
+ if (e == null || i(e)) throw Error(`${t} must contain renderable content`);
192
+ s(e) && o(e, t);
193
+ }, ye = {
194
+ queued: {
195
+ label: "Queued",
196
+ tone: "neutral"
197
+ },
198
+ running: {
199
+ label: "Running",
200
+ tone: "progress"
201
+ },
202
+ "cancel-requested": {
203
+ label: "Cancel requested",
204
+ tone: "caution"
205
+ },
206
+ succeeded: {
207
+ label: "Succeeded",
208
+ tone: "positive"
209
+ },
210
+ failed: {
211
+ label: "Failed",
212
+ tone: "critical"
213
+ },
214
+ cancelled: {
215
+ label: "Cancelled",
216
+ tone: "neutral"
217
+ }
218
+ }, be = (e) => {
219
+ if (e !== void 0 && (!Number.isFinite(e) || e < 0 || e > 100)) throw Error("AgentJob progress must be between 0 and 100");
220
+ }, xe = ({ cancelLabel: e = "Request cancellation", capability: t, className: n, context: r, evidence: i, heading: a, onCancel: s, outcome: c, progress: l, provider: u, revision: f, sandbox: p, state: m, ...h }) => {
221
+ let g = o(a, "AgentJob heading"), _ = o(u, "AgentJob provider"), v = o(t, "AgentJob capability"), y = o(e, "AgentJob cancelLabel");
222
+ ve(r, "AgentJob context"), ve(i, "AgentJob evidence"), (m === "succeeded" || m === "failed" || m === "cancelled") && ve(c, "AgentJob terminal outcome"), p !== void 0 && o(p, "AgentJob sandbox"), f !== void 0 && o(f, "AgentJob revision"), be(l);
223
+ let x = ye[m], S = m === "queued" || m === "running", C = `rly-agent-job-progress-${E()}`;
224
+ return /* @__PURE__ */ k("article", {
225
+ ...h,
226
+ "aria-busy": m === "queued" || m === "running" || m === "cancel-requested",
227
+ className: d(M("root"), n),
228
+ "data-rly-agent-job-state": m,
229
+ children: [
230
+ /* @__PURE__ */ k("header", {
231
+ className: M("header"),
232
+ children: [
233
+ /* @__PURE__ */ O("span", {
234
+ "aria-hidden": "true",
235
+ className: M("agentGlyph"),
236
+ children: "AI"
237
+ }),
238
+ /* @__PURE__ */ k("span", {
239
+ className: M("titleBlock"),
240
+ children: [/* @__PURE__ */ k("span", {
241
+ className: M("eyebrow"),
242
+ children: [
243
+ _,
244
+ " · ",
245
+ v
246
+ ]
247
+ }), /* @__PURE__ */ O("h2", { children: g })]
248
+ }),
249
+ /* @__PURE__ */ O(T, {
250
+ label: x.label,
251
+ size: "compact",
252
+ tone: x.tone
253
+ })
254
+ ]
255
+ }),
256
+ l === void 0 ? null : /* @__PURE__ */ k("div", {
257
+ className: M("progressBlock"),
258
+ children: [/* @__PURE__ */ k("span", {
259
+ className: M("progressLabel"),
260
+ id: C,
261
+ children: ["Progress ", /* @__PURE__ */ k("strong", { children: [Math.round(l), "%"] })]
262
+ }), /* @__PURE__ */ O("progress", {
263
+ "aria-labelledby": C,
264
+ max: 100,
265
+ value: l
266
+ })]
267
+ }),
268
+ /* @__PURE__ */ k("dl", {
269
+ className: M("metadata"),
270
+ children: [
271
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Provider" }), /* @__PURE__ */ O("dd", { children: _ })] }),
272
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Capability" }), /* @__PURE__ */ O("dd", { children: v })] }),
273
+ p === void 0 ? null : /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Sandbox" }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O("code", { children: p }) })] }),
274
+ f === void 0 ? null : /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Revision" }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O("code", { children: f }) })] })
275
+ ]
276
+ }),
277
+ /* @__PURE__ */ k("section", {
278
+ className: M("slot"),
279
+ "data-rly-agent-job-context": "",
280
+ children: [/* @__PURE__ */ O("h3", { children: "Exact context" }), r]
281
+ }),
282
+ /* @__PURE__ */ k("section", {
283
+ className: M("slot"),
284
+ "data-rly-agent-job-evidence": "",
285
+ children: [/* @__PURE__ */ O("h3", { children: "Evidence" }), i]
286
+ }),
287
+ c === void 0 ? null : /* @__PURE__ */ k("section", {
288
+ className: d(M("slot"), M("outcome")),
289
+ "data-rly-agent-job-outcome": m,
290
+ children: [/* @__PURE__ */ O("h3", { children: "Terminal outcome" }), c]
291
+ }),
292
+ S && s !== void 0 ? /* @__PURE__ */ O("footer", {
293
+ className: M("footer"),
294
+ children: /* @__PURE__ */ O(b, {
295
+ onClick: s,
296
+ size: "compact",
297
+ variant: "quiet",
298
+ children: y
299
+ })
300
+ }) : null
301
+ ]
302
+ });
303
+ }, Se = {
304
+ root: "rly_AgentProposal-module__root",
305
+ header: "rly_AgentProposal-module__header",
306
+ agentIdentity: "rly_AgentProposal-module__agentIdentity",
307
+ agentText: "rly_AgentProposal-module__agentText",
308
+ eyebrow: "rly_AgentProposal-module__eyebrow",
309
+ heading: "rly_AgentProposal-module__heading",
310
+ agentRole: "rly_AgentProposal-module__agentRole",
311
+ proposalReference: "rly_AgentProposal-module__proposalReference",
312
+ context: "rly_AgentProposal-module__context",
313
+ boundary: "rly_AgentProposal-module__boundary",
314
+ evidence: "rly_AgentProposal-module__evidence",
315
+ outcome: "rly_AgentProposal-module__outcome",
316
+ state: "rly_AgentProposal-module__state",
317
+ facts: "rly_AgentProposal-module__facts"
318
+ }, N = (e) => c(Se, e), Ce = (e) => {
319
+ o(e.id, "AgentProposal agent id"), o(e.name, "AgentProposal agent name"), o(e.role, "AgentProposal agent role"), o(e.avatarFallback, "AgentProposal agent avatarFallback"), e.avatarSrc !== void 0 && o(e.avatarSrc, "AgentProposal agent avatarSrc");
320
+ }, we = (e) => {
321
+ if (o(e.id, "AgentProposal id"), Ce(e.agent), o(e.capability, "AgentProposal capability"), o(e.context, "AgentProposal context"), o(e.expectedRevision, "AgentProposal expectedRevision"), o(e.impact, "AgentProposal impact"), o(e.target, "AgentProposal target"), e.evidence.length === 0) throw Error("AgentProposal evidence must contain at least one reference");
322
+ let t = /* @__PURE__ */ new Set();
323
+ for (let n of e.evidence) {
324
+ let e = o(n.id, "AgentProposal evidence id");
325
+ if (t.has(e)) throw Error(`AgentProposal evidence ids must be unique: ${e}`);
326
+ t.add(e), o(n.label, `AgentProposal evidence label for ${e}`), o(n.reference, `AgentProposal evidence reference for ${e}`);
327
+ }
328
+ return e;
329
+ }, Te = ({ className: e, outcome: t, proposal: n, state: r, ...i }) => {
330
+ let a = we(n), o = `rly-agent-proposal-${E()}`, s = `rly-agent-proposal-reference-${E()}`;
331
+ return /* @__PURE__ */ k("section", {
332
+ ...i,
333
+ "aria-labelledby": `${o} ${s}`,
334
+ className: d(N("root"), e),
335
+ "data-rly-agent-proposal-id": a.id,
336
+ children: [
337
+ /* @__PURE__ */ k("header", {
338
+ className: N("header"),
339
+ children: [/* @__PURE__ */ k("div", {
340
+ className: N("agentIdentity"),
341
+ children: [/* @__PURE__ */ O(S, {
342
+ decorative: !0,
343
+ fallback: a.agent.avatarFallback,
344
+ form: "rounded-square",
345
+ ...a.agent.avatarSrc === void 0 ? {} : { src: a.agent.avatarSrc }
346
+ }), /* @__PURE__ */ k("div", {
347
+ className: N("agentText"),
348
+ children: [
349
+ /* @__PURE__ */ O("p", {
350
+ className: N("eyebrow"),
351
+ children: "Agent proposal"
352
+ }),
353
+ /* @__PURE__ */ O("h2", {
354
+ className: N("heading"),
355
+ id: o,
356
+ children: a.agent.name
357
+ }),
358
+ /* @__PURE__ */ O("p", {
359
+ className: N("agentRole"),
360
+ children: a.agent.role
361
+ }),
362
+ /* @__PURE__ */ O("code", {
363
+ className: N("proposalReference"),
364
+ id: s,
365
+ children: a.id
366
+ })
367
+ ]
368
+ })]
369
+ }), /* @__PURE__ */ O("div", {
370
+ className: N("state"),
371
+ "data-rly-agent-proposal-slot": "state",
372
+ children: r
373
+ })]
374
+ }),
375
+ /* @__PURE__ */ O("p", {
376
+ className: N("boundary"),
377
+ children: "This is an agent proposal. It is not human authorization."
378
+ }),
379
+ /* @__PURE__ */ k("p", {
380
+ className: N("context"),
381
+ children: [/* @__PURE__ */ O("span", { children: "Context" }), a.context]
382
+ }),
383
+ /* @__PURE__ */ k("dl", {
384
+ className: N("facts"),
385
+ children: [
386
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Capability" }), /* @__PURE__ */ O("dd", { children: a.capability })] }),
387
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Target" }), /* @__PURE__ */ O("dd", { children: a.target })] }),
388
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Expected revision" }), /* @__PURE__ */ O("dd", { children: a.expectedRevision })] }),
389
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Impact" }), /* @__PURE__ */ O("dd", { children: a.impact })] })
390
+ ]
391
+ }),
392
+ /* @__PURE__ */ k("div", {
393
+ className: N("evidence"),
394
+ "data-rly-agent-proposal-evidence": "",
395
+ children: [/* @__PURE__ */ O("h3", { children: "Evidence" }), /* @__PURE__ */ O("ul", { children: a.evidence.map((e) => /* @__PURE__ */ k("li", { children: [/* @__PURE__ */ O("span", { children: e.label }), /* @__PURE__ */ O("code", { children: e.reference })] }, e.id)) })]
396
+ }),
397
+ /* @__PURE__ */ k("div", {
398
+ className: N("outcome"),
399
+ "data-rly-agent-proposal-slot": "outcome",
400
+ children: [/* @__PURE__ */ O("h3", { children: "Outcome" }), t]
401
+ })
402
+ ]
403
+ });
404
+ }, Ee = {
405
+ root: "rly_AgentThread-module__root",
406
+ header: "rly_AgentThread-module__header",
407
+ messageHead: "rly_AgentThread-module__messageHead",
408
+ actor: "rly_AgentThread-module__actor",
409
+ actions: "rly_AgentThread-module__actions",
410
+ agentGlyph: "rly_AgentThread-module__agentGlyph",
411
+ avatar: "rly_AgentThread-module__avatar",
412
+ context: "rly_AgentThread-module__context",
413
+ composer: "rly_AgentThread-module__composer",
414
+ conceptLabel: "rly_AgentThread-module__conceptLabel",
415
+ messages: "rly_AgentThread-module__messages",
416
+ message: "rly_AgentThread-module__message",
417
+ agent: "rly_AgentThread-module__agent",
418
+ human: "rly_AgentThread-module__human",
419
+ system: "rly_AgentThread-module__system",
420
+ actorText: "rly_AgentThread-module__actorText",
421
+ empty: "rly_AgentThread-module__empty",
422
+ content: "rly_AgentThread-module__content",
423
+ evidence: "rly_AgentThread-module__evidence",
424
+ visuallyHidden: "rly_AgentThread-module__visuallyHidden"
425
+ }, P = (e) => c(Ee, e), De = (e, t) => {
426
+ if (e == null || i(e)) throw Error(`${t} must contain renderable content`);
427
+ s(e) && o(e, t);
428
+ }, Oe = (e) => {
429
+ let t = e.trim().split(/\s+/u), n = Array.from(t[0] ?? "")[0] ?? "", r = Array.from(t[t.length - 1] ?? "")[0] ?? "";
430
+ return o(`${n}${t.length > 1 ? r : ""}`, "AgentThread actor fallback");
431
+ }, ke = (e) => {
432
+ if (e.kind === "human") {
433
+ o(e.person.id, "AgentThread human id"), o(e.person.name, "AgentThread human name"), o(e.person.role, "AgentThread human role"), e.person.avatarFallback !== void 0 && o(e.person.avatarFallback, "AgentThread human avatarFallback"), e.person.avatarSrc !== void 0 && o(e.person.avatarSrc, "AgentThread human avatarSrc");
434
+ return;
435
+ }
436
+ o(e.id, `AgentThread ${e.kind} id`), o(e.name, `AgentThread ${e.kind} name`), e.kind === "agent" && (o(e.role, "AgentThread agent role"), e.avatarFallback !== void 0 && o(e.avatarFallback, "AgentThread agent avatarFallback"));
437
+ }, Ae = (e) => {
438
+ let t = e.kind === "human" ? e.person.name : e.name, n = e.kind === "human" ? e.person.role : e.kind === "agent" ? e.role : "System event", r = e.kind === "human" ? e.person.avatarFallback ?? Oe(t) : e.kind === "agent" ? e.avatarFallback ?? Oe(t) : "·", i = e.kind === "human" ? e.person.avatarSrc : void 0;
439
+ return /* @__PURE__ */ k("div", {
440
+ className: d(P("actor"), P(e.kind)),
441
+ "data-rly-agent-thread-actor": e.kind,
442
+ children: [/* @__PURE__ */ O(S, {
443
+ className: P("avatar"),
444
+ "data-rly-agent-thread-avatar-form": e.kind === "human" ? "circle" : "rounded-square",
445
+ decorative: !0,
446
+ fallback: r,
447
+ form: e.kind === "human" ? "circle" : "rounded-square",
448
+ size: "default",
449
+ ...i === void 0 ? {} : { src: i }
450
+ }), /* @__PURE__ */ k("span", {
451
+ className: P("actorText"),
452
+ children: [/* @__PURE__ */ O("strong", { children: t }), /* @__PURE__ */ O("span", { children: n })]
453
+ })]
454
+ });
455
+ }, je = ({ announcement: e, className: t, composer: n, context: r, emptyLabel: i = "No messages yet.", heading: a, messages: s, ...c }) => {
456
+ let l = o(a, "AgentThread heading"), u = o(i, "AgentThread emptyLabel");
457
+ De(r, "AgentThread context"), De(n, "AgentThread composer"), e !== void 0 && o(e, "AgentThread announcement");
458
+ let f = /* @__PURE__ */ new Set();
459
+ for (let e of s) {
460
+ let t = o(e.id, "AgentThread message id");
461
+ if (f.has(t)) throw Error(`AgentThread message ids must be unique: ${t}`);
462
+ f.add(t), ke(e.actor), De(e.content, `AgentThread message content for ${t}`), o(e.dateTime, `AgentThread message dateTime for ${t}`), o(e.time, `AgentThread message time for ${t}`);
463
+ }
464
+ return /* @__PURE__ */ k("section", {
465
+ ...c,
466
+ className: d(P("root"), t),
467
+ "data-rly-agent-thread": "",
468
+ children: [
469
+ /* @__PURE__ */ k("header", {
470
+ className: P("header"),
471
+ children: [/* @__PURE__ */ O("span", {
472
+ "aria-hidden": "true",
473
+ className: P("agentGlyph"),
474
+ children: "AI"
475
+ }), /* @__PURE__ */ O("h2", { children: l })]
476
+ }),
477
+ /* @__PURE__ */ k("div", {
478
+ className: P("context"),
479
+ "data-rly-agent-thread-context": "",
480
+ children: [/* @__PURE__ */ O("span", {
481
+ className: P("conceptLabel"),
482
+ children: "Exact context"
483
+ }), r]
484
+ }),
485
+ s.length === 0 ? /* @__PURE__ */ O("p", {
486
+ className: P("empty"),
487
+ children: u
488
+ }) : /* @__PURE__ */ O("ol", {
489
+ "aria-label": `${l} messages`,
490
+ className: P("messages"),
491
+ children: s.map((e) => /* @__PURE__ */ k("li", {
492
+ className: P("message"),
493
+ "data-rly-agent-thread-message": e.id,
494
+ children: [
495
+ /* @__PURE__ */ k("div", {
496
+ className: P("messageHead"),
497
+ children: [Ae(e.actor), /* @__PURE__ */ O("time", {
498
+ dateTime: e.dateTime,
499
+ children: e.time
500
+ })]
501
+ }),
502
+ /* @__PURE__ */ O("div", {
503
+ className: P("content"),
504
+ children: e.content
505
+ }),
506
+ e.evidence === void 0 ? null : /* @__PURE__ */ O("div", {
507
+ className: P("evidence"),
508
+ "data-rly-agent-thread-evidence": "",
509
+ children: e.evidence
510
+ }),
511
+ e.actions === void 0 ? null : /* @__PURE__ */ O("div", {
512
+ className: P("actions"),
513
+ "data-rly-agent-thread-actions": "",
514
+ children: e.actions
515
+ })
516
+ ]
517
+ }, e.id))
518
+ }),
519
+ /* @__PURE__ */ O("p", {
520
+ "aria-atomic": "true",
521
+ "aria-live": "polite",
522
+ className: P("visuallyHidden"),
523
+ children: e
524
+ }),
525
+ /* @__PURE__ */ O("div", {
526
+ className: P("composer"),
527
+ "data-rly-agent-thread-composer": "",
528
+ children: n
529
+ })
530
+ ]
531
+ });
532
+ }, Me = {
533
+ root: "rly_Person-module__root",
534
+ compact: "rly_Person-module__compact",
535
+ defaultSize: "rly_Person-module__defaultSize",
536
+ identity: "rly_Person-module__identity",
537
+ name: "rly_Person-module__name",
538
+ role: "rly_Person-module__role"
539
+ }, Ne = (e) => c(Me, e), Pe = l({ size: {
540
+ compact: {
541
+ className: Ne("compact"),
542
+ purpose: "Dense identity row with complete attribution",
543
+ tokens: ["space-24", "type-meta"]
544
+ },
545
+ default: {
546
+ className: Ne("defaultSize"),
547
+ purpose: "Standard identity row with complete attribution",
548
+ tokens: [
549
+ "space-32",
550
+ "type-label",
551
+ "type-meta"
552
+ ]
553
+ }
554
+ } }), Fe = l({ size: "default" }), Ie = (e) => {
555
+ let t = e.trim().split(/\s+/u), n = t[0] ?? "", r = t[t.length - 1] ?? n, i = Array.from(n), a = i[0] ?? "", s = t.length > 1 ? Array.from(r)[0] ?? "" : i[1] ?? "";
556
+ return o(`${a}${s}`, "Person avatar fallback");
557
+ }, Le = (e) => (o(e.id, "Person id"), o(e.name, "Person name"), o(e.role, "Person role"), e.avatarFallback !== void 0 && o(e.avatarFallback, "Person avatarFallback"), e.avatarSrc !== void 0 && o(e.avatarSrc, "Person avatarSrc"), e), F = ({ className: e, person: t, size: n = "default", ...r }) => {
558
+ let i = Le(t), a = i.avatarFallback ?? Ie(i.name);
559
+ return /* @__PURE__ */ k("div", {
560
+ ...r,
561
+ className: d(Ne("root"), Pe.size[n].className, e),
562
+ "data-rly-person-size": n,
563
+ children: [/* @__PURE__ */ O(S, {
564
+ decorative: !0,
565
+ fallback: a,
566
+ size: n === "compact" ? "small" : "default",
567
+ ...i.avatarSrc === void 0 ? {} : { src: i.avatarSrc }
568
+ }), /* @__PURE__ */ k("span", {
569
+ className: Ne("identity"),
570
+ children: [/* @__PURE__ */ O("span", {
571
+ className: Ne("name"),
572
+ children: i.name
573
+ }), /* @__PURE__ */ O("span", {
574
+ className: Ne("role"),
575
+ children: i.role
576
+ })]
577
+ })]
578
+ });
579
+ }, Re = {
580
+ root: "rly_PeopleStrip-module__root",
581
+ compact: "rly_PeopleStrip-module__compact",
582
+ defaultSize: "rly_PeopleStrip-module__defaultSize",
583
+ personItem: "rly_PeopleStrip-module__personItem",
584
+ controlItem: "rly_PeopleStrip-module__controlItem",
585
+ overflow: "rly_PeopleStrip-module__overflow"
586
+ }, ze = (e) => c(Re, e), Be = l({ size: {
587
+ compact: {
588
+ className: ze("compact"),
589
+ purpose: "Dense attributed people list for narrow surfaces",
590
+ tokens: ["space-8", "space-40"]
591
+ },
592
+ default: {
593
+ className: ze("defaultSize"),
594
+ purpose: "Standard attributed people list",
595
+ tokens: ["space-12", "space-40"]
596
+ }
597
+ } }), Ve = l({ size: "default" }), He = (e) => {
598
+ if (!Number.isInteger(e) || e < 1) throw Error("PeopleStrip limit must be a positive integer");
599
+ return e;
600
+ }, Ue = (e) => {
601
+ let t = /* @__PURE__ */ new Set();
602
+ for (let n of e) {
603
+ let e = o(n.id, "PeopleStrip person id");
604
+ if (o(n.name, `PeopleStrip name for ${e}`), o(n.role, `PeopleStrip role for ${e}`), t.has(e)) throw Error(`PeopleStrip person ids must be unique: ${e}`);
605
+ t.add(e);
606
+ }
607
+ }, We = ({ "aria-label": e, className: t, expanded: n, limit: r = 3, onExpandedChange: i, people: a, size: s = "default", ...c }) => {
608
+ let l = o(e, "PeopleStrip aria-label"), u = He(r);
609
+ Ue(a);
610
+ let f = Math.max(a.length - u, 0), p = n ? a : a.slice(0, u);
611
+ return /* @__PURE__ */ k("ul", {
612
+ ...c,
613
+ "aria-label": l,
614
+ className: d(ze("root"), Be.size[s].className, t),
615
+ "data-rly-people-strip-size": s,
616
+ children: [p.map((e) => /* @__PURE__ */ O("li", {
617
+ className: ze("personItem"),
618
+ children: /* @__PURE__ */ O(F, {
619
+ person: e,
620
+ size: s
621
+ })
622
+ }, e.id)), f === 0 ? null : /* @__PURE__ */ O("li", {
623
+ className: ze("controlItem"),
624
+ children: /* @__PURE__ */ O("button", {
625
+ "aria-expanded": n,
626
+ "aria-label": n ? "Show fewer people" : `Show ${f} more people`,
627
+ className: ze("overflow"),
628
+ onClick: () => i(!n),
629
+ type: "button",
630
+ children: n ? "Show fewer" : `+${f} people`
631
+ })
632
+ })]
633
+ });
634
+ }, Ge = {
635
+ root: "rly_CollaboratorGroup-module__root",
636
+ compact: "rly_CollaboratorGroup-module__compact",
637
+ defaultSize: "rly_CollaboratorGroup-module__defaultSize",
638
+ heading: "rly_CollaboratorGroup-module__heading",
639
+ lanes: "rly_CollaboratorGroup-module__lanes",
640
+ lane: "rly_CollaboratorGroup-module__lane",
641
+ laneHeading: "rly_CollaboratorGroup-module__laneHeading",
642
+ empty: "rly_CollaboratorGroup-module__empty"
643
+ }, I = (e) => c(Ge, e), Ke = l({ size: {
644
+ compact: {
645
+ className: I("compact"),
646
+ purpose: "Narrow entity attribution with explicit role lanes",
647
+ tokens: ["space-12", "type-label"]
648
+ },
649
+ default: {
650
+ className: I("defaultSize"),
651
+ purpose: "Standard entity attribution with explicit role lanes",
652
+ tokens: ["space-20", "type-card-title"]
653
+ }
654
+ } }), qe = l({ size: "default" }), Je = ({ approvers: e = [], authors: t = [], className: n, emptyLabel: r = "No collaborators assigned.", expandedCategories: i, heading: a, limit: s = 3, onCategoryExpandedChange: c, operators: l = [], owners: u = [], reviewers: f = [], size: p = "default", ...m }) => {
655
+ let h = o(a, "CollaboratorGroup heading"), g = o(r, "CollaboratorGroup emptyLabel"), _ = `rly-collaborators-${E()}`, v = new Set(i), y = [
656
+ {
657
+ category: "authors",
658
+ label: "Authors",
659
+ people: t
660
+ },
661
+ {
662
+ category: "owners",
663
+ label: "Owners",
664
+ people: u
665
+ },
666
+ {
667
+ category: "reviewers",
668
+ label: "Reviewers",
669
+ people: f
670
+ },
671
+ {
672
+ category: "operators",
673
+ label: "Operators",
674
+ people: l
675
+ },
676
+ {
677
+ category: "approvers",
678
+ label: "Approvers",
679
+ people: e
680
+ }
681
+ ].filter((e) => e.people.length > 0);
682
+ return /* @__PURE__ */ k("section", {
683
+ ...m,
684
+ "aria-labelledby": _,
685
+ className: d(I("root"), Ke.size[p].className, n),
686
+ "data-rly-collaborator-group-size": p,
687
+ children: [/* @__PURE__ */ O("h2", {
688
+ className: I("heading"),
689
+ id: _,
690
+ children: h
691
+ }), y.length === 0 ? /* @__PURE__ */ O("p", {
692
+ className: I("empty"),
693
+ children: g
694
+ }) : /* @__PURE__ */ O("div", {
695
+ className: I("lanes"),
696
+ children: y.map((e) => /* @__PURE__ */ k("section", {
697
+ className: I("lane"),
698
+ children: [/* @__PURE__ */ O("h3", {
699
+ className: I("laneHeading"),
700
+ children: e.label
701
+ }), /* @__PURE__ */ O(We, {
702
+ "aria-label": `${h}: ${e.label}`,
703
+ expanded: v.has(e.category),
704
+ limit: s,
705
+ onExpandedChange: (t) => c(e.category, t),
706
+ people: e.people,
707
+ size: p
708
+ })]
709
+ }, e.category))
710
+ })]
711
+ });
712
+ }, Ye = {
713
+ root: "rly_FreshnessStamp-module__root",
714
+ stateWord: "rly_FreshnessStamp-module__stateWord",
715
+ separator: "rly_FreshnessStamp-module__separator",
716
+ time: "rly_FreshnessStamp-module__time",
717
+ compact: "rly_FreshnessStamp-module__compact",
718
+ defaultSize: "rly_FreshnessStamp-module__defaultSize",
719
+ current: "rly_FreshnessStamp-module__current",
720
+ cached: "rly_FreshnessStamp-module__cached",
721
+ missing: "rly_FreshnessStamp-module__missing",
722
+ stale: "rly_FreshnessStamp-module__stale",
723
+ unavailable: "rly_FreshnessStamp-module__unavailable"
724
+ }, L = (e) => c(Ye, e), Xe = l({
725
+ state: {
726
+ current: {
727
+ className: L("current"),
728
+ purpose: "Current source observation",
729
+ tokens: ["color-success-ink", "color-success-tint"]
730
+ },
731
+ cached: {
732
+ className: L("cached"),
733
+ purpose: "Valid cached source observation",
734
+ tokens: ["color-text-2", "color-surface-2"]
735
+ },
736
+ stale: {
737
+ className: L("stale"),
738
+ purpose: "Source observation beyond its supplied freshness threshold",
739
+ tokens: ["color-held-ink", "color-held-tint"]
740
+ },
741
+ missing: {
742
+ className: L("missing"),
743
+ purpose: "Provider authoritatively reported no object",
744
+ tokens: ["color-text-2", "color-surface-2"]
745
+ },
746
+ unavailable: {
747
+ className: L("unavailable"),
748
+ purpose: "No valid source observation is available",
749
+ tokens: ["color-blocked-ink", "color-blocked-tint"]
750
+ }
751
+ },
752
+ size: {
753
+ compact: {
754
+ className: L("compact"),
755
+ purpose: "Dense freshness metadata",
756
+ tokens: ["type-meta"]
757
+ },
758
+ default: {
759
+ className: L("defaultSize"),
760
+ purpose: "Standard freshness metadata",
761
+ tokens: ["type-label", "type-meta"]
762
+ }
763
+ }
764
+ }), Ze = l({ size: "default" }), Qe = {
765
+ current: "Current",
766
+ cached: "Cached",
767
+ stale: "Stale",
768
+ missing: "Missing",
769
+ unavailable: "Unavailable"
770
+ }, $e = {
771
+ current: "check",
772
+ cached: "clock",
773
+ stale: "clock",
774
+ missing: "minus",
775
+ unavailable: "alert"
776
+ }, R = ({ className: t, dateTime: n, size: r = "default", state: i, time: a, ...s }) => {
777
+ let c = a === void 0 ? void 0 : o(a, "FreshnessStamp time"), l = n === void 0 ? void 0 : o(n, "FreshnessStamp dateTime");
778
+ return /* @__PURE__ */ k("span", {
779
+ ...s,
780
+ className: d(L("root"), Xe.state[i].className, Xe.size[r].className, t),
781
+ "data-rly-freshness-state": i,
782
+ children: [/* @__PURE__ */ k("span", {
783
+ className: L("stateWord"),
784
+ children: [/* @__PURE__ */ O(e, {
785
+ decorative: !0,
786
+ name: $e[i],
787
+ size: "small"
788
+ }), /* @__PURE__ */ O("span", { children: Qe[i] })]
789
+ }), c === void 0 || l === void 0 ? null : /* @__PURE__ */ k(le, { children: [/* @__PURE__ */ O("span", {
790
+ "aria-hidden": "true",
791
+ className: L("separator"),
792
+ children: "·"
793
+ }), /* @__PURE__ */ O("time", {
794
+ className: L("time"),
795
+ dateTime: l,
796
+ children: c
797
+ })] })]
798
+ });
799
+ }, et = {
800
+ root: "rly_ServiceMark-module__root",
801
+ rail: "rly_ServiceMark-module__rail",
802
+ glyph: "rly_ServiceMark-module__glyph",
803
+ name: "rly_ServiceMark-module__name",
804
+ compact: "rly_ServiceMark-module__compact",
805
+ defaultSize: "rly_ServiceMark-module__defaultSize",
806
+ codecommit: "rly_ServiceMark-module__codecommit",
807
+ codepipeline: "rly_ServiceMark-module__codepipeline",
808
+ jira: "rly_ServiceMark-module__jira",
809
+ confluence: "rly_ServiceMark-module__confluence",
810
+ clockify: "rly_ServiceMark-module__clockify"
811
+ }, z = (e) => c(et, e), tt = l({
812
+ service: {
813
+ codecommit: {
814
+ className: z("codecommit"),
815
+ purpose: "CodeCommit provenance",
816
+ tokens: ["color-service-codecommit"]
817
+ },
818
+ codepipeline: {
819
+ className: z("codepipeline"),
820
+ purpose: "CodePipeline provenance",
821
+ tokens: ["color-service-codepipeline"]
822
+ },
823
+ jira: {
824
+ className: z("jira"),
825
+ purpose: "Jira provenance",
826
+ tokens: ["color-service-jira"]
827
+ },
828
+ confluence: {
829
+ className: z("confluence"),
830
+ purpose: "Confluence provenance",
831
+ tokens: ["color-service-confluence"]
832
+ },
833
+ clockify: {
834
+ className: z("clockify"),
835
+ purpose: "Clockify provenance",
836
+ tokens: ["color-service-clockify"]
837
+ }
838
+ },
839
+ size: {
840
+ compact: {
841
+ className: z("compact"),
842
+ purpose: "Dense provenance metadata",
843
+ tokens: ["space-24", "type-meta"]
844
+ },
845
+ default: {
846
+ className: z("defaultSize"),
847
+ purpose: "Standard provenance identity",
848
+ tokens: ["space-32", "type-label"]
849
+ }
850
+ }
851
+ }), nt = l({ size: "default" }), rt = {
852
+ codecommit: "CodeCommit",
853
+ codepipeline: "CodePipeline",
854
+ jira: "Jira",
855
+ confluence: "Confluence",
856
+ clockify: "Clockify"
857
+ }, it = {
858
+ codecommit: () => /* @__PURE__ */ k("svg", {
859
+ "aria-hidden": "true",
860
+ className: z("glyph"),
861
+ focusable: "false",
862
+ viewBox: "0 0 24 24",
863
+ children: [
864
+ /* @__PURE__ */ O("path", {
865
+ d: "M6 5.5h7.5a3 3 0 0 1 3 3v7",
866
+ fill: "none",
867
+ stroke: "currentColor",
868
+ strokeLinecap: "round",
869
+ strokeWidth: "1.8"
870
+ }),
871
+ /* @__PURE__ */ O("circle", {
872
+ cx: "6",
873
+ cy: "5.5",
874
+ fill: "currentColor",
875
+ r: "2"
876
+ }),
877
+ /* @__PURE__ */ O("circle", {
878
+ cx: "16.5",
879
+ cy: "17.5",
880
+ fill: "currentColor",
881
+ r: "2"
882
+ }),
883
+ /* @__PURE__ */ O("path", {
884
+ d: "m10 12 2-2 2 2-2 2Z",
885
+ fill: "none",
886
+ stroke: "currentColor",
887
+ strokeLinejoin: "round",
888
+ strokeWidth: "1.6"
889
+ })
890
+ ]
891
+ }),
892
+ codepipeline: () => /* @__PURE__ */ k("svg", {
893
+ "aria-hidden": "true",
894
+ className: z("glyph"),
895
+ focusable: "false",
896
+ viewBox: "0 0 24 24",
897
+ children: [
898
+ /* @__PURE__ */ O("rect", {
899
+ fill: "none",
900
+ height: "5",
901
+ rx: "1",
902
+ stroke: "currentColor",
903
+ strokeWidth: "1.7",
904
+ width: "5",
905
+ x: "2.5",
906
+ y: "9.5"
907
+ }),
908
+ /* @__PURE__ */ O("rect", {
909
+ fill: "none",
910
+ height: "5",
911
+ rx: "1",
912
+ stroke: "currentColor",
913
+ strokeWidth: "1.7",
914
+ width: "5",
915
+ x: "16.5",
916
+ y: "9.5"
917
+ }),
918
+ /* @__PURE__ */ O("path", {
919
+ d: "M8 12h7m-2.5-2.5L15 12l-2.5 2.5",
920
+ fill: "none",
921
+ stroke: "currentColor",
922
+ strokeLinecap: "round",
923
+ strokeLinejoin: "round",
924
+ strokeWidth: "1.8"
925
+ })
926
+ ]
927
+ }),
928
+ jira: () => /* @__PURE__ */ k("svg", {
929
+ "aria-hidden": "true",
930
+ className: z("glyph"),
931
+ focusable: "false",
932
+ viewBox: "0 0 24 24",
933
+ children: [
934
+ /* @__PURE__ */ O("path", {
935
+ d: "m12 2.8 8.8 8.8a.6.6 0 0 1 0 .8L12 21.2l-8.8-8.8a.6.6 0 0 1 0-.8Z",
936
+ fill: "currentColor"
937
+ }),
938
+ /* @__PURE__ */ O("path", {
939
+ d: "m12 7.2 4.8 4.8-4.8 4.8L7.2 12Z",
940
+ fill: "var(--rly-color-surface-1)"
941
+ }),
942
+ /* @__PURE__ */ O("path", {
943
+ d: "m12 9.8 2.2 2.2-2.2 2.2L9.8 12Z",
944
+ fill: "currentColor"
945
+ })
946
+ ]
947
+ }),
948
+ confluence: () => /* @__PURE__ */ k("svg", {
949
+ "aria-hidden": "true",
950
+ className: z("glyph"),
951
+ focusable: "false",
952
+ viewBox: "0 0 24 24",
953
+ children: [/* @__PURE__ */ O("path", {
954
+ d: "M4 7.2c3.6 2.1 6.8 2.4 9.6.9L17 6.3l2.7 4.3-3.4 1.8c-4.6 2.4-9.5 1.8-14-1.5Z",
955
+ fill: "currentColor"
956
+ }), /* @__PURE__ */ O("path", {
957
+ d: "M20 16.8c-3.6-2.1-6.8-2.4-9.6-.9L7 17.7l-2.7-4.3 3.4-1.8c4.6-2.4 9.5-1.8 14 1.5Z",
958
+ fill: "currentColor"
959
+ })]
960
+ }),
961
+ clockify: () => /* @__PURE__ */ k("svg", {
962
+ "aria-hidden": "true",
963
+ className: z("glyph"),
964
+ focusable: "false",
965
+ viewBox: "0 0 24 24",
966
+ children: [/* @__PURE__ */ O("circle", {
967
+ cx: "11",
968
+ cy: "13",
969
+ fill: "none",
970
+ r: "7",
971
+ stroke: "currentColor",
972
+ strokeWidth: "1.8"
973
+ }), /* @__PURE__ */ O("path", {
974
+ d: "M11 9v4l3 2m1.5-10.7 1.8-1.8M18 7l2-2",
975
+ fill: "none",
976
+ stroke: "currentColor",
977
+ strokeLinecap: "round",
978
+ strokeWidth: "1.8"
979
+ })]
980
+ })
981
+ }, B = ({ className: e, service: t, size: n = "default", ...r }) => {
982
+ let i = it[t], a = rt[t];
983
+ return /* @__PURE__ */ k("span", {
984
+ ...r,
985
+ "aria-label": a,
986
+ className: d(z("root"), tt.service[t].className, tt.size[n].className, e),
987
+ "data-rly-service": t,
988
+ role: "img",
989
+ children: [
990
+ /* @__PURE__ */ O("span", {
991
+ "aria-hidden": "true",
992
+ className: z("rail")
993
+ }),
994
+ /* @__PURE__ */ O(i, {}),
995
+ /* @__PURE__ */ O("span", {
996
+ "aria-hidden": "true",
997
+ className: z("name"),
998
+ children: a
999
+ })
1000
+ ]
1001
+ });
1002
+ }, at = {
1003
+ root: "rly_Verdict-module__root",
1004
+ verdict: "rly_Verdict-module__verdict",
1005
+ caution: "rly_Verdict-module__caution",
1006
+ critical: "rly_Verdict-module__critical",
1007
+ neutral: "rly_Verdict-module__neutral",
1008
+ positive: "rly_Verdict-module__positive",
1009
+ progress: "rly_Verdict-module__progress",
1010
+ reasonPanel: "rly_Verdict-module__reasonPanel",
1011
+ icon: "rly_Verdict-module__icon",
1012
+ reason: "rly_Verdict-module__reason"
1013
+ }, V = (e) => c(at, e), ot = l({ tone: {
1014
+ caution: {
1015
+ className: V("caution"),
1016
+ purpose: "Intentional hold or caution requiring attention",
1017
+ tokens: ["color-held-ink", "color-held-tint"]
1018
+ },
1019
+ critical: {
1020
+ className: V("critical"),
1021
+ purpose: "Explicit blocker or failed prerequisite",
1022
+ tokens: ["color-blocked-ink", "color-blocked-tint"]
1023
+ },
1024
+ neutral: {
1025
+ className: V("neutral"),
1026
+ purpose: "Neutral, missing, or unavailable outcome",
1027
+ tokens: ["color-text-2", "color-surface-2"]
1028
+ },
1029
+ positive: {
1030
+ className: V("positive"),
1031
+ purpose: "Satisfied readiness or successful outcome",
1032
+ tokens: ["color-success-ink", "color-success-tint"]
1033
+ },
1034
+ progress: {
1035
+ className: V("progress"),
1036
+ purpose: "Active work or delivery progress",
1037
+ tokens: ["color-deploying-ink", "color-deploying-tint"]
1038
+ }
1039
+ } }), st = {
1040
+ caution: "clock",
1041
+ critical: "alert",
1042
+ neutral: "minus",
1043
+ positive: "check",
1044
+ progress: "loader"
1045
+ }, ct = ({ className: t, reason: n, tone: r, verdict: i, ...a }) => {
1046
+ let s = o(n, "Verdict reason"), c = o(i, "Verdict verdict");
1047
+ return /* @__PURE__ */ k("section", {
1048
+ ...a,
1049
+ className: d(V("root"), ot.tone[r].className, t),
1050
+ "data-rly-verdict-tone": r,
1051
+ children: [/* @__PURE__ */ O("h2", {
1052
+ className: V("verdict"),
1053
+ children: c
1054
+ }), /* @__PURE__ */ k("div", {
1055
+ className: V("reasonPanel"),
1056
+ children: [/* @__PURE__ */ O("span", {
1057
+ "aria-hidden": "true",
1058
+ className: V("icon"),
1059
+ children: /* @__PURE__ */ O(e, {
1060
+ decorative: !0,
1061
+ name: st[r],
1062
+ size: "large"
1063
+ })
1064
+ }), /* @__PURE__ */ O("p", {
1065
+ className: V("reason"),
1066
+ children: s
1067
+ })]
1068
+ })]
1069
+ });
1070
+ }, lt = {
1071
+ root: "rly_EntityShell-module__root",
1072
+ navigation: "rly_EntityShell-module__navigation",
1073
+ header: "rly_EntityShell-module__header",
1074
+ identity: "rly_EntityShell-module__identity",
1075
+ title: "rly_EntityShell-module__title",
1076
+ hero: "rly_EntityShell-module__hero",
1077
+ body: "rly_EntityShell-module__body",
1078
+ headerAside: "rly_EntityShell-module__headerAside",
1079
+ freshness: "rly_EntityShell-module__freshness",
1080
+ headerSlot: "rly_EntityShell-module__headerSlot",
1081
+ slotLabel: "rly_EntityShell-module__slotLabel",
1082
+ content: "rly_EntityShell-module__content",
1083
+ relationships: "rly_EntityShell-module__relationships",
1084
+ activity: "rly_EntityShell-module__activity",
1085
+ asideSlot: "rly_EntityShell-module__asideSlot",
1086
+ aside: "rly_EntityShell-module__aside"
1087
+ }, H = (e) => c(lt, e), ut = ({ actions: e, activity: t, agentEntry: n, className: r, collaborators: i, content: a, evidence: s, facts: c, freshness: l, freshnessDateTime: u, freshnessTime: f, navigation: p, reason: m, relationships: h, service: g, title: _, tone: v, verdict: y, ...b }) => {
1088
+ let x = o(_, "EntityShell title");
1089
+ if (u === void 0 != (f === void 0)) throw Error("EntityShell freshnessDateTime and freshnessTime must be supplied together");
1090
+ let S = `rly-entity-shell-${E()}`;
1091
+ return /* @__PURE__ */ k("article", {
1092
+ ...b,
1093
+ "aria-labelledby": S,
1094
+ className: d(H("root"), r),
1095
+ "data-rly-entity-shell": "",
1096
+ children: [
1097
+ p === void 0 ? null : /* @__PURE__ */ O("nav", {
1098
+ "aria-label": `${x} navigation`,
1099
+ className: H("navigation"),
1100
+ "data-rly-entity-shell-slot": "navigation",
1101
+ children: p
1102
+ }),
1103
+ /* @__PURE__ */ k("header", {
1104
+ className: H("header"),
1105
+ children: [/* @__PURE__ */ k("div", {
1106
+ className: H("identity"),
1107
+ children: [/* @__PURE__ */ O(B, { service: g }), /* @__PURE__ */ O("h1", {
1108
+ className: H("title"),
1109
+ id: S,
1110
+ children: x
1111
+ })]
1112
+ }), /* @__PURE__ */ k("div", {
1113
+ className: H("hero"),
1114
+ children: [/* @__PURE__ */ O(ct, {
1115
+ reason: m,
1116
+ tone: v,
1117
+ verdict: y
1118
+ }), /* @__PURE__ */ k("div", {
1119
+ className: H("headerAside"),
1120
+ children: [
1121
+ /* @__PURE__ */ k("div", {
1122
+ className: H("freshness"),
1123
+ "data-rly-entity-shell-slot": "freshness",
1124
+ children: [/* @__PURE__ */ O("span", {
1125
+ className: H("slotLabel"),
1126
+ children: "Freshness"
1127
+ }), u === void 0 || f === void 0 ? /* @__PURE__ */ O(R, { state: l }) : /* @__PURE__ */ O(R, {
1128
+ dateTime: u,
1129
+ state: l,
1130
+ time: f
1131
+ })]
1132
+ }),
1133
+ /* @__PURE__ */ O("div", {
1134
+ className: H("headerSlot"),
1135
+ "data-rly-entity-shell-slot": "actions",
1136
+ children: e
1137
+ }),
1138
+ /* @__PURE__ */ O("div", {
1139
+ className: H("headerSlot"),
1140
+ "data-rly-entity-shell-slot": "agent-entry",
1141
+ children: n
1142
+ })
1143
+ ]
1144
+ })]
1145
+ })]
1146
+ }),
1147
+ /* @__PURE__ */ k("div", {
1148
+ className: H("body"),
1149
+ children: [/* @__PURE__ */ O("section", {
1150
+ className: H("content"),
1151
+ "data-rly-entity-shell-slot": "content",
1152
+ children: a
1153
+ }), /* @__PURE__ */ k("aside", {
1154
+ className: H("aside"),
1155
+ children: [
1156
+ c === void 0 ? null : /* @__PURE__ */ O("section", {
1157
+ className: H("asideSlot"),
1158
+ "data-rly-entity-shell-slot": "facts",
1159
+ children: c
1160
+ }),
1161
+ s === void 0 ? null : /* @__PURE__ */ O("section", {
1162
+ className: H("asideSlot"),
1163
+ "data-rly-entity-shell-slot": "evidence",
1164
+ children: s
1165
+ }),
1166
+ /* @__PURE__ */ O("section", {
1167
+ className: H("asideSlot"),
1168
+ "data-rly-entity-shell-slot": "collaborators",
1169
+ children: i
1170
+ })
1171
+ ]
1172
+ })]
1173
+ }),
1174
+ /* @__PURE__ */ O("section", {
1175
+ className: H("relationships"),
1176
+ "data-rly-entity-shell-slot": "relationships",
1177
+ children: h
1178
+ }),
1179
+ t === void 0 ? null : /* @__PURE__ */ O("section", {
1180
+ className: H("activity"),
1181
+ "data-rly-entity-shell-slot": "activity",
1182
+ children: t
1183
+ })
1184
+ ]
1185
+ });
1186
+ }, dt = {
1187
+ root: "rly_EntityTable-module__root",
1188
+ heading: "rly_EntityTable-module__heading",
1189
+ loading: "rly_EntityTable-module__loading",
1190
+ stateLabel: "rly_EntityTable-module__stateLabel",
1191
+ table: "rly_EntityTable-module__table",
1192
+ head: "rly_EntityTable-module__head",
1193
+ sortControls: "rly_EntityTable-module__sortControls",
1194
+ sortLabel: "rly_EntityTable-module__sortLabel",
1195
+ sortButton: "rly_EntityTable-module__sortButton",
1196
+ cell: "rly_EntityTable-module__cell",
1197
+ row: "rly_EntityTable-module__row",
1198
+ body: "rly_EntityTable-module__body"
1199
+ }, U = (e) => c(dt, e), ft = (e) => {
1200
+ let t = /* @__PURE__ */ new Set();
1201
+ for (let n of e) {
1202
+ let e = o(n.id, "EntityTable column id");
1203
+ if (t.has(e)) throw Error(`EntityTable column ids must be unique: ${e}`);
1204
+ t.add(e), o(n.label, `EntityTable column label for ${e}`);
1205
+ }
1206
+ return t;
1207
+ }, pt = (e, t) => {
1208
+ let n = /* @__PURE__ */ new Set();
1209
+ for (let r of e) {
1210
+ let e = o(r.id, "EntityTable row id");
1211
+ if (n.has(e)) throw Error(`EntityTable row ids must be unique: ${e}`);
1212
+ n.add(e);
1213
+ let i = /* @__PURE__ */ new Set();
1214
+ for (let n of r.cells) {
1215
+ let r = o(n.columnId, `EntityTable cell column id for ${e}`);
1216
+ if (!t.has(r)) throw Error(`EntityTable row ${e} has an unknown column: ${r}`);
1217
+ if (i.has(r)) throw Error(`EntityTable row ${e} repeats column: ${r}`);
1218
+ i.add(r);
1219
+ }
1220
+ for (let n of t) if (!i.has(n)) throw Error(`EntityTable row ${e} is missing column: ${n}`);
1221
+ }
1222
+ }, mt = (e) => e.state === "ready" || e.state === "stale" || e.state === "partial" || e.state === "error" || e.state === "unavailable" ? e.rows : [], ht = ({ direction: t }) => /* @__PURE__ */ O(e, {
1223
+ decorative: !0,
1224
+ name: t === "ascending" ? "arrow-up" : t === "descending" ? "arrow-down" : "minus",
1225
+ size: "small"
1226
+ }), gt = ({ className: e, columns: t, data: n, heading: r, onSortChange: i, ...a }) => {
1227
+ let s = o(r, "EntityTable heading"), c = ft(t), l = mt(n);
1228
+ if (pt(l, c), n.state === "ready" && l.length === 0) throw Error("EntityTable ready state must contain at least one row; use the empty state instead");
1229
+ if (n.state === "loading") {
1230
+ o(n.label, "EntityTable loading label");
1231
+ let e = n.skeletonRows ?? 3;
1232
+ if (!Number.isInteger(e) || e < 1 || e > 20) throw Error("EntityTable skeletonRows must be an integer from 1 to 20");
1233
+ }
1234
+ if ((n.state === "empty" || n.state === "not-found") && (o(n.title, "EntityTable state title"), n.description !== void 0 && o(n.description, "EntityTable state description")), (n.state === "stale" || n.state === "partial" || n.state === "error" || n.state === "unavailable") && (o(n.title, "EntityTable cached state title"), o(n.description, "EntityTable cached state description"), l.length === 0)) throw Error(`EntityTable ${n.state} state must retain at least one cached row`);
1235
+ let u = `rly-entity-table-${E()}`, f = new Map(t.map((e) => [e.id, e])), p = n.state === "stale" || n.state === "partial" || n.state === "error" || n.state === "unavailable" ? /* @__PURE__ */ O(x, {
1236
+ description: n.description,
1237
+ title: n.title,
1238
+ tone: n.tone
1239
+ }) : null;
1240
+ return /* @__PURE__ */ k("section", {
1241
+ ...a,
1242
+ "aria-busy": n.state === "loading" ? "true" : void 0,
1243
+ "aria-labelledby": u,
1244
+ className: d(U("root"), e),
1245
+ "data-rly-entity-table-state": n.state,
1246
+ children: [/* @__PURE__ */ O("h2", {
1247
+ className: U("heading"),
1248
+ id: u,
1249
+ children: s
1250
+ }), n.state === "loading" ? /* @__PURE__ */ k("div", {
1251
+ "aria-label": n.label,
1252
+ className: U("loading"),
1253
+ role: "status",
1254
+ children: [/* @__PURE__ */ O("span", {
1255
+ className: U("stateLabel"),
1256
+ children: n.label
1257
+ }), Array.from({ length: n.skeletonRows ?? 3 }, (e, t) => /* @__PURE__ */ O(C, {
1258
+ height: "48px",
1259
+ variant: "block"
1260
+ }, t))]
1261
+ }) : n.state === "empty" || n.state === "not-found" ? /* @__PURE__ */ O(x, {
1262
+ description: n.description,
1263
+ title: n.title
1264
+ }) : /* @__PURE__ */ k(le, { children: [
1265
+ p,
1266
+ /* @__PURE__ */ k("div", {
1267
+ "aria-label": `${s} sorting`,
1268
+ className: U("sortControls"),
1269
+ role: "group",
1270
+ children: [/* @__PURE__ */ O("span", {
1271
+ className: U("sortLabel"),
1272
+ children: "Sort"
1273
+ }), t.map((e) => e.sortable ? /* @__PURE__ */ k("button", {
1274
+ "aria-label": `Sort by ${e.label}, currently ${e.sortDirection}`,
1275
+ className: U("sortButton"),
1276
+ onClick: () => i(e.id),
1277
+ type: "button",
1278
+ children: [/* @__PURE__ */ O("span", { children: e.label }), /* @__PURE__ */ O(ht, { direction: e.sortDirection })]
1279
+ }, e.id) : null)]
1280
+ }),
1281
+ /* @__PURE__ */ k("table", {
1282
+ "aria-labelledby": u,
1283
+ className: U("table"),
1284
+ children: [/* @__PURE__ */ O("thead", {
1285
+ className: U("head"),
1286
+ children: /* @__PURE__ */ O("tr", { children: t.map((e) => /* @__PURE__ */ O("th", {
1287
+ "aria-sort": e.sortable ? e.sortDirection : void 0,
1288
+ scope: "col",
1289
+ children: e.label
1290
+ }, e.id)) })
1291
+ }), /* @__PURE__ */ O("tbody", {
1292
+ className: U("body"),
1293
+ children: l.map((e) => {
1294
+ let n = new Map(e.cells.map((e) => [e.columnId, e.content]));
1295
+ return /* @__PURE__ */ O("tr", {
1296
+ className: U("row"),
1297
+ "data-rly-entity-row-id": e.id,
1298
+ children: t.map((e) => /* @__PURE__ */ O("td", {
1299
+ className: U("cell"),
1300
+ "data-label": f.get(e.id)?.label,
1301
+ children: n.get(e.id)
1302
+ }, e.id))
1303
+ }, e.id);
1304
+ })
1305
+ })]
1306
+ })
1307
+ ] })]
1308
+ });
1309
+ }, _t = {
1310
+ root: "rly_EvidenceStamp-module__root",
1311
+ source: "rly_EvidenceStamp-module__source",
1312
+ freshness: "rly_EvidenceStamp-module__freshness",
1313
+ conceptLabel: "rly_EvidenceStamp-module__conceptLabel",
1314
+ sourceDetail: "rly_EvidenceStamp-module__sourceDetail",
1315
+ reference: "rly_EvidenceStamp-module__reference"
1316
+ }, vt = (e) => c(_t, e), yt = ({ className: e, freshness: t, freshnessDateTime: n, freshnessTime: r, reference: i, service: a, ...s }) => {
1317
+ let c = o(i, "EvidenceStamp reference"), l = n === void 0 || r === void 0 ? /* @__PURE__ */ O(R, {
1318
+ size: "compact",
1319
+ state: t
1320
+ }) : /* @__PURE__ */ O(R, {
1321
+ dateTime: n,
1322
+ size: "compact",
1323
+ state: t,
1324
+ time: r
1325
+ });
1326
+ return /* @__PURE__ */ k("div", {
1327
+ ...s,
1328
+ className: d(vt("root"), e),
1329
+ "data-rly-evidence-stamp": "",
1330
+ children: [/* @__PURE__ */ k("div", {
1331
+ className: vt("source"),
1332
+ "data-rly-evidence-source": a,
1333
+ children: [/* @__PURE__ */ O("span", {
1334
+ className: vt("conceptLabel"),
1335
+ children: "Evidence source"
1336
+ }), /* @__PURE__ */ k("div", {
1337
+ className: vt("sourceDetail"),
1338
+ children: [/* @__PURE__ */ O(B, {
1339
+ service: a,
1340
+ size: "compact"
1341
+ }), /* @__PURE__ */ O("code", {
1342
+ className: vt("reference"),
1343
+ children: c
1344
+ })]
1345
+ })]
1346
+ }), /* @__PURE__ */ k("div", {
1347
+ className: vt("freshness"),
1348
+ "data-rly-evidence-freshness": t,
1349
+ children: [/* @__PURE__ */ O("span", {
1350
+ className: vt("conceptLabel"),
1351
+ children: "Freshness"
1352
+ }), l]
1353
+ })]
1354
+ });
1355
+ }, bt = {
1356
+ root: "rly_GovernedActionReview-module__root",
1357
+ header: "rly_GovernedActionReview-module__header",
1358
+ eyebrow: "rly_GovernedActionReview-module__eyebrow",
1359
+ heading: "rly_GovernedActionReview-module__heading",
1360
+ boundary: "rly_GovernedActionReview-module__boundary",
1361
+ confirmationHelp: "rly_GovernedActionReview-module__confirmationHelp",
1362
+ reviewer: "rly_GovernedActionReview-module__reviewer",
1363
+ facts: "rly_GovernedActionReview-module__facts",
1364
+ evidence: "rly_GovernedActionReview-module__evidence",
1365
+ outcome: "rly_GovernedActionReview-module__outcome",
1366
+ proposalReference: "rly_GovernedActionReview-module__proposalReference",
1367
+ decision: "rly_GovernedActionReview-module__decision",
1368
+ confirmation: "rly_GovernedActionReview-module__confirmation",
1369
+ actions: "rly_GovernedActionReview-module__actions"
1370
+ }, W = (e) => c(bt, e), xt = {
1371
+ pending: {
1372
+ label: "Awaiting human decision",
1373
+ tone: "caution"
1374
+ },
1375
+ rejected: {
1376
+ label: "Rejected by human reviewer",
1377
+ tone: "critical"
1378
+ },
1379
+ authorized: {
1380
+ label: "Authorized by human reviewer",
1381
+ tone: "positive"
1382
+ },
1383
+ executing: {
1384
+ label: "Authorized action executing",
1385
+ tone: "progress"
1386
+ },
1387
+ succeeded: {
1388
+ label: "Authorized action succeeded",
1389
+ tone: "positive"
1390
+ },
1391
+ failed: {
1392
+ label: "Authorized action failed",
1393
+ tone: "critical"
1394
+ },
1395
+ cancelled: {
1396
+ label: "Authorized action cancelled",
1397
+ tone: "neutral"
1398
+ }
1399
+ }, St = ({ authorizeLabel: e = "Authorize exact action", className: t, confirmationLabel: n, isConfirmed: r, onAuthorize: i, onConfirmationChange: a, onReject: s, outcome: c, proposal: l, rejectLabel: u = "Reject proposal", reviewer: f, state: p, ...m }) => {
1400
+ let h = we(l), g = o(e, "GovernedActionReview authorizeLabel"), _ = o(n, "GovernedActionReview confirmationLabel"), v = o(u, "GovernedActionReview rejectLabel");
1401
+ o(f.id, "GovernedActionReview reviewer id"), o(f.name, "GovernedActionReview reviewer name"), o(f.role, "GovernedActionReview reviewer role");
1402
+ let y = `rly-governed-action-${E()}`, x = `rly-governed-action-reference-${E()}`, S = `rly-governed-confirmation-${E()}`, C = xt[p], ee = () => {
1403
+ p === "pending" && r && i();
1404
+ };
1405
+ return /* @__PURE__ */ k("section", {
1406
+ ...m,
1407
+ "aria-labelledby": `${y} ${x}`,
1408
+ className: d(W("root"), t),
1409
+ "data-rly-governed-action-state": p,
1410
+ children: [
1411
+ /* @__PURE__ */ k("header", {
1412
+ className: W("header"),
1413
+ children: [/* @__PURE__ */ k("div", { children: [
1414
+ /* @__PURE__ */ O("p", {
1415
+ className: W("eyebrow"),
1416
+ children: "Human authorization"
1417
+ }),
1418
+ /* @__PURE__ */ O("h2", {
1419
+ className: W("heading"),
1420
+ id: y,
1421
+ children: "Review exact proposed action"
1422
+ }),
1423
+ /* @__PURE__ */ O("code", {
1424
+ className: W("proposalReference"),
1425
+ id: x,
1426
+ children: h.id
1427
+ })
1428
+ ] }), /* @__PURE__ */ O(T, {
1429
+ label: C.label,
1430
+ tone: C.tone
1431
+ })]
1432
+ }),
1433
+ /* @__PURE__ */ O("p", {
1434
+ className: W("boundary"),
1435
+ children: "The agent proposed this action. Only the named human reviewer can authorize it."
1436
+ }),
1437
+ /* @__PURE__ */ k("div", {
1438
+ className: W("reviewer"),
1439
+ children: [/* @__PURE__ */ O("span", { children: "Human reviewer" }), /* @__PURE__ */ O(F, { person: f })]
1440
+ }),
1441
+ /* @__PURE__ */ k("dl", {
1442
+ className: W("facts"),
1443
+ children: [
1444
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Proposal" }), /* @__PURE__ */ O("dd", { children: h.capability })] }),
1445
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Target" }), /* @__PURE__ */ O("dd", { children: h.target })] }),
1446
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Expected revision" }), /* @__PURE__ */ O("dd", { children: h.expectedRevision })] }),
1447
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", { children: "Impact" }), /* @__PURE__ */ O("dd", { children: h.impact })] })
1448
+ ]
1449
+ }),
1450
+ /* @__PURE__ */ k("div", {
1451
+ className: W("evidence"),
1452
+ "data-rly-governed-action-evidence": "",
1453
+ children: [/* @__PURE__ */ O("h3", { children: "Evidence reviewed before decision" }), /* @__PURE__ */ O("ul", { children: h.evidence.map((e) => /* @__PURE__ */ k("li", { children: [/* @__PURE__ */ O("span", { children: e.label }), /* @__PURE__ */ O("code", { children: e.reference })] }, e.id)) })]
1454
+ }),
1455
+ p === "pending" ? /* @__PURE__ */ k("form", {
1456
+ className: W("decision"),
1457
+ onSubmit: (e) => e.preventDefault(),
1458
+ children: [
1459
+ /* @__PURE__ */ k("label", {
1460
+ className: W("confirmation"),
1461
+ htmlFor: S,
1462
+ children: [/* @__PURE__ */ O("input", {
1463
+ checked: r,
1464
+ id: S,
1465
+ onChange: (e) => a(e.currentTarget.checked),
1466
+ type: "checkbox"
1467
+ }), /* @__PURE__ */ O("span", { children: _ })]
1468
+ }),
1469
+ /* @__PURE__ */ O("p", {
1470
+ className: W("confirmationHelp"),
1471
+ children: "Confirm the exact proposal, target, revision, impact, and evidence above."
1472
+ }),
1473
+ /* @__PURE__ */ k("div", {
1474
+ className: W("actions"),
1475
+ children: [/* @__PURE__ */ O(b, {
1476
+ onClick: s,
1477
+ variant: "secondary",
1478
+ children: v
1479
+ }), /* @__PURE__ */ O(b, {
1480
+ disabled: !r,
1481
+ onClick: ee,
1482
+ variant: "primary",
1483
+ children: g
1484
+ })]
1485
+ })
1486
+ ]
1487
+ }) : null,
1488
+ /* @__PURE__ */ k("div", {
1489
+ className: W("outcome"),
1490
+ "data-rly-governed-action-outcome": "",
1491
+ children: [/* @__PURE__ */ O("h3", { children: "Recorded outcome" }), c]
1492
+ })
1493
+ ]
1494
+ });
1495
+ }, Ct = {
1496
+ missing: {
1497
+ icon: "alert",
1498
+ label: "Missing"
1499
+ },
1500
+ inferred: {
1501
+ icon: "search",
1502
+ label: "Inferred"
1503
+ },
1504
+ proposed: {
1505
+ icon: "plus",
1506
+ label: "Proposed"
1507
+ },
1508
+ verified: {
1509
+ icon: "check",
1510
+ label: "Verified"
1511
+ },
1512
+ governed: {
1513
+ icon: "link",
1514
+ label: "Governed"
1515
+ },
1516
+ rejected: {
1517
+ icon: "close",
1518
+ label: "Rejected"
1519
+ },
1520
+ superseded: {
1521
+ icon: "arrow-right",
1522
+ label: "Superseded"
1523
+ }
1524
+ }, wt = {
1525
+ forward: {
1526
+ arrow: "→",
1527
+ label: "Forward"
1528
+ },
1529
+ reverse: {
1530
+ arrow: "←",
1531
+ label: "Reverse"
1532
+ },
1533
+ bidirectional: {
1534
+ arrow: "↔",
1535
+ label: "Bidirectional"
1536
+ }
1537
+ }, Tt = (e, t) => {
1538
+ o(e.id, `${t} person id`), o(e.name, `${t} person name`), o(e.role, `${t} person role`), e.avatarFallback !== void 0 && o(e.avatarFallback, `${t} person avatarFallback`), e.avatarSrc !== void 0 && o(e.avatarSrc, `${t} person avatarSrc`);
1539
+ }, Et = (e, t) => {
1540
+ if (!Object.hasOwn(tt.service, e)) throw Error(`${t} service must be a supported rly service`);
1541
+ }, Dt = (e, t) => {
1542
+ if (e.state === "present") {
1543
+ o(e.id, `${t} id`), o(e.title, `${t} title`), o(e.reference, `${t} reference`), Et(e.service, t), e.href !== void 0 && o(e.href, `${t} href`), e.person !== void 0 && Tt(e.person, t);
1544
+ return;
1545
+ }
1546
+ if (e.state === "missing") {
1547
+ o(e.label, `${t} missing label`), o(e.reason, `${t} missing reason`), e.service !== void 0 && Et(e.service, t);
1548
+ return;
1549
+ }
1550
+ throw Error(`${t} state must be present or missing`);
1551
+ }, Ot = (e) => {
1552
+ let t = /* @__PURE__ */ new Set();
1553
+ for (let n of e) {
1554
+ let e = o(n.id, "Relationship id");
1555
+ if (t.has(e)) throw Error(`Relationship ids must be unique: ${e}`);
1556
+ if (t.add(e), o(n.kind, `Relationship kind for ${e}`), !Object.hasOwn(wt, n.direction)) throw Error(`Relationship direction for ${e} must be supported`);
1557
+ if (!Object.hasOwn(Ct, n.lifecycle)) throw Error(`Relationship lifecycle for ${e} must be supported`);
1558
+ Dt(n.source, `Relationship ${e} source`), Dt(n.target, `Relationship ${e} target`), n.evidence !== void 0 && o(n.evidence, `Relationship evidence for ${e}`), n.actor !== void 0 && Tt(n.actor, `Relationship ${e} actor`);
1559
+ }
1560
+ }, kt = {
1561
+ root: "rly_RelationshipChain-module__root",
1562
+ heading: "rly_RelationshipChain-module__heading",
1563
+ empty: "rly_RelationshipChain-module__empty",
1564
+ list: "rly_RelationshipChain-module__list",
1565
+ item: "rly_RelationshipChain-module__item",
1566
+ endpoint: "rly_RelationshipChain-module__endpoint",
1567
+ endpointLink: "rly_RelationshipChain-module__endpointLink",
1568
+ identity: "rly_RelationshipChain-module__identity",
1569
+ missingIdentity: "rly_RelationshipChain-module__missingIdentity",
1570
+ title: "rly_RelationshipChain-module__title",
1571
+ missingLabel: "rly_RelationshipChain-module__missingLabel",
1572
+ kind: "rly_RelationshipChain-module__kind",
1573
+ reference: "rly_RelationshipChain-module__reference",
1574
+ direction: "rly_RelationshipChain-module__direction",
1575
+ evidence: "rly_RelationshipChain-module__evidence",
1576
+ fieldLabel: "rly_RelationshipChain-module__fieldLabel",
1577
+ missingEndpoint: "rly_RelationshipChain-module__missingEndpoint",
1578
+ relationship: "rly_RelationshipChain-module__relationship",
1579
+ arrow: "rly_RelationshipChain-module__arrow",
1580
+ actor: "rly_RelationshipChain-module__actor"
1581
+ }, G = (e) => c(kt, e), At = ({ endpoint: t }) => {
1582
+ if (t.state === "missing") return /* @__PURE__ */ k("div", {
1583
+ className: d(G("endpoint"), G("missingEndpoint")),
1584
+ "data-rly-endpoint-state": "missing",
1585
+ children: [t.service === void 0 ? null : /* @__PURE__ */ O(B, {
1586
+ service: t.service,
1587
+ size: "compact"
1588
+ }), /* @__PURE__ */ k("span", {
1589
+ className: G("missingIdentity"),
1590
+ children: [/* @__PURE__ */ k("span", {
1591
+ className: G("missingLabel"),
1592
+ children: [/* @__PURE__ */ O(e, {
1593
+ decorative: !0,
1594
+ name: "alert",
1595
+ size: "small"
1596
+ }), t.label]
1597
+ }), /* @__PURE__ */ O("span", {
1598
+ className: G("reference"),
1599
+ children: t.reason
1600
+ })]
1601
+ })]
1602
+ });
1603
+ let n = /* @__PURE__ */ k("span", {
1604
+ className: G("identity"),
1605
+ children: [/* @__PURE__ */ O("span", {
1606
+ className: G("title"),
1607
+ children: t.title
1608
+ }), /* @__PURE__ */ O("span", {
1609
+ className: G("reference"),
1610
+ children: t.reference
1611
+ })]
1612
+ });
1613
+ return /* @__PURE__ */ k("div", {
1614
+ className: G("endpoint"),
1615
+ "data-rly-endpoint-id": t.id,
1616
+ "data-rly-endpoint-state": "present",
1617
+ children: [
1618
+ /* @__PURE__ */ O(B, {
1619
+ service: t.service,
1620
+ size: "compact"
1621
+ }),
1622
+ t.href === void 0 ? n : /* @__PURE__ */ O(r, {
1623
+ className: G("endpointLink"),
1624
+ href: t.href,
1625
+ children: n
1626
+ }),
1627
+ t.person === void 0 ? null : /* @__PURE__ */ O(F, {
1628
+ person: t.person,
1629
+ size: "compact"
1630
+ })
1631
+ ]
1632
+ });
1633
+ }, jt = ({ className: e, emptyLabel: t = "No relationships recorded.", heading: n, relationships: r, ...i }) => {
1634
+ let a = o(n, "RelationshipChain heading"), s = o(t, "RelationshipChain emptyLabel");
1635
+ Ot(r);
1636
+ let c = `${E()}-heading`;
1637
+ return /* @__PURE__ */ k("section", {
1638
+ ...i,
1639
+ "aria-labelledby": c,
1640
+ className: d(G("root"), e),
1641
+ children: [/* @__PURE__ */ O("h2", {
1642
+ className: G("heading"),
1643
+ id: c,
1644
+ children: a
1645
+ }), r.length === 0 ? /* @__PURE__ */ O("p", {
1646
+ className: G("empty"),
1647
+ children: s
1648
+ }) : /* @__PURE__ */ O("ol", {
1649
+ className: G("list"),
1650
+ children: r.map((e) => {
1651
+ let t = wt[e.direction], n = Ct[e.lifecycle];
1652
+ return /* @__PURE__ */ k("li", {
1653
+ className: G("item"),
1654
+ "data-rly-relationship-id": e.id,
1655
+ "data-rly-relationship-direction": e.direction,
1656
+ "data-rly-relationship-kind": e.kind,
1657
+ "data-rly-relationship-lifecycle": e.lifecycle,
1658
+ children: [
1659
+ /* @__PURE__ */ O(At, { endpoint: e.source }),
1660
+ /* @__PURE__ */ k("div", {
1661
+ className: G("relationship"),
1662
+ "data-rly-relationship-detail": "",
1663
+ children: [
1664
+ /* @__PURE__ */ k("span", {
1665
+ className: G("direction"),
1666
+ children: [/* @__PURE__ */ O("span", { children: t.label }), /* @__PURE__ */ O("span", {
1667
+ "aria-hidden": "true",
1668
+ className: G("arrow"),
1669
+ children: t.arrow
1670
+ })]
1671
+ }),
1672
+ /* @__PURE__ */ O("span", {
1673
+ className: G("kind"),
1674
+ children: e.kind
1675
+ }),
1676
+ /* @__PURE__ */ O(T, {
1677
+ icon: n.icon,
1678
+ label: n.label,
1679
+ size: "compact",
1680
+ tone: "neutral"
1681
+ }),
1682
+ e.actor === void 0 ? null : /* @__PURE__ */ k("div", {
1683
+ className: G("actor"),
1684
+ "data-rly-relationship-actor": e.actor.id,
1685
+ children: [/* @__PURE__ */ O("span", {
1686
+ className: G("fieldLabel"),
1687
+ children: "Actor"
1688
+ }), /* @__PURE__ */ O(F, {
1689
+ person: e.actor,
1690
+ size: "compact"
1691
+ })]
1692
+ })
1693
+ ]
1694
+ }),
1695
+ /* @__PURE__ */ O(At, { endpoint: e.target }),
1696
+ /* @__PURE__ */ k("p", {
1697
+ className: G("evidence"),
1698
+ children: [/* @__PURE__ */ O("span", {
1699
+ className: G("fieldLabel"),
1700
+ children: "Evidence"
1701
+ }), /* @__PURE__ */ O("span", {
1702
+ "data-rly-relationship-evidence": "",
1703
+ children: e.evidence ?? "No evidence recorded."
1704
+ })]
1705
+ })
1706
+ ]
1707
+ }, e.id);
1708
+ })
1709
+ })]
1710
+ });
1711
+ }, Mt = {
1712
+ root: "rly_RelationshipTable-module__root",
1713
+ heading: "rly_RelationshipTable-module__heading",
1714
+ empty: "rly_RelationshipTable-module__empty",
1715
+ table: "rly_RelationshipTable-module__table",
1716
+ head: "rly_RelationshipTable-module__head",
1717
+ cell: "rly_RelationshipTable-module__cell",
1718
+ endpoint: "rly_RelationshipTable-module__endpoint",
1719
+ identity: "rly_RelationshipTable-module__identity",
1720
+ relationship: "rly_RelationshipTable-module__relationship",
1721
+ actor: "rly_RelationshipTable-module__actor",
1722
+ endpointLink: "rly_RelationshipTable-module__endpointLink",
1723
+ title: "rly_RelationshipTable-module__title",
1724
+ missingLabel: "rly_RelationshipTable-module__missingLabel",
1725
+ kind: "rly_RelationshipTable-module__kind",
1726
+ reference: "rly_RelationshipTable-module__reference",
1727
+ direction: "rly_RelationshipTable-module__direction",
1728
+ evidence: "rly_RelationshipTable-module__evidence",
1729
+ fieldLabel: "rly_RelationshipTable-module__fieldLabel",
1730
+ missingEndpoint: "rly_RelationshipTable-module__missingEndpoint",
1731
+ arrow: "rly_RelationshipTable-module__arrow",
1732
+ body: "rly_RelationshipTable-module__body",
1733
+ row: "rly_RelationshipTable-module__row"
1734
+ }, K = (e) => c(Mt, e), Nt = ({ endpoint: t }) => {
1735
+ if (t.state === "missing") return /* @__PURE__ */ k("div", {
1736
+ className: d(K("endpoint"), K("missingEndpoint")),
1737
+ "data-rly-endpoint-state": "missing",
1738
+ children: [t.service === void 0 ? null : /* @__PURE__ */ O(B, {
1739
+ service: t.service,
1740
+ size: "compact"
1741
+ }), /* @__PURE__ */ k("span", {
1742
+ className: K("identity"),
1743
+ children: [/* @__PURE__ */ k("span", {
1744
+ className: K("missingLabel"),
1745
+ children: [/* @__PURE__ */ O(e, {
1746
+ decorative: !0,
1747
+ name: "alert",
1748
+ size: "small"
1749
+ }), t.label]
1750
+ }), /* @__PURE__ */ O("span", {
1751
+ className: K("reference"),
1752
+ children: t.reason
1753
+ })]
1754
+ })]
1755
+ });
1756
+ let n = /* @__PURE__ */ k("span", {
1757
+ className: K("identity"),
1758
+ children: [/* @__PURE__ */ O("span", {
1759
+ className: K("title"),
1760
+ children: t.title
1761
+ }), /* @__PURE__ */ O("span", {
1762
+ className: K("reference"),
1763
+ children: t.reference
1764
+ })]
1765
+ });
1766
+ return /* @__PURE__ */ k("div", {
1767
+ className: K("endpoint"),
1768
+ "data-rly-endpoint-id": t.id,
1769
+ "data-rly-endpoint-state": "present",
1770
+ children: [
1771
+ /* @__PURE__ */ O(B, {
1772
+ service: t.service,
1773
+ size: "compact"
1774
+ }),
1775
+ t.href === void 0 ? n : /* @__PURE__ */ O(r, {
1776
+ className: K("endpointLink"),
1777
+ href: t.href,
1778
+ children: n
1779
+ }),
1780
+ t.person === void 0 ? null : /* @__PURE__ */ O(F, {
1781
+ person: t.person,
1782
+ size: "compact"
1783
+ })
1784
+ ]
1785
+ });
1786
+ }, Pt = ({ className: e, emptyLabel: t = "No relationships recorded.", heading: n, relationships: r, ...i }) => {
1787
+ let a = o(n, "RelationshipTable heading"), s = o(t, "RelationshipTable emptyLabel");
1788
+ Ot(r);
1789
+ let c = `${E()}-heading`;
1790
+ return /* @__PURE__ */ k("section", {
1791
+ ...i,
1792
+ "aria-labelledby": c,
1793
+ className: d(K("root"), e),
1794
+ children: [/* @__PURE__ */ O("h2", {
1795
+ className: K("heading"),
1796
+ id: c,
1797
+ children: a
1798
+ }), r.length === 0 ? /* @__PURE__ */ O("p", {
1799
+ className: K("empty"),
1800
+ children: s
1801
+ }) : /* @__PURE__ */ k("table", {
1802
+ "aria-labelledby": c,
1803
+ className: K("table"),
1804
+ children: [/* @__PURE__ */ O("thead", {
1805
+ className: K("head"),
1806
+ children: /* @__PURE__ */ k("tr", { children: [
1807
+ /* @__PURE__ */ O("th", {
1808
+ scope: "col",
1809
+ children: "Source"
1810
+ }),
1811
+ /* @__PURE__ */ O("th", {
1812
+ scope: "col",
1813
+ children: "Relationship"
1814
+ }),
1815
+ /* @__PURE__ */ O("th", {
1816
+ scope: "col",
1817
+ children: "Target"
1818
+ }),
1819
+ /* @__PURE__ */ O("th", {
1820
+ scope: "col",
1821
+ children: "Evidence"
1822
+ })
1823
+ ] })
1824
+ }), /* @__PURE__ */ O("tbody", {
1825
+ className: K("body"),
1826
+ children: r.map((e) => {
1827
+ let t = wt[e.direction], n = Ct[e.lifecycle];
1828
+ return /* @__PURE__ */ k("tr", {
1829
+ className: K("row"),
1830
+ "data-rly-relationship-id": e.id,
1831
+ "data-rly-relationship-direction": e.direction,
1832
+ "data-rly-relationship-kind": e.kind,
1833
+ "data-rly-relationship-lifecycle": e.lifecycle,
1834
+ children: [
1835
+ /* @__PURE__ */ O("td", {
1836
+ className: K("cell"),
1837
+ "data-label": "Source",
1838
+ children: /* @__PURE__ */ O(Nt, { endpoint: e.source })
1839
+ }),
1840
+ /* @__PURE__ */ O("td", {
1841
+ className: K("cell"),
1842
+ "data-label": "Relationship",
1843
+ children: /* @__PURE__ */ k("div", {
1844
+ className: K("relationship"),
1845
+ "data-rly-relationship-detail": "",
1846
+ children: [
1847
+ /* @__PURE__ */ k("span", {
1848
+ className: K("direction"),
1849
+ children: [/* @__PURE__ */ O("span", { children: t.label }), /* @__PURE__ */ O("span", {
1850
+ "aria-hidden": "true",
1851
+ className: K("arrow"),
1852
+ children: t.arrow
1853
+ })]
1854
+ }),
1855
+ /* @__PURE__ */ O("span", {
1856
+ className: K("kind"),
1857
+ children: e.kind
1858
+ }),
1859
+ /* @__PURE__ */ O(T, {
1860
+ icon: n.icon,
1861
+ label: n.label,
1862
+ size: "compact",
1863
+ tone: "neutral"
1864
+ }),
1865
+ e.actor === void 0 ? null : /* @__PURE__ */ k("div", {
1866
+ className: K("actor"),
1867
+ "data-rly-relationship-actor": e.actor.id,
1868
+ children: [/* @__PURE__ */ O("span", {
1869
+ className: K("fieldLabel"),
1870
+ children: "Actor"
1871
+ }), /* @__PURE__ */ O(F, {
1872
+ person: e.actor,
1873
+ size: "compact"
1874
+ })]
1875
+ })
1876
+ ]
1877
+ })
1878
+ }),
1879
+ /* @__PURE__ */ O("td", {
1880
+ className: K("cell"),
1881
+ "data-label": "Target",
1882
+ children: /* @__PURE__ */ O(Nt, { endpoint: e.target })
1883
+ }),
1884
+ /* @__PURE__ */ O("td", {
1885
+ className: K("cell"),
1886
+ "data-label": "Evidence",
1887
+ children: /* @__PURE__ */ O("span", {
1888
+ className: K("evidence"),
1889
+ "data-rly-relationship-evidence": "",
1890
+ children: e.evidence ?? "No evidence recorded."
1891
+ })
1892
+ })
1893
+ ]
1894
+ }, e.id);
1895
+ })
1896
+ })]
1897
+ })]
1898
+ });
1899
+ }, Ft = {
1900
+ root: "rly_RelayDock-module__root",
1901
+ trigger: "rly_RelayDock-module__trigger",
1902
+ close: "rly_RelayDock-module__close",
1903
+ mark: "rly_RelayDock-module__mark",
1904
+ markLine: "rly_RelayDock-module__markLine",
1905
+ markGlyph: "rly_RelayDock-module__markGlyph",
1906
+ layer: "rly_RelayDock-module__layer",
1907
+ overlay: "rly_RelayDock-module__overlay",
1908
+ panel: "rly_RelayDock-module__panel",
1909
+ sheet: "rly_RelayDock-module__sheet",
1910
+ rail: "rly_RelayDock-module__rail",
1911
+ railHeader: "rly_RelayDock-module__railHeader",
1912
+ railHeading: "rly_RelayDock-module__railHeading",
1913
+ title: "rly_RelayDock-module__title",
1914
+ description: "rly_RelayDock-module__description",
1915
+ fixedContext: "rly_RelayDock-module__fixedContext",
1916
+ contents: "rly_RelayDock-module__contents",
1917
+ context: "rly_RelayDock-module__context",
1918
+ selection: "rly_RelayDock-module__selection",
1919
+ sectionLabel: "rly_RelayDock-module__sectionLabel",
1920
+ chipList: "rly_RelayDock-module__chipList",
1921
+ chip: "rly_RelayDock-module__chip",
1922
+ chipLabel: "rly_RelayDock-module__chipLabel",
1923
+ chipValue: "rly_RelayDock-module__chipValue",
1924
+ selectionGrid: "rly_RelayDock-module__selectionGrid",
1925
+ body: "rly_RelayDock-module__body",
1926
+ ready: "rly_RelayDock-module__ready",
1927
+ state: "rly_RelayDock-module__state",
1928
+ footer: "rly_RelayDock-module__footer"
1929
+ }, q = (e) => c(Ft, e), It = "(max-width: 40rem), (max-height: 40rem) and (pointer: coarse)", Lt = [
1930
+ "a[href]",
1931
+ "button:not([disabled])",
1932
+ "iframe:not([tabindex=\"-1\"])",
1933
+ "input:not([disabled])",
1934
+ "select:not([disabled])",
1935
+ "details > summary:first-of-type",
1936
+ "textarea:not([disabled])",
1937
+ "[contenteditable]:not([contenteditable=\"false\"])",
1938
+ "[tabindex]:not([tabindex=\"-1\"])"
1939
+ ].join(","), Rt = "button, fieldset, input, object, optgroup, option, output, select, textarea", zt = (e) => "activeElement" in e, Bt = (e) => "host" in e && a(e.host), Vt = (e) => {
1940
+ let t = e.activeElement;
1941
+ return t === null ? null : t.shadowRoot === null ? t : Vt(t.shadowRoot) ?? t;
1942
+ }, Ht = (e) => {
1943
+ let t = e.getRootNode();
1944
+ return zt(t) ? Vt(t) : e.ownerDocument.activeElement;
1945
+ }, Ut = (e) => {
1946
+ let t = e.getRootNode();
1947
+ return Bt(t) && f(t.host) ? t.host : null;
1948
+ }, Wt = (e) => "assignedSlot" in e, Gt = (e) => e.nodeType === 1, Kt = (e, t) => {
1949
+ if (t !== void 0 && t.has(e)) {
1950
+ let n = t.get(e);
1951
+ return n != null && Gt(n) ? n : null;
1952
+ }
1953
+ return (Wt(e) ? e.assignedSlot : null) ?? e.parentElement ?? Ut(e);
1954
+ }, qt = (e, t, n) => {
1955
+ if (t === null) return !1;
1956
+ if (e.contains(t)) return !0;
1957
+ let r = /* @__PURE__ */ new Set(), i = t;
1958
+ for (; !r.has(i);) {
1959
+ r.add(i);
1960
+ let t = Kt(i, n);
1961
+ if (t === null) return !1;
1962
+ if (t === e || e.contains(t)) return !0;
1963
+ i = t;
1964
+ }
1965
+ return !1;
1966
+ }, Jt = (e, t) => qt(e, t), Yt = (e) => {
1967
+ let t = e.activeElement;
1968
+ return f(t) ? t.shadowRoot === null ? t : Yt(t.shadowRoot) ?? t : null;
1969
+ }, Xt = (e) => {
1970
+ let t = Yt(e);
1971
+ return t === e.body || t === e.documentElement ? null : t;
1972
+ }, Zt = (e, t) => {
1973
+ if (e.matches(":disabled")) return !1;
1974
+ let n = e.ownerDocument.defaultView;
1975
+ if (n === null) return !f(e) || e.hidden === !1;
1976
+ let r = n.getComputedStyle(e).visibility;
1977
+ if (r === "hidden" || r === "collapse") return !1;
1978
+ let i = e;
1979
+ for (; i !== null;) {
1980
+ if (f(i) && i.inert) return !1;
1981
+ if (i.tagName === "DETAILS" && !i.hasAttribute("open")) {
1982
+ let n = i.querySelector(":scope > summary:first-of-type");
1983
+ if (n === null || !qt(n, e, t)) return !1;
1984
+ }
1985
+ if (i !== e && i.tagName === "FIELDSET" && i.hasAttribute("disabled") && e.matches(Rt)) {
1986
+ let n = i.querySelector(":scope > legend:first-of-type");
1987
+ if (n === null || !qt(n, e, t)) return !1;
1988
+ }
1989
+ let r = n.getComputedStyle(i);
1990
+ if (f(i) && i.hidden !== !1 || r.display === "none" || i === e && r.display === "contents" || i !== e && r.contentVisibility === "hidden") return !1;
1991
+ i = Kt(i, t);
1992
+ }
1993
+ return !0;
1994
+ }, Qt = (e, t) => {
1995
+ let n = e.getRootNode(), r = /* @__PURE__ */ new Set(), i = Kt(e, t);
1996
+ for (; i !== null && !r.has(i);) {
1997
+ if (r.add(i), i.getRootNode() !== n) return !1;
1998
+ if (f(i) && i.isContentEditable) return !0;
1999
+ i = Kt(i, t);
2000
+ }
2001
+ return !1;
2002
+ }, $t = (e) => f(e) && e.tagName === "INPUT" && e.getAttribute("type")?.toLowerCase() === "radio", en = (e) => "tabIndex" in e && u(e.tabIndex), tn = "http://www.w3.org/2000/svg", nn = (e) => {
2003
+ if (e.namespaceURI === tn && e.localName === "a" && e.hasAttribute("href")) {
2004
+ let t = e.getAttribute("tabindex");
2005
+ if (t === null) return 0;
2006
+ let n = Number.parseInt(t, 10);
2007
+ return Number.isNaN(n) ? 0 : n;
2008
+ }
2009
+ return en(e) ? e.tabIndex : null;
2010
+ }, rn = (e) => e.tagName === "SLOT" && "assignedElements" in e, an = (e) => rn(e) && Bt(e.getRootNode()), on = (e, t) => {
2011
+ let n = nn(e) ?? -1, r = nn(t) ?? -1, i = n > 0, a = r > 0;
2012
+ return i === a ? i && a && n !== r ? n - r : 0 : i ? -1 : 1;
2013
+ }, sn = (e) => {
2014
+ let t = nn(e);
2015
+ return t !== null && e.hasAttribute("tabindex") && t < 0;
2016
+ }, cn = (e) => sn(e) && (rn(e) || f(e) && e.shadowRoot?.delegatesFocus === !0), ln = (e, t, n, r) => {
2017
+ if (e.name.length === 0) return !0;
2018
+ let i = n.filter(({ element: n, nativeRoot: i }) => i === t && $t(n) && n.name === e.name && n.form === e.form && Zt(n, r)).map(({ element: e }) => e).filter($t).find((e) => e.checked);
2019
+ return i === void 0 ? e.tabIndex >= 0 : i === e;
2020
+ }, un = (e) => {
2021
+ let t = (e, r, i) => {
2022
+ let a = [], o = /* @__PURE__ */ new Map(), s = (e, i) => {
2023
+ if (a.push({
2024
+ composedParent: i,
2025
+ element: e,
2026
+ focusScope: r,
2027
+ nativeRoot: e.getRootNode()
2028
+ }), an(e)) {
2029
+ let n = e.assignedNodes({ flatten: !1 }), r = e.assignedElements({ flatten: !1 }), i = [...e.children];
2030
+ o.set(e, t(n.length > 0 ? r : i, e, e));
2031
+ return;
2032
+ }
2033
+ if (rn(e)) {
2034
+ o.set(e, t([...e.children], e, e));
2035
+ return;
2036
+ }
2037
+ if (e.shadowRoot !== null && (!sn(e) || e.shadowRoot.delegatesFocus === !0)) o.set(e, n(e.shadowRoot, e.shadowRoot, e));
2038
+ else if (e.shadowRoot === null) for (let t of e.children) s(t, e);
2039
+ };
2040
+ for (let t of e) s(t, i);
2041
+ return {
2042
+ entries: a,
2043
+ nested: o
2044
+ };
2045
+ }, n = (e, n, r) => t([...e.children], n, r), r = (e) => {
2046
+ let t = [...e.entries].sort((e, t) => on(e.element, t.element)), n = [];
2047
+ for (let i of t) {
2048
+ n.push(i);
2049
+ let t = e.nested.get(i.element);
2050
+ if (t !== void 0) for (let e of r(t)) n.push(e);
2051
+ }
2052
+ return n;
2053
+ };
2054
+ return r(n(e, e, e));
2055
+ }, dn = (e, t, n) => t.filter((r) => {
2056
+ let { element: i, nativeRoot: a } = r;
2057
+ if (i.tagName === "SLOT") return !1;
2058
+ let o = nn(i);
2059
+ if (o === null) return !1;
2060
+ let s = i, c = /* @__PURE__ */ new Set();
2061
+ for (; !c.has(s);) {
2062
+ c.add(s);
2063
+ let t = Kt(s, n);
2064
+ if (t === null || t === e) break;
2065
+ if (cn(t)) return !1;
2066
+ s = t;
2067
+ }
2068
+ return !i.matches(Lt) || i.shadowRoot?.delegatesFocus === !0 || !Zt(i, n) || $t(i) && !ln(i, a, t, n) ? !1 : o >= 0 || f(i) && i.isContentEditable && !i.hasAttribute("tabindex") && !Qt(i, n) || i.matches("details > summary:first-of-type") && !sn(i);
2069
+ }).map(({ element: e }) => e), fn = (e) => a(e) && "tagName" in e && e.tagName === "IFRAME" && "contentDocument" in e, pn = (e) => a(e) && "nodeType" in e && e.nodeType === 1, mn = (e) => [...e.querySelectorAll(Lt)].filter((e) => {
2070
+ let t = nn(e);
2071
+ return t !== null && t >= 0 || f(e) && e.isContentEditable && !e.hasAttribute("tabindex") && !Qt(e, /* @__PURE__ */ new Map());
2072
+ }), hn = (e) => {
2073
+ let t = e.ownerDocument, n = /* @__PURE__ */ new Map(), r = (t, n) => {
2074
+ let r = un(e), i = dn(e, r, new Map(r.map(({ composedParent: e, element: t }) => [t, e]))), a = i.findIndex((e) => e === t), o = n ? i[i.length - 1] : i[0];
2075
+ ((a < 0 ? void 0 : i[a + (n ? -1 : 1)]) ?? o)?.focus();
2076
+ }, i = (e) => {
2077
+ let t = n.get(e), i = e.contentDocument;
2078
+ if (t?.frameDocument !== null && t?.frameDocument !== void 0 && t.frameDocument.removeEventListener("keydown", t.onKeyDown, !0), t === void 0) return;
2079
+ if (i === null) {
2080
+ n.set(e, {
2081
+ ...t,
2082
+ frameDocument: null
2083
+ });
2084
+ return;
2085
+ }
2086
+ let a = (t) => {
2087
+ if (t.defaultPrevented || t.key !== "Tab") return;
2088
+ let n = mn(i), a = pn(t.target) ? t.target : i.activeElement, o = n[0], s = n[n.length - 1];
2089
+ (t.shiftKey ? a === o : a === s) && (t.preventDefault(), r(e, t.shiftKey));
2090
+ };
2091
+ i.addEventListener("keydown", a, !0), n.set(e, {
2092
+ ...t,
2093
+ frameDocument: i,
2094
+ onKeyDown: a
2095
+ });
2096
+ }, a = (e) => {
2097
+ if (n.has(e)) {
2098
+ i(e);
2099
+ return;
2100
+ }
2101
+ let t = () => i(e);
2102
+ n.set(e, {
2103
+ frameDocument: null,
2104
+ onKeyDown: () => void 0,
2105
+ onLoad: t
2106
+ }), e.addEventListener("load", t), i(e);
2107
+ }, o = () => {
2108
+ for (let { element: t } of un(e)) t.tagName === "IFRAME" && fn(t) && a(t);
2109
+ }, s = (e) => {
2110
+ fn(e.target) && a(e.target);
2111
+ };
2112
+ t.addEventListener("focusin", s, !0), o();
2113
+ let c = t.defaultView?.MutationObserver, l = c === void 0 ? null : new c(o);
2114
+ return l?.observe(e, {
2115
+ childList: !0,
2116
+ subtree: !0
2117
+ }), () => {
2118
+ t.removeEventListener("focusin", s, !0), l?.disconnect();
2119
+ for (let [e, t] of n) e.removeEventListener("load", t.onLoad), t.frameDocument !== null && t.frameDocument.removeEventListener("keydown", t.onKeyDown, !0);
2120
+ };
2121
+ }, gn = (e, t) => {
2122
+ if (e === null || !("matchMedia" in e)) return () => void 0;
2123
+ let n = e.matchMedia(It);
2124
+ return n.addEventListener("change", t), () => n.removeEventListener("change", t);
2125
+ }, _n = (e) => e !== null && "matchMedia" in e && e.matchMedia(It).matches, vn = () => !1, yn = (e) => {
2126
+ let t = ae((t) => gn(e, t), [e]), n = ae(() => _n(e), [e]);
2127
+ return ce(t, n, vn);
2128
+ }, bn = () => /* @__PURE__ */ k("span", {
2129
+ "aria-hidden": "true",
2130
+ className: q("mark"),
2131
+ children: [/* @__PURE__ */ O("span", { className: q("markLine") }), /* @__PURE__ */ O("svg", {
2132
+ className: q("markGlyph"),
2133
+ focusable: "false",
2134
+ viewBox: "0 0 24 24",
2135
+ children: /* @__PURE__ */ O("path", {
2136
+ d: "M12 3.5 14 10l6.5 2-6.5 2-2 6.5L10 14l-6.5-2 6.5-2Z",
2137
+ fill: "currentColor"
2138
+ })
2139
+ })]
2140
+ }), xn = ({ context: e, labelId: t }) => {
2141
+ if (e.length === 0) throw Error("RelayDock context must contain at least one chip");
2142
+ let n = /* @__PURE__ */ new Set();
2143
+ return /* @__PURE__ */ k("section", {
2144
+ "aria-labelledby": t,
2145
+ className: q("context"),
2146
+ children: [/* @__PURE__ */ O("h2", {
2147
+ className: q("sectionLabel"),
2148
+ id: t,
2149
+ children: "Context"
2150
+ }), /* @__PURE__ */ O("ul", {
2151
+ className: q("chipList"),
2152
+ children: e.map((e) => {
2153
+ let t = o(e.id, "RelayDock context chip id");
2154
+ if (n.has(t)) throw Error(`Duplicate RelayDock context chip id: ${t}`);
2155
+ return n.add(t), /* @__PURE__ */ k("li", {
2156
+ className: q("chip"),
2157
+ "data-rly-relay-dock-context": t,
2158
+ children: [/* @__PURE__ */ O("span", {
2159
+ className: q("chipLabel"),
2160
+ children: o(e.label, "RelayDock context chip label")
2161
+ }), /* @__PURE__ */ O("span", {
2162
+ className: q("chipValue"),
2163
+ children: o(e.value, "RelayDock context chip value")
2164
+ })]
2165
+ }, t);
2166
+ })
2167
+ })]
2168
+ });
2169
+ }, Sn = ({ labelId: e, selection: t }) => {
2170
+ let n = E(), r = E();
2171
+ return /* @__PURE__ */ k("section", {
2172
+ "aria-labelledby": e,
2173
+ className: q("selection"),
2174
+ children: [/* @__PURE__ */ O("h2", {
2175
+ className: q("sectionLabel"),
2176
+ id: e,
2177
+ children: "Run with"
2178
+ }), /* @__PURE__ */ k("div", {
2179
+ className: q("selectionGrid"),
2180
+ children: [/* @__PURE__ */ O(re, {
2181
+ controlId: `rly-relay-dock-profile-${n}`,
2182
+ label: "Profile",
2183
+ size: "compact",
2184
+ children: (e) => /* @__PURE__ */ O(ne, {
2185
+ ...e,
2186
+ ...t.profile.disabled === void 0 ? {} : { disabled: t.profile.disabled },
2187
+ onValueChange: t.profile.onValueChange,
2188
+ options: t.profile.options,
2189
+ size: "compact",
2190
+ value: t.profile.value
2191
+ })
2192
+ }), /* @__PURE__ */ O(re, {
2193
+ controlId: `rly-relay-dock-model-${r}`,
2194
+ label: "Model",
2195
+ size: "compact",
2196
+ children: (e) => /* @__PURE__ */ O(ne, {
2197
+ ...e,
2198
+ ...t.model.disabled === void 0 ? {} : { disabled: t.model.disabled },
2199
+ onValueChange: t.model.onValueChange,
2200
+ options: t.model.options,
2201
+ size: "compact",
2202
+ value: t.model.value
2203
+ })
2204
+ })]
2205
+ })]
2206
+ });
2207
+ }, Cn = ({ state: e }) => {
2208
+ if (e.status === "ready") return /* @__PURE__ */ O("section", {
2209
+ "aria-live": "polite",
2210
+ className: q("ready"),
2211
+ "data-rly-relay-dock-state": "ready",
2212
+ children: e.content
2213
+ });
2214
+ let t = e.status === "error" ? "assertive" : "polite", n = e.status === "loading" ? "progress" : e.status === "error" ? "critical" : "neutral";
2215
+ return /* @__PURE__ */ O(x, {
2216
+ action: "action" in e ? e.action : void 0,
2217
+ announce: t,
2218
+ className: q("state"),
2219
+ "data-rly-relay-dock-state": e.status,
2220
+ description: e.description,
2221
+ title: o(e.title, `RelayDock ${e.status} title`),
2222
+ tone: n
2223
+ });
2224
+ }, wn = ({ context: e, footer: t, selection: n, state: r }) => {
2225
+ let i = E(), a = E();
2226
+ return /* @__PURE__ */ k("div", {
2227
+ className: q("contents"),
2228
+ "data-rly-relay-dock-scroll": "",
2229
+ children: [
2230
+ /* @__PURE__ */ k("div", {
2231
+ className: q("fixedContext"),
2232
+ children: [/* @__PURE__ */ O(xn, {
2233
+ context: e,
2234
+ labelId: i
2235
+ }), /* @__PURE__ */ O(Sn, {
2236
+ labelId: a,
2237
+ selection: n
2238
+ })]
2239
+ }),
2240
+ /* @__PURE__ */ O("section", {
2241
+ "aria-label": "Relay thread",
2242
+ className: q("body"),
2243
+ tabIndex: 0,
2244
+ children: /* @__PURE__ */ O(Cn, { state: r })
2245
+ }),
2246
+ t == null ? null : /* @__PURE__ */ O("footer", {
2247
+ className: q("footer"),
2248
+ children: t
2249
+ })
2250
+ ]
2251
+ });
2252
+ }, Tn = ({ restoreDocument: e, restoreTarget: t, target: n }) => {
2253
+ let r = D(!1);
2254
+ return oe(() => {
2255
+ let i = n.current;
2256
+ i !== null && (r.current ||= (t.current = Xt(e ?? i.ownerDocument), !0), i.focus());
2257
+ }, [
2258
+ e,
2259
+ t,
2260
+ n
2261
+ ]), null;
2262
+ }, En = ({ children: e, modal: t, modalLayer: n }) => {
2263
+ let r = D(null);
2264
+ return g(), _(r, t), y(r, t), /* @__PURE__ */ O("div", {
2265
+ className: q("layer"),
2266
+ "data-rly-modal-layer": n ? "" : void 0,
2267
+ "data-rly-relay-dock-modal": t ? "true" : "false",
2268
+ ref: r,
2269
+ children: e
2270
+ });
2271
+ }, Dn = ({ closeRef: t, compactViewport: r, context: i, description: a, footer: o, headingId: s, modal: c, onClose: l, parentModalPresent: u, restoreDocument: p, restoreTargetRef: m, selection: h, state: g, title: _ }) => {
2272
+ let v = `${s}-description`, y = D(null);
2273
+ oe(() => {
2274
+ let e = y.current;
2275
+ if (!(!c || e === null)) return hn(e);
2276
+ }, [c]);
2277
+ let b = (e) => {
2278
+ let t = e.currentTarget;
2279
+ if (!e.nativeEvent.composedPath().includes(t) || e.defaultPrevented) return;
2280
+ if (e.key === "Escape") {
2281
+ if (e.nativeEvent.isComposing) return;
2282
+ e.stopPropagation(), l();
2283
+ return;
2284
+ }
2285
+ if (!c || e.key !== "Tab") return;
2286
+ let n = un(t), r = new Map(n.map(({ composedParent: e, element: t }) => [t, e])), i = (e) => {
2287
+ let t = /* @__PURE__ */ new Set(), n = e;
2288
+ for (; !t.has(n);) {
2289
+ t.add(n);
2290
+ let e = Kt(n, r);
2291
+ if (e === null) return null;
2292
+ if (f(e) && e.shadowRoot?.delegatesFocus === !0) return e;
2293
+ n = e;
2294
+ }
2295
+ return null;
2296
+ }, a = dn(t, n, r), o = a[0] ?? t, s = a[a.length - 1] ?? t, u = Ht(t), d = new Set(a), p = u !== null && Jt(t, u) && !a.some((e) => e === u), m = (e) => {
2297
+ let t = /* @__PURE__ */ new Set(), i = e;
2298
+ for (; !t.has(i);) {
2299
+ t.add(i);
2300
+ let e = n.findIndex(({ element: e }) => e === i);
2301
+ if (e >= 0) return e;
2302
+ let a = Kt(i, r);
2303
+ if (a === null) return -1;
2304
+ i = a;
2305
+ }
2306
+ return -1;
2307
+ }, h = p && u !== null ? i(u) : null, g = p && u !== null ? m(u) : -1, _ = p ? ((e) => {
2308
+ if (g < 0) return null;
2309
+ for (let t = g + e; t >= 0 && t < n.length; t += e) {
2310
+ let e = n[t]?.element;
2311
+ if (e !== void 0 && d.has(e) && en(e)) return e;
2312
+ }
2313
+ return null;
2314
+ })(e.shiftKey ? -1 : 1) : null, v = h !== null && _ !== null && qt(h, _, r), y = p && !v && (_ === null || !Jt(t, _)), b = e.shiftKey && (u === o || !Jt(t, u) || v || y), x = !e.shiftKey && (u === s || !Jt(t, u) || v || y);
2315
+ !b && !x || (e.preventDefault(), (v && _ !== null ? _ : e.shiftKey ? s : o).focus());
2316
+ };
2317
+ return /* @__PURE__ */ O(n, { children: (n) => /* @__PURE__ */ O(ie.Root, {
2318
+ container: n,
2319
+ children: /* @__PURE__ */ k(En, {
2320
+ modal: c,
2321
+ modalLayer: c || u,
2322
+ children: [c ? /* @__PURE__ */ O("div", {
2323
+ "aria-hidden": "true",
2324
+ className: q("overlay"),
2325
+ "data-rly-relay-dock-overlay": "",
2326
+ onPointerDown: l
2327
+ }) : null, /* @__PURE__ */ k("section", {
2328
+ "aria-describedby": v,
2329
+ "aria-labelledby": s,
2330
+ "aria-modal": c ? !0 : void 0,
2331
+ className: d(q("panel"), q(c ? "sheet" : "rail")),
2332
+ "data-rly-relay-dock-presentation": r ? "mobile-sheet" : c ? "overlay" : "rail",
2333
+ onKeyDown: b,
2334
+ ref: y,
2335
+ role: c ? "dialog" : "complementary",
2336
+ tabIndex: -1,
2337
+ children: [
2338
+ /* @__PURE__ */ k("header", {
2339
+ className: q("railHeader"),
2340
+ children: [/* @__PURE__ */ k("div", {
2341
+ className: q("railHeading"),
2342
+ children: [/* @__PURE__ */ O("h1", {
2343
+ className: q("title"),
2344
+ id: s,
2345
+ children: _
2346
+ }), /* @__PURE__ */ O("p", {
2347
+ className: q("description"),
2348
+ id: v,
2349
+ children: a
2350
+ })]
2351
+ }), /* @__PURE__ */ O("button", {
2352
+ "aria-label": `Close ${_}`,
2353
+ className: q("close"),
2354
+ onClick: l,
2355
+ ref: t,
2356
+ type: "button",
2357
+ children: /* @__PURE__ */ O(e, {
2358
+ decorative: !0,
2359
+ name: "close"
2360
+ })
2361
+ })]
2362
+ }),
2363
+ /* @__PURE__ */ O(Tn, {
2364
+ restoreDocument: p,
2365
+ restoreTarget: m,
2366
+ target: t
2367
+ }),
2368
+ /* @__PURE__ */ O(wn, {
2369
+ context: i,
2370
+ footer: o,
2371
+ selection: h,
2372
+ state: g
2373
+ })
2374
+ ]
2375
+ })]
2376
+ })
2377
+ }) });
2378
+ }, On = (e) => {
2379
+ let { className: n, context: r, defaultOpen: i = !1, description: a = "Ask in this context or prepare approval-bound work.", desktopPresentation: s = "overlay", footer: c, onOpenChange: l, open: u, ref: f, selection: p, state: g, title: _ = "Relay", triggerLabel: y = "Open Relay", ...b } = e, [x, S] = se(i), C = m(), ne = h(), re = t(), w = (u ?? x) && ne && re.available, T = yn(re.available ? re.container.ownerDocument.defaultView : null), ie = T || s === "overlay", ae = D(null), ce = D(null), le = D(null), ue = D({
2380
+ modal: ie,
2381
+ open: !1
2382
+ }), A = E(), de = o(a, "RelayDock description"), fe = o(_, "RelayDock title"), pe = o(y, "RelayDock triggerLabel"), j = (e) => {
2383
+ u === void 0 && S(e), l?.(e);
2384
+ };
2385
+ return oe(() => {
2386
+ let e = ue.current;
2387
+ ue.current = {
2388
+ modal: ie,
2389
+ open: w
2390
+ }, !e.open && w ? (te(), ce.current?.focus()) : e.open && w && e.modal !== ie ? ce.current?.focus() : e.open && !w && (ee(le.current ?? ae.current), le.current = null);
2391
+ }, [ie, w]), /* @__PURE__ */ k("div", {
2392
+ ...b,
2393
+ className: d(q("root"), n),
2394
+ "data-rly-relay-dock": "",
2395
+ "data-rly-relay-dock-open": w ? "true" : "false",
2396
+ ref: f,
2397
+ children: [/* @__PURE__ */ k("button", {
2398
+ "aria-expanded": w,
2399
+ "aria-haspopup": ie ? "dialog" : void 0,
2400
+ className: q("trigger"),
2401
+ "data-rly-relay-dock-trigger": "",
2402
+ hidden: w,
2403
+ onClick: (e) => {
2404
+ e.currentTarget.focus(), j(!0);
2405
+ },
2406
+ ref: ae,
2407
+ type: "button",
2408
+ children: [/* @__PURE__ */ O(bn, {}), /* @__PURE__ */ O("span", { children: pe })]
2409
+ }), w ? /* @__PURE__ */ O(v, { children: /* @__PURE__ */ O(Dn, {
2410
+ closeRef: ce,
2411
+ compactViewport: T,
2412
+ context: r,
2413
+ description: de,
2414
+ footer: c,
2415
+ headingId: A,
2416
+ modal: ie,
2417
+ onClose: () => j(!1),
2418
+ parentModalPresent: C,
2419
+ restoreDocument: ae.current?.ownerDocument ?? null,
2420
+ restoreTargetRef: le,
2421
+ selection: p,
2422
+ state: g,
2423
+ title: fe
2424
+ }) }) : null]
2425
+ });
2426
+ }, kn = /^(?:--[A-Za-z0-9_\-\u0080-\uD7FF\uE000-\u{10ffff}]*|-?[A-Za-z_\u0080-\uD7FF\uE000-\u{10ffff}][A-Za-z0-9_\-\u0080-\uD7FF\uE000-\u{10ffff}]*)$/u, An = /* @__PURE__ */ new Set([
2427
+ "auto",
2428
+ "default",
2429
+ "inherit",
2430
+ "initial",
2431
+ "match-element",
2432
+ "none",
2433
+ "revert",
2434
+ "revert-layer",
2435
+ "unset"
2436
+ ]), jn = (e) => {
2437
+ if (e === void 0) return;
2438
+ let t = {
2439
+ relay: e.relay,
2440
+ verdict: e.verdict,
2441
+ version: e.version
2442
+ }, n = [
2443
+ ["relay", t.relay],
2444
+ ["verdict", t.verdict],
2445
+ ["version", t.version]
2446
+ ], r = /* @__PURE__ */ new Set();
2447
+ for (let [e, t] of n) {
2448
+ let n = o(t, `Release transition ${e} name`);
2449
+ if (n === "root" || An.has(n.toLowerCase())) throw Error(`Release transition ${e} name must not use a reserved CSS value: ${n}`);
2450
+ if (!kn.test(n)) throw Error(`Release transition ${e} name must be a valid unescaped CSS custom identifier: ${n}`);
2451
+ if (r.has(n)) throw Error(`Release transition names must be unique: ${n}`);
2452
+ r.add(n);
2453
+ }
2454
+ return Object.freeze(t);
2455
+ }, Mn = {
2456
+ blocked: !0,
2457
+ ready: !0,
2458
+ deploying: !0,
2459
+ building: !0,
2460
+ shipped: !0,
2461
+ held: !0,
2462
+ unknown: !0
2463
+ }, Nn = (e) => {
2464
+ if (o(e.id, "Release presentation id"), o(e.version, "Release presentation version"), o(e.codename, "Release presentation codename"), o(e.algorithm, "Release presentation algorithm"), o(e.verdict, "Release presentation verdict"), o(e.reason, "Release presentation reason"), !Object.hasOwn(Mn, e.state)) throw Error("Release presentation state must be supported");
2465
+ e.freshnessDateTime !== void 0 && (o(e.freshnessDateTime, "Release presentation freshnessDateTime"), o(e.freshnessTime, "Release presentation freshnessTime"));
2466
+ let t = /* @__PURE__ */ new Set();
2467
+ for (let n of e.facts) {
2468
+ let e = o(n.id, "Release presentation fact id");
2469
+ if (t.has(e)) throw Error(`Release presentation fact ids must be unique: ${e}`);
2470
+ t.add(e), o(n.label, `Release presentation fact label for ${e}`), o(n.value, `Release presentation fact value for ${e}`);
2471
+ }
2472
+ return e;
2473
+ }, Pn = {
2474
+ root: "rly_ReleaseRelay-module__root",
2475
+ tiles: "rly_ReleaseRelay-module__tiles",
2476
+ handoff: "rly_ReleaseRelay-module__handoff",
2477
+ tile: "rly_ReleaseRelay-module__tile",
2478
+ glyph: "rly_ReleaseRelay-module__glyph",
2479
+ identity: "rly_ReleaseRelay-module__identity",
2480
+ codename: "rly_ReleaseRelay-module__codename",
2481
+ algorithm: "rly_ReleaseRelay-module__algorithm",
2482
+ compact: "rly_ReleaseRelay-module__compact",
2483
+ hero: "rly_ReleaseRelay-module__hero"
2484
+ }, J = (e) => c(Pn, e), Fn = l({
2485
+ 0: { name: "orbit" },
2486
+ 1: { name: "split" },
2487
+ 2: { name: "brace" },
2488
+ 3: { name: "wave" },
2489
+ 4: { name: "gate" },
2490
+ 5: { name: "fork" },
2491
+ 6: { name: "bridge" },
2492
+ 7: { name: "beacon" },
2493
+ 8: { name: "loop" },
2494
+ 9: { name: "pulse" },
2495
+ 10: { name: "anchor" },
2496
+ 11: { name: "ladder" },
2497
+ 12: { name: "knot" },
2498
+ 13: { name: "spark" },
2499
+ 14: { name: "stack" },
2500
+ 15: { name: "compass" }
2501
+ }), In = l({ size: {
2502
+ compact: {
2503
+ className: J("compact"),
2504
+ purpose: "Release rows and compact previews",
2505
+ tokens: [
2506
+ "space-32",
2507
+ "space-8",
2508
+ "type-label"
2509
+ ]
2510
+ },
2511
+ hero: {
2512
+ className: J("hero"),
2513
+ purpose: "Page-level release identity",
2514
+ tokens: [
2515
+ "space-48",
2516
+ "space-4",
2517
+ "space-8",
2518
+ "type-card-title"
2519
+ ]
2520
+ }
2521
+ } }), Ln = l({ size: "compact" }), Rn = {
2522
+ 0: "M12 4a8 8 0 1 1-6.9 4M5.1 8H9V4.1",
2523
+ 1: "M5 5v4c0 2 1 3 3 3h8c2 0 3 1 3 3v4M12 12V5",
2524
+ 2: "M9 4H7v5l-3 3 3 3v5h2M15 4h2v5l3 3-3 3v5h-2",
2525
+ 3: "M3 9c3-4 6-4 9 0s6 4 9 0M3 15c3-4 6-4 9 0s6 4 9 0",
2526
+ 4: "M5 19V8l7-4 7 4v11M9 19v-7h6v7",
2527
+ 5: "M12 20V9M12 12 6 6M12 12l6-6M6 6v4M18 6v4",
2528
+ 6: "M3 17h18M5 17v-5c4-5 10-5 14 0v5M8 17v-3M16 17v-3",
2529
+ 7: "M12 3v3M5.6 5.6l2.1 2.1M18.4 5.6l-2.1 2.1M6 20h12l-2-9H8Z",
2530
+ 8: "M8 8a4 4 0 0 1 8 0v8a4 4 0 0 1-8 0V8Zm0 4h8",
2531
+ 9: "M3 13h4l2-6 4 12 2-6h6",
2532
+ 10: "M12 3v15M8 7h8M5 14c0 4 3 7 7 7s7-3 7-7M5 14l-2 2M19 14l2 2",
2533
+ 11: "M7 3v18M17 3v18M7 7h10M7 12h10M7 17h10",
2534
+ 12: "M8 5a4 4 0 0 1 4 4v6a4 4 0 1 0 4-4H8a4 4 0 1 0 4 4V9a4 4 0 0 1 4-4",
2535
+ 13: "M12 3v5M12 16v5M3 12h5M16 12h5M5.6 5.6l3.5 3.5M14.9 14.9l3.5 3.5M18.4 5.6l-3.5 3.5M9.1 14.9l-3.5 3.5",
2536
+ 14: "m4 8 8-4 8 4-8 4Zm0 4 8 4 8-4M4 16l8 4 8-4",
2537
+ 15: "m12 3 3 6 6 3-6 3-3 6-3-6-6-3 6-3Zm0 6v6M9 12h6"
2538
+ }, zn = (e) => {
2539
+ if (e.length !== 3) throw Error("ReleaseRelay symbolIndices must contain exactly three indices");
2540
+ let t = /* @__PURE__ */ new Set();
2541
+ for (let n of e) {
2542
+ if (!Number.isInteger(n) || n < 0 || n > 15) throw Error("ReleaseRelay symbol indices must be integers from 0 through 15");
2543
+ if (t.has(n)) throw Error("ReleaseRelay symbol indices must be distinct");
2544
+ t.add(n);
2545
+ }
2546
+ return e;
2547
+ }, Bn = ({ algorithm: e, className: t, codename: n, size: r = "compact", symbolIndices: i, ...a }) => {
2548
+ let s = o(e, "ReleaseRelay algorithm"), c = o(n, "ReleaseRelay codename"), l = zn(i), u = `Release relay, ${c}, symbols ${l.map((e) => Fn[e].name).join(", ")}.`;
2549
+ return /* @__PURE__ */ k("figure", {
2550
+ ...a,
2551
+ className: d(J("root"), In.size[r].className, t),
2552
+ "data-rly-release-relay-size": r,
2553
+ children: [/* @__PURE__ */ k("span", {
2554
+ "aria-label": u,
2555
+ className: J("tiles"),
2556
+ role: "img",
2557
+ children: [/* @__PURE__ */ O("span", {
2558
+ "aria-hidden": "true",
2559
+ className: J("handoff"),
2560
+ "data-rly-release-relay-handoff": ""
2561
+ }), l.map((e, t) => /* @__PURE__ */ O("span", {
2562
+ "aria-hidden": "true",
2563
+ className: J("tile"),
2564
+ "data-rly-release-relay-position": t,
2565
+ "data-rly-release-symbol-index": e,
2566
+ "data-rly-release-symbol-name": Fn[e].name,
2567
+ children: /* @__PURE__ */ O("svg", {
2568
+ className: J("glyph"),
2569
+ focusable: "false",
2570
+ viewBox: "0 0 24 24",
2571
+ children: /* @__PURE__ */ O("path", {
2572
+ d: Rn[e],
2573
+ fill: "none",
2574
+ stroke: "currentColor",
2575
+ strokeLinecap: "round",
2576
+ strokeLinejoin: "round",
2577
+ strokeWidth: "1.7",
2578
+ vectorEffect: "non-scaling-stroke"
2579
+ })
2580
+ })
2581
+ }, e))]
2582
+ }), /* @__PURE__ */ k("figcaption", {
2583
+ className: J("identity"),
2584
+ children: [/* @__PURE__ */ O("span", {
2585
+ className: J("codename"),
2586
+ children: c
2587
+ }), /* @__PURE__ */ k("span", {
2588
+ className: J("algorithm"),
2589
+ children: ["Identity algorithm: ", s]
2590
+ })]
2591
+ })]
2592
+ });
2593
+ }, Vn = {
2594
+ body: "rly_ReleasePreview-module__body",
2595
+ summary: "rly_ReleasePreview-module__summary",
2596
+ releaseMeta: "rly_ReleasePreview-module__releaseMeta",
2597
+ personGroup: "rly_ReleasePreview-module__personGroup",
2598
+ fact: "rly_ReleasePreview-module__fact",
2599
+ dialogSurface: "rly_ReleasePreview-module__dialogSurface",
2600
+ dialogFrame: "rly_ReleasePreview-module__dialogFrame",
2601
+ dialogScroll: "rly_ReleasePreview-module__dialogScroll",
2602
+ identityRow: "rly_ReleasePreview-module__identityRow",
2603
+ version: "rly_ReleasePreview-module__version",
2604
+ people: "rly_ReleasePreview-module__people",
2605
+ eyebrow: "rly_ReleasePreview-module__eyebrow",
2606
+ unassigned: "rly_ReleasePreview-module__unassigned",
2607
+ facts: "rly_ReleasePreview-module__facts",
2608
+ slot: "rly_ReleasePreview-module__slot",
2609
+ dialogFooter: "rly_ReleasePreview-module__dialogFooter",
2610
+ sheetFooter: "rly_ReleasePreview-module__sheetFooter",
2611
+ dialogClose: "rly_ReleasePreview-module__dialogClose",
2612
+ fullViewButton: "rly_ReleasePreview-module__fullViewButton"
2613
+ }, Y = (e) => c(Vn, e), Hn = ({ agentEntry: e, collaborators: t, entryMotion: n = "intrinsic", evidence: r, onOpenChange: i, onOpenFullView: a, open: s, openFullViewLabel: c = "Open full view", presentation: l = "dialog", primaryAction: u, release: d, stages: f, transitionNames: m, workset: h }) => {
2614
+ let g = Nn(d), _ = jn(m), v = o(c, "ReleasePreview openFullViewLabel"), y = D(null), x = g.freshnessDateTime === void 0 ? /* @__PURE__ */ O(R, { state: g.freshness }) : /* @__PURE__ */ O(R, {
2615
+ dateTime: g.freshnessDateTime,
2616
+ state: g.freshness,
2617
+ time: g.freshnessTime
2618
+ }), S = `Release preview: ${g.version} ${g.codename}`, C = /* @__PURE__ */ k("div", {
2619
+ className: Y("body"),
2620
+ "data-rly-release-preview-presentation": l,
2621
+ "data-rly-release-state": g.state,
2622
+ children: [
2623
+ /* @__PURE__ */ k("section", {
2624
+ "aria-label": "Release summary",
2625
+ className: Y("summary"),
2626
+ "data-rly-release-preview-summary": "",
2627
+ ref: y,
2628
+ tabIndex: -1,
2629
+ children: [
2630
+ /* @__PURE__ */ k("div", {
2631
+ className: Y("identityRow"),
2632
+ children: [/* @__PURE__ */ O(Bn, {
2633
+ algorithm: g.algorithm,
2634
+ codename: g.codename,
2635
+ "data-rly-release-transition-name": _?.relay,
2636
+ "data-rly-release-transition-part": "relay",
2637
+ size: "hero",
2638
+ style: _ === void 0 ? void 0 : { viewTransitionName: _.relay },
2639
+ symbolIndices: g.symbolIndices
2640
+ }), /* @__PURE__ */ k("div", {
2641
+ className: Y("releaseMeta"),
2642
+ children: [/* @__PURE__ */ O("p", {
2643
+ className: Y("version"),
2644
+ "data-rly-release-transition-name": _?.version,
2645
+ "data-rly-release-transition-part": "version",
2646
+ style: _ === void 0 ? void 0 : { viewTransitionName: _.version },
2647
+ children: g.version
2648
+ }), x]
2649
+ })]
2650
+ }),
2651
+ /* @__PURE__ */ k("div", {
2652
+ className: Y("people"),
2653
+ children: [/* @__PURE__ */ k("div", {
2654
+ className: Y("personGroup"),
2655
+ children: [/* @__PURE__ */ O("span", {
2656
+ className: Y("eyebrow"),
2657
+ children: "Owner"
2658
+ }), g.owner === void 0 ? /* @__PURE__ */ O("span", {
2659
+ className: Y("unassigned"),
2660
+ "data-rly-release-owner": "unassigned",
2661
+ children: "Unassigned"
2662
+ }) : /* @__PURE__ */ O(F, { person: g.owner })]
2663
+ }), /* @__PURE__ */ k("div", {
2664
+ className: Y("personGroup"),
2665
+ children: [/* @__PURE__ */ O("span", {
2666
+ className: Y("eyebrow"),
2667
+ children: "Approver"
2668
+ }), g.approver === void 0 ? /* @__PURE__ */ O("span", {
2669
+ className: Y("unassigned"),
2670
+ "data-rly-release-approver": "unassigned",
2671
+ children: "Unassigned"
2672
+ }) : /* @__PURE__ */ O(F, { person: g.approver })]
2673
+ })]
2674
+ }),
2675
+ /* @__PURE__ */ O(ct, {
2676
+ "data-rly-release-transition-name": _?.verdict,
2677
+ "data-rly-release-transition-part": "verdict",
2678
+ reason: g.reason,
2679
+ style: _ === void 0 ? void 0 : { viewTransitionName: _.verdict },
2680
+ tone: g.tone,
2681
+ verdict: g.verdict
2682
+ }),
2683
+ /* @__PURE__ */ O("dl", {
2684
+ className: Y("facts"),
2685
+ children: g.facts.map((e) => /* @__PURE__ */ k("div", {
2686
+ className: Y("fact"),
2687
+ children: [/* @__PURE__ */ O("dt", { children: e.label }), /* @__PURE__ */ O("dd", { children: e.value })]
2688
+ }, e.id))
2689
+ })
2690
+ ]
2691
+ }),
2692
+ t === void 0 ? null : /* @__PURE__ */ O("div", {
2693
+ className: Y("slot"),
2694
+ "data-rly-release-preview-slot": "collaborators",
2695
+ children: t
2696
+ }),
2697
+ /* @__PURE__ */ O("div", {
2698
+ className: Y("slot"),
2699
+ "data-rly-release-preview-slot": "primary-action",
2700
+ children: u
2701
+ }),
2702
+ /* @__PURE__ */ O("div", {
2703
+ className: Y("slot"),
2704
+ "data-rly-release-preview-slot": "stages",
2705
+ children: f
2706
+ }),
2707
+ /* @__PURE__ */ O("div", {
2708
+ className: Y("slot"),
2709
+ "data-rly-release-preview-slot": "workset",
2710
+ children: h
2711
+ }),
2712
+ /* @__PURE__ */ O("div", {
2713
+ className: Y("slot"),
2714
+ "data-rly-release-preview-slot": "evidence",
2715
+ children: r
2716
+ }),
2717
+ /* @__PURE__ */ O("div", {
2718
+ className: Y("slot"),
2719
+ "data-rly-release-preview-slot": "agent-entry",
2720
+ children: e
2721
+ })
2722
+ ]
2723
+ }), ee = /* @__PURE__ */ O(b, {
2724
+ className: Y("fullViewButton"),
2725
+ onClick: a,
2726
+ size: "default",
2727
+ variant: "secondary",
2728
+ children: v
2729
+ });
2730
+ return l === "sheet" ? /* @__PURE__ */ O(p.Root, {
2731
+ onOpenChange: i,
2732
+ open: s,
2733
+ children: /* @__PURE__ */ k(p.Content, {
2734
+ entryMotion: n,
2735
+ initialFocusRef: y,
2736
+ title: S,
2737
+ children: [/* @__PURE__ */ O(p.Body, {
2738
+ "data-rly-release-preview-scroll": "sheet",
2739
+ children: C
2740
+ }), /* @__PURE__ */ O(p.Footer, {
2741
+ className: Y("sheetFooter"),
2742
+ "data-rly-release-preview-footer": "sheet",
2743
+ children: ee
2744
+ })]
2745
+ })
2746
+ }) : /* @__PURE__ */ O(w.Root, {
2747
+ onOpenChange: i,
2748
+ open: s,
2749
+ children: /* @__PURE__ */ O(w.Content, {
2750
+ className: Y("dialogSurface"),
2751
+ entryMotion: n,
2752
+ initialFocusRef: y,
2753
+ size: "wide",
2754
+ title: S,
2755
+ children: /* @__PURE__ */ k("div", {
2756
+ className: Y("dialogFrame"),
2757
+ children: [
2758
+ /* @__PURE__ */ O("div", {
2759
+ className: Y("dialogClose"),
2760
+ children: /* @__PURE__ */ O(w.Close, {
2761
+ size: "compact",
2762
+ variant: "quiet",
2763
+ children: "Close preview"
2764
+ })
2765
+ }),
2766
+ /* @__PURE__ */ O("div", {
2767
+ className: Y("dialogScroll"),
2768
+ "data-rly-release-preview-scroll": "dialog",
2769
+ children: C
2770
+ }),
2771
+ /* @__PURE__ */ O("footer", {
2772
+ className: Y("dialogFooter"),
2773
+ "data-rly-release-preview-footer": "dialog",
2774
+ children: ee
2775
+ })
2776
+ ]
2777
+ })
2778
+ })
2779
+ });
2780
+ }, Un = {
2781
+ root: "rly_ReleaseRow-module__root",
2782
+ identity: "rly_ReleaseRow-module__identity",
2783
+ verdictBlock: "rly_ReleaseRow-module__verdictBlock",
2784
+ people: "rly_ReleaseRow-module__people",
2785
+ actions: "rly_ReleaseRow-module__actions",
2786
+ personGroup: "rly_ReleaseRow-module__personGroup",
2787
+ fact: "rly_ReleaseRow-module__fact",
2788
+ version: "rly_ReleaseRow-module__version",
2789
+ verdict: "rly_ReleaseRow-module__verdict",
2790
+ reason: "rly_ReleaseRow-module__reason",
2791
+ eyebrow: "rly_ReleaseRow-module__eyebrow",
2792
+ unassigned: "rly_ReleaseRow-module__unassigned",
2793
+ facts: "rly_ReleaseRow-module__facts",
2794
+ agentEntry: "rly_ReleaseRow-module__agentEntry",
2795
+ previewButton: "rly_ReleaseRow-module__previewButton"
2796
+ }, X = (e) => c(Un, e), Wn = ({ agentEntry: e, className: t, onPreview: n, previewLabel: r = "Preview release", release: i, transitionNames: a, ...s }) => {
2797
+ let c = Nn(i), l = jn(a), u = o(r, "ReleaseRow previewLabel"), f = `rly-release-row-verdict-${E()}`, p = c.freshnessDateTime === void 0 ? /* @__PURE__ */ O(R, {
2798
+ size: "compact",
2799
+ state: c.freshness
2800
+ }) : /* @__PURE__ */ O(R, {
2801
+ dateTime: c.freshnessDateTime,
2802
+ size: "compact",
2803
+ state: c.freshness,
2804
+ time: c.freshnessTime
2805
+ });
2806
+ return /* @__PURE__ */ k("article", {
2807
+ ...s,
2808
+ className: d(X("root"), t),
2809
+ "data-rly-release-id": c.id,
2810
+ "data-rly-release-state": c.state,
2811
+ children: [
2812
+ /* @__PURE__ */ k("div", {
2813
+ className: X("identity"),
2814
+ children: [
2815
+ /* @__PURE__ */ O(Bn, {
2816
+ algorithm: c.algorithm,
2817
+ codename: c.codename,
2818
+ "data-rly-release-transition-name": l?.relay,
2819
+ "data-rly-release-transition-part": "relay",
2820
+ size: "compact",
2821
+ style: l === void 0 ? void 0 : { viewTransitionName: l.relay },
2822
+ symbolIndices: c.symbolIndices
2823
+ }),
2824
+ /* @__PURE__ */ O("p", {
2825
+ className: X("version"),
2826
+ "data-rly-release-transition-name": l?.version,
2827
+ "data-rly-release-transition-part": "version",
2828
+ style: l === void 0 ? void 0 : { viewTransitionName: l.version },
2829
+ children: c.version
2830
+ }),
2831
+ p
2832
+ ]
2833
+ }),
2834
+ /* @__PURE__ */ k("section", {
2835
+ "aria-labelledby": f,
2836
+ className: X("verdictBlock"),
2837
+ "data-rly-release-transition-name": l?.verdict,
2838
+ "data-rly-release-transition-part": "verdict",
2839
+ style: l === void 0 ? void 0 : { viewTransitionName: l.verdict },
2840
+ children: [/* @__PURE__ */ O("h2", {
2841
+ className: X("verdict"),
2842
+ id: f,
2843
+ children: c.verdict
2844
+ }), /* @__PURE__ */ O("p", {
2845
+ className: X("reason"),
2846
+ children: c.reason
2847
+ })]
2848
+ }),
2849
+ /* @__PURE__ */ k("div", {
2850
+ className: X("people"),
2851
+ children: [/* @__PURE__ */ k("div", {
2852
+ className: X("personGroup"),
2853
+ children: [/* @__PURE__ */ O("span", {
2854
+ className: X("eyebrow"),
2855
+ children: "Owner"
2856
+ }), c.owner === void 0 ? /* @__PURE__ */ O("span", {
2857
+ className: X("unassigned"),
2858
+ "data-rly-release-owner": "unassigned",
2859
+ children: "Unassigned"
2860
+ }) : /* @__PURE__ */ O(F, {
2861
+ person: c.owner,
2862
+ size: "compact"
2863
+ })]
2864
+ }), c.approver === void 0 ? null : /* @__PURE__ */ k("div", {
2865
+ className: X("personGroup"),
2866
+ children: [/* @__PURE__ */ O("span", {
2867
+ className: X("eyebrow"),
2868
+ children: "Approver"
2869
+ }), /* @__PURE__ */ O(F, {
2870
+ person: c.approver,
2871
+ size: "compact"
2872
+ })]
2873
+ })]
2874
+ }),
2875
+ /* @__PURE__ */ O("dl", {
2876
+ className: X("facts"),
2877
+ children: c.facts.map((e) => /* @__PURE__ */ k("div", {
2878
+ className: X("fact"),
2879
+ "data-rly-release-fact": e.id,
2880
+ children: [/* @__PURE__ */ O("dt", { children: e.label }), /* @__PURE__ */ O("dd", { children: e.value })]
2881
+ }, e.id))
2882
+ }),
2883
+ /* @__PURE__ */ k("div", {
2884
+ className: X("actions"),
2885
+ children: [/* @__PURE__ */ O(b, {
2886
+ className: X("previewButton"),
2887
+ onClick: n,
2888
+ size: "default",
2889
+ children: u
2890
+ }), e === void 0 ? null : /* @__PURE__ */ O("div", {
2891
+ className: X("agentEntry"),
2892
+ children: e
2893
+ })]
2894
+ })
2895
+ ]
2896
+ });
2897
+ }, Gn = {
2898
+ root: "rly_StageRail-module__root",
2899
+ heading: "rly_StageRail-module__heading",
2900
+ list: "rly_StageRail-module__list",
2901
+ item: "rly_StageRail-module__item",
2902
+ marker: "rly_StageRail-module__marker",
2903
+ connector: "rly_StageRail-module__connector",
2904
+ content: "rly_StageRail-module__content",
2905
+ name: "rly_StageRail-module__name",
2906
+ reason: "rly_StageRail-module__reason",
2907
+ empty: "rly_StageRail-module__empty",
2908
+ compact: "rly_StageRail-module__compact",
2909
+ defaultSize: "rly_StageRail-module__defaultSize",
2910
+ long: "rly_StageRail-module__long"
2911
+ }, Z = (e) => c(Gn, e), Kn = l({ size: {
2912
+ compact: {
2913
+ className: Z("compact"),
2914
+ purpose: "Dense release and entity stage summaries",
2915
+ tokens: [
2916
+ "space-24",
2917
+ "space-8",
2918
+ "type-label",
2919
+ "type-meta"
2920
+ ]
2921
+ },
2922
+ default: {
2923
+ className: Z("defaultSize"),
2924
+ purpose: "Standard stage progression with supporting context",
2925
+ tokens: [
2926
+ "space-24",
2927
+ "space-12",
2928
+ "type-card-title",
2929
+ "type-body"
2930
+ ]
2931
+ }
2932
+ } }), qn = l({ size: "default" }), Jn = (e) => {
2933
+ let t = /* @__PURE__ */ new Set();
2934
+ for (let n of e) {
2935
+ let e = o(n.id, "StageRail stage id");
2936
+ if (o(n.name, `StageRail name for ${e}`), o(n.state, `StageRail state for ${e}`), n.reason !== void 0 && o(n.reason, `StageRail reason for ${e}`), t.has(e)) throw Error(`StageRail stage ids must be unique: ${e}`);
2937
+ t.add(e);
2938
+ }
2939
+ return e;
2940
+ }, Yn = ({ className: e, emptyLabel: t = "No stages recorded.", heading: n, size: r = "default", stages: i, ...a }) => {
2941
+ let s = o(n, "StageRail heading"), c = o(t, "StageRail emptyLabel"), l = Jn(i), u = `rly-stage-rail-${E()}`;
2942
+ return /* @__PURE__ */ k("section", {
2943
+ ...a,
2944
+ "aria-labelledby": u,
2945
+ className: d(Z("root"), Kn.size[r].className, l.length > 6 && Z("long"), e),
2946
+ "data-rly-stage-rail-size": r,
2947
+ children: [/* @__PURE__ */ O("h2", {
2948
+ className: Z("heading"),
2949
+ id: u,
2950
+ children: s
2951
+ }), l.length === 0 ? /* @__PURE__ */ O("p", {
2952
+ className: Z("empty"),
2953
+ children: c
2954
+ }) : /* @__PURE__ */ O("ol", {
2955
+ className: Z("list"),
2956
+ children: l.map((e, t) => /* @__PURE__ */ k("li", {
2957
+ className: Z("item"),
2958
+ "data-rly-stage-id": e.id,
2959
+ children: [
2960
+ /* @__PURE__ */ O("span", {
2961
+ "aria-hidden": "true",
2962
+ className: Z("marker"),
2963
+ "data-rly-stage-marker": "",
2964
+ children: t + 1
2965
+ }),
2966
+ t === l.length - 1 ? null : /* @__PURE__ */ O("span", {
2967
+ "aria-hidden": "true",
2968
+ className: Z("connector"),
2969
+ "data-rly-stage-connector": ""
2970
+ }),
2971
+ /* @__PURE__ */ k("div", {
2972
+ className: Z("content"),
2973
+ children: [
2974
+ /* @__PURE__ */ O("h3", {
2975
+ className: Z("name"),
2976
+ children: e.name
2977
+ }),
2978
+ /* @__PURE__ */ O(T, {
2979
+ label: e.state,
2980
+ size: r === "compact" ? "compact" : "default",
2981
+ tone: e.tone
2982
+ }),
2983
+ e.reason === void 0 ? null : /* @__PURE__ */ O("p", {
2984
+ className: Z("reason"),
2985
+ children: e.reason
2986
+ }),
2987
+ e.owner === void 0 ? null : /* @__PURE__ */ O(F, {
2988
+ person: e.owner,
2989
+ size: r
2990
+ })
2991
+ ]
2992
+ })
2993
+ ]
2994
+ }, e.id))
2995
+ })]
2996
+ });
2997
+ }, Xn = {
2998
+ root: "rly_TimelineRow-module__root",
2999
+ time: "rly_TimelineRow-module__time",
3000
+ marker: "rly_TimelineRow-module__marker",
3001
+ dot: "rly_TimelineRow-module__dot",
3002
+ connector: "rly_TimelineRow-module__connector",
3003
+ content: "rly_TimelineRow-module__content",
3004
+ meta: "rly_TimelineRow-module__meta",
3005
+ title: "rly_TimelineRow-module__title",
3006
+ link: "rly_TimelineRow-module__link",
3007
+ detail: "rly_TimelineRow-module__detail",
3008
+ actorKind: "rly_TimelineRow-module__actorKind",
3009
+ actor: "rly_TimelineRow-module__actor"
3010
+ }, Q = (e) => c(Xn, e), Zn = {
3011
+ human: "Human",
3012
+ agent: "Agent",
3013
+ plugin: "Plugin",
3014
+ system: "System"
3015
+ }, Qn = (e) => {
3016
+ if (o(e.id, "TimelineRow event id"), o(e.title, "TimelineRow event title"), o(e.detail, "TimelineRow event detail"), o(e.dateTime, "TimelineRow event dateTime"), o(e.time, "TimelineRow event time"), e.href !== void 0 && o(e.href, "TimelineRow event href"), !Object.hasOwn(Zn, e.actorKind)) throw Error("TimelineRow event actorKind must be human, agent, plugin, or system");
3017
+ return e;
3018
+ }, $n = ({ className: e, continued: t, event: n, ...i }) => {
3019
+ let a = Qn(n), o = `rly-timeline-row-${E()}`, s = /* @__PURE__ */ O("h2", {
3020
+ className: Q("title"),
3021
+ id: o,
3022
+ children: a.title
3023
+ });
3024
+ return /* @__PURE__ */ k("li", {
3025
+ ...i,
3026
+ className: d(Q("root"), e),
3027
+ "data-rly-timeline-actor": a.actorKind,
3028
+ "data-rly-timeline-event-id": a.id,
3029
+ children: [
3030
+ /* @__PURE__ */ O("time", {
3031
+ className: Q("time"),
3032
+ dateTime: a.dateTime,
3033
+ children: a.time
3034
+ }),
3035
+ /* @__PURE__ */ k("span", {
3036
+ "aria-hidden": "true",
3037
+ className: Q("marker"),
3038
+ children: [/* @__PURE__ */ O("span", { className: Q("dot") }), t ? /* @__PURE__ */ O("span", {
3039
+ className: Q("connector"),
3040
+ "data-rly-timeline-connector": ""
3041
+ }) : null]
3042
+ }),
3043
+ /* @__PURE__ */ k("article", {
3044
+ "aria-labelledby": o,
3045
+ className: Q("content"),
3046
+ children: [a.href === void 0 ? s : /* @__PURE__ */ O(r, {
3047
+ className: Q("link"),
3048
+ href: a.href,
3049
+ children: s
3050
+ }), /* @__PURE__ */ O("p", {
3051
+ className: Q("detail"),
3052
+ children: a.detail
3053
+ })]
3054
+ }),
3055
+ /* @__PURE__ */ k("div", {
3056
+ className: Q("meta"),
3057
+ children: [
3058
+ /* @__PURE__ */ O("span", {
3059
+ className: Q("actorKind"),
3060
+ children: Zn[a.actorKind]
3061
+ }),
3062
+ a.service === void 0 ? null : /* @__PURE__ */ O(B, {
3063
+ service: a.service,
3064
+ size: "compact"
3065
+ }),
3066
+ a.actor === void 0 ? null : /* @__PURE__ */ O("div", {
3067
+ className: Q("actor"),
3068
+ children: a.actor
3069
+ })
3070
+ ]
3071
+ })
3072
+ ]
3073
+ });
3074
+ }, er = {
3075
+ root: "rly_WorksetCard-module__root",
3076
+ heading: "rly_WorksetCard-module__heading",
3077
+ dimensions: "rly_WorksetCard-module__dimensions",
3078
+ dimension: "rly_WorksetCard-module__dimension",
3079
+ dimensionHeading: "rly_WorksetCard-module__dimensionHeading",
3080
+ gaps: "rly_WorksetCard-module__gaps",
3081
+ list: "rly_WorksetCard-module__list",
3082
+ gapList: "rly_WorksetCard-module__gapList",
3083
+ keyList: "rly_WorksetCard-module__keyList",
3084
+ item: "rly_WorksetCard-module__item",
3085
+ gap: "rly_WorksetCard-module__gap",
3086
+ identity: "rly_WorksetCard-module__identity",
3087
+ link: "rly_WorksetCard-module__link",
3088
+ itemTitle: "rly_WorksetCard-module__itemTitle",
3089
+ reference: "rly_WorksetCard-module__reference",
3090
+ empty: "rly_WorksetCard-module__empty",
3091
+ conceptLabel: "rly_WorksetCard-module__conceptLabel",
3092
+ emptyLink: "rly_WorksetCard-module__emptyLink",
3093
+ linkedWork: "rly_WorksetCard-module__linkedWork"
3094
+ }, $ = (e) => c(er, e), tr = (e, t) => {
3095
+ e !== void 0 && o(e, `${t} href`);
3096
+ }, nr = (e, t, n) => {
3097
+ let r = o(e, `${n} id`);
3098
+ if (t.has(r)) throw Error(`${n} ids must be unique: ${r}`);
3099
+ return t.add(r), r;
3100
+ }, rr = (e) => {
3101
+ let t = /* @__PURE__ */ new Set();
3102
+ for (let n of e) {
3103
+ let e = nr(n.id, t, "WorksetCard Jira item");
3104
+ o(n.key, `WorksetCard Jira key for ${e}`), o(n.title, `WorksetCard Jira title for ${e}`), o(n.state, `WorksetCard Jira state for ${e}`), tr(n.href, `WorksetCard Jira item ${e}`);
3105
+ }
3106
+ }, ir = (e) => {
3107
+ let t = /* @__PURE__ */ new Set();
3108
+ for (let n of e) {
3109
+ let e = nr(n.id, t, "WorksetCard pull request group");
3110
+ o(n.title, `WorksetCard pull request title for ${e}`), o(n.reference, `WorksetCard pull request reference for ${e}`), o(n.state, `WorksetCard pull request state for ${e}`), tr(n.href, `WorksetCard pull request group ${e}`);
3111
+ for (let t of n.linkedJiraKeys) o(t, `WorksetCard linked Jira key for ${e}`);
3112
+ }
3113
+ }, ar = (e) => {
3114
+ let t = /* @__PURE__ */ new Set();
3115
+ for (let n of e) {
3116
+ let e = nr(n.id, t, "WorksetCard gap");
3117
+ if (o(n.label, `WorksetCard gap label for ${e}`), o(n.reason, `WorksetCard gap reason for ${e}`), !Object.hasOwn(tt.service, n.service)) throw Error(`WorksetCard gap service for ${e} must be supported`);
3118
+ }
3119
+ }, or = (e) => {
3120
+ let t = /* @__PURE__ */ new Set();
3121
+ for (let n of e) {
3122
+ let e = nr(n.id, t, "WorksetCard pipeline");
3123
+ o(n.title, `WorksetCard pipeline title for ${e}`), o(n.reference, `WorksetCard pipeline reference for ${e}`), o(n.state, `WorksetCard pipeline state for ${e}`), tr(n.href, `WorksetCard pipeline ${e}`);
3124
+ }
3125
+ }, sr = ({ href: e, reference: t, title: n }) => {
3126
+ let i = /* @__PURE__ */ k("span", {
3127
+ className: $("identity"),
3128
+ children: [/* @__PURE__ */ O("span", {
3129
+ className: $("itemTitle"),
3130
+ children: n
3131
+ }), /* @__PURE__ */ O("span", {
3132
+ className: $("reference"),
3133
+ children: t
3134
+ })]
3135
+ });
3136
+ return e === void 0 ? i : /* @__PURE__ */ O(r, {
3137
+ className: $("link"),
3138
+ href: e,
3139
+ children: i
3140
+ });
3141
+ }, cr = ({ className: e, gapEmptyLabel: t = "No relationship gaps recorded.", gaps: n, heading: r, jiraEmptyLabel: i = "No Jira work recorded.", jiraItems: a, pipelineEmptyLabel: s = "No pipeline delivery recorded.", pipelines: c, pullRequestEmptyLabel: l = "No pull request groups recorded.", pullRequestGroups: u, ...f }) => {
3142
+ let p = o(r, "WorksetCard heading"), m = o(i, "WorksetCard jiraEmptyLabel"), h = o(l, "WorksetCard pullRequestEmptyLabel"), g = o(t, "WorksetCard gapEmptyLabel"), _ = o(s, "WorksetCard pipelineEmptyLabel");
3143
+ rr(a), ir(u), ar(n), or(c);
3144
+ let v = `rly-workset-${E()}`;
3145
+ return /* @__PURE__ */ k("section", {
3146
+ ...f,
3147
+ "aria-labelledby": v,
3148
+ className: d($("root"), e),
3149
+ children: [/* @__PURE__ */ O("h2", {
3150
+ className: $("heading"),
3151
+ id: v,
3152
+ children: p
3153
+ }), /* @__PURE__ */ k("div", {
3154
+ className: $("dimensions"),
3155
+ children: [
3156
+ /* @__PURE__ */ k("section", {
3157
+ className: $("dimension"),
3158
+ "data-rly-workset-dimension": "jira",
3159
+ children: [/* @__PURE__ */ k("div", {
3160
+ className: $("dimensionHeading"),
3161
+ children: [/* @__PURE__ */ O(B, {
3162
+ service: "jira",
3163
+ size: "compact"
3164
+ }), /* @__PURE__ */ O("h3", { children: "Jira work" })]
3165
+ }), a.length === 0 ? /* @__PURE__ */ O("p", {
3166
+ className: $("empty"),
3167
+ children: m
3168
+ }) : /* @__PURE__ */ O("ul", {
3169
+ className: $("list"),
3170
+ children: a.map((e) => /* @__PURE__ */ k("li", {
3171
+ className: $("item"),
3172
+ "data-rly-workset-jira-id": e.id,
3173
+ children: [
3174
+ /* @__PURE__ */ O(sr, {
3175
+ ...e.href === void 0 ? {} : { href: e.href },
3176
+ reference: e.key,
3177
+ title: e.title
3178
+ }),
3179
+ /* @__PURE__ */ O(T, {
3180
+ label: e.state,
3181
+ size: "compact",
3182
+ tone: e.tone
3183
+ }),
3184
+ e.owner === void 0 ? null : /* @__PURE__ */ O(F, {
3185
+ person: e.owner,
3186
+ size: "compact"
3187
+ })
3188
+ ]
3189
+ }, e.id))
3190
+ })]
3191
+ }),
3192
+ /* @__PURE__ */ k("section", {
3193
+ className: $("dimension"),
3194
+ "data-rly-workset-dimension": "pull-requests",
3195
+ children: [
3196
+ /* @__PURE__ */ k("div", {
3197
+ className: $("dimensionHeading"),
3198
+ children: [/* @__PURE__ */ O(B, {
3199
+ service: "codecommit",
3200
+ size: "compact"
3201
+ }), /* @__PURE__ */ O("h3", { children: "Pull request groups" })]
3202
+ }),
3203
+ u.length === 0 ? /* @__PURE__ */ O("p", {
3204
+ className: $("empty"),
3205
+ children: h
3206
+ }) : /* @__PURE__ */ O("ul", {
3207
+ className: $("list"),
3208
+ children: u.map((e) => /* @__PURE__ */ k("li", {
3209
+ className: $("item"),
3210
+ "data-rly-workset-pr-id": e.id,
3211
+ children: [
3212
+ /* @__PURE__ */ O(sr, {
3213
+ ...e.href === void 0 ? {} : { href: e.href },
3214
+ reference: e.reference,
3215
+ title: e.title
3216
+ }),
3217
+ /* @__PURE__ */ O(T, {
3218
+ label: e.state,
3219
+ size: "compact",
3220
+ tone: e.tone
3221
+ }),
3222
+ /* @__PURE__ */ k("div", {
3223
+ className: $("linkedWork"),
3224
+ children: [/* @__PURE__ */ O("span", {
3225
+ className: $("conceptLabel"),
3226
+ children: "Linked Jira work"
3227
+ }), e.linkedJiraKeys.length === 0 ? /* @__PURE__ */ O("span", {
3228
+ className: $("emptyLink"),
3229
+ children: "No Jira links recorded."
3230
+ }) : /* @__PURE__ */ O("ul", {
3231
+ className: $("keyList"),
3232
+ children: e.linkedJiraKeys.map((e, t) => /* @__PURE__ */ O("li", {
3233
+ "data-rly-linked-jira-key": e,
3234
+ children: e
3235
+ }, `${e}-${t}`))
3236
+ })]
3237
+ }),
3238
+ e.author === void 0 ? null : /* @__PURE__ */ O(F, {
3239
+ person: e.author,
3240
+ size: "compact"
3241
+ })
3242
+ ]
3243
+ }, e.id))
3244
+ }),
3245
+ /* @__PURE__ */ k("div", {
3246
+ className: $("gaps"),
3247
+ children: [/* @__PURE__ */ O("h4", { children: "Relationship gaps" }), n.length === 0 ? /* @__PURE__ */ O("p", {
3248
+ className: $("empty"),
3249
+ children: g
3250
+ }) : /* @__PURE__ */ O("ul", {
3251
+ className: $("gapList"),
3252
+ children: n.map((e) => /* @__PURE__ */ k("li", {
3253
+ className: $("gap"),
3254
+ "data-rly-workset-gap-id": e.id,
3255
+ children: [
3256
+ /* @__PURE__ */ O(B, {
3257
+ service: e.service,
3258
+ size: "compact"
3259
+ }),
3260
+ /* @__PURE__ */ O("strong", { children: e.label }),
3261
+ /* @__PURE__ */ O("span", { children: e.reason })
3262
+ ]
3263
+ }, e.id))
3264
+ })]
3265
+ })
3266
+ ]
3267
+ }),
3268
+ /* @__PURE__ */ k("section", {
3269
+ className: $("dimension"),
3270
+ "data-rly-workset-dimension": "pipelines",
3271
+ children: [/* @__PURE__ */ k("div", {
3272
+ className: $("dimensionHeading"),
3273
+ children: [/* @__PURE__ */ O(B, {
3274
+ service: "codepipeline",
3275
+ size: "compact"
3276
+ }), /* @__PURE__ */ O("h3", { children: "Pipeline delivery" })]
3277
+ }), c.length === 0 ? /* @__PURE__ */ O("p", {
3278
+ className: $("empty"),
3279
+ children: _
3280
+ }) : /* @__PURE__ */ O("ul", {
3281
+ className: $("list"),
3282
+ children: c.map((e) => /* @__PURE__ */ k("li", {
3283
+ className: $("item"),
3284
+ "data-rly-workset-pipeline-id": e.id,
3285
+ children: [
3286
+ /* @__PURE__ */ O(sr, {
3287
+ ...e.href === void 0 ? {} : { href: e.href },
3288
+ reference: e.reference,
3289
+ title: e.title
3290
+ }),
3291
+ /* @__PURE__ */ O(T, {
3292
+ label: e.state,
3293
+ size: "compact",
3294
+ tone: e.tone
3295
+ }),
3296
+ e.operator === void 0 ? null : /* @__PURE__ */ O(F, {
3297
+ person: e.operator,
3298
+ size: "compact"
3299
+ }),
3300
+ e.approver === void 0 ? null : /* @__PURE__ */ O(F, {
3301
+ person: e.approver,
3302
+ size: "compact"
3303
+ }),
3304
+ /* @__PURE__ */ O(Yn, {
3305
+ heading: `${e.reference} stages`,
3306
+ size: "compact",
3307
+ stages: e.stages
3308
+ })
3309
+ ]
3310
+ }, e.id))
3311
+ })]
3312
+ })
3313
+ ]
3314
+ })]
3315
+ });
3316
+ };
3317
+ //#endregion
3318
+ export { qe as A, xe as B, nt as C, Ze as D, R as E, F, fe as H, Fe as I, Pe as L, We as M, Ve as N, Xe as O, Be as P, je as R, ct as S, B as T, ge as V, St as _, Yn as a, ut as b, Ln as c, Bn as d, On as f, Ct as g, wt as h, Kn as i, Ke as j, Je as k, Fn as l, jt as m, $n as n, Wn as o, Pt as p, qn as r, Hn as s, cr as t, In as u, yt as v, tt as w, ot as x, gt as y, Te as z };
3319
+
3320
+ //# sourceMappingURL=patterns-BY7vflbg.js.map