@kya-os/consent 0.1.37 → 0.1.39

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 (192) hide show
  1. package/dist/bundle/index.d.ts +12 -0
  2. package/dist/bundle/index.d.ts.map +1 -1
  3. package/dist/bundle/index.js +12 -0
  4. package/dist/bundle/index.js.map +1 -1
  5. package/dist/bundle/inline.d.ts.map +1 -1
  6. package/dist/bundle/inline.js +2 -2
  7. package/dist/bundle/inline.js.map +1 -1
  8. package/dist/bundle/shell.d.ts +23 -0
  9. package/dist/bundle/shell.d.ts.map +1 -1
  10. package/dist/bundle/shell.js +25 -1
  11. package/dist/bundle/shell.js.map +1 -1
  12. package/dist/capabilities/index.d.ts +7 -0
  13. package/dist/capabilities/index.d.ts.map +1 -0
  14. package/dist/capabilities/index.js +7 -0
  15. package/dist/capabilities/index.js.map +1 -0
  16. package/dist/capabilities/registry.d.ts +29 -0
  17. package/dist/capabilities/registry.d.ts.map +1 -0
  18. package/dist/capabilities/registry.js +178 -0
  19. package/dist/capabilities/registry.js.map +1 -0
  20. package/dist/cedar/compile.d.ts +30 -0
  21. package/dist/cedar/compile.d.ts.map +1 -0
  22. package/dist/cedar/compile.js +55 -0
  23. package/dist/cedar/compile.js.map +1 -0
  24. package/dist/cedar/explain.d.ts +22 -0
  25. package/dist/cedar/explain.d.ts.map +1 -0
  26. package/dist/cedar/explain.js +72 -0
  27. package/dist/cedar/explain.js.map +1 -0
  28. package/dist/cedar/index.d.ts +8 -0
  29. package/dist/cedar/index.d.ts.map +1 -0
  30. package/dist/cedar/index.js +8 -0
  31. package/dist/cedar/index.js.map +1 -0
  32. package/dist/cjs/bundle/index.js +19 -1
  33. package/dist/cjs/bundle/index.js.map +1 -1
  34. package/dist/cjs/bundle/inline.js +2 -2
  35. package/dist/cjs/bundle/inline.js.map +1 -1
  36. package/dist/cjs/bundle/shell.js +25 -1
  37. package/dist/cjs/bundle/shell.js.map +1 -1
  38. package/dist/cjs/capabilities/index.js +12 -0
  39. package/dist/cjs/capabilities/index.js.map +1 -0
  40. package/dist/cjs/capabilities/registry.js +182 -0
  41. package/dist/cjs/capabilities/registry.js.map +1 -0
  42. package/dist/cjs/cedar/compile.js +59 -0
  43. package/dist/cjs/cedar/compile.js.map +1 -0
  44. package/dist/cjs/cedar/explain.js +75 -0
  45. package/dist/cjs/cedar/explain.js.map +1 -0
  46. package/dist/cjs/cedar/index.js +14 -0
  47. package/dist/cjs/cedar/index.js.map +1 -0
  48. package/dist/cjs/components/consent-action-bar.js +138 -0
  49. package/dist/cjs/components/consent-action-bar.js.map +1 -0
  50. package/dist/cjs/components/consent-agent-header.js +205 -0
  51. package/dist/cjs/components/consent-agent-header.js.map +1 -0
  52. package/dist/cjs/components/consent-capabilities-screen.js +309 -0
  53. package/dist/cjs/components/consent-capabilities-screen.js.map +1 -0
  54. package/dist/cjs/components/consent-capability-card.js +340 -0
  55. package/dist/cjs/components/consent-capability-card.js.map +1 -0
  56. package/dist/cjs/components/consent-footer.js +99 -0
  57. package/dist/cjs/components/consent-footer.js.map +1 -0
  58. package/dist/cjs/components/consent-revocation-notice.js +101 -0
  59. package/dist/cjs/components/consent-revocation-notice.js.map +1 -0
  60. package/dist/cjs/components/index.js +14 -1
  61. package/dist/cjs/components/index.js.map +1 -1
  62. package/dist/cjs/components/mcp-consent.js +176 -7
  63. package/dist/cjs/components/mcp-consent.js.map +1 -1
  64. package/dist/cjs/copy/index.js +12 -0
  65. package/dist/cjs/copy/index.js.map +1 -0
  66. package/dist/cjs/copy/tokens.js +101 -0
  67. package/dist/cjs/copy/tokens.js.map +1 -0
  68. package/dist/cjs/index.js +8 -0
  69. package/dist/cjs/index.js.map +1 -1
  70. package/dist/cjs/mcp-app/index.js +15 -0
  71. package/dist/cjs/mcp-app/index.js.map +1 -0
  72. package/dist/cjs/mcp-app/inline.js +20 -0
  73. package/dist/cjs/mcp-app/inline.js.map +1 -0
  74. package/dist/cjs/mcp-app/types.js +10 -0
  75. package/dist/cjs/mcp-app/types.js.map +1 -0
  76. package/dist/cjs/popup/index.js +15 -0
  77. package/dist/cjs/popup/index.js.map +1 -0
  78. package/dist/cjs/popup/launcher.js +77 -0
  79. package/dist/cjs/popup/launcher.js.map +1 -0
  80. package/dist/cjs/schemas/capabilities.schemas.js +129 -0
  81. package/dist/cjs/schemas/capabilities.schemas.js.map +1 -0
  82. package/dist/cjs/schemas/config.schemas.js +18 -0
  83. package/dist/cjs/schemas/config.schemas.js.map +1 -1
  84. package/dist/cjs/schemas/index.js +1 -0
  85. package/dist/cjs/schemas/index.js.map +1 -1
  86. package/dist/cjs/styles/index.js +1 -0
  87. package/dist/cjs/styles/index.js.map +1 -1
  88. package/dist/cjs/styles/theme.js +86 -0
  89. package/dist/cjs/styles/theme.js.map +1 -0
  90. package/dist/cjs/types/capabilities.types.js +12 -0
  91. package/dist/cjs/types/capabilities.types.js.map +1 -0
  92. package/dist/cjs/types/index.js +1 -0
  93. package/dist/cjs/types/index.js.map +1 -1
  94. package/dist/components/consent-action-bar.d.ts +30 -0
  95. package/dist/components/consent-action-bar.d.ts.map +1 -0
  96. package/dist/components/consent-action-bar.js +135 -0
  97. package/dist/components/consent-action-bar.js.map +1 -0
  98. package/dist/components/consent-agent-header.d.ts +31 -0
  99. package/dist/components/consent-agent-header.d.ts.map +1 -0
  100. package/dist/components/consent-agent-header.js +202 -0
  101. package/dist/components/consent-agent-header.js.map +1 -0
  102. package/dist/components/consent-capabilities-screen.d.ts +62 -0
  103. package/dist/components/consent-capabilities-screen.d.ts.map +1 -0
  104. package/dist/components/consent-capabilities-screen.js +306 -0
  105. package/dist/components/consent-capabilities-screen.js.map +1 -0
  106. package/dist/components/consent-capability-card.d.ts +44 -0
  107. package/dist/components/consent-capability-card.d.ts.map +1 -0
  108. package/dist/components/consent-capability-card.js +337 -0
  109. package/dist/components/consent-capability-card.js.map +1 -0
  110. package/dist/components/consent-footer.d.ts +22 -0
  111. package/dist/components/consent-footer.d.ts.map +1 -0
  112. package/dist/components/consent-footer.js +96 -0
  113. package/dist/components/consent-footer.js.map +1 -0
  114. package/dist/components/consent-revocation-notice.d.ts +22 -0
  115. package/dist/components/consent-revocation-notice.d.ts.map +1 -0
  116. package/dist/components/consent-revocation-notice.js +98 -0
  117. package/dist/components/consent-revocation-notice.js.map +1 -0
  118. package/dist/components/index.d.ts +6 -0
  119. package/dist/components/index.d.ts.map +1 -1
  120. package/dist/components/index.js +7 -0
  121. package/dist/components/index.js.map +1 -1
  122. package/dist/components/mcp-consent.d.ts +41 -0
  123. package/dist/components/mcp-consent.d.ts.map +1 -1
  124. package/dist/components/mcp-consent.js +176 -7
  125. package/dist/components/mcp-consent.js.map +1 -1
  126. package/dist/consent.js +1578 -210
  127. package/dist/consent.min.js +727 -96
  128. package/dist/copy/index.d.ts +8 -0
  129. package/dist/copy/index.d.ts.map +1 -0
  130. package/dist/copy/index.js +7 -0
  131. package/dist/copy/index.js.map +1 -0
  132. package/dist/copy/tokens.d.ts +93 -0
  133. package/dist/copy/tokens.d.ts.map +1 -0
  134. package/dist/copy/tokens.js +97 -0
  135. package/dist/copy/tokens.js.map +1 -0
  136. package/dist/index.d.ts +4 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +8 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/mcp-app/index.d.ts +10 -0
  141. package/dist/mcp-app/index.d.ts.map +1 -0
  142. package/dist/mcp-app/index.js +9 -0
  143. package/dist/mcp-app/index.js.map +1 -0
  144. package/dist/mcp-app/inline.d.ts +16 -0
  145. package/dist/mcp-app/inline.d.ts.map +1 -0
  146. package/dist/mcp-app/inline.js +16 -0
  147. package/dist/mcp-app/inline.js.map +1 -0
  148. package/dist/mcp-app/types.d.ts +33 -0
  149. package/dist/mcp-app/types.d.ts.map +1 -0
  150. package/dist/mcp-app/types.js +8 -0
  151. package/dist/mcp-app/types.js.map +1 -0
  152. package/dist/popup/index.d.ts +8 -0
  153. package/dist/popup/index.d.ts.map +1 -0
  154. package/dist/popup/index.js +7 -0
  155. package/dist/popup/index.js.map +1 -0
  156. package/dist/popup/launcher.d.ts +81 -0
  157. package/dist/popup/launcher.d.ts.map +1 -0
  158. package/dist/popup/launcher.js +71 -0
  159. package/dist/popup/launcher.js.map +1 -0
  160. package/dist/schemas/api.schemas.d.ts +234 -30
  161. package/dist/schemas/api.schemas.d.ts.map +1 -1
  162. package/dist/schemas/capabilities.schemas.d.ts +186 -0
  163. package/dist/schemas/capabilities.schemas.d.ts.map +1 -0
  164. package/dist/schemas/capabilities.schemas.js +123 -0
  165. package/dist/schemas/capabilities.schemas.js.map +1 -0
  166. package/dist/schemas/config.schemas.d.ts +332 -36
  167. package/dist/schemas/config.schemas.d.ts.map +1 -1
  168. package/dist/schemas/config.schemas.js +18 -0
  169. package/dist/schemas/config.schemas.js.map +1 -1
  170. package/dist/schemas/index.d.ts +1 -0
  171. package/dist/schemas/index.d.ts.map +1 -1
  172. package/dist/schemas/index.js +1 -0
  173. package/dist/schemas/index.js.map +1 -1
  174. package/dist/styles/index.d.ts +1 -0
  175. package/dist/styles/index.d.ts.map +1 -1
  176. package/dist/styles/index.js +1 -0
  177. package/dist/styles/index.js.map +1 -1
  178. package/dist/styles/theme.d.ts +72 -0
  179. package/dist/styles/theme.d.ts.map +1 -0
  180. package/dist/styles/theme.js +81 -0
  181. package/dist/styles/theme.js.map +1 -0
  182. package/dist/types/capabilities.types.d.ts +126 -0
  183. package/dist/types/capabilities.types.d.ts.map +1 -0
  184. package/dist/types/capabilities.types.js +11 -0
  185. package/dist/types/capabilities.types.js.map +1 -0
  186. package/dist/types/config.types.d.ts +33 -0
  187. package/dist/types/config.types.d.ts.map +1 -1
  188. package/dist/types/index.d.ts +1 -0
  189. package/dist/types/index.d.ts.map +1 -1
  190. package/dist/types/index.js +1 -0
  191. package/dist/types/index.js.map +1 -1
  192. package/package.json +15 -8
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Consent Capability Card
3
+ *
4
+ * Renders a single capability row in the new humanized consent layout.
5
+ * Shows: square checkbox + icon tile + bold label inline with description +
6
+ * optional amber HIGHER RISK chip + small "View policy" disclosure.
7
+ *
8
+ * Emits a `capability-toggle` CustomEvent with `{ id, checked }` whenever the
9
+ * checkbox state changes; the parent (`<mcp-consent>`) tracks selection.
10
+ *
11
+ * @module components/consent-capability-card
12
+ */
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ import { LitElement, html, css, nothing } from "lit";
20
+ import { customElement, property, state } from "lit/decorators.js";
21
+ import { CONSENT_COPY_TOKENS } from "../copy/tokens.js";
22
+ import { explainCedarFragment } from "../cedar/explain.js";
23
+ let ConsentCapabilityCard = class ConsentCapabilityCard extends LitElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.capabilityId = "";
27
+ this.label = "";
28
+ this.description = "";
29
+ this.icon = "neutral";
30
+ this.riskLevel = "low";
31
+ this.checked = false;
32
+ this.compiledCedar = "";
33
+ this.policyOpen = false;
34
+ }
35
+ toggleChecked() {
36
+ this.checked = !this.checked;
37
+ const detail = {
38
+ id: this.capabilityId,
39
+ checked: this.checked,
40
+ };
41
+ this.dispatchEvent(new CustomEvent("capability-toggle", {
42
+ detail,
43
+ bubbles: true,
44
+ composed: true,
45
+ }));
46
+ }
47
+ togglePolicy() {
48
+ this.policyOpen = !this.policyOpen;
49
+ }
50
+ isHigherRisk() {
51
+ return this.riskLevel === "high" || this.riskLevel === "critical";
52
+ }
53
+ renderIcon() {
54
+ return iconSvgFor(this.icon);
55
+ }
56
+ renderPolicy() {
57
+ if (!this.policyOpen)
58
+ return nothing;
59
+ if (!this.compiledCedar)
60
+ return nothing;
61
+ const explanation = explainCedarFragment(this.compiledCedar);
62
+ const tokens = CONSENT_COPY_TOKENS.capabilityRow;
63
+ return html `
64
+ <div class="policy-disclosure" part="policy">
65
+ <h4>${tokens.glossTitle}</h4>
66
+ <ul>
67
+ ${explanation.actions.length === 0
68
+ ? html `<li>—</li>`
69
+ : explanation.actions.map((action) => html `<li><code>${action}</code></li>`)}
70
+ </ul>
71
+ ${explanation.resource
72
+ ? html `<p>
73
+ On <code>${explanation.resource}</code>
74
+ </p>`
75
+ : html `<p>On ${tokens.glossUnknownResource}</p>`}
76
+ <h4>${tokens.rawPolicyTitle}</h4>
77
+ <pre><code>${this.compiledCedar}</code></pre>
78
+ </div>
79
+ `;
80
+ }
81
+ render() {
82
+ const tokens = CONSENT_COPY_TOKENS.capabilityRow;
83
+ return html `
84
+ <div class="row" part="row">
85
+ <button
86
+ class="checkbox"
87
+ part="checkbox"
88
+ role="checkbox"
89
+ aria-checked="${String(this.checked)}"
90
+ aria-label="${this.label}"
91
+ @click=${this.toggleChecked}
92
+ type="button"
93
+ >
94
+ ${this.checked ? html `<span class="check-mark">✓</span>` : nothing}
95
+ </button>
96
+ <div class="icon-tile" aria-hidden="true">${this.renderIcon()}</div>
97
+ <div class="body">
98
+ <div class="row-label">
99
+ <span><strong>${this.label}</strong> <span class="description">${this.description}</span></span>
100
+ ${this.isHigherRisk()
101
+ ? html `<span class="risk-chip">${tokens.higherRiskChip}</span>`
102
+ : nothing}
103
+ </div>
104
+ <button
105
+ class="policy-toggle"
106
+ type="button"
107
+ @click=${this.togglePolicy}
108
+ aria-expanded="${String(this.policyOpen)}"
109
+ >
110
+ ${tokens.viewPolicyLink}
111
+ </button>
112
+ ${this.renderPolicy()}
113
+ </div>
114
+ </div>
115
+ `;
116
+ }
117
+ };
118
+ ConsentCapabilityCard.styles = css `
119
+ :host {
120
+ display: block;
121
+ border-bottom: 1px solid var(--cs-surface-border, rgba(15, 23, 42, 0.08));
122
+ }
123
+
124
+ :host(:last-of-type) {
125
+ border-bottom: none;
126
+ }
127
+
128
+ .row {
129
+ display: grid;
130
+ grid-template-columns: 22px 36px 1fr;
131
+ gap: 14px;
132
+ padding: 16px 0;
133
+ align-items: flex-start;
134
+ }
135
+
136
+ .checkbox {
137
+ width: 22px;
138
+ height: 22px;
139
+ border-radius: 6px;
140
+ border: 1.5px solid var(--cs-text-secondary, #334155);
141
+ background: transparent;
142
+ cursor: pointer;
143
+ display: flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ padding: 0;
147
+ transition: background 0.12s ease, border-color 0.12s ease;
148
+ }
149
+
150
+ .checkbox[aria-checked="true"] {
151
+ background: var(--cs-surface-accent, #0F172A);
152
+ border-color: var(--cs-surface-accent, #0F172A);
153
+ }
154
+
155
+ .checkbox:focus-visible {
156
+ outline: 2px solid var(--cs-focus-ring, #0F172A);
157
+ outline-offset: 2px;
158
+ }
159
+
160
+ .check-mark {
161
+ color: var(--cs-surface-accent-text, #fff);
162
+ font-size: 14px;
163
+ line-height: 1;
164
+ }
165
+
166
+ .icon-tile {
167
+ width: 36px;
168
+ height: 36px;
169
+ border-radius: 10px;
170
+ background: var(--cs-surface-inset, #F1ECE2);
171
+ display: flex;
172
+ align-items: center;
173
+ justify-content: center;
174
+ color: var(--cs-text-secondary, #334155);
175
+ }
176
+
177
+ .icon-tile svg {
178
+ width: 18px;
179
+ height: 18px;
180
+ }
181
+
182
+ .body {
183
+ display: flex;
184
+ flex-direction: column;
185
+ gap: 6px;
186
+ min-width: 0;
187
+ }
188
+
189
+ .row-label {
190
+ display: flex;
191
+ align-items: center;
192
+ gap: 10px;
193
+ flex-wrap: wrap;
194
+ font-size: 14.5px;
195
+ color: var(--cs-text-primary, #0F172A);
196
+ line-height: 1.45;
197
+ }
198
+
199
+ .row-label strong {
200
+ font-weight: 600;
201
+ }
202
+
203
+ .description {
204
+ color: var(--cs-text-secondary, #334155);
205
+ }
206
+
207
+ .risk-chip {
208
+ display: inline-flex;
209
+ padding: 2px 8px;
210
+ border-radius: 999px;
211
+ font-size: 10.5px;
212
+ font-weight: 700;
213
+ letter-spacing: 0.06em;
214
+ background: var(--cs-chip-risk-bg, #FCE7B6);
215
+ color: var(--cs-chip-risk-text, #7A4F00);
216
+ }
217
+
218
+ .policy-toggle {
219
+ align-self: flex-start;
220
+ background: none;
221
+ border: none;
222
+ padding: 0;
223
+ font-size: 12px;
224
+ font-weight: 500;
225
+ color: var(--cs-text-tertiary, #64748B);
226
+ text-decoration: underline;
227
+ text-underline-offset: 2px;
228
+ cursor: pointer;
229
+ }
230
+
231
+ .policy-toggle:focus-visible {
232
+ outline: 2px solid var(--cs-focus-ring, #0F172A);
233
+ outline-offset: 2px;
234
+ }
235
+
236
+ .policy-disclosure {
237
+ margin-top: 8px;
238
+ border-radius: 10px;
239
+ background: var(--cs-surface-inset, #F1ECE2);
240
+ padding: 10px 12px;
241
+ font-size: 12px;
242
+ color: var(--cs-text-secondary, #334155);
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: 8px;
246
+ }
247
+
248
+ .policy-disclosure h4 {
249
+ margin: 0;
250
+ font-size: 11px;
251
+ letter-spacing: 0.08em;
252
+ text-transform: uppercase;
253
+ color: var(--cs-text-tertiary, #64748B);
254
+ }
255
+
256
+ .policy-disclosure pre {
257
+ margin: 0;
258
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
259
+ font-size: 11.5px;
260
+ line-height: 1.5;
261
+ white-space: pre-wrap;
262
+ word-break: break-word;
263
+ color: var(--cs-text-primary, #0F172A);
264
+ }
265
+
266
+ .policy-disclosure ul {
267
+ margin: 0;
268
+ padding-left: 18px;
269
+ }
270
+ `;
271
+ __decorate([
272
+ property({ type: String })
273
+ ], ConsentCapabilityCard.prototype, "capabilityId", void 0);
274
+ __decorate([
275
+ property({ type: String })
276
+ ], ConsentCapabilityCard.prototype, "label", void 0);
277
+ __decorate([
278
+ property({ type: String })
279
+ ], ConsentCapabilityCard.prototype, "description", void 0);
280
+ __decorate([
281
+ property({ type: String })
282
+ ], ConsentCapabilityCard.prototype, "icon", void 0);
283
+ __decorate([
284
+ property({ type: String })
285
+ ], ConsentCapabilityCard.prototype, "riskLevel", void 0);
286
+ __decorate([
287
+ property({ type: Boolean, reflect: true })
288
+ ], ConsentCapabilityCard.prototype, "checked", void 0);
289
+ __decorate([
290
+ property({ type: String, attribute: "compiled-cedar" })
291
+ ], ConsentCapabilityCard.prototype, "compiledCedar", void 0);
292
+ __decorate([
293
+ state()
294
+ ], ConsentCapabilityCard.prototype, "policyOpen", void 0);
295
+ ConsentCapabilityCard = __decorate([
296
+ customElement("consent-capability-card")
297
+ ], ConsentCapabilityCard);
298
+ export { ConsentCapabilityCard };
299
+ /**
300
+ * Inline SVG icons for the recognized capability icons. Kept inline to avoid
301
+ * an asset-loading hop in shadow DOM.
302
+ */
303
+ function iconSvgFor(icon) {
304
+ switch (icon) {
305
+ case "search":
306
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="9" r="5.25"/><path d="m13.25 13.25 3.5 3.5"/></svg>`;
307
+ case "cart":
308
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3h2l1.4 9.4a1.5 1.5 0 0 0 1.5 1.3h7.6a1.5 1.5 0 0 0 1.5-1.2L18 6H6"/><circle cx="9" cy="17" r="1.2"/><circle cx="15" cy="17" r="1.2"/></svg>`;
309
+ case "card":
310
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="2.5" y="4.5" width="15" height="11" rx="2"/><path d="M2.5 9h15"/><path d="M5.5 13h3"/></svg>`;
311
+ case "pin":
312
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M10 17s-5.5-5-5.5-9a5.5 5.5 0 1 1 11 0c0 4-5.5 9-5.5 9z"/><circle cx="10" cy="8" r="2"/></svg>`;
313
+ case "pin-new":
314
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M10 17s-5.5-5-5.5-9a5.5 5.5 0 1 1 11 0c0 4-5.5 9-5.5 9z"/><path d="M10 6v4"/><path d="M8 8h4"/></svg>`;
315
+ case "shield":
316
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M10 2.5 4 5v5.5C4 14 6.5 16.5 10 17.5c3.5-1 6-3.5 6-7V5z"/></svg>`;
317
+ case "key":
318
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><circle cx="7" cy="13" r="3.25"/><path d="m9.5 11 6.5-6.5"/><path d="m13.5 7 2 2"/></svg>`;
319
+ case "tools":
320
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m4 4 6 6"/><path d="m10 4 6 6"/><path d="m4 16 12-12"/></svg>`;
321
+ case "user":
322
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="7" r="3"/><path d="M3 17a7 7 0 0 1 14 0"/></svg>`;
323
+ case "calendar":
324
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="14" height="13" rx="2"/><path d="M3 8h14"/><path d="M7 2v4M13 2v4"/></svg>`;
325
+ case "lock":
326
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="9" width="12" height="8" rx="2"/><path d="M7 9V6a3 3 0 0 1 6 0v3"/></svg>`;
327
+ case "eye":
328
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M2 10s3-6 8-6 8 6 8 6-3 6-8 6-8-6-8-6z"/><circle cx="10" cy="10" r="2.25"/></svg>`;
329
+ case "send":
330
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m17 3-7 7-2 7-3-9z"/></svg>`;
331
+ case "package":
332
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m10 2 7 4v8l-7 4-7-4V6z"/><path d="m3 6 7 4 7-4"/><path d="M10 18V10"/></svg>`;
333
+ default:
334
+ return html `<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="10" r="5"/></svg>`;
335
+ }
336
+ }
337
+ //# sourceMappingURL=consent-capability-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-capability-card.js","sourceRoot":"","sources":["../../src/components/consent-capability-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Consent Footer
3
+ *
4
+ * `Protected by ✓ Checkpoint` (left) + `How does this work?` (right). Shared
5
+ * between the consent screen and the (future-migrated) gateway consent.
6
+ *
7
+ * @module components/consent-footer
8
+ */
9
+ import { LitElement } from "lit";
10
+ import type { ConsentTheme } from "../types/capabilities.types.js";
11
+ export declare class ConsentFooter extends LitElement {
12
+ theme: ConsentTheme;
13
+ howItWorksUrl: string;
14
+ static styles: import("lit").CSSResult;
15
+ render(): import("lit").TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ "consent-footer": ConsentFooter;
20
+ }
21
+ }
22
+ //# sourceMappingURL=consent-footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-footer.d.ts","sourceRoot":"","sources":["../../src/components/consent-footer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,qBACa,aAAc,SAAQ,UAAU;IACf,KAAK,EAAE,YAAY,CAAW;IAC9B,aAAa,SAAM;IAE/C,OAAgB,MAAM,0BAiCpB;IAEO,MAAM;CA6BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Consent Footer
3
+ *
4
+ * `Protected by ✓ Checkpoint` (left) + `How does this work?` (right). Shared
5
+ * between the consent screen and the (future-migrated) gateway consent.
6
+ *
7
+ * @module components/consent-footer
8
+ */
9
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ import { LitElement, html, css } from "lit";
16
+ import { customElement, property } from "lit/decorators.js";
17
+ import { CONSENT_COPY_TOKENS } from "../copy/tokens.js";
18
+ let ConsentFooter = class ConsentFooter extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.theme = "light";
22
+ this.howItWorksUrl = "";
23
+ }
24
+ render() {
25
+ const attribution = this.theme === "dark"
26
+ ? CONSENT_COPY_TOKENS.attribution.securedBy
27
+ : CONSENT_COPY_TOKENS.attribution.protectedBy;
28
+ return html `
29
+ <span class="left">
30
+ <svg
31
+ class="check"
32
+ viewBox="0 0 16 16"
33
+ fill="none"
34
+ stroke="currentColor"
35
+ stroke-width="1.8"
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ aria-hidden="true"
39
+ >
40
+ <path d="m3.5 8.5 3 3 6-6.5" />
41
+ </svg>
42
+ ${attribution}
43
+ </span>
44
+ ${this.howItWorksUrl
45
+ ? html `<a href="${this.howItWorksUrl}" target="_blank" rel="noopener">
46
+ ${CONSENT_COPY_TOKENS.attribution.howThisWorks}
47
+ </a>`
48
+ : html `<span>${CONSENT_COPY_TOKENS.attribution.howThisWorks}</span>`}
49
+ `;
50
+ }
51
+ };
52
+ ConsentFooter.styles = css `
53
+ :host {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: space-between;
57
+ gap: 16px;
58
+ padding-top: 12px;
59
+ font-size: 12px;
60
+ color: var(--cs-text-tertiary, #64748B);
61
+ border-top: 1px solid var(--cs-surface-border, transparent);
62
+ }
63
+
64
+ .left {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ gap: 6px;
68
+ }
69
+
70
+ .check {
71
+ width: 14px;
72
+ height: 14px;
73
+ color: var(--cs-text-secondary, #334155);
74
+ }
75
+
76
+ a {
77
+ color: inherit;
78
+ text-decoration: underline;
79
+ text-underline-offset: 2px;
80
+ }
81
+
82
+ a:hover {
83
+ color: var(--cs-text-primary, #0F172A);
84
+ }
85
+ `;
86
+ __decorate([
87
+ property({ type: String })
88
+ ], ConsentFooter.prototype, "theme", void 0);
89
+ __decorate([
90
+ property({ type: String })
91
+ ], ConsentFooter.prototype, "howItWorksUrl", void 0);
92
+ ConsentFooter = __decorate([
93
+ customElement("consent-footer")
94
+ ], ConsentFooter);
95
+ export { ConsentFooter };
96
+ //# sourceMappingURL=consent-footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-footer.js","sourceRoot":"","sources":["../../src/components/consent-footer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIjD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QACuB,UAAK,GAAiB,OAAO,CAAC;QAC9B,kBAAa,GAAG,EAAE,CAAC;IAkEjD,CAAC;IA7BU,MAAM;QACb,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS;YAC3C,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,OAAO,IAAI,CAAA;;;;;;;;;;;;;;UAcL,WAAW;;QAEb,IAAI,CAAC,aAAa;YAClB,CAAC,CAAC,IAAI,CAAA,YAAY,IAAI,CAAC,aAAa;cAC9B,mBAAmB,CAAC,WAAW,CAAC,YAAY;eAC3C;YACP,CAAC,CAAC,IAAI,CAAA,SAAS,mBAAmB,CAAC,WAAW,CAAC,YAAY,SAAS;KACvE,CAAC;IACJ,CAAC;;AA/De,oBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiC3B,AAjCqB,CAiCpB;AApC0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAA+B;AAC9B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAoB;AAFpC,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAoEzB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Consent Revocation Notice
3
+ *
4
+ * Clock-iconed footer block telling the user where they can revoke and that
5
+ * permissions auto-expire after N days of inactivity.
6
+ *
7
+ * @module components/consent-revocation-notice
8
+ */
9
+ import { LitElement } from "lit";
10
+ export declare class ConsentRevocationNotice extends LitElement {
11
+ revocationPath: string;
12
+ orgName: string;
13
+ inactivityDays: number;
14
+ static styles: import("lit").CSSResult;
15
+ render(): import("lit").TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ "consent-revocation-notice": ConsentRevocationNotice;
20
+ }
21
+ }
22
+ //# sourceMappingURL=consent-revocation-notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-revocation-notice.d.ts","sourceRoot":"","sources":["../../src/components/consent-revocation-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,qBACa,uBAAwB,SAAQ,UAAU;IACzB,cAAc,SAAgC;IAC9C,OAAO,SAAe;IACtB,cAAc,SAAM;IAEhD,OAAgB,MAAM,0BAgCpB;IAEO,MAAM;CA8BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,2BAA2B,EAAE,uBAAuB,CAAC;KACtD;CACF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Consent Revocation Notice
3
+ *
4
+ * Clock-iconed footer block telling the user where they can revoke and that
5
+ * permissions auto-expire after N days of inactivity.
6
+ *
7
+ * @module components/consent-revocation-notice
8
+ */
9
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ import { LitElement, html, css } from "lit";
16
+ import { customElement, property } from "lit/decorators.js";
17
+ import { CONSENT_COPY_TOKENS, formatToken } from "../copy/tokens.js";
18
+ let ConsentRevocationNotice = class ConsentRevocationNotice extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.revocationPath = "Account → Connected Agents";
22
+ this.orgName = "this site";
23
+ this.inactivityDays = 90;
24
+ }
25
+ render() {
26
+ const revoke = formatToken(CONSENT_COPY_TOKENS.footer.revocationTemplate, {
27
+ RevocationPath: this.revocationPath,
28
+ Org: this.orgName,
29
+ });
30
+ const inactivity = formatToken(CONSENT_COPY_TOKENS.footer.inactivityTemplate, { Days: this.inactivityDays });
31
+ return html `
32
+ <svg
33
+ class="icon"
34
+ viewBox="0 0 20 20"
35
+ fill="none"
36
+ stroke="currentColor"
37
+ stroke-width="1.6"
38
+ stroke-linecap="round"
39
+ stroke-linejoin="round"
40
+ aria-hidden="true"
41
+ >
42
+ <circle cx="10" cy="10" r="7.5" />
43
+ <path d="M10 6v4l2.5 1.5" />
44
+ </svg>
45
+ <div class="content">
46
+ <span>${revoke}</span>
47
+ <span>${inactivity}</span>
48
+ </div>
49
+ `;
50
+ }
51
+ };
52
+ ConsentRevocationNotice.styles = css `
53
+ :host {
54
+ display: flex;
55
+ align-items: flex-start;
56
+ gap: 10px;
57
+ padding: 12px 14px;
58
+ border-radius: 12px;
59
+ background: var(--cs-surface-inset, #F1ECE2);
60
+ color: var(--cs-text-secondary, #334155);
61
+ font-size: 12.5px;
62
+ line-height: 1.5;
63
+ }
64
+
65
+ .icon {
66
+ width: 16px;
67
+ height: 16px;
68
+ flex-shrink: 0;
69
+ margin-top: 2px;
70
+ color: var(--cs-text-tertiary, #64748B);
71
+ }
72
+
73
+ .content {
74
+ display: flex;
75
+ flex-direction: column;
76
+ gap: 4px;
77
+ }
78
+
79
+ em {
80
+ font-style: normal;
81
+ color: var(--cs-text-primary, #0F172A);
82
+ font-weight: 500;
83
+ }
84
+ `;
85
+ __decorate([
86
+ property({ type: String })
87
+ ], ConsentRevocationNotice.prototype, "revocationPath", void 0);
88
+ __decorate([
89
+ property({ type: String })
90
+ ], ConsentRevocationNotice.prototype, "orgName", void 0);
91
+ __decorate([
92
+ property({ type: Number })
93
+ ], ConsentRevocationNotice.prototype, "inactivityDays", void 0);
94
+ ConsentRevocationNotice = __decorate([
95
+ customElement("consent-revocation-notice")
96
+ ], ConsentRevocationNotice);
97
+ export { ConsentRevocationNotice };
98
+ //# sourceMappingURL=consent-revocation-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-revocation-notice.js","sourceRoot":"","sources":["../../src/components/consent-revocation-notice.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG9D,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,UAAU;IAAhD;;QACuB,mBAAc,GAAG,4BAA4B,CAAC;QAC9C,YAAO,GAAG,WAAW,CAAC;QACtB,mBAAc,GAAG,EAAE,CAAC;IAkElD,CAAC;IA9BU,MAAM;QACb,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,kBAAkB,EAAE;YACxE,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,GAAG,EAAE,IAAI,CAAC,OAAO;SAClB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAC5B,mBAAmB,CAAC,MAAM,CAAC,kBAAkB,EAC7C,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAC9B,CAAC;QAEF,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;gBAeC,MAAM;gBACN,UAAU;;KAErB,CAAC;IACJ,CAAC;;AA/De,8BAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgC3B,AAhCqB,CAgCpB;AApC0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DAA+C;AAC9C;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAAuB;AACtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DAAqB;AAHrC,uBAAuB;IADnC,aAAa,CAAC,2BAA2B,CAAC;GAC9B,uBAAuB,CAqEnC"}
@@ -15,5 +15,11 @@ export { ConsentTerms } from './consent-terms.js';
15
15
  export { ConsentOAuthButton, type OAuthProvider, } from './consent-oauth-button.js';
16
16
  export { ConsentOTPInput } from './consent-otp-input.js';
17
17
  export { McpConsent, type OAuthIdentity, type ConsentApproveDetail, type ConsentErrorDetail, } from './mcp-consent.js';
18
+ export { ConsentAgentHeader } from './consent-agent-header.js';
19
+ export { ConsentCapabilityCard, type CapabilityToggleDetail, } from './consent-capability-card.js';
20
+ export { ConsentActionBar } from './consent-action-bar.js';
21
+ export { ConsentFooter } from './consent-footer.js';
22
+ export { ConsentRevocationNotice } from './consent-revocation-notice.js';
23
+ export { ConsentCapabilitiesScreen, type CapabilitiesApproveDetail, } from './consent-capabilities-screen.js';
18
24
  export { html, css } from 'lit';
19
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,yBAAyB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC"}
@@ -18,6 +18,13 @@ export { ConsentOAuthButton, } from './consent-oauth-button.js';
18
18
  export { ConsentOTPInput } from './consent-otp-input.js';
19
19
  // Composite Component (Full Consent Flow)
20
20
  export { McpConsent, } from './mcp-consent.js';
21
+ // New design-language components (consent + future-migrated gateway)
22
+ export { ConsentAgentHeader } from './consent-agent-header.js';
23
+ export { ConsentCapabilityCard, } from './consent-capability-card.js';
24
+ export { ConsentActionBar } from './consent-action-bar.js';
25
+ export { ConsentFooter } from './consent-footer.js';
26
+ export { ConsentRevocationNotice } from './consent-revocation-notice.js';
27
+ export { ConsentCapabilitiesScreen, } from './consent-capabilities-screen.js';
21
28
  // Re-export Lit utilities that consumers might need
22
29
  export { html, css } from 'lit';
23
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAAsB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,sBAAsB;AACtB,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,0CAA0C;AAC1C,OAAO,EACL,UAAU,GAIX,MAAM,kBAAkB,CAAC;AAE1B,oDAAoD;AACpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAAsB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,sBAAsB;AACtB,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,0CAA0C;AAC1C,OAAO,EACL,UAAU,GAIX,MAAM,kBAAkB,CAAC;AAE1B,qEAAqE;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,yBAAyB,GAE1B,MAAM,kCAAkC,CAAC;AAE1C,oDAAoD;AACpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC"}