@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.
- package/bin/utopia-ds-mcp.mjs +18 -5
- 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/ceramic-release-2026-09-06.md +2 -0
- package/data/docs/create-a-brandbook.md +79 -0
- package/data/docs/dextrum-document-family.md +47 -0
- package/data/docs/guide.md +2 -0
- package/data/docs/presentation-asset-repository.md +5 -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-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/brandbook-skill.json +33 -0
- package/data/manifests/catalog.json +1 -0
- package/data/manifests/patterns.json +358 -0
- package/data/manifests/theme-dextrum.json +132 -21
- package/data/manifests/themes.json +253 -39
- 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 +228 -4
- package/package.json +2 -2
|
@@ -313,6 +313,364 @@
|
|
|
313
313
|
"touch controls"
|
|
314
314
|
],
|
|
315
315
|
"rtl": "Placement uses logical reading order while registered column and span values remain deterministic."
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "venture-document",
|
|
319
|
+
"title": "Venture document family and logo-on-band",
|
|
320
|
+
"source": "packages/design-system/src/core.css",
|
|
321
|
+
"contract": "Documents, decks and one-pagers use the venture document ruling. Product surfaces retain the product theme. An explicit approved logo-on-band treatment permits separate rounded containers without changing transparent logo geometry. HTML decks retain their delivery/motion contract while using the document-family visual ruling.",
|
|
322
|
+
"slots": [
|
|
323
|
+
"uds-document-strip",
|
|
324
|
+
"uds-document-eyebrow",
|
|
325
|
+
"uds-document-chip",
|
|
326
|
+
"uds-document-band",
|
|
327
|
+
"uds-document-logo-container"
|
|
328
|
+
],
|
|
329
|
+
"tokens": [
|
|
330
|
+
"--document-strip-background",
|
|
331
|
+
"--document-strip-foreground",
|
|
332
|
+
"--document-eyebrow-foreground",
|
|
333
|
+
"--document-chip-background",
|
|
334
|
+
"--document-chip-foreground",
|
|
335
|
+
"--document-band-background",
|
|
336
|
+
"--document-band-foreground",
|
|
337
|
+
"--document-logo-container-background",
|
|
338
|
+
"--document-logo-container-radius"
|
|
339
|
+
],
|
|
340
|
+
"states": [
|
|
341
|
+
"document",
|
|
342
|
+
"logo-on-band"
|
|
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
|
+
}
|
|
316
674
|
}
|
|
317
675
|
]
|
|
318
676
|
}
|
|
@@ -12,12 +12,42 @@
|
|
|
12
12
|
"motionProfile": "swift",
|
|
13
13
|
"brandPrimitives": {
|
|
14
14
|
"colors": {
|
|
15
|
-
"darkBlue": {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
"darkBlue": {
|
|
16
|
+
"value": "#192B39",
|
|
17
|
+
"token": "--dx-brand-dark-blue",
|
|
18
|
+
"immutable": true,
|
|
19
|
+
"use": "Light text and structural brand surfaces"
|
|
20
|
+
},
|
|
21
|
+
"oceanBlue": {
|
|
22
|
+
"value": "#3E8ECC",
|
|
23
|
+
"token": "--dx-brand-ocean-blue",
|
|
24
|
+
"immutable": true,
|
|
25
|
+
"use": "Dark primary actions, links, focus, and current navigation"
|
|
26
|
+
},
|
|
27
|
+
"oceanHover": {
|
|
28
|
+
"value": "#4A9AD4",
|
|
29
|
+
"token": "--dx-brand-ocean-hover",
|
|
30
|
+
"immutable": true,
|
|
31
|
+
"use": "Dark primary hover"
|
|
32
|
+
},
|
|
33
|
+
"oceanDeep": {
|
|
34
|
+
"value": "#26689A",
|
|
35
|
+
"token": "--dx-brand-ocean-deep",
|
|
36
|
+
"immutable": true,
|
|
37
|
+
"use": "Light primary and Dark primary active"
|
|
38
|
+
},
|
|
39
|
+
"logoTeal": {
|
|
40
|
+
"value": "#063946",
|
|
41
|
+
"token": "--dx-brand-logo-teal",
|
|
42
|
+
"immutable": true,
|
|
43
|
+
"use": "Logo and explicit brand expression only"
|
|
44
|
+
},
|
|
45
|
+
"timidWhite": {
|
|
46
|
+
"value": "#EAEAEA",
|
|
47
|
+
"token": "--dx-brand-timid-white",
|
|
48
|
+
"immutable": true,
|
|
49
|
+
"use": "Dark foreground"
|
|
50
|
+
},
|
|
21
51
|
"charcoal950": "#0E1215",
|
|
22
52
|
"charcoal925": "#11161A",
|
|
23
53
|
"charcoal900": "#171C20",
|
|
@@ -45,12 +75,36 @@
|
|
|
45
75
|
},
|
|
46
76
|
"arabicFamily": "Readex Pro",
|
|
47
77
|
"weights": {
|
|
48
|
-
"clashGrotesk": [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
78
|
+
"clashGrotesk": [
|
|
79
|
+
300,
|
|
80
|
+
400,
|
|
81
|
+
500,
|
|
82
|
+
600,
|
|
83
|
+
700
|
|
84
|
+
],
|
|
85
|
+
"satoshi": [
|
|
86
|
+
400,
|
|
87
|
+
500,
|
|
88
|
+
700
|
|
89
|
+
],
|
|
90
|
+
"manrope": [
|
|
91
|
+
300,
|
|
92
|
+
400,
|
|
93
|
+
500,
|
|
94
|
+
600,
|
|
95
|
+
700,
|
|
96
|
+
800
|
|
97
|
+
],
|
|
98
|
+
"jetBrainsMono": [
|
|
99
|
+
400,
|
|
100
|
+
500,
|
|
101
|
+
600
|
|
102
|
+
]
|
|
52
103
|
},
|
|
53
|
-
"arabicWeights": [
|
|
104
|
+
"arabicWeights": [
|
|
105
|
+
300,
|
|
106
|
+
500
|
|
107
|
+
],
|
|
54
108
|
"headlineCasing": "sentence",
|
|
55
109
|
"headlineTracking": "-0.03em to -0.05em",
|
|
56
110
|
"arabicDisplayFamily": "Readex Pro",
|
|
@@ -153,14 +207,31 @@
|
|
|
153
207
|
"--sidebar-width-collapsed": "Owned by core; remains 4rem"
|
|
154
208
|
},
|
|
155
209
|
"governanceStatus": {
|
|
156
|
-
"success": {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
210
|
+
"success": {
|
|
211
|
+
"dark": "#79B98E",
|
|
212
|
+
"light": "#3F7953"
|
|
213
|
+
},
|
|
214
|
+
"warning": {
|
|
215
|
+
"dark": "#D2A363",
|
|
216
|
+
"light": "#916026"
|
|
217
|
+
},
|
|
218
|
+
"critical": {
|
|
219
|
+
"dark": "#C86E64",
|
|
220
|
+
"light": "#A94F47"
|
|
221
|
+
},
|
|
222
|
+
"surfaceAlpha": {
|
|
223
|
+
"dark": "12%",
|
|
224
|
+
"light": "9%"
|
|
225
|
+
},
|
|
160
226
|
"rule": "Status colors communicate governance state only; never use them as decorative accents."
|
|
161
227
|
},
|
|
162
228
|
"visualPolicy": {
|
|
163
|
-
"tone": [
|
|
229
|
+
"tone": [
|
|
230
|
+
"precise",
|
|
231
|
+
"technical",
|
|
232
|
+
"calm",
|
|
233
|
+
"confident"
|
|
234
|
+
],
|
|
164
235
|
"allow": [
|
|
165
236
|
"neutral charcoal dark workspaces",
|
|
166
237
|
"plain cool-neutral light canvases with white cards",
|
|
@@ -183,8 +254,16 @@
|
|
|
183
254
|
"iconPolicy": {
|
|
184
255
|
"system": "lucide",
|
|
185
256
|
"description": "Dextrum uses standard Lucide icons in product UI and keeps the Dextrum mark for brand surfaces.",
|
|
186
|
-
"allow": [
|
|
187
|
-
|
|
257
|
+
"allow": [
|
|
258
|
+
"lucide icons in components",
|
|
259
|
+
"monochrome currentColor icons",
|
|
260
|
+
"directional mirroring in RTL"
|
|
261
|
+
],
|
|
262
|
+
"avoid": [
|
|
263
|
+
"Utopia Phosphor icon policy",
|
|
264
|
+
"emoji",
|
|
265
|
+
"mixed icon families in one surface"
|
|
266
|
+
],
|
|
188
267
|
"coreNote": "Icon policy is theme-owned. Core components remain icon-system neutral."
|
|
189
268
|
},
|
|
190
269
|
"translations": {
|
|
@@ -193,7 +272,11 @@
|
|
|
193
272
|
"iconPolicy": {
|
|
194
273
|
"system": "Lucide",
|
|
195
274
|
"description": "يستخدم Dextrum أيقونات Lucide القياسية داخل واجهة المنتج، مع إبقاء علامة Dextrum لأسطح العلامة.",
|
|
196
|
-
"allow": [
|
|
275
|
+
"allow": [
|
|
276
|
+
"أيقونات Lucide في المكونات",
|
|
277
|
+
"أيقونات أحادية بلون currentColor",
|
|
278
|
+
"عكس الاتجاه في RTL"
|
|
279
|
+
]
|
|
197
280
|
}
|
|
198
281
|
}
|
|
199
282
|
},
|
|
@@ -210,6 +293,34 @@
|
|
|
210
293
|
"Use Manrope for Latin app UI, Satoshi for supporting labels, and JetBrains Mono for evidence identifiers.",
|
|
211
294
|
"Use Clash Grotesk for explicit marketing display only.",
|
|
212
295
|
"Keep Arabic on Readex Pro tokens (body 300, display 500).",
|
|
213
|
-
"Do not import Utopia brand primitives into Dextrum-themed surfaces."
|
|
214
|
-
|
|
296
|
+
"Do not import Utopia brand primitives into Dextrum-themed surfaces.",
|
|
297
|
+
"For documents, decks and one-pagers, apply documentFamily before product surface or generic presentation defaults.",
|
|
298
|
+
"Use canonical BLUE v2, TEAL, GREY and tagline transparent SVG assets; the public logo mirrors BLUE v2 byte for byte."
|
|
299
|
+
],
|
|
300
|
+
"revision": "v2",
|
|
301
|
+
"documentFamily": {
|
|
302
|
+
"id": "venture-document",
|
|
303
|
+
"rulingDate": "2026-09-07",
|
|
304
|
+
"exemplar": "2026-09-07_dextrum_onepager-totalenergies-tier1-v1_1.pptx",
|
|
305
|
+
"scope": [
|
|
306
|
+
"documents",
|
|
307
|
+
"decks",
|
|
308
|
+
"one-pagers"
|
|
309
|
+
],
|
|
310
|
+
"tokens": {
|
|
311
|
+
"--document-strip-background": "#C9E0F5",
|
|
312
|
+
"--document-strip-foreground": "#192B39",
|
|
313
|
+
"--document-eyebrow-foreground": "#3E8ECC",
|
|
314
|
+
"--document-chip-background": "#FFFFFF",
|
|
315
|
+
"--document-chip-foreground": "#192B39",
|
|
316
|
+
"--document-band-background": "#5B87AD",
|
|
317
|
+
"--document-band-foreground": "#FFFFFF",
|
|
318
|
+
"--document-logo-container-background": "#FFFFFF",
|
|
319
|
+
"--document-logo-container-radius": "var(--radius-surface)"
|
|
320
|
+
},
|
|
321
|
+
"logoTreatment": "logo-on-band: preserve transparent logo assets inside separate white rounded containers behind both logos on colored bands. Never edit the mark.",
|
|
322
|
+
"precedence": "Product surfaces use Ceramic v2. Documents, decks and one-pagers follow the 07 Sep document rulings until superseded; HTML is a delivery format, not a reason to discard the document ruling.",
|
|
323
|
+
"identityManifest": "public/brand/dextrum/ceramic.assets.json",
|
|
324
|
+
"legacyNote": "The 01 Sep design-language document in the supplied kit is historical v1, not the current product token authority."
|
|
325
|
+
}
|
|
215
326
|
}
|