@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,286 @@
1
+ /**
2
+ * @tekton-ui/core - Screen Definition Validation
3
+ * Zod-based runtime validation for screen definitions
4
+ * [SPEC-LAYOUT-002] [PHASE-1]
5
+ */
6
+ import { z } from 'zod';
7
+ import type { ValidationResult } from '../schema-validation.js';
8
+ import type { ScreenDefinition, ComponentDefinition, ComponentType, ValidationContext } from './types.js';
9
+ /**
10
+ * ResponsiveOverrides Zod Schema
11
+ */
12
+ export declare const ResponsiveOverridesSchema: z.ZodObject<{
13
+ sm: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
14
+ md: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
15
+ lg: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
16
+ xl: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ '2xl': z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
18
+ }, "strict", z.ZodTypeAny, {
19
+ sm?: Record<string, unknown> | undefined;
20
+ md?: Record<string, unknown> | undefined;
21
+ lg?: Record<string, unknown> | undefined;
22
+ xl?: Record<string, unknown> | undefined;
23
+ '2xl'?: Record<string, unknown> | undefined;
24
+ }, {
25
+ sm?: Record<string, unknown> | undefined;
26
+ md?: Record<string, unknown> | undefined;
27
+ lg?: Record<string, unknown> | undefined;
28
+ xl?: Record<string, unknown> | undefined;
29
+ '2xl'?: Record<string, unknown> | undefined;
30
+ }>;
31
+ /**
32
+ * ComponentDefinition Zod Schema
33
+ * Supports nested children (recursive)
34
+ */
35
+ export declare const ComponentDefinitionSchema: z.ZodType<ComponentDefinition>;
36
+ /**
37
+ * SectionDefinition Zod Schema
38
+ */
39
+ export declare const SectionDefinitionSchema: z.ZodObject<{
40
+ id: z.ZodString;
41
+ pattern: z.ZodString;
42
+ components: z.ZodArray<z.ZodType<ComponentDefinition, z.ZodTypeDef, ComponentDefinition>, "many">;
43
+ responsive: z.ZodOptional<z.ZodObject<{
44
+ sm: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
+ md: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
+ lg: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
47
+ xl: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
48
+ '2xl': z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
49
+ }, "strict", z.ZodTypeAny, {
50
+ sm?: Record<string, unknown> | undefined;
51
+ md?: Record<string, unknown> | undefined;
52
+ lg?: Record<string, unknown> | undefined;
53
+ xl?: Record<string, unknown> | undefined;
54
+ '2xl'?: Record<string, unknown> | undefined;
55
+ }, {
56
+ sm?: Record<string, unknown> | undefined;
57
+ md?: Record<string, unknown> | undefined;
58
+ lg?: Record<string, unknown> | undefined;
59
+ xl?: Record<string, unknown> | undefined;
60
+ '2xl'?: Record<string, unknown> | undefined;
61
+ }>>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ id: string;
64
+ pattern: string;
65
+ components: ComponentDefinition[];
66
+ responsive?: {
67
+ sm?: Record<string, unknown> | undefined;
68
+ md?: Record<string, unknown> | undefined;
69
+ lg?: Record<string, unknown> | undefined;
70
+ xl?: Record<string, unknown> | undefined;
71
+ '2xl'?: Record<string, unknown> | undefined;
72
+ } | undefined;
73
+ }, {
74
+ id: string;
75
+ pattern: string;
76
+ components: ComponentDefinition[];
77
+ responsive?: {
78
+ sm?: Record<string, unknown> | undefined;
79
+ md?: Record<string, unknown> | undefined;
80
+ lg?: Record<string, unknown> | undefined;
81
+ xl?: Record<string, unknown> | undefined;
82
+ '2xl'?: Record<string, unknown> | undefined;
83
+ } | undefined;
84
+ }>;
85
+ /**
86
+ * ScreenMeta Zod Schema
87
+ */
88
+ export declare const ScreenMetaSchema: z.ZodObject<{
89
+ author: z.ZodOptional<z.ZodString>;
90
+ createdAt: z.ZodOptional<z.ZodString>;
91
+ version: z.ZodOptional<z.ZodString>;
92
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ author?: string | undefined;
95
+ createdAt?: string | undefined;
96
+ version?: string | undefined;
97
+ tags?: string[] | undefined;
98
+ }, {
99
+ author?: string | undefined;
100
+ createdAt?: string | undefined;
101
+ version?: string | undefined;
102
+ tags?: string[] | undefined;
103
+ }>;
104
+ /**
105
+ * ScreenDefinition Zod Schema
106
+ */
107
+ export declare const ScreenDefinitionSchema: z.ZodObject<{
108
+ id: z.ZodString;
109
+ name: z.ZodString;
110
+ description: z.ZodOptional<z.ZodString>;
111
+ shell: z.ZodString;
112
+ page: z.ZodString;
113
+ themeId: z.ZodDefault<z.ZodString>;
114
+ sections: z.ZodArray<z.ZodObject<{
115
+ id: z.ZodString;
116
+ pattern: z.ZodString;
117
+ components: z.ZodArray<z.ZodType<ComponentDefinition, z.ZodTypeDef, ComponentDefinition>, "many">;
118
+ responsive: z.ZodOptional<z.ZodObject<{
119
+ sm: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
120
+ md: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
+ lg: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
+ xl: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
123
+ '2xl': z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
+ }, "strict", z.ZodTypeAny, {
125
+ sm?: Record<string, unknown> | undefined;
126
+ md?: Record<string, unknown> | undefined;
127
+ lg?: Record<string, unknown> | undefined;
128
+ xl?: Record<string, unknown> | undefined;
129
+ '2xl'?: Record<string, unknown> | undefined;
130
+ }, {
131
+ sm?: Record<string, unknown> | undefined;
132
+ md?: Record<string, unknown> | undefined;
133
+ lg?: Record<string, unknown> | undefined;
134
+ xl?: Record<string, unknown> | undefined;
135
+ '2xl'?: Record<string, unknown> | undefined;
136
+ }>>;
137
+ }, "strip", z.ZodTypeAny, {
138
+ id: string;
139
+ pattern: string;
140
+ components: ComponentDefinition[];
141
+ responsive?: {
142
+ sm?: Record<string, unknown> | undefined;
143
+ md?: Record<string, unknown> | undefined;
144
+ lg?: Record<string, unknown> | undefined;
145
+ xl?: Record<string, unknown> | undefined;
146
+ '2xl'?: Record<string, unknown> | undefined;
147
+ } | undefined;
148
+ }, {
149
+ id: string;
150
+ pattern: string;
151
+ components: ComponentDefinition[];
152
+ responsive?: {
153
+ sm?: Record<string, unknown> | undefined;
154
+ md?: Record<string, unknown> | undefined;
155
+ lg?: Record<string, unknown> | undefined;
156
+ xl?: Record<string, unknown> | undefined;
157
+ '2xl'?: Record<string, unknown> | undefined;
158
+ } | undefined;
159
+ }>, "many">;
160
+ meta: z.ZodOptional<z.ZodObject<{
161
+ author: z.ZodOptional<z.ZodString>;
162
+ createdAt: z.ZodOptional<z.ZodString>;
163
+ version: z.ZodOptional<z.ZodString>;
164
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
165
+ }, "strip", z.ZodTypeAny, {
166
+ author?: string | undefined;
167
+ createdAt?: string | undefined;
168
+ version?: string | undefined;
169
+ tags?: string[] | undefined;
170
+ }, {
171
+ author?: string | undefined;
172
+ createdAt?: string | undefined;
173
+ version?: string | undefined;
174
+ tags?: string[] | undefined;
175
+ }>>;
176
+ }, "strip", z.ZodTypeAny, {
177
+ name: string;
178
+ id: string;
179
+ shell: string;
180
+ page: string;
181
+ themeId: string;
182
+ sections: {
183
+ id: string;
184
+ pattern: string;
185
+ components: ComponentDefinition[];
186
+ responsive?: {
187
+ sm?: Record<string, unknown> | undefined;
188
+ md?: Record<string, unknown> | undefined;
189
+ lg?: Record<string, unknown> | undefined;
190
+ xl?: Record<string, unknown> | undefined;
191
+ '2xl'?: Record<string, unknown> | undefined;
192
+ } | undefined;
193
+ }[];
194
+ description?: string | undefined;
195
+ meta?: {
196
+ author?: string | undefined;
197
+ createdAt?: string | undefined;
198
+ version?: string | undefined;
199
+ tags?: string[] | undefined;
200
+ } | undefined;
201
+ }, {
202
+ name: string;
203
+ id: string;
204
+ shell: string;
205
+ page: string;
206
+ sections: {
207
+ id: string;
208
+ pattern: string;
209
+ components: ComponentDefinition[];
210
+ responsive?: {
211
+ sm?: Record<string, unknown> | undefined;
212
+ md?: Record<string, unknown> | undefined;
213
+ lg?: Record<string, unknown> | undefined;
214
+ xl?: Record<string, unknown> | undefined;
215
+ '2xl'?: Record<string, unknown> | undefined;
216
+ } | undefined;
217
+ }[];
218
+ description?: string | undefined;
219
+ themeId?: string | undefined;
220
+ meta?: {
221
+ author?: string | undefined;
222
+ createdAt?: string | undefined;
223
+ version?: string | undefined;
224
+ tags?: string[] | undefined;
225
+ } | undefined;
226
+ }>;
227
+ /**
228
+ * Validate a ComponentDefinition
229
+ * @param component - Component definition to validate
230
+ * @returns Validation result with helpful error messages
231
+ */
232
+ export declare function validateComponent(component: unknown): ValidationResult;
233
+ /**
234
+ * Validate a SectionDefinition
235
+ * @param section - Section definition to validate
236
+ * @returns Validation result with helpful error messages
237
+ */
238
+ export declare function validateSection(section: unknown): ValidationResult;
239
+ /**
240
+ * Validate a ScreenDefinition
241
+ * @param screen - Screen definition to validate
242
+ * @param context - Optional validation context for additional checks
243
+ * @returns Validation result with helpful error messages
244
+ */
245
+ export declare function validateScreenDefinition(screen: unknown, context?: ValidationContext): ValidationResult;
246
+ /**
247
+ * Assert that a screen definition is valid (throws on invalid)
248
+ * @param screen - Screen definition to validate
249
+ * @param context - Optional validation context
250
+ * @throws Error if validation fails
251
+ */
252
+ export declare function assertValidScreenDefinition(screen: unknown, context?: ValidationContext): asserts screen is ScreenDefinition;
253
+ /**
254
+ * Validate multiple screen definitions
255
+ * @param screens - Array of screen definitions to validate
256
+ * @param context - Optional validation context
257
+ * @returns Validation summary
258
+ */
259
+ export declare function validateScreenDefinitions(screens: unknown[], context?: ValidationContext): {
260
+ totalScreens: number;
261
+ validScreens: number;
262
+ invalidScreens: number;
263
+ validationResults: Array<{
264
+ id: string;
265
+ valid: boolean;
266
+ errors?: string[];
267
+ warnings?: string[];
268
+ }>;
269
+ };
270
+ /**
271
+ * Check if a token ID matches the shell pattern
272
+ */
273
+ export declare function isValidShellToken(tokenId: string): boolean;
274
+ /**
275
+ * Check if a token ID matches the page pattern
276
+ */
277
+ export declare function isValidPageToken(tokenId: string): boolean;
278
+ /**
279
+ * Check if a token ID matches the section pattern
280
+ */
281
+ export declare function isValidSectionToken(tokenId: string): boolean;
282
+ /**
283
+ * Get all component types used in a screen definition
284
+ */
285
+ export declare function getUsedComponentTypes(screen: ScreenDefinition): Set<ComponentType>;
286
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/screen-generation/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAkEpB;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAQ3B,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAapE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAW3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBjC,CAAC;AAMH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,CActE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAclE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAqElB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAKpC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,KAAK,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,CAAC;CACJ,CAmBA;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAAC,aAAa,CAAC,CAmBlF"}
@@ -0,0 +1,323 @@
1
+ /**
2
+ * @tekton-ui/core - Screen Definition Validation
3
+ * Zod-based runtime validation for screen definitions
4
+ * [SPEC-LAYOUT-002] [PHASE-1]
5
+ */
6
+ import { z } from 'zod';
7
+ // ============================================================================
8
+ // Component Type Validation
9
+ // ============================================================================
10
+ /**
11
+ * Component type enum - 20 component types
12
+ */
13
+ const COMPONENT_TYPES = [
14
+ // Primitive (10)
15
+ 'Button',
16
+ 'Input',
17
+ 'Text',
18
+ 'Heading',
19
+ 'Checkbox',
20
+ 'Radio',
21
+ 'Switch',
22
+ 'Slider',
23
+ 'Badge',
24
+ 'Avatar',
25
+ // Composed (10)
26
+ 'Card',
27
+ 'Modal',
28
+ 'Tabs',
29
+ 'Table',
30
+ 'Link',
31
+ 'List',
32
+ 'Image',
33
+ 'Form',
34
+ 'Dropdown',
35
+ 'Progress',
36
+ ];
37
+ // ============================================================================
38
+ // Token ID Pattern Validation
39
+ // ============================================================================
40
+ /**
41
+ * Shell token ID pattern: shell.{platform}.{name}
42
+ * Examples: shell.web.dashboard, shell.mobile.app
43
+ */
44
+ const SHELL_TOKEN_PATTERN = /^shell\.[a-z]+\.[a-z-]+$/;
45
+ /**
46
+ * Page token ID pattern: page.{name}
47
+ * Examples: page.dashboard, page.settings
48
+ */
49
+ const PAGE_TOKEN_PATTERN = /^page\.[a-z-]+$/;
50
+ /**
51
+ * Section token ID pattern: section.{name} or section.{name}-{number}
52
+ * Examples: section.grid-4, section.hero, section.split
53
+ */
54
+ const SECTION_TOKEN_PATTERN = /^section\.[a-z]+([-][a-z0-9]+)*$/;
55
+ /**
56
+ * Screen ID pattern: kebab-case
57
+ * Examples: user-dashboard, settings-page
58
+ */
59
+ const SCREEN_ID_PATTERN = /^[a-z0-9]+(-[a-z0-9]+)*$/;
60
+ // ============================================================================
61
+ // Zod Schemas
62
+ // ============================================================================
63
+ /**
64
+ * ResponsiveOverrides Zod Schema
65
+ */
66
+ export const ResponsiveOverridesSchema = z
67
+ .object({
68
+ sm: z.record(z.unknown()).optional(),
69
+ md: z.record(z.unknown()).optional(),
70
+ lg: z.record(z.unknown()).optional(),
71
+ xl: z.record(z.unknown()).optional(),
72
+ '2xl': z.record(z.unknown()).optional(),
73
+ })
74
+ .strict();
75
+ /**
76
+ * ComponentDefinition Zod Schema
77
+ * Supports nested children (recursive)
78
+ */
79
+ export const ComponentDefinitionSchema = z.lazy(() => z.object({
80
+ type: z.enum(COMPONENT_TYPES, {
81
+ errorMap: () => ({
82
+ message: `Component type must be one of: ${COMPONENT_TYPES.join(', ')}`,
83
+ }),
84
+ }),
85
+ props: z.record(z.unknown(), {
86
+ errorMap: () => ({ message: 'Component props must be a valid object' }),
87
+ }),
88
+ children: z.array(z.union([ComponentDefinitionSchema, z.string()])).optional(),
89
+ slot: z.string().optional(),
90
+ }));
91
+ /**
92
+ * SectionDefinition Zod Schema
93
+ */
94
+ export const SectionDefinitionSchema = z.object({
95
+ id: z.string().min(1, 'Section ID is required and cannot be empty'),
96
+ pattern: z
97
+ .string()
98
+ .regex(SECTION_TOKEN_PATTERN, 'Section pattern must match: section.{name} or section.{name}-{number} (e.g., "section.grid-4")'),
99
+ components: z.array(ComponentDefinitionSchema).min(1, 'Section must have at least one component'),
100
+ responsive: ResponsiveOverridesSchema.optional(),
101
+ });
102
+ /**
103
+ * ScreenMeta Zod Schema
104
+ */
105
+ export const ScreenMetaSchema = z.object({
106
+ author: z.string().optional(),
107
+ createdAt: z
108
+ .string()
109
+ .datetime({ message: 'createdAt must be a valid ISO 8601 date-time string' })
110
+ .optional(),
111
+ version: z
112
+ .string()
113
+ .regex(/^\d+\.\d+\.\d+$/, 'version must follow semantic versioning (e.g., "1.0.0")')
114
+ .optional(),
115
+ tags: z.array(z.string()).optional(),
116
+ });
117
+ /**
118
+ * ScreenDefinition Zod Schema
119
+ */
120
+ export const ScreenDefinitionSchema = z.object({
121
+ id: z
122
+ .string()
123
+ .regex(SCREEN_ID_PATTERN, 'Screen ID must be kebab-case (lowercase letters, numbers, hyphens)'),
124
+ name: z.string().min(1, 'Screen name is required and cannot be empty'),
125
+ description: z.string().optional(),
126
+ shell: z
127
+ .string()
128
+ .regex(SHELL_TOKEN_PATTERN, 'Shell token must match pattern: shell.{platform}.{name} (e.g., "shell.web.dashboard")'),
129
+ page: z
130
+ .string()
131
+ .regex(PAGE_TOKEN_PATTERN, 'Page token must match pattern: page.{name} (e.g., "page.dashboard")'),
132
+ themeId: z.string().default('default'),
133
+ sections: z
134
+ .array(SectionDefinitionSchema)
135
+ .min(1, 'Screen must have at least one section definition'),
136
+ meta: ScreenMetaSchema.optional(),
137
+ });
138
+ // ============================================================================
139
+ // Validation Functions
140
+ // ============================================================================
141
+ /**
142
+ * Validate a ComponentDefinition
143
+ * @param component - Component definition to validate
144
+ * @returns Validation result with helpful error messages
145
+ */
146
+ export function validateComponent(component) {
147
+ try {
148
+ ComponentDefinitionSchema.parse(component);
149
+ return { valid: true };
150
+ }
151
+ catch (error) {
152
+ if (error instanceof z.ZodError) {
153
+ const errors = error.errors.map(err => {
154
+ const path = err.path.length > 0 ? `${err.path.join('.')}: ` : '';
155
+ return `${path}${err.message}`;
156
+ });
157
+ return { valid: false, errors };
158
+ }
159
+ return { valid: false, errors: ['Unknown validation error'] };
160
+ }
161
+ }
162
+ /**
163
+ * Validate a SectionDefinition
164
+ * @param section - Section definition to validate
165
+ * @returns Validation result with helpful error messages
166
+ */
167
+ export function validateSection(section) {
168
+ try {
169
+ SectionDefinitionSchema.parse(section);
170
+ return { valid: true };
171
+ }
172
+ catch (error) {
173
+ if (error instanceof z.ZodError) {
174
+ const errors = error.errors.map(err => {
175
+ const path = err.path.length > 0 ? `${err.path.join('.')}: ` : '';
176
+ return `${path}${err.message}`;
177
+ });
178
+ return { valid: false, errors };
179
+ }
180
+ return { valid: false, errors: ['Unknown validation error'] };
181
+ }
182
+ }
183
+ /**
184
+ * Validate a ScreenDefinition
185
+ * @param screen - Screen definition to validate
186
+ * @param context - Optional validation context for additional checks
187
+ * @returns Validation result with helpful error messages
188
+ */
189
+ export function validateScreenDefinition(screen, context) {
190
+ const warnings = [];
191
+ // Basic schema validation
192
+ try {
193
+ ScreenDefinitionSchema.parse(screen);
194
+ }
195
+ catch (error) {
196
+ if (error instanceof z.ZodError) {
197
+ const errors = error.errors.map(err => {
198
+ const path = err.path.length > 0 ? `${err.path.join('.')}: ` : '';
199
+ return `${path}${err.message}`;
200
+ });
201
+ return { valid: false, errors };
202
+ }
203
+ return { valid: false, errors: ['Unknown validation error'] };
204
+ }
205
+ // Type assertion after validation
206
+ const validScreen = screen;
207
+ // Context-based validation (if context provided)
208
+ if (context) {
209
+ // Check shell token availability
210
+ if (context.availableShells && !context.availableShells.includes(validScreen.shell)) {
211
+ warnings.push(`Shell token "${validScreen.shell}" not found in available shells`);
212
+ }
213
+ // Check page token availability
214
+ if (context.availablePages && !context.availablePages.includes(validScreen.page)) {
215
+ warnings.push(`Page token "${validScreen.page}" not found in available pages`);
216
+ }
217
+ // Check section pattern availability
218
+ if (context.availableSections) {
219
+ validScreen.sections.forEach(section => {
220
+ if (!context.availableSections.includes(section.pattern)) {
221
+ warnings.push(`Section pattern "${section.pattern}" in section "${section.id}" not found in available sections`);
222
+ }
223
+ });
224
+ }
225
+ // Check theme ID availability
226
+ if (context.availableThemes &&
227
+ validScreen.themeId &&
228
+ !context.availableThemes.includes(validScreen.themeId)) {
229
+ warnings.push(`Theme ID "${validScreen.themeId}" not found in available themes`);
230
+ }
231
+ // Strict mode: treat warnings as errors
232
+ if (context.strict && warnings.length > 0) {
233
+ return { valid: false, errors: warnings };
234
+ }
235
+ }
236
+ // Check for duplicate section IDs
237
+ const sectionIds = validScreen.sections.map(s => s.id);
238
+ const duplicateSectionIds = sectionIds.filter((id, index) => sectionIds.indexOf(id) !== index);
239
+ if (duplicateSectionIds.length > 0) {
240
+ warnings.push(`Duplicate section IDs found: ${[...new Set(duplicateSectionIds)].join(', ')}`);
241
+ }
242
+ return {
243
+ valid: true,
244
+ warnings: warnings.length > 0 ? warnings : undefined,
245
+ };
246
+ }
247
+ /**
248
+ * Assert that a screen definition is valid (throws on invalid)
249
+ * @param screen - Screen definition to validate
250
+ * @param context - Optional validation context
251
+ * @throws Error if validation fails
252
+ */
253
+ export function assertValidScreenDefinition(screen, context) {
254
+ const result = validateScreenDefinition(screen, context);
255
+ if (!result.valid) {
256
+ throw new Error(`Invalid screen definition: ${result.errors?.join(', ')}`);
257
+ }
258
+ }
259
+ /**
260
+ * Validate multiple screen definitions
261
+ * @param screens - Array of screen definitions to validate
262
+ * @param context - Optional validation context
263
+ * @returns Validation summary
264
+ */
265
+ export function validateScreenDefinitions(screens, context) {
266
+ const results = screens.map((screen, index) => {
267
+ const result = validateScreenDefinition(screen, context);
268
+ const id = typeof screen === 'object' && screen !== null && 'id' in screen
269
+ ? String(screen.id)
270
+ : `screen-${index}`;
271
+ return { id, ...result };
272
+ });
273
+ const validScreens = results.filter(r => r.valid).length;
274
+ const invalidScreens = results.filter(r => !r.valid).length;
275
+ return {
276
+ totalScreens: screens.length,
277
+ validScreens,
278
+ invalidScreens,
279
+ validationResults: results,
280
+ };
281
+ }
282
+ // ============================================================================
283
+ // Utility Functions
284
+ // ============================================================================
285
+ /**
286
+ * Check if a token ID matches the shell pattern
287
+ */
288
+ export function isValidShellToken(tokenId) {
289
+ return SHELL_TOKEN_PATTERN.test(tokenId);
290
+ }
291
+ /**
292
+ * Check if a token ID matches the page pattern
293
+ */
294
+ export function isValidPageToken(tokenId) {
295
+ return PAGE_TOKEN_PATTERN.test(tokenId);
296
+ }
297
+ /**
298
+ * Check if a token ID matches the section pattern
299
+ */
300
+ export function isValidSectionToken(tokenId) {
301
+ return SECTION_TOKEN_PATTERN.test(tokenId);
302
+ }
303
+ /**
304
+ * Get all component types used in a screen definition
305
+ */
306
+ export function getUsedComponentTypes(screen) {
307
+ const types = new Set();
308
+ function collectTypes(component) {
309
+ types.add(component.type);
310
+ if (component.children) {
311
+ component.children.forEach(child => {
312
+ if (typeof child !== 'string') {
313
+ collectTypes(child);
314
+ }
315
+ });
316
+ }
317
+ }
318
+ screen.sections.forEach(section => {
319
+ section.components.forEach(collectTypes);
320
+ });
321
+ return types;
322
+ }
323
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/screen-generation/validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @tekton-ui/core - TemplateRegistry Tests
3
+ * [SPEC-UI-002] [TAG-UI002-004] Template Registry Testing
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/screen-templates/__tests__/registry.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}