@tekton-ui/core 0.2.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 (254) hide show
  1. package/README.md +758 -0
  2. package/dist/blueprint.d.ts +44 -0
  3. package/dist/blueprint.d.ts.map +1 -0
  4. package/dist/blueprint.js +163 -0
  5. package/dist/blueprint.js.map +1 -0
  6. package/dist/component-schemas.d.ts +78 -0
  7. package/dist/component-schemas.d.ts.map +1 -0
  8. package/dist/component-schemas.js +1037 -0
  9. package/dist/component-schemas.js.map +1 -0
  10. package/dist/css-generator.d.ts +42 -0
  11. package/dist/css-generator.d.ts.map +1 -0
  12. package/dist/css-generator.js +339 -0
  13. package/dist/css-generator.js.map +1 -0
  14. package/dist/icon-library.d.ts +109 -0
  15. package/dist/icon-library.d.ts.map +1 -0
  16. package/dist/icon-library.js +204 -0
  17. package/dist/icon-library.js.map +1 -0
  18. package/dist/index.d.ts +36 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +51 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/layout-css-generator.d.ts +158 -0
  23. package/dist/layout-css-generator.d.ts.map +1 -0
  24. package/dist/layout-css-generator.js +901 -0
  25. package/dist/layout-css-generator.js.map +1 -0
  26. package/dist/layout-resolver.d.ts +92 -0
  27. package/dist/layout-resolver.d.ts.map +1 -0
  28. package/dist/layout-resolver.js +275 -0
  29. package/dist/layout-resolver.js.map +1 -0
  30. package/dist/layout-tokens/index.d.ts +16 -0
  31. package/dist/layout-tokens/index.d.ts.map +1 -0
  32. package/dist/layout-tokens/index.js +16 -0
  33. package/dist/layout-tokens/index.js.map +1 -0
  34. package/dist/layout-tokens/keyboard.d.ts +254 -0
  35. package/dist/layout-tokens/keyboard.d.ts.map +1 -0
  36. package/dist/layout-tokens/keyboard.js +407 -0
  37. package/dist/layout-tokens/keyboard.js.map +1 -0
  38. package/dist/layout-tokens/mobile-shells.d.ts +78 -0
  39. package/dist/layout-tokens/mobile-shells.d.ts.map +1 -0
  40. package/dist/layout-tokens/mobile-shells.js +635 -0
  41. package/dist/layout-tokens/mobile-shells.js.map +1 -0
  42. package/dist/layout-tokens/pages.d.ts +100 -0
  43. package/dist/layout-tokens/pages.d.ts.map +1 -0
  44. package/dist/layout-tokens/pages.js +576 -0
  45. package/dist/layout-tokens/pages.js.map +1 -0
  46. package/dist/layout-tokens/responsive.d.ts +109 -0
  47. package/dist/layout-tokens/responsive.d.ts.map +1 -0
  48. package/dist/layout-tokens/responsive.js +167 -0
  49. package/dist/layout-tokens/responsive.js.map +1 -0
  50. package/dist/layout-tokens/safe-area.d.ts +156 -0
  51. package/dist/layout-tokens/safe-area.d.ts.map +1 -0
  52. package/dist/layout-tokens/safe-area.js +316 -0
  53. package/dist/layout-tokens/safe-area.js.map +1 -0
  54. package/dist/layout-tokens/sections-advanced.d.ts +277 -0
  55. package/dist/layout-tokens/sections-advanced.d.ts.map +1 -0
  56. package/dist/layout-tokens/sections-advanced.js +593 -0
  57. package/dist/layout-tokens/sections-advanced.js.map +1 -0
  58. package/dist/layout-tokens/sections.d.ts +137 -0
  59. package/dist/layout-tokens/sections.d.ts.map +1 -0
  60. package/dist/layout-tokens/sections.js +694 -0
  61. package/dist/layout-tokens/sections.js.map +1 -0
  62. package/dist/layout-tokens/shells.d.ts +77 -0
  63. package/dist/layout-tokens/shells.d.ts.map +1 -0
  64. package/dist/layout-tokens/shells.js +408 -0
  65. package/dist/layout-tokens/shells.js.map +1 -0
  66. package/dist/layout-tokens/touch-target.d.ts +119 -0
  67. package/dist/layout-tokens/touch-target.d.ts.map +1 -0
  68. package/dist/layout-tokens/touch-target.js +156 -0
  69. package/dist/layout-tokens/touch-target.js.map +1 -0
  70. package/dist/layout-tokens/types.d.ts +632 -0
  71. package/dist/layout-tokens/types.d.ts.map +1 -0
  72. package/dist/layout-tokens/types.js +49 -0
  73. package/dist/layout-tokens/types.js.map +1 -0
  74. package/dist/layout-validation.d.ts +1547 -0
  75. package/dist/layout-validation.d.ts.map +1 -0
  76. package/dist/layout-validation.js +628 -0
  77. package/dist/layout-validation.js.map +1 -0
  78. package/dist/render.d.ts +23 -0
  79. package/dist/render.d.ts.map +1 -0
  80. package/dist/render.js +244 -0
  81. package/dist/render.js.map +1 -0
  82. package/dist/schema-validation.d.ts +208 -0
  83. package/dist/schema-validation.d.ts.map +1 -0
  84. package/dist/schema-validation.js +205 -0
  85. package/dist/schema-validation.js.map +1 -0
  86. package/dist/screen-generation/generators/css-in-js-generator.d.ts +82 -0
  87. package/dist/screen-generation/generators/css-in-js-generator.d.ts.map +1 -0
  88. package/dist/screen-generation/generators/css-in-js-generator.js +335 -0
  89. package/dist/screen-generation/generators/css-in-js-generator.js.map +1 -0
  90. package/dist/screen-generation/generators/index.d.ts +13 -0
  91. package/dist/screen-generation/generators/index.d.ts.map +1 -0
  92. package/dist/screen-generation/generators/index.js +32 -0
  93. package/dist/screen-generation/generators/index.js.map +1 -0
  94. package/dist/screen-generation/generators/react-generator.d.ts +100 -0
  95. package/dist/screen-generation/generators/react-generator.d.ts.map +1 -0
  96. package/dist/screen-generation/generators/react-generator.js +379 -0
  97. package/dist/screen-generation/generators/react-generator.js.map +1 -0
  98. package/dist/screen-generation/generators/tailwind-generator.d.ts +105 -0
  99. package/dist/screen-generation/generators/tailwind-generator.d.ts.map +1 -0
  100. package/dist/screen-generation/generators/tailwind-generator.js +355 -0
  101. package/dist/screen-generation/generators/tailwind-generator.js.map +1 -0
  102. package/dist/screen-generation/generators/types.d.ts +136 -0
  103. package/dist/screen-generation/generators/types.d.ts.map +1 -0
  104. package/dist/screen-generation/generators/types.js +18 -0
  105. package/dist/screen-generation/generators/types.js.map +1 -0
  106. package/dist/screen-generation/generators/utils.d.ts +187 -0
  107. package/dist/screen-generation/generators/utils.d.ts.map +1 -0
  108. package/dist/screen-generation/generators/utils.js +312 -0
  109. package/dist/screen-generation/generators/utils.js.map +1 -0
  110. package/dist/screen-generation/index.d.ts +14 -0
  111. package/dist/screen-generation/index.d.ts.map +1 -0
  112. package/dist/screen-generation/index.js +33 -0
  113. package/dist/screen-generation/index.js.map +1 -0
  114. package/dist/screen-generation/resolver/component-resolver.d.ts +157 -0
  115. package/dist/screen-generation/resolver/component-resolver.d.ts.map +1 -0
  116. package/dist/screen-generation/resolver/component-resolver.js +295 -0
  117. package/dist/screen-generation/resolver/component-resolver.js.map +1 -0
  118. package/dist/screen-generation/resolver/index.d.ts +10 -0
  119. package/dist/screen-generation/resolver/index.d.ts.map +1 -0
  120. package/dist/screen-generation/resolver/index.js +46 -0
  121. package/dist/screen-generation/resolver/index.js.map +1 -0
  122. package/dist/screen-generation/resolver/layout-resolver.d.ts +155 -0
  123. package/dist/screen-generation/resolver/layout-resolver.d.ts.map +1 -0
  124. package/dist/screen-generation/resolver/layout-resolver.js +193 -0
  125. package/dist/screen-generation/resolver/layout-resolver.js.map +1 -0
  126. package/dist/screen-generation/resolver/screen-resolver.d.ts +174 -0
  127. package/dist/screen-generation/resolver/screen-resolver.d.ts.map +1 -0
  128. package/dist/screen-generation/resolver/screen-resolver.js +373 -0
  129. package/dist/screen-generation/resolver/screen-resolver.js.map +1 -0
  130. package/dist/screen-generation/resolver/token-resolver.d.ts +170 -0
  131. package/dist/screen-generation/resolver/token-resolver.d.ts.map +1 -0
  132. package/dist/screen-generation/resolver/token-resolver.js +260 -0
  133. package/dist/screen-generation/resolver/token-resolver.js.map +1 -0
  134. package/dist/screen-generation/types.d.ts +116 -0
  135. package/dist/screen-generation/types.d.ts.map +1 -0
  136. package/dist/screen-generation/types.js +33 -0
  137. package/dist/screen-generation/types.js.map +1 -0
  138. package/dist/screen-generation/validators.d.ts +286 -0
  139. package/dist/screen-generation/validators.d.ts.map +1 -0
  140. package/dist/screen-generation/validators.js +323 -0
  141. package/dist/screen-generation/validators.js.map +1 -0
  142. package/dist/screen-templates/__tests__/registry.test.d.ts +6 -0
  143. package/dist/screen-templates/__tests__/registry.test.d.ts.map +1 -0
  144. package/dist/screen-templates/__tests__/registry.test.js +247 -0
  145. package/dist/screen-templates/__tests__/registry.test.js.map +1 -0
  146. package/dist/screen-templates/__tests__/templates.test.d.ts +6 -0
  147. package/dist/screen-templates/__tests__/templates.test.d.ts.map +1 -0
  148. package/dist/screen-templates/__tests__/templates.test.js +179 -0
  149. package/dist/screen-templates/__tests__/templates.test.js.map +1 -0
  150. package/dist/screen-templates/index.d.ts +39 -0
  151. package/dist/screen-templates/index.d.ts.map +1 -0
  152. package/dist/screen-templates/index.js +79 -0
  153. package/dist/screen-templates/index.js.map +1 -0
  154. package/dist/screen-templates/registry.d.ts +177 -0
  155. package/dist/screen-templates/registry.d.ts.map +1 -0
  156. package/dist/screen-templates/registry.js +274 -0
  157. package/dist/screen-templates/registry.js.map +1 -0
  158. package/dist/screen-templates/templates/account/index.d.ts +6 -0
  159. package/dist/screen-templates/templates/account/index.d.ts.map +1 -0
  160. package/dist/screen-templates/templates/account/index.js +6 -0
  161. package/dist/screen-templates/templates/account/index.js.map +1 -0
  162. package/dist/screen-templates/templates/account/profile.d.ts +23 -0
  163. package/dist/screen-templates/templates/account/profile.d.ts.map +1 -0
  164. package/dist/screen-templates/templates/account/profile.js +249 -0
  165. package/dist/screen-templates/templates/account/profile.js.map +1 -0
  166. package/dist/screen-templates/templates/auth/forgot-password.d.ts +23 -0
  167. package/dist/screen-templates/templates/auth/forgot-password.d.ts.map +1 -0
  168. package/dist/screen-templates/templates/auth/forgot-password.js +203 -0
  169. package/dist/screen-templates/templates/auth/forgot-password.js.map +1 -0
  170. package/dist/screen-templates/templates/auth/index.d.ts +9 -0
  171. package/dist/screen-templates/templates/auth/index.d.ts.map +1 -0
  172. package/dist/screen-templates/templates/auth/index.js +9 -0
  173. package/dist/screen-templates/templates/auth/index.js.map +1 -0
  174. package/dist/screen-templates/templates/auth/login.d.ts +24 -0
  175. package/dist/screen-templates/templates/auth/login.d.ts.map +1 -0
  176. package/dist/screen-templates/templates/auth/login.js +254 -0
  177. package/dist/screen-templates/templates/auth/login.js.map +1 -0
  178. package/dist/screen-templates/templates/auth/signup.d.ts +24 -0
  179. package/dist/screen-templates/templates/auth/signup.d.ts.map +1 -0
  180. package/dist/screen-templates/templates/auth/signup.js +315 -0
  181. package/dist/screen-templates/templates/auth/signup.js.map +1 -0
  182. package/dist/screen-templates/templates/auth/verification.d.ts +23 -0
  183. package/dist/screen-templates/templates/auth/verification.d.ts.map +1 -0
  184. package/dist/screen-templates/templates/auth/verification.js +239 -0
  185. package/dist/screen-templates/templates/auth/verification.js.map +1 -0
  186. package/dist/screen-templates/templates/feedback/confirmation.d.ts +9 -0
  187. package/dist/screen-templates/templates/feedback/confirmation.d.ts.map +1 -0
  188. package/dist/screen-templates/templates/feedback/confirmation.js +107 -0
  189. package/dist/screen-templates/templates/feedback/confirmation.js.map +1 -0
  190. package/dist/screen-templates/templates/feedback/empty.d.ts +9 -0
  191. package/dist/screen-templates/templates/feedback/empty.d.ts.map +1 -0
  192. package/dist/screen-templates/templates/feedback/empty.js +90 -0
  193. package/dist/screen-templates/templates/feedback/empty.js.map +1 -0
  194. package/dist/screen-templates/templates/feedback/error.d.ts +9 -0
  195. package/dist/screen-templates/templates/feedback/error.d.ts.map +1 -0
  196. package/dist/screen-templates/templates/feedback/error.js +99 -0
  197. package/dist/screen-templates/templates/feedback/error.js.map +1 -0
  198. package/dist/screen-templates/templates/feedback/index.d.ts +10 -0
  199. package/dist/screen-templates/templates/feedback/index.d.ts.map +1 -0
  200. package/dist/screen-templates/templates/feedback/index.js +10 -0
  201. package/dist/screen-templates/templates/feedback/index.js.map +1 -0
  202. package/dist/screen-templates/templates/feedback/loading.d.ts +9 -0
  203. package/dist/screen-templates/templates/feedback/loading.d.ts.map +1 -0
  204. package/dist/screen-templates/templates/feedback/loading.js +77 -0
  205. package/dist/screen-templates/templates/feedback/loading.js.map +1 -0
  206. package/dist/screen-templates/templates/feedback/success.d.ts +9 -0
  207. package/dist/screen-templates/templates/feedback/success.d.ts.map +1 -0
  208. package/dist/screen-templates/templates/feedback/success.js +99 -0
  209. package/dist/screen-templates/templates/feedback/success.js.map +1 -0
  210. package/dist/screen-templates/templates/home/index.d.ts +6 -0
  211. package/dist/screen-templates/templates/home/index.d.ts.map +1 -0
  212. package/dist/screen-templates/templates/home/index.js +6 -0
  213. package/dist/screen-templates/templates/home/index.js.map +1 -0
  214. package/dist/screen-templates/templates/home/landing.d.ts +24 -0
  215. package/dist/screen-templates/templates/home/landing.d.ts.map +1 -0
  216. package/dist/screen-templates/templates/home/landing.js +197 -0
  217. package/dist/screen-templates/templates/home/landing.js.map +1 -0
  218. package/dist/screen-templates/templates/settings/index.d.ts +6 -0
  219. package/dist/screen-templates/templates/settings/index.d.ts.map +1 -0
  220. package/dist/screen-templates/templates/settings/index.js +6 -0
  221. package/dist/screen-templates/templates/settings/index.js.map +1 -0
  222. package/dist/screen-templates/templates/settings/preferences.d.ts +24 -0
  223. package/dist/screen-templates/templates/settings/preferences.d.ts.map +1 -0
  224. package/dist/screen-templates/templates/settings/preferences.js +265 -0
  225. package/dist/screen-templates/templates/settings/preferences.js.map +1 -0
  226. package/dist/screen-templates/types.d.ts +229 -0
  227. package/dist/screen-templates/types.d.ts.map +1 -0
  228. package/dist/screen-templates/types.js +7 -0
  229. package/dist/screen-templates/types.js.map +1 -0
  230. package/dist/theme-v2.d.ts +228 -0
  231. package/dist/theme-v2.d.ts.map +1 -0
  232. package/dist/theme-v2.js +158 -0
  233. package/dist/theme-v2.js.map +1 -0
  234. package/dist/theme.d.ts +60 -0
  235. package/dist/theme.d.ts.map +1 -0
  236. package/dist/theme.js +76 -0
  237. package/dist/theme.js.map +1 -0
  238. package/dist/token-resolver.d.ts +69 -0
  239. package/dist/token-resolver.d.ts.map +1 -0
  240. package/dist/token-resolver.js +122 -0
  241. package/dist/token-resolver.js.map +1 -0
  242. package/dist/token-validation.d.ts +432 -0
  243. package/dist/token-validation.d.ts.map +1 -0
  244. package/dist/token-validation.js +140 -0
  245. package/dist/token-validation.js.map +1 -0
  246. package/dist/tokens.d.ts +158 -0
  247. package/dist/tokens.d.ts.map +1 -0
  248. package/dist/tokens.js +10 -0
  249. package/dist/tokens.js.map +1 -0
  250. package/dist/types.d.ts +77 -0
  251. package/dist/types.d.ts.map +1 -0
  252. package/dist/types.js +7 -0
  253. package/dist/types.js.map +1 -0
  254. package/package.json +53 -0
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @tekton-ui/core - Generator Utilities
3
+ * Common utility functions for code generators
4
+ * [SPEC-LAYOUT-002] [PHASE-3]
5
+ */
6
+ /**
7
+ * Convert string to camelCase
8
+ *
9
+ * @param str - Input string
10
+ * @returns camelCase string
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * camelCase('user-profile-card'); // → 'userProfileCard'
15
+ * camelCase('UserProfileCard'); // → 'userProfileCard'
16
+ * ```
17
+ */
18
+ export declare function camelCase(str: string): string;
19
+ /**
20
+ * Convert string to PascalCase
21
+ *
22
+ * @param str - Input string
23
+ * @returns PascalCase string
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * pascalCase('user-profile-card'); // → 'UserProfileCard'
28
+ * pascalCase('userProfileCard'); // → 'UserProfileCard'
29
+ * ```
30
+ */
31
+ export declare function pascalCase(str: string): string;
32
+ /**
33
+ * Convert string to kebab-case
34
+ *
35
+ * @param str - Input string
36
+ * @returns kebab-case string
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * kebabCase('UserProfileCard'); // → 'user-profile-card'
41
+ * kebabCase('userProfileCard'); // → 'user-profile-card'
42
+ * ```
43
+ */
44
+ export declare function kebabCase(str: string): string;
45
+ /**
46
+ * Format code with prettier (if available)
47
+ *
48
+ * @param code - Code string to format
49
+ * @param parser - Prettier parser to use
50
+ * @returns Formatted code
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const code = 'const x={a:1,b:2}';
55
+ * const formatted = formatCode(code, 'typescript');
56
+ * // → 'const x = { a: 1, b: 2 };\n'
57
+ * ```
58
+ */
59
+ export declare function formatCode(code: string, _parser?: 'typescript' | 'babel'): string;
60
+ /**
61
+ * Add indentation to each line
62
+ *
63
+ * @param code - Code string
64
+ * @param depth - Indentation depth
65
+ * @param indent - Spaces per indent (default: 2)
66
+ * @returns Indented code
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * indent('const x = 1;\nconst y = 2;', 1);
71
+ * // → ' const x = 1;\n const y = 2;'
72
+ * ```
73
+ */
74
+ export declare function indent(code: string, depth: number, indent?: number): string;
75
+ /**
76
+ * Escape special characters for JSX text content
77
+ *
78
+ * @param text - Text to escape
79
+ * @returns Escaped text safe for JSX
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * escapeJSX('Hello <world> & "friends"');
84
+ * // → 'Hello &lt;world&gt; &amp; &quot;friends&quot;'
85
+ * ```
86
+ */
87
+ export declare function escapeJSX(text: string): string;
88
+ /**
89
+ * Check if a prop value needs to be wrapped in JSX expression
90
+ *
91
+ * @param value - Prop value
92
+ * @returns True if value needs JSX expression braces
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * needsJSXExpression('hello'); // → false (string literal)
97
+ * needsJSXExpression(42); // → true (number)
98
+ * needsJSXExpression(true); // → true (boolean)
99
+ * ```
100
+ */
101
+ export declare function needsJSXExpression(value: unknown): boolean;
102
+ /**
103
+ * Convert prop value to JSX attribute value
104
+ *
105
+ * @param value - Prop value
106
+ * @returns JSX attribute value string
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * propValueToJSX('hello'); // → '"hello"'
111
+ * propValueToJSX(42); // → '{42}'
112
+ * propValueToJSX(true); // → '{true}'
113
+ * propValueToJSX({ a: 1 }); // → '{{"a":1}}'
114
+ * ```
115
+ */
116
+ export declare function propValueToJSX(value: unknown): string;
117
+ /**
118
+ * Generate import statements from dependencies
119
+ *
120
+ * @param dependencies - Module dependencies (module → named imports)
121
+ * @param format - Output format
122
+ * @returns Import statements
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * generateImports({
127
+ * 'react': ['useState', 'useEffect'],
128
+ * 'styled-components': ['default as styled']
129
+ * }, 'typescript');
130
+ * // → "import { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n"
131
+ * ```
132
+ */
133
+ export declare function generateImports(dependencies: Record<string, string[]>, _format?: 'typescript' | 'javascript'): string;
134
+ /**
135
+ * Convert CSS variable reference to token name
136
+ *
137
+ * @param cssVar - CSS variable reference (e.g., 'var(--atomic-spacing-16)')
138
+ * @returns Token name (e.g., 'atomic.spacing.16')
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * cssVarToToken('var(--atomic-spacing-16)');
143
+ * // → 'atomic.spacing.16'
144
+ * ```
145
+ */
146
+ export declare function cssVarToToken(cssVar: string): string;
147
+ /**
148
+ * Extract property name from CSS variable name
149
+ *
150
+ * @param cssVarName - CSS variable name (e.g., '--component-button-primary-background')
151
+ * @returns Property name (e.g., 'background')
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * extractPropertyFromCSSVar('--component-button-primary-background');
156
+ * // → 'background'
157
+ * ```
158
+ */
159
+ export declare function extractPropertyFromCSSVar(cssVarName: string): string;
160
+ /**
161
+ * Check if a string is a valid JavaScript identifier
162
+ *
163
+ * @param name - String to check
164
+ * @returns True if valid identifier
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * isValidIdentifier('myVariable'); // → true
169
+ * isValidIdentifier('my-variable'); // → false
170
+ * isValidIdentifier('123variable'); // → false
171
+ * ```
172
+ */
173
+ export declare function isValidIdentifier(name: string): boolean;
174
+ /**
175
+ * Sanitize string to valid JavaScript identifier
176
+ *
177
+ * @param name - String to sanitize
178
+ * @returns Valid JavaScript identifier
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * sanitizeIdentifier('my-component'); // → 'myComponent'
183
+ * sanitizeIdentifier('123-component'); // → '_123Component'
184
+ * ```
185
+ */
186
+ export declare function sanitizeIdentifier(name: string): string;
187
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/screen-generation/generators/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAY,GAAG,OAAsB,GAAG,MAAM,CAU/F;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAM9E;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcrD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACtC,OAAO,GAAE,YAAY,GAAG,YAA2B,GAClD,MAAM,CAyBR;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGpE;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD"}
@@ -0,0 +1,312 @@
1
+ /**
2
+ * @tekton-ui/core - Generator Utilities
3
+ * Common utility functions for code generators
4
+ * [SPEC-LAYOUT-002] [PHASE-3]
5
+ */
6
+ // ============================================================================
7
+ // String Case Conversion
8
+ // ============================================================================
9
+ /**
10
+ * Convert string to camelCase
11
+ *
12
+ * @param str - Input string
13
+ * @returns camelCase string
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * camelCase('user-profile-card'); // → 'userProfileCard'
18
+ * camelCase('UserProfileCard'); // → 'userProfileCard'
19
+ * ```
20
+ */
21
+ export function camelCase(str) {
22
+ return str
23
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
24
+ .replace(/^[A-Z]/, char => char.toLowerCase());
25
+ }
26
+ /**
27
+ * Convert string to PascalCase
28
+ *
29
+ * @param str - Input string
30
+ * @returns PascalCase string
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * pascalCase('user-profile-card'); // → 'UserProfileCard'
35
+ * pascalCase('userProfileCard'); // → 'UserProfileCard'
36
+ * ```
37
+ */
38
+ export function pascalCase(str) {
39
+ const camelCased = camelCase(str);
40
+ return camelCased.charAt(0).toUpperCase() + camelCased.slice(1);
41
+ }
42
+ /**
43
+ * Convert string to kebab-case
44
+ *
45
+ * @param str - Input string
46
+ * @returns kebab-case string
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * kebabCase('UserProfileCard'); // → 'user-profile-card'
51
+ * kebabCase('userProfileCard'); // → 'user-profile-card'
52
+ * ```
53
+ */
54
+ export function kebabCase(str) {
55
+ return str
56
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
57
+ .replace(/[\s_]+/g, '-')
58
+ .toLowerCase();
59
+ }
60
+ // ============================================================================
61
+ // Code Formatting
62
+ // ============================================================================
63
+ /**
64
+ * Format code with prettier (if available)
65
+ *
66
+ * @param code - Code string to format
67
+ * @param parser - Prettier parser to use
68
+ * @returns Formatted code
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const code = 'const x={a:1,b:2}';
73
+ * const formatted = formatCode(code, 'typescript');
74
+ * // → 'const x = { a: 1, b: 2 };\n'
75
+ * ```
76
+ */
77
+ export function formatCode(code, _parser = 'typescript') {
78
+ try {
79
+ // Try to use prettier if available
80
+ // In a real implementation, this would use prettier programmatically
81
+ // For now, we'll do basic formatting
82
+ return basicFormat(code);
83
+ }
84
+ catch {
85
+ // Fallback to basic formatting
86
+ return basicFormat(code);
87
+ }
88
+ }
89
+ /**
90
+ * Basic code formatting (fallback)
91
+ *
92
+ * @param code - Code string to format
93
+ * @returns Formatted code
94
+ */
95
+ function basicFormat(code) {
96
+ // Ensure consistent line endings
97
+ let formatted = code.replace(/\r\n/g, '\n');
98
+ // Ensure single newline at end
99
+ formatted = formatted.replace(/\n+$/, '\n');
100
+ return formatted;
101
+ }
102
+ /**
103
+ * Add indentation to each line
104
+ *
105
+ * @param code - Code string
106
+ * @param depth - Indentation depth
107
+ * @param indent - Spaces per indent (default: 2)
108
+ * @returns Indented code
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * indent('const x = 1;\nconst y = 2;', 1);
113
+ * // → ' const x = 1;\n const y = 2;'
114
+ * ```
115
+ */
116
+ export function indent(code, depth, indent = 2) {
117
+ const spaces = ' '.repeat(depth * indent);
118
+ return code
119
+ .split('\n')
120
+ .map(line => (line.trim() ? spaces + line : line))
121
+ .join('\n');
122
+ }
123
+ // ============================================================================
124
+ // JSX/React Utilities
125
+ // ============================================================================
126
+ /**
127
+ * Escape special characters for JSX text content
128
+ *
129
+ * @param text - Text to escape
130
+ * @returns Escaped text safe for JSX
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * escapeJSX('Hello <world> & "friends"');
135
+ * // → 'Hello &lt;world&gt; &amp; &quot;friends&quot;'
136
+ * ```
137
+ */
138
+ export function escapeJSX(text) {
139
+ return text
140
+ .replace(/&/g, '&amp;')
141
+ .replace(/</g, '&lt;')
142
+ .replace(/>/g, '&gt;')
143
+ .replace(/"/g, '&quot;')
144
+ .replace(/'/g, '&#39;');
145
+ }
146
+ /**
147
+ * Check if a prop value needs to be wrapped in JSX expression
148
+ *
149
+ * @param value - Prop value
150
+ * @returns True if value needs JSX expression braces
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * needsJSXExpression('hello'); // → false (string literal)
155
+ * needsJSXExpression(42); // → true (number)
156
+ * needsJSXExpression(true); // → true (boolean)
157
+ * ```
158
+ */
159
+ export function needsJSXExpression(value) {
160
+ return typeof value !== 'string';
161
+ }
162
+ /**
163
+ * Convert prop value to JSX attribute value
164
+ *
165
+ * @param value - Prop value
166
+ * @returns JSX attribute value string
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * propValueToJSX('hello'); // → '"hello"'
171
+ * propValueToJSX(42); // → '{42}'
172
+ * propValueToJSX(true); // → '{true}'
173
+ * propValueToJSX({ a: 1 }); // → '{{"a":1}}'
174
+ * ```
175
+ */
176
+ export function propValueToJSX(value) {
177
+ if (typeof value === 'string') {
178
+ return `"${value}"`;
179
+ }
180
+ if (typeof value === 'number' || typeof value === 'boolean') {
181
+ return `{${value}}`;
182
+ }
183
+ if (typeof value === 'object' && value !== null) {
184
+ return `{${JSON.stringify(value)}}`;
185
+ }
186
+ return '""';
187
+ }
188
+ // ============================================================================
189
+ // Import Generation
190
+ // ============================================================================
191
+ /**
192
+ * Generate import statements from dependencies
193
+ *
194
+ * @param dependencies - Module dependencies (module → named imports)
195
+ * @param format - Output format
196
+ * @returns Import statements
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * generateImports({
201
+ * 'react': ['useState', 'useEffect'],
202
+ * 'styled-components': ['default as styled']
203
+ * }, 'typescript');
204
+ * // → "import { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n"
205
+ * ```
206
+ */
207
+ export function generateImports(dependencies, _format = 'typescript') {
208
+ const imports = [];
209
+ for (const [module, namedImports] of Object.entries(dependencies)) {
210
+ if (namedImports.length === 0) {
211
+ // Side-effect import
212
+ imports.push(`import '${module}';`);
213
+ }
214
+ else if (namedImports.some(imp => imp.startsWith('default'))) {
215
+ // Default import
216
+ const defaultImport = namedImports.find(imp => imp.startsWith('default'));
217
+ const defaultName = defaultImport.split(' as ')[1] || 'default';
218
+ const named = namedImports.filter(imp => !imp.startsWith('default'));
219
+ if (named.length > 0) {
220
+ imports.push(`import ${defaultName}, { ${named.join(', ')} } from '${module}';`);
221
+ }
222
+ else {
223
+ imports.push(`import ${defaultName} from '${module}';`);
224
+ }
225
+ }
226
+ else {
227
+ // Named imports
228
+ imports.push(`import { ${namedImports.join(', ')} } from '${module}';`);
229
+ }
230
+ }
231
+ return imports.join('\n') + (imports.length > 0 ? '\n\n' : '');
232
+ }
233
+ // ============================================================================
234
+ // CSS Utilities
235
+ // ============================================================================
236
+ /**
237
+ * Convert CSS variable reference to token name
238
+ *
239
+ * @param cssVar - CSS variable reference (e.g., 'var(--atomic-spacing-16)')
240
+ * @returns Token name (e.g., 'atomic.spacing.16')
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * cssVarToToken('var(--atomic-spacing-16)');
245
+ * // → 'atomic.spacing.16'
246
+ * ```
247
+ */
248
+ export function cssVarToToken(cssVar) {
249
+ // Remove 'var(' and ')' and leading '--'
250
+ const varName = cssVar.replace(/^var\(--/, '').replace(/\)$/, '');
251
+ // Convert hyphens to dots
252
+ return varName.replace(/-/g, '.');
253
+ }
254
+ /**
255
+ * Extract property name from CSS variable name
256
+ *
257
+ * @param cssVarName - CSS variable name (e.g., '--component-button-primary-background')
258
+ * @returns Property name (e.g., 'background')
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * extractPropertyFromCSSVar('--component-button-primary-background');
263
+ * // → 'background'
264
+ * ```
265
+ */
266
+ export function extractPropertyFromCSSVar(cssVarName) {
267
+ const parts = cssVarName.replace(/^--/, '').split('-');
268
+ return parts[parts.length - 1];
269
+ }
270
+ // ============================================================================
271
+ // Validation
272
+ // ============================================================================
273
+ /**
274
+ * Check if a string is a valid JavaScript identifier
275
+ *
276
+ * @param name - String to check
277
+ * @returns True if valid identifier
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * isValidIdentifier('myVariable'); // → true
282
+ * isValidIdentifier('my-variable'); // → false
283
+ * isValidIdentifier('123variable'); // → false
284
+ * ```
285
+ */
286
+ export function isValidIdentifier(name) {
287
+ return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name);
288
+ }
289
+ /**
290
+ * Sanitize string to valid JavaScript identifier
291
+ *
292
+ * @param name - String to sanitize
293
+ * @returns Valid JavaScript identifier
294
+ *
295
+ * @example
296
+ * ```typescript
297
+ * sanitizeIdentifier('my-component'); // → 'myComponent'
298
+ * sanitizeIdentifier('123-component'); // → '_123Component'
299
+ * ```
300
+ */
301
+ export function sanitizeIdentifier(name) {
302
+ // Convert to camelCase
303
+ let sanitized = camelCase(name);
304
+ // Ensure it doesn't start with a number
305
+ if (/^[0-9]/.test(sanitized)) {
306
+ sanitized = '_' + sanitized;
307
+ }
308
+ // Remove any remaining invalid characters
309
+ sanitized = sanitized.replace(/[^a-zA-Z0-9_$]/g, '');
310
+ return sanitized || '_unnamed';
311
+ }
312
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/screen-generation/generators/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @tekton-ui/core - Screen Generation Module
3
+ * Declarative screen definition system with layout tokens
4
+ * [SPEC-LAYOUT-002] [PHASE-1] [PHASE-2] [PHASE-3]
5
+ *
6
+ * @module screen-generation
7
+ */
8
+ export type { ComponentType, ComponentDefinition, ResponsiveOverrides, SectionDefinition, ScreenMeta, ScreenDefinition, ValidationContext, } from './types.js';
9
+ export { isComponentDefinition, isScreenDefinition } from './types.js';
10
+ export { ResponsiveOverridesSchema, ComponentDefinitionSchema, SectionDefinitionSchema, ScreenMetaSchema, ScreenDefinitionSchema, validateComponent, validateSection, validateScreenDefinition, assertValidScreenDefinition, validateScreenDefinitions, isValidShellToken, isValidPageToken, isValidSectionToken, getUsedComponentTypes, } from './validators.js';
11
+ export type { ValidationResult } from '../schema-validation.js';
12
+ export { type TokenBindingContext, type ResolvedTokenBindings, resolveBinding, resolveBindings, substituteTemplateVariables, tokenRefToCSSVar, isValidTokenBinding, extractTemplateVariables, clearBindingCache, type LayoutContext, resolveShell, resolvePage, resolveSection, parseLayoutType, type ResolvedComponent, type ComponentContext, resolveComponent, resolveChildren, isValidComponentDefinition, extractComponentTypes, clearComponentCache, type ResolvedScreen, type ResolvedSection, type ComponentTree, type ComponentTreeNode, resolveScreen, isValidResolvedScreen, getScreenStats, clearScreenCache, } from './resolver/index.js';
13
+ export { type CSSFramework, type OutputFormat, type ComponentStyle, type GeneratorOptions, type GeneratorResult, type GeneratedFile, type CSSVariableMap, type TailwindClassMap, type StyledThemeConfig, type ComponentGenerationContext, defaultGeneratorOptions, camelCase, pascalCase, kebabCase, formatCode, indent, escapeJSX, needsJSXExpression, propValueToJSX, generateImports, cssVarToToken, extractPropertyFromCSSVar, isValidIdentifier, sanitizeIdentifier, type CSSInJSFormat, convertCSSVarsToTheme, generateComponentStyles, generateStyledComponents, tokenToTailwindClass, generateComponentClasses, generateTailwindConfig, generateTailwindClasses, generateComponentInterface, generateComponentJSX, generateComponentTree, generateReactComponent, } from './generators/index.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screen-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMvE,OAAO,EAEL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EAEtB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EAEzB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAMzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EAEjB,KAAK,aAAa,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EAEf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAEnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,uBAAuB,EAEvB,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAElB,KAAK,aAAa,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EAExB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAEvB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @tekton-ui/core - Screen Generation Module
3
+ * Declarative screen definition system with layout tokens
4
+ * [SPEC-LAYOUT-002] [PHASE-1] [PHASE-2] [PHASE-3]
5
+ *
6
+ * @module screen-generation
7
+ */
8
+ export { isComponentDefinition, isScreenDefinition } from './types.js';
9
+ // ============================================================================
10
+ // Validation Schemas and Functions
11
+ // ============================================================================
12
+ export {
13
+ // Zod Schemas
14
+ ResponsiveOverridesSchema, ComponentDefinitionSchema, SectionDefinitionSchema, ScreenMetaSchema, ScreenDefinitionSchema,
15
+ // Validation Functions
16
+ validateComponent, validateSection, validateScreenDefinition, assertValidScreenDefinition, validateScreenDefinitions,
17
+ // Utility Functions
18
+ isValidShellToken, isValidPageToken, isValidSectionToken, getUsedComponentTypes, } from './validators.js';
19
+ // ============================================================================
20
+ // Screen Resolver Pipeline [PHASE-2]
21
+ // ============================================================================
22
+ export { resolveBinding, resolveBindings, substituteTemplateVariables, tokenRefToCSSVar, isValidTokenBinding, extractTemplateVariables, clearBindingCache, resolveShell, resolvePage, resolveSection, parseLayoutType, resolveComponent, resolveChildren, isValidComponentDefinition, extractComponentTypes, clearComponentCache, resolveScreen, isValidResolvedScreen, getScreenStats, clearScreenCache, } from './resolver/index.js';
23
+ // ============================================================================
24
+ // Output Generators [PHASE-3]
25
+ // ============================================================================
26
+ export { defaultGeneratorOptions,
27
+ // Utilities
28
+ camelCase, pascalCase, kebabCase, formatCode, indent, escapeJSX, needsJSXExpression, propValueToJSX, generateImports, cssVarToToken, extractPropertyFromCSSVar, isValidIdentifier, sanitizeIdentifier, convertCSSVarsToTheme, generateComponentStyles, generateStyledComponents,
29
+ // Tailwind Generator
30
+ tokenToTailwindClass, generateComponentClasses, generateTailwindConfig, generateTailwindClasses,
31
+ // React Generator
32
+ generateComponentInterface, generateComponentJSX, generateComponentTree, generateReactComponent, } from './generators/index.js';
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screen-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,OAAO;AACL,cAAc;AACd,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB;AACtB,uBAAuB;AACvB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB;AACzB,oBAAoB;AACpB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAQzB,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E,OAAO,EAIL,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EAGjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EAIf,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAMnB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAYL,uBAAuB;AACvB,YAAY;AACZ,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAGlB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB;AACxB,qBAAqB;AACrB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB;AACvB,kBAAkB;AAClB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}