@utopia-studio-design/design-system-cli 0.8.1 → 0.8.2
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.
- package/bin/utopia-ds-mcp.mjs +15 -4
- package/bin/utopia-ds.mjs +16 -3
- package/data/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
- package/data/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
- package/data/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
- package/data/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
- package/data/blocks/semantic-pattern-parts/PatternParts.tsx +7 -0
- package/data/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
- package/data/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
- package/data/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
- package/data/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
- package/data/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
- package/data/blocks/semantic-pattern-parts/auth-parts.css +27 -0
- package/data/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
- package/data/blocks/semantic-pattern-parts/product-parts.css +25 -0
- package/data/blocks/semantic-pattern-parts/types.ts +3 -0
- package/data/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
- package/data/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
- package/data/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
- package/data/blocks/ux-pattern-examples/OnboardingExample.tsx +15 -0
- package/data/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
- package/data/blocks/ux-pattern-examples/ReviewExample.tsx +14 -0
- package/data/blocks/ux-pattern-examples/SignupExample.tsx +22 -0
- package/data/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
- package/data/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
- package/data/blocks/ux-pattern-examples/copy.ts +6 -0
- package/data/blocks/ux-pattern-examples/ux-examples.css +18 -0
- package/data/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
- package/data/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
- package/data/docs/ui-parts-qa.md +172 -0
- package/data/docs/ui-parts.md +105 -0
- package/data/docs/ux-pattern-adaptation-qa.md +38 -0
- package/data/docs/ux-pattern-adaptation.md +41 -0
- package/data/docs/ux-pattern-migration.md +111 -0
- package/data/docs/ux-pattern-publish-2026-09-13.md +22 -0
- package/data/docs/ux-pattern-release-2026-09-13.md +26 -0
- package/data/docs/ux-source-evidence/account-auth.json +41 -0
- package/data/docs/ux-source-evidence/account-forgot-password.json +36 -0
- package/data/docs/ux-source-evidence/account-invite.json +63 -0
- package/data/docs/ux-source-evidence/account-locked.json +63 -0
- package/data/docs/ux-source-evidence/account-login.json +28 -0
- package/data/docs/ux-source-evidence/account-mfa.json +62 -0
- package/data/docs/ux-source-evidence/account-onboarding-credentials.json +52 -0
- package/data/docs/ux-source-evidence/account-onboarding-legal.json +56 -0
- package/data/docs/ux-source-evidence/account-onboarding-orientation.json +66 -0
- package/data/docs/ux-source-evidence/account-onboarding-profile.json +50 -0
- package/data/docs/ux-source-evidence/account-onboarding.json +69 -0
- package/data/docs/ux-source-evidence/account-reset-password.json +27 -0
- package/data/docs/ux-source-evidence/account-session-expired.json +62 -0
- package/data/docs/ux-source-evidence/account-signup.json +33 -0
- package/data/docs/ux-source-evidence/account-verify-email.json +34 -0
- package/data/docs/ux-source-evidence/account-welcome.json +41 -0
- package/data/docs/ux-source-evidence/admin-analytics.json +54 -0
- package/data/docs/ux-source-evidence/admin-audit.json +31 -0
- package/data/docs/ux-source-evidence/admin-broadcasts-new.json +36 -0
- package/data/docs/ux-source-evidence/admin-broadcasts.json +41 -0
- package/data/docs/ux-source-evidence/admin-closures.json +52 -0
- package/data/docs/ux-source-evidence/admin-devices.json +51 -0
- package/data/docs/ux-source-evidence/admin-escalations.json +35 -0
- package/data/docs/ux-source-evidence/admin-incidents.json +54 -0
- package/data/docs/ux-source-evidence/admin-loading.json +17 -0
- package/data/docs/ux-source-evidence/admin-onboarding-detail.json +80 -0
- package/data/docs/ux-source-evidence/admin-onboarding.json +62 -0
- package/data/docs/ux-source-evidence/admin-payments.json +45 -0
- package/data/docs/ux-source-evidence/admin-providers.json +38 -0
- package/data/docs/ux-source-evidence/admin-settings.json +18 -0
- package/data/docs/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
- package/data/docs/ux-source-evidence/admin-subscriptions-detail.json +48 -0
- package/data/docs/ux-source-evidence/admin-subscriptions-new.json +43 -0
- package/data/docs/ux-source-evidence/admin-subscriptions.json +41 -0
- package/data/docs/ux-source-evidence/admin-transactions.json +41 -0
- package/data/docs/ux-source-evidence/error.json +30 -0
- package/data/docs/ux-source-evidence/loading.json +19 -0
- package/data/docs/ux-source-evidence/marketing-blog.json +48 -0
- package/data/docs/ux-source-evidence/marketing-contact.json +36 -0
- package/data/docs/ux-source-evidence/marketing.json +64 -0
- package/data/docs/ux-source-evidence/not-found.json +28 -0
- package/data/docs/ux-source-evidence/portal-loading.json +17 -0
- package/data/docs/ux-source-evidence/portal-mentor-messages.json +31 -0
- package/data/docs/ux-source-evidence/portal-mentor-profile.json +23 -0
- package/data/docs/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
- package/data/docs/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
- package/data/docs/ux-source-evidence/portal-mentor-settings.json +18 -0
- package/data/docs/ux-source-evidence/portal-mentor.json +38 -0
- package/data/docs/ux-source-evidence/portal-sessions-detail-live.json +48 -0
- package/data/docs/ux-source-evidence/portal-sponsor-billing.json +28 -0
- package/data/docs/ux-source-evidence/portal-sponsor-profile.json +22 -0
- package/data/docs/ux-source-evidence/portal-sponsor-sessions.json +28 -0
- package/data/docs/ux-source-evidence/portal-sponsor-settings.json +18 -0
- package/data/docs/ux-source-evidence/portal-sponsor-trainees.json +36 -0
- package/data/docs/ux-source-evidence/portal-sponsor.json +52 -0
- package/data/docs/ux-source-evidence/portal-trainee-competency.json +42 -0
- package/data/docs/ux-source-evidence/portal-trainee-credits.json +40 -0
- package/data/docs/ux-source-evidence/portal-trainee-mentors.json +48 -0
- package/data/docs/ux-source-evidence/portal-trainee-messages.json +32 -0
- package/data/docs/ux-source-evidence/portal-trainee-notifications.json +35 -0
- package/data/docs/ux-source-evidence/portal-trainee-profile.json +26 -0
- package/data/docs/ux-source-evidence/portal-trainee-request.json +54 -0
- package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
- package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
- package/data/docs/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
- package/data/docs/ux-source-evidence/portal-trainee-sessions.json +36 -0
- package/data/docs/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
- package/data/docs/ux-source-evidence/portal-trainee-settings.json +18 -0
- package/data/docs/ux-source-evidence/portal-trainee.json +44 -0
- package/data/docs/ux-source-evidence/portal-tv-detail.json +39 -0
- package/data/docs/ux-source-evidence/portal-tv.json +44 -0
- package/data/docs/ux-source-evidence/shared-admin-admin-shell.json +35 -0
- package/data/docs/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
- package/data/docs/ux-source-evidence/shared-auth-auth-shell.json +25 -0
- package/data/docs/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
- package/data/docs/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
- package/data/docs/ux-source-evidence/shared-auth-status-indicator.json +41 -0
- package/data/docs/ux-source-evidence/shared-portal-empty-state.json +24 -0
- package/data/docs/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
- package/data/docs/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
- package/data/docs/ux-source-evidence/shared-portal-portal-shell.json +36 -0
- package/data/docs/ux-source-evidence/shared-portal-profile-form.json +32 -0
- package/data/docs/ux-source-evidence/shared-portal-settings-view.json +81 -0
- package/data/docs/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
- package/data/docs/ux-source-evidence/shared-portal-user-menu.json +34 -0
- package/data/manifests/blocks.json +230 -21
- package/data/manifests/patterns.json +330 -0
- package/data/manifests/ui-patterns.json +1029 -0
- package/data/manifests/ux-examples.json +2177 -0
- package/data/manifests/ux-patterns.json +1135 -0
- package/data/manifests/ux-source-inventory.json +4669 -0
- package/data/ui-parts/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
- package/data/ui-parts/blocks/analytics-dashboard/analytics-dashboard.css +92 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/auth-parts.css +27 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/product-parts.css +25 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/types.ts +3 -0
- package/data/ui-parts/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
- package/data/ui-parts/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
- package/data/ui-parts/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
- package/data/ui-parts/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
- package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
- package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
- package/data/ui-parts/blocks/ux-pattern-examples/copy.ts +6 -0
- package/data/ui-parts/blocks/ux-pattern-examples/ux-examples.css +18 -0
- package/data/ui-parts/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
- package/data/ui-parts/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
- package/data/ux-source-evidence/account-auth.json +41 -0
- package/data/ux-source-evidence/account-forgot-password.json +36 -0
- package/data/ux-source-evidence/account-invite.json +63 -0
- package/data/ux-source-evidence/account-locked.json +63 -0
- package/data/ux-source-evidence/account-login.json +28 -0
- package/data/ux-source-evidence/account-mfa.json +62 -0
- package/data/ux-source-evidence/account-onboarding-credentials.json +52 -0
- package/data/ux-source-evidence/account-onboarding-legal.json +56 -0
- package/data/ux-source-evidence/account-onboarding-orientation.json +66 -0
- package/data/ux-source-evidence/account-onboarding-profile.json +50 -0
- package/data/ux-source-evidence/account-onboarding.json +69 -0
- package/data/ux-source-evidence/account-reset-password.json +27 -0
- package/data/ux-source-evidence/account-session-expired.json +62 -0
- package/data/ux-source-evidence/account-signup.json +33 -0
- package/data/ux-source-evidence/account-verify-email.json +34 -0
- package/data/ux-source-evidence/account-welcome.json +41 -0
- package/data/ux-source-evidence/admin-analytics.json +54 -0
- package/data/ux-source-evidence/admin-audit.json +31 -0
- package/data/ux-source-evidence/admin-broadcasts-new.json +36 -0
- package/data/ux-source-evidence/admin-broadcasts.json +41 -0
- package/data/ux-source-evidence/admin-closures.json +52 -0
- package/data/ux-source-evidence/admin-devices.json +51 -0
- package/data/ux-source-evidence/admin-escalations.json +35 -0
- package/data/ux-source-evidence/admin-incidents.json +54 -0
- package/data/ux-source-evidence/admin-loading.json +17 -0
- package/data/ux-source-evidence/admin-onboarding-detail.json +80 -0
- package/data/ux-source-evidence/admin-onboarding.json +62 -0
- package/data/ux-source-evidence/admin-payments.json +45 -0
- package/data/ux-source-evidence/admin-providers.json +38 -0
- package/data/ux-source-evidence/admin-settings.json +18 -0
- package/data/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
- package/data/ux-source-evidence/admin-subscriptions-detail.json +48 -0
- package/data/ux-source-evidence/admin-subscriptions-new.json +43 -0
- package/data/ux-source-evidence/admin-subscriptions.json +41 -0
- package/data/ux-source-evidence/admin-transactions.json +41 -0
- package/data/ux-source-evidence/error.json +30 -0
- package/data/ux-source-evidence/loading.json +19 -0
- package/data/ux-source-evidence/marketing-blog.json +48 -0
- package/data/ux-source-evidence/marketing-contact.json +36 -0
- package/data/ux-source-evidence/marketing.json +64 -0
- package/data/ux-source-evidence/not-found.json +28 -0
- package/data/ux-source-evidence/portal-loading.json +17 -0
- package/data/ux-source-evidence/portal-mentor-messages.json +31 -0
- package/data/ux-source-evidence/portal-mentor-profile.json +23 -0
- package/data/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
- package/data/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
- package/data/ux-source-evidence/portal-mentor-settings.json +18 -0
- package/data/ux-source-evidence/portal-mentor.json +38 -0
- package/data/ux-source-evidence/portal-sessions-detail-live.json +48 -0
- package/data/ux-source-evidence/portal-sponsor-billing.json +28 -0
- package/data/ux-source-evidence/portal-sponsor-profile.json +22 -0
- package/data/ux-source-evidence/portal-sponsor-sessions.json +28 -0
- package/data/ux-source-evidence/portal-sponsor-settings.json +18 -0
- package/data/ux-source-evidence/portal-sponsor-trainees.json +36 -0
- package/data/ux-source-evidence/portal-sponsor.json +52 -0
- package/data/ux-source-evidence/portal-trainee-competency.json +42 -0
- package/data/ux-source-evidence/portal-trainee-credits.json +40 -0
- package/data/ux-source-evidence/portal-trainee-mentors.json +48 -0
- package/data/ux-source-evidence/portal-trainee-messages.json +32 -0
- package/data/ux-source-evidence/portal-trainee-notifications.json +35 -0
- package/data/ux-source-evidence/portal-trainee-profile.json +26 -0
- package/data/ux-source-evidence/portal-trainee-request.json +54 -0
- package/data/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
- package/data/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
- package/data/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
- package/data/ux-source-evidence/portal-trainee-sessions.json +36 -0
- package/data/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
- package/data/ux-source-evidence/portal-trainee-settings.json +18 -0
- package/data/ux-source-evidence/portal-trainee.json +44 -0
- package/data/ux-source-evidence/portal-tv-detail.json +39 -0
- package/data/ux-source-evidence/portal-tv.json +44 -0
- package/data/ux-source-evidence/shared-admin-admin-shell.json +35 -0
- package/data/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
- package/data/ux-source-evidence/shared-auth-auth-shell.json +25 -0
- package/data/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
- package/data/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
- package/data/ux-source-evidence/shared-auth-status-indicator.json +41 -0
- package/data/ux-source-evidence/shared-portal-empty-state.json +24 -0
- package/data/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
- package/data/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
- package/data/ux-source-evidence/shared-portal-portal-shell.json +36 -0
- package/data/ux-source-evidence/shared-portal-profile-form.json +32 -0
- package/data/ux-source-evidence/shared-portal-settings-view.json +81 -0
- package/data/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
- package/data/ux-source-evidence/shared-portal-user-menu.json +34 -0
- package/lib/api.mjs +193 -4
- 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": [
|
|
126
|
-
|
|
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": [
|
|
141
|
-
|
|
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": [
|
|
156
|
-
|
|
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": [
|
|
171
|
-
|
|
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": [
|
|
186
|
-
|
|
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": [
|
|
201
|
-
|
|
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": [
|
|
216
|
-
|
|
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": [
|
|
231
|
-
|
|
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": [
|
|
246
|
-
|
|
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": [
|
|
261
|
-
|
|
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": [
|
|
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
|
}
|
|
@@ -341,6 +341,336 @@
|
|
|
341
341
|
"document",
|
|
342
342
|
"logo-on-band"
|
|
343
343
|
]
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "ux-pattern-examples",
|
|
347
|
+
"title": "UX pattern page examples",
|
|
348
|
+
"source": "blocks/ux-pattern-examples/ux-examples.css",
|
|
349
|
+
"contract": "Human-facing UX pattern list with complete contextual page examples, preview/code inspection, base npm installation and optional AI handoff. Examples compose reusable parts; agents still select only needed parts. No required manual assembly. Use the user theme or Cloudblur, no source branding. Clearly distinguish shipped npm components from local example/MCP code. Input stays in demo memory; no signup, consent, review or provisioning is executed. Every example links internally to a pinned source pattern; source-indexed status is not a completed port. States can be inspected independently, without switching other examples. Retired invented review/workspace examples are not discoverable.",
|
|
350
|
+
"ownership": [
|
|
351
|
+
"UIPatternLibrary",
|
|
352
|
+
"AccountExamples",
|
|
353
|
+
"AuthFrame",
|
|
354
|
+
"semantic-pattern-parts",
|
|
355
|
+
"Button",
|
|
356
|
+
"Checkbox",
|
|
357
|
+
"TextInput"
|
|
358
|
+
],
|
|
359
|
+
"slots": [
|
|
360
|
+
"ux-example",
|
|
361
|
+
"bar",
|
|
362
|
+
"center",
|
|
363
|
+
"form",
|
|
364
|
+
"setup",
|
|
365
|
+
"workspace",
|
|
366
|
+
"actions",
|
|
367
|
+
"check"
|
|
368
|
+
],
|
|
369
|
+
"states": [
|
|
370
|
+
"preview",
|
|
371
|
+
"code",
|
|
372
|
+
"invalid",
|
|
373
|
+
"complete",
|
|
374
|
+
"filtered",
|
|
375
|
+
"empty",
|
|
376
|
+
"copied",
|
|
377
|
+
"copy-failed"
|
|
378
|
+
],
|
|
379
|
+
"tokens": [
|
|
380
|
+
"--ux-example-min-height",
|
|
381
|
+
"--ux-example-form-width",
|
|
382
|
+
"--ux-example-setup-width",
|
|
383
|
+
"--surface",
|
|
384
|
+
"--background",
|
|
385
|
+
"--foreground",
|
|
386
|
+
"--border",
|
|
387
|
+
"--radius-surface"
|
|
388
|
+
],
|
|
389
|
+
"responsive": {
|
|
390
|
+
"behavior": "Bounded page stage, form center stacks at small widths; native tables/code scrolling without chrome, logical layout and localized examples."
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"id": "semantic-pattern-parts",
|
|
395
|
+
"title": "Composable product-neutral UI parts",
|
|
396
|
+
"source": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
397
|
+
"contract": "Parts expose product-owned labels, data and callbacks. No copied screen shells, brand names or portal roles. Choices, fields, filters, review rows, progress and results compose independently; reuse KPIGrid for metrics. User/room theme wins; otherwise Cloudblur. Surface radii are bounded independently from pill controls. MCP retrieves only selected parts with explicit shared-state bindings, never authorizes operations.",
|
|
398
|
+
"ownership": [
|
|
399
|
+
"PatternParts",
|
|
400
|
+
"KPIGrid",
|
|
401
|
+
"UIPatternLibrary",
|
|
402
|
+
"UIPatternPreview",
|
|
403
|
+
"Button",
|
|
404
|
+
"TextInput",
|
|
405
|
+
"NativeSelect",
|
|
406
|
+
"Badge",
|
|
407
|
+
"DataTable"
|
|
408
|
+
],
|
|
409
|
+
"slots": [
|
|
410
|
+
"pattern-choices",
|
|
411
|
+
"pattern-field",
|
|
412
|
+
"pattern-filters",
|
|
413
|
+
"pattern-review",
|
|
414
|
+
"pattern-steps",
|
|
415
|
+
"pattern-result"
|
|
416
|
+
],
|
|
417
|
+
"states": [
|
|
418
|
+
"selected",
|
|
419
|
+
"unselected",
|
|
420
|
+
"empty",
|
|
421
|
+
"invalid",
|
|
422
|
+
"filtered",
|
|
423
|
+
"ready",
|
|
424
|
+
"loading",
|
|
425
|
+
"error",
|
|
426
|
+
"retry",
|
|
427
|
+
"done",
|
|
428
|
+
"current",
|
|
429
|
+
"locked",
|
|
430
|
+
"info",
|
|
431
|
+
"success",
|
|
432
|
+
"warning"
|
|
433
|
+
],
|
|
434
|
+
"tokens": [
|
|
435
|
+
"--pattern-part-radius",
|
|
436
|
+
"--pattern-part-min",
|
|
437
|
+
"--radius-surface",
|
|
438
|
+
"--foreground",
|
|
439
|
+
"--foreground-muted",
|
|
440
|
+
"--primary",
|
|
441
|
+
"--primary-foreground",
|
|
442
|
+
"--surface",
|
|
443
|
+
"--border",
|
|
444
|
+
"--success",
|
|
445
|
+
"--warning"
|
|
446
|
+
],
|
|
447
|
+
"responsive": {
|
|
448
|
+
"behavior": "Auto-fit parts, wrapped filters, native table scrolling without chrome, logical properties and translated labels for RTL. No motion required."
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"id": "ux-pattern-catalog",
|
|
453
|
+
"title": "UX pattern example library",
|
|
454
|
+
"source": "src/patterns/ux-pattern-catalog.css",
|
|
455
|
+
"contract": "Searchable catalogue links to one dedicated route per implemented UX pattern. Detail renders only that example, with back-to-list and adjacent links, Preview/Code, viewport, reset, state, npm and optional AI controls. Browser back/forward, refresh and legacy example query links work. No giant stacked one-pager; source-indexed items are not completed examples. User theme wins, otherwise Cloudblur. AI selects needed parts independently; demos are memory-only and publishing status is explicit. Catalogue and detail routes use the same templates application area and never mount the documentation sidebar, including mobile. The preview uses the full available main canvas.",
|
|
456
|
+
"ownership": [
|
|
457
|
+
"UIPatternLibrary",
|
|
458
|
+
"UIPatternPreview",
|
|
459
|
+
"TemplatesPage composition",
|
|
460
|
+
"Button",
|
|
461
|
+
"NativeSelect",
|
|
462
|
+
"TextInput",
|
|
463
|
+
"TextArea",
|
|
464
|
+
"Badge",
|
|
465
|
+
"semantic-pattern-parts",
|
|
466
|
+
"KPIGrid"
|
|
467
|
+
],
|
|
468
|
+
"slots": [
|
|
469
|
+
"ux-pattern-catalog",
|
|
470
|
+
"nav",
|
|
471
|
+
"detail",
|
|
472
|
+
"heading",
|
|
473
|
+
"controls",
|
|
474
|
+
"stage",
|
|
475
|
+
"page",
|
|
476
|
+
"code",
|
|
477
|
+
"meta",
|
|
478
|
+
"help",
|
|
479
|
+
"feedback",
|
|
480
|
+
"gallery-navigation",
|
|
481
|
+
"gallery-identity",
|
|
482
|
+
"gallery-sizes",
|
|
483
|
+
"catalog-index",
|
|
484
|
+
"catalog-entry",
|
|
485
|
+
"catalog-link"
|
|
486
|
+
],
|
|
487
|
+
"states": [
|
|
488
|
+
"searching",
|
|
489
|
+
"empty",
|
|
490
|
+
"selected",
|
|
491
|
+
"preview",
|
|
492
|
+
"code",
|
|
493
|
+
"copied",
|
|
494
|
+
"copy-failed"
|
|
495
|
+
],
|
|
496
|
+
"tokens": [
|
|
497
|
+
"--ux-catalog-card-min",
|
|
498
|
+
"--ux-catalog-content-max",
|
|
499
|
+
"--ux-catalog-radius",
|
|
500
|
+
"--ux-catalog-sample-height",
|
|
501
|
+
"--ux-library-nav-width",
|
|
502
|
+
"--ux-library-mobile-width",
|
|
503
|
+
"--ux-library-code-height",
|
|
504
|
+
"--ux-gallery-tablet-width",
|
|
505
|
+
"--ux-gallery-search-width"
|
|
506
|
+
],
|
|
507
|
+
"responsive": {
|
|
508
|
+
"behavior": "Horizontal pattern navigation and toolbar wrap at 60rem. Full-width preview can be bounded to tablet/mobile widths; native table/code scrolling has no chrome. Logical layout supports Arabic."
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"id": "auth-interactions",
|
|
513
|
+
"title": "Composable account interactions",
|
|
514
|
+
"source": "blocks/semantic-pattern-parts/auth-parts.css",
|
|
515
|
+
"contract": "Password visibility/strength, six-digit entry, provider selection and centered account framing are independently reusable source-backed interactions. Product owns labels, rules, pending/error/success state and auth callbacks. OTP supports paste/backspace/arrows, labels and RTL numeric order. Preview remains in-memory and cannot authenticate, send mail, persist passwords or change security settings. Source screenshots and palettes are never rendered as themed ports.",
|
|
516
|
+
"ownership": [
|
|
517
|
+
"AuthParts",
|
|
518
|
+
"AccountExamples",
|
|
519
|
+
"UIPatternLibrary",
|
|
520
|
+
"Button",
|
|
521
|
+
"TextInput",
|
|
522
|
+
"Checkbox"
|
|
523
|
+
],
|
|
524
|
+
"slots": [
|
|
525
|
+
"password-field",
|
|
526
|
+
"verification-code",
|
|
527
|
+
"provider-sign-in",
|
|
528
|
+
"auth-part-frame",
|
|
529
|
+
"auth-part-field",
|
|
530
|
+
"auth-part-password",
|
|
531
|
+
"auth-part-rules",
|
|
532
|
+
"auth-part-code",
|
|
533
|
+
"auth-part-providers",
|
|
534
|
+
"auth-part-divider",
|
|
535
|
+
"auth-part-actions",
|
|
536
|
+
"auth-part-card",
|
|
537
|
+
"auth-part-check",
|
|
538
|
+
"auth-part-state"
|
|
539
|
+
],
|
|
540
|
+
"states": [
|
|
541
|
+
"hidden",
|
|
542
|
+
"visible",
|
|
543
|
+
"invalid",
|
|
544
|
+
"partial",
|
|
545
|
+
"complete",
|
|
546
|
+
"pending",
|
|
547
|
+
"waiting",
|
|
548
|
+
"expired",
|
|
549
|
+
"selected"
|
|
550
|
+
],
|
|
551
|
+
"tokens": [
|
|
552
|
+
"--auth-form-width",
|
|
553
|
+
"--auth-code-cell-min",
|
|
554
|
+
"--surface",
|
|
555
|
+
"--background",
|
|
556
|
+
"--foreground",
|
|
557
|
+
"--foreground-muted",
|
|
558
|
+
"--destructive-text",
|
|
559
|
+
"--success-text",
|
|
560
|
+
"--border",
|
|
561
|
+
"--radius-input",
|
|
562
|
+
"--radius-surface",
|
|
563
|
+
"--auth-code-radius",
|
|
564
|
+
"--auth-panel-radius"
|
|
565
|
+
],
|
|
566
|
+
"responsive": {
|
|
567
|
+
"behavior": "Container-bounded form, wrapping actions and logical spacing. Numeric codes remain LTR inside Arabic context; no custom motion."
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"id": "product-interactions",
|
|
572
|
+
"title": "Composable activity and preference interactions",
|
|
573
|
+
"source": "blocks/semantic-pattern-parts/product-parts.css",
|
|
574
|
+
"contract": "Host-owned activity rows, directory cards and per-event notification channels. Generic labels and callbacks, bounded semantic geometry, accessible empty and unread states. Channel restrictions are host data, not product-wide policy. Examples reuse only needed interactions, never a source portal shell. All demo activity remains in memory.",
|
|
575
|
+
"ownership": [
|
|
576
|
+
"ProductParts",
|
|
577
|
+
"ProductExamples",
|
|
578
|
+
"Button",
|
|
579
|
+
"NativeSelect"
|
|
580
|
+
],
|
|
581
|
+
"slots": [
|
|
582
|
+
"activity-list",
|
|
583
|
+
"activity-row",
|
|
584
|
+
"directory-cards",
|
|
585
|
+
"directory-card",
|
|
586
|
+
"channel-preferences",
|
|
587
|
+
"product-example",
|
|
588
|
+
"product-content",
|
|
589
|
+
"product-columns",
|
|
590
|
+
"product-toolbar"
|
|
591
|
+
],
|
|
592
|
+
"states": [
|
|
593
|
+
"default",
|
|
594
|
+
"empty",
|
|
595
|
+
"unread",
|
|
596
|
+
"archived",
|
|
597
|
+
"selected",
|
|
598
|
+
"filtered",
|
|
599
|
+
"saved",
|
|
600
|
+
"dirty"
|
|
601
|
+
],
|
|
602
|
+
"tokens": [
|
|
603
|
+
"--product-content-width",
|
|
604
|
+
"--product-card-min",
|
|
605
|
+
"--product-panel-radius",
|
|
606
|
+
"--space-4",
|
|
607
|
+
"--space-6",
|
|
608
|
+
"--surface",
|
|
609
|
+
"--surface-strong",
|
|
610
|
+
"--foreground",
|
|
611
|
+
"--foreground-muted",
|
|
612
|
+
"--border"
|
|
613
|
+
],
|
|
614
|
+
"responsive": {
|
|
615
|
+
"behavior": "Container-query two-column layout collapses within mobile previews; rows and controls wrap. Logical spacing and native chrome-free scrolling."
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"id": "workflow-interactions",
|
|
620
|
+
"title": "Independent workflow fields, records, checks and media state",
|
|
621
|
+
"source": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
622
|
+
"contract": "Composable host-owned fields, record tables, prerequisite checks, ratings, measures, trends and media stages. Example definitions carry source-linked neutral scenarios, not source portal layouts. Required-field policy, authorization, prices, file transfer, device testing and mutations remain with the integrating product. Bounded surfaces, native scrolling without chrome, keyboard names and logical RTL layout.",
|
|
623
|
+
"ownership": [
|
|
624
|
+
"WorkflowParts",
|
|
625
|
+
"WorkflowExample",
|
|
626
|
+
"WorkflowExamples",
|
|
627
|
+
"Button",
|
|
628
|
+
"TextInput",
|
|
629
|
+
"TextArea",
|
|
630
|
+
"NativeSelect"
|
|
631
|
+
],
|
|
632
|
+
"slots": [
|
|
633
|
+
"workflow-example",
|
|
634
|
+
"workflow-fields",
|
|
635
|
+
"workflow-multi-select",
|
|
636
|
+
"record-table",
|
|
637
|
+
"step-checklist",
|
|
638
|
+
"stat-strip",
|
|
639
|
+
"rating-fields",
|
|
640
|
+
"trend-summary",
|
|
641
|
+
"media-stage"
|
|
642
|
+
],
|
|
643
|
+
"states": [
|
|
644
|
+
"default",
|
|
645
|
+
"invalid",
|
|
646
|
+
"empty",
|
|
647
|
+
"pending",
|
|
648
|
+
"pass",
|
|
649
|
+
"fail",
|
|
650
|
+
"locked",
|
|
651
|
+
"selected",
|
|
652
|
+
"complete",
|
|
653
|
+
"scheduled",
|
|
654
|
+
"live",
|
|
655
|
+
"ended"
|
|
656
|
+
],
|
|
657
|
+
"tokens": [
|
|
658
|
+
"--workflow-table-min",
|
|
659
|
+
"--workflow-media-min",
|
|
660
|
+
"--product-panel-radius",
|
|
661
|
+
"--space-4",
|
|
662
|
+
"--space-5",
|
|
663
|
+
"--border",
|
|
664
|
+
"--surface",
|
|
665
|
+
"--surface-strong",
|
|
666
|
+
"--foreground-muted",
|
|
667
|
+
"--destructive-text",
|
|
668
|
+
"--primary",
|
|
669
|
+
"--ring"
|
|
670
|
+
],
|
|
671
|
+
"responsive": {
|
|
672
|
+
"behavior": "Contained keyboard-scrollable tables; wrapping actions and single-column fields at narrow widths. Media does not start permissions or animations."
|
|
673
|
+
}
|
|
344
674
|
}
|
|
345
675
|
]
|
|
346
676
|
}
|