@xemahq/ui-kernel 0.1.6 → 0.1.8

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 (197) hide show
  1. package/dist/lib/biome-host/agent-validation.d.ts +22 -0
  2. package/dist/lib/biome-host/agent-validation.d.ts.map +1 -0
  3. package/dist/lib/biome-host/agent-validation.js +127 -0
  4. package/dist/lib/biome-host/agent-validation.js.map +1 -0
  5. package/dist/lib/biome-host/create-biome-orval-config.d.ts +14 -0
  6. package/dist/lib/biome-host/create-biome-orval-config.d.ts.map +1 -0
  7. package/dist/lib/biome-host/create-biome-orval-config.js +22 -0
  8. package/dist/lib/biome-host/create-biome-orval-config.js.map +1 -0
  9. package/dist/lib/biome-host/frontend-biome.d.ts +3 -1
  10. package/dist/lib/biome-host/frontend-biome.d.ts.map +1 -1
  11. package/dist/lib/biome-host/host-bridge.d.ts +2 -0
  12. package/dist/lib/biome-host/host-bridge.d.ts.map +1 -1
  13. package/dist/lib/biome-host/host-bridge.js.map +1 -1
  14. package/dist/lib/biome-host/host-sources.d.ts +2 -0
  15. package/dist/lib/biome-host/host-sources.d.ts.map +1 -1
  16. package/dist/lib/biome-host/index.d.ts +2 -1
  17. package/dist/lib/biome-host/index.d.ts.map +1 -1
  18. package/dist/lib/biome-host/index.js +2 -1
  19. package/dist/lib/biome-host/index.js.map +1 -1
  20. package/dist/registry/index.d.ts +1 -1
  21. package/dist/registry/index.d.ts.map +1 -1
  22. package/dist/registry/index.js +1 -1
  23. package/dist/registry/index.js.map +1 -1
  24. package/dist/registry/lib/agent-validation-host.d.ts +3 -0
  25. package/dist/registry/lib/agent-validation-host.d.ts.map +1 -0
  26. package/dist/registry/lib/agent-validation-host.js +10 -0
  27. package/dist/registry/lib/agent-validation-host.js.map +1 -0
  28. package/dist/session-kit/approvals/ApprovalButton.d.ts +14 -0
  29. package/dist/session-kit/approvals/ApprovalButton.d.ts.map +1 -0
  30. package/dist/session-kit/approvals/ApprovalButton.js +45 -0
  31. package/dist/session-kit/approvals/ApprovalButton.js.map +1 -0
  32. package/dist/session-kit/approvals/ApprovalCard.d.ts +12 -0
  33. package/dist/session-kit/approvals/ApprovalCard.d.ts.map +1 -0
  34. package/dist/session-kit/approvals/ApprovalCard.js +117 -0
  35. package/dist/session-kit/approvals/ApprovalCard.js.map +1 -0
  36. package/dist/session-kit/approvals/ApprovalsCenter.d.ts +11 -0
  37. package/dist/session-kit/approvals/ApprovalsCenter.d.ts.map +1 -0
  38. package/dist/session-kit/approvals/ApprovalsCenter.js +127 -0
  39. package/dist/session-kit/approvals/ApprovalsCenter.js.map +1 -0
  40. package/dist/session-kit/approvals/CapabilityApprovalStickyBar.d.ts +12 -0
  41. package/dist/session-kit/approvals/CapabilityApprovalStickyBar.d.ts.map +1 -0
  42. package/dist/session-kit/approvals/CapabilityApprovalStickyBar.js +36 -0
  43. package/dist/session-kit/approvals/CapabilityApprovalStickyBar.js.map +1 -0
  44. package/dist/session-kit/approvals/Obligation.d.ts +15 -0
  45. package/dist/session-kit/approvals/Obligation.d.ts.map +1 -0
  46. package/dist/session-kit/approvals/Obligation.js +42 -0
  47. package/dist/session-kit/approvals/Obligation.js.map +1 -0
  48. package/dist/session-kit/approvals/ScopedBody.d.ts +9 -0
  49. package/dist/session-kit/approvals/ScopedBody.d.ts.map +1 -0
  50. package/dist/session-kit/approvals/ScopedBody.js +145 -0
  51. package/dist/session-kit/approvals/ScopedBody.js.map +1 -0
  52. package/dist/session-kit/approvals/approval-icons.d.ts +15 -0
  53. package/dist/session-kit/approvals/approval-icons.d.ts.map +1 -0
  54. package/dist/session-kit/approvals/approval-icons.js +3 -0
  55. package/dist/session-kit/approvals/approval-icons.js.map +1 -0
  56. package/dist/session-kit/approvals/approval-model.d.ts +83 -0
  57. package/dist/session-kit/approvals/approval-model.d.ts.map +1 -0
  58. package/dist/session-kit/approvals/approval-model.js +25 -0
  59. package/dist/session-kit/approvals/approval-model.js.map +1 -0
  60. package/dist/session-kit/approvals/index.d.ts +12 -0
  61. package/dist/session-kit/approvals/index.d.ts.map +1 -0
  62. package/dist/session-kit/approvals/index.js +28 -0
  63. package/dist/session-kit/approvals/index.js.map +1 -0
  64. package/dist/session-kit/approvals/obligation-display.d.ts +17 -0
  65. package/dist/session-kit/approvals/obligation-display.d.ts.map +1 -0
  66. package/dist/session-kit/approvals/obligation-display.js +58 -0
  67. package/dist/session-kit/approvals/obligation-display.js.map +1 -0
  68. package/dist/session-kit/approvals/risk-accent.d.ts +8 -0
  69. package/dist/session-kit/approvals/risk-accent.d.ts.map +1 -0
  70. package/dist/session-kit/approvals/risk-accent.js +28 -0
  71. package/dist/session-kit/approvals/risk-accent.js.map +1 -0
  72. package/dist/session-kit/approvals/scope-icons.d.ts +12 -0
  73. package/dist/session-kit/approvals/scope-icons.d.ts.map +1 -0
  74. package/dist/session-kit/approvals/scope-icons.js +14 -0
  75. package/dist/session-kit/approvals/scope-icons.js.map +1 -0
  76. package/dist/session-kit/combobox/Combobox.d.ts +46 -0
  77. package/dist/session-kit/combobox/Combobox.d.ts.map +1 -0
  78. package/dist/session-kit/combobox/Combobox.js +113 -0
  79. package/dist/session-kit/combobox/Combobox.js.map +1 -0
  80. package/dist/session-kit/combobox/use-click-outside.d.ts +3 -0
  81. package/dist/session-kit/combobox/use-click-outside.d.ts.map +1 -0
  82. package/dist/session-kit/combobox/use-click-outside.js +18 -0
  83. package/dist/session-kit/combobox/use-click-outside.js.map +1 -0
  84. package/dist/session-kit/display/ContextHeader.d.ts +27 -0
  85. package/dist/session-kit/display/ContextHeader.d.ts.map +1 -0
  86. package/dist/session-kit/display/ContextHeader.js +47 -0
  87. package/dist/session-kit/display/ContextHeader.js.map +1 -0
  88. package/dist/session-kit/display/FileDiffCard.d.ts +18 -0
  89. package/dist/session-kit/display/FileDiffCard.d.ts.map +1 -0
  90. package/dist/session-kit/display/FileDiffCard.js +58 -0
  91. package/dist/session-kit/display/FileDiffCard.js.map +1 -0
  92. package/dist/session-kit/display/MD.d.ts +7 -0
  93. package/dist/session-kit/display/MD.d.ts.map +1 -0
  94. package/dist/session-kit/display/MD.js +89 -0
  95. package/dist/session-kit/display/MD.js.map +1 -0
  96. package/dist/session-kit/display/MessageTurn.d.ts +21 -0
  97. package/dist/session-kit/display/MessageTurn.d.ts.map +1 -0
  98. package/dist/session-kit/display/MessageTurn.js +62 -0
  99. package/dist/session-kit/display/MessageTurn.js.map +1 -0
  100. package/dist/session-kit/display/ThinkingPanel.d.ts +12 -0
  101. package/dist/session-kit/display/ThinkingPanel.d.ts.map +1 -0
  102. package/dist/session-kit/display/ThinkingPanel.js +30 -0
  103. package/dist/session-kit/display/ThinkingPanel.js.map +1 -0
  104. package/dist/session-kit/display/TodoChecklist.d.ts +17 -0
  105. package/dist/session-kit/display/TodoChecklist.d.ts.map +1 -0
  106. package/dist/session-kit/display/TodoChecklist.js +50 -0
  107. package/dist/session-kit/display/TodoChecklist.js.map +1 -0
  108. package/dist/session-kit/display/TokenMeter.d.ts +15 -0
  109. package/dist/session-kit/display/TokenMeter.d.ts.map +1 -0
  110. package/dist/session-kit/display/TokenMeter.js +35 -0
  111. package/dist/session-kit/display/TokenMeter.js.map +1 -0
  112. package/dist/session-kit/display/ToolStrip.d.ts +31 -0
  113. package/dist/session-kit/display/ToolStrip.d.ts.map +1 -0
  114. package/dist/session-kit/display/ToolStrip.js +99 -0
  115. package/dist/session-kit/display/ToolStrip.js.map +1 -0
  116. package/dist/session-kit/display/TypingDots.d.ts +3 -0
  117. package/dist/session-kit/display/TypingDots.d.ts.map +1 -0
  118. package/dist/session-kit/display/TypingDots.js +14 -0
  119. package/dist/session-kit/display/TypingDots.js.map +1 -0
  120. package/dist/session-kit/index.d.ts +21 -0
  121. package/dist/session-kit/index.d.ts.map +1 -0
  122. package/dist/session-kit/index.js +37 -0
  123. package/dist/session-kit/index.js.map +1 -0
  124. package/dist/session-kit/lib/enums.d.ts +34 -0
  125. package/dist/session-kit/lib/enums.d.ts.map +1 -0
  126. package/dist/session-kit/lib/enums.js +44 -0
  127. package/dist/session-kit/lib/enums.js.map +1 -0
  128. package/dist/session-kit/lib/portal-accent.d.ts +3 -0
  129. package/dist/session-kit/lib/portal-accent.d.ts.map +1 -0
  130. package/dist/session-kit/lib/portal-accent.js +9 -0
  131. package/dist/session-kit/lib/portal-accent.js.map +1 -0
  132. package/dist/session-kit/lib/status-dot.d.ts +10 -0
  133. package/dist/session-kit/lib/status-dot.d.ts.map +1 -0
  134. package/dist/session-kit/lib/status-dot.js +43 -0
  135. package/dist/session-kit/lib/status-dot.js.map +1 -0
  136. package/dist/session-kit/primitives/Avatar.d.ts +10 -0
  137. package/dist/session-kit/primitives/Avatar.d.ts.map +1 -0
  138. package/dist/session-kit/primitives/Avatar.js +21 -0
  139. package/dist/session-kit/primitives/Avatar.js.map +1 -0
  140. package/dist/session-kit/primitives/PortalGlyph.d.ts +12 -0
  141. package/dist/session-kit/primitives/PortalGlyph.d.ts.map +1 -0
  142. package/dist/session-kit/primitives/PortalGlyph.js +21 -0
  143. package/dist/session-kit/primitives/PortalGlyph.js.map +1 -0
  144. package/dist/session-kit/primitives/RiskPill.d.ts +12 -0
  145. package/dist/session-kit/primitives/RiskPill.d.ts.map +1 -0
  146. package/dist/session-kit/primitives/RiskPill.js +53 -0
  147. package/dist/session-kit/primitives/RiskPill.js.map +1 -0
  148. package/dist/session-kit/primitives/ScopeDot.d.ts +9 -0
  149. package/dist/session-kit/primitives/ScopeDot.d.ts.map +1 -0
  150. package/dist/session-kit/primitives/ScopeDot.js +23 -0
  151. package/dist/session-kit/primitives/ScopeDot.js.map +1 -0
  152. package/dist/session-kit/primitives/Segmented.d.ts +16 -0
  153. package/dist/session-kit/primitives/Segmented.d.ts.map +1 -0
  154. package/dist/session-kit/primitives/Segmented.js +31 -0
  155. package/dist/session-kit/primitives/Segmented.js.map +1 -0
  156. package/package.json +2 -2
  157. package/src/lib/biome-host/create-biome-orval-config.ts +76 -0
  158. package/src/lib/biome-host/frontend-biome.ts +22 -2
  159. package/src/lib/biome-host/host-bridge.ts +22 -0
  160. package/src/lib/biome-host/host-sources.ts +13 -0
  161. package/src/lib/biome-host/index.ts +2 -1
  162. package/src/registry/index.ts +1 -1
  163. package/src/registry/lib/extension-points.ts +1 -1
  164. package/src/session-kit/approvals/ApprovalButton.tsx +89 -0
  165. package/src/session-kit/approvals/ApprovalCard.tsx +336 -0
  166. package/src/session-kit/approvals/ApprovalsCenter.tsx +327 -0
  167. package/src/session-kit/approvals/CapabilityApprovalStickyBar.tsx +118 -0
  168. package/src/session-kit/approvals/Obligation.tsx +111 -0
  169. package/src/session-kit/approvals/ScopedBody.tsx +392 -0
  170. package/src/session-kit/approvals/approval-icons.ts +31 -0
  171. package/src/session-kit/approvals/approval-model.ts +205 -0
  172. package/src/session-kit/approvals/index.ts +22 -0
  173. package/src/session-kit/approvals/obligation-display.ts +100 -0
  174. package/src/session-kit/approvals/risk-accent.ts +47 -0
  175. package/src/session-kit/approvals/scope-icons.ts +19 -0
  176. package/src/session-kit/combobox/Combobox.tsx +327 -0
  177. package/src/session-kit/combobox/use-click-outside.ts +21 -0
  178. package/src/session-kit/display/ContextHeader.tsx +148 -0
  179. package/src/session-kit/display/FileDiffCard.tsx +140 -0
  180. package/src/session-kit/display/MD.tsx +153 -0
  181. package/src/session-kit/display/MessageTurn.tsx +157 -0
  182. package/src/session-kit/display/ThinkingPanel.tsx +78 -0
  183. package/src/session-kit/display/TodoChecklist.tsx +120 -0
  184. package/src/session-kit/display/TokenMeter.tsx +89 -0
  185. package/src/session-kit/display/ToolStrip.tsx +278 -0
  186. package/src/session-kit/display/TypingDots.tsx +24 -0
  187. package/src/session-kit/index.ts +44 -0
  188. package/src/session-kit/lib/enums.ts +66 -0
  189. package/src/session-kit/lib/portal-accent.ts +30 -0
  190. package/src/session-kit/lib/status-dot.ts +68 -0
  191. package/src/session-kit/primitives/Avatar.tsx +44 -0
  192. package/src/session-kit/primitives/PortalGlyph.tsx +51 -0
  193. package/src/session-kit/primitives/RiskPill.tsx +95 -0
  194. package/src/session-kit/primitives/ScopeDot.tsx +47 -0
  195. package/src/session-kit/primitives/Segmented.tsx +71 -0
  196. /package/src/lib/biome-host/{composition-validation.ts → agent-validation.ts} +0 -0
  197. /package/src/registry/lib/{composition-validation-host.ts → agent-validation-host.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-model.js","sourceRoot":"","sources":["../../../src/session-kit/approvals/approval-model.ts"],"names":[],"mappings":";;;AAmMA,wDAIC;AAGD,4BAEC;AAvKD,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,gCAAW,CAAA;IACX,oCAAe,CAAA;IACf,sCAAiB,CAAA;IACjB,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B;AA8HD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAuBD,SAAgB,sBAAsB,CAAC,IAAwB;IAG7D,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC;AAChD,CAAC;AAGD,SAAgB,QAAQ,CAAC,GAAoB;IAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from './approval-model';
2
+ export * from './obligation-display';
3
+ export * from './scope-icons';
4
+ export * from './risk-accent';
5
+ export * from './approval-icons';
6
+ export * from './ApprovalButton';
7
+ export * from './Obligation';
8
+ export * from './ScopedBody';
9
+ export * from './ApprovalCard';
10
+ export * from './CapabilityApprovalStickyBar';
11
+ export * from './ApprovalsCenter';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session-kit/approvals/index.ts"],"names":[],"mappings":"AAWA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./approval-model"), exports);
18
+ __exportStar(require("./obligation-display"), exports);
19
+ __exportStar(require("./scope-icons"), exports);
20
+ __exportStar(require("./risk-accent"), exports);
21
+ __exportStar(require("./approval-icons"), exports);
22
+ __exportStar(require("./ApprovalButton"), exports);
23
+ __exportStar(require("./Obligation"), exports);
24
+ __exportStar(require("./ScopedBody"), exports);
25
+ __exportStar(require("./ApprovalCard"), exports);
26
+ __exportStar(require("./CapabilityApprovalStickyBar"), exports);
27
+ __exportStar(require("./ApprovalsCenter"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session-kit/approvals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAWA,mDAAiC;AACjC,uDAAqC;AACrC,gDAA8B;AAC9B,gDAA8B;AAC9B,mDAAiC;AACjC,mDAAiC;AACjC,+CAA6B;AAC7B,+CAA6B;AAC7B,iDAA+B;AAC/B,gEAA8C;AAC9C,oDAAkC"}
@@ -0,0 +1,17 @@
1
+ export declare enum ObligationIcon {
2
+ Dollar = "dollar",
3
+ ShieldCheck = "shield-check",
4
+ Scroll = "scroll",
5
+ Eye = "eye",
6
+ Clock = "clock",
7
+ Layers = "layers",
8
+ Globe = "globe",
9
+ Lock = "lock",
10
+ Network = "network"
11
+ }
12
+ export interface ObligationDisplayMeta {
13
+ readonly iconKey: ObligationIcon;
14
+ readonly label: string;
15
+ }
16
+ export declare const OBLIGATION_DISPLAY: Record<string, ObligationDisplayMeta>;
17
+ //# sourceMappingURL=obligation-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obligation-display.d.ts","sourceRoot":"","sources":["../../../src/session-kit/approvals/obligation-display.ts"],"names":[],"mappings":"AA2BA,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,WAAW,iBAAiB;IAC5B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAuDD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAEpE,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OBLIGATION_DISPLAY = exports.ObligationIcon = void 0;
4
+ const policy_1 = require("@xemahq/kernel-contracts/policy");
5
+ var ObligationIcon;
6
+ (function (ObligationIcon) {
7
+ ObligationIcon["Dollar"] = "dollar";
8
+ ObligationIcon["ShieldCheck"] = "shield-check";
9
+ ObligationIcon["Scroll"] = "scroll";
10
+ ObligationIcon["Eye"] = "eye";
11
+ ObligationIcon["Clock"] = "clock";
12
+ ObligationIcon["Layers"] = "layers";
13
+ ObligationIcon["Globe"] = "globe";
14
+ ObligationIcon["Lock"] = "lock";
15
+ ObligationIcon["Network"] = "network";
16
+ })(ObligationIcon || (exports.ObligationIcon = ObligationIcon = {}));
17
+ const ENUM_OBLIGATION_DISPLAY = {
18
+ [policy_1.PolicyObligationKind.MaxCostUsd]: {
19
+ iconKey: ObligationIcon.Dollar,
20
+ label: 'Spend cap',
21
+ },
22
+ [policy_1.PolicyObligationKind.RequireHumanApproval]: {
23
+ iconKey: ObligationIcon.ShieldCheck,
24
+ label: 'Human approval',
25
+ },
26
+ [policy_1.PolicyObligationKind.Audit]: {
27
+ iconKey: ObligationIcon.Scroll,
28
+ label: 'Audited',
29
+ },
30
+ [policy_1.PolicyObligationKind.RestrictOutputClassification]: {
31
+ iconKey: ObligationIcon.Eye,
32
+ label: 'Output limited',
33
+ },
34
+ [policy_1.PolicyObligationKind.MaxDurationSeconds]: {
35
+ iconKey: ObligationIcon.Clock,
36
+ label: 'Time cap',
37
+ },
38
+ [policy_1.PolicyObligationKind.RequireRunnerKind]: {
39
+ iconKey: ObligationIcon.Layers,
40
+ label: 'Runner',
41
+ },
42
+ [policy_1.PolicyObligationKind.DataResidency]: {
43
+ iconKey: ObligationIcon.Globe,
44
+ label: 'Residency',
45
+ },
46
+ [policy_1.PolicyObligationKind.RedactSecrets]: {
47
+ iconKey: ObligationIcon.Lock,
48
+ label: 'Redacted',
49
+ },
50
+ [policy_1.PolicyObligationKind.EgressAllowlist]: {
51
+ iconKey: ObligationIcon.Network,
52
+ label: 'Egress',
53
+ },
54
+ };
55
+ exports.OBLIGATION_DISPLAY = {
56
+ ...ENUM_OBLIGATION_DISPLAY,
57
+ };
58
+ //# sourceMappingURL=obligation-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obligation-display.js","sourceRoot":"","sources":["../../../src/session-kit/approvals/obligation-display.ts"],"names":[],"mappings":";;;AAoBA,4DAAuE;AAOvE,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,8CAA4B,CAAA;IAC5B,mCAAiB,CAAA;IACjB,6BAAW,CAAA;IACX,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,qCAAmB,CAAA;AACrB,CAAC,EAVW,cAAc,8BAAd,cAAc,QAUzB;AAaD,MAAM,uBAAuB,GAGzB;IACF,CAAC,6BAAoB,CAAC,UAAU,CAAC,EAAE;QACjC,OAAO,EAAE,cAAc,CAAC,MAAM;QAC9B,KAAK,EAAE,WAAW;KACnB;IACD,CAAC,6BAAoB,CAAC,oBAAoB,CAAC,EAAE;QAC3C,OAAO,EAAE,cAAc,CAAC,WAAW;QACnC,KAAK,EAAE,gBAAgB;KACxB;IACD,CAAC,6BAAoB,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,EAAE,cAAc,CAAC,MAAM;QAC9B,KAAK,EAAE,SAAS;KACjB;IACD,CAAC,6BAAoB,CAAC,4BAA4B,CAAC,EAAE;QACnD,OAAO,EAAE,cAAc,CAAC,GAAG;QAC3B,KAAK,EAAE,gBAAgB;KACxB;IACD,CAAC,6BAAoB,CAAC,kBAAkB,CAAC,EAAE;QACzC,OAAO,EAAE,cAAc,CAAC,KAAK;QAC7B,KAAK,EAAE,UAAU;KAClB;IACD,CAAC,6BAAoB,CAAC,iBAAiB,CAAC,EAAE;QACxC,OAAO,EAAE,cAAc,CAAC,MAAM;QAC9B,KAAK,EAAE,QAAQ;KAChB;IACD,CAAC,6BAAoB,CAAC,aAAa,CAAC,EAAE;QACpC,OAAO,EAAE,cAAc,CAAC,KAAK;QAC7B,KAAK,EAAE,WAAW;KACnB;IACD,CAAC,6BAAoB,CAAC,aAAa,CAAC,EAAE;QACpC,OAAO,EAAE,cAAc,CAAC,IAAI;QAC5B,KAAK,EAAE,UAAU;KAClB;IACD,CAAC,6BAAoB,CAAC,eAAe,CAAC,EAAE;QACtC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,QAAQ;KAChB;CACF,CAAC;AAOW,QAAA,kBAAkB,GAA0C;IACvE,GAAG,uBAAuB;CAC3B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CapabilityRiskTier } from '@xemahq/kernel-contracts/capability';
2
+ export interface RiskAccent {
3
+ readonly fg: string;
4
+ readonly bg: string;
5
+ readonly bd: string;
6
+ }
7
+ export declare const RISK_ACCENT: Record<CapabilityRiskTier, RiskAccent>;
8
+ //# sourceMappingURL=risk-accent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk-accent.d.ts","sourceRoot":"","sources":["../../../src/session-kit/approvals/risk-accent.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,MAAM,WAAW,UAAU;IAEzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAID,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAqB9D,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RISK_ACCENT = void 0;
4
+ const capability_1 = require("@xemahq/kernel-contracts/capability");
5
+ const DANGER = 'var(--destructive, var(--danger))';
6
+ exports.RISK_ACCENT = {
7
+ [capability_1.CapabilityRiskTier.Low]: {
8
+ fg: 'hsl(var(--ink-3))',
9
+ bg: 'hsl(var(--muted))',
10
+ bd: 'hsl(var(--rule))',
11
+ },
12
+ [capability_1.CapabilityRiskTier.Medium]: {
13
+ fg: 'hsl(var(--info))',
14
+ bg: 'hsl(var(--info) / 0.07)',
15
+ bd: 'hsl(var(--info) / 0.28)',
16
+ },
17
+ [capability_1.CapabilityRiskTier.High]: {
18
+ fg: 'hsl(var(--warning))',
19
+ bg: 'hsl(var(--warning) / 0.08)',
20
+ bd: 'hsl(var(--warning) / 0.3)',
21
+ },
22
+ [capability_1.CapabilityRiskTier.Critical]: {
23
+ fg: `hsl(${DANGER})`,
24
+ bg: `hsl(${DANGER} / 0.07)`,
25
+ bd: `hsl(${DANGER} / 0.32)`,
26
+ },
27
+ };
28
+ //# sourceMappingURL=risk-accent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk-accent.js","sourceRoot":"","sources":["../../../src/session-kit/approvals/risk-accent.ts"],"names":[],"mappings":";;;AAYA,oEAAyE;AAWzE,MAAM,MAAM,GAAG,mCAAmC,CAAC;AAEtC,QAAA,WAAW,GAA2C;IACjE,CAAC,+BAAkB,CAAC,GAAG,CAAC,EAAE;QACxB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,kBAAkB;KACvB;IACD,CAAC,+BAAkB,CAAC,MAAM,CAAC,EAAE;QAC3B,EAAE,EAAE,kBAAkB;QACtB,EAAE,EAAE,yBAAyB;QAC7B,EAAE,EAAE,yBAAyB;KAC9B;IACD,CAAC,+BAAkB,CAAC,IAAI,CAAC,EAAE;QACzB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,4BAA4B;QAChC,EAAE,EAAE,2BAA2B;KAChC;IACD,CAAC,+BAAkB,CAAC,QAAQ,CAAC,EAAE;QAC7B,EAAE,EAAE,OAAO,MAAM,GAAG;QACpB,EAAE,EAAE,OAAO,MAAM,UAAU;QAC3B,EAAE,EAAE,OAAO,MAAM,UAAU;KAC5B;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare enum ScopeIcon {
3
+ Database = "database",
4
+ Layers = "layers",
5
+ Alert = "alert",
6
+ Send = "send",
7
+ Globe = "globe",
8
+ ArrowRight = "arrow-right",
9
+ FileEdit = "file-edit"
10
+ }
11
+ export type ScopeIconRenderer = (key: ScopeIcon, size: number) => ReactNode;
12
+ //# sourceMappingURL=scope-icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-icons.d.ts","sourceRoot":"","sources":["../../../src/session-kit/approvals/scope-icons.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,oBAAY,SAAS;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScopeIcon = void 0;
4
+ var ScopeIcon;
5
+ (function (ScopeIcon) {
6
+ ScopeIcon["Database"] = "database";
7
+ ScopeIcon["Layers"] = "layers";
8
+ ScopeIcon["Alert"] = "alert";
9
+ ScopeIcon["Send"] = "send";
10
+ ScopeIcon["Globe"] = "globe";
11
+ ScopeIcon["ArrowRight"] = "arrow-right";
12
+ ScopeIcon["FileEdit"] = "file-edit";
13
+ })(ScopeIcon || (exports.ScopeIcon = ScopeIcon = {}));
14
+ //# sourceMappingURL=scope-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-icons.js","sourceRoot":"","sources":["../../../src/session-kit/approvals/scope-icons.ts"],"names":[],"mappings":";;;AAQA,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;AACxB,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB"}
@@ -0,0 +1,46 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ export interface ComboboxItem<V extends string> {
3
+ readonly value: V;
4
+ readonly label: string;
5
+ readonly hint?: string;
6
+ readonly icon?: ReactNode;
7
+ readonly kind?: string;
8
+ readonly mono?: boolean;
9
+ }
10
+ export interface ComboboxTriggerState<V extends string> {
11
+ readonly open: boolean;
12
+ readonly selected: ComboboxItem<V> | undefined;
13
+ readonly toggle: () => void;
14
+ }
15
+ export type ComboboxTrigger<V extends string> = (state: ComboboxTriggerState<V>) => ReactNode;
16
+ export interface ComboboxIcons {
17
+ readonly search?: ReactNode;
18
+ readonly check?: ReactNode;
19
+ readonly multiCheck?: ReactNode;
20
+ }
21
+ export type ComboboxAlign = 'left' | 'right';
22
+ interface ComboboxBaseProps<V extends string> {
23
+ readonly items: ReadonlyArray<ComboboxItem<V>>;
24
+ readonly trigger: ComboboxTrigger<V>;
25
+ readonly icons?: ComboboxIcons;
26
+ readonly placeholder?: string;
27
+ readonly searchThreshold?: number;
28
+ readonly align?: ComboboxAlign;
29
+ readonly up?: boolean;
30
+ readonly width?: number;
31
+ readonly footer?: ReactNode;
32
+ }
33
+ interface ComboboxSingleProps<V extends string> extends ComboboxBaseProps<V> {
34
+ readonly multi?: false;
35
+ readonly value: V | undefined;
36
+ readonly onChange: (value: V) => void;
37
+ }
38
+ interface ComboboxMultiProps<V extends string> extends ComboboxBaseProps<V> {
39
+ readonly multi: true;
40
+ readonly value: ReadonlyArray<V>;
41
+ readonly onChange: (value: V) => void;
42
+ }
43
+ export type ComboboxProps<V extends string> = ComboboxSingleProps<V> | ComboboxMultiProps<V>;
44
+ export declare function Combobox<V extends string>(props: ComboboxProps<V>): ReactElement;
45
+ export {};
46
+ //# sourceMappingURL=Combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/session-kit/combobox/Combobox.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAE1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAOD,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM;IACpD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAE/C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,CAC9C,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAC3B,SAAS,CAAC;AAGf,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAE5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAE3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7C,UAAU,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAC1C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAE/B,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,UAAU,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACvC;AAED,UAAU,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IACtC,mBAAmB,CAAC,CAAC,CAAC,GACtB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAY1B,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAwNhF"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Combobox = Combobox;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const use_click_outside_1 = require("./use-click-outside");
7
+ const POP_STYLE = {
8
+ position: 'absolute',
9
+ zIndex: 60,
10
+ borderRadius: 11,
11
+ background: 'hsl(var(--paper-elev))',
12
+ border: '1px solid hsl(var(--rule-2))',
13
+ boxShadow: 'var(--shadow-28, var(--shadow-pop))',
14
+ overflow: 'hidden',
15
+ };
16
+ function Combobox(props) {
17
+ const { items, trigger, icons, placeholder = 'Search…', searchThreshold = 7, align = 'left', up = false, width = 240, footer, } = props;
18
+ const [open, setOpen] = (0, react_1.useState)(false);
19
+ const [query, setQuery] = (0, react_1.useState)('');
20
+ const ref = (0, use_click_outside_1.useClickOutside)(() => {
21
+ setOpen(false);
22
+ setQuery('');
23
+ });
24
+ const searchRef = (0, react_1.useRef)(null);
25
+ const showSearch = items.length > searchThreshold;
26
+ (0, react_1.useEffect)(() => {
27
+ if (open && showSearch)
28
+ searchRef.current?.focus();
29
+ }, [open, showSearch]);
30
+ const filtered = query
31
+ ? items.filter((it) => `${it.label} ${it.hint ?? ''}`.toLowerCase().includes(query.toLowerCase()))
32
+ : items;
33
+ const isOn = (value) => props.multi ? props.value.includes(value) : props.value === value;
34
+ const selected = props.multi
35
+ ? undefined
36
+ : items.find((it) => it.value === props.value);
37
+ function pick(value) {
38
+ props.onChange(value);
39
+ if (!props.multi) {
40
+ setOpen(false);
41
+ setQuery('');
42
+ }
43
+ }
44
+ const pos = up
45
+ ? { bottom: 'calc(100% + 6px)' }
46
+ : { top: 'calc(100% + 6px)' };
47
+ return ((0, jsx_runtime_1.jsxs)("div", { ref: ref, style: { position: 'relative', display: 'inline-flex', flexShrink: 0 }, children: [trigger({ open, selected, toggle: () => setOpen((o) => !o) }), open && ((0, jsx_runtime_1.jsxs)("div", { style: { ...POP_STYLE, ...pos, [align]: 0, width }, children: [showSearch && ((0, jsx_runtime_1.jsxs)("div", { style: {
48
+ display: 'flex',
49
+ alignItems: 'center',
50
+ gap: 7,
51
+ padding: '9px 11px',
52
+ borderBottom: '1px solid hsl(var(--rule))',
53
+ }, children: [icons?.search && ((0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex', color: 'hsl(var(--ink-3))' }, children: icons.search })), (0, jsx_runtime_1.jsx)("input", { ref: searchRef, value: query, onChange: (e) => setQuery(e.target.value), placeholder: placeholder, style: {
54
+ flex: 1,
55
+ border: 'none',
56
+ outline: 'none',
57
+ background: 'transparent',
58
+ fontSize: 13,
59
+ color: 'hsl(var(--ink))',
60
+ } }), items.length > 0 && ((0, jsx_runtime_1.jsxs)("span", { className: "mono", style: { fontSize: 10, color: 'hsl(var(--ink-4))' }, children: [filtered.length, "/", items.length] }))] })), (0, jsx_runtime_1.jsxs)("div", { style: { maxHeight: 240, overflowY: 'auto', padding: 5 }, children: [filtered.map((it) => {
61
+ const on = isOn(it.value);
62
+ const singleSelected = on && !props.multi;
63
+ return ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => pick(it.value), style: {
64
+ display: 'flex',
65
+ alignItems: 'center',
66
+ gap: 9,
67
+ width: '100%',
68
+ padding: '7px 9px',
69
+ borderRadius: 7,
70
+ textAlign: 'left',
71
+ background: singleSelected ? 'hsl(var(--accent) / 0.6)' : 'transparent',
72
+ transition: 'background 140ms ease',
73
+ }, onMouseEnter: (e) => {
74
+ if (!singleSelected) {
75
+ e.currentTarget.style.background = 'hsl(var(--paper-sunk))';
76
+ }
77
+ }, onMouseLeave: (e) => {
78
+ if (!singleSelected) {
79
+ e.currentTarget.style.background = 'transparent';
80
+ }
81
+ }, children: [it.icon && ((0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex', color: 'hsl(var(--ink-3))', flexShrink: 0 }, children: it.icon })), (0, jsx_runtime_1.jsxs)("span", { style: { flex: 1, minWidth: 0 }, children: [(0, jsx_runtime_1.jsx)("span", { className: it.mono ? 'mono' : '', style: {
82
+ display: 'block',
83
+ fontSize: it.mono ? 12 : 12.5,
84
+ color: 'hsl(var(--ink))',
85
+ overflow: 'hidden',
86
+ textOverflow: 'ellipsis',
87
+ whiteSpace: 'nowrap',
88
+ }, children: it.label }), it.hint && ((0, jsx_runtime_1.jsx)("span", { style: {
89
+ display: 'block',
90
+ fontSize: 10.5,
91
+ color: 'hsl(var(--ink-4))',
92
+ overflow: 'hidden',
93
+ textOverflow: 'ellipsis',
94
+ whiteSpace: 'nowrap',
95
+ }, children: it.hint }))] }), it.kind && ((0, jsx_runtime_1.jsx)("span", { className: "cap", style: { fontSize: 8.5, flexShrink: 0 }, children: it.kind })), props.multi ? ((0, jsx_runtime_1.jsx)("span", { style: {
96
+ width: 17,
97
+ height: 17,
98
+ borderRadius: 5,
99
+ flexShrink: 0,
100
+ display: 'grid',
101
+ placeItems: 'center',
102
+ background: on ? 'hsl(var(--primary))' : 'transparent',
103
+ border: on ? 'none' : '1.5px solid hsl(var(--rule-2))',
104
+ color: '#fff',
105
+ }, children: on && icons?.multiCheck })) : (on && ((0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex', color: 'hsl(var(--primary))', flexShrink: 0 }, children: icons?.check })))] }, it.value));
106
+ }), filtered.length === 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
107
+ padding: '18px 0',
108
+ textAlign: 'center',
109
+ fontSize: 12,
110
+ color: 'hsl(var(--ink-4))',
111
+ }, children: "No matches" }))] }), footer && ((0, jsx_runtime_1.jsx)("div", { style: { borderTop: '1px solid hsl(var(--rule))', padding: 6 }, children: footer }))] }))] }));
112
+ }
113
+ //# sourceMappingURL=Combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../src/session-kit/combobox/Combobox.tsx"],"names":[],"mappings":";;AA8GA,4BAwNC;;AAnTD,iCAOe;AAEf,2DAAsD;AAwEtD,MAAM,SAAS,GAAkB;IAC/B,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,wBAAwB;IACpC,MAAM,EAAE,8BAA8B;IACtC,SAAS,EAAE,qCAAqC;IAChD,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,SAAgB,QAAQ,CAAmB,KAAuB;IAChE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,WAAW,GAAG,SAAS,EACvB,eAAe,GAAG,CAAC,EACnB,KAAK,GAAG,MAAM,EACd,EAAE,GAAG,KAAK,EACV,KAAK,GAAG,GAAG,EACX,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAA,mCAAe,EAAiB,GAAG,EAAE;QAC/C,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC;IAIlD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,UAAU;YAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACrD,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAClB,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC3E;QACH,CAAC,CAAC,KAAK,CAAC;IAEV,MAAM,IAAI,GAAG,CAAC,KAAQ,EAAW,EAAE,CACjC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;IAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjD,SAAS,IAAI,CAAC,KAAQ;QACpB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAkB,EAAE;QAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE;QAChC,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;IAEhC,OAAO,CACL,iCACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,aAErE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7D,IAAI,IAAI,CACP,iCAAK,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aACpD,UAAU,IAAI,CACb,iCACE,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,QAAQ;4BACpB,GAAG,EAAE,CAAC;4BACN,OAAO,EAAE,UAAU;4BACnB,YAAY,EAAE,4BAA4B;yBAC3C,aAEA,KAAK,EAAE,MAAM,IAAI,CAChB,iCAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAChE,KAAK,CAAC,MAAM,GACR,CACR,EACD,kCACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE;oCACL,IAAI,EAAE,CAAC;oCACP,MAAM,EAAE,MAAM;oCACd,OAAO,EAAE,MAAM;oCACf,UAAU,EAAE,aAAa;oCACzB,QAAQ,EAAE,EAAE;oCACZ,KAAK,EAAE,iBAAiB;iCACzB,GACD,EACD,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,kCAAM,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,aACvE,QAAQ,CAAC,MAAM,OAAG,KAAK,CAAC,MAAM,IAC1B,CACR,IACG,CACP,EACD,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,aAC1D,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gCACnB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gCAC1B,MAAM,cAAc,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gCAC1C,OAAO,CACL,oCACE,IAAI,EAAC,QAAQ,EAEb,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAC7B,KAAK,EAAE;wCACL,OAAO,EAAE,MAAM;wCACf,UAAU,EAAE,QAAQ;wCACpB,GAAG,EAAE,CAAC;wCACN,KAAK,EAAE,MAAM;wCACb,OAAO,EAAE,SAAS;wCAClB,YAAY,EAAE,CAAC;wCACf,SAAS,EAAE,MAAM;wCACjB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa;wCACvE,UAAU,EAAE,uBAAuB;qCACpC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;wCAClB,IAAI,CAAC,cAAc,EAAE,CAAC;4CACpB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,wBAAwB,CAAC;wCAC9D,CAAC;oCACH,CAAC,EACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;wCAClB,IAAI,CAAC,cAAc,EAAE,CAAC;4CACpB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;wCACnD,CAAC;oCACH,CAAC,aAEA,EAAE,CAAC,IAAI,IAAI,CACV,iCAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,YAC/E,EAAE,CAAC,IAAI,GACH,CACR,EACD,kCAAM,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aACnC,iCACE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAChC,KAAK,EAAE;wDACL,OAAO,EAAE,OAAO;wDAChB,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;wDAC7B,KAAK,EAAE,iBAAiB;wDACxB,QAAQ,EAAE,QAAQ;wDAClB,YAAY,EAAE,UAAU;wDACxB,UAAU,EAAE,QAAQ;qDACrB,YAEA,EAAE,CAAC,KAAK,GACJ,EACN,EAAE,CAAC,IAAI,IAAI,CACV,iCACE,KAAK,EAAE;wDACL,OAAO,EAAE,OAAO;wDAChB,QAAQ,EAAE,IAAI;wDACd,KAAK,EAAE,mBAAmB;wDAC1B,QAAQ,EAAE,QAAQ;wDAClB,YAAY,EAAE,UAAU;wDACxB,UAAU,EAAE,QAAQ;qDACrB,YAEA,EAAE,CAAC,IAAI,GACH,CACR,IACI,EACN,EAAE,CAAC,IAAI,IAAI,CACV,iCAAM,SAAS,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,YAC1D,EAAE,CAAC,IAAI,GACH,CACR,EACA,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,iCACE,KAAK,EAAE;gDACL,KAAK,EAAE,EAAE;gDACT,MAAM,EAAE,EAAE;gDACV,YAAY,EAAE,CAAC;gDACf,UAAU,EAAE,CAAC;gDACb,OAAO,EAAE,MAAM;gDACf,UAAU,EAAE,QAAQ;gDACpB,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa;gDACtD,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC;gDACtD,KAAK,EAAE,MAAM;6CACd,YAEA,EAAE,IAAI,KAAK,EAAE,UAAU,GACnB,CACR,CAAC,CAAC,CAAC,CACF,EAAE,IAAI,CACJ,iCAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,EAAE,YACjF,KAAK,EAAE,KAAK,GACR,CACR,CACF,KArFI,EAAE,CAAC,KAAK,CAsFN,CACV,CAAC;4BACJ,CAAC,CAAC,EACD,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CACxB,gCACE,KAAK,EAAE;oCACL,OAAO,EAAE,QAAQ;oCACjB,SAAS,EAAE,QAAQ;oCACnB,QAAQ,EAAE,EAAE;oCACZ,KAAK,EAAE,mBAAmB;iCAC3B,2BAGG,CACP,IACG,EACL,MAAM,IAAI,CACT,gCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC,EAAE,YAChE,MAAM,GACH,CACP,IACG,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type RefObject } from 'react';
2
+ export declare function useClickOutside<T extends HTMLElement>(onClose: () => void): RefObject<T>;
3
+ //# sourceMappingURL=use-click-outside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-click-outside.d.ts","sourceRoot":"","sources":["../../../src/session-kit/combobox/use-click-outside.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EACnD,OAAO,EAAE,MAAM,IAAI,GAClB,SAAS,CAAC,CAAC,CAAC,CAYd"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useClickOutside = useClickOutside;
4
+ const react_1 = require("react");
5
+ function useClickOutside(onClose) {
6
+ const ref = (0, react_1.useRef)(null);
7
+ (0, react_1.useEffect)(() => {
8
+ function handle(event) {
9
+ if (ref.current && !ref.current.contains(event.target)) {
10
+ onClose();
11
+ }
12
+ }
13
+ document.addEventListener('mousedown', handle);
14
+ return () => document.removeEventListener('mousedown', handle);
15
+ }, [onClose]);
16
+ return ref;
17
+ }
18
+ //# sourceMappingURL=use-click-outside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-click-outside.js","sourceRoot":"","sources":["../../../src/session-kit/combobox/use-click-outside.ts"],"names":[],"mappings":";;AAMA,0CAcC;AAhBD,iCAA0D;AAE1D,SAAgB,eAAe,CAC7B,OAAmB;IAEnB,MAAM,GAAG,GAAG,IAAA,cAAM,EAAI,IAAI,CAAC,CAAC;IAC5B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,SAAS,MAAM,CAAC,KAAiB;YAC/B,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type TokenCounts } from './TokenMeter';
2
+ import { SessionSkin } from '../lib/enums';
3
+ import type { CSSProperties, ReactElement, ReactNode } from 'react';
4
+ export interface ContextHeaderSession {
5
+ readonly agent: string;
6
+ readonly model: string;
7
+ readonly environment: string;
8
+ readonly audience: string;
9
+ readonly tokens: TokenCounts;
10
+ readonly cost: number;
11
+ }
12
+ export interface ContextHeaderIcons {
13
+ readonly agent?: ReactNode;
14
+ readonly model?: ReactNode;
15
+ readonly environment?: ReactNode;
16
+ readonly audience?: ReactNode;
17
+ }
18
+ export interface ContextHeaderProps {
19
+ readonly session: ContextHeaderSession;
20
+ readonly icons?: ContextHeaderIcons;
21
+ readonly skin?: SessionSkin;
22
+ readonly defaultAudience?: string;
23
+ readonly productionEnvironment?: string;
24
+ readonly style?: CSSProperties;
25
+ }
26
+ export declare function ContextHeader({ session, icons, skin, defaultAudience, productionEnvironment, style, }: ContextHeaderProps): ReactElement;
27
+ //# sourceMappingURL=ContextHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextHeader.d.ts","sourceRoot":"","sources":["../../../src/session-kit/display/ContextHeader.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAK5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAIlC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AA2DD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,IAA0B,EAC1B,eAAgC,EAChC,qBAAoC,EACpC,KAAK,GACN,EAAE,kBAAkB,GAAG,YAAY,CAuCnC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextHeader = ContextHeader;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const TokenMeter_1 = require("./TokenMeter");
6
+ const enums_1 = require("../lib/enums");
7
+ function MetaDot() {
8
+ return ((0, jsx_runtime_1.jsx)("span", { style: {
9
+ width: 3,
10
+ height: 3,
11
+ borderRadius: '50%',
12
+ background: 'hsl(var(--ink-4) / 0.6)',
13
+ } }));
14
+ }
15
+ function Meta({ icon, label, mono, tone = 'default', }) {
16
+ const color = tone === 'warn'
17
+ ? 'hsl(var(--warning))'
18
+ : tone === 'strong'
19
+ ? 'hsl(var(--ink))'
20
+ : 'hsl(var(--ink-3))';
21
+ return ((0, jsx_runtime_1.jsxs)("span", { style: {
22
+ display: 'inline-flex',
23
+ alignItems: 'center',
24
+ gap: 5,
25
+ color,
26
+ fontSize: 12,
27
+ fontWeight: tone === 'strong' ? 600 : 450,
28
+ whiteSpace: 'nowrap',
29
+ }, children: [icon && ((0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex', opacity: 0.8 }, children: icon })), (0, jsx_runtime_1.jsx)("span", { className: mono ? 'mono' : '', style: { fontSize: mono ? 11.5 : 12, whiteSpace: 'nowrap' }, children: label })] }));
30
+ }
31
+ function ContextHeader({ session, icons, skin = enums_1.SessionSkin.Minimal, defaultAudience = 'internal-org', productionEnvironment = 'production', style, }) {
32
+ const showAudience = session.audience !== defaultAudience;
33
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
34
+ display: 'flex',
35
+ alignItems: 'center',
36
+ gap: 10,
37
+ flexWrap: 'wrap',
38
+ padding: '8px 14px',
39
+ borderBottom: '1px solid hsl(var(--rule))',
40
+ background: skin === enums_1.SessionSkin.Functional
41
+ ? 'hsl(var(--paper-elev))'
42
+ : 'hsl(var(--paper) / 0.6)',
43
+ backdropFilter: 'blur(6px)',
44
+ ...style,
45
+ }, children: [(0, jsx_runtime_1.jsx)(Meta, { icon: icons?.agent, label: session.agent, tone: "strong" }), (0, jsx_runtime_1.jsx)(MetaDot, {}), (0, jsx_runtime_1.jsx)(Meta, { icon: icons?.model, label: session.model, mono: true }), (0, jsx_runtime_1.jsx)(MetaDot, {}), (0, jsx_runtime_1.jsx)(Meta, { icon: icons?.environment, label: session.environment, mono: true, tone: session.environment === productionEnvironment ? 'warn' : 'default' }), showAudience && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MetaDot, {}), (0, jsx_runtime_1.jsx)(Meta, { icon: icons?.audience, label: session.audience, mono: true, tone: "warn" })] })), (0, jsx_runtime_1.jsx)("div", { style: { flex: 1 } }), (0, jsx_runtime_1.jsx)(TokenMeter_1.TokenMeter, { tokens: session.tokens, cost: session.cost, skin: skin })] }));
46
+ }
47
+ //# sourceMappingURL=ContextHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextHeader.js","sourceRoot":"","sources":["../../../src/session-kit/display/ContextHeader.tsx"],"names":[],"mappings":";;AAqGA,sCA8CC;;AA9ID,6CAA4D;AAC5D,wCAA2C;AAsC3C,SAAS,OAAO;IACd,OAAO,CACL,iCACE,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,yBAAyB;SACtC,GACD,CACH,CAAC;AACJ,CAAC;AAID,SAAS,IAAI,CAAC,EACZ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,GAAG,SAAS,GAMjB;IACC,MAAM,KAAK,GACT,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,mBAAmB,CAAC;IAC5B,OAAO,CACL,kCACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;YACN,KAAK;YACL,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACzC,UAAU,EAAE,QAAQ;SACrB,aAEA,IAAI,IAAI,CACP,iCAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,YAAG,IAAI,GAAQ,CACrE,EACD,iCACE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAE1D,KAAK,GACD,IACF,CACR,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,IAAI,GAAG,mBAAW,CAAC,OAAO,EAC1B,eAAe,GAAG,cAAc,EAChC,qBAAqB,GAAG,YAAY,EACpC,KAAK,GACc;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,KAAK,eAAe,CAAC;IAC1D,OAAO,CACL,iCACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,4BAA4B;YAC1C,UAAU,EACR,IAAI,KAAK,mBAAW,CAAC,UAAU;gBAC7B,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,yBAAyB;YAC/B,cAAc,EAAE,WAAW;YAC3B,GAAG,KAAK;SACT,aAED,uBAAC,IAAI,IAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAC,QAAQ,GAAG,EAChE,uBAAC,OAAO,KAAG,EACX,uBAAC,IAAI,IAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,SAAG,EACvD,uBAAC,OAAO,KAAG,EACX,uBAAC,IAAI,IACH,IAAI,EAAE,KAAK,EAAE,WAAW,EACxB,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,IAAI,QACJ,IAAI,EAAE,OAAO,CAAC,WAAW,KAAK,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxE,EACD,YAAY,IAAI,CACf,6DACE,uBAAC,OAAO,KAAG,EACX,uBAAC,IAAI,IAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,QAAC,IAAI,EAAC,MAAM,GAAG,IACxE,CACJ,EACD,gCAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,EAC3B,uBAAC,uBAAU,IAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,IAClE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import { SessionSkin } from '../lib/enums';
3
+ export type DiffLine = string;
4
+ export interface DiffFile {
5
+ readonly path: string;
6
+ readonly add: number;
7
+ readonly del: number;
8
+ readonly hunks?: ReadonlyArray<DiffLine>;
9
+ }
10
+ export interface FileDiffCardProps {
11
+ readonly file: DiffFile;
12
+ readonly skin?: SessionSkin;
13
+ readonly collapsedIcon?: ReactNode;
14
+ readonly expandedIcon?: ReactNode;
15
+ readonly fileIcon?: ReactNode;
16
+ }
17
+ export declare function FileDiffCard({ file, skin, collapsedIcon, expandedIcon, fileIcon, }: FileDiffCardProps): ReactElement;
18
+ //# sourceMappingURL=FileDiffCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDiffCard.d.ts","sourceRoot":"","sources":["../../../src/session-kit/display/FileDiffCard.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAMD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,IAA0B,EAC1B,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,EAAE,iBAAiB,GAAG,YAAY,CAmGlC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileDiffCard = FileDiffCard;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const enums_1 = require("../lib/enums");
7
+ const DANGER_VAR = 'var(--destructive, var(--danger))';
8
+ const DANGER = `hsl(${DANGER_VAR})`;
9
+ const DANGER_SOFT = `hsl(${DANGER_VAR} / 0.06)`;
10
+ function FileDiffCard({ file, skin = enums_1.SessionSkin.Minimal, collapsedIcon, expandedIcon, fileIcon, }) {
11
+ const [open, setOpen] = (0, react_1.useState)(false);
12
+ const hasHunks = Boolean(file.hunks && file.hunks.length > 0);
13
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
14
+ marginTop: 9,
15
+ border: '1px solid hsl(var(--rule))',
16
+ borderRadius: 9,
17
+ overflow: 'hidden',
18
+ background: 'hsl(var(--paper-elev))',
19
+ }, children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => hasHunks && setOpen((v) => !v), style: {
20
+ display: 'flex',
21
+ alignItems: 'center',
22
+ gap: 9,
23
+ width: '100%',
24
+ padding: '8px 11px',
25
+ textAlign: 'left',
26
+ cursor: hasHunks ? 'pointer' : 'default',
27
+ background: skin === enums_1.SessionSkin.Functional ? 'hsl(var(--muted))' : 'transparent',
28
+ }, children: [hasHunks && (open ? expandedIcon : collapsedIcon), fileIcon && ((0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex', color: 'hsl(var(--warning))' }, children: fileIcon })), (0, jsx_runtime_1.jsx)("span", { className: "mono", style: {
29
+ fontSize: 12,
30
+ color: 'hsl(var(--ink))',
31
+ overflow: 'hidden',
32
+ textOverflow: 'ellipsis',
33
+ whiteSpace: 'nowrap',
34
+ }, children: file.path }), (0, jsx_runtime_1.jsx)("span", { style: { flex: 1 } }), (0, jsx_runtime_1.jsxs)("span", { className: "mono", style: { fontSize: 11, color: 'hsl(var(--success))' }, children: ["+", file.add] }), (0, jsx_runtime_1.jsxs)("span", { className: "mono", style: { fontSize: 11, color: DANGER }, children: ["\u2212", file.del] })] }), open && file.hunks && ((0, jsx_runtime_1.jsx)("div", { className: "mono", style: {
35
+ borderTop: '1px solid hsl(var(--rule))',
36
+ fontSize: 11.5,
37
+ lineHeight: 1.6,
38
+ overflowX: 'auto',
39
+ }, children: file.hunks.map((line, index) => {
40
+ const marker = line[0];
41
+ const text = line.slice(1);
42
+ const bg = marker === '+'
43
+ ? 'hsl(var(--success) / 0.07)'
44
+ : marker === '-'
45
+ ? DANGER_SOFT
46
+ : 'transparent';
47
+ const color = marker === '+'
48
+ ? 'hsl(var(--success))'
49
+ : marker === '-'
50
+ ? DANGER
51
+ : 'hsl(var(--ink-3))';
52
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', background: bg, padding: '0 11px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { width: 14, color, flexShrink: 0 }, children: marker === ' ' ? '' : marker }), (0, jsx_runtime_1.jsx)("span", { style: {
53
+ color: marker === ' ' ? 'hsl(var(--ink-3))' : 'hsl(var(--ink-2))',
54
+ whiteSpace: 'pre',
55
+ }, children: text })] }, index));
56
+ }) }))] }));
57
+ }
58
+ //# sourceMappingURL=FileDiffCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDiffCard.js","sourceRoot":"","sources":["../../../src/session-kit/display/FileDiffCard.tsx"],"names":[],"mappings":"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"}