@mytechtoday/augment-extensions 1.3.0 → 1.4.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 (232) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +105 -6
  3. package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
  4. package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
  5. package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
  6. package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
  7. package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
  8. package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
  9. package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
  10. package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
  11. package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
  12. package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
  13. package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
  14. package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
  15. package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
  16. package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
  17. package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
  18. package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
  19. package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
  20. package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
  21. package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
  22. package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
  23. package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
  24. package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
  25. package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
  26. package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
  27. package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
  28. package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
  29. package/augment-extensions/visual-design/CHANGELOG.md +132 -132
  30. package/augment-extensions/visual-design/README.md +255 -255
  31. package/augment-extensions/visual-design/__tests__/README.md +119 -119
  32. package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -172
  33. package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -214
  34. package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -157
  35. package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -156
  36. package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -156
  37. package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -157
  38. package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -156
  39. package/augment-extensions/visual-design/domains/other/os-application.ts +156 -156
  40. package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -158
  41. package/augment-extensions/visual-design/domains/other/web-app.ts +157 -157
  42. package/augment-extensions/visual-design/domains/other/website.ts +161 -161
  43. package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -156
  44. package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -506
  45. package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -615
  46. package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -531
  47. package/augment-extensions/visual-design/examples/README.md +97 -97
  48. package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -233
  49. package/augment-extensions/visual-design/examples/basic-usage.md +216 -216
  50. package/augment-extensions/visual-design/examples/domain-workflows.md +257 -257
  51. package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -247
  52. package/augment-extensions/visual-design/module.json +78 -78
  53. package/augment-extensions/visual-design/style-selector.ts +177 -177
  54. package/augment-extensions/visual-design/types.ts +302 -302
  55. package/augment-extensions/visual-design/visual-design-core.ts +469 -469
  56. package/augment-extensions/workflows/adr-support/README.md +227 -227
  57. package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -203
  58. package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -162
  59. package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -449
  60. package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -580
  61. package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -436
  62. package/augment-extensions/workflows/adr-support/module.json +112 -112
  63. package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -372
  64. package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -443
  65. package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -486
  66. package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -362
  67. package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -427
  68. package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -465
  69. package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -405
  70. package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -543
  71. package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -191
  72. package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -172
  73. package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -235
  74. package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -197
  75. package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -68
  76. package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -84
  77. package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
  78. package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
  79. package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
  80. package/cli/dist/commands/agent.d.ts +37 -0
  81. package/cli/dist/commands/agent.d.ts.map +1 -0
  82. package/cli/dist/commands/agent.js +222 -0
  83. package/cli/dist/commands/agent.js.map +1 -0
  84. package/cli/dist/commands/beads.d.ts +64 -0
  85. package/cli/dist/commands/beads.d.ts.map +1 -0
  86. package/cli/dist/commands/beads.js +377 -0
  87. package/cli/dist/commands/beads.js.map +1 -0
  88. package/cli/dist/commands/change.d.ts +54 -0
  89. package/cli/dist/commands/change.d.ts.map +1 -0
  90. package/cli/dist/commands/change.js +243 -0
  91. package/cli/dist/commands/change.js.map +1 -0
  92. package/cli/dist/commands/clean.d.ts +15 -0
  93. package/cli/dist/commands/clean.d.ts.map +1 -0
  94. package/cli/dist/commands/clean.js +63 -0
  95. package/cli/dist/commands/clean.js.map +1 -0
  96. package/cli/dist/commands/clone.d.ts +15 -0
  97. package/cli/dist/commands/clone.d.ts.map +1 -0
  98. package/cli/dist/commands/clone.js +49 -0
  99. package/cli/dist/commands/clone.js.map +1 -0
  100. package/cli/dist/commands/config.d.ts +33 -0
  101. package/cli/dist/commands/config.d.ts.map +1 -0
  102. package/cli/dist/commands/config.js +166 -0
  103. package/cli/dist/commands/config.js.map +1 -0
  104. package/cli/dist/commands/context.d.ts +38 -0
  105. package/cli/dist/commands/context.d.ts.map +1 -0
  106. package/cli/dist/commands/context.js +205 -0
  107. package/cli/dist/commands/context.js.map +1 -0
  108. package/cli/dist/commands/create.d.ts +18 -0
  109. package/cli/dist/commands/create.d.ts.map +1 -0
  110. package/cli/dist/commands/create.js +178 -0
  111. package/cli/dist/commands/create.js.map +1 -0
  112. package/cli/dist/commands/diff.d.ts +19 -0
  113. package/cli/dist/commands/diff.d.ts.map +1 -0
  114. package/cli/dist/commands/diff.js +104 -0
  115. package/cli/dist/commands/diff.js.map +1 -0
  116. package/cli/dist/commands/doctor.d.ts +14 -0
  117. package/cli/dist/commands/doctor.d.ts.map +1 -0
  118. package/cli/dist/commands/doctor.js +62 -0
  119. package/cli/dist/commands/doctor.js.map +1 -0
  120. package/cli/dist/commands/export.d.ts +28 -0
  121. package/cli/dist/commands/export.d.ts.map +1 -0
  122. package/cli/dist/commands/export.js +135 -0
  123. package/cli/dist/commands/export.js.map +1 -0
  124. package/cli/dist/commands/import.d.ts +23 -0
  125. package/cli/dist/commands/import.d.ts.map +1 -0
  126. package/cli/dist/commands/import.js +118 -0
  127. package/cli/dist/commands/import.js.map +1 -0
  128. package/cli/dist/commands/prompt.d.ts +45 -0
  129. package/cli/dist/commands/prompt.d.ts.map +1 -0
  130. package/cli/dist/commands/prompt.js +223 -0
  131. package/cli/dist/commands/prompt.js.map +1 -0
  132. package/cli/dist/commands/spec.d.ts +57 -0
  133. package/cli/dist/commands/spec.d.ts.map +1 -0
  134. package/cli/dist/commands/spec.js +279 -0
  135. package/cli/dist/commands/spec.js.map +1 -0
  136. package/cli/dist/commands/stats.d.ts +18 -0
  137. package/cli/dist/commands/stats.d.ts.map +1 -0
  138. package/cli/dist/commands/stats.js +85 -0
  139. package/cli/dist/commands/stats.js.map +1 -0
  140. package/cli/dist/commands/task.d.ts +65 -0
  141. package/cli/dist/commands/task.d.ts.map +1 -0
  142. package/cli/dist/commands/task.js +282 -0
  143. package/cli/dist/commands/task.js.map +1 -0
  144. package/cli/dist/commands/template.d.ts +17 -0
  145. package/cli/dist/commands/template.d.ts.map +1 -0
  146. package/cli/dist/commands/template.js +55 -0
  147. package/cli/dist/commands/template.js.map +1 -0
  148. package/cli/dist/utils/agent-config.d.ts +129 -0
  149. package/cli/dist/utils/agent-config.d.ts.map +1 -0
  150. package/cli/dist/utils/agent-config.js +297 -0
  151. package/cli/dist/utils/agent-config.js.map +1 -0
  152. package/cli/dist/utils/auto-sync.js +19 -19
  153. package/cli/dist/utils/beads-graph.d.ts +17 -0
  154. package/cli/dist/utils/beads-graph.d.ts.map +1 -0
  155. package/cli/dist/utils/beads-graph.js +150 -0
  156. package/cli/dist/utils/beads-graph.js.map +1 -0
  157. package/cli/dist/utils/beads-integration.d.ts +112 -0
  158. package/cli/dist/utils/beads-integration.d.ts.map +1 -0
  159. package/cli/dist/utils/beads-integration.js +312 -0
  160. package/cli/dist/utils/beads-integration.js.map +1 -0
  161. package/cli/dist/utils/beads-reporter.d.ts +17 -0
  162. package/cli/dist/utils/beads-reporter.d.ts.map +1 -0
  163. package/cli/dist/utils/beads-reporter.js +160 -0
  164. package/cli/dist/utils/beads-reporter.js.map +1 -0
  165. package/cli/dist/utils/cache-manager.d.ts +55 -0
  166. package/cli/dist/utils/cache-manager.d.ts.map +1 -0
  167. package/cli/dist/utils/cache-manager.js +150 -0
  168. package/cli/dist/utils/cache-manager.js.map +1 -0
  169. package/cli/dist/utils/change-manager.d.ts +70 -0
  170. package/cli/dist/utils/change-manager.d.ts.map +1 -0
  171. package/cli/dist/utils/change-manager.js +412 -0
  172. package/cli/dist/utils/change-manager.js.map +1 -0
  173. package/cli/dist/utils/config-manager-enhanced.d.ts +66 -0
  174. package/cli/dist/utils/config-manager-enhanced.d.ts.map +1 -0
  175. package/cli/dist/utils/config-manager-enhanced.js +77 -0
  176. package/cli/dist/utils/config-manager-enhanced.js.map +1 -0
  177. package/cli/dist/utils/context-manager.d.ts +96 -0
  178. package/cli/dist/utils/context-manager.d.ts.map +1 -0
  179. package/cli/dist/utils/context-manager.js +258 -0
  180. package/cli/dist/utils/context-manager.js.map +1 -0
  181. package/cli/dist/utils/diff-engine.d.ts +78 -0
  182. package/cli/dist/utils/diff-engine.d.ts.map +1 -0
  183. package/cli/dist/utils/diff-engine.js +233 -0
  184. package/cli/dist/utils/diff-engine.js.map +1 -0
  185. package/cli/dist/utils/export-system.d.ts +101 -0
  186. package/cli/dist/utils/export-system.d.ts.map +1 -0
  187. package/cli/dist/utils/export-system.js +289 -0
  188. package/cli/dist/utils/export-system.js.map +1 -0
  189. package/cli/dist/utils/health-checker.d.ts +66 -0
  190. package/cli/dist/utils/health-checker.d.ts.map +1 -0
  191. package/cli/dist/utils/health-checker.js +285 -0
  192. package/cli/dist/utils/health-checker.js.map +1 -0
  193. package/cli/dist/utils/import-system.d.ts +74 -0
  194. package/cli/dist/utils/import-system.d.ts.map +1 -0
  195. package/cli/dist/utils/import-system.js +317 -0
  196. package/cli/dist/utils/import-system.js.map +1 -0
  197. package/cli/dist/utils/module-cloner.d.ts +40 -0
  198. package/cli/dist/utils/module-cloner.d.ts.map +1 -0
  199. package/cli/dist/utils/module-cloner.js +136 -0
  200. package/cli/dist/utils/module-cloner.js.map +1 -0
  201. package/cli/dist/utils/prompt-manager.d.ts +90 -0
  202. package/cli/dist/utils/prompt-manager.d.ts.map +1 -0
  203. package/cli/dist/utils/prompt-manager.js +302 -0
  204. package/cli/dist/utils/prompt-manager.js.map +1 -0
  205. package/cli/dist/utils/spec-manager.d.ts +65 -0
  206. package/cli/dist/utils/spec-manager.d.ts.map +1 -0
  207. package/cli/dist/utils/spec-manager.js +329 -0
  208. package/cli/dist/utils/spec-manager.js.map +1 -0
  209. package/cli/dist/utils/stats-collector.d.ts +74 -0
  210. package/cli/dist/utils/stats-collector.d.ts.map +1 -0
  211. package/cli/dist/utils/stats-collector.js +164 -0
  212. package/cli/dist/utils/stats-collector.js.map +1 -0
  213. package/cli/dist/utils/template-engine.d.ts +47 -0
  214. package/cli/dist/utils/template-engine.d.ts.map +1 -0
  215. package/cli/dist/utils/template-engine.js +204 -0
  216. package/cli/dist/utils/template-engine.js.map +1 -0
  217. package/package.json +12 -3
  218. package/augment-extensions/workflows/openspec/README.md +0 -96
  219. package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
  220. package/augment-extensions/workflows/openspec/module.json +0 -54
  221. package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
  222. package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
  223. package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
  224. package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
  225. package/cli/dist/utils/__tests__/adr-validator.example.d.ts +0 -6
  226. package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +0 -1
  227. package/cli/dist/utils/__tests__/adr-validator.example.js +0 -148
  228. package/cli/dist/utils/__tests__/adr-validator.example.js.map +0 -1
  229. package/cli/dist/utils/adr-validator.d.ts +0 -65
  230. package/cli/dist/utils/adr-validator.d.ts.map +0 -1
  231. package/cli/dist/utils/adr-validator.js +0 -203
  232. package/cli/dist/utils/adr-validator.js.map +0 -1
@@ -1,506 +1,506 @@
1
- /**
2
- * Amazon Cloudscape Design System
3
- *
4
- * Cloudscape (2020-present) is Amazon's open-source design system for building
5
- * intuitive, efficient, and accessible web applications. Originally developed for
6
- * AWS Console, it emphasizes enterprise dashboards, data-dense interfaces, and
7
- * component-heavy patterns with Amazon Ember typography.
8
- *
9
- * Key characteristics:
10
- * - Enterprise-focused: Optimized for complex, data-rich applications
11
- * - Component-heavy: Extensive library of pre-built UI components
12
- * - Accessibility-first: WCAG 2.1 Level AA compliance built-in
13
- * - Responsive: Mobile-first approach with adaptive layouts
14
- * - Dark mode: Full support for light and dark themes
15
- *
16
- * References:
17
- * - Cloudscape Design System Documentation: https://cloudscape.design/
18
- * - AWS Design Language: https://aws.amazon.com/design/
19
- * - Amazon Ember Font: https://developer.amazon.com/en-US/alexa/branding/echo-guidelines/identity-guidelines/typography
20
- */
21
-
22
- import {
23
- VendorStyle,
24
- ColorPalette,
25
- TypographyRules,
26
- LayoutSystem,
27
- MotionSystem,
28
- ElevationSystem,
29
- ComponentLibrary
30
- } from '../../types';
31
-
32
- // ============================================================================
33
- // Color System - Cloudscape Design Tokens
34
- // ============================================================================
35
-
36
- const AMAZON_CLOUDSCAPE_COLORS: ColorPalette = {
37
- primary: {
38
- name: 'Primary Blue',
39
- hex: '#0972D3',
40
- rgb: { r: 9, g: 114, b: 211 },
41
- hsl: { h: 209, s: 92, l: 43 },
42
- variants: [
43
- { name: 'Blue 900', hex: '#033160', usage: 'Darkest blue, pressed states' },
44
- { name: 'Blue 800', hex: '#05467E', usage: 'Dark blue, hover states' },
45
- { name: 'Blue 700', hex: '#0762A8', usage: 'Primary dark' },
46
- { name: 'Blue 600', hex: '#0972D3', usage: 'Primary brand color' },
47
- { name: 'Blue 500', hex: '#2E8DE0', usage: 'Primary light' },
48
- { name: 'Blue 400', hex: '#539FE5', usage: 'Hover backgrounds' },
49
- { name: 'Blue 300', hex: '#7AAFEB', usage: 'Light accents' },
50
- { name: 'Blue 200', hex: '#A1C4F0', usage: 'Very light backgrounds' },
51
- { name: 'Blue 100', hex: '#C8DAF5', usage: 'Subtle highlights' },
52
- { name: 'Blue 50', hex: '#EFF4FA', usage: 'Lightest blue' }
53
- ]
54
- },
55
- secondary: {
56
- name: 'Grey Neutral',
57
- hex: '#5F6B7A',
58
- rgb: { r: 95, g: 107, b: 122 },
59
- hsl: { h: 213, s: 12, l: 43 },
60
- variants: [
61
- { name: 'Grey 900', hex: '#16191F', usage: 'Text primary (dark mode)' },
62
- { name: 'Grey 800', hex: '#2A2E33', usage: 'Text secondary (dark mode)' },
63
- { name: 'Grey 700', hex: '#414750', usage: 'Borders (dark mode)' },
64
- { name: 'Grey 600', hex: '#5F6B7A', usage: 'Text tertiary' },
65
- { name: 'Grey 550', hex: '#7D8998', usage: 'Disabled text' },
66
- { name: 'Grey 500', hex: '#9BA7B6', usage: 'Placeholder text' },
67
- { name: 'Grey 450', hex: '#AAB7C3', usage: 'Dividers' },
68
- { name: 'Grey 400', hex: '#C1C9D2', usage: 'Borders' },
69
- { name: 'Grey 300', hex: '#D5DBDF', usage: 'Light borders' },
70
- { name: 'Grey 200', hex: '#E9EBED', usage: 'Background secondary' },
71
- { name: 'Grey 150', hex: '#F2F3F3', usage: 'Background tertiary' },
72
- { name: 'Grey 100', hex: '#FAFAFA', usage: 'Background primary' }
73
- ]
74
- },
75
- neutral: [
76
- { name: 'White', hex: '#FFFFFF', rgb: { r: 255, g: 255, b: 255 }, hsl: { h: 0, s: 0, l: 100 } },
77
- { name: 'Grey 100', hex: '#FAFAFA', rgb: { r: 250, g: 250, b: 250 }, hsl: { h: 0, s: 0, l: 98 } },
78
- { name: 'Grey 150', hex: '#F2F3F3', rgb: { r: 242, g: 243, b: 243 }, hsl: { h: 180, s: 2, l: 95 } },
79
- { name: 'Grey 200', hex: '#E9EBED', rgb: { r: 233, g: 235, b: 237 }, hsl: { h: 210, s: 7, l: 92 } },
80
- { name: 'Grey 300', hex: '#D5DBDF', rgb: { r: 213, g: 219, b: 223 }, hsl: { h: 204, s: 11, l: 85 } },
81
- { name: 'Grey 400', hex: '#C1C9D2', rgb: { r: 193, g: 201, b: 210 }, hsl: { h: 212, s: 14, l: 79 } },
82
- { name: 'Grey 500', hex: '#9BA7B6', rgb: { r: 155, g: 167, b: 182 }, hsl: { h: 213, s: 15, l: 66 } },
83
- { name: 'Grey 600', hex: '#5F6B7A', rgb: { r: 95, g: 107, b: 122 }, hsl: { h: 213, s: 12, l: 43 } },
84
- { name: 'Grey 700', hex: '#414750', rgb: { r: 65, g: 71, b: 80 }, hsl: { h: 216, s: 10, l: 28 } },
85
- { name: 'Grey 800', hex: '#2A2E33', rgb: { r: 42, g: 46, b: 51 }, hsl: { h: 213, s: 10, l: 18 } },
86
- { name: 'Grey 900', hex: '#16191F', rgb: { r: 22, g: 25, b: 31 }, hsl: { h: 220, s: 17, l: 10 } },
87
- { name: 'Black', hex: '#000000', rgb: { r: 0, g: 0, b: 0 }, hsl: { h: 0, s: 0, l: 0 } }
88
- ],
89
- semantic: {
90
- success: '#037F0C',
91
- warning: '#8D6605',
92
- error: '#D91515',
93
- info: '#0972D3'
94
- },
95
- accessibility: {
96
- minContrastRatio: 4.5,
97
- wcagLevel: 'AA',
98
- colorBlindSafe: true
99
- }
100
- };
101
-
102
- // ============================================================================
103
- // Typography System - Amazon Ember
104
- // ============================================================================
105
-
106
- const AMAZON_CLOUDSCAPE_TYPOGRAPHY: TypographyRules = {
107
- fontFamilies: [
108
- {
109
- name: 'Amazon Ember',
110
- fallbacks: ['-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif'],
111
- weights: [300, 400, 500, 700],
112
- styles: ['normal', 'italic'],
113
- usage: 'Primary font for all UI elements, optimized for readability in data-dense interfaces'
114
- },
115
- {
116
- name: 'Amazon Ember Mono',
117
- fallbacks: ['Monaco', 'Menlo', 'Consolas', 'Courier New', 'monospace'],
118
- weights: [400, 700],
119
- styles: ['normal'],
120
- usage: 'Code snippets, technical data, API responses'
121
- }
122
- ],
123
- typeScale: {
124
- base: 14,
125
- ratio: 1.125,
126
- sizes: {
127
- 'display-large': 48,
128
- 'display': 36,
129
- 'heading-xl': 28,
130
- 'heading-l': 24,
131
- 'heading-m': 20,
132
- 'heading-s': 18,
133
- 'heading-xs': 16,
134
- 'body-l': 16,
135
- 'body-m': 14,
136
- 'body-s': 12
137
- }
138
- },
139
- hierarchy: {
140
- h1: {
141
- fontSize: '28px',
142
- fontWeight: 700,
143
- lineHeight: 1.3,
144
- letterSpacing: '-0.01em'
145
- },
146
- h2: {
147
- fontSize: '24px',
148
- fontWeight: 700,
149
- lineHeight: 1.3,
150
- letterSpacing: '-0.005em'
151
- },
152
- h3: {
153
- fontSize: '20px',
154
- fontWeight: 700,
155
- lineHeight: 1.4
156
- },
157
- h4: {
158
- fontSize: '18px',
159
- fontWeight: 700,
160
- lineHeight: 1.4
161
- },
162
- h5: {
163
- fontSize: '16px',
164
- fontWeight: 700,
165
- lineHeight: 1.5
166
- },
167
- h6: {
168
- fontSize: '14px',
169
- fontWeight: 700,
170
- lineHeight: 1.5,
171
- textTransform: 'uppercase',
172
- letterSpacing: '0.05em'
173
- },
174
- body: {
175
- fontSize: '14px',
176
- fontWeight: 400,
177
- lineHeight: 1.5
178
- },
179
- caption: {
180
- fontSize: '12px',
181
- fontWeight: 400,
182
- lineHeight: 1.5
183
- }
184
- },
185
- lineHeight: {
186
- tight: 1.3,
187
- normal: 1.5,
188
- relaxed: 1.7
189
- },
190
- letterSpacing: {
191
- tight: '-0.01em',
192
- normal: '0',
193
- wide: '0.05em'
194
- }
195
- };
196
-
197
-
198
- // ============================================================================
199
- // Layout System - Responsive Grid
200
- // ============================================================================
201
-
202
- const AMAZON_CLOUDSCAPE_LAYOUT: LayoutSystem = {
203
- grid: {
204
- columns: 12,
205
- gutter: '20px',
206
- margin: '20px',
207
- maxWidth: '1600px'
208
- },
209
- spacing: {
210
- base: 4,
211
- scale: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80],
212
- tokens: {
213
- 'xxxs': '4px',
214
- 'xxs': '8px',
215
- 'xs': '12px',
216
- 's': '16px',
217
- 'm': '20px',
218
- 'l': '24px',
219
- 'xl': '32px',
220
- 'xxl': '40px',
221
- 'xxxl': '48px'
222
- }
223
- },
224
- breakpoints: {
225
- xs: '0px',
226
- sm: '688px',
227
- md: '1120px',
228
- lg: '1440px',
229
- xl: '1920px'
230
- },
231
- containers: {
232
- maxWidth: {
233
- xs: '100%',
234
- sm: '688px',
235
- md: '1120px',
236
- lg: '1440px',
237
- xl: '1600px'
238
- },
239
- padding: {
240
- xs: '20px',
241
- sm: '20px',
242
- md: '40px',
243
- lg: '40px',
244
- xl: '40px'
245
- }
246
- }
247
- };
248
-
249
- // ============================================================================
250
- // Motion System - Subtle Animations
251
- // ============================================================================
252
-
253
- const AMAZON_CLOUDSCAPE_MOTION: MotionSystem = {
254
- durations: {
255
- instant: '0ms',
256
- fast: '100ms',
257
- normal: '200ms',
258
- slow: '300ms'
259
- },
260
- easings: {
261
- linear: 'linear',
262
- easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
263
- easeOut: 'cubic-bezier(0, 0, 0.2, 1)',
264
- easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)'
265
- },
266
- animations: [
267
- {
268
- name: 'fade-in',
269
- duration: '200ms',
270
- easing: 'cubic-bezier(0, 0, 0.2, 1)',
271
- properties: ['opacity']
272
- },
273
- {
274
- name: 'slide-down',
275
- duration: '200ms',
276
- easing: 'cubic-bezier(0, 0, 0.2, 1)',
277
- properties: ['transform', 'opacity']
278
- },
279
- {
280
- name: 'expand',
281
- duration: '300ms',
282
- easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
283
- properties: ['height', 'opacity']
284
- }
285
- ]
286
- };
287
-
288
- // ============================================================================
289
- // Elevation System - Subtle Shadows
290
- // ============================================================================
291
-
292
- const AMAZON_CLOUDSCAPE_ELEVATION: ElevationSystem = {
293
- levels: [
294
- {
295
- level: 0,
296
- shadow: 'none',
297
- usage: 'Flat surfaces, no elevation'
298
- },
299
- {
300
- level: 1,
301
- shadow: '0 1px 1px 0 rgba(0, 28, 36, 0.3), 1px 1px 1px 0 rgba(0, 28, 36, 0.15), -1px 1px 1px 0 rgba(0, 28, 36, 0.15)',
302
- usage: 'Cards, containers, raised surfaces'
303
- },
304
- {
305
- level: 2,
306
- shadow: '0 4px 8px 0 rgba(0, 28, 36, 0.1), 0 1px 1px 0 rgba(0, 28, 36, 0.3)',
307
- usage: 'Dropdowns, popovers, tooltips'
308
- },
309
- {
310
- level: 3,
311
- shadow: '0 8px 16px 0 rgba(0, 28, 36, 0.15), 0 2px 4px 0 rgba(0, 28, 36, 0.3)',
312
- usage: 'Modals, dialogs, overlays'
313
- },
314
- {
315
- level: 4,
316
- shadow: '0 16px 24px 0 rgba(0, 28, 36, 0.2), 0 4px 8px 0 rgba(0, 28, 36, 0.3)',
317
- usage: 'Sticky headers, floating action buttons'
318
- }
319
- ],
320
- shadows: {
321
- none: 'none',
322
- sm: '0 1px 1px 0 rgba(0, 28, 36, 0.3)',
323
- md: '0 4px 8px 0 rgba(0, 28, 36, 0.1)',
324
- lg: '0 8px 16px 0 rgba(0, 28, 36, 0.15)',
325
- xl: '0 16px 24px 0 rgba(0, 28, 36, 0.2)'
326
- }
327
- };
328
-
329
- // ============================================================================
330
- // Component Library - Enterprise UI Components
331
- // ============================================================================
332
-
333
- const AMAZON_CLOUDSCAPE_COMPONENTS: ComponentLibrary = {
334
- buttons: {
335
- variants: ['primary', 'normal', 'link', 'icon'],
336
- states: ['default', 'hover', 'active', 'disabled', 'loading'],
337
- sizes: ['small', 'normal'],
338
- examples: [
339
- 'Primary button for main actions',
340
- 'Normal button for secondary actions',
341
- 'Link button for tertiary actions',
342
- 'Icon button for compact interfaces'
343
- ]
344
- },
345
- inputs: {
346
- variants: ['text', 'textarea', 'select', 'multiselect', 'autosuggest', 'date-picker', 'time-input'],
347
- states: ['default', 'focus', 'error', 'warning', 'disabled', 'readonly'],
348
- sizes: ['small', 'normal'],
349
- examples: [
350
- 'Form input with validation',
351
- 'Autosuggest for search',
352
- 'Date picker for scheduling',
353
- 'Multiselect for filters'
354
- ]
355
- },
356
- cards: {
357
- variants: ['container', 'expandable-section', 'tiles', 'cards'],
358
- states: ['default', 'selected', 'disabled'],
359
- sizes: ['default'],
360
- examples: [
361
- 'Container for grouping content',
362
- 'Expandable section for progressive disclosure',
363
- 'Tiles for grid layouts',
364
- 'Cards for dashboard widgets'
365
- ]
366
- },
367
- navigation: {
368
- variants: ['top-navigation', 'side-navigation', 'breadcrumb', 'pagination', 'tabs'],
369
- states: ['default', 'active', 'disabled'],
370
- sizes: ['default'],
371
- examples: [
372
- 'Top navigation for global navigation',
373
- 'Side navigation for hierarchical navigation',
374
- 'Breadcrumb for location awareness',
375
- 'Pagination for large datasets',
376
- 'Tabs for content organization'
377
- ]
378
- }
379
- };
380
-
381
- // ============================================================================
382
- // Amazon Cloudscape Style Export
383
- // ============================================================================
384
-
385
- export const AMAZON_CLOUDSCAPE: VendorStyle = {
386
- vendor: 'amazon',
387
- name: 'Cloudscape Design System',
388
- version: '3.0',
389
- characteristics: [
390
- 'Enterprise-focused design for complex applications',
391
- 'Component-heavy architecture with extensive pre-built UI library',
392
- 'Data-dense interfaces optimized for dashboards and analytics',
393
- 'Amazon Ember typography for brand consistency',
394
- 'WCAG 2.1 Level AA accessibility compliance built-in',
395
- 'Full dark mode support with adaptive color tokens',
396
- 'Responsive design with mobile-first approach',
397
- 'Subtle animations and transitions for professional feel',
398
- 'Comprehensive form components with validation states',
399
- 'Advanced data visualization components (tables, charts, graphs)',
400
- 'Optimized for AWS Console and enterprise web applications',
401
- 'Consistent spacing system based on 4px grid',
402
- 'Extensive documentation and code examples',
403
- 'Open-source and actively maintained by Amazon',
404
- 'Cross-browser compatibility and performance optimization'
405
- ],
406
- colorPalette: AMAZON_CLOUDSCAPE_COLORS,
407
- typography: AMAZON_CLOUDSCAPE_TYPOGRAPHY,
408
- layout: AMAZON_CLOUDSCAPE_LAYOUT,
409
- motion: AMAZON_CLOUDSCAPE_MOTION,
410
- elevation: AMAZON_CLOUDSCAPE_ELEVATION,
411
- components: AMAZON_CLOUDSCAPE_COMPONENTS
412
- };
413
-
414
- // ============================================================================
415
- // Design Patterns & Best Practices
416
- // ============================================================================
417
-
418
- /**
419
- * Cloudscape Design Patterns
420
- *
421
- * Common patterns used in Cloudscape applications:
422
- *
423
- * 1. Dashboard Layout
424
- * - Top navigation with breadcrumbs
425
- * - Side navigation for hierarchical content
426
- * - Main content area with cards/containers
427
- * - Responsive grid for widgets
428
- *
429
- * 2. Data Tables
430
- * - Sortable columns with clear indicators
431
- * - Filterable data with inline filters
432
- * - Pagination for large datasets
433
- * - Row selection with checkboxes
434
- * - Expandable rows for details
435
- *
436
- * 3. Forms
437
- * - Clear labels and help text
438
- * - Inline validation with error messages
439
- * - Progressive disclosure for complex forms
440
- * - Form sections with expandable containers
441
- * - Action buttons aligned to the right
442
- *
443
- * 4. Modals & Dialogs
444
- * - Clear title and close button
445
- * - Scrollable content area
446
- * - Footer with action buttons
447
- * - Overlay with backdrop
448
- * - Focus management for accessibility
449
- *
450
- * 5. Notifications
451
- * - Flash messages for temporary feedback
452
- * - Alert banners for important information
453
- * - Toast notifications for background actions
454
- * - Status indicators for system state
455
- */
456
-
457
- /**
458
- * Accessibility Guidelines
459
- *
460
- * Cloudscape enforces WCAG 2.1 Level AA compliance:
461
- *
462
- * - Color contrast: Minimum 4.5:1 for text, 3:1 for UI components
463
- * - Keyboard navigation: All interactive elements accessible via keyboard
464
- * - Screen reader support: Semantic HTML and ARIA labels
465
- * - Focus indicators: Clear visual focus states
466
- * - Responsive text: Supports browser zoom up to 200%
467
- * - Motion preferences: Respects prefers-reduced-motion
468
- * - Touch targets: Minimum 44x44px for mobile
469
- */
470
-
471
- /**
472
- * Component Usage Examples
473
- *
474
- * Button:
475
- * ```tsx
476
- * <Button variant="primary" onClick={handleClick}>
477
- * Save changes
478
- * </Button>
479
- * ```
480
- *
481
- * Input:
482
- * ```tsx
483
- * <FormField label="Email" description="Enter your email address">
484
- * <Input
485
- * value={email}
486
- * onChange={({ detail }) => setEmail(detail.value)}
487
- * type="email"
488
- * />
489
- * </FormField>
490
- * ```
491
- *
492
- * Table:
493
- * ```tsx
494
- * <Table
495
- * columnDefinitions={columns}
496
- * items={data}
497
- * sortingColumn={sortingColumn}
498
- * onSortingChange={handleSortingChange}
499
- * pagination={<Pagination currentPageIndex={1} pagesCount={10} />}
500
- * />
501
- * ```
502
- */
503
-
504
- export default AMAZON_CLOUDSCAPE;
505
-
506
-
1
+ /**
2
+ * Amazon Cloudscape Design System
3
+ *
4
+ * Cloudscape (2020-present) is Amazon's open-source design system for building
5
+ * intuitive, efficient, and accessible web applications. Originally developed for
6
+ * AWS Console, it emphasizes enterprise dashboards, data-dense interfaces, and
7
+ * component-heavy patterns with Amazon Ember typography.
8
+ *
9
+ * Key characteristics:
10
+ * - Enterprise-focused: Optimized for complex, data-rich applications
11
+ * - Component-heavy: Extensive library of pre-built UI components
12
+ * - Accessibility-first: WCAG 2.1 Level AA compliance built-in
13
+ * - Responsive: Mobile-first approach with adaptive layouts
14
+ * - Dark mode: Full support for light and dark themes
15
+ *
16
+ * References:
17
+ * - Cloudscape Design System Documentation: https://cloudscape.design/
18
+ * - AWS Design Language: https://aws.amazon.com/design/
19
+ * - Amazon Ember Font: https://developer.amazon.com/en-US/alexa/branding/echo-guidelines/identity-guidelines/typography
20
+ */
21
+
22
+ import {
23
+ VendorStyle,
24
+ ColorPalette,
25
+ TypographyRules,
26
+ LayoutSystem,
27
+ MotionSystem,
28
+ ElevationSystem,
29
+ ComponentLibrary
30
+ } from '../../types';
31
+
32
+ // ============================================================================
33
+ // Color System - Cloudscape Design Tokens
34
+ // ============================================================================
35
+
36
+ const AMAZON_CLOUDSCAPE_COLORS: ColorPalette = {
37
+ primary: {
38
+ name: 'Primary Blue',
39
+ hex: '#0972D3',
40
+ rgb: { r: 9, g: 114, b: 211 },
41
+ hsl: { h: 209, s: 92, l: 43 },
42
+ variants: [
43
+ { name: 'Blue 900', hex: '#033160', usage: 'Darkest blue, pressed states' },
44
+ { name: 'Blue 800', hex: '#05467E', usage: 'Dark blue, hover states' },
45
+ { name: 'Blue 700', hex: '#0762A8', usage: 'Primary dark' },
46
+ { name: 'Blue 600', hex: '#0972D3', usage: 'Primary brand color' },
47
+ { name: 'Blue 500', hex: '#2E8DE0', usage: 'Primary light' },
48
+ { name: 'Blue 400', hex: '#539FE5', usage: 'Hover backgrounds' },
49
+ { name: 'Blue 300', hex: '#7AAFEB', usage: 'Light accents' },
50
+ { name: 'Blue 200', hex: '#A1C4F0', usage: 'Very light backgrounds' },
51
+ { name: 'Blue 100', hex: '#C8DAF5', usage: 'Subtle highlights' },
52
+ { name: 'Blue 50', hex: '#EFF4FA', usage: 'Lightest blue' }
53
+ ]
54
+ },
55
+ secondary: {
56
+ name: 'Grey Neutral',
57
+ hex: '#5F6B7A',
58
+ rgb: { r: 95, g: 107, b: 122 },
59
+ hsl: { h: 213, s: 12, l: 43 },
60
+ variants: [
61
+ { name: 'Grey 900', hex: '#16191F', usage: 'Text primary (dark mode)' },
62
+ { name: 'Grey 800', hex: '#2A2E33', usage: 'Text secondary (dark mode)' },
63
+ { name: 'Grey 700', hex: '#414750', usage: 'Borders (dark mode)' },
64
+ { name: 'Grey 600', hex: '#5F6B7A', usage: 'Text tertiary' },
65
+ { name: 'Grey 550', hex: '#7D8998', usage: 'Disabled text' },
66
+ { name: 'Grey 500', hex: '#9BA7B6', usage: 'Placeholder text' },
67
+ { name: 'Grey 450', hex: '#AAB7C3', usage: 'Dividers' },
68
+ { name: 'Grey 400', hex: '#C1C9D2', usage: 'Borders' },
69
+ { name: 'Grey 300', hex: '#D5DBDF', usage: 'Light borders' },
70
+ { name: 'Grey 200', hex: '#E9EBED', usage: 'Background secondary' },
71
+ { name: 'Grey 150', hex: '#F2F3F3', usage: 'Background tertiary' },
72
+ { name: 'Grey 100', hex: '#FAFAFA', usage: 'Background primary' }
73
+ ]
74
+ },
75
+ neutral: [
76
+ { name: 'White', hex: '#FFFFFF', rgb: { r: 255, g: 255, b: 255 }, hsl: { h: 0, s: 0, l: 100 } },
77
+ { name: 'Grey 100', hex: '#FAFAFA', rgb: { r: 250, g: 250, b: 250 }, hsl: { h: 0, s: 0, l: 98 } },
78
+ { name: 'Grey 150', hex: '#F2F3F3', rgb: { r: 242, g: 243, b: 243 }, hsl: { h: 180, s: 2, l: 95 } },
79
+ { name: 'Grey 200', hex: '#E9EBED', rgb: { r: 233, g: 235, b: 237 }, hsl: { h: 210, s: 7, l: 92 } },
80
+ { name: 'Grey 300', hex: '#D5DBDF', rgb: { r: 213, g: 219, b: 223 }, hsl: { h: 204, s: 11, l: 85 } },
81
+ { name: 'Grey 400', hex: '#C1C9D2', rgb: { r: 193, g: 201, b: 210 }, hsl: { h: 212, s: 14, l: 79 } },
82
+ { name: 'Grey 500', hex: '#9BA7B6', rgb: { r: 155, g: 167, b: 182 }, hsl: { h: 213, s: 15, l: 66 } },
83
+ { name: 'Grey 600', hex: '#5F6B7A', rgb: { r: 95, g: 107, b: 122 }, hsl: { h: 213, s: 12, l: 43 } },
84
+ { name: 'Grey 700', hex: '#414750', rgb: { r: 65, g: 71, b: 80 }, hsl: { h: 216, s: 10, l: 28 } },
85
+ { name: 'Grey 800', hex: '#2A2E33', rgb: { r: 42, g: 46, b: 51 }, hsl: { h: 213, s: 10, l: 18 } },
86
+ { name: 'Grey 900', hex: '#16191F', rgb: { r: 22, g: 25, b: 31 }, hsl: { h: 220, s: 17, l: 10 } },
87
+ { name: 'Black', hex: '#000000', rgb: { r: 0, g: 0, b: 0 }, hsl: { h: 0, s: 0, l: 0 } }
88
+ ],
89
+ semantic: {
90
+ success: '#037F0C',
91
+ warning: '#8D6605',
92
+ error: '#D91515',
93
+ info: '#0972D3'
94
+ },
95
+ accessibility: {
96
+ minContrastRatio: 4.5,
97
+ wcagLevel: 'AA',
98
+ colorBlindSafe: true
99
+ }
100
+ };
101
+
102
+ // ============================================================================
103
+ // Typography System - Amazon Ember
104
+ // ============================================================================
105
+
106
+ const AMAZON_CLOUDSCAPE_TYPOGRAPHY: TypographyRules = {
107
+ fontFamilies: [
108
+ {
109
+ name: 'Amazon Ember',
110
+ fallbacks: ['-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif'],
111
+ weights: [300, 400, 500, 700],
112
+ styles: ['normal', 'italic'],
113
+ usage: 'Primary font for all UI elements, optimized for readability in data-dense interfaces'
114
+ },
115
+ {
116
+ name: 'Amazon Ember Mono',
117
+ fallbacks: ['Monaco', 'Menlo', 'Consolas', 'Courier New', 'monospace'],
118
+ weights: [400, 700],
119
+ styles: ['normal'],
120
+ usage: 'Code snippets, technical data, API responses'
121
+ }
122
+ ],
123
+ typeScale: {
124
+ base: 14,
125
+ ratio: 1.125,
126
+ sizes: {
127
+ 'display-large': 48,
128
+ 'display': 36,
129
+ 'heading-xl': 28,
130
+ 'heading-l': 24,
131
+ 'heading-m': 20,
132
+ 'heading-s': 18,
133
+ 'heading-xs': 16,
134
+ 'body-l': 16,
135
+ 'body-m': 14,
136
+ 'body-s': 12
137
+ }
138
+ },
139
+ hierarchy: {
140
+ h1: {
141
+ fontSize: '28px',
142
+ fontWeight: 700,
143
+ lineHeight: 1.3,
144
+ letterSpacing: '-0.01em'
145
+ },
146
+ h2: {
147
+ fontSize: '24px',
148
+ fontWeight: 700,
149
+ lineHeight: 1.3,
150
+ letterSpacing: '-0.005em'
151
+ },
152
+ h3: {
153
+ fontSize: '20px',
154
+ fontWeight: 700,
155
+ lineHeight: 1.4
156
+ },
157
+ h4: {
158
+ fontSize: '18px',
159
+ fontWeight: 700,
160
+ lineHeight: 1.4
161
+ },
162
+ h5: {
163
+ fontSize: '16px',
164
+ fontWeight: 700,
165
+ lineHeight: 1.5
166
+ },
167
+ h6: {
168
+ fontSize: '14px',
169
+ fontWeight: 700,
170
+ lineHeight: 1.5,
171
+ textTransform: 'uppercase',
172
+ letterSpacing: '0.05em'
173
+ },
174
+ body: {
175
+ fontSize: '14px',
176
+ fontWeight: 400,
177
+ lineHeight: 1.5
178
+ },
179
+ caption: {
180
+ fontSize: '12px',
181
+ fontWeight: 400,
182
+ lineHeight: 1.5
183
+ }
184
+ },
185
+ lineHeight: {
186
+ tight: 1.3,
187
+ normal: 1.5,
188
+ relaxed: 1.7
189
+ },
190
+ letterSpacing: {
191
+ tight: '-0.01em',
192
+ normal: '0',
193
+ wide: '0.05em'
194
+ }
195
+ };
196
+
197
+
198
+ // ============================================================================
199
+ // Layout System - Responsive Grid
200
+ // ============================================================================
201
+
202
+ const AMAZON_CLOUDSCAPE_LAYOUT: LayoutSystem = {
203
+ grid: {
204
+ columns: 12,
205
+ gutter: '20px',
206
+ margin: '20px',
207
+ maxWidth: '1600px'
208
+ },
209
+ spacing: {
210
+ base: 4,
211
+ scale: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80],
212
+ tokens: {
213
+ 'xxxs': '4px',
214
+ 'xxs': '8px',
215
+ 'xs': '12px',
216
+ 's': '16px',
217
+ 'm': '20px',
218
+ 'l': '24px',
219
+ 'xl': '32px',
220
+ 'xxl': '40px',
221
+ 'xxxl': '48px'
222
+ }
223
+ },
224
+ breakpoints: {
225
+ xs: '0px',
226
+ sm: '688px',
227
+ md: '1120px',
228
+ lg: '1440px',
229
+ xl: '1920px'
230
+ },
231
+ containers: {
232
+ maxWidth: {
233
+ xs: '100%',
234
+ sm: '688px',
235
+ md: '1120px',
236
+ lg: '1440px',
237
+ xl: '1600px'
238
+ },
239
+ padding: {
240
+ xs: '20px',
241
+ sm: '20px',
242
+ md: '40px',
243
+ lg: '40px',
244
+ xl: '40px'
245
+ }
246
+ }
247
+ };
248
+
249
+ // ============================================================================
250
+ // Motion System - Subtle Animations
251
+ // ============================================================================
252
+
253
+ const AMAZON_CLOUDSCAPE_MOTION: MotionSystem = {
254
+ durations: {
255
+ instant: '0ms',
256
+ fast: '100ms',
257
+ normal: '200ms',
258
+ slow: '300ms'
259
+ },
260
+ easings: {
261
+ linear: 'linear',
262
+ easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
263
+ easeOut: 'cubic-bezier(0, 0, 0.2, 1)',
264
+ easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)'
265
+ },
266
+ animations: [
267
+ {
268
+ name: 'fade-in',
269
+ duration: '200ms',
270
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
271
+ properties: ['opacity']
272
+ },
273
+ {
274
+ name: 'slide-down',
275
+ duration: '200ms',
276
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
277
+ properties: ['transform', 'opacity']
278
+ },
279
+ {
280
+ name: 'expand',
281
+ duration: '300ms',
282
+ easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
283
+ properties: ['height', 'opacity']
284
+ }
285
+ ]
286
+ };
287
+
288
+ // ============================================================================
289
+ // Elevation System - Subtle Shadows
290
+ // ============================================================================
291
+
292
+ const AMAZON_CLOUDSCAPE_ELEVATION: ElevationSystem = {
293
+ levels: [
294
+ {
295
+ level: 0,
296
+ shadow: 'none',
297
+ usage: 'Flat surfaces, no elevation'
298
+ },
299
+ {
300
+ level: 1,
301
+ shadow: '0 1px 1px 0 rgba(0, 28, 36, 0.3), 1px 1px 1px 0 rgba(0, 28, 36, 0.15), -1px 1px 1px 0 rgba(0, 28, 36, 0.15)',
302
+ usage: 'Cards, containers, raised surfaces'
303
+ },
304
+ {
305
+ level: 2,
306
+ shadow: '0 4px 8px 0 rgba(0, 28, 36, 0.1), 0 1px 1px 0 rgba(0, 28, 36, 0.3)',
307
+ usage: 'Dropdowns, popovers, tooltips'
308
+ },
309
+ {
310
+ level: 3,
311
+ shadow: '0 8px 16px 0 rgba(0, 28, 36, 0.15), 0 2px 4px 0 rgba(0, 28, 36, 0.3)',
312
+ usage: 'Modals, dialogs, overlays'
313
+ },
314
+ {
315
+ level: 4,
316
+ shadow: '0 16px 24px 0 rgba(0, 28, 36, 0.2), 0 4px 8px 0 rgba(0, 28, 36, 0.3)',
317
+ usage: 'Sticky headers, floating action buttons'
318
+ }
319
+ ],
320
+ shadows: {
321
+ none: 'none',
322
+ sm: '0 1px 1px 0 rgba(0, 28, 36, 0.3)',
323
+ md: '0 4px 8px 0 rgba(0, 28, 36, 0.1)',
324
+ lg: '0 8px 16px 0 rgba(0, 28, 36, 0.15)',
325
+ xl: '0 16px 24px 0 rgba(0, 28, 36, 0.2)'
326
+ }
327
+ };
328
+
329
+ // ============================================================================
330
+ // Component Library - Enterprise UI Components
331
+ // ============================================================================
332
+
333
+ const AMAZON_CLOUDSCAPE_COMPONENTS: ComponentLibrary = {
334
+ buttons: {
335
+ variants: ['primary', 'normal', 'link', 'icon'],
336
+ states: ['default', 'hover', 'active', 'disabled', 'loading'],
337
+ sizes: ['small', 'normal'],
338
+ examples: [
339
+ 'Primary button for main actions',
340
+ 'Normal button for secondary actions',
341
+ 'Link button for tertiary actions',
342
+ 'Icon button for compact interfaces'
343
+ ]
344
+ },
345
+ inputs: {
346
+ variants: ['text', 'textarea', 'select', 'multiselect', 'autosuggest', 'date-picker', 'time-input'],
347
+ states: ['default', 'focus', 'error', 'warning', 'disabled', 'readonly'],
348
+ sizes: ['small', 'normal'],
349
+ examples: [
350
+ 'Form input with validation',
351
+ 'Autosuggest for search',
352
+ 'Date picker for scheduling',
353
+ 'Multiselect for filters'
354
+ ]
355
+ },
356
+ cards: {
357
+ variants: ['container', 'expandable-section', 'tiles', 'cards'],
358
+ states: ['default', 'selected', 'disabled'],
359
+ sizes: ['default'],
360
+ examples: [
361
+ 'Container for grouping content',
362
+ 'Expandable section for progressive disclosure',
363
+ 'Tiles for grid layouts',
364
+ 'Cards for dashboard widgets'
365
+ ]
366
+ },
367
+ navigation: {
368
+ variants: ['top-navigation', 'side-navigation', 'breadcrumb', 'pagination', 'tabs'],
369
+ states: ['default', 'active', 'disabled'],
370
+ sizes: ['default'],
371
+ examples: [
372
+ 'Top navigation for global navigation',
373
+ 'Side navigation for hierarchical navigation',
374
+ 'Breadcrumb for location awareness',
375
+ 'Pagination for large datasets',
376
+ 'Tabs for content organization'
377
+ ]
378
+ }
379
+ };
380
+
381
+ // ============================================================================
382
+ // Amazon Cloudscape Style Export
383
+ // ============================================================================
384
+
385
+ export const AMAZON_CLOUDSCAPE: VendorStyle = {
386
+ vendor: 'amazon',
387
+ name: 'Cloudscape Design System',
388
+ version: '3.0',
389
+ characteristics: [
390
+ 'Enterprise-focused design for complex applications',
391
+ 'Component-heavy architecture with extensive pre-built UI library',
392
+ 'Data-dense interfaces optimized for dashboards and analytics',
393
+ 'Amazon Ember typography for brand consistency',
394
+ 'WCAG 2.1 Level AA accessibility compliance built-in',
395
+ 'Full dark mode support with adaptive color tokens',
396
+ 'Responsive design with mobile-first approach',
397
+ 'Subtle animations and transitions for professional feel',
398
+ 'Comprehensive form components with validation states',
399
+ 'Advanced data visualization components (tables, charts, graphs)',
400
+ 'Optimized for AWS Console and enterprise web applications',
401
+ 'Consistent spacing system based on 4px grid',
402
+ 'Extensive documentation and code examples',
403
+ 'Open-source and actively maintained by Amazon',
404
+ 'Cross-browser compatibility and performance optimization'
405
+ ],
406
+ colorPalette: AMAZON_CLOUDSCAPE_COLORS,
407
+ typography: AMAZON_CLOUDSCAPE_TYPOGRAPHY,
408
+ layout: AMAZON_CLOUDSCAPE_LAYOUT,
409
+ motion: AMAZON_CLOUDSCAPE_MOTION,
410
+ elevation: AMAZON_CLOUDSCAPE_ELEVATION,
411
+ components: AMAZON_CLOUDSCAPE_COMPONENTS
412
+ };
413
+
414
+ // ============================================================================
415
+ // Design Patterns & Best Practices
416
+ // ============================================================================
417
+
418
+ /**
419
+ * Cloudscape Design Patterns
420
+ *
421
+ * Common patterns used in Cloudscape applications:
422
+ *
423
+ * 1. Dashboard Layout
424
+ * - Top navigation with breadcrumbs
425
+ * - Side navigation for hierarchical content
426
+ * - Main content area with cards/containers
427
+ * - Responsive grid for widgets
428
+ *
429
+ * 2. Data Tables
430
+ * - Sortable columns with clear indicators
431
+ * - Filterable data with inline filters
432
+ * - Pagination for large datasets
433
+ * - Row selection with checkboxes
434
+ * - Expandable rows for details
435
+ *
436
+ * 3. Forms
437
+ * - Clear labels and help text
438
+ * - Inline validation with error messages
439
+ * - Progressive disclosure for complex forms
440
+ * - Form sections with expandable containers
441
+ * - Action buttons aligned to the right
442
+ *
443
+ * 4. Modals & Dialogs
444
+ * - Clear title and close button
445
+ * - Scrollable content area
446
+ * - Footer with action buttons
447
+ * - Overlay with backdrop
448
+ * - Focus management for accessibility
449
+ *
450
+ * 5. Notifications
451
+ * - Flash messages for temporary feedback
452
+ * - Alert banners for important information
453
+ * - Toast notifications for background actions
454
+ * - Status indicators for system state
455
+ */
456
+
457
+ /**
458
+ * Accessibility Guidelines
459
+ *
460
+ * Cloudscape enforces WCAG 2.1 Level AA compliance:
461
+ *
462
+ * - Color contrast: Minimum 4.5:1 for text, 3:1 for UI components
463
+ * - Keyboard navigation: All interactive elements accessible via keyboard
464
+ * - Screen reader support: Semantic HTML and ARIA labels
465
+ * - Focus indicators: Clear visual focus states
466
+ * - Responsive text: Supports browser zoom up to 200%
467
+ * - Motion preferences: Respects prefers-reduced-motion
468
+ * - Touch targets: Minimum 44x44px for mobile
469
+ */
470
+
471
+ /**
472
+ * Component Usage Examples
473
+ *
474
+ * Button:
475
+ * ```tsx
476
+ * <Button variant="primary" onClick={handleClick}>
477
+ * Save changes
478
+ * </Button>
479
+ * ```
480
+ *
481
+ * Input:
482
+ * ```tsx
483
+ * <FormField label="Email" description="Enter your email address">
484
+ * <Input
485
+ * value={email}
486
+ * onChange={({ detail }) => setEmail(detail.value)}
487
+ * type="email"
488
+ * />
489
+ * </FormField>
490
+ * ```
491
+ *
492
+ * Table:
493
+ * ```tsx
494
+ * <Table
495
+ * columnDefinitions={columns}
496
+ * items={data}
497
+ * sortingColumn={sortingColumn}
498
+ * onSortingChange={handleSortingChange}
499
+ * pagination={<Pagination currentPageIndex={1} pagesCount={10} />}
500
+ * />
501
+ * ```
502
+ */
503
+
504
+ export default AMAZON_CLOUDSCAPE;
505
+
506
+