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

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 (247) hide show
  1. package/bin/utopia-ds-mcp.mjs +18 -5
  2. package/bin/utopia-ds.mjs +16 -3
  3. package/data/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  4. package/data/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  5. package/data/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  6. package/data/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  7. package/data/blocks/semantic-pattern-parts/PatternParts.tsx +7 -0
  8. package/data/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  9. package/data/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  10. package/data/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  11. package/data/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  12. package/data/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  13. package/data/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  14. package/data/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  15. package/data/blocks/semantic-pattern-parts/product-parts.css +25 -0
  16. package/data/blocks/semantic-pattern-parts/types.ts +3 -0
  17. package/data/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  18. package/data/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  19. package/data/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  20. package/data/blocks/ux-pattern-examples/OnboardingExample.tsx +15 -0
  21. package/data/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  22. package/data/blocks/ux-pattern-examples/ReviewExample.tsx +14 -0
  23. package/data/blocks/ux-pattern-examples/SignupExample.tsx +22 -0
  24. package/data/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  25. package/data/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  26. package/data/blocks/ux-pattern-examples/copy.ts +6 -0
  27. package/data/blocks/ux-pattern-examples/ux-examples.css +18 -0
  28. package/data/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  29. package/data/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  30. package/data/docs/ceramic-release-2026-09-06.md +2 -0
  31. package/data/docs/create-a-brandbook.md +79 -0
  32. package/data/docs/dextrum-document-family.md +47 -0
  33. package/data/docs/guide.md +2 -0
  34. package/data/docs/presentation-asset-repository.md +5 -0
  35. package/data/docs/ui-parts-qa.md +172 -0
  36. package/data/docs/ui-parts.md +105 -0
  37. package/data/docs/ux-pattern-adaptation-qa.md +38 -0
  38. package/data/docs/ux-pattern-adaptation.md +41 -0
  39. package/data/docs/ux-pattern-migration.md +111 -0
  40. package/data/docs/ux-pattern-release-2026-09-13.md +26 -0
  41. package/data/docs/ux-source-evidence/account-auth.json +41 -0
  42. package/data/docs/ux-source-evidence/account-forgot-password.json +36 -0
  43. package/data/docs/ux-source-evidence/account-invite.json +63 -0
  44. package/data/docs/ux-source-evidence/account-locked.json +63 -0
  45. package/data/docs/ux-source-evidence/account-login.json +28 -0
  46. package/data/docs/ux-source-evidence/account-mfa.json +62 -0
  47. package/data/docs/ux-source-evidence/account-onboarding-credentials.json +52 -0
  48. package/data/docs/ux-source-evidence/account-onboarding-legal.json +56 -0
  49. package/data/docs/ux-source-evidence/account-onboarding-orientation.json +66 -0
  50. package/data/docs/ux-source-evidence/account-onboarding-profile.json +50 -0
  51. package/data/docs/ux-source-evidence/account-onboarding.json +69 -0
  52. package/data/docs/ux-source-evidence/account-reset-password.json +27 -0
  53. package/data/docs/ux-source-evidence/account-session-expired.json +62 -0
  54. package/data/docs/ux-source-evidence/account-signup.json +33 -0
  55. package/data/docs/ux-source-evidence/account-verify-email.json +34 -0
  56. package/data/docs/ux-source-evidence/account-welcome.json +41 -0
  57. package/data/docs/ux-source-evidence/admin-analytics.json +54 -0
  58. package/data/docs/ux-source-evidence/admin-audit.json +31 -0
  59. package/data/docs/ux-source-evidence/admin-broadcasts-new.json +36 -0
  60. package/data/docs/ux-source-evidence/admin-broadcasts.json +41 -0
  61. package/data/docs/ux-source-evidence/admin-closures.json +52 -0
  62. package/data/docs/ux-source-evidence/admin-devices.json +51 -0
  63. package/data/docs/ux-source-evidence/admin-escalations.json +35 -0
  64. package/data/docs/ux-source-evidence/admin-incidents.json +54 -0
  65. package/data/docs/ux-source-evidence/admin-loading.json +17 -0
  66. package/data/docs/ux-source-evidence/admin-onboarding-detail.json +80 -0
  67. package/data/docs/ux-source-evidence/admin-onboarding.json +62 -0
  68. package/data/docs/ux-source-evidence/admin-payments.json +45 -0
  69. package/data/docs/ux-source-evidence/admin-providers.json +38 -0
  70. package/data/docs/ux-source-evidence/admin-settings.json +18 -0
  71. package/data/docs/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  72. package/data/docs/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  73. package/data/docs/ux-source-evidence/admin-subscriptions-new.json +43 -0
  74. package/data/docs/ux-source-evidence/admin-subscriptions.json +41 -0
  75. package/data/docs/ux-source-evidence/admin-transactions.json +41 -0
  76. package/data/docs/ux-source-evidence/error.json +30 -0
  77. package/data/docs/ux-source-evidence/loading.json +19 -0
  78. package/data/docs/ux-source-evidence/marketing-blog.json +48 -0
  79. package/data/docs/ux-source-evidence/marketing-contact.json +36 -0
  80. package/data/docs/ux-source-evidence/marketing.json +64 -0
  81. package/data/docs/ux-source-evidence/not-found.json +28 -0
  82. package/data/docs/ux-source-evidence/portal-loading.json +17 -0
  83. package/data/docs/ux-source-evidence/portal-mentor-messages.json +31 -0
  84. package/data/docs/ux-source-evidence/portal-mentor-profile.json +23 -0
  85. package/data/docs/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  86. package/data/docs/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  87. package/data/docs/ux-source-evidence/portal-mentor-settings.json +18 -0
  88. package/data/docs/ux-source-evidence/portal-mentor.json +38 -0
  89. package/data/docs/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  90. package/data/docs/ux-source-evidence/portal-sponsor-billing.json +28 -0
  91. package/data/docs/ux-source-evidence/portal-sponsor-profile.json +22 -0
  92. package/data/docs/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  93. package/data/docs/ux-source-evidence/portal-sponsor-settings.json +18 -0
  94. package/data/docs/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  95. package/data/docs/ux-source-evidence/portal-sponsor.json +52 -0
  96. package/data/docs/ux-source-evidence/portal-trainee-competency.json +42 -0
  97. package/data/docs/ux-source-evidence/portal-trainee-credits.json +40 -0
  98. package/data/docs/ux-source-evidence/portal-trainee-mentors.json +48 -0
  99. package/data/docs/ux-source-evidence/portal-trainee-messages.json +32 -0
  100. package/data/docs/ux-source-evidence/portal-trainee-notifications.json +35 -0
  101. package/data/docs/ux-source-evidence/portal-trainee-profile.json +26 -0
  102. package/data/docs/ux-source-evidence/portal-trainee-request.json +54 -0
  103. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  104. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  105. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  106. package/data/docs/ux-source-evidence/portal-trainee-sessions.json +36 -0
  107. package/data/docs/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  108. package/data/docs/ux-source-evidence/portal-trainee-settings.json +18 -0
  109. package/data/docs/ux-source-evidence/portal-trainee.json +44 -0
  110. package/data/docs/ux-source-evidence/portal-tv-detail.json +39 -0
  111. package/data/docs/ux-source-evidence/portal-tv.json +44 -0
  112. package/data/docs/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  113. package/data/docs/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  114. package/data/docs/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  115. package/data/docs/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  116. package/data/docs/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  117. package/data/docs/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  118. package/data/docs/ux-source-evidence/shared-portal-empty-state.json +24 -0
  119. package/data/docs/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  120. package/data/docs/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  121. package/data/docs/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  122. package/data/docs/ux-source-evidence/shared-portal-profile-form.json +32 -0
  123. package/data/docs/ux-source-evidence/shared-portal-settings-view.json +81 -0
  124. package/data/docs/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  125. package/data/docs/ux-source-evidence/shared-portal-user-menu.json +34 -0
  126. package/data/manifests/blocks.json +230 -21
  127. package/data/manifests/brandbook-skill.json +33 -0
  128. package/data/manifests/catalog.json +1 -0
  129. package/data/manifests/patterns.json +358 -0
  130. package/data/manifests/theme-dextrum.json +132 -21
  131. package/data/manifests/themes.json +253 -39
  132. package/data/manifests/ui-patterns.json +1029 -0
  133. package/data/manifests/ux-examples.json +2177 -0
  134. package/data/manifests/ux-patterns.json +1135 -0
  135. package/data/manifests/ux-source-inventory.json +4669 -0
  136. package/data/ui-parts/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
  137. package/data/ui-parts/blocks/analytics-dashboard/analytics-dashboard.css +92 -0
  138. package/data/ui-parts/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  139. package/data/ui-parts/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  140. package/data/ui-parts/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  141. package/data/ui-parts/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  142. package/data/ui-parts/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  143. package/data/ui-parts/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  144. package/data/ui-parts/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  145. package/data/ui-parts/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  146. package/data/ui-parts/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  147. package/data/ui-parts/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  148. package/data/ui-parts/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  149. package/data/ui-parts/blocks/semantic-pattern-parts/product-parts.css +25 -0
  150. package/data/ui-parts/blocks/semantic-pattern-parts/types.ts +3 -0
  151. package/data/ui-parts/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  152. package/data/ui-parts/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  153. package/data/ui-parts/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  154. package/data/ui-parts/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  155. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  156. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  157. package/data/ui-parts/blocks/ux-pattern-examples/copy.ts +6 -0
  158. package/data/ui-parts/blocks/ux-pattern-examples/ux-examples.css +18 -0
  159. package/data/ui-parts/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  160. package/data/ui-parts/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  161. package/data/ux-source-evidence/account-auth.json +41 -0
  162. package/data/ux-source-evidence/account-forgot-password.json +36 -0
  163. package/data/ux-source-evidence/account-invite.json +63 -0
  164. package/data/ux-source-evidence/account-locked.json +63 -0
  165. package/data/ux-source-evidence/account-login.json +28 -0
  166. package/data/ux-source-evidence/account-mfa.json +62 -0
  167. package/data/ux-source-evidence/account-onboarding-credentials.json +52 -0
  168. package/data/ux-source-evidence/account-onboarding-legal.json +56 -0
  169. package/data/ux-source-evidence/account-onboarding-orientation.json +66 -0
  170. package/data/ux-source-evidence/account-onboarding-profile.json +50 -0
  171. package/data/ux-source-evidence/account-onboarding.json +69 -0
  172. package/data/ux-source-evidence/account-reset-password.json +27 -0
  173. package/data/ux-source-evidence/account-session-expired.json +62 -0
  174. package/data/ux-source-evidence/account-signup.json +33 -0
  175. package/data/ux-source-evidence/account-verify-email.json +34 -0
  176. package/data/ux-source-evidence/account-welcome.json +41 -0
  177. package/data/ux-source-evidence/admin-analytics.json +54 -0
  178. package/data/ux-source-evidence/admin-audit.json +31 -0
  179. package/data/ux-source-evidence/admin-broadcasts-new.json +36 -0
  180. package/data/ux-source-evidence/admin-broadcasts.json +41 -0
  181. package/data/ux-source-evidence/admin-closures.json +52 -0
  182. package/data/ux-source-evidence/admin-devices.json +51 -0
  183. package/data/ux-source-evidence/admin-escalations.json +35 -0
  184. package/data/ux-source-evidence/admin-incidents.json +54 -0
  185. package/data/ux-source-evidence/admin-loading.json +17 -0
  186. package/data/ux-source-evidence/admin-onboarding-detail.json +80 -0
  187. package/data/ux-source-evidence/admin-onboarding.json +62 -0
  188. package/data/ux-source-evidence/admin-payments.json +45 -0
  189. package/data/ux-source-evidence/admin-providers.json +38 -0
  190. package/data/ux-source-evidence/admin-settings.json +18 -0
  191. package/data/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  192. package/data/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  193. package/data/ux-source-evidence/admin-subscriptions-new.json +43 -0
  194. package/data/ux-source-evidence/admin-subscriptions.json +41 -0
  195. package/data/ux-source-evidence/admin-transactions.json +41 -0
  196. package/data/ux-source-evidence/error.json +30 -0
  197. package/data/ux-source-evidence/loading.json +19 -0
  198. package/data/ux-source-evidence/marketing-blog.json +48 -0
  199. package/data/ux-source-evidence/marketing-contact.json +36 -0
  200. package/data/ux-source-evidence/marketing.json +64 -0
  201. package/data/ux-source-evidence/not-found.json +28 -0
  202. package/data/ux-source-evidence/portal-loading.json +17 -0
  203. package/data/ux-source-evidence/portal-mentor-messages.json +31 -0
  204. package/data/ux-source-evidence/portal-mentor-profile.json +23 -0
  205. package/data/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  206. package/data/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  207. package/data/ux-source-evidence/portal-mentor-settings.json +18 -0
  208. package/data/ux-source-evidence/portal-mentor.json +38 -0
  209. package/data/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  210. package/data/ux-source-evidence/portal-sponsor-billing.json +28 -0
  211. package/data/ux-source-evidence/portal-sponsor-profile.json +22 -0
  212. package/data/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  213. package/data/ux-source-evidence/portal-sponsor-settings.json +18 -0
  214. package/data/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  215. package/data/ux-source-evidence/portal-sponsor.json +52 -0
  216. package/data/ux-source-evidence/portal-trainee-competency.json +42 -0
  217. package/data/ux-source-evidence/portal-trainee-credits.json +40 -0
  218. package/data/ux-source-evidence/portal-trainee-mentors.json +48 -0
  219. package/data/ux-source-evidence/portal-trainee-messages.json +32 -0
  220. package/data/ux-source-evidence/portal-trainee-notifications.json +35 -0
  221. package/data/ux-source-evidence/portal-trainee-profile.json +26 -0
  222. package/data/ux-source-evidence/portal-trainee-request.json +54 -0
  223. package/data/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  224. package/data/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  225. package/data/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  226. package/data/ux-source-evidence/portal-trainee-sessions.json +36 -0
  227. package/data/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  228. package/data/ux-source-evidence/portal-trainee-settings.json +18 -0
  229. package/data/ux-source-evidence/portal-trainee.json +44 -0
  230. package/data/ux-source-evidence/portal-tv-detail.json +39 -0
  231. package/data/ux-source-evidence/portal-tv.json +44 -0
  232. package/data/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  233. package/data/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  234. package/data/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  235. package/data/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  236. package/data/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  237. package/data/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  238. package/data/ux-source-evidence/shared-portal-empty-state.json +24 -0
  239. package/data/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  240. package/data/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  241. package/data/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  242. package/data/ux-source-evidence/shared-portal-profile-form.json +32 -0
  243. package/data/ux-source-evidence/shared-portal-settings-view.json +81 -0
  244. package/data/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  245. package/data/ux-source-evidence/shared-portal-user-menu.json +34 -0
  246. package/lib/api.mjs +228 -4
  247. package/package.json +2 -2
@@ -122,8 +122,14 @@
122
122
  "bundlePath": "blocks/database-workspace",
123
123
  "sourcePath": "blocks/database-workspace/DatabaseWorkspaceBlocks.tsx",
124
124
  "exportName": "DatabaseToolbar",
125
- "requiredImports": ["@utopia-studio-design/design-system/Database"],
126
- "contracts": ["query controls", "saved view context", "permission-aware create action"],
125
+ "requiredImports": [
126
+ "@utopia-studio-design/design-system/Database"
127
+ ],
128
+ "contracts": [
129
+ "query controls",
130
+ "saved view context",
131
+ "permission-aware create action"
132
+ ],
127
133
  "rtlReady": true,
128
134
  "reducedMotion": true,
129
135
  "responsiveMinimum": "320px"
@@ -137,8 +143,15 @@
137
143
  "bundlePath": "blocks/database-workspace",
138
144
  "sourcePath": "blocks/database-workspace/DatabaseWorkspaceBlocks.tsx",
139
145
  "exportName": "DatabaseTableBlock",
140
- "requiredImports": ["@utopia-studio-design/design-system/Database"],
141
- "contracts": ["schema-driven properties", "grid keyboard model", "virtualization", "optimistic recovery"],
146
+ "requiredImports": [
147
+ "@utopia-studio-design/design-system/Database"
148
+ ],
149
+ "contracts": [
150
+ "schema-driven properties",
151
+ "grid keyboard model",
152
+ "virtualization",
153
+ "optimistic recovery"
154
+ ],
142
155
  "rtlReady": true,
143
156
  "reducedMotion": true,
144
157
  "responsiveMinimum": "320px"
@@ -152,8 +165,13 @@
152
165
  "bundlePath": "blocks/database-workspace",
153
166
  "sourcePath": "blocks/database-workspace/DatabaseWorkspaceBlocks.tsx",
154
167
  "exportName": "SavedViewsBar",
155
- "requiredImports": ["@utopia-studio-design/design-system/Database"],
156
- "contracts": ["controlled active view", "current view semantics"],
168
+ "requiredImports": [
169
+ "@utopia-studio-design/design-system/Database"
170
+ ],
171
+ "contracts": [
172
+ "controlled active view",
173
+ "current view semantics"
174
+ ],
157
175
  "rtlReady": true,
158
176
  "reducedMotion": true,
159
177
  "responsiveMinimum": "320px"
@@ -167,8 +185,14 @@
167
185
  "bundlePath": "blocks/database-workspace",
168
186
  "sourcePath": "blocks/database-workspace/DatabaseWorkspaceBlocks.tsx",
169
187
  "exportName": "RecordDetailDrawer",
170
- "requiredImports": ["@utopia-studio-design/design-system/Database"],
171
- "contracts": ["dialog semantics", "complete property detail", "logical inline-end placement"],
188
+ "requiredImports": [
189
+ "@utopia-studio-design/design-system/Database"
190
+ ],
191
+ "contracts": [
192
+ "dialog semantics",
193
+ "complete property detail",
194
+ "logical inline-end placement"
195
+ ],
172
196
  "rtlReady": true,
173
197
  "reducedMotion": true,
174
198
  "responsiveMinimum": "320px"
@@ -182,8 +206,14 @@
182
206
  "bundlePath": "blocks/database-workspace",
183
207
  "sourcePath": "blocks/database-workspace/DatabaseWorkspaceBlocks.tsx",
184
208
  "exportName": "BulkActionBar",
185
- "requiredImports": ["@utopia-studio-design/design-system/Button"],
186
- "contracts": ["selection count", "clear selection", "bulk mutation action"],
209
+ "requiredImports": [
210
+ "@utopia-studio-design/design-system/Button"
211
+ ],
212
+ "contracts": [
213
+ "selection count",
214
+ "clear selection",
215
+ "bulk mutation action"
216
+ ],
187
217
  "rtlReady": true,
188
218
  "reducedMotion": true,
189
219
  "responsiveMinimum": "320px"
@@ -197,8 +227,15 @@
197
227
  "bundlePath": "blocks/calendar-application",
198
228
  "sourcePath": "blocks/calendar-application/CalendarApplicationBlocks.tsx",
199
229
  "exportName": "SchedulerShell",
200
- "requiredImports": ["@utopia-studio-design/design-system/Calendar"],
201
- "contracts": ["controlled events and adapter", "accessible agenda", "keyboard and touch move alternatives", "responsive view transition"],
230
+ "requiredImports": [
231
+ "@utopia-studio-design/design-system/Calendar"
232
+ ],
233
+ "contracts": [
234
+ "controlled events and adapter",
235
+ "accessible agenda",
236
+ "keyboard and touch move alternatives",
237
+ "responsive view transition"
238
+ ],
202
239
  "rtlReady": true,
203
240
  "reducedMotion": true,
204
241
  "responsiveMinimum": "320px"
@@ -212,8 +249,14 @@
212
249
  "bundlePath": "blocks/calendar-application",
213
250
  "sourcePath": "blocks/calendar-application/CalendarApplicationBlocks.tsx",
214
251
  "exportName": "CalendarSidebar",
215
- "requiredImports": ["@utopia-studio-design/design-system/Calendar"],
216
- "contracts": ["controlled date", "resource visibility", "logical sidebar placement"],
252
+ "requiredImports": [
253
+ "@utopia-studio-design/design-system/Calendar"
254
+ ],
255
+ "contracts": [
256
+ "controlled date",
257
+ "resource visibility",
258
+ "logical sidebar placement"
259
+ ],
217
260
  "rtlReady": true,
218
261
  "reducedMotion": true,
219
262
  "responsiveMinimum": "320px"
@@ -227,8 +270,17 @@
227
270
  "bundlePath": "blocks/calendar-application",
228
271
  "sourcePath": "blocks/calendar-application/CalendarApplicationBlocks.tsx",
229
272
  "exportName": "EventEditorDrawer",
230
- "requiredImports": ["@utopia-studio-design/design-system/Calendar"],
231
- "contracts": ["modal focus and scroll lock", "Escape dismissal", "recurrence edit scope", "required and chronological date validation", "async save recovery with preserved draft", "controlled save and delete"],
273
+ "requiredImports": [
274
+ "@utopia-studio-design/design-system/Calendar"
275
+ ],
276
+ "contracts": [
277
+ "modal focus and scroll lock",
278
+ "Escape dismissal",
279
+ "recurrence edit scope",
280
+ "required and chronological date validation",
281
+ "async save recovery with preserved draft",
282
+ "controlled save and delete"
283
+ ],
232
284
  "rtlReady": true,
233
285
  "reducedMotion": true,
234
286
  "responsiveMinimum": "320px"
@@ -242,8 +294,14 @@
242
294
  "bundlePath": "blocks/calendar-application",
243
295
  "sourcePath": "blocks/calendar-application/CalendarApplicationBlocks.tsx",
244
296
  "exportName": "AgendaPanel",
245
- "requiredImports": ["@utopia-studio-design/design-system/Calendar"],
246
- "contracts": ["chronological event order", "screen-reader names", "equivalent event activation"],
297
+ "requiredImports": [
298
+ "@utopia-studio-design/design-system/Calendar"
299
+ ],
300
+ "contracts": [
301
+ "chronological event order",
302
+ "screen-reader names",
303
+ "equivalent event activation"
304
+ ],
247
305
  "rtlReady": true,
248
306
  "reducedMotion": true,
249
307
  "responsiveMinimum": "320px"
@@ -257,8 +315,14 @@
257
315
  "bundlePath": "blocks/calendar-application",
258
316
  "sourcePath": "blocks/calendar-application/CalendarApplicationBlocks.tsx",
259
317
  "exportName": "TimezoneSelector",
260
- "requiredImports": ["@utopia-studio-design/design-system/Calendar"],
261
- "contracts": ["IANA timezone values", "controlled selection", "visible display context"],
318
+ "requiredImports": [
319
+ "@utopia-studio-design/design-system/Calendar"
320
+ ],
321
+ "contracts": [
322
+ "IANA timezone values",
323
+ "controlled selection",
324
+ "visible display context"
325
+ ],
262
326
  "rtlReady": true,
263
327
  "reducedMotion": true,
264
328
  "responsiveMinimum": "320px"
@@ -352,7 +416,9 @@
352
416
  "bundlePath": "blocks/dashboard-composer",
353
417
  "sourcePath": "blocks/dashboard-composer/DashboardComposerBlocks.tsx",
354
418
  "exportName": "CeramicDashboardRenderer",
355
- "requiredImports": ["@utopia-studio-design/design-system/Composition"],
419
+ "requiredImports": [
420
+ "@utopia-studio-design/design-system/Composition"
421
+ ],
356
422
  "contracts": [
357
423
  "versioned layout validation",
358
424
  "product-supplied renderer map",
@@ -387,6 +453,149 @@
387
453
  "rtlReady": true,
388
454
  "reducedMotion": true,
389
455
  "responsiveMinimum": "320px"
456
+ },
457
+ {
458
+ "id": "pattern-choice-cards",
459
+ "title": "Choice cards",
460
+ "status": "available",
461
+ "category": "semantic-ui-part",
462
+ "purpose": "A small set of mutually exclusive choices needs explanation.",
463
+ "bundlePath": "blocks/semantic-pattern-parts",
464
+ "sourcePath": "blocks/semantic-pattern-parts/ChoiceCards.tsx",
465
+ "exportName": "ChoiceCards",
466
+ "requiredImports": [
467
+ "@utopia-studio-design/design-system"
468
+ ],
469
+ "contracts": [
470
+ "selected",
471
+ "unselected",
472
+ "Product-owned options and selected id",
473
+ "Server permission checks for access-affecting roles"
474
+ ],
475
+ "rtlReady": true,
476
+ "reducedMotion": true,
477
+ "responsiveMinimum": "320px"
478
+ },
479
+ {
480
+ "id": "pattern-validated-field",
481
+ "title": "Validated input",
482
+ "status": "available",
483
+ "category": "semantic-ui-part",
484
+ "purpose": "A field needs a visible label, hint and validation feedback.",
485
+ "bundlePath": "blocks/semantic-pattern-parts",
486
+ "sourcePath": "blocks/semantic-pattern-parts/ValidatedField.tsx",
487
+ "exportName": "ValidatedField",
488
+ "requiredImports": [
489
+ "@utopia-studio-design/design-system"
490
+ ],
491
+ "contracts": [
492
+ "empty",
493
+ "filled",
494
+ "invalid",
495
+ "Host validation policy",
496
+ "Form state and submit callback"
497
+ ],
498
+ "rtlReady": true,
499
+ "reducedMotion": true,
500
+ "responsiveMinimum": "320px"
501
+ },
502
+ {
503
+ "id": "pattern-list-filters",
504
+ "title": "List filters",
505
+ "status": "available",
506
+ "category": "semantic-ui-part",
507
+ "purpose": "A list needs text search, one status filter and reset.",
508
+ "bundlePath": "blocks/semantic-pattern-parts",
509
+ "sourcePath": "blocks/semantic-pattern-parts/ListFilters.tsx",
510
+ "exportName": "ListFilters",
511
+ "requiredImports": [
512
+ "@utopia-studio-design/design-system"
513
+ ],
514
+ "contracts": [
515
+ "default",
516
+ "filtered",
517
+ "reset",
518
+ "Shared host query/status state",
519
+ "Filtered or server-paginated data query",
520
+ "First option is the reset/all value"
521
+ ],
522
+ "rtlReady": true,
523
+ "reducedMotion": true,
524
+ "responsiveMinimum": "320px"
525
+ },
526
+ {
527
+ "id": "pattern-review-list",
528
+ "title": "Review list",
529
+ "status": "available",
530
+ "category": "semantic-ui-part",
531
+ "purpose": "Authorized users inspect items with statuses and assignees.",
532
+ "bundlePath": "blocks/semantic-pattern-parts",
533
+ "sourcePath": "blocks/semantic-pattern-parts/ReviewList.tsx",
534
+ "exportName": "ReviewList",
535
+ "requiredImports": [
536
+ "@utopia-studio-design/design-system"
537
+ ],
538
+ "contracts": [
539
+ "ready",
540
+ "empty",
541
+ "loading",
542
+ "error",
543
+ "retry",
544
+ "Authorized row query",
545
+ "Review callback must not auto-approve",
546
+ "Localized labels",
547
+ "Host filtering and retry"
548
+ ],
549
+ "rtlReady": true,
550
+ "reducedMotion": true,
551
+ "responsiveMinimum": "320px"
552
+ },
553
+ {
554
+ "id": "pattern-progress-steps",
555
+ "title": "Progress steps",
556
+ "status": "available",
557
+ "category": "semantic-ui-part",
558
+ "purpose": "An ordered task has known prerequisites and a current step.",
559
+ "bundlePath": "blocks/semantic-pattern-parts",
560
+ "sourcePath": "blocks/semantic-pattern-parts/ProgressSteps.tsx",
561
+ "exportName": "ProgressSteps",
562
+ "requiredImports": [
563
+ "@utopia-studio-design/design-system"
564
+ ],
565
+ "contracts": [
566
+ "done",
567
+ "current",
568
+ "locked",
569
+ "Host prerequisite rules",
570
+ "Current step",
571
+ "Navigation callback"
572
+ ],
573
+ "rtlReady": true,
574
+ "reducedMotion": true,
575
+ "responsiveMinimum": "320px"
576
+ },
577
+ {
578
+ "id": "pattern-outcome-notice",
579
+ "title": "Outcome and next action",
580
+ "status": "available",
581
+ "category": "semantic-ui-part",
582
+ "purpose": "A confirmed result or recoverable issue needs a next action.",
583
+ "bundlePath": "blocks/semantic-pattern-parts",
584
+ "sourcePath": "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
585
+ "exportName": "OutcomeNotice",
586
+ "requiredImports": [
587
+ "@utopia-studio-design/design-system"
588
+ ],
589
+ "contracts": [
590
+ "info",
591
+ "success",
592
+ "warning",
593
+ "Confirmed result",
594
+ "Meaningful next-action/retry callback"
595
+ ],
596
+ "rtlReady": true,
597
+ "reducedMotion": true,
598
+ "responsiveMinimum": "320px"
390
599
  }
391
600
  ]
392
601
  }
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": 1,
3
+ "id": "ceramic-brandbook",
4
+ "name": "Ceramic Brandbook",
5
+ "repository": "https://github.com/The-Utopia-Studio/Ceramic-Brandbook",
6
+ "branch": "main",
7
+ "revision": "8b4e0fe9bbf33c0e9e2aee9a17d48b9e47d31108",
8
+ "skillPath": "skills/ceramic-brandbook/SKILL.md",
9
+ "sourceDocument": "BRAND.md",
10
+ "workflow": [
11
+ "read-room-context-and-assets",
12
+ "present-three-directions-a-b-c",
13
+ "refine-selected-direction-with-user",
14
+ "write-one-brand-md",
15
+ "produce-or-register-assets",
16
+ "validate-and-build",
17
+ "save-versioned-room-bundle"
18
+ ],
19
+ "rules": {
20
+ "logoOptional": true,
21
+ "requiredDirectionCount": 3,
22
+ "defaultLocales": ["en", "ar"],
23
+ "imageProvider": "Use the active chat's native image generator by default. Use another provider only when the user names it or the operation requires it.",
24
+ "solution": {
25
+ "minimumShowcases": 1,
26
+ "maximumShowcases": 3,
27
+ "types": ["phone", "desktop", "environment"],
28
+ "selection": "Choose only applications that fit the brand and supplied assets.",
29
+ "imagery": "Generate a dedicated scene for every photographic desktop or environment application with the active image skill; do not reuse general brand photography.",
30
+ "presentation": "Place mockups directly on the semantic brand canvas. Do not add generic backing panels or caption overlays."
31
+ }
32
+ }
33
+ }
@@ -16,6 +16,7 @@
16
16
  "Getting Started",
17
17
  "What's New",
18
18
  "Connect MCP",
19
+ "Create a Brandbook",
19
20
  "Create a Theme",
20
21
  "Create a Logo",
21
22
  "Use Templates",