@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
|
@@ -0,0 +1,1029 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"defaultTheme": "utopia-cloudblur",
|
|
4
|
+
"contract": "Optional independently composable Ceramic UI parts, not copied screens. AI chooses only what fits the user's product goal, without asking the user to select parts or visit the library. No useful match means use ordinary Ceramic components. Active user/room theme wins; otherwise Cloudblur. Host data and callbacks connect only needed parts. No upstream product names or roles in user UI. Demo outcomes never authorize operations.",
|
|
5
|
+
"parts": [
|
|
6
|
+
{
|
|
7
|
+
"source": "blocks/semantic-pattern-parts/ChoiceCards.tsx",
|
|
8
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
9
|
+
"id": "choice-cards",
|
|
10
|
+
"exportName": "ChoiceCards",
|
|
11
|
+
"category": "input",
|
|
12
|
+
"title": {
|
|
13
|
+
"en": "Choice cards",
|
|
14
|
+
"ko": "선택 카드",
|
|
15
|
+
"ar": "بطاقات الاختيار"
|
|
16
|
+
},
|
|
17
|
+
"description": {
|
|
18
|
+
"en": "Choose a role, plan or starting point.",
|
|
19
|
+
"ko": "역할·플랜·시작 방법 중 하나를 선택해요.",
|
|
20
|
+
"ar": "اختيار دور أو خطة أو نقطة بداية."
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"choice",
|
|
24
|
+
"role",
|
|
25
|
+
"plan",
|
|
26
|
+
"선택",
|
|
27
|
+
"역할",
|
|
28
|
+
"플랜",
|
|
29
|
+
"اختيار"
|
|
30
|
+
],
|
|
31
|
+
"useWhen": "A small set of mutually exclusive choices needs explanation.",
|
|
32
|
+
"avoidWhen": "Use a searchable select for long lists. Never grant permissions through client choice alone.",
|
|
33
|
+
"props": [
|
|
34
|
+
"label",
|
|
35
|
+
"options: {id,label,description?}[]",
|
|
36
|
+
"value",
|
|
37
|
+
"onChange(id)"
|
|
38
|
+
],
|
|
39
|
+
"states": [
|
|
40
|
+
"selected",
|
|
41
|
+
"unselected"
|
|
42
|
+
],
|
|
43
|
+
"bindings": [
|
|
44
|
+
"Product-owned options and selected id",
|
|
45
|
+
"Server permission checks for access-affecting roles"
|
|
46
|
+
],
|
|
47
|
+
"compatibleWith": [
|
|
48
|
+
"validated-field",
|
|
49
|
+
"progress-steps"
|
|
50
|
+
],
|
|
51
|
+
"components": [
|
|
52
|
+
"Button"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"source": "blocks/semantic-pattern-parts/ValidatedField.tsx",
|
|
57
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
58
|
+
"id": "validated-field",
|
|
59
|
+
"exportName": "ValidatedField",
|
|
60
|
+
"category": "input",
|
|
61
|
+
"title": {
|
|
62
|
+
"en": "Validated input",
|
|
63
|
+
"ko": "입력과 검증",
|
|
64
|
+
"ar": "إدخال مع تحقق"
|
|
65
|
+
},
|
|
66
|
+
"description": {
|
|
67
|
+
"en": "A labeled field with guidance and inline errors.",
|
|
68
|
+
"ko": "입력 설명과 오류를 필드 가까이 보여줘요.",
|
|
69
|
+
"ar": "حقل مع إرشادات وأخطاء واضحة."
|
|
70
|
+
},
|
|
71
|
+
"keywords": [
|
|
72
|
+
"form",
|
|
73
|
+
"email",
|
|
74
|
+
"validation",
|
|
75
|
+
"input",
|
|
76
|
+
"폼",
|
|
77
|
+
"입력",
|
|
78
|
+
"검증",
|
|
79
|
+
"오류",
|
|
80
|
+
"إدخال"
|
|
81
|
+
],
|
|
82
|
+
"useWhen": "A field needs a visible label, hint and validation feedback.",
|
|
83
|
+
"avoidWhen": "Use TextArea with radius-textarea for multiline input.",
|
|
84
|
+
"props": [
|
|
85
|
+
"label",
|
|
86
|
+
"value",
|
|
87
|
+
"onChange(value)",
|
|
88
|
+
"hint?",
|
|
89
|
+
"error?",
|
|
90
|
+
"type?: text|email",
|
|
91
|
+
"required?"
|
|
92
|
+
],
|
|
93
|
+
"states": [
|
|
94
|
+
"empty",
|
|
95
|
+
"filled",
|
|
96
|
+
"invalid"
|
|
97
|
+
],
|
|
98
|
+
"bindings": [
|
|
99
|
+
"Host validation policy",
|
|
100
|
+
"Form state and submit callback"
|
|
101
|
+
],
|
|
102
|
+
"compatibleWith": [
|
|
103
|
+
"choice-cards",
|
|
104
|
+
"outcome-notice",
|
|
105
|
+
"progress-steps"
|
|
106
|
+
],
|
|
107
|
+
"components": [
|
|
108
|
+
"Input"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"source": "blocks/semantic-pattern-parts/ListFilters.tsx",
|
|
113
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
114
|
+
"id": "list-filters",
|
|
115
|
+
"exportName": "ListFilters",
|
|
116
|
+
"category": "data",
|
|
117
|
+
"title": {
|
|
118
|
+
"en": "List filters",
|
|
119
|
+
"ko": "목록 필터",
|
|
120
|
+
"ar": "مرشحات القائمة"
|
|
121
|
+
},
|
|
122
|
+
"description": {
|
|
123
|
+
"en": "Search and filter independently of the list.",
|
|
124
|
+
"ko": "목록과 독립적으로 검색·상태 필터를 조합해요.",
|
|
125
|
+
"ar": "بحث وتصفية مستقلان عن القائمة."
|
|
126
|
+
},
|
|
127
|
+
"keywords": [
|
|
128
|
+
"search",
|
|
129
|
+
"filter",
|
|
130
|
+
"list",
|
|
131
|
+
"검색",
|
|
132
|
+
"필터",
|
|
133
|
+
"목록",
|
|
134
|
+
"بحث"
|
|
135
|
+
],
|
|
136
|
+
"useWhen": "A list needs text search, one status filter and reset.",
|
|
137
|
+
"avoidWhen": "A small static list does not need filtering.",
|
|
138
|
+
"props": [
|
|
139
|
+
"label",
|
|
140
|
+
"query",
|
|
141
|
+
"onQueryChange(query)",
|
|
142
|
+
"queryLabel",
|
|
143
|
+
"status",
|
|
144
|
+
"onStatusChange(status)",
|
|
145
|
+
"statusLabel",
|
|
146
|
+
"options: {id,label}[]",
|
|
147
|
+
"resetLabel"
|
|
148
|
+
],
|
|
149
|
+
"states": [
|
|
150
|
+
"default",
|
|
151
|
+
"filtered",
|
|
152
|
+
"reset"
|
|
153
|
+
],
|
|
154
|
+
"bindings": [
|
|
155
|
+
"Shared host query/status state",
|
|
156
|
+
"Filtered or server-paginated data query",
|
|
157
|
+
"First option is the reset/all value"
|
|
158
|
+
],
|
|
159
|
+
"compatibleWith": [
|
|
160
|
+
"review-list",
|
|
161
|
+
"metric-summary"
|
|
162
|
+
],
|
|
163
|
+
"components": [
|
|
164
|
+
"Input",
|
|
165
|
+
"NativeSelect",
|
|
166
|
+
"Button"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"source": "blocks/semantic-pattern-parts/ReviewList.tsx",
|
|
171
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
172
|
+
"id": "review-list",
|
|
173
|
+
"exportName": "ReviewList",
|
|
174
|
+
"category": "data",
|
|
175
|
+
"title": {
|
|
176
|
+
"en": "Review list",
|
|
177
|
+
"ko": "검토 목록",
|
|
178
|
+
"ar": "قائمة المراجعة"
|
|
179
|
+
},
|
|
180
|
+
"description": {
|
|
181
|
+
"en": "Rows, status and a clear per-item action.",
|
|
182
|
+
"ko": "항목·상태·담당자와 검토 동작을 보여줘요.",
|
|
183
|
+
"ar": "عناصر وحالات وإجراء واضح لكل عنصر."
|
|
184
|
+
},
|
|
185
|
+
"keywords": [
|
|
186
|
+
"review",
|
|
187
|
+
"queue",
|
|
188
|
+
"approval",
|
|
189
|
+
"table",
|
|
190
|
+
"검토",
|
|
191
|
+
"승인",
|
|
192
|
+
"표",
|
|
193
|
+
"신청",
|
|
194
|
+
"مراجعة"
|
|
195
|
+
],
|
|
196
|
+
"useWhen": "Authorized users inspect items with statuses and assignees.",
|
|
197
|
+
"avoidWhen": "A card directory or read-only metric summary is sufficient.",
|
|
198
|
+
"props": [
|
|
199
|
+
"label",
|
|
200
|
+
"rows: {id,title,description?,status,assignee}[]",
|
|
201
|
+
"columns: [title,status,assignee,action]",
|
|
202
|
+
"state?: ready|loading|error",
|
|
203
|
+
"message",
|
|
204
|
+
"retryLabel",
|
|
205
|
+
"onRetry()",
|
|
206
|
+
"onReview(id)",
|
|
207
|
+
"reviewLabel(row)"
|
|
208
|
+
],
|
|
209
|
+
"states": [
|
|
210
|
+
"ready",
|
|
211
|
+
"empty",
|
|
212
|
+
"loading",
|
|
213
|
+
"error",
|
|
214
|
+
"retry"
|
|
215
|
+
],
|
|
216
|
+
"bindings": [
|
|
217
|
+
"Authorized row query",
|
|
218
|
+
"Review callback must not auto-approve",
|
|
219
|
+
"Localized labels",
|
|
220
|
+
"Host filtering and retry"
|
|
221
|
+
],
|
|
222
|
+
"compatibleWith": [
|
|
223
|
+
"list-filters",
|
|
224
|
+
"metric-summary",
|
|
225
|
+
"outcome-notice"
|
|
226
|
+
],
|
|
227
|
+
"components": [
|
|
228
|
+
"DataTable",
|
|
229
|
+
"Badge",
|
|
230
|
+
"Button"
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"source": "blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx",
|
|
235
|
+
"styles": "blocks/analytics-dashboard/analytics-dashboard.css",
|
|
236
|
+
"id": "metric-summary",
|
|
237
|
+
"exportName": "KPIGrid",
|
|
238
|
+
"category": "data",
|
|
239
|
+
"title": {
|
|
240
|
+
"en": "Metric summary",
|
|
241
|
+
"ko": "요약 지표",
|
|
242
|
+
"ar": "ملخص المؤشرات"
|
|
243
|
+
},
|
|
244
|
+
"description": {
|
|
245
|
+
"en": "Reuse the existing semantic KPI block.",
|
|
246
|
+
"ko": "기존 시맨틱 KPI 블록으로 수치를 요약해요.",
|
|
247
|
+
"ar": "استخدام كتلة المؤشرات الدلالية الموجودة."
|
|
248
|
+
},
|
|
249
|
+
"keywords": [
|
|
250
|
+
"metric",
|
|
251
|
+
"summary",
|
|
252
|
+
"kpi",
|
|
253
|
+
"dashboard",
|
|
254
|
+
"지표",
|
|
255
|
+
"요약",
|
|
256
|
+
"대시보드",
|
|
257
|
+
"مؤشرات"
|
|
258
|
+
],
|
|
259
|
+
"useWhen": "Comparable counts help users decide where to act.",
|
|
260
|
+
"avoidWhen": "No trustworthy numeric source exists; never invent metrics.",
|
|
261
|
+
"props": [
|
|
262
|
+
"metrics: {id,label,value,format?,change?,changeLabel?}[]",
|
|
263
|
+
"locale?",
|
|
264
|
+
"currency?",
|
|
265
|
+
"density?: compact|default|comfortable",
|
|
266
|
+
"state?: loading|empty|error|partial|ready"
|
|
267
|
+
],
|
|
268
|
+
"states": [
|
|
269
|
+
"loading",
|
|
270
|
+
"empty",
|
|
271
|
+
"error",
|
|
272
|
+
"partial",
|
|
273
|
+
"ready"
|
|
274
|
+
],
|
|
275
|
+
"bindings": [
|
|
276
|
+
"Trusted metric calculations",
|
|
277
|
+
"Scope/period matching the visible list",
|
|
278
|
+
"Locale and units"
|
|
279
|
+
],
|
|
280
|
+
"compatibleWith": [
|
|
281
|
+
"list-filters",
|
|
282
|
+
"review-list"
|
|
283
|
+
],
|
|
284
|
+
"components": [
|
|
285
|
+
"Badge"
|
|
286
|
+
]
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"source": "blocks/semantic-pattern-parts/ProgressSteps.tsx",
|
|
290
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
291
|
+
"id": "progress-steps",
|
|
292
|
+
"exportName": "ProgressSteps",
|
|
293
|
+
"category": "feedback",
|
|
294
|
+
"title": {
|
|
295
|
+
"en": "Progress steps",
|
|
296
|
+
"ko": "진행 단계",
|
|
297
|
+
"ar": "خطوات التقدم"
|
|
298
|
+
},
|
|
299
|
+
"description": {
|
|
300
|
+
"en": "Show completed, current and locked steps.",
|
|
301
|
+
"ko": "완료·현재·잠긴 단계를 구분해요.",
|
|
302
|
+
"ar": "إظهار الخطوات المكتملة والحالية والمقفلة."
|
|
303
|
+
},
|
|
304
|
+
"keywords": [
|
|
305
|
+
"onboarding",
|
|
306
|
+
"step",
|
|
307
|
+
"progress",
|
|
308
|
+
"wizard",
|
|
309
|
+
"온보딩",
|
|
310
|
+
"진행",
|
|
311
|
+
"단계",
|
|
312
|
+
"خطوات"
|
|
313
|
+
],
|
|
314
|
+
"useWhen": "An ordered task has known prerequisites and a current step.",
|
|
315
|
+
"avoidWhen": "Work is unordered or steps add unnecessary gates.",
|
|
316
|
+
"props": [
|
|
317
|
+
"label",
|
|
318
|
+
"steps: {id,label,status: done|current|locked,statusLabel}[]",
|
|
319
|
+
"onSelect(id)"
|
|
320
|
+
],
|
|
321
|
+
"states": [
|
|
322
|
+
"done",
|
|
323
|
+
"current",
|
|
324
|
+
"locked"
|
|
325
|
+
],
|
|
326
|
+
"bindings": [
|
|
327
|
+
"Host prerequisite rules",
|
|
328
|
+
"Current step",
|
|
329
|
+
"Navigation callback"
|
|
330
|
+
],
|
|
331
|
+
"compatibleWith": [
|
|
332
|
+
"choice-cards",
|
|
333
|
+
"validated-field",
|
|
334
|
+
"outcome-notice"
|
|
335
|
+
],
|
|
336
|
+
"components": [
|
|
337
|
+
"Button"
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"source": "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
|
|
342
|
+
"styles": "blocks/semantic-pattern-parts/pattern-parts.css",
|
|
343
|
+
"id": "outcome-notice",
|
|
344
|
+
"exportName": "OutcomeNotice",
|
|
345
|
+
"category": "feedback",
|
|
346
|
+
"title": {
|
|
347
|
+
"en": "Outcome and next action",
|
|
348
|
+
"ko": "처리 결과와 다음 행동",
|
|
349
|
+
"ar": "النتيجة والخطوة التالية"
|
|
350
|
+
},
|
|
351
|
+
"description": {
|
|
352
|
+
"en": "Explain a result and offer one useful action.",
|
|
353
|
+
"ko": "처리 결과와 이어서 할 행동을 안내해요.",
|
|
354
|
+
"ar": "شرح النتيجة وتقديم إجراء مفيد واحد."
|
|
355
|
+
},
|
|
356
|
+
"keywords": [
|
|
357
|
+
"success",
|
|
358
|
+
"error",
|
|
359
|
+
"feedback",
|
|
360
|
+
"result",
|
|
361
|
+
"완료",
|
|
362
|
+
"결과",
|
|
363
|
+
"오류",
|
|
364
|
+
"피드백",
|
|
365
|
+
"نتيجة"
|
|
366
|
+
],
|
|
367
|
+
"useWhen": "A confirmed result or recoverable issue needs a next action.",
|
|
368
|
+
"avoidWhen": "No real response has arrived; never fake success.",
|
|
369
|
+
"props": [
|
|
370
|
+
"title",
|
|
371
|
+
"children",
|
|
372
|
+
"actionLabel",
|
|
373
|
+
"onAction()",
|
|
374
|
+
"tone?: info|success|warning"
|
|
375
|
+
],
|
|
376
|
+
"states": [
|
|
377
|
+
"info",
|
|
378
|
+
"success",
|
|
379
|
+
"warning"
|
|
380
|
+
],
|
|
381
|
+
"bindings": [
|
|
382
|
+
"Confirmed result",
|
|
383
|
+
"Meaningful next-action/retry callback"
|
|
384
|
+
],
|
|
385
|
+
"compatibleWith": [
|
|
386
|
+
"validated-field",
|
|
387
|
+
"review-list",
|
|
388
|
+
"progress-steps"
|
|
389
|
+
],
|
|
390
|
+
"components": [
|
|
391
|
+
"Button"
|
|
392
|
+
]
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"id": "password-field",
|
|
396
|
+
"exportName": "PasswordField",
|
|
397
|
+
"source": "blocks/semantic-pattern-parts/AuthParts.tsx",
|
|
398
|
+
"styles": "blocks/semantic-pattern-parts/auth-parts.css",
|
|
399
|
+
"category": "account",
|
|
400
|
+
"title": {
|
|
401
|
+
"en": "Password visibility and strength",
|
|
402
|
+
"ko": "비밀번호 표시와 강도",
|
|
403
|
+
"ar": "إظهار كلمة المرور وقوتها"
|
|
404
|
+
},
|
|
405
|
+
"description": {
|
|
406
|
+
"en": "Password visibility and strength",
|
|
407
|
+
"ko": "비밀번호 표시와 강도",
|
|
408
|
+
"ar": "إظهار كلمة المرور وقوتها"
|
|
409
|
+
},
|
|
410
|
+
"keywords": [
|
|
411
|
+
"password",
|
|
412
|
+
"strength",
|
|
413
|
+
"비밀번호",
|
|
414
|
+
"암호",
|
|
415
|
+
"كلمة"
|
|
416
|
+
],
|
|
417
|
+
"props": [
|
|
418
|
+
"label",
|
|
419
|
+
"value",
|
|
420
|
+
"onChange",
|
|
421
|
+
"showLabel",
|
|
422
|
+
"hideLabel",
|
|
423
|
+
"rules: {id,label,passed}[]",
|
|
424
|
+
"error?",
|
|
425
|
+
"hint?"
|
|
426
|
+
],
|
|
427
|
+
"states": [
|
|
428
|
+
"hidden",
|
|
429
|
+
"visible",
|
|
430
|
+
"rules",
|
|
431
|
+
"invalid"
|
|
432
|
+
],
|
|
433
|
+
"useWhen": "The product needs this account interaction. Compose only the necessary export.",
|
|
434
|
+
"avoidWhen": "Never treat fixture validation as authentication or change server security policy.",
|
|
435
|
+
"bindings": [
|
|
436
|
+
"Host-owned labels and state",
|
|
437
|
+
"Actual authentication service callback; no mock authority"
|
|
438
|
+
],
|
|
439
|
+
"compatibleWith": [
|
|
440
|
+
"validated-field",
|
|
441
|
+
"outcome-notice"
|
|
442
|
+
],
|
|
443
|
+
"components": [
|
|
444
|
+
"Input",
|
|
445
|
+
"Button"
|
|
446
|
+
]
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"id": "verification-code",
|
|
450
|
+
"exportName": "VerificationCode",
|
|
451
|
+
"source": "blocks/semantic-pattern-parts/AuthParts.tsx",
|
|
452
|
+
"styles": "blocks/semantic-pattern-parts/auth-parts.css",
|
|
453
|
+
"category": "account",
|
|
454
|
+
"title": {
|
|
455
|
+
"en": "Verification code entry",
|
|
456
|
+
"ko": "인증 코드 입력",
|
|
457
|
+
"ar": "إدخال رمز التحقق"
|
|
458
|
+
},
|
|
459
|
+
"description": {
|
|
460
|
+
"en": "Verification code entry",
|
|
461
|
+
"ko": "인증 코드 입력",
|
|
462
|
+
"ar": "إدخال رمز التحقق"
|
|
463
|
+
},
|
|
464
|
+
"keywords": [
|
|
465
|
+
"otp",
|
|
466
|
+
"mfa",
|
|
467
|
+
"code",
|
|
468
|
+
"2fa",
|
|
469
|
+
"인증",
|
|
470
|
+
"코드",
|
|
471
|
+
"رمز"
|
|
472
|
+
],
|
|
473
|
+
"props": [
|
|
474
|
+
"label",
|
|
475
|
+
"digitLabel(index)",
|
|
476
|
+
"value",
|
|
477
|
+
"onChange",
|
|
478
|
+
"error?",
|
|
479
|
+
"disabled?"
|
|
480
|
+
],
|
|
481
|
+
"states": [
|
|
482
|
+
"empty",
|
|
483
|
+
"partial",
|
|
484
|
+
"complete",
|
|
485
|
+
"invalid",
|
|
486
|
+
"disabled"
|
|
487
|
+
],
|
|
488
|
+
"useWhen": "The product needs this account interaction. Compose only the necessary export.",
|
|
489
|
+
"avoidWhen": "Never treat fixture validation as authentication or change server security policy.",
|
|
490
|
+
"bindings": [
|
|
491
|
+
"Host-owned labels and state",
|
|
492
|
+
"Actual authentication service callback; no mock authority"
|
|
493
|
+
],
|
|
494
|
+
"compatibleWith": [
|
|
495
|
+
"validated-field",
|
|
496
|
+
"outcome-notice"
|
|
497
|
+
],
|
|
498
|
+
"components": [
|
|
499
|
+
"Input",
|
|
500
|
+
"Button"
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"id": "provider-sign-in",
|
|
505
|
+
"exportName": "ProviderButtons",
|
|
506
|
+
"source": "blocks/semantic-pattern-parts/AuthParts.tsx",
|
|
507
|
+
"styles": "blocks/semantic-pattern-parts/auth-parts.css",
|
|
508
|
+
"category": "account",
|
|
509
|
+
"title": {
|
|
510
|
+
"en": "Provider sign in",
|
|
511
|
+
"ko": "외부 계정 로그인",
|
|
512
|
+
"ar": "دخول عبر مزود"
|
|
513
|
+
},
|
|
514
|
+
"description": {
|
|
515
|
+
"en": "Provider sign in",
|
|
516
|
+
"ko": "외부 계정 로그인",
|
|
517
|
+
"ar": "دخول عبر مزود"
|
|
518
|
+
},
|
|
519
|
+
"keywords": [
|
|
520
|
+
"sso",
|
|
521
|
+
"provider",
|
|
522
|
+
"social",
|
|
523
|
+
"oauth",
|
|
524
|
+
"외부",
|
|
525
|
+
"로그인",
|
|
526
|
+
"مزود"
|
|
527
|
+
],
|
|
528
|
+
"props": [
|
|
529
|
+
"label",
|
|
530
|
+
"providers: {id,label}[]",
|
|
531
|
+
"onSelect(id)",
|
|
532
|
+
"pending?"
|
|
533
|
+
],
|
|
534
|
+
"states": [
|
|
535
|
+
"ready",
|
|
536
|
+
"pending"
|
|
537
|
+
],
|
|
538
|
+
"useWhen": "The product needs this account interaction. Compose only the necessary export.",
|
|
539
|
+
"avoidWhen": "Never treat fixture validation as authentication or change server security policy.",
|
|
540
|
+
"bindings": [
|
|
541
|
+
"Host-owned labels and state",
|
|
542
|
+
"Actual authentication service callback; no mock authority"
|
|
543
|
+
],
|
|
544
|
+
"compatibleWith": [
|
|
545
|
+
"validated-field",
|
|
546
|
+
"outcome-notice"
|
|
547
|
+
],
|
|
548
|
+
"components": [
|
|
549
|
+
"Input",
|
|
550
|
+
"Button"
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"id": "activity-list",
|
|
555
|
+
"exportName": "ActivityList",
|
|
556
|
+
"source": "blocks/semantic-pattern-parts/ProductParts.tsx",
|
|
557
|
+
"styles": "blocks/semantic-pattern-parts/product-parts.css",
|
|
558
|
+
"category": "product",
|
|
559
|
+
"title": {
|
|
560
|
+
"en": "Activity and conversation rows",
|
|
561
|
+
"ko": "알림·대화 목록",
|
|
562
|
+
"ar": "قائمة النشاط والمحادثات"
|
|
563
|
+
},
|
|
564
|
+
"description": {
|
|
565
|
+
"en": "Activity and conversation rows",
|
|
566
|
+
"ko": "알림·대화 목록",
|
|
567
|
+
"ar": "قائمة النشاط والمحادثات"
|
|
568
|
+
},
|
|
569
|
+
"keywords": [
|
|
570
|
+
"messages",
|
|
571
|
+
"conversation",
|
|
572
|
+
"notifications",
|
|
573
|
+
"대화",
|
|
574
|
+
"메시지",
|
|
575
|
+
"알림",
|
|
576
|
+
"رسائل"
|
|
577
|
+
],
|
|
578
|
+
"props": [
|
|
579
|
+
"items: {id,title,body,time,unread?}[]",
|
|
580
|
+
"emptyLabel",
|
|
581
|
+
"unreadLabel",
|
|
582
|
+
"onOpen"
|
|
583
|
+
],
|
|
584
|
+
"states": [
|
|
585
|
+
"default",
|
|
586
|
+
"empty",
|
|
587
|
+
"unread"
|
|
588
|
+
],
|
|
589
|
+
"useWhen": "Use for an inbox or activity feed with host-owned destinations.",
|
|
590
|
+
"avoidWhen": "Do not copy the entire source portal or treat local preview callbacks as service mutations.",
|
|
591
|
+
"bindings": [
|
|
592
|
+
"Host supplies localized data, policies and callbacks"
|
|
593
|
+
],
|
|
594
|
+
"compatibleWith": [
|
|
595
|
+
"list-filters",
|
|
596
|
+
"outcome-notice"
|
|
597
|
+
],
|
|
598
|
+
"components": [
|
|
599
|
+
"Button"
|
|
600
|
+
]
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"id": "directory-cards",
|
|
604
|
+
"exportName": "DirectoryCards",
|
|
605
|
+
"source": "blocks/semantic-pattern-parts/ProductParts.tsx",
|
|
606
|
+
"styles": "blocks/semantic-pattern-parts/product-parts.css",
|
|
607
|
+
"category": "product",
|
|
608
|
+
"title": {
|
|
609
|
+
"en": "People comparison cards",
|
|
610
|
+
"ko": "사람 비교 카드",
|
|
611
|
+
"ar": "بطاقات مقارنة الأشخاص"
|
|
612
|
+
},
|
|
613
|
+
"description": {
|
|
614
|
+
"en": "People comparison cards",
|
|
615
|
+
"ko": "사람 비교 카드",
|
|
616
|
+
"ar": "بطاقات مقارنة الأشخاص"
|
|
617
|
+
},
|
|
618
|
+
"keywords": [
|
|
619
|
+
"directory",
|
|
620
|
+
"people",
|
|
621
|
+
"expert",
|
|
622
|
+
"사람",
|
|
623
|
+
"전문가",
|
|
624
|
+
"دليل"
|
|
625
|
+
],
|
|
626
|
+
"props": [
|
|
627
|
+
"items: {id,name,role,organization,languages,expertise,availability,stats}[]",
|
|
628
|
+
"emptyLabel",
|
|
629
|
+
"profileLabel",
|
|
630
|
+
"actionLabel",
|
|
631
|
+
"onProfile",
|
|
632
|
+
"onAction"
|
|
633
|
+
],
|
|
634
|
+
"states": [
|
|
635
|
+
"default",
|
|
636
|
+
"empty",
|
|
637
|
+
"filtered"
|
|
638
|
+
],
|
|
639
|
+
"useWhen": "Use to compare people after host-owned search, filter and sort.",
|
|
640
|
+
"avoidWhen": "Do not copy the entire source portal or treat local preview callbacks as service mutations.",
|
|
641
|
+
"bindings": [
|
|
642
|
+
"Host supplies localized data, policies and callbacks"
|
|
643
|
+
],
|
|
644
|
+
"compatibleWith": [
|
|
645
|
+
"list-filters",
|
|
646
|
+
"outcome-notice"
|
|
647
|
+
],
|
|
648
|
+
"components": [
|
|
649
|
+
"Button"
|
|
650
|
+
]
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"id": "channel-preferences",
|
|
654
|
+
"exportName": "ChannelPreferences",
|
|
655
|
+
"source": "blocks/semantic-pattern-parts/ProductParts.tsx",
|
|
656
|
+
"styles": "blocks/semantic-pattern-parts/product-parts.css",
|
|
657
|
+
"category": "product",
|
|
658
|
+
"title": {
|
|
659
|
+
"en": "Event delivery preferences",
|
|
660
|
+
"ko": "알림 수신 채널",
|
|
661
|
+
"ar": "تفضيلات قنوات الأحداث"
|
|
662
|
+
},
|
|
663
|
+
"description": {
|
|
664
|
+
"en": "Event delivery preferences",
|
|
665
|
+
"ko": "알림 수신 채널",
|
|
666
|
+
"ar": "تفضيلات قنوات الأحداث"
|
|
667
|
+
},
|
|
668
|
+
"keywords": [
|
|
669
|
+
"notification settings",
|
|
670
|
+
"delivery preferences",
|
|
671
|
+
"알림 설정",
|
|
672
|
+
"수신",
|
|
673
|
+
"إشعارات"
|
|
674
|
+
],
|
|
675
|
+
"props": [
|
|
676
|
+
"items: {id,title,description,channel,disallowed?}[]",
|
|
677
|
+
"options: {id,label}[]",
|
|
678
|
+
"requiredLabel",
|
|
679
|
+
"onChange"
|
|
680
|
+
],
|
|
681
|
+
"states": [
|
|
682
|
+
"default",
|
|
683
|
+
"changed",
|
|
684
|
+
"restricted"
|
|
685
|
+
],
|
|
686
|
+
"useWhen": "Use for per-event delivery channel selection with explicit host restrictions.",
|
|
687
|
+
"avoidWhen": "Do not copy the entire source portal or treat local preview callbacks as service mutations.",
|
|
688
|
+
"bindings": [
|
|
689
|
+
"Host supplies localized data, policies and callbacks"
|
|
690
|
+
],
|
|
691
|
+
"compatibleWith": [
|
|
692
|
+
"list-filters",
|
|
693
|
+
"outcome-notice"
|
|
694
|
+
],
|
|
695
|
+
"components": [
|
|
696
|
+
"Select"
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"id": "workflow-fields",
|
|
701
|
+
"exportName": "WorkflowFields",
|
|
702
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
703
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
704
|
+
"files": [
|
|
705
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
706
|
+
],
|
|
707
|
+
"category": "input",
|
|
708
|
+
"title": {
|
|
709
|
+
"en": "Structured fields",
|
|
710
|
+
"ko": "구조화된 입력",
|
|
711
|
+
"ar": "حقول منظمة"
|
|
712
|
+
},
|
|
713
|
+
"description": {
|
|
714
|
+
"en": "Render a labeled field collection with host validation and upload handling.",
|
|
715
|
+
"ko": "구조화된 입력",
|
|
716
|
+
"ar": "حقول منظمة"
|
|
717
|
+
},
|
|
718
|
+
"keywords": [
|
|
719
|
+
"structured form",
|
|
720
|
+
"upload",
|
|
721
|
+
"credentials",
|
|
722
|
+
"증빙",
|
|
723
|
+
"파일 업로드",
|
|
724
|
+
"자격 정보"
|
|
725
|
+
],
|
|
726
|
+
"useWhen": "Render a labeled field collection with host validation and upload handling.",
|
|
727
|
+
"avoidWhen": "Do not send files or infer consent; the host supplies per-field policy.",
|
|
728
|
+
"props": [
|
|
729
|
+
"fields",
|
|
730
|
+
"values",
|
|
731
|
+
"errors",
|
|
732
|
+
"onChange",
|
|
733
|
+
"onFile"
|
|
734
|
+
],
|
|
735
|
+
"states": [
|
|
736
|
+
"default",
|
|
737
|
+
"invalid",
|
|
738
|
+
"filled"
|
|
739
|
+
],
|
|
740
|
+
"bindings": [
|
|
741
|
+
"Host-owned data, policy and callbacks",
|
|
742
|
+
"Local preview changes are not production mutations"
|
|
743
|
+
],
|
|
744
|
+
"compatibleWith": [],
|
|
745
|
+
"components": [
|
|
746
|
+
"Input",
|
|
747
|
+
"TextArea",
|
|
748
|
+
"NativeSelect"
|
|
749
|
+
]
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"id": "record-table",
|
|
753
|
+
"exportName": "RecordTable",
|
|
754
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
755
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
756
|
+
"files": [
|
|
757
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
758
|
+
],
|
|
759
|
+
"category": "data",
|
|
760
|
+
"title": {
|
|
761
|
+
"en": "Record table",
|
|
762
|
+
"ko": "데이터 목록",
|
|
763
|
+
"ar": "جدول السجلات"
|
|
764
|
+
},
|
|
765
|
+
"description": {
|
|
766
|
+
"en": "Read tabular records with independently contained overflow and explicit detail actions.",
|
|
767
|
+
"ko": "데이터 목록",
|
|
768
|
+
"ar": "جدول السجلات"
|
|
769
|
+
},
|
|
770
|
+
"keywords": [
|
|
771
|
+
"records",
|
|
772
|
+
"ledger",
|
|
773
|
+
"invoices",
|
|
774
|
+
"audit log",
|
|
775
|
+
"거래 이력",
|
|
776
|
+
"청구서",
|
|
777
|
+
"변경 이력"
|
|
778
|
+
],
|
|
779
|
+
"useWhen": "Read tabular records with independently contained overflow and explicit detail actions.",
|
|
780
|
+
"avoidWhen": "Do not import the original portal shell or grant actions from a row label.",
|
|
781
|
+
"props": [
|
|
782
|
+
"caption",
|
|
783
|
+
"columns",
|
|
784
|
+
"rows",
|
|
785
|
+
"emptyLabel",
|
|
786
|
+
"actionLabel",
|
|
787
|
+
"onOpen"
|
|
788
|
+
],
|
|
789
|
+
"states": [
|
|
790
|
+
"populated",
|
|
791
|
+
"empty"
|
|
792
|
+
],
|
|
793
|
+
"bindings": [
|
|
794
|
+
"Host-owned data, policy and callbacks",
|
|
795
|
+
"Local preview changes are not production mutations"
|
|
796
|
+
],
|
|
797
|
+
"compatibleWith": [],
|
|
798
|
+
"components": [
|
|
799
|
+
"Button"
|
|
800
|
+
]
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"id": "step-checklist",
|
|
804
|
+
"exportName": "StepChecklist",
|
|
805
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
806
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
807
|
+
"files": [
|
|
808
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
809
|
+
],
|
|
810
|
+
"category": "feedback",
|
|
811
|
+
"title": {
|
|
812
|
+
"en": "Prerequisite checklist",
|
|
813
|
+
"ko": "선행 조건 체크리스트",
|
|
814
|
+
"ar": "قائمة المتطلبات"
|
|
815
|
+
},
|
|
816
|
+
"description": {
|
|
817
|
+
"en": "Collect per-item outcomes while the host decides final readiness.",
|
|
818
|
+
"ko": "선행 조건 체크리스트",
|
|
819
|
+
"ar": "قائمة المتطلبات"
|
|
820
|
+
},
|
|
821
|
+
"keywords": [
|
|
822
|
+
"precheck",
|
|
823
|
+
"verification checklist",
|
|
824
|
+
"prerequisite",
|
|
825
|
+
"사전 점검",
|
|
826
|
+
"인증 검토",
|
|
827
|
+
"선행 조건"
|
|
828
|
+
],
|
|
829
|
+
"useWhen": "Collect per-item outcomes while the host decides final readiness.",
|
|
830
|
+
"avoidWhen": "A browser preview cannot prove hardware, identity, legal or clinical readiness.",
|
|
831
|
+
"props": [
|
|
832
|
+
"items",
|
|
833
|
+
"passLabel",
|
|
834
|
+
"failLabel",
|
|
835
|
+
"onChange"
|
|
836
|
+
],
|
|
837
|
+
"states": [
|
|
838
|
+
"pending",
|
|
839
|
+
"pass",
|
|
840
|
+
"fail",
|
|
841
|
+
"locked"
|
|
842
|
+
],
|
|
843
|
+
"bindings": [
|
|
844
|
+
"Host-owned data, policy and callbacks",
|
|
845
|
+
"Local preview changes are not production mutations"
|
|
846
|
+
],
|
|
847
|
+
"compatibleWith": [],
|
|
848
|
+
"components": [
|
|
849
|
+
"Button"
|
|
850
|
+
]
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"id": "stat-strip",
|
|
854
|
+
"exportName": "StatStrip",
|
|
855
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
856
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
857
|
+
"files": [
|
|
858
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
859
|
+
],
|
|
860
|
+
"category": "data",
|
|
861
|
+
"title": {
|
|
862
|
+
"en": "Summary measures",
|
|
863
|
+
"ko": "요약 수치",
|
|
864
|
+
"ar": "مقاييس موجزة"
|
|
865
|
+
},
|
|
866
|
+
"description": {
|
|
867
|
+
"en": "Show labeled totals derived from host data.",
|
|
868
|
+
"ko": "요약 수치",
|
|
869
|
+
"ar": "مقاييس موجزة"
|
|
870
|
+
},
|
|
871
|
+
"keywords": [
|
|
872
|
+
"credit balance",
|
|
873
|
+
"allocation balance",
|
|
874
|
+
"잔액",
|
|
875
|
+
"배분 현황"
|
|
876
|
+
],
|
|
877
|
+
"useWhen": "Show labeled totals derived from host data.",
|
|
878
|
+
"avoidWhen": "Never fabricate production counts or infer billing state.",
|
|
879
|
+
"props": [
|
|
880
|
+
"items"
|
|
881
|
+
],
|
|
882
|
+
"states": [
|
|
883
|
+
"populated",
|
|
884
|
+
"zero"
|
|
885
|
+
],
|
|
886
|
+
"bindings": [
|
|
887
|
+
"Host-owned data, policy and callbacks",
|
|
888
|
+
"Local preview changes are not production mutations"
|
|
889
|
+
],
|
|
890
|
+
"compatibleWith": [],
|
|
891
|
+
"components": []
|
|
892
|
+
},
|
|
893
|
+
{
|
|
894
|
+
"id": "rating-fields",
|
|
895
|
+
"exportName": "RatingFields",
|
|
896
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
897
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
898
|
+
"files": [
|
|
899
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
900
|
+
],
|
|
901
|
+
"category": "input",
|
|
902
|
+
"title": {
|
|
903
|
+
"en": "Multi-dimension rating",
|
|
904
|
+
"ko": "다항목 평가",
|
|
905
|
+
"ar": "تقييم متعدد الأبعاد"
|
|
906
|
+
},
|
|
907
|
+
"description": {
|
|
908
|
+
"en": "Rate dimensions independently with selected-state semantics.",
|
|
909
|
+
"ko": "다항목 평가",
|
|
910
|
+
"ar": "تقييم متعدد الأبعاد"
|
|
911
|
+
},
|
|
912
|
+
"keywords": [
|
|
913
|
+
"rating",
|
|
914
|
+
"assessment",
|
|
915
|
+
"feedback scores",
|
|
916
|
+
"평가",
|
|
917
|
+
"점수",
|
|
918
|
+
"피드백"
|
|
919
|
+
],
|
|
920
|
+
"useWhen": "Rate dimensions independently with selected-state semantics.",
|
|
921
|
+
"avoidWhen": "Host owns scoring policy and submit validation.",
|
|
922
|
+
"props": [
|
|
923
|
+
"labels",
|
|
924
|
+
"values",
|
|
925
|
+
"onChange"
|
|
926
|
+
],
|
|
927
|
+
"states": [
|
|
928
|
+
"unrated",
|
|
929
|
+
"partial",
|
|
930
|
+
"complete"
|
|
931
|
+
],
|
|
932
|
+
"bindings": [
|
|
933
|
+
"Host-owned data, policy and callbacks",
|
|
934
|
+
"Local preview changes are not production mutations"
|
|
935
|
+
],
|
|
936
|
+
"compatibleWith": [],
|
|
937
|
+
"components": [
|
|
938
|
+
"Button"
|
|
939
|
+
]
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"id": "trend-summary",
|
|
943
|
+
"exportName": "TrendSummary",
|
|
944
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
945
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
946
|
+
"files": [
|
|
947
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
948
|
+
],
|
|
949
|
+
"category": "data",
|
|
950
|
+
"title": {
|
|
951
|
+
"en": "Trend summary",
|
|
952
|
+
"ko": "추세 요약",
|
|
953
|
+
"ar": "ملخص الاتجاه"
|
|
954
|
+
},
|
|
955
|
+
"description": {
|
|
956
|
+
"en": "Compare bounded measurements with accessible meters.",
|
|
957
|
+
"ko": "추세 요약",
|
|
958
|
+
"ar": "ملخص الاتجاه"
|
|
959
|
+
},
|
|
960
|
+
"keywords": [
|
|
961
|
+
"skill progression",
|
|
962
|
+
"milestones",
|
|
963
|
+
"역량 추세",
|
|
964
|
+
"마일스톤"
|
|
965
|
+
],
|
|
966
|
+
"useWhen": "Compare bounded measurements with accessible meters.",
|
|
967
|
+
"avoidWhen": "Do not substitute unlabeled decorative chart bars or invent measurements.",
|
|
968
|
+
"props": [
|
|
969
|
+
"title",
|
|
970
|
+
"items"
|
|
971
|
+
],
|
|
972
|
+
"states": [
|
|
973
|
+
"populated",
|
|
974
|
+
"zero"
|
|
975
|
+
],
|
|
976
|
+
"bindings": [
|
|
977
|
+
"Host-owned data, policy and callbacks",
|
|
978
|
+
"Local preview changes are not production mutations"
|
|
979
|
+
],
|
|
980
|
+
"compatibleWith": [],
|
|
981
|
+
"components": []
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
"id": "media-stage",
|
|
985
|
+
"exportName": "MediaStage",
|
|
986
|
+
"source": "blocks/semantic-pattern-parts/WorkflowParts.tsx",
|
|
987
|
+
"styles": "blocks/semantic-pattern-parts/workflow-parts.css",
|
|
988
|
+
"files": [
|
|
989
|
+
"blocks/semantic-pattern-parts/product-parts.css"
|
|
990
|
+
],
|
|
991
|
+
"category": "media",
|
|
992
|
+
"title": {
|
|
993
|
+
"en": "Media stage",
|
|
994
|
+
"ko": "미디어 영역",
|
|
995
|
+
"ar": "منصة وسائط"
|
|
996
|
+
},
|
|
997
|
+
"description": {
|
|
998
|
+
"en": "Display media status and host-provided viewing or session actions.",
|
|
999
|
+
"ko": "미디어 영역",
|
|
1000
|
+
"ar": "منصة وسائط"
|
|
1001
|
+
},
|
|
1002
|
+
"keywords": [
|
|
1003
|
+
"broadcast",
|
|
1004
|
+
"live collaboration",
|
|
1005
|
+
"방송",
|
|
1006
|
+
"실시간 협업"
|
|
1007
|
+
],
|
|
1008
|
+
"useWhen": "Display media status and host-provided viewing or session actions.",
|
|
1009
|
+
"avoidWhen": "This part starts no camera, microphone, playback, recording or stream itself.",
|
|
1010
|
+
"props": [
|
|
1011
|
+
"label",
|
|
1012
|
+
"status",
|
|
1013
|
+
"children"
|
|
1014
|
+
],
|
|
1015
|
+
"states": [
|
|
1016
|
+
"scheduled",
|
|
1017
|
+
"live",
|
|
1018
|
+
"interrupted",
|
|
1019
|
+
"ended"
|
|
1020
|
+
],
|
|
1021
|
+
"bindings": [
|
|
1022
|
+
"Host-owned data, policy and callbacks",
|
|
1023
|
+
"Local preview changes are not production mutations"
|
|
1024
|
+
],
|
|
1025
|
+
"compatibleWith": [],
|
|
1026
|
+
"components": []
|
|
1027
|
+
}
|
|
1028
|
+
]
|
|
1029
|
+
}
|