@utopia-studio-design/design-system-cli 0.8.0 → 0.8.1

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 (240) hide show
  1. package/bin/utopia-ds-mcp.mjs +5 -15
  2. package/bin/utopia-ds.mjs +3 -16
  3. package/data/docs/create-a-brandbook.md +11 -1
  4. package/data/manifests/blocks.json +21 -230
  5. package/data/manifests/patterns.json +0 -330
  6. package/lib/api.mjs +6 -193
  7. package/lib/brandbook-validation.mjs +112 -0
  8. package/package.json +2 -2
  9. package/data/blocks/semantic-pattern-parts/AuthParts.tsx +0 -48
  10. package/data/blocks/semantic-pattern-parts/ChoiceCards.tsx +0 -7
  11. package/data/blocks/semantic-pattern-parts/ListFilters.tsx +0 -9
  12. package/data/blocks/semantic-pattern-parts/OutcomeNotice.tsx +0 -7
  13. package/data/blocks/semantic-pattern-parts/PatternParts.tsx +0 -7
  14. package/data/blocks/semantic-pattern-parts/ProductParts.tsx +0 -38
  15. package/data/blocks/semantic-pattern-parts/ProgressSteps.tsx +0 -6
  16. package/data/blocks/semantic-pattern-parts/ReviewList.tsx +0 -7
  17. package/data/blocks/semantic-pattern-parts/ValidatedField.tsx +0 -8
  18. package/data/blocks/semantic-pattern-parts/WorkflowParts.tsx +0 -339
  19. package/data/blocks/semantic-pattern-parts/auth-parts.css +0 -27
  20. package/data/blocks/semantic-pattern-parts/pattern-parts.css +0 -25
  21. package/data/blocks/semantic-pattern-parts/product-parts.css +0 -25
  22. package/data/blocks/semantic-pattern-parts/types.ts +0 -3
  23. package/data/blocks/semantic-pattern-parts/workflow-parts.css +0 -118
  24. package/data/blocks/ux-pattern-examples/AccessExamples.tsx +0 -46
  25. package/data/blocks/ux-pattern-examples/AccountExamples.tsx +0 -133
  26. package/data/blocks/ux-pattern-examples/OnboardingExample.tsx +0 -15
  27. package/data/blocks/ux-pattern-examples/ProductExamples.tsx +0 -79
  28. package/data/blocks/ux-pattern-examples/ReviewExample.tsx +0 -14
  29. package/data/blocks/ux-pattern-examples/SignupExample.tsx +0 -22
  30. package/data/blocks/ux-pattern-examples/WorkflowExample.tsx +0 -1761
  31. package/data/blocks/ux-pattern-examples/WorkflowExamples.tsx +0 -190
  32. package/data/blocks/ux-pattern-examples/copy.ts +0 -6
  33. package/data/blocks/ux-pattern-examples/ux-examples.css +0 -18
  34. package/data/blocks/ux-pattern-examples/workflow-copy.ts +0 -76
  35. package/data/blocks/ux-pattern-examples/workflow-definitions.ts +0 -1291
  36. package/data/docs/ui-parts-qa.md +0 -172
  37. package/data/docs/ui-parts.md +0 -105
  38. package/data/docs/ux-pattern-adaptation-qa.md +0 -38
  39. package/data/docs/ux-pattern-adaptation.md +0 -41
  40. package/data/docs/ux-pattern-migration.md +0 -111
  41. package/data/docs/ux-pattern-release-2026-09-13.md +0 -26
  42. package/data/docs/ux-source-evidence/account-auth.json +0 -41
  43. package/data/docs/ux-source-evidence/account-forgot-password.json +0 -36
  44. package/data/docs/ux-source-evidence/account-invite.json +0 -63
  45. package/data/docs/ux-source-evidence/account-locked.json +0 -63
  46. package/data/docs/ux-source-evidence/account-login.json +0 -28
  47. package/data/docs/ux-source-evidence/account-mfa.json +0 -62
  48. package/data/docs/ux-source-evidence/account-onboarding-credentials.json +0 -52
  49. package/data/docs/ux-source-evidence/account-onboarding-legal.json +0 -56
  50. package/data/docs/ux-source-evidence/account-onboarding-orientation.json +0 -66
  51. package/data/docs/ux-source-evidence/account-onboarding-profile.json +0 -50
  52. package/data/docs/ux-source-evidence/account-onboarding.json +0 -69
  53. package/data/docs/ux-source-evidence/account-reset-password.json +0 -27
  54. package/data/docs/ux-source-evidence/account-session-expired.json +0 -62
  55. package/data/docs/ux-source-evidence/account-signup.json +0 -33
  56. package/data/docs/ux-source-evidence/account-verify-email.json +0 -34
  57. package/data/docs/ux-source-evidence/account-welcome.json +0 -41
  58. package/data/docs/ux-source-evidence/admin-analytics.json +0 -54
  59. package/data/docs/ux-source-evidence/admin-audit.json +0 -31
  60. package/data/docs/ux-source-evidence/admin-broadcasts-new.json +0 -36
  61. package/data/docs/ux-source-evidence/admin-broadcasts.json +0 -41
  62. package/data/docs/ux-source-evidence/admin-closures.json +0 -52
  63. package/data/docs/ux-source-evidence/admin-devices.json +0 -51
  64. package/data/docs/ux-source-evidence/admin-escalations.json +0 -35
  65. package/data/docs/ux-source-evidence/admin-incidents.json +0 -54
  66. package/data/docs/ux-source-evidence/admin-loading.json +0 -17
  67. package/data/docs/ux-source-evidence/admin-onboarding-detail.json +0 -80
  68. package/data/docs/ux-source-evidence/admin-onboarding.json +0 -62
  69. package/data/docs/ux-source-evidence/admin-payments.json +0 -45
  70. package/data/docs/ux-source-evidence/admin-providers.json +0 -38
  71. package/data/docs/ux-source-evidence/admin-settings.json +0 -18
  72. package/data/docs/ux-source-evidence/admin-subscriptions-detail-allocate.json +0 -42
  73. package/data/docs/ux-source-evidence/admin-subscriptions-detail.json +0 -48
  74. package/data/docs/ux-source-evidence/admin-subscriptions-new.json +0 -43
  75. package/data/docs/ux-source-evidence/admin-subscriptions.json +0 -41
  76. package/data/docs/ux-source-evidence/admin-transactions.json +0 -41
  77. package/data/docs/ux-source-evidence/error.json +0 -30
  78. package/data/docs/ux-source-evidence/loading.json +0 -19
  79. package/data/docs/ux-source-evidence/marketing-blog.json +0 -48
  80. package/data/docs/ux-source-evidence/marketing-contact.json +0 -36
  81. package/data/docs/ux-source-evidence/marketing.json +0 -64
  82. package/data/docs/ux-source-evidence/not-found.json +0 -28
  83. package/data/docs/ux-source-evidence/portal-loading.json +0 -17
  84. package/data/docs/ux-source-evidence/portal-mentor-messages.json +0 -31
  85. package/data/docs/ux-source-evidence/portal-mentor-profile.json +0 -23
  86. package/data/docs/ux-source-evidence/portal-mentor-requests-detail.json +0 -54
  87. package/data/docs/ux-source-evidence/portal-mentor-sessions-detail-assess.json +0 -42
  88. package/data/docs/ux-source-evidence/portal-mentor-settings.json +0 -18
  89. package/data/docs/ux-source-evidence/portal-mentor.json +0 -38
  90. package/data/docs/ux-source-evidence/portal-sessions-detail-live.json +0 -48
  91. package/data/docs/ux-source-evidence/portal-sponsor-billing.json +0 -28
  92. package/data/docs/ux-source-evidence/portal-sponsor-profile.json +0 -22
  93. package/data/docs/ux-source-evidence/portal-sponsor-sessions.json +0 -28
  94. package/data/docs/ux-source-evidence/portal-sponsor-settings.json +0 -18
  95. package/data/docs/ux-source-evidence/portal-sponsor-trainees.json +0 -36
  96. package/data/docs/ux-source-evidence/portal-sponsor.json +0 -52
  97. package/data/docs/ux-source-evidence/portal-trainee-competency.json +0 -42
  98. package/data/docs/ux-source-evidence/portal-trainee-credits.json +0 -40
  99. package/data/docs/ux-source-evidence/portal-trainee-mentors.json +0 -48
  100. package/data/docs/ux-source-evidence/portal-trainee-messages.json +0 -32
  101. package/data/docs/ux-source-evidence/portal-trainee-notifications.json +0 -35
  102. package/data/docs/ux-source-evidence/portal-trainee-profile.json +0 -26
  103. package/data/docs/ux-source-evidence/portal-trainee-request.json +0 -54
  104. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +0 -36
  105. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +0 -42
  106. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail.json +0 -55
  107. package/data/docs/ux-source-evidence/portal-trainee-sessions.json +0 -36
  108. package/data/docs/ux-source-evidence/portal-trainee-settings-notifications.json +0 -38
  109. package/data/docs/ux-source-evidence/portal-trainee-settings.json +0 -18
  110. package/data/docs/ux-source-evidence/portal-trainee.json +0 -44
  111. package/data/docs/ux-source-evidence/portal-tv-detail.json +0 -39
  112. package/data/docs/ux-source-evidence/portal-tv.json +0 -44
  113. package/data/docs/ux-source-evidence/shared-admin-admin-shell.json +0 -35
  114. package/data/docs/ux-source-evidence/shared-auth-auth-primitives.json +0 -105
  115. package/data/docs/ux-source-evidence/shared-auth-auth-shell.json +0 -25
  116. package/data/docs/ux-source-evidence/shared-auth-onboarding-primitives.json +0 -52
  117. package/data/docs/ux-source-evidence/shared-auth-onboarding-shell.json +0 -28
  118. package/data/docs/ux-source-evidence/shared-auth-status-indicator.json +0 -41
  119. package/data/docs/ux-source-evidence/shared-portal-empty-state.json +0 -24
  120. package/data/docs/ux-source-evidence/shared-portal-loading-skeleton.json +0 -27
  121. package/data/docs/ux-source-evidence/shared-portal-notifications-dropdown.json +0 -39
  122. package/data/docs/ux-source-evidence/shared-portal-portal-shell.json +0 -36
  123. package/data/docs/ux-source-evidence/shared-portal-profile-form.json +0 -32
  124. package/data/docs/ux-source-evidence/shared-portal-settings-view.json +0 -81
  125. package/data/docs/ux-source-evidence/shared-portal-usage-sparkline.json +0 -18
  126. package/data/docs/ux-source-evidence/shared-portal-user-menu.json +0 -34
  127. package/data/manifests/ui-patterns.json +0 -1029
  128. package/data/manifests/ux-examples.json +0 -2177
  129. package/data/manifests/ux-patterns.json +0 -1135
  130. package/data/manifests/ux-source-inventory.json +0 -4669
  131. package/data/ui-parts/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +0 -87
  132. package/data/ui-parts/blocks/analytics-dashboard/analytics-dashboard.css +0 -92
  133. package/data/ui-parts/blocks/semantic-pattern-parts/AuthParts.tsx +0 -48
  134. package/data/ui-parts/blocks/semantic-pattern-parts/ChoiceCards.tsx +0 -7
  135. package/data/ui-parts/blocks/semantic-pattern-parts/ListFilters.tsx +0 -9
  136. package/data/ui-parts/blocks/semantic-pattern-parts/OutcomeNotice.tsx +0 -7
  137. package/data/ui-parts/blocks/semantic-pattern-parts/ProductParts.tsx +0 -38
  138. package/data/ui-parts/blocks/semantic-pattern-parts/ProgressSteps.tsx +0 -6
  139. package/data/ui-parts/blocks/semantic-pattern-parts/ReviewList.tsx +0 -7
  140. package/data/ui-parts/blocks/semantic-pattern-parts/ValidatedField.tsx +0 -8
  141. package/data/ui-parts/blocks/semantic-pattern-parts/WorkflowParts.tsx +0 -339
  142. package/data/ui-parts/blocks/semantic-pattern-parts/auth-parts.css +0 -27
  143. package/data/ui-parts/blocks/semantic-pattern-parts/pattern-parts.css +0 -25
  144. package/data/ui-parts/blocks/semantic-pattern-parts/product-parts.css +0 -25
  145. package/data/ui-parts/blocks/semantic-pattern-parts/types.ts +0 -3
  146. package/data/ui-parts/blocks/semantic-pattern-parts/workflow-parts.css +0 -118
  147. package/data/ui-parts/blocks/ux-pattern-examples/AccessExamples.tsx +0 -46
  148. package/data/ui-parts/blocks/ux-pattern-examples/AccountExamples.tsx +0 -133
  149. package/data/ui-parts/blocks/ux-pattern-examples/ProductExamples.tsx +0 -79
  150. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExample.tsx +0 -1761
  151. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExamples.tsx +0 -190
  152. package/data/ui-parts/blocks/ux-pattern-examples/copy.ts +0 -6
  153. package/data/ui-parts/blocks/ux-pattern-examples/ux-examples.css +0 -18
  154. package/data/ui-parts/blocks/ux-pattern-examples/workflow-copy.ts +0 -76
  155. package/data/ui-parts/blocks/ux-pattern-examples/workflow-definitions.ts +0 -1291
  156. package/data/ux-source-evidence/account-auth.json +0 -41
  157. package/data/ux-source-evidence/account-forgot-password.json +0 -36
  158. package/data/ux-source-evidence/account-invite.json +0 -63
  159. package/data/ux-source-evidence/account-locked.json +0 -63
  160. package/data/ux-source-evidence/account-login.json +0 -28
  161. package/data/ux-source-evidence/account-mfa.json +0 -62
  162. package/data/ux-source-evidence/account-onboarding-credentials.json +0 -52
  163. package/data/ux-source-evidence/account-onboarding-legal.json +0 -56
  164. package/data/ux-source-evidence/account-onboarding-orientation.json +0 -66
  165. package/data/ux-source-evidence/account-onboarding-profile.json +0 -50
  166. package/data/ux-source-evidence/account-onboarding.json +0 -69
  167. package/data/ux-source-evidence/account-reset-password.json +0 -27
  168. package/data/ux-source-evidence/account-session-expired.json +0 -62
  169. package/data/ux-source-evidence/account-signup.json +0 -33
  170. package/data/ux-source-evidence/account-verify-email.json +0 -34
  171. package/data/ux-source-evidence/account-welcome.json +0 -41
  172. package/data/ux-source-evidence/admin-analytics.json +0 -54
  173. package/data/ux-source-evidence/admin-audit.json +0 -31
  174. package/data/ux-source-evidence/admin-broadcasts-new.json +0 -36
  175. package/data/ux-source-evidence/admin-broadcasts.json +0 -41
  176. package/data/ux-source-evidence/admin-closures.json +0 -52
  177. package/data/ux-source-evidence/admin-devices.json +0 -51
  178. package/data/ux-source-evidence/admin-escalations.json +0 -35
  179. package/data/ux-source-evidence/admin-incidents.json +0 -54
  180. package/data/ux-source-evidence/admin-loading.json +0 -17
  181. package/data/ux-source-evidence/admin-onboarding-detail.json +0 -80
  182. package/data/ux-source-evidence/admin-onboarding.json +0 -62
  183. package/data/ux-source-evidence/admin-payments.json +0 -45
  184. package/data/ux-source-evidence/admin-providers.json +0 -38
  185. package/data/ux-source-evidence/admin-settings.json +0 -18
  186. package/data/ux-source-evidence/admin-subscriptions-detail-allocate.json +0 -42
  187. package/data/ux-source-evidence/admin-subscriptions-detail.json +0 -48
  188. package/data/ux-source-evidence/admin-subscriptions-new.json +0 -43
  189. package/data/ux-source-evidence/admin-subscriptions.json +0 -41
  190. package/data/ux-source-evidence/admin-transactions.json +0 -41
  191. package/data/ux-source-evidence/error.json +0 -30
  192. package/data/ux-source-evidence/loading.json +0 -19
  193. package/data/ux-source-evidence/marketing-blog.json +0 -48
  194. package/data/ux-source-evidence/marketing-contact.json +0 -36
  195. package/data/ux-source-evidence/marketing.json +0 -64
  196. package/data/ux-source-evidence/not-found.json +0 -28
  197. package/data/ux-source-evidence/portal-loading.json +0 -17
  198. package/data/ux-source-evidence/portal-mentor-messages.json +0 -31
  199. package/data/ux-source-evidence/portal-mentor-profile.json +0 -23
  200. package/data/ux-source-evidence/portal-mentor-requests-detail.json +0 -54
  201. package/data/ux-source-evidence/portal-mentor-sessions-detail-assess.json +0 -42
  202. package/data/ux-source-evidence/portal-mentor-settings.json +0 -18
  203. package/data/ux-source-evidence/portal-mentor.json +0 -38
  204. package/data/ux-source-evidence/portal-sessions-detail-live.json +0 -48
  205. package/data/ux-source-evidence/portal-sponsor-billing.json +0 -28
  206. package/data/ux-source-evidence/portal-sponsor-profile.json +0 -22
  207. package/data/ux-source-evidence/portal-sponsor-sessions.json +0 -28
  208. package/data/ux-source-evidence/portal-sponsor-settings.json +0 -18
  209. package/data/ux-source-evidence/portal-sponsor-trainees.json +0 -36
  210. package/data/ux-source-evidence/portal-sponsor.json +0 -52
  211. package/data/ux-source-evidence/portal-trainee-competency.json +0 -42
  212. package/data/ux-source-evidence/portal-trainee-credits.json +0 -40
  213. package/data/ux-source-evidence/portal-trainee-mentors.json +0 -48
  214. package/data/ux-source-evidence/portal-trainee-messages.json +0 -32
  215. package/data/ux-source-evidence/portal-trainee-notifications.json +0 -35
  216. package/data/ux-source-evidence/portal-trainee-profile.json +0 -26
  217. package/data/ux-source-evidence/portal-trainee-request.json +0 -54
  218. package/data/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +0 -36
  219. package/data/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +0 -42
  220. package/data/ux-source-evidence/portal-trainee-sessions-detail.json +0 -55
  221. package/data/ux-source-evidence/portal-trainee-sessions.json +0 -36
  222. package/data/ux-source-evidence/portal-trainee-settings-notifications.json +0 -38
  223. package/data/ux-source-evidence/portal-trainee-settings.json +0 -18
  224. package/data/ux-source-evidence/portal-trainee.json +0 -44
  225. package/data/ux-source-evidence/portal-tv-detail.json +0 -39
  226. package/data/ux-source-evidence/portal-tv.json +0 -44
  227. package/data/ux-source-evidence/shared-admin-admin-shell.json +0 -35
  228. package/data/ux-source-evidence/shared-auth-auth-primitives.json +0 -105
  229. package/data/ux-source-evidence/shared-auth-auth-shell.json +0 -25
  230. package/data/ux-source-evidence/shared-auth-onboarding-primitives.json +0 -52
  231. package/data/ux-source-evidence/shared-auth-onboarding-shell.json +0 -28
  232. package/data/ux-source-evidence/shared-auth-status-indicator.json +0 -41
  233. package/data/ux-source-evidence/shared-portal-empty-state.json +0 -24
  234. package/data/ux-source-evidence/shared-portal-loading-skeleton.json +0 -27
  235. package/data/ux-source-evidence/shared-portal-notifications-dropdown.json +0 -39
  236. package/data/ux-source-evidence/shared-portal-portal-shell.json +0 -36
  237. package/data/ux-source-evidence/shared-portal-profile-form.json +0 -32
  238. package/data/ux-source-evidence/shared-portal-settings-view.json +0 -81
  239. package/data/ux-source-evidence/shared-portal-usage-sparkline.json +0 -18
  240. package/data/ux-source-evidence/shared-portal-user-menu.json +0 -34
@@ -1,172 +0,0 @@
1
- # Optional semantic UI parts — QA
2
-
3
- ## Workflow expansion — 2026-09-13
4
-
5
- **PASS WITH RISKS for representative local coverage; full source migration remains IN PROGRESS.**
6
-
7
- - 59 dedicated examples, 188 selectable states, 20 independent parts. 65 product source pages have representative mappings; `/auth` is the reference index replaced by the catalogue. No complete upstream portal shell is copied.
8
- - 38 desktop/mobile Chromium checks passed: catalogue/navigation/reload, every route at 1440/959/390px without the application sidebar, all states across 8 themes at 959px, Arabic mobile, original account interactions, new form validation, file format rejection, conditional matching, localized plan values, allocation limits, prerequisites and assessment submission gates, record lifecycle/CSV, session tabs, separate file/chat state, local conversation/media behavior and code-file selection.
9
- - TypeScript, `audit:semantic-pages`, and `test:cli` passed. CLI verifies theme resolution, standalone code dependencies, candidate discovery/composition, MCP protocol, source hashes and bounded fragment retrieval. Source coverage assertions do not assert interaction parity.
10
- - Visually inspected Korean credit allocation in the real application (1440×1000) and Arabic profile setup fixture (390×900). No horizontal spill or docs sidebar in these views. Native file chooser text follows browser locale, not app locale.
11
- - Fixed missing standalone dependency references, accessible select/feedback names, status-tab mapping, and an attachment filename leaking into the chat draft. Shared workflow semantics own all added presentation; pages do not import CSS.
12
- - `design-system-ux-qa` guided the rendered-consumer checks and separation of tested coverage from source parity. Rams quick_review was attempted again after final UI fixes but the workspace has exhausted its 30-credit allowance; no Rams score/review was obtained.
13
- - Not verified: WebKit/Firefox, real signed-in account-specific chrome, full source visual/interaction parity, real upload/storage/auth/provider/media/payment services. Original detailed credential matrices, per-item verification, plan comparisons, some record/dashboard-specific actions, profile defaults and public content sections remain reduced examples. See `ux-pattern-migration.md`.
14
- - Nothing was committed, published, pushed or deployed. Generated CLI data was synchronized locally.
15
-
16
- The sections below retain earlier checkpoints, not the current example counts.
17
-
18
- ## Sidebar regression remediation — 2026-09-13
19
-
20
- PASS WITH RISKS. The previous fixture-heavy coverage missed a P2 application
21
- shell regression: `/templates/patterns/:id` rendered TemplatesPage but
22
- getActiveAreaId returned a nested string, so getSidebarArea fell back to docs.
23
- The real-app area assertion failed before the fix. Detail routes now resolve
24
- the templates area and template pages do not mount app-sidebar at any width.
25
- No CSS override or unrelated page changes were needed.
26
-
27
- 22 Chromium checks passed after the fix, including all 12 real-app detail routes
28
- at 1440/959/390px, catalogue, reload, Arabic detail, equal shell/main widths and
29
- retained documentation navigation. TypeScript and semantic page ownership passed.
30
- Rams review was attempted but quota-blocked. Authenticated session-specific
31
- chrome and WebKit/Firefox were not exercised; route classification is independent
32
- of auth. This narrow fix does not alter the incomplete source migration scope.
33
-
34
- ## Current evidence — individual pages, 2026-09-13
35
-
36
- **PASS WITH RISKS for this local change.** Catalogue → one dedicated pattern
37
- page replaces the stacked one-pager, following the latest user clarification.
38
- There are now 12 source-backed examples, 41 selectable states and 13 independent
39
- parts. The full source migration is still incomplete.
40
-
41
- - Observed: real app catalogue, search, dedicated route, reload and back/forward;
42
- no simultaneous full-page previews. Legacy example-query links show one example.
43
- - Added invitation acceptance/code/expiry, session recovery, people directory,
44
- conversation list, notification inbox and delivery preferences. Source portal
45
- shells are not copied. ActivityList, DirectoryCards and ChannelPreferences are
46
- independently available to MCP composition discovery.
47
- - 20 Chromium desktop/mobile tests passed. Behavioral checks cover invitation
48
- validation/accept/decline, session reauth/cancel, directory filter/sort/detail,
49
- read status, archive empty state and channel restrictions/save/reset, alongside
50
- existing account interactions. All 41 selectable states render in 8 themes at
51
- 959px. New pages also render at Arabic/RTL 360px; full-width preview at 1440px.
52
- - Fixed native directory select accessible names after a failing interaction
53
- test. Removed a generic search keyword that incorrectly selected people cards
54
- for unrelated dashboard searches. Retained visible focus on interactive links;
55
- route-focused headings do not draw a full-width control outline.
56
- - TypeScript, semantic page ownership, CLI contracts, source hash coverage and
57
- standalone MCP bundles passed. Earlier brandbooks type errors did not recur;
58
- no edits were made to that service in this change.
59
- - Browser artifacts: `pattern-catalogue-ko.png`, `people-page-ko.png`,
60
- `preferences-ar.png` in the corresponding `test-results/ui-pattern-library-*`
61
- directories. Korean catalogue/detail and Arabic preferences were inspected.
62
- - Rams quick_review was attempted; quota exhausted, no external review score.
63
- - Deliberate boundaries: session recovery is inline, not the source fixed modal;
64
- no countdown navigation. Invitation strength uses sample host rules. Directory
65
- and message destinations are local handoff previews, not a full booking/chat
66
- backend. No actual mail, auth, preferences or membership mutations occur.
67
- - Untested: WebKit/Firefox, screen-reader application testing, real service
68
- callbacks, custom unregistered themes and source-only pages. These examples
69
- are not a claim of complete branch-for-branch upstream parity or npm release.
70
-
71
- ## Historical first account batch — superseded
72
-
73
- **PASS WITH RISKS for the first account port batch. Full requested migration is
74
- INCOMPLETE.** The older two-example report below is historical, not current scope.
75
-
76
- - Imported the complete pinned source inventory: 66 page definitions, 85 entries
77
- including shared/system helpers, 104 indexed states and 218 exact function
78
- fragments. Source hash checks and remote HEAD match the pinned revision.
79
- - Fixed static-route precedence and indexed settings pages absent from screenshots.
80
- - Local MCP supports full source discovery and bounded fragment reads, with
81
- user/room theme then Cloudblur, source-only status, required semantic adaptation
82
- and no automatic whole-portal import. Composition discovery includes source
83
- candidates without asking the user to choose patterns.
84
- - Removed invented review/workspace examples from public/MCP discovery. Gallery
85
- now contains six source-backed account examples with 22 selectable states.
86
- - Source differences are deliberate: no original branding, sample medical
87
- identities, compliance/trial promises, mock navigation/localStorage auth or
88
- automatic account side effects. No QR placeholder is presented as a real key.
89
- - Added password visibility/rules, code entry and provider selection as independent
90
- registered parts. Code cells and feedback surfaces have bounded semantic radii.
91
- - 12 Chromium desktop/mobile tests passed: roles, opt-in separation, form
92
- validation, password visibility, link-login, resend cooldown, email edit, code
93
- paste/arrows/recovery, independent gallery state/code/viewport/copy, all 22
94
- exposed states × 8 themes at 959px, full-width 1440px and Arabic at 360px.
95
- - CLI contracts, standalone MCP bundles and semantic-page ownership passed.
96
- TypeScript passed during the first batch check, but the final whole-workspace
97
- rerun is blocked by TS7022/TS7006 in `src/services/brandbooks.ts:29-30`, outside
98
- this change. That file was not edited here. Source tests validate every function
99
- fragment and Korean intent discovery.
100
- - Rams quick_review was attempted but blocked by review quota; no score exists.
101
- - Untested: Safari/Firefox, actual auth/provider/email backends, custom unregistered
102
- themes, all source-only page interactions as rendered Ceramic ports. State
103
- renderability is not full behavioral equivalence to every source branch.
104
- - No deployment, npm publication, commit or production mutation occurred.
105
-
106
- Remaining work is tracked per source page in `ux-pattern-migration.md`.
107
-
108
- ## Historical gallery-only review — superseded
109
-
110
- Verdict: PASS WITH RISKS (local implementation, not a release)
111
-
112
- ## Scope
113
-
114
- Single-example regression repaired: both registered examples render together,
115
- with independent per-article controls. Navigation does not unmount other
116
- examples; search alone filters. The gallery count reflects two implemented
117
- examples, NOT completion of the original source-pattern migration. Desktop and
118
- mobile regression includes simultaneous rendering, vertical order, input state
119
- retention across navigation, and independent Code/Preview/viewport controls.
120
-
121
- Presentation follows the user's block-gallery screenshot: horizontal navigation,
122
- compact Preview/Code and viewport/reset/install/AI toolbar above a full-width
123
- example. No documentation sidebar or oversized hero. Usage guidance is collapsed
124
- by default. Tests assert full preview width, absence of the old sidebar/install
125
- section, tablet sizing, copy fallback and mobile containment. Rams quick review
126
- was attempted again; credits remain exhausted.
127
-
128
- The human-facing library now lists UX patterns with two contextual page
129
- examples: signup and request review. The unrequested workspace-creation example
130
- was withdrawn from the UI and MCP registry. Preview/code, actual
131
- dependency files, base npm installation and optional AI handoff replace the
132
- previous seven isolated cards. Seven independent parts remain the AI building
133
- blocks: choices, validated input, filters, review list, existing KPIGrid,
134
- progress steps and outcome notice. No required customer assembly flow,
135
- source branding, source screenshots or role-specific portal categories appear
136
- in the library. The former screen-copy approach is retired; 101 original source
137
- screens remain internal references, not claimed migrations.
138
-
139
- The agent optionally discovers parts from the product goal, checks fit and
140
- retrieves actual exports/dependencies through MCP. No user selection is required.
141
- No match produces `no-pattern-needed`. User/room theme takes precedence; absence
142
- falls back to Cloudblur. Unknown explicit themes fail instead of rebranding.
143
-
144
- ## Evidence
145
-
146
- - `tests/e2e/ui-pattern-library.spec.ts`: desktop and mobile Chromium, Korean/
147
- English/Arabic, list/search, no source branding, local signup validation and
148
- completion, shared filters/review rows, empty results, non-authorizing review
149
- feedback, retired-link fallback in Arabic, code inspection, clipboard-denied
150
- fallback, optional AI prompt with exact example/theme, no document overflow.
151
- Isolated real-consumer fixture exercises all eight themes at the 959px
152
- breakpoint and captures a clean 1440px page preview.
153
- - `scripts/test-ui-parts.mjs`: seven exports across every registered theme,
154
- real source files and component/motion contracts, negative inputs, optional
155
- intent discovery, filter/list/metric bindings, account-theme precedence,
156
- MCP schemas/calls and standalone package with no workspace source. Two UX
157
- examples resolve full source/dependencies under all themes; unknown example
158
- IDs and themes are rejected.
159
- - Semantic page ownership, TypeScript and existing CLI/recipe regression tests.
160
-
161
- ## Risks and untested cells
162
-
163
- - Rams review attempted but blocked by exhausted workspace credits. No Rams score.
164
- - Safari/Firefox and live signed-in custom-brand UI were not exercised. Theme
165
- fallback was browser-tested; room/explicit theme precedence is API-tested.
166
- - Candidate retrieval is keyword-based. The coding agent must interpret the
167
- user's intent, negation and context before using a candidate; this is not a
168
- mandate to add every matching part.
169
- - Fixtures do not validate production permissions, pagination, notifications or
170
- persistence. Those remain explicit consumer bindings.
171
- - No npm package or production deployment was published. Existing installed MCP
172
- processes need updated local code and a restart to expose the new tools.
@@ -1,105 +0,0 @@
1
- # UX examples and optional parts for Ceramic agents
2
-
3
- The user describes an outcome, not a pattern selection. The coding agent decides
4
- whether a pattern is useful while building with Ceramic. Do not ask the user to
5
- pick parts, visit the pattern library, copy a prompt or approve a layout recipe.
6
- The library is optional documentation, not onboarding or a required workflow.
7
-
8
- ## Human-facing UX pattern library
9
-
10
- `#/templates?view=patterns` is a searchable catalogue of 59 source-backed examples.
11
- Every entry opens its own `#/templates/patterns/:id` page; only that example is
12
- mounted. Back/forward, refresh, and old `?view=patterns&example=:id` links work.
13
- This supersedes the earlier vertically stacked gallery. The original 12 account,
14
- directory and messaging examples now have 47 additional examples covering setup,
15
- profiles/settings, scheduling, verification/operations, subscriptions/credits,
16
- assessment, media and public content. There are 188 selectable states. The invented
17
- `review-01` and workspace example are retired. This is representative coverage,
18
- not complete source-interaction parity; see the migration ledger. Users can inspect a full interactive example,
19
- switch to actual source/dependencies, copy the base npm installation command,
20
- or optionally ask their AI to use that example. This optional action does not
21
- make manual selection a prerequisite for AI-assisted building.
22
-
23
- `list_ux_examples` and `get_ux_example({id, theme?})` expose the same registry and
24
- actual code. AI should inspect context and adapt only the relevant parts, not
25
- copy a whole screen blindly. Demo completion never creates an account, records
26
- consent, provisions a workspace, or approves a request. Base components are
27
- published on npm; these examples and MCP tools ship in CLI 0.8.0 and later.
28
-
29
- ## Agent workflow
30
-
31
- 1. Read the current room and product goal. Keep the user's theme; when none
32
- exists, use `utopia-cloudblur`. An unknown custom theme must be registered,
33
- not silently replaced.
34
- 2. Use `search` or `find_ui_parts` with the relevant UI intent in the goal.
35
- Matching is keyword-based candidate discovery, not a fit decision. The agent
36
- checks `useWhen` and `avoidWhen` in context, including negations and constraints.
37
- Both discovery and composition also return sourceCandidates from the full
38
- original inventory. Those are adaptation evidence, NOT runnable Ceramic parts.
39
- No appropriate match means build with ordinary Ceramic components.
40
- 3. Retrieve a suitable export using `get_ui_part({id, theme?})`, or call
41
- `prepare_ui_composition({goal, theme?})` for an optional composition proposal.
42
- Keep only relevant parts. Never treat all returned candidates as mandatory.
43
- 4. Connect product-owned props and callbacks. Filters and lists share host-owned
44
- query/status state; metrics use the same authorized scope. A review callback
45
- opens a review, never approves it. Result notices wait for real service results.
46
- 5. Build and test. These tools return code and contracts, not finished production
47
- integrations. Follow normal authority boundaries for external mutations.
48
-
49
- There are 20 independently discoverable parts. New workflow exports are
50
- `WorkflowFields`, `RecordTable`, `StepChecklist`, `StatStrip`, `RatingFields`,
51
- `TrendSummary` and `MediaStage`. Use their host-owned props/callbacks rather than
52
- importing the demo controller. `WorkflowFields` multi-select values are newline-
53
- separated strings; the integrating host may map these to its own array schema.
54
- Files expose selected metadata to the host; no transfer is implied. `MediaStage`
55
- does not request microphone/camera access or establish a call.
56
-
57
- ### Complete source inventory, not screenshot placeholders
58
-
59
- `list_ux_source_patterns` covers 66 original page definitions plus shared helpers
60
- and system states: 85 entries and 218 exact named function fragments at a pinned
61
- revision. The screenshot index omitted settings pages and incorrectly matched
62
- the new-subscription route to a dynamic detail page; source discovery fixes both.
63
-
64
- `find_ux_source_patterns({goal})` finds candidates in English/Korean and common
65
- Arabic intents. `get_ux_source_part({id, part, theme?})` returns **one named
66
- fragment**, source hash evidence, import references, semantic mapping and the
67
- resolved theme/motion contract. It never silently copies a complete portal.
68
- Use only relevant pieces; no human selection is required. Original code can
69
- contain mock auth, navigation, data, placeholders or incomplete callbacks: these
70
- must be replaced, never promoted to production behavior. Source provenance stays
71
- internal. The public gallery shows actual ports, not original screenshots.
72
-
73
- This inventory makes all original interactions inspectable by local MCP, but
74
- does **not** mean all are implemented or verified in Ceramic. See
75
- `ux-pattern-migration.md` for the remaining per-page migration ledger.
76
-
77
- Examples:
78
-
79
- - A searchable approval queue may use `ListFilters` + `ReviewList`; add `KPIGrid`
80
- only when the goal needs useful, trustworthy metrics.
81
- - A short form may use `ValidatedField` and `OutcomeNotice`. Do not import a
82
- signup page, a complete portal, a marketing header or source-specific roles.
83
- - For an unrelated task, use no pattern at all.
84
-
85
- ## Code and theme contract
86
-
87
- `ui-patterns.json` registers 20 independently composable parts, including
88
- password visibility/rules, code entry, provider selection, activity rows,
89
- directory cards, delivery preferences and workflow primitives. Workflow exports
90
- live in `blocks/semantic-pattern-parts/WorkflowParts.tsx`. Product exports live in
91
- `blocks/semantic-pattern-parts/ProductParts.tsx`. Account exports
92
- live in `blocks/semantic-pattern-parts/AuthParts.tsx`; metrics reuse
93
- the existing `KPIGrid`. MCP returns only the selected source files and dependencies,
94
- not a source application. Packaged CLI data contains these files so the tools work
95
- without a monorepo checkout. No package has been published by this change.
96
-
97
- Props carry labels, data and callbacks. Shared CSS owns layout and semantic roles;
98
- pages do not import CSS. Surface radius is bounded independently from control
99
- radius. Preserve keyboard interaction, logical layout, native scrolling without
100
- scrollbar chrome, and loading/empty/error/retry states. Theme motion remains owned
101
- by Ceramic; these parts do not need artificial entrance animation.
102
-
103
- The customer-facing library shows neither upstream branding nor source credits.
104
- Pinned source references remain internal engineering records only. Source
105
- screenshots are not advertised as migrated or themeable UI.
@@ -1,38 +0,0 @@
1
- # UX recipe import — 2026-09-12
2
-
3
- **PASS WITH RISKS** — Discovery and semantic adaptation contracts pass; no runnable Mentix UI or production service is claimed.
4
-
5
- ## Scope
6
-
7
- - 16 interaction recipes from `The-Utopia-Studio/mentix-design` at `6b4b2770d04e42cc2e5453c3d80e35c282b3438f`.
8
- - Local GitHub CLI API access returned 404, but existing SSH access successfully read and cloned the specified repository. No account switch or authorization change was required. Source repository files were not modified.
9
- - Canonical registry, CLI/MCP discovery, theme-aware adaptation planning, generated agent guidance, semantic token mapping, public-contract checks and packaged-data parity.
10
- - No source screenshots, brand artwork, source code, sample identities or agent/deployment instructions copied into the package. No customer GitHub synchronization or source repository execution was introduced.
11
-
12
- ## Evidence
13
-
14
- - `node scripts/test-ux-patterns.mjs`: all 16 recipes × registered themes × permitted variants; actual component and motion references; negative inputs (unknown IDs/themes/variants, arbitrary style, oversized goals); duplicate/broken registry rejection; source/distribution parity; CLI flag ordering; MCP discovery/get/prepare/error; standalone CLI/MCP without monorepo sources. Passed.
15
- - `npm run test:cli`: existing CLI generation and MCP protocol tests passed. The UX recipe suite is now part of this gate.
16
- - All recipe `sourceFiles` paths exist at the pinned source checkout. Reference documentation and selected implementation paths were inspected; no blanket implementation audit of every source page is claimed.
17
- - Required target token names occur in Ceramic core. All referenced Ceramic component names and theme motion profiles resolve. This proves registered roles, not rendered contrast or visual quality.
18
-
19
- ## Observed source gaps carried into recipes
20
-
21
- - Notification Mark all read closes the preview without persistence; Escape dismissal described in source docs is absent in the inspected component.
22
- - Request submission uses a timed mock success, not a production request service.
23
- - Onboarding shell paths in source UX documentation are stale; current source components are under `components/auth`.
24
- - Several source flows use mock data. Live-session failover, clinical safety, credit/escrow and billing behavior are not inferred as implemented capabilities.
25
-
26
- ## Coverage / remaining scope
27
-
28
- | Surface | Status |
29
- | --- | --- |
30
- | Search, registry, planning, semantic dependencies | Passed |
31
- | CLI, MCP, standalone package data | Passed |
32
- | Rendered layout, keyboard, responsive, RTL, light/dark contrast | Not tested: no UI renderer was added |
33
- | Live data, authorization, payments, realtime services | Not implemented by recipes; required host bindings |
34
- | Production package release / existing MCP client reload | Not performed |
35
-
36
- UX QA skill required separating documented source behavior from observed implementation; the token skill informed role-based mapping rather than source color/radius substitution. No UI file changed, so Rams UI review and visual composition approval are not applicable in this batch.
37
-
38
- Consumers can inspect and prepare recipes with the updated local CLI/MCP. Newly generated applications must implement and test the selected recipe before calling it complete; use the existing component and shared composition contracts rather than importing Mentix pages wholesale.
@@ -1,41 +0,0 @@
1
- # Semantic UX pattern adaptation
2
-
3
- Ceramic exposes **16 brand-neutral recipes** derived from an inspected revision of `The-Utopia-Studio/mentix-design`. These are interaction contracts, not copied React pages, installed UI renderers or production backend implementations.
4
-
5
- ## One source of truth
6
-
7
- `packages/design-system/src/manifests/ux-patterns.json` holds pinned provenance, selection guidance, source-file references, permitted variants, component dependencies, slots, states, data requirements and immutable interaction rules. It is synchronized into CLI package data. `search`, `pattern` and the MCP tools consume that same registry. `doctor` checks dependency and contract completeness.
8
-
9
- The existing `patterns.json` continues to register **implemented shared visual behavior**. `composition-registry.json` continues to describe executable dashboard blocks. A UX recipe is not automatically inserted into either and is explicitly `renderable: false`.
10
-
11
- ## Agent workflow
12
-
13
- 1. Read the user's goal and authorized company/brand context. Retrieve candidates with `search`; keyword matches do not establish suitability.
14
- 2. Read `useWhen`, `avoidWhen`, required data and source limitations. Choose one pattern and an allowed variant, not an entire source application.
15
- 3. Prepare a proposal with a registered company theme. It returns actual Ceramic component contracts, semantic mapping, motion profile, permitted changes and required invariants.
16
- 4. Resolve missing persistence, authorization, permissions and product callbacks. Adapt domain labels and permitted structure, never replace real behavior with mock success.
17
- 5. Compose existing Ceramic components. If a new shared visual composition is necessary, register its slots/states/tokens and implement it in the shared component/block layer. Pages retain data/routing/composition only. A raw source Tailwind class or Framer Motion timing is not a Ceramic contract.
18
- 6. Run product-specific behavior and accessibility tests. Test loading, empty, error, retry, permissions, mobile, RTL, keyboard, theme modes and reduced motion. Do not claim a recipe plan is a verified UI.
19
-
20
- ```sh
21
- utopia-ds search "승인 검토" --json
22
- utopia-ds pattern approval-queue --json
23
- utopia-ds pattern approval-queue --goal "ABC 직원들의 구매 요청 검토" --theme utopia-cloudblur --variant split-review --json
24
- ```
25
-
26
- MCP equivalents: `list_patterns`, `get_pattern`, `prepare_pattern_adaptation` (id, goal, theme, variant). These are read-only discovery/planning tools. They do not clone repositories, execute source instructions, deploy software, grant membership or write customer data. Restart a local MCP server to discover newly added tools; published package users can use CLI 0.8.0 or later.
27
-
28
- ## Example: applying a pattern to ABC
29
-
30
- For an internal purchasing app, `approval-queue` can become **purchase requests → request detail → approve/request changes/reject**. Keep reviewer permission checks, explicit decisions, conflict handling, audit events and failure recovery. Replace Mentix role names, clinical evidence fields and branding with ABC's own labels, data and selected registered theme. Theme and motion come from Ceramic, not the reference project's teal palette or literal transition timings.
31
-
32
- For a notification preview, reuse the interaction idea but implement an actual mark-read mutation. The inspected source button only closes the preview; its documentation also describes Escape dismissal which the implementation does not contain. Ceramic must preserve real keyboard/focus behavior and truthful unread state.
33
-
34
- ## Import boundary and evidence
35
-
36
- Source revision: `6b4b2770d04e42cc2e5453c3d80e35c282b3438f` (inspected 2026-09-12).
37
- Inspected source includes `docs/UX-PATTERNS.md`, `docs/UX-FLOWS.md`, `docs/TOKENS-SEMANTIC.md`, notification/empty-state components, and request/review implementation behavior. Source-file paths for all recipes are checked against the pinned repository tree. Some source flow documentation overstates production behavior: request submission uses a timer and onboarding/admin flows use mock data. These limitations are carried into the corresponding recipes.
38
-
39
- The import includes paraphrased interaction rules and source references only. It does not distribute private repository source files, screenshots, logos, customer records, credentials, source agent instructions or deployment hooks. No medical, billing, escrow or realtime safety capability is inferred from a prototype screen.
40
-
41
- Marketing-only browser frames and image fades, the Next.js Suspense convention, and framework-specific page-transition code are not portable UX recipes in this batch. Visual ornaments require their own registered shared pattern; framework adapters stay application-owned. No Mentix page has been replaced or deployed.
@@ -1,111 +0,0 @@
1
- # Complete UX source migration ledger
2
-
3
- Status: **IN PROGRESS — broad representative coverage, not full source-interaction parity.**
4
-
5
- Pinned source: `The-Utopia-Studio/mentix-design` at `6b4b2770d04e42cc2e5453c3d80e35c282b3438f`.
6
- Remote HEAD was checked against this revision on 2026-09-13.
7
-
8
- ## What is actually done
9
-
10
- - Source inventory: 66 page definitions + shared/system helpers = 85 entries.
11
- - 104 indexed screenshot states, plus pages omitted from that screenshot index.
12
- - 218 exact named function fragments available as bounded, internal MCP evidence.
13
- - 59 source-backed examples on individual pages, with 188 selectable states. These represent 65 of 66 source page definitions; the original `/auth` reference index is superseded by the catalogue.
14
- - 20 independent Ceramic parts available to composition discovery. Fields, record tables, checklists, ratings, measures, trends and media stages extend the existing account, activity, directory and delivery parts.
15
- - Catalogue and individual `#/templates/patterns/:id` routes replace the stacked one-pager. Legacy example-query links remain usable.
16
- - The invented review and workspace examples are retired from UI/MCP discovery.
17
-
18
- "Source indexed" means readable reference code, not a semantic implementation or a production service.
19
-
20
- ## Remaining parity work
21
-
22
- 1. Replace remaining generic record/dashboard fixtures with source-specific columns, filters and decision states. A page mapping alone does not establish this parity.
23
- 2. Preserve the finer onboarding interactions: credential matrices, document previews, per-item checks, orientation completion and plan comparison. Current drafts and progress are local examples, not cross-page persistence.
24
- 3. Complete scheduling detail variations. Upcoming, pending and completed tabs now select distinct matching records; booking, feedback and assessment exercise key validations but not every original branch.
25
- 4. Expand profile defaults, settings variants and original public-page sections. Current forms and content pages are representative compositions.
26
- 5. Session-expiry modal remains unported; existing recovery is inline. Shared application/portal shells intentionally are not copied into the library.
27
- 6. Compare each source fragment with its representative port before marking it complete. Live authentication, storage, payments, media and provider integration remain host responsibilities, not required side effects of gallery demos.
28
-
29
- Each port must preserve actual source interaction intent, expose useful pieces independently, replace brand-specific policies/data, map to registered Ceramic semantics, and prove the rendered consumer. Never fill a missing preview with a made-up screen or original screenshot labeled as themed.
30
-
31
- ## Per-page ledger
32
-
33
- | Source page | Source-pattern ID | Gallery implementation |
34
- | --- | --- | --- |
35
- | `/auth` | `account-auth` | Reference index; replaced by the UX catalogue, not duplicated as a product flow |
36
- | `/forgot-password` | `account-forgot-password` | `password-recovery-01` — representative port; 4 selectable states |
37
- | `/invite` | `account-invite` | `invitation-01` — representative port; 4 selectable states |
38
- | `/locked` | `account-locked` | `account-protection-01` — representative port; 4 selectable states |
39
- | `/login` | `account-login` | `login-01` — representative port; 4 selectable states |
40
- | `/mfa` | `account-mfa` | `two-factor-01` — representative port; 4 selectable states |
41
- | `/onboarding/credentials` | `account-onboarding-credentials` | `credentials-01` — representative port; 5 selectable states |
42
- | `/onboarding/legal` | `account-onboarding-legal` | `agreements-01` — representative port; 5 selectable states |
43
- | `/onboarding/orientation` | `account-onboarding-orientation` | `orientation-01` — representative port; 3 selectable states; `plan-selection-01` — representative port; 3 selectable states |
44
- | `/onboarding` | `account-onboarding` | `setup-progress-01` — representative port; 4 selectable states |
45
- | `/onboarding/profile` | `account-onboarding-profile` | `profile-setup-01` — representative port; 5 selectable states |
46
- | `/reset-password` | `account-reset-password` | `password-reset-01` — representative port; 4 selectable states |
47
- | `/session-expired` | `account-session-expired` | `session-recovery-01` — representative port; 4 selectable states |
48
- | `/signup` | `account-signup` | `signup-01` — representative port; 3 selectable states |
49
- | `/verify-email` | `account-verify-email` | `verify-email-01` — representative port; 3 selectable states |
50
- | `/welcome` | `account-welcome` | `welcome-01` — representative port; 2 selectable states |
51
- | `/admin/analytics` | `admin-analytics` | `analytics-01` — representative port; 2 selectable states |
52
- | `/admin/audit` | `admin-audit` | `audit-log-01` — representative port; 3 selectable states |
53
- | `/admin/broadcasts/new` | `admin-broadcasts-new` | `broadcast-schedule-01` — representative port; 3 selectable states |
54
- | `/admin/broadcasts` | `admin-broadcasts` | `broadcast-management-01` — representative port; 3 selectable states |
55
- | `/admin/closures` | `admin-closures` | `closure-queue-01` — representative port; 3 selectable states |
56
- | `/admin/devices` | `admin-devices` | `device-monitoring-01` — representative port; 3 selectable states |
57
- | `/admin/escalations` | `admin-escalations` | `matching-escalations-01` — representative port; 3 selectable states |
58
- | `/admin/incidents` | `admin-incidents` | `incident-tracking-01` — representative port; 3 selectable states |
59
- | `/admin/onboarding/[id]` | `admin-onboarding-detail` | `verification-checklist-01` — representative port; 3 selectable states |
60
- | `/admin/onboarding` | `admin-onboarding` | `verification-queue-01` — representative port; 3 selectable states |
61
- | `/admin/payments` | `admin-payments` | `payment-cycle-01` — representative port; 3 selectable states |
62
- | `/admin/providers` | `admin-providers` | `provider-connections-01` — representative port; 3 selectable states |
63
- | `/admin/settings` | `admin-settings` | `account-settings-01` — representative port; 6 selectable states |
64
- | `/admin/subscriptions/[id]/allocate` | `admin-subscriptions-detail-allocate` | `credit-allocation-01` — representative port; 3 selectable states |
65
- | `/admin/subscriptions/[id]` | `admin-subscriptions-detail` | `subscription-detail-01` — representative port; 3 selectable states |
66
- | `/admin/subscriptions/new` | `admin-subscriptions-new` | `subscription-create-01` — representative port; 3 selectable states |
67
- | `/admin/subscriptions` | `admin-subscriptions` | `subscriptions-01` — representative port; 3 selectable states |
68
- | `/admin/transactions` | `admin-transactions` | `credit-transactions-01` — representative port; 3 selectable states |
69
- | `/marketing/blog` | `marketing-blog` | `article-library-01` — representative port; 2 selectable states |
70
- | `/marketing/contact` | `marketing-contact` | `contact-form-01` — representative port; 3 selectable states |
71
- | `/marketing` | `marketing` | `product-introduction-01` — representative port; 1 selectable states |
72
- | `/portal/mentor/messages` | `portal-mentor-messages` | `conversation-list-01` — representative port; 2 selectable states |
73
- | `/portal/mentor` | `portal-mentor` | `expert-overview-01` — representative port; 2 selectable states |
74
- | `/portal/mentor/profile` | `portal-mentor-profile` | `profile-editing-01` — representative port; 4 selectable states |
75
- | `/portal/mentor/requests/[id]` | `portal-mentor-requests-detail` | `request-decision-01` — representative port; 3 selectable states |
76
- | `/portal/mentor/sessions/[id]/assess` | `portal-mentor-sessions-detail-assess` | `structured-assessment-01` — representative port; 2 selectable states |
77
- | `/portal/mentor/settings` | `portal-mentor-settings` | `account-settings-01` — representative port; 6 selectable states |
78
- | `/portal/sessions/[id]/live` | `portal-sessions-detail-live` | `live-session-01` — representative port; 3 selectable states |
79
- | `/portal/sponsor/billing` | `portal-sponsor-billing` | `invoices-01` — representative port; 3 selectable states |
80
- | `/portal/sponsor` | `portal-sponsor` | `subscription-detail-01` — representative port; 3 selectable states |
81
- | `/portal/sponsor/profile` | `portal-sponsor-profile` | `profile-editing-01` — representative port; 4 selectable states |
82
- | `/portal/sponsor/sessions` | `portal-sponsor-sessions` | `session-list-01` — representative port; 3 selectable states |
83
- | `/portal/sponsor/settings` | `portal-sponsor-settings` | `account-settings-01` — representative port; 6 selectable states |
84
- | `/portal/sponsor/trainees` | `portal-sponsor-trainees` | `team-allocations-01` — representative port; 3 selectable states |
85
- | `/portal/trainee/competency` | `portal-trainee-competency` | `skill-progression-01` — representative port; 2 selectable states |
86
- | `/portal/trainee/credits` | `portal-trainee-credits` | `credit-balance-01` — representative port; 3 selectable states |
87
- | `/portal/trainee/mentors` | `portal-trainee-mentors` | `people-directory-01` — representative port; 3 selectable states |
88
- | `/portal/trainee/messages` | `portal-trainee-messages` | `conversation-list-01` — representative port; 2 selectable states |
89
- | `/portal/trainee/notifications` | `portal-trainee-notifications` | `notifications-01` — representative port; 4 selectable states |
90
- | `/portal/trainee` | `portal-trainee` | `personal-overview-01` — representative port; 3 selectable states |
91
- | `/portal/trainee/profile` | `portal-trainee-profile` | `profile-editing-01` — representative port; 4 selectable states |
92
- | `/portal/trainee/request` | `portal-trainee-request` | `booking-request-01` — representative port; 5 selectable states |
93
- | `/portal/trainee/sessions/[id]/feedback` | `portal-trainee-sessions-detail-feedback` | `session-feedback-01` — representative port; 2 selectable states |
94
- | `/portal/trainee/sessions/[id]` | `portal-trainee-sessions-detail` | `session-detail-01` — representative port; 3 selectable states |
95
- | `/portal/trainee/sessions/[id]/precheck` | `portal-trainee-sessions-detail-precheck` | `connectivity-check-01` — representative port; 3 selectable states |
96
- | `/portal/trainee/sessions` | `portal-trainee-sessions` | `session-list-01` — representative port; 3 selectable states |
97
- | `/portal/trainee/settings/notifications` | `portal-trainee-settings-notifications` | `notification-preferences-01` — representative port; 2 selectable states |
98
- | `/portal/trainee/settings` | `portal-trainee-settings` | `account-settings-01` — representative port; 6 selectable states |
99
- | `/portal/tv/[id]` | `portal-tv-detail` | `broadcast-viewer-01` — representative port; 3 selectable states |
100
- | `/portal/tv` | `portal-tv` | `media-library-01` — representative port; 3 selectable states |
101
-
102
- ## Evidence and boundaries
103
-
104
- - Exact source functions and hashes: `docs/design-system/ux-source-evidence/` (internal, never customer attribution).
105
- - Source registry: `packages/design-system/src/manifests/ux-source-inventory.json`.
106
- - CLI source read-only tools: list_ux_source_patterns, find_ux_source_patterns, get_ux_source_part.
107
- - Public gallery only renders entries registered in ux-examples.json.
108
- - No accounts, messages, uploads, payments, media permission, security changes, commits, deployment or npm publishing occurred.
109
- - Source token mappings are adaptation guidance requiring slot-level decisions, not a global string replacement or proof of theme compliance.
110
- - Browser QA: all 59 routes and 188 exposed states across the existing 8-theme matrix; desktop/mobile Chromium, 959px and Arabic/360px. Validation, file-type rejection, allocation limits, verification prerequisites, assessment gating, record lifecycle and local media/chat behavior have targeted tests. This is not a pixel/interaction parity check of every upstream fragment.
111
- - Rams quick_review blocked by account review quota; no score exists.
@@ -1,26 +0,0 @@
1
- # UX-only production merge
2
-
3
- Scope: 59 representative UX examples, 188 selectable states, 20 independent
4
- semantic parts, catalogue/detail routing, source inventory, CLI/MCP discovery
5
- and adaptation logic. Based on `origin/main` e669f43; no local room/auth/billing,
6
- Convex, environment, domain, dependency or unrelated brand changes are included.
7
-
8
- PASS WITH RISKS: clean npm installation, design-system build, app production
9
- build, bundle budgets, CLI/MCP/standalone tests, semantic page ownership, and
10
- 38 desktop/mobile Chromium tests passed in the isolated release worktree.
11
- Detailed interaction parity remains incomplete as recorded in the migration ledger.
12
- No npm release is part of this merge; existing npm versions are unchanged.
13
-
14
- Bounded input geometry is applied only inside UX examples. The shared token
15
- definitions do not restyle existing room consumers. Current membership guards
16
- are preserved for catalogue and nested detail routes.
17
-
18
- Rams quick_review and pre-commit review_files were requested but the workspace
19
- review quota is exhausted, so no score was obtained. Its one partial warning
20
- about the pre-existing presentation thumbnail does not reproduce from the
21
- stylesheet: its parent reserves 16/10 aspect ratio and the image fills that area.
22
- No baseline or guard was weakened. Browser-engine parity and live authenticated
23
- account-specific chrome remain untested. npm reported existing dependency audit
24
- findings (24 total, including 3 high); dependency files are unchanged.
25
-
26
- Room validation is a separate local task; production room code is unchanged.