@adia-ai/a2ui-corpus 0.4.2 → 0.4.4

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 (452) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +59 -51
  3. package/catalog-a2ui_0_9.json +318 -15
  4. package/catalog-a2ui_0_9_rules.txt +18 -0
  5. package/chunks/_index.json +1263 -496
  6. package/chunks/agent-activity-feed.json +1 -1
  7. package/chunks/agent-canvas-shell.json +1 -1
  8. package/chunks/agent-reasoning-collapsed.json +1 -1
  9. package/chunks/auth-account-deleted-actions.json +1 -1
  10. package/chunks/auth-account-deleted.json +1 -1
  11. package/chunks/auth-card-content.json +1 -1
  12. package/chunks/auth-card-header.json +1 -1
  13. package/chunks/auth-email-entry.json +1 -1
  14. package/chunks/auth-email-verify-confirm.json +1 -1
  15. package/chunks/auth-email-verify.json +1 -1
  16. package/chunks/auth-forbidden-actions.json +1 -1
  17. package/chunks/auth-forbidden.json +1 -1
  18. package/chunks/auth-invite-actions.json +1 -1
  19. package/chunks/auth-invite-team-card.json +1 -1
  20. package/chunks/auth-link-expired-form.json +1 -1
  21. package/chunks/auth-link-expired.json +1 -1
  22. package/chunks/auth-locked-account.json +1 -1
  23. package/chunks/auth-locked-recovery-options.json +1 -1
  24. package/chunks/auth-mfa-enrollment-submit.json +1 -1
  25. package/chunks/auth-mfa-enrollment.json +224 -2
  26. package/chunks/auth-mfa-fallback-actions.json +1 -1
  27. package/chunks/auth-mfa-recovery.json +1 -1
  28. package/chunks/auth-new-password-form.json +1 -1
  29. package/chunks/auth-new-password.json +156 -2
  30. package/chunks/auth-oauth-fallback-actions.json +1 -1
  31. package/chunks/auth-oauth-interstitial.json +1 -1
  32. package/chunks/auth-password-challenge.json +1 -1
  33. package/chunks/auth-password-reset-form.json +1 -1
  34. package/chunks/auth-password-reset.json +151 -1
  35. package/chunks/auth-profile-form.json +1 -1
  36. package/chunks/auth-profile-setup.json +1 -1
  37. package/chunks/auth-reset-sent.json +1 -1
  38. package/chunks/auth-session-expired-actions.json +1 -1
  39. package/chunks/auth-session-expired.json +1 -1
  40. package/chunks/auth-signin-card-email.json +190 -2
  41. package/chunks/auth-signin-card-magic-link.json +119 -2
  42. package/chunks/auth-signin-card-mfa.json +162 -1
  43. package/chunks/auth-signin-card-otp.json +116 -2
  44. package/chunks/auth-signin-card-password.json +202 -2
  45. package/chunks/auth-signin-card-recovery.json +1 -1
  46. package/chunks/auth-signout-actions.json +1 -1
  47. package/chunks/auth-signout.json +1 -1
  48. package/chunks/auth-signup-email-entry.json +1 -1
  49. package/chunks/auth-signup-entry.json +191 -1
  50. package/chunks/auth-signup-social-auths.json +1 -1
  51. package/chunks/auth-signup-verify.json +1 -1
  52. package/chunks/auth-social-auths.json +1 -1
  53. package/chunks/auth-sso-providers.json +1 -1
  54. package/chunks/auth-sso-required.json +1 -1
  55. package/chunks/auth-team-invite.json +1 -1
  56. package/chunks/card-header-with-description.json +12 -0
  57. package/chunks/chat-page-shell.json +1 -1
  58. package/chunks/chat-streaming-surface.json +1 -1
  59. package/chunks/command-palette.json +1 -1
  60. package/chunks/commerce-pricing-tiers.json +1 -1
  61. package/chunks/conversion-funnel-6step.json +1 -1
  62. package/chunks/dashboard-acquisition-panel.json +162 -1
  63. package/chunks/dashboard-admin-page.json +2879 -4
  64. package/chunks/dashboard-audience-kpis.json +1 -1
  65. package/chunks/dashboard-audience-panel.json +488 -1
  66. package/chunks/dashboard-behavior-panel.json +91 -1
  67. package/chunks/dashboard-chart-recent.json +474 -3
  68. package/chunks/dashboard-cohort-retention.json +1 -1
  69. package/chunks/dashboard-conversion-panel.json +196 -1
  70. package/chunks/dashboard-country-list.json +1 -1
  71. package/chunks/dashboard-filter-bar.json +1 -1
  72. package/chunks/dashboard-funnel.json +1 -1
  73. package/chunks/dashboard-kpi-grid.json +1 -1
  74. package/chunks/dashboard-notifications-feed.json +1 -1
  75. package/chunks/dashboard-notifications-panel.json +383 -1
  76. package/chunks/dashboard-overview-panel.json +1363 -1
  77. package/chunks/dashboard-page-header.json +140 -1
  78. package/chunks/dashboard-pages-table.json +1 -1
  79. package/chunks/dashboard-quick-actions.json +1 -1
  80. package/chunks/dashboard-reports-panel.json +97 -1
  81. package/chunks/dashboard-reports-table.json +1 -1
  82. package/chunks/dashboard-spark-cards.json +1 -1
  83. package/chunks/dashboard-storage-card.json +1 -1
  84. package/chunks/dashboard-tabs.json +1 -1
  85. package/chunks/dashboard-team-actions-storage.json +502 -1
  86. package/chunks/dashboard-team-list.json +1 -1
  87. package/chunks/dashboard-traffic-channels.json +1 -1
  88. package/chunks/dashboard-transactions-table.json +1 -1
  89. package/chunks/destructive-confirm-modal.json +1 -1
  90. package/chunks/doc-editor-shell.json +1 -1
  91. package/chunks/drawer-2fa-key.json +1 -1
  92. package/chunks/drawer-2fa-sms.json +1 -1
  93. package/chunks/drawer-2fa-totp.json +1 -1
  94. package/chunks/drawer-cancel-sub.json +1 -1
  95. package/chunks/drawer-change-plan.json +1 -1
  96. package/chunks/drawer-custom-roles.json +5 -3
  97. package/chunks/drawer-data-start.json +1 -1
  98. package/chunks/drawer-delete-account.json +1 -1
  99. package/chunks/drawer-delete-workspace.json +1 -1
  100. package/chunks/drawer-discord.json +1 -1
  101. package/chunks/drawer-figma.json +1 -1
  102. package/chunks/drawer-first-dashboard.json +1 -1
  103. package/chunks/drawer-gcal.json +1 -1
  104. package/chunks/drawer-github.json +5 -3
  105. package/chunks/drawer-invite.json +1 -1
  106. package/chunks/drawer-payment-method.json +1 -1
  107. package/chunks/drawer-report.json +1 -1
  108. package/chunks/drawer-revoke-session.json +1 -1
  109. package/chunks/drawer-role.json +1 -1
  110. package/chunks/drawer-slack.json +1 -1
  111. package/chunks/drawer-smtp.json +5 -3
  112. package/chunks/drawer-source.json +1 -1
  113. package/chunks/drawer-transaction.json +1 -1
  114. package/chunks/editor-code-pane.json +1 -1
  115. package/chunks/editor-page-shell.json +1 -1
  116. package/chunks/editor-preview-pane.json +1 -1
  117. package/chunks/error-404-actions.json +1 -1
  118. package/chunks/error-404.json +161 -3
  119. package/chunks/error-500-actions.json +1 -1
  120. package/chunks/error-500.json +166 -3
  121. package/chunks/error-maintenance-actions.json +1 -1
  122. package/chunks/error-maintenance.json +158 -3
  123. package/chunks/error-page-shell.json +1 -1
  124. package/chunks/footer-primary-only.json +12 -0
  125. package/chunks/form-page-shell.json +1 -1
  126. package/chunks/gallery-page-shell.json +1 -1
  127. package/chunks/icon-text-row.json +16 -0
  128. package/chunks/image-tile.json +12 -0
  129. package/chunks/kanban-board-3col.json +5 -3
  130. package/chunks/kanban-page-shell.json +1 -1
  131. package/chunks/labeled-textarea.json +14 -0
  132. package/chunks/linked-record-row.json +57 -0
  133. package/chunks/marketing-hero-cta.json +1 -1
  134. package/chunks/marketing-page-shell.json +1 -1
  135. package/chunks/member-edit-drawer.json +1 -1
  136. package/chunks/metadata-description-list.json +14 -0
  137. package/chunks/onb-completion.json +1 -1
  138. package/chunks/onb-extension-install.json +1 -1
  139. package/chunks/onb-hero-welcome.json +1 -1
  140. package/chunks/onb-import-picker.json +1 -1
  141. package/chunks/onb-mobile-handoff.json +1 -1
  142. package/chunks/onb-notification-prefs.json +1 -1
  143. package/chunks/onb-persona-picker.json +1 -1
  144. package/chunks/onb-provider-tiles.json +1 -1
  145. package/chunks/onb-settings-review.json +1 -1
  146. package/chunks/onb-step-footer.json +1 -1
  147. package/chunks/onb-step-header.json +1 -1
  148. package/chunks/onb-step-progress.json +1 -1
  149. package/chunks/onb-step-shell.json +249 -1
  150. package/chunks/onb-story-pane.json +1 -1
  151. package/chunks/onb-tutorial-steps.json +1 -1
  152. package/chunks/playground-a2ui.json +1 -1
  153. package/chunks/playground-app-shell.json +2 -2
  154. package/chunks/playground-chat.json +2 -2
  155. package/chunks/playground-construct-canvas.json +4 -6
  156. package/chunks/playground-gen-ui.json +2 -2
  157. package/chunks/playground-render-preview.json +1 -1
  158. package/chunks/playground-streams-bridge.json +1 -1
  159. package/chunks/playground-table-toolbar.json +1 -1
  160. package/chunks/reg-address-form.json +1 -1
  161. package/chunks/reg-billing-card.json +1 -1
  162. package/chunks/reg-brand-scrape.json +1 -1
  163. package/chunks/reg-departments-toggle.json +1 -1
  164. package/chunks/reg-extended-profile.json +1 -1
  165. package/chunks/reg-final-done.json +1 -1
  166. package/chunks/reg-helpdesk-grid.json +1 -1
  167. package/chunks/reg-import-picker.json +1 -1
  168. package/chunks/reg-integrations-grid.json +1 -1
  169. package/chunks/reg-invite-form.json +1 -1
  170. package/chunks/reg-legal-entity.json +1 -1
  171. package/chunks/reg-org-chart-review.json +1 -1
  172. package/chunks/reg-profile-identity.json +1 -1
  173. package/chunks/reg-step-footer.json +1 -1
  174. package/chunks/reg-step-header.json +1 -1
  175. package/chunks/reg-step-progress.json +1 -1
  176. package/chunks/reg-step-shell.json +565 -1
  177. package/chunks/reg-story-pane.json +1 -1
  178. package/chunks/reg-success-summary.json +1 -1
  179. package/chunks/reg-team-size.json +1 -1
  180. package/chunks/reg-usecase-picker.json +1 -1
  181. package/chunks/reg-workspace-name.json +1 -1
  182. package/chunks/section-with-stack.json +12 -0
  183. package/chunks/settings-appearance.json +26 -0
  184. package/chunks/settings-billing-plan.json +1 -1
  185. package/chunks/settings-general-form.json +1 -1
  186. package/chunks/settings-integrations.json +154 -3
  187. package/chunks/settings-members-invite.json +5 -3
  188. package/chunks/settings-notifications.json +1 -1
  189. package/chunks/settings-page-shell.json +1 -1
  190. package/chunks/settings-profile-security.json +1 -1
  191. package/chunks/text-card.json +14 -0
  192. package/chunks/user-identity-row.json +16 -0
  193. package/chunks/user-profile-card.json +1 -1
  194. package/chunks/users-table-badge.json +1 -1
  195. package/compositions/agent/ai-streaming-response.json +55 -9
  196. package/compositions/agent/alert-banner.json +46 -10
  197. package/compositions/agent/chat-interface.json +15 -7
  198. package/compositions/agent/command-palette.json +2 -2
  199. package/compositions/agent/empty-state.json +70 -11
  200. package/compositions/agent/error-state-retry.json +100 -17
  201. package/compositions/agent/loading-skeleton.json +76 -12
  202. package/compositions/agent/notification-preferences.json +386 -23
  203. package/compositions/agent/toast-stack.json +42 -7
  204. package/compositions/data/activity-feed.json +231 -17
  205. package/compositions/data/audit-log-viewer.json +453 -44
  206. package/compositions/data/bookmark-list.json +188 -16
  207. package/compositions/data/bulk-action-toolbar.json +137 -19
  208. package/compositions/data/changelog-feed.json +296 -30
  209. package/compositions/data/chart-dashboard.json +96 -11
  210. package/compositions/data/cohort-retention.json +392 -40
  211. package/compositions/data/column-manager.json +316 -52
  212. package/compositions/data/data-table-paginated.json +96 -18
  213. package/compositions/data/email-inbox-list.json +224 -13
  214. package/compositions/data/funnel-analytics.json +424 -26
  215. package/compositions/data/heatmap-calendar.json +140 -27
  216. package/compositions/data/invoice-table.json +107 -18
  217. package/compositions/data/kpi-overview.json +187 -17
  218. package/compositions/data/notification-center.json +224 -16
  219. package/compositions/data/object-inspector.json +463 -43
  220. package/compositions/data/product-specs-card.json +66 -12
  221. package/compositions/data/progress-tracker.json +140 -13
  222. package/compositions/data/review-card.json +94 -14
  223. package/compositions/data/saved-views-filter-bar.json +232 -37
  224. package/compositions/data/shopping-cart-summary.json +173 -21
  225. package/compositions/data/stat-card-dashboard.json +219 -18
  226. package/compositions/data/status-page.json +337 -30
  227. package/compositions/data/virtualized-table.json +269 -38
  228. package/compositions/data/weather-widget.json +77 -13
  229. package/compositions/forms/change-password-form.json +123 -16
  230. package/compositions/forms/color-picker-panel.json +85 -11
  231. package/compositions/forms/contact-form.json +127 -17
  232. package/compositions/forms/credit-card-payment-form.json +137 -16
  233. package/compositions/forms/data-import-mapper.json +244 -33
  234. package/compositions/forms/data-import-wizard.json +268 -29
  235. package/compositions/forms/date-time-picker-form.json +114 -13
  236. package/compositions/forms/destructive-confirm.json +206 -21
  237. package/compositions/forms/feedback-form.json +96 -14
  238. package/compositions/forms/file-upload-form.json +82 -11
  239. package/compositions/forms/login-form.json +122 -14
  240. package/compositions/forms/multi-step-wizard.json +133 -15
  241. package/compositions/forms/newsletter-subscription-form.json +83 -12
  242. package/compositions/forms/otp-verification-form.json +88 -13
  243. package/compositions/forms/password-reset-form.json +83 -12
  244. package/compositions/forms/permission-matrix.json +177 -28
  245. package/compositions/forms/profile-edit-form.json +125 -16
  246. package/compositions/forms/radio-group-form.json +110 -15
  247. package/compositions/forms/search-filters.json +112 -13
  248. package/compositions/forms/settings-toggles-page.json +188 -16
  249. package/compositions/forms/signup-form.json +129 -17
  250. package/compositions/forms/slider-range-form.json +65 -10
  251. package/compositions/forms/tag-input-form.json +89 -14
  252. package/compositions/forms/team-members-rbac.json +669 -107
  253. package/compositions/layout/accordion-settings.json +450 -42
  254. package/compositions/layout/badge-variants-display.json +121 -18
  255. package/compositions/layout/bento-overview.json +399 -33
  256. package/compositions/layout/calendar-month-view.json +96 -30
  257. package/compositions/layout/code-block.json +65 -11
  258. package/compositions/layout/comparison-table.json +113 -21
  259. package/compositions/layout/divider-with-label.json +40 -8
  260. package/compositions/layout/drawer-panel.json +105 -12
  261. package/compositions/layout/embed-iframe.json +62 -12
  262. package/compositions/layout/faq-accordion.json +35 -28
  263. package/compositions/layout/feature-grid.json +197 -22
  264. package/compositions/layout/footer-nav.json +188 -23
  265. package/compositions/layout/hero-cta.json +69 -13
  266. package/compositions/layout/image-gallery.json +112 -13
  267. package/compositions/layout/image-with-caption.json +48 -9
  268. package/compositions/layout/kanban-board.json +199 -31
  269. package/compositions/layout/keyboard-shortcuts.json +145 -12
  270. package/compositions/layout/markdown-editor-preview.json +6 -6
  271. package/compositions/layout/media-player.json +85 -13
  272. package/compositions/layout/modal-form.json +97 -12
  273. package/compositions/layout/onboarding-checklist.json +92 -14
  274. package/compositions/layout/popover-tooltip.json +74 -12
  275. package/compositions/layout/pricing-tiers.json +229 -31
  276. package/compositions/layout/product-card.json +97 -17
  277. package/compositions/layout/sidebar-layout.json +157 -16
  278. package/compositions/layout/tabs-panel.json +115 -13
  279. package/compositions/layout/testimonial-grid.json +240 -23
  280. package/compositions/layout/three-pane-shell.json +278 -63
  281. package/compositions/layout/toolbar-actions.json +81 -13
  282. package/compositions/navigation/nav-menu-with-icons.json +119 -14
  283. package/compositions/navigation/pagination-controls.json +2 -2
  284. package/compositions/navigation/workspace-switcher.json +296 -22
  285. package/compositions/settings/api-keys.json +592 -47
  286. package/compositions/settings/feature-flags.json +423 -22
  287. package/compositions/settings/integrations-gallery.json +839 -44
  288. package/compositions/settings/session-device-mgmt.json +619 -42
  289. package/compositions/settings/usage-quota-meter.json +214 -23
  290. package/compositions/settings/webhooks.json +429 -45
  291. package/package.json +2 -4
  292. package/patterns/agent/command-palette.json +1 -1
  293. package/patterns/agent/loading-skeleton.json +0 -6
  294. package/patterns/agent/toast-notification.json +6 -9
  295. package/patterns/data/admin-dashboard-with-charts.json +0 -4
  296. package/patterns/data/api-key-table.json +1 -1
  297. package/patterns/data/bookmark-list-categories.json +537 -128
  298. package/patterns/data/dashboard.json +3 -3
  299. package/patterns/data/data-table-view.json +34 -10
  300. package/patterns/data/email-inbox.json +22 -22
  301. package/patterns/data/event-calendar-details.json +20 -22
  302. package/patterns/data/inventory-table.json +1 -1
  303. package/patterns/data/leaderboard.json +1 -1
  304. package/patterns/data/notification-center.json +57 -25
  305. package/patterns/data/onboarding-checklist.json +10 -35
  306. package/patterns/data/order-tracking.json +8 -8
  307. package/patterns/data/pagination-nav.json +2 -2
  308. package/patterns/data/progress-dashboard.json +4 -16
  309. package/patterns/data/progress-tracker.json +3 -6
  310. package/patterns/data/restaurant-menu.json +241 -59
  311. package/patterns/forms/auth-signup.json +5 -13
  312. package/patterns/forms/bleed-design-settings.json +3 -11
  313. package/patterns/forms/credit-card-payment.json +8 -8
  314. package/patterns/forms/data-import.json +1 -2
  315. package/patterns/forms/login-form.json +4 -12
  316. package/patterns/forms/notification-filters.json +19 -68
  317. package/patterns/forms/notification-preferences.json +125 -39
  318. package/patterns/forms/otp-verification.json +1 -2
  319. package/patterns/forms/password-reset.json +1 -1
  320. package/patterns/forms/radio-group-selection.json +13 -45
  321. package/patterns/forms/radio-group.json +11 -35
  322. package/patterns/forms/survey-rating-scales.json +41 -121
  323. package/patterns/forms/two-factor-auth.json +211 -61
  324. package/patterns/forms/wizard-steps.json +32 -9
  325. package/patterns/layout/accordion-settings.json +63 -119
  326. package/patterns/layout/avatar-group.json +19 -40
  327. package/patterns/layout/badge-showcase.json +51 -89
  328. package/patterns/layout/code-block.json +9 -15
  329. package/patterns/layout/cta-banner.json +9 -17
  330. package/patterns/layout/divider-label.json +6 -10
  331. package/patterns/layout/drawer-panel.json +29 -48
  332. package/patterns/layout/embed-content.json +7 -9
  333. package/patterns/layout/feature-carousel.json +20 -20
  334. package/patterns/layout/feature-grid.json +30 -56
  335. package/patterns/layout/hero-section.json +18 -26
  336. package/patterns/layout/image-carousel.json +12 -12
  337. package/patterns/layout/kbd-shortcuts.json +6 -6
  338. package/patterns/layout/popover-menu.json +23 -27
  339. package/patterns/layout/pricing-tiers.json +50 -96
  340. package/patterns/layout/product-carousel.json +24 -24
  341. package/patterns/layout/tabs-panels.json +29 -55
  342. package/patterns/layout/team-carousel.json +16 -16
  343. package/patterns/layout/testimonials-carousel.json +12 -12
  344. package/patterns/layout/testimonials-grid.json +54 -92
  345. package/patterns/layout/toolbar-buttons.json +42 -70
  346. package/patterns/layout/tooltip-buttons.json +26 -44
  347. package/exemplars/AUDIT-REPORT.md +0 -116
  348. package/exemplars/README.md +0 -49
  349. package/exemplars/_shell.css +0 -88
  350. package/exemplars/blocks-reference.md +0 -409
  351. package/exemplars/index.html +0 -21
  352. package/exemplars/prose/auth-login/auth-login.yaml +0 -38
  353. package/exemplars/prose/auth-login/index.html +0 -542
  354. package/exemplars/prose/cta/README.md +0 -3
  355. package/exemplars/prose/cta/cta.yaml +0 -38
  356. package/exemplars/prose/cta/data.json +0 -6
  357. package/exemplars/prose/cta/index.html +0 -125
  358. package/exemplars/prose/feature-grid/README.md +0 -3
  359. package/exemplars/prose/feature-grid/data.json +0 -13
  360. package/exemplars/prose/feature-grid/feature-grid.yaml +0 -35
  361. package/exemplars/prose/feature-grid/index.html +0 -93
  362. package/exemplars/prose/footer/README.md +0 -3
  363. package/exemplars/prose/footer/data.json +0 -10
  364. package/exemplars/prose/footer/footer.yaml +0 -32
  365. package/exemplars/prose/footer/index.html +0 -109
  366. package/exemplars/prose/hero/README.md +0 -3
  367. package/exemplars/prose/hero/data.json +0 -6
  368. package/exemplars/prose/hero/hero.yaml +0 -38
  369. package/exemplars/prose/hero/index.html +0 -217
  370. package/exemplars/prose/pricing/README.md +0 -3
  371. package/exemplars/prose/pricing/data.json +0 -9
  372. package/exemplars/prose/pricing/index.html +0 -298
  373. package/exemplars/prose/pricing/pricing.yaml +0 -38
  374. package/exemplars/prose/steps/README.md +0 -3
  375. package/exemplars/prose/steps/data.json +0 -31
  376. package/exemplars/prose/steps/index.html +0 -176
  377. package/exemplars/prose/steps/setup.js +0 -12
  378. package/exemplars/prose/steps/steps.yaml +0 -38
  379. package/exemplars/prose/testimonials/README.md +0 -3
  380. package/exemplars/prose/testimonials/data.json +0 -14
  381. package/exemplars/prose/testimonials/index.html +0 -297
  382. package/exemplars/prose/testimonials/testimonials.yaml +0 -33
  383. package/exemplars/ui/auth-login/auth-login.yaml +0 -38
  384. package/exemplars/ui/auth-login/index.html +0 -372
  385. package/fragments/_schema.json +0 -72
  386. package/fragments/action/dual-cta-row.json +0 -29
  387. package/fragments/action/dual-cta-row.yaml +0 -34
  388. package/fragments/action/footer-cancel-save.json +0 -31
  389. package/fragments/action/footer-cancel-save.yaml +0 -34
  390. package/fragments/action/footer-primary-only.json +0 -23
  391. package/fragments/action/footer-primary-only.yaml +0 -26
  392. package/fragments/content/calendar-day-cell.json +0 -29
  393. package/fragments/content/column-config-atom.json +0 -121
  394. package/fragments/content/credential-entry-atom.json +0 -126
  395. package/fragments/content/directory-entry-atom.json +0 -148
  396. package/fragments/content/email-row.json +0 -35
  397. package/fragments/content/email-row.yaml +0 -43
  398. package/fragments/content/faq-item.json +0 -54
  399. package/fragments/content/health-entry-atom.json +0 -85
  400. package/fragments/content/icon-text-row.json +0 -29
  401. package/fragments/content/icon-text-row.yaml +0 -36
  402. package/fragments/content/icon-title-description.json +0 -30
  403. package/fragments/content/icon-title-description.yaml +0 -37
  404. package/fragments/content/image-tile.json +0 -28
  405. package/fragments/content/image-tile.yaml +0 -32
  406. package/fragments/content/incident-row.json +0 -107
  407. package/fragments/content/kbd-shortcut-row.json +0 -29
  408. package/fragments/content/kbd-shortcut-row.yaml +0 -33
  409. package/fragments/content/key-value-row.json +0 -29
  410. package/fragments/content/key-value-row.yaml +0 -36
  411. package/fragments/content/labeled-progress.json +0 -29
  412. package/fragments/content/labeled-progress.yaml +0 -33
  413. package/fragments/content/link-list-column.json +0 -33
  414. package/fragments/content/link-list-column.yaml +0 -41
  415. package/fragments/content/linked-record-row.json +0 -95
  416. package/fragments/content/marketplace-tile-atom.json +0 -147
  417. package/fragments/content/metadata-description-list.json +0 -28
  418. package/fragments/content/metadata-description-list.yaml +0 -36
  419. package/fragments/content/pending-invite-row.json +0 -113
  420. package/fragments/content/release-entry.json +0 -155
  421. package/fragments/content/rollout-entry-atom.json +0 -168
  422. package/fragments/content/signed-in-entry-atom.json +0 -157
  423. package/fragments/content/stage-entry-atom.json +0 -115
  424. package/fragments/content/stat-card.json +0 -31
  425. package/fragments/content/stat-card.yaml +0 -39
  426. package/fragments/content/user-identity-row.json +0 -33
  427. package/fragments/content/user-identity-row.yaml +0 -43
  428. package/fragments/content/user-notification-row.json +0 -35
  429. package/fragments/content/user-notification-row.yaml +0 -50
  430. package/fragments/content/wizard-step-row.json +0 -96
  431. package/fragments/form/labeled-checkbox.json +0 -26
  432. package/fragments/form/labeled-checkbox.yaml +0 -36
  433. package/fragments/form/labeled-input.json +0 -28
  434. package/fragments/form/labeled-input.yaml +0 -38
  435. package/fragments/form/labeled-slider.json +0 -34
  436. package/fragments/form/labeled-slider.yaml +0 -50
  437. package/fragments/form/labeled-textarea.json +0 -28
  438. package/fragments/form/labeled-textarea.yaml +0 -39
  439. package/fragments/form/labeled-toggle.json +0 -29
  440. package/fragments/form/labeled-toggle.yaml +0 -43
  441. package/fragments/layout/card-header-heading.json +0 -35
  442. package/fragments/layout/card-header-heading.yaml +0 -27
  443. package/fragments/layout/card-header-with-badge.json +0 -30
  444. package/fragments/layout/card-header-with-badge.yaml +0 -40
  445. package/fragments/layout/card-header-with-description.json +0 -29
  446. package/fragments/layout/card-header-with-description.yaml +0 -32
  447. package/fragments/layout/pricing-tier-card.json +0 -37
  448. package/fragments/layout/pricing-tier-card.yaml +0 -50
  449. package/fragments/layout/section-with-stack.json +0 -46
  450. package/fragments/layout/section-with-stack.yaml +0 -39
  451. package/fragments/layout/text-card.json +0 -28
  452. package/fragments/layout/text-card.yaml +0 -30
@@ -1,57 +1,602 @@
1
1
  {
2
2
  "$schema": "../_schema.json",
3
3
  "name": "api-keys",
4
- "version": 1,
4
+ "version": 2,
5
5
  "kind": "composition",
6
6
  "domain": "settings",
7
- "description": "API keys / tokens management list of masked tokens with scopes, last-used, status; plus create flow and rotate/revoke actions. Stripe/Vercel/OpenAI-style developer dashboard pattern.",
8
- "tags": { "purpose": ["developer", "api-keys", "tokens", "secrets", "rbac"], "complexity": "composed", "layout": "list" },
9
- "keywords": ["api keys", "tokens", "secrets", "bearer", "rotate", "revoke", "scopes", "stripe", "openai", "vercel", "developer", "sdk"],
10
- "related": ["webhooks", "team-members-rbac", "session-device-mgmt"],
11
-
7
+ "description": "API keys / tokens management \u2014 list of masked tokens with scopes, last-used, status; plus create flow and rotate/revoke actions. Stripe/Vercel/OpenAI-style developer dashboard pattern.",
8
+ "tags": {
9
+ "purpose": [
10
+ "developer",
11
+ "api-keys",
12
+ "tokens",
13
+ "secrets",
14
+ "rbac"
15
+ ],
16
+ "complexity": "composed",
17
+ "layout": "list"
18
+ },
19
+ "keywords": [
20
+ "api keys",
21
+ "tokens",
22
+ "secrets",
23
+ "bearer",
24
+ "rotate",
25
+ "revoke",
26
+ "scopes",
27
+ "stripe",
28
+ "openai",
29
+ "vercel",
30
+ "developer",
31
+ "sdk"
32
+ ],
33
+ "related": [
34
+ "webhooks",
35
+ "team-members-rbac",
36
+ "session-device-mgmt"
37
+ ],
12
38
  "template": [
13
- { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
14
- { "id": "hdr", "$fragment": "card-header-with-description",
15
- "bindings": { "heading": "API keys", "description": "Secrets are shown once at creation. Treat like a password." } },
16
- { "id": "sec", "component": "Section", "children": ["alert", "stats", "keys-toolbar", "table", "keys-title", "keys-list", "newkey-name"] },
17
-
18
- { "id": "keys-toolbar", "component": "Toolbar", "children": ["kt-search", "kt-new"] },
19
- { "id": "kt-search", "component": "Search", "placeholder": "Search keys by name or scope…" },
20
- { "id": "kt-new", "component": "Button", "variant": "primary", "icon": "plus", "text": "Create new API key" },
21
-
22
- { "id": "alert", "component": "Alert", "variant": "warning", "icon": "warning", "title": "Secret shown only once at creation", "description": "Copy your new key immediately — we never display the full value again. Rotate compromised keys; Revoke to permanently invalidate." },
23
-
24
- { "id": "stats", "component": "Row", "children": ["s1", "s2", "s3", "s4"], "gap": "4" },
25
- { "id": "s1", "$fragment": "stat-card", "bindings": { "label": "Live keys", "value": "3", "trend": "sk_live_*" } },
26
- { "id": "s2", "$fragment": "stat-card", "bindings": { "label": "Test keys", "value": "2", "trend": "sk_test_*" } },
27
- { "id": "s3", "$fragment": "stat-card", "bindings": { "label": "Requests (24h)", "value": "184k", "trend": "+12% vs yesterday" } },
28
- { "id": "s4", "$fragment": "stat-card", "bindings": { "label": "Last rotation", "value": "14d ago", "trend": "Next due in 76d" } },
29
-
30
- { "id": "table", "component": "Table",
39
+ {
40
+ "id": "root",
41
+ "component": "Card",
42
+ "children": [
43
+ "hdr",
44
+ "sec",
45
+ "ftr"
46
+ ]
47
+ },
48
+ {
49
+ "id": "hdr",
50
+ "component": "Header",
51
+ "children": [
52
+ "hdr--h-title",
53
+ "hdr--h-desc"
54
+ ]
55
+ },
56
+ {
57
+ "id": "hdr--h-title",
58
+ "component": "Text",
59
+ "slot": "heading",
60
+ "variant": "section",
61
+ "textContent": "API keys"
62
+ },
63
+ {
64
+ "id": "hdr--h-desc",
65
+ "component": "Text",
66
+ "slot": "description",
67
+ "variant": "caption",
68
+ "textContent": "Secrets are shown once at creation. Treat like a password."
69
+ },
70
+ {
71
+ "id": "sec",
72
+ "component": "Section",
73
+ "children": [
74
+ "alert",
75
+ "stats",
76
+ "keys-toolbar",
77
+ "table",
78
+ "keys-title",
79
+ "keys-list",
80
+ "newkey-name"
81
+ ]
82
+ },
83
+ {
84
+ "id": "keys-toolbar",
85
+ "component": "Toolbar",
86
+ "children": [
87
+ "kt-search",
88
+ "kt-new"
89
+ ]
90
+ },
91
+ {
92
+ "id": "kt-search",
93
+ "component": "Input",
94
+ "type": "search",
95
+ "prefix": "magnifying-glass",
96
+ "placeholder": "Search keys by name or scope\u2026"
97
+ },
98
+ {
99
+ "id": "kt-new",
100
+ "component": "Button",
101
+ "variant": "primary",
102
+ "icon": "plus",
103
+ "text": "Create new API key"
104
+ },
105
+ {
106
+ "id": "alert",
107
+ "component": "Alert",
108
+ "variant": "warning",
109
+ "icon": "warning",
110
+ "title": "Secret shown only once at creation",
111
+ "description": "Copy your new key immediately \u2014 we never display the full value again. Rotate compromised keys; Revoke to permanently invalidate."
112
+ },
113
+ {
114
+ "id": "stats",
115
+ "component": "Row",
116
+ "children": [
117
+ "s1",
118
+ "s2",
119
+ "s3",
120
+ "s4"
121
+ ],
122
+ "gap": "4"
123
+ },
124
+ {
125
+ "id": "s1",
126
+ "component": "Card",
127
+ "children": [
128
+ "s1--sc-sec"
129
+ ]
130
+ },
131
+ {
132
+ "id": "s1--sc-sec",
133
+ "component": "Section",
134
+ "children": [
135
+ "s1--sc-col"
136
+ ]
137
+ },
138
+ {
139
+ "id": "s1--sc-col",
140
+ "component": "Column",
141
+ "children": [
142
+ "s1--sc-label",
143
+ "s1--sc-value",
144
+ "s1--sc-trend"
145
+ ],
146
+ "gap": "1"
147
+ },
148
+ {
149
+ "id": "s1--sc-label",
150
+ "component": "Text",
151
+ "variant": "caption",
152
+ "textContent": "Live keys"
153
+ },
154
+ {
155
+ "id": "s1--sc-value",
156
+ "component": "Text",
157
+ "variant": "heading",
158
+ "textContent": "3"
159
+ },
160
+ {
161
+ "id": "s1--sc-trend",
162
+ "component": "Text",
163
+ "variant": "caption",
164
+ "textContent": "sk_live_*"
165
+ },
166
+ {
167
+ "id": "s2",
168
+ "component": "Card",
169
+ "children": [
170
+ "s2--sc-sec"
171
+ ]
172
+ },
173
+ {
174
+ "id": "s2--sc-sec",
175
+ "component": "Section",
176
+ "children": [
177
+ "s2--sc-col"
178
+ ]
179
+ },
180
+ {
181
+ "id": "s2--sc-col",
182
+ "component": "Column",
183
+ "children": [
184
+ "s2--sc-label",
185
+ "s2--sc-value",
186
+ "s2--sc-trend"
187
+ ],
188
+ "gap": "1"
189
+ },
190
+ {
191
+ "id": "s2--sc-label",
192
+ "component": "Text",
193
+ "variant": "caption",
194
+ "textContent": "Test keys"
195
+ },
196
+ {
197
+ "id": "s2--sc-value",
198
+ "component": "Text",
199
+ "variant": "heading",
200
+ "textContent": "2"
201
+ },
202
+ {
203
+ "id": "s2--sc-trend",
204
+ "component": "Text",
205
+ "variant": "caption",
206
+ "textContent": "sk_test_*"
207
+ },
208
+ {
209
+ "id": "s3",
210
+ "component": "Card",
211
+ "children": [
212
+ "s3--sc-sec"
213
+ ]
214
+ },
215
+ {
216
+ "id": "s3--sc-sec",
217
+ "component": "Section",
218
+ "children": [
219
+ "s3--sc-col"
220
+ ]
221
+ },
222
+ {
223
+ "id": "s3--sc-col",
224
+ "component": "Column",
225
+ "children": [
226
+ "s3--sc-label",
227
+ "s3--sc-value",
228
+ "s3--sc-trend"
229
+ ],
230
+ "gap": "1"
231
+ },
232
+ {
233
+ "id": "s3--sc-label",
234
+ "component": "Text",
235
+ "variant": "caption",
236
+ "textContent": "Requests (24h)"
237
+ },
238
+ {
239
+ "id": "s3--sc-value",
240
+ "component": "Text",
241
+ "variant": "heading",
242
+ "textContent": "184k"
243
+ },
244
+ {
245
+ "id": "s3--sc-trend",
246
+ "component": "Text",
247
+ "variant": "caption",
248
+ "textContent": "+12% vs yesterday"
249
+ },
250
+ {
251
+ "id": "s4",
252
+ "component": "Card",
253
+ "children": [
254
+ "s4--sc-sec"
255
+ ]
256
+ },
257
+ {
258
+ "id": "s4--sc-sec",
259
+ "component": "Section",
260
+ "children": [
261
+ "s4--sc-col"
262
+ ]
263
+ },
264
+ {
265
+ "id": "s4--sc-col",
266
+ "component": "Column",
267
+ "children": [
268
+ "s4--sc-label",
269
+ "s4--sc-value",
270
+ "s4--sc-trend"
271
+ ],
272
+ "gap": "1"
273
+ },
274
+ {
275
+ "id": "s4--sc-label",
276
+ "component": "Text",
277
+ "variant": "caption",
278
+ "textContent": "Last rotation"
279
+ },
280
+ {
281
+ "id": "s4--sc-value",
282
+ "component": "Text",
283
+ "variant": "heading",
284
+ "textContent": "14d ago"
285
+ },
286
+ {
287
+ "id": "s4--sc-trend",
288
+ "component": "Text",
289
+ "variant": "caption",
290
+ "textContent": "Next due in 76d"
291
+ },
292
+ {
293
+ "id": "table",
294
+ "component": "Table",
31
295
  "columns": [
32
- { "key": "name", "label": "Name", "type": "text", "flex": 2 },
33
- { "key": "token", "label": "Token", "type": "text", "flex": 2 },
34
- { "key": "scopes", "label": "Scopes", "type": "text", "flex": 2 },
35
- { "key": "lastUsed", "label": "Last used", "type": "text", "width": 120 },
36
- { "key": "status", "label": "Status", "type": "badge", "width": 100 }
296
+ {
297
+ "key": "name",
298
+ "label": "Name",
299
+ "type": "text",
300
+ "flex": 2
301
+ },
302
+ {
303
+ "key": "token",
304
+ "label": "Token",
305
+ "type": "text",
306
+ "flex": 2
307
+ },
308
+ {
309
+ "key": "scopes",
310
+ "label": "Scopes",
311
+ "type": "text",
312
+ "flex": 2
313
+ },
314
+ {
315
+ "key": "lastUsed",
316
+ "label": "Last used",
317
+ "type": "text",
318
+ "width": 120
319
+ },
320
+ {
321
+ "key": "status",
322
+ "label": "Status",
323
+ "type": "badge",
324
+ "width": 100
325
+ }
37
326
  ],
38
327
  "data": [
39
- { "name": "Production backend", "token": "sk_live_••••2Kj", "scopes": "read_all, write_charges", "lastUsed": "3 min ago", "status": "Active" },
40
- { "name": "CI / deploy hooks", "token": "sk_live_••••8Fx", "scopes": "read_deploys, write_deploys", "lastUsed": "2 hours ago", "status": "Active" },
41
- { "name": "Legacy webhook relay", "token": "sk_live_••••p1A", "scopes": "read_all", "lastUsed": "Yesterday", "status": "Rotate" },
42
- { "name": "Staging QA", "token": "sk_test_••••qT3", "scopes": "read_all, write_all", "lastUsed": "1 hour ago", "status": "Test" }
43
- ]
44
- },
45
-
46
- { "id": "keys-title", "component": "Text", "variant": "section", "textContent": "Keys — copy, rotate, revoke" },
47
- { "id": "keys-list", "component": "Column", "gap": "2", "children": ["k1", "k2", "k3"] },
48
- { "id": "k1", "$fragment": "credential-entry-atom", "bindings": { "keyName": "Production backend", "maskedToken": "sk_live_****abc1", "scopes": "read_all · write_charges", "scopeVariant": "info", "lastUsed": "used 3 min ago" } },
49
- { "id": "k2", "$fragment": "credential-entry-atom", "bindings": { "keyName": "CI / deploy hooks", "maskedToken": "sk_live_****d9f2", "scopes": "read_deploys · write_deploys", "scopeVariant": "info", "lastUsed": "used 2h ago" } },
50
- { "id": "k3", "$fragment": "credential-entry-atom", "bindings": { "keyName": "Legacy webhook relay", "maskedToken": "sk_live_****7e4a", "scopes": "read_all", "scopeVariant": "warning", "lastUsed": "used yesterday" } },
51
-
52
- { "id": "newkey-name", "$fragment": "labeled-input", "bindings": { "label": "New key name", "name": "new_key_name", "placeholder": "e.g. Production backend" } },
53
-
54
- { "id": "ftr", "$fragment": "footer-cancel-save",
55
- "bindings": { "cancelLabel": "View docs", "confirmLabel": "Create new key" } }
56
- ]
328
+ {
329
+ "name": "Production backend",
330
+ "token": "sk_live_\u2022\u2022\u2022\u20222Kj",
331
+ "scopes": "read_all, write_charges",
332
+ "lastUsed": "3 min ago",
333
+ "status": "Active"
334
+ },
335
+ {
336
+ "name": "CI / deploy hooks",
337
+ "token": "sk_live_\u2022\u2022\u2022\u20228Fx",
338
+ "scopes": "read_deploys, write_deploys",
339
+ "lastUsed": "2 hours ago",
340
+ "status": "Active"
341
+ },
342
+ {
343
+ "name": "Legacy webhook relay",
344
+ "token": "sk_live_\u2022\u2022\u2022\u2022p1A",
345
+ "scopes": "read_all",
346
+ "lastUsed": "Yesterday",
347
+ "status": "Rotate"
348
+ },
349
+ {
350
+ "name": "Staging QA",
351
+ "token": "sk_test_\u2022\u2022\u2022\u2022qT3",
352
+ "scopes": "read_all, write_all",
353
+ "lastUsed": "1 hour ago",
354
+ "status": "Test"
355
+ }
356
+ ]
357
+ },
358
+ {
359
+ "id": "keys-title",
360
+ "component": "Text",
361
+ "variant": "section",
362
+ "textContent": "Keys \u2014 copy, rotate, revoke"
363
+ },
364
+ {
365
+ "id": "keys-list",
366
+ "component": "Column",
367
+ "gap": "2",
368
+ "children": [
369
+ "k1",
370
+ "k2",
371
+ "k3"
372
+ ]
373
+ },
374
+ {
375
+ "id": "k1",
376
+ "component": "Row",
377
+ "gap": "3",
378
+ "children": [
379
+ "k1--akr-n",
380
+ "k1--akr-tok",
381
+ "k1--akr-scope",
382
+ "k1--akr-last",
383
+ "k1--akr-copy",
384
+ "k1--akr-rot",
385
+ "k1--akr-rev"
386
+ ]
387
+ },
388
+ {
389
+ "id": "k1--akr-n",
390
+ "component": "Text",
391
+ "variant": "label",
392
+ "textContent": "Production backend"
393
+ },
394
+ {
395
+ "id": "k1--akr-tok",
396
+ "component": "Code",
397
+ "textContent": "sk_live_****abc1"
398
+ },
399
+ {
400
+ "id": "k1--akr-scope",
401
+ "component": "Badge",
402
+ "text": "read_all \u00b7 write_charges",
403
+ "variant": "info"
404
+ },
405
+ {
406
+ "id": "k1--akr-last",
407
+ "component": "Text",
408
+ "variant": "caption",
409
+ "textContent": "used 3 min ago"
410
+ },
411
+ {
412
+ "id": "k1--akr-copy",
413
+ "component": "Button",
414
+ "variant": "outline",
415
+ "size": "sm",
416
+ "icon": "copy",
417
+ "text": "Copy"
418
+ },
419
+ {
420
+ "id": "k1--akr-rot",
421
+ "component": "Button",
422
+ "variant": "outline",
423
+ "size": "sm",
424
+ "icon": "arrows-clockwise",
425
+ "text": "Rotate"
426
+ },
427
+ {
428
+ "id": "k1--akr-rev",
429
+ "component": "Button",
430
+ "variant": "danger",
431
+ "size": "sm",
432
+ "icon": "trash",
433
+ "text": "Revoke"
434
+ },
435
+ {
436
+ "id": "k2",
437
+ "component": "Row",
438
+ "gap": "3",
439
+ "children": [
440
+ "k2--akr-n",
441
+ "k2--akr-tok",
442
+ "k2--akr-scope",
443
+ "k2--akr-last",
444
+ "k2--akr-copy",
445
+ "k2--akr-rot",
446
+ "k2--akr-rev"
447
+ ]
448
+ },
449
+ {
450
+ "id": "k2--akr-n",
451
+ "component": "Text",
452
+ "variant": "label",
453
+ "textContent": "CI / deploy hooks"
454
+ },
455
+ {
456
+ "id": "k2--akr-tok",
457
+ "component": "Code",
458
+ "textContent": "sk_live_****d9f2"
459
+ },
460
+ {
461
+ "id": "k2--akr-scope",
462
+ "component": "Badge",
463
+ "text": "read_deploys \u00b7 write_deploys",
464
+ "variant": "info"
465
+ },
466
+ {
467
+ "id": "k2--akr-last",
468
+ "component": "Text",
469
+ "variant": "caption",
470
+ "textContent": "used 2h ago"
471
+ },
472
+ {
473
+ "id": "k2--akr-copy",
474
+ "component": "Button",
475
+ "variant": "outline",
476
+ "size": "sm",
477
+ "icon": "copy",
478
+ "text": "Copy"
479
+ },
480
+ {
481
+ "id": "k2--akr-rot",
482
+ "component": "Button",
483
+ "variant": "outline",
484
+ "size": "sm",
485
+ "icon": "arrows-clockwise",
486
+ "text": "Rotate"
487
+ },
488
+ {
489
+ "id": "k2--akr-rev",
490
+ "component": "Button",
491
+ "variant": "danger",
492
+ "size": "sm",
493
+ "icon": "trash",
494
+ "text": "Revoke"
495
+ },
496
+ {
497
+ "id": "k3",
498
+ "component": "Row",
499
+ "gap": "3",
500
+ "children": [
501
+ "k3--akr-n",
502
+ "k3--akr-tok",
503
+ "k3--akr-scope",
504
+ "k3--akr-last",
505
+ "k3--akr-copy",
506
+ "k3--akr-rot",
507
+ "k3--akr-rev"
508
+ ]
509
+ },
510
+ {
511
+ "id": "k3--akr-n",
512
+ "component": "Text",
513
+ "variant": "label",
514
+ "textContent": "Legacy webhook relay"
515
+ },
516
+ {
517
+ "id": "k3--akr-tok",
518
+ "component": "Code",
519
+ "textContent": "sk_live_****7e4a"
520
+ },
521
+ {
522
+ "id": "k3--akr-scope",
523
+ "component": "Badge",
524
+ "text": "read_all",
525
+ "variant": "warning"
526
+ },
527
+ {
528
+ "id": "k3--akr-last",
529
+ "component": "Text",
530
+ "variant": "caption",
531
+ "textContent": "used yesterday"
532
+ },
533
+ {
534
+ "id": "k3--akr-copy",
535
+ "component": "Button",
536
+ "variant": "outline",
537
+ "size": "sm",
538
+ "icon": "copy",
539
+ "text": "Copy"
540
+ },
541
+ {
542
+ "id": "k3--akr-rot",
543
+ "component": "Button",
544
+ "variant": "outline",
545
+ "size": "sm",
546
+ "icon": "arrows-clockwise",
547
+ "text": "Rotate"
548
+ },
549
+ {
550
+ "id": "k3--akr-rev",
551
+ "component": "Button",
552
+ "variant": "danger",
553
+ "size": "sm",
554
+ "icon": "trash",
555
+ "text": "Revoke"
556
+ },
557
+ {
558
+ "id": "newkey-name",
559
+ "component": "Field",
560
+ "label": "New key name",
561
+ "children": [
562
+ "newkey-name--fi-in"
563
+ ]
564
+ },
565
+ {
566
+ "id": "newkey-name--fi-in",
567
+ "component": "Input",
568
+ "name": "new_key_name",
569
+ "placeholder": "e.g. Production backend",
570
+ "type": "text"
571
+ },
572
+ {
573
+ "id": "ftr",
574
+ "component": "Footer",
575
+ "children": [
576
+ "ftr--f-row"
577
+ ]
578
+ },
579
+ {
580
+ "id": "ftr--f-row",
581
+ "component": "Row",
582
+ "children": [
583
+ "ftr--f-btn-cancel",
584
+ "ftr--f-btn-save"
585
+ ],
586
+ "gap": "2"
587
+ },
588
+ {
589
+ "id": "ftr--f-btn-cancel",
590
+ "component": "Button",
591
+ "variant": "ghost",
592
+ "text": "View docs"
593
+ },
594
+ {
595
+ "id": "ftr--f-btn-save",
596
+ "component": "Button",
597
+ "variant": "primary",
598
+ "text": "Create new key"
599
+ }
600
+ ],
601
+ "_migrated": "2026-05-12 \u2014 inlined per Option C (fragments retired)"
57
602
  }