okengine 0.15.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/package.json +1 -1
  2. package/site/content/docs/elements/flow.mdx +6 -0
  3. package/site/content/docs/elements/gate.mdx +55 -0
  4. package/site/content/docs/elements/store.mdx +13 -15
  5. package/site/content/docs/elements/vault.mdx +3 -0
  6. package/site/content/docs/reference/client.mdx +3 -0
  7. package/site/content/docs/reference/fx.mdx +29 -18
  8. package/site/content/docs/reference/security.md +1 -1
  9. package/src/auth/api-key-sql.test.ts +47 -0
  10. package/src/auth/api-key-sql.ts +254 -0
  11. package/src/auth/api-keys.ts +273 -14
  12. package/src/auth/auth.test.ts +56 -0
  13. package/src/auth/config.ts +5 -5
  14. package/src/auth/index.ts +25 -1
  15. package/src/auth/schema.ts +8 -0
  16. package/src/cli/attach-host-console.test.ts +37 -0
  17. package/src/cli/attach-host-console.ts +6 -0
  18. package/src/compiler/effects-infer.ts +17 -2
  19. package/src/console/server/access.test.ts +116 -8
  20. package/src/console/server/access.ts +70 -23
  21. package/src/console/server/app.ts +1 -0
  22. package/src/console/server/dev-identities.test.ts +127 -0
  23. package/src/console/server/dev-identities.ts +229 -0
  24. package/src/console/server/flows-invoke.test.ts +21 -4
  25. package/src/console/server/flows.ts +113 -58
  26. package/src/console/server/gates.test.ts +24 -0
  27. package/src/console/server/gates.ts +8 -21
  28. package/src/console/server/index.ts +1 -0
  29. package/src/console/server/live.test.ts +26 -1
  30. package/src/console/server/live.ts +4 -2
  31. package/src/console/server/operator-db.ts +2 -0
  32. package/src/console/server/state.ts +29 -55
  33. package/src/console/ui-next/dist/assets/access-page-CAGHrA9H.js +4 -0
  34. package/src/console/ui-next/dist/assets/{agent-disclosure-C0X1fbWF.js → agent-disclosure-BP0Y0Sux.js} +1 -1
  35. package/src/console/ui-next/dist/assets/cache-glyph-B5X-NM0-.js +1 -0
  36. package/src/console/ui-next/dist/assets/call-pii-button-ChAUiLo9.js +1 -0
  37. package/src/console/ui-next/dist/assets/collapsible-DGnOM2ph.js +1 -0
  38. package/src/console/ui-next/dist/assets/copy-inline-button-DBHhgHKP.js +1 -0
  39. package/src/console/ui-next/dist/assets/detail-header-DhHM1iaZ.js +1 -0
  40. package/src/console/ui-next/dist/assets/dropdown-menu-_NjTEo5_.js +1 -0
  41. package/src/console/ui-next/dist/assets/element-icons-BVXtRyd3.js +1 -0
  42. package/src/console/ui-next/dist/assets/explorer-empty-2uIhBu0_.js +1 -0
  43. package/src/console/ui-next/dist/assets/flows-page-B-OUtiAu.js +1 -0
  44. package/src/console/ui-next/dist/assets/{highlighted-json-CS_O8L-r.js → highlighted-json-Awq7gYdu.js} +1 -1
  45. package/src/console/ui-next/dist/assets/http-method-_UHM2ODJ.js +1 -0
  46. package/src/console/ui-next/dist/assets/index-CGoZkILK.js +66 -0
  47. package/src/console/ui-next/dist/assets/index-Ck88Jmv8.css +2 -0
  48. package/src/console/ui-next/dist/assets/link-BX6Vqztd.js +1 -0
  49. package/src/console/ui-next/dist/assets/observability-page-BDyXalNR.js +4 -0
  50. package/src/console/ui-next/dist/assets/replica-lag-DKRrbvdo.js +18 -0
  51. package/src/console/ui-next/dist/assets/request-meta-DV0ywz7t.js +1 -0
  52. package/src/console/ui-next/dist/assets/shortcut-JQIZlWfm.js +1 -0
  53. package/src/console/ui-next/dist/assets/shortcut-keys-DKxNTe_m.js +1 -0
  54. package/src/console/ui-next/dist/assets/skeleton-D-czQJT6.js +1 -0
  55. package/src/console/ui-next/dist/assets/store-page-Xh8Kn3rx.js +41 -0
  56. package/src/console/ui-next/dist/assets/trace-detail-sheet-B09O8rA6.js +2 -0
  57. package/src/console/ui-next/dist/assets/tree-expand-toggle-DkOXA12R.js +54 -0
  58. package/src/console/ui-next/dist/assets/units-page-Dpk40kOQ.js +1 -0
  59. package/src/console/ui-next/dist/assets/{use-vault-list-BLbZhzyF.js → use-vault-list-uk4WVboC.js} +1 -1
  60. package/src/console/ui-next/dist/assets/useMutation-B8EO02Ej.js +1 -0
  61. package/src/console/ui-next/dist/assets/useRender-BE2A9BWC.js +1 -0
  62. package/src/console/ui-next/dist/assets/vault-page-B1dB9Ft0.js +2 -0
  63. package/src/console/ui-next/dist/index.html +11 -9
  64. package/src/console/ui-next/index.html +3 -3
  65. package/src/console/ui-next/src/client.ts +167 -0
  66. package/src/console/ui-next/src/components/shell/app-sidebar.tsx +2 -0
  67. package/src/console/ui-next/src/components/shell/command-items.test.ts +1 -0
  68. package/src/console/ui-next/src/components/shell/command-items.ts +8 -0
  69. package/src/console/ui-next/src/components/shell/shell-layout.tsx +2 -1
  70. package/src/console/ui-next/src/components/ui/sheet-form.tsx +8 -3
  71. package/src/console/ui-next/src/features/access/access-page.tsx +347 -0
  72. package/src/console/ui-next/src/features/access/data/use-access.ts +23 -0
  73. package/src/console/ui-next/src/features/access/detail/access-detail.tsx +552 -0
  74. package/src/console/ui-next/src/features/access/explorer/access-list.tsx +125 -0
  75. package/src/console/ui-next/src/features/access/lib/format-when.test.ts +139 -0
  76. package/src/console/ui-next/src/features/access/lib/format-when.ts +296 -0
  77. package/src/console/ui-next/src/features/access/lib/scope-groups.test.ts +34 -0
  78. package/src/console/ui-next/src/features/access/lib/scope-groups.ts +40 -0
  79. package/src/console/ui-next/src/features/access/sheets/access-allow-fields.tsx +236 -0
  80. package/src/console/ui-next/src/features/access/sheets/access-create-sheet.tsx +316 -0
  81. package/src/console/ui-next/src/features/access/sheets/access-edit-sheet.tsx +240 -0
  82. package/src/console/ui-next/src/features/access/sheets/access-expiry-fields.tsx +66 -0
  83. package/src/console/ui-next/src/features/access/sheets/access-refresh-sheet.tsx +104 -0
  84. package/src/console/ui-next/src/features/access/sheets/access-scope-field.tsx +115 -0
  85. package/src/console/ui-next/src/features/access/sheets/access-secret-sheet.tsx +89 -0
  86. package/src/console/ui-next/src/features/access/sheets/access-sheet-search.tsx +49 -0
  87. package/src/console/ui-next/src/features/access/state/access-selection.ts +84 -0
  88. package/src/console/ui-next/src/features/auth/auth-redirect.test.ts +5 -0
  89. package/src/console/ui-next/src/features/auth/auth-redirect.ts +18 -2
  90. package/src/console/ui-next/src/features/not-found/not-found-page.tsx +1 -1
  91. package/src/console/ui-next/src/lib/document-meta.test.ts +1 -0
  92. package/src/console/ui-next/src/lib/document-meta.ts +2 -1
  93. package/src/console/ui-next/src/lib/last-module-search.test.ts +1 -0
  94. package/src/console/ui-next/src/lib/last-module-search.ts +2 -1
  95. package/src/console/ui-next/src/lib/shortcut.test.ts +2 -0
  96. package/src/console/ui-next/src/lib/shortcut.ts +3 -0
  97. package/src/console/ui-next/src/router.tsx +10 -1
  98. package/src/console/ui-next/ui-next-seed-app-schema.ts +88 -37
  99. package/src/console/ui-next/ui-next-seed-store.ts +43 -15
  100. package/src/console/xss.gate.test.ts +1 -0
  101. package/src/elements/gate/declare.ts +2 -0
  102. package/src/elements/store/cache.ts +1 -1
  103. package/src/elements/store/runtime.ts +14 -0
  104. package/src/elements/store/schema-decl.ts +99 -41
  105. package/src/elements/store/sql-select.types.test.ts +71 -0
  106. package/src/elements/store/sql-session.ts +54 -32
  107. package/src/elements/store.ts +3 -0
  108. package/src/index.ts +1 -0
  109. package/src/kernel/api-key-host-persist.test.ts +143 -0
  110. package/src/kernel/app.ts +14 -2
  111. package/src/kernel/auth-resolve.ts +10 -5
  112. package/src/kernel/boot.test.ts +4 -4
  113. package/src/kernel/fx-auth-keys.test.ts +88 -0
  114. package/src/kernel/fx-auth-keys.ts +198 -0
  115. package/src/kernel/fx.test.ts +17 -1
  116. package/src/kernel/fx.ts +36 -18
  117. package/src/kernel/pipeline-api-key.test.ts +192 -7
  118. package/src/kernel/pipeline.ts +4 -2
  119. package/src/manifest/types.ts +9 -3
  120. package/src/release/build-lib.ts +1 -0
  121. package/src/console/ui-next/dist/assets/cache-glyph-F1FI122b.js +0 -1
  122. package/src/console/ui-next/dist/assets/call-pii-button-DEDCl_j3.js +0 -1
  123. package/src/console/ui-next/dist/assets/collapsible-LPqGvfoz.js +0 -1
  124. package/src/console/ui-next/dist/assets/confirm-sheet-3ptDzXbz.js +0 -1
  125. package/src/console/ui-next/dist/assets/explorer-empty-BvYrygyO.js +0 -1
  126. package/src/console/ui-next/dist/assets/flows-page-Dluo1Bd7.js +0 -1
  127. package/src/console/ui-next/dist/assets/http-method--sWDdXSB.js +0 -1
  128. package/src/console/ui-next/dist/assets/index-Ca3HZMVq.js +0 -66
  129. package/src/console/ui-next/dist/assets/index-UtTDRQpS.css +0 -2
  130. package/src/console/ui-next/dist/assets/link-COeyggt-.js +0 -1
  131. package/src/console/ui-next/dist/assets/observability-page-HK9-BO8z.js +0 -4
  132. package/src/console/ui-next/dist/assets/replica-lag-DBIFFf7d.js +0 -18
  133. package/src/console/ui-next/dist/assets/sheet-form-Dnwa5oOR.js +0 -1
  134. package/src/console/ui-next/dist/assets/shortcut-Cgzuv4k1.js +0 -1
  135. package/src/console/ui-next/dist/assets/shortcut-keys-CoqwEIi0.js +0 -1
  136. package/src/console/ui-next/dist/assets/skeleton-BHcfDYcb.js +0 -1
  137. package/src/console/ui-next/dist/assets/store-page-BSohH3wM.js +0 -41
  138. package/src/console/ui-next/dist/assets/trace-detail-sheet-CFIGRnnA.js +0 -2
  139. package/src/console/ui-next/dist/assets/tree-expand-toggle-BgLl34w7.js +0 -54
  140. package/src/console/ui-next/dist/assets/units-page-B0cFE76A.js +0 -1
  141. package/src/console/ui-next/dist/assets/vault-page-B1SbYe10.js +0 -2
@@ -6,7 +6,7 @@ import { describe, expect, test } from "bun:test";
6
6
  import type { Manifest } from "../../manifest/types.ts";
7
7
  import type { WideEvent } from "../../runs/types.ts";
8
8
  import { feedManifest, feedRun, subscribeLive } from "./live.ts";
9
- import { createConsoleState, type ConsoleLiveMessage } from "./state.ts";
9
+ import { createConsoleState, setManifest, type ConsoleLiveMessage } from "./state.ts";
10
10
 
11
11
  describe("console live Manifest feed", () => {
12
12
  test("pushes manifest and diff to subscribers", () => {
@@ -28,6 +28,31 @@ describe("console live Manifest feed", () => {
28
28
  expect(messages.some((m) => m.type === "manifest")).toBe(true);
29
29
  expect(messages.some((m) => m.type === "manifest.diff")).toBe(true);
30
30
  });
31
+
32
+ test("seeded identities follow the Manifest — no invented booking:create", () => {
33
+ const state = createConsoleState({ silentClaim: true, secret: "x" });
34
+ expect(state.identities).toHaveLength(10);
35
+ expect(state.identities[0]?.id).toBe("user_demo");
36
+ expect(state.identities.find((row) => row.id === "user_member")?.scopes).toEqual(["member"]);
37
+ expect(state.identities.find((row) => row.id === "user_guest")?.scopes).toEqual([]);
38
+ expect(state.identities.find((row) => row.id === "user_demo")?.scopes).toEqual(["member"]);
39
+
40
+ setManifest(state, {
41
+ oke: "1.0",
42
+ app: "keel-like",
43
+ gates: {
44
+ member: { kind: "policy", scopes: ["member"] },
45
+ "task:write": { kind: "policy", scopes: ["task:write"] },
46
+ },
47
+ });
48
+ expect(state.identities.find((row) => row.id === "user_demo")?.scopes).toEqual([
49
+ "member",
50
+ "task:write",
51
+ ]);
52
+ expect(state.identities.find((row) => row.id === "user_demo")?.scopes).not.toContain(
53
+ "booking:create",
54
+ );
55
+ });
31
56
  });
32
57
 
33
58
  describe("console live run feed", () => {
@@ -8,8 +8,8 @@
8
8
  import type { WideEvent } from "../../runs/types.ts";
9
9
  import { projectRun } from "./flows.ts";
10
10
  import { piiFieldNamesFromManifest } from "./runs-pii.ts";
11
- import type { ConsoleLiveMessage, ConsoleState } from "./state.ts";
12
- import { publishLive } from "./state.ts";
11
+ import { isKeelManifest, refreshSeededIdentities, seedKeelAccessRoles } from "./dev-identities.ts";
12
+ import { publishLive, type ConsoleLiveMessage, type ConsoleState } from "./state.ts";
13
13
 
14
14
  /** WebSocket data bag for Console live clients. */
15
15
  export interface ConsoleLiveData {
@@ -97,6 +97,8 @@ export function feedManifest(
97
97
  ): void {
98
98
  const before = state.manifest;
99
99
  state.manifest = manifest;
100
+ refreshSeededIdentities(state.identities, manifest);
101
+ if (isKeelManifest(manifest)) seedKeelAccessRoles(state.roles, state.roleMembers);
100
102
  publishLive(state, { type: "manifest", manifest });
101
103
  if (before) {
102
104
  publishLive(state, { type: "manifest.diff", before, after: manifest });
@@ -11,6 +11,8 @@
11
11
  * Spec: wizard closes permanently once the first operator exists (console §2.5).
12
12
  * Claim codes stay out of Postgres (optional local DX mirror: `.oke/claim-code`);
13
13
  * operators, sessions, and the signing secret must survive restarts.
14
+ * API keys persist on the host `store.sql()` connection (`public.oke_api_keys`),
15
+ * not in this schema — Console attaches that store via `attachHostToConsole`.
14
16
  */
15
17
 
16
18
  import { mkdirSync } from "node:fs";
@@ -56,6 +56,12 @@ import type { InstanceStore, InstancesList } from "../../kernel/instances.ts";
56
56
  import type { CronStore } from "../../elements/clock/reconcile.ts";
57
57
  import type { ResourceRef } from "../../manifest/types.ts";
58
58
  import type { ConsoleClockList } from "./clock.ts";
59
+ import {
60
+ defaultDevIdentities,
61
+ isKeelManifest,
62
+ refreshSeededIdentities,
63
+ seedKeelAccessRoles,
64
+ } from "./dev-identities.ts";
59
65
  import {
60
66
  createDefaultGateAuthStores,
61
67
  createManifestGateRuntime,
@@ -89,6 +95,8 @@ import {
89
95
  requireConsoleAuthStore,
90
96
  } from "./auth-store.ts";
91
97
 
98
+ export { refreshSeededIdentities } from "./dev-identities.ts";
99
+
92
100
  /** How long a built-in Vault backend probe is reused across list polls. */
93
101
  const VAULT_BACKEND_TTL_MS = 15_000;
94
102
 
@@ -125,8 +133,8 @@ export interface ConsoleState {
125
133
  readonly constructedPanels: ReadonlySet<ConsolePanelId>;
126
134
  /** Role store (data, not code) — Gates · Access. */
127
135
  readonly roles: RoleStore;
128
- /** API key store — first-class principals. */
129
- readonly apiKeys: ApiKeyStore;
136
+ /** API key store — first-class principals. Shared with the host when attached. */
137
+ apiKeys: ApiKeyStore;
130
138
  /** Operator invitations — Access hygiene. */
131
139
  readonly invites: OperatorInviteStore;
132
140
  /** Access-token TTL (ms) from auth config — residual revoke delay. */
@@ -159,6 +167,15 @@ export interface ConsoleState {
159
167
  accessRotateKey: (
160
168
  keyId: string,
161
169
  ) => Promise<{ readonly row: AccessKeyRow; readonly secret: string } | null>;
170
+ /** Update key metadata (name, scopes, expiry, allowlist, rate). */
171
+ accessUpdateKey: (input: {
172
+ readonly keyId: string;
173
+ readonly name?: string;
174
+ readonly scopes?: readonly string[];
175
+ readonly expiresAt?: number | null;
176
+ readonly rateLimit?: { max: number; per: string } | null;
177
+ readonly ipAllowlist?: readonly string[];
178
+ }) => Promise<AccessKeyRow | null>;
162
179
  /** Replace role grants (grantable scopes only). */
163
180
  accessSetRoleGrants: (input: {
164
181
  readonly roleId: string;
@@ -585,6 +602,8 @@ export interface CreateConsoleStateOptions {
585
602
  readonly persistOperator?: (operatorId: string) => void | Promise<void>;
586
603
  /** Persist hook after session issue / revoke. */
587
604
  readonly persistSessions?: () => void | Promise<void>;
605
+ /** Shared host API key store (`oke dev` attach). */
606
+ readonly apiKeys?: ApiKeyStore;
588
607
  /**
589
608
  * Shared secret for host → Console runs ingest (`oke dev` bridge).
590
609
  * When omitted, ingest is disabled (404).
@@ -652,7 +671,7 @@ export function createConsoleState(options: CreateConsoleStateOptions = {}): Con
652
671
  return constructed;
653
672
  },
654
673
  roles: gateAuth.roles,
655
- apiKeys: gateAuth.apiKeys,
674
+ apiKeys: options.apiKeys ?? gateAuth.apiKeys,
656
675
  invites,
657
676
  accessTtlMs: options.accessTtlMs ?? ACCESS_TTL_MS,
658
677
  roleMembers: gateAuth.roleMembers,
@@ -717,6 +736,10 @@ export function createConsoleState(options: CreateConsoleStateOptions = {}): Con
717
736
  const access = await markPanel<typeof import("./access.ts")>("access");
718
737
  return access.accessRotateKey(state.apiKeys, keyId);
719
738
  },
739
+ accessUpdateKey: async (input) => {
740
+ const access = await markPanel<typeof import("./access.ts")>("access");
741
+ return access.accessUpdateKey(state.apiKeys, input);
742
+ },
720
743
  accessSetRoleGrants: async (input) => {
721
744
  const access = await markPanel<typeof import("./access.ts")>("access");
722
745
  access.accessSetRoleGrants({
@@ -1262,6 +1285,8 @@ export function setManifest(state: ConsoleState, manifest: Manifest): void {
1262
1285
  const before = state.manifest;
1263
1286
  if (before) state.previousManifest = before;
1264
1287
  state.manifest = manifest;
1288
+ refreshSeededIdentities(state.identities, manifest);
1289
+ if (isKeelManifest(manifest)) seedKeelAccessRoles(state.roles, state.roleMembers);
1265
1290
  publishLive(state, { type: "manifest", manifest });
1266
1291
  if (before) {
1267
1292
  publishLive(state, { type: "manifest.diff", before, after: manifest });
@@ -1386,39 +1411,6 @@ export async function bindManifestGateRuntime(state: ConsoleState): Promise<void
1386
1411
  state.gateRuntime = runtime;
1387
1412
  }
1388
1413
 
1389
- /**
1390
- * Default development identities for the invoke-as picker.
1391
- * Demo scopes follow Manifest gate `scopes` when present so Call API
1392
- * matches the seeded app (keel `issue:write`, skyport `booking:create`).
1393
- *
1394
- * @param manifest - Optional Manifest used to derive application scopes
1395
- */
1396
- function defaultDevIdentities(manifest?: Manifest | null): ConsoleIdentity[] {
1397
- const scopes = new Set<string>(["member"]);
1398
- for (const gate of Object.values(manifest?.gates ?? {})) {
1399
- for (const scope of gate.scopes ?? []) {
1400
- scopes.add(scope);
1401
- }
1402
- }
1403
- if (scopes.size === 1) scopes.add("booking:create");
1404
- return [
1405
- {
1406
- id: "user_demo",
1407
- email: "demo@example.com",
1408
- name: "Demo User",
1409
- status: "active",
1410
- scopes: [...scopes].sort(),
1411
- },
1412
- {
1413
- id: "user_member",
1414
- email: "member@example.com",
1415
- name: "Member",
1416
- status: "active",
1417
- scopes: ["member"],
1418
- },
1419
- ];
1420
- }
1421
-
1422
1414
  function accessCatalog(state: ConsoleState): string[] {
1423
1415
  if (state.manifest) return deriveModuleActions(state.manifest);
1424
1416
  const set = new Set<string>();
@@ -1436,29 +1428,11 @@ function accessCatalog(state: ConsoleState): string[] {
1436
1428
  * Never-signed-in operators appear once real invites land with lastSeenAt null.
1437
1429
  */
1438
1430
  function seedAccessDemoData(
1439
- apiKeys: ApiKeyStore,
1431
+ _apiKeys: ApiKeyStore,
1440
1432
  invites: OperatorInviteStore,
1441
1433
  now: () => number,
1442
1434
  ): void {
1443
1435
  const t = now();
1444
- const staleCreated = t - 100 * 24 * 60 * 60 * 1000;
1445
- if (!apiKeys.keys.has("key_stale")) {
1446
- apiKeys.keys.set("key_stale", {
1447
- id: "key_stale",
1448
- plane: "user",
1449
- hash: "stale",
1450
- name: "Stale unused key",
1451
- scopes: ["member"],
1452
- expiresAt: null,
1453
- rateLimit: null,
1454
- ipAllowlist: [],
1455
- creatorId: "user_demo",
1456
- creatorScopes: ["member"],
1457
- createdAt: staleCreated,
1458
- lastUsedAt: null,
1459
- revokedAt: null,
1460
- });
1461
- }
1462
1436
  if (!invites.invites.has("invite_expired")) {
1463
1437
  invites.invites.set("invite_expired", {
1464
1438
  id: "invite_expired",
@@ -0,0 +1,4 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$n as t,Bi as n,Br as r,Cr as i,E as a,F as o,Fo as s,L as c,No as l,P as u,Qn as d,Sa as f,Sr as p,Ta as m,Ui as h,Yr as g,_a as _,_r as v,ar as y,ba as b,br as x,c as S,ca as C,cr as w,dr as T,er as E,hr as D,i as O,ir as k,l as A,mr as j,nr as M,o as N,or as P,s as F,sr as I,u as ee,ur as L,va as R,vr as z,wr as B,x as V,xa as te,xi as H,xr as U,ya as W,yr as ne}from"./shortcut-keys-DKxNTe_m.js";import{t as G}from"./useMutation-B8EO02Ej.js";import{r as re}from"./react-dom-Bph1y7z7.js";import{A as ie}from"./xyflow-D7n4g6go.js";import{n as ae}from"./index-CGoZkILK.js";import{a as oe,c as se,i as ce,n as le,o as ue,r as de,s as fe,t as pe}from"./element-icons-BVXtRyd3.js";import{t as me}from"./explorer-empty-2uIhBu0_.js";import{a as K,c as he,l as q,n as J,o as ge,r as _e,s as ve,t as ye}from"./detail-header-DhHM1iaZ.js";import{n as be,t as xe}from"./copy-inline-button-DBHhgHKP.js";import{i as Se,t as Ce}from"./http-method-_UHM2ODJ.js";var Y=e(re(),1);function we(e,t){if(e==null)return`never`;let n=e-t;if(Math.abs(n)<6e4)return`just now`;let r=Ee(Math.abs(n));return n<0?`${r} ago`:`in ${r}`}function Te(e,t){return e==null?`never`:e<=t?`expired`:we(e,t)}function Ee(e){if(e<36e5)return`${Math.floor(e/6e4)}m`;if(e<864e5)return`${Math.floor(e/36e5)}h`;let t=Math.floor(e/864e5);return t<100?`${t}d`:`${Math.floor(t/30)}mo`}var X=864e5;function De(e){let t=/^(\d+)(ms|s|m|h|d)$/.exec(e.trim());if(!t)return 0;let n=Number(t[1]);switch(t[2]){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*36e5;case`d`:return n*X;default:return 0}}function Oe(e,t,n=``){if(e===`never`)return null;if(e===`30d`)return t+30*X;if(e===`90d`)return t+90*X;let r=De(n);return r>0?t+r:null}var Z=36e5;function ke(e,t){if(e==null)return{choice:`never`,custom:``};let n=e-t;return n<=0?{choice:`never`,custom:``}:Math.abs(n-30*X)<Z?{choice:`30d`,custom:``}:Math.abs(n-90*X)<Z?{choice:`90d`,custom:``}:{choice:`custom`,custom:Me(n)}}var Ae=7*X;function je(e,t){if(e==null||e<=t)return{choice:`90d`,custom:``};let n=e-t;return Math.abs(n-30*X)<=Ae?{choice:`30d`,custom:``}:Math.abs(n-90*X)<=Ae?{choice:`90d`,custom:``}:{choice:`custom`,custom:Me(n)}}function Me(e){return e<=0?``:e>=X&&e%X===0?`${e/X}d`:e>=Z&&e%Z===0?`${e/Z}h`:e>=6e4&&e%6e4==0?`${e/6e4}m`:e>=X?`${Math.max(1,Math.round(e/X))}d`:e>=Z?`${Math.max(1,Math.round(e/Z))}h`:`${Math.max(1,Math.round(e/6e4))}m`}var Ne=[`s`,`m`,`h`,`d`,`ms`],Pe={s:`Seconds`,m:`Minutes`,h:`Hours`,d:`Days`,ms:`Milliseconds`};function Fe(e,t,n){let r=e.trim(),i=t.trim();if(r.length===0&&i.length===0)return null;if(r.length===0||i.length===0||!/^\d+$/.test(r)||!/^\d+$/.test(i))return;let a=Number(r),o=Number(i);if(a<=0||o<=0)return;let s=`${o}${n}`;if(!(De(s)<=0))return{max:a,per:s}}function Ie(e){let t=/^(\d+)(ms|s|m|h|d)$/.exec(e.trim());return t?{count:t[1],unit:t[2]}:{count:``,unit:`m`}}function Le(e){let t=ze(e);return t.length===0?null:Be(t)?`ip`:Ve(t)?`host`:null}function Re(e){let t=new Set,n=[];for(let r of e.split(/[\s,]+/)){let e=ze(r);e.length===0||t.has(e)||Le(e)!=null&&(t.add(e),n.push(e))}return n}function ze(e){let t=e.trim().toLowerCase();if(t=t.replace(/^https?:\/\//,``),t.startsWith(`[`)&&t.includes(`]`)){let e=t.indexOf(`]`),n=t.slice(1,e),r=t.slice(e+1);t=r.startsWith(`:`)||r.startsWith(`/`)?n:`${n}${r}`}let n=t.indexOf(`/`);return n>=0&&(t=t.slice(0,n)),t.endsWith(`.`)&&(t=t.slice(0,-1)),t}function Be(e){return/^\d{1,3}(?:\.\d{1,3}){3}$/.test(e)?e.split(`.`).every(e=>Number(e)<=255):!e.includes(`:`)||!/^[0-9a-f:]+$/.test(e)||e.split(`::`).length>2?!1:e.split(`:`).filter(e=>e.length>0).length>=1}function Ve(e){if(e===`localhost`)return!0;if(e.length>253||e.includes(`:`))return!1;let t=e.split(`.`);return t.length<2?!1:t.every((e,n)=>!(e.length===0||e.length>63||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(e)||n===t.length-1&&!/^[a-z]{2,63}$/.test(e)))}function He(e){let t=[],n=new Map;for(let r of e){let e=r.indexOf(`:`),i=e<=0?r:r.slice(0,e),a=e<=0?r:r.slice(e+1),o=n.get(i);if(o){o.push({scope:r,action:a});continue}t.push(i),n.set(i,[{scope:r,action:a}])}return t.map(e=>({group:e,items:n.get(e)??[]}))}var Q=ie(),Ue=`GET /secure
2
+ Authorization: Bearer <secret>`,We=`{ "ok": true }`;function Ge({keyRow:e,blast:t,now:n,leading:r,onEdit:a,onRefresh:o,onRevoke:s,onRotate:c,rotatePending:l}){let u=e.revokedAt!==null,d=e.expiresAt!==null&&e.expiresAt<=n,f=t?.lastUsedAt??e.lastUsedAt,p=t?.callVolume??0,m=Te(e.expiresAt,n),h=we(f,n),_=e.rateLimit?`${e.rateLimit.max} / ${e.rateLimit.per}`:`none`,v=(0,Y.useMemo)(()=>He(e.scopes),[e.scopes]),y=e.creatorScopes.length,b=y>0&&e.scopes.length<y;return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-y-auto`,"data-slot":`access-detail`,"aria-label":`Access key detail`,"aria-live":`polite`,children:[(0,Q.jsx)(ye,{dataSlot:`access-detail-header`,leading:r,icon:(0,Q.jsx)(B,{icon:H,className:`size-4`}),title:e.name,badge:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-mono text-[10px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:[(0,Q.jsx)(B,{icon:e.plane===`operator`?g:C,className:`size-3`,"aria-hidden":!0}),e.plane]}),u?(0,Q.jsx)(`span`,{className:`font-mono text-[10px] text-destructive`,children:`revoked`}):null,d&&!u?(0,Q.jsx)(`span`,{className:`font-mono text-[10px] text-amber-700 dark:text-amber-400`,children:`expired`}):null,e.unused90d&&!u&&!d?(0,Q.jsx)(`span`,{className:`font-mono text-[10px] text-amber-700 dark:text-amber-400`,children:`unused`}):null]}),subtitle:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`code`,{className:`min-w-0 truncate font-mono text-[11px] leading-none text-foreground/80`,children:e.id}),(0,Q.jsx)(xe,{value:e.id,label:`Copy ${e.id}`})]}),actions:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(fe,{label:`Rename or re-attenuate scopes`,className:`flex self-stretch`,children:(0,Q.jsx)(V,{type:`button`,variant:`ghost`,size:`sm`,className:`h-full rounded-none`,disabled:u,onClick:a,children:`Edit`})}),(0,Q.jsx)(fe,{label:`Reset expiry from now. The secret stays the same.`,className:`flex self-stretch`,children:(0,Q.jsx)(V,{type:`button`,variant:`ghost`,size:`sm`,className:`h-full rounded-none`,"data-slot":`access-refresh`,disabled:u,onClick:o,children:`Refresh`})}),(0,Q.jsx)(fe,{label:`Mint a new secret. The current secret stops working after residual TTL.`,className:`flex self-stretch`,children:(0,Q.jsx)(V,{type:`button`,variant:`ghost`,size:`sm`,className:`h-full rounded-none`,disabled:l||u,onClick:c,children:`Rotate`})}),(0,Q.jsx)(fe,{label:`Irreversible. Residual sessions may continue for the access TTL.`,className:`flex self-stretch`,children:(0,Q.jsx)(V,{type:`button`,variant:`destructive`,size:`sm`,className:`h-full rounded-none`,disabled:u,onClick:s,children:`Revoke`})})]})}),(0,Q.jsx)(Ke,{revoked:u,expired:d,unused:e.unused90d,residual:t?.residualAccessNote}),(0,Q.jsxs)(`div`,{className:D,"data-slot":`access-briefing`,role:`group`,"aria-label":`Usage`,children:[(0,Q.jsx)(Xe,{label:`calls`,value:String(p)}),(0,Q.jsx)(Xe,{label:`used`,value:h,hint:f?new Date(f).toISOString():`No recorded call`,warn:f==null&&!u}),(0,Q.jsx)(Xe,{label:`expires`,value:m,hint:e.expiresAt?new Date(e.expiresAt).toISOString():`No expiry`,warn:d&&!u}),(0,Q.jsx)(Xe,{label:`rate`,value:_})]}),(0,Q.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Scopes`,children:[(0,Q.jsx)($,{title:`Scopes`,meta:b?`${e.scopes.length} of ${y}`:String(e.scopes.length),children:e.scopes.length>0?(0,Q.jsx)(xe,{value:e.scopes.join(`
3
+ `),label:`Copy scopes`}):null}),v.length===0?(0,Q.jsx)(`p`,{className:`px-2 py-1.5 text-[11px] text-muted-foreground`,children:`No scopes granted.`}):(0,Q.jsx)(`ul`,{"data-slot":`access-scopes`,children:v.map(e=>(0,Q.jsxs)(`li`,{className:T,"aria-label":e.group,children:[(0,Q.jsx)(`span`,{className:i(U,`w-[5.5rem] shrink-0`),children:e.group}),(0,Q.jsx)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center gap-x-2`,children:e.items.map(e=>(0,Q.jsx)(`span`,{title:e.scope,className:`font-mono text-[11px] text-foreground`,children:e.action},e.scope))}),(0,Q.jsx)(Ze,{value:e.items.map(e=>e.scope).join(`
4
+ `),label:`Copy ${e.group} scopes`})]},e.group))})]}),(0,Q.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Key`,children:[(0,Q.jsx)($,{title:`Key`}),(0,Q.jsxs)(`dl`,{"data-slot":`access-key-facts`,children:[(0,Q.jsx)(Qe,{label:`Issuer`,value:e.creatorId,copy:e.creatorId,copyLabel:`Copy ${e.creatorId}`}),(0,Q.jsx)(Qe,{label:`Created`,value:we(e.createdAt,n),hint:new Date(e.createdAt).toISOString()}),(0,Q.jsx)(Qe,{label:`Expires`,value:m,hint:e.expiresAt?new Date(e.expiresAt).toISOString():void 0,warn:d&&!u}),(0,Q.jsx)(Qe,{label:`Rate`,value:_})]})]}),(0,Q.jsx)(qe,{entries:e.ipAllowlist}),(0,Q.jsx)(Je,{sourceAddresses:t?.sourceAddresses??[],residual:t?.residualAccessNote,lastUsed:f,now:n}),(0,Q.jsx)(Ye,{scopes:e.scopes})]})}function Ke({revoked:e,expired:t,unused:n,residual:r}){return e?(0,Q.jsx)(`section`,{className:i(D,`border-destructive/25 bg-destructive/5`),"aria-label":`Revoked`,role:`status`,children:(0,Q.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-destructive`,children:[`Revoked`,(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,`· `,r??`This secret no longer authenticates.`]})]})}):t?(0,Q.jsx)(`section`,{className:i(D,`border-amber-500/25 bg-amber-500/5`),"aria-label":`Expired`,role:`status`,children:(0,Q.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-amber-900 dark:text-amber-300`,children:[`Expired`,r?(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[` · `,r]}):null]})}):n?(0,Q.jsx)(`section`,{className:i(D,`border-amber-500/25 bg-amber-500/5`),"aria-label":`Unused`,role:`status`,children:(0,Q.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center px-2 text-[12px] text-amber-900 dark:text-amber-300`,children:[`No calls in 90 days`,(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:` · rotate or revoke`})]})}):null}function qe({entries:e}){return(0,Q.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Allow`,children:[(0,Q.jsx)($,{title:`Allow`,meta:e.length>0?String(e.length):`any`}),e.length===0?(0,Q.jsx)(`p`,{className:`px-2 py-1.5 text-[11px] text-muted-foreground`,children:`Any origin.`}):(0,Q.jsx)(`ul`,{"data-slot":`access-allow`,children:e.map(e=>{let t=Le(e);return(0,Q.jsxs)(`li`,{className:T,children:[(0,Q.jsx)(`span`,{className:i(U,`w-[5.5rem] shrink-0`),children:t===`ip`?`IP`:t===`host`?`Host`:`—`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e}),(0,Q.jsx)(Ze,{value:e,label:`Copy ${e}`})]},e)})})]})}function Je({sourceAddresses:e,residual:t,lastUsed:n,now:r}){return(0,Q.jsxs)(`section`,{className:`shrink-0 border-b border-border/60`,"aria-label":`Usage`,children:[(0,Q.jsx)($,{title:`Usage`,meta:n?we(n,r):`never`}),e.length===0?(0,Q.jsx)(`p`,{className:`px-2 py-1.5 text-[11px] text-muted-foreground`,children:`No observed source IPs.`}):(0,Q.jsx)(`ul`,{"data-slot":`access-sources`,children:e.map(e=>(0,Q.jsxs)(`li`,{className:T,children:[(0,Q.jsx)(`span`,{className:i(U,`w-[5.5rem] shrink-0`),children:`IP`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px]`,children:e}),(0,Q.jsx)(Ze,{value:e,label:`Copy ${e}`})]},e))}),t?(0,Q.jsx)(`p`,{className:`border-t border-border/60 px-2 py-1.5 text-[11px] text-muted-foreground`,children:t}):null]})}function Ye({scopes:e}){return(0,Q.jsxs)(`section`,{"data-slot":`access-call-example`,children:[(0,Q.jsx)($,{title:`Request`,children:(0,Q.jsx)(xe,{value:Ue,label:`Copy request`})}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 border-b border-border/60`,children:[(0,Q.jsx)(`div`,{className:i(`w-1 shrink-0 self-stretch`,Se(`GET`)),"aria-hidden":!0}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-2.5 py-2`,children:[(0,Q.jsx)(`span`,{className:i(`shrink-0 font-mono text-[10px] font-semibold tracking-[0.08em] uppercase`,p(Ce(`GET`))),children:`GET`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground select-all`,children:`/secure`})]}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 border-t border-border/60 px-2.5 py-2`,children:[(0,Q.jsx)(`span`,{className:`w-[7.5rem] shrink-0 truncate font-mono text-[11px] font-medium text-sky-600 dark:text-sky-400`,children:`Authorization`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[11px] text-muted-foreground`,children:`Bearer <secret>`})]})]})]}),(0,Q.jsx)($,{title:`Response`,children:(0,Q.jsx)(xe,{value:We,label:`Copy response`})}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 border-b border-border/60`,children:[(0,Q.jsx)(`div`,{className:`w-1 shrink-0 self-stretch bg-emerald-500`,"aria-hidden":!0}),(0,Q.jsx)(`p`,{className:`min-w-0 flex-1 px-2.5 py-2 font-mono text-[11px] text-foreground/80 select-all`,children:We})]}),(0,Q.jsxs)(`p`,{className:`px-2 py-1.5 text-[11px] text-muted-foreground`,children:[`Seed the Bearer secret from create / rotate. The key is the issuer; gates see`,` `,e.join(`, `)||`its scopes`,`.`]})]})}function $({title:e,meta:t,children:n}){return(0,Q.jsxs)(`header`,{className:i(D,`items-center gap-2 px-2`),children:[(0,Q.jsx)(`h3`,{className:i(U,`shrink-0 leading-none`),children:e}),t?(0,Q.jsx)(`span`,{className:i(M,!n&&`ml-auto`),children:t}):null,n?(0,Q.jsx)(`div`,{className:`ml-auto flex items-center`,children:n}):null]})}function Xe({label:e,value:t,hint:n,warn:r=!1}){return(0,Q.jsxs)(`span`,{title:n,className:i(v,z,`gap-1.5`),children:[(0,Q.jsx)(`span`,{className:`tracking-[0.08em] uppercase`,children:e}),(0,Q.jsx)(`span`,{className:i(`font-mono tabular-nums text-foreground`,r&&`text-amber-800 dark:text-amber-400`),children:t})]})}function Ze({value:e,label:t}){return(0,Q.jsx)(`div`,{className:`opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100`,children:(0,Q.jsx)(xe,{value:e,label:t})})}function Qe({label:e,value:t,hint:n,copy:r,copyLabel:a,warn:o=!1}){return(0,Q.jsxs)(`div`,{className:T,children:[(0,Q.jsx)(`dt`,{className:i(U,`w-[5.5rem] shrink-0`),children:e}),(0,Q.jsx)(`dd`,{className:i(`min-w-0 flex-1 truncate font-mono text-[11px]`,o&&`text-amber-800 dark:text-amber-400`),title:n,children:t}),r?(0,Q.jsx)(Ze,{value:r,label:a??`Copy ${e}`}):null]})}var $e=[`console.access.list`];function et(){return l({queryKey:$e,queryFn:async()=>{let e=await W();if(e.error||!e.data)throw Error(e.error?.message??`Empty access list`);return e.data}})}function tt({rows:e,selectedKey:t,query:n,loading:r=!1,onSelect:i}){let a=e.filter(e=>e.plane===`user`),o=e.filter(e=>e.plane===`operator`);return(0,Q.jsxs)(`div`,{id:`access-list`,"data-slot":`access-list`,className:`min-h-0 flex-1 overflow-y-auto`,children:[r&&e.length===0?(0,Q.jsx)(`p`,{className:I,children:`Loading…`}):null,!r&&e.length===0&&n.trim().length>0?(0,Q.jsx)(`p`,{className:I,children:`No keys match.`}):null,(0,Q.jsx)(nt,{label:`User`,icon:C,rows:a,selectedKey:t,onSelect:i}),(0,Q.jsx)(nt,{label:`Operator`,icon:g,rows:o,selectedKey:t,onSelect:i})]})}function nt(e){return(0,Q.jsxs)(`section`,{className:d,"aria-label":e.label,children:[(0,Q.jsxs)(`div`,{className:t,children:[(0,Q.jsx)(B,{icon:e.icon,className:i(P,`text-muted-foreground`),"aria-hidden":!0}),(0,Q.jsx)(`span`,{className:i(E,`flex-1`),children:e.label}),(0,Q.jsx)(`span`,{className:M,children:e.rows.length})]}),e.rows.map(t=>{let n=t.id===e.selectedKey,r=t.revokedAt!==null;return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`access-key-row`,className:i(T,n&&`bg-muted/70 text-foreground`),onClick:()=>e.onSelect(t.id),children:[(0,Q.jsx)(`span`,{className:i(L,n&&`bg-sky-500`)}),(0,Q.jsx)(B,{icon:H,className:i(P,`text-muted-foreground`)}),(0,Q.jsx)(`span`,{className:i(`min-w-0 truncate`,r&&`text-muted-foreground line-through`),children:t.name}),r?(0,Q.jsx)(`span`,{className:`ml-auto text-[10px] text-muted-foreground`,children:`revoked`}):t.unused90d?(0,Q.jsx)(`span`,{className:`ml-auto text-[10px] text-amber-700 dark:text-amber-400`,children:`unused`}):(0,Q.jsx)(`span`,{className:i(`ml-auto tabular-nums text-[10px] text-muted-foreground`),children:t.scopes.length})]},t.id)})]})}function rt({entries:e,rateMax:t,rateCount:s,rateUnit:l,onEntries:d,onRateMax:f,onRateCount:p,onRateUnit:m}){let[h,g]=(0,Y.useState)(``),_=Re(h),b=h.trim().length>0&&_.length===0,x=()=>{if(_.length===0)return;let t=new Set(e),n=[...e];for(let e of _)t.has(e)||(t.add(e),n.push(e));d(n),g(``)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`border-b border-border/50`,"data-slot":`access-allow-field`,children:[(0,Q.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Allow`}),(0,Q.jsx)(a,{value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),x())},placeholder:`203.0.113.4 or ci.example.com`,autoComplete:`off`,"aria-label":`Add allow entry`,"aria-invalid":b,flat:!0,className:i(J,`min-w-0 flex-1 font-mono`)}),e.length>0?(0,Q.jsx)(`span`,{className:i(M,`flex h-8 items-center pr-2`),children:e.length}):null,(0,Q.jsx)(`button`,{type:`button`,className:i(y,`h-8`),"aria-label":`Add allow entry`,disabled:_.length===0,onClick:x,children:(0,Q.jsx)(B,{icon:n,className:`size-3.5`,"aria-hidden":!0})})]}),b?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-2 text-[11px] text-destructive`,children:`Need an IP or host — 203.0.113.4, ::1, localhost, or ci.example.com.`}):e.length===0?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-2 text-[11px] text-muted-foreground`,children:`Any client. Add an IP or host.`}):(0,Q.jsx)(`div`,{role:`list`,"aria-label":`Allow list`,children:e.map(t=>{let n=Le(t);return(0,Q.jsxs)(`div`,{role:`listitem`,"data-slot":`access-allow-entry`,"data-kind":n??`invalid`,className:i(T,`last:border-b-0`),children:[(0,Q.jsx)(`span`,{className:i(U,`w-[5.5rem] shrink-0 px-1.5`,n==null&&`text-destructive`),children:n===`ip`?`IP`:n===`host`?`Host`:`Bad`}),(0,Q.jsx)(`span`,{className:i(`min-w-0 truncate font-mono text-[11px]`,n==null&&`text-destructive`),children:t}),(0,Q.jsx)(`button`,{type:`button`,className:i(k,`ml-auto opacity-0 group-hover:opacity-100 focus-visible:opacity-100`),"aria-label":`Remove ${t}`,onClick:()=>d(e.filter(e=>e!==t)),children:(0,Q.jsx)(B,{icon:r,className:`size-3`,"aria-hidden":!0})})]},t)})})]}),(0,Q.jsxs)(`div`,{className:`flex items-stretch border-b border-border/50`,"data-slot":`access-rate-field`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Rate`}),(0,Q.jsxs)(`label`,{className:`flex min-w-0 flex-1 items-stretch border-r border-border/50`,children:[(0,Q.jsx)(`span`,{className:`flex h-8 shrink-0 items-center pl-1 text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Max`}),(0,Q.jsx)(a,{value:t,onChange:e=>f(e.target.value),placeholder:`none`,inputMode:`numeric`,autoComplete:`off`,"aria-label":`Rate max`,flat:!0,className:i(J,`min-w-0 flex-1 px-2 font-mono tabular-nums`)})]}),(0,Q.jsxs)(`label`,{className:`flex min-w-0 flex-1 items-stretch`,children:[(0,Q.jsx)(`span`,{className:`flex h-8 shrink-0 items-center pl-2 text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:`Every`}),(0,Q.jsx)(a,{value:s,onChange:e=>p(e.target.value),placeholder:`1`,inputMode:`numeric`,autoComplete:`off`,"aria-label":`Rate window`,flat:!0,className:i(J,`min-w-0 flex-1 px-2 font-mono tabular-nums`)})]}),(0,Q.jsx)(`div`,{className:`flex h-8 shrink-0 items-stretch`,role:`group`,"aria-label":`Rate unit`,children:Ne.map(e=>(0,Q.jsxs)(u,{children:[(0,Q.jsx)(c,{render:t=>(0,Q.jsx)(`button`,{...t,type:`button`,"aria-pressed":l===e,"aria-label":Pe[e],onClick:n=>{t.onClick?.(n),m(e)},className:i(v,`h-8 px-1.5 font-mono font-semibold`,l===e?ne:z),children:e})}),(0,Q.jsx)(o,{side:`bottom`,className:`text-[11px]`,children:Pe[e]})]},e))})]})]})}function it({expires:e,customExpires:t,onExpires:n,onCustomExpires:r}){return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(ge,{label:`Expires`,children:[(0,Q.jsx)(K,{active:e===`never`,onClick:()=>n(`never`),children:`never`}),(0,Q.jsx)(K,{active:e===`30d`,onClick:()=>n(`30d`),children:`30d`}),(0,Q.jsx)(K,{active:e===`90d`,onClick:()=>n(`90d`),children:`90d`}),(0,Q.jsx)(K,{active:e===`custom`,onClick:()=>n(`custom`),children:`custom`})]}),e===`custom`?(0,Q.jsx)(he,{label:`Duration`,hint:`7d · 12h · 30m`,children:(0,Q.jsx)(a,{value:t,onChange:e=>r(e.target.value),placeholder:`7d`,autoComplete:`off`,"aria-label":`Custom expiry duration`,flat:!0,className:i(J,`font-mono`)})}):null]})}function at({value:e,placeholder:t,label:n,onChange:r}){return(0,Q.jsxs)(`label`,{className:`relative min-w-0 flex-1`,children:[(0,Q.jsx)(B,{icon:h,className:`pointer-events-none absolute top-1/2 left-3 size-3.5 -translate-y-1/2 text-muted-foreground`,"aria-hidden":!0}),(0,Q.jsx)(a,{value:e,onChange:e=>r(e.target.value),placeholder:t,"aria-label":n,autoComplete:`off`,flat:!0,className:i(_e)})]})}function ot({scopes:e,selected:t,empty:n,onChange:r}){let[a,o]=(0,Y.useState)(``),s=new Set(t),c=(0,Y.useMemo)(()=>st(e,a),[e,a]),l=(0,Y.useMemo)(()=>He(c),[c]),u=e.join(`\0`);return(0,Y.useEffect)(()=>{o(``)},[u]),(0,Q.jsxs)(`div`,{className:`border-b border-border/50`,"data-slot":`access-scope-field`,children:[(0,Q.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Scopes`}),e.length>0?(0,Q.jsx)(at,{value:a,placeholder:`Search scopes`,label:`Search scopes`,onChange:o}):null]}),e.length===0?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-3 text-[11px] text-muted-foreground`,children:n}):c.length===0?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-3 text-[11px] text-muted-foreground`,children:`No scopes match.`}):(0,Q.jsx)(`div`,{className:`max-h-56 overflow-y-auto`,role:`group`,"aria-label":`Scopes`,children:l.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-stretch border-t border-border/50`,role:`group`,"aria-label":e.group,children:[(0,Q.jsx)(`p`,{className:`flex w-[5.5rem] shrink-0 items-center px-4 font-mono text-[10px] font-semibold tracking-[0.08em] text-muted-foreground uppercase`,children:e.group}),(0,Q.jsx)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-stretch`,children:e.items.map(e=>{let n=s.has(e.scope);return(0,Q.jsx)(`button`,{type:`button`,"aria-pressed":n,"aria-label":e.scope,"data-slot":`access-scope-chip`,title:e.scope,onClick:()=>{r(n?t.filter(t=>t!==e.scope):[...t,e.scope])},className:i(`inline-flex h-8 min-w-0 items-center px-2 font-mono text-[10px] font-semibold outline-none select-none`,`focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset`,n?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),children:e.action},e.scope)})})]},e.group))})]})}function st(e,t){let n=t.trim().toLowerCase();return n.length===0?e:e.filter(e=>e.toLowerCase().includes(n))}function ct({open:e,users:t,userScopes:n,operatorScopes:r,pending:o,error:s,onOpenChange:c,onSubmit:l}){let[u,d]=(0,Y.useState)(`user`),[f,p]=(0,Y.useState)(``),[m,h]=(0,Y.useState)(``),[_,v]=(0,Y.useState)([]),[y,b]=(0,Y.useState)(`never`),[x,w]=(0,Y.useState)(``),[E,D]=(0,Y.useState)([]),[k,j]=(0,Y.useState)(``),[M,P]=(0,Y.useState)(``),[I,R]=(0,Y.useState)(`m`),[z,B]=(0,Y.useState)(``),V=t.find(e=>e.id===m)??null,te=(0,Y.useMemo)(()=>{let e=z.trim().toLowerCase(),n=e.length===0?t:t.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||t.email.toLowerCase().includes(e));return V&&!n.some(e=>e.id===V.id)?[V,...n]:n},[t,z,V]),H=(0,Y.useMemo)(()=>u===`operator`?r:V==null?[]:V.scopes.length>0?V.scopes:n,[u,n,r,V]);(0,Y.useEffect)(()=>{e||(d(`user`),p(``),h(``),v([]),b(`never`),w(``),D([]),j(``),P(``),R(`m`),B(``))},[e]),(0,Y.useEffect)(()=>{v(e=>{let t=e.filter(e=>H.includes(e));if(t.length>0)return t;let n=H[0];return n?[n]:[]})},[H]);let U=De(x),W=Fe(k,M,I),ne=f.trim().length>0&&_.length>0&&!o&&W!==void 0&&(u===`operator`||m.length>0)&&(y!==`custom`||U>0);return(0,Q.jsx)(O,{open:e,modal:!1,disablePointerDismissal:!0,onOpenChange:c,children:(0,Q.jsxs)(N,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`access-create-sheet`,children:[(0,Q.jsxs)(A,{className:`gap-1 border-b border-border/50`,children:[(0,Q.jsx)(ee,{className:`text-sm`,children:`Create API key`}),(0,Q.jsx)(F,{className:`text-[11px]`,children:u===`user`?`User-plane keys require an issuer. The key cannot exceed that user's grants.`:`Operator keys inherit the actor ceiling. Absence is impossible — only grantable scopes appear.`})]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Q.jsxs)(`div`,{className:`flex items-stretch border-b border-border/50`,"data-slot":`access-name-field`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Name`}),(0,Q.jsx)(a,{value:f,onChange:e=>p(e.target.value),placeholder:`CI deploy`,autoComplete:`off`,"aria-label":`Key name`,flat:!0,className:i(J,`min-w-0 flex-1`)})]}),(0,Q.jsxs)(ge,{label:`Plane`,children:[(0,Q.jsx)(K,{active:u===`user`,icon:C,onClick:()=>{d(`user`)},children:`user`}),(0,Q.jsx)(K,{active:u===`operator`,icon:g,onClick:()=>{d(`operator`),h(``),B(``)},children:`operator`})]}),(0,Q.jsx)(it,{expires:y,customExpires:x,onExpires:b,onCustomExpires:w}),(0,Q.jsx)(rt,{entries:E,rateMax:k,rateCount:M,rateUnit:I,onEntries:D,onRateMax:j,onRateCount:P,onRateUnit:R}),u===`user`?(0,Q.jsxs)(`div`,{className:`border-b border-border/50`,"data-slot":`access-issuer-field`,children:[(0,Q.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Issuer`}),t.length>0?(0,Q.jsx)(at,{value:z,placeholder:`Search users`,label:`Search users`,onChange:B}):null]}),t.length===0?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-3 text-[11px] text-muted-foreground`,children:`No users on this plane.`}):te.length===0?(0,Q.jsx)(`p`,{className:`border-t border-border/50 px-4 py-3 text-[11px] text-muted-foreground`,children:`No users match.`}):(0,Q.jsx)(`div`,{className:`max-h-56 overflow-y-auto`,children:te.map(e=>{let t=e.id===m;return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`access-creator-user`,"aria-pressed":t,className:i(T,t&&`bg-muted/70 text-foreground`),onClick:()=>h(e.id),children:[(0,Q.jsx)(`span`,{className:i(L,t&&`bg-sky-500`)}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name}),(0,Q.jsx)(`span`,{className:`ml-auto shrink-0 font-mono text-[10px] text-muted-foreground`,children:e.id})]},e.id)})})]}):null,(0,Q.jsx)(ot,{scopes:H,selected:_,empty:u===`user`&&m.length===0?`Select an issuer to see grantable scopes.`:u===`user`?`This user has no grants.`:`No grantable scopes on this plane.`,onChange:v}),s?(0,Q.jsx)(ve,{slot:`access-create-error`,children:s}):null]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(q,{split:!0,onClick:()=>c(!1),disabled:o,children:`Cancel`}),(0,Q.jsx)(q,{variant:`default`,disabled:!ne,"data-slot":`access-create-submit`,onClick:()=>{if(W===void 0)return;let e=Oe(y,Date.now(),x);l({plane:u,name:f.trim(),scopes:_,...u===`user`?{creatorUserId:m}:{},...e==null?{}:{expiresAt:e},...W==null?{}:{rateLimit:W},...E.length>0?{ipAllowlist:E}:{}})},children:o?`Creating…`:`Create`})]})]})})}function lt({open:e,keyRow:t,users:n,operators:r,operatorScopes:o,pending:s,error:c,now:l=Date.now(),onOpenChange:u,onSubmit:d}){let f=ke(t.expiresAt,l),[p,m]=(0,Y.useState)(t.name),[h,_]=(0,Y.useState)(t.scopes),[v,y]=(0,Y.useState)(f.choice),[b,x]=(0,Y.useState)(f.custom),[w,T]=(0,Y.useState)(t.ipAllowlist),E=Ie(t.rateLimit?.per??``),[D,k]=(0,Y.useState)(t.rateLimit?String(t.rateLimit.max):``),[j,M]=(0,Y.useState)(E.count),[P,I]=(0,Y.useState)(E.unit);(0,Y.useEffect)(()=>{if(!e)return;let n=ke(t.expiresAt,l);m(t.name),_(t.scopes),y(n.choice),x(n.custom),T(t.ipAllowlist);let r=Ie(t.rateLimit?.per??``);k(t.rateLimit?String(t.rateLimit.max):``),M(r.count),I(r.unit)},[e,t.id]);let L=t.creatorId??``,R=(0,Y.useMemo)(()=>L.length===0?null:n.find(e=>e.id===L)??r.find(e=>e.id===L)??null,[L,r,n]),z=R?R.name.trim()||R.email.trim()||R.id:L||`Unknown`,V=(0,Y.useMemo)(()=>{let e=t.creatorScopes??[];return e.length>0?e:t.plane===`operator`?R&&R.scopes.length>0?R.scopes:o:R?.scopes??[]},[R,t.creatorScopes,t.plane,o]),te=Array.from(new Set([...V,...t.scopes])),H=De(b),U=Fe(D,j,P),W=p.trim().length>0&&h.length>0&&!s&&U!==void 0&&(v!==`custom`||H>0);return(0,Q.jsx)(O,{open:e,modal:!1,disablePointerDismissal:!0,onOpenChange:u,children:(0,Q.jsxs)(N,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`access-edit-sheet`,children:[(0,Q.jsxs)(A,{className:`gap-1 border-b border-border/50`,children:[(0,Q.jsx)(ee,{className:`text-sm`,children:`Edit key`}),(0,Q.jsx)(F,{className:`text-[11px]`,children:`Change name, expiry, allow, rate, and scopes. Issuer stays frozen.`})]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Q.jsxs)(`div`,{className:`flex items-stretch border-b border-border/50`,"data-slot":`access-name-field`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Name`}),(0,Q.jsx)(a,{value:p,onChange:e=>m(e.target.value),placeholder:`CI deploy`,autoComplete:`off`,"aria-label":`Key name`,flat:!0,className:i(J,`min-w-0 flex-1`)})]}),(0,Q.jsxs)(`div`,{className:`flex items-stretch border-b border-border/50`,"data-slot":`access-issuer-field`,children:[(0,Q.jsx)(`p`,{className:`flex h-8 w-[5.5rem] shrink-0 items-center px-4 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:`Issuer`}),(0,Q.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center gap-1.5 px-4 text-[12px] text-muted-foreground`,"aria-label":`Issuer ${z}`,children:[(0,Q.jsx)(B,{icon:t.plane===`operator`?g:C,className:`size-3 shrink-0`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate text-foreground`,children:z})]}),L.length>0&&L!==z?(0,Q.jsx)(`span`,{className:`flex h-8 shrink-0 items-center pr-4 font-mono text-[10px] text-muted-foreground`,children:L}):null]}),(0,Q.jsx)(it,{expires:v,customExpires:b,onExpires:y,onCustomExpires:x}),(0,Q.jsx)(rt,{entries:w,rateMax:D,rateCount:j,rateUnit:P,onEntries:T,onRateMax:k,onRateCount:M,onRateUnit:I}),(0,Q.jsx)(ot,{scopes:te,selected:h,empty:t.plane===`user`&&R==null?`Issuer is gone. Only scopes already on this key remain.`:t.plane===`user`?`This issuer has no grants.`:`No grantable scopes on this plane.`,onChange:_}),c?(0,Q.jsx)(ve,{slot:`access-edit-error`,children:c}):null]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(q,{split:!0,onClick:()=>u(!1),disabled:s,children:`Cancel`}),(0,Q.jsx)(q,{variant:`default`,disabled:!W,"data-slot":`access-edit-submit`,onClick:()=>{U!==void 0&&d({name:p.trim(),scopes:h,expiresAt:Oe(v,Date.now(),b),rateLimit:U,ipAllowlist:w})},children:s?`Saving…`:`Save`})]})]})})}function ut({open:e,keyRow:t,pending:n,error:r,now:i=Date.now(),onOpenChange:a,onSubmit:o}){let s=je(t.expiresAt,i),[c,l]=(0,Y.useState)(s.choice),[u,d]=(0,Y.useState)(s.custom);(0,Y.useEffect)(()=>{if(!e)return;let n=je(t.expiresAt,i);l(n.choice),d(n.custom)},[e,t.id]);let f=De(u);return(0,Q.jsx)(O,{open:e,modal:!1,disablePointerDismissal:!0,onOpenChange:a,children:(0,Q.jsxs)(N,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`access-refresh-sheet`,children:[(0,Q.jsxs)(A,{className:`gap-1 border-b border-border/50`,children:[(0,Q.jsx)(ee,{className:`text-sm`,children:`Refresh expiry`}),(0,Q.jsx)(F,{className:`text-[11px]`,children:`Reset the deadline from now. The secret does not change.`})]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Q.jsx)(it,{expires:c,customExpires:u,onExpires:l,onCustomExpires:d}),r?(0,Q.jsx)(ve,{slot:`access-refresh-error`,children:r}):null]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(q,{split:!0,onClick:()=>a(!1),disabled:n,children:`Cancel`}),(0,Q.jsx)(q,{variant:`default`,disabled:!(!n&&(c!==`custom`||f>0)),"data-slot":`access-refresh-submit`,onClick:()=>{o(Oe(c,Date.now(),u))},children:n?`Refreshing…`:`Refresh`})]})]})})}function dt({secret:e,title:t=`New API key`,onDismiss:n}){let[r,i]=(0,Y.useState)(!1);return(0,Q.jsx)(O,{open:e!==null,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(N,{side:`right`,showOverlay:!1,className:`gap-0 p-0 data-[side=right]:sm:max-w-md`,"data-slot":`access-secret-sheet`,children:[(0,Q.jsxs)(A,{className:`gap-1 border-b border-border/50`,children:[(0,Q.jsx)(ee,{className:`text-sm`,children:t}),(0,Q.jsx)(F,{className:`text-[11px]`,children:`Shown once. Store it offline. This Console process does not keep it for you.`})]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Q.jsx)(`p`,{className:`border-b border-border/50 px-4 py-3 font-mono text-[11px] break-all`,children:e}),(0,Q.jsx)(`p`,{className:`px-4 py-3 text-[11px] text-muted-foreground`,role:`status`,children:`Copying puts the secret on the clipboard. Anyone with this device can read it until you clear it.`})]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(q,{split:!0,disabled:!e,onClick:()=>{e&&(navigator.clipboard?.writeText(e),i(!0))},children:r?`Copied`:`Copy (clipboard warning)`}),(0,Q.jsx)(q,{variant:`destructive`,onClick:()=>{i(!1),n()},children:`I have stored this key`})]})]})})}function ft(){let e=et(),t=s(),{query:r,selectedKey:i,action:a,setQuery:o,setSelectedKey:c,setAction:u}=ae(),d=le(),[p]=(0,Y.useState)(()=>Date.now()),[h,g]=(0,Y.useState)(null),[v,S]=(0,Y.useState)(`New API key`),C=(0,Y.useMemo)(()=>{let t=e.data?.userPlane.keys??[],n=e.data?.operatorPlane.keys??[];return[...t,...n]},[e.data]),T=(0,Y.useMemo)(()=>{let e=r.trim().toLowerCase();return e?C.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||t.scopes.some(t=>t.toLowerCase().includes(e))):C},[C,r]),E=T.find(e=>e.id===i)??C.find(e=>e.id===i),D=l({queryKey:[`console.access.blast`,E?.id],queryFn:async()=>{if(!E)throw Error(`no key`);let e=await R(E.id);if(e.error||!e.data)throw Error(e.error?.message??`blast failed`);return e.data},enabled:E!==void 0});(0,Y.useEffect)(()=>{let e=e=>{if(e.key!==`/`||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;if(t instanceof HTMLElement){let e=t.tagName;if(e===`INPUT`||e===`TEXTAREA`||t.isContentEditable)return}e.preventDefault(),document.querySelector(`[data-slot='access-search-input']`)?.focus()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let O=()=>{t.invalidateQueries({queryKey:$e})},k=G({mutationFn:_,onSuccess:e=>{if(e.error||!e.data)throw Error(e.error?m(e.error):`create failed`);S(`New API key`),g(e.data.secret),c(e.data.key.id),u(null),O()}}),A=G({mutationFn:e=>te({keyId:E.id,confirmation:e.confirmation,reason:e.reason}),onSuccess:e=>{if(e.error||!e.data)throw Error(e.error?m(e.error):`rotate failed`);S(`Rotated API key`),g(e.data.secret),u(null),O()}}),M=G({mutationFn:e=>b({keyId:E.id,confirmation:e.confirmation,reason:e.reason}),onSuccess:e=>{if(e.error||!e.data)throw Error(e.error?m(e.error):`revoke failed`);u(null),O()}}),N=G({mutationFn:f,onSuccess:e=>{if(e.error||!e.data)throw Error(e.error?m(e.error):`update failed`);u(null),O()}}),P=G({mutationFn:e=>f({keyId:E.id,expiresAt:e}),onSuccess:e=>{if(e.error||!e.data)throw Error(e.error?m(e.error):`refresh failed`);u(null),O()}}),F=(0,Q.jsx)(ue,{open:d.open,onToggle:d.toggle,noun:`keys`,controlsId:`access-list`,dataSlot:`access-list-toggle`});return(0,Q.jsxs)(`div`,{className:w,"data-slot":`access-page`,children:[(0,Q.jsxs)(oe,{orientation:`horizontal`,className:`min-h-0 flex-1`,children:[(0,Q.jsx)(ce,{panelRef:d.panelRef,collapsible:!0,collapsedSize:0,defaultSize:j.start.defaultSize,minSize:j.start.minSize,onResize:d.onResize,className:`min-h-0 overflow-hidden`,children:(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,Q.jsxs)(`div`,{className:x,children:[(0,Q.jsx)(se,{"data-slot":`access-search-input`,placeholder:`Search keys`,"aria-label":`Search keys`,value:r,onChange:e=>o(e.target.value)}),(0,Q.jsx)(fe,{label:`Create key`,className:`flex self-stretch`,children:(0,Q.jsx)(`button`,{type:`button`,className:y,"data-slot":`access-create`,"aria-label":`Create key`,onClick:()=>u(`create`),children:(0,Q.jsx)(B,{icon:n,className:`size-3.5`})})})]}),(0,Q.jsx)(tt,{rows:T,selectedKey:i,query:r,loading:e.isLoading,onSelect:c})]})}),d.open?(0,Q.jsx)(de,{withHandle:!0}):null,(0,Q.jsx)(ce,{defaultSize:j.end.defaultSize,minSize:j.end.minSize,className:`min-h-0 overflow-hidden`,children:E?(0,Q.jsx)(Ge,{keyRow:E,blast:D.data,now:p,leading:F,onEdit:()=>u(`edit`),onRefresh:()=>u(`refresh`),onRevoke:()=>u(`revoke`),onRotate:()=>u(`rotate`),rotatePending:A.isPending}):(0,Q.jsx)(me,{icon:pe.gate.icon,iconClassName:`border-border/70`,title:e.isLoading?`Loading keys…`:C.length>0?`Select a key`:`No keys yet`,leading:F,description:e.isLoading?`Reading planes and grantable scopes.`:C.length>0&&r.trim().length>0?(0,Q.jsxs)(Q.Fragment,{children:[`Nothing matches `,(0,Q.jsx)(`span`,{className:`font-mono`,children:r}),`.`,` `,(0,Q.jsx)(`button`,{type:`button`,className:`underline underline-offset-2 hover:text-foreground`,onClick:()=>o(``),children:`Clear search`})]}):`Create one to mint a secret once.`})})]}),(0,Q.jsx)(ct,{open:a===`create`,users:e.data?.userPlane.users??[],userScopes:e.data?.userPlane.grantableScopes??[],operatorScopes:e.data?.operatorPlane.grantableScopes??[],pending:k.isPending,error:k.error instanceof Error?k.error.message:null,onOpenChange:e=>{e||u(null)},onSubmit:e=>k.mutate(e)}),E?(0,Q.jsx)(lt,{open:a===`edit`,keyRow:E,users:e.data?.userPlane.users??[],operators:e.data?.operatorPlane.operators??[],operatorScopes:e.data?.operatorPlane.grantableScopes??[],pending:N.isPending,error:N.error instanceof Error?N.error.message:null,onOpenChange:e=>{e||u(null)},onSubmit:e=>N.mutate({keyId:E.id,...e})}):null,E?(0,Q.jsx)(ut,{open:a===`refresh`,keyRow:E,pending:P.isPending,error:P.error instanceof Error?P.error.message:null,onOpenChange:e=>{e||u(null)},onSubmit:e=>P.mutate(e)}):null,E?(0,Q.jsx)(be,{open:a===`revoke`,onOpenChange:e=>{e||u(null)},phrase:`REVOKE`,title:`Revoke ${E.name}`,description:`Irreversible. Residual sessions may continue for the access TTL.`,pending:M.isPending,error:M.error instanceof Error?M.error.message:null,confirmLabel:`Revoke key`,slot:`access-revoke-sheet`,onConfirm:e=>M.mutate({confirmation:`REVOKE`,reason:e.reason})}):null,E?(0,Q.jsx)(be,{open:a===`rotate`,onOpenChange:e=>{e||u(null)},phrase:`ROTATE`,title:`Rotate ${E.name}`,description:`Mints a new secret once. The current secret stops after residual TTL.`,pending:A.isPending,error:A.error instanceof Error?A.error.message:null,confirmLabel:`Rotate key`,confirmVariant:`ghost`,slot:`access-rotate-sheet`,onConfirm:e=>A.mutate({confirmation:`ROTATE`,reason:e.reason})}):null,(0,Q.jsx)(dt,{secret:h,title:v,onDismiss:()=>g(null)})]})}export{ft as AccessPage};
@@ -1 +1 @@
1
- import{wr as e}from"./shortcut-keys-CoqwEIi0.js";import{A as t}from"./xyflow-D7n4g6go.js";import{V as n,n as r,t as i}from"./react-D8E3mtu1.js";var a=t();function o({open:t,openHeight:o=`auto`,className:s,style:c,transition:l,...u}){let d=r()??!1;return(0,a.jsx)(i.div,{...u,"aria-hidden":!t,inert:!t||void 0,initial:!1,animate:d?{opacity:+!!t}:{opacity:+!!t,clipPath:t?`inset(0 0 0% 0)`:`inset(0 0 100% 0)`,y:t?0:-4},transition:l??{duration:d?0:t?.22:.14,ease:n},className:e(`overflow-hidden`,s),style:{...c,height:t?o:0,pointerEvents:t?void 0:`none`,transformOrigin:`top`}})}export{o as t};
1
+ import{Cr as e}from"./shortcut-keys-DKxNTe_m.js";import{A as t}from"./xyflow-D7n4g6go.js";import{V as n,n as r,t as i}from"./react-D8E3mtu1.js";var a=t();function o({open:t,openHeight:o=`auto`,className:s,style:c,transition:l,...u}){let d=r()??!1;return(0,a.jsx)(i.div,{...u,"aria-hidden":!t,inert:!t||void 0,initial:!1,animate:d?{opacity:+!!t}:{opacity:+!!t,clipPath:t?`inset(0 0 0% 0)`:`inset(0 0 100% 0)`,y:t?0:-4},transition:l??{duration:d?0:t?.22:.14,ease:n},className:e(`overflow-hidden`,s),style:{...c,height:t?o:0,pointerEvents:t?void 0:`none`,transformOrigin:`top`}})}export{o as t};
@@ -0,0 +1 @@
1
+ import{Cr as e,F as t,L as n,P as r,wr as i}from"./shortcut-keys-DKxNTe_m.js";import{A as a,f as o}from"./xyflow-D7n4g6go.js";import{t as s}from"./dagre.esm-ZwcdTuZZ.js";import{C as c,S as l,b as u,g as d,h as f,n as p,x as m}from"./request-meta-DV0ywz7t.js";function h(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function g(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(t+1)}function _(e){let t=e?.flows??{},n=new Map;for(let e of Object.keys(t)){let r=t[e]?.effects?.calls??[];for(let t of r){let r=n.get(t)??[];r.push(e),n.set(t,r)}}for(let[e,t]of n)t.sort((e,t)=>e.localeCompare(t)),n.set(e,t);return n}function v(e,t){return _(e).get(t)??[]}function y(e){return e.startsWith(`sql:`)?{id:e,kind:`store`,label:e.slice(4),facet:`sql`}:e.startsWith(`kv:`)?{id:e,kind:`store`,label:e.slice(3),facet:`kv`}:e.startsWith(`files:`)?{id:e,kind:`store`,label:e.slice(6),facet:`files`}:e.startsWith(`index:`)?{id:e,kind:`store`,label:e.slice(6),facet:`index`}:e.startsWith(`signal:`)?{id:e,kind:`signal`,label:e.slice(7)}:e.startsWith(`ai:`)?{id:e,kind:`ai`,label:e.slice(3)}:e.startsWith(`vault:`)?{id:e,kind:`vault`,label:e.slice(6)}:e.startsWith(`channel:`)?{id:e,kind:`channel`,label:e.slice(8)}:e.startsWith(`gate:`)?{id:e,kind:`gate`,label:e.slice(5)}:e.startsWith(`clock:`)?{id:e,kind:`clock`,label:e.slice(6)}:null}function b(e,t,n,r,i=!1){let a=f[r];return{id:e,source:t,target:n,type:`smoothstep`,animated:i,data:{kind:r},style:{stroke:a,strokeWidth:r===`calls`?2.5:2.25},pathOptions:{borderRadius:28},zIndex:d.edge,markerEnd:{type:o.ArrowClosed,width:14,height:14,color:a}}}function x(e){let t=e?.flows??{},n=new Set(Object.keys(t)),r=[],i=new Map;for(let e of[...n].sort()){let t=h(e),n=i.get(t)??[];n.push(e),i.set(t,n)}let a=new Map,o=new Map;for(let e of n){let n=t[e];if(!n)continue;if(n.trigger?.signal){let t=`signal:${n.trigger.signal}`,i=y(t);i&&a.set(t,i),r.push(b(`e:${t}->flow:${e}`,t,`flow:${e}`,`trigger`))}if(n.trigger?.cron||n.trigger?.every){let t=`clock:${e}`,i=n.trigger.cron??n.trigger.every??e;a.set(t,{id:t,kind:`clock`,label:i,facet:n.trigger.cron?`cron`:`every`}),r.push(b(`e:${t}->flow:${e}`,t,`flow:${e}`,`trigger`))}for(let t of n.gates??[]){let n=`gate:${t}`;a.set(n,{id:n,kind:`gate`,label:t}),o.set(n,(o.get(n)??0)+1),r.push(b(`e:flow:${e}-gates->${n}`,`flow:${e}`,n,`gates`))}let i=n.effects;if(i){for(let t of i.reads??[]){let n=y(t);n&&(a.set(t,n),o.set(t,(o.get(t)??0)+1),r.push(b(`e:flow:${e}-reads->${t}`,`flow:${e}`,t,`reads`)))}for(let t of i.writes??[]){let n=y(t);n&&(a.set(t,n),o.set(t,(o.get(t)??0)+1),r.push(b(`e:flow:${e}-writes->${t}`,`flow:${e}`,t,`writes`)))}for(let t of i.emits??[]){let n=`signal:${t}`,i=y(n);i&&(a.set(n,i),o.set(n,(o.get(n)??0)+1),r.push(b(`e:flow:${e}->${n}`,`flow:${e}`,n,`emits`)))}for(let t of i.asks??[]){let n=`ai:${t}`,i=y(n);i&&(a.set(n,i),o.set(n,(o.get(n)??0)+1),r.push(b(`e:flow:${e}->${n}`,`flow:${e}`,n,`asks`)))}for(let t of i.sends??[]){let n=`channel:${t}`,i=y(n);i&&(a.set(n,i),o.set(n,(o.get(n)??0)+1),r.push(b(`e:flow:${e}->${n}`,`flow:${e}`,n,`sends`)))}for(let t of i.secrets??[]){let n=`vault:${t}`,i=y(n);i&&(a.set(n,i),o.set(n,(o.get(n)??0)+1),r.push(b(`e:flow:${e}->${n}`,`flow:${e}`,n,`secrets`)))}for(let t of i.calls??[]){let n=c(t);if(n){let t=l(n.server);a.set(t,{id:t,kind:`ai`,label:n.server}),o.set(t,(o.get(t)??0)+1),r.push(b(`e:flow:${e}->${t}`,`flow:${e}`,t,`calls`,!0));continue}r.push(b(`e:flow:${e}->flow:${t}`,`flow:${e}`,`flow:${t}`,`calls`,!0))}}}return{nodes:S(i,t,a,o),edges:r,flowIds:n}}function S(e,t,n,r){let i=new s.graphlib.Graph({compound:!0});i.setGraph({rankdir:`LR`,align:`UL`,nodesep:16,ranksep:88,edgesep:12,marginx:8,marginy:8}),i.setDefaultEdgeLabel(()=>({}));for(let[t,n]of[...e.entries()].sort()){i.setNode(`unit:${t}`,{});for(let e of n)i.setNode(`flow:${e}`,{...u.flow}),i.setParent(`flow:${e}`,`unit:${t}`)}for(let e of n.values())i.setNode(e.id,{...u[e.kind]});let a=new Set;for(let n of e.values())for(let e of n){let n=t[e];if(!n)continue;let r=(e,t)=>{let n=`${e}->${t}`;a.has(n)||!i.hasNode(e)||!i.hasNode(t)||(a.add(n),i.setEdge(e,t))};n.trigger?.signal&&r(`signal:${n.trigger.signal}`,`flow:${e}`),(n.trigger?.cron||n.trigger?.every)&&r(`clock:${e}`,`flow:${e}`);for(let t of n.gates??[])r(`flow:${e}`,`gate:${t}`);let o=n.effects;if(o){for(let t of o.reads??[])r(`flow:${e}`,t);for(let t of o.writes??[])r(`flow:${e}`,t);for(let t of o.emits??[])r(`flow:${e}`,`signal:${t}`);for(let t of o.asks??[])r(`flow:${e}`,`ai:${t}`);for(let t of o.sends??[])r(`flow:${e}`,`channel:${t}`);for(let t of o.secrets??[])r(`flow:${e}`,`vault:${t}`);for(let t of o.calls??[]){let n=c(t);n?r(`flow:${e}`,l(n.server)):r(`flow:${e}`,`flow:${t}`)}}}s.layout(i);let o=[],{headerH:f,padX:p,padBottom:h}=m;for(let[n,r]of[...e.entries()].sort()){let e=`unit:${n}`,a=i.node(e);if(!a)continue;let s=a.x??0,c=a.y??0,l=r.length*u.flow.height+Math.max(0,r.length-1)*10,m=u.flow.width+p*2,_=f+l+h,v=s-m/2,y=c-_/2;o.push({id:e,type:`unit`,position:{x:v,y},data:{kind:`unit`,label:n,refId:e,badge:String(r.length)},selectable:!1,draggable:!1,zIndex:d.unit,width:m,height:_,style:{width:m,height:_}}),r.forEach((r,i)=>{let a=t[r];a&&o.push({id:`flow:${r}`,type:`flow`,position:{x:p,y:f+i*(u.flow.height+10)},parentId:e,extent:`parent`,zIndex:d.leaf,data:{kind:`flow`,label:g(r),refId:r,unit:n,plane:a.plane??`user`,badge:a.plane??`user`},draggable:!1,width:u.flow.width,height:u.flow.height,style:{width:u.flow.width,height:u.flow.height}})})}let _=[...n.values()].sort((e,t)=>e.kind.localeCompare(t.kind)||e.label.localeCompare(t.label));for(let e of _){let t=i.node(e.id),n=u[e.kind],a=r.get(e.id)??0;o.push({id:e.id,type:e.kind,position:{x:(t?.x??0)-n.width/2,y:(t?.y??0)-n.height/2},data:{kind:e.kind,label:e.label,refId:e.id,...e.facet===void 0?{}:{facet:e.facet},badge:e.facet??(a>0?String(a):e.kind)},draggable:!1,zIndex:d.leaf,width:n.width,height:n.height,style:{width:n.width,height:n.height}})}return o}function C(e,t,n,r={}){let i=t.size>0||n.size>0;return e.map(e=>{if(e.data.kind===`unit`||e.data.kind===`law`)return e;let a=e.data.kind===`flow`?t.has(e.data.refId):n.has(e.id);return{...e,data:{...e.data,highlighted:a,dimmed:i&&!a,active:r.activeNodeId!=null&&e.id===r.activeNodeId,focused:r.focusedNodeId!=null&&e.id===r.focusedNodeId}}})}function w(e,t){let n=new Map(t.map(e=>[e.id,e]));return t.some(e=>e.data.highlighted===!0)?e.map(e=>{let t=n.get(e.source),r=n.get(e.target),i=t?.data.highlighted===!0&&r?.data.highlighted===!0,a=f[e.data?.kind??`reads`];return{...e,animated:i?!0:e.animated,style:{...e.style,stroke:a,opacity:i?1:.32,strokeWidth:i?2.75:1.75},markerEnd:e.markerEnd&&typeof e.markerEnd==`object`?{...e.markerEnd,color:a}:e.markerEnd}}):e.map(e=>({...e,style:{...e.style,opacity:1}}))}var T=100;function E(e,t){return e.filter(e=>t.has(e.flow)).sort((e,t)=>t.startedAt-e.startedAt).slice(0,T)}var D=a();function O({cache:a,dataSlot:o}){let s=p(a);return(0,D.jsxs)(r,{children:[(0,D.jsx)(n,{render:t=>(0,D.jsx)(`span`,{...t,className:e(`flex w-4 shrink-0 items-center justify-center`,s.className),"data-slot":o,"data-cache":a,"aria-label":s.label,children:(0,D.jsx)(i,{icon:s.icon,className:`size-3`,"aria-hidden":!0})})}),(0,D.jsx)(t,{side:`top`,children:s.label})]})}export{w as a,h as c,C as i,E as n,x as o,g as r,v as s,O as t};
@@ -0,0 +1 @@
1
+ import{Cr as e,Ti as t,Ur as n,da as r,ni as i,ua as a,wr as o,x as s,xi as c}from"./shortcut-keys-DKxNTe_m.js";import{A as l}from"./xyflow-D7n4g6go.js";import{s as u}from"./element-icons-BVXtRyd3.js";var d=l();function f({kind:r,className:a,hex:s,inferred:l}){return r===`pk`?(0,d.jsx)(o,{icon:c,className:e(`size-3 shrink-0 text-amber-500`,a),"aria-label":`Primary key`}):r===`unique`?(0,d.jsx)(o,{icon:i,className:e(`size-3 shrink-0 text-violet-500`,a),"aria-label":`Unique`}):r===`none`?(0,d.jsx)(o,{icon:n,className:e(`size-3 shrink-0 text-muted-foreground/35`,a),"aria-label":`No key`}):(0,d.jsx)(o,{icon:t,className:e(`size-3 shrink-0`,!s&&`text-sky-500`,a),style:s?{color:s}:void 0,"aria-label":l?`Inferred foreign key`:`Foreign key`})}function p({primaryKey:e,foreignKey:t,unique:n,inferred:r,hex:i,empty:a=`spacer`}){let o=n===!0&&e!==!0;return!e&&!t&&!o?a===`none`?(0,d.jsx)(`span`,{className:`inline-flex shrink-0 items-center`,title:`None`,children:(0,d.jsx)(f,{kind:`none`})}):(0,d.jsx)(`span`,{className:`inline-flex w-3 shrink-0`,"aria-hidden":!0}):(0,d.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-px`,children:[e?(0,d.jsx)(f,{kind:`pk`}):null,t?(0,d.jsx)(f,{kind:`fk`,hex:i,inferred:r}):null,o?(0,d.jsx)(f,{kind:`unique`}):null]})}var m=`[redacted]`;function h(e){let t=[e],n=y(e),r=b(e);return n!==e&&t.push(n),r!==e&&t.push(r),t}function g(e,t){for(let n of h(t))e.add(n)}function _(e){let t=new Set;for(let n of e)g(t,n);return t}function v(e){let t=new Set;for(let n of e)t.add(y(n));return t.size}function y(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/([A-Z])([A-Z][a-z])/g,`$1_$2`).toLowerCase()}function b(e){return e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase())}function x({piiMasked:t,disabled:n,onToggle:i}){return(0,d.jsx)(u,{label:t?`PII hidden. Click to include cleartext (audited).`:`PII included. Click to remask.`,className:`flex self-stretch`,children:(0,d.jsxs)(s,{type:`button`,variant:`ghost`,size:`sm`,disabled:n,className:e(`h-full rounded-none px-2 text-[11px]`,!t&&`text-amber-800 dark:text-amber-300`),"aria-pressed":!t,"aria-label":t?`Include PII: disabled`:`Include PII: enabled`,onClick:i,"data-slot":`call-api-pii`,children:[(0,d.jsx)(o,{icon:t?r:a,"data-icon":`inline-start`,className:`size-3.5`}),`PII`]})})}export{v as a,_ as i,m as n,p as o,g as r,f as s,x as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$t as t,Cr as n,Hn as r,J as i,Mt as a,Nt as o,O as s,On as c,S as l,T as u,U as d,Vn as f,Y as p,Zt as m,en as h,ft as g,hn as _,jt as v,mt as y,nn as b,pt as x,rn as S,tn as C,un as w}from"./shortcut-keys-DKxNTe_m.js";import{r as T}from"./react-dom-Bph1y7z7.js";import{A as E}from"./xyflow-D7n4g6go.js";import{t as D}from"./useRender-BE2A9BWC.js";var O=u(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function k({className:e,variant:t=`default`,render:r,...i}){return D({defaultTagName:`span`,props:a({className:n(O({variant:t}),e)},i),render:r,state:{slot:`badge`,variant:t}})}var A=e(T(),1);function j(e){let{open:n,defaultOpen:r,onOpenChange:i,disabled:a}=e,[o,c]=s({controlled:n,default:r,name:`Collapsible`,state:`open`}),{mounted:l,setMounted:u,transitionStatus:f}=y(o,!0,!0),p=d(),[m,h]=A.useState(),g=m===null?void 0:m??p,v=t(e=>{let t=!o,n=S(_,e.nativeEvent);i(t,n),!n.isCanceled&&c(t)});return A.useMemo(()=>({defaultPanelId:p,disabled:a,handleTrigger:v,mounted:l,open:o,panelId:g,setMounted:u,setOpen:c,setPanelIdState:h,transitionStatus:f}),[p,a,v,l,o,g,u,c,h,f])}var M=A.createContext(void 0);function N(){let e=A.useContext(M);if(e===void 0)throw Error(f(15));return e}var P=function(e){return e.open=`data-open`,e.closed=`data-closed`,e[e.startingStyle=i.startingStyle]=`startingStyle`,e[e.endingStyle=i.endingStyle]=`endingStyle`,e}({}),F=function(e){return e.panelOpen=`data-panel-open`,e}({}),I={[P.open]:``},L={[P.closed]:``},R={open(e){return e?{[F.panelOpen]:``}:null}},z={open(e){return e?I:L},...p},B=E(),V=A.forwardRef(function(e,n){let{render:r,className:i,defaultOpen:a=!1,disabled:o=!1,onOpenChange:s,open:c,style:l,...u}=e,d=t(s),f=j({open:c,defaultOpen:a,onOpenChange:d,disabled:o}),p=A.useMemo(()=>({open:f.open,disabled:f.disabled,transitionStatus:f.transitionStatus}),[f.open,f.disabled,f.transitionStatus]),m=A.useMemo(()=>({...f,onOpenChange:d,state:p}),[f,d,p]),h=v(`div`,e,{state:p,ref:n,props:u,stateAttributesMapping:z});return(0,B.jsx)(M.Provider,{value:m,children:h})}),H={...R,...p},U=A.forwardRef(function(e,t){let{panelId:n,open:r,handleTrigger:i,state:a,disabled:o}=N(),{className:s,disabled:c=o,render:u,nativeButton:d=!0,style:f,...p}=e,{getButtonProps:m,buttonRef:h}=l({disabled:c,focusableWhenDisabled:!0,native:d});return v(`button`,e,{state:a,ref:[t,h],props:[{"aria-controls":r?n:void 0,"aria-expanded":r,onClick:i},p,m],stateAttributesMapping:H})}),W={height:void 0,width:void 0};function G(e){let{externalRef:n,hiddenUntilFound:i,id:a,keepMounted:o,mounted:s,onOpenChange:c,open:l,setMounted:u,setOpen:d,transitionStatus:f}=e,p=A.useRef(null),_=A.useRef(null),[v,y]=A.useState(W),T=A.useRef(W),E=A.useRef(!1),D=A.useRef(l),O=A.useRef(!1),[k,j]=A.useState(!1),M=A.useRef(null),N=C(n,p),F=h(l),I=x(p),L=!l&&!s,R=k?`idle`:f,z=l&&(D.current||O.current),B=!l&&s&&_.current===`css-animation`&&v.height===void 0&&v.width===void 0?T.current:v,V=i&&L&&_.current!==`css-animation`,H=t((e,t=!0)=>{t&&(T.current=e),y(e)}),U=t(()=>{M.current?.(),M.current=null}),G=t(e=>{U(),M.current=()=>{M.current=null,e()}}),J=t(()=>{l&&s&&_.current===`css-animation`&&(O.current=!0)});r(()=>{!k||f===`starting`||j(!1)},[k,f]),A.useEffect(()=>()=>{J(),U()},[J,U]),r(()=>{let e=p.current;if(!e)return;!l&&M.current&&U();let t=q(e,z);if(_.current=t,l&&f===`idle`&&D.current&&t===`css-animation`){T.current=K(e);return}if(l&&f===`starting`){let n=E.current;if(E.current=!1,t===`none`){H(K(e)),j(!0);return}if(t===`css-transition`){let t=X(e);if(H(K(e)),!n)return t;let r=Y(e,`transition-duration`,`0s`);return G(r),j(!0),t}H(K(e));let r=Y(e,`animation-name`,`none`);if(!n){r();return}let i=Y(e,`animation-duration`,`0s`);r(),G(i),j(!0);return}if(!l&&s&&(f===`idle`||f===`starting`)){if(D.current=!1,O.current=!1,t===`none`){H(W,!1),u(!1);return}H(K(e));return}if(f!==`ending`)return;if(t===`none`){u(!1);return}let n=K(e);if(!(n.height>0||n.width>0)){u(!1);return}H(n),t===`css-animation`&&Y(e,`animation-name`,`none`)()},[s,l,U,H,u,G,z,f]),g({enabled:l&&s&&R===`idle`,open:!0,ref:p,onComplete(){l&&H(W,!1)}}),A.useEffect(()=>{if(l||!s||R!==`ending`||!p.current)return;let e=new AbortController,t=-1;function n(){F.current||(u(!1),H(W,!1))}return t=m.request(()=>{I(n,e.signal)}),()=>{m.cancel(t),e.abort()}},[F,s,l,R,I,H,u]),r(()=>{let e=p.current;!e||!i||!L||e.setAttribute(`hidden`,`until-found`)},[L,i]),A.useEffect(function(){let e=p.current;if(!e)return;function t(e){let t=S(w,e);c(!0,t),!t.isCanceled&&(E.current=!0,d(!0))}return b(e,`beforematch`,t)},[c,d]);let Z=o||i||s||l;return{height:B.height,props:{...V?{[P.startingStyle]:``}:void 0,hidden:L,id:a},ref:N,shouldPreventOpenAnimation:z,shouldRender:Z,transitionStatus:R,width:B.width}}function K(e){return{height:e.scrollHeight,width:e.scrollWidth}}function q(e,t){let n=c(e).getComputedStyle(e),r=(n.animationName.split(`,`).map(e=>e.trim()).some(e=>e!==``&&e!==`none`)||t)&&J(n.animationDuration),i=J(n.transitionDuration);return r&&i||i?`css-transition`:r?`css-animation`:`none`}function J(e){return e.split(`,`).map(e=>e.trim()).some(e=>e!==``&&Number.parseFloat(e)>0)}function Y(e,t,n){let r=e.style.getPropertyValue(t),i=e.style.getPropertyPriority(t);return e.style.setProperty(t,n),()=>{if(r===``){e.style.removeProperty(t);return}e.style.setProperty(t,r,i)}}function X(e){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};Object.keys(t).forEach(t=>{e.style.setProperty(t,`initial`,`important`)});function n(){Object.entries(t).forEach(([t,n])=>{if(n===``){e.style.removeProperty(t);return}e.style.setProperty(t,n)})}let r=m.request(n);return()=>{m.cancel(r),n()}}var Z=function(e){return e.collapsiblePanelHeight=`--collapsible-panel-height`,e.collapsiblePanelWidth=`--collapsible-panel-width`,e}({}),Q=A.forwardRef(function(e,t){let{className:n,hiddenUntilFound:i,keepMounted:a,render:s,id:c,style:l,...u}=e,{defaultPanelId:d,mounted:f,onOpenChange:p,open:m,setMounted:h,setPanelIdState:g,setOpen:_,state:y,transitionStatus:b}=N(),x=i??!1,S=a??!1,C=c||void 0,w=C??d;r(()=>(g(e=>C??(e===null?void 0:e)),()=>{g(e=>e===C?null:e)}),[C,g]);let{height:T,props:E,ref:D,shouldPreventOpenAnimation:O,shouldRender:k,transitionStatus:A,width:j}=G({externalRef:t,hiddenUntilFound:x,id:w,keepMounted:S,mounted:f,onOpenChange:p,open:m,setMounted:h,setOpen:_,transitionStatus:b}),M={...y,transitionStatus:A},P=o(l,M),F=v(`div`,{...e,style:void 0},{state:M,ref:D,props:[E,{style:{[Z.collapsiblePanelHeight]:T===void 0?`auto`:`${T}px`,[Z.collapsiblePanelWidth]:j===void 0?`auto`:`${j}px`}},u,P?{style:P}:void 0,O?{style:{animationName:`none`}}:void 0],stateAttributesMapping:z});return k?F:null});function $({...e}){return(0,B.jsx)(V,{"data-slot":`collapsible`,...e})}function ee({...e}){return(0,B.jsx)(U,{"data-slot":`collapsible-trigger`,...e})}function te({...e}){return(0,B.jsx)(Q,{"data-slot":`collapsible-content`,...e})}export{k as i,te as n,ee as r,$ as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Cr as t,E as n,Jr as r,c as i,i as a,ir as o,l as s,na as c,o as l,s as u,u as d,wr as f}from"./shortcut-keys-DKxNTe_m.js";import{r as p}from"./react-dom-Bph1y7z7.js";import{A as m}from"./xyflow-D7n4g6go.js";import{s as h}from"./element-icons-BVXtRyd3.js";import{c as g,l as _,n as v,s as y}from"./detail-header-DhHM1iaZ.js";var b=e(p(),1);function x(e){let t={};return e.typed.trim()!==e.phrase&&(t.typed=`Type ${e.phrase} to confirm`),e.reason.trim().length<3&&(t.reason=`Reason is required (min 3 characters)`),Object.keys(t).length>0?t:null}var S=m();function C({open:e,onOpenChange:r,phrase:o,title:c,description:f,children:p,pending:m=!1,error:h,confirmLabel:C,confirmVariant:w=`destructive`,slot:T=`confirm-sheet`,onConfirm:E}){let[D,O]=(0,b.useState)(``),[k,A]=(0,b.useState)(``),[j,M]=(0,b.useState)(!1);(0,b.useEffect)(()=>{e||(O(``),A(``),M(!1))},[e]);let N=j?x({typed:D,reason:k,phrase:o}):null,P=x({typed:D,reason:k,phrase:o})===null;return(0,S.jsx)(a,{open:e,onOpenChange:r,children:(0,S.jsxs)(l,{side:`right`,showOverlay:!1,className:`sm:max-w-md`,"data-slot":T,children:[(0,S.jsxs)(s,{children:[(0,S.jsx)(d,{children:c}),(0,S.jsx)(u,{children:f})]}),(0,S.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[p,(0,S.jsxs)(g,{label:`Type ${o} to confirm`,children:[(0,S.jsx)(n,{value:D,onChange:e=>O(e.target.value),onBlur:()=>M(!0),placeholder:o,"aria-label":`Type ${o} to confirm`,"aria-invalid":N?.typed?!0:void 0,flat:!0,className:t(v,`font-mono`),autoComplete:`off`}),N?.typed?(0,S.jsx)(`span`,{className:`block px-4 pb-2 text-[10px] text-destructive`,role:`alert`,children:N.typed}):null]}),(0,S.jsxs)(g,{label:`Reason`,children:[(0,S.jsx)(n,{value:k,onChange:e=>A(e.target.value),onBlur:()=>M(!0),placeholder:`Why is this change needed?`,"aria-label":`Reason`,"aria-invalid":N?.reason?!0:void 0,flat:!0,className:v}),N?.reason?(0,S.jsx)(`span`,{className:`block px-4 pb-2 text-[10px] text-destructive`,role:`alert`,children:N.reason}):null]}),h?(0,S.jsx)(y,{children:h}):null]}),(0,S.jsxs)(i,{children:[(0,S.jsx)(_,{split:!0,onClick:()=>r(!1),disabled:m,children:`Cancel`}),(0,S.jsx)(_,{variant:w,disabled:!P||m,onClick:()=>{M(!0),P&&E({confirmation:D.trim(),reason:k.trim()})},"data-slot":`confirm-action`,children:m?`Working…`:C??`Confirm ${o.toLowerCase()}`})]})]})})}function w({value:e,label:n}){let[i,a]=(0,b.useState)(!1),s=(0,b.useRef)(null);return(0,b.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),(0,S.jsx)(h,{label:i?`Copied`:n,children:(0,S.jsx)(`button`,{type:`button`,"aria-label":n,className:t(o,`size-4`),onClick:()=>{navigator.clipboard&&navigator.clipboard.writeText(e).then(()=>{a(!0),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>a(!1),1200)})},children:(0,S.jsx)(f,{icon:i?c:r,className:i?`size-3 text-emerald-600 dark:text-emerald-400`:`size-3`,"aria-hidden":!0})})})}export{C as n,w as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Cr as t,Sr as n,Xn as r,Yn as i,or as a,wr as o,x as s}from"./shortcut-keys-DKxNTe_m.js";import{r as c}from"./react-dom-Bph1y7z7.js";import{A as l}from"./xyflow-D7n4g6go.js";var u=e(c(),1),d=l(),f=`h-8 rounded-none border-0 bg-transparent px-4 text-[12px] shadow-none focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent`,p=`h-8 rounded-none border-0 bg-transparent pr-4 pl-9 text-[12px] shadow-none focus-visible:border-0 focus-visible:ring-0 dark:bg-transparent`,m=`h-11 flex-1 rounded-none border-0 shadow-none focus-visible:ring-0`;function h({label:e,hint:n,className:r,split:i,dense:a=!1,children:o}){return(0,d.jsxs)(`label`,{className:t(`block min-w-0 border-b border-border/50`,i===`start`&&`border-r border-b-0`,i===`end`&&`border-b-0`,r),children:[a?(0,d.jsxs)(`span`,{className:`flex items-baseline justify-between gap-2 px-2 pt-1`,children:[(0,d.jsx)(`span`,{className:`min-w-0 truncate text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:e}),n?(0,d.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[9px] text-muted-foreground/70`,children:n}):null]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`span`,{className:`block truncate px-3 pt-1.5 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:e}),n?(0,d.jsx)(`span`,{className:`block truncate px-3 font-mono text-[10px] text-muted-foreground/70`,children:n}):null]}),o]})}function g({label:e,className:n,children:r}){return(0,d.jsxs)(`label`,{className:t(`flex items-center justify-between gap-3 border-b border-border/50 px-4 py-3`,n),children:[(0,d.jsx)(`span`,{className:`text-[12px] text-foreground`,children:e}),r]})}function _({active:e,extraCount:n=0,className:r,children:i,type:a=`button`,...o}){return(0,d.jsxs)(`button`,{type:a,className:t(`inline-flex items-center gap-1 rounded-none border-0 bg-transparent px-2 py-1 text-[10px] font-semibold tracking-[0.08em] uppercase shadow-none transition-colors hover:bg-muted/50`,e?`text-foreground`:`text-muted-foreground hover:text-foreground`,r),...o,children:[i,n>0?(0,d.jsx)(`span`,{className:`flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-foreground/10 px-1 text-[9px] font-semibold tabular-nums`,children:n}):null]})}function v({label:e,hint:n,className:r,children:i}){return(0,d.jsxs)(`div`,{className:t(`border-b border-border/50`,r),children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-3 px-4`,children:[(0,d.jsx)(`p`,{className:`shrink-0 text-[10px] font-semibold tracking-[0.12em] text-muted-foreground uppercase`,children:e}),(0,d.jsx)(`div`,{className:`flex min-w-0 flex-1 items-stretch`,role:`group`,"aria-label":e,children:i})]}),n?(0,d.jsx)(`p`,{className:`px-4 pb-2 text-[10px] text-muted-foreground`,children:n}):null]})}function y({active:e,onClick:n,icon:r,children:i}){return(0,d.jsxs)(`button`,{type:`button`,"aria-pressed":e,onClick:n,className:t(`inline-flex h-8 min-w-0 flex-1 items-center justify-center gap-1.5 px-2 font-mono text-[10px] font-semibold outline-none select-none`,`focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset`,e?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),children:[r?(0,d.jsx)(o,{icon:r,className:`size-3 shrink-0`,"aria-hidden":!0}):null,i]})}function b({split:e=!1,className:n,variant:r=`ghost`,...i}){return(0,d.jsx)(s,{variant:r,className:t(m,e&&`border-r border-border/50`,n),...i})}function x({children:e,slot:t}){return(0,d.jsx)(`p`,{className:`border-b border-border/50 px-4 py-3 text-[11px] text-destructive`,role:`alert`,"data-slot":t,children:e})}function S({label:e,hint:t,children:n}){return(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-border/50 bg-muted/25 px-4 py-1.5`,children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-3`,children:[(0,d.jsx)(`p`,{className:`text-[10px] font-semibold tracking-[0.12em] text-foreground uppercase`,children:e}),t?(0,d.jsx)(`p`,{className:`truncate text-[10px] text-muted-foreground`,children:t}):null]}),n]})}function C({children:e}){return(0,d.jsx)(`div`,{className:`grid grid-cols-2 border-b border-border/50`,children:e})}function w({columns:e=4,children:n}){let r=u.Children.count(n),i=Math.min(e,r);return(0,d.jsx)(`div`,{className:`@container w-full min-w-0 max-w-full`,children:(0,d.jsx)(`div`,{className:t(`grid w-full min-w-0 grid-cols-1`,i>=2&&`@min-[18rem]:grid-cols-2`,i>=3&&`@min-[26rem]:grid-cols-3`,i>=4&&`@min-[34rem]:grid-cols-4`,`[&>*]:min-w-0 [&>*]:border-r [&>*]:border-border/50`,i>=2&&`@min-[18rem]:[&>*:nth-child(2n)]:border-r-0`,i>=3&&`@min-[26rem]:[&>*:nth-child(2n)]:border-r @min-[26rem]:[&>*:nth-child(3n)]:border-r-0`,i>=4&&`@min-[34rem]:[&>*:nth-child(2n)]:border-r @min-[34rem]:[&>*:nth-child(3n)]:border-r @min-[34rem]:[&>*:nth-child(4n)]:border-r-0`,i<2&&`[&>*]:border-r-0`,`[&>*:last-child]:border-r-0`),children:n})})}function T({icon:e,wellClassName:o,wellStyle:s,title:c,badge:l,subtitle:u,leading:f,actions:p,sticky:m=!1,className:h,dataSlot:g=`detail-header`}){return(0,d.jsxs)(`header`,{className:t(i,m&&`sticky top-0 z-10`,h),"data-slot":g,children:[f?(0,d.jsxs)(`div`,{className:`-ml-2 flex h-full shrink-0 items-stretch`,children:[f,(0,d.jsx)(`span`,{className:`w-px shrink-0 self-stretch bg-border/60`,"aria-hidden":!0})]}):null,(0,d.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:t(a,`flex shrink-0 items-center justify-center`,n(o??`text-muted-foreground`)),style:s?.color?{color:s.color}:void 0,"aria-hidden":!0,children:e}),(0,d.jsx)(`h2`,{className:t(r,`leading-none`),children:c}),l?(0,d.jsx)(`div`,{className:`flex min-w-0 shrink-0 items-center gap-2 leading-none`,children:l}):null,u?(0,d.jsx)(`div`,{className:`flex min-w-0 items-center gap-1.5 leading-none`,children:u}):null]}),p?(0,d.jsx)(`div`,{className:`flex h-full shrink-0 items-stretch`,children:p}):null]})}export{y as a,h as c,C as d,g as f,S as i,b as l,f as n,v as o,_ as p,p as r,x as s,T as t,w as u};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$ as t,$t as n,An as r,At as i,B as a,Bn as o,Bt as s,C as c,Cn as l,Cr as u,Ct as d,Dn as f,Dt as p,En as m,Et as h,Fn as g,Ft as _,G as v,Gn as y,Gt as b,H as x,Hn as S,Ht as C,In as w,It as T,Jn as E,K as D,Kn as O,Ln as k,Lt as ee,Mn as A,Mt as j,Nn as M,O as N,On as P,Ot as te,Pn as F,Pt as ne,Q as I,Qt as L,R as re,Rn as R,Rt as z,S as B,Sn as ie,St as V,Tn as H,Tt as ae,U,Un as W,Ut as G,V as oe,Vn as K,Vt as q,Wn as J,Wt as se,X as ce,Xt as le,Y as ue,Z as de,_n as fe,_t as pe,at as me,bn as he,bt as ge,cn as Y,ct as _e,dt as ve,en as ye,et as be,fn as xe,ft as Se,g as Ce,hn as we,ht as Te,in as Ee,it as De,jn as Oe,jt as X,kt as ke,ln as Ae,lt as je,m as Me,mt as Ne,na as Pe,nt as Fe,on as Ie,ot as Le,pt as Re,qn as ze,qt as Be,rn as Z,rt as Ve,sn as He,st as Ue,tn as We,tt as Ge,ut as Ke,v as qe,vn as Je,w as Ye,wn as Xe,wr as Ze,wt as Qe,xn as $e,xt as et,yn as tt,z as nt,zn as rt,zt as it}from"./shortcut-keys-DKxNTe_m.js";import{n as at,r as ot}from"./react-dom-Bph1y7z7.js";import{A as st}from"./xyflow-D7n4g6go.js";var Q=e(ot(),1);function ct(e,t={}){let{enabled:n=!0,event:r=`click`,toggle:i=!0,ignoreMouse:a=!1,stickIfOpen:s=!0,touchOpenDelay:c=0,reason:l=we}=t,u=`rootStore`in e?e.rootStore:e,d=u.context.dataRef,f=Q.useRef(void 0),p=L(),m=o(),h=Q.useMemo(()=>{function e(e,t,n,r){let i=Z(l,t,n);e&&r===`touch`&&c>0?m.start(c,()=>{u.setOpen(!0,i)}):u.setOpen(e,i)}function t(e,t,n){let r=d.current.openEvent,a=u.select(`domReferenceElement`)!==t;return e&&a||!e||!i?!0:r&&s?!n(r.type):!1}return{onPointerDown(e){f.current=A(e.pointerType,!0)&&F(e.nativeEvent)?`virtual`:e.pointerType},onMouseDown(n){let i=f.current,o=n.nativeEvent,s=u.select(`open`);if(n.button!==0||r===`click`||A(i,!0)&&a)return;let c=t(s,n.currentTarget,e=>e===`click`||e===`mousedown`),l=ie(o);if(tt(l)){e(c,o,l,i);return}let d=n.currentTarget;p.request(()=>{e(c,o,d,i)})},onClick(n){if(r===`mousedown-only`)return;let i=f.current;if(r===`mousedown`&&i){f.current=void 0;return}A(i,!0)&&a||e(t(u.select(`open`),n.currentTarget,e=>e===`click`||e===`mousedown`||e===`keydown`||e===`keyup`),n.nativeEvent,n.currentTarget,i)},onKeyDown(){f.current=void 0}}},[d,r,a,l,u,s,i,p,m,c]);return Q.useMemo(()=>n?{reference:h}:J,[n,h])}var lt=`Escape`;function ut(e){return k&&e.movementX===0&&e.movementY===0}function dt(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function ft(e,t){return dt(t,e===`ArrowUp`||e===`ArrowDown`,e===`ArrowLeft`||e===`ArrowRight`)}function pt(e,t,n){return dt(t,e===`ArrowDown`,n?e===`ArrowLeft`:e===`ArrowRight`)||e===`Enter`||e===` `||e===``}function mt(e,t,n){return dt(t,n?e===Xe:e===H,e===l)}function ht(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===lt:dt(t,n?e===H:e===Xe,e===m)}function gt(e,t){let{listRef:i,activeIndex:a,onNavigate:o=()=>{},enabled:c=!0,selectedIndex:l=null,allowEscape:u=!1,loopFocus:d=!1,nested:f=!1,rtl:p=!1,virtual:m=!1,focusItemOnOpen:v=`auto`,focusItemOnHover:y=!0,openOnArrowKeyDown:b=!0,disabledIndices:x=void 0,orientation:w=`vertical`,parentOrientation:T,id:E,resetOnPointerLeave:D=!0,externalTree:O,grid:k}=t,ee=k!=null,A=`rootStore`in e?e.rootStore:e,j=A.useState(`open`),N=A.useState(`floatingElement`),P=A.useState(`domReferenceElement`),te=A.context.dataRef,ne=fe(N),I=Je(P),re=ye(ne),R=ae(),z=h(O),B=Q.useRef(v),V=Q.useRef(l??-1),H=Q.useRef(null),U=Q.useRef(!0),W=n(e=>{o(V.current===-1?null:V.current,e)}),G=Q.useRef(!!N),oe=Q.useRef(j),K=Q.useRef(!1),J=Q.useRef(!1),ce=Q.useRef(null),ue=ye(x),de=ye(j),pe=ye(l),me=ye(D),ge=L(),Y=L(),_e=n(()=>{function e(e){m?z?.events.emit(`virtualfocus`,e):ce.current=_(e,{sync:K.current,preventScroll:!0})}let t=i.current[V.current],n=J.current;t&&e(t),(K.current?e=>e():e=>ge.request(e))(()=>{let r=i.current[V.current]||t;r&&(t||e(r),we&&(n||!U.current)&&r.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});S(()=>{te.current.orientation=w},[te,w]),S(()=>{c&&(j&&N?(V.current=l??-1,B.current&&l!=null&&(J.current=!0,W())):G.current&&(V.current=-1,W()))},[c,j,N,l,W]),S(()=>{if(c){if(!j){K.current=!1;return}if(N)if(a==null){if(K.current=!1,pe.current!=null)return;if(G.current&&(V.current=-1,_e()),(!oe.current||!G.current)&&B.current&&(H.current!=null||B.current===!0&&H.current==null)){let e=0,t=()=>{i.current[0]==null?(e<2&&(e?e=>Y.request(e):queueMicrotask)(t),e+=1):(V.current=H.current==null||pt(H.current,w,p)||f?C(i):q(i),H.current=null,W())};t()}}else se(i.current,a)||(V.current=a,_e(),J.current=!1)}},[c,j,N,a,pe,f,i,w,p,W,_e,Y]),S(()=>{if(!c||N||!z||m||!G.current)return;let e=z.nodesRef.current,t=e.find(e=>e.id===R)?.context?.elements.floating,n=he(le(P??t??null)),r=e.some(e=>e.context&&$e(e.context.elements.floating,n));t&&!r&&U.current&&t.focus({preventScroll:!0})},[c,N,P,z,R,m]),S(()=>{oe.current=j,G.current=!!N}),S(()=>{j||(H.current=null,B.current=v)},[j,v]);let ve=a!=null,be=n(e=>{if(!de.current)return;let t=i.current.indexOf(e.currentTarget);t!==-1&&(V.current!==t||a!==t)&&(V.current=t,W(e))}),xe=n(()=>T??z?.nodesRef.current.find(e=>e.id===R)?.context?.dataRef?.current.orientation),Se=n(()=>C(i,ue.current)),Ce=n(e=>{if(U.current=!1,K.current=!0,e.which===229||!de.current&&e.currentTarget===re.current)return;if(f&&ht(e.key,w,p,ee)){ft(e.key,xe())||g(e),A.setOpen(!1,Z(Ae,e.nativeEvent)),r(P)&&(m?z?.events.emit(`virtualfocus`,P):P.focus());return}let t=V.current,n=C(i,x),a=q(i,x);if(I||(e.key===`Home`&&(g(e),V.current=n,W(e)),e.key===`End`&&(g(e),V.current=a,W(e))),k!=null){let t=k(e,V.current,i,w,d,p,x,n,a);if(t!=null&&(V.current=t,W(e)),w===`both`)return}if(ft(e.key,w)){if(g(e),j&&!m&&he(e.currentTarget.ownerDocument)===e.currentTarget){V.current=pt(e.key,w,p)?n:a,W(e);return}pt(e.key,w,p)?d?t>=a?u&&t!==i.current.length?V.current=-1:(K.current=!1,V.current=n):V.current=s(i.current,{startingIndex:t,disabledIndices:x}):V.current=Math.min(a,s(i.current,{startingIndex:t,disabledIndices:x})):d?t<=n?u&&t!==-1?V.current=i.current.length:(K.current=!1,V.current=a):V.current=s(i.current,{startingIndex:t,decrement:!0,disabledIndices:x}):V.current=Math.max(n,s(i.current,{startingIndex:t,decrement:!0,disabledIndices:x})),se(i.current,V.current)&&(V.current=-1),W(e)}}),we=Q.useMemo(()=>({onFocus(e){K.current=!0,be(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){ut(e)||(K.current=!0,J.current=!1,y&&be(e))},onPointerLeave(e){if(!de.current||!U.current||e.pointerType===`touch`)return;K.current=!0;let t=e.relatedTarget;if(!(!y||i.current.includes(t))&&me.current&&(ce.current?.(),ce.current=null,V.current=-1,W(e),!m)){let e=re.current,t=he(le(e));e&&$e(e,t)&&e.focus({preventScroll:!0})}}}),[be,de,re,y,i,W,me,m]),Te=Q.useMemo(()=>m&&j&&ve&&{"aria-activedescendant":`${E}-${a}`},[m,j,ve,E,a]),Ee=Q.useMemo(()=>({"aria-orientation":w===`both`?void 0:w,...I?{}:Te,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&j&&!m){let t=ie(e.nativeEvent);if(t&&!$e(re.current,t))return;g(e),A.setOpen(!1,Z(Ie,e.nativeEvent)),r(P)&&P.focus();return}Ce(e)},onPointerMove(e){ut(e)||(U.current=!0)}}),[Te,Ce,re,w,I,A,j,m,P]),De=Q.useMemo(()=>{function e(e){A.setOpen(!0,Z(Ae,e.nativeEvent,e.currentTarget))}function t(e){v===`auto`&&M(e.nativeEvent)&&(B.current=!m)}function n(e){B.current=v,v===`auto`&&F(e.nativeEvent)&&(B.current=!0)}return{onKeyDown(t){let n=A.select(`open`);U.current=!1;let r=t.key.startsWith(`Arrow`),i=mt(t.key,xe(),p),a=ft(t.key,w),o=(f?i:a)||t.key===`Enter`||t.key.trim()===``;if(m&&n)return Ce(t);if(!(!n&&!b&&r)){if(o){let e=ft(t.key,xe());H.current=f&&e?null:t.key}if(f){i&&(g(t),n?(V.current=Se(),W(t)):e(t));return}a&&(pe.current!=null&&(V.current=pe.current),g(t),!n&&b?e(t):Ce(t),n&&W(t))}},onFocus(e){A.select(`open`)&&!m&&(V.current=-1,W(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[Ce,v,Se,f,W,A,b,w,xe,p,pe,m]),Oe=Q.useMemo(()=>({...Te,...De}),[Te,De]);return Q.useMemo(()=>c?{reference:Oe,floating:Ee,item:we,trigger:De}:{},[c,Oe,Ee,De,we])}function _t(e,t){let{listRef:r,elementsRef:i,activeIndex:a,onMatch:s,disabledIndices:c,onTyping:l,enabled:u=!0,resetMs:d=750,selectedIndex:f=null}=t,p=`rootStore`in e?e.rootStore:e,m=p.useState(`open`),h=o(),_=Q.useRef(``),v=Q.useRef(f??a??-1),y=Q.useRef(null),x=n(e=>{function t(e){return i?.current[e]}function n(e){let n=t(e);return n&&!G(n)||n?.matches(`:disabled`)?!1:c==null||!b(W,e,c)}function o(e,t,r=0){if(e.length===0)return-1;let i=(r%e.length+e.length)%e.length,a=t.toLowerCase();for(let t=0;t<e.length;t+=1){let r=(i+t)%e.length;if(!(!e[r]?.toLowerCase().startsWith(a)||!n(r)))return r}return-1}let u=r.current;if(_.current.length>0&&e.key===` `&&(g(e),l?.(!0)),_.current.length>0&&_.current[0]!==` `&&o(u,_.current)===-1&&e.key!==` `&&l?.(!1),u==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;m&&e.key!==` `&&(g(e),l?.(!0));let p=_.current===``;p&&(v.current=f??a??-1),u.every((e,t)=>e&&n(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&_.current===e.key&&(_.current=``,v.current=y.current),_.current+=e.key,h.start(d,()=>{_.current=``,v.current=y.current,l?.(!1)});let x=((p?f??a??-1:v.current)??0)+1,S=o(u,_.current,x);S===-1?e.key!==` `&&(_.current=``,l?.(!1)):(s?.(S),y.current=S)}),C=n(e=>{let t=e.relatedTarget,n=p.select(`domReferenceElement`),r=p.select(`floatingElement`);$e(n,t)||$e(r,t)||(h.clear(),_.current=``,v.current=y.current,l?.(!1))});S(()=>{!m&&f!==null||(h.clear(),y.current=null,_.current!==``&&(_.current=``))},[m,f,h]);let w=Q.useMemo(()=>({onKeyDown:x,onBlur:C}),[x,C]);return Q.useMemo(()=>u?{reference:w,floating:w}:{},[u,w])}var vt=Q.forwardRef(function(e,t){let{className:n,render:r,orientation:i=`horizontal`,style:a,...o}=e;return X(`div`,e,{state:{orientation:i},ref:t,props:[{role:`separator`,"aria-orientation":i},o]})}),$=st();function yt(e){let t=Q.useRef(``),n=Q.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:Q.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function bt(e,t){let r=Q.useRef(e),i=n(t);S(()=>{r.current!==e&&i(r.current),r.current=e},[e,i])}function xt(e,t){let{onClick:r,onPointerDown:i}=yt(n((n,r)=>{(typeof e==`function`?e():e)||t(r||(R?`touch`:``))}));return Q.useMemo(()=>({onClick:r,onPointerDown:i}),[r,i])}function St(e){let[t,n]=Q.useState(null),r=xt(e,n);return bt(e,t=>{t&&!e&&n(null)}),Q.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}var Ct=Q.createContext(void 0);function wt(e){let t=Q.useContext(Ct);if(t===void 0&&!e)throw Error(K(33));return t}var Tt=Q.createContext(void 0);function Et(e){let t=Q.useContext(Tt);if(t===void 0&&!e)throw Error(K(36));return t}var Dt=Q.createContext(void 0);function Ot(e=!0){let t=Q.useContext(Dt);if(t===void 0&&!e)throw Error(K(25));return t}var kt=Q.createContext(void 0);function At(){let e=Q.useContext(kt);if(e===void 0)throw Error(K(30));return e}function jt(e){let{closeOnClick:t,highlighted:n,id:r,nodeId:i,store:a,typingRef:o,itemRef:s,itemMetadata:l}=e,{events:u}=a.useState(`floatingTreeRoot`),d=a.useState(`open`),f=Ot(!0),p=f!==void 0;return Q.useMemo(()=>({id:r,role:`menuitem`,tabIndex:d&&n?0:-1,onKeyDown(e){e.key===` `&&o?.current&&e.preventDefault()},onMouseMove(e){i&&u.emit(`itemhover`,{nodeId:i,target:e.currentTarget})},onClick(e){t&&u.emit(`close`,{domEvent:e,reason:Y})},onMouseUp(e){if(f){let t=f.initialCursorPointRef.current;if(f.initialCursorPointRef.current=null,p&&t&&Math.abs(e.clientX-t.x)<=1&&Math.abs(e.clientY-t.y)<=1||p&&!rt&&e.button===2)return}s.current&&a.context.allowMouseUpTriggerRef.current&&(!p||e.button===2)&&l.type===`regular-item`&&c(s.current,e,{detail:1})}}),[t,n,r,u,i,d,a,o,s,f,p,l])}var Mt={type:`regular-item`};function Nt(e){let{closeOnClick:t,disabled:n,highlighted:r,id:i,store:a,typingRef:o=a.context.typingRef,nativeButton:s,itemMetadata:c,nodeId:l}=e,u=Q.useRef(null),{getButtonProps:d,buttonRef:f}=B({disabled:n,focusableWhenDisabled:!0,native:s,composite:!0}),p=jt({closeOnClick:t,highlighted:r,id:i,nodeId:l,store:a,typingRef:o,itemRef:u,itemMetadata:c}),m=Q.useCallback(e=>j(p,{onMouseEnter(){c.type===`submenu-trigger`&&c.setActive()}},e,d),[p,d,c]),h=We(u,f);return Q.useMemo(()=>({getItemProps:m,itemRef:h}),[m,h])}var Pt=Q.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},nextIndexRef:{current:0}});function Ft(){return Q.useContext(Pt)}function It(e={}){let{guess:t,label:n,metadata:r,textRef:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,nextIndexRef:l}=Ft(),u=Q.useRef(-1),[d,f]=Q.useState(a==null&&t?()=>{if(u.current===-1){let e=l.current;l.current+=1,u.current=e}return u.current}:-1),p=a??d,m=Q.useRef(null),h=Q.useCallback(e=>{let t=m.current;t&&s(t),m.current=e,e&&o(e,{metadata:r??null,index:a??null,label:n,textRef:i})},[a,o,s,r,n,i]);return S(()=>{if(a==null)return c(e=>{let t=m.current?e.get(m.current)?.index:null;t!=null&&f(t)})},[a,c]),{ref:h,index:p}}var Lt=function(e){return e.checked=`data-checked`,e.unchecked=`data-unchecked`,e.disabled=`data-disabled`,e.highlighted=`data-highlighted`,e}({}),Rt={checked(e){return e?{[Lt.checked]:``}:{[Lt.unchecked]:``}},...ue},zt=Q.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:o=!1,disabled:s=!1,closeOnClick:c=!1,checked:l,defaultChecked:u,onCheckedChange:d,style:f,...p}=e,m=It({guess:!0,label:a}),h=wt(!0),g=U(i),{store:_}=Et(),v=_.useState(`disabled`),b=s||v,x=_.useState(`isActive`,m.index),S=_.useState(`itemProps`),[C,w]=N({controlled:l,default:u??!1,name:`MenuCheckboxItem`,state:`checked`}),{getItemProps:T,itemRef:E}=Nt({closeOnClick:c,disabled:b,highlighted:x,id:g,store:_,nativeButton:o,nodeId:h?.context.nodeId,itemMetadata:Mt}),D=Q.useMemo(()=>({disabled:b,highlighted:x,checked:C}),[b,x,C]);function O(e){let t=Z(Y,e.nativeEvent,void 0,{preventUnmountOnClose:y});d?.(!C,t),!t.isCanceled&&w(e=>!e)}let k=X(`div`,e,{state:D,stateAttributesMapping:Rt,props:[S,{role:`menuitemcheckbox`,"aria-checked":C,onClick:O},p,T],ref:[E,t,m.ref]});return(0,$.jsx)(kt.Provider,{value:D,children:k})}),Bt=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,s=At(),c=Q.useRef(null),{transitionStatus:l,mounted:u,setMounted:d}=Ne(s.checked);Se({open:s.checked,ref:c,onComplete(){s.checked||d(!1)}});let f={checked:s.checked,disabled:s.disabled,highlighted:s.highlighted,transitionStatus:l};return X(`span`,e,{state:f,ref:[t,c],stateAttributesMapping:Rt,props:{"aria-hidden":!0,...o},enabled:a||u})}),Vt=Q.createContext(void 0);function Ht(){let e=Q.useContext(Vt);if(e===void 0)throw Error(K(31));return e}var Ut=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,[o,s]=Q.useState(void 0),c=X(`div`,e,{ref:t,props:{role:`group`,"aria-labelledby":o,...a}});return(0,$.jsx)(Vt.Provider,{value:s,children:c})}),Wt=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=U(a),c=Ht();return S(()=>(c(s),()=>{c(e=>e===s?void 0:e)}),[c,s]),X(`div`,e,{ref:t,props:{id:s,role:`presentation`,...o}})}),Gt=Q.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:o=!1,disabled:s=!1,closeOnClick:c=!0,style:l,...u}=e,d=It({guess:!0,label:a}),f=wt(!0),p=U(i),{store:m}=Et(),h=m.useState(`disabled`),g=s||h,_=m.useState(`isActive`,d.index),v=m.useState(`itemProps`),{getItemProps:y,itemRef:b}=Nt({closeOnClick:c,disabled:g,highlighted:_,id:p,store:m,nativeButton:o,nodeId:f?.context.nodeId,itemMetadata:Mt});return X(`div`,e,{state:{disabled:g,highlighted:_},props:[v,u,y],ref:[b,t,d.ref]})}),Kt=Q.createContext(void 0);function qt(e){let t=Q.useContext(Kt);if(t===void 0&&!e)throw Error(K(69));return t}var Jt=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:o,...s}=e,{store:c}=Et(),{side:l,align:u}=wt(),d=qt(!0)!=null,f=c.useState(`open`),p=c.useState(`transitionStatus`),m=c.useState(`popupProps`),h=c.useState(`mounted`),g=c.useState(`instantType`),_=c.useState(`activeTriggerElement`),y=c.useState(`parent`),b=c.useState(`lastOpenChangeReason`),x=c.useState(`rootId`),S=c.useState(`floatingRootContext`),C=c.useState(`floatingTreeRoot`),w=c.useState(`closeDelay`),T=c.useState(`hoverEnabled`),E=c.useState(`disabled`),D=c.useState(`openMethod`),O=y.type===`context-menu`;Se({open:f,ref:c.context.popupRef,onComplete(){f&&c.context.onOpenChangeComplete?.(!0)}}),Q.useEffect(()=>{function e(e){c.setOpen(!1,Z(e.reason,e.domEvent))}return C.events.on(`close`,e),()=>{C.events.off(`close`,e)}},[C.events,c]),I(S,{enabled:T&&!E&&!O&&y.type!==`menubar`,closeDelay:w});let k=c.useStateSetter(`popupElement`),ee={transitionStatus:p,side:l,align:u,open:f,nested:y.type===`menu`,instant:g},A=X(`div`,e,{state:ee,ref:[t,c.context.popupRef,k],stateAttributesMapping:v,props:[m,{onKeyDown(e){d&&qe.has(e.key)&&e.stopPropagation()}},a(p),s,{"data-rootownerid":x}]}),j=y.type===void 0||O;return(_||y.type===`menubar`&&b!==`outside-press`)&&(j=!0),(0,$.jsx)(et,{context:S,openInteractionType:D,modal:O,disabled:!h,returnFocus:o===void 0?j:o,initialFocus:y.type!==`menu`,restoreFocus:!0,externalTree:y.type===`menubar`?void 0:C,previousFocusableElement:_,nextFocusableElement:y.type===void 0?c.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:y.type===void 0?c.context.beforeContentFocusGuardRef:void 0,children:A})}),Yt=Q.createContext(void 0);function Xt(){let e=Q.useContext(Yt);if(e===void 0)throw Error(K(32));return e}var Zt=Q.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=Et();return i.useState(`mounted`)||n?(0,$.jsx)(Yt.Provider,{value:n,children:(0,$.jsx)(te,{ref:t,...r})}):null});function Qt(e){let{children:t,elementsRef:r,labelsRef:i,onMapChange:a}=e,o=n(a),[,s]=Q.useState(!1),c=E(en).current,l=E($t).current,u=Q.useRef(0),d=Q.useRef(!0),f=Q.useRef([]),p=Q.useRef(null),m=n(()=>{d.current||(d.current=!0,s(e=>!e))}),h=n((e,t)=>{l.set(e,t),m()}),g=n(e=>{l.delete(e),m()}),_=n(e=>{let t=new Map;return r.current.length=0,i&&(i.current.length=0),e.forEach(e=>{t.set(e.element,{...e.registration.metadata??{},index:e.index}),r.current[e.index]=e.element,i&&(i.current[e.index]=e.registration.label===void 0?e.registration.textRef?.current?.textContent??e.element.textContent:e.registration.label)}),u.current=r.current.length,t});function v(e){if(p.current?.disconnect(),p.current=null,typeof MutationObserver!=`function`||e.length<2)return;let t=new MutationObserver(n=>{if(!rn(n))return;let r=null;for(let n of e)if(n.isConnected){if(r&&an(r,n)>0){t.disconnect(),m();return}r=n}});p.current=t;let n=new Set;for(let t=1;t<e.length;t+=1){let r=nn(e[t-1],e[t]);r&&n.add(r)}n.forEach(e=>t.observe(e,{childList:!0}))}let y=n(()=>{let[e,t]=tn(l),n=_(e);v(t),f.current=e,d.current=!1,c.forEach(e=>e(n)),o(n)});S(()=>(d.current||_(f.current),()=>{r.current=[],i&&(i.current=[])}),[r,i,_]),S(()=>{d.current&&y()}),S(()=>()=>{p.current?.disconnect(),d.current=!0},[]);let b=n(e=>(c.add(e),()=>{c.delete(e)})),x=Q.useMemo(()=>({register:h,unregister:g,subscribeMapChange:b,nextIndexRef:u}),[h,g,b,u]);return(0,$.jsx)(Pt.Provider,{value:x,children:t})}function $t(){return new Map}function en(){return new Set}function tn(e){let t=new Set,n=[],r=[];e.forEach((e,i)=>{if(!i.isConnected)return;let a=e.index,o={index:a??-1,element:i,registration:e};a===null?r.push(o):a>=0&&(t.add(a),n.push(o))});let i=0;return r.sort((e,t)=>an(e.element,t.element)),r.forEach(e=>{for(;t.has(i);)i+=1;e.index=i,n.push(e),i+=1}),t.size>0&&n.sort((e,t)=>e.index-t.index),[n,r.map(e=>e.element)]}function nn(e,t){let n=e.parentElement;for(;n&&!n.contains(t);)n=n.parentElement;return n}function rn(e){for(let t of e)for(let e=0;e<t.removedNodes.length;e+=1)if(t.removedNodes[e].isConnected)return!0;return!1}function an(e,t){return e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}var on=20;function sn(e,t,n,r){let[i,a]=Q.useState(!1);S(()=>{if(!e||!t||n==null){a(!1);return}let r=le(n).documentElement.clientWidth,i=n.offsetWidth;a(r>0&&i>0&&i>=r-on)},[e,t,n]),Me(e&&(!t||i),r)}var cn=Q.forwardRef(function(e,t){let{anchor:n,positionMethod:r=`absolute`,className:a,render:s,side:c,align:l,sideOffset:u=0,alignOffset:d=0,collisionBoundary:f=`clipping-ancestors`,collisionPadding:p=5,arrowPadding:m=5,sticky:h=!1,disableAnchorTracking:g=!1,collisionAvoidance:_=ke,style:v,...y}=e,{store:b}=Et(),x=Xt(),C=Ot(!0),w=b.useState(`parent`),T=b.useState(`floatingRootContext`),E=b.useState(`floatingTreeRoot`),D=b.useState(`mounted`),O=b.useState(`open`),k=b.useState(`modal`),ee=b.useState(`openMethod`),A=b.useState(`activeTriggerElement`),j=b.useState(`transitionStatus`),M=b.useState(`positionerElement`),N=b.useState(`instantType`),P=b.useState(`adaptiveOrigin`),te=b.useState(`lastOpenChangeReason`),F=b.useState(`floatingNodeId`),ne=b.useState(`floatingParentNodeId`),I=T.useState(`domReferenceElement`),L=Q.useRef(null),R=Re(M),z=n,B=u,ie=d,H=l,ae=_;w.type===`context-menu`&&(z=n??w.context?.anchor,H??=`start`,!c&&H!==`center`&&(ie=e.alignOffset??2,B=e.sideOffset??-5));let U=c,W=H;w.type===`menu`?(U??=`inline-end`,W??=`start`,ae=e.collisionAvoidance??i):w.type===`menubar`&&(U??=w.context.orientation===`vertical`?`inline-end`:`bottom`,W??=`start`);let G=w.type===`context-menu`,K=oe({anchor:z,floatingRootContext:T,positionMethod:C?`fixed`:r,mounted:D,side:U,sideOffset:B,align:W,alignOffset:ie,arrowPadding:G?0:m,collisionBoundary:f,collisionPadding:p,sticky:h,nodeId:F,keepMounted:x,disableAnchorTracking:g,collisionAvoidance:ae,shift:G?{crossAxis:!(`side`in ae&&ae.side===`flip`),rootBoundary:`layoutViewport`}:void 0,externalTree:E,adaptiveOrigin:P});Q.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===F&&b.set(`hoverEnabled`,!1),e.nodeId!==F&&e.parentNodeId===b.select(`floatingParentNodeId`)&&b.setOpen(!1,Z(xe)))}return E.events.on(`menuopenchange`,e),()=>{E.events.off(`menuopenchange`,e)}},[b,E.events,F]),Q.useEffect(()=>{if(b.select(`floatingParentNodeId`)==null)return;function e(e){if(e.open||e.nodeId!==b.select(`floatingParentNodeId`))return;let t=e.reason??`sibling-open`;b.setOpen(!1,Z(t))}return E.events.on(`menuopenchange`,e),()=>{E.events.off(`menuopenchange`,e)}},[E.events,b]);let q=o();Q.useEffect(()=>{O||q.clear()},[O,q]),Q.useEffect(()=>{function e(e){if(!(!O||e.nodeId!==b.select(`floatingParentNodeId`)))if(e.target&&A&&A!==e.target){let e=b.select(`closeDelay`);e>0?q.isStarted()||q.start(e,()=>{b.setOpen(!1,Z(xe))}):b.setOpen(!1,Z(xe))}else q.clear()}return E.events.on(`itemhover`,e),()=>{E.events.off(`itemhover`,e)}},[E.events,O,A,b,q]),Q.useEffect(()=>{let e={open:O,nodeId:F,parentNodeId:ne,reason:b.select(`lastOpenChangeReason`)};E.events.emit(`menuopenchange`,e)},[E.events,O,b,F,ne]),S(()=>{let e=I,t=L.current;if(e&&(L.current=e),t&&e&&e!==t){b.set(`instantType`,void 0);let e=new AbortController;return R(()=>{b.set(`instantType`,`trigger-change`)},e.signal),()=>{e.abort()}}},[I,R,b]);let J={open:O,side:K.side,align:K.align,anchorHidden:K.anchorHidden,nested:w.type===`menu`,instant:N},se=w.type===`menubar`&&w.context.modal;sn(O&&(se||k&&te!==`trigger-hover`),ee===`touch`,M,A);let ce=nt(e,J,{styles:K.positionerStyles,transitionStatus:j,props:y,refs:[t,b.useStateSetter(`positionerElement`)],hidden:!D,inert:!O}),le=D&&w.type!==`menu`&&(w.type!==`menubar`&&k&&te!==`trigger-hover`||w.type===`menubar`&&w.context.modal),ue=null;return w.type===`menubar`?ue=w.context.contentElement:w.type===void 0&&(ue=A),(0,$.jsxs)(Ct.Provider,{value:K,children:[le&&(0,$.jsx)(Ce,{ref:w.type===`context-menu`||w.type===`nested-context-menu`?w.context.internalBackdropRef:null,inert:re(!O),cutout:ue}),(0,$.jsx)(V,{id:F,children:(0,$.jsx)(Qt,{elementsRef:b.context.itemDomElements,labelsRef:b.context.itemLabels,children:ce})})]})}),ln=Q.createContext(void 0);function un(){let e=Q.useContext(ln);if(e===void 0)throw Error(K(34));return e}var dn=Q.memo(Q.forwardRef(function(e,t){let{render:r,className:i,value:a,defaultValue:o,onValueChange:s,disabled:c=!1,style:l,"aria-labelledby":u,...d}=e,[f,p]=Q.useState(void 0),[m,h]=N({controlled:a,default:o,name:`MenuRadioGroup`}),g=n((e,t)=>{s?.(e,t),!t.isCanceled&&h(e)}),_=X(`div`,e,{state:{disabled:c},ref:t,props:{role:`group`,"aria-labelledby":u??f,"aria-disabled":c||void 0,...d}}),v=Q.useMemo(()=>({value:m,setValue:g,disabled:c}),[m,g,c]);return(0,$.jsx)(Vt.Provider,{value:p,children:(0,$.jsx)(ln.Provider,{value:v,children:_})})})),fn=Q.createContext(void 0);function pn(){let e=Q.useContext(fn);if(e===void 0)throw Error(K(35));return e}var mn=Q.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:o=!1,disabled:s=!1,closeOnClick:c=!1,value:l,style:u,...d}=e,f=It({guess:!0,label:a}),p=wt(!0),m=U(i),{store:h}=Et(),g=h.useState(`isActive`,f.index),_=h.useState(`itemProps`),{value:v,setValue:b,disabled:x}=un(),S=h.useState(`disabled`),C=s||x||S,w=v===l,{getItemProps:T,itemRef:E}=Nt({closeOnClick:c,disabled:C,highlighted:g,id:m,store:h,nativeButton:o,nodeId:p?.context.nodeId,itemMetadata:Mt}),D=Q.useMemo(()=>({disabled:C,highlighted:g,checked:w}),[C,g,w]);function O(e){let t=Z(Y,e.nativeEvent,void 0,{preventUnmountOnClose:y});b(l,t)}let k=X(`div`,e,{state:D,stateAttributesMapping:Rt,props:[_,{role:`menuitemradio`,"aria-checked":w,onClick:O},d,T],ref:[E,t,f.ref]});return(0,$.jsx)(fn.Provider,{value:D,children:k})}),hn=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,s=pn(),c=Q.useRef(null),{transitionStatus:l,mounted:u,setMounted:d}=Ne(s.checked);Se({open:s.checked,ref:c,onComplete(){s.checked||d(!1)}});let f={checked:s.checked,disabled:s.disabled,highlighted:s.highlighted,transitionStatus:l};return X(`span`,e,{state:f,stateAttributesMapping:Rt,ref:[t,c],props:{"aria-hidden":!0,...o},enabled:a||u})}),gn=Q.createContext(null);function _n(e){let t=Q.useContext(gn);if(t===null&&!e)throw Error(K(5));return t}var vn={...Fe,disabled:e=>e.parent.type===`menubar`&&e.parent.context.disabled||e.disabled,modal:e=>(e.parent.type===void 0||e.parent.type===`context-menu`)&&(e.modal??!0),openMethod:e=>e.openMethod,allowMouseEnter:e=>e.allowMouseEnter,highlightItemOnHover:e=>e.highlightItemOnHover,parent:e=>e.parent,rootId:e=>e.parent.type===`menu`?e.parent.store.select(`rootId`):e.parent.type===void 0?e.rootId:e.parent.context.rootId,activeIndex:e=>e.activeIndex,isActive:(e,t)=>e.activeIndex===t,hoverEnabled:e=>e.hoverEnabled,instantType:e=>e.instantType,lastOpenChangeReason:e=>e.openChangeReason,floatingTreeRoot:e=>e.parent.type===`menu`?e.parent.store.select(`floatingTreeRoot`):e.floatingTreeRoot,floatingNodeId:e=>e.floatingNodeId,floatingParentNodeId:e=>e.floatingParentNodeId,itemProps:e=>e.itemProps,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin,keyboardEventRelay:e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type===`menu`)return e.parent.store.select(`keyboardEventRelay`)}},yn=class extends pe{constructor(e){super({...xn(),...e},bn(),vn),this.unsubscribeParentListener=this.observe(`parent`,e=>{if(this.unsubscribeParentListener?.(),e.type===`menu`){let t=e.store.select(`rootId`),n=e.store.select(`floatingTreeRoot`),r=e.store.select(`keyboardEventRelay`);this.unsubscribeParentListener=e.store.subscribe(()=>{let i=e.store.select(`rootId`),a=e.store.select(`floatingTreeRoot`),o=e.store.select(`keyboardEventRelay`);(t!==i||n!==a||r!==o)&&(t=i,n=a,r=o,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}e.type!==void 0&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit(`setOpen`,{open:e,eventDetails:t})}unsubscribeParentListener=null};function bn(){return{positionerRef:Q.createRef(),popupRef:Q.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:Q.createRef(),beforeContentFocusGuardRef:Q.createRef(),onOpenChangeComplete:void 0,triggerElements:new Ve}}function xn(){return{...Ge(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new p,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:J,keyboardEventRelay:void 0,closeDelay:0,adaptiveOrigin:void 0}}var Sn=Q.createContext(void 0);function Cn(){return Q.useContext(Sn)}var wn=O(function(e){let{children:t,open:r,onOpenChange:i,onOpenChangeComplete:a,defaultOpen:s=!1,disabled:c=!1,modal:l,loopFocus:u=!0,orientation:f=`vertical`,actionsRef:p,closeParentOnEsc:m=!1,handle:h,triggerId:g,defaultTriggerId:_=null,highlightItemOnHover:v=!0}=e,y=Ot(!0),b=Et(!0),C=_n(!0),w=Cn(),T=Q.useMemo(()=>w&&b?{type:`menu`,store:b.store}:C?{type:`menubar`,context:C}:y&&!b?{type:`context-menu`,context:y}:{type:void 0},[y,b,C,w]),E=Tn({open:s,openProp:r,activeTriggerId:_,triggerIdProp:g,parent:T});E.useControlledProp(`openProp`,r),E.useControlledProp(`triggerIdProp`,g),E.useContextCallback(`onOpenChangeComplete`,a);let D=ne(),O=ne(),k=E.useState(`floatingTreeRoot`),ee=Qe(k),A=ae(),M=E.useState(`open`),N=E.useState(`activeTriggerElement`),P=E.useState(`positionerElement`),te=E.useState(`hoverEnabled`),F=E.useState(`disabled`),I=E.useState(`lastOpenChangeReason`),L=E.useState(`parent`),re=E.useState(`activeIndex`),R=E.useState(`payload`),z=E.useState(`floatingParentNodeId`),B=Q.useRef(null),ie=Q.useRef(L.type!==`context-menu`),V=o(),H=Q.useRef(!0),U=o(),G=z!=null,{openMethod:oe,triggerProps:K}=St(M);E.useSyncedValues({disabled:c,highlightItemOnHover:v,modal:L.type===void 0?l:void 0,openMethod:oe,rootId:D}),_e(E);let{forceUnmount:q}=je(M,E,()=>{E.set(`allowMouseEnter`,!1)});S(()=>{y&&!b?E.update({parent:{type:`context-menu`,context:y},floatingNodeId:ee,floatingParentNodeId:A}):b&&E.update({floatingNodeId:ee,floatingParentNodeId:A})},[y,b,ee,A,E]),Q.useEffect(()=>{if(M||(B.current=null),L.type===`context-menu`){if(!M){V.clear(),ie.current=!1;return}V.start(500,()=>{ie.current=!0})}},[V,M,L.type]),S(()=>{!M&&!te&&E.set(`hoverEnabled`,!0)},[M,te,E]);let se=n((e,t)=>{let n=t.reason;if(!e&&!E.select(`open`)||M===e&&t.trigger===N&&I===n)return;let r=Le(t);if(!e&&t.trigger==null&&(t.trigger=N??void 0),i?.(e,t),t.isCanceled)return;E.state.floatingRootContext.dispatchOpenChange(e,t);let a=t.event;if(e===!1&&a?.type===`click`&&a.pointerType===`touch`&&!H.current)return;e&&n===`trigger-focus`?(H.current=!1,U.start(300,()=>{H.current=!0})):(H.current=!0,U.clear());let o=(n===`trigger-press`||n===`item-press`)&&a.detail===0,s=!e&&(n===`escape-key`||n==null),c={open:e,openChangeReason:n};B.current=t.event,Ue(c,e,t.trigger,r()),E.update(c),L.type===`menubar`&&(n===`trigger-focus`||n===`focus-out`||n===`trigger-hover`||n===`list-navigation`||n===`sibling-open`)?E.set(`instantType`,`group`):o||s?E.set(`instantType`,o?`click`:`dismiss`):E.set(`instantType`,void 0)}),ce=Te({popupStore:E,floatingId:O,nested:A!=null,onOpenChange:se}),le=ce.context.events;S(()=>{let e=({open:e,eventDetails:t})=>se(e,t);return le.on(`setOpen`,e),()=>{le?.off(`setOpen`,e)}},[le,se]);let ue=Q.useCallback(()=>{E.setOpen(!1,Z(He))},[E]);Q.useImperativeHandle(p,()=>({unmount:q,close:ue}),[q,ue]);let de;L.type===`context-menu`&&(de=L.context),Q.useImperativeHandle(de?.positionerRef,()=>P,[P]),Q.useImperativeHandle(de?.actionsRef,()=>({setOpen:se}),[se]);let fe=ge(ce,{enabled:!F,bubbles:{escapeKey:m&&L.type===`menu`},outsidePress(){return L.type!==`context-menu`||B.current?.type===`contextmenu`||ie.current},externalTree:G?k:void 0}),pe=x(),he=Q.useCallback(e=>{E.select(`activeIndex`)!==e&&E.set(`activeIndex`,e)},[E]),Y=gt(ce,{enabled:!F,listRef:E.context.itemDomElements,activeIndex:re,nested:L.type!==void 0,loopFocus:u,orientation:f,parentOrientation:L.type===`menubar`?L.context.orientation:void 0,rtl:pe===`rtl`,disabledIndices:W,onNavigate:he,openOnArrowKeyDown:L.type!==`context-menu`,externalTree:G?k:void 0,focusItemOnHover:v}),ve=Q.useCallback(e=>{E.context.typingRef.current=e},[E]),ye=_t(ce,{enabled:!F,listRef:E.context.itemLabels,elementsRef:E.context.itemDomElements,activeIndex:re,resetMs:500,onMatch:e=>{M&&e!==re&&E.set(`activeIndex`,e)},onTyping:ve}),be=Q.useMemo(()=>{let e=j(ye.reference,Y.reference,fe.reference,{onMouseMove(){E.set(`allowMouseEnter`,!0)}},K);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=M,e},[E,ye.reference,Y.reference,fe.reference,K,M]),xe=Q.useMemo(()=>{let e=j(Y.trigger,fe.trigger,K);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=!1,e},[Y.trigger,fe.trigger,K]),Se=Q.useMemo(()=>j(De,{id:O,role:`menu`,"aria-labelledby":N?.id,onMouseMove(){E.set(`allowMouseEnter`,!0),L.type===`menu`&&E.set(`hoverEnabled`,!1)},onClick(){E.select(`hoverEnabled`)&&E.set(`hoverEnabled`,!1)},onKeyDown(e){let t=E.select(`keyboardEventRelay`);t&&!e.isPropagationStopped()&&t(e)}},ye.floating,Y.floating,fe.floating),[N,O,L.type,E,ye.floating,Y.floating,fe.floating]),Ce=Y.item??J;Ke(E,{floatingRootContext:ce,activeTriggerProps:be,inactiveTriggerProps:xe,popupProps:Se,itemProps:Ce});let we=Q.useMemo(()=>({store:E,parent:T}),[E,T]),Ee=(0,$.jsxs)(Tt.Provider,{value:we,children:[h&&(0,$.jsx)(me,{handle:h,store:E}),typeof t==`function`?t({payload:R}):t]});return L.type===void 0||L.type===`context-menu`?(0,$.jsx)(d,{externalTree:k,children:Ee}):Ee});function Tn(e){return E(()=>new yn(e)).current}var En=5;function Dn(e,t){let n=On(t);return e.clientX>=n.left-En&&e.clientX<=n.right+En&&e.clientY>=n.top-En&&e.clientY<=n.bottom+En}function On(e){let t=e.getBoundingClientRect(),n=P(e);if(w)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(r.content===`none`&&i.content===`none`)return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),d=l-t.width,f=u-t.height;return{left:t.left-d/2,right:t.right+d/2,top:t.top-f/2,bottom:t.bottom+f/2}}function kn(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=Ye(),{ref:i,index:a}=It(e),o=n===a,s=Q.useRef(null),c=We(i,s);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=s.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:c,index:a}}function An(e){let{render:t,className:n,style:r,state:i=J,props:a=W,refs:o=W,metadata:s,stateAttributesMapping:c,tag:l=`div`,...u}=e,{compositeProps:d,compositeRef:f}=kn({metadata:s});return X(l,e,{state:i,ref:[f,...o],props:[d,...a,u],stateAttributesMapping:c})}function jn(e){if(r(e)&&e.hasAttribute(`data-rootownerid`))return e.getAttribute(`data-rootownerid`);if(!Oe(e))return jn(f(e))}var Mn=e(at(),1);function Nn(e,t){let n=Q.useRef(null);function r(t){Mn.flushSync(()=>{e.setOpen(!1,Z(Ie,t.nativeEvent,t.currentTarget))}),z(n.current)?.focus()}function i(n){let r=e.select(`positionerElement`);if(r&&it(n,r))e.context.beforeContentFocusGuardRef.current?.focus();else{Mn.flushSync(()=>{e.setOpen(!1,Z(Ie,n.nativeEvent,n.currentTarget))});let i=ee(e.context.triggerFocusTargetRef.current||t.current);for(;i!==null&&$e(r,i);){let e=i;if(i=T(i),i===e)break}i?.focus()}}return{preFocusGuardRef:n,handlePreFocusGuardFocus:r,handleFocusTargetFocus:i}}function Pn(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,i=Q.useRef(!1);return Q.useMemo(()=>t?{onMouseDown:e=>{(n===`open`&&!r||n===`close`&&r)&&(i.current=!0,le(e.currentTarget).addEventListener(`click`,()=>{i.current=!1},{once:!0}))},onClick:e=>{i.current&&(i.current=!1,e.preventBaseUIHandler())}}:J,[t,n,r])}var Fn=ze(function(e,r){let{render:i,className:a,style:s,disabled:c=!1,nativeButton:l=!0,id:u,openOnHover:d,delay:f=100,closeDelay:m=0,handle:g,payload:_,...v}=e,y=Et(!0),b=be(g)??y?.store;if(!b)throw Error(K(85));let x=U(u),S=b.useState(`isTriggerActive`,x),C=b.useState(`floatingRootContext`),w=b.useState(`isOpenedByTrigger`,x),T=b.useState(`triggerPopupId`,x),E=Q.useRef(null),O=Ln(),k=Ye(!0),ee=h(),A=Q.useMemo(()=>ee??new p,[ee]),M=Qe(A),N=ae(),{registerTrigger:P,isMountedByThisTrigger:te}=ve(x,E,b,{payload:_,closeDelay:m,parent:O,floatingTreeRoot:A,floatingNodeId:M,floatingParentNodeId:N,keyboardEventRelay:k?.relayKeyboardEvent}),F=O.type===`menubar`,ne=b.useState(`disabled`),I=c||ne||F&&O.context.disabled,{getButtonProps:L,buttonRef:re}=B({disabled:I,native:l});Q.useEffect(()=>{!w&&O.type===void 0&&(b.context.allowMouseUpTriggerRef.current=!1)},[b,w,O.type]);let R=Q.useRef(null),z=o(),ie=n(e=>{if(!R.current)return;z.clear(),b.context.allowMouseUpTriggerRef.current=!1;let t=e.target;$e(R.current,t)||$e(b.select(`positionerElement`),t)||t===R.current||(t==null||jn(t)!==b.select(`rootId`))&&(Dn(e,R.current)||A.events.emit(`close`,{domEvent:e,reason:Ee}))});Q.useEffect(()=>{w&&b.select(`lastOpenChangeReason`)===`trigger-hover`&&le(R.current).addEventListener(`mouseup`,ie,{once:!0})},[w,ie,b]);let V=F&&O.context.hasSubmenuOpen,H=de(C,{enabled:(d??V)&&!I&&(!F||V&&!te),handleClose:ce({blockPointerEvents:!F}),mouseOnly:!0,move:!1,restMs:O.type===void 0?f:void 0,delay:{close:m},triggerElementRef:E,externalTree:A,isActiveTrigger:S,isClosing:()=>b.select(`transitionStatus`)===`ending`}),W=In(w,b.select(`lastOpenChangeReason`)),G=ct(C,{enabled:!I,event:w&&F?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:O.type===void 0&&W}),oe=t(C,{enabled:!I&&V}),q=Pn({open:w,enabled:F,mouseDownAction:`open`}),se=Q.useMemo(()=>j(oe.reference,G.reference),[oe.reference,G.reference]),ue=b.useState(`triggerProps`,te),{preFocusGuardRef:fe,handlePreFocusGuardFocus:pe,handleFocusTargetFocus:me}=Nn(b,E),he={disabled:I,open:w},ge=[R,r,re,P,E],Y=[se,H??J,ue,{"aria-haspopup":`menu`,"aria-controls":T,id:x,onMouseDown:e=>{b.select(`open`)||(z.start(200,()=>{b.context.allowMouseUpTriggerRef.current=!0}),le(e.currentTarget).addEventListener(`mouseup`,ie,{once:!0}))}},F?{role:`menuitem`}:{},q,v,L],_e=X(`button`,e,{enabled:!F,stateAttributesMapping:D,state:he,ref:ge,props:Y});return F?(0,$.jsx)(An,{tag:`button`,render:i,className:a,style:s,state:he,refs:ge,props:Y,stateAttributesMapping:D}):w?(0,$.jsxs)(Q.Fragment,{children:[(0,$.jsx)(Be,{ref:fe,onFocus:pe},`${x}-pre-focus-guard`),(0,$.jsx)(Q.Fragment,{children:_e},x),(0,$.jsx)(Be,{ref:b.context.triggerFocusTargetRef,onFocus:me},`${x}-post-focus-guard`)]}):(0,$.jsx)(Q.Fragment,{children:_e},x)});function In(e,t){let n=o(),[r,i]=Q.useState(!1);return S(()=>{e&&t===`trigger-hover`?(i(!0),n.start(500,()=>{i(!1)})):e||(n.clear(),i(!1))},[e,t,n]),r}function Ln(){let e=_n(!0);return Q.useMemo(()=>e?{type:`menubar`,context:e}:{type:void 0},[e])}function Rn({...e}){return(0,$.jsx)(wn,{"data-slot":`dropdown-menu`,...e})}function zn({...e}){return(0,$.jsx)(Fn,{"data-slot":`dropdown-menu-trigger`,...e})}function Bn({align:e=`start`,alignOffset:t=0,side:n=`bottom`,sideOffset:r=4,className:i,...a}){return(0,$.jsx)(Zt,{children:(0,$.jsx)(cn,{className:`isolate z-50 outline-none`,align:e,alignOffset:t,side:n,sideOffset:r,children:(0,$.jsx)(Jt,{"data-slot":`dropdown-menu-content`,className:u(`cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95`,i),...a})})})}function Vn({...e}){return(0,$.jsx)(Ut,{"data-slot":`dropdown-menu-group`,...e})}function Hn({className:e,inset:t,...n}){return(0,$.jsx)(Wt,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:u(`px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7`,e),...n})}function Un({className:e,inset:t,variant:n=`default`,...r}){return(0,$.jsx)(Gt,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:u(`group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive`,e),...r})}function Wn({className:e,children:t,checked:n,inset:r,...i}){return(0,$.jsxs)(zt,{"data-slot":`dropdown-menu-checkbox-item`,"data-inset":r,className:u(`relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:n,...i,children:[(0,$.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex items-center justify-center`,"data-slot":`dropdown-menu-checkbox-item-indicator`,children:(0,$.jsx)(Bt,{children:(0,$.jsx)(Ze,{icon:Pe,size:16,color:`currentColor`,strokeWidth:1.5})})}),t]})}function Gn({...e}){return(0,$.jsx)(dn,{"data-slot":`dropdown-menu-radio-group`,...e})}function Kn({className:e,children:t,inset:n,...r}){return(0,$.jsxs)(mn,{"data-slot":`dropdown-menu-radio-item`,"data-inset":n,className:u(`relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[(0,$.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex items-center justify-center`,"data-slot":`dropdown-menu-radio-item-indicator`,children:(0,$.jsx)(hn,{children:(0,$.jsx)(Ze,{icon:Pe,size:16,color:`currentColor`,strokeWidth:1.5})})}),t]})}function qn({className:e,...t}){return(0,$.jsx)(vt,{"data-slot":`dropdown-menu-separator`,className:u(`-mx-1 my-1 h-px bg-border`,e),...t})}function Jn({className:e,...t}){return(0,$.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:u(`ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground`,e),...t})}export{ct as S,St as _,Un as a,_t as b,Kn as c,zn as d,Dn as f,It as g,qt as h,Vn as i,qn as l,Qt as m,Wn as n,Hn as o,sn as p,Bn as r,Gn as s,Rn as t,Jn as u,bt as v,gt as x,vt as y};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$r as t,Ai as n,Ci as r,Cr as i,E as a,F as o,L as s,Or as c,P as l,Si as u,T as d,Wi as f,Wr as p,ar as m,bi as h,mi as g,pr as _,t as v,vi as y,wr as b,xi as x}from"./shortcut-keys-DKxNTe_m.js";import{r as S}from"./react-dom-Bph1y7z7.js";import{A as C}from"./xyflow-D7n4g6go.js";var w=C();function T({className:e,...t}){return(0,w.jsx)(`div`,{"data-slot":`empty`,className:i(`flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance`,e),...t})}function E({className:e,...t}){return(0,w.jsx)(`div`,{"data-slot":`empty-header`,className:i(`flex max-w-sm flex-col items-center gap-2`,e),...t})}var D=d(`mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4`}},defaultVariants:{variant:`default`}});function ee({className:e,variant:t=`default`,...n}){return(0,w.jsx)(`div`,{"data-slot":`empty-icon`,"data-variant":t,className:i(D({variant:t,className:e})),...n})}function te({className:e,...t}){return(0,w.jsx)(`div`,{"data-slot":`empty-title`,className:i(`cn-font-heading text-sm font-medium tracking-tight`,e),...t})}function ne({className:e,...t}){return(0,w.jsx)(`div`,{"data-slot":`empty-description`,className:i(`text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary`,e),...t})}function re({className:e,...t}){return(0,w.jsx)(a,{flat:!0,className:i(_,e),...t})}function ie({label:e,keys:t,className:n,children:r}){return(0,w.jsxs)(l,{children:[(0,w.jsx)(s,{render:e=>(0,w.jsx)(`span`,{...e,className:i(`inline-flex items-center`,n),tabIndex:-1,children:r})}),(0,w.jsxs)(o,{side:`bottom`,className:`text-[11px]`,children:[e,t&&t.length>0?(0,w.jsx)(v,{keys:t}):null]})]})}function ae({open:e,onToggle:t,noun:n,controlsId:i,dataSlot:a}){let o=e?`Collapse ${n}`:`Expand ${n}`;return(0,w.jsx)(ie,{label:o,className:`flex self-stretch`,children:(0,w.jsx)(`button`,{type:`button`,"aria-expanded":e,"aria-controls":i,"aria-label":o,"data-slot":a,onClick:t,className:m,children:(0,w.jsx)(b,{icon:e?u:r,className:`size-3.5`})})})}var O=e(S(),1);function oe(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function se(e,t){let n=getComputedStyle(e.ownerDocument.documentElement);return t*parseFloat(n.fontSize)}function ce(e){return e/100*window.innerHeight}function le(e){return e/100*window.innerWidth}function ue(e){switch(typeof e){case`number`:return[e,`px`];case`string`:{let t=parseFloat(e);return e.endsWith(`%`)?[t,`%`]:e.endsWith(`px`)?[t,`px`]:e.endsWith(`rem`)?[t,`rem`]:e.endsWith(`em`)?[t,`em`]:e.endsWith(`vh`)?[t,`vh`]:e.endsWith(`vw`)?[t,`vw`]:[t,`%`]}}}function k({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=ue(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=se(t,i);break;case`em`:r=oe(t,i);break;case`vh`:r=ce(i);break;case`vw`:r=le(i)}return r}function A(e){return parseFloat(e.toFixed(3))}function j({group:e}){let{orientation:t,panels:n}=e;return n.reduce((e,n)=>(e+=t===`horizontal`?n.element.offsetWidth:n.element.offsetHeight,e),0)}function de(e){let{panels:t}=e,n=j({group:e});return n===0?t.map(e=>({groupResizeBehavior:e.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:e.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:e.panelConstraints.disabled,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let{element:t,panelConstraints:r}=e,i=0;r.collapsedSize!==void 0&&(i=A(k({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=A(k({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=A(k({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=A(k({groupSize:n,panelElement:t,styleProp:r.maxSize})/n*100)),{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:i,collapsible:r.collapsible===!0,defaultSize:a,disabled:r.disabled,minSize:o,maxSize:s,panelId:e.id}})}function M(e,t=`Assertion error`){if(!e)throw Error(t)}function fe(e,t){return Array.from(t).sort(e===`horizontal`?pe:me)}function pe(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function me(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function he(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function ge(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function _e({orientation:e,rects:t,targetRect:n}){let r={x:n.x+n.width/2,y:n.y+n.height/2},i,a=Number.MAX_VALUE;for(let n of t){let{x:t,y:o}=ge(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return M(i,`No rect found`),i}var ve;function ye(){return ve===void 0&&(ve=typeof matchMedia==`function`&&!!matchMedia(`(pointer:coarse)`).matches),ve}function be(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=fe(n,Array.from(t.children).filter(he).map(e=>({element:e}))).map(({element:e})=>e),o=[],s=!1,c=!1,l=-1,u=-1,d=0,f,p=[];{let e=-1;for(let t of a)t.hasAttribute(`data-panel`)&&(e++,t.hasAttribute(`data-disabled`)||(d++,l===-1&&(l=e),u=e))}if(d>1){let t=-1;for(let d of a)if(d.hasAttribute(`data-panel`)){t++;let i=r.find(e=>e.element===d);if(i){if(f){let r=f.element.getBoundingClientRect(),a=d.getBoundingClientRect(),m;if(c){let e=n===`horizontal`?new DOMRect(r.right,r.top,0,r.height):new DOMRect(r.left,r.bottom,r.width,0),t=n===`horizontal`?new DOMRect(a.left,a.top,0,a.height):new DOMRect(a.left,a.top,a.width,0);switch(p.length){case 0:m=[e,t];break;case 1:{let i=p[0];m=[i,_e({orientation:n,rects:[r,a],targetRect:i.element.getBoundingClientRect()})===r?t:e];break}default:m=p}}else m=p.length?p:[n===`horizontal`?new DOMRect(r.right,a.top,a.left-r.right,a.height):new DOMRect(a.left,r.bottom,a.width,a.top-r.bottom)];for(let n of m){let r=`width`in n?n:n.element.getBoundingClientRect(),a=ye()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(r.width<a){let e=a-r.width;r=new DOMRect(r.x-e/2,r.y,r.width+e,r.height)}if(r.height<a){let e=a-r.height;r=new DOMRect(r.x,r.y-e/2,r.width,r.height+e)}!s&&!(t<=l||t>u)&&o.push({group:e,groupSize:j({group:e}),panels:[f,i],separator:`width`in n?void 0:n,rect:r}),s=!1}}c=!1,f=i,p=[]}}else if(d.hasAttribute(`data-separator`)){d.ariaDisabled!==null&&(s=!0);let e=i.find(e=>e.element===d);e?p.push(e):(f=void 0,p=[])}else c=!0}return o}var xe=class{#e={};addListener(e,t){let n=this.#e[e];return n===void 0?this.#e[e]=[t]:n.includes(t)||n.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let n=this.#e[e];if(n!==void 0)if(n.length===1)n[0].call(null,t);else{let e=!1,r=null,i=Array.from(n);for(let n=0;n<i.length;n++){let a=i[n];try{a.call(null,t)}catch(t){r===null&&(e=!0,r=t)}}if(e)throw r}}removeAllListeners(){this.#e={}}removeListener(e,t){let n=this.#e[e];if(n!==void 0){let e=n.indexOf(t);e>=0&&n.splice(e,1)}}},N={cursorFlags:0,state:`inactive`},Se=new xe;function P(){return N}function Ce(e){return Se.addListener(`change`,e)}function we(e){let t=N,n={...N};n.cursorFlags=e,N=n,Se.emit(`change`,{prev:t,next:n})}function F(e){let t=N;N=e,Se.emit(`change`,{prev:t,next:e})}var Te=e=>e,I=()=>{},Ee=1,De=2,Oe=4,ke=8,Ae=3,je=12,L;function Me(){return L===void 0&&(L=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(L=!0)),L}function Ne({cursorFlags:e,groups:t,state:n}){let r=0,i=0;switch(n){case`active`:case`hover`:t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case`horizontal`:r++;break;case`vertical`:i++;break}})}if(r!==0||i!==0){if(n===`active`&&e&&Me()){let t=(e&Ee)!==0,n=(e&De)!==0,r=(e&Oe)!==0,i=(e&ke)!==0;if(t)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}return Me()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Pe=new WeakMap;function Fe(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Pe.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));let r=P();switch(r.state){case`active`:case`hover`:{let e=Ne({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(e=>e.group),state:r.state}),i=`*, *:hover {cursor: ${e} !important; }`;if(t===i)return;t=i,e?n.cssRules.length===0?n.insertRule(i):n.replaceSync(i):n.cssRules.length===1&&n.deleteRule(0);break}case`inactive`:t=void 0,n.cssRules.length===1&&n.deleteRule(0)}Pe.set(e,{prevStyle:t,styleSheet:n})}var R=new Map,Ie=new xe;function Le(e){R=new Map(R),R.delete(e)}function Re(e,t){for(let[t]of R)if(t.id===e)return t}function z(e,t){for(let[t,n]of R)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function B(){return R}function ze(e,t){return Ie.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function V(e,t,n){let r=R.get(e);R=new Map(R),R.set(e,t),Ie.emit(`groupChange`,{group:e,isUserInteraction:n?.isUserInteraction===!0,prev:r,next:t})}function Be(e){let t=P(),n=!1;return t.state===`active`&&(F({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(Fe(e),n=!0,t.hitRegions.forEach(e=>{let t=z(e.group.id,!0);V(e.group,t,{isUserInteraction:!0})}))),n}function Ve(e){e.defaultPrevented||Be(e.currentTarget)}function He(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=ge(n,a.rect);switch(e){case`horizontal`:t.x<=i.x&&(r=a,i=t);break;case`vertical`:t.y<=i.y&&(r=a,i=t)}}return r?{distance:i,hitRegion:r}:void 0}function Ue(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function We(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:Xe(e),b:Xe(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();M(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Ye(Je(n.a)),b:Ye(Je(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Ge=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Ke(e){let t=getComputedStyle(Ze(e)??e).display;return t===`flex`||t===`inline-flex`}function qe(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Ke(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Ge.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function Je(e){let t=e.length;for(;t--;){let n=e[t];if(M(n,`Missing node`),qe(n))return n}return null}function Ye(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Xe(e){let t=[];for(;e;)t.push(e),e=Ze(e);return t}function Ze(e){let{parentNode:t}=e;return Ue(t)?t.host:t}function Qe(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function $e({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!he(n)||n.contains(e)||e.contains(n))return!0;if(We(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Qe(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function et(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=be(r),a=He(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&$e({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function tt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function H(e,t,n=0){return Math.abs(A(e)-A(t))<=n}function U(e,t){return H(e,t)?0:e>t?1:-1}function W({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){let{collapsedSize:i=0,collapsible:a,disabled:o,maxSize:s=100,minSize:c=0}=t;if(o&&!e)return n;if(U(r,c)<0)if(a){let e=(i+c)/2;r=U(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=A(r),r}function G({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(H(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;M(u!=null,`Invalid first pivot index`),M(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];M(r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(M(n!=null,`Previous layout not found for panel index ${t}`),H(n,i)){let t=o-n;U(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];M(r,`No panel constraints found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(M(n!=null,`Previous layout not found for panel index ${t}`),H(n,o)){let t=n-i;U(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];M(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&U(i,c)<0)if(e>0){let t=c-o,n=t/2;U(i+e,c)<0&&(e=U(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;U(i-e,c)<0&&(e=U(100+e,n)>0?0:-t)}break}}{let t=e<0?1:-1,r=e<0?d:u,i=0;for(;;){let e=s[r];M(e!=null,`Previous layout not found for panel index ${r}`);let a=W({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:e,size:100})-e;if(i+=a,r+=t,r<0||r>=n.length)break}let a=Math.min(Math.abs(e),Math.abs(i));e=e<0?0-a:a}{let t=e<0?u:d;for(;t>=0&&t<n.length;){let r=Math.abs(e)-Math.abs(f),i=s[t];M(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=W({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!H(i,c)&&(f+=i-c,l[t]=c,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(tt(c,l))return i;{let t=e<0?d:u,r=s[t];M(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=W({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!H(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];M(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=W({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(H(i,s)||(t-=s-i,l[r]=s),H(t,0))break;e>0?r--:r++}}}if(!H(Object.values(l).reduce((e,t)=>t+e,0),100,.1))return i;let p=Object.keys(i);return l.reduce((e,t,n)=>(e[p[n]]=t,e),{})}function K(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||U(e[n],t[n])!==0)return!1;return!0}function q({layout:e,panelConstraints:t}){let n=Object.values(e),r=[...n],i=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(`, `)}`);if(!H(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];M(t!=null,`No layout data found for index ${e}`);let n=100/i*t;r[e]=n}let a=0;for(let e=0;e<t.length;e++){let i=n[e];M(i!=null,`No layout data found for index ${e}`);let o=r[e];M(o!=null,`No layout data found for index ${e}`);let s=W({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!H(a,0))for(let e=0;e<t.length;e++){let n=r[e];M(n!=null,`No layout data found for index ${e}`);let i=n+a,o=W({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,H(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function nt({groupId:e,panelId:t}){let n=()=>{let t=B();for(let[n,{defaultLayoutDeferred:r,derivedPanelConstraints:i,layout:a,groupSize:o,separatorToPanels:s}]of t)if(n.id===e)return{defaultLayoutDeferred:r,derivedPanelConstraints:i,group:n,groupSize:o,layout:a,separatorToPanels:s};throw Error(`Group ${e} not found`)},r=()=>{let e=n().derivedPanelConstraints.find(e=>e.panelId===t);if(e!==void 0)return e;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{let e=n().group.panels.find(e=>e.id===t);if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},a=()=>{let e=n().layout[t];if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},o=({nextSize:e,panels:n,prevLayout:r,derivedPanelConstraints:i})=>{let o=a(),s=n.findIndex(e=>e.id===t),c=s===0,l=s===n.length-1;if(l&&e<o&&(c||n.slice(0,s).every((e,t)=>{let n=i[t];return n?.collapsible&&H(n.collapsedSize,r[n.panelId])}))){let e=n.slice(0,s).reduce((e,t)=>e+r[t.id],0);return{...r,[t]:A(100-e)}}return G({delta:l?o-e:e-o,initialLayout:r,panelConstraints:i,pivotIndices:l?[s-1,s]:[s,s+1],prevLayout:r,trigger:`imperative-api`})},s=e=>{if(e===a())return;let{defaultLayoutDeferred:t,derivedPanelConstraints:r,group:i,groupSize:s,layout:c,separatorToPanels:l}=n(),u=q({layout:o({nextSize:e,panels:i.panels,prevLayout:c,derivedPanelConstraints:r}),panelConstraints:r});K(c,u)||V(i,{defaultLayoutDeferred:t,derivedPanelConstraints:r,groupSize:s,layout:u,separatorToPanels:l})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),o=a();e&&o!==t&&(n.expandToSize=o,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:o}=i(),c=a();if(e&&c===t){let e=o.expandToSize??n;e===0&&(e=1),s(e)}},getSize:()=>{let{group:e}=n(),t=a(),{element:r}=i();return{asPercentage:t,inPixels:e.orientation===`horizontal`?r.offsetWidth:r.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=r(),n=a();return e&&H(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=j({group:t}),o=A(k({groupSize:a,panelElement:r,styleProp:e})/a*100);s(o)}}}function rt(e){e.defaultPrevented||et(e,B()).forEach(t=>{if(t.separator&&!t.separator.disableDoubleClick){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=nt({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function J(e){let t=B();for(let[n]of t)if(n.separators.some(t=>t.element===e))return n;throw Error(`Could not find parent Group for separator element`)}function it({groupId:e}){let t=()=>{let t=B();for(let[n,r]of t)if(n.id===e)return{group:n,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:n}=t();return e?{}:n},setLayout(e){let{defaultLayoutDeferred:n,derivedPanelConstraints:r,group:i,groupSize:a,layout:o,separatorToPanels:s}=t(),c=q({layout:e,panelConstraints:r});return n?o:(K(o,c)||V(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Y(e,t){let n=J(e),r=z(n.id,!0),i=n.separators.find(t=>t.element===e);M(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);M(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=it({groupId:n.id}).getLayout(),c=q({layout:G({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});K(s,c)||V(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels},{isUserInteraction:!0})}function at(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=J(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Y(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Y(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Y(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Y(t,-5);break;case`End`:e.preventDefault(),Y(t,100);break;case`Enter`:{e.preventDefault();let n=J(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=z(n.id,!0),o=n.separators.find(e=>e.element===t);M(o,`Matching separator not found`);let s=a.get(o);M(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(M(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Y(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=J(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);M(r!==null,`Index not found`),n[e.shiftKey?r>0?r-1:n.length-1:r+1<n.length?r+1:0].focus({preventScroll:!0});break}case`Home`:e.preventDefault(),Y(t,-100);break}}function ot(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=B(),n=et(e,t),r=new Map,i=!1;n.forEach(e=>{e.separator&&(i||(i=!0,e.separator.element.focus({focusVisible:!1,preventScroll:!0})));let n=t.get(e.group);n&&r.set(e.group,n.layout)}),F({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}function st({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:i,pointerDownAtPoint:a,prevCursorFlags:o}){let s=0;n.forEach(e=>{let{group:n,groupSize:o}=e,{orientation:c,panels:l}=n,{disableCursor:u}=n.mutableState,d=0;d=a?c===`horizontal`?(t.clientX-a.x)/o*100:(t.clientY-a.y)/o*100:c===`horizontal`?t.clientX<0?-100:100:t.clientY<0?-100:100;let f=r.get(n),p=i.get(n);if(!f||!p)return;let{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:_,separatorToPanels:v}=p;if(h&&_&&v){let t=G({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(K(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Ee:De;break;case`vertical`:s|=d<0?Oe:ke;break}}else V(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Ae:c|=s&Ae,t.movementY===0?c|=o&je:c|=s&je,we(c),Fe(e)}function ct(e){let t=B(),n=P();n.state===`active`&&st({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}function lt(e){if(e.defaultPrevented)return;let t=P(),n=B();switch(t.state){case`active`:if(e.buttons===0){F({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=z(e.group.id,!0);V(e.group,t,{isUserInteraction:!0})});return}for(let n of t.hitRegions)if(n.separator){let{element:t}=n.separator;t.hasPointerCapture?.(e.pointerId)||t.setPointerCapture?.(e.pointerId)}st({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=et(e,n);r.length===0?t.state!==`inactive`&&F({cursorFlags:0,state:`inactive`}):F({cursorFlags:0,hitRegions:r,state:`hover`}),Fe(e.currentTarget);break}}}function ut(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(P().state){case`hover`:F({cursorFlags:0,state:`inactive`})}}function dt(e){e.defaultPrevented||e.pointerType===`mouse`&&e.button>0||Be(e.currentTarget)&&e.preventDefault()}function ft(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=A(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=A((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function pt(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=j({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:A(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function mt(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function ht({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,a=0,o=!1,s=new Map,c=[];for(let l of e.panels){let e=r[l.id]??0;switch(l.panelConstraints.groupResizeBehavior){case`preserve-pixel-size`:{o=!0;let r=A(e/100*n/t*100);s.set(l.id,r),i+=r;break}default:c.push(l.id),a+=e}}if(!o||c.length===0)return r;let l=100-i,u={...r};if(s.forEach((e,t)=>{u[t]=e}),a>0)for(let e of c)u[e]=A((r[e]??0)/a*l);else{let e=A(l/c.length);for(let t of c)u[t]=e}return u}function gt(e,t){let n=e.map(e=>e.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;return!0}var X=new Map;function _t(e){let t=!0;M(e.element.ownerDocument.defaultView,`Cannot register an unmounted Group`);let n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,a=new n(n=>{for(let r of n){let{borderBoxSize:n,target:i}=r;if(i===e.element){if(t){let t=j({group:e});if(t===0)return;let n=z(e.id);if(!n)return;let r=de(e),i=n.defaultLayoutDeferred?ft(r):n.layout,a=q({layout:ht({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&K(n.layout,a)&&mt(n.derivedPanelConstraints,r)&&n.groupSize===t)return;V(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else pt(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{M(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&a.observe(e.element)});let o=j({group:e}),s=de(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(gt(e.panels,l)||(l=void 0));let u=q({layout:e.mutableState.layouts[c]??l??ft(s),panelConstraints:s}),d=e.element.ownerDocument;X.set(d,(X.get(d)??0)+1);let f=new Map;return be(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),V(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{M(!i.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),i.add(e.id),e.element.addEventListener(`keydown`,at)}),X.get(d)===1&&(d.addEventListener(`contextmenu`,Ve,!0),d.addEventListener(`dblclick`,rt,!0),d.addEventListener(`pointerdown`,ot,!0),d.addEventListener(`pointerleave`,ct),d.addEventListener(`pointermove`,lt),d.addEventListener(`pointerout`,ut),d.addEventListener(`pointerup`,dt,!0)),function(){t=!1,X.set(d,Math.max(0,(X.get(d)??0)-1)),Le(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,at)}),X.get(d)||(d.removeEventListener(`contextmenu`,Ve,!0),d.removeEventListener(`dblclick`,rt,!0),d.removeEventListener(`pointerdown`,ot,!0),d.removeEventListener(`pointerleave`,ct),d.removeEventListener(`pointermove`,lt),d.removeEventListener(`pointerout`,ut),d.removeEventListener(`pointerup`,dt,!0)),a.disconnect()}}function vt(){let[e,t]=(0,O.useState)({});return[e,(0,O.useCallback)(()=>t({}),[])]}function yt(e){let t=(0,O.useId)();return`${e??t}`}var Z=typeof window<`u`?O.useLayoutEffect:O.useEffect;function Q(e){let t=(0,O.useRef)(e);return Z(()=>{t.current=e},[e]),(0,O.useCallback)((...e)=>t.current?.(...e),[t])}function $(...e){return Q(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function bt(e){let t=(0,O.useRef)({...e});return Z(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var xt=(0,O.createContext)(null);function St(e,t){let n=(0,O.useRef)({getLayout:()=>({}),setLayout:Te});(0,O.useImperativeHandle)(t,()=>n.current,[]),Z(()=>{Object.assign(n.current,it({groupId:e}))})}function Ct({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizeTargetMinimumSize:d={coarse:20,fine:10},style:f,...p}){let m=(0,O.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=Q(e=>{K(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=Q((e,t)=>{K(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e,{isUserInteraction:t}))}),_=yt(s),v=(0,O.useRef)(null),[y,b]=vt(),x=(0,O.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=$(v,a);St(_,o);let C=Q((e,t)=>{let r=P(),i=Re(e),a=z(e);if(a){let e=!1;return r.state===`active`&&(e=r.hitRegions.some(e=>e.group===i)),{flexGrow:a.layout[t]??1,pointerEvents:e?`none`:void 0}}if(n?.[t])return{flexGrow:n?.[t]}}),T=bt({defaultLayout:n,disableCursor:r}),E=(0,O.useMemo)(()=>({get disableCursor(){return!!T.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=fe(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=fe(u,[...t.separators,e]),b(),()=>{t.separators=t.separators.filter(t=>t!==e),b()}},updatePanelProps:(e,{disabled:t})=>{let n=x.current.panels.find(t=>t.id===e);n&&(n.panelConstraints.disabled=t);let r=Re(_),i=z(_);r&&i&&V(r,{...i,derivedPanelConstraints:de(r)})},updateSeparatorProps:(e,{disabled:t,disableDoubleClick:n})=>{let r=x.current.separators.find(t=>t.id===e);r&&(r.disabled=t,r.disableDoubleClick=n)}}),[C,_,b,u,T]),D=(0,O.useRef)(null);return Z(()=>{let e=v.current;if(e===null)return;let t=x.current,n;if(T.defaultLayout!==void 0&&Object.keys(T.defaultLayout).length===t.panels.length){n={};for(let e of t.panels){let t=T.defaultLayout[e.id];t!==void 0&&(n[e.id]=t)}}let r={disabled:!!i,element:e,id:_,mutableState:{defaultLayout:n,disableCursor:!!T.disableCursor,expandedPanelSizes:x.current.lastExpandedPanelSizes,layouts:x.current.layouts},orientation:u,panels:t.panels,resizeTargetMinimumSize:t.resizeTargetMinimumSize,separators:t.separators};D.current=r;let a=_t(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=z(r.id,!0);!o&&s.length>0&&(h(c),g(c,!1));let l=ze(_,e=>{let{defaultLayoutDeferred:t,derivedPanelConstraints:n,layout:i}=e.next;if(t||n.length===0)return;let a=r.panels.map(({id:e})=>e).join(`,`);r.mutableState.layouts[a]=i,n.forEach(t=>{if(t.collapsible){let{layout:n}=e.prev??{};if(n){let e=H(t.collapsedSize,i[t.panelId]),a=H(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=P().state!==`active`;h(i),o&&g(i,e.isUserInteraction)});return()=>{D.current=null,a(),l()}},[i,_,g,h,u,y,T]),(0,O.useEffect)(()=>{let e=D.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,w.jsx)(xt.Provider,{value:E,children:(0,w.jsx)(`div`,{...p,className:t,"data-group":!0,"data-testid":_,id:_,ref:S,style:{height:`100%`,width:`100%`,overflow:`hidden`,...f,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:e})})}Ct.displayName=`Group`;function wt(){let e=(0,O.useContext)(xt);return M(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function Tt(e,t){let{id:n}=wt(),r=(0,O.useRef)({collapse:I,expand:I,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:I});(0,O.useImperativeHandle)(t,()=>r.current,[]),Z(()=>{Object.assign(r.current,nt({groupId:n,panelId:e}))})}function Et({children:e,className:t,collapsedSize:n=`0%`,collapsible:r=!1,defaultSize:i,disabled:a,elementRef:o,groupResizeBehavior:s=`preserve-relative-size`,id:c,maxSize:l=`100%`,minSize:u=`0%`,onResize:d,panelRef:f,style:p,...m}){let h=!!c,g=yt(c),_=bt({disabled:a}),v=(0,O.useRef)(null),y=$(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,updatePanelProps:T}=wt(),E=d!==null,D=Q((e,t,n)=>{d?.(e,c,n)});Z(()=>{let e=v.current;if(e!==null){let t={element:e,id:g,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:E?D:void 0,panelConstraints:{groupResizeBehavior:s,collapsedSize:n,collapsible:r,defaultSize:i,disabled:_.disabled,maxSize:l,minSize:u}};return C(t)}},[s,n,r,i,E,g,h,l,u,D,C,_]),(0,O.useEffect)(()=>{T(g,{disabled:a})},[a,g,T]),Tt(g,f);let ee=()=>{let e=b(x,g);if(e)return JSON.stringify(e)},te=(0,O.useSyncExternalStore)(e=>ze(x,e),ee,ee),ne;return ne=te?JSON.parse(te):i===void 0?{flexGrow:1}:{flexGrow:void 0,flexShrink:void 0,flexBasis:i},(0,w.jsx)(`div`,{...m,"data-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...Dt,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...ne},children:(0,w.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}Et.displayName=`Panel`;var Dt={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Ot(){return(0,O.useRef)(null)}function kt({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let i,a,o=e[n],s=t.find(e=>e.panelId===n);if(s){let c=s.maxSize,l=s.collapsible?s.collapsedSize:s.minSize,u=[r,r+1];a=q({layout:G({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=q({layout:G({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function At({children:e,className:t,disabled:n,disableDoubleClick:r,elementRef:i,id:a,style:o,...s}){let c=yt(a),l=bt({disabled:n,disableDoubleClick:r}),[u,d]=(0,O.useState)({}),[f,p]=(0,O.useState)(`inactive`),[m,h]=(0,O.useState)(!1),g=(0,O.useRef)(null),_=$(g,i),{disableCursor:v,id:y,orientation:b,registerSeparator:x,updateSeparatorProps:S}=wt(),C=b===`horizontal`?`vertical`:`horizontal`;Z(()=>{let e=g.current;if(e!==null){let t={disabled:l.disabled,disableDoubleClick:l.disableDoubleClick,element:e,id:c},n=x(t),r=Ce(e=>{p(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=ze(y,e=>{let{derivedPanelConstraints:n,layout:r,separatorToPanels:i}=e.next,a=i.get(t);if(a){let e=a[0],t=a.indexOf(e);d(kt({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[y,c,x,l]),(0,O.useEffect)(()=>{S(c,{disabled:n,disableDoubleClick:r})},[n,r,c,S]);let T;n&&!v&&(T=`not-allowed`);let E;if(n)E=`disabled`;else switch(f){case`active`:E=`active`;break;default:E=m?`focus`:f}return(0,w.jsx)(`div`,{...s,"aria-controls":u.valueControls,"aria-disabled":n||void 0,"aria-orientation":C,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":E,"data-testid":c,id:c,onBlur:()=>h(!1),onFocus:()=>h(!0),ref:_,role:`separator`,style:{flexBasis:`auto`,cursor:T,...o,flexGrow:0,flexShrink:0,touchAction:`none`},tabIndex:n?void 0:0})}At.displayName=`Separator`;function jt({className:e,...t}){return(0,w.jsx)(Ct,{className:i(`flex h-full w-full data-[orientation=vertical]:flex-col`,e),...t})}var Mt=Et;function Nt({withHandle:e,className:t,...n}){return(0,w.jsx)(At,{className:i(`relative flex items-center justify-center bg-border`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1`,`aria-[orientation=vertical]:w-px`,`aria-[orientation=vertical]:after:absolute aria-[orientation=vertical]:after:inset-y-0 aria-[orientation=vertical]:after:left-1/2 aria-[orientation=vertical]:after:w-1 aria-[orientation=vertical]:after:-translate-x-1/2`,`aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full`,`aria-[orientation=horizontal]:after:absolute aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:-translate-y-1/2`,`aria-[orientation=horizontal]:[&>div]:rotate-90`,t),...n,children:e?(0,w.jsx)(`div`,{className:`z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border`,children:(0,w.jsx)(b,{icon:y,className:`size-2.5`})}):null})}function Pt(){let e=Ot(),[t,n]=(0,O.useState)(!0);return{panelRef:e,open:t,toggle:()=>{let t=e.current;t&&(t.isCollapsed()?(t.expand(),n(!0)):(t.collapse(),n(!1)))},onResize:()=>{n(!(e.current?.isCollapsed()??!1))}}}var Ft={flow:{icon:g,label:`Flow`,symbol:`Fl`},signal:{icon:h,label:`Signal`,symbol:`Sg`},store:{icon:t,label:`Store`,symbol:`St`},clock:{icon:p,label:`Clock`,symbol:`Ck`},gate:{icon:f,label:`Gate`,symbol:`Gt`},vault:{icon:x,label:`Vault`,symbol:`Vt`},channel:{icon:n,label:`Channel`,symbol:`Ch`},ai:{icon:c,label:`AI`,symbol:`Ai`}};export{jt as a,re as c,E as d,ee as f,Mt as i,T as l,Pt as n,ae as o,te as p,Nt as r,ie as s,Ft as t,ne as u};
@@ -0,0 +1 @@
1
+ import{Yn as e,wr as t}from"./shortcut-keys-DKxNTe_m.js";import{A as n}from"./xyflow-D7n4g6go.js";import{d as r,f as i,l as a,p as o,u as s}from"./element-icons-BVXtRyd3.js";var c=n();function l({icon:n,iconClassName:l,title:u,description:d,children:f,leading:p}){return(0,c.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[p?(0,c.jsx)(`header`,{className:e,children:(0,c.jsxs)(`div`,{className:`-ml-2 flex h-full shrink-0 items-stretch`,children:[p,(0,c.jsx)(`span`,{className:`w-px shrink-0 self-stretch bg-border/60`,"aria-hidden":!0})]})}):null,(0,c.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-6`,children:(0,c.jsxs)(a,{className:`border-0`,children:[(0,c.jsxs)(r,{children:[n?(0,c.jsx)(i,{variant:`icon`,className:l,children:(0,c.jsx)(t,{icon:n})}):null,(0,c.jsx)(o,{children:u}),d?(0,c.jsx)(s,{children:d}):null]}),f]})})]})}export{l as t};