@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,1547 @@
1
+ /**
2
+ * @tekton-ui/core - Layout Token Validation
3
+ * Zod-based runtime validation for 4-layer layout token architecture
4
+ * [SPEC-LAYOUT-001] [PHASE-2]
5
+ */
6
+ import { z } from 'zod';
7
+ import type { TokenReference } from './token-resolver.js';
8
+ import type { ResponsiveConfig, ShellToken, PageLayoutToken, SectionPatternToken, MobileShellToken } from './layout-tokens/types.js';
9
+ /**
10
+ * Token Reference Schema
11
+ * Validates token reference format: "atomic.spacing.16" or "semantic.color.primary"
12
+ */
13
+ export declare const TokenReferenceSchema: z.ZodString;
14
+ /**
15
+ * Responsive Token Schema
16
+ * Validates breakpoint definitions
17
+ */
18
+ export declare const ResponsiveTokenSchema: z.ZodObject<{
19
+ id: z.ZodString;
20
+ minWidth: z.ZodNumber;
21
+ maxWidth: z.ZodOptional<z.ZodNumber>;
22
+ description: z.ZodString;
23
+ }, "strip", z.ZodTypeAny, {
24
+ description: string;
25
+ id: string;
26
+ minWidth: number;
27
+ maxWidth?: number | undefined;
28
+ }, {
29
+ description: string;
30
+ id: string;
31
+ minWidth: number;
32
+ maxWidth?: number | undefined;
33
+ }>;
34
+ /**
35
+ * Generic Responsive Configuration Schema
36
+ * Validates responsive config with breakpoint overrides
37
+ *
38
+ * Note: Uses z.any() for breakpoint overrides since they are Partial<T> and flexible
39
+ */
40
+ export declare function ResponsiveConfigSchema<T extends z.ZodTypeAny>(configSchema: T): z.ZodType<ResponsiveConfig<z.infer<T>>>;
41
+ /**
42
+ * Shell Region Position Schema
43
+ */
44
+ export declare const ShellRegionPositionSchema: z.ZodEnum<["top", "left", "right", "bottom", "center"]>;
45
+ /**
46
+ * Shell Region Schema
47
+ * Validates shell region configuration
48
+ */
49
+ export declare const ShellRegionSchema: z.ZodObject<{
50
+ name: z.ZodString;
51
+ position: z.ZodEnum<["top", "left", "right", "bottom", "center"]>;
52
+ size: z.ZodString;
53
+ collapsible: z.ZodOptional<z.ZodBoolean>;
54
+ defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ name: string;
57
+ position: "top" | "left" | "right" | "bottom" | "center";
58
+ size: string;
59
+ collapsible?: boolean | undefined;
60
+ defaultCollapsed?: boolean | undefined;
61
+ }, {
62
+ name: string;
63
+ position: "top" | "left" | "right" | "bottom" | "center";
64
+ size: string;
65
+ collapsible?: boolean | undefined;
66
+ defaultCollapsed?: boolean | undefined;
67
+ }>;
68
+ /**
69
+ * Shell Config Schema
70
+ * Flexible schema for shell-level settings
71
+ */
72
+ export declare const ShellConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
73
+ /**
74
+ * Shell Token Schema
75
+ * Validates complete shell token structure
76
+ */
77
+ export declare const ShellTokenSchema: z.ZodObject<{
78
+ id: z.ZodString;
79
+ description: z.ZodString;
80
+ platform: z.ZodEnum<["web", "mobile", "desktop"]>;
81
+ regions: z.ZodArray<z.ZodObject<{
82
+ name: z.ZodString;
83
+ position: z.ZodEnum<["top", "left", "right", "bottom", "center"]>;
84
+ size: z.ZodString;
85
+ collapsible: z.ZodOptional<z.ZodBoolean>;
86
+ defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ name: string;
89
+ position: "top" | "left" | "right" | "bottom" | "center";
90
+ size: string;
91
+ collapsible?: boolean | undefined;
92
+ defaultCollapsed?: boolean | undefined;
93
+ }, {
94
+ name: string;
95
+ position: "top" | "left" | "right" | "bottom" | "center";
96
+ size: string;
97
+ collapsible?: boolean | undefined;
98
+ defaultCollapsed?: boolean | undefined;
99
+ }>, "many">;
100
+ responsive: z.ZodType<ResponsiveConfig<Record<string, unknown>>, z.ZodTypeDef, ResponsiveConfig<Record<string, unknown>>>;
101
+ tokenBindings: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ description: string;
104
+ tokenBindings: Record<string, string>;
105
+ id: string;
106
+ responsive: ResponsiveConfig<Record<string, unknown>>;
107
+ platform: "web" | "mobile" | "desktop";
108
+ regions: {
109
+ name: string;
110
+ position: "top" | "left" | "right" | "bottom" | "center";
111
+ size: string;
112
+ collapsible?: boolean | undefined;
113
+ defaultCollapsed?: boolean | undefined;
114
+ }[];
115
+ }, {
116
+ description: string;
117
+ tokenBindings: Record<string, string>;
118
+ id: string;
119
+ responsive: ResponsiveConfig<Record<string, unknown>>;
120
+ platform: "web" | "mobile" | "desktop";
121
+ regions: {
122
+ name: string;
123
+ position: "top" | "left" | "right" | "bottom" | "center";
124
+ size: string;
125
+ collapsible?: boolean | undefined;
126
+ defaultCollapsed?: boolean | undefined;
127
+ }[];
128
+ }>;
129
+ /**
130
+ * Page Purpose Schema
131
+ */
132
+ export declare const PagePurposeSchema: z.ZodEnum<["job", "resource", "dashboard", "settings", "detail", "empty", "wizard", "onboarding"]>;
133
+ /**
134
+ * Section Slot Schema
135
+ * Validates section slot configuration
136
+ */
137
+ export declare const SectionSlotSchema: z.ZodObject<{
138
+ name: z.ZodString;
139
+ pattern: z.ZodString;
140
+ required: z.ZodBoolean;
141
+ allowedComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ name: string;
144
+ required: boolean;
145
+ pattern: string;
146
+ allowedComponents?: string[] | undefined;
147
+ }, {
148
+ name: string;
149
+ required: boolean;
150
+ pattern: string;
151
+ allowedComponents?: string[] | undefined;
152
+ }>;
153
+ /**
154
+ * Page Config Schema
155
+ * Flexible schema for page-level settings
156
+ */
157
+ export declare const PageConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
158
+ /**
159
+ * Page Layout Token Schema
160
+ * Validates complete page layout structure
161
+ */
162
+ export declare const PageLayoutTokenSchema: z.ZodObject<{
163
+ id: z.ZodString;
164
+ description: z.ZodString;
165
+ purpose: z.ZodEnum<["job", "resource", "dashboard", "settings", "detail", "empty", "wizard", "onboarding"]>;
166
+ sections: z.ZodArray<z.ZodObject<{
167
+ name: z.ZodString;
168
+ pattern: z.ZodString;
169
+ required: z.ZodBoolean;
170
+ allowedComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ name: string;
173
+ required: boolean;
174
+ pattern: string;
175
+ allowedComponents?: string[] | undefined;
176
+ }, {
177
+ name: string;
178
+ required: boolean;
179
+ pattern: string;
180
+ allowedComponents?: string[] | undefined;
181
+ }>, "many">;
182
+ responsive: z.ZodType<ResponsiveConfig<Record<string, unknown>>, z.ZodTypeDef, ResponsiveConfig<Record<string, unknown>>>;
183
+ tokenBindings: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ description: string;
186
+ tokenBindings: Record<string, string>;
187
+ id: string;
188
+ responsive: ResponsiveConfig<Record<string, unknown>>;
189
+ sections: {
190
+ name: string;
191
+ required: boolean;
192
+ pattern: string;
193
+ allowedComponents?: string[] | undefined;
194
+ }[];
195
+ purpose: "job" | "resource" | "dashboard" | "settings" | "detail" | "empty" | "wizard" | "onboarding";
196
+ }, {
197
+ description: string;
198
+ tokenBindings: Record<string, string>;
199
+ id: string;
200
+ responsive: ResponsiveConfig<Record<string, unknown>>;
201
+ sections: {
202
+ name: string;
203
+ required: boolean;
204
+ pattern: string;
205
+ allowedComponents?: string[] | undefined;
206
+ }[];
207
+ purpose: "job" | "resource" | "dashboard" | "settings" | "detail" | "empty" | "wizard" | "onboarding";
208
+ }>;
209
+ /**
210
+ * Section Type Schema
211
+ */
212
+ export declare const SectionTypeSchema: z.ZodEnum<["grid", "flex", "split", "stack", "container"]>;
213
+ /**
214
+ * Section CSS Schema
215
+ * Validates section CSS properties
216
+ */
217
+ export declare const SectionCSSSchema: z.ZodObject<{
218
+ display: z.ZodEnum<["grid", "flex"]>;
219
+ gridTemplateColumns: z.ZodOptional<z.ZodString>;
220
+ gridTemplateRows: z.ZodOptional<z.ZodString>;
221
+ gap: z.ZodOptional<z.ZodString>;
222
+ flexDirection: z.ZodOptional<z.ZodEnum<["row", "column"]>>;
223
+ alignItems: z.ZodOptional<z.ZodString>;
224
+ justifyContent: z.ZodOptional<z.ZodString>;
225
+ maxWidth: z.ZodOptional<z.ZodString>;
226
+ padding: z.ZodOptional<z.ZodString>;
227
+ }, "strip", z.ZodTypeAny, {
228
+ display: "grid" | "flex";
229
+ maxWidth?: string | undefined;
230
+ gridTemplateColumns?: string | undefined;
231
+ gridTemplateRows?: string | undefined;
232
+ gap?: string | undefined;
233
+ flexDirection?: "row" | "column" | undefined;
234
+ alignItems?: string | undefined;
235
+ justifyContent?: string | undefined;
236
+ padding?: string | undefined;
237
+ }, {
238
+ display: "grid" | "flex";
239
+ maxWidth?: string | undefined;
240
+ gridTemplateColumns?: string | undefined;
241
+ gridTemplateRows?: string | undefined;
242
+ gap?: string | undefined;
243
+ flexDirection?: "row" | "column" | undefined;
244
+ alignItems?: string | undefined;
245
+ justifyContent?: string | undefined;
246
+ padding?: string | undefined;
247
+ }>;
248
+ /**
249
+ * Section Pattern Token Schema
250
+ * Validates complete section pattern structure
251
+ */
252
+ export declare const SectionPatternTokenSchema: z.ZodObject<{
253
+ id: z.ZodString;
254
+ type: z.ZodEnum<["grid", "flex", "split", "stack", "container"]>;
255
+ description: z.ZodString;
256
+ css: z.ZodObject<{
257
+ display: z.ZodEnum<["grid", "flex"]>;
258
+ gridTemplateColumns: z.ZodOptional<z.ZodString>;
259
+ gridTemplateRows: z.ZodOptional<z.ZodString>;
260
+ gap: z.ZodOptional<z.ZodString>;
261
+ flexDirection: z.ZodOptional<z.ZodEnum<["row", "column"]>>;
262
+ alignItems: z.ZodOptional<z.ZodString>;
263
+ justifyContent: z.ZodOptional<z.ZodString>;
264
+ maxWidth: z.ZodOptional<z.ZodString>;
265
+ padding: z.ZodOptional<z.ZodString>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ display: "grid" | "flex";
268
+ maxWidth?: string | undefined;
269
+ gridTemplateColumns?: string | undefined;
270
+ gridTemplateRows?: string | undefined;
271
+ gap?: string | undefined;
272
+ flexDirection?: "row" | "column" | undefined;
273
+ alignItems?: string | undefined;
274
+ justifyContent?: string | undefined;
275
+ padding?: string | undefined;
276
+ }, {
277
+ display: "grid" | "flex";
278
+ maxWidth?: string | undefined;
279
+ gridTemplateColumns?: string | undefined;
280
+ gridTemplateRows?: string | undefined;
281
+ gap?: string | undefined;
282
+ flexDirection?: "row" | "column" | undefined;
283
+ alignItems?: string | undefined;
284
+ justifyContent?: string | undefined;
285
+ padding?: string | undefined;
286
+ }>;
287
+ responsive: z.ZodType<ResponsiveConfig<{
288
+ display: "grid" | "flex";
289
+ maxWidth?: string | undefined;
290
+ gridTemplateColumns?: string | undefined;
291
+ gridTemplateRows?: string | undefined;
292
+ gap?: string | undefined;
293
+ flexDirection?: "row" | "column" | undefined;
294
+ alignItems?: string | undefined;
295
+ justifyContent?: string | undefined;
296
+ padding?: string | undefined;
297
+ }>, z.ZodTypeDef, ResponsiveConfig<{
298
+ display: "grid" | "flex";
299
+ maxWidth?: string | undefined;
300
+ gridTemplateColumns?: string | undefined;
301
+ gridTemplateRows?: string | undefined;
302
+ gap?: string | undefined;
303
+ flexDirection?: "row" | "column" | undefined;
304
+ alignItems?: string | undefined;
305
+ justifyContent?: string | undefined;
306
+ padding?: string | undefined;
307
+ }>>;
308
+ tokenBindings: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ type: "grid" | "flex" | "split" | "stack" | "container";
311
+ description: string;
312
+ tokenBindings: Record<string, string>;
313
+ id: string;
314
+ responsive: ResponsiveConfig<{
315
+ display: "grid" | "flex";
316
+ maxWidth?: string | undefined;
317
+ gridTemplateColumns?: string | undefined;
318
+ gridTemplateRows?: string | undefined;
319
+ gap?: string | undefined;
320
+ flexDirection?: "row" | "column" | undefined;
321
+ alignItems?: string | undefined;
322
+ justifyContent?: string | undefined;
323
+ padding?: string | undefined;
324
+ }>;
325
+ css: {
326
+ display: "grid" | "flex";
327
+ maxWidth?: string | undefined;
328
+ gridTemplateColumns?: string | undefined;
329
+ gridTemplateRows?: string | undefined;
330
+ gap?: string | undefined;
331
+ flexDirection?: "row" | "column" | undefined;
332
+ alignItems?: string | undefined;
333
+ justifyContent?: string | undefined;
334
+ padding?: string | undefined;
335
+ };
336
+ }, {
337
+ type: "grid" | "flex" | "split" | "stack" | "container";
338
+ description: string;
339
+ tokenBindings: Record<string, string>;
340
+ id: string;
341
+ responsive: ResponsiveConfig<{
342
+ display: "grid" | "flex";
343
+ maxWidth?: string | undefined;
344
+ gridTemplateColumns?: string | undefined;
345
+ gridTemplateRows?: string | undefined;
346
+ gap?: string | undefined;
347
+ flexDirection?: "row" | "column" | undefined;
348
+ alignItems?: string | undefined;
349
+ justifyContent?: string | undefined;
350
+ padding?: string | undefined;
351
+ }>;
352
+ css: {
353
+ display: "grid" | "flex";
354
+ maxWidth?: string | undefined;
355
+ gridTemplateColumns?: string | undefined;
356
+ gridTemplateRows?: string | undefined;
357
+ gap?: string | undefined;
358
+ flexDirection?: "row" | "column" | undefined;
359
+ alignItems?: string | undefined;
360
+ justifyContent?: string | undefined;
361
+ padding?: string | undefined;
362
+ };
363
+ }>;
364
+ /**
365
+ * Safe Area Defaults Schema
366
+ * Validates device-specific safe area measurements
367
+ */
368
+ export declare const SafeAreaDefaultsSchema: z.ZodObject<{
369
+ notch: z.ZodNumber;
370
+ dynamicIsland: z.ZodNumber;
371
+ homeIndicator: z.ZodNumber;
372
+ statusBar: z.ZodNumber;
373
+ }, "strip", z.ZodTypeAny, {
374
+ notch: number;
375
+ dynamicIsland: number;
376
+ homeIndicator: number;
377
+ statusBar: number;
378
+ }, {
379
+ notch: number;
380
+ dynamicIsland: number;
381
+ homeIndicator: number;
382
+ statusBar: number;
383
+ }>;
384
+ /**
385
+ * Safe Area Edges Schema
386
+ * Validates which edges should respect safe area insets
387
+ */
388
+ export declare const SafeAreaEdgesSchema: z.ZodObject<{
389
+ top: z.ZodBoolean;
390
+ bottom: z.ZodBoolean;
391
+ horizontal: z.ZodBoolean;
392
+ }, "strip", z.ZodTypeAny, {
393
+ top: boolean;
394
+ bottom: boolean;
395
+ horizontal: boolean;
396
+ }, {
397
+ top: boolean;
398
+ bottom: boolean;
399
+ horizontal: boolean;
400
+ }>;
401
+ /**
402
+ * Safe Area Config Schema
403
+ * Validates complete safe area configuration
404
+ */
405
+ export declare const SafeAreaConfigSchema: z.ZodObject<{
406
+ top: z.ZodString;
407
+ bottom: z.ZodString;
408
+ left: z.ZodString;
409
+ right: z.ZodString;
410
+ defaults: z.ZodObject<{
411
+ notch: z.ZodNumber;
412
+ dynamicIsland: z.ZodNumber;
413
+ homeIndicator: z.ZodNumber;
414
+ statusBar: z.ZodNumber;
415
+ }, "strip", z.ZodTypeAny, {
416
+ notch: number;
417
+ dynamicIsland: number;
418
+ homeIndicator: number;
419
+ statusBar: number;
420
+ }, {
421
+ notch: number;
422
+ dynamicIsland: number;
423
+ homeIndicator: number;
424
+ statusBar: number;
425
+ }>;
426
+ edges: z.ZodObject<{
427
+ top: z.ZodBoolean;
428
+ bottom: z.ZodBoolean;
429
+ horizontal: z.ZodBoolean;
430
+ }, "strip", z.ZodTypeAny, {
431
+ top: boolean;
432
+ bottom: boolean;
433
+ horizontal: boolean;
434
+ }, {
435
+ top: boolean;
436
+ bottom: boolean;
437
+ horizontal: boolean;
438
+ }>;
439
+ }, "strip", z.ZodTypeAny, {
440
+ top: string;
441
+ left: string;
442
+ right: string;
443
+ bottom: string;
444
+ defaults: {
445
+ notch: number;
446
+ dynamicIsland: number;
447
+ homeIndicator: number;
448
+ statusBar: number;
449
+ };
450
+ edges: {
451
+ top: boolean;
452
+ bottom: boolean;
453
+ horizontal: boolean;
454
+ };
455
+ }, {
456
+ top: string;
457
+ left: string;
458
+ right: string;
459
+ bottom: string;
460
+ defaults: {
461
+ notch: number;
462
+ dynamicIsland: number;
463
+ homeIndicator: number;
464
+ statusBar: number;
465
+ };
466
+ edges: {
467
+ top: boolean;
468
+ bottom: boolean;
469
+ horizontal: boolean;
470
+ };
471
+ }>;
472
+ /**
473
+ * Status Bar Config Schema
474
+ * Validates mobile status bar configuration
475
+ */
476
+ export declare const StatusBarConfigSchema: z.ZodObject<{
477
+ height: z.ZodString;
478
+ visible: z.ZodBoolean;
479
+ style: z.ZodEnum<["light-content", "dark-content", "auto"]>;
480
+ backgroundColor: z.ZodOptional<z.ZodString>;
481
+ translucent: z.ZodBoolean;
482
+ }, "strip", z.ZodTypeAny, {
483
+ height: string;
484
+ visible: boolean;
485
+ style: "light-content" | "dark-content" | "auto";
486
+ translucent: boolean;
487
+ backgroundColor?: string | undefined;
488
+ }, {
489
+ height: string;
490
+ visible: boolean;
491
+ style: "light-content" | "dark-content" | "auto";
492
+ translucent: boolean;
493
+ backgroundColor?: string | undefined;
494
+ }>;
495
+ /**
496
+ * Navigation Bar Config Schema
497
+ * Validates Android navigation bar configuration
498
+ */
499
+ export declare const NavigationBarConfigSchema: z.ZodObject<{
500
+ height: z.ZodString;
501
+ mode: z.ZodEnum<["overlay", "inset", "hidden"]>;
502
+ backgroundColor: z.ZodOptional<z.ZodString>;
503
+ buttonStyle: z.ZodEnum<["light", "dark", "auto"]>;
504
+ }, "strip", z.ZodTypeAny, {
505
+ height: string;
506
+ mode: "overlay" | "inset" | "hidden";
507
+ buttonStyle: "auto" | "light" | "dark";
508
+ backgroundColor?: string | undefined;
509
+ }, {
510
+ height: string;
511
+ mode: "overlay" | "inset" | "hidden";
512
+ buttonStyle: "auto" | "light" | "dark";
513
+ backgroundColor?: string | undefined;
514
+ }>;
515
+ /**
516
+ * System UI Config Schema
517
+ * Validates combined status bar and navigation bar configuration
518
+ */
519
+ export declare const SystemUIConfigSchema: z.ZodObject<{
520
+ statusBar: z.ZodObject<{
521
+ height: z.ZodString;
522
+ visible: z.ZodBoolean;
523
+ style: z.ZodEnum<["light-content", "dark-content", "auto"]>;
524
+ backgroundColor: z.ZodOptional<z.ZodString>;
525
+ translucent: z.ZodBoolean;
526
+ }, "strip", z.ZodTypeAny, {
527
+ height: string;
528
+ visible: boolean;
529
+ style: "light-content" | "dark-content" | "auto";
530
+ translucent: boolean;
531
+ backgroundColor?: string | undefined;
532
+ }, {
533
+ height: string;
534
+ visible: boolean;
535
+ style: "light-content" | "dark-content" | "auto";
536
+ translucent: boolean;
537
+ backgroundColor?: string | undefined;
538
+ }>;
539
+ navigationBar: z.ZodObject<{
540
+ height: z.ZodString;
541
+ mode: z.ZodEnum<["overlay", "inset", "hidden"]>;
542
+ backgroundColor: z.ZodOptional<z.ZodString>;
543
+ buttonStyle: z.ZodEnum<["light", "dark", "auto"]>;
544
+ }, "strip", z.ZodTypeAny, {
545
+ height: string;
546
+ mode: "overlay" | "inset" | "hidden";
547
+ buttonStyle: "auto" | "light" | "dark";
548
+ backgroundColor?: string | undefined;
549
+ }, {
550
+ height: string;
551
+ mode: "overlay" | "inset" | "hidden";
552
+ buttonStyle: "auto" | "light" | "dark";
553
+ backgroundColor?: string | undefined;
554
+ }>;
555
+ }, "strip", z.ZodTypeAny, {
556
+ statusBar: {
557
+ height: string;
558
+ visible: boolean;
559
+ style: "light-content" | "dark-content" | "auto";
560
+ translucent: boolean;
561
+ backgroundColor?: string | undefined;
562
+ };
563
+ navigationBar: {
564
+ height: string;
565
+ mode: "overlay" | "inset" | "hidden";
566
+ buttonStyle: "auto" | "light" | "dark";
567
+ backgroundColor?: string | undefined;
568
+ };
569
+ }, {
570
+ statusBar: {
571
+ height: string;
572
+ visible: boolean;
573
+ style: "light-content" | "dark-content" | "auto";
574
+ translucent: boolean;
575
+ backgroundColor?: string | undefined;
576
+ };
577
+ navigationBar: {
578
+ height: string;
579
+ mode: "overlay" | "inset" | "hidden";
580
+ buttonStyle: "auto" | "light" | "dark";
581
+ backgroundColor?: string | undefined;
582
+ };
583
+ }>;
584
+ /**
585
+ * Keyboard Animation Config Schema
586
+ * Validates keyboard animation settings
587
+ */
588
+ export declare const KeyboardAnimationConfigSchema: z.ZodObject<{
589
+ duration: z.ZodNumber;
590
+ easing: z.ZodString;
591
+ enabled: z.ZodBoolean;
592
+ }, "strip", z.ZodTypeAny, {
593
+ duration: number;
594
+ easing: string;
595
+ enabled: boolean;
596
+ }, {
597
+ duration: number;
598
+ easing: string;
599
+ enabled: boolean;
600
+ }>;
601
+ /**
602
+ * Keyboard Config Schema
603
+ * Validates keyboard behavior configuration
604
+ */
605
+ export declare const KeyboardConfigSchema: z.ZodObject<{
606
+ avoidance: z.ZodEnum<["padding", "resize", "position", "none"]>;
607
+ behavior: z.ZodEnum<["height", "position", "padding"]>;
608
+ animation: z.ZodObject<{
609
+ duration: z.ZodNumber;
610
+ easing: z.ZodString;
611
+ enabled: z.ZodBoolean;
612
+ }, "strip", z.ZodTypeAny, {
613
+ duration: number;
614
+ easing: string;
615
+ enabled: boolean;
616
+ }, {
617
+ duration: number;
618
+ easing: string;
619
+ enabled: boolean;
620
+ }>;
621
+ dismissMode: z.ZodEnum<["on-drag", "interactive", "none"]>;
622
+ }, "strip", z.ZodTypeAny, {
623
+ avoidance: "position" | "padding" | "resize" | "none";
624
+ behavior: "position" | "padding" | "height";
625
+ animation: {
626
+ duration: number;
627
+ easing: string;
628
+ enabled: boolean;
629
+ };
630
+ dismissMode: "none" | "on-drag" | "interactive";
631
+ }, {
632
+ avoidance: "position" | "padding" | "resize" | "none";
633
+ behavior: "position" | "padding" | "height";
634
+ animation: {
635
+ duration: number;
636
+ easing: string;
637
+ enabled: boolean;
638
+ };
639
+ dismissMode: "none" | "on-drag" | "interactive";
640
+ }>;
641
+ /**
642
+ * Bottom Tab Item Config Schema
643
+ * Validates individual tab bar item configuration
644
+ */
645
+ export declare const BottomTabItemConfigSchema: z.ZodObject<{
646
+ minTouchTarget: z.ZodString;
647
+ iconSize: z.ZodString;
648
+ labelSize: z.ZodString;
649
+ spacing: z.ZodString;
650
+ }, "strip", z.ZodTypeAny, {
651
+ minTouchTarget: string;
652
+ iconSize: string;
653
+ labelSize: string;
654
+ spacing: string;
655
+ }, {
656
+ minTouchTarget: string;
657
+ iconSize: string;
658
+ labelSize: string;
659
+ spacing: string;
660
+ }>;
661
+ /**
662
+ * Bottom Tab Config Schema
663
+ * Validates bottom tab bar configuration
664
+ */
665
+ export declare const BottomTabConfigSchema: z.ZodObject<{
666
+ height: z.ZodString;
667
+ safeAreaBottom: z.ZodString;
668
+ totalHeight: z.ZodString;
669
+ visibility: z.ZodEnum<["always", "scroll-hide", "route-based"]>;
670
+ maxItems: z.ZodNumber;
671
+ item: z.ZodObject<{
672
+ minTouchTarget: z.ZodString;
673
+ iconSize: z.ZodString;
674
+ labelSize: z.ZodString;
675
+ spacing: z.ZodString;
676
+ }, "strip", z.ZodTypeAny, {
677
+ minTouchTarget: string;
678
+ iconSize: string;
679
+ labelSize: string;
680
+ spacing: string;
681
+ }, {
682
+ minTouchTarget: string;
683
+ iconSize: string;
684
+ labelSize: string;
685
+ spacing: string;
686
+ }>;
687
+ }, "strip", z.ZodTypeAny, {
688
+ height: string;
689
+ safeAreaBottom: string;
690
+ totalHeight: string;
691
+ visibility: "always" | "scroll-hide" | "route-based";
692
+ maxItems: number;
693
+ item: {
694
+ minTouchTarget: string;
695
+ iconSize: string;
696
+ labelSize: string;
697
+ spacing: string;
698
+ };
699
+ }, {
700
+ height: string;
701
+ safeAreaBottom: string;
702
+ totalHeight: string;
703
+ visibility: "always" | "scroll-hide" | "route-based";
704
+ maxItems: number;
705
+ item: {
706
+ minTouchTarget: string;
707
+ iconSize: string;
708
+ labelSize: string;
709
+ spacing: string;
710
+ };
711
+ }>;
712
+ /**
713
+ * Hit Slop Config Schema
714
+ * Validates expanded touch area configuration
715
+ */
716
+ export declare const HitSlopConfigSchema: z.ZodObject<{
717
+ top: z.ZodNumber;
718
+ bottom: z.ZodNumber;
719
+ left: z.ZodNumber;
720
+ right: z.ZodNumber;
721
+ }, "strip", z.ZodTypeAny, {
722
+ top: number;
723
+ left: number;
724
+ right: number;
725
+ bottom: number;
726
+ }, {
727
+ top: number;
728
+ left: number;
729
+ right: number;
730
+ bottom: number;
731
+ }>;
732
+ /**
733
+ * Touch Target Config Schema
734
+ * Validates minimum touch target size configuration
735
+ */
736
+ export declare const TouchTargetConfigSchema: z.ZodObject<{
737
+ minSize: z.ZodString;
738
+ hitSlop: z.ZodObject<{
739
+ top: z.ZodNumber;
740
+ bottom: z.ZodNumber;
741
+ left: z.ZodNumber;
742
+ right: z.ZodNumber;
743
+ }, "strip", z.ZodTypeAny, {
744
+ top: number;
745
+ left: number;
746
+ right: number;
747
+ bottom: number;
748
+ }, {
749
+ top: number;
750
+ left: number;
751
+ right: number;
752
+ bottom: number;
753
+ }>;
754
+ }, "strip", z.ZodTypeAny, {
755
+ minSize: string;
756
+ hitSlop: {
757
+ top: number;
758
+ left: number;
759
+ right: number;
760
+ bottom: number;
761
+ };
762
+ }, {
763
+ minSize: string;
764
+ hitSlop: {
765
+ top: number;
766
+ left: number;
767
+ right: number;
768
+ bottom: number;
769
+ };
770
+ }>;
771
+ /**
772
+ * Mobile Shell Token Schema
773
+ * Validates complete mobile shell structure with platform-specific configurations
774
+ */
775
+ export declare const MobileShellTokenSchema: z.ZodObject<{
776
+ id: z.ZodString;
777
+ description: z.ZodString;
778
+ regions: z.ZodArray<z.ZodObject<{
779
+ name: z.ZodString;
780
+ position: z.ZodEnum<["top", "left", "right", "bottom", "center"]>;
781
+ size: z.ZodString;
782
+ collapsible: z.ZodOptional<z.ZodBoolean>;
783
+ defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
784
+ }, "strip", z.ZodTypeAny, {
785
+ name: string;
786
+ position: "top" | "left" | "right" | "bottom" | "center";
787
+ size: string;
788
+ collapsible?: boolean | undefined;
789
+ defaultCollapsed?: boolean | undefined;
790
+ }, {
791
+ name: string;
792
+ position: "top" | "left" | "right" | "bottom" | "center";
793
+ size: string;
794
+ collapsible?: boolean | undefined;
795
+ defaultCollapsed?: boolean | undefined;
796
+ }>, "many">;
797
+ responsive: z.ZodType<ResponsiveConfig<Record<string, unknown>>, z.ZodTypeDef, ResponsiveConfig<Record<string, unknown>>>;
798
+ tokenBindings: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>;
799
+ } & {
800
+ platform: z.ZodLiteral<"mobile">;
801
+ os: z.ZodEnum<["ios", "android", "cross-platform"]>;
802
+ safeArea: z.ZodObject<{
803
+ top: z.ZodString;
804
+ bottom: z.ZodString;
805
+ left: z.ZodString;
806
+ right: z.ZodString;
807
+ defaults: z.ZodObject<{
808
+ notch: z.ZodNumber;
809
+ dynamicIsland: z.ZodNumber;
810
+ homeIndicator: z.ZodNumber;
811
+ statusBar: z.ZodNumber;
812
+ }, "strip", z.ZodTypeAny, {
813
+ notch: number;
814
+ dynamicIsland: number;
815
+ homeIndicator: number;
816
+ statusBar: number;
817
+ }, {
818
+ notch: number;
819
+ dynamicIsland: number;
820
+ homeIndicator: number;
821
+ statusBar: number;
822
+ }>;
823
+ edges: z.ZodObject<{
824
+ top: z.ZodBoolean;
825
+ bottom: z.ZodBoolean;
826
+ horizontal: z.ZodBoolean;
827
+ }, "strip", z.ZodTypeAny, {
828
+ top: boolean;
829
+ bottom: boolean;
830
+ horizontal: boolean;
831
+ }, {
832
+ top: boolean;
833
+ bottom: boolean;
834
+ horizontal: boolean;
835
+ }>;
836
+ }, "strip", z.ZodTypeAny, {
837
+ top: string;
838
+ left: string;
839
+ right: string;
840
+ bottom: string;
841
+ defaults: {
842
+ notch: number;
843
+ dynamicIsland: number;
844
+ homeIndicator: number;
845
+ statusBar: number;
846
+ };
847
+ edges: {
848
+ top: boolean;
849
+ bottom: boolean;
850
+ horizontal: boolean;
851
+ };
852
+ }, {
853
+ top: string;
854
+ left: string;
855
+ right: string;
856
+ bottom: string;
857
+ defaults: {
858
+ notch: number;
859
+ dynamicIsland: number;
860
+ homeIndicator: number;
861
+ statusBar: number;
862
+ };
863
+ edges: {
864
+ top: boolean;
865
+ bottom: boolean;
866
+ horizontal: boolean;
867
+ };
868
+ }>;
869
+ systemUI: z.ZodObject<{
870
+ statusBar: z.ZodObject<{
871
+ height: z.ZodString;
872
+ visible: z.ZodBoolean;
873
+ style: z.ZodEnum<["light-content", "dark-content", "auto"]>;
874
+ backgroundColor: z.ZodOptional<z.ZodString>;
875
+ translucent: z.ZodBoolean;
876
+ }, "strip", z.ZodTypeAny, {
877
+ height: string;
878
+ visible: boolean;
879
+ style: "light-content" | "dark-content" | "auto";
880
+ translucent: boolean;
881
+ backgroundColor?: string | undefined;
882
+ }, {
883
+ height: string;
884
+ visible: boolean;
885
+ style: "light-content" | "dark-content" | "auto";
886
+ translucent: boolean;
887
+ backgroundColor?: string | undefined;
888
+ }>;
889
+ navigationBar: z.ZodObject<{
890
+ height: z.ZodString;
891
+ mode: z.ZodEnum<["overlay", "inset", "hidden"]>;
892
+ backgroundColor: z.ZodOptional<z.ZodString>;
893
+ buttonStyle: z.ZodEnum<["light", "dark", "auto"]>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ height: string;
896
+ mode: "overlay" | "inset" | "hidden";
897
+ buttonStyle: "auto" | "light" | "dark";
898
+ backgroundColor?: string | undefined;
899
+ }, {
900
+ height: string;
901
+ mode: "overlay" | "inset" | "hidden";
902
+ buttonStyle: "auto" | "light" | "dark";
903
+ backgroundColor?: string | undefined;
904
+ }>;
905
+ }, "strip", z.ZodTypeAny, {
906
+ statusBar: {
907
+ height: string;
908
+ visible: boolean;
909
+ style: "light-content" | "dark-content" | "auto";
910
+ translucent: boolean;
911
+ backgroundColor?: string | undefined;
912
+ };
913
+ navigationBar: {
914
+ height: string;
915
+ mode: "overlay" | "inset" | "hidden";
916
+ buttonStyle: "auto" | "light" | "dark";
917
+ backgroundColor?: string | undefined;
918
+ };
919
+ }, {
920
+ statusBar: {
921
+ height: string;
922
+ visible: boolean;
923
+ style: "light-content" | "dark-content" | "auto";
924
+ translucent: boolean;
925
+ backgroundColor?: string | undefined;
926
+ };
927
+ navigationBar: {
928
+ height: string;
929
+ mode: "overlay" | "inset" | "hidden";
930
+ buttonStyle: "auto" | "light" | "dark";
931
+ backgroundColor?: string | undefined;
932
+ };
933
+ }>;
934
+ keyboard: z.ZodObject<{
935
+ avoidance: z.ZodEnum<["padding", "resize", "position", "none"]>;
936
+ behavior: z.ZodEnum<["height", "position", "padding"]>;
937
+ animation: z.ZodObject<{
938
+ duration: z.ZodNumber;
939
+ easing: z.ZodString;
940
+ enabled: z.ZodBoolean;
941
+ }, "strip", z.ZodTypeAny, {
942
+ duration: number;
943
+ easing: string;
944
+ enabled: boolean;
945
+ }, {
946
+ duration: number;
947
+ easing: string;
948
+ enabled: boolean;
949
+ }>;
950
+ dismissMode: z.ZodEnum<["on-drag", "interactive", "none"]>;
951
+ }, "strip", z.ZodTypeAny, {
952
+ avoidance: "position" | "padding" | "resize" | "none";
953
+ behavior: "position" | "padding" | "height";
954
+ animation: {
955
+ duration: number;
956
+ easing: string;
957
+ enabled: boolean;
958
+ };
959
+ dismissMode: "none" | "on-drag" | "interactive";
960
+ }, {
961
+ avoidance: "position" | "padding" | "resize" | "none";
962
+ behavior: "position" | "padding" | "height";
963
+ animation: {
964
+ duration: number;
965
+ easing: string;
966
+ enabled: boolean;
967
+ };
968
+ dismissMode: "none" | "on-drag" | "interactive";
969
+ }>;
970
+ bottomTab: z.ZodOptional<z.ZodObject<{
971
+ height: z.ZodString;
972
+ safeAreaBottom: z.ZodString;
973
+ totalHeight: z.ZodString;
974
+ visibility: z.ZodEnum<["always", "scroll-hide", "route-based"]>;
975
+ maxItems: z.ZodNumber;
976
+ item: z.ZodObject<{
977
+ minTouchTarget: z.ZodString;
978
+ iconSize: z.ZodString;
979
+ labelSize: z.ZodString;
980
+ spacing: z.ZodString;
981
+ }, "strip", z.ZodTypeAny, {
982
+ minTouchTarget: string;
983
+ iconSize: string;
984
+ labelSize: string;
985
+ spacing: string;
986
+ }, {
987
+ minTouchTarget: string;
988
+ iconSize: string;
989
+ labelSize: string;
990
+ spacing: string;
991
+ }>;
992
+ }, "strip", z.ZodTypeAny, {
993
+ height: string;
994
+ safeAreaBottom: string;
995
+ totalHeight: string;
996
+ visibility: "always" | "scroll-hide" | "route-based";
997
+ maxItems: number;
998
+ item: {
999
+ minTouchTarget: string;
1000
+ iconSize: string;
1001
+ labelSize: string;
1002
+ spacing: string;
1003
+ };
1004
+ }, {
1005
+ height: string;
1006
+ safeAreaBottom: string;
1007
+ totalHeight: string;
1008
+ visibility: "always" | "scroll-hide" | "route-based";
1009
+ maxItems: number;
1010
+ item: {
1011
+ minTouchTarget: string;
1012
+ iconSize: string;
1013
+ labelSize: string;
1014
+ spacing: string;
1015
+ };
1016
+ }>>;
1017
+ touchTarget: z.ZodObject<{
1018
+ minSize: z.ZodString;
1019
+ hitSlop: z.ZodObject<{
1020
+ top: z.ZodNumber;
1021
+ bottom: z.ZodNumber;
1022
+ left: z.ZodNumber;
1023
+ right: z.ZodNumber;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ top: number;
1026
+ left: number;
1027
+ right: number;
1028
+ bottom: number;
1029
+ }, {
1030
+ top: number;
1031
+ left: number;
1032
+ right: number;
1033
+ bottom: number;
1034
+ }>;
1035
+ }, "strip", z.ZodTypeAny, {
1036
+ minSize: string;
1037
+ hitSlop: {
1038
+ top: number;
1039
+ left: number;
1040
+ right: number;
1041
+ bottom: number;
1042
+ };
1043
+ }, {
1044
+ minSize: string;
1045
+ hitSlop: {
1046
+ top: number;
1047
+ left: number;
1048
+ right: number;
1049
+ bottom: number;
1050
+ };
1051
+ }>;
1052
+ }, "strip", z.ZodTypeAny, {
1053
+ description: string;
1054
+ keyboard: {
1055
+ avoidance: "position" | "padding" | "resize" | "none";
1056
+ behavior: "position" | "padding" | "height";
1057
+ animation: {
1058
+ duration: number;
1059
+ easing: string;
1060
+ enabled: boolean;
1061
+ };
1062
+ dismissMode: "none" | "on-drag" | "interactive";
1063
+ };
1064
+ tokenBindings: Record<string, string>;
1065
+ id: string;
1066
+ responsive: ResponsiveConfig<Record<string, unknown>>;
1067
+ platform: "mobile";
1068
+ regions: {
1069
+ name: string;
1070
+ position: "top" | "left" | "right" | "bottom" | "center";
1071
+ size: string;
1072
+ collapsible?: boolean | undefined;
1073
+ defaultCollapsed?: boolean | undefined;
1074
+ }[];
1075
+ os: "ios" | "android" | "cross-platform";
1076
+ safeArea: {
1077
+ top: string;
1078
+ left: string;
1079
+ right: string;
1080
+ bottom: string;
1081
+ defaults: {
1082
+ notch: number;
1083
+ dynamicIsland: number;
1084
+ homeIndicator: number;
1085
+ statusBar: number;
1086
+ };
1087
+ edges: {
1088
+ top: boolean;
1089
+ bottom: boolean;
1090
+ horizontal: boolean;
1091
+ };
1092
+ };
1093
+ systemUI: {
1094
+ statusBar: {
1095
+ height: string;
1096
+ visible: boolean;
1097
+ style: "light-content" | "dark-content" | "auto";
1098
+ translucent: boolean;
1099
+ backgroundColor?: string | undefined;
1100
+ };
1101
+ navigationBar: {
1102
+ height: string;
1103
+ mode: "overlay" | "inset" | "hidden";
1104
+ buttonStyle: "auto" | "light" | "dark";
1105
+ backgroundColor?: string | undefined;
1106
+ };
1107
+ };
1108
+ touchTarget: {
1109
+ minSize: string;
1110
+ hitSlop: {
1111
+ top: number;
1112
+ left: number;
1113
+ right: number;
1114
+ bottom: number;
1115
+ };
1116
+ };
1117
+ bottomTab?: {
1118
+ height: string;
1119
+ safeAreaBottom: string;
1120
+ totalHeight: string;
1121
+ visibility: "always" | "scroll-hide" | "route-based";
1122
+ maxItems: number;
1123
+ item: {
1124
+ minTouchTarget: string;
1125
+ iconSize: string;
1126
+ labelSize: string;
1127
+ spacing: string;
1128
+ };
1129
+ } | undefined;
1130
+ }, {
1131
+ description: string;
1132
+ keyboard: {
1133
+ avoidance: "position" | "padding" | "resize" | "none";
1134
+ behavior: "position" | "padding" | "height";
1135
+ animation: {
1136
+ duration: number;
1137
+ easing: string;
1138
+ enabled: boolean;
1139
+ };
1140
+ dismissMode: "none" | "on-drag" | "interactive";
1141
+ };
1142
+ tokenBindings: Record<string, string>;
1143
+ id: string;
1144
+ responsive: ResponsiveConfig<Record<string, unknown>>;
1145
+ platform: "mobile";
1146
+ regions: {
1147
+ name: string;
1148
+ position: "top" | "left" | "right" | "bottom" | "center";
1149
+ size: string;
1150
+ collapsible?: boolean | undefined;
1151
+ defaultCollapsed?: boolean | undefined;
1152
+ }[];
1153
+ os: "ios" | "android" | "cross-platform";
1154
+ safeArea: {
1155
+ top: string;
1156
+ left: string;
1157
+ right: string;
1158
+ bottom: string;
1159
+ defaults: {
1160
+ notch: number;
1161
+ dynamicIsland: number;
1162
+ homeIndicator: number;
1163
+ statusBar: number;
1164
+ };
1165
+ edges: {
1166
+ top: boolean;
1167
+ bottom: boolean;
1168
+ horizontal: boolean;
1169
+ };
1170
+ };
1171
+ systemUI: {
1172
+ statusBar: {
1173
+ height: string;
1174
+ visible: boolean;
1175
+ style: "light-content" | "dark-content" | "auto";
1176
+ translucent: boolean;
1177
+ backgroundColor?: string | undefined;
1178
+ };
1179
+ navigationBar: {
1180
+ height: string;
1181
+ mode: "overlay" | "inset" | "hidden";
1182
+ buttonStyle: "auto" | "light" | "dark";
1183
+ backgroundColor?: string | undefined;
1184
+ };
1185
+ };
1186
+ touchTarget: {
1187
+ minSize: string;
1188
+ hitSlop: {
1189
+ top: number;
1190
+ left: number;
1191
+ right: number;
1192
+ bottom: number;
1193
+ };
1194
+ };
1195
+ bottomTab?: {
1196
+ height: string;
1197
+ safeAreaBottom: string;
1198
+ totalHeight: string;
1199
+ visibility: "always" | "scroll-hide" | "route-based";
1200
+ maxItems: number;
1201
+ item: {
1202
+ minTouchTarget: string;
1203
+ iconSize: string;
1204
+ labelSize: string;
1205
+ spacing: string;
1206
+ };
1207
+ } | undefined;
1208
+ }>;
1209
+ /**
1210
+ * Validation result with detailed error information
1211
+ */
1212
+ export interface ValidationResult {
1213
+ /** Whether validation passed */
1214
+ valid: boolean;
1215
+ /** Error messages if validation failed (undefined if valid) */
1216
+ errors?: string[];
1217
+ }
1218
+ /**
1219
+ * Validate Shell Token (strict validation for application code)
1220
+ *
1221
+ * @param data - Unknown data to validate
1222
+ * @returns Validated ShellToken
1223
+ * @throws Error if validation fails
1224
+ *
1225
+ * @example
1226
+ * ```typescript
1227
+ * const shell = validateShellToken(data);
1228
+ * ```
1229
+ */
1230
+ export declare function validateShellToken(data: unknown): ShellToken;
1231
+ /**
1232
+ * Validate Page Layout Token (strict validation for application code)
1233
+ *
1234
+ * @param data - Unknown data to validate
1235
+ * @returns Validated PageLayoutToken
1236
+ * @throws Error if validation fails
1237
+ *
1238
+ * @example
1239
+ * ```typescript
1240
+ * const page = validatePageLayoutToken(data);
1241
+ * ```
1242
+ */
1243
+ export declare function validatePageLayoutToken(data: unknown): PageLayoutToken;
1244
+ /**
1245
+ * Validate Section Pattern Token (strict validation for application code)
1246
+ *
1247
+ * @param data - Unknown data to validate
1248
+ * @returns Validated SectionPatternToken
1249
+ * @throws Error if validation fails
1250
+ *
1251
+ * @example
1252
+ * ```typescript
1253
+ * const section = validateSectionPatternToken(data);
1254
+ * ```
1255
+ */
1256
+ export declare function validateSectionPatternToken(data: unknown): SectionPatternToken;
1257
+ /**
1258
+ * Validate Token Reference format
1259
+ *
1260
+ * @param data - Unknown data to validate
1261
+ * @returns Validated TokenReference
1262
+ * @throws Error if validation fails
1263
+ *
1264
+ * @example
1265
+ * ```typescript
1266
+ * const ref = validateTokenReference("atomic.spacing.16");
1267
+ * ```
1268
+ */
1269
+ export declare function validateTokenReference(data: unknown): TokenReference;
1270
+ /**
1271
+ * Validate Mobile Shell Token (strict validation for application code)
1272
+ *
1273
+ * @param token - Mobile shell token to validate
1274
+ * @returns Validated MobileShellToken
1275
+ * @throws Error if validation fails with detailed error messages
1276
+ *
1277
+ * @example
1278
+ * ```typescript
1279
+ * import { SHELL_MOBILE_APP } from './mobile-shells.js';
1280
+ * import { validateMobileShellToken } from './layout-validation.js';
1281
+ *
1282
+ * try {
1283
+ * const validated = validateMobileShellToken(SHELL_MOBILE_APP);
1284
+ * console.log('Valid mobile shell token');
1285
+ * } catch (error) {
1286
+ * console.error('Invalid token:', error.message);
1287
+ * }
1288
+ * ```
1289
+ */
1290
+ export declare function validateMobileShellToken(token: unknown): MobileShellToken;
1291
+ /**
1292
+ * LLM Shell Input Schema (lenient - only required fields)
1293
+ * Allows LLMs to provide minimal input
1294
+ */
1295
+ export declare const LLMShellInputSchema: z.ZodObject<{
1296
+ id: z.ZodString;
1297
+ platform: z.ZodEnum<["web", "mobile", "desktop"]>;
1298
+ regions: z.ZodArray<z.ZodObject<{
1299
+ name: z.ZodString;
1300
+ position: z.ZodEnum<["top", "left", "right", "bottom", "center"]>;
1301
+ size: z.ZodString;
1302
+ collapsible: z.ZodOptional<z.ZodBoolean>;
1303
+ defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
1304
+ }, "strip", z.ZodTypeAny, {
1305
+ name: string;
1306
+ position: "top" | "left" | "right" | "bottom" | "center";
1307
+ size: string;
1308
+ collapsible?: boolean | undefined;
1309
+ defaultCollapsed?: boolean | undefined;
1310
+ }, {
1311
+ name: string;
1312
+ position: "top" | "left" | "right" | "bottom" | "center";
1313
+ size: string;
1314
+ collapsible?: boolean | undefined;
1315
+ defaultCollapsed?: boolean | undefined;
1316
+ }>, "many">;
1317
+ }, "strip", z.ZodTypeAny, {
1318
+ id: string;
1319
+ platform: "web" | "mobile" | "desktop";
1320
+ regions: {
1321
+ name: string;
1322
+ position: "top" | "left" | "right" | "bottom" | "center";
1323
+ size: string;
1324
+ collapsible?: boolean | undefined;
1325
+ defaultCollapsed?: boolean | undefined;
1326
+ }[];
1327
+ }, {
1328
+ id: string;
1329
+ platform: "web" | "mobile" | "desktop";
1330
+ regions: {
1331
+ name: string;
1332
+ position: "top" | "left" | "right" | "bottom" | "center";
1333
+ size: string;
1334
+ collapsible?: boolean | undefined;
1335
+ defaultCollapsed?: boolean | undefined;
1336
+ }[];
1337
+ }>;
1338
+ /**
1339
+ * LLM Page Input Schema (lenient - only required fields)
1340
+ */
1341
+ export declare const LLMPageInputSchema: z.ZodObject<{
1342
+ id: z.ZodString;
1343
+ purpose: z.ZodEnum<["job", "resource", "dashboard", "settings", "detail", "empty", "wizard", "onboarding"]>;
1344
+ sections: z.ZodArray<z.ZodObject<{
1345
+ name: z.ZodString;
1346
+ pattern: z.ZodString;
1347
+ required: z.ZodBoolean;
1348
+ allowedComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1349
+ }, "strip", z.ZodTypeAny, {
1350
+ name: string;
1351
+ required: boolean;
1352
+ pattern: string;
1353
+ allowedComponents?: string[] | undefined;
1354
+ }, {
1355
+ name: string;
1356
+ required: boolean;
1357
+ pattern: string;
1358
+ allowedComponents?: string[] | undefined;
1359
+ }>, "many">;
1360
+ }, "strip", z.ZodTypeAny, {
1361
+ id: string;
1362
+ sections: {
1363
+ name: string;
1364
+ required: boolean;
1365
+ pattern: string;
1366
+ allowedComponents?: string[] | undefined;
1367
+ }[];
1368
+ purpose: "job" | "resource" | "dashboard" | "settings" | "detail" | "empty" | "wizard" | "onboarding";
1369
+ }, {
1370
+ id: string;
1371
+ sections: {
1372
+ name: string;
1373
+ required: boolean;
1374
+ pattern: string;
1375
+ allowedComponents?: string[] | undefined;
1376
+ }[];
1377
+ purpose: "job" | "resource" | "dashboard" | "settings" | "detail" | "empty" | "wizard" | "onboarding";
1378
+ }>;
1379
+ /**
1380
+ * LLM Section Input Schema (lenient - only required fields)
1381
+ */
1382
+ export declare const LLMSectionInputSchema: z.ZodObject<{
1383
+ id: z.ZodString;
1384
+ type: z.ZodEnum<["grid", "flex", "split", "stack", "container"]>;
1385
+ css: z.ZodObject<{
1386
+ display: z.ZodEnum<["grid", "flex"]>;
1387
+ gridTemplateColumns: z.ZodOptional<z.ZodString>;
1388
+ gridTemplateRows: z.ZodOptional<z.ZodString>;
1389
+ gap: z.ZodOptional<z.ZodString>;
1390
+ flexDirection: z.ZodOptional<z.ZodEnum<["row", "column"]>>;
1391
+ alignItems: z.ZodOptional<z.ZodString>;
1392
+ justifyContent: z.ZodOptional<z.ZodString>;
1393
+ maxWidth: z.ZodOptional<z.ZodString>;
1394
+ padding: z.ZodOptional<z.ZodString>;
1395
+ }, "strip", z.ZodTypeAny, {
1396
+ display: "grid" | "flex";
1397
+ maxWidth?: string | undefined;
1398
+ gridTemplateColumns?: string | undefined;
1399
+ gridTemplateRows?: string | undefined;
1400
+ gap?: string | undefined;
1401
+ flexDirection?: "row" | "column" | undefined;
1402
+ alignItems?: string | undefined;
1403
+ justifyContent?: string | undefined;
1404
+ padding?: string | undefined;
1405
+ }, {
1406
+ display: "grid" | "flex";
1407
+ maxWidth?: string | undefined;
1408
+ gridTemplateColumns?: string | undefined;
1409
+ gridTemplateRows?: string | undefined;
1410
+ gap?: string | undefined;
1411
+ flexDirection?: "row" | "column" | undefined;
1412
+ alignItems?: string | undefined;
1413
+ justifyContent?: string | undefined;
1414
+ padding?: string | undefined;
1415
+ }>;
1416
+ }, "strip", z.ZodTypeAny, {
1417
+ type: "grid" | "flex" | "split" | "stack" | "container";
1418
+ id: string;
1419
+ css: {
1420
+ display: "grid" | "flex";
1421
+ maxWidth?: string | undefined;
1422
+ gridTemplateColumns?: string | undefined;
1423
+ gridTemplateRows?: string | undefined;
1424
+ gap?: string | undefined;
1425
+ flexDirection?: "row" | "column" | undefined;
1426
+ alignItems?: string | undefined;
1427
+ justifyContent?: string | undefined;
1428
+ padding?: string | undefined;
1429
+ };
1430
+ }, {
1431
+ type: "grid" | "flex" | "split" | "stack" | "container";
1432
+ id: string;
1433
+ css: {
1434
+ display: "grid" | "flex";
1435
+ maxWidth?: string | undefined;
1436
+ gridTemplateColumns?: string | undefined;
1437
+ gridTemplateRows?: string | undefined;
1438
+ gap?: string | undefined;
1439
+ flexDirection?: "row" | "column" | undefined;
1440
+ alignItems?: string | undefined;
1441
+ justifyContent?: string | undefined;
1442
+ padding?: string | undefined;
1443
+ };
1444
+ }>;
1445
+ /**
1446
+ * Validate LLM Shell Input (lenient validation for LLM-generated data)
1447
+ *
1448
+ * @param data - Unknown data from LLM
1449
+ * @returns Partial ShellToken with only required fields
1450
+ * @throws Error if validation fails with helpful messages
1451
+ *
1452
+ * @example
1453
+ * ```typescript
1454
+ * const partialShell = validateLLMShellInput(llmData);
1455
+ * ```
1456
+ */
1457
+ export declare function validateLLMShellInput(data: unknown): Partial<ShellToken>;
1458
+ /**
1459
+ * Validate LLM Page Input (lenient validation for LLM-generated data)
1460
+ *
1461
+ * @param data - Unknown data from LLM
1462
+ * @returns Partial PageLayoutToken with only required fields
1463
+ * @throws Error if validation fails with helpful messages
1464
+ *
1465
+ * @example
1466
+ * ```typescript
1467
+ * const partialPage = validateLLMPageInput(llmData);
1468
+ * ```
1469
+ */
1470
+ export declare function validateLLMPageInput(data: unknown): Partial<PageLayoutToken>;
1471
+ /**
1472
+ * Validate LLM Section Input (lenient validation for LLM-generated data)
1473
+ *
1474
+ * @param data - Unknown data from LLM
1475
+ * @returns Partial SectionPatternToken with only required fields
1476
+ * @throws Error if validation fails with helpful messages
1477
+ *
1478
+ * @example
1479
+ * ```typescript
1480
+ * const partialSection = validateLLMSectionInput(llmData);
1481
+ * ```
1482
+ */
1483
+ export declare function validateLLMSectionInput(data: unknown): Partial<SectionPatternToken>;
1484
+ /**
1485
+ * Detect circular references in token hierarchy
1486
+ *
1487
+ * Checks if a token references itself directly or indirectly.
1488
+ * A circular reference occurs when token.id appears in any of its own token references
1489
+ * (excluding the id field itself).
1490
+ *
1491
+ * @param token - Shell, Page, or Section token to check
1492
+ * @returns true if no circular references found, false otherwise
1493
+ *
1494
+ * @example
1495
+ * ```typescript
1496
+ * const hasNoCircularRefs = detectCircularRefs(shellToken);
1497
+ * if (!hasNoCircularRefs) {
1498
+ * console.error('Circular reference detected!');
1499
+ * }
1500
+ * ```
1501
+ */
1502
+ export declare function detectCircularRefs(token: ShellToken | PageLayoutToken | SectionPatternToken): boolean;
1503
+ /**
1504
+ * Token collection for layout hierarchy validation
1505
+ */
1506
+ export interface LayoutTokenCollection {
1507
+ shells: ShellToken[];
1508
+ pages: PageLayoutToken[];
1509
+ sections: SectionPatternToken[];
1510
+ }
1511
+ /**
1512
+ * Validate complete layout token hierarchy
1513
+ *
1514
+ * Checks:
1515
+ * - All tokens pass schema validation
1516
+ * - No circular references exist
1517
+ * - All token references point to valid tokens
1518
+ *
1519
+ * @param tokens - Collection of all layout tokens
1520
+ * @returns Validation result
1521
+ *
1522
+ * @example
1523
+ * ```typescript
1524
+ * const result = validateLayoutHierarchy({ shells, pages, sections });
1525
+ * if (!result.valid) {
1526
+ * console.error('Hierarchy validation failed:', result.errors);
1527
+ * }
1528
+ * ```
1529
+ */
1530
+ export declare function validateLayoutHierarchy(tokens: LayoutTokenCollection): ValidationResult;
1531
+ /**
1532
+ * Safe validation with result (does not throw)
1533
+ *
1534
+ * @param data - Data to validate
1535
+ * @param schema - Zod schema to use
1536
+ * @returns Validation result
1537
+ *
1538
+ * @example
1539
+ * ```typescript
1540
+ * const result = safeValidate(data, ShellTokenSchema);
1541
+ * if (!result.valid) {
1542
+ * console.error('Validation errors:', result.errors);
1543
+ * }
1544
+ * ```
1545
+ */
1546
+ export declare function safeValidate(data: unknown, schema: z.ZodTypeAny): ValidationResult;
1547
+ //# sourceMappingURL=layout-validation.d.ts.map