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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/bin/utopia-ds-mcp.mjs +15 -4
  2. package/bin/utopia-ds.mjs +16 -3
  3. package/data/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  4. package/data/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  5. package/data/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  6. package/data/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  7. package/data/blocks/semantic-pattern-parts/PatternParts.tsx +7 -0
  8. package/data/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  9. package/data/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  10. package/data/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  11. package/data/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  12. package/data/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  13. package/data/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  14. package/data/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  15. package/data/blocks/semantic-pattern-parts/product-parts.css +25 -0
  16. package/data/blocks/semantic-pattern-parts/types.ts +3 -0
  17. package/data/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  18. package/data/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  19. package/data/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  20. package/data/blocks/ux-pattern-examples/OnboardingExample.tsx +15 -0
  21. package/data/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  22. package/data/blocks/ux-pattern-examples/ReviewExample.tsx +14 -0
  23. package/data/blocks/ux-pattern-examples/SignupExample.tsx +22 -0
  24. package/data/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  25. package/data/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  26. package/data/blocks/ux-pattern-examples/copy.ts +6 -0
  27. package/data/blocks/ux-pattern-examples/ux-examples.css +18 -0
  28. package/data/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  29. package/data/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  30. package/data/docs/ui-parts-qa.md +172 -0
  31. package/data/docs/ui-parts.md +105 -0
  32. package/data/docs/ux-pattern-adaptation-qa.md +38 -0
  33. package/data/docs/ux-pattern-adaptation.md +41 -0
  34. package/data/docs/ux-pattern-migration.md +111 -0
  35. package/data/docs/ux-pattern-release-2026-09-13.md +26 -0
  36. package/data/docs/ux-source-evidence/account-auth.json +41 -0
  37. package/data/docs/ux-source-evidence/account-forgot-password.json +36 -0
  38. package/data/docs/ux-source-evidence/account-invite.json +63 -0
  39. package/data/docs/ux-source-evidence/account-locked.json +63 -0
  40. package/data/docs/ux-source-evidence/account-login.json +28 -0
  41. package/data/docs/ux-source-evidence/account-mfa.json +62 -0
  42. package/data/docs/ux-source-evidence/account-onboarding-credentials.json +52 -0
  43. package/data/docs/ux-source-evidence/account-onboarding-legal.json +56 -0
  44. package/data/docs/ux-source-evidence/account-onboarding-orientation.json +66 -0
  45. package/data/docs/ux-source-evidence/account-onboarding-profile.json +50 -0
  46. package/data/docs/ux-source-evidence/account-onboarding.json +69 -0
  47. package/data/docs/ux-source-evidence/account-reset-password.json +27 -0
  48. package/data/docs/ux-source-evidence/account-session-expired.json +62 -0
  49. package/data/docs/ux-source-evidence/account-signup.json +33 -0
  50. package/data/docs/ux-source-evidence/account-verify-email.json +34 -0
  51. package/data/docs/ux-source-evidence/account-welcome.json +41 -0
  52. package/data/docs/ux-source-evidence/admin-analytics.json +54 -0
  53. package/data/docs/ux-source-evidence/admin-audit.json +31 -0
  54. package/data/docs/ux-source-evidence/admin-broadcasts-new.json +36 -0
  55. package/data/docs/ux-source-evidence/admin-broadcasts.json +41 -0
  56. package/data/docs/ux-source-evidence/admin-closures.json +52 -0
  57. package/data/docs/ux-source-evidence/admin-devices.json +51 -0
  58. package/data/docs/ux-source-evidence/admin-escalations.json +35 -0
  59. package/data/docs/ux-source-evidence/admin-incidents.json +54 -0
  60. package/data/docs/ux-source-evidence/admin-loading.json +17 -0
  61. package/data/docs/ux-source-evidence/admin-onboarding-detail.json +80 -0
  62. package/data/docs/ux-source-evidence/admin-onboarding.json +62 -0
  63. package/data/docs/ux-source-evidence/admin-payments.json +45 -0
  64. package/data/docs/ux-source-evidence/admin-providers.json +38 -0
  65. package/data/docs/ux-source-evidence/admin-settings.json +18 -0
  66. package/data/docs/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  67. package/data/docs/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  68. package/data/docs/ux-source-evidence/admin-subscriptions-new.json +43 -0
  69. package/data/docs/ux-source-evidence/admin-subscriptions.json +41 -0
  70. package/data/docs/ux-source-evidence/admin-transactions.json +41 -0
  71. package/data/docs/ux-source-evidence/error.json +30 -0
  72. package/data/docs/ux-source-evidence/loading.json +19 -0
  73. package/data/docs/ux-source-evidence/marketing-blog.json +48 -0
  74. package/data/docs/ux-source-evidence/marketing-contact.json +36 -0
  75. package/data/docs/ux-source-evidence/marketing.json +64 -0
  76. package/data/docs/ux-source-evidence/not-found.json +28 -0
  77. package/data/docs/ux-source-evidence/portal-loading.json +17 -0
  78. package/data/docs/ux-source-evidence/portal-mentor-messages.json +31 -0
  79. package/data/docs/ux-source-evidence/portal-mentor-profile.json +23 -0
  80. package/data/docs/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  81. package/data/docs/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  82. package/data/docs/ux-source-evidence/portal-mentor-settings.json +18 -0
  83. package/data/docs/ux-source-evidence/portal-mentor.json +38 -0
  84. package/data/docs/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  85. package/data/docs/ux-source-evidence/portal-sponsor-billing.json +28 -0
  86. package/data/docs/ux-source-evidence/portal-sponsor-profile.json +22 -0
  87. package/data/docs/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  88. package/data/docs/ux-source-evidence/portal-sponsor-settings.json +18 -0
  89. package/data/docs/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  90. package/data/docs/ux-source-evidence/portal-sponsor.json +52 -0
  91. package/data/docs/ux-source-evidence/portal-trainee-competency.json +42 -0
  92. package/data/docs/ux-source-evidence/portal-trainee-credits.json +40 -0
  93. package/data/docs/ux-source-evidence/portal-trainee-mentors.json +48 -0
  94. package/data/docs/ux-source-evidence/portal-trainee-messages.json +32 -0
  95. package/data/docs/ux-source-evidence/portal-trainee-notifications.json +35 -0
  96. package/data/docs/ux-source-evidence/portal-trainee-profile.json +26 -0
  97. package/data/docs/ux-source-evidence/portal-trainee-request.json +54 -0
  98. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  99. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  100. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  101. package/data/docs/ux-source-evidence/portal-trainee-sessions.json +36 -0
  102. package/data/docs/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  103. package/data/docs/ux-source-evidence/portal-trainee-settings.json +18 -0
  104. package/data/docs/ux-source-evidence/portal-trainee.json +44 -0
  105. package/data/docs/ux-source-evidence/portal-tv-detail.json +39 -0
  106. package/data/docs/ux-source-evidence/portal-tv.json +44 -0
  107. package/data/docs/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  108. package/data/docs/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  109. package/data/docs/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  110. package/data/docs/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  111. package/data/docs/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  112. package/data/docs/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  113. package/data/docs/ux-source-evidence/shared-portal-empty-state.json +24 -0
  114. package/data/docs/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  115. package/data/docs/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  116. package/data/docs/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  117. package/data/docs/ux-source-evidence/shared-portal-profile-form.json +32 -0
  118. package/data/docs/ux-source-evidence/shared-portal-settings-view.json +81 -0
  119. package/data/docs/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  120. package/data/docs/ux-source-evidence/shared-portal-user-menu.json +34 -0
  121. package/data/manifests/blocks.json +230 -21
  122. package/data/manifests/patterns.json +330 -0
  123. package/data/manifests/ui-patterns.json +1029 -0
  124. package/data/manifests/ux-examples.json +2177 -0
  125. package/data/manifests/ux-patterns.json +1135 -0
  126. package/data/manifests/ux-source-inventory.json +4669 -0
  127. package/data/ui-parts/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
  128. package/data/ui-parts/blocks/analytics-dashboard/analytics-dashboard.css +92 -0
  129. package/data/ui-parts/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  130. package/data/ui-parts/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  131. package/data/ui-parts/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  132. package/data/ui-parts/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  133. package/data/ui-parts/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  134. package/data/ui-parts/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  135. package/data/ui-parts/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  136. package/data/ui-parts/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  137. package/data/ui-parts/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  138. package/data/ui-parts/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  139. package/data/ui-parts/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  140. package/data/ui-parts/blocks/semantic-pattern-parts/product-parts.css +25 -0
  141. package/data/ui-parts/blocks/semantic-pattern-parts/types.ts +3 -0
  142. package/data/ui-parts/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  143. package/data/ui-parts/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  144. package/data/ui-parts/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  145. package/data/ui-parts/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  146. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  147. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  148. package/data/ui-parts/blocks/ux-pattern-examples/copy.ts +6 -0
  149. package/data/ui-parts/blocks/ux-pattern-examples/ux-examples.css +18 -0
  150. package/data/ui-parts/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  151. package/data/ui-parts/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  152. package/data/ux-source-evidence/account-auth.json +41 -0
  153. package/data/ux-source-evidence/account-forgot-password.json +36 -0
  154. package/data/ux-source-evidence/account-invite.json +63 -0
  155. package/data/ux-source-evidence/account-locked.json +63 -0
  156. package/data/ux-source-evidence/account-login.json +28 -0
  157. package/data/ux-source-evidence/account-mfa.json +62 -0
  158. package/data/ux-source-evidence/account-onboarding-credentials.json +52 -0
  159. package/data/ux-source-evidence/account-onboarding-legal.json +56 -0
  160. package/data/ux-source-evidence/account-onboarding-orientation.json +66 -0
  161. package/data/ux-source-evidence/account-onboarding-profile.json +50 -0
  162. package/data/ux-source-evidence/account-onboarding.json +69 -0
  163. package/data/ux-source-evidence/account-reset-password.json +27 -0
  164. package/data/ux-source-evidence/account-session-expired.json +62 -0
  165. package/data/ux-source-evidence/account-signup.json +33 -0
  166. package/data/ux-source-evidence/account-verify-email.json +34 -0
  167. package/data/ux-source-evidence/account-welcome.json +41 -0
  168. package/data/ux-source-evidence/admin-analytics.json +54 -0
  169. package/data/ux-source-evidence/admin-audit.json +31 -0
  170. package/data/ux-source-evidence/admin-broadcasts-new.json +36 -0
  171. package/data/ux-source-evidence/admin-broadcasts.json +41 -0
  172. package/data/ux-source-evidence/admin-closures.json +52 -0
  173. package/data/ux-source-evidence/admin-devices.json +51 -0
  174. package/data/ux-source-evidence/admin-escalations.json +35 -0
  175. package/data/ux-source-evidence/admin-incidents.json +54 -0
  176. package/data/ux-source-evidence/admin-loading.json +17 -0
  177. package/data/ux-source-evidence/admin-onboarding-detail.json +80 -0
  178. package/data/ux-source-evidence/admin-onboarding.json +62 -0
  179. package/data/ux-source-evidence/admin-payments.json +45 -0
  180. package/data/ux-source-evidence/admin-providers.json +38 -0
  181. package/data/ux-source-evidence/admin-settings.json +18 -0
  182. package/data/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  183. package/data/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  184. package/data/ux-source-evidence/admin-subscriptions-new.json +43 -0
  185. package/data/ux-source-evidence/admin-subscriptions.json +41 -0
  186. package/data/ux-source-evidence/admin-transactions.json +41 -0
  187. package/data/ux-source-evidence/error.json +30 -0
  188. package/data/ux-source-evidence/loading.json +19 -0
  189. package/data/ux-source-evidence/marketing-blog.json +48 -0
  190. package/data/ux-source-evidence/marketing-contact.json +36 -0
  191. package/data/ux-source-evidence/marketing.json +64 -0
  192. package/data/ux-source-evidence/not-found.json +28 -0
  193. package/data/ux-source-evidence/portal-loading.json +17 -0
  194. package/data/ux-source-evidence/portal-mentor-messages.json +31 -0
  195. package/data/ux-source-evidence/portal-mentor-profile.json +23 -0
  196. package/data/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  197. package/data/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  198. package/data/ux-source-evidence/portal-mentor-settings.json +18 -0
  199. package/data/ux-source-evidence/portal-mentor.json +38 -0
  200. package/data/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  201. package/data/ux-source-evidence/portal-sponsor-billing.json +28 -0
  202. package/data/ux-source-evidence/portal-sponsor-profile.json +22 -0
  203. package/data/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  204. package/data/ux-source-evidence/portal-sponsor-settings.json +18 -0
  205. package/data/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  206. package/data/ux-source-evidence/portal-sponsor.json +52 -0
  207. package/data/ux-source-evidence/portal-trainee-competency.json +42 -0
  208. package/data/ux-source-evidence/portal-trainee-credits.json +40 -0
  209. package/data/ux-source-evidence/portal-trainee-mentors.json +48 -0
  210. package/data/ux-source-evidence/portal-trainee-messages.json +32 -0
  211. package/data/ux-source-evidence/portal-trainee-notifications.json +35 -0
  212. package/data/ux-source-evidence/portal-trainee-profile.json +26 -0
  213. package/data/ux-source-evidence/portal-trainee-request.json +54 -0
  214. package/data/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  215. package/data/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  216. package/data/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  217. package/data/ux-source-evidence/portal-trainee-sessions.json +36 -0
  218. package/data/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  219. package/data/ux-source-evidence/portal-trainee-settings.json +18 -0
  220. package/data/ux-source-evidence/portal-trainee.json +44 -0
  221. package/data/ux-source-evidence/portal-tv-detail.json +39 -0
  222. package/data/ux-source-evidence/portal-tv.json +44 -0
  223. package/data/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  224. package/data/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  225. package/data/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  226. package/data/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  227. package/data/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  228. package/data/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  229. package/data/ux-source-evidence/shared-portal-empty-state.json +24 -0
  230. package/data/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  231. package/data/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  232. package/data/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  233. package/data/ux-source-evidence/shared-portal-profile-form.json +32 -0
  234. package/data/ux-source-evidence/shared-portal-settings-view.json +81 -0
  235. package/data/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  236. package/data/ux-source-evidence/shared-portal-user-menu.json +34 -0
  237. package/lib/api.mjs +192 -4
  238. package/package.json +2 -2
@@ -0,0 +1,2177 @@
1
+ {
2
+ "version": 2,
3
+ "examples": [
4
+ {
5
+ "id": "signup-01",
6
+ "category": "account",
7
+ "title": {
8
+ "en": "Role-based sign up",
9
+ "ko": "역할 선택과 회원가입",
10
+ "ar": "إنشاء حساب مع اختيار الدور"
11
+ },
12
+ "description": {
13
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
14
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
15
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
16
+ },
17
+ "parts": [
18
+ "choice-cards",
19
+ "validated-field",
20
+ "password-field",
21
+ "provider-sign-in",
22
+ "outcome-notice"
23
+ ],
24
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
25
+ "exportName": "RoleSignupExample",
26
+ "sourcePattern": "account-signup",
27
+ "states": [
28
+ "default",
29
+ "email-taken",
30
+ "invite-only"
31
+ ],
32
+ "files": [
33
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
34
+ "blocks/semantic-pattern-parts/auth-parts.css",
35
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
36
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
37
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
38
+ "blocks/semantic-pattern-parts/pattern-parts.css",
39
+ "blocks/semantic-pattern-parts/types.ts"
40
+ ]
41
+ },
42
+ {
43
+ "id": "login-01",
44
+ "category": "account",
45
+ "title": {
46
+ "en": "Sign in",
47
+ "ko": "로그인",
48
+ "ar": "تسجيل الدخول"
49
+ },
50
+ "description": {
51
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
52
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
53
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
54
+ },
55
+ "parts": [
56
+ "validated-field",
57
+ "password-field",
58
+ "provider-sign-in"
59
+ ],
60
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
61
+ "exportName": "LoginExample",
62
+ "sourcePattern": "account-login",
63
+ "states": [
64
+ "default",
65
+ "error",
66
+ "suspended",
67
+ "magic-sent"
68
+ ],
69
+ "files": [
70
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
71
+ "blocks/semantic-pattern-parts/auth-parts.css",
72
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
73
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
74
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
75
+ "blocks/semantic-pattern-parts/pattern-parts.css",
76
+ "blocks/semantic-pattern-parts/types.ts"
77
+ ]
78
+ },
79
+ {
80
+ "id": "password-recovery-01",
81
+ "category": "account",
82
+ "title": {
83
+ "en": "Password recovery",
84
+ "ko": "비밀번호 찾기",
85
+ "ar": "استعادة كلمة المرور"
86
+ },
87
+ "description": {
88
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
89
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
90
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
91
+ },
92
+ "parts": [
93
+ "validated-field",
94
+ "outcome-notice"
95
+ ],
96
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
97
+ "exportName": "PasswordRecoveryExample",
98
+ "sourcePattern": "account-forgot-password",
99
+ "states": [
100
+ "default",
101
+ "sent",
102
+ "invalid",
103
+ "expired"
104
+ ],
105
+ "files": [
106
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
107
+ "blocks/semantic-pattern-parts/auth-parts.css",
108
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
109
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
110
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
111
+ "blocks/semantic-pattern-parts/pattern-parts.css",
112
+ "blocks/semantic-pattern-parts/types.ts"
113
+ ]
114
+ },
115
+ {
116
+ "id": "password-reset-01",
117
+ "category": "account",
118
+ "title": {
119
+ "en": "Reset password",
120
+ "ko": "비밀번호 재설정",
121
+ "ar": "إعادة تعيين كلمة المرور"
122
+ },
123
+ "description": {
124
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
125
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
126
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
127
+ },
128
+ "parts": [
129
+ "password-field",
130
+ "outcome-notice"
131
+ ],
132
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
133
+ "exportName": "PasswordResetExample",
134
+ "sourcePattern": "account-reset-password",
135
+ "states": [
136
+ "default",
137
+ "success",
138
+ "expired",
139
+ "mismatch"
140
+ ],
141
+ "files": [
142
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
143
+ "blocks/semantic-pattern-parts/auth-parts.css",
144
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
145
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
146
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
147
+ "blocks/semantic-pattern-parts/pattern-parts.css",
148
+ "blocks/semantic-pattern-parts/types.ts"
149
+ ]
150
+ },
151
+ {
152
+ "id": "verify-email-01",
153
+ "category": "account",
154
+ "title": {
155
+ "en": "Email verification",
156
+ "ko": "이메일 인증",
157
+ "ar": "التحقق من البريد"
158
+ },
159
+ "description": {
160
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
161
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
162
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
163
+ },
164
+ "parts": [
165
+ "validated-field",
166
+ "outcome-notice"
167
+ ],
168
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
169
+ "exportName": "EmailVerificationExample",
170
+ "sourcePattern": "account-verify-email",
171
+ "states": [
172
+ "waiting",
173
+ "success",
174
+ "expired"
175
+ ],
176
+ "files": [
177
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
178
+ "blocks/semantic-pattern-parts/auth-parts.css",
179
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
180
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
181
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
182
+ "blocks/semantic-pattern-parts/pattern-parts.css",
183
+ "blocks/semantic-pattern-parts/types.ts"
184
+ ]
185
+ },
186
+ {
187
+ "id": "two-factor-01",
188
+ "category": "account",
189
+ "title": {
190
+ "en": "Two-factor authentication",
191
+ "ko": "2단계 인증",
192
+ "ar": "المصادقة الثنائية"
193
+ },
194
+ "description": {
195
+ "en": "Interactive account flow with validation, recovery and explicit example states.",
196
+ "ko": "입력 검증과 오류 복구, 상태별 동작을 체험할 수 있는 계정 패턴입니다.",
197
+ "ar": "مسار حساب تفاعلي مع التحقق والاسترداد وحالات تجريبية واضحة."
198
+ },
199
+ "parts": [
200
+ "verification-code",
201
+ "validated-field",
202
+ "outcome-notice"
203
+ ],
204
+ "source": "blocks/ux-pattern-examples/AccountExamples.tsx",
205
+ "exportName": "TwoFactorExample",
206
+ "sourcePattern": "account-mfa",
207
+ "states": [
208
+ "verify",
209
+ "setup",
210
+ "backup",
211
+ "recovery"
212
+ ],
213
+ "files": [
214
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
215
+ "blocks/semantic-pattern-parts/auth-parts.css",
216
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
217
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
218
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
219
+ "blocks/semantic-pattern-parts/pattern-parts.css",
220
+ "blocks/semantic-pattern-parts/types.ts"
221
+ ]
222
+ },
223
+ {
224
+ "id": "invitation-01",
225
+ "category": "account",
226
+ "title": {
227
+ "en": "Invitation acceptance",
228
+ "ko": "초대 수락",
229
+ "ar": "قبول الدعوة"
230
+ },
231
+ "description": {
232
+ "en": "Review the team and role, enter a code or recover an expired invitation.",
233
+ "ko": "팀·역할 확인, 초대 코드 입력, 만료된 초대 복구를 체험하세요.",
234
+ "ar": "راجع الفريق والدور وأدخل رمزاً أو استعد دعوة منتهية."
235
+ },
236
+ "parts": [
237
+ "validated-field",
238
+ "password-field",
239
+ "provider-sign-in",
240
+ "outcome-notice"
241
+ ],
242
+ "source": "blocks/ux-pattern-examples/AccessExamples.tsx",
243
+ "exportName": "InvitationExample",
244
+ "sourcePattern": "account-invite",
245
+ "states": [
246
+ "new-user",
247
+ "existing-user",
248
+ "code-entry",
249
+ "expired"
250
+ ],
251
+ "files": [
252
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
253
+ "blocks/semantic-pattern-parts/auth-parts.css",
254
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
255
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
256
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
257
+ "blocks/semantic-pattern-parts/pattern-parts.css",
258
+ "blocks/semantic-pattern-parts/types.ts"
259
+ ]
260
+ },
261
+ {
262
+ "id": "session-recovery-01",
263
+ "category": "account",
264
+ "title": {
265
+ "en": "Session recovery",
266
+ "ko": "세션 복구",
267
+ "ar": "استعادة الجلسة"
268
+ },
269
+ "description": {
270
+ "en": "Restore a session, sign in again or resolve another active device.",
271
+ "ko": "만료된 세션을 복구하고 다른 기기의 활성 세션을 처리하는 예시입니다.",
272
+ "ar": "استعد الجلسة أو سجّل الدخول أو عالج جلسة جهاز آخر."
273
+ },
274
+ "parts": [
275
+ "password-field",
276
+ "outcome-notice"
277
+ ],
278
+ "source": "blocks/ux-pattern-examples/AccessExamples.tsx",
279
+ "exportName": "SessionRecoveryExample",
280
+ "sourcePattern": "account-session-expired",
281
+ "states": [
282
+ "expired-full",
283
+ "reauthenticate",
284
+ "logged-out",
285
+ "concurrent"
286
+ ],
287
+ "files": [
288
+ "blocks/semantic-pattern-parts/AuthParts.tsx",
289
+ "blocks/semantic-pattern-parts/auth-parts.css",
290
+ "blocks/semantic-pattern-parts/ChoiceCards.tsx",
291
+ "blocks/semantic-pattern-parts/ValidatedField.tsx",
292
+ "blocks/semantic-pattern-parts/OutcomeNotice.tsx",
293
+ "blocks/semantic-pattern-parts/pattern-parts.css",
294
+ "blocks/semantic-pattern-parts/types.ts"
295
+ ]
296
+ },
297
+ {
298
+ "id": "people-directory-01",
299
+ "category": "directory",
300
+ "title": {
301
+ "en": "People directory",
302
+ "ko": "사람 찾기",
303
+ "ar": "دليل الأشخاص"
304
+ },
305
+ "description": {
306
+ "en": "Search, filter and compare people by expertise, availability and experience.",
307
+ "ko": "전문 분야·참여 가능 여부·경력으로 사람을 검색하고 비교하세요.",
308
+ "ar": "ابحث وقارن حسب التخصص والتوفر والخبرة."
309
+ },
310
+ "parts": [
311
+ "directory-cards"
312
+ ],
313
+ "source": "blocks/ux-pattern-examples/ProductExamples.tsx",
314
+ "exportName": "PeopleDirectoryExample",
315
+ "sourcePattern": "portal-trainee-mentors",
316
+ "states": [
317
+ "default",
318
+ "available",
319
+ "empty"
320
+ ],
321
+ "files": [
322
+ "blocks/semantic-pattern-parts/ProductParts.tsx",
323
+ "blocks/semantic-pattern-parts/product-parts.css"
324
+ ]
325
+ },
326
+ {
327
+ "id": "conversation-list-01",
328
+ "category": "messaging",
329
+ "title": {
330
+ "en": "Conversation list",
331
+ "ko": "대화 목록",
332
+ "ar": "قائمة المحادثات"
333
+ },
334
+ "description": {
335
+ "en": "Browse active conversations, unread messages and an empty inbox.",
336
+ "ko": "진행 중인 대화·읽지 않은 메시지·빈 목록 상태를 살펴보세요.",
337
+ "ar": "استعرض المحادثات والرسائل غير المقروءة وحالة الفراغ."
338
+ },
339
+ "parts": [
340
+ "activity-list"
341
+ ],
342
+ "source": "blocks/ux-pattern-examples/ProductExamples.tsx",
343
+ "exportName": "ConversationListExample",
344
+ "sourcePattern": "portal-trainee-messages",
345
+ "states": [
346
+ "default",
347
+ "empty"
348
+ ],
349
+ "files": [
350
+ "blocks/semantic-pattern-parts/ProductParts.tsx",
351
+ "blocks/semantic-pattern-parts/product-parts.css"
352
+ ],
353
+ "sourcePatterns": [
354
+ "portal-trainee-messages",
355
+ "portal-mentor-messages"
356
+ ]
357
+ },
358
+ {
359
+ "id": "notifications-01",
360
+ "category": "messaging",
361
+ "title": {
362
+ "en": "Notification inbox",
363
+ "ko": "알림 목록",
364
+ "ar": "صندوق الإشعارات"
365
+ },
366
+ "description": {
367
+ "en": "Switch between all, unread and archived activity and inspect an update.",
368
+ "ko": "전체·읽지 않음·보관됨으로 알림을 나누고 내용을 확인하세요.",
369
+ "ar": "انتقل بين الكل وغير المقروء والمؤرشف وافتح التحديثات."
370
+ },
371
+ "parts": [
372
+ "activity-list"
373
+ ],
374
+ "source": "blocks/ux-pattern-examples/ProductExamples.tsx",
375
+ "exportName": "NotificationsExample",
376
+ "sourcePattern": "portal-trainee-notifications",
377
+ "states": [
378
+ "all",
379
+ "unread",
380
+ "archived",
381
+ "empty"
382
+ ],
383
+ "files": [
384
+ "blocks/semantic-pattern-parts/ProductParts.tsx",
385
+ "blocks/semantic-pattern-parts/product-parts.css"
386
+ ]
387
+ },
388
+ {
389
+ "id": "notification-preferences-01",
390
+ "category": "settings",
391
+ "title": {
392
+ "en": "Notification preferences",
393
+ "ko": "알림 수신 설정",
394
+ "ar": "تفضيلات الإشعارات"
395
+ },
396
+ "description": {
397
+ "en": "Choose channels per event with required-delivery rules and save feedback.",
398
+ "ko": "항목별 수신 채널·필수 수신 규칙·저장 상태를 확인하세요.",
399
+ "ar": "اختر قنوات الأحداث مع قواعد التوصيل وتأكيد الحفظ."
400
+ },
401
+ "parts": [
402
+ "channel-preferences"
403
+ ],
404
+ "source": "blocks/ux-pattern-examples/ProductExamples.tsx",
405
+ "exportName": "NotificationPreferencesExample",
406
+ "sourcePattern": "portal-trainee-settings-notifications",
407
+ "states": [
408
+ "default",
409
+ "saved"
410
+ ],
411
+ "files": [
412
+ "blocks/semantic-pattern-parts/ProductParts.tsx",
413
+ "blocks/semantic-pattern-parts/product-parts.css"
414
+ ]
415
+ },
416
+ {
417
+ "id": "account-protection-01",
418
+ "category": "account",
419
+ "title": {
420
+ "en": "Account protection",
421
+ "ko": "계정 보호",
422
+ "ar": "حماية الحساب"
423
+ },
424
+ "description": {
425
+ "en": "Attempt limits, suspicious devices and sensitive-action reauthentication.",
426
+ "ko": "시도 제한·의심 기기·중요 작업 재인증 흐름입니다.",
427
+ "ar": "حدود المحاولات والأجهزة المشبوهة وإعادة التحقق."
428
+ },
429
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
430
+ "exportName": "AccountProtectionExample",
431
+ "sourcePattern": "account-locked",
432
+ "sourcePatterns": [
433
+ "account-locked"
434
+ ],
435
+ "states": [
436
+ "attempts",
437
+ "suspicious",
438
+ "device-code",
439
+ "confirm-action"
440
+ ],
441
+ "parts": [],
442
+ "files": [
443
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
444
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
445
+ "blocks/ux-pattern-examples/workflow-copy.ts",
446
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
447
+ "blocks/semantic-pattern-parts/workflow-parts.css",
448
+ "blocks/semantic-pattern-parts/product-parts.css"
449
+ ]
450
+ },
451
+ {
452
+ "id": "welcome-01",
453
+ "category": "account",
454
+ "title": {
455
+ "en": "Welcome and next step",
456
+ "ko": "가입 완료와 다음 단계",
457
+ "ar": "الترحيب والخطوة التالية"
458
+ },
459
+ "description": {
460
+ "en": "Continue to profile setup or skip it without losing your destination.",
461
+ "ko": "프로필 설정을 계속하거나 나중에 진행하는 완료 화면입니다.",
462
+ "ar": "تابع إعداد الملف أو أجّله مع الحفاظ على وجهتك."
463
+ },
464
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
465
+ "exportName": "WelcomeExample",
466
+ "sourcePattern": "account-welcome",
467
+ "sourcePatterns": [
468
+ "account-welcome"
469
+ ],
470
+ "states": [
471
+ "default",
472
+ "redirect"
473
+ ],
474
+ "parts": [],
475
+ "files": [
476
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
477
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
478
+ "blocks/ux-pattern-examples/workflow-copy.ts",
479
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
480
+ "blocks/semantic-pattern-parts/workflow-parts.css",
481
+ "blocks/semantic-pattern-parts/product-parts.css"
482
+ ]
483
+ },
484
+ {
485
+ "id": "setup-progress-01",
486
+ "category": "onboarding",
487
+ "title": {
488
+ "en": "Setup progress",
489
+ "ko": "설정 진행 상황",
490
+ "ar": "تقدم الإعداد"
491
+ },
492
+ "description": {
493
+ "en": "Ordered steps, locked prerequisites and review-pending recovery.",
494
+ "ko": "단계 순서·선행 조건·검토 대기를 보여주는 진행 패턴입니다.",
495
+ "ar": "خطوات مرتبة ومتطلبات سابقة وحالة انتظار المراجعة."
496
+ },
497
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
498
+ "exportName": "SetupProgressExample",
499
+ "sourcePattern": "account-onboarding",
500
+ "sourcePatterns": [
501
+ "account-onboarding"
502
+ ],
503
+ "states": [
504
+ "default",
505
+ "midway",
506
+ "review",
507
+ "complete"
508
+ ],
509
+ "parts": [
510
+ "stat-strip"
511
+ ],
512
+ "files": [
513
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
514
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
515
+ "blocks/ux-pattern-examples/workflow-copy.ts",
516
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
517
+ "blocks/semantic-pattern-parts/workflow-parts.css",
518
+ "blocks/semantic-pattern-parts/product-parts.css"
519
+ ]
520
+ },
521
+ {
522
+ "id": "profile-setup-01",
523
+ "category": "onboarding",
524
+ "title": {
525
+ "en": "Profile setup",
526
+ "ko": "프로필 설정",
527
+ "ar": "إعداد الملف"
528
+ },
529
+ "description": {
530
+ "en": "Complete the fields, inspect validation and review the local result.",
531
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
532
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
533
+ },
534
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
535
+ "exportName": "ProfileSetupExample",
536
+ "sourcePattern": "account-onboarding-profile",
537
+ "sourcePatterns": [
538
+ "account-onboarding-profile"
539
+ ],
540
+ "states": [
541
+ "default",
542
+ "expert",
543
+ "organization",
544
+ "validation",
545
+ "success"
546
+ ],
547
+ "parts": [
548
+ "workflow-fields",
549
+ "stat-strip"
550
+ ],
551
+ "files": [
552
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
553
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
554
+ "blocks/ux-pattern-examples/workflow-copy.ts",
555
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
556
+ "blocks/semantic-pattern-parts/workflow-parts.css",
557
+ "blocks/semantic-pattern-parts/product-parts.css"
558
+ ]
559
+ },
560
+ {
561
+ "id": "credentials-01",
562
+ "category": "onboarding",
563
+ "title": {
564
+ "en": "Credentials and documents",
565
+ "ko": "자격 정보와 증빙",
566
+ "ar": "المؤهلات والمستندات"
567
+ },
568
+ "description": {
569
+ "en": "Complete the fields, inspect validation and review the local result.",
570
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
571
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
572
+ },
573
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
574
+ "exportName": "CredentialsExample",
575
+ "sourcePattern": "account-onboarding-credentials",
576
+ "sourcePatterns": [
577
+ "account-onboarding-credentials"
578
+ ],
579
+ "states": [
580
+ "default",
581
+ "expert",
582
+ "organization",
583
+ "validation",
584
+ "success"
585
+ ],
586
+ "parts": [
587
+ "workflow-fields",
588
+ "stat-strip"
589
+ ],
590
+ "files": [
591
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
592
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
593
+ "blocks/ux-pattern-examples/workflow-copy.ts",
594
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
595
+ "blocks/semantic-pattern-parts/workflow-parts.css",
596
+ "blocks/semantic-pattern-parts/product-parts.css"
597
+ ]
598
+ },
599
+ {
600
+ "id": "agreements-01",
601
+ "category": "onboarding",
602
+ "title": {
603
+ "en": "Agreement collection",
604
+ "ko": "약정 수집",
605
+ "ar": "جمع الاتفاقيات"
606
+ },
607
+ "description": {
608
+ "en": "Complete the fields, inspect validation and review the local result.",
609
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
610
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
611
+ },
612
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
613
+ "exportName": "AgreementsExample",
614
+ "sourcePattern": "account-onboarding-legal",
615
+ "sourcePatterns": [
616
+ "account-onboarding-legal"
617
+ ],
618
+ "states": [
619
+ "default",
620
+ "expert",
621
+ "organization",
622
+ "validation",
623
+ "success"
624
+ ],
625
+ "parts": [
626
+ "workflow-fields",
627
+ "stat-strip"
628
+ ],
629
+ "files": [
630
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
631
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
632
+ "blocks/ux-pattern-examples/workflow-copy.ts",
633
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
634
+ "blocks/semantic-pattern-parts/workflow-parts.css",
635
+ "blocks/semantic-pattern-parts/product-parts.css"
636
+ ]
637
+ },
638
+ {
639
+ "id": "orientation-01",
640
+ "category": "onboarding",
641
+ "title": {
642
+ "en": "Orientation and acknowledgements",
643
+ "ko": "사용 안내와 확인",
644
+ "ar": "التوجيه والإقرار"
645
+ },
646
+ "description": {
647
+ "en": "Read or preview guidance and explicitly acknowledge each topic.",
648
+ "ko": "안내를 읽고 각 항목을 명시적으로 확인합니다.",
649
+ "ar": "راجع الإرشادات وأقرّ بكل موضوع بوضوح."
650
+ },
651
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
652
+ "exportName": "OrientationExample",
653
+ "sourcePattern": "account-onboarding-orientation",
654
+ "sourcePatterns": [
655
+ "account-onboarding-orientation"
656
+ ],
657
+ "states": [
658
+ "default",
659
+ "expert",
660
+ "complete"
661
+ ],
662
+ "parts": [
663
+ "step-checklist",
664
+ "stat-strip"
665
+ ],
666
+ "files": [
667
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
668
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
669
+ "blocks/ux-pattern-examples/workflow-copy.ts",
670
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
671
+ "blocks/semantic-pattern-parts/workflow-parts.css",
672
+ "blocks/semantic-pattern-parts/product-parts.css"
673
+ ]
674
+ },
675
+ {
676
+ "id": "plan-selection-01",
677
+ "category": "billing",
678
+ "title": {
679
+ "en": "Plan comparison",
680
+ "ko": "플랜 비교",
681
+ "ar": "مقارنة الخطط"
682
+ },
683
+ "description": {
684
+ "en": "Complete the fields, inspect validation and review the local result.",
685
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
686
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
687
+ },
688
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
689
+ "exportName": "PlanSelectionExample",
690
+ "sourcePattern": "account-onboarding-orientation",
691
+ "sourcePatterns": [
692
+ "account-onboarding-orientation"
693
+ ],
694
+ "states": [
695
+ "default",
696
+ "validation",
697
+ "success"
698
+ ],
699
+ "parts": [
700
+ "workflow-fields",
701
+ "stat-strip"
702
+ ],
703
+ "files": [
704
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
705
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
706
+ "blocks/ux-pattern-examples/workflow-copy.ts",
707
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
708
+ "blocks/semantic-pattern-parts/workflow-parts.css",
709
+ "blocks/semantic-pattern-parts/product-parts.css"
710
+ ]
711
+ },
712
+ {
713
+ "id": "profile-editing-01",
714
+ "category": "settings",
715
+ "title": {
716
+ "en": "Profile editing",
717
+ "ko": "프로필 편집",
718
+ "ar": "تعديل الملف"
719
+ },
720
+ "description": {
721
+ "en": "Complete the fields, inspect validation and review the local result.",
722
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
723
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
724
+ },
725
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
726
+ "exportName": "ProfileEditingExample",
727
+ "sourcePattern": "portal-trainee-profile",
728
+ "sourcePatterns": [
729
+ "portal-trainee-profile",
730
+ "portal-mentor-profile",
731
+ "portal-sponsor-profile"
732
+ ],
733
+ "states": [
734
+ "default",
735
+ "expert",
736
+ "organization",
737
+ "success"
738
+ ],
739
+ "parts": [
740
+ "workflow-fields",
741
+ "stat-strip"
742
+ ],
743
+ "files": [
744
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
745
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
746
+ "blocks/ux-pattern-examples/workflow-copy.ts",
747
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
748
+ "blocks/semantic-pattern-parts/workflow-parts.css",
749
+ "blocks/semantic-pattern-parts/product-parts.css"
750
+ ]
751
+ },
752
+ {
753
+ "id": "account-settings-01",
754
+ "category": "settings",
755
+ "title": {
756
+ "en": "Account settings",
757
+ "ko": "계정 설정",
758
+ "ar": "إعدادات الحساب"
759
+ },
760
+ "description": {
761
+ "en": "Account, notifications, security, appearance, devices and closure.",
762
+ "ko": "계정·알림·보안·표시·기기·탈퇴 설정 예시입니다.",
763
+ "ar": "الحساب والإشعارات والأمان والمظهر والأجهزة والإغلاق."
764
+ },
765
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
766
+ "exportName": "AccountSettingsExample",
767
+ "sourcePattern": "portal-trainee-settings",
768
+ "sourcePatterns": [
769
+ "portal-trainee-settings",
770
+ "portal-mentor-settings",
771
+ "portal-sponsor-settings",
772
+ "admin-settings"
773
+ ],
774
+ "states": [
775
+ "account",
776
+ "notifications",
777
+ "security",
778
+ "appearance",
779
+ "devices",
780
+ "closure"
781
+ ],
782
+ "parts": [
783
+ "workflow-fields"
784
+ ],
785
+ "files": [
786
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
787
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
788
+ "blocks/ux-pattern-examples/workflow-copy.ts",
789
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
790
+ "blocks/semantic-pattern-parts/workflow-parts.css",
791
+ "blocks/semantic-pattern-parts/product-parts.css"
792
+ ]
793
+ },
794
+ {
795
+ "id": "booking-request-01",
796
+ "category": "scheduling",
797
+ "title": {
798
+ "en": "Booking request",
799
+ "ko": "예약 요청",
800
+ "ar": "طلب حجز"
801
+ },
802
+ "description": {
803
+ "en": "Complete the fields, inspect validation and review the local result.",
804
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
805
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
806
+ },
807
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
808
+ "exportName": "BookingRequestExample",
809
+ "sourcePattern": "portal-trainee-request",
810
+ "sourcePatterns": [
811
+ "portal-trainee-request"
812
+ ],
813
+ "states": [
814
+ "default",
815
+ "specific",
816
+ "no-credits",
817
+ "validation",
818
+ "success"
819
+ ],
820
+ "parts": [
821
+ "workflow-fields",
822
+ "stat-strip"
823
+ ],
824
+ "files": [
825
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
826
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
827
+ "blocks/ux-pattern-examples/workflow-copy.ts",
828
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
829
+ "blocks/semantic-pattern-parts/workflow-parts.css",
830
+ "blocks/semantic-pattern-parts/product-parts.css"
831
+ ]
832
+ },
833
+ {
834
+ "id": "session-list-01",
835
+ "category": "scheduling",
836
+ "title": {
837
+ "en": "Session list",
838
+ "ko": "세션 목록",
839
+ "ar": "قائمة الجلسات"
840
+ },
841
+ "description": {
842
+ "en": "Search and filter records, inspect details and recover from an empty result.",
843
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
844
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
845
+ },
846
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
847
+ "exportName": "SessionListExample",
848
+ "sourcePattern": "portal-trainee-sessions",
849
+ "sourcePatterns": [
850
+ "portal-trainee-sessions",
851
+ "portal-sponsor-sessions"
852
+ ],
853
+ "states": [
854
+ "default",
855
+ "empty",
856
+ "load-error"
857
+ ],
858
+ "parts": [
859
+ "record-table",
860
+ "workflow-fields",
861
+ "stat-strip"
862
+ ],
863
+ "files": [
864
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
865
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
866
+ "blocks/ux-pattern-examples/workflow-copy.ts",
867
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
868
+ "blocks/semantic-pattern-parts/workflow-parts.css",
869
+ "blocks/semantic-pattern-parts/product-parts.css"
870
+ ]
871
+ },
872
+ {
873
+ "id": "session-detail-01",
874
+ "category": "scheduling",
875
+ "title": {
876
+ "en": "Session preparation",
877
+ "ko": "세션 준비",
878
+ "ar": "التحضير للجلسة"
879
+ },
880
+ "description": {
881
+ "en": "Search and filter records, inspect details and recover from an empty result.",
882
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
883
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
884
+ },
885
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
886
+ "exportName": "SessionDetailExample",
887
+ "sourcePattern": "portal-trainee-sessions-detail",
888
+ "sourcePatterns": [
889
+ "portal-trainee-sessions-detail"
890
+ ],
891
+ "states": [
892
+ "default",
893
+ "documents",
894
+ "conversation"
895
+ ],
896
+ "parts": [
897
+ "record-table",
898
+ "workflow-fields",
899
+ "stat-strip"
900
+ ],
901
+ "files": [
902
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
903
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
904
+ "blocks/ux-pattern-examples/workflow-copy.ts",
905
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
906
+ "blocks/semantic-pattern-parts/workflow-parts.css",
907
+ "blocks/semantic-pattern-parts/product-parts.css"
908
+ ]
909
+ },
910
+ {
911
+ "id": "request-decision-01",
912
+ "category": "scheduling",
913
+ "title": {
914
+ "en": "Request decision",
915
+ "ko": "요청 수락과 거절",
916
+ "ar": "قرار الطلب"
917
+ },
918
+ "description": {
919
+ "en": "Search and filter records, inspect details and recover from an empty result.",
920
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
921
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
922
+ },
923
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
924
+ "exportName": "RequestDecisionExample",
925
+ "sourcePattern": "portal-mentor-requests-detail",
926
+ "sourcePatterns": [
927
+ "portal-mentor-requests-detail"
928
+ ],
929
+ "states": [
930
+ "default",
931
+ "accepted",
932
+ "declined"
933
+ ],
934
+ "parts": [
935
+ "record-table",
936
+ "workflow-fields",
937
+ "stat-strip"
938
+ ],
939
+ "files": [
940
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
941
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
942
+ "blocks/ux-pattern-examples/workflow-copy.ts",
943
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
944
+ "blocks/semantic-pattern-parts/workflow-parts.css",
945
+ "blocks/semantic-pattern-parts/product-parts.css"
946
+ ]
947
+ },
948
+ {
949
+ "id": "connectivity-check-01",
950
+ "category": "scheduling",
951
+ "title": {
952
+ "en": "Connectivity pre-check",
953
+ "ko": "연결 사전 점검",
954
+ "ar": "فحص الاتصال"
955
+ },
956
+ "description": {
957
+ "en": "Per-item pass/fail, failure recovery and completion gating. No real device check is performed.",
958
+ "ko": "항목별 통과·실패·복구 흐름입니다. 실제 기기 검사는 수행하지 않습니다.",
959
+ "ar": "نجاح وفشل واسترداد لكل بند. لا يتم فحص جهاز فعلي."
960
+ },
961
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
962
+ "exportName": "ConnectivityCheckExample",
963
+ "sourcePattern": "portal-trainee-sessions-detail-precheck",
964
+ "sourcePatterns": [
965
+ "portal-trainee-sessions-detail-precheck"
966
+ ],
967
+ "states": [
968
+ "default",
969
+ "failed",
970
+ "complete"
971
+ ],
972
+ "parts": [
973
+ "step-checklist",
974
+ "stat-strip"
975
+ ],
976
+ "files": [
977
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
978
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
979
+ "blocks/ux-pattern-examples/workflow-copy.ts",
980
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
981
+ "blocks/semantic-pattern-parts/workflow-parts.css",
982
+ "blocks/semantic-pattern-parts/product-parts.css"
983
+ ]
984
+ },
985
+ {
986
+ "id": "session-feedback-01",
987
+ "category": "scheduling",
988
+ "title": {
989
+ "en": "Session feedback",
990
+ "ko": "세션 피드백",
991
+ "ar": "تقييم الجلسة"
992
+ },
993
+ "description": {
994
+ "en": "Rate four dimensions with an optional comment and live average.",
995
+ "ko": "네 가지 항목 평가·의견·실시간 평균을 보여줍니다.",
996
+ "ar": "قيّم أربعة أبعاد مع تعليق اختياري ومتوسط مباشر."
997
+ },
998
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
999
+ "exportName": "SessionFeedbackExample",
1000
+ "sourcePattern": "portal-trainee-sessions-detail-feedback",
1001
+ "sourcePatterns": [
1002
+ "portal-trainee-sessions-detail-feedback"
1003
+ ],
1004
+ "states": [
1005
+ "default",
1006
+ "complete"
1007
+ ],
1008
+ "parts": [
1009
+ "rating-fields",
1010
+ "stat-strip"
1011
+ ],
1012
+ "files": [
1013
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1014
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1015
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1016
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1017
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1018
+ "blocks/semantic-pattern-parts/product-parts.css"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "id": "structured-assessment-01",
1023
+ "category": "scheduling",
1024
+ "title": {
1025
+ "en": "Structured assessment",
1026
+ "ko": "구조화된 평가",
1027
+ "ar": "تقييم منظم"
1028
+ },
1029
+ "description": {
1030
+ "en": "Five scores, supervision level, detailed feedback, recommendations and draft.",
1031
+ "ko": "5개 점수·지도 수준·상세 피드백·권고·임시 저장 흐름입니다.",
1032
+ "ar": "خمس درجات ومستوى إشراف وملاحظات وتوصيات ومسودة."
1033
+ },
1034
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1035
+ "exportName": "StructuredAssessmentExample",
1036
+ "sourcePattern": "portal-mentor-sessions-detail-assess",
1037
+ "sourcePatterns": [
1038
+ "portal-mentor-sessions-detail-assess"
1039
+ ],
1040
+ "states": [
1041
+ "default",
1042
+ "complete"
1043
+ ],
1044
+ "parts": [
1045
+ "rating-fields",
1046
+ "stat-strip"
1047
+ ],
1048
+ "files": [
1049
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1050
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1051
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1052
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1053
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1054
+ "blocks/semantic-pattern-parts/product-parts.css"
1055
+ ]
1056
+ },
1057
+ {
1058
+ "id": "verification-queue-01",
1059
+ "category": "operations",
1060
+ "title": {
1061
+ "en": "Verification queue",
1062
+ "ko": "인증 검토 대기열",
1063
+ "ar": "قائمة التحقق"
1064
+ },
1065
+ "description": {
1066
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1067
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1068
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1069
+ },
1070
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1071
+ "exportName": "VerificationQueueExample",
1072
+ "sourcePattern": "admin-onboarding",
1073
+ "sourcePatterns": [
1074
+ "admin-onboarding"
1075
+ ],
1076
+ "states": [
1077
+ "default",
1078
+ "empty",
1079
+ "load-error"
1080
+ ],
1081
+ "parts": [
1082
+ "record-table",
1083
+ "workflow-fields",
1084
+ "stat-strip"
1085
+ ],
1086
+ "files": [
1087
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1088
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1089
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1090
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1091
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1092
+ "blocks/semantic-pattern-parts/product-parts.css"
1093
+ ]
1094
+ },
1095
+ {
1096
+ "id": "verification-checklist-01",
1097
+ "category": "operations",
1098
+ "title": {
1099
+ "en": "Verification checklist",
1100
+ "ko": "인증 검토 체크리스트",
1101
+ "ar": "قائمة فحص التحقق"
1102
+ },
1103
+ "description": {
1104
+ "en": "Review evidence and notes; final activation waits for prerequisite checks.",
1105
+ "ko": "증빙·메모를 검토하며 선행 확인 후 마지막 활성화가 가능합니다.",
1106
+ "ar": "راجع الأدلة والملاحظات قبل خطوة التفعيل النهائية."
1107
+ },
1108
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1109
+ "exportName": "VerificationChecklistExample",
1110
+ "sourcePattern": "admin-onboarding-detail",
1111
+ "sourcePatterns": [
1112
+ "admin-onboarding-detail"
1113
+ ],
1114
+ "states": [
1115
+ "default",
1116
+ "failed",
1117
+ "complete"
1118
+ ],
1119
+ "parts": [
1120
+ "step-checklist",
1121
+ "stat-strip"
1122
+ ],
1123
+ "files": [
1124
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1125
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1126
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1127
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1128
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1129
+ "blocks/semantic-pattern-parts/product-parts.css"
1130
+ ]
1131
+ },
1132
+ {
1133
+ "id": "closure-queue-01",
1134
+ "category": "operations",
1135
+ "title": {
1136
+ "en": "Completion queue",
1137
+ "ko": "완료 처리 대기열",
1138
+ "ar": "قائمة الإكمال"
1139
+ },
1140
+ "description": {
1141
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1142
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1143
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1144
+ },
1145
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1146
+ "exportName": "ClosureQueueExample",
1147
+ "sourcePattern": "admin-closures",
1148
+ "sourcePatterns": [
1149
+ "admin-closures"
1150
+ ],
1151
+ "states": [
1152
+ "default",
1153
+ "empty",
1154
+ "load-error"
1155
+ ],
1156
+ "parts": [
1157
+ "record-table",
1158
+ "workflow-fields",
1159
+ "stat-strip"
1160
+ ],
1161
+ "files": [
1162
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1163
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1164
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1165
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1166
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1167
+ "blocks/semantic-pattern-parts/product-parts.css"
1168
+ ]
1169
+ },
1170
+ {
1171
+ "id": "matching-escalations-01",
1172
+ "category": "operations",
1173
+ "title": {
1174
+ "en": "Manual matching",
1175
+ "ko": "수동 매칭",
1176
+ "ar": "المطابقة اليدوية"
1177
+ },
1178
+ "description": {
1179
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1180
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1181
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1182
+ },
1183
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1184
+ "exportName": "MatchingEscalationsExample",
1185
+ "sourcePattern": "admin-escalations",
1186
+ "sourcePatterns": [
1187
+ "admin-escalations"
1188
+ ],
1189
+ "states": [
1190
+ "default",
1191
+ "empty",
1192
+ "load-error"
1193
+ ],
1194
+ "parts": [
1195
+ "record-table",
1196
+ "workflow-fields",
1197
+ "stat-strip"
1198
+ ],
1199
+ "files": [
1200
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1201
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1202
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1203
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1204
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1205
+ "blocks/semantic-pattern-parts/product-parts.css"
1206
+ ]
1207
+ },
1208
+ {
1209
+ "id": "device-monitoring-01",
1210
+ "category": "operations",
1211
+ "title": {
1212
+ "en": "Device monitoring",
1213
+ "ko": "기기 모니터링",
1214
+ "ar": "مراقبة الأجهزة"
1215
+ },
1216
+ "description": {
1217
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1218
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1219
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1220
+ },
1221
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1222
+ "exportName": "DeviceMonitoringExample",
1223
+ "sourcePattern": "admin-devices",
1224
+ "sourcePatterns": [
1225
+ "admin-devices"
1226
+ ],
1227
+ "states": [
1228
+ "default",
1229
+ "empty",
1230
+ "load-error"
1231
+ ],
1232
+ "parts": [
1233
+ "record-table",
1234
+ "workflow-fields",
1235
+ "stat-strip"
1236
+ ],
1237
+ "files": [
1238
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1239
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1240
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1241
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1242
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1243
+ "blocks/semantic-pattern-parts/product-parts.css"
1244
+ ]
1245
+ },
1246
+ {
1247
+ "id": "provider-connections-01",
1248
+ "category": "operations",
1249
+ "title": {
1250
+ "en": "Provider connections",
1251
+ "ko": "제공사 연결",
1252
+ "ar": "اتصالات المزودين"
1253
+ },
1254
+ "description": {
1255
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1256
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1257
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1258
+ },
1259
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1260
+ "exportName": "ProviderConnectionsExample",
1261
+ "sourcePattern": "admin-providers",
1262
+ "sourcePatterns": [
1263
+ "admin-providers"
1264
+ ],
1265
+ "states": [
1266
+ "default",
1267
+ "empty",
1268
+ "load-error"
1269
+ ],
1270
+ "parts": [
1271
+ "record-table",
1272
+ "workflow-fields",
1273
+ "stat-strip"
1274
+ ],
1275
+ "files": [
1276
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1277
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1278
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1279
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1280
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1281
+ "blocks/semantic-pattern-parts/product-parts.css"
1282
+ ]
1283
+ },
1284
+ {
1285
+ "id": "incident-tracking-01",
1286
+ "category": "operations",
1287
+ "title": {
1288
+ "en": "Incident tracking",
1289
+ "ko": "이슈 추적",
1290
+ "ar": "تتبع الحوادث"
1291
+ },
1292
+ "description": {
1293
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1294
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1295
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1296
+ },
1297
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1298
+ "exportName": "IncidentTrackingExample",
1299
+ "sourcePattern": "admin-incidents",
1300
+ "sourcePatterns": [
1301
+ "admin-incidents"
1302
+ ],
1303
+ "states": [
1304
+ "default",
1305
+ "empty",
1306
+ "load-error"
1307
+ ],
1308
+ "parts": [
1309
+ "record-table",
1310
+ "workflow-fields",
1311
+ "stat-strip"
1312
+ ],
1313
+ "files": [
1314
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1315
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1316
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1317
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1318
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1319
+ "blocks/semantic-pattern-parts/product-parts.css"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "id": "audit-log-01",
1324
+ "category": "operations",
1325
+ "title": {
1326
+ "en": "Audit trail",
1327
+ "ko": "변경 이력",
1328
+ "ar": "سجل التدقيق"
1329
+ },
1330
+ "description": {
1331
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1332
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1333
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1334
+ },
1335
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1336
+ "exportName": "AuditLogExample",
1337
+ "sourcePattern": "admin-audit",
1338
+ "sourcePatterns": [
1339
+ "admin-audit"
1340
+ ],
1341
+ "states": [
1342
+ "default",
1343
+ "empty",
1344
+ "load-error"
1345
+ ],
1346
+ "parts": [
1347
+ "record-table",
1348
+ "workflow-fields",
1349
+ "stat-strip"
1350
+ ],
1351
+ "files": [
1352
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1353
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1354
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1355
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1356
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1357
+ "blocks/semantic-pattern-parts/product-parts.css"
1358
+ ]
1359
+ },
1360
+ {
1361
+ "id": "subscriptions-01",
1362
+ "category": "billing",
1363
+ "title": {
1364
+ "en": "Subscriptions",
1365
+ "ko": "구독 목록",
1366
+ "ar": "الاشتراكات"
1367
+ },
1368
+ "description": {
1369
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1370
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1371
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1372
+ },
1373
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1374
+ "exportName": "SubscriptionsExample",
1375
+ "sourcePattern": "admin-subscriptions",
1376
+ "sourcePatterns": [
1377
+ "admin-subscriptions"
1378
+ ],
1379
+ "states": [
1380
+ "default",
1381
+ "empty",
1382
+ "load-error"
1383
+ ],
1384
+ "parts": [
1385
+ "record-table",
1386
+ "workflow-fields",
1387
+ "stat-strip"
1388
+ ],
1389
+ "files": [
1390
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1391
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1392
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1393
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1394
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1395
+ "blocks/semantic-pattern-parts/product-parts.css"
1396
+ ]
1397
+ },
1398
+ {
1399
+ "id": "subscription-create-01",
1400
+ "category": "billing",
1401
+ "title": {
1402
+ "en": "Create subscription",
1403
+ "ko": "구독 생성",
1404
+ "ar": "إنشاء اشتراك"
1405
+ },
1406
+ "description": {
1407
+ "en": "Complete the fields, inspect validation and review the local result.",
1408
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
1409
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
1410
+ },
1411
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1412
+ "exportName": "SubscriptionCreateExample",
1413
+ "sourcePattern": "admin-subscriptions-new",
1414
+ "sourcePatterns": [
1415
+ "admin-subscriptions-new"
1416
+ ],
1417
+ "states": [
1418
+ "default",
1419
+ "validation",
1420
+ "success"
1421
+ ],
1422
+ "parts": [
1423
+ "workflow-fields",
1424
+ "stat-strip"
1425
+ ],
1426
+ "files": [
1427
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1428
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1429
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1430
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1431
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1432
+ "blocks/semantic-pattern-parts/product-parts.css"
1433
+ ]
1434
+ },
1435
+ {
1436
+ "id": "credit-allocation-01",
1437
+ "category": "billing",
1438
+ "title": {
1439
+ "en": "Credit allocation",
1440
+ "ko": "크레딧 배분",
1441
+ "ar": "توزيع الرصيد"
1442
+ },
1443
+ "description": {
1444
+ "en": "Allocate a shared pool across people with an overspend guard and running totals.",
1445
+ "ko": "공유 잔액을 배분하며 초과 배분 방지·합계를 확인합니다.",
1446
+ "ar": "وزّع الرصيد المشترك مع منع التجاوز وإجماليات مباشرة."
1447
+ },
1448
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1449
+ "exportName": "CreditAllocationExample",
1450
+ "sourcePattern": "admin-subscriptions-detail-allocate",
1451
+ "sourcePatterns": [
1452
+ "admin-subscriptions-detail-allocate"
1453
+ ],
1454
+ "states": [
1455
+ "default",
1456
+ "over-budget",
1457
+ "complete"
1458
+ ],
1459
+ "parts": [
1460
+ "workflow-fields",
1461
+ "stat-strip"
1462
+ ],
1463
+ "files": [
1464
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1465
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1466
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1467
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1468
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1469
+ "blocks/semantic-pattern-parts/product-parts.css"
1470
+ ]
1471
+ },
1472
+ {
1473
+ "id": "payment-cycle-01",
1474
+ "category": "billing",
1475
+ "title": {
1476
+ "en": "Payment cycle",
1477
+ "ko": "지급 처리",
1478
+ "ar": "دورة الدفع"
1479
+ },
1480
+ "description": {
1481
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1482
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1483
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1484
+ },
1485
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1486
+ "exportName": "PaymentCycleExample",
1487
+ "sourcePattern": "admin-payments",
1488
+ "sourcePatterns": [
1489
+ "admin-payments"
1490
+ ],
1491
+ "states": [
1492
+ "default",
1493
+ "empty",
1494
+ "load-error"
1495
+ ],
1496
+ "parts": [
1497
+ "record-table",
1498
+ "workflow-fields",
1499
+ "stat-strip"
1500
+ ],
1501
+ "files": [
1502
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1503
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1504
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1505
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1506
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1507
+ "blocks/semantic-pattern-parts/product-parts.css"
1508
+ ]
1509
+ },
1510
+ {
1511
+ "id": "credit-transactions-01",
1512
+ "category": "billing",
1513
+ "title": {
1514
+ "en": "Credit transactions",
1515
+ "ko": "크레딧 거래 이력",
1516
+ "ar": "معاملات الرصيد"
1517
+ },
1518
+ "description": {
1519
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1520
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1521
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1522
+ },
1523
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1524
+ "exportName": "CreditTransactionsExample",
1525
+ "sourcePattern": "admin-transactions",
1526
+ "sourcePatterns": [
1527
+ "admin-transactions"
1528
+ ],
1529
+ "states": [
1530
+ "default",
1531
+ "empty",
1532
+ "load-error"
1533
+ ],
1534
+ "parts": [
1535
+ "record-table",
1536
+ "workflow-fields",
1537
+ "stat-strip"
1538
+ ],
1539
+ "files": [
1540
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1541
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1542
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1543
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1544
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1545
+ "blocks/semantic-pattern-parts/product-parts.css"
1546
+ ]
1547
+ },
1548
+ {
1549
+ "id": "invoices-01",
1550
+ "category": "billing",
1551
+ "title": {
1552
+ "en": "Invoices and receipts",
1553
+ "ko": "청구서와 영수증",
1554
+ "ar": "الفواتير والإيصالات"
1555
+ },
1556
+ "description": {
1557
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1558
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1559
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1560
+ },
1561
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1562
+ "exportName": "InvoicesExample",
1563
+ "sourcePattern": "portal-sponsor-billing",
1564
+ "sourcePatterns": [
1565
+ "portal-sponsor-billing"
1566
+ ],
1567
+ "states": [
1568
+ "default",
1569
+ "empty",
1570
+ "load-error"
1571
+ ],
1572
+ "parts": [
1573
+ "record-table",
1574
+ "workflow-fields",
1575
+ "stat-strip"
1576
+ ],
1577
+ "files": [
1578
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1579
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1580
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1581
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1582
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1583
+ "blocks/semantic-pattern-parts/product-parts.css"
1584
+ ]
1585
+ },
1586
+ {
1587
+ "id": "team-allocations-01",
1588
+ "category": "directory",
1589
+ "title": {
1590
+ "en": "Team allocations",
1591
+ "ko": "팀 배분 현황",
1592
+ "ar": "توزيعات الفريق"
1593
+ },
1594
+ "description": {
1595
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1596
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1597
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1598
+ },
1599
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1600
+ "exportName": "TeamAllocationsExample",
1601
+ "sourcePattern": "portal-sponsor-trainees",
1602
+ "sourcePatterns": [
1603
+ "portal-sponsor-trainees"
1604
+ ],
1605
+ "states": [
1606
+ "default",
1607
+ "empty",
1608
+ "load-error"
1609
+ ],
1610
+ "parts": [
1611
+ "record-table",
1612
+ "workflow-fields",
1613
+ "stat-strip"
1614
+ ],
1615
+ "files": [
1616
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1617
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1618
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1619
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1620
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1621
+ "blocks/semantic-pattern-parts/product-parts.css"
1622
+ ]
1623
+ },
1624
+ {
1625
+ "id": "personal-overview-01",
1626
+ "category": "dashboard",
1627
+ "title": {
1628
+ "en": "Personal overview",
1629
+ "ko": "개인 현황",
1630
+ "ar": "نظرة شخصية"
1631
+ },
1632
+ "description": {
1633
+ "en": "Summary measures, trends and linked records for the current task.",
1634
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1635
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1636
+ },
1637
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1638
+ "exportName": "PersonalOverviewExample",
1639
+ "sourcePattern": "portal-trainee",
1640
+ "sourcePatterns": [
1641
+ "portal-trainee"
1642
+ ],
1643
+ "states": [
1644
+ "default",
1645
+ "empty",
1646
+ "low-balance"
1647
+ ],
1648
+ "parts": [
1649
+ "stat-strip",
1650
+ "trend-summary",
1651
+ "record-table"
1652
+ ],
1653
+ "files": [
1654
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1655
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1656
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1657
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1658
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1659
+ "blocks/semantic-pattern-parts/product-parts.css"
1660
+ ]
1661
+ },
1662
+ {
1663
+ "id": "expert-overview-01",
1664
+ "category": "dashboard",
1665
+ "title": {
1666
+ "en": "Requests and schedule overview",
1667
+ "ko": "요청과 일정 현황",
1668
+ "ar": "نظرة الطلبات والجدول"
1669
+ },
1670
+ "description": {
1671
+ "en": "Summary measures, trends and linked records for the current task.",
1672
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1673
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1674
+ },
1675
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1676
+ "exportName": "ExpertOverviewExample",
1677
+ "sourcePattern": "portal-mentor",
1678
+ "sourcePatterns": [
1679
+ "portal-mentor"
1680
+ ],
1681
+ "states": [
1682
+ "default",
1683
+ "empty"
1684
+ ],
1685
+ "parts": [
1686
+ "stat-strip",
1687
+ "trend-summary",
1688
+ "record-table"
1689
+ ],
1690
+ "files": [
1691
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1692
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1693
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1694
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1695
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1696
+ "blocks/semantic-pattern-parts/product-parts.css"
1697
+ ]
1698
+ },
1699
+ {
1700
+ "id": "subscription-detail-01",
1701
+ "category": "dashboard",
1702
+ "title": {
1703
+ "en": "Subscription overview",
1704
+ "ko": "구독 현황",
1705
+ "ar": "نظرة الاشتراك"
1706
+ },
1707
+ "description": {
1708
+ "en": "Summary measures, trends and linked records for the current task.",
1709
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1710
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1711
+ },
1712
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1713
+ "exportName": "SubscriptionDetailExample",
1714
+ "sourcePattern": "admin-subscriptions-detail",
1715
+ "sourcePatterns": [
1716
+ "admin-subscriptions-detail",
1717
+ "portal-sponsor"
1718
+ ],
1719
+ "states": [
1720
+ "default",
1721
+ "empty",
1722
+ "low-balance"
1723
+ ],
1724
+ "parts": [
1725
+ "stat-strip",
1726
+ "trend-summary",
1727
+ "record-table"
1728
+ ],
1729
+ "files": [
1730
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1731
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1732
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1733
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1734
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1735
+ "blocks/semantic-pattern-parts/product-parts.css"
1736
+ ]
1737
+ },
1738
+ {
1739
+ "id": "credit-balance-01",
1740
+ "category": "dashboard",
1741
+ "title": {
1742
+ "en": "Credit balance and history",
1743
+ "ko": "크레딧 잔액과 내역",
1744
+ "ar": "الرصيد والسجل"
1745
+ },
1746
+ "description": {
1747
+ "en": "Summary measures, trends and linked records for the current task.",
1748
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1749
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1750
+ },
1751
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1752
+ "exportName": "CreditBalanceExample",
1753
+ "sourcePattern": "portal-trainee-credits",
1754
+ "sourcePatterns": [
1755
+ "portal-trainee-credits"
1756
+ ],
1757
+ "states": [
1758
+ "default",
1759
+ "empty",
1760
+ "low-balance"
1761
+ ],
1762
+ "parts": [
1763
+ "stat-strip",
1764
+ "trend-summary",
1765
+ "record-table"
1766
+ ],
1767
+ "files": [
1768
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1769
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1770
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1771
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1772
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1773
+ "blocks/semantic-pattern-parts/product-parts.css"
1774
+ ]
1775
+ },
1776
+ {
1777
+ "id": "skill-progression-01",
1778
+ "category": "dashboard",
1779
+ "title": {
1780
+ "en": "Progress and milestones",
1781
+ "ko": "성장과 마일스톤",
1782
+ "ar": "التقدم والمراحل"
1783
+ },
1784
+ "description": {
1785
+ "en": "Summary measures, trends and linked records for the current task.",
1786
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1787
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1788
+ },
1789
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1790
+ "exportName": "SkillProgressionExample",
1791
+ "sourcePattern": "portal-trainee-competency",
1792
+ "sourcePatterns": [
1793
+ "portal-trainee-competency"
1794
+ ],
1795
+ "states": [
1796
+ "default",
1797
+ "empty"
1798
+ ],
1799
+ "parts": [
1800
+ "stat-strip",
1801
+ "trend-summary",
1802
+ "record-table"
1803
+ ],
1804
+ "files": [
1805
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1806
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1807
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1808
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1809
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1810
+ "blocks/semantic-pattern-parts/product-parts.css"
1811
+ ]
1812
+ },
1813
+ {
1814
+ "id": "analytics-01",
1815
+ "category": "dashboard",
1816
+ "title": {
1817
+ "en": "Analytics and risk signals",
1818
+ "ko": "분석과 위험 신호",
1819
+ "ar": "التحليلات وإشارات المخاطر"
1820
+ },
1821
+ "description": {
1822
+ "en": "Summary measures, trends and linked records for the current task.",
1823
+ "ko": "현재 작업의 요약·추세·연결된 내역을 보여줍니다.",
1824
+ "ar": "مقاييس موجزة واتجاهات وسجلات مرتبطة بالمهمة الحالية."
1825
+ },
1826
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1827
+ "exportName": "AnalyticsExample",
1828
+ "sourcePattern": "admin-analytics",
1829
+ "sourcePatterns": [
1830
+ "admin-analytics"
1831
+ ],
1832
+ "states": [
1833
+ "default",
1834
+ "empty"
1835
+ ],
1836
+ "parts": [
1837
+ "stat-strip",
1838
+ "trend-summary",
1839
+ "record-table"
1840
+ ],
1841
+ "files": [
1842
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1843
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1844
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1845
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1846
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1847
+ "blocks/semantic-pattern-parts/product-parts.css"
1848
+ ]
1849
+ },
1850
+ {
1851
+ "id": "broadcast-management-01",
1852
+ "category": "media",
1853
+ "title": {
1854
+ "en": "Broadcast management",
1855
+ "ko": "방송 관리",
1856
+ "ar": "إدارة البث"
1857
+ },
1858
+ "description": {
1859
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1860
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1861
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1862
+ },
1863
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1864
+ "exportName": "BroadcastManagementExample",
1865
+ "sourcePattern": "admin-broadcasts",
1866
+ "sourcePatterns": [
1867
+ "admin-broadcasts"
1868
+ ],
1869
+ "states": [
1870
+ "default",
1871
+ "empty",
1872
+ "load-error"
1873
+ ],
1874
+ "parts": [
1875
+ "record-table",
1876
+ "workflow-fields",
1877
+ "stat-strip"
1878
+ ],
1879
+ "files": [
1880
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1881
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1882
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1883
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1884
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1885
+ "blocks/semantic-pattern-parts/product-parts.css"
1886
+ ]
1887
+ },
1888
+ {
1889
+ "id": "broadcast-schedule-01",
1890
+ "category": "media",
1891
+ "title": {
1892
+ "en": "Schedule a broadcast",
1893
+ "ko": "방송 일정 만들기",
1894
+ "ar": "جدولة بث"
1895
+ },
1896
+ "description": {
1897
+ "en": "Complete the fields, inspect validation and review the local result.",
1898
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
1899
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
1900
+ },
1901
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1902
+ "exportName": "BroadcastScheduleExample",
1903
+ "sourcePattern": "admin-broadcasts-new",
1904
+ "sourcePatterns": [
1905
+ "admin-broadcasts-new"
1906
+ ],
1907
+ "states": [
1908
+ "default",
1909
+ "validation",
1910
+ "success"
1911
+ ],
1912
+ "parts": [
1913
+ "workflow-fields",
1914
+ "stat-strip"
1915
+ ],
1916
+ "files": [
1917
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1918
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1919
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1920
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1921
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1922
+ "blocks/semantic-pattern-parts/product-parts.css"
1923
+ ]
1924
+ },
1925
+ {
1926
+ "id": "media-library-01",
1927
+ "category": "media",
1928
+ "title": {
1929
+ "en": "Media library",
1930
+ "ko": "미디어 라이브러리",
1931
+ "ar": "مكتبة الوسائط"
1932
+ },
1933
+ "description": {
1934
+ "en": "Search and filter records, inspect details and recover from an empty result.",
1935
+ "ko": "목록 검색·필터·상세 확인·빈 결과 복구 흐름을 살펴보세요.",
1936
+ "ar": "ابحث وصفّ السجلات وافتح التفاصيل وتعافَ من النتائج الفارغة."
1937
+ },
1938
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1939
+ "exportName": "MediaLibraryExample",
1940
+ "sourcePattern": "portal-tv",
1941
+ "sourcePatterns": [
1942
+ "portal-tv"
1943
+ ],
1944
+ "states": [
1945
+ "default",
1946
+ "empty",
1947
+ "load-error"
1948
+ ],
1949
+ "parts": [
1950
+ "record-table",
1951
+ "workflow-fields",
1952
+ "stat-strip"
1953
+ ],
1954
+ "files": [
1955
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1956
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1957
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1958
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1959
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1960
+ "blocks/semantic-pattern-parts/product-parts.css"
1961
+ ]
1962
+ },
1963
+ {
1964
+ "id": "broadcast-viewer-01",
1965
+ "category": "media",
1966
+ "title": {
1967
+ "en": "Broadcast viewer",
1968
+ "ko": "방송 시청",
1969
+ "ar": "مشاهدة البث"
1970
+ },
1971
+ "description": {
1972
+ "en": "Receive-only viewing with scheduled reminders and ended states.",
1973
+ "ko": "예약 알림·종료 상태를 포함한 시청 전용 흐름입니다.",
1974
+ "ar": "مشاهدة فقط مع تذكيرات الجدولة وحالة الانتهاء."
1975
+ },
1976
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
1977
+ "exportName": "BroadcastViewerExample",
1978
+ "sourcePattern": "portal-tv-detail",
1979
+ "sourcePatterns": [
1980
+ "portal-tv-detail"
1981
+ ],
1982
+ "states": [
1983
+ "scheduled",
1984
+ "live",
1985
+ "ended"
1986
+ ],
1987
+ "parts": [
1988
+ "media-stage"
1989
+ ],
1990
+ "files": [
1991
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
1992
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
1993
+ "blocks/ux-pattern-examples/workflow-copy.ts",
1994
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
1995
+ "blocks/semantic-pattern-parts/workflow-parts.css",
1996
+ "blocks/semantic-pattern-parts/product-parts.css"
1997
+ ]
1998
+ },
1999
+ {
2000
+ "id": "live-session-01",
2001
+ "category": "media",
2002
+ "title": {
2003
+ "en": "Live collaboration",
2004
+ "ko": "실시간 협업",
2005
+ "ar": "التعاون المباشر"
2006
+ },
2007
+ "description": {
2008
+ "en": "Participants, microphone state, incident notes and connection recovery.",
2009
+ "ko": "참가자·마이크 상태·이슈 메모·연결 복구를 체험합니다.",
2010
+ "ar": "مشاركون وحالة الميكروفون وملاحظات الحوادث واسترداد الاتصال."
2011
+ },
2012
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
2013
+ "exportName": "LiveSessionExample",
2014
+ "sourcePattern": "portal-sessions-detail-live",
2015
+ "sourcePatterns": [
2016
+ "portal-sessions-detail-live"
2017
+ ],
2018
+ "states": [
2019
+ "live",
2020
+ "connection-lost",
2021
+ "ended"
2022
+ ],
2023
+ "parts": [
2024
+ "media-stage"
2025
+ ],
2026
+ "files": [
2027
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
2028
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
2029
+ "blocks/ux-pattern-examples/workflow-copy.ts",
2030
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
2031
+ "blocks/semantic-pattern-parts/workflow-parts.css",
2032
+ "blocks/semantic-pattern-parts/product-parts.css"
2033
+ ]
2034
+ },
2035
+ {
2036
+ "id": "article-library-01",
2037
+ "category": "content",
2038
+ "title": {
2039
+ "en": "Article library",
2040
+ "ko": "아티클 목록",
2041
+ "ar": "مكتبة المقالات"
2042
+ },
2043
+ "description": {
2044
+ "en": "Category filtering, featured content, reading and newsletter signup.",
2045
+ "ko": "카테고리 필터·추천 글·본문·뉴스레터 구독 흐름입니다.",
2046
+ "ar": "تصفية الفئات والمحتوى المميز والقراءة والاشتراك."
2047
+ },
2048
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
2049
+ "exportName": "ArticleLibraryExample",
2050
+ "sourcePattern": "marketing-blog",
2051
+ "sourcePatterns": [
2052
+ "marketing-blog"
2053
+ ],
2054
+ "states": [
2055
+ "default",
2056
+ "empty"
2057
+ ],
2058
+ "parts": [],
2059
+ "files": [
2060
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
2061
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
2062
+ "blocks/ux-pattern-examples/workflow-copy.ts",
2063
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
2064
+ "blocks/semantic-pattern-parts/workflow-parts.css",
2065
+ "blocks/semantic-pattern-parts/product-parts.css"
2066
+ ]
2067
+ },
2068
+ {
2069
+ "id": "product-introduction-01",
2070
+ "category": "content",
2071
+ "title": {
2072
+ "en": "Product introduction and FAQ",
2073
+ "ko": "제품 소개와 FAQ",
2074
+ "ar": "مقدمة المنتج والأسئلة"
2075
+ },
2076
+ "description": {
2077
+ "en": "Role-based features, proof points, FAQ disclosure and a next action.",
2078
+ "ko": "역할별 기능·근거·FAQ 펼치기·다음 행동으로 구성됩니다.",
2079
+ "ar": "ميزات حسب الدور ودلائل وأسئلة قابلة للتوسيع وخطوة تالية."
2080
+ },
2081
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
2082
+ "exportName": "ProductIntroductionExample",
2083
+ "sourcePattern": "marketing",
2084
+ "sourcePatterns": [
2085
+ "marketing"
2086
+ ],
2087
+ "states": [
2088
+ "default"
2089
+ ],
2090
+ "parts": [],
2091
+ "files": [
2092
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
2093
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
2094
+ "blocks/ux-pattern-examples/workflow-copy.ts",
2095
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
2096
+ "blocks/semantic-pattern-parts/workflow-parts.css",
2097
+ "blocks/semantic-pattern-parts/product-parts.css"
2098
+ ]
2099
+ },
2100
+ {
2101
+ "id": "contact-form-01",
2102
+ "category": "content",
2103
+ "title": {
2104
+ "en": "Contact and enquiry",
2105
+ "ko": "문의하기",
2106
+ "ar": "التواصل والاستفسار"
2107
+ },
2108
+ "description": {
2109
+ "en": "Complete the fields, inspect validation and review the local result.",
2110
+ "ko": "입력·검증·결과 확인을 체험하는 폼 흐름입니다.",
2111
+ "ar": "أكمل الحقول واختبر التحقق وراجع النتيجة المحلية."
2112
+ },
2113
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
2114
+ "exportName": "ContactFormExample",
2115
+ "sourcePattern": "marketing-contact",
2116
+ "sourcePatterns": [
2117
+ "marketing-contact"
2118
+ ],
2119
+ "states": [
2120
+ "default",
2121
+ "validation",
2122
+ "success"
2123
+ ],
2124
+ "parts": [
2125
+ "workflow-fields",
2126
+ "stat-strip"
2127
+ ],
2128
+ "files": [
2129
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
2130
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
2131
+ "blocks/ux-pattern-examples/workflow-copy.ts",
2132
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
2133
+ "blocks/semantic-pattern-parts/workflow-parts.css",
2134
+ "blocks/semantic-pattern-parts/product-parts.css"
2135
+ ]
2136
+ },
2137
+ {
2138
+ "id": "loading-recovery-01",
2139
+ "category": "system",
2140
+ "title": {
2141
+ "en": "Loading and recovery",
2142
+ "ko": "로딩과 오류 복구",
2143
+ "ar": "التحميل والاسترداد"
2144
+ },
2145
+ "description": {
2146
+ "en": "Loading, empty, missing-page and retryable error states.",
2147
+ "ko": "로딩·빈 상태·없는 페이지·재시도 가능한 오류를 보여줍니다.",
2148
+ "ar": "حالات تحميل وفراغ وصفحة مفقودة وخطأ قابل لإعادة المحاولة."
2149
+ },
2150
+ "source": "blocks/ux-pattern-examples/WorkflowExamples.tsx",
2151
+ "exportName": "LoadingRecoveryExample",
2152
+ "sourcePattern": "error",
2153
+ "sourcePatterns": [
2154
+ "error",
2155
+ "not-found",
2156
+ "loading",
2157
+ "portal-loading",
2158
+ "admin-loading"
2159
+ ],
2160
+ "states": [
2161
+ "loading",
2162
+ "empty",
2163
+ "not-found",
2164
+ "load-error"
2165
+ ],
2166
+ "parts": [],
2167
+ "files": [
2168
+ "blocks/ux-pattern-examples/WorkflowExample.tsx",
2169
+ "blocks/ux-pattern-examples/workflow-definitions.ts",
2170
+ "blocks/ux-pattern-examples/workflow-copy.ts",
2171
+ "blocks/semantic-pattern-parts/WorkflowParts.tsx",
2172
+ "blocks/semantic-pattern-parts/workflow-parts.css",
2173
+ "blocks/semantic-pattern-parts/product-parts.css"
2174
+ ]
2175
+ }
2176
+ ]
2177
+ }