@tachui/cli 0.8.1-alpha → 0.8.5-alpha

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 (638) hide show
  1. package/README.md +15 -0
  2. package/bin/tacho.js +57 -7
  3. package/dist/cli/src/commands/analyze-imports.d.ts +18 -0
  4. package/dist/cli/src/commands/analyze-imports.d.ts.map +1 -0
  5. package/dist/cli/src/commands/analyze-imports.js +152 -0
  6. package/dist/cli/src/commands/analyze-imports.js.map +1 -0
  7. package/dist/cli/src/commands/analyze.d.ts.map +1 -0
  8. package/dist/{commands → cli/src/commands}/analyze.js +1 -1
  9. package/dist/cli/src/commands/analyze.js.map +1 -0
  10. package/dist/cli/src/commands/dev.d.ts.map +1 -0
  11. package/dist/cli/src/commands/dev.js.map +1 -0
  12. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  13. package/dist/{commands → cli/src/commands}/generate.js +0 -21
  14. package/dist/cli/src/commands/generate.js.map +1 -0
  15. package/dist/cli/src/commands/init.d.ts.map +1 -0
  16. package/dist/{commands → cli/src/commands}/init.js +1 -28
  17. package/dist/cli/src/commands/init.js.map +1 -0
  18. package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts +3 -0
  19. package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts.map +1 -0
  20. package/dist/cli/src/commands/migrate/remove-modifier-trigger.js +103 -0
  21. package/dist/cli/src/commands/migrate/remove-modifier-trigger.js.map +1 -0
  22. package/dist/cli/src/commands/migrate.d.ts.map +1 -0
  23. package/dist/{commands → cli/src/commands}/migrate.js +5 -3
  24. package/dist/cli/src/commands/migrate.js.map +1 -0
  25. package/dist/cli/src/commands/modifier-docs.d.ts +24 -0
  26. package/dist/cli/src/commands/modifier-docs.d.ts.map +1 -0
  27. package/dist/cli/src/commands/modifier-docs.js +375 -0
  28. package/dist/cli/src/commands/modifier-docs.js.map +1 -0
  29. package/dist/cli/src/commands/optimize.d.ts.map +1 -0
  30. package/dist/cli/src/commands/optimize.js.map +1 -0
  31. package/dist/cli/src/import-optimizer.d.ts +50 -0
  32. package/dist/cli/src/import-optimizer.d.ts.map +1 -0
  33. package/dist/cli/src/import-optimizer.js +227 -0
  34. package/dist/cli/src/import-optimizer.js.map +1 -0
  35. package/dist/cli/src/index.d.ts.map +1 -0
  36. package/dist/{index.js → cli/src/index.js} +14 -3
  37. package/dist/cli/src/index.js.map +1 -0
  38. package/dist/cli/src/migrations/remove-modifier-trigger.d.ts +7 -0
  39. package/dist/cli/src/migrations/remove-modifier-trigger.d.ts.map +1 -0
  40. package/dist/cli/src/migrations/remove-modifier-trigger.js +99 -0
  41. package/dist/cli/src/migrations/remove-modifier-trigger.js.map +1 -0
  42. package/dist/core/package.json +223 -0
  43. package/dist/core/src/assets/Asset.d.ts +11 -0
  44. package/dist/core/src/assets/Asset.d.ts.map +1 -0
  45. package/dist/core/src/assets/Asset.js +12 -0
  46. package/dist/core/src/assets/Asset.js.map +1 -0
  47. package/dist/core/src/assets/AssetCollection.d.ts +14 -0
  48. package/dist/core/src/assets/AssetCollection.d.ts.map +1 -0
  49. package/dist/core/src/assets/AssetCollection.js +133 -0
  50. package/dist/core/src/assets/AssetCollection.js.map +1 -0
  51. package/dist/core/src/assets/ColorAsset.d.ts +31 -0
  52. package/dist/core/src/assets/ColorAsset.d.ts.map +1 -0
  53. package/dist/core/src/assets/ColorAsset.js +182 -0
  54. package/dist/core/src/assets/ColorAsset.js.map +1 -0
  55. package/dist/core/src/assets/FontAsset.d.ts +114 -0
  56. package/dist/core/src/assets/FontAsset.d.ts.map +1 -0
  57. package/dist/core/src/assets/FontAsset.js +289 -0
  58. package/dist/core/src/assets/FontAsset.js.map +1 -0
  59. package/dist/core/src/assets/ImageAsset.d.ts +35 -0
  60. package/dist/core/src/assets/ImageAsset.d.ts.map +1 -0
  61. package/dist/core/src/assets/ImageAsset.js +69 -0
  62. package/dist/core/src/assets/ImageAsset.js.map +1 -0
  63. package/dist/core/src/assets/index.d.ts +27 -0
  64. package/dist/core/src/assets/index.d.ts.map +1 -0
  65. package/dist/core/src/assets/index.js +137 -0
  66. package/dist/core/src/assets/index.js.map +1 -0
  67. package/dist/core/src/assets/types.d.ts +10 -0
  68. package/dist/core/src/assets/types.d.ts.map +1 -0
  69. package/dist/core/src/assets/types.js +6 -0
  70. package/dist/core/src/assets/types.js.map +1 -0
  71. package/dist/core/src/compiler/advanced-parser.d.ts +113 -0
  72. package/dist/core/src/compiler/advanced-parser.d.ts.map +1 -0
  73. package/dist/core/src/compiler/advanced-parser.js +702 -0
  74. package/dist/core/src/compiler/advanced-parser.js.map +1 -0
  75. package/dist/core/src/compiler/codegen.d.ts +20 -0
  76. package/dist/core/src/compiler/codegen.d.ts.map +1 -0
  77. package/dist/core/src/compiler/codegen.js +509 -0
  78. package/dist/core/src/compiler/codegen.js.map +1 -0
  79. package/dist/core/src/compiler/enhanced-codegen.d.ts +121 -0
  80. package/dist/core/src/compiler/enhanced-codegen.d.ts.map +1 -0
  81. package/dist/core/src/compiler/enhanced-codegen.js +607 -0
  82. package/dist/core/src/compiler/enhanced-codegen.js.map +1 -0
  83. package/dist/core/src/compiler/index.d.ts +14 -0
  84. package/dist/core/src/compiler/index.d.ts.map +1 -0
  85. package/dist/core/src/compiler/index.js +12 -0
  86. package/dist/core/src/compiler/index.js.map +1 -0
  87. package/dist/core/src/compiler/parser.d.ts +12 -0
  88. package/dist/core/src/compiler/parser.d.ts.map +1 -0
  89. package/dist/core/src/compiler/parser.js +407 -0
  90. package/dist/core/src/compiler/parser.js.map +1 -0
  91. package/dist/core/src/compiler/plugin.d.ts +13 -0
  92. package/dist/core/src/compiler/plugin.d.ts.map +1 -0
  93. package/dist/core/src/compiler/plugin.js +456 -0
  94. package/dist/core/src/compiler/plugin.js.map +1 -0
  95. package/dist/core/src/compiler/types.d.ts +177 -0
  96. package/dist/core/src/compiler/types.d.ts.map +1 -0
  97. package/dist/core/src/compiler/types.js +5 -0
  98. package/dist/core/src/compiler/types.js.map +1 -0
  99. package/dist/core/src/components/factory.d.ts +24 -0
  100. package/dist/core/src/components/factory.d.ts.map +1 -0
  101. package/dist/core/src/components/factory.js +19 -0
  102. package/dist/core/src/components/factory.js.map +1 -0
  103. package/dist/core/src/components/index.d.ts +12 -0
  104. package/dist/core/src/components/index.d.ts.map +1 -0
  105. package/dist/core/src/components/index.js +9 -0
  106. package/dist/core/src/components/index.js.map +1 -0
  107. package/dist/core/src/components/wrapper.d.ts +142 -0
  108. package/dist/core/src/components/wrapper.d.ts.map +1 -0
  109. package/dist/core/src/components/wrapper.js +628 -0
  110. package/dist/core/src/components/wrapper.js.map +1 -0
  111. package/dist/core/src/concatenation/concatenatable.d.ts +63 -0
  112. package/dist/core/src/concatenation/concatenatable.d.ts.map +1 -0
  113. package/dist/core/src/concatenation/concatenatable.js +158 -0
  114. package/dist/core/src/concatenation/concatenatable.js.map +1 -0
  115. package/dist/core/src/concatenation/concatenated-component.d.ts +124 -0
  116. package/dist/core/src/concatenation/concatenated-component.d.ts.map +1 -0
  117. package/dist/core/src/concatenation/concatenated-component.js +447 -0
  118. package/dist/core/src/concatenation/concatenated-component.js.map +1 -0
  119. package/dist/core/src/concatenation/index.d.ts +13 -0
  120. package/dist/core/src/concatenation/index.d.ts.map +1 -0
  121. package/dist/core/src/concatenation/index.js +16 -0
  122. package/dist/core/src/concatenation/index.js.map +1 -0
  123. package/dist/core/src/concatenation/text-optimizer.d.ts +104 -0
  124. package/dist/core/src/concatenation/text-optimizer.d.ts.map +1 -0
  125. package/dist/core/src/concatenation/text-optimizer.js +349 -0
  126. package/dist/core/src/concatenation/text-optimizer.js.map +1 -0
  127. package/dist/core/src/concatenation/types.d.ts +88 -0
  128. package/dist/core/src/concatenation/types.d.ts.map +1 -0
  129. package/dist/core/src/concatenation/types.js +23 -0
  130. package/dist/core/src/concatenation/types.js.map +1 -0
  131. package/dist/core/src/config.d.ts +7 -0
  132. package/dist/core/src/config.d.ts.map +1 -0
  133. package/dist/core/src/config.js +17 -0
  134. package/dist/core/src/config.js.map +1 -0
  135. package/dist/core/src/constants/frame-utils.d.ts +68 -0
  136. package/dist/core/src/constants/frame-utils.d.ts.map +1 -0
  137. package/dist/core/src/constants/frame-utils.js +156 -0
  138. package/dist/core/src/constants/frame-utils.js.map +1 -0
  139. package/dist/core/src/constants/index.d.ts +8 -0
  140. package/dist/core/src/constants/index.d.ts.map +1 -0
  141. package/dist/core/src/constants/index.js +8 -0
  142. package/dist/core/src/constants/index.js.map +1 -0
  143. package/dist/core/src/constants/layout.d.ts +96 -0
  144. package/dist/core/src/constants/layout.d.ts.map +1 -0
  145. package/dist/core/src/constants/layout.js +124 -0
  146. package/dist/core/src/constants/layout.js.map +1 -0
  147. package/dist/core/src/css-classes/component-base.d.ts +40 -0
  148. package/dist/core/src/css-classes/component-base.d.ts.map +1 -0
  149. package/dist/core/src/css-classes/component-base.js +90 -0
  150. package/dist/core/src/css-classes/component-base.js.map +1 -0
  151. package/dist/core/src/css-classes/css-class-manager.d.ts +89 -0
  152. package/dist/core/src/css-classes/css-class-manager.d.ts.map +1 -0
  153. package/dist/core/src/css-classes/css-class-manager.js +328 -0
  154. package/dist/core/src/css-classes/css-class-manager.js.map +1 -0
  155. package/dist/core/src/css-classes/dom-integration.d.ts +76 -0
  156. package/dist/core/src/css-classes/dom-integration.d.ts.map +1 -0
  157. package/dist/core/src/css-classes/dom-integration.js +104 -0
  158. package/dist/core/src/css-classes/dom-integration.js.map +1 -0
  159. package/dist/core/src/css-classes/enhanced-renderer.d.ts +42 -0
  160. package/dist/core/src/css-classes/enhanced-renderer.d.ts.map +1 -0
  161. package/dist/core/src/css-classes/enhanced-renderer.js +121 -0
  162. package/dist/core/src/css-classes/enhanced-renderer.js.map +1 -0
  163. package/dist/core/src/css-classes/index.d.ts +14 -0
  164. package/dist/core/src/css-classes/index.d.ts.map +1 -0
  165. package/dist/core/src/css-classes/index.js +14 -0
  166. package/dist/core/src/css-classes/index.js.map +1 -0
  167. package/dist/core/src/css-classes/types.d.ts +59 -0
  168. package/dist/core/src/css-classes/types.d.ts.map +1 -0
  169. package/dist/core/src/css-classes/types.js +8 -0
  170. package/dist/core/src/css-classes/types.js.map +1 -0
  171. package/dist/core/src/css-classes/utilities.d.ts +104 -0
  172. package/dist/core/src/css-classes/utilities.d.ts.map +1 -0
  173. package/dist/core/src/css-classes/utilities.js +126 -0
  174. package/dist/core/src/css-classes/utilities.js.map +1 -0
  175. package/dist/core/src/gradients/css-generator.d.ts +10 -0
  176. package/dist/core/src/gradients/css-generator.d.ts.map +1 -0
  177. package/dist/core/src/gradients/css-generator.js +123 -0
  178. package/dist/core/src/gradients/css-generator.js.map +1 -0
  179. package/dist/core/src/gradients/examples.d.ts +432 -0
  180. package/dist/core/src/gradients/examples.d.ts.map +1 -0
  181. package/dist/core/src/gradients/examples.js +588 -0
  182. package/dist/core/src/gradients/examples.js.map +1 -0
  183. package/dist/core/src/gradients/gradient-asset.d.ts +10 -0
  184. package/dist/core/src/gradients/gradient-asset.d.ts.map +1 -0
  185. package/dist/core/src/gradients/gradient-asset.js +25 -0
  186. package/dist/core/src/gradients/gradient-asset.js.map +1 -0
  187. package/dist/core/src/gradients/index.d.ts +19 -0
  188. package/dist/core/src/gradients/index.d.ts.map +1 -0
  189. package/dist/core/src/gradients/index.js +56 -0
  190. package/dist/core/src/gradients/index.js.map +1 -0
  191. package/dist/core/src/gradients/performance.d.ts +146 -0
  192. package/dist/core/src/gradients/performance.d.ts.map +1 -0
  193. package/dist/core/src/gradients/performance.js +413 -0
  194. package/dist/core/src/gradients/performance.js.map +1 -0
  195. package/dist/core/src/gradients/presets.d.ts +165 -0
  196. package/dist/core/src/gradients/presets.d.ts.map +1 -0
  197. package/dist/core/src/gradients/presets.js +371 -0
  198. package/dist/core/src/gradients/presets.js.map +1 -0
  199. package/dist/core/src/gradients/reactive.d.ts +167 -0
  200. package/dist/core/src/gradients/reactive.d.ts.map +1 -0
  201. package/dist/core/src/gradients/reactive.js +329 -0
  202. package/dist/core/src/gradients/reactive.js.map +1 -0
  203. package/dist/core/src/gradients/state-gradient-asset.d.ts +67 -0
  204. package/dist/core/src/gradients/state-gradient-asset.d.ts.map +1 -0
  205. package/dist/core/src/gradients/state-gradient-asset.js +145 -0
  206. package/dist/core/src/gradients/state-gradient-asset.js.map +1 -0
  207. package/dist/core/src/gradients/types.d.ts +6 -0
  208. package/dist/core/src/gradients/types.d.ts.map +1 -0
  209. package/dist/core/src/gradients/types.js +6 -0
  210. package/dist/core/src/gradients/types.js.map +1 -0
  211. package/dist/core/src/gradients/utils.d.ts +313 -0
  212. package/dist/core/src/gradients/utils.d.ts.map +1 -0
  213. package/dist/core/src/gradients/utils.js +513 -0
  214. package/dist/core/src/gradients/utils.js.map +1 -0
  215. package/dist/core/src/gradients/validation.d.ts +156 -0
  216. package/dist/core/src/gradients/validation.d.ts.map +1 -0
  217. package/dist/core/src/gradients/validation.js +392 -0
  218. package/dist/core/src/gradients/validation.js.map +1 -0
  219. package/dist/core/src/index.d.ts +33 -0
  220. package/dist/core/src/index.d.ts.map +1 -0
  221. package/dist/core/src/index.js +57 -0
  222. package/dist/core/src/index.js.map +1 -0
  223. package/dist/core/src/lifecycle/hooks.d.ts +101 -0
  224. package/dist/core/src/lifecycle/hooks.d.ts.map +1 -0
  225. package/dist/core/src/lifecycle/hooks.js +241 -0
  226. package/dist/core/src/lifecycle/hooks.js.map +1 -0
  227. package/dist/core/src/modifiers/alignment.d.ts +5 -0
  228. package/dist/core/src/modifiers/alignment.d.ts.map +1 -0
  229. package/dist/core/src/modifiers/alignment.js +19 -0
  230. package/dist/core/src/modifiers/alignment.js.map +1 -0
  231. package/dist/core/src/modifiers/base.d.ts +128 -0
  232. package/dist/core/src/modifiers/base.d.ts.map +1 -0
  233. package/dist/core/src/modifiers/base.js +1062 -0
  234. package/dist/core/src/modifiers/base.js.map +1 -0
  235. package/dist/core/src/modifiers/builder.d.ts +148 -0
  236. package/dist/core/src/modifiers/builder.d.ts.map +1 -0
  237. package/dist/core/src/modifiers/builder.js +903 -0
  238. package/dist/core/src/modifiers/builder.js.map +1 -0
  239. package/dist/core/src/modifiers/core.d.ts +14 -0
  240. package/dist/core/src/modifiers/core.d.ts.map +1 -0
  241. package/dist/core/src/modifiers/core.js +16 -0
  242. package/dist/core/src/modifiers/core.js.map +1 -0
  243. package/dist/core/src/modifiers/corner-radius.d.ts +8 -0
  244. package/dist/core/src/modifiers/corner-radius.d.ts.map +1 -0
  245. package/dist/core/src/modifiers/corner-radius.js +19 -0
  246. package/dist/core/src/modifiers/corner-radius.js.map +1 -0
  247. package/dist/core/src/modifiers/factories.d.ts +88 -0
  248. package/dist/core/src/modifiers/factories.d.ts.map +1 -0
  249. package/dist/core/src/modifiers/factories.js +376 -0
  250. package/dist/core/src/modifiers/factories.js.map +1 -0
  251. package/dist/core/src/modifiers/index.d.ts +17 -0
  252. package/dist/core/src/modifiers/index.d.ts.map +1 -0
  253. package/dist/core/src/modifiers/index.js +16 -0
  254. package/dist/core/src/modifiers/index.js.map +1 -0
  255. package/dist/core/src/modifiers/layout-priority.d.ts +8 -0
  256. package/dist/core/src/modifiers/layout-priority.d.ts.map +1 -0
  257. package/dist/core/src/modifiers/layout-priority.js +19 -0
  258. package/dist/core/src/modifiers/layout-priority.js.map +1 -0
  259. package/dist/core/src/modifiers/opacity.d.ts +8 -0
  260. package/dist/core/src/modifiers/opacity.d.ts.map +1 -0
  261. package/dist/core/src/modifiers/opacity.js +19 -0
  262. package/dist/core/src/modifiers/opacity.js.map +1 -0
  263. package/dist/core/src/modifiers/presets.d.ts +368 -0
  264. package/dist/core/src/modifiers/presets.d.ts.map +1 -0
  265. package/dist/core/src/modifiers/presets.js +394 -0
  266. package/dist/core/src/modifiers/presets.js.map +1 -0
  267. package/dist/core/src/modifiers/proxy.d.ts +4 -0
  268. package/dist/core/src/modifiers/proxy.d.ts.map +1 -0
  269. package/dist/core/src/modifiers/proxy.js +212 -0
  270. package/dist/core/src/modifiers/proxy.js.map +1 -0
  271. package/dist/core/src/modifiers/registration-utils.d.ts +7 -0
  272. package/dist/core/src/modifiers/registration-utils.d.ts.map +1 -0
  273. package/dist/core/src/modifiers/registration-utils.js +46 -0
  274. package/dist/core/src/modifiers/registration-utils.js.map +1 -0
  275. package/dist/core/src/modifiers/registry.d.ts +78 -0
  276. package/dist/core/src/modifiers/registry.d.ts.map +1 -0
  277. package/dist/core/src/modifiers/registry.js +397 -0
  278. package/dist/core/src/modifiers/registry.js.map +1 -0
  279. package/dist/core/src/modifiers/types.d.ts +6 -0
  280. package/dist/core/src/modifiers/types.d.ts.map +1 -0
  281. package/dist/core/src/modifiers/types.js +6 -0
  282. package/dist/core/src/modifiers/types.js.map +1 -0
  283. package/dist/core/src/plugins/index.d.ts +16 -0
  284. package/dist/core/src/plugins/index.d.ts.map +1 -0
  285. package/dist/core/src/plugins/index.js +21 -0
  286. package/dist/core/src/plugins/index.js.map +1 -0
  287. package/dist/core/src/plugins/legacy-adapter.d.ts +35 -0
  288. package/dist/core/src/plugins/legacy-adapter.d.ts.map +1 -0
  289. package/dist/core/src/plugins/legacy-adapter.js +57 -0
  290. package/dist/core/src/plugins/legacy-adapter.js.map +1 -0
  291. package/dist/core/src/plugins/simplified-component-registry.d.ts +40 -0
  292. package/dist/core/src/plugins/simplified-component-registry.d.ts.map +1 -0
  293. package/dist/core/src/plugins/simplified-component-registry.js +97 -0
  294. package/dist/core/src/plugins/simplified-component-registry.js.map +1 -0
  295. package/dist/core/src/plugins/simplified-lazy-loader.d.ts +65 -0
  296. package/dist/core/src/plugins/simplified-lazy-loader.d.ts.map +1 -0
  297. package/dist/core/src/plugins/simplified-lazy-loader.js +205 -0
  298. package/dist/core/src/plugins/simplified-lazy-loader.js.map +1 -0
  299. package/dist/core/src/plugins/simplified-plugin-manager.d.ts +24 -0
  300. package/dist/core/src/plugins/simplified-plugin-manager.d.ts.map +1 -0
  301. package/dist/core/src/plugins/simplified-plugin-manager.js +77 -0
  302. package/dist/core/src/plugins/simplified-plugin-manager.js.map +1 -0
  303. package/dist/core/src/plugins/simplified-tachui-instance.d.ts +54 -0
  304. package/dist/core/src/plugins/simplified-tachui-instance.d.ts.map +1 -0
  305. package/dist/core/src/plugins/simplified-tachui-instance.js +114 -0
  306. package/dist/core/src/plugins/simplified-tachui-instance.js.map +1 -0
  307. package/dist/core/src/plugins/simplified-types.d.ts +63 -0
  308. package/dist/core/src/plugins/simplified-types.d.ts.map +1 -0
  309. package/dist/core/src/plugins/simplified-types.js +18 -0
  310. package/dist/core/src/plugins/simplified-types.js.map +1 -0
  311. package/dist/core/src/plugins/simplified-utils.d.ts +39 -0
  312. package/dist/core/src/plugins/simplified-utils.d.ts.map +1 -0
  313. package/dist/core/src/plugins/simplified-utils.js +104 -0
  314. package/dist/core/src/plugins/simplified-utils.js.map +1 -0
  315. package/dist/core/src/reactive/cleanup.d.ts +115 -0
  316. package/dist/core/src/reactive/cleanup.d.ts.map +1 -0
  317. package/dist/core/src/reactive/cleanup.js +187 -0
  318. package/dist/core/src/reactive/cleanup.js.map +1 -0
  319. package/dist/core/src/reactive/computed.d.ts +115 -0
  320. package/dist/core/src/reactive/computed.d.ts.map +1 -0
  321. package/dist/core/src/reactive/computed.js +237 -0
  322. package/dist/core/src/reactive/computed.js.map +1 -0
  323. package/dist/core/src/reactive/context.d.ts +83 -0
  324. package/dist/core/src/reactive/context.d.ts.map +1 -0
  325. package/dist/core/src/reactive/context.js +286 -0
  326. package/dist/core/src/reactive/context.js.map +1 -0
  327. package/dist/core/src/reactive/effect.d.ts +79 -0
  328. package/dist/core/src/reactive/effect.d.ts.map +1 -0
  329. package/dist/core/src/reactive/effect.js +159 -0
  330. package/dist/core/src/reactive/effect.js.map +1 -0
  331. package/dist/core/src/reactive/enhanced-effect.d.ts +108 -0
  332. package/dist/core/src/reactive/enhanced-effect.d.ts.map +1 -0
  333. package/dist/core/src/reactive/enhanced-effect.js +265 -0
  334. package/dist/core/src/reactive/enhanced-effect.js.map +1 -0
  335. package/dist/core/src/reactive/enhanced-signal.d.ts +91 -0
  336. package/dist/core/src/reactive/enhanced-signal.d.ts.map +1 -0
  337. package/dist/core/src/reactive/enhanced-signal.js +175 -0
  338. package/dist/core/src/reactive/enhanced-signal.js.map +1 -0
  339. package/dist/core/src/reactive/equality.d.ts +51 -0
  340. package/dist/core/src/reactive/equality.d.ts.map +1 -0
  341. package/dist/core/src/reactive/equality.js +169 -0
  342. package/dist/core/src/reactive/equality.js.map +1 -0
  343. package/dist/core/src/reactive/index.d.ts +22 -0
  344. package/dist/core/src/reactive/index.d.ts.map +1 -0
  345. package/dist/core/src/reactive/index.js +33 -0
  346. package/dist/core/src/reactive/index.js.map +1 -0
  347. package/dist/core/src/reactive/migration.d.ts +104 -0
  348. package/dist/core/src/reactive/migration.d.ts.map +1 -0
  349. package/dist/core/src/reactive/migration.js +257 -0
  350. package/dist/core/src/reactive/migration.js.map +1 -0
  351. package/dist/core/src/reactive/ownership.d.ts +75 -0
  352. package/dist/core/src/reactive/ownership.d.ts.map +1 -0
  353. package/dist/core/src/reactive/ownership.js +155 -0
  354. package/dist/core/src/reactive/ownership.js.map +1 -0
  355. package/dist/core/src/reactive/scheduler.d.ts +56 -0
  356. package/dist/core/src/reactive/scheduler.d.ts.map +1 -0
  357. package/dist/core/src/reactive/scheduler.js +263 -0
  358. package/dist/core/src/reactive/scheduler.js.map +1 -0
  359. package/dist/core/src/reactive/signal-list.d.ts +100 -0
  360. package/dist/core/src/reactive/signal-list.d.ts.map +1 -0
  361. package/dist/core/src/reactive/signal-list.js +240 -0
  362. package/dist/core/src/reactive/signal-list.js.map +1 -0
  363. package/dist/core/src/reactive/signal.d.ts +82 -0
  364. package/dist/core/src/reactive/signal.d.ts.map +1 -0
  365. package/dist/core/src/reactive/signal.js +172 -0
  366. package/dist/core/src/reactive/signal.js.map +1 -0
  367. package/dist/core/src/reactive/theme.d.ts +12 -0
  368. package/dist/core/src/reactive/theme.d.ts.map +1 -0
  369. package/dist/core/src/reactive/theme.js +41 -0
  370. package/dist/core/src/reactive/theme.js.map +1 -0
  371. package/dist/core/src/reactive/types.d.ts +6 -0
  372. package/dist/core/src/reactive/types.d.ts.map +1 -0
  373. package/dist/core/src/reactive/types.js +6 -0
  374. package/dist/core/src/reactive/types.js.map +1 -0
  375. package/dist/core/src/reactive/unified-scheduler.d.ts +112 -0
  376. package/dist/core/src/reactive/unified-scheduler.d.ts.map +1 -0
  377. package/dist/core/src/reactive/unified-scheduler.js +315 -0
  378. package/dist/core/src/reactive/unified-scheduler.js.map +1 -0
  379. package/dist/core/src/runtime/component-context.d.ts +73 -0
  380. package/dist/core/src/runtime/component-context.d.ts.map +1 -0
  381. package/dist/core/src/runtime/component-context.js +278 -0
  382. package/dist/core/src/runtime/component-context.js.map +1 -0
  383. package/dist/core/src/runtime/component.d.ts +112 -0
  384. package/dist/core/src/runtime/component.d.ts.map +1 -0
  385. package/dist/core/src/runtime/component.js +394 -0
  386. package/dist/core/src/runtime/component.js.map +1 -0
  387. package/dist/core/src/runtime/context.d.ts +138 -0
  388. package/dist/core/src/runtime/context.d.ts.map +1 -0
  389. package/dist/core/src/runtime/context.js +411 -0
  390. package/dist/core/src/runtime/context.js.map +1 -0
  391. package/dist/core/src/runtime/dom-bridge.d.ts +70 -0
  392. package/dist/core/src/runtime/dom-bridge.d.ts.map +1 -0
  393. package/dist/core/src/runtime/dom-bridge.js +481 -0
  394. package/dist/core/src/runtime/dom-bridge.js.map +1 -0
  395. package/dist/core/src/runtime/element-override.d.ts +82 -0
  396. package/dist/core/src/runtime/element-override.d.ts.map +1 -0
  397. package/dist/core/src/runtime/element-override.js +360 -0
  398. package/dist/core/src/runtime/element-override.js.map +1 -0
  399. package/dist/core/src/runtime/event-delegation.d.ts +59 -0
  400. package/dist/core/src/runtime/event-delegation.d.ts.map +1 -0
  401. package/dist/core/src/runtime/event-delegation.js +220 -0
  402. package/dist/core/src/runtime/event-delegation.js.map +1 -0
  403. package/dist/core/src/runtime/index.d.ts +24 -0
  404. package/dist/core/src/runtime/index.d.ts.map +1 -0
  405. package/dist/core/src/runtime/index.js +36 -0
  406. package/dist/core/src/runtime/index.js.map +1 -0
  407. package/dist/core/src/runtime/lazy-component.d.ts +58 -0
  408. package/dist/core/src/runtime/lazy-component.d.ts.map +1 -0
  409. package/dist/core/src/runtime/lazy-component.js +206 -0
  410. package/dist/core/src/runtime/lazy-component.js.map +1 -0
  411. package/dist/core/src/runtime/lifecycle.d.ts +8 -0
  412. package/dist/core/src/runtime/lifecycle.d.ts.map +1 -0
  413. package/dist/core/src/runtime/lifecycle.js +9 -0
  414. package/dist/core/src/runtime/lifecycle.js.map +1 -0
  415. package/dist/core/src/runtime/mounting.d.ts +9 -0
  416. package/dist/core/src/runtime/mounting.d.ts.map +1 -0
  417. package/dist/core/src/runtime/mounting.js +15 -0
  418. package/dist/core/src/runtime/mounting.js.map +1 -0
  419. package/dist/core/src/runtime/optimization.d.ts +8 -0
  420. package/dist/core/src/runtime/optimization.d.ts.map +1 -0
  421. package/dist/core/src/runtime/optimization.js +12 -0
  422. package/dist/core/src/runtime/optimization.js.map +1 -0
  423. package/dist/core/src/runtime/props.d.ts +154 -0
  424. package/dist/core/src/runtime/props.d.ts.map +1 -0
  425. package/dist/core/src/runtime/props.js +389 -0
  426. package/dist/core/src/runtime/props.js.map +1 -0
  427. package/dist/core/src/runtime/renderer.d.ts +168 -0
  428. package/dist/core/src/runtime/renderer.d.ts.map +1 -0
  429. package/dist/core/src/runtime/renderer.js +1181 -0
  430. package/dist/core/src/runtime/renderer.js.map +1 -0
  431. package/dist/core/src/runtime/semantic-role-manager.d.ts +37 -0
  432. package/dist/core/src/runtime/semantic-role-manager.d.ts.map +1 -0
  433. package/dist/core/src/runtime/semantic-role-manager.js +102 -0
  434. package/dist/core/src/runtime/semantic-role-manager.js.map +1 -0
  435. package/dist/core/src/runtime/types.d.ts +6 -0
  436. package/dist/core/src/runtime/types.d.ts.map +1 -0
  437. package/dist/core/src/runtime/types.js +6 -0
  438. package/dist/core/src/runtime/types.js.map +1 -0
  439. package/dist/core/src/state/binding.d.ts +96 -0
  440. package/dist/core/src/state/binding.d.ts.map +1 -0
  441. package/dist/core/src/state/binding.js +264 -0
  442. package/dist/core/src/state/binding.js.map +1 -0
  443. package/dist/core/src/state/environment.d.ts +178 -0
  444. package/dist/core/src/state/environment.d.ts.map +1 -0
  445. package/dist/core/src/state/environment.js +272 -0
  446. package/dist/core/src/state/environment.js.map +1 -0
  447. package/dist/core/src/state/index.d.ts +108 -0
  448. package/dist/core/src/state/index.d.ts.map +1 -0
  449. package/dist/core/src/state/index.js +102 -0
  450. package/dist/core/src/state/index.js.map +1 -0
  451. package/dist/core/src/state/observed-object.d.ts +126 -0
  452. package/dist/core/src/state/observed-object.d.ts.map +1 -0
  453. package/dist/core/src/state/observed-object.js +330 -0
  454. package/dist/core/src/state/observed-object.js.map +1 -0
  455. package/dist/core/src/state/state-manager.d.ts +97 -0
  456. package/dist/core/src/state/state-manager.d.ts.map +1 -0
  457. package/dist/core/src/state/state-manager.js +297 -0
  458. package/dist/core/src/state/state-manager.js.map +1 -0
  459. package/dist/core/src/state/state.d.ts +78 -0
  460. package/dist/core/src/state/state.d.ts.map +1 -0
  461. package/dist/core/src/state/state.js +283 -0
  462. package/dist/core/src/state/state.js.map +1 -0
  463. package/dist/core/src/state/types.d.ts +159 -0
  464. package/dist/core/src/state/types.d.ts.map +1 -0
  465. package/dist/core/src/state/types.js +8 -0
  466. package/dist/core/src/state/types.js.map +1 -0
  467. package/dist/core/src/utils/clone-helpers.d.ts +11 -0
  468. package/dist/core/src/utils/clone-helpers.d.ts.map +1 -0
  469. package/dist/core/src/utils/clone-helpers.js +69 -0
  470. package/dist/core/src/utils/clone-helpers.js.map +1 -0
  471. package/dist/core/src/validation/build-time-stub.d.ts +33 -0
  472. package/dist/core/src/validation/build-time-stub.d.ts.map +1 -0
  473. package/dist/core/src/validation/build-time-stub.js +53 -0
  474. package/dist/core/src/validation/build-time-stub.js.map +1 -0
  475. package/dist/core/src/validation/debug-tools-stub.d.ts +67 -0
  476. package/dist/core/src/validation/debug-tools-stub.d.ts.map +1 -0
  477. package/dist/core/src/validation/debug-tools-stub.js +94 -0
  478. package/dist/core/src/validation/debug-tools-stub.js.map +1 -0
  479. package/dist/core/src/validation/index.d.ts +116 -0
  480. package/dist/core/src/validation/index.d.ts.map +1 -0
  481. package/dist/core/src/validation/index.js +306 -0
  482. package/dist/core/src/validation/index.js.map +1 -0
  483. package/dist/core/src/validation/lifecycle-validation.d.ts +165 -0
  484. package/dist/core/src/validation/lifecycle-validation.d.ts.map +1 -0
  485. package/dist/core/src/validation/lifecycle-validation.js +501 -0
  486. package/dist/core/src/validation/lifecycle-validation.js.map +1 -0
  487. package/dist/core/src/validation/performance-optimizer-stub.d.ts +50 -0
  488. package/dist/core/src/validation/performance-optimizer-stub.d.ts.map +1 -0
  489. package/dist/core/src/validation/performance-optimizer-stub.js +50 -0
  490. package/dist/core/src/validation/performance-optimizer-stub.js.map +1 -0
  491. package/dist/core/src/validation/plugin-registration.d.ts +92 -0
  492. package/dist/core/src/validation/plugin-registration.d.ts.map +1 -0
  493. package/dist/core/src/validation/plugin-registration.js +199 -0
  494. package/dist/core/src/validation/plugin-registration.js.map +1 -0
  495. package/dist/core/src/validation/production-bypass-core.d.ts +69 -0
  496. package/dist/core/src/validation/production-bypass-core.d.ts.map +1 -0
  497. package/dist/core/src/validation/production-bypass-core.js +115 -0
  498. package/dist/core/src/validation/production-bypass-core.js.map +1 -0
  499. package/dist/core/src/version.d.ts +19 -0
  500. package/dist/core/src/version.d.ts.map +1 -0
  501. package/dist/core/src/version.js +20 -0
  502. package/dist/core/src/version.js.map +1 -0
  503. package/dist/devtools/src/build-time/detection.d.ts +32 -0
  504. package/dist/devtools/src/build-time/detection.d.ts.map +1 -0
  505. package/dist/devtools/src/build-time/detection.js +327 -0
  506. package/dist/devtools/src/build-time/detection.js.map +1 -0
  507. package/dist/devtools/src/build-time/index.d.ts +84 -0
  508. package/dist/devtools/src/build-time/index.d.ts.map +1 -0
  509. package/dist/devtools/src/build-time/index.js +157 -0
  510. package/dist/devtools/src/build-time/index.js.map +1 -0
  511. package/dist/devtools/src/build-time/plugins.d.ts +75 -0
  512. package/dist/devtools/src/build-time/plugins.d.ts.map +1 -0
  513. package/dist/devtools/src/build-time/plugins.js +429 -0
  514. package/dist/devtools/src/build-time/plugins.js.map +1 -0
  515. package/dist/devtools/src/build-time/rules.d.ts +73 -0
  516. package/dist/devtools/src/build-time/rules.d.ts.map +1 -0
  517. package/dist/devtools/src/build-time/rules.js +622 -0
  518. package/dist/devtools/src/build-time/rules.js.map +1 -0
  519. package/dist/devtools/src/build-time/transformer.d.ts +23 -0
  520. package/dist/devtools/src/build-time/transformer.d.ts.map +1 -0
  521. package/dist/devtools/src/build-time/transformer.js +294 -0
  522. package/dist/devtools/src/build-time/transformer.js.map +1 -0
  523. package/dist/devtools/src/build-time/types.d.ts +212 -0
  524. package/dist/devtools/src/build-time/types.d.ts.map +1 -0
  525. package/dist/devtools/src/build-time/types.js +8 -0
  526. package/dist/devtools/src/build-time/types.js.map +1 -0
  527. package/dist/devtools/src/debug/debug.d.ts +61 -0
  528. package/dist/devtools/src/debug/debug.d.ts.map +1 -0
  529. package/dist/devtools/src/debug/debug.js +239 -0
  530. package/dist/devtools/src/debug/debug.js.map +1 -0
  531. package/dist/devtools/src/debug/development-warnings.d.ts +42 -0
  532. package/dist/devtools/src/debug/development-warnings.d.ts.map +1 -0
  533. package/dist/devtools/src/debug/development-warnings.js +84 -0
  534. package/dist/devtools/src/debug/development-warnings.js.map +1 -0
  535. package/dist/devtools/src/debug/enhanced-errors.d.ts +176 -0
  536. package/dist/devtools/src/debug/enhanced-errors.d.ts.map +1 -0
  537. package/dist/devtools/src/debug/enhanced-errors.js +481 -0
  538. package/dist/devtools/src/debug/enhanced-errors.js.map +1 -0
  539. package/dist/devtools/src/debug/enhanced-types.d.ts +284 -0
  540. package/dist/devtools/src/debug/enhanced-types.d.ts.map +1 -0
  541. package/dist/devtools/src/debug/enhanced-types.js +8 -0
  542. package/dist/devtools/src/debug/enhanced-types.js.map +1 -0
  543. package/dist/devtools/src/debug/index.d.ts +13 -0
  544. package/dist/devtools/src/debug/index.d.ts.map +1 -0
  545. package/dist/devtools/src/debug/index.js +17 -0
  546. package/dist/devtools/src/debug/index.js.map +1 -0
  547. package/dist/devtools/src/debug/validation-debug-tools.d.ts +228 -0
  548. package/dist/devtools/src/debug/validation-debug-tools.d.ts.map +1 -0
  549. package/dist/devtools/src/debug/validation-debug-tools.js +472 -0
  550. package/dist/devtools/src/debug/validation-debug-tools.js.map +1 -0
  551. package/dist/devtools/src/import-guide.d.ts +50 -0
  552. package/dist/devtools/src/import-guide.d.ts.map +1 -0
  553. package/dist/devtools/src/import-guide.js +257 -0
  554. package/dist/devtools/src/import-guide.js.map +1 -0
  555. package/dist/devtools/src/index.d.ts +24 -0
  556. package/dist/devtools/src/index.d.ts.map +1 -0
  557. package/dist/devtools/src/index.js +32 -0
  558. package/dist/devtools/src/index.js.map +1 -0
  559. package/dist/devtools/src/inspector/index.d.ts +232 -0
  560. package/dist/devtools/src/inspector/index.d.ts.map +1 -0
  561. package/dist/devtools/src/inspector/index.js +551 -0
  562. package/dist/devtools/src/inspector/index.js.map +1 -0
  563. package/dist/devtools/src/modifier-parameter-system.d.ts +69 -0
  564. package/dist/devtools/src/modifier-parameter-system.d.ts.map +1 -0
  565. package/dist/devtools/src/modifier-parameter-system.js +462 -0
  566. package/dist/devtools/src/modifier-parameter-system.js.map +1 -0
  567. package/dist/devtools/src/plugins/simplified-error-handler.d.ts +83 -0
  568. package/dist/devtools/src/plugins/simplified-error-handler.d.ts.map +1 -0
  569. package/dist/devtools/src/plugins/simplified-error-handler.js +335 -0
  570. package/dist/devtools/src/plugins/simplified-error-handler.js.map +1 -0
  571. package/dist/devtools/src/profiler/index.d.ts +21 -0
  572. package/dist/devtools/src/profiler/index.d.ts.map +1 -0
  573. package/dist/devtools/src/profiler/index.js +30 -0
  574. package/dist/devtools/src/profiler/index.js.map +1 -0
  575. package/dist/devtools/src/profiler/performance-optimizer.d.ts +115 -0
  576. package/dist/devtools/src/profiler/performance-optimizer.d.ts.map +1 -0
  577. package/dist/devtools/src/profiler/performance-optimizer.js +273 -0
  578. package/dist/devtools/src/profiler/performance-optimizer.js.map +1 -0
  579. package/dist/devtools/src/profiler/production-monitoring.d.ts +150 -0
  580. package/dist/devtools/src/profiler/production-monitoring.d.ts.map +1 -0
  581. package/dist/devtools/src/profiler/production-monitoring.js +274 -0
  582. package/dist/devtools/src/profiler/production-monitoring.js.map +1 -0
  583. package/dist/devtools/src/runtime/error-boundary.d.ts +302 -0
  584. package/dist/devtools/src/runtime/error-boundary.d.ts.map +1 -0
  585. package/dist/devtools/src/runtime/error-boundary.js +717 -0
  586. package/dist/devtools/src/runtime/error-boundary.js.map +1 -0
  587. package/dist/devtools/src/runtime/error-recovery.d.ts +267 -0
  588. package/dist/devtools/src/runtime/error-recovery.d.ts.map +1 -0
  589. package/dist/devtools/src/runtime/error-recovery.js +499 -0
  590. package/dist/devtools/src/runtime/error-recovery.js.map +1 -0
  591. package/dist/devtools/src/runtime/error-reporting.d.ts +287 -0
  592. package/dist/devtools/src/runtime/error-reporting.d.ts.map +1 -0
  593. package/dist/devtools/src/runtime/error-reporting.js +626 -0
  594. package/dist/devtools/src/runtime/error-reporting.js.map +1 -0
  595. package/dist/devtools/src/runtime/error-utils.d.ts +204 -0
  596. package/dist/devtools/src/runtime/error-utils.d.ts.map +1 -0
  597. package/dist/devtools/src/runtime/error-utils.js +519 -0
  598. package/dist/devtools/src/runtime/error-utils.js.map +1 -0
  599. package/dist/devtools/src/runtime/performance.d.ts +217 -0
  600. package/dist/devtools/src/runtime/performance.d.ts.map +1 -0
  601. package/dist/devtools/src/runtime/performance.js +538 -0
  602. package/dist/devtools/src/runtime/performance.js.map +1 -0
  603. package/dist/devtools/src/testing/index.d.ts +29 -0
  604. package/dist/devtools/src/testing/index.d.ts.map +1 -0
  605. package/dist/devtools/src/testing/index.js +48 -0
  606. package/dist/devtools/src/testing/index.js.map +1 -0
  607. package/dist/devtools/src/validation/enhanced-runtime.d.ts +310 -0
  608. package/dist/devtools/src/validation/enhanced-runtime.d.ts.map +1 -0
  609. package/dist/devtools/src/validation/enhanced-runtime.js +603 -0
  610. package/dist/devtools/src/validation/enhanced-runtime.js.map +1 -0
  611. package/dist/devtools/src/validation/error-reporting.d.ts +186 -0
  612. package/dist/devtools/src/validation/error-reporting.d.ts.map +1 -0
  613. package/dist/devtools/src/validation/error-reporting.js +439 -0
  614. package/dist/devtools/src/validation/error-reporting.js.map +1 -0
  615. package/package.json +6 -2
  616. package/dist/commands/analyze.d.ts.map +0 -1
  617. package/dist/commands/analyze.js.map +0 -1
  618. package/dist/commands/dev.d.ts.map +0 -1
  619. package/dist/commands/dev.js.map +0 -1
  620. package/dist/commands/generate.d.ts.map +0 -1
  621. package/dist/commands/generate.js.map +0 -1
  622. package/dist/commands/init.d.ts.map +0 -1
  623. package/dist/commands/init.js.map +0 -1
  624. package/dist/commands/migrate.d.ts.map +0 -1
  625. package/dist/commands/migrate.js.map +0 -1
  626. package/dist/commands/optimize.d.ts.map +0 -1
  627. package/dist/commands/optimize.js.map +0 -1
  628. package/dist/index.d.ts.map +0 -1
  629. package/dist/index.js.map +0 -1
  630. /package/dist/{commands → cli/src/commands}/analyze.d.ts +0 -0
  631. /package/dist/{commands → cli/src/commands}/dev.d.ts +0 -0
  632. /package/dist/{commands → cli/src/commands}/dev.js +0 -0
  633. /package/dist/{commands → cli/src/commands}/generate.d.ts +0 -0
  634. /package/dist/{commands → cli/src/commands}/init.d.ts +0 -0
  635. /package/dist/{commands → cli/src/commands}/migrate.d.ts +0 -0
  636. /package/dist/{commands → cli/src/commands}/optimize.d.ts +0 -0
  637. /package/dist/{commands → cli/src/commands}/optimize.js +0 -0
  638. /package/dist/{index.d.ts → cli/src/index.d.ts} +0 -0
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Text Concatenation Optimizer (Enhanced - Phase 4.1)
3
+ *
4
+ * Optimizes concatenated text components by merging adjacent text segments
5
+ * with compatible modifiers to improve performance and reduce DOM complexity.
6
+ *
7
+ * Enhanced with caching and advanced optimization strategies.
8
+ */
9
+ import { h, text } from '../runtime/renderer';
10
+ /**
11
+ * Cache for segment optimization results
12
+ */
13
+ const optimizationCache = new Map();
14
+ const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
15
+ const MAX_CACHE_SIZE = 100;
16
+ /**
17
+ * Text-specific concatenation optimizer
18
+ */
19
+ export class TextConcatenationOptimizer {
20
+ /**
21
+ * Optimize an array of segments by merging compatible adjacent text segments
22
+ * Enhanced with caching and performance monitoring
23
+ */
24
+ static optimize(segments) {
25
+ const startTime = performance.now();
26
+ if (segments.length < 2)
27
+ return segments;
28
+ // Generate cache key from segments
29
+ const cacheKey = this.generateCacheKey(segments);
30
+ // Check cache first
31
+ const cached = this.getCachedOptimization(cacheKey);
32
+ if (cached) {
33
+ return cached.optimizedSegments;
34
+ }
35
+ // Perform optimization
36
+ const optimized = this.performOptimization(segments);
37
+ const processingTime = performance.now() - startTime;
38
+ // Cache the result
39
+ const stats = {
40
+ ...this.getOptimizationStats(segments, optimized),
41
+ processingTimeMs: processingTime
42
+ };
43
+ this.cacheOptimization(cacheKey, optimized, stats);
44
+ // Log performance in development
45
+ if (process.env.NODE_ENV === 'development' && processingTime > 5) {
46
+ console.log(`TachUI Concatenation: Optimization took ${processingTime.toFixed(2)}ms for ${segments.length} segments`);
47
+ }
48
+ return optimized;
49
+ }
50
+ /**
51
+ * Core optimization algorithm separated for clarity
52
+ */
53
+ static performOptimization(segments) {
54
+ const optimized = [];
55
+ for (const segment of segments) {
56
+ const lastSegment = optimized[optimized.length - 1];
57
+ if (lastSegment && this.canMergeTextSegments(lastSegment, segment)) {
58
+ // Merge the segments
59
+ optimized[optimized.length - 1] = this.mergeTextSegments(lastSegment, segment);
60
+ }
61
+ else {
62
+ // Add segment as-is
63
+ optimized.push(segment);
64
+ }
65
+ }
66
+ return optimized;
67
+ }
68
+ /**
69
+ * Generate a cache key from segments
70
+ */
71
+ static generateCacheKey(segments) {
72
+ const keyParts = segments.map(segment => {
73
+ const component = segment.component;
74
+ const content = this.extractTextContent(component);
75
+ const modifierHash = this.hashModifiers(segment.modifiers);
76
+ return `${component.constructor.name}:${content}:${modifierHash}`;
77
+ });
78
+ return keyParts.join('|');
79
+ }
80
+ /**
81
+ * Hash modifiers for cache key generation
82
+ */
83
+ static hashModifiers(modifiers) {
84
+ if (modifiers.length === 0)
85
+ return 'none';
86
+ try {
87
+ const modifierData = modifiers.map(m => ({
88
+ type: m.type,
89
+ props: m.properties
90
+ }));
91
+ const jsonString = JSON.stringify(modifierData);
92
+ // Use btoa safely by checking for undefined/null
93
+ if (typeof btoa === 'function') {
94
+ return btoa(jsonString).substring(0, 8);
95
+ }
96
+ else {
97
+ // Fallback hash function for environments without btoa
98
+ return this.simpleHash(jsonString).toString(16).substring(0, 8);
99
+ }
100
+ }
101
+ catch {
102
+ return 'hash-error';
103
+ }
104
+ }
105
+ /**
106
+ * Simple hash function fallback for environments without btoa
107
+ */
108
+ static simpleHash(str) {
109
+ let hash = 0;
110
+ for (let i = 0; i < str.length; i++) {
111
+ const char = str.charCodeAt(i);
112
+ hash = ((hash << 5) - hash) + char;
113
+ hash = hash & hash; // Convert to 32-bit integer
114
+ }
115
+ return Math.abs(hash);
116
+ }
117
+ /**
118
+ * Get cached optimization result
119
+ */
120
+ static getCachedOptimization(cacheKey) {
121
+ const cached = optimizationCache.get(cacheKey);
122
+ if (!cached)
123
+ return null;
124
+ // Check if cache entry is still valid
125
+ const now = Date.now();
126
+ if (now - cached.timestamp > CACHE_TTL) {
127
+ optimizationCache.delete(cacheKey);
128
+ return null;
129
+ }
130
+ return cached;
131
+ }
132
+ /**
133
+ * Cache optimization result
134
+ */
135
+ static cacheOptimization(cacheKey, optimizedSegments, stats) {
136
+ // Implement LRU eviction if cache is full
137
+ if (optimizationCache.size >= MAX_CACHE_SIZE) {
138
+ const oldestKey = optimizationCache.keys().next().value;
139
+ if (oldestKey) {
140
+ optimizationCache.delete(oldestKey);
141
+ }
142
+ }
143
+ optimizationCache.set(cacheKey, {
144
+ optimizedSegments,
145
+ stats,
146
+ timestamp: Date.now()
147
+ });
148
+ }
149
+ /**
150
+ * Clear optimization cache (useful for testing)
151
+ */
152
+ static clearCache() {
153
+ optimizationCache.clear();
154
+ }
155
+ /**
156
+ * Get cache statistics
157
+ */
158
+ static getCacheStats() {
159
+ return {
160
+ size: optimizationCache.size,
161
+ maxSize: MAX_CACHE_SIZE,
162
+ hitRate: 0 // Would need to track hits/misses to calculate this
163
+ };
164
+ }
165
+ /**
166
+ * Check if two segments can be merged
167
+ */
168
+ static canMergeTextSegments(a, b) {
169
+ // Both must be text components
170
+ if (a.component.constructor.name !== 'EnhancedText' ||
171
+ b.component.constructor.name !== 'EnhancedText') {
172
+ return false;
173
+ }
174
+ // Check if modifiers are compatible
175
+ return this.modifiersCompatible(a.modifiers, b.modifiers);
176
+ }
177
+ /**
178
+ * Check if two modifier arrays are compatible for merging
179
+ */
180
+ static modifiersCompatible(modifiersA, modifiersB) {
181
+ // If lengths differ, they're not compatible
182
+ if (modifiersA.length !== modifiersB.length)
183
+ return false;
184
+ // Check each modifier for compatibility
185
+ for (let i = 0; i < modifiersA.length; i++) {
186
+ if (!this.modifierEqual(modifiersA[i], modifiersB[i])) {
187
+ return false;
188
+ }
189
+ }
190
+ return true;
191
+ }
192
+ /**
193
+ * Check if two modifiers are equal (simplified comparison)
194
+ */
195
+ static modifierEqual(a, b) {
196
+ // Basic type check
197
+ if (a.type !== b.type)
198
+ return false;
199
+ // For now, we'll be conservative and only merge if modifiers are exactly the same
200
+ // This could be expanded to allow compatible modifiers in the future
201
+ try {
202
+ return JSON.stringify(a.properties) === JSON.stringify(b.properties);
203
+ }
204
+ catch {
205
+ return false;
206
+ }
207
+ }
208
+ /**
209
+ * Merge two text segments into a single segment
210
+ */
211
+ static mergeTextSegments(a, b) {
212
+ const componentA = a.component;
213
+ const componentB = b.component;
214
+ // Extract text content from both components
215
+ const textA = this.extractTextContent(componentA);
216
+ const textB = this.extractTextContent(componentB);
217
+ // Create a new merged text component
218
+ const mergedContent = textA + textB;
219
+ // Create merged segment
220
+ return {
221
+ id: `merged-${a.id}-${b.id}`,
222
+ component: this.createMergedTextComponent(mergedContent, componentA.props, a.modifiers),
223
+ modifiers: a.modifiers, // Use modifiers from first segment (they're identical)
224
+ render: () => {
225
+ // Create a merged render function
226
+ const mergedComponent = this.createMergedTextComponent(mergedContent, componentA.props, a.modifiers);
227
+ return mergedComponent.render()[0];
228
+ }
229
+ };
230
+ }
231
+ /**
232
+ * Extract text content from a text component
233
+ */
234
+ static extractTextContent(component) {
235
+ const content = component.props?.content;
236
+ if (typeof content === 'string')
237
+ return content;
238
+ if (typeof content === 'function')
239
+ return content();
240
+ if (content && typeof content === 'object' && 'peek' in content) {
241
+ return content.peek() || '';
242
+ }
243
+ return '';
244
+ }
245
+ /**
246
+ * Create a new merged text component
247
+ */
248
+ static createMergedTextComponent(content, baseProps, modifiers) {
249
+ // Create a simplified text component to avoid circular dependencies
250
+ // Instead of importing EnhancedText, create a minimal compatible component
251
+ // Create new text component with merged content
252
+ const mergedProps = {
253
+ ...baseProps,
254
+ content: content
255
+ };
256
+ // Return a minimal component-like object that can be rendered
257
+ return {
258
+ type: 'Text',
259
+ id: `merged-text-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
260
+ props: mergedProps,
261
+ mounted: false,
262
+ cleanup: [],
263
+ modifiers: modifiers,
264
+ render() {
265
+ // Simple text rendering using imported runtime functions
266
+ const textNode = text(content);
267
+ return [h('span', {}, textNode)];
268
+ }
269
+ };
270
+ }
271
+ /**
272
+ * Analyze segments and determine if optimization would be beneficial
273
+ */
274
+ static shouldOptimize(segments) {
275
+ if (segments.length < 2)
276
+ return false;
277
+ // Count adjacent text segments
278
+ let adjacentTextPairs = 0;
279
+ for (let i = 0; i < segments.length - 1; i++) {
280
+ const current = segments[i];
281
+ const next = segments[i + 1];
282
+ if (current.component.constructor.name === 'EnhancedText' &&
283
+ next.component.constructor.name === 'EnhancedText') {
284
+ adjacentTextPairs++;
285
+ }
286
+ }
287
+ // Optimize if we have at least one pair of adjacent text segments
288
+ return adjacentTextPairs > 0;
289
+ }
290
+ /**
291
+ * Get optimization statistics (enhanced for Phase 4.1)
292
+ */
293
+ static getOptimizationStats(originalSegments, optimizedSegments) {
294
+ const reduction = originalSegments.length - optimizedSegments.length;
295
+ const reductionPercent = originalSegments.length > 0
296
+ ? Math.round((reduction / originalSegments.length) * 100)
297
+ : 0;
298
+ return {
299
+ originalCount: originalSegments.length,
300
+ optimizedCount: optimizedSegments.length,
301
+ reductionPercent,
302
+ textSegmentsMerged: reduction
303
+ };
304
+ }
305
+ /**
306
+ * Advanced optimization analysis for performance monitoring
307
+ */
308
+ static analyzeOptimizationOpportunities(segments) {
309
+ let textSegments = 0;
310
+ let imageSegments = 0;
311
+ let interactiveSegments = 0;
312
+ let optimizableTextPairs = 0;
313
+ for (let i = 0; i < segments.length; i++) {
314
+ const segment = segments[i];
315
+ const componentType = segment.component.constructor.name;
316
+ switch (componentType) {
317
+ case 'EnhancedText':
318
+ textSegments++;
319
+ // Check if next segment is also text and compatible
320
+ if (i < segments.length - 1) {
321
+ const nextSegment = segments[i + 1];
322
+ if (this.canMergeTextSegments(segment, nextSegment)) {
323
+ optimizableTextPairs++;
324
+ }
325
+ }
326
+ break;
327
+ case 'EnhancedImage':
328
+ imageSegments++;
329
+ break;
330
+ case 'EnhancedButton':
331
+ case 'EnhancedLinkComponent':
332
+ interactiveSegments++;
333
+ break;
334
+ }
335
+ }
336
+ const estimatedReductionPercent = segments.length > 0
337
+ ? Math.round((optimizableTextPairs / segments.length) * 100)
338
+ : 0;
339
+ return {
340
+ totalSegments: segments.length,
341
+ textSegments,
342
+ imageSegments,
343
+ interactiveSegments,
344
+ optimizableTextPairs,
345
+ estimatedReductionPercent
346
+ };
347
+ }
348
+ }
349
+ //# sourceMappingURL=text-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-optimizer.js","sourceRoot":"","sources":["../../../../../core/src/concatenation/text-optimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Core Concatenation Types
3
+ *
4
+ * Defines the fundamental types and interfaces for component concatenation,
5
+ * enabling SwiftUI-style component composition with the + operator.
6
+ */
7
+ import type { ComponentInstance } from '../runtime/types';
8
+ import type { Modifier } from '../modifiers/types';
9
+ import type { DOMNode } from '../runtime/types';
10
+ /**
11
+ * Represents a single component segment within a concatenated component
12
+ */
13
+ export interface ComponentSegment {
14
+ /** Unique identifier for this segment */
15
+ id: string;
16
+ /** The wrapped component instance */
17
+ component: ComponentInstance;
18
+ /** Modifiers applied to this specific segment */
19
+ modifiers: Modifier[];
20
+ /** Render this segment to a DOM node */
21
+ render(): DOMNode;
22
+ }
23
+ /**
24
+ * Metadata describing a concatenated component's structure and accessibility
25
+ */
26
+ export interface ConcatenationMetadata {
27
+ /** Total number of segments in the concatenated component */
28
+ totalSegments: number;
29
+ /** ARIA role for accessibility */
30
+ accessibilityRole: 'text' | 'group' | 'composite';
31
+ /** Semantic structure type for CSS rendering */
32
+ semanticStructure: 'inline' | 'block' | 'mixed';
33
+ }
34
+ /**
35
+ * Accessibility node structure for screen readers
36
+ */
37
+ export interface AccessibilityNode {
38
+ /** ARIA role */
39
+ role: string;
40
+ /** Accessibility label */
41
+ label: string;
42
+ /** Child accessibility nodes */
43
+ children?: AccessibilityNode[];
44
+ }
45
+ /**
46
+ * Type union for concatenation results
47
+ */
48
+ export type ConcatenationResult<T, U> = T extends ComponentInstance<infer TProps> ? U extends ComponentInstance<infer UProps> ? ConcatenatedComponent<TProps | UProps> : ConcatenatedComponent<TProps | any> : ConcatenatedComponent<any>;
49
+ export declare class ConcatenatedComponent<_T = any> implements ComponentInstance<any> {
50
+ readonly type: 'component';
51
+ readonly id: string;
52
+ mounted: boolean;
53
+ cleanup: (() => void)[];
54
+ props: any;
55
+ segments: ComponentSegment[];
56
+ metadata: ConcatenationMetadata;
57
+ render(): DOMNode[];
58
+ }
59
+ /**
60
+ * Core interface that components must implement to support concatenation
61
+ */
62
+ export interface Concatenatable<T = any> {
63
+ /**
64
+ * Concatenate this component with another concatenatable component
65
+ */
66
+ concat<U extends Concatenatable<any>>(other: U): ConcatenatedComponent<T | U>;
67
+ /**
68
+ * Convert this component to a segment for concatenation
69
+ */
70
+ toSegment(): ComponentSegment;
71
+ /**
72
+ * Check if this component supports concatenation
73
+ */
74
+ isConcatenatable(): boolean;
75
+ }
76
+ /**
77
+ * Symbol used for concatenation operator overloading
78
+ */
79
+ export declare const ConcatenationSymbol: unique symbol;
80
+ /**
81
+ * Type guard to check if an object is concatenatable
82
+ */
83
+ export declare function isConcatenatable(obj: any): obj is Concatenatable;
84
+ /**
85
+ * Type guard to check if an object is a concatenated component
86
+ */
87
+ export declare function isConcatenatedComponent(obj: any): obj is ConcatenatedComponent;
88
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../core/src/concatenation/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IAEV,qCAAqC;IACrC,SAAS,EAAE,iBAAiB,CAAA;IAE5B,iDAAiD;IACjD,SAAS,EAAE,QAAQ,EAAE,CAAA;IAErB,wCAAwC;IACxC,MAAM,IAAI,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAA;IAErB,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAA;IAEjD,gDAAgD;IAChD,iBAAiB,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IAEZ,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAA;IAEb,gCAAgC;IAChC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAClC,CAAC,SAAS,iBAAiB,CAAC,MAAM,MAAM,CAAC,GACrC,CAAC,SAAS,iBAAiB,CAAC,MAAM,MAAM,CAAC,GACvC,qBAAqB,CAAC,MAAM,GAAG,MAAM,CAAC,GACtC,qBAAqB,CAAC,MAAM,GAAG,GAAG,CAAC,GACrC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAGhC,MAAM,CAAC,OAAO,OAAO,qBAAqB,CAAC,EAAE,GAAG,GAAG,CAAE,YAAW,iBAAiB,CAAC,GAAG,CAAC;IACpF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACvB,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,MAAM,IAAI,OAAO,EAAE;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAE7E;;OAEG;IACH,SAAS,IAAI,gBAAgB,CAAA;IAE7B;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAA8B,CAAA;AAE9D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAEhE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,qBAAqB,CAE9E"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Core Concatenation Types
3
+ *
4
+ * Defines the fundamental types and interfaces for component concatenation,
5
+ * enabling SwiftUI-style component composition with the + operator.
6
+ */
7
+ /**
8
+ * Symbol used for concatenation operator overloading
9
+ */
10
+ export const ConcatenationSymbol = Symbol.for('tachui.concat');
11
+ /**
12
+ * Type guard to check if an object is concatenatable
13
+ */
14
+ export function isConcatenatable(obj) {
15
+ return obj && typeof obj === 'object' && typeof obj.isConcatenatable === 'function' && obj.isConcatenatable();
16
+ }
17
+ /**
18
+ * Type guard to check if an object is a concatenated component
19
+ */
20
+ export function isConcatenatedComponent(obj) {
21
+ return obj && typeof obj === 'object' && obj.constructor.name === 'ConcatenatedComponent';
22
+ }
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../core/src/concatenation/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6FH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAE9D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAA;AAC/G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAQ;IAC9C,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,uBAAuB,CAAA;AAC3F,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface CoreFeatureFlags {
2
+ proxyModifiers: boolean;
3
+ }
4
+ export declare function configureCore(options: Partial<CoreFeatureFlags>): void;
5
+ export declare function getCoreFeatureFlags(): CoreFeatureFlags;
6
+ export declare function isProxyEnabled(): boolean;
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../core/src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAA;CACxB;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAKtE;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
@@ -0,0 +1,17 @@
1
+ const defaultFlags = {
2
+ proxyModifiers: true,
3
+ };
4
+ let featureFlags = { ...defaultFlags };
5
+ export function configureCore(options) {
6
+ featureFlags = {
7
+ ...featureFlags,
8
+ ...options,
9
+ };
10
+ }
11
+ export function getCoreFeatureFlags() {
12
+ return { ...featureFlags };
13
+ }
14
+ export function isProxyEnabled() {
15
+ return featureFlags.proxyModifiers === true;
16
+ }
17
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../core/src/config.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAqB;IACrC,cAAc,EAAE,IAAI;CACrB,CAAA;AAED,IAAI,YAAY,GAAqB,EAAE,GAAG,YAAY,EAAE,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,OAAkC;IAC9D,YAAY,GAAG;QACb,GAAG,YAAY;QACf,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,GAAG,YAAY,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC,cAAc,KAAK,IAAI,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Frame Utility Functions
3
+ *
4
+ * Convenience functions for common frame operations using infinity
5
+ * Provides SwiftUI-compatible patterns for responsive layouts
6
+ */
7
+ import type { Modifier } from '../modifiers/types';
8
+ /**
9
+ * Create a frame that fills maximum width
10
+ * Equivalent to SwiftUI's .frame(maxWidth: .infinity)
11
+ */
12
+ export declare function fillMaxWidth(): Modifier;
13
+ /**
14
+ * Create a frame that fills maximum height
15
+ * Equivalent to SwiftUI's .frame(maxHeight: .infinity)
16
+ */
17
+ export declare function fillMaxHeight(): Modifier;
18
+ /**
19
+ * Create a frame that fills both maximum width and height
20
+ * Equivalent to SwiftUI's .frame(maxWidth: .infinity, maxHeight: .infinity)
21
+ */
22
+ export declare function fillMaxSize(): Modifier;
23
+ /**
24
+ * Create a frame that expands to fill available space
25
+ * Sets both width and height to infinity with flex properties
26
+ */
27
+ export declare function expand(): Modifier;
28
+ /**
29
+ * Create a frame with specific width but infinite height
30
+ * Useful for sidebars or navigation panels
31
+ */
32
+ export declare function fixedWidthExpandHeight(width: number | string): Modifier;
33
+ /**
34
+ * Create a frame with specific height but infinite width
35
+ * Useful for headers, footers, or horizontal bars
36
+ */
37
+ export declare function fixedHeightExpandWidth(height: number | string): Modifier;
38
+ /**
39
+ * Create a frame with constrained maximum dimensions
40
+ * Expands within the given constraints
41
+ */
42
+ export declare function constrainedExpand(maxWidth?: number | string, maxHeight?: number | string): Modifier;
43
+ /**
44
+ * Create a responsive frame that adapts to container
45
+ * Useful for cards or content areas
46
+ */
47
+ export declare function responsive(minWidth?: number | string, maxWidth?: number | string, minHeight?: number | string, maxHeight?: number | string): Modifier;
48
+ /**
49
+ * Create a frame for flexible content
50
+ * Grows to fill space but respects content size
51
+ */
52
+ export declare function flexible(): Modifier;
53
+ /**
54
+ * Create a frame for full viewport coverage
55
+ * Useful for overlays, modals, or full-screen components
56
+ */
57
+ export declare function fullScreen(): Modifier;
58
+ /**
59
+ * Create a frame that takes remaining space in flex containers
60
+ * Combines infinity with flex-grow for optimal space distribution
61
+ */
62
+ export declare function remainingSpace(): Modifier;
63
+ /**
64
+ * Create a frame for equal distribution in containers
65
+ * Useful for button groups or tab layouts
66
+ */
67
+ export declare function equalShare(): Modifier;
68
+ //# sourceMappingURL=frame-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-utils.d.ts","sourceRoot":"","sources":["../../../../../core/src/constants/frame-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAMvC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,QAAQ,CAMxC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAED;;;GAGG;AACH,wBAAgB,MAAM,IAAI,QAAQ,CAOjC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAOvE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAOxE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CASnG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAC1B,QAAQ,CAWV;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAOnC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,QAAQ,CAOrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAOzC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,QAAQ,CAMrC"}