@tachui/core 0.7.0-alpha1 → 0.8.0-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 (1172) hide show
  1. package/README.md +195 -0
  2. package/dist/bundles/common.d.ts +1 -1
  3. package/dist/bundles/common.d.ts.map +1 -1
  4. package/dist/bundles/minimal.d.ts +17 -5
  5. package/dist/bundles/minimal.d.ts.map +1 -1
  6. package/dist/bundles/production-minimal.d.ts +2 -16
  7. package/dist/bundles/production-minimal.d.ts.map +1 -1
  8. package/dist/common.js +402 -955
  9. package/dist/compiler/advanced-parser.d.ts.map +1 -1
  10. package/dist/compiler/index.js +1392 -10
  11. package/dist/component-XAzF1xqs.js +487 -0
  12. package/dist/component-base-x2XmHFjy.js +255 -0
  13. package/dist/components/index.d.ts +4 -38
  14. package/dist/components/index.d.ts.map +1 -1
  15. package/dist/components/index.js +7 -102
  16. package/dist/components/wrapper.d.ts +5 -152
  17. package/dist/components/wrapper.d.ts.map +1 -1
  18. package/dist/concatenated-component-ByPl3_FF.js +2933 -0
  19. package/dist/constants/index.d.ts +1 -1
  20. package/dist/constants/layout.d.ts +47 -4
  21. package/dist/constants/layout.d.ts.map +1 -1
  22. package/dist/constants/layout.js +52 -14
  23. package/dist/css-classes/index.js +176 -0
  24. package/dist/dom-bridge-CAa1N2zX.js +406 -0
  25. package/dist/effect-B9Knft0b.js +66 -0
  26. package/dist/essential.js +394 -953
  27. package/dist/index-DCPJFUm9.js +1407 -0
  28. package/dist/index-DIvMCJQO.js +268 -0
  29. package/dist/index-vdsiw6gQ.js +777 -0
  30. package/dist/index.d.ts +9 -9
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +394 -953
  33. package/dist/minimal-prod.js +107 -190
  34. package/dist/minimal.js +115 -955
  35. package/dist/modifiers/background.d.ts +41 -11
  36. package/dist/modifiers/background.d.ts.map +1 -1
  37. package/dist/modifiers/base.d.ts +6 -33
  38. package/dist/modifiers/base.d.ts.map +1 -1
  39. package/dist/modifiers/base.js +275 -533
  40. package/dist/modifiers/builder.d.ts +103 -195
  41. package/dist/modifiers/builder.d.ts.map +1 -1
  42. package/dist/modifiers/builder.js +7 -928
  43. package/dist/modifiers/core.d.ts +9 -401
  44. package/dist/modifiers/core.d.ts.map +1 -1
  45. package/dist/modifiers/{utils.d.ts → factories.d.ts} +18 -5
  46. package/dist/modifiers/factories.d.ts.map +1 -0
  47. package/dist/modifiers/index.d.ts +8 -52
  48. package/dist/modifiers/index.d.ts.map +1 -1
  49. package/dist/modifiers/index.js +38 -0
  50. package/dist/modifiers/presets.d.ts +368 -0
  51. package/dist/modifiers/presets.d.ts.map +1 -0
  52. package/dist/modifiers/registry.js +8 -161
  53. package/dist/modifiers/types.d.ts +39 -211
  54. package/dist/modifiers/types.d.ts.map +1 -1
  55. package/dist/modifiers/types.js +0 -1
  56. package/dist/performance-optimizer-stub-CtfXUwl4.js +38 -0
  57. package/dist/plugins/index.d.ts +5 -6
  58. package/dist/plugins/index.d.ts.map +1 -1
  59. package/dist/plugins/index.js +393 -32
  60. package/dist/plugins/simplified-index.d.ts +5 -6
  61. package/dist/plugins/simplified-index.d.ts.map +1 -1
  62. package/dist/production-minimal-BY_gMc-l.js +2532 -0
  63. package/dist/reactive/index.js +489 -91
  64. package/dist/reactive/types.js +0 -1
  65. package/dist/runtime/dom-bridge.js +12 -239
  66. package/dist/runtime/element-override.d.ts.map +1 -1
  67. package/dist/runtime/index.d.ts +0 -7
  68. package/dist/runtime/index.d.ts.map +1 -1
  69. package/dist/runtime/renderer.d.ts.map +1 -1
  70. package/dist/runtime/renderer.js +7 -388
  71. package/dist/runtime/semantic-role-manager.d.ts.map +1 -1
  72. package/dist/runtime/types.js +1 -0
  73. package/dist/scheduler-BKeqwrYE.js +814 -0
  74. package/dist/validation/build-time-stub.d.ts +33 -0
  75. package/dist/validation/build-time-stub.d.ts.map +1 -0
  76. package/dist/validation/debug-tools-stub.d.ts +67 -0
  77. package/dist/validation/debug-tools-stub.d.ts.map +1 -0
  78. package/dist/validation/index.d.ts +23 -78
  79. package/dist/validation/index.d.ts.map +1 -1
  80. package/dist/validation/index.js +788 -233
  81. package/dist/validation/lifecycle-validation.d.ts.map +1 -1
  82. package/dist/validation/performance-optimizer-stub.d.ts +50 -0
  83. package/dist/validation/performance-optimizer-stub.d.ts.map +1 -0
  84. package/dist/validation/plugin-registration.d.ts +5 -1
  85. package/dist/validation/plugin-registration.d.ts.map +1 -1
  86. package/dist/validation/production-bypass-core.d.ts +69 -0
  87. package/dist/validation/production-bypass-core.d.ts.map +1 -0
  88. package/package.json +43 -8
  89. package/dist/assets/Asset.cjs +0 -2
  90. package/dist/assets/Asset.cjs.map +0 -1
  91. package/dist/assets/Asset.js +0 -9
  92. package/dist/assets/Asset.js.map +0 -1
  93. package/dist/assets/AssetCollection.cjs +0 -2
  94. package/dist/assets/AssetCollection.cjs.map +0 -1
  95. package/dist/assets/AssetCollection.js +0 -44
  96. package/dist/assets/AssetCollection.js.map +0 -1
  97. package/dist/assets/ColorAsset.cjs +0 -2
  98. package/dist/assets/ColorAsset.cjs.map +0 -1
  99. package/dist/assets/ColorAsset.js +0 -114
  100. package/dist/assets/ColorAsset.js.map +0 -1
  101. package/dist/assets/FontAsset.cjs +0 -9
  102. package/dist/assets/FontAsset.cjs.map +0 -1
  103. package/dist/assets/FontAsset.js +0 -173
  104. package/dist/assets/FontAsset.js.map +0 -1
  105. package/dist/assets/ImageAsset.cjs +0 -2
  106. package/dist/assets/ImageAsset.cjs.map +0 -1
  107. package/dist/assets/ImageAsset.js +0 -39
  108. package/dist/assets/ImageAsset.js.map +0 -1
  109. package/dist/assets/index.cjs +0 -2
  110. package/dist/assets/index.cjs.map +0 -1
  111. package/dist/assets/index.js +0 -119
  112. package/dist/assets/index.js.map +0 -1
  113. package/dist/common.cjs +0 -2
  114. package/dist/common.cjs.map +0 -1
  115. package/dist/common.js.map +0 -1
  116. package/dist/compiler/advanced-parser.cjs +0 -5
  117. package/dist/compiler/advanced-parser.cjs.map +0 -1
  118. package/dist/compiler/advanced-parser.js +0 -440
  119. package/dist/compiler/advanced-parser.js.map +0 -1
  120. package/dist/compiler/codegen.cjs +0 -6
  121. package/dist/compiler/codegen.cjs.map +0 -1
  122. package/dist/compiler/codegen.js +0 -241
  123. package/dist/compiler/codegen.js.map +0 -1
  124. package/dist/compiler/enhanced-codegen.cjs +0 -6
  125. package/dist/compiler/enhanced-codegen.cjs.map +0 -1
  126. package/dist/compiler/enhanced-codegen.js +0 -347
  127. package/dist/compiler/enhanced-codegen.js.map +0 -1
  128. package/dist/compiler/index.cjs +0 -2
  129. package/dist/compiler/index.cjs.map +0 -1
  130. package/dist/compiler/index.js.map +0 -1
  131. package/dist/compiler/parser.cjs +0 -5
  132. package/dist/compiler/parser.cjs.map +0 -1
  133. package/dist/compiler/parser.js +0 -275
  134. package/dist/compiler/parser.js.map +0 -1
  135. package/dist/compiler/plugin.cjs +0 -33
  136. package/dist/compiler/plugin.cjs.map +0 -1
  137. package/dist/compiler/plugin.js +0 -103
  138. package/dist/compiler/plugin.js.map +0 -1
  139. package/dist/components/BasicInput.cjs +0 -2
  140. package/dist/components/BasicInput.cjs.map +0 -1
  141. package/dist/components/BasicInput.d.ts +0 -116
  142. package/dist/components/BasicInput.d.ts.map +0 -1
  143. package/dist/components/BasicInput.js +0 -182
  144. package/dist/components/BasicInput.js.map +0 -1
  145. package/dist/components/Button.cjs +0 -7
  146. package/dist/components/Button.cjs.map +0 -1
  147. package/dist/components/Button.d.ts +0 -252
  148. package/dist/components/Button.d.ts.map +0 -1
  149. package/dist/components/Button.js +0 -408
  150. package/dist/components/Button.js.map +0 -1
  151. package/dist/components/Divider.cjs +0 -2
  152. package/dist/components/Divider.cjs.map +0 -1
  153. package/dist/components/Divider.d.ts +0 -141
  154. package/dist/components/Divider.d.ts.map +0 -1
  155. package/dist/components/Divider.js +0 -187
  156. package/dist/components/Divider.js.map +0 -1
  157. package/dist/components/EnhancedLink.cjs +0 -2
  158. package/dist/components/EnhancedLink.cjs.map +0 -1
  159. package/dist/components/EnhancedLink.d.ts +0 -365
  160. package/dist/components/EnhancedLink.d.ts.map +0 -1
  161. package/dist/components/EnhancedLink.js +0 -345
  162. package/dist/components/EnhancedLink.js.map +0 -1
  163. package/dist/components/Form.cjs +0 -2
  164. package/dist/components/Form.cjs.map +0 -1
  165. package/dist/components/Form.d.ts +0 -141
  166. package/dist/components/Form.d.ts.map +0 -1
  167. package/dist/components/Form.js +0 -244
  168. package/dist/components/Form.js.map +0 -1
  169. package/dist/components/Grid.cjs +0 -2
  170. package/dist/components/Grid.cjs.map +0 -1
  171. package/dist/components/Grid.d.ts +0 -698
  172. package/dist/components/Grid.d.ts.map +0 -1
  173. package/dist/components/Grid.js +0 -1045
  174. package/dist/components/Grid.js.map +0 -1
  175. package/dist/components/GridResponsive.cjs +0 -2
  176. package/dist/components/GridResponsive.cjs.map +0 -1
  177. package/dist/components/GridResponsive.d.ts +0 -214
  178. package/dist/components/GridResponsive.d.ts.map +0 -1
  179. package/dist/components/GridResponsive.js +0 -382
  180. package/dist/components/GridResponsive.js.map +0 -1
  181. package/dist/components/Image.cjs +0 -2
  182. package/dist/components/Image.cjs.map +0 -1
  183. package/dist/components/Image.d.ts +0 -162
  184. package/dist/components/Image.d.ts.map +0 -1
  185. package/dist/components/Image.js +0 -212
  186. package/dist/components/Image.js.map +0 -1
  187. package/dist/components/List.cjs +0 -2
  188. package/dist/components/List.cjs.map +0 -1
  189. package/dist/components/List.d.ts +0 -287
  190. package/dist/components/List.d.ts.map +0 -1
  191. package/dist/components/List.js +0 -561
  192. package/dist/components/List.js.map +0 -1
  193. package/dist/components/Menu.cjs +0 -2
  194. package/dist/components/Menu.cjs.map +0 -1
  195. package/dist/components/Menu.d.ts +0 -159
  196. package/dist/components/Menu.d.ts.map +0 -1
  197. package/dist/components/Menu.js +0 -443
  198. package/dist/components/Menu.js.map +0 -1
  199. package/dist/components/Picker.cjs +0 -2
  200. package/dist/components/Picker.cjs.map +0 -1
  201. package/dist/components/Picker.d.ts +0 -153
  202. package/dist/components/Picker.d.ts.map +0 -1
  203. package/dist/components/Picker.js +0 -478
  204. package/dist/components/Picker.js.map +0 -1
  205. package/dist/components/ScrollView.cjs +0 -6
  206. package/dist/components/ScrollView.cjs.map +0 -1
  207. package/dist/components/ScrollView.d.ts +0 -222
  208. package/dist/components/ScrollView.d.ts.map +0 -1
  209. package/dist/components/ScrollView.js +0 -363
  210. package/dist/components/ScrollView.js.map +0 -1
  211. package/dist/components/Section.cjs +0 -2
  212. package/dist/components/Section.cjs.map +0 -1
  213. package/dist/components/Section.d.ts +0 -153
  214. package/dist/components/Section.d.ts.map +0 -1
  215. package/dist/components/Section.js +0 -323
  216. package/dist/components/Section.js.map +0 -1
  217. package/dist/components/Show.cjs +0 -2
  218. package/dist/components/Show.cjs.map +0 -1
  219. package/dist/components/Show.d.ts +0 -64
  220. package/dist/components/Show.d.ts.map +0 -1
  221. package/dist/components/Show.js +0 -112
  222. package/dist/components/Show.js.map +0 -1
  223. package/dist/components/Spacer.cjs +0 -2
  224. package/dist/components/Spacer.cjs.map +0 -1
  225. package/dist/components/Spacer.d.ts +0 -35
  226. package/dist/components/Spacer.d.ts.map +0 -1
  227. package/dist/components/Spacer.js +0 -53
  228. package/dist/components/Spacer.js.map +0 -1
  229. package/dist/components/Text.cjs +0 -2
  230. package/dist/components/Text.cjs.map +0 -1
  231. package/dist/components/Text.d.ts +0 -242
  232. package/dist/components/Text.d.ts.map +0 -1
  233. package/dist/components/Text.js +0 -193
  234. package/dist/components/Text.js.map +0 -1
  235. package/dist/components/Toggle.cjs +0 -2
  236. package/dist/components/Toggle.cjs.map +0 -1
  237. package/dist/components/Toggle.d.ts +0 -207
  238. package/dist/components/Toggle.d.ts.map +0 -1
  239. package/dist/components/Toggle.js +0 -477
  240. package/dist/components/Toggle.js.map +0 -1
  241. package/dist/components/index.cjs +0 -2
  242. package/dist/components/index.cjs.map +0 -1
  243. package/dist/components/index.js.map +0 -1
  244. package/dist/components/wrapper.cjs +0 -2
  245. package/dist/components/wrapper.cjs.map +0 -1
  246. package/dist/components/wrapper.js +0 -484
  247. package/dist/components/wrapper.js.map +0 -1
  248. package/dist/concatenation/concatenatable.cjs +0 -2
  249. package/dist/concatenation/concatenatable.cjs.map +0 -1
  250. package/dist/concatenation/concatenatable.js +0 -118
  251. package/dist/concatenation/concatenatable.js.map +0 -1
  252. package/dist/concatenation/concatenated-component.cjs +0 -2
  253. package/dist/concatenation/concatenated-component.cjs.map +0 -1
  254. package/dist/concatenation/concatenated-component.js +0 -276
  255. package/dist/concatenation/concatenated-component.js.map +0 -1
  256. package/dist/concatenation/text-optimizer.cjs +0 -2
  257. package/dist/concatenation/text-optimizer.cjs.map +0 -1
  258. package/dist/concatenation/text-optimizer.js +0 -236
  259. package/dist/concatenation/text-optimizer.js.map +0 -1
  260. package/dist/concatenation/types.cjs +0 -2
  261. package/dist/concatenation/types.cjs.map +0 -1
  262. package/dist/concatenation/types.js +0 -13
  263. package/dist/concatenation/types.js.map +0 -1
  264. package/dist/constants/frame-utils.cjs +0 -2
  265. package/dist/constants/frame-utils.cjs.map +0 -1
  266. package/dist/constants/frame-utils.js +0 -116
  267. package/dist/constants/frame-utils.js.map +0 -1
  268. package/dist/constants/layout.cjs +0 -2
  269. package/dist/constants/layout.cjs.map +0 -1
  270. package/dist/constants/layout.js.map +0 -1
  271. package/dist/css-classes/component-base.cjs +0 -2
  272. package/dist/css-classes/component-base.cjs.map +0 -1
  273. package/dist/css-classes/component-base.js +0 -62
  274. package/dist/css-classes/component-base.js.map +0 -1
  275. package/dist/css-classes/css-class-manager.cjs +0 -2
  276. package/dist/css-classes/css-class-manager.cjs.map +0 -1
  277. package/dist/css-classes/css-class-manager.js +0 -209
  278. package/dist/css-classes/css-class-manager.js.map +0 -1
  279. package/dist/css-classes/dom-integration.cjs +0 -2
  280. package/dist/css-classes/dom-integration.cjs.map +0 -1
  281. package/dist/css-classes/dom-integration.js +0 -67
  282. package/dist/css-classes/dom-integration.js.map +0 -1
  283. package/dist/css-classes/enhanced-renderer.cjs +0 -2
  284. package/dist/css-classes/enhanced-renderer.cjs.map +0 -1
  285. package/dist/css-classes/enhanced-renderer.js +0 -73
  286. package/dist/css-classes/enhanced-renderer.js.map +0 -1
  287. package/dist/css-classes/utilities.cjs +0 -2
  288. package/dist/css-classes/utilities.cjs.map +0 -1
  289. package/dist/css-classes/utilities.js +0 -41
  290. package/dist/css-classes/utilities.js.map +0 -1
  291. package/dist/debug/index.d.ts +0 -61
  292. package/dist/debug/index.d.ts.map +0 -1
  293. package/dist/debug.cjs +0 -52
  294. package/dist/debug.cjs.map +0 -1
  295. package/dist/debug.js +0 -179
  296. package/dist/debug.js.map +0 -1
  297. package/dist/developer-experience/enhanced-errors.d.ts +0 -128
  298. package/dist/developer-experience/enhanced-errors.d.ts.map +0 -1
  299. package/dist/developer-experience/enhanced-types.d.ts +0 -281
  300. package/dist/developer-experience/enhanced-types.d.ts.map +0 -1
  301. package/dist/developer-experience/index.d.ts +0 -44
  302. package/dist/developer-experience/index.d.ts.map +0 -1
  303. package/dist/essential.cjs +0 -2
  304. package/dist/essential.cjs.map +0 -1
  305. package/dist/essential.js.map +0 -1
  306. package/dist/gradients/css-generator.cjs +0 -2
  307. package/dist/gradients/css-generator.cjs.map +0 -1
  308. package/dist/gradients/css-generator.js +0 -100
  309. package/dist/gradients/css-generator.js.map +0 -1
  310. package/dist/gradients/examples.cjs +0 -2
  311. package/dist/gradients/examples.cjs.map +0 -1
  312. package/dist/gradients/examples.js +0 -555
  313. package/dist/gradients/examples.js.map +0 -1
  314. package/dist/gradients/gradient-asset.cjs +0 -2
  315. package/dist/gradients/gradient-asset.cjs.map +0 -1
  316. package/dist/gradients/gradient-asset.js +0 -22
  317. package/dist/gradients/gradient-asset.js.map +0 -1
  318. package/dist/gradients/index.cjs +0 -2
  319. package/dist/gradients/index.cjs.map +0 -1
  320. package/dist/gradients/index.js +0 -78
  321. package/dist/gradients/index.js.map +0 -1
  322. package/dist/gradients/performance.cjs +0 -2
  323. package/dist/gradients/performance.cjs.map +0 -1
  324. package/dist/gradients/performance.js +0 -237
  325. package/dist/gradients/performance.js.map +0 -1
  326. package/dist/gradients/presets.cjs +0 -2
  327. package/dist/gradients/presets.cjs.map +0 -1
  328. package/dist/gradients/presets.js +0 -254
  329. package/dist/gradients/presets.js.map +0 -1
  330. package/dist/gradients/reactive.cjs +0 -2
  331. package/dist/gradients/reactive.cjs.map +0 -1
  332. package/dist/gradients/reactive.js +0 -239
  333. package/dist/gradients/reactive.js.map +0 -1
  334. package/dist/gradients/state-gradient-asset.cjs +0 -2
  335. package/dist/gradients/state-gradient-asset.cjs.map +0 -1
  336. package/dist/gradients/state-gradient-asset.js +0 -111
  337. package/dist/gradients/state-gradient-asset.js.map +0 -1
  338. package/dist/gradients/utils.cjs +0 -2
  339. package/dist/gradients/utils.cjs.map +0 -1
  340. package/dist/gradients/utils.js +0 -385
  341. package/dist/gradients/utils.js.map +0 -1
  342. package/dist/gradients/validation.cjs +0 -2
  343. package/dist/gradients/validation.cjs.map +0 -1
  344. package/dist/gradients/validation.js +0 -209
  345. package/dist/gradients/validation.js.map +0 -1
  346. package/dist/index.cjs +0 -2
  347. package/dist/index.cjs.map +0 -1
  348. package/dist/index.js.map +0 -1
  349. package/dist/index2.cjs +0 -2
  350. package/dist/index2.cjs.map +0 -1
  351. package/dist/index2.js +0 -293
  352. package/dist/index2.js.map +0 -1
  353. package/dist/lifecycle/hooks.cjs +0 -2
  354. package/dist/lifecycle/hooks.cjs.map +0 -1
  355. package/dist/lifecycle/hooks.js +0 -159
  356. package/dist/lifecycle/hooks.js.map +0 -1
  357. package/dist/minimal-prod.cjs +0 -2
  358. package/dist/minimal-prod.cjs.map +0 -1
  359. package/dist/minimal-prod.js.map +0 -1
  360. package/dist/minimal.cjs +0 -2
  361. package/dist/minimal.cjs.map +0 -1
  362. package/dist/minimal.js.map +0 -1
  363. package/dist/modifiers/as-html-validator.cjs +0 -2
  364. package/dist/modifiers/as-html-validator.cjs.map +0 -1
  365. package/dist/modifiers/as-html-validator.js +0 -47
  366. package/dist/modifiers/as-html-validator.js.map +0 -1
  367. package/dist/modifiers/as-html.cjs +0 -2
  368. package/dist/modifiers/as-html.cjs.map +0 -1
  369. package/dist/modifiers/as-html.js +0 -71
  370. package/dist/modifiers/as-html.js.map +0 -1
  371. package/dist/modifiers/attributes.cjs +0 -2
  372. package/dist/modifiers/attributes.cjs.map +0 -1
  373. package/dist/modifiers/attributes.d.ts +0 -203
  374. package/dist/modifiers/attributes.d.ts.map +0 -1
  375. package/dist/modifiers/attributes.js +0 -272
  376. package/dist/modifiers/attributes.js.map +0 -1
  377. package/dist/modifiers/backdrop.cjs +0 -2
  378. package/dist/modifiers/backdrop.cjs.map +0 -1
  379. package/dist/modifiers/backdrop.d.ts +0 -59
  380. package/dist/modifiers/backdrop.d.ts.map +0 -1
  381. package/dist/modifiers/backdrop.js +0 -109
  382. package/dist/modifiers/backdrop.js.map +0 -1
  383. package/dist/modifiers/background.cjs +0 -2
  384. package/dist/modifiers/background.cjs.map +0 -1
  385. package/dist/modifiers/background.js +0 -67
  386. package/dist/modifiers/background.js.map +0 -1
  387. package/dist/modifiers/base.cjs +0 -25
  388. package/dist/modifiers/base.cjs.map +0 -1
  389. package/dist/modifiers/base.js.map +0 -1
  390. package/dist/modifiers/basic-sanitizer.cjs +0 -2
  391. package/dist/modifiers/basic-sanitizer.cjs.map +0 -1
  392. package/dist/modifiers/basic-sanitizer.js +0 -162
  393. package/dist/modifiers/basic-sanitizer.js.map +0 -1
  394. package/dist/modifiers/border.cjs +0 -2
  395. package/dist/modifiers/border.cjs.map +0 -1
  396. package/dist/modifiers/border.d.ts +0 -217
  397. package/dist/modifiers/border.d.ts.map +0 -1
  398. package/dist/modifiers/border.js +0 -160
  399. package/dist/modifiers/border.js.map +0 -1
  400. package/dist/modifiers/builder.cjs +0 -2
  401. package/dist/modifiers/builder.cjs.map +0 -1
  402. package/dist/modifiers/builder.js.map +0 -1
  403. package/dist/modifiers/core.cjs +0 -2
  404. package/dist/modifiers/core.cjs.map +0 -1
  405. package/dist/modifiers/core.js +0 -398
  406. package/dist/modifiers/core.js.map +0 -1
  407. package/dist/modifiers/css.cjs +0 -2
  408. package/dist/modifiers/css.cjs.map +0 -1
  409. package/dist/modifiers/css.js +0 -50
  410. package/dist/modifiers/css.js.map +0 -1
  411. package/dist/modifiers/effects.cjs +0 -2
  412. package/dist/modifiers/effects.cjs.map +0 -1
  413. package/dist/modifiers/effects.d.ts +0 -159
  414. package/dist/modifiers/effects.d.ts.map +0 -1
  415. package/dist/modifiers/effects.js +0 -178
  416. package/dist/modifiers/effects.js.map +0 -1
  417. package/dist/modifiers/elements.cjs +0 -2
  418. package/dist/modifiers/elements.cjs.map +0 -1
  419. package/dist/modifiers/elements.d.ts +0 -240
  420. package/dist/modifiers/elements.d.ts.map +0 -1
  421. package/dist/modifiers/elements.js +0 -216
  422. package/dist/modifiers/elements.js.map +0 -1
  423. package/dist/modifiers/filters.cjs +0 -2
  424. package/dist/modifiers/filters.cjs.map +0 -1
  425. package/dist/modifiers/filters.d.ts +0 -275
  426. package/dist/modifiers/filters.d.ts.map +0 -1
  427. package/dist/modifiers/filters.js +0 -223
  428. package/dist/modifiers/filters.js.map +0 -1
  429. package/dist/modifiers/flexbox.cjs +0 -2
  430. package/dist/modifiers/flexbox.cjs.map +0 -1
  431. package/dist/modifiers/flexbox.d.ts +0 -82
  432. package/dist/modifiers/flexbox.d.ts.map +0 -1
  433. package/dist/modifiers/flexbox.js +0 -56
  434. package/dist/modifiers/flexbox.js.map +0 -1
  435. package/dist/modifiers/font.cjs +0 -2
  436. package/dist/modifiers/font.cjs.map +0 -1
  437. package/dist/modifiers/font.d.ts +0 -71
  438. package/dist/modifiers/font.d.ts.map +0 -1
  439. package/dist/modifiers/font.js +0 -60
  440. package/dist/modifiers/font.js.map +0 -1
  441. package/dist/modifiers/grid.cjs +0 -2
  442. package/dist/modifiers/grid.cjs.map +0 -1
  443. package/dist/modifiers/grid.d.ts +0 -92
  444. package/dist/modifiers/grid.d.ts.map +0 -1
  445. package/dist/modifiers/grid.js +0 -92
  446. package/dist/modifiers/grid.js.map +0 -1
  447. package/dist/modifiers/margin.cjs +0 -2
  448. package/dist/modifiers/margin.cjs.map +0 -1
  449. package/dist/modifiers/margin.d.ts +0 -128
  450. package/dist/modifiers/margin.d.ts.map +0 -1
  451. package/dist/modifiers/margin.js +0 -65
  452. package/dist/modifiers/margin.js.map +0 -1
  453. package/dist/modifiers/padding.cjs +0 -2
  454. package/dist/modifiers/padding.cjs.map +0 -1
  455. package/dist/modifiers/padding.d.ts +0 -204
  456. package/dist/modifiers/padding.d.ts.map +0 -1
  457. package/dist/modifiers/padding.js +0 -109
  458. package/dist/modifiers/padding.js.map +0 -1
  459. package/dist/modifiers/registry.cjs +0 -2
  460. package/dist/modifiers/registry.cjs.map +0 -1
  461. package/dist/modifiers/registry.js.map +0 -1
  462. package/dist/modifiers/responsive/advanced-utilities.cjs +0 -2
  463. package/dist/modifiers/responsive/advanced-utilities.cjs.map +0 -1
  464. package/dist/modifiers/responsive/advanced-utilities.d.ts +0 -118
  465. package/dist/modifiers/responsive/advanced-utilities.d.ts.map +0 -1
  466. package/dist/modifiers/responsive/advanced-utilities.js +0 -291
  467. package/dist/modifiers/responsive/advanced-utilities.js.map +0 -1
  468. package/dist/modifiers/responsive/breakpoints.cjs +0 -2
  469. package/dist/modifiers/responsive/breakpoints.cjs.map +0 -1
  470. package/dist/modifiers/responsive/breakpoints.d.ts +0 -81
  471. package/dist/modifiers/responsive/breakpoints.d.ts.map +0 -1
  472. package/dist/modifiers/responsive/breakpoints.js +0 -168
  473. package/dist/modifiers/responsive/breakpoints.js.map +0 -1
  474. package/dist/modifiers/responsive/css-generator.cjs +0 -5
  475. package/dist/modifiers/responsive/css-generator.cjs.map +0 -1
  476. package/dist/modifiers/responsive/css-generator.d.ts +0 -100
  477. package/dist/modifiers/responsive/css-generator.d.ts.map +0 -1
  478. package/dist/modifiers/responsive/css-generator.js +0 -261
  479. package/dist/modifiers/responsive/css-generator.js.map +0 -1
  480. package/dist/modifiers/responsive/dev-tools.cjs +0 -77
  481. package/dist/modifiers/responsive/dev-tools.cjs.map +0 -1
  482. package/dist/modifiers/responsive/dev-tools.d.ts +0 -107
  483. package/dist/modifiers/responsive/dev-tools.d.ts.map +0 -1
  484. package/dist/modifiers/responsive/dev-tools.js +0 -380
  485. package/dist/modifiers/responsive/dev-tools.js.map +0 -1
  486. package/dist/modifiers/responsive/index.d.ts +0 -28
  487. package/dist/modifiers/responsive/index.d.ts.map +0 -1
  488. package/dist/modifiers/responsive/layout-patterns.cjs +0 -2
  489. package/dist/modifiers/responsive/layout-patterns.cjs.map +0 -1
  490. package/dist/modifiers/responsive/layout-patterns.d.ts +0 -230
  491. package/dist/modifiers/responsive/layout-patterns.d.ts.map +0 -1
  492. package/dist/modifiers/responsive/layout-patterns.js +0 -254
  493. package/dist/modifiers/responsive/layout-patterns.js.map +0 -1
  494. package/dist/modifiers/responsive/performance.cjs +0 -3
  495. package/dist/modifiers/responsive/performance.cjs.map +0 -1
  496. package/dist/modifiers/responsive/performance.d.ts +0 -130
  497. package/dist/modifiers/responsive/performance.d.ts.map +0 -1
  498. package/dist/modifiers/responsive/performance.js +0 -212
  499. package/dist/modifiers/responsive/performance.js.map +0 -1
  500. package/dist/modifiers/responsive/responsive-builder.cjs +0 -2
  501. package/dist/modifiers/responsive/responsive-builder.cjs.map +0 -1
  502. package/dist/modifiers/responsive/responsive-builder.d.ts +0 -133
  503. package/dist/modifiers/responsive/responsive-builder.d.ts.map +0 -1
  504. package/dist/modifiers/responsive/responsive-builder.js +0 -272
  505. package/dist/modifiers/responsive/responsive-builder.js.map +0 -1
  506. package/dist/modifiers/responsive/responsive-modifier.cjs +0 -3
  507. package/dist/modifiers/responsive/responsive-modifier.cjs.map +0 -1
  508. package/dist/modifiers/responsive/responsive-modifier.d.ts +0 -123
  509. package/dist/modifiers/responsive/responsive-modifier.d.ts.map +0 -1
  510. package/dist/modifiers/responsive/responsive-modifier.js +0 -204
  511. package/dist/modifiers/responsive/responsive-modifier.js.map +0 -1
  512. package/dist/modifiers/responsive/types.cjs +0 -2
  513. package/dist/modifiers/responsive/types.cjs.map +0 -1
  514. package/dist/modifiers/responsive/types.d.ts +0 -183
  515. package/dist/modifiers/responsive/types.d.ts.map +0 -1
  516. package/dist/modifiers/responsive/types.js +0 -26
  517. package/dist/modifiers/responsive/types.js.map +0 -1
  518. package/dist/modifiers/responsive/utilities.cjs +0 -16
  519. package/dist/modifiers/responsive/utilities.cjs.map +0 -1
  520. package/dist/modifiers/responsive/utilities.d.ts +0 -149
  521. package/dist/modifiers/responsive/utilities.d.ts.map +0 -1
  522. package/dist/modifiers/responsive/utilities.js +0 -273
  523. package/dist/modifiers/responsive/utilities.js.map +0 -1
  524. package/dist/modifiers/scroll.cjs +0 -2
  525. package/dist/modifiers/scroll.cjs.map +0 -1
  526. package/dist/modifiers/scroll.d.ts +0 -143
  527. package/dist/modifiers/scroll.d.ts.map +0 -1
  528. package/dist/modifiers/scroll.js +0 -82
  529. package/dist/modifiers/scroll.js.map +0 -1
  530. package/dist/modifiers/shadows.cjs +0 -2
  531. package/dist/modifiers/shadows.cjs.map +0 -1
  532. package/dist/modifiers/shadows.d.ts +0 -114
  533. package/dist/modifiers/shadows.d.ts.map +0 -1
  534. package/dist/modifiers/shadows.js +0 -147
  535. package/dist/modifiers/shadows.js.map +0 -1
  536. package/dist/modifiers/size.cjs +0 -2
  537. package/dist/modifiers/size.cjs.map +0 -1
  538. package/dist/modifiers/size.d.ts +0 -113
  539. package/dist/modifiers/size.d.ts.map +0 -1
  540. package/dist/modifiers/size.js +0 -74
  541. package/dist/modifiers/size.js.map +0 -1
  542. package/dist/modifiers/text.cjs +0 -2
  543. package/dist/modifiers/text.cjs.map +0 -1
  544. package/dist/modifiers/text.d.ts +0 -147
  545. package/dist/modifiers/text.d.ts.map +0 -1
  546. package/dist/modifiers/text.js +0 -166
  547. package/dist/modifiers/text.js.map +0 -1
  548. package/dist/modifiers/transformations.cjs +0 -2
  549. package/dist/modifiers/transformations.cjs.map +0 -1
  550. package/dist/modifiers/transformations.d.ts +0 -329
  551. package/dist/modifiers/transformations.d.ts.map +0 -1
  552. package/dist/modifiers/transformations.js +0 -216
  553. package/dist/modifiers/transformations.js.map +0 -1
  554. package/dist/modifiers/transitions.cjs +0 -2
  555. package/dist/modifiers/transitions.cjs.map +0 -1
  556. package/dist/modifiers/transitions.d.ts +0 -98
  557. package/dist/modifiers/transitions.d.ts.map +0 -1
  558. package/dist/modifiers/transitions.js +0 -102
  559. package/dist/modifiers/transitions.js.map +0 -1
  560. package/dist/modifiers/types.cjs +0 -2
  561. package/dist/modifiers/types.cjs.map +0 -1
  562. package/dist/modifiers/types.js.map +0 -1
  563. package/dist/modifiers/typography.cjs +0 -2
  564. package/dist/modifiers/typography.cjs.map +0 -1
  565. package/dist/modifiers/typography.d.ts +0 -192
  566. package/dist/modifiers/typography.d.ts.map +0 -1
  567. package/dist/modifiers/typography.js +0 -76
  568. package/dist/modifiers/typography.js.map +0 -1
  569. package/dist/modifiers/utility.cjs +0 -2
  570. package/dist/modifiers/utility.cjs.map +0 -1
  571. package/dist/modifiers/utility.d.ts +0 -69
  572. package/dist/modifiers/utility.d.ts.map +0 -1
  573. package/dist/modifiers/utility.js +0 -71
  574. package/dist/modifiers/utility.js.map +0 -1
  575. package/dist/modifiers/utils.cjs +0 -2
  576. package/dist/modifiers/utils.cjs.map +0 -1
  577. package/dist/modifiers/utils.d.ts.map +0 -1
  578. package/dist/modifiers/utils.js +0 -250
  579. package/dist/modifiers/utils.js.map +0 -1
  580. package/dist/plugins/index.cjs +0 -2
  581. package/dist/plugins/index.cjs.map +0 -1
  582. package/dist/plugins/index.js.map +0 -1
  583. package/dist/plugins/legacy-adapter.cjs +0 -2
  584. package/dist/plugins/legacy-adapter.cjs.map +0 -1
  585. package/dist/plugins/legacy-adapter.js +0 -30
  586. package/dist/plugins/legacy-adapter.js.map +0 -1
  587. package/dist/plugins/simplified-component-registry.cjs +0 -2
  588. package/dist/plugins/simplified-component-registry.cjs.map +0 -1
  589. package/dist/plugins/simplified-component-registry.js +0 -71
  590. package/dist/plugins/simplified-component-registry.js.map +0 -1
  591. package/dist/plugins/simplified-error-handler.cjs +0 -2
  592. package/dist/plugins/simplified-error-handler.cjs.map +0 -1
  593. package/dist/plugins/simplified-error-handler.d.ts +0 -83
  594. package/dist/plugins/simplified-error-handler.d.ts.map +0 -1
  595. package/dist/plugins/simplified-error-handler.js +0 -154
  596. package/dist/plugins/simplified-error-handler.js.map +0 -1
  597. package/dist/plugins/simplified-lazy-loader.cjs +0 -2
  598. package/dist/plugins/simplified-lazy-loader.cjs.map +0 -1
  599. package/dist/plugins/simplified-lazy-loader.js +0 -129
  600. package/dist/plugins/simplified-lazy-loader.js.map +0 -1
  601. package/dist/plugins/simplified-plugin-manager.cjs +0 -2
  602. package/dist/plugins/simplified-plugin-manager.cjs.map +0 -1
  603. package/dist/plugins/simplified-plugin-manager.js +0 -51
  604. package/dist/plugins/simplified-plugin-manager.js.map +0 -1
  605. package/dist/plugins/simplified-tachui-instance.cjs +0 -2
  606. package/dist/plugins/simplified-tachui-instance.cjs.map +0 -1
  607. package/dist/plugins/simplified-tachui-instance.js +0 -88
  608. package/dist/plugins/simplified-tachui-instance.js.map +0 -1
  609. package/dist/plugins/simplified-types.cjs +0 -2
  610. package/dist/plugins/simplified-types.cjs.map +0 -1
  611. package/dist/plugins/simplified-types.js +0 -9
  612. package/dist/plugins/simplified-types.js.map +0 -1
  613. package/dist/plugins/simplified-utils.cjs +0 -2
  614. package/dist/plugins/simplified-utils.cjs.map +0 -1
  615. package/dist/plugins/simplified-utils.js +0 -40
  616. package/dist/plugins/simplified-utils.js.map +0 -1
  617. package/dist/reactive/cleanup.cjs +0 -2
  618. package/dist/reactive/cleanup.cjs.map +0 -1
  619. package/dist/reactive/cleanup.js +0 -62
  620. package/dist/reactive/cleanup.js.map +0 -1
  621. package/dist/reactive/computed.cjs +0 -2
  622. package/dist/reactive/computed.cjs.map +0 -1
  623. package/dist/reactive/computed.js +0 -121
  624. package/dist/reactive/computed.js.map +0 -1
  625. package/dist/reactive/context.cjs +0 -2
  626. package/dist/reactive/context.cjs.map +0 -1
  627. package/dist/reactive/context.js +0 -143
  628. package/dist/reactive/context.js.map +0 -1
  629. package/dist/reactive/effect.cjs +0 -2
  630. package/dist/reactive/effect.cjs.map +0 -1
  631. package/dist/reactive/effect.js +0 -67
  632. package/dist/reactive/effect.js.map +0 -1
  633. package/dist/reactive/enhanced-effect.cjs +0 -2
  634. package/dist/reactive/enhanced-effect.cjs.map +0 -1
  635. package/dist/reactive/enhanced-effect.js +0 -153
  636. package/dist/reactive/enhanced-effect.js.map +0 -1
  637. package/dist/reactive/enhanced-signal.cjs +0 -2
  638. package/dist/reactive/enhanced-signal.cjs.map +0 -1
  639. package/dist/reactive/enhanced-signal.js +0 -117
  640. package/dist/reactive/enhanced-signal.js.map +0 -1
  641. package/dist/reactive/equality.cjs +0 -2
  642. package/dist/reactive/equality.cjs.map +0 -1
  643. package/dist/reactive/equality.js +0 -66
  644. package/dist/reactive/equality.js.map +0 -1
  645. package/dist/reactive/index.cjs +0 -2
  646. package/dist/reactive/index.cjs.map +0 -1
  647. package/dist/reactive/index.js.map +0 -1
  648. package/dist/reactive/migration.cjs +0 -18
  649. package/dist/reactive/migration.cjs.map +0 -1
  650. package/dist/reactive/migration.js +0 -164
  651. package/dist/reactive/migration.js.map +0 -1
  652. package/dist/reactive/ownership.cjs +0 -2
  653. package/dist/reactive/ownership.cjs.map +0 -1
  654. package/dist/reactive/ownership.js +0 -34
  655. package/dist/reactive/ownership.js.map +0 -1
  656. package/dist/reactive/scheduler.cjs +0 -2
  657. package/dist/reactive/scheduler.cjs.map +0 -1
  658. package/dist/reactive/scheduler.js +0 -111
  659. package/dist/reactive/scheduler.js.map +0 -1
  660. package/dist/reactive/signal.cjs +0 -2
  661. package/dist/reactive/signal.cjs.map +0 -1
  662. package/dist/reactive/signal.js +0 -96
  663. package/dist/reactive/signal.js.map +0 -1
  664. package/dist/reactive/theme.cjs +0 -2
  665. package/dist/reactive/theme.cjs.map +0 -1
  666. package/dist/reactive/theme.js +0 -27
  667. package/dist/reactive/theme.js.map +0 -1
  668. package/dist/reactive/types.cjs +0 -2
  669. package/dist/reactive/types.cjs.map +0 -1
  670. package/dist/reactive/types.js.map +0 -1
  671. package/dist/reactive/unified-scheduler.cjs +0 -2
  672. package/dist/reactive/unified-scheduler.cjs.map +0 -1
  673. package/dist/reactive/unified-scheduler.js +0 -219
  674. package/dist/reactive/unified-scheduler.js.map +0 -1
  675. package/dist/runtime/component-context.cjs +0 -2
  676. package/dist/runtime/component-context.cjs.map +0 -1
  677. package/dist/runtime/component-context.js +0 -177
  678. package/dist/runtime/component-context.js.map +0 -1
  679. package/dist/runtime/component.cjs +0 -2
  680. package/dist/runtime/component.cjs.map +0 -1
  681. package/dist/runtime/component.js +0 -238
  682. package/dist/runtime/component.js.map +0 -1
  683. package/dist/runtime/context.cjs +0 -2
  684. package/dist/runtime/context.cjs.map +0 -1
  685. package/dist/runtime/context.js +0 -289
  686. package/dist/runtime/context.js.map +0 -1
  687. package/dist/runtime/dev-tools.cjs +0 -2
  688. package/dist/runtime/dev-tools.cjs.map +0 -1
  689. package/dist/runtime/dev-tools.d.ts +0 -240
  690. package/dist/runtime/dev-tools.d.ts.map +0 -1
  691. package/dist/runtime/dev-tools.js +0 -391
  692. package/dist/runtime/dev-tools.js.map +0 -1
  693. package/dist/runtime/development-warnings.cjs +0 -2
  694. package/dist/runtime/development-warnings.cjs.map +0 -1
  695. package/dist/runtime/development-warnings.d.ts +0 -42
  696. package/dist/runtime/development-warnings.d.ts.map +0 -1
  697. package/dist/runtime/development-warnings.js +0 -69
  698. package/dist/runtime/development-warnings.js.map +0 -1
  699. package/dist/runtime/dom-bridge.cjs +0 -2
  700. package/dist/runtime/dom-bridge.cjs.map +0 -1
  701. package/dist/runtime/dom-bridge.js.map +0 -1
  702. package/dist/runtime/element-override.cjs +0 -2
  703. package/dist/runtime/element-override.cjs.map +0 -1
  704. package/dist/runtime/element-override.js +0 -214
  705. package/dist/runtime/element-override.js.map +0 -1
  706. package/dist/runtime/error-boundary.cjs +0 -2
  707. package/dist/runtime/error-boundary.cjs.map +0 -1
  708. package/dist/runtime/error-boundary.d.ts +0 -302
  709. package/dist/runtime/error-boundary.d.ts.map +0 -1
  710. package/dist/runtime/error-boundary.js +0 -559
  711. package/dist/runtime/error-boundary.js.map +0 -1
  712. package/dist/runtime/error-recovery.cjs +0 -2
  713. package/dist/runtime/error-recovery.cjs.map +0 -1
  714. package/dist/runtime/error-recovery.d.ts +0 -267
  715. package/dist/runtime/error-recovery.d.ts.map +0 -1
  716. package/dist/runtime/error-recovery.js +0 -385
  717. package/dist/runtime/error-recovery.js.map +0 -1
  718. package/dist/runtime/error-reporting.cjs +0 -3
  719. package/dist/runtime/error-reporting.cjs.map +0 -1
  720. package/dist/runtime/error-reporting.d.ts +0 -287
  721. package/dist/runtime/error-reporting.d.ts.map +0 -1
  722. package/dist/runtime/error-reporting.js +0 -479
  723. package/dist/runtime/error-reporting.js.map +0 -1
  724. package/dist/runtime/error-utils.cjs +0 -3
  725. package/dist/runtime/error-utils.cjs.map +0 -1
  726. package/dist/runtime/error-utils.d.ts +0 -204
  727. package/dist/runtime/error-utils.d.ts.map +0 -1
  728. package/dist/runtime/error-utils.js +0 -352
  729. package/dist/runtime/error-utils.js.map +0 -1
  730. package/dist/runtime/lazy-component.cjs +0 -2
  731. package/dist/runtime/lazy-component.cjs.map +0 -1
  732. package/dist/runtime/lazy-component.js +0 -129
  733. package/dist/runtime/lazy-component.js.map +0 -1
  734. package/dist/runtime/lifecycle.cjs +0 -2
  735. package/dist/runtime/lifecycle.cjs.map +0 -1
  736. package/dist/runtime/lifecycle.js +0 -7
  737. package/dist/runtime/lifecycle.js.map +0 -1
  738. package/dist/runtime/mounting.cjs +0 -2
  739. package/dist/runtime/mounting.cjs.map +0 -1
  740. package/dist/runtime/mounting.js +0 -12
  741. package/dist/runtime/mounting.js.map +0 -1
  742. package/dist/runtime/optimization.cjs +0 -2
  743. package/dist/runtime/optimization.cjs.map +0 -1
  744. package/dist/runtime/optimization.js +0 -6
  745. package/dist/runtime/optimization.js.map +0 -1
  746. package/dist/runtime/performance.cjs +0 -2
  747. package/dist/runtime/performance.cjs.map +0 -1
  748. package/dist/runtime/performance.d.ts +0 -217
  749. package/dist/runtime/performance.d.ts.map +0 -1
  750. package/dist/runtime/performance.js +0 -399
  751. package/dist/runtime/performance.js.map +0 -1
  752. package/dist/runtime/props.cjs +0 -2
  753. package/dist/runtime/props.cjs.map +0 -1
  754. package/dist/runtime/props.js +0 -265
  755. package/dist/runtime/props.js.map +0 -1
  756. package/dist/runtime/renderer.cjs +0 -2
  757. package/dist/runtime/renderer.cjs.map +0 -1
  758. package/dist/runtime/renderer.js.map +0 -1
  759. package/dist/runtime/semantic-role-manager.cjs +0 -2
  760. package/dist/runtime/semantic-role-manager.cjs.map +0 -1
  761. package/dist/runtime/semantic-role-manager.js +0 -82
  762. package/dist/runtime/semantic-role-manager.js.map +0 -1
  763. package/dist/state/binding.cjs +0 -2
  764. package/dist/state/binding.cjs.map +0 -1
  765. package/dist/state/binding.js +0 -155
  766. package/dist/state/binding.js.map +0 -1
  767. package/dist/state/environment.cjs +0 -2
  768. package/dist/state/environment.cjs.map +0 -1
  769. package/dist/state/environment.js +0 -115
  770. package/dist/state/environment.js.map +0 -1
  771. package/dist/state/index.cjs +0 -2
  772. package/dist/state/index.cjs.map +0 -1
  773. package/dist/state/index.js +0 -63
  774. package/dist/state/index.js.map +0 -1
  775. package/dist/state/observed-object.cjs +0 -2
  776. package/dist/state/observed-object.cjs.map +0 -1
  777. package/dist/state/observed-object.js +0 -163
  778. package/dist/state/observed-object.js.map +0 -1
  779. package/dist/state/state-manager.cjs +0 -2
  780. package/dist/state/state-manager.cjs.map +0 -1
  781. package/dist/state/state-manager.js +0 -233
  782. package/dist/state/state-manager.js.map +0 -1
  783. package/dist/state/state.cjs +0 -2
  784. package/dist/state/state.cjs.map +0 -1
  785. package/dist/state/state.js +0 -159
  786. package/dist/state/state.js.map +0 -1
  787. package/dist/sui-compat.cjs +0 -2
  788. package/dist/sui-compat.cjs.map +0 -1
  789. package/dist/sui-compat.d.ts +0 -110
  790. package/dist/sui-compat.d.ts.map +0 -1
  791. package/dist/sui-compat.js +0 -88
  792. package/dist/sui-compat.js.map +0 -1
  793. package/dist/validation/advanced-debugging.cjs +0 -44
  794. package/dist/validation/advanced-debugging.cjs.map +0 -1
  795. package/dist/validation/advanced-debugging.d.ts +0 -319
  796. package/dist/validation/advanced-debugging.d.ts.map +0 -1
  797. package/dist/validation/advanced-debugging.js +0 -455
  798. package/dist/validation/advanced-debugging.js.map +0 -1
  799. package/dist/validation/build-time/detection.cjs +0 -2
  800. package/dist/validation/build-time/detection.cjs.map +0 -1
  801. package/dist/validation/build-time/detection.d.ts +0 -32
  802. package/dist/validation/build-time/detection.d.ts.map +0 -1
  803. package/dist/validation/build-time/detection.js +0 -199
  804. package/dist/validation/build-time/detection.js.map +0 -1
  805. package/dist/validation/build-time/index.cjs +0 -2
  806. package/dist/validation/build-time/index.cjs.map +0 -1
  807. package/dist/validation/build-time/index.d.ts +0 -84
  808. package/dist/validation/build-time/index.d.ts.map +0 -1
  809. package/dist/validation/build-time/index.js +0 -122
  810. package/dist/validation/build-time/index.js.map +0 -1
  811. package/dist/validation/build-time/plugins.cjs +0 -3
  812. package/dist/validation/build-time/plugins.cjs.map +0 -1
  813. package/dist/validation/build-time/plugins.d.ts +0 -75
  814. package/dist/validation/build-time/plugins.d.ts.map +0 -1
  815. package/dist/validation/build-time/plugins.js +0 -282
  816. package/dist/validation/build-time/plugins.js.map +0 -1
  817. package/dist/validation/build-time/rules.cjs +0 -2
  818. package/dist/validation/build-time/rules.cjs.map +0 -1
  819. package/dist/validation/build-time/rules.d.ts +0 -73
  820. package/dist/validation/build-time/rules.d.ts.map +0 -1
  821. package/dist/validation/build-time/rules.js +0 -576
  822. package/dist/validation/build-time/rules.js.map +0 -1
  823. package/dist/validation/build-time/transformer.cjs +0 -3
  824. package/dist/validation/build-time/transformer.cjs.map +0 -1
  825. package/dist/validation/build-time/transformer.d.ts +0 -23
  826. package/dist/validation/build-time/transformer.d.ts.map +0 -1
  827. package/dist/validation/build-time/transformer.js +0 -177
  828. package/dist/validation/build-time/transformer.js.map +0 -1
  829. package/dist/validation/build-time/types.d.ts +0 -212
  830. package/dist/validation/build-time/types.d.ts.map +0 -1
  831. package/dist/validation/comprehensive.cjs +0 -9
  832. package/dist/validation/comprehensive.cjs.map +0 -1
  833. package/dist/validation/comprehensive.d.ts +0 -160
  834. package/dist/validation/comprehensive.d.ts.map +0 -1
  835. package/dist/validation/comprehensive.js +0 -916
  836. package/dist/validation/comprehensive.js.map +0 -1
  837. package/dist/validation/debug-tools.cjs +0 -16
  838. package/dist/validation/debug-tools.cjs.map +0 -1
  839. package/dist/validation/debug-tools.d.ts +0 -251
  840. package/dist/validation/debug-tools.d.ts.map +0 -1
  841. package/dist/validation/debug-tools.js +0 -405
  842. package/dist/validation/debug-tools.js.map +0 -1
  843. package/dist/validation/developer-experience.cjs +0 -17
  844. package/dist/validation/developer-experience.cjs.map +0 -1
  845. package/dist/validation/developer-experience.d.ts +0 -243
  846. package/dist/validation/developer-experience.d.ts.map +0 -1
  847. package/dist/validation/developer-experience.js +0 -433
  848. package/dist/validation/developer-experience.js.map +0 -1
  849. package/dist/validation/documentation-integration.cjs +0 -7
  850. package/dist/validation/documentation-integration.cjs.map +0 -1
  851. package/dist/validation/documentation-integration.d.ts +0 -269
  852. package/dist/validation/documentation-integration.d.ts.map +0 -1
  853. package/dist/validation/documentation-integration.js +0 -440
  854. package/dist/validation/documentation-integration.js.map +0 -1
  855. package/dist/validation/enhanced-runtime.cjs +0 -6
  856. package/dist/validation/enhanced-runtime.cjs.map +0 -1
  857. package/dist/validation/enhanced-runtime.d.ts +0 -279
  858. package/dist/validation/enhanced-runtime.d.ts.map +0 -1
  859. package/dist/validation/enhanced-runtime.js +0 -465
  860. package/dist/validation/enhanced-runtime.js.map +0 -1
  861. package/dist/validation/error-reporting.cjs +0 -32
  862. package/dist/validation/error-reporting.cjs.map +0 -1
  863. package/dist/validation/error-reporting.d.ts +0 -186
  864. package/dist/validation/error-reporting.d.ts.map +0 -1
  865. package/dist/validation/error-reporting.js +0 -370
  866. package/dist/validation/error-reporting.js.map +0 -1
  867. package/dist/validation/ide-integration.cjs +0 -85
  868. package/dist/validation/ide-integration.cjs.map +0 -1
  869. package/dist/validation/ide-integration.d.ts +0 -328
  870. package/dist/validation/ide-integration.d.ts.map +0 -1
  871. package/dist/validation/ide-integration.js +0 -557
  872. package/dist/validation/ide-integration.js.map +0 -1
  873. package/dist/validation/index.cjs +0 -6
  874. package/dist/validation/index.cjs.map +0 -1
  875. package/dist/validation/index.js.map +0 -1
  876. package/dist/validation/lifecycle-validation.cjs +0 -2
  877. package/dist/validation/lifecycle-validation.cjs.map +0 -1
  878. package/dist/validation/lifecycle-validation.js +0 -314
  879. package/dist/validation/lifecycle-validation.js.map +0 -1
  880. package/dist/validation/performance-optimizer.cjs +0 -2
  881. package/dist/validation/performance-optimizer.cjs.map +0 -1
  882. package/dist/validation/performance-optimizer.d.ts +0 -218
  883. package/dist/validation/performance-optimizer.d.ts.map +0 -1
  884. package/dist/validation/performance-optimizer.js +0 -338
  885. package/dist/validation/performance-optimizer.js.map +0 -1
  886. package/dist/validation/plugin-registration.cjs +0 -2
  887. package/dist/validation/plugin-registration.cjs.map +0 -1
  888. package/dist/validation/plugin-registration.js +0 -126
  889. package/dist/validation/plugin-registration.js.map +0 -1
  890. package/dist/validation/production-bypass.cjs +0 -2
  891. package/dist/validation/production-bypass.cjs.map +0 -1
  892. package/dist/validation/production-bypass.d.ts +0 -175
  893. package/dist/validation/production-bypass.d.ts.map +0 -1
  894. package/dist/validation/production-bypass.js +0 -218
  895. package/dist/validation/production-bypass.js.map +0 -1
  896. package/dist/validation/simple.cjs +0 -9
  897. package/dist/validation/simple.cjs.map +0 -1
  898. package/dist/validation/simple.d.ts +0 -111
  899. package/dist/validation/simple.d.ts.map +0 -1
  900. package/dist/validation/simple.js +0 -146
  901. package/dist/validation/simple.js.map +0 -1
  902. package/dist/viewport/adapters/web-adapter.cjs +0 -70
  903. package/dist/viewport/adapters/web-adapter.cjs.map +0 -1
  904. package/dist/viewport/adapters/web-adapter.d.ts +0 -227
  905. package/dist/viewport/adapters/web-adapter.d.ts.map +0 -1
  906. package/dist/viewport/adapters/web-adapter.js +0 -823
  907. package/dist/viewport/adapters/web-adapter.js.map +0 -1
  908. package/dist/viewport/components.cjs +0 -2
  909. package/dist/viewport/components.cjs.map +0 -1
  910. package/dist/viewport/components.d.ts +0 -131
  911. package/dist/viewport/components.d.ts.map +0 -1
  912. package/dist/viewport/components.js +0 -298
  913. package/dist/viewport/components.js.map +0 -1
  914. package/dist/viewport/environment.cjs +0 -2
  915. package/dist/viewport/environment.cjs.map +0 -1
  916. package/dist/viewport/environment.d.ts +0 -75
  917. package/dist/viewport/environment.d.ts.map +0 -1
  918. package/dist/viewport/environment.js +0 -86
  919. package/dist/viewport/environment.js.map +0 -1
  920. package/dist/viewport/index.cjs +0 -2
  921. package/dist/viewport/index.cjs.map +0 -1
  922. package/dist/viewport/index.d.ts +0 -138
  923. package/dist/viewport/index.d.ts.map +0 -1
  924. package/dist/viewport/index.js +0 -166
  925. package/dist/viewport/index.js.map +0 -1
  926. package/dist/viewport/platform-detection.cjs +0 -2
  927. package/dist/viewport/platform-detection.cjs.map +0 -1
  928. package/dist/viewport/platform-detection.d.ts +0 -59
  929. package/dist/viewport/platform-detection.d.ts.map +0 -1
  930. package/dist/viewport/platform-detection.js +0 -205
  931. package/dist/viewport/platform-detection.js.map +0 -1
  932. package/dist/viewport/types.cjs +0 -2
  933. package/dist/viewport/types.cjs.map +0 -1
  934. package/dist/viewport/types.d.ts +0 -301
  935. package/dist/viewport/types.d.ts.map +0 -1
  936. package/dist/viewport/types.js +0 -13
  937. package/dist/viewport/types.js.map +0 -1
  938. package/dist/viewport/viewport-manager.cjs +0 -2
  939. package/dist/viewport/viewport-manager.cjs.map +0 -1
  940. package/dist/viewport/viewport-manager.d.ts +0 -118
  941. package/dist/viewport/viewport-manager.d.ts.map +0 -1
  942. package/dist/viewport/viewport-manager.js +0 -524
  943. package/dist/viewport/viewport-manager.js.map +0 -1
  944. package/src/assets/Asset.ts +0 -11
  945. package/src/assets/AssetCollection.ts +0 -99
  946. package/src/assets/ColorAsset.ts +0 -210
  947. package/src/assets/FontAsset.ts +0 -380
  948. package/src/assets/ImageAsset.ts +0 -91
  949. package/src/assets/README.md +0 -190
  950. package/src/assets/index.ts +0 -175
  951. package/src/assets/test-assets.ts +0 -69
  952. package/src/assets/test-integration.ts +0 -46
  953. package/src/assets/test-simple.ts +0 -28
  954. package/src/assets/types.ts +0 -79
  955. package/src/bundles/common.ts +0 -30
  956. package/src/bundles/complete.ts +0 -29
  957. package/src/bundles/essential.ts +0 -26
  958. package/src/bundles/minimal.ts +0 -26
  959. package/src/bundles/production-minimal.ts +0 -67
  960. package/src/compiler/advanced-parser.ts +0 -871
  961. package/src/compiler/codegen.ts +0 -450
  962. package/src/compiler/enhanced-codegen.ts +0 -729
  963. package/src/compiler/index.ts +0 -25
  964. package/src/compiler/parser.ts +0 -461
  965. package/src/compiler/plugin.ts +0 -181
  966. package/src/compiler/types.ts +0 -177
  967. package/src/components/BasicInput.ts +0 -352
  968. package/src/components/Button.ts +0 -963
  969. package/src/components/Divider.ts +0 -341
  970. package/src/components/EnhancedLink.ts +0 -676
  971. package/src/components/Form.ts +0 -414
  972. package/src/components/Grid.ts +0 -2507
  973. package/src/components/GridResponsive.ts +0 -637
  974. package/src/components/Image.ts +0 -426
  975. package/src/components/List.ts +0 -1084
  976. package/src/components/Menu.ts +0 -807
  977. package/src/components/Picker.ts +0 -678
  978. package/src/components/ScrollView.ts +0 -725
  979. package/src/components/Section.ts +0 -472
  980. package/src/components/Show.ts +0 -205
  981. package/src/components/Spacer.ts +0 -93
  982. package/src/components/Text.ts +0 -447
  983. package/src/components/Toggle.ts +0 -700
  984. package/src/components/index.ts +0 -231
  985. package/src/components/wrapper.ts +0 -828
  986. package/src/concatenation/concatenatable.ts +0 -211
  987. package/src/concatenation/concatenated-component.ts +0 -471
  988. package/src/concatenation/index.ts +0 -41
  989. package/src/concatenation/styles.css +0 -120
  990. package/src/concatenation/text-optimizer.ts +0 -440
  991. package/src/concatenation/types.ts +0 -116
  992. package/src/constants/README.md +0 -339
  993. package/src/constants/__tests__/frame-utils.test.ts +0 -276
  994. package/src/constants/__tests__/layout.test.ts +0 -215
  995. package/src/constants/frame-utils.ts +0 -174
  996. package/src/constants/index.ts +0 -8
  997. package/src/constants/layout.ts +0 -120
  998. package/src/css-classes/component-base.ts +0 -117
  999. package/src/css-classes/css-class-manager.ts +0 -372
  1000. package/src/css-classes/dom-integration.ts +0 -162
  1001. package/src/css-classes/enhanced-renderer.ts +0 -166
  1002. package/src/css-classes/index.ts +0 -45
  1003. package/src/css-classes/types.ts +0 -73
  1004. package/src/css-classes/utilities.ts +0 -175
  1005. package/src/debug/index.ts +0 -267
  1006. package/src/developer-experience/enhanced-errors.ts +0 -556
  1007. package/src/developer-experience/enhanced-types.ts +0 -427
  1008. package/src/developer-experience/index.ts +0 -220
  1009. package/src/globals.d.ts +0 -43
  1010. package/src/gradients/__tests__/angular-gradient.test.ts +0 -111
  1011. package/src/gradients/__tests__/background-modifier.test.ts +0 -81
  1012. package/src/gradients/__tests__/comprehensive-gradients.test.ts +0 -296
  1013. package/src/gradients/__tests__/gradient-asset.test.ts +0 -144
  1014. package/src/gradients/__tests__/linear-gradient.test.ts +0 -92
  1015. package/src/gradients/__tests__/phase4-features.test.ts +0 -386
  1016. package/src/gradients/__tests__/radial-gradient.test.ts +0 -110
  1017. package/src/gradients/__tests__/repeating-gradients.test.ts +0 -125
  1018. package/src/gradients/__tests__/state-background-modifier.test.ts +0 -340
  1019. package/src/gradients/__tests__/state-gradient-asset.test.ts +0 -262
  1020. package/src/gradients/__tests__/state-gradient-integration.test.ts +0 -277
  1021. package/src/gradients/css-generator.ts +0 -158
  1022. package/src/gradients/examples.ts +0 -632
  1023. package/src/gradients/gradient-asset.ts +0 -30
  1024. package/src/gradients/index.ts +0 -85
  1025. package/src/gradients/performance.ts +0 -521
  1026. package/src/gradients/presets.ts +0 -422
  1027. package/src/gradients/reactive.ts +0 -470
  1028. package/src/gradients/state-gradient-asset.ts +0 -179
  1029. package/src/gradients/types.ts +0 -148
  1030. package/src/gradients/utils.ts +0 -579
  1031. package/src/gradients/validation.ts +0 -489
  1032. package/src/index.ts +0 -168
  1033. package/src/lifecycle/hooks.ts +0 -332
  1034. package/src/modifiers/__tests__/as-html-integration.test.ts +0 -204
  1035. package/src/modifiers/__tests__/as-html.test.ts +0 -437
  1036. package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +0 -294
  1037. package/src/modifiers/__tests__/border.test.ts +0 -371
  1038. package/src/modifiers/__tests__/margin-string-support.test.ts +0 -41
  1039. package/src/modifiers/__tests__/padding-string-support.test.ts +0 -41
  1040. package/src/modifiers/as-html-validator.ts +0 -68
  1041. package/src/modifiers/as-html.ts +0 -216
  1042. package/src/modifiers/attributes.ts +0 -574
  1043. package/src/modifiers/backdrop.ts +0 -290
  1044. package/src/modifiers/background.ts +0 -165
  1045. package/src/modifiers/base.ts +0 -1815
  1046. package/src/modifiers/basic-sanitizer.ts +0 -227
  1047. package/src/modifiers/border.ts +0 -574
  1048. package/src/modifiers/builder.ts +0 -1747
  1049. package/src/modifiers/core.ts +0 -521
  1050. package/src/modifiers/css.ts +0 -148
  1051. package/src/modifiers/effects.ts +0 -412
  1052. package/src/modifiers/elements.ts +0 -541
  1053. package/src/modifiers/filters.ts +0 -501
  1054. package/src/modifiers/flexbox.ts +0 -180
  1055. package/src/modifiers/font.ts +0 -149
  1056. package/src/modifiers/grid.ts +0 -238
  1057. package/src/modifiers/index.ts +0 -481
  1058. package/src/modifiers/margin.ts +0 -218
  1059. package/src/modifiers/padding.ts +0 -318
  1060. package/src/modifiers/registry.ts +0 -444
  1061. package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +0 -392
  1062. package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +0 -368
  1063. package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +0 -556
  1064. package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +0 -558
  1065. package/src/modifiers/responsive/advanced-utilities.ts +0 -562
  1066. package/src/modifiers/responsive/breakpoints.ts +0 -330
  1067. package/src/modifiers/responsive/css-generator.ts +0 -432
  1068. package/src/modifiers/responsive/dev-tools.ts +0 -650
  1069. package/src/modifiers/responsive/index.ts +0 -119
  1070. package/src/modifiers/responsive/layout-patterns.ts +0 -592
  1071. package/src/modifiers/responsive/performance.ts +0 -385
  1072. package/src/modifiers/responsive/responsive-builder.ts +0 -620
  1073. package/src/modifiers/responsive/responsive-modifier.ts +0 -410
  1074. package/src/modifiers/responsive/types.ts +0 -226
  1075. package/src/modifiers/responsive/utilities.ts +0 -478
  1076. package/src/modifiers/scroll.ts +0 -297
  1077. package/src/modifiers/shadows.ts +0 -321
  1078. package/src/modifiers/size.ts +0 -208
  1079. package/src/modifiers/text.ts +0 -416
  1080. package/src/modifiers/transformations.ts +0 -640
  1081. package/src/modifiers/transitions.ts +0 -218
  1082. package/src/modifiers/types.ts +0 -889
  1083. package/src/modifiers/typography.ts +0 -341
  1084. package/src/modifiers/utility.ts +0 -209
  1085. package/src/modifiers/utils.ts +0 -413
  1086. package/src/plugins/__tests__/simplified-plugin-system.test.ts +0 -190
  1087. package/src/plugins/component-loader-registry.ts +0 -371
  1088. package/src/plugins/index.ts +0 -61
  1089. package/src/plugins/legacy-adapter.ts +0 -84
  1090. package/src/plugins/simplified-component-registry.ts +0 -130
  1091. package/src/plugins/simplified-error-handler.ts +0 -372
  1092. package/src/plugins/simplified-index.ts +0 -61
  1093. package/src/plugins/simplified-lazy-loader.ts +0 -242
  1094. package/src/plugins/simplified-plugin-manager.ts +0 -93
  1095. package/src/plugins/simplified-tachui-instance.ts +0 -142
  1096. package/src/plugins/simplified-types.ts +0 -79
  1097. package/src/plugins/simplified-utils.ts +0 -118
  1098. package/src/reactive/cleanup.ts +0 -241
  1099. package/src/reactive/computed.ts +0 -281
  1100. package/src/reactive/context.ts +0 -287
  1101. package/src/reactive/effect.ts +0 -194
  1102. package/src/reactive/enhanced-effect.ts +0 -318
  1103. package/src/reactive/enhanced-signal.ts +0 -227
  1104. package/src/reactive/equality.ts +0 -188
  1105. package/src/reactive/globals.d.ts +0 -5
  1106. package/src/reactive/index.ts +0 -150
  1107. package/src/reactive/migration.ts +0 -335
  1108. package/src/reactive/ownership.ts +0 -182
  1109. package/src/reactive/scheduler.ts +0 -300
  1110. package/src/reactive/signal.ts +0 -201
  1111. package/src/reactive/theme.ts +0 -49
  1112. package/src/reactive/types.ts +0 -103
  1113. package/src/reactive/unified-scheduler.ts +0 -357
  1114. package/src/runtime/component-context.ts +0 -343
  1115. package/src/runtime/component.ts +0 -499
  1116. package/src/runtime/context.ts +0 -527
  1117. package/src/runtime/dev-tools.ts +0 -752
  1118. package/src/runtime/development-warnings.ts +0 -114
  1119. package/src/runtime/dom-bridge.ts +0 -570
  1120. package/src/runtime/element-override.ts +0 -282
  1121. package/src/runtime/error-boundary.ts +0 -955
  1122. package/src/runtime/error-recovery.ts +0 -638
  1123. package/src/runtime/error-reporting.ts +0 -808
  1124. package/src/runtime/error-utils.ts +0 -698
  1125. package/src/runtime/index.ts +0 -202
  1126. package/src/runtime/lazy-component.ts +0 -268
  1127. package/src/runtime/lifecycle.ts +0 -10
  1128. package/src/runtime/mounting.ts +0 -17
  1129. package/src/runtime/optimization.ts +0 -13
  1130. package/src/runtime/performance.ts +0 -693
  1131. package/src/runtime/props.ts +0 -434
  1132. package/src/runtime/refs.ts +0 -13
  1133. package/src/runtime/renderer.ts +0 -674
  1134. package/src/runtime/semantic-role-manager.ts +0 -140
  1135. package/src/runtime/types.ts +0 -282
  1136. package/src/state/binding.ts +0 -381
  1137. package/src/state/environment-object.ts +0 -444
  1138. package/src/state/environment.ts +0 -351
  1139. package/src/state/index.ts +0 -179
  1140. package/src/state/observed-object.ts +0 -405
  1141. package/src/state/state-manager.ts +0 -366
  1142. package/src/state/state.ts +0 -339
  1143. package/src/state/types.ts +0 -192
  1144. package/src/sui-compat.ts +0 -163
  1145. package/src/validation/__tests__/phase-1d-integration.test.ts +0 -558
  1146. package/src/validation/advanced-debugging.ts +0 -860
  1147. package/src/validation/build-time/detection.ts +0 -373
  1148. package/src/validation/build-time/index.ts +0 -222
  1149. package/src/validation/build-time/plugins.ts +0 -515
  1150. package/src/validation/build-time/rules.ts +0 -624
  1151. package/src/validation/build-time/transformer.ts +0 -372
  1152. package/src/validation/build-time/types.ts +0 -232
  1153. package/src/validation/comprehensive.ts +0 -1272
  1154. package/src/validation/debug-tools.ts +0 -724
  1155. package/src/validation/developer-experience.ts +0 -712
  1156. package/src/validation/documentation-integration.ts +0 -835
  1157. package/src/validation/enhanced-runtime.ts +0 -765
  1158. package/src/validation/error-reporting.ts +0 -587
  1159. package/src/validation/ide-integration.ts +0 -845
  1160. package/src/validation/index.ts +0 -353
  1161. package/src/validation/lifecycle-validation.ts +0 -636
  1162. package/src/validation/performance-optimizer.ts +0 -599
  1163. package/src/validation/plugin-registration.ts +0 -249
  1164. package/src/validation/production-bypass.ts +0 -466
  1165. package/src/validation/simple.ts +0 -465
  1166. package/src/viewport/adapters/web-adapter.ts +0 -1385
  1167. package/src/viewport/components.ts +0 -505
  1168. package/src/viewport/environment.ts +0 -173
  1169. package/src/viewport/index.ts +0 -290
  1170. package/src/viewport/platform-detection.ts +0 -431
  1171. package/src/viewport/types.ts +0 -371
  1172. package/src/viewport/viewport-manager.ts +0 -979
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-bridge.cjs","sources":["../../src/runtime/dom-bridge.ts"],"sourcesContent":["/**\n * DOM Rendering Bridge Layer\n *\n * Critical missing piece that connects TachUI components to actual DOM rendering.\n * This bridges the gap between component instances and browser DOM elements.\n */\n\nimport type { ModifiableComponent } from '../modifiers/types'\nimport { createRoot as createReactiveRoot, getOwner } from '../reactive'\nimport { ComponentContextSymbol, createComponentContext, setCurrentComponentContext } from './component-context'\nimport { DOMRenderer } from './renderer'\nimport type { ComponentInstance, DOMNode } from './types'\n\n/**\n * Global DOM renderer instance\n */\nconst globalRenderer = new DOMRenderer()\n\n/**\n * Component mounting registry to track mounted components\n */\nconst mountedComponents = new Map<Element, ComponentInstance>()\nconst componentElements = new Map<ComponentInstance, Element[]>()\n\n/**\n * Track component instances with lifecycle hooks for processing\n */\nconst componentsWithLifecycleHooks = new Set<ComponentInstance>()\n\n/**\n * Register a component that has lifecycle hooks for later processing\n */\nexport function registerComponentWithLifecycleHooks(component: ComponentInstance): void {\n \n if ((component as any)._enhancedLifecycle) {\n componentsWithLifecycleHooks.add(component)\n }\n}\n\n/**\n * Process pending lifecycle hooks for components that were rendered but not mounted\n */\nfunction processPendingLifecycleHooks(): void {\n for (const component of componentsWithLifecycleHooks) {\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle && !component.domReady) {\n // Find DOM elements associated with this component by searching the DOM\n const elements = findDOMElementsForComponent(component)\n if (elements.length > 0) {\n // Set up DOM tracking\n component.domElements = new Map()\n elements.forEach((element, index) => {\n const key = element.id || `element-${index}`\n component.domElements!.set(key, element)\n if (!component.primaryElement) {\n component.primaryElement = element\n }\n })\n \n component.domReady = true\n \n // Process lifecycle hooks\n if (enhancedLifecycle.onDOMReady) {\n console.log('🚀 Processing delayed onDOMReady for component:', component.id)\n const cleanup = enhancedLifecycle.onDOMReady(\n component.domElements,\n component.primaryElement\n )\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n \n if (enhancedLifecycle.onMount) {\n const cleanup = enhancedLifecycle.onMount()\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n }\n }\n }\n \n // Clear the set of processed components\n componentsWithLifecycleHooks.clear()\n}\n\n/**\n * Find DOM elements associated with a component by searching the DOM\n * This is a fallback method for components that were rendered but not mounted\n */\nfunction findDOMElementsForComponent(component: ComponentInstance): Element[] {\n // For Image components, look for img elements that match the component's expected structure\n if (component.id.startsWith('image-')) {\n const allImages = document.querySelectorAll('img.tachui-image')\n return Array.from(allImages)\n }\n \n // For other components, this could be expanded with more specific search logic\n return []\n}\n\n/**\n * Create a reactive root that can mount component trees to DOM.\n * \n * This is the application-level mounting function for TachUI apps.\n * It creates a reactive context and mounts your component tree to the DOM.\n * \n * @param rootFunction - Function that returns the root component of your app\n * \n * @example\n * ```typescript\n * import { mountRoot } from '@tachui/core'\n * import { MyApp } from './MyApp'\n * \n * mountRoot(() => MyApp())\n * ```\n * \n * Note: This requires a DOM element with id=\"app\" to exist.\n */\nexport function mountRoot(rootFunction: () => ComponentInstance): void {\n createReactiveRoot((dispose) => {\n // Create root component context for State() to work throughout the entire app\n const rootContext = createComponentContext('root-app')\n setCurrentComponentContext(rootContext)\n \n // Also store context in reactive owner so State() can find it\n const owner = getOwner()\n if (owner) {\n owner.context.set(ComponentContextSymbol, rootContext)\n }\n \n let component: ComponentInstance\n \n try {\n component = rootFunction()\n\n // Find app container\n const container = document.getElementById('app')\n if (!container) {\n throw new Error('App container element with id=\"app\" not found')\n }\n\n // Mount the component tree to the container\n mountComponentTree(component, container)\n } catch (error) {\n // Reset context on error\n setCurrentComponentContext(null)\n if (owner) {\n owner.context.delete(ComponentContextSymbol)\n }\n throw error\n }\n\n // Set up cleanup that resets context when the root is disposed\n const originalDispose = dispose\n return () => {\n setCurrentComponentContext(null)\n if (owner) {\n owner.context.delete(ComponentContextSymbol)\n }\n return originalDispose()\n }\n })\n}\n\n/**\n * Mount a component tree to a DOM container\n */\nexport function mountComponentTree(component: ComponentInstance, container: Element, clearContainer: boolean = true): () => void {\n \n try {\n // Clear container only if requested (typically only for root components)\n if (clearContainer) {\n container.innerHTML = ''\n }\n\n // Render component to DOM nodes\n const domNodes = component.render()\n const nodeArray = Array.isArray(domNodes) ? domNodes : [domNodes]\n\n // Convert DOM nodes to actual DOM elements\n const elements: Element[] = []\n for (const node of nodeArray) {\n const element = globalRenderer.render(node, container)\n\n if (element instanceof DocumentFragment) {\n // Handle fragments by adding all child nodes\n const children = Array.from(element.childNodes)\n for (const child of children) {\n if (child instanceof Element) {\n elements.push(child)\n container.appendChild(child)\n }\n }\n } else if (element instanceof Element) {\n elements.push(element)\n container.appendChild(element)\n }\n }\n\n // ENHANCED: Set up DOM element tracking for lifecycle hooks\n if (elements.length > 0) {\n component.domElements = new Map()\n \n elements.forEach((element, index) => {\n const key = element.id || `element-${index}`\n component.domElements!.set(key, element)\n \n // Set primary element (first element with ID or index 0)\n if (!component.primaryElement) {\n component.primaryElement = element\n }\n })\n \n // Mark DOM as ready\n component.domReady = true\n \n // ENHANCED: Trigger onDOMReady with guaranteed DOM elements\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n \n if (enhancedLifecycle?.onDOMReady) {\n const cleanup = enhancedLifecycle.onDOMReady(\n component.domElements, \n component.primaryElement\n )\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n \n // Trigger legacy onMount for backwards compatibility\n if (enhancedLifecycle?.onMount) {\n const cleanup = enhancedLifecycle.onMount()\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n }\n\n // Apply modifiers if this is a modifiable component\n if (isModifiableComponent(component)) {\n for (const element of elements) {\n applyModifiersToElement(element, component)\n }\n }\n\n // Bind event handlers\n for (const element of elements) {\n bindEventHandlers(element, component)\n }\n\n // REMOVED: Recursive child mounting - children are rendered as part of parent's render() method\n // This was causing duplicate mounting where child components were being mounted individually\n // instead of being rendered as part of their parent's DOM structure\n const childCleanupFunctions: (() => void)[] = []\n\n // Register component\n mountedComponents.set(container, component)\n componentElements.set(component, elements)\n component.mounted = true\n\n // Process any pending lifecycle hooks for components that were rendered but not mounted\n // Use setTimeout to ensure all DOM rendering is complete\n setTimeout(() => {\n processPendingLifecycleHooks()\n }, 0)\n\n // Return cleanup function\n return () => {\n // Clean up child components first\n childCleanupFunctions.forEach((cleanup) => cleanup())\n // Then clean up this component\n unmountComponentEnhanced(component, container)\n }\n } catch (error) {\n // ENHANCED: Better error handling with DOM context\n const domError = Object.assign(new Error(), error, {\n code: 'MOUNT_FAILED',\n context: 'mountComponentTree',\n }) as any\n \n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onDOMError) {\n enhancedLifecycle.onDOMError(domError, 'mount')\n } else if (enhancedLifecycle?.onError) {\n enhancedLifecycle.onError(domError)\n } else {\n console.error('Failed to mount component tree:', error)\n }\n throw error\n }\n}\n\n/**\n * Unmount a component from DOM\n */\nexport function unmountComponent(component: ComponentInstance, container: Element): void {\n const elements = componentElements.get(component)\n if (elements) {\n elements.forEach((element) => {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n })\n componentElements.delete(component)\n }\n\n mountedComponents.delete(container)\n component.mounted = false\n\n // Run cleanup functions\n if (component.cleanup) {\n component.cleanup.forEach((cleanup) => cleanup())\n component.cleanup = []\n }\n}\n\n/**\n * Enhanced unmount component with lifecycle hooks\n */\nexport function unmountComponentEnhanced(component: ComponentInstance, container: Element): void {\n try {\n // Trigger onUnmount lifecycle\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onUnmount) {\n enhancedLifecycle.onUnmount()\n }\n \n // Run cleanup functions\n if (component.cleanup) {\n component.cleanup.forEach((cleanup) => {\n try {\n cleanup()\n } catch (error) {\n console.error(`Cleanup error for component ${component.id}:`, error)\n }\n })\n component.cleanup = []\n }\n \n // Remove DOM elements\n const elements = componentElements.get(component)\n if (elements) {\n elements.forEach((element) => {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n })\n componentElements.delete(component)\n }\n \n // Clear enhanced DOM tracking\n if (component.domElements) {\n component.domElements.clear()\n }\n \n // Clear references\n component.primaryElement = undefined\n component.domReady = false\n component.mounted = false\n \n mountedComponents.delete(container)\n } catch (error) {\n const domError = Object.assign(new Error(), error, {\n code: 'UNMOUNT_FAILED',\n context: 'unmountComponentEnhanced',\n }) as any\n \n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onDOMError) {\n enhancedLifecycle.onDOMError(domError, 'unmount')\n } else {\n console.error('Component unmounting failed:', error)\n }\n }\n}\n\n/**\n * Apply modifier chains to DOM elements\n */\nfunction applyModifiersToElement(element: Element, component: ModifiableComponent<any>): void {\n \n if (!('modifiers' in component) || !component.modifiers) {\n return\n }\n\n const htmlElement = element as HTMLElement\n const modifiers = component.modifiers\n\n // Create a DOMNode wrapper for the HTMLElement to match the modifier interface\n const domNode: DOMNode = {\n type: 'element',\n tag: htmlElement.tagName.toLowerCase(),\n props: {},\n element: htmlElement,\n }\n\n // Apply each modifier to the DOM element\n for (const modifier of modifiers) {\n try {\n // Each modifier should apply its styles/properties to the element\n if (modifier && typeof modifier.apply === 'function') {\n modifier.apply(domNode, {\n componentId: component.id,\n componentInstance: component,\n element: htmlElement,\n phase: 'creation',\n })\n }\n } catch (error) {\n console.warn('Failed to apply modifier:', modifier, error)\n }\n }\n}\n\n/**\n * Bind component event handlers to DOM events\n */\nfunction bindEventHandlers(element: Element, component: ComponentInstance): void {\n const htmlElement = element as HTMLElement\n\n // Handle component-level events from props\n if (component.props) {\n const props = component.props\n\n // Bind common event handlers\n if (props.onClick && typeof props.onClick === 'function') {\n htmlElement.addEventListener('click', props.onClick)\n }\n\n if (props.onMouseEnter && typeof props.onMouseEnter === 'function') {\n htmlElement.addEventListener('mouseenter', props.onMouseEnter)\n }\n\n if (props.onMouseLeave && typeof props.onMouseLeave === 'function') {\n htmlElement.addEventListener('mouseleave', props.onMouseLeave)\n }\n\n if (props.onFocus && typeof props.onFocus === 'function') {\n htmlElement.addEventListener('focus', props.onFocus)\n }\n\n if (props.onBlur && typeof props.onBlur === 'function') {\n htmlElement.addEventListener('blur', props.onBlur)\n }\n }\n\n // Handle modifier-based events if this is a modifiable component\n if (isModifiableComponent(component) && component.modifiers) {\n for (const modifier of component.modifiers) {\n if (modifier && 'eventHandlers' in modifier && modifier.eventHandlers) {\n for (const [eventType, handler] of Object.entries(modifier.eventHandlers)) {\n if (typeof handler === 'function') {\n htmlElement.addEventListener(\n eventType as keyof HTMLElementEventMap,\n handler as EventListener\n )\n }\n }\n }\n }\n }\n}\n\n/**\n * Type guard to check if component is modifiable\n */\nfunction isModifiableComponent(component: any): component is ModifiableComponent<any> {\n return (\n component &&\n typeof component === 'object' &&\n ('modifiers' in component || 'modifier' in component)\n )\n}\n\n/**\n * Recursively mount component children\n */\nexport function mountComponentChildren(\n children: ComponentInstance[],\n container: Element\n): (() => void)[] {\n const cleanupFunctions: (() => void)[] = []\n\n for (const child of children) {\n const childCleanup = mountComponentTree(child, container)\n cleanupFunctions.push(childCleanup)\n }\n\n return cleanupFunctions\n}\n\n/**\n * Update a mounted component with new props\n */\nexport function updateComponent(component: ComponentInstance, newProps: any): void {\n const elements = componentElements.get(component)\n if (!elements) {\n console.warn('Attempted to update unmounted component')\n return\n }\n\n // Update props\n component.prevProps = component.props\n component.props = { ...component.props, ...newProps }\n\n // Re-render if needed\n const container = elements[0]?.parentElement\n if (container) {\n unmountComponent(component, container)\n mountComponentTree(component, container)\n }\n}\n\n/**\n * Get mounted component from DOM element\n */\nexport function getComponentFromElement(element: Element): ComponentInstance | undefined {\n let current: Element | null = element\n while (current) {\n const component = mountedComponents.get(current)\n if (component) {\n return component\n }\n current = current.parentElement\n }\n return undefined\n}\n\n\n/**\n * Debug utilities for DOM bridge\n */\nexport const DOMBridgeDebug = {\n getMountedComponents: () => Array.from(mountedComponents.entries()),\n getComponentElements: (component: ComponentInstance) => componentElements.get(component),\n isComponentMounted: (component: ComponentInstance) => component.mounted || false,\n\n /**\n * Validate that all components are properly mounted\n */\n validateMounting(): { valid: boolean; issues: string[] } {\n const issues: string[] = []\n\n for (const [container, component] of mountedComponents.entries()) {\n if (!document.contains(container)) {\n issues.push(`Container for component ${component.id} is not in DOM`)\n }\n\n if (!component.mounted) {\n issues.push(`Component ${component.id} marked as unmounted but still registered`)\n }\n\n const elements = componentElements.get(component)\n if (!elements || elements.length === 0) {\n issues.push(`Component ${component.id} has no associated DOM elements`)\n }\n }\n\n return {\n valid: issues.length === 0,\n issues,\n }\n },\n}\n"],"names":["globalRenderer","DOMRenderer","mountedComponents","componentElements","componentsWithLifecycleHooks","registerComponentWithLifecycleHooks","component","processPendingLifecycleHooks","enhancedLifecycle","elements","findDOMElementsForComponent","element","index","key","cleanup","allImages","mountRoot","rootFunction","createReactiveRoot","dispose","rootContext","createComponentContext","setCurrentComponentContext","owner","getOwner","ComponentContextSymbol","container","mountComponentTree","error","originalDispose","clearContainer","domNodes","nodeArray","node","children","child","isModifiableComponent","applyModifiersToElement","bindEventHandlers","childCleanupFunctions","unmountComponentEnhanced","domError","unmountComponent","htmlElement","modifiers","domNode","modifier","props","eventType","handler","mountComponentChildren","cleanupFunctions","childCleanup","updateComponent","newProps","getComponentFromElement","current","DOMBridgeDebug","issues"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom-bridge.js","sources":["../../src/runtime/dom-bridge.ts"],"sourcesContent":["/**\n * DOM Rendering Bridge Layer\n *\n * Critical missing piece that connects TachUI components to actual DOM rendering.\n * This bridges the gap between component instances and browser DOM elements.\n */\n\nimport type { ModifiableComponent } from '../modifiers/types'\nimport { createRoot as createReactiveRoot, getOwner } from '../reactive'\nimport { ComponentContextSymbol, createComponentContext, setCurrentComponentContext } from './component-context'\nimport { DOMRenderer } from './renderer'\nimport type { ComponentInstance, DOMNode } from './types'\n\n/**\n * Global DOM renderer instance\n */\nconst globalRenderer = new DOMRenderer()\n\n/**\n * Component mounting registry to track mounted components\n */\nconst mountedComponents = new Map<Element, ComponentInstance>()\nconst componentElements = new Map<ComponentInstance, Element[]>()\n\n/**\n * Track component instances with lifecycle hooks for processing\n */\nconst componentsWithLifecycleHooks = new Set<ComponentInstance>()\n\n/**\n * Register a component that has lifecycle hooks for later processing\n */\nexport function registerComponentWithLifecycleHooks(component: ComponentInstance): void {\n \n if ((component as any)._enhancedLifecycle) {\n componentsWithLifecycleHooks.add(component)\n }\n}\n\n/**\n * Process pending lifecycle hooks for components that were rendered but not mounted\n */\nfunction processPendingLifecycleHooks(): void {\n for (const component of componentsWithLifecycleHooks) {\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle && !component.domReady) {\n // Find DOM elements associated with this component by searching the DOM\n const elements = findDOMElementsForComponent(component)\n if (elements.length > 0) {\n // Set up DOM tracking\n component.domElements = new Map()\n elements.forEach((element, index) => {\n const key = element.id || `element-${index}`\n component.domElements!.set(key, element)\n if (!component.primaryElement) {\n component.primaryElement = element\n }\n })\n \n component.domReady = true\n \n // Process lifecycle hooks\n if (enhancedLifecycle.onDOMReady) {\n console.log('🚀 Processing delayed onDOMReady for component:', component.id)\n const cleanup = enhancedLifecycle.onDOMReady(\n component.domElements,\n component.primaryElement\n )\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n \n if (enhancedLifecycle.onMount) {\n const cleanup = enhancedLifecycle.onMount()\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n }\n }\n }\n \n // Clear the set of processed components\n componentsWithLifecycleHooks.clear()\n}\n\n/**\n * Find DOM elements associated with a component by searching the DOM\n * This is a fallback method for components that were rendered but not mounted\n */\nfunction findDOMElementsForComponent(component: ComponentInstance): Element[] {\n // For Image components, look for img elements that match the component's expected structure\n if (component.id.startsWith('image-')) {\n const allImages = document.querySelectorAll('img.tachui-image')\n return Array.from(allImages)\n }\n \n // For other components, this could be expanded with more specific search logic\n return []\n}\n\n/**\n * Create a reactive root that can mount component trees to DOM.\n * \n * This is the application-level mounting function for TachUI apps.\n * It creates a reactive context and mounts your component tree to the DOM.\n * \n * @param rootFunction - Function that returns the root component of your app\n * \n * @example\n * ```typescript\n * import { mountRoot } from '@tachui/core'\n * import { MyApp } from './MyApp'\n * \n * mountRoot(() => MyApp())\n * ```\n * \n * Note: This requires a DOM element with id=\"app\" to exist.\n */\nexport function mountRoot(rootFunction: () => ComponentInstance): void {\n createReactiveRoot((dispose) => {\n // Create root component context for State() to work throughout the entire app\n const rootContext = createComponentContext('root-app')\n setCurrentComponentContext(rootContext)\n \n // Also store context in reactive owner so State() can find it\n const owner = getOwner()\n if (owner) {\n owner.context.set(ComponentContextSymbol, rootContext)\n }\n \n let component: ComponentInstance\n \n try {\n component = rootFunction()\n\n // Find app container\n const container = document.getElementById('app')\n if (!container) {\n throw new Error('App container element with id=\"app\" not found')\n }\n\n // Mount the component tree to the container\n mountComponentTree(component, container)\n } catch (error) {\n // Reset context on error\n setCurrentComponentContext(null)\n if (owner) {\n owner.context.delete(ComponentContextSymbol)\n }\n throw error\n }\n\n // Set up cleanup that resets context when the root is disposed\n const originalDispose = dispose\n return () => {\n setCurrentComponentContext(null)\n if (owner) {\n owner.context.delete(ComponentContextSymbol)\n }\n return originalDispose()\n }\n })\n}\n\n/**\n * Mount a component tree to a DOM container\n */\nexport function mountComponentTree(component: ComponentInstance, container: Element, clearContainer: boolean = true): () => void {\n \n try {\n // Clear container only if requested (typically only for root components)\n if (clearContainer) {\n container.innerHTML = ''\n }\n\n // Render component to DOM nodes\n const domNodes = component.render()\n const nodeArray = Array.isArray(domNodes) ? domNodes : [domNodes]\n\n // Convert DOM nodes to actual DOM elements\n const elements: Element[] = []\n for (const node of nodeArray) {\n const element = globalRenderer.render(node, container)\n\n if (element instanceof DocumentFragment) {\n // Handle fragments by adding all child nodes\n const children = Array.from(element.childNodes)\n for (const child of children) {\n if (child instanceof Element) {\n elements.push(child)\n container.appendChild(child)\n }\n }\n } else if (element instanceof Element) {\n elements.push(element)\n container.appendChild(element)\n }\n }\n\n // ENHANCED: Set up DOM element tracking for lifecycle hooks\n if (elements.length > 0) {\n component.domElements = new Map()\n \n elements.forEach((element, index) => {\n const key = element.id || `element-${index}`\n component.domElements!.set(key, element)\n \n // Set primary element (first element with ID or index 0)\n if (!component.primaryElement) {\n component.primaryElement = element\n }\n })\n \n // Mark DOM as ready\n component.domReady = true\n \n // ENHANCED: Trigger onDOMReady with guaranteed DOM elements\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n \n if (enhancedLifecycle?.onDOMReady) {\n const cleanup = enhancedLifecycle.onDOMReady(\n component.domElements, \n component.primaryElement\n )\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n \n // Trigger legacy onMount for backwards compatibility\n if (enhancedLifecycle?.onMount) {\n const cleanup = enhancedLifecycle.onMount()\n if (typeof cleanup === 'function') {\n component.cleanup = component.cleanup || []\n component.cleanup.push(cleanup)\n }\n }\n }\n\n // Apply modifiers if this is a modifiable component\n if (isModifiableComponent(component)) {\n for (const element of elements) {\n applyModifiersToElement(element, component)\n }\n }\n\n // Bind event handlers\n for (const element of elements) {\n bindEventHandlers(element, component)\n }\n\n // REMOVED: Recursive child mounting - children are rendered as part of parent's render() method\n // This was causing duplicate mounting where child components were being mounted individually\n // instead of being rendered as part of their parent's DOM structure\n const childCleanupFunctions: (() => void)[] = []\n\n // Register component\n mountedComponents.set(container, component)\n componentElements.set(component, elements)\n component.mounted = true\n\n // Process any pending lifecycle hooks for components that were rendered but not mounted\n // Use setTimeout to ensure all DOM rendering is complete\n setTimeout(() => {\n processPendingLifecycleHooks()\n }, 0)\n\n // Return cleanup function\n return () => {\n // Clean up child components first\n childCleanupFunctions.forEach((cleanup) => cleanup())\n // Then clean up this component\n unmountComponentEnhanced(component, container)\n }\n } catch (error) {\n // ENHANCED: Better error handling with DOM context\n const domError = Object.assign(new Error(), error, {\n code: 'MOUNT_FAILED',\n context: 'mountComponentTree',\n }) as any\n \n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onDOMError) {\n enhancedLifecycle.onDOMError(domError, 'mount')\n } else if (enhancedLifecycle?.onError) {\n enhancedLifecycle.onError(domError)\n } else {\n console.error('Failed to mount component tree:', error)\n }\n throw error\n }\n}\n\n/**\n * Unmount a component from DOM\n */\nexport function unmountComponent(component: ComponentInstance, container: Element): void {\n const elements = componentElements.get(component)\n if (elements) {\n elements.forEach((element) => {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n })\n componentElements.delete(component)\n }\n\n mountedComponents.delete(container)\n component.mounted = false\n\n // Run cleanup functions\n if (component.cleanup) {\n component.cleanup.forEach((cleanup) => cleanup())\n component.cleanup = []\n }\n}\n\n/**\n * Enhanced unmount component with lifecycle hooks\n */\nexport function unmountComponentEnhanced(component: ComponentInstance, container: Element): void {\n try {\n // Trigger onUnmount lifecycle\n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onUnmount) {\n enhancedLifecycle.onUnmount()\n }\n \n // Run cleanup functions\n if (component.cleanup) {\n component.cleanup.forEach((cleanup) => {\n try {\n cleanup()\n } catch (error) {\n console.error(`Cleanup error for component ${component.id}:`, error)\n }\n })\n component.cleanup = []\n }\n \n // Remove DOM elements\n const elements = componentElements.get(component)\n if (elements) {\n elements.forEach((element) => {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n })\n componentElements.delete(component)\n }\n \n // Clear enhanced DOM tracking\n if (component.domElements) {\n component.domElements.clear()\n }\n \n // Clear references\n component.primaryElement = undefined\n component.domReady = false\n component.mounted = false\n \n mountedComponents.delete(container)\n } catch (error) {\n const domError = Object.assign(new Error(), error, {\n code: 'UNMOUNT_FAILED',\n context: 'unmountComponentEnhanced',\n }) as any\n \n const enhancedLifecycle = (component as any)._enhancedLifecycle\n if (enhancedLifecycle?.onDOMError) {\n enhancedLifecycle.onDOMError(domError, 'unmount')\n } else {\n console.error('Component unmounting failed:', error)\n }\n }\n}\n\n/**\n * Apply modifier chains to DOM elements\n */\nfunction applyModifiersToElement(element: Element, component: ModifiableComponent<any>): void {\n \n if (!('modifiers' in component) || !component.modifiers) {\n return\n }\n\n const htmlElement = element as HTMLElement\n const modifiers = component.modifiers\n\n // Create a DOMNode wrapper for the HTMLElement to match the modifier interface\n const domNode: DOMNode = {\n type: 'element',\n tag: htmlElement.tagName.toLowerCase(),\n props: {},\n element: htmlElement,\n }\n\n // Apply each modifier to the DOM element\n for (const modifier of modifiers) {\n try {\n // Each modifier should apply its styles/properties to the element\n if (modifier && typeof modifier.apply === 'function') {\n modifier.apply(domNode, {\n componentId: component.id,\n componentInstance: component,\n element: htmlElement,\n phase: 'creation',\n })\n }\n } catch (error) {\n console.warn('Failed to apply modifier:', modifier, error)\n }\n }\n}\n\n/**\n * Bind component event handlers to DOM events\n */\nfunction bindEventHandlers(element: Element, component: ComponentInstance): void {\n const htmlElement = element as HTMLElement\n\n // Handle component-level events from props\n if (component.props) {\n const props = component.props\n\n // Bind common event handlers\n if (props.onClick && typeof props.onClick === 'function') {\n htmlElement.addEventListener('click', props.onClick)\n }\n\n if (props.onMouseEnter && typeof props.onMouseEnter === 'function') {\n htmlElement.addEventListener('mouseenter', props.onMouseEnter)\n }\n\n if (props.onMouseLeave && typeof props.onMouseLeave === 'function') {\n htmlElement.addEventListener('mouseleave', props.onMouseLeave)\n }\n\n if (props.onFocus && typeof props.onFocus === 'function') {\n htmlElement.addEventListener('focus', props.onFocus)\n }\n\n if (props.onBlur && typeof props.onBlur === 'function') {\n htmlElement.addEventListener('blur', props.onBlur)\n }\n }\n\n // Handle modifier-based events if this is a modifiable component\n if (isModifiableComponent(component) && component.modifiers) {\n for (const modifier of component.modifiers) {\n if (modifier && 'eventHandlers' in modifier && modifier.eventHandlers) {\n for (const [eventType, handler] of Object.entries(modifier.eventHandlers)) {\n if (typeof handler === 'function') {\n htmlElement.addEventListener(\n eventType as keyof HTMLElementEventMap,\n handler as EventListener\n )\n }\n }\n }\n }\n }\n}\n\n/**\n * Type guard to check if component is modifiable\n */\nfunction isModifiableComponent(component: any): component is ModifiableComponent<any> {\n return (\n component &&\n typeof component === 'object' &&\n ('modifiers' in component || 'modifier' in component)\n )\n}\n\n/**\n * Recursively mount component children\n */\nexport function mountComponentChildren(\n children: ComponentInstance[],\n container: Element\n): (() => void)[] {\n const cleanupFunctions: (() => void)[] = []\n\n for (const child of children) {\n const childCleanup = mountComponentTree(child, container)\n cleanupFunctions.push(childCleanup)\n }\n\n return cleanupFunctions\n}\n\n/**\n * Update a mounted component with new props\n */\nexport function updateComponent(component: ComponentInstance, newProps: any): void {\n const elements = componentElements.get(component)\n if (!elements) {\n console.warn('Attempted to update unmounted component')\n return\n }\n\n // Update props\n component.prevProps = component.props\n component.props = { ...component.props, ...newProps }\n\n // Re-render if needed\n const container = elements[0]?.parentElement\n if (container) {\n unmountComponent(component, container)\n mountComponentTree(component, container)\n }\n}\n\n/**\n * Get mounted component from DOM element\n */\nexport function getComponentFromElement(element: Element): ComponentInstance | undefined {\n let current: Element | null = element\n while (current) {\n const component = mountedComponents.get(current)\n if (component) {\n return component\n }\n current = current.parentElement\n }\n return undefined\n}\n\n\n/**\n * Debug utilities for DOM bridge\n */\nexport const DOMBridgeDebug = {\n getMountedComponents: () => Array.from(mountedComponents.entries()),\n getComponentElements: (component: ComponentInstance) => componentElements.get(component),\n isComponentMounted: (component: ComponentInstance) => component.mounted || false,\n\n /**\n * Validate that all components are properly mounted\n */\n validateMounting(): { valid: boolean; issues: string[] } {\n const issues: string[] = []\n\n for (const [container, component] of mountedComponents.entries()) {\n if (!document.contains(container)) {\n issues.push(`Container for component ${component.id} is not in DOM`)\n }\n\n if (!component.mounted) {\n issues.push(`Component ${component.id} marked as unmounted but still registered`)\n }\n\n const elements = componentElements.get(component)\n if (!elements || elements.length === 0) {\n issues.push(`Component ${component.id} has no associated DOM elements`)\n }\n }\n\n return {\n valid: issues.length === 0,\n issues,\n }\n },\n}\n"],"names":["globalRenderer","DOMRenderer","mountedComponents","componentElements","componentsWithLifecycleHooks","registerComponentWithLifecycleHooks","component","processPendingLifecycleHooks","enhancedLifecycle","elements","findDOMElementsForComponent","element","index","key","cleanup","allImages","mountRoot","rootFunction","createReactiveRoot","dispose","rootContext","createComponentContext","setCurrentComponentContext","owner","getOwner","ComponentContextSymbol","container","mountComponentTree","error","originalDispose","clearContainer","domNodes","nodeArray","node","children","child","isModifiableComponent","applyModifiersToElement","bindEventHandlers","childCleanupFunctions","unmountComponentEnhanced","domError","unmountComponent","htmlElement","modifiers","domNode","modifier","props","eventType","handler","mountComponentChildren","cleanupFunctions","childCleanup","updateComponent","newProps","getComponentFromElement","current","DOMBridgeDebug","issues"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./development-warnings.cjs"),o=new Set(["div","section","article","aside","nav","main","header","footer","h1","h2","h3","h4","h5","h6","p","span","strong","em","code","pre","blockquote","address","ul","ol","li","dl","dt","dd","button","a","input","textarea","select","form","label","img","video","audio","canvas","svg","picture","source","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","fieldset","legend","optgroup","option","datalist","output","progress","meter","details","summary","dialog","abbr","cite","dfn","kbd","mark","q","s","samp","small","sub","sup","time","u","var","body","head","title","base","link","meta","style","script","noscript","embed","iframe","object","param","track","map","area","menu","menuitem"]),c=new Map([["nav",{role:"navigation",applyARIA:!0}],["main",{role:"main",applyARIA:!0}],["article",{role:"article",applyARIA:!0}],["section",{role:"region",applyARIA:!0}],["aside",{role:"complementary",applyARIA:!0}],["header",{role:"banner",applyARIA:!1}],["footer",{role:"contentinfo",applyARIA:!1}],["form",{role:"form",applyARIA:!0}],["search",{role:"search",applyARIA:!0}],["dialog",{role:"dialog",applyARIA:!0}],["button",{role:"button",applyARIA:!1}],["a",{role:"link",applyARIA:!1}]]),u=new Map([["HStack",{warningLevel:"none",idealTags:["nav","header","footer","section","article","aside","main","div"]}],["VStack",{warningLevel:"none",idealTags:["main","section","article","aside","header","footer","div"]}],["ZStack",{warningLevel:"none",idealTags:["article","aside","section","div"]}],["Text",{warningLevel:"none",idealTags:["h1","h2","h3","h4","h5","h6","p","span","strong","em"]}],["Image",{warningLevel:"warning",problematicTags:["figure","picture"]}],["Spacer",{warningLevel:"none"}],["Button",{warningLevel:"warning",problematicTags:["div","span","a"]}],["Link",{warningLevel:"warning",problematicTags:["div","span","button"]}]]);function d(n,i){const e=u.get(n);return e?e.warningLevel==="none"?!1:e.warningLevel==="warning"&&e.problematicTags?e.problematicTags.includes(i):!(e.idealTags&&e.idealTags.includes(i)):!0}class g{static validate(i,e){return o.has(i)?{valid:!0,warnings:this.checkSemanticWarnings(i,e),semanticRole:c.get(i)}:(t.DevelopmentWarnings.errorInvalidTag(i,e),{valid:!1,warning:`Invalid HTML tag '${i}' specified for ${e}. Tag will be used as-is.`,severity:"error"})}static checkSemanticWarnings(i,e){const r=[];if(["button","a","input","select","textarea"].includes(i)&&["HStack","VStack","ZStack"].includes(e)){const a=`Using interactive tag '${i}' on layout component ${e} may cause accessibility issues.`;r.push({message:a,severity:"warning"}),t.DevelopmentWarnings.warnAccessibility(e,i,"Interactive tag on layout component may cause unexpected behavior")}if(i==="li"&&!["VStack","HStack"].includes(e)&&(r.push({message:"<li> tags should typically be used within list structures.",severity:"info"}),t.DevelopmentWarnings.warnProblematicCombination(e,i,"Consider using within <ul> or <ol> structure","info")),["h1","h2","h3","h4","h5","h6"].includes(i)&&["HStack","VStack","ZStack"].includes(e)){const a=`Using heading tag '${i}' on layout component ${e}. Consider using Text component instead.`;r.push({message:a,severity:"info"}),t.DevelopmentWarnings.warnProblematicCombination(e,i,"Heading tags are better suited for Text components","info")}if(["form","fieldset","legend"].includes(i)&&!["VStack","HStack","Form"].includes(e)){const a=`Form tag '${i}' used on ${e}. Ensure proper form semantics.`;r.push({message:a,severity:"info"}),t.DevelopmentWarnings.warnProblematicCombination(e,i,"Form tags require proper semantic context","info")}return r}}let l={autoApplySemanticRoles:!0,warnOnOverrides:process.env.NODE_ENV!=="production",warnOnSemanticIssues:process.env.NODE_ENV!=="production",validateTags:!0,allowInvalidTags:!0};function f(n){l={...l,...n}}function m(){return{...l}}function v(n,i,e){const r=e||i,a=m();let s={valid:!0};return e&&(a.warnOnOverrides&&d(n,e)&&t.DevelopmentWarnings.warnElementOverride(n,i,e),a.validateTags&&(s=g.validate(e,n),!s.valid&&!a.allowInvalidTags))?(t.DevelopmentWarnings.warnProblematicCombination(n,e,`Invalid tag rejected, using default '${i}' instead`,"warning"),{tag:i,validation:s}):{tag:r,validation:s}}function p(n,i){return e=>v(n,i,e)}exports.COMPONENT_ELIGIBILITY=u;exports.ElementTagValidator=g;exports.SEMANTIC_TAG_ROLES=c;exports.VALID_HTML_TAGS=o;exports.configureElementOverrides=f;exports.createElementOverrideValidator=p;exports.getElementOverrideConfig=m;exports.processElementOverride=v;exports.shouldWarnOnOverride=d;
2
- //# sourceMappingURL=element-override.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-override.cjs","sources":["../../src/runtime/element-override.ts"],"sourcesContent":["/**\n * Element Override System - Tag Specification Enhancement\n * \n * Enables components to override their default HTML tags for semantic markup,\n * improving SEO and accessibility while preserving all styling and functionality.\n */\n\nimport { DevelopmentWarnings } from './development-warnings'\n\nexport interface ElementOverrideProps {\n element?: string\n}\n\nexport interface ValidationResult {\n valid: boolean\n warnings?: Warning[]\n severity?: 'error' | 'warning' | 'info'\n warning?: string\n semanticRole?: SemanticRoleInfo\n}\n\nexport interface Warning {\n message: string\n severity: 'error' | 'warning' | 'info'\n}\n\nexport interface SemanticRoleInfo {\n role: string\n applyARIA: boolean\n}\n\nexport interface ElementOverrideConfig {\n // Accessibility\n autoApplySemanticRoles: boolean\n \n // Development warnings\n warnOnOverrides: boolean\n warnOnSemanticIssues: boolean\n \n // Validation\n validateTags: boolean\n allowInvalidTags: boolean\n}\n\n// Valid HTML tag validation\nexport const VALID_HTML_TAGS = new Set([\n // Container tags\n 'div', 'section', 'article', 'aside', 'nav', 'main', 'header', 'footer',\n // Heading tags \n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n // Content tags\n 'p', 'span', 'strong', 'em', 'code', 'pre', 'blockquote', 'address',\n // List tags\n 'ul', 'ol', 'li', 'dl', 'dt', 'dd',\n // Interactive tags (with warnings)\n 'button', 'a', 'input', 'textarea', 'select', 'form', 'label',\n // Media tags\n 'img', 'video', 'audio', 'canvas', 'svg', 'picture', 'source',\n // Table tags\n 'table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td', 'caption', 'colgroup', 'col',\n // Form tags\n 'fieldset', 'legend', 'optgroup', 'option', 'datalist', 'output', 'progress', 'meter',\n // Interactive content\n 'details', 'summary', 'dialog',\n // Text semantics\n 'abbr', 'cite', 'dfn', 'kbd', 'mark', 'q', 's', 'samp', 'small', 'sub', 'sup', 'time', 'u', 'var',\n // Document sections\n 'body', 'head', 'title', 'base', 'link', 'meta', 'style', 'script', 'noscript',\n // Embedded content\n 'embed', 'iframe', 'object', 'param', 'track', 'map', 'area',\n // Interactive elements\n 'menu', 'menuitem'\n])\n\nexport const SEMANTIC_TAG_ROLES = new Map<string, SemanticRoleInfo>([\n ['nav', { role: 'navigation', applyARIA: true }],\n ['main', { role: 'main', applyARIA: true }],\n ['article', { role: 'article', applyARIA: true }],\n ['section', { role: 'region', applyARIA: true }],\n ['aside', { role: 'complementary', applyARIA: true }],\n ['header', { role: 'banner', applyARIA: false }], // Context dependent - may not always be page banner\n ['footer', { role: 'contentinfo', applyARIA: false }], // Context dependent - may not always be page footer\n ['form', { role: 'form', applyARIA: true }],\n ['search', { role: 'search', applyARIA: true }],\n ['dialog', { role: 'dialog', applyARIA: true }],\n ['button', { role: 'button', applyARIA: false }], // Usually implicit\n ['a', { role: 'link', applyARIA: false }], // Usually implicit\n])\n\n/**\n * Component Eligibility Matrix - Warning Levels\n * Based on design/Enh-TagSpecification.md Component Eligibility Matrix\n */\nexport const COMPONENT_ELIGIBILITY = new Map<string, { warningLevel: 'none' | 'info' | 'warning', idealTags?: string[], problematicTags?: string[] }>([\n // Layout Components - Ideal for semantic containers (Warning Level: None)\n ['HStack', { warningLevel: 'none', idealTags: ['nav', 'header', 'footer', 'section', 'article', 'aside', 'main', 'div'] }],\n ['VStack', { warningLevel: 'none', idealTags: ['main', 'section', 'article', 'aside', 'header', 'footer', 'div'] }],\n ['ZStack', { warningLevel: 'none', idealTags: ['article', 'aside', 'section', 'div'] }],\n \n // Content Components - Common for specific overrides (Warning Level: None for appropriate tags)\n ['Text', { warningLevel: 'none', idealTags: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'span', 'strong', 'em'] }],\n ['Image', { warningLevel: 'warning', problematicTags: ['figure', 'picture'] }], // May break functionality\n ['Spacer', { warningLevel: 'none' }],\n \n // Interactive Components - Use with warnings\n ['Button', { warningLevel: 'warning', problematicTags: ['div', 'span', 'a'] }], // May break accessibility\n ['Link', { warningLevel: 'warning', problematicTags: ['div', 'span', 'button'] }], // May break navigation\n])\n\n/**\n * Check if an element override should show a warning based on component eligibility matrix\n */\nexport function shouldWarnOnOverride(componentType: string, tag: string): boolean {\n const eligibility = COMPONENT_ELIGIBILITY.get(componentType)\n \n if (!eligibility) {\n // Unknown component - always warn for safety\n return true\n }\n\n // If component has no warning for any overrides\n if (eligibility.warningLevel === 'none') {\n return false\n }\n\n // If component warns for specific problematic tags\n if (eligibility.warningLevel === 'warning' && eligibility.problematicTags) {\n return eligibility.problematicTags.includes(tag)\n }\n\n // If component has ideal tags defined, only warn for non-ideal ones\n if (eligibility.idealTags && eligibility.idealTags.includes(tag)) {\n return false\n }\n\n // Default to warning for unknown combinations\n return true\n}\n\n/**\n * The applyARIA flag controls whether the framework automatically adds \n * the corresponding ARIA role attribute to elements with semantic tags.\n * \n * applyARIA: true - Always add the ARIA role (e.g., <nav> gets role=\"navigation\")\n * applyARIA: false - Don't automatically add ARIA role due to context sensitivity\n * \n * Examples:\n * - <nav> always represents navigation → applyARIA: true\n * - <header> could be page banner OR section header → applyARIA: false \n * - <footer> could be page footer OR article footer → applyARIA: false\n * \n * When applyARIA is false, developers should manually specify appropriate \n * ARIA roles using the .aria() modifier when semantic meaning is ambiguous.\n */\n\nexport class ElementTagValidator {\n static validate(tag: string, componentType: string): ValidationResult {\n if (!VALID_HTML_TAGS.has(tag)) {\n // Show development warning for invalid tags\n DevelopmentWarnings.errorInvalidTag(tag, componentType)\n \n return {\n valid: false,\n warning: `Invalid HTML tag '${tag}' specified for ${componentType}. Tag will be used as-is.`,\n severity: 'error'\n }\n }\n\n // Check for potentially problematic combinations\n const warnings = this.checkSemanticWarnings(tag, componentType)\n \n return {\n valid: true,\n warnings,\n semanticRole: SEMANTIC_TAG_ROLES.get(tag)\n }\n }\n\n private static checkSemanticWarnings(tag: string, componentType: string): Warning[] {\n const warnings: Warning[] = []\n\n // Warn about interactive tags on layout components\n if (['button', 'a', 'input', 'select', 'textarea'].includes(tag)) {\n if (['HStack', 'VStack', 'ZStack'].includes(componentType)) {\n const message = `Using interactive tag '${tag}' on layout component ${componentType} may cause accessibility issues.`\n warnings.push({ message, severity: 'warning' })\n DevelopmentWarnings.warnAccessibility(componentType, tag, 'Interactive tag on layout component may cause unexpected behavior')\n }\n }\n\n // Warn about structural violations\n if (tag === 'li' && !['VStack', 'HStack'].includes(componentType)) {\n const message = `<li> tags should typically be used within list structures.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Consider using within <ul> or <ol> structure', 'info')\n }\n\n // Warn about heading tags on layout components\n if (['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)) {\n if (['HStack', 'VStack', 'ZStack'].includes(componentType)) {\n const message = `Using heading tag '${tag}' on layout component ${componentType}. Consider using Text component instead.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Heading tags are better suited for Text components', 'info')\n }\n }\n\n // Warn about form tags on non-form components\n if (['form', 'fieldset', 'legend'].includes(tag)) {\n if (!['VStack', 'HStack', 'Form'].includes(componentType)) {\n const message = `Form tag '${tag}' used on ${componentType}. Ensure proper form semantics.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Form tags require proper semantic context', 'info')\n }\n }\n\n return warnings\n }\n}\n\n// Global configuration\nlet globalConfig: ElementOverrideConfig = {\n autoApplySemanticRoles: true,\n warnOnOverrides: process.env.NODE_ENV !== 'production',\n warnOnSemanticIssues: process.env.NODE_ENV !== 'production',\n validateTags: true,\n allowInvalidTags: true\n}\n\nexport function configureElementOverrides(config: Partial<ElementOverrideConfig>): void {\n globalConfig = { ...globalConfig, ...config }\n}\n\nexport function getElementOverrideConfig(): ElementOverrideConfig {\n return { ...globalConfig }\n}\n\n/**\n * Process element override for a component with validation and warnings\n */\nexport function processElementOverride(\n componentType: string,\n defaultTag: string,\n overrideTag?: string\n): { tag: string; validation: ValidationResult } {\n const effectiveTag = overrideTag || defaultTag\n const config = getElementOverrideConfig()\n\n // Always validate in development, even when validation is disabled\n let validation: ValidationResult = { valid: true }\n \n if (overrideTag) {\n // Show override warning if enabled and appropriate per component eligibility matrix\n if (config.warnOnOverrides && shouldWarnOnOverride(componentType, overrideTag)) {\n DevelopmentWarnings.warnElementOverride(componentType, defaultTag, overrideTag)\n }\n\n // Validate tag if enabled\n if (config.validateTags) {\n validation = ElementTagValidator.validate(overrideTag, componentType)\n \n // If validation fails and we don't allow invalid tags, use default\n if (!validation.valid && !config.allowInvalidTags) {\n DevelopmentWarnings.warnProblematicCombination(\n componentType, \n overrideTag, \n `Invalid tag rejected, using default '${defaultTag}' instead`, \n 'warning'\n )\n return { tag: defaultTag, validation }\n }\n }\n }\n\n return { tag: effectiveTag, validation }\n}\n\n/**\n * Create element override validation helper for components\n */\nexport function createElementOverrideValidator(componentType: string, defaultTag: string) {\n return (overrideTag?: string) => processElementOverride(componentType, defaultTag, overrideTag)\n}"],"names":["VALID_HTML_TAGS","SEMANTIC_TAG_ROLES","COMPONENT_ELIGIBILITY","shouldWarnOnOverride","componentType","tag","eligibility","ElementTagValidator","DevelopmentWarnings","warnings","message","globalConfig","configureElementOverrides","config","getElementOverrideConfig","processElementOverride","defaultTag","overrideTag","effectiveTag","validation","createElementOverrideValidator"],"mappings":"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"}
@@ -1,214 +0,0 @@
1
- import { DevelopmentWarnings as r } from "./development-warnings.js";
2
- const o = /* @__PURE__ */ new Set([
3
- // Container tags
4
- "div",
5
- "section",
6
- "article",
7
- "aside",
8
- "nav",
9
- "main",
10
- "header",
11
- "footer",
12
- // Heading tags
13
- "h1",
14
- "h2",
15
- "h3",
16
- "h4",
17
- "h5",
18
- "h6",
19
- // Content tags
20
- "p",
21
- "span",
22
- "strong",
23
- "em",
24
- "code",
25
- "pre",
26
- "blockquote",
27
- "address",
28
- // List tags
29
- "ul",
30
- "ol",
31
- "li",
32
- "dl",
33
- "dt",
34
- "dd",
35
- // Interactive tags (with warnings)
36
- "button",
37
- "a",
38
- "input",
39
- "textarea",
40
- "select",
41
- "form",
42
- "label",
43
- // Media tags
44
- "img",
45
- "video",
46
- "audio",
47
- "canvas",
48
- "svg",
49
- "picture",
50
- "source",
51
- // Table tags
52
- "table",
53
- "thead",
54
- "tbody",
55
- "tfoot",
56
- "tr",
57
- "th",
58
- "td",
59
- "caption",
60
- "colgroup",
61
- "col",
62
- // Form tags
63
- "fieldset",
64
- "legend",
65
- "optgroup",
66
- "option",
67
- "datalist",
68
- "output",
69
- "progress",
70
- "meter",
71
- // Interactive content
72
- "details",
73
- "summary",
74
- "dialog",
75
- // Text semantics
76
- "abbr",
77
- "cite",
78
- "dfn",
79
- "kbd",
80
- "mark",
81
- "q",
82
- "s",
83
- "samp",
84
- "small",
85
- "sub",
86
- "sup",
87
- "time",
88
- "u",
89
- "var",
90
- // Document sections
91
- "body",
92
- "head",
93
- "title",
94
- "base",
95
- "link",
96
- "meta",
97
- "style",
98
- "script",
99
- "noscript",
100
- // Embedded content
101
- "embed",
102
- "iframe",
103
- "object",
104
- "param",
105
- "track",
106
- "map",
107
- "area",
108
- // Interactive elements
109
- "menu",
110
- "menuitem"
111
- ]), c = /* @__PURE__ */ new Map([
112
- ["nav", { role: "navigation", applyARIA: !0 }],
113
- ["main", { role: "main", applyARIA: !0 }],
114
- ["article", { role: "article", applyARIA: !0 }],
115
- ["section", { role: "region", applyARIA: !0 }],
116
- ["aside", { role: "complementary", applyARIA: !0 }],
117
- ["header", { role: "banner", applyARIA: !1 }],
118
- // Context dependent - may not always be page banner
119
- ["footer", { role: "contentinfo", applyARIA: !1 }],
120
- // Context dependent - may not always be page footer
121
- ["form", { role: "form", applyARIA: !0 }],
122
- ["search", { role: "search", applyARIA: !0 }],
123
- ["dialog", { role: "dialog", applyARIA: !0 }],
124
- ["button", { role: "button", applyARIA: !1 }],
125
- // Usually implicit
126
- ["a", { role: "link", applyARIA: !1 }]
127
- // Usually implicit
128
- ]), u = /* @__PURE__ */ new Map([
129
- // Layout Components - Ideal for semantic containers (Warning Level: None)
130
- ["HStack", { warningLevel: "none", idealTags: ["nav", "header", "footer", "section", "article", "aside", "main", "div"] }],
131
- ["VStack", { warningLevel: "none", idealTags: ["main", "section", "article", "aside", "header", "footer", "div"] }],
132
- ["ZStack", { warningLevel: "none", idealTags: ["article", "aside", "section", "div"] }],
133
- // Content Components - Common for specific overrides (Warning Level: None for appropriate tags)
134
- ["Text", { warningLevel: "none", idealTags: ["h1", "h2", "h3", "h4", "h5", "h6", "p", "span", "strong", "em"] }],
135
- ["Image", { warningLevel: "warning", problematicTags: ["figure", "picture"] }],
136
- // May break functionality
137
- ["Spacer", { warningLevel: "none" }],
138
- // Interactive Components - Use with warnings
139
- ["Button", { warningLevel: "warning", problematicTags: ["div", "span", "a"] }],
140
- // May break accessibility
141
- ["Link", { warningLevel: "warning", problematicTags: ["div", "span", "button"] }]
142
- // May break navigation
143
- ]);
144
- function d(i, a) {
145
- const e = u.get(i);
146
- return e ? e.warningLevel === "none" ? !1 : e.warningLevel === "warning" && e.problematicTags ? e.problematicTags.includes(a) : !(e.idealTags && e.idealTags.includes(a)) : !0;
147
- }
148
- class g {
149
- static validate(a, e) {
150
- return o.has(a) ? {
151
- valid: !0,
152
- warnings: this.checkSemanticWarnings(a, e),
153
- semanticRole: c.get(a)
154
- } : (r.errorInvalidTag(a, e), {
155
- valid: !1,
156
- warning: `Invalid HTML tag '${a}' specified for ${e}. Tag will be used as-is.`,
157
- severity: "error"
158
- });
159
- }
160
- static checkSemanticWarnings(a, e) {
161
- const t = [];
162
- if (["button", "a", "input", "select", "textarea"].includes(a) && ["HStack", "VStack", "ZStack"].includes(e)) {
163
- const n = `Using interactive tag '${a}' on layout component ${e} may cause accessibility issues.`;
164
- t.push({ message: n, severity: "warning" }), r.warnAccessibility(e, a, "Interactive tag on layout component may cause unexpected behavior");
165
- }
166
- if (a === "li" && !["VStack", "HStack"].includes(e) && (t.push({ message: "<li> tags should typically be used within list structures.", severity: "info" }), r.warnProblematicCombination(e, a, "Consider using within <ul> or <ol> structure", "info")), ["h1", "h2", "h3", "h4", "h5", "h6"].includes(a) && ["HStack", "VStack", "ZStack"].includes(e)) {
167
- const n = `Using heading tag '${a}' on layout component ${e}. Consider using Text component instead.`;
168
- t.push({ message: n, severity: "info" }), r.warnProblematicCombination(e, a, "Heading tags are better suited for Text components", "info");
169
- }
170
- if (["form", "fieldset", "legend"].includes(a) && !["VStack", "HStack", "Form"].includes(e)) {
171
- const n = `Form tag '${a}' used on ${e}. Ensure proper form semantics.`;
172
- t.push({ message: n, severity: "info" }), r.warnProblematicCombination(e, a, "Form tags require proper semantic context", "info");
173
- }
174
- return t;
175
- }
176
- }
177
- let l = {
178
- autoApplySemanticRoles: !0,
179
- warnOnOverrides: process.env.NODE_ENV !== "production",
180
- warnOnSemanticIssues: process.env.NODE_ENV !== "production",
181
- validateTags: !0,
182
- allowInvalidTags: !0
183
- };
184
- function v(i) {
185
- l = { ...l, ...i };
186
- }
187
- function m() {
188
- return { ...l };
189
- }
190
- function f(i, a, e) {
191
- const t = e || a, n = m();
192
- let s = { valid: !0 };
193
- return e && (n.warnOnOverrides && d(i, e) && r.warnElementOverride(i, a, e), n.validateTags && (s = g.validate(e, i), !s.valid && !n.allowInvalidTags)) ? (r.warnProblematicCombination(
194
- i,
195
- e,
196
- `Invalid tag rejected, using default '${a}' instead`,
197
- "warning"
198
- ), { tag: a, validation: s }) : { tag: t, validation: s };
199
- }
200
- function h(i, a) {
201
- return (e) => f(i, a, e);
202
- }
203
- export {
204
- u as COMPONENT_ELIGIBILITY,
205
- g as ElementTagValidator,
206
- c as SEMANTIC_TAG_ROLES,
207
- o as VALID_HTML_TAGS,
208
- v as configureElementOverrides,
209
- h as createElementOverrideValidator,
210
- m as getElementOverrideConfig,
211
- f as processElementOverride,
212
- d as shouldWarnOnOverride
213
- };
214
- //# sourceMappingURL=element-override.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-override.js","sources":["../../src/runtime/element-override.ts"],"sourcesContent":["/**\n * Element Override System - Tag Specification Enhancement\n * \n * Enables components to override their default HTML tags for semantic markup,\n * improving SEO and accessibility while preserving all styling and functionality.\n */\n\nimport { DevelopmentWarnings } from './development-warnings'\n\nexport interface ElementOverrideProps {\n element?: string\n}\n\nexport interface ValidationResult {\n valid: boolean\n warnings?: Warning[]\n severity?: 'error' | 'warning' | 'info'\n warning?: string\n semanticRole?: SemanticRoleInfo\n}\n\nexport interface Warning {\n message: string\n severity: 'error' | 'warning' | 'info'\n}\n\nexport interface SemanticRoleInfo {\n role: string\n applyARIA: boolean\n}\n\nexport interface ElementOverrideConfig {\n // Accessibility\n autoApplySemanticRoles: boolean\n \n // Development warnings\n warnOnOverrides: boolean\n warnOnSemanticIssues: boolean\n \n // Validation\n validateTags: boolean\n allowInvalidTags: boolean\n}\n\n// Valid HTML tag validation\nexport const VALID_HTML_TAGS = new Set([\n // Container tags\n 'div', 'section', 'article', 'aside', 'nav', 'main', 'header', 'footer',\n // Heading tags \n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n // Content tags\n 'p', 'span', 'strong', 'em', 'code', 'pre', 'blockquote', 'address',\n // List tags\n 'ul', 'ol', 'li', 'dl', 'dt', 'dd',\n // Interactive tags (with warnings)\n 'button', 'a', 'input', 'textarea', 'select', 'form', 'label',\n // Media tags\n 'img', 'video', 'audio', 'canvas', 'svg', 'picture', 'source',\n // Table tags\n 'table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td', 'caption', 'colgroup', 'col',\n // Form tags\n 'fieldset', 'legend', 'optgroup', 'option', 'datalist', 'output', 'progress', 'meter',\n // Interactive content\n 'details', 'summary', 'dialog',\n // Text semantics\n 'abbr', 'cite', 'dfn', 'kbd', 'mark', 'q', 's', 'samp', 'small', 'sub', 'sup', 'time', 'u', 'var',\n // Document sections\n 'body', 'head', 'title', 'base', 'link', 'meta', 'style', 'script', 'noscript',\n // Embedded content\n 'embed', 'iframe', 'object', 'param', 'track', 'map', 'area',\n // Interactive elements\n 'menu', 'menuitem'\n])\n\nexport const SEMANTIC_TAG_ROLES = new Map<string, SemanticRoleInfo>([\n ['nav', { role: 'navigation', applyARIA: true }],\n ['main', { role: 'main', applyARIA: true }],\n ['article', { role: 'article', applyARIA: true }],\n ['section', { role: 'region', applyARIA: true }],\n ['aside', { role: 'complementary', applyARIA: true }],\n ['header', { role: 'banner', applyARIA: false }], // Context dependent - may not always be page banner\n ['footer', { role: 'contentinfo', applyARIA: false }], // Context dependent - may not always be page footer\n ['form', { role: 'form', applyARIA: true }],\n ['search', { role: 'search', applyARIA: true }],\n ['dialog', { role: 'dialog', applyARIA: true }],\n ['button', { role: 'button', applyARIA: false }], // Usually implicit\n ['a', { role: 'link', applyARIA: false }], // Usually implicit\n])\n\n/**\n * Component Eligibility Matrix - Warning Levels\n * Based on design/Enh-TagSpecification.md Component Eligibility Matrix\n */\nexport const COMPONENT_ELIGIBILITY = new Map<string, { warningLevel: 'none' | 'info' | 'warning', idealTags?: string[], problematicTags?: string[] }>([\n // Layout Components - Ideal for semantic containers (Warning Level: None)\n ['HStack', { warningLevel: 'none', idealTags: ['nav', 'header', 'footer', 'section', 'article', 'aside', 'main', 'div'] }],\n ['VStack', { warningLevel: 'none', idealTags: ['main', 'section', 'article', 'aside', 'header', 'footer', 'div'] }],\n ['ZStack', { warningLevel: 'none', idealTags: ['article', 'aside', 'section', 'div'] }],\n \n // Content Components - Common for specific overrides (Warning Level: None for appropriate tags)\n ['Text', { warningLevel: 'none', idealTags: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'span', 'strong', 'em'] }],\n ['Image', { warningLevel: 'warning', problematicTags: ['figure', 'picture'] }], // May break functionality\n ['Spacer', { warningLevel: 'none' }],\n \n // Interactive Components - Use with warnings\n ['Button', { warningLevel: 'warning', problematicTags: ['div', 'span', 'a'] }], // May break accessibility\n ['Link', { warningLevel: 'warning', problematicTags: ['div', 'span', 'button'] }], // May break navigation\n])\n\n/**\n * Check if an element override should show a warning based on component eligibility matrix\n */\nexport function shouldWarnOnOverride(componentType: string, tag: string): boolean {\n const eligibility = COMPONENT_ELIGIBILITY.get(componentType)\n \n if (!eligibility) {\n // Unknown component - always warn for safety\n return true\n }\n\n // If component has no warning for any overrides\n if (eligibility.warningLevel === 'none') {\n return false\n }\n\n // If component warns for specific problematic tags\n if (eligibility.warningLevel === 'warning' && eligibility.problematicTags) {\n return eligibility.problematicTags.includes(tag)\n }\n\n // If component has ideal tags defined, only warn for non-ideal ones\n if (eligibility.idealTags && eligibility.idealTags.includes(tag)) {\n return false\n }\n\n // Default to warning for unknown combinations\n return true\n}\n\n/**\n * The applyARIA flag controls whether the framework automatically adds \n * the corresponding ARIA role attribute to elements with semantic tags.\n * \n * applyARIA: true - Always add the ARIA role (e.g., <nav> gets role=\"navigation\")\n * applyARIA: false - Don't automatically add ARIA role due to context sensitivity\n * \n * Examples:\n * - <nav> always represents navigation → applyARIA: true\n * - <header> could be page banner OR section header → applyARIA: false \n * - <footer> could be page footer OR article footer → applyARIA: false\n * \n * When applyARIA is false, developers should manually specify appropriate \n * ARIA roles using the .aria() modifier when semantic meaning is ambiguous.\n */\n\nexport class ElementTagValidator {\n static validate(tag: string, componentType: string): ValidationResult {\n if (!VALID_HTML_TAGS.has(tag)) {\n // Show development warning for invalid tags\n DevelopmentWarnings.errorInvalidTag(tag, componentType)\n \n return {\n valid: false,\n warning: `Invalid HTML tag '${tag}' specified for ${componentType}. Tag will be used as-is.`,\n severity: 'error'\n }\n }\n\n // Check for potentially problematic combinations\n const warnings = this.checkSemanticWarnings(tag, componentType)\n \n return {\n valid: true,\n warnings,\n semanticRole: SEMANTIC_TAG_ROLES.get(tag)\n }\n }\n\n private static checkSemanticWarnings(tag: string, componentType: string): Warning[] {\n const warnings: Warning[] = []\n\n // Warn about interactive tags on layout components\n if (['button', 'a', 'input', 'select', 'textarea'].includes(tag)) {\n if (['HStack', 'VStack', 'ZStack'].includes(componentType)) {\n const message = `Using interactive tag '${tag}' on layout component ${componentType} may cause accessibility issues.`\n warnings.push({ message, severity: 'warning' })\n DevelopmentWarnings.warnAccessibility(componentType, tag, 'Interactive tag on layout component may cause unexpected behavior')\n }\n }\n\n // Warn about structural violations\n if (tag === 'li' && !['VStack', 'HStack'].includes(componentType)) {\n const message = `<li> tags should typically be used within list structures.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Consider using within <ul> or <ol> structure', 'info')\n }\n\n // Warn about heading tags on layout components\n if (['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)) {\n if (['HStack', 'VStack', 'ZStack'].includes(componentType)) {\n const message = `Using heading tag '${tag}' on layout component ${componentType}. Consider using Text component instead.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Heading tags are better suited for Text components', 'info')\n }\n }\n\n // Warn about form tags on non-form components\n if (['form', 'fieldset', 'legend'].includes(tag)) {\n if (!['VStack', 'HStack', 'Form'].includes(componentType)) {\n const message = `Form tag '${tag}' used on ${componentType}. Ensure proper form semantics.`\n warnings.push({ message, severity: 'info' })\n DevelopmentWarnings.warnProblematicCombination(componentType, tag, 'Form tags require proper semantic context', 'info')\n }\n }\n\n return warnings\n }\n}\n\n// Global configuration\nlet globalConfig: ElementOverrideConfig = {\n autoApplySemanticRoles: true,\n warnOnOverrides: process.env.NODE_ENV !== 'production',\n warnOnSemanticIssues: process.env.NODE_ENV !== 'production',\n validateTags: true,\n allowInvalidTags: true\n}\n\nexport function configureElementOverrides(config: Partial<ElementOverrideConfig>): void {\n globalConfig = { ...globalConfig, ...config }\n}\n\nexport function getElementOverrideConfig(): ElementOverrideConfig {\n return { ...globalConfig }\n}\n\n/**\n * Process element override for a component with validation and warnings\n */\nexport function processElementOverride(\n componentType: string,\n defaultTag: string,\n overrideTag?: string\n): { tag: string; validation: ValidationResult } {\n const effectiveTag = overrideTag || defaultTag\n const config = getElementOverrideConfig()\n\n // Always validate in development, even when validation is disabled\n let validation: ValidationResult = { valid: true }\n \n if (overrideTag) {\n // Show override warning if enabled and appropriate per component eligibility matrix\n if (config.warnOnOverrides && shouldWarnOnOverride(componentType, overrideTag)) {\n DevelopmentWarnings.warnElementOverride(componentType, defaultTag, overrideTag)\n }\n\n // Validate tag if enabled\n if (config.validateTags) {\n validation = ElementTagValidator.validate(overrideTag, componentType)\n \n // If validation fails and we don't allow invalid tags, use default\n if (!validation.valid && !config.allowInvalidTags) {\n DevelopmentWarnings.warnProblematicCombination(\n componentType, \n overrideTag, \n `Invalid tag rejected, using default '${defaultTag}' instead`, \n 'warning'\n )\n return { tag: defaultTag, validation }\n }\n }\n }\n\n return { tag: effectiveTag, validation }\n}\n\n/**\n * Create element override validation helper for components\n */\nexport function createElementOverrideValidator(componentType: string, defaultTag: string) {\n return (overrideTag?: string) => processElementOverride(componentType, defaultTag, overrideTag)\n}"],"names":["VALID_HTML_TAGS","SEMANTIC_TAG_ROLES","COMPONENT_ELIGIBILITY","shouldWarnOnOverride","componentType","tag","eligibility","ElementTagValidator","DevelopmentWarnings","warnings","message","globalConfig","configureElementOverrides","config","getElementOverrideConfig","processElementOverride","defaultTag","overrideTag","effectiveTag","validation","createElementOverrideValidator"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../reactive/cleanup.cjs");require("../reactive/unified-scheduler.cjs");const m=require("../reactive/effect.cjs"),d=require("../reactive/signal.cjs");require("../reactive/scheduler.cjs");require("../reactive/theme.cjs");const h=require("./dev-tools.cjs"),p=require("./performance.cjs");var E=Object.defineProperty,b=(o,r,e)=>r in o?E(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e,a=(o,r,e)=>b(o,typeof r!="symbol"?r+"":r,e);class u{constructor(r,e,t){a(this,"state",{hasError:!1,error:null,errorInfo:{retryAttempts:0}}),a(this,"props"),a(this,"children"),a(this,"errorManager"),a(this,"stateSignal"),a(this,"setState"),this.props=r,this.children=e,this.errorManager=t;const[s,n]=d.createSignal(this.state);this.stateSignal=s,this.setState=n,(r.resetOnPropsChange||r.resetKeys)&&this.setupPropsWatcher()}componentDidCatch(r,e){const t=this.errorManager.createTachUIError(r,{category:"component_error",severity:"high",componentId:this.props.id,componentName:"ErrorBoundary",phase:"render",context:e});this.handleError(t,e)}handleError(r,e){const t={hasError:!0,error:r,errorInfo:{componentStack:e?.componentStack,errorBoundary:this.props.id||"ErrorBoundary",retryAttempts:this.state.errorInfo.retryAttempts}};if(this.state=t,this.setState(t),this.props.onError&&this.props.onError(r,t.errorInfo),this.errorManager.reportError(r),this.attemptRecovery(r),h.globalDevTools.isEnabled()){const s=new Error(r.message);s.stack=r.stack,h.globalDevTools.addError(r.componentId||"unknown",s)}}attemptRecovery(r){if(this.props.recovery){for(const e of this.props.recovery)if(!(e.condition&&!e.condition(r))){switch(e.strategy){case"retry":this.retryWithConfig(e);break;case"fallback":break;case"reload":this.reloadComponent();break;case"ignore":this.resetErrorBoundary();break;case"escalate":if(!this.props.isolate)throw r.cause||new Error(r.message);break}e.onRecovery&&e.onRecovery(r);break}}}retryWithConfig(r){const e=r.maxRetries||3,t=r.retryDelay||1e3;if(this.state.errorInfo.retryAttempts>=e){console.warn(`Max retry attempts (${e}) reached for error boundary`);return}setTimeout(()=>{this.retry()},t)}retry(){this.state.errorInfo.retryAttempts++,this.resetErrorBoundary()}resetErrorBoundary(){this.state={hasError:!1,error:null,errorInfo:{retryAttempts:this.state.errorInfo.retryAttempts}},this.setState(this.state)}reloadComponent(){this.resetErrorBoundary()}setupPropsWatcher(){this.props.resetKeys&&m.createEffect(()=>{const r=this.props;this.state.hasError&&this.shouldResetOnProps(r)&&this.resetErrorBoundary()})}shouldResetOnProps(r){return this.props.resetKeys?this.props.resetKeys.some(e=>e in r&&r[e]!==void 0):!1}render(){if(this.state.hasError&&this.state.error){if(this.props.fallback)if(typeof this.props.fallback=="function"){const r=this.props.fallback(this.state.error,()=>this.retry()),e=r.render?r.render():[];return Array.isArray(e)?e:[e]}else{const r=this.props.fallback.render?this.props.fallback.render():[];return Array.isArray(r)?r:[r]}return this.renderDefaultErrorUI()}try{return this.children.flatMap(r=>{const e=r.render();return Array.isArray(e)?e:[e]})}catch(r){return this.componentDidCatch(r,{componentStack:"children rendering"}),this.renderDefaultErrorUI()}}renderDefaultErrorUI(){const r=this.state.error;return[{type:"element",tag:"div",props:{className:"tachui-error-boundary",style:{padding:"20px",border:"2px solid #ff6b6b",borderRadius:"8px",backgroundColor:"#fff5f5",color:"#c92a2a",fontFamily:"monospace"}},children:[{type:"element",tag:"h3",props:{style:{margin:"0 0 10px 0"}},children:[{type:"text",text:"🚨 Something went wrong"}]},{type:"element",tag:"p",props:{style:{margin:"0 0 15px 0"}},children:[{type:"text",text:r.message}]},{type:"element",tag:"button",props:{onClick:()=>this.retry(),style:{padding:"8px 16px",backgroundColor:"#4c6ef5",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"}},children:[{type:"text",text:`Retry (${this.state.errorInfo.retryAttempts} attempts)`}]}]}]}getState(){return this.state}getStateSignal(){return this.stateSignal}}const f=class c{constructor(){a(this,"config",{enabled:!0,captureConsoleErrors:!0,captureUnhandledPromises:!0,captureReactiveErrors:!0,captureComponentErrors:!0,maxErrorsPerSession:100,maxErrorAge:1800*1e3,reportingThrottle:1e3,enableStackTrace:!0,enableSourceMap:!1,development:!1}),a(this,"errors",[]),a(this,"reporters",[]),a(this,"handlers",[]),a(this,"throttleMap",new Map),a(this,"errorsSignal"),a(this,"setErrors");const[r,e]=d.createSignal([]);this.errorsSignal=r,this.setErrors=e,this.setupGlobalErrorHandlers()}static getInstance(){return c.instance||(c.instance=new c),c.instance}configure(r){this.config={...this.config,...r},r.development!==void 0&&h.globalDevTools.configure({enableErrors:r.development})}setupGlobalErrorHandlers(){typeof window>"u"||(window.addEventListener("error",r=>{if(!this.config.captureConsoleErrors)return;const e=this.createTachUIError(r.error||new Error(r.message),{category:"unknown_error",severity:"medium",context:{filename:r.filename,lineno:r.lineno,colno:r.colno}});this.reportError(e)}),window.addEventListener("unhandledrejection",r=>{if(!this.config.captureUnhandledPromises)return;const e=this.createTachUIError(r.reason instanceof Error?r.reason:new Error(String(r.reason)),{category:"network_error",severity:"medium",context:{type:"unhandled_promise_rejection"}});this.reportError(e)}))}createTachUIError(r,e={}){return{id:`error_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,message:r.message,stack:this.config.enableStackTrace?r.stack:void 0,cause:r,timestamp:Date.now(),category:e.category||"unknown_error",severity:e.severity||"medium",componentId:e.componentId,componentName:e.componentName,phase:e.phase,context:e.context,userAgent:typeof window<"u"?window.navigator.userAgent:void 0,url:typeof window<"u"?window.location.href:void 0,retryCount:0,recovered:!1}}reportError(r){if(!this.config.enabled)return;const e=`${r.category}_${r.message}`,t=this.throttleMap.get(e)||0,s=Date.now();s-t<this.config.reportingThrottle||(this.throttleMap.set(e,s),this.errors.push(r),this.errors.length>this.config.maxErrorsPerSession&&this.errors.shift(),this.cleanOldErrors(),this.setErrors([...this.errors]),p.globalPerformanceMonitor.isEnabled()&&p.globalPerformanceMonitor.recordMetric({name:"error_reported",value:1,unit:"count",timestamp:r.timestamp,category:"component",componentId:r.componentId}),this.reporters.forEach(n=>{try{n.report(r)}catch(l){console.error("Error reporter failed:",l)}}),this.handlers.forEach(n=>{try{n(r)}catch(l){console.error("Error handler failed:",l)}}),this.config.development&&(console.group(`🚨 TachUI Error [${r.category}]`),console.error(r.message),r.stack&&console.error(r.stack),r.context&&console.log("Context:",r.context),console.groupEnd()))}cleanOldErrors(){const r=Date.now()-this.config.maxErrorAge;this.errors=this.errors.filter(e=>e.timestamp>r)}addReporter(r){return this.reporters.push(r),()=>{const e=this.reporters.indexOf(r);e!==-1&&this.reporters.splice(e,1)}}addHandler(r){return this.handlers.push(r),()=>{const e=this.handlers.indexOf(r);e!==-1&&this.handlers.splice(e,1)}}getErrors(){return[...this.errors]}getErrorsSignal(){return this.errorsSignal}getErrorsByCategory(r){return this.errors.filter(e=>e.category===r)}getErrorsBySeverity(r){return this.errors.filter(e=>e.severity===r)}getErrorsByComponent(r){return this.errors.filter(e=>e.componentId===r)}markErrorRecovered(r){const e=this.errors.find(t=>t.id===r);e&&(e.recovered=!0,this.setErrors([...this.errors]))}clear(){this.errors.length=0,this.throttleMap.clear(),this.setErrors([])}getStatistics(){const r={},e={};for(const n of this.errors)r[n.category]=(r[n.category]||0)+1,e[n.severity]=(e[n.severity]||0)+1;const t=this.errors.filter(n=>n.recovered).length,s=this.errors.filter(n=>Date.now()-n.timestamp<300*1e3).length;return{totalErrors:this.errors.length,errorsByCategory:r,errorsBySeverity:e,recoveredErrors:t,recentErrors:s}}};a(f,"instance");let g=f;const i=g.getInstance();function y(o,r){return new u(o,r,i)}const w={console:{report(o){console.error(`[${o.category}] ${o.message}`,o)}},localStorage:{report(o){try{const r=JSON.parse(localStorage.getItem("tachui_errors")||"[]");r.push(o),r.length>50&&r.splice(0,r.length-50),localStorage.setItem("tachui_errors",JSON.stringify(r))}catch(r){console.error("Failed to store error in localStorage:",r)}}},createRemoteReporter(o,r){return{async report(e){try{const t={"Content-Type":"application/json"};r&&(t.Authorization=`Bearer ${r}`),await fetch(o,{method:"POST",headers:t,body:JSON.stringify(e)})}catch(t){console.error("Failed to report error to remote endpoint:",t)}}}}},S={withErrorHandling(o,r={}){return((...e)=>{try{return o(...e)}catch(t){const s=i.createTachUIError(t,{category:r.category||"unknown_error"});if(i.reportError(s),r.onError&&r.onError(s),r.fallback!==void 0)return r.fallback;throw t}})},withAsyncErrorHandling(o,r={}){return(async(...e)=>{try{return await o(...e)}catch(t){const s=i.createTachUIError(t,{category:r.category||"network_error"});if(i.reportError(s),r.onError&&r.onError(s),r.fallback!==void 0)return r.fallback;throw t}})},createSimpleErrorBoundary(o="Something went wrong"){return r=>y({fallback:(e,t)=>({type:"component",id:"error-fallback",props:{},render:()=>[{type:"element",tag:"div",props:{className:"simple-error-boundary"},children:[{type:"text",text:o}]}]}),recovery:[{strategy:"retry",maxRetries:3,retryDelay:1e3}]},r)}};exports.ErrorBoundary=u;exports.ErrorManager=g;exports.createErrorBoundary=y;exports.errorReporters=w;exports.errorUtils=S;exports.globalErrorManager=i;
2
- //# sourceMappingURL=error-boundary.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-boundary.cjs","sources":["../../src/runtime/error-boundary.ts"],"sourcesContent":["/**\n * Error Boundary and Error Handling System (Phase 3.2.3)\n *\n * Comprehensive error handling system for TachUI applications.\n * Provides error boundaries, recovery mechanisms, and error reporting.\n */\n\nimport { createEffect, createSignal } from '../reactive'\nimport { globalDevTools } from './dev-tools'\nimport { globalPerformanceMonitor } from './performance'\nimport type { ComponentInstance, ComponentProps, DOMNode } from './types'\n\n/**\n * Error severity levels\n */\nexport type ErrorSeverity = 'low' | 'medium' | 'high' | 'critical'\n\n/**\n * Error categories for classification\n */\nexport type ErrorCategory =\n | 'component_error' // Component rendering/lifecycle errors\n | 'reactive_error' // Signal/computed/effect errors\n | 'render_error' // DOM rendering errors\n | 'lifecycle_error' // Component lifecycle errors\n | 'network_error' // Network/async operation errors\n | 'validation_error' // Props/data validation errors\n | 'unknown_error' // Uncategorized errors\n\n/**\n * Comprehensive error information\n */\nexport interface TachUIError {\n id: string\n message: string\n stack?: string\n cause?: Error\n timestamp: number\n category: ErrorCategory\n severity: ErrorSeverity\n componentId?: string\n componentName?: string\n phase?: string\n context?: Record<string, any>\n userAgent?: string\n url?: string\n retryCount: number\n recovered: boolean\n}\n\n/**\n * Error boundary state\n */\nexport interface ErrorBoundaryState {\n hasError: boolean\n error: TachUIError | null\n errorInfo: {\n componentStack?: string\n errorBoundary?: string\n retryAttempts: number\n }\n}\n\n/**\n * Error recovery strategies\n */\nexport type ErrorRecoveryStrategy =\n | 'retry' // Retry the failed operation\n | 'fallback' // Show fallback content\n | 'reload' // Reload the component\n | 'redirect' // Navigate away\n | 'ignore' // Ignore the error\n | 'escalate' // Pass error to parent boundary\n\n/**\n * Error recovery configuration\n */\nexport interface ErrorRecoveryConfig {\n strategy: ErrorRecoveryStrategy\n maxRetries?: number\n retryDelay?: number\n fallbackComponent?: ComponentInstance\n onRecovery?: (error: TachUIError) => void\n condition?: (error: TachUIError) => boolean\n}\n\n/**\n * Error boundary props\n */\nexport interface ErrorBoundaryProps extends ComponentProps {\n fallback?: ComponentInstance | ((error: TachUIError, retry: () => void) => ComponentInstance)\n onError?: (error: TachUIError, errorInfo: ErrorBoundaryState['errorInfo']) => void\n recovery?: ErrorRecoveryConfig[]\n isolate?: boolean // Prevent error propagation to parent boundaries\n resetOnPropsChange?: boolean\n resetKeys?: string[] // Props that trigger error boundary reset\n}\n\n/**\n * Error reporter interface\n */\nexport interface ErrorReporter {\n report(error: TachUIError): void | Promise<void>\n}\n\n/**\n * Error handler function type\n */\nexport type ErrorHandler = (error: TachUIError) => void | Promise<void>\n\n/**\n * Global error handling configuration\n */\nexport interface ErrorHandlingConfig {\n enabled: boolean\n captureConsoleErrors: boolean\n captureUnhandledPromises: boolean\n captureReactiveErrors: boolean\n captureComponentErrors: boolean\n maxErrorsPerSession: number\n maxErrorAge: number // milliseconds\n reportingThrottle: number // milliseconds\n enableStackTrace: boolean\n enableSourceMap: boolean\n development: boolean\n}\n\n/**\n * Error boundary component implementation\n */\nexport class ErrorBoundary {\n private state: ErrorBoundaryState = {\n hasError: false,\n error: null,\n errorInfo: {\n retryAttempts: 0,\n },\n }\n\n private props: ErrorBoundaryProps\n private children: ComponentInstance[]\n private errorManager: ErrorManager\n\n // Reactive state\n private stateSignal: () => ErrorBoundaryState\n private setState: (value: ErrorBoundaryState) => void\n\n constructor(\n props: ErrorBoundaryProps,\n children: ComponentInstance[],\n errorManager: ErrorManager\n ) {\n this.props = props\n this.children = children\n this.errorManager = errorManager\n\n // Initialize reactive state\n const [stateSignal, setState] = createSignal<ErrorBoundaryState>(this.state)\n this.stateSignal = stateSignal\n this.setState = setState\n\n // Reset error boundary when specific props change\n if (props.resetOnPropsChange || props.resetKeys) {\n this.setupPropsWatcher()\n }\n }\n\n /**\n * Catch and handle errors in child components\n */\n componentDidCatch(error: Error, errorInfo: any): void {\n const tachUIError = this.errorManager.createTachUIError(error, {\n category: 'component_error',\n severity: 'high',\n componentId: this.props.id,\n componentName: 'ErrorBoundary',\n phase: 'render',\n context: errorInfo,\n })\n\n this.handleError(tachUIError, errorInfo)\n }\n\n /**\n * Handle error and determine recovery strategy\n */\n private handleError(error: TachUIError, errorInfo: any): void {\n const newState: ErrorBoundaryState = {\n hasError: true,\n error,\n errorInfo: {\n componentStack: errorInfo?.componentStack,\n errorBoundary: this.props.id || 'ErrorBoundary',\n retryAttempts: this.state.errorInfo.retryAttempts,\n },\n }\n\n this.state = newState\n this.setState(newState)\n\n // Report error\n if (this.props.onError) {\n this.props.onError(error, newState.errorInfo)\n }\n\n // Register with error manager\n this.errorManager.reportError(error)\n\n // Attempt recovery\n this.attemptRecovery(error)\n\n // Add to dev tools if enabled\n if (globalDevTools.isEnabled()) {\n const errorObj = new Error(error.message)\n errorObj.stack = error.stack\n globalDevTools.addError(error.componentId || 'unknown', errorObj)\n }\n }\n\n /**\n * Attempt error recovery based on configured strategies\n */\n private attemptRecovery(error: TachUIError): void {\n if (!this.props.recovery) return\n\n for (const config of this.props.recovery) {\n if (config.condition && !config.condition(error)) continue\n\n switch (config.strategy) {\n case 'retry':\n this.retryWithConfig(config)\n break\n case 'fallback':\n // Fallback is handled in render method\n break\n case 'reload':\n this.reloadComponent()\n break\n case 'ignore':\n this.resetErrorBoundary()\n break\n case 'escalate':\n if (!this.props.isolate) {\n throw error.cause || new Error(error.message)\n }\n break\n }\n\n if (config.onRecovery) {\n config.onRecovery(error)\n }\n\n break // Use first matching strategy\n }\n }\n\n /**\n * Retry failed operation with configuration\n */\n private retryWithConfig(config: ErrorRecoveryConfig): void {\n const maxRetries = config.maxRetries || 3\n const retryDelay = config.retryDelay || 1000\n\n if (this.state.errorInfo.retryAttempts >= maxRetries) {\n console.warn(`Max retry attempts (${maxRetries}) reached for error boundary`)\n return\n }\n\n setTimeout(() => {\n this.retry()\n }, retryDelay)\n }\n\n /**\n * Retry the failed operation\n */\n retry(): void {\n this.state.errorInfo.retryAttempts++\n this.resetErrorBoundary()\n }\n\n /**\n * Reset error boundary to normal state\n */\n resetErrorBoundary(): void {\n this.state = {\n hasError: false,\n error: null,\n errorInfo: {\n retryAttempts: this.state.errorInfo.retryAttempts,\n },\n }\n this.setState(this.state)\n }\n\n /**\n * Reload the component\n */\n private reloadComponent(): void {\n this.resetErrorBoundary()\n // Force re-render of children\n // This would need integration with the component system\n }\n\n /**\n * Setup props watcher for error boundary reset\n */\n private setupPropsWatcher(): void {\n if (this.props.resetKeys) {\n // Watch specific prop keys\n createEffect(() => {\n const currentProps = this.props\n if (this.state.hasError && this.shouldResetOnProps(currentProps)) {\n this.resetErrorBoundary()\n }\n })\n }\n }\n\n /**\n * Check if error boundary should reset based on props\n */\n private shouldResetOnProps(props: ErrorBoundaryProps): boolean {\n if (!this.props.resetKeys) return false\n\n // This is simplified - in real implementation would track previous props\n return this.props.resetKeys.some(\n (key) => key in props && props[key as keyof ErrorBoundaryProps] !== undefined\n )\n }\n\n /**\n * Render error boundary content\n */\n render(): DOMNode[] {\n if (this.state.hasError && this.state.error) {\n // Render fallback UI\n if (this.props.fallback) {\n if (typeof this.props.fallback === 'function') {\n const fallbackInstance = this.props.fallback(this.state.error, () => this.retry())\n const result = fallbackInstance.render ? fallbackInstance.render() : []\n return Array.isArray(result) ? result : [result]\n } else {\n const result = this.props.fallback.render ? this.props.fallback.render() : []\n return Array.isArray(result) ? result : [result]\n }\n }\n\n // Default error UI\n return this.renderDefaultErrorUI()\n }\n\n // Render children normally\n try {\n return this.children.flatMap((child) => {\n const result = child.render()\n return Array.isArray(result) ? result : [result]\n })\n } catch (error) {\n this.componentDidCatch(error as Error, { componentStack: 'children rendering' })\n return this.renderDefaultErrorUI()\n }\n }\n\n /**\n * Render default error UI\n */\n private renderDefaultErrorUI(): DOMNode[] {\n const error = this.state.error!\n\n return [\n {\n type: 'element',\n tag: 'div',\n props: {\n className: 'tachui-error-boundary',\n style: {\n padding: '20px',\n border: '2px solid #ff6b6b',\n borderRadius: '8px',\n backgroundColor: '#fff5f5',\n color: '#c92a2a',\n fontFamily: 'monospace',\n },\n },\n children: [\n {\n type: 'element',\n tag: 'h3',\n props: { style: { margin: '0 0 10px 0' } },\n children: [\n {\n type: 'text',\n text: '🚨 Something went wrong',\n },\n ],\n },\n {\n type: 'element',\n tag: 'p',\n props: { style: { margin: '0 0 15px 0' } },\n children: [\n {\n type: 'text',\n text: error.message,\n },\n ],\n },\n {\n type: 'element',\n tag: 'button',\n props: {\n onClick: () => this.retry(),\n style: {\n padding: '8px 16px',\n backgroundColor: '#4c6ef5',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n },\n children: [\n {\n type: 'text',\n text: `Retry (${this.state.errorInfo.retryAttempts} attempts)`,\n },\n ],\n },\n ],\n },\n ]\n }\n\n /**\n * Get current error boundary state\n */\n getState(): ErrorBoundaryState {\n return this.state\n }\n\n /**\n * Get reactive state signal\n */\n getStateSignal(): () => ErrorBoundaryState {\n return this.stateSignal\n }\n}\n\n/**\n * Global error manager\n */\nexport class ErrorManager {\n private static instance: ErrorManager\n\n private config: ErrorHandlingConfig = {\n enabled: true,\n captureConsoleErrors: true,\n captureUnhandledPromises: true,\n captureReactiveErrors: true,\n captureComponentErrors: true,\n maxErrorsPerSession: 100,\n maxErrorAge: 30 * 60 * 1000, // 30 minutes\n reportingThrottle: 1000, // 1 second\n enableStackTrace: true,\n enableSourceMap: false,\n development: false,\n }\n\n private errors: TachUIError[] = []\n private reporters: ErrorReporter[] = []\n private handlers: ErrorHandler[] = []\n private throttleMap = new Map<string, number>()\n\n // Reactive state\n private errorsSignal: () => TachUIError[]\n private setErrors: (value: TachUIError[]) => void\n\n constructor() {\n // Initialize reactive state\n const [errorsSignal, setErrors] = createSignal<TachUIError[]>([])\n this.errorsSignal = errorsSignal\n this.setErrors = setErrors\n\n this.setupGlobalErrorHandlers()\n }\n\n static getInstance(): ErrorManager {\n if (!ErrorManager.instance) {\n ErrorManager.instance = new ErrorManager()\n }\n return ErrorManager.instance\n }\n\n /**\n * Configure error handling\n */\n configure(config: Partial<ErrorHandlingConfig>): void {\n this.config = { ...this.config, ...config }\n\n if (config.development !== undefined) {\n globalDevTools.configure({ enableErrors: config.development })\n }\n }\n\n /**\n * Setup global error handlers\n */\n private setupGlobalErrorHandlers(): void {\n if (typeof window === 'undefined') return\n\n // Capture unhandled errors\n window.addEventListener('error', (event) => {\n if (!this.config.captureConsoleErrors) return\n\n const error = this.createTachUIError(event.error || new Error(event.message), {\n category: 'unknown_error',\n severity: 'medium',\n context: {\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n },\n })\n\n this.reportError(error)\n })\n\n // Capture unhandled promise rejections\n window.addEventListener('unhandledrejection', (event) => {\n if (!this.config.captureUnhandledPromises) return\n\n const error = this.createTachUIError(\n event.reason instanceof Error ? event.reason : new Error(String(event.reason)),\n {\n category: 'network_error',\n severity: 'medium',\n context: { type: 'unhandled_promise_rejection' },\n }\n )\n\n this.reportError(error)\n })\n }\n\n /**\n * Create standardized TachUI error\n */\n createTachUIError(\n error: Error,\n options: {\n category?: ErrorCategory\n severity?: ErrorSeverity\n componentId?: string\n componentName?: string\n phase?: string\n context?: Record<string, any>\n } = {}\n ): TachUIError {\n return {\n id: `error_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n message: error.message,\n stack: this.config.enableStackTrace ? error.stack : undefined,\n cause: error,\n timestamp: Date.now(),\n category: options.category || 'unknown_error',\n severity: options.severity || 'medium',\n componentId: options.componentId,\n componentName: options.componentName,\n phase: options.phase,\n context: options.context,\n userAgent: typeof window !== 'undefined' ? window.navigator.userAgent : undefined,\n url: typeof window !== 'undefined' ? window.location.href : undefined,\n retryCount: 0,\n recovered: false,\n }\n }\n\n /**\n * Report error to all registered reporters\n */\n reportError(error: TachUIError): void {\n if (!this.config.enabled) return\n\n // Throttle reporting to prevent spam\n const throttleKey = `${error.category}_${error.message}`\n const lastReport = this.throttleMap.get(throttleKey) || 0\n const now = Date.now()\n\n if (now - lastReport < this.config.reportingThrottle) {\n return\n }\n\n this.throttleMap.set(throttleKey, now)\n\n // Add to errors array\n this.errors.push(error)\n\n // Limit errors array size\n if (this.errors.length > this.config.maxErrorsPerSession) {\n this.errors.shift()\n }\n\n // Clean old errors\n this.cleanOldErrors()\n\n // Update reactive signal\n this.setErrors([...this.errors])\n\n // Track with performance monitor\n if (globalPerformanceMonitor.isEnabled()) {\n globalPerformanceMonitor.recordMetric({\n name: 'error_reported',\n value: 1,\n unit: 'count',\n timestamp: error.timestamp,\n category: 'component',\n componentId: error.componentId,\n })\n }\n\n // Call reporters\n this.reporters.forEach((reporter) => {\n try {\n reporter.report(error)\n } catch (reporterError) {\n console.error('Error reporter failed:', reporterError)\n }\n })\n\n // Call handlers\n this.handlers.forEach((handler) => {\n try {\n handler(error)\n } catch (handlerError) {\n console.error('Error handler failed:', handlerError)\n }\n })\n\n // Log to console in development\n if (this.config.development) {\n console.group(`🚨 TachUI Error [${error.category}]`)\n console.error(error.message)\n if (error.stack) console.error(error.stack)\n if (error.context) console.log('Context:', error.context)\n console.groupEnd()\n }\n }\n\n /**\n * Clean old errors based on max age\n */\n private cleanOldErrors(): void {\n const cutoff = Date.now() - this.config.maxErrorAge\n this.errors = this.errors.filter((error) => error.timestamp > cutoff)\n }\n\n /**\n * Add error reporter\n */\n addReporter(reporter: ErrorReporter): () => void {\n this.reporters.push(reporter)\n\n return () => {\n const index = this.reporters.indexOf(reporter)\n if (index !== -1) {\n this.reporters.splice(index, 1)\n }\n }\n }\n\n /**\n * Add error handler\n */\n addHandler(handler: ErrorHandler): () => void {\n this.handlers.push(handler)\n\n return () => {\n const index = this.handlers.indexOf(handler)\n if (index !== -1) {\n this.handlers.splice(index, 1)\n }\n }\n }\n\n /**\n * Get all errors\n */\n getErrors(): TachUIError[] {\n return [...this.errors]\n }\n\n /**\n * Get errors signal\n */\n getErrorsSignal(): () => TachUIError[] {\n return this.errorsSignal\n }\n\n /**\n * Get errors by category\n */\n getErrorsByCategory(category: ErrorCategory): TachUIError[] {\n return this.errors.filter((error) => error.category === category)\n }\n\n /**\n * Get errors by severity\n */\n getErrorsBySeverity(severity: ErrorSeverity): TachUIError[] {\n return this.errors.filter((error) => error.severity === severity)\n }\n\n /**\n * Get errors by component\n */\n getErrorsByComponent(componentId: string): TachUIError[] {\n return this.errors.filter((error) => error.componentId === componentId)\n }\n\n /**\n * Mark error as recovered\n */\n markErrorRecovered(errorId: string): void {\n const error = this.errors.find((e) => e.id === errorId)\n if (error) {\n error.recovered = true\n this.setErrors([...this.errors])\n }\n }\n\n /**\n * Clear all errors\n */\n clear(): void {\n this.errors.length = 0\n this.throttleMap.clear()\n this.setErrors([])\n }\n\n /**\n * Get error statistics\n */\n getStatistics(): {\n totalErrors: number\n errorsByCategory: Record<ErrorCategory, number>\n errorsBySeverity: Record<ErrorSeverity, number>\n recoveredErrors: number\n recentErrors: number\n } {\n const errorsByCategory = {} as Record<ErrorCategory, number>\n const errorsBySeverity = {} as Record<ErrorSeverity, number>\n\n for (const error of this.errors) {\n errorsByCategory[error.category] = (errorsByCategory[error.category] || 0) + 1\n errorsBySeverity[error.severity] = (errorsBySeverity[error.severity] || 0) + 1\n }\n\n const recoveredErrors = this.errors.filter((e) => e.recovered).length\n const recentErrors = this.errors.filter(\n (e) => Date.now() - e.timestamp < 5 * 60 * 1000 // Last 5 minutes\n ).length\n\n return {\n totalErrors: this.errors.length,\n errorsByCategory,\n errorsBySeverity,\n recoveredErrors,\n recentErrors,\n }\n }\n}\n\n/**\n * Global error manager instance\n */\nexport const globalErrorManager = ErrorManager.getInstance()\n\n/**\n * Create error boundary component\n */\nexport function createErrorBoundary(\n props: ErrorBoundaryProps,\n children: ComponentInstance[]\n): ErrorBoundary {\n return new ErrorBoundary(props, children, globalErrorManager)\n}\n\n/**\n * Built-in error reporters\n */\nexport const errorReporters = {\n /**\n * Console reporter\n */\n console: {\n report(error: TachUIError): void {\n console.error(`[${error.category}] ${error.message}`, error)\n },\n } as ErrorReporter,\n\n /**\n * Local storage reporter\n */\n localStorage: {\n report(error: TachUIError): void {\n try {\n const stored = JSON.parse(localStorage.getItem('tachui_errors') || '[]')\n stored.push(error)\n\n // Keep only last 50 errors\n if (stored.length > 50) {\n stored.splice(0, stored.length - 50)\n }\n\n localStorage.setItem('tachui_errors', JSON.stringify(stored))\n } catch (e) {\n console.error('Failed to store error in localStorage:', e)\n }\n },\n } as ErrorReporter,\n\n /**\n * Remote API reporter\n */\n createRemoteReporter(endpoint: string, apiKey?: string): ErrorReporter {\n return {\n async report(error: TachUIError): Promise<void> {\n try {\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n }\n\n if (apiKey) {\n headers.Authorization = `Bearer ${apiKey}`\n }\n\n await fetch(endpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify(error),\n })\n } catch (e) {\n console.error('Failed to report error to remote endpoint:', e)\n }\n },\n }\n },\n}\n\n/**\n * Error handling utilities\n */\nexport const errorUtils = {\n /**\n * Wrap function with error handling\n */\n withErrorHandling<T extends (...args: any[]) => any>(\n fn: T,\n options: {\n category?: ErrorCategory\n onError?: (error: TachUIError) => void\n fallback?: ReturnType<T>\n } = {}\n ): T {\n return ((...args: Parameters<T>): ReturnType<T> => {\n try {\n return fn(...args)\n } catch (error) {\n const tachUIError = globalErrorManager.createTachUIError(error as Error, {\n category: options.category || 'unknown_error',\n })\n\n globalErrorManager.reportError(tachUIError)\n\n if (options.onError) {\n options.onError(tachUIError)\n }\n\n if (options.fallback !== undefined) {\n return options.fallback\n }\n\n throw error\n }\n }) as T\n },\n\n /**\n * Wrap async function with error handling\n */\n withAsyncErrorHandling<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n options: {\n category?: ErrorCategory\n onError?: (error: TachUIError) => void\n fallback?: Awaited<ReturnType<T>>\n } = {}\n ): T {\n return (async (...args: Parameters<T>): Promise<Awaited<ReturnType<T>>> => {\n try {\n return await fn(...args)\n } catch (error) {\n const tachUIError = globalErrorManager.createTachUIError(error as Error, {\n category: options.category || 'network_error',\n })\n\n globalErrorManager.reportError(tachUIError)\n\n if (options.onError) {\n options.onError(tachUIError)\n }\n\n if (options.fallback !== undefined) {\n return options.fallback\n }\n\n throw error\n }\n }) as T\n },\n\n /**\n * Create error boundary with common configurations\n */\n createSimpleErrorBoundary(\n fallbackMessage: string = 'Something went wrong'\n ): (children: ComponentInstance[]) => ErrorBoundary {\n return (children: ComponentInstance[]) =>\n createErrorBoundary(\n {\n fallback: (_error, _retry) => ({\n type: 'component',\n id: 'error-fallback',\n props: {},\n render: () => [\n {\n type: 'element',\n tag: 'div',\n props: { className: 'simple-error-boundary' },\n children: [\n {\n type: 'text',\n text: fallbackMessage,\n },\n ],\n },\n ],\n }),\n recovery: [{ strategy: 'retry', maxRetries: 3, retryDelay: 1000 }],\n },\n children\n )\n },\n}\n"],"names":["ErrorBoundary","props","children","errorManager","__publicField","stateSignal","setState","createSignal","error","errorInfo","tachUIError","newState","globalDevTools","errorObj","config","maxRetries","retryDelay","createEffect","currentProps","key","fallbackInstance","result","child","_ErrorManager","errorsSignal","setErrors","event","options","throttleKey","lastReport","now","globalPerformanceMonitor","reporter","reporterError","handler","handlerError","cutoff","index","category","severity","componentId","errorId","e","errorsByCategory","errorsBySeverity","recoveredErrors","recentErrors","ErrorManager","globalErrorManager","createErrorBoundary","errorReporters","stored","endpoint","apiKey","headers","errorUtils","fn","args","fallbackMessage","_error","_retry"],"mappings":"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"}