@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,52 +1,629 @@
1
1
  {
2
2
  "$schema": "../_schema.json",
3
3
  "name": "session-device-mgmt",
4
- "version": 1,
4
+ "version": 2,
5
5
  "kind": "composition",
6
6
  "domain": "settings",
7
- "description": "Active sessions + device management list of signed-in devices with OS, IP, last-seen, current-device marker, revoke actions, and bulk 'sign out all other sessions'. Google/1Password/GitHub account security pattern.",
8
- "tags": { "purpose": ["security", "sessions", "devices", "account"], "complexity": "composed", "layout": "list" },
9
- "keywords": ["sessions", "devices", "security", "sign out", "revoke", "trusted devices", "2fa", "logout", "account", "activity"],
10
- "related": ["team-members-rbac", "api-keys"],
11
-
7
+ "description": "Active sessions + device management \u2014 list of signed-in devices with OS, IP, last-seen, current-device marker, revoke actions, and bulk 'sign out all other sessions'. Google/1Password/GitHub account security pattern.",
8
+ "tags": {
9
+ "purpose": [
10
+ "security",
11
+ "sessions",
12
+ "devices",
13
+ "account"
14
+ ],
15
+ "complexity": "composed",
16
+ "layout": "list"
17
+ },
18
+ "keywords": [
19
+ "sessions",
20
+ "devices",
21
+ "security",
22
+ "sign out",
23
+ "revoke",
24
+ "trusted devices",
25
+ "2fa",
26
+ "logout",
27
+ "account",
28
+ "activity"
29
+ ],
30
+ "related": [
31
+ "team-members-rbac",
32
+ "api-keys"
33
+ ],
12
34
  "template": [
13
- { "id": "root", "component": "Card", "children": ["hdr", "sec", "ftr"] },
14
- { "id": "hdr", "$fragment": "card-header-with-description",
15
- "bindings": { "heading": "Active sessions", "description": "Review devices using your account. Revoke any you don't recognize." } },
16
- { "id": "sec", "component": "Section", "children": ["stats", "list", "sessions-title", "sessions-list", "signout-all"] },
17
-
18
- { "id": "stats", "component": "Row", "children": ["s1", "s2", "s3"], "gap": "4" },
19
- { "id": "s1", "$fragment": "stat-card", "bindings": { "label": "Active sessions", "value": "5", "trend": "Across 3 cities" } },
20
- { "id": "s2", "$fragment": "stat-card", "bindings": { "label": "Trusted devices", "value": "3", "trend": "Skip 2FA prompts" } },
21
- { "id": "s3", "$fragment": "stat-card", "bindings": { "label": "Last password change", "value": "42 days ago", "trend": "Rotate every 90d" } },
22
-
23
- { "id": "list", "component": "Table",
35
+ {
36
+ "id": "root",
37
+ "component": "Card",
38
+ "children": [
39
+ "hdr",
40
+ "sec",
41
+ "ftr"
42
+ ]
43
+ },
44
+ {
45
+ "id": "hdr",
46
+ "component": "Header",
47
+ "children": [
48
+ "hdr--h-title",
49
+ "hdr--h-desc"
50
+ ]
51
+ },
52
+ {
53
+ "id": "hdr--h-title",
54
+ "component": "Text",
55
+ "slot": "heading",
56
+ "variant": "section",
57
+ "textContent": "Active sessions"
58
+ },
59
+ {
60
+ "id": "hdr--h-desc",
61
+ "component": "Text",
62
+ "slot": "description",
63
+ "variant": "caption",
64
+ "textContent": "Review devices using your account. Revoke any you don't recognize."
65
+ },
66
+ {
67
+ "id": "sec",
68
+ "component": "Section",
69
+ "children": [
70
+ "stats",
71
+ "list",
72
+ "sessions-title",
73
+ "sessions-list",
74
+ "signout-all"
75
+ ]
76
+ },
77
+ {
78
+ "id": "stats",
79
+ "component": "Row",
80
+ "children": [
81
+ "s1",
82
+ "s2",
83
+ "s3"
84
+ ],
85
+ "gap": "4"
86
+ },
87
+ {
88
+ "id": "s1",
89
+ "component": "Card",
90
+ "children": [
91
+ "s1--sc-sec"
92
+ ]
93
+ },
94
+ {
95
+ "id": "s1--sc-sec",
96
+ "component": "Section",
97
+ "children": [
98
+ "s1--sc-col"
99
+ ]
100
+ },
101
+ {
102
+ "id": "s1--sc-col",
103
+ "component": "Column",
104
+ "children": [
105
+ "s1--sc-label",
106
+ "s1--sc-value",
107
+ "s1--sc-trend"
108
+ ],
109
+ "gap": "1"
110
+ },
111
+ {
112
+ "id": "s1--sc-label",
113
+ "component": "Text",
114
+ "variant": "caption",
115
+ "textContent": "Active sessions"
116
+ },
117
+ {
118
+ "id": "s1--sc-value",
119
+ "component": "Text",
120
+ "variant": "heading",
121
+ "textContent": "5"
122
+ },
123
+ {
124
+ "id": "s1--sc-trend",
125
+ "component": "Text",
126
+ "variant": "caption",
127
+ "textContent": "Across 3 cities"
128
+ },
129
+ {
130
+ "id": "s2",
131
+ "component": "Card",
132
+ "children": [
133
+ "s2--sc-sec"
134
+ ]
135
+ },
136
+ {
137
+ "id": "s2--sc-sec",
138
+ "component": "Section",
139
+ "children": [
140
+ "s2--sc-col"
141
+ ]
142
+ },
143
+ {
144
+ "id": "s2--sc-col",
145
+ "component": "Column",
146
+ "children": [
147
+ "s2--sc-label",
148
+ "s2--sc-value",
149
+ "s2--sc-trend"
150
+ ],
151
+ "gap": "1"
152
+ },
153
+ {
154
+ "id": "s2--sc-label",
155
+ "component": "Text",
156
+ "variant": "caption",
157
+ "textContent": "Trusted devices"
158
+ },
159
+ {
160
+ "id": "s2--sc-value",
161
+ "component": "Text",
162
+ "variant": "heading",
163
+ "textContent": "3"
164
+ },
165
+ {
166
+ "id": "s2--sc-trend",
167
+ "component": "Text",
168
+ "variant": "caption",
169
+ "textContent": "Skip 2FA prompts"
170
+ },
171
+ {
172
+ "id": "s3",
173
+ "component": "Card",
174
+ "children": [
175
+ "s3--sc-sec"
176
+ ]
177
+ },
178
+ {
179
+ "id": "s3--sc-sec",
180
+ "component": "Section",
181
+ "children": [
182
+ "s3--sc-col"
183
+ ]
184
+ },
185
+ {
186
+ "id": "s3--sc-col",
187
+ "component": "Column",
188
+ "children": [
189
+ "s3--sc-label",
190
+ "s3--sc-value",
191
+ "s3--sc-trend"
192
+ ],
193
+ "gap": "1"
194
+ },
195
+ {
196
+ "id": "s3--sc-label",
197
+ "component": "Text",
198
+ "variant": "caption",
199
+ "textContent": "Last password change"
200
+ },
201
+ {
202
+ "id": "s3--sc-value",
203
+ "component": "Text",
204
+ "variant": "heading",
205
+ "textContent": "42 days ago"
206
+ },
207
+ {
208
+ "id": "s3--sc-trend",
209
+ "component": "Text",
210
+ "variant": "caption",
211
+ "textContent": "Rotate every 90d"
212
+ },
213
+ {
214
+ "id": "list",
215
+ "component": "Table",
24
216
  "columns": [
25
- { "key": "device", "label": "Device", "type": "text", "flex": 2 },
26
- { "key": "location", "label": "Location", "type": "text", "flex": 2 },
27
- { "key": "ip", "label": "IP", "type": "text", "width": 140 },
28
- { "key": "lastSeen", "label": "Last active", "type": "text", "width": 140 },
29
- { "key": "status", "label": "Status", "type": "badge", "width": 140 }
217
+ {
218
+ "key": "device",
219
+ "label": "Device",
220
+ "type": "text",
221
+ "flex": 2
222
+ },
223
+ {
224
+ "key": "location",
225
+ "label": "Location",
226
+ "type": "text",
227
+ "flex": 2
228
+ },
229
+ {
230
+ "key": "ip",
231
+ "label": "IP",
232
+ "type": "text",
233
+ "width": 140
234
+ },
235
+ {
236
+ "key": "lastSeen",
237
+ "label": "Last active",
238
+ "type": "text",
239
+ "width": 140
240
+ },
241
+ {
242
+ "key": "status",
243
+ "label": "Status",
244
+ "type": "badge",
245
+ "width": 140
246
+ }
30
247
  ],
31
248
  "data": [
32
- { "device": "MacBook Pro · Chrome 128", "location": "San Francisco, CA", "ip": "73.15.248.12", "lastSeen": "Just now", "status": "This device" },
33
- { "device": "iPhone 15 · Acme iOS 4.12", "location": "San Francisco, CA", "ip": "73.15.248.12", "lastSeen": "14 min ago", "status": "Trusted" },
34
- { "device": "ThinkPad X1 · Firefox 123", "location": "Oakland, CA", "ip": "73.15.248.8", "lastSeen": "2 days ago", "status": "Trusted" },
35
- { "device": "iPad Pro · Safari", "location": "Los Angeles, CA", "ip": "98.148.22.174", "lastSeen": "6 days ago", "status": "Active" },
36
- { "device": "Unknown Windows 11 · Firefox", "location": "Amsterdam, Netherlands", "ip": "198.51.100.42", "lastSeen": "4 hours ago", "status": "Unrecognized" }
37
- ]
38
- },
39
-
40
- { "id": "sessions-title", "component": "Text", "variant": "section", "textContent": "Devices — revoke unrecognized sessions" },
41
- { "id": "sessions-list", "component": "Column", "gap": "2", "children": ["sd1", "sd2", "sd3", "sd4"] },
42
- { "id": "sd1", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "laptop", "deviceName": "MacBook Pro", "deviceMeta": "Chrome 128 · macOS 14.4", "ipAddress": "73.15.248.12 · San Francisco", "lastSeen": "Active now", "badgeLabel": "Current device", "badgeVariant": "success", "revokeLabel": "" } },
43
- { "id": "sd2", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "device-mobile", "deviceName": "iPhone 15", "deviceMeta": "Acme iOS 4.12", "ipAddress": "73.15.248.12 · San Francisco", "lastSeen": "14 min ago", "badgeLabel": "Trusted", "badgeVariant": "info" } },
44
- { "id": "sd3", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "laptop", "deviceName": "ThinkPad X1", "deviceMeta": "Firefox 123 · Ubuntu 24.04", "ipAddress": "73.15.248.8 · Oakland", "lastSeen": "2 days ago", "badgeLabel": "Trusted", "badgeVariant": "info" } },
45
- { "id": "sd4", "$fragment": "signed-in-entry-atom", "bindings": { "deviceIcon": "warning", "deviceName": "Unknown Windows 11", "deviceMeta": "Firefox · Unrecognized", "ipAddress": "198.51.100.42 · Amsterdam", "lastSeen": "4 hours ago", "badgeLabel": "Unrecognized", "badgeVariant": "danger" } },
46
-
47
- { "id": "signout-all", "component": "Button", "variant": "danger", "icon": "sign-out", "text": "Sign out all other sessions", "block": true },
48
-
49
- { "id": "ftr", "$fragment": "footer-cancel-save",
50
- "bindings": { "cancelLabel": "View activity log", "confirmLabel": "Sign out all other sessions" } }
51
- ]
249
+ {
250
+ "device": "MacBook Pro \u00b7 Chrome 128",
251
+ "location": "San Francisco, CA",
252
+ "ip": "73.15.248.12",
253
+ "lastSeen": "Just now",
254
+ "status": "This device"
255
+ },
256
+ {
257
+ "device": "iPhone 15 \u00b7 Acme iOS 4.12",
258
+ "location": "San Francisco, CA",
259
+ "ip": "73.15.248.12",
260
+ "lastSeen": "14 min ago",
261
+ "status": "Trusted"
262
+ },
263
+ {
264
+ "device": "ThinkPad X1 \u00b7 Firefox 123",
265
+ "location": "Oakland, CA",
266
+ "ip": "73.15.248.8",
267
+ "lastSeen": "2 days ago",
268
+ "status": "Trusted"
269
+ },
270
+ {
271
+ "device": "iPad Pro \u00b7 Safari",
272
+ "location": "Los Angeles, CA",
273
+ "ip": "98.148.22.174",
274
+ "lastSeen": "6 days ago",
275
+ "status": "Active"
276
+ },
277
+ {
278
+ "device": "Unknown Windows 11 \u00b7 Firefox",
279
+ "location": "Amsterdam, Netherlands",
280
+ "ip": "198.51.100.42",
281
+ "lastSeen": "4 hours ago",
282
+ "status": "Unrecognized"
283
+ }
284
+ ]
285
+ },
286
+ {
287
+ "id": "sessions-title",
288
+ "component": "Text",
289
+ "variant": "section",
290
+ "textContent": "Devices \u2014 revoke unrecognized sessions"
291
+ },
292
+ {
293
+ "id": "sessions-list",
294
+ "component": "Column",
295
+ "gap": "2",
296
+ "children": [
297
+ "sd1",
298
+ "sd2",
299
+ "sd3",
300
+ "sd4"
301
+ ]
302
+ },
303
+ {
304
+ "id": "sd1",
305
+ "component": "Row",
306
+ "gap": "3",
307
+ "children": [
308
+ "sd1--sdr-ic",
309
+ "sd1--sdr-dev",
310
+ "sd1--sdr-meta",
311
+ "sd1--sdr-cur",
312
+ "sd1--sdr-rev"
313
+ ]
314
+ },
315
+ {
316
+ "id": "sd1--sdr-ic",
317
+ "component": "Icon",
318
+ "name": "laptop"
319
+ },
320
+ {
321
+ "id": "sd1--sdr-dev",
322
+ "component": "Column",
323
+ "gap": "0",
324
+ "children": [
325
+ "sd1--sdr-n",
326
+ "sd1--sdr-b"
327
+ ]
328
+ },
329
+ {
330
+ "id": "sd1--sdr-n",
331
+ "component": "Text",
332
+ "variant": "label",
333
+ "textContent": "MacBook Pro"
334
+ },
335
+ {
336
+ "id": "sd1--sdr-b",
337
+ "component": "Text",
338
+ "variant": "caption",
339
+ "textContent": "Chrome 128 \u00b7 macOS 14.4"
340
+ },
341
+ {
342
+ "id": "sd1--sdr-meta",
343
+ "component": "Column",
344
+ "gap": "0",
345
+ "children": [
346
+ "sd1--sdr-ip",
347
+ "sd1--sdr-ls"
348
+ ]
349
+ },
350
+ {
351
+ "id": "sd1--sdr-ip",
352
+ "component": "Text",
353
+ "variant": "caption",
354
+ "textContent": "73.15.248.12 \u00b7 San Francisco"
355
+ },
356
+ {
357
+ "id": "sd1--sdr-ls",
358
+ "component": "Text",
359
+ "variant": "caption",
360
+ "textContent": "Active now"
361
+ },
362
+ {
363
+ "id": "sd1--sdr-cur",
364
+ "component": "Badge",
365
+ "text": "Current device",
366
+ "variant": "success"
367
+ },
368
+ {
369
+ "id": "sd1--sdr-rev",
370
+ "component": "Button",
371
+ "variant": "danger",
372
+ "size": "sm",
373
+ "text": ""
374
+ },
375
+ {
376
+ "id": "sd2",
377
+ "component": "Row",
378
+ "gap": "3",
379
+ "children": [
380
+ "sd2--sdr-ic",
381
+ "sd2--sdr-dev",
382
+ "sd2--sdr-meta",
383
+ "sd2--sdr-cur",
384
+ "sd2--sdr-rev"
385
+ ]
386
+ },
387
+ {
388
+ "id": "sd2--sdr-ic",
389
+ "component": "Icon",
390
+ "name": "device-mobile"
391
+ },
392
+ {
393
+ "id": "sd2--sdr-dev",
394
+ "component": "Column",
395
+ "gap": "0",
396
+ "children": [
397
+ "sd2--sdr-n",
398
+ "sd2--sdr-b"
399
+ ]
400
+ },
401
+ {
402
+ "id": "sd2--sdr-n",
403
+ "component": "Text",
404
+ "variant": "label",
405
+ "textContent": "iPhone 15"
406
+ },
407
+ {
408
+ "id": "sd2--sdr-b",
409
+ "component": "Text",
410
+ "variant": "caption",
411
+ "textContent": "Acme iOS 4.12"
412
+ },
413
+ {
414
+ "id": "sd2--sdr-meta",
415
+ "component": "Column",
416
+ "gap": "0",
417
+ "children": [
418
+ "sd2--sdr-ip",
419
+ "sd2--sdr-ls"
420
+ ]
421
+ },
422
+ {
423
+ "id": "sd2--sdr-ip",
424
+ "component": "Text",
425
+ "variant": "caption",
426
+ "textContent": "73.15.248.12 \u00b7 San Francisco"
427
+ },
428
+ {
429
+ "id": "sd2--sdr-ls",
430
+ "component": "Text",
431
+ "variant": "caption",
432
+ "textContent": "14 min ago"
433
+ },
434
+ {
435
+ "id": "sd2--sdr-cur",
436
+ "component": "Badge",
437
+ "text": "Trusted",
438
+ "variant": "info"
439
+ },
440
+ {
441
+ "id": "sd2--sdr-rev",
442
+ "component": "Button",
443
+ "variant": "danger",
444
+ "size": "sm",
445
+ "text": "Revoke"
446
+ },
447
+ {
448
+ "id": "sd3",
449
+ "component": "Row",
450
+ "gap": "3",
451
+ "children": [
452
+ "sd3--sdr-ic",
453
+ "sd3--sdr-dev",
454
+ "sd3--sdr-meta",
455
+ "sd3--sdr-cur",
456
+ "sd3--sdr-rev"
457
+ ]
458
+ },
459
+ {
460
+ "id": "sd3--sdr-ic",
461
+ "component": "Icon",
462
+ "name": "laptop"
463
+ },
464
+ {
465
+ "id": "sd3--sdr-dev",
466
+ "component": "Column",
467
+ "gap": "0",
468
+ "children": [
469
+ "sd3--sdr-n",
470
+ "sd3--sdr-b"
471
+ ]
472
+ },
473
+ {
474
+ "id": "sd3--sdr-n",
475
+ "component": "Text",
476
+ "variant": "label",
477
+ "textContent": "ThinkPad X1"
478
+ },
479
+ {
480
+ "id": "sd3--sdr-b",
481
+ "component": "Text",
482
+ "variant": "caption",
483
+ "textContent": "Firefox 123 \u00b7 Ubuntu 24.04"
484
+ },
485
+ {
486
+ "id": "sd3--sdr-meta",
487
+ "component": "Column",
488
+ "gap": "0",
489
+ "children": [
490
+ "sd3--sdr-ip",
491
+ "sd3--sdr-ls"
492
+ ]
493
+ },
494
+ {
495
+ "id": "sd3--sdr-ip",
496
+ "component": "Text",
497
+ "variant": "caption",
498
+ "textContent": "73.15.248.8 \u00b7 Oakland"
499
+ },
500
+ {
501
+ "id": "sd3--sdr-ls",
502
+ "component": "Text",
503
+ "variant": "caption",
504
+ "textContent": "2 days ago"
505
+ },
506
+ {
507
+ "id": "sd3--sdr-cur",
508
+ "component": "Badge",
509
+ "text": "Trusted",
510
+ "variant": "info"
511
+ },
512
+ {
513
+ "id": "sd3--sdr-rev",
514
+ "component": "Button",
515
+ "variant": "danger",
516
+ "size": "sm",
517
+ "text": "Revoke"
518
+ },
519
+ {
520
+ "id": "sd4",
521
+ "component": "Row",
522
+ "gap": "3",
523
+ "children": [
524
+ "sd4--sdr-ic",
525
+ "sd4--sdr-dev",
526
+ "sd4--sdr-meta",
527
+ "sd4--sdr-cur",
528
+ "sd4--sdr-rev"
529
+ ]
530
+ },
531
+ {
532
+ "id": "sd4--sdr-ic",
533
+ "component": "Icon",
534
+ "name": "warning"
535
+ },
536
+ {
537
+ "id": "sd4--sdr-dev",
538
+ "component": "Column",
539
+ "gap": "0",
540
+ "children": [
541
+ "sd4--sdr-n",
542
+ "sd4--sdr-b"
543
+ ]
544
+ },
545
+ {
546
+ "id": "sd4--sdr-n",
547
+ "component": "Text",
548
+ "variant": "label",
549
+ "textContent": "Unknown Windows 11"
550
+ },
551
+ {
552
+ "id": "sd4--sdr-b",
553
+ "component": "Text",
554
+ "variant": "caption",
555
+ "textContent": "Firefox \u00b7 Unrecognized"
556
+ },
557
+ {
558
+ "id": "sd4--sdr-meta",
559
+ "component": "Column",
560
+ "gap": "0",
561
+ "children": [
562
+ "sd4--sdr-ip",
563
+ "sd4--sdr-ls"
564
+ ]
565
+ },
566
+ {
567
+ "id": "sd4--sdr-ip",
568
+ "component": "Text",
569
+ "variant": "caption",
570
+ "textContent": "198.51.100.42 \u00b7 Amsterdam"
571
+ },
572
+ {
573
+ "id": "sd4--sdr-ls",
574
+ "component": "Text",
575
+ "variant": "caption",
576
+ "textContent": "4 hours ago"
577
+ },
578
+ {
579
+ "id": "sd4--sdr-cur",
580
+ "component": "Badge",
581
+ "text": "Unrecognized",
582
+ "variant": "danger"
583
+ },
584
+ {
585
+ "id": "sd4--sdr-rev",
586
+ "component": "Button",
587
+ "variant": "danger",
588
+ "size": "sm",
589
+ "text": "Revoke"
590
+ },
591
+ {
592
+ "id": "signout-all",
593
+ "component": "Button",
594
+ "variant": "danger",
595
+ "icon": "sign-out",
596
+ "text": "Sign out all other sessions",
597
+ "stretch": true
598
+ },
599
+ {
600
+ "id": "ftr",
601
+ "component": "Footer",
602
+ "children": [
603
+ "ftr--f-row"
604
+ ]
605
+ },
606
+ {
607
+ "id": "ftr--f-row",
608
+ "component": "Row",
609
+ "children": [
610
+ "ftr--f-btn-cancel",
611
+ "ftr--f-btn-save"
612
+ ],
613
+ "gap": "2"
614
+ },
615
+ {
616
+ "id": "ftr--f-btn-cancel",
617
+ "component": "Button",
618
+ "variant": "ghost",
619
+ "text": "View activity log"
620
+ },
621
+ {
622
+ "id": "ftr--f-btn-save",
623
+ "component": "Button",
624
+ "variant": "primary",
625
+ "text": "Sign out all other sessions"
626
+ }
627
+ ],
628
+ "_migrated": "2026-05-12 \u2014 inlined per Option C (fragments retired)"
52
629
  }