@tachui/core 0.7.0-alpha1 → 0.7.1-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 (947) hide show
  1. package/README.md +195 -0
  2. package/dist/ScrollView-h-6wYMAm.js +515 -0
  3. package/dist/Spacer-BbteDQ9I.js +5337 -0
  4. package/dist/binding-CmdpowkI.js +2276 -0
  5. package/dist/bundles/minimal.d.ts +30 -4
  6. package/dist/bundles/minimal.d.ts.map +1 -1
  7. package/dist/common.js +825 -954
  8. package/dist/compiler/index.js +1386 -10
  9. package/dist/components/index.js +4166 -101
  10. package/dist/concatenated-component-DPcl2TEO.js +6779 -0
  11. package/dist/{runtime/context.js → context--zQFIImS.js} +65 -71
  12. package/dist/debug.js +0 -1
  13. package/dist/dom-bridge-Cx-s6Ihx.js +406 -0
  14. package/dist/effect-CytAc9em.js +66 -0
  15. package/dist/essential.js +825 -954
  16. package/dist/index-Nfi2SBQh.js +3268 -0
  17. package/dist/index.js +825 -954
  18. package/dist/minimal-prod.js +162 -191
  19. package/dist/minimal.js +183 -957
  20. package/dist/modifiers/responsive/index.d.ts +10 -9
  21. package/dist/modifiers/responsive/index.d.ts.map +1 -1
  22. package/dist/plugins/index.js +543 -32
  23. package/dist/reactive/index.js +490 -93
  24. package/dist/runtime/dom-bridge.js +12 -239
  25. package/dist/runtime/renderer.js +8 -388
  26. package/dist/scheduler-7SvC3a21.js +814 -0
  27. package/dist/validation/index.js +6614 -198
  28. package/dist/viewport/index.js +2002 -83
  29. package/package.json +3 -4
  30. package/dist/assets/Asset.cjs +0 -2
  31. package/dist/assets/Asset.cjs.map +0 -1
  32. package/dist/assets/Asset.js +0 -9
  33. package/dist/assets/Asset.js.map +0 -1
  34. package/dist/assets/AssetCollection.cjs +0 -2
  35. package/dist/assets/AssetCollection.cjs.map +0 -1
  36. package/dist/assets/AssetCollection.js +0 -44
  37. package/dist/assets/AssetCollection.js.map +0 -1
  38. package/dist/assets/ColorAsset.cjs +0 -2
  39. package/dist/assets/ColorAsset.cjs.map +0 -1
  40. package/dist/assets/ColorAsset.js +0 -114
  41. package/dist/assets/ColorAsset.js.map +0 -1
  42. package/dist/assets/FontAsset.cjs +0 -9
  43. package/dist/assets/FontAsset.cjs.map +0 -1
  44. package/dist/assets/FontAsset.js +0 -173
  45. package/dist/assets/FontAsset.js.map +0 -1
  46. package/dist/assets/ImageAsset.cjs +0 -2
  47. package/dist/assets/ImageAsset.cjs.map +0 -1
  48. package/dist/assets/ImageAsset.js +0 -39
  49. package/dist/assets/ImageAsset.js.map +0 -1
  50. package/dist/assets/index.cjs +0 -2
  51. package/dist/assets/index.cjs.map +0 -1
  52. package/dist/assets/index.js +0 -119
  53. package/dist/assets/index.js.map +0 -1
  54. package/dist/common.cjs +0 -2
  55. package/dist/common.cjs.map +0 -1
  56. package/dist/common.js.map +0 -1
  57. package/dist/compiler/advanced-parser.cjs +0 -5
  58. package/dist/compiler/advanced-parser.cjs.map +0 -1
  59. package/dist/compiler/advanced-parser.js +0 -440
  60. package/dist/compiler/advanced-parser.js.map +0 -1
  61. package/dist/compiler/codegen.cjs +0 -6
  62. package/dist/compiler/codegen.cjs.map +0 -1
  63. package/dist/compiler/codegen.js +0 -241
  64. package/dist/compiler/codegen.js.map +0 -1
  65. package/dist/compiler/enhanced-codegen.cjs +0 -6
  66. package/dist/compiler/enhanced-codegen.cjs.map +0 -1
  67. package/dist/compiler/enhanced-codegen.js +0 -347
  68. package/dist/compiler/enhanced-codegen.js.map +0 -1
  69. package/dist/compiler/index.cjs +0 -2
  70. package/dist/compiler/index.cjs.map +0 -1
  71. package/dist/compiler/index.js.map +0 -1
  72. package/dist/compiler/parser.cjs +0 -5
  73. package/dist/compiler/parser.cjs.map +0 -1
  74. package/dist/compiler/parser.js +0 -275
  75. package/dist/compiler/parser.js.map +0 -1
  76. package/dist/compiler/plugin.cjs +0 -33
  77. package/dist/compiler/plugin.cjs.map +0 -1
  78. package/dist/compiler/plugin.js +0 -103
  79. package/dist/compiler/plugin.js.map +0 -1
  80. package/dist/components/BasicInput.cjs +0 -2
  81. package/dist/components/BasicInput.cjs.map +0 -1
  82. package/dist/components/BasicInput.js +0 -182
  83. package/dist/components/BasicInput.js.map +0 -1
  84. package/dist/components/Button.cjs +0 -7
  85. package/dist/components/Button.cjs.map +0 -1
  86. package/dist/components/Button.js +0 -408
  87. package/dist/components/Button.js.map +0 -1
  88. package/dist/components/Divider.cjs +0 -2
  89. package/dist/components/Divider.cjs.map +0 -1
  90. package/dist/components/Divider.js +0 -187
  91. package/dist/components/Divider.js.map +0 -1
  92. package/dist/components/EnhancedLink.cjs +0 -2
  93. package/dist/components/EnhancedLink.cjs.map +0 -1
  94. package/dist/components/EnhancedLink.js +0 -345
  95. package/dist/components/EnhancedLink.js.map +0 -1
  96. package/dist/components/Form.cjs +0 -2
  97. package/dist/components/Form.cjs.map +0 -1
  98. package/dist/components/Form.js +0 -244
  99. package/dist/components/Form.js.map +0 -1
  100. package/dist/components/Grid.cjs +0 -2
  101. package/dist/components/Grid.cjs.map +0 -1
  102. package/dist/components/Grid.js +0 -1045
  103. package/dist/components/Grid.js.map +0 -1
  104. package/dist/components/GridResponsive.cjs +0 -2
  105. package/dist/components/GridResponsive.cjs.map +0 -1
  106. package/dist/components/GridResponsive.js +0 -382
  107. package/dist/components/GridResponsive.js.map +0 -1
  108. package/dist/components/Image.cjs +0 -2
  109. package/dist/components/Image.cjs.map +0 -1
  110. package/dist/components/Image.js +0 -212
  111. package/dist/components/Image.js.map +0 -1
  112. package/dist/components/List.cjs +0 -2
  113. package/dist/components/List.cjs.map +0 -1
  114. package/dist/components/List.js +0 -561
  115. package/dist/components/List.js.map +0 -1
  116. package/dist/components/Menu.cjs +0 -2
  117. package/dist/components/Menu.cjs.map +0 -1
  118. package/dist/components/Menu.js +0 -443
  119. package/dist/components/Menu.js.map +0 -1
  120. package/dist/components/Picker.cjs +0 -2
  121. package/dist/components/Picker.cjs.map +0 -1
  122. package/dist/components/Picker.js +0 -478
  123. package/dist/components/Picker.js.map +0 -1
  124. package/dist/components/ScrollView.cjs +0 -6
  125. package/dist/components/ScrollView.cjs.map +0 -1
  126. package/dist/components/ScrollView.js +0 -363
  127. package/dist/components/ScrollView.js.map +0 -1
  128. package/dist/components/Section.cjs +0 -2
  129. package/dist/components/Section.cjs.map +0 -1
  130. package/dist/components/Section.js +0 -323
  131. package/dist/components/Section.js.map +0 -1
  132. package/dist/components/Show.cjs +0 -2
  133. package/dist/components/Show.cjs.map +0 -1
  134. package/dist/components/Show.js +0 -112
  135. package/dist/components/Show.js.map +0 -1
  136. package/dist/components/Spacer.cjs +0 -2
  137. package/dist/components/Spacer.cjs.map +0 -1
  138. package/dist/components/Spacer.js +0 -53
  139. package/dist/components/Spacer.js.map +0 -1
  140. package/dist/components/Text.cjs +0 -2
  141. package/dist/components/Text.cjs.map +0 -1
  142. package/dist/components/Text.js +0 -193
  143. package/dist/components/Text.js.map +0 -1
  144. package/dist/components/Toggle.cjs +0 -2
  145. package/dist/components/Toggle.cjs.map +0 -1
  146. package/dist/components/Toggle.js +0 -477
  147. package/dist/components/Toggle.js.map +0 -1
  148. package/dist/components/index.cjs +0 -2
  149. package/dist/components/index.cjs.map +0 -1
  150. package/dist/components/index.js.map +0 -1
  151. package/dist/components/wrapper.cjs +0 -2
  152. package/dist/components/wrapper.cjs.map +0 -1
  153. package/dist/components/wrapper.js +0 -484
  154. package/dist/components/wrapper.js.map +0 -1
  155. package/dist/concatenation/concatenatable.cjs +0 -2
  156. package/dist/concatenation/concatenatable.cjs.map +0 -1
  157. package/dist/concatenation/concatenatable.js +0 -118
  158. package/dist/concatenation/concatenatable.js.map +0 -1
  159. package/dist/concatenation/concatenated-component.cjs +0 -2
  160. package/dist/concatenation/concatenated-component.cjs.map +0 -1
  161. package/dist/concatenation/concatenated-component.js +0 -276
  162. package/dist/concatenation/concatenated-component.js.map +0 -1
  163. package/dist/concatenation/text-optimizer.cjs +0 -2
  164. package/dist/concatenation/text-optimizer.cjs.map +0 -1
  165. package/dist/concatenation/text-optimizer.js +0 -236
  166. package/dist/concatenation/text-optimizer.js.map +0 -1
  167. package/dist/concatenation/types.cjs +0 -2
  168. package/dist/concatenation/types.cjs.map +0 -1
  169. package/dist/concatenation/types.js +0 -13
  170. package/dist/concatenation/types.js.map +0 -1
  171. package/dist/constants/frame-utils.cjs +0 -2
  172. package/dist/constants/frame-utils.cjs.map +0 -1
  173. package/dist/constants/frame-utils.js +0 -116
  174. package/dist/constants/frame-utils.js.map +0 -1
  175. package/dist/constants/layout.cjs +0 -2
  176. package/dist/constants/layout.cjs.map +0 -1
  177. package/dist/constants/layout.js +0 -46
  178. package/dist/constants/layout.js.map +0 -1
  179. package/dist/css-classes/component-base.cjs +0 -2
  180. package/dist/css-classes/component-base.cjs.map +0 -1
  181. package/dist/css-classes/component-base.js +0 -62
  182. package/dist/css-classes/component-base.js.map +0 -1
  183. package/dist/css-classes/css-class-manager.cjs +0 -2
  184. package/dist/css-classes/css-class-manager.cjs.map +0 -1
  185. package/dist/css-classes/css-class-manager.js +0 -209
  186. package/dist/css-classes/css-class-manager.js.map +0 -1
  187. package/dist/css-classes/dom-integration.cjs +0 -2
  188. package/dist/css-classes/dom-integration.cjs.map +0 -1
  189. package/dist/css-classes/dom-integration.js +0 -67
  190. package/dist/css-classes/dom-integration.js.map +0 -1
  191. package/dist/css-classes/enhanced-renderer.cjs +0 -2
  192. package/dist/css-classes/enhanced-renderer.cjs.map +0 -1
  193. package/dist/css-classes/enhanced-renderer.js +0 -73
  194. package/dist/css-classes/enhanced-renderer.js.map +0 -1
  195. package/dist/css-classes/utilities.cjs +0 -2
  196. package/dist/css-classes/utilities.cjs.map +0 -1
  197. package/dist/css-classes/utilities.js +0 -41
  198. package/dist/css-classes/utilities.js.map +0 -1
  199. package/dist/debug.cjs +0 -52
  200. package/dist/debug.cjs.map +0 -1
  201. package/dist/debug.js.map +0 -1
  202. package/dist/essential.cjs +0 -2
  203. package/dist/essential.cjs.map +0 -1
  204. package/dist/essential.js.map +0 -1
  205. package/dist/gradients/css-generator.cjs +0 -2
  206. package/dist/gradients/css-generator.cjs.map +0 -1
  207. package/dist/gradients/css-generator.js +0 -100
  208. package/dist/gradients/css-generator.js.map +0 -1
  209. package/dist/gradients/examples.cjs +0 -2
  210. package/dist/gradients/examples.cjs.map +0 -1
  211. package/dist/gradients/examples.js +0 -555
  212. package/dist/gradients/examples.js.map +0 -1
  213. package/dist/gradients/gradient-asset.cjs +0 -2
  214. package/dist/gradients/gradient-asset.cjs.map +0 -1
  215. package/dist/gradients/gradient-asset.js +0 -22
  216. package/dist/gradients/gradient-asset.js.map +0 -1
  217. package/dist/gradients/index.cjs +0 -2
  218. package/dist/gradients/index.cjs.map +0 -1
  219. package/dist/gradients/index.js +0 -78
  220. package/dist/gradients/index.js.map +0 -1
  221. package/dist/gradients/performance.cjs +0 -2
  222. package/dist/gradients/performance.cjs.map +0 -1
  223. package/dist/gradients/performance.js +0 -237
  224. package/dist/gradients/performance.js.map +0 -1
  225. package/dist/gradients/presets.cjs +0 -2
  226. package/dist/gradients/presets.cjs.map +0 -1
  227. package/dist/gradients/presets.js +0 -254
  228. package/dist/gradients/presets.js.map +0 -1
  229. package/dist/gradients/reactive.cjs +0 -2
  230. package/dist/gradients/reactive.cjs.map +0 -1
  231. package/dist/gradients/reactive.js +0 -239
  232. package/dist/gradients/reactive.js.map +0 -1
  233. package/dist/gradients/state-gradient-asset.cjs +0 -2
  234. package/dist/gradients/state-gradient-asset.cjs.map +0 -1
  235. package/dist/gradients/state-gradient-asset.js +0 -111
  236. package/dist/gradients/state-gradient-asset.js.map +0 -1
  237. package/dist/gradients/utils.cjs +0 -2
  238. package/dist/gradients/utils.cjs.map +0 -1
  239. package/dist/gradients/utils.js +0 -385
  240. package/dist/gradients/utils.js.map +0 -1
  241. package/dist/gradients/validation.cjs +0 -2
  242. package/dist/gradients/validation.cjs.map +0 -1
  243. package/dist/gradients/validation.js +0 -209
  244. package/dist/gradients/validation.js.map +0 -1
  245. package/dist/index.cjs +0 -2
  246. package/dist/index.cjs.map +0 -1
  247. package/dist/index.js.map +0 -1
  248. package/dist/index2.cjs +0 -2
  249. package/dist/index2.cjs.map +0 -1
  250. package/dist/index2.js +0 -293
  251. package/dist/index2.js.map +0 -1
  252. package/dist/lifecycle/hooks.cjs +0 -2
  253. package/dist/lifecycle/hooks.cjs.map +0 -1
  254. package/dist/lifecycle/hooks.js +0 -159
  255. package/dist/lifecycle/hooks.js.map +0 -1
  256. package/dist/minimal-prod.cjs +0 -2
  257. package/dist/minimal-prod.cjs.map +0 -1
  258. package/dist/minimal-prod.js.map +0 -1
  259. package/dist/minimal.cjs +0 -2
  260. package/dist/minimal.cjs.map +0 -1
  261. package/dist/minimal.js.map +0 -1
  262. package/dist/modifiers/as-html-validator.cjs +0 -2
  263. package/dist/modifiers/as-html-validator.cjs.map +0 -1
  264. package/dist/modifiers/as-html-validator.js +0 -47
  265. package/dist/modifiers/as-html-validator.js.map +0 -1
  266. package/dist/modifiers/as-html.cjs +0 -2
  267. package/dist/modifiers/as-html.cjs.map +0 -1
  268. package/dist/modifiers/as-html.js +0 -71
  269. package/dist/modifiers/as-html.js.map +0 -1
  270. package/dist/modifiers/attributes.cjs +0 -2
  271. package/dist/modifiers/attributes.cjs.map +0 -1
  272. package/dist/modifiers/attributes.js +0 -272
  273. package/dist/modifiers/attributes.js.map +0 -1
  274. package/dist/modifiers/backdrop.cjs +0 -2
  275. package/dist/modifiers/backdrop.cjs.map +0 -1
  276. package/dist/modifiers/backdrop.js +0 -109
  277. package/dist/modifiers/backdrop.js.map +0 -1
  278. package/dist/modifiers/background.cjs +0 -2
  279. package/dist/modifiers/background.cjs.map +0 -1
  280. package/dist/modifiers/background.js +0 -67
  281. package/dist/modifiers/background.js.map +0 -1
  282. package/dist/modifiers/base.cjs +0 -25
  283. package/dist/modifiers/base.cjs.map +0 -1
  284. package/dist/modifiers/base.js +0 -745
  285. package/dist/modifiers/base.js.map +0 -1
  286. package/dist/modifiers/basic-sanitizer.cjs +0 -2
  287. package/dist/modifiers/basic-sanitizer.cjs.map +0 -1
  288. package/dist/modifiers/basic-sanitizer.js +0 -162
  289. package/dist/modifiers/basic-sanitizer.js.map +0 -1
  290. package/dist/modifiers/border.cjs +0 -2
  291. package/dist/modifiers/border.cjs.map +0 -1
  292. package/dist/modifiers/border.js +0 -160
  293. package/dist/modifiers/border.js.map +0 -1
  294. package/dist/modifiers/builder.cjs +0 -2
  295. package/dist/modifiers/builder.cjs.map +0 -1
  296. package/dist/modifiers/builder.js +0 -930
  297. package/dist/modifiers/builder.js.map +0 -1
  298. package/dist/modifiers/core.cjs +0 -2
  299. package/dist/modifiers/core.cjs.map +0 -1
  300. package/dist/modifiers/core.js +0 -398
  301. package/dist/modifiers/core.js.map +0 -1
  302. package/dist/modifiers/css.cjs +0 -2
  303. package/dist/modifiers/css.cjs.map +0 -1
  304. package/dist/modifiers/css.js +0 -50
  305. package/dist/modifiers/css.js.map +0 -1
  306. package/dist/modifiers/effects.cjs +0 -2
  307. package/dist/modifiers/effects.cjs.map +0 -1
  308. package/dist/modifiers/effects.js +0 -178
  309. package/dist/modifiers/effects.js.map +0 -1
  310. package/dist/modifiers/elements.cjs +0 -2
  311. package/dist/modifiers/elements.cjs.map +0 -1
  312. package/dist/modifiers/elements.js +0 -216
  313. package/dist/modifiers/elements.js.map +0 -1
  314. package/dist/modifiers/filters.cjs +0 -2
  315. package/dist/modifiers/filters.cjs.map +0 -1
  316. package/dist/modifiers/filters.js +0 -223
  317. package/dist/modifiers/filters.js.map +0 -1
  318. package/dist/modifiers/flexbox.cjs +0 -2
  319. package/dist/modifiers/flexbox.cjs.map +0 -1
  320. package/dist/modifiers/flexbox.js +0 -56
  321. package/dist/modifiers/flexbox.js.map +0 -1
  322. package/dist/modifiers/font.cjs +0 -2
  323. package/dist/modifiers/font.cjs.map +0 -1
  324. package/dist/modifiers/font.js +0 -60
  325. package/dist/modifiers/font.js.map +0 -1
  326. package/dist/modifiers/grid.cjs +0 -2
  327. package/dist/modifiers/grid.cjs.map +0 -1
  328. package/dist/modifiers/grid.js +0 -92
  329. package/dist/modifiers/grid.js.map +0 -1
  330. package/dist/modifiers/margin.cjs +0 -2
  331. package/dist/modifiers/margin.cjs.map +0 -1
  332. package/dist/modifiers/margin.js +0 -65
  333. package/dist/modifiers/margin.js.map +0 -1
  334. package/dist/modifiers/padding.cjs +0 -2
  335. package/dist/modifiers/padding.cjs.map +0 -1
  336. package/dist/modifiers/padding.js +0 -109
  337. package/dist/modifiers/padding.js.map +0 -1
  338. package/dist/modifiers/registry.cjs +0 -2
  339. package/dist/modifiers/registry.cjs.map +0 -1
  340. package/dist/modifiers/registry.js +0 -163
  341. package/dist/modifiers/registry.js.map +0 -1
  342. package/dist/modifiers/responsive/advanced-utilities.cjs +0 -2
  343. package/dist/modifiers/responsive/advanced-utilities.cjs.map +0 -1
  344. package/dist/modifiers/responsive/advanced-utilities.js +0 -291
  345. package/dist/modifiers/responsive/advanced-utilities.js.map +0 -1
  346. package/dist/modifiers/responsive/breakpoints.cjs +0 -2
  347. package/dist/modifiers/responsive/breakpoints.cjs.map +0 -1
  348. package/dist/modifiers/responsive/breakpoints.js +0 -168
  349. package/dist/modifiers/responsive/breakpoints.js.map +0 -1
  350. package/dist/modifiers/responsive/css-generator.cjs +0 -5
  351. package/dist/modifiers/responsive/css-generator.cjs.map +0 -1
  352. package/dist/modifiers/responsive/css-generator.js +0 -261
  353. package/dist/modifiers/responsive/css-generator.js.map +0 -1
  354. package/dist/modifiers/responsive/dev-tools.cjs +0 -77
  355. package/dist/modifiers/responsive/dev-tools.cjs.map +0 -1
  356. package/dist/modifiers/responsive/dev-tools.js +0 -380
  357. package/dist/modifiers/responsive/dev-tools.js.map +0 -1
  358. package/dist/modifiers/responsive/layout-patterns.cjs +0 -2
  359. package/dist/modifiers/responsive/layout-patterns.cjs.map +0 -1
  360. package/dist/modifiers/responsive/layout-patterns.js +0 -254
  361. package/dist/modifiers/responsive/layout-patterns.js.map +0 -1
  362. package/dist/modifiers/responsive/performance.cjs +0 -3
  363. package/dist/modifiers/responsive/performance.cjs.map +0 -1
  364. package/dist/modifiers/responsive/performance.js +0 -212
  365. package/dist/modifiers/responsive/performance.js.map +0 -1
  366. package/dist/modifiers/responsive/responsive-builder.cjs +0 -2
  367. package/dist/modifiers/responsive/responsive-builder.cjs.map +0 -1
  368. package/dist/modifiers/responsive/responsive-builder.js +0 -272
  369. package/dist/modifiers/responsive/responsive-builder.js.map +0 -1
  370. package/dist/modifiers/responsive/responsive-modifier.cjs +0 -3
  371. package/dist/modifiers/responsive/responsive-modifier.cjs.map +0 -1
  372. package/dist/modifiers/responsive/responsive-modifier.js +0 -204
  373. package/dist/modifiers/responsive/responsive-modifier.js.map +0 -1
  374. package/dist/modifiers/responsive/types.cjs +0 -2
  375. package/dist/modifiers/responsive/types.cjs.map +0 -1
  376. package/dist/modifiers/responsive/types.js +0 -26
  377. package/dist/modifiers/responsive/types.js.map +0 -1
  378. package/dist/modifiers/responsive/utilities.cjs +0 -16
  379. package/dist/modifiers/responsive/utilities.cjs.map +0 -1
  380. package/dist/modifiers/responsive/utilities.js +0 -273
  381. package/dist/modifiers/responsive/utilities.js.map +0 -1
  382. package/dist/modifiers/scroll.cjs +0 -2
  383. package/dist/modifiers/scroll.cjs.map +0 -1
  384. package/dist/modifiers/scroll.js +0 -82
  385. package/dist/modifiers/scroll.js.map +0 -1
  386. package/dist/modifiers/shadows.cjs +0 -2
  387. package/dist/modifiers/shadows.cjs.map +0 -1
  388. package/dist/modifiers/shadows.js +0 -147
  389. package/dist/modifiers/shadows.js.map +0 -1
  390. package/dist/modifiers/size.cjs +0 -2
  391. package/dist/modifiers/size.cjs.map +0 -1
  392. package/dist/modifiers/size.js +0 -74
  393. package/dist/modifiers/size.js.map +0 -1
  394. package/dist/modifiers/text.cjs +0 -2
  395. package/dist/modifiers/text.cjs.map +0 -1
  396. package/dist/modifiers/text.js +0 -166
  397. package/dist/modifiers/text.js.map +0 -1
  398. package/dist/modifiers/transformations.cjs +0 -2
  399. package/dist/modifiers/transformations.cjs.map +0 -1
  400. package/dist/modifiers/transformations.js +0 -216
  401. package/dist/modifiers/transformations.js.map +0 -1
  402. package/dist/modifiers/transitions.cjs +0 -2
  403. package/dist/modifiers/transitions.cjs.map +0 -1
  404. package/dist/modifiers/transitions.js +0 -102
  405. package/dist/modifiers/transitions.js.map +0 -1
  406. package/dist/modifiers/types.cjs +0 -2
  407. package/dist/modifiers/types.cjs.map +0 -1
  408. package/dist/modifiers/types.js +0 -5
  409. package/dist/modifiers/types.js.map +0 -1
  410. package/dist/modifiers/typography.cjs +0 -2
  411. package/dist/modifiers/typography.cjs.map +0 -1
  412. package/dist/modifiers/typography.js +0 -76
  413. package/dist/modifiers/typography.js.map +0 -1
  414. package/dist/modifiers/utility.cjs +0 -2
  415. package/dist/modifiers/utility.cjs.map +0 -1
  416. package/dist/modifiers/utility.js +0 -71
  417. package/dist/modifiers/utility.js.map +0 -1
  418. package/dist/modifiers/utils.cjs +0 -2
  419. package/dist/modifiers/utils.cjs.map +0 -1
  420. package/dist/modifiers/utils.js +0 -250
  421. package/dist/modifiers/utils.js.map +0 -1
  422. package/dist/plugins/index.cjs +0 -2
  423. package/dist/plugins/index.cjs.map +0 -1
  424. package/dist/plugins/index.js.map +0 -1
  425. package/dist/plugins/legacy-adapter.cjs +0 -2
  426. package/dist/plugins/legacy-adapter.cjs.map +0 -1
  427. package/dist/plugins/legacy-adapter.js +0 -30
  428. package/dist/plugins/legacy-adapter.js.map +0 -1
  429. package/dist/plugins/simplified-component-registry.cjs +0 -2
  430. package/dist/plugins/simplified-component-registry.cjs.map +0 -1
  431. package/dist/plugins/simplified-component-registry.js +0 -71
  432. package/dist/plugins/simplified-component-registry.js.map +0 -1
  433. package/dist/plugins/simplified-error-handler.cjs +0 -2
  434. package/dist/plugins/simplified-error-handler.cjs.map +0 -1
  435. package/dist/plugins/simplified-error-handler.js +0 -154
  436. package/dist/plugins/simplified-error-handler.js.map +0 -1
  437. package/dist/plugins/simplified-lazy-loader.cjs +0 -2
  438. package/dist/plugins/simplified-lazy-loader.cjs.map +0 -1
  439. package/dist/plugins/simplified-lazy-loader.js +0 -129
  440. package/dist/plugins/simplified-lazy-loader.js.map +0 -1
  441. package/dist/plugins/simplified-plugin-manager.cjs +0 -2
  442. package/dist/plugins/simplified-plugin-manager.cjs.map +0 -1
  443. package/dist/plugins/simplified-plugin-manager.js +0 -51
  444. package/dist/plugins/simplified-plugin-manager.js.map +0 -1
  445. package/dist/plugins/simplified-tachui-instance.cjs +0 -2
  446. package/dist/plugins/simplified-tachui-instance.cjs.map +0 -1
  447. package/dist/plugins/simplified-tachui-instance.js +0 -88
  448. package/dist/plugins/simplified-tachui-instance.js.map +0 -1
  449. package/dist/plugins/simplified-types.cjs +0 -2
  450. package/dist/plugins/simplified-types.cjs.map +0 -1
  451. package/dist/plugins/simplified-types.js +0 -9
  452. package/dist/plugins/simplified-types.js.map +0 -1
  453. package/dist/plugins/simplified-utils.cjs +0 -2
  454. package/dist/plugins/simplified-utils.cjs.map +0 -1
  455. package/dist/plugins/simplified-utils.js +0 -40
  456. package/dist/plugins/simplified-utils.js.map +0 -1
  457. package/dist/reactive/cleanup.cjs +0 -2
  458. package/dist/reactive/cleanup.cjs.map +0 -1
  459. package/dist/reactive/cleanup.js +0 -62
  460. package/dist/reactive/cleanup.js.map +0 -1
  461. package/dist/reactive/computed.cjs +0 -2
  462. package/dist/reactive/computed.cjs.map +0 -1
  463. package/dist/reactive/computed.js +0 -121
  464. package/dist/reactive/computed.js.map +0 -1
  465. package/dist/reactive/context.cjs +0 -2
  466. package/dist/reactive/context.cjs.map +0 -1
  467. package/dist/reactive/context.js +0 -143
  468. package/dist/reactive/context.js.map +0 -1
  469. package/dist/reactive/effect.cjs +0 -2
  470. package/dist/reactive/effect.cjs.map +0 -1
  471. package/dist/reactive/effect.js +0 -67
  472. package/dist/reactive/effect.js.map +0 -1
  473. package/dist/reactive/enhanced-effect.cjs +0 -2
  474. package/dist/reactive/enhanced-effect.cjs.map +0 -1
  475. package/dist/reactive/enhanced-effect.js +0 -153
  476. package/dist/reactive/enhanced-effect.js.map +0 -1
  477. package/dist/reactive/enhanced-signal.cjs +0 -2
  478. package/dist/reactive/enhanced-signal.cjs.map +0 -1
  479. package/dist/reactive/enhanced-signal.js +0 -117
  480. package/dist/reactive/enhanced-signal.js.map +0 -1
  481. package/dist/reactive/equality.cjs +0 -2
  482. package/dist/reactive/equality.cjs.map +0 -1
  483. package/dist/reactive/equality.js +0 -66
  484. package/dist/reactive/equality.js.map +0 -1
  485. package/dist/reactive/index.cjs +0 -2
  486. package/dist/reactive/index.cjs.map +0 -1
  487. package/dist/reactive/index.js.map +0 -1
  488. package/dist/reactive/migration.cjs +0 -18
  489. package/dist/reactive/migration.cjs.map +0 -1
  490. package/dist/reactive/migration.js +0 -164
  491. package/dist/reactive/migration.js.map +0 -1
  492. package/dist/reactive/ownership.cjs +0 -2
  493. package/dist/reactive/ownership.cjs.map +0 -1
  494. package/dist/reactive/ownership.js +0 -34
  495. package/dist/reactive/ownership.js.map +0 -1
  496. package/dist/reactive/scheduler.cjs +0 -2
  497. package/dist/reactive/scheduler.cjs.map +0 -1
  498. package/dist/reactive/scheduler.js +0 -111
  499. package/dist/reactive/scheduler.js.map +0 -1
  500. package/dist/reactive/signal.cjs +0 -2
  501. package/dist/reactive/signal.cjs.map +0 -1
  502. package/dist/reactive/signal.js +0 -96
  503. package/dist/reactive/signal.js.map +0 -1
  504. package/dist/reactive/theme.cjs +0 -2
  505. package/dist/reactive/theme.cjs.map +0 -1
  506. package/dist/reactive/theme.js +0 -27
  507. package/dist/reactive/theme.js.map +0 -1
  508. package/dist/reactive/types.cjs +0 -2
  509. package/dist/reactive/types.cjs.map +0 -1
  510. package/dist/reactive/types.js +0 -5
  511. package/dist/reactive/types.js.map +0 -1
  512. package/dist/reactive/unified-scheduler.cjs +0 -2
  513. package/dist/reactive/unified-scheduler.cjs.map +0 -1
  514. package/dist/reactive/unified-scheduler.js +0 -219
  515. package/dist/reactive/unified-scheduler.js.map +0 -1
  516. package/dist/runtime/component-context.cjs +0 -2
  517. package/dist/runtime/component-context.cjs.map +0 -1
  518. package/dist/runtime/component-context.js +0 -177
  519. package/dist/runtime/component-context.js.map +0 -1
  520. package/dist/runtime/component.cjs +0 -2
  521. package/dist/runtime/component.cjs.map +0 -1
  522. package/dist/runtime/component.js +0 -238
  523. package/dist/runtime/component.js.map +0 -1
  524. package/dist/runtime/context.cjs +0 -2
  525. package/dist/runtime/context.cjs.map +0 -1
  526. package/dist/runtime/context.js.map +0 -1
  527. package/dist/runtime/dev-tools.cjs +0 -2
  528. package/dist/runtime/dev-tools.cjs.map +0 -1
  529. package/dist/runtime/dev-tools.js +0 -391
  530. package/dist/runtime/dev-tools.js.map +0 -1
  531. package/dist/runtime/development-warnings.cjs +0 -2
  532. package/dist/runtime/development-warnings.cjs.map +0 -1
  533. package/dist/runtime/development-warnings.js +0 -69
  534. package/dist/runtime/development-warnings.js.map +0 -1
  535. package/dist/runtime/dom-bridge.cjs +0 -2
  536. package/dist/runtime/dom-bridge.cjs.map +0 -1
  537. package/dist/runtime/dom-bridge.js.map +0 -1
  538. package/dist/runtime/element-override.cjs +0 -2
  539. package/dist/runtime/element-override.cjs.map +0 -1
  540. package/dist/runtime/element-override.js +0 -214
  541. package/dist/runtime/element-override.js.map +0 -1
  542. package/dist/runtime/error-boundary.cjs +0 -2
  543. package/dist/runtime/error-boundary.cjs.map +0 -1
  544. package/dist/runtime/error-boundary.js +0 -559
  545. package/dist/runtime/error-boundary.js.map +0 -1
  546. package/dist/runtime/error-recovery.cjs +0 -2
  547. package/dist/runtime/error-recovery.cjs.map +0 -1
  548. package/dist/runtime/error-recovery.js +0 -385
  549. package/dist/runtime/error-recovery.js.map +0 -1
  550. package/dist/runtime/error-reporting.cjs +0 -3
  551. package/dist/runtime/error-reporting.cjs.map +0 -1
  552. package/dist/runtime/error-reporting.js +0 -479
  553. package/dist/runtime/error-reporting.js.map +0 -1
  554. package/dist/runtime/error-utils.cjs +0 -3
  555. package/dist/runtime/error-utils.cjs.map +0 -1
  556. package/dist/runtime/error-utils.js +0 -352
  557. package/dist/runtime/error-utils.js.map +0 -1
  558. package/dist/runtime/lazy-component.cjs +0 -2
  559. package/dist/runtime/lazy-component.cjs.map +0 -1
  560. package/dist/runtime/lazy-component.js +0 -129
  561. package/dist/runtime/lazy-component.js.map +0 -1
  562. package/dist/runtime/lifecycle.cjs +0 -2
  563. package/dist/runtime/lifecycle.cjs.map +0 -1
  564. package/dist/runtime/lifecycle.js +0 -7
  565. package/dist/runtime/lifecycle.js.map +0 -1
  566. package/dist/runtime/mounting.cjs +0 -2
  567. package/dist/runtime/mounting.cjs.map +0 -1
  568. package/dist/runtime/mounting.js +0 -12
  569. package/dist/runtime/mounting.js.map +0 -1
  570. package/dist/runtime/optimization.cjs +0 -2
  571. package/dist/runtime/optimization.cjs.map +0 -1
  572. package/dist/runtime/optimization.js +0 -6
  573. package/dist/runtime/optimization.js.map +0 -1
  574. package/dist/runtime/performance.cjs +0 -2
  575. package/dist/runtime/performance.cjs.map +0 -1
  576. package/dist/runtime/performance.js +0 -399
  577. package/dist/runtime/performance.js.map +0 -1
  578. package/dist/runtime/props.cjs +0 -2
  579. package/dist/runtime/props.cjs.map +0 -1
  580. package/dist/runtime/props.js +0 -265
  581. package/dist/runtime/props.js.map +0 -1
  582. package/dist/runtime/renderer.cjs +0 -2
  583. package/dist/runtime/renderer.cjs.map +0 -1
  584. package/dist/runtime/renderer.js.map +0 -1
  585. package/dist/runtime/semantic-role-manager.cjs +0 -2
  586. package/dist/runtime/semantic-role-manager.cjs.map +0 -1
  587. package/dist/runtime/semantic-role-manager.js +0 -82
  588. package/dist/runtime/semantic-role-manager.js.map +0 -1
  589. package/dist/state/binding.cjs +0 -2
  590. package/dist/state/binding.cjs.map +0 -1
  591. package/dist/state/binding.js +0 -155
  592. package/dist/state/binding.js.map +0 -1
  593. package/dist/state/environment.cjs +0 -2
  594. package/dist/state/environment.cjs.map +0 -1
  595. package/dist/state/environment.js +0 -115
  596. package/dist/state/environment.js.map +0 -1
  597. package/dist/state/index.cjs +0 -2
  598. package/dist/state/index.cjs.map +0 -1
  599. package/dist/state/index.js +0 -63
  600. package/dist/state/index.js.map +0 -1
  601. package/dist/state/observed-object.cjs +0 -2
  602. package/dist/state/observed-object.cjs.map +0 -1
  603. package/dist/state/observed-object.js +0 -163
  604. package/dist/state/observed-object.js.map +0 -1
  605. package/dist/state/state-manager.cjs +0 -2
  606. package/dist/state/state-manager.cjs.map +0 -1
  607. package/dist/state/state-manager.js +0 -233
  608. package/dist/state/state-manager.js.map +0 -1
  609. package/dist/state/state.cjs +0 -2
  610. package/dist/state/state.cjs.map +0 -1
  611. package/dist/state/state.js +0 -159
  612. package/dist/state/state.js.map +0 -1
  613. package/dist/sui-compat.cjs +0 -2
  614. package/dist/sui-compat.cjs.map +0 -1
  615. package/dist/sui-compat.js +0 -88
  616. package/dist/sui-compat.js.map +0 -1
  617. package/dist/validation/advanced-debugging.cjs +0 -44
  618. package/dist/validation/advanced-debugging.cjs.map +0 -1
  619. package/dist/validation/advanced-debugging.js +0 -455
  620. package/dist/validation/advanced-debugging.js.map +0 -1
  621. package/dist/validation/build-time/detection.cjs +0 -2
  622. package/dist/validation/build-time/detection.cjs.map +0 -1
  623. package/dist/validation/build-time/detection.js +0 -199
  624. package/dist/validation/build-time/detection.js.map +0 -1
  625. package/dist/validation/build-time/index.cjs +0 -2
  626. package/dist/validation/build-time/index.cjs.map +0 -1
  627. package/dist/validation/build-time/index.js +0 -122
  628. package/dist/validation/build-time/index.js.map +0 -1
  629. package/dist/validation/build-time/plugins.cjs +0 -3
  630. package/dist/validation/build-time/plugins.cjs.map +0 -1
  631. package/dist/validation/build-time/plugins.js +0 -282
  632. package/dist/validation/build-time/plugins.js.map +0 -1
  633. package/dist/validation/build-time/rules.cjs +0 -2
  634. package/dist/validation/build-time/rules.cjs.map +0 -1
  635. package/dist/validation/build-time/rules.js +0 -576
  636. package/dist/validation/build-time/rules.js.map +0 -1
  637. package/dist/validation/build-time/transformer.cjs +0 -3
  638. package/dist/validation/build-time/transformer.cjs.map +0 -1
  639. package/dist/validation/build-time/transformer.js +0 -177
  640. package/dist/validation/build-time/transformer.js.map +0 -1
  641. package/dist/validation/comprehensive.cjs +0 -9
  642. package/dist/validation/comprehensive.cjs.map +0 -1
  643. package/dist/validation/comprehensive.js +0 -916
  644. package/dist/validation/comprehensive.js.map +0 -1
  645. package/dist/validation/debug-tools.cjs +0 -16
  646. package/dist/validation/debug-tools.cjs.map +0 -1
  647. package/dist/validation/debug-tools.js +0 -405
  648. package/dist/validation/debug-tools.js.map +0 -1
  649. package/dist/validation/developer-experience.cjs +0 -17
  650. package/dist/validation/developer-experience.cjs.map +0 -1
  651. package/dist/validation/developer-experience.js +0 -433
  652. package/dist/validation/developer-experience.js.map +0 -1
  653. package/dist/validation/documentation-integration.cjs +0 -7
  654. package/dist/validation/documentation-integration.cjs.map +0 -1
  655. package/dist/validation/documentation-integration.js +0 -440
  656. package/dist/validation/documentation-integration.js.map +0 -1
  657. package/dist/validation/enhanced-runtime.cjs +0 -6
  658. package/dist/validation/enhanced-runtime.cjs.map +0 -1
  659. package/dist/validation/enhanced-runtime.js +0 -465
  660. package/dist/validation/enhanced-runtime.js.map +0 -1
  661. package/dist/validation/error-reporting.cjs +0 -32
  662. package/dist/validation/error-reporting.cjs.map +0 -1
  663. package/dist/validation/error-reporting.js +0 -370
  664. package/dist/validation/error-reporting.js.map +0 -1
  665. package/dist/validation/ide-integration.cjs +0 -85
  666. package/dist/validation/ide-integration.cjs.map +0 -1
  667. package/dist/validation/ide-integration.js +0 -557
  668. package/dist/validation/ide-integration.js.map +0 -1
  669. package/dist/validation/index.cjs +0 -6
  670. package/dist/validation/index.cjs.map +0 -1
  671. package/dist/validation/index.js.map +0 -1
  672. package/dist/validation/lifecycle-validation.cjs +0 -2
  673. package/dist/validation/lifecycle-validation.cjs.map +0 -1
  674. package/dist/validation/lifecycle-validation.js +0 -314
  675. package/dist/validation/lifecycle-validation.js.map +0 -1
  676. package/dist/validation/performance-optimizer.cjs +0 -2
  677. package/dist/validation/performance-optimizer.cjs.map +0 -1
  678. package/dist/validation/performance-optimizer.js +0 -338
  679. package/dist/validation/performance-optimizer.js.map +0 -1
  680. package/dist/validation/plugin-registration.cjs +0 -2
  681. package/dist/validation/plugin-registration.cjs.map +0 -1
  682. package/dist/validation/plugin-registration.js +0 -126
  683. package/dist/validation/plugin-registration.js.map +0 -1
  684. package/dist/validation/production-bypass.cjs +0 -2
  685. package/dist/validation/production-bypass.cjs.map +0 -1
  686. package/dist/validation/production-bypass.js +0 -218
  687. package/dist/validation/production-bypass.js.map +0 -1
  688. package/dist/validation/simple.cjs +0 -9
  689. package/dist/validation/simple.cjs.map +0 -1
  690. package/dist/validation/simple.js +0 -146
  691. package/dist/validation/simple.js.map +0 -1
  692. package/dist/viewport/adapters/web-adapter.cjs +0 -70
  693. package/dist/viewport/adapters/web-adapter.cjs.map +0 -1
  694. package/dist/viewport/adapters/web-adapter.js +0 -823
  695. package/dist/viewport/adapters/web-adapter.js.map +0 -1
  696. package/dist/viewport/components.cjs +0 -2
  697. package/dist/viewport/components.cjs.map +0 -1
  698. package/dist/viewport/components.js +0 -298
  699. package/dist/viewport/components.js.map +0 -1
  700. package/dist/viewport/environment.cjs +0 -2
  701. package/dist/viewport/environment.cjs.map +0 -1
  702. package/dist/viewport/environment.js +0 -86
  703. package/dist/viewport/environment.js.map +0 -1
  704. package/dist/viewport/index.cjs +0 -2
  705. package/dist/viewport/index.cjs.map +0 -1
  706. package/dist/viewport/index.js.map +0 -1
  707. package/dist/viewport/platform-detection.cjs +0 -2
  708. package/dist/viewport/platform-detection.cjs.map +0 -1
  709. package/dist/viewport/platform-detection.js +0 -205
  710. package/dist/viewport/platform-detection.js.map +0 -1
  711. package/dist/viewport/types.cjs +0 -2
  712. package/dist/viewport/types.cjs.map +0 -1
  713. package/dist/viewport/types.js +0 -13
  714. package/dist/viewport/types.js.map +0 -1
  715. package/dist/viewport/viewport-manager.cjs +0 -2
  716. package/dist/viewport/viewport-manager.cjs.map +0 -1
  717. package/dist/viewport/viewport-manager.js +0 -524
  718. package/dist/viewport/viewport-manager.js.map +0 -1
  719. package/src/assets/Asset.ts +0 -11
  720. package/src/assets/AssetCollection.ts +0 -99
  721. package/src/assets/ColorAsset.ts +0 -210
  722. package/src/assets/FontAsset.ts +0 -380
  723. package/src/assets/ImageAsset.ts +0 -91
  724. package/src/assets/README.md +0 -190
  725. package/src/assets/index.ts +0 -175
  726. package/src/assets/test-assets.ts +0 -69
  727. package/src/assets/test-integration.ts +0 -46
  728. package/src/assets/test-simple.ts +0 -28
  729. package/src/assets/types.ts +0 -79
  730. package/src/bundles/common.ts +0 -30
  731. package/src/bundles/complete.ts +0 -29
  732. package/src/bundles/essential.ts +0 -26
  733. package/src/bundles/minimal.ts +0 -26
  734. package/src/bundles/production-minimal.ts +0 -67
  735. package/src/compiler/advanced-parser.ts +0 -871
  736. package/src/compiler/codegen.ts +0 -450
  737. package/src/compiler/enhanced-codegen.ts +0 -729
  738. package/src/compiler/index.ts +0 -25
  739. package/src/compiler/parser.ts +0 -461
  740. package/src/compiler/plugin.ts +0 -181
  741. package/src/compiler/types.ts +0 -177
  742. package/src/components/BasicInput.ts +0 -352
  743. package/src/components/Button.ts +0 -963
  744. package/src/components/Divider.ts +0 -341
  745. package/src/components/EnhancedLink.ts +0 -676
  746. package/src/components/Form.ts +0 -414
  747. package/src/components/Grid.ts +0 -2507
  748. package/src/components/GridResponsive.ts +0 -637
  749. package/src/components/Image.ts +0 -426
  750. package/src/components/List.ts +0 -1084
  751. package/src/components/Menu.ts +0 -807
  752. package/src/components/Picker.ts +0 -678
  753. package/src/components/ScrollView.ts +0 -725
  754. package/src/components/Section.ts +0 -472
  755. package/src/components/Show.ts +0 -205
  756. package/src/components/Spacer.ts +0 -93
  757. package/src/components/Text.ts +0 -447
  758. package/src/components/Toggle.ts +0 -700
  759. package/src/components/index.ts +0 -231
  760. package/src/components/wrapper.ts +0 -828
  761. package/src/concatenation/concatenatable.ts +0 -211
  762. package/src/concatenation/concatenated-component.ts +0 -471
  763. package/src/concatenation/index.ts +0 -41
  764. package/src/concatenation/styles.css +0 -120
  765. package/src/concatenation/text-optimizer.ts +0 -440
  766. package/src/concatenation/types.ts +0 -116
  767. package/src/constants/README.md +0 -339
  768. package/src/constants/__tests__/frame-utils.test.ts +0 -276
  769. package/src/constants/__tests__/layout.test.ts +0 -215
  770. package/src/constants/frame-utils.ts +0 -174
  771. package/src/constants/index.ts +0 -8
  772. package/src/constants/layout.ts +0 -120
  773. package/src/css-classes/component-base.ts +0 -117
  774. package/src/css-classes/css-class-manager.ts +0 -372
  775. package/src/css-classes/dom-integration.ts +0 -162
  776. package/src/css-classes/enhanced-renderer.ts +0 -166
  777. package/src/css-classes/index.ts +0 -45
  778. package/src/css-classes/types.ts +0 -73
  779. package/src/css-classes/utilities.ts +0 -175
  780. package/src/debug/index.ts +0 -267
  781. package/src/developer-experience/enhanced-errors.ts +0 -556
  782. package/src/developer-experience/enhanced-types.ts +0 -427
  783. package/src/developer-experience/index.ts +0 -220
  784. package/src/globals.d.ts +0 -43
  785. package/src/gradients/__tests__/angular-gradient.test.ts +0 -111
  786. package/src/gradients/__tests__/background-modifier.test.ts +0 -81
  787. package/src/gradients/__tests__/comprehensive-gradients.test.ts +0 -296
  788. package/src/gradients/__tests__/gradient-asset.test.ts +0 -144
  789. package/src/gradients/__tests__/linear-gradient.test.ts +0 -92
  790. package/src/gradients/__tests__/phase4-features.test.ts +0 -386
  791. package/src/gradients/__tests__/radial-gradient.test.ts +0 -110
  792. package/src/gradients/__tests__/repeating-gradients.test.ts +0 -125
  793. package/src/gradients/__tests__/state-background-modifier.test.ts +0 -340
  794. package/src/gradients/__tests__/state-gradient-asset.test.ts +0 -262
  795. package/src/gradients/__tests__/state-gradient-integration.test.ts +0 -277
  796. package/src/gradients/css-generator.ts +0 -158
  797. package/src/gradients/examples.ts +0 -632
  798. package/src/gradients/gradient-asset.ts +0 -30
  799. package/src/gradients/index.ts +0 -85
  800. package/src/gradients/performance.ts +0 -521
  801. package/src/gradients/presets.ts +0 -422
  802. package/src/gradients/reactive.ts +0 -470
  803. package/src/gradients/state-gradient-asset.ts +0 -179
  804. package/src/gradients/types.ts +0 -148
  805. package/src/gradients/utils.ts +0 -579
  806. package/src/gradients/validation.ts +0 -489
  807. package/src/index.ts +0 -168
  808. package/src/lifecycle/hooks.ts +0 -332
  809. package/src/modifiers/__tests__/as-html-integration.test.ts +0 -204
  810. package/src/modifiers/__tests__/as-html.test.ts +0 -437
  811. package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +0 -294
  812. package/src/modifiers/__tests__/border.test.ts +0 -371
  813. package/src/modifiers/__tests__/margin-string-support.test.ts +0 -41
  814. package/src/modifiers/__tests__/padding-string-support.test.ts +0 -41
  815. package/src/modifiers/as-html-validator.ts +0 -68
  816. package/src/modifiers/as-html.ts +0 -216
  817. package/src/modifiers/attributes.ts +0 -574
  818. package/src/modifiers/backdrop.ts +0 -290
  819. package/src/modifiers/background.ts +0 -165
  820. package/src/modifiers/base.ts +0 -1815
  821. package/src/modifiers/basic-sanitizer.ts +0 -227
  822. package/src/modifiers/border.ts +0 -574
  823. package/src/modifiers/builder.ts +0 -1747
  824. package/src/modifiers/core.ts +0 -521
  825. package/src/modifiers/css.ts +0 -148
  826. package/src/modifiers/effects.ts +0 -412
  827. package/src/modifiers/elements.ts +0 -541
  828. package/src/modifiers/filters.ts +0 -501
  829. package/src/modifiers/flexbox.ts +0 -180
  830. package/src/modifiers/font.ts +0 -149
  831. package/src/modifiers/grid.ts +0 -238
  832. package/src/modifiers/index.ts +0 -481
  833. package/src/modifiers/margin.ts +0 -218
  834. package/src/modifiers/padding.ts +0 -318
  835. package/src/modifiers/registry.ts +0 -444
  836. package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +0 -392
  837. package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +0 -368
  838. package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +0 -556
  839. package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +0 -558
  840. package/src/modifiers/responsive/advanced-utilities.ts +0 -562
  841. package/src/modifiers/responsive/breakpoints.ts +0 -330
  842. package/src/modifiers/responsive/css-generator.ts +0 -432
  843. package/src/modifiers/responsive/dev-tools.ts +0 -650
  844. package/src/modifiers/responsive/index.ts +0 -119
  845. package/src/modifiers/responsive/layout-patterns.ts +0 -592
  846. package/src/modifiers/responsive/performance.ts +0 -385
  847. package/src/modifiers/responsive/responsive-builder.ts +0 -620
  848. package/src/modifiers/responsive/responsive-modifier.ts +0 -410
  849. package/src/modifiers/responsive/types.ts +0 -226
  850. package/src/modifiers/responsive/utilities.ts +0 -478
  851. package/src/modifiers/scroll.ts +0 -297
  852. package/src/modifiers/shadows.ts +0 -321
  853. package/src/modifiers/size.ts +0 -208
  854. package/src/modifiers/text.ts +0 -416
  855. package/src/modifiers/transformations.ts +0 -640
  856. package/src/modifiers/transitions.ts +0 -218
  857. package/src/modifiers/types.ts +0 -889
  858. package/src/modifiers/typography.ts +0 -341
  859. package/src/modifiers/utility.ts +0 -209
  860. package/src/modifiers/utils.ts +0 -413
  861. package/src/plugins/__tests__/simplified-plugin-system.test.ts +0 -190
  862. package/src/plugins/component-loader-registry.ts +0 -371
  863. package/src/plugins/index.ts +0 -61
  864. package/src/plugins/legacy-adapter.ts +0 -84
  865. package/src/plugins/simplified-component-registry.ts +0 -130
  866. package/src/plugins/simplified-error-handler.ts +0 -372
  867. package/src/plugins/simplified-index.ts +0 -61
  868. package/src/plugins/simplified-lazy-loader.ts +0 -242
  869. package/src/plugins/simplified-plugin-manager.ts +0 -93
  870. package/src/plugins/simplified-tachui-instance.ts +0 -142
  871. package/src/plugins/simplified-types.ts +0 -79
  872. package/src/plugins/simplified-utils.ts +0 -118
  873. package/src/reactive/cleanup.ts +0 -241
  874. package/src/reactive/computed.ts +0 -281
  875. package/src/reactive/context.ts +0 -287
  876. package/src/reactive/effect.ts +0 -194
  877. package/src/reactive/enhanced-effect.ts +0 -318
  878. package/src/reactive/enhanced-signal.ts +0 -227
  879. package/src/reactive/equality.ts +0 -188
  880. package/src/reactive/globals.d.ts +0 -5
  881. package/src/reactive/index.ts +0 -150
  882. package/src/reactive/migration.ts +0 -335
  883. package/src/reactive/ownership.ts +0 -182
  884. package/src/reactive/scheduler.ts +0 -300
  885. package/src/reactive/signal.ts +0 -201
  886. package/src/reactive/theme.ts +0 -49
  887. package/src/reactive/types.ts +0 -103
  888. package/src/reactive/unified-scheduler.ts +0 -357
  889. package/src/runtime/component-context.ts +0 -343
  890. package/src/runtime/component.ts +0 -499
  891. package/src/runtime/context.ts +0 -527
  892. package/src/runtime/dev-tools.ts +0 -752
  893. package/src/runtime/development-warnings.ts +0 -114
  894. package/src/runtime/dom-bridge.ts +0 -570
  895. package/src/runtime/element-override.ts +0 -282
  896. package/src/runtime/error-boundary.ts +0 -955
  897. package/src/runtime/error-recovery.ts +0 -638
  898. package/src/runtime/error-reporting.ts +0 -808
  899. package/src/runtime/error-utils.ts +0 -698
  900. package/src/runtime/index.ts +0 -202
  901. package/src/runtime/lazy-component.ts +0 -268
  902. package/src/runtime/lifecycle.ts +0 -10
  903. package/src/runtime/mounting.ts +0 -17
  904. package/src/runtime/optimization.ts +0 -13
  905. package/src/runtime/performance.ts +0 -693
  906. package/src/runtime/props.ts +0 -434
  907. package/src/runtime/refs.ts +0 -13
  908. package/src/runtime/renderer.ts +0 -674
  909. package/src/runtime/semantic-role-manager.ts +0 -140
  910. package/src/runtime/types.ts +0 -282
  911. package/src/state/binding.ts +0 -381
  912. package/src/state/environment-object.ts +0 -444
  913. package/src/state/environment.ts +0 -351
  914. package/src/state/index.ts +0 -179
  915. package/src/state/observed-object.ts +0 -405
  916. package/src/state/state-manager.ts +0 -366
  917. package/src/state/state.ts +0 -339
  918. package/src/state/types.ts +0 -192
  919. package/src/sui-compat.ts +0 -163
  920. package/src/validation/__tests__/phase-1d-integration.test.ts +0 -558
  921. package/src/validation/advanced-debugging.ts +0 -860
  922. package/src/validation/build-time/detection.ts +0 -373
  923. package/src/validation/build-time/index.ts +0 -222
  924. package/src/validation/build-time/plugins.ts +0 -515
  925. package/src/validation/build-time/rules.ts +0 -624
  926. package/src/validation/build-time/transformer.ts +0 -372
  927. package/src/validation/build-time/types.ts +0 -232
  928. package/src/validation/comprehensive.ts +0 -1272
  929. package/src/validation/debug-tools.ts +0 -724
  930. package/src/validation/developer-experience.ts +0 -712
  931. package/src/validation/documentation-integration.ts +0 -835
  932. package/src/validation/enhanced-runtime.ts +0 -765
  933. package/src/validation/error-reporting.ts +0 -587
  934. package/src/validation/ide-integration.ts +0 -845
  935. package/src/validation/index.ts +0 -353
  936. package/src/validation/lifecycle-validation.ts +0 -636
  937. package/src/validation/performance-optimizer.ts +0 -599
  938. package/src/validation/plugin-registration.ts +0 -249
  939. package/src/validation/production-bypass.ts +0 -466
  940. package/src/validation/simple.ts +0 -465
  941. package/src/viewport/adapters/web-adapter.ts +0 -1385
  942. package/src/viewport/components.ts +0 -505
  943. package/src/viewport/environment.ts +0 -173
  944. package/src/viewport/index.ts +0 -290
  945. package/src/viewport/platform-detection.ts +0 -431
  946. package/src/viewport/types.ts +0 -371
  947. package/src/viewport/viewport-manager.ts +0 -979
@@ -1 +0,0 @@
1
- {"version":3,"file":"binding.cjs","sources":["../../src/state/binding.ts"],"sourcesContent":["/**\n * @Binding Property Wrapper Implementation\n *\n * Implements SwiftUI's @Binding property wrapper for two-way data binding.\n * Provides reactive binding with automatic component re-rendering on changes.\n */\n\nimport type { Accessor, Setter } from '../reactive/types'\nimport { getCurrentComponentContext } from '../runtime/component-context'\nimport type { ComponentContext } from '../runtime/types'\nimport type * as Types from './types'\nimport type { Binding } from './types'\n\n/**\n * Enhanced binding implementation with proper reactive updates\n */\nexport class BindingImpl<T> implements Binding<T> {\n private _get: Accessor<T>\n private _set: Setter<T>\n private _options: { name?: string }\n private _componentContext: ComponentContext\n private _propertyName: string\n\n constructor(\n get: Accessor<T>,\n set: Setter<T>,\n componentContext: ComponentContext,\n propertyName: string,\n options: { name?: string } = {}\n ) {\n this._get = get\n this._set = set\n this._componentContext = componentContext\n this._propertyName = propertyName\n this._options = options\n\n // Store binding in component context for lifecycle management\n componentContext.setBinding(propertyName, this)\n }\n\n get wrappedValue(): T {\n return this._get()\n }\n\n set wrappedValue(value: T) {\n this._set(value)\n // Trigger component re-render by updating component context\n this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now())\n }\n\n get projectedValue(): Binding<T> {\n return this\n }\n\n get(): T {\n return this._get()\n }\n\n set(value: T | ((prev: T) => T)): void {\n this._set(value as any)\n // Trigger component re-render\n this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now())\n }\n\n /**\n * Create a derived binding with transformation\n */\n map<U>(getter: (value: T) => U, setter: (newValue: U, oldValue: T) => T): Binding<U> {\n const mappedGet = () => getter(this._get())\n const mappedSet = (value: U | ((prev: U) => U)) => {\n const currentValue = this._get()\n const currentMapped = getter(currentValue)\n const newMapped =\n typeof value === 'function' ? (value as (prev: U) => U)(currentMapped) : value\n const newOriginal = setter(newMapped, currentValue)\n this._set(newOriginal as any)\n // Trigger re-render\n this._componentContext.setState(`_binding_${this._propertyName}_mapped_trigger`, Date.now())\n }\n\n return new BindingImpl(\n mappedGet as Accessor<U>,\n mappedSet as Setter<U>,\n this._componentContext,\n `${this._propertyName}_mapped`,\n { name: `${this._options.name || 'binding'}_mapped` }\n )\n }\n\n /**\n * Create a constant binding (read-only)\n */\n constant(): Binding<T> {\n const readOnlySet: Setter<T> = () => {\n console.warn('Attempted to set value on constant binding')\n return this._get()\n }\n\n return new BindingImpl(\n this._get,\n readOnlySet,\n this._componentContext,\n `${this._propertyName}_constant`,\n { name: `${this._options.name || 'binding'}_constant` }\n )\n }\n\n /**\n * Create a binding with validation\n */\n withValidation(validator: (value: T) => boolean, errorMessage?: string): Binding<T> {\n const validatingSet: Setter<T> = (value: T | ((prev: T) => T)) => {\n const newValue = typeof value === 'function' ? (value as (prev: T) => T)(this._get()) : value\n\n if (validator(newValue)) {\n this._set(newValue as any)\n // Trigger re-render\n this._componentContext.setState(\n `_binding_${this._propertyName}_validated_trigger`,\n Date.now()\n )\n } else {\n console.warn(errorMessage || `Validation failed for binding ${this._propertyName}`)\n }\n\n return newValue\n }\n\n return new BindingImpl(\n this._get,\n validatingSet,\n this._componentContext,\n `${this._propertyName}_validated`,\n { name: `${this._options.name || 'binding'}_validated` }\n )\n }\n\n /**\n * Create a debounced binding\n */\n debounced(delay: number = 300): Binding<T> {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const debouncedSet: Setter<T> = (value: T | ((prev: T) => T)) => {\n const newValue = typeof value === 'function' ? (value as (prev: T) => T)(this._get()) : value\n\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n timeoutId = setTimeout(() => {\n this._set(newValue as any)\n // Trigger re-render\n this._componentContext.setState(\n `_binding_${this._propertyName}_debounced_trigger`,\n Date.now()\n )\n timeoutId = null\n }, delay)\n\n return newValue\n }\n\n return new BindingImpl(\n this._get,\n debouncedSet,\n this._componentContext,\n `${this._propertyName}_debounced`,\n { name: `${this._options.name || 'binding'}_debounced` }\n )\n }\n}\n\n/**\n * Create a binding from external getter/setter functions\n */\nexport function createBinding<T>(\n get: Accessor<T>,\n set: Setter<T>,\n options: { name?: string } = {}\n): Binding<T> {\n const componentContext = getCurrentComponentContext()\n const propertyName = getCallerPropertyName() || 'binding'\n\n return new BindingImpl(get, set, componentContext, propertyName, options)\n}\n\n/**\n * Create a binding from a State property wrapper\n */\nexport function createStateBinding<T>(\n state: Types.State<T>,\n options: { name?: string } = {}\n): Binding<T> {\n // Cast to implementation type to access internal methods\n const stateImpl = state as any\n\n const setter: Setter<T> = (value: T | ((prev: T) => T)) => {\n if (typeof value === 'function') {\n state.wrappedValue = (value as (prev: T) => T)(state.wrappedValue)\n } else {\n state.wrappedValue = value\n }\n return state.wrappedValue\n }\n\n return createBinding(() => state.wrappedValue, setter, {\n ...options,\n name: options.name || `${stateImpl.metadata?.propertyName || 'state'}Binding`,\n })\n}\n\n/**\n * Create a binding to a specific property of an object\n */\nexport function createPropertyBinding<T, K extends keyof T>(\n object: Accessor<T>,\n setObject: Setter<T>,\n property: K,\n options: { name?: string } = {}\n): Binding<T[K]> {\n const get = () => object()[property]\n const set = (value: T[K] | ((prev: T[K]) => T[K])) => {\n const currentObject = object()\n const newValue =\n typeof value === 'function' ? (value as (prev: T[K]) => T[K])(currentObject[property]) : value\n const newObject = { ...currentObject, [property]: newValue }\n setObject(newObject as any)\n }\n\n return createBinding(get, set as Setter<T[K]>, {\n ...options,\n name: options.name || `${String(property)}PropertyBinding`,\n })\n}\n\n/**\n * Create a two-way binding between two state sources\n */\nexport function createTwoWayBinding<T>(\n source1: Types.State<T>,\n source2: Types.State<T>,\n options: {\n name?: string\n transform?: (value: T) => T\n reverseTransform?: (value: T) => T\n } = {}\n): [Binding<T>, Binding<T>] {\n const transform = options.transform || ((v: T) => v)\n const reverseTransform = options.reverseTransform || options.transform || ((v: T) => v)\n\n const binding1 = createBinding(\n () => transform(source1.wrappedValue),\n (value: T | ((prev: T) => T)) => {\n const newValue =\n typeof value === 'function' ? (value as (prev: T) => T)(source1.wrappedValue) : value\n const transformedValue = reverseTransform(newValue)\n source1.wrappedValue = transformedValue\n source2.wrappedValue = transformedValue\n return transformedValue\n },\n { name: `${options.name || 'twoWay'}Binding1` }\n )\n\n const binding2 = createBinding(\n () => transform(source2.wrappedValue),\n (value: T | ((prev: T) => T)) => {\n const newValue =\n typeof value === 'function' ? (value as (prev: T) => T)(source2.wrappedValue) : value\n const transformedValue = reverseTransform(newValue)\n source1.wrappedValue = transformedValue\n source2.wrappedValue = transformedValue\n return transformedValue\n },\n { name: `${options.name || 'twoWay'}Binding2` }\n )\n\n return [binding1, binding2]\n}\n\n/**\n * Helper to get the property name of the caller (used for metadata)\n */\nfunction getCallerPropertyName(): string | null {\n try {\n const stack = new Error().stack\n if (stack) {\n // Parse stack to get property name - this is a fallback for debugging\n const match = stack.match(/at (\\w+)\\./)?.[1]\n return match || null\n }\n } catch {\n // Ignore errors in stack parsing\n }\n return null\n}\n\n/**\n * Type guard for Binding property wrappers\n */\nexport function isBinding<T>(value: any): value is Binding<T> {\n return (\n value &&\n typeof value === 'object' &&\n 'get' in value &&\n 'set' in value &&\n 'wrappedValue' in value &&\n value instanceof BindingImpl\n )\n}\n\n/**\n * Utility functions for binding management\n */\nexport const BindingUtils = {\n /**\n * Check if a binding is read-only\n */\n isReadOnly<T>(binding: Binding<T>): boolean {\n if (binding instanceof BindingImpl) {\n // Check if it's a constant binding by testing the setter\n try {\n const originalValue = binding.get()\n const consoleWarn = console.warn\n let warningCalled = false\n console.warn = (...args) => {\n if (args[0] === 'Attempted to set value on constant binding') {\n warningCalled = true\n }\n }\n\n binding.set(originalValue)\n console.warn = consoleWarn\n\n return warningCalled\n } catch {\n return true\n }\n }\n return false\n },\n\n /**\n * Create a computed binding from multiple sources\n */\n computed<T, Args extends readonly any[]>(\n sources: { [K in keyof Args]: Binding<Args[K]> },\n compute: (...values: Args) => T,\n options: { name?: string } = {}\n ): Binding<T> {\n const get = () => {\n const values = sources.map((source) => source.get()) as any as Args\n return compute(...values)\n }\n\n const set = () => {\n console.warn('Cannot set computed binding value')\n return get()\n }\n\n return createBinding(get, set, options)\n },\n\n /**\n * Chain multiple bindings together\n */\n chain<T>(bindings: Binding<T>[], options: { name?: string } = {}): Binding<T[]> {\n const get = () => bindings.map((binding) => binding.get())\n const set = (values: T[] | ((prev: T[]) => T[])) => {\n const newValues = typeof values === 'function' ? values(get()) : values\n bindings.forEach((binding, index) => {\n if (index < newValues.length) {\n binding.set(newValues[index])\n }\n })\n return newValues\n }\n\n return createBinding(get, set as Setter<T[]>, options)\n },\n}\n"],"names":["BindingImpl","get","set","componentContext","propertyName","options","__publicField","value","getter","setter","mappedGet","mappedSet","currentValue","currentMapped","newMapped","newOriginal","readOnlySet","validator","errorMessage","validatingSet","newValue","delay","timeoutId","debouncedSet","createBinding","getCurrentComponentContext","getCallerPropertyName","stack","isBinding","BindingUtils","binding","originalValue","consoleWarn","warningCalled","args","sources","compute","values","source","bindings","newValues","index"],"mappings":"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"}
@@ -1,155 +0,0 @@
1
- import { getCurrentComponentContext as u } from "../runtime/component-context.js";
2
- var m = Object.defineProperty, g = (e, t, n) => t in e ? m(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, c = (e, t, n) => g(e, typeof t != "symbol" ? t + "" : t, n);
3
- class s {
4
- constructor(t, n, r, o, i = {}) {
5
- c(this, "_get"), c(this, "_set"), c(this, "_options"), c(this, "_componentContext"), c(this, "_propertyName"), this._get = t, this._set = n, this._componentContext = r, this._propertyName = o, this._options = i, r.setBinding(o, this);
6
- }
7
- get wrappedValue() {
8
- return this._get();
9
- }
10
- set wrappedValue(t) {
11
- this._set(t), this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now());
12
- }
13
- get projectedValue() {
14
- return this;
15
- }
16
- get() {
17
- return this._get();
18
- }
19
- set(t) {
20
- this._set(t), this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now());
21
- }
22
- /**
23
- * Create a derived binding with transformation
24
- */
25
- map(t, n) {
26
- const r = () => t(this._get()), o = (i) => {
27
- const a = this._get(), p = t(a), h = typeof i == "function" ? i(p) : i, d = n(h, a);
28
- this._set(d), this._componentContext.setState(`_binding_${this._propertyName}_mapped_trigger`, Date.now());
29
- };
30
- return new s(
31
- r,
32
- o,
33
- this._componentContext,
34
- `${this._propertyName}_mapped`,
35
- { name: `${this._options.name || "binding"}_mapped` }
36
- );
37
- }
38
- /**
39
- * Create a constant binding (read-only)
40
- */
41
- constant() {
42
- const t = () => (console.warn("Attempted to set value on constant binding"), this._get());
43
- return new s(
44
- this._get,
45
- t,
46
- this._componentContext,
47
- `${this._propertyName}_constant`,
48
- { name: `${this._options.name || "binding"}_constant` }
49
- );
50
- }
51
- /**
52
- * Create a binding with validation
53
- */
54
- withValidation(t, n) {
55
- const r = (o) => {
56
- const i = typeof o == "function" ? o(this._get()) : o;
57
- return t(i) ? (this._set(i), this._componentContext.setState(
58
- `_binding_${this._propertyName}_validated_trigger`,
59
- Date.now()
60
- )) : console.warn(n || `Validation failed for binding ${this._propertyName}`), i;
61
- };
62
- return new s(
63
- this._get,
64
- r,
65
- this._componentContext,
66
- `${this._propertyName}_validated`,
67
- { name: `${this._options.name || "binding"}_validated` }
68
- );
69
- }
70
- /**
71
- * Create a debounced binding
72
- */
73
- debounced(t = 300) {
74
- let n = null;
75
- const r = (o) => {
76
- const i = typeof o == "function" ? o(this._get()) : o;
77
- return n && clearTimeout(n), n = setTimeout(() => {
78
- this._set(i), this._componentContext.setState(
79
- `_binding_${this._propertyName}_debounced_trigger`,
80
- Date.now()
81
- ), n = null;
82
- }, t), i;
83
- };
84
- return new s(
85
- this._get,
86
- r,
87
- this._componentContext,
88
- `${this._propertyName}_debounced`,
89
- { name: `${this._options.name || "binding"}_debounced` }
90
- );
91
- }
92
- }
93
- function _(e, t, n = {}) {
94
- const r = u(), o = l() || "binding";
95
- return new s(e, t, r, o, n);
96
- }
97
- function l() {
98
- try {
99
- const e = new Error().stack;
100
- if (e)
101
- return e.match(/at (\w+)\./)?.[1] || null;
102
- } catch {
103
- }
104
- return null;
105
- }
106
- function w(e) {
107
- return e && typeof e == "object" && "get" in e && "set" in e && "wrappedValue" in e && e instanceof s;
108
- }
109
- const b = {
110
- /**
111
- * Check if a binding is read-only
112
- */
113
- isReadOnly(e) {
114
- if (e instanceof s)
115
- try {
116
- const t = e.get(), n = console.warn;
117
- let r = !1;
118
- return console.warn = (...o) => {
119
- o[0] === "Attempted to set value on constant binding" && (r = !0);
120
- }, e.set(t), console.warn = n, r;
121
- } catch {
122
- return !0;
123
- }
124
- return !1;
125
- },
126
- /**
127
- * Create a computed binding from multiple sources
128
- */
129
- computed(e, t, n = {}) {
130
- const r = () => {
131
- const i = e.map((a) => a.get());
132
- return t(...i);
133
- };
134
- return _(r, () => (console.warn("Cannot set computed binding value"), r()), n);
135
- },
136
- /**
137
- * Chain multiple bindings together
138
- */
139
- chain(e, t = {}) {
140
- const n = () => e.map((o) => o.get());
141
- return _(n, (o) => {
142
- const i = typeof o == "function" ? o(n()) : o;
143
- return e.forEach((a, p) => {
144
- p < i.length && a.set(i[p]);
145
- }), i;
146
- }, t);
147
- }
148
- };
149
- export {
150
- s as BindingImpl,
151
- b as BindingUtils,
152
- _ as createBinding,
153
- w as isBinding
154
- };
155
- //# sourceMappingURL=binding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binding.js","sources":["../../src/state/binding.ts"],"sourcesContent":["/**\n * @Binding Property Wrapper Implementation\n *\n * Implements SwiftUI's @Binding property wrapper for two-way data binding.\n * Provides reactive binding with automatic component re-rendering on changes.\n */\n\nimport type { Accessor, Setter } from '../reactive/types'\nimport { getCurrentComponentContext } from '../runtime/component-context'\nimport type { ComponentContext } from '../runtime/types'\nimport type * as Types from './types'\nimport type { Binding } from './types'\n\n/**\n * Enhanced binding implementation with proper reactive updates\n */\nexport class BindingImpl<T> implements Binding<T> {\n private _get: Accessor<T>\n private _set: Setter<T>\n private _options: { name?: string }\n private _componentContext: ComponentContext\n private _propertyName: string\n\n constructor(\n get: Accessor<T>,\n set: Setter<T>,\n componentContext: ComponentContext,\n propertyName: string,\n options: { name?: string } = {}\n ) {\n this._get = get\n this._set = set\n this._componentContext = componentContext\n this._propertyName = propertyName\n this._options = options\n\n // Store binding in component context for lifecycle management\n componentContext.setBinding(propertyName, this)\n }\n\n get wrappedValue(): T {\n return this._get()\n }\n\n set wrappedValue(value: T) {\n this._set(value)\n // Trigger component re-render by updating component context\n this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now())\n }\n\n get projectedValue(): Binding<T> {\n return this\n }\n\n get(): T {\n return this._get()\n }\n\n set(value: T | ((prev: T) => T)): void {\n this._set(value as any)\n // Trigger component re-render\n this._componentContext.setState(`_binding_${this._propertyName}_trigger`, Date.now())\n }\n\n /**\n * Create a derived binding with transformation\n */\n map<U>(getter: (value: T) => U, setter: (newValue: U, oldValue: T) => T): Binding<U> {\n const mappedGet = () => getter(this._get())\n const mappedSet = (value: U | ((prev: U) => U)) => {\n const currentValue = this._get()\n const currentMapped = getter(currentValue)\n const newMapped =\n typeof value === 'function' ? (value as (prev: U) => U)(currentMapped) : value\n const newOriginal = setter(newMapped, currentValue)\n this._set(newOriginal as any)\n // Trigger re-render\n this._componentContext.setState(`_binding_${this._propertyName}_mapped_trigger`, Date.now())\n }\n\n return new BindingImpl(\n mappedGet as Accessor<U>,\n mappedSet as Setter<U>,\n this._componentContext,\n `${this._propertyName}_mapped`,\n { name: `${this._options.name || 'binding'}_mapped` }\n )\n }\n\n /**\n * Create a constant binding (read-only)\n */\n constant(): Binding<T> {\n const readOnlySet: Setter<T> = () => {\n console.warn('Attempted to set value on constant binding')\n return this._get()\n }\n\n return new BindingImpl(\n this._get,\n readOnlySet,\n this._componentContext,\n `${this._propertyName}_constant`,\n { name: `${this._options.name || 'binding'}_constant` }\n )\n }\n\n /**\n * Create a binding with validation\n */\n withValidation(validator: (value: T) => boolean, errorMessage?: string): Binding<T> {\n const validatingSet: Setter<T> = (value: T | ((prev: T) => T)) => {\n const newValue = typeof value === 'function' ? (value as (prev: T) => T)(this._get()) : value\n\n if (validator(newValue)) {\n this._set(newValue as any)\n // Trigger re-render\n this._componentContext.setState(\n `_binding_${this._propertyName}_validated_trigger`,\n Date.now()\n )\n } else {\n console.warn(errorMessage || `Validation failed for binding ${this._propertyName}`)\n }\n\n return newValue\n }\n\n return new BindingImpl(\n this._get,\n validatingSet,\n this._componentContext,\n `${this._propertyName}_validated`,\n { name: `${this._options.name || 'binding'}_validated` }\n )\n }\n\n /**\n * Create a debounced binding\n */\n debounced(delay: number = 300): Binding<T> {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const debouncedSet: Setter<T> = (value: T | ((prev: T) => T)) => {\n const newValue = typeof value === 'function' ? (value as (prev: T) => T)(this._get()) : value\n\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n timeoutId = setTimeout(() => {\n this._set(newValue as any)\n // Trigger re-render\n this._componentContext.setState(\n `_binding_${this._propertyName}_debounced_trigger`,\n Date.now()\n )\n timeoutId = null\n }, delay)\n\n return newValue\n }\n\n return new BindingImpl(\n this._get,\n debouncedSet,\n this._componentContext,\n `${this._propertyName}_debounced`,\n { name: `${this._options.name || 'binding'}_debounced` }\n )\n }\n}\n\n/**\n * Create a binding from external getter/setter functions\n */\nexport function createBinding<T>(\n get: Accessor<T>,\n set: Setter<T>,\n options: { name?: string } = {}\n): Binding<T> {\n const componentContext = getCurrentComponentContext()\n const propertyName = getCallerPropertyName() || 'binding'\n\n return new BindingImpl(get, set, componentContext, propertyName, options)\n}\n\n/**\n * Create a binding from a State property wrapper\n */\nexport function createStateBinding<T>(\n state: Types.State<T>,\n options: { name?: string } = {}\n): Binding<T> {\n // Cast to implementation type to access internal methods\n const stateImpl = state as any\n\n const setter: Setter<T> = (value: T | ((prev: T) => T)) => {\n if (typeof value === 'function') {\n state.wrappedValue = (value as (prev: T) => T)(state.wrappedValue)\n } else {\n state.wrappedValue = value\n }\n return state.wrappedValue\n }\n\n return createBinding(() => state.wrappedValue, setter, {\n ...options,\n name: options.name || `${stateImpl.metadata?.propertyName || 'state'}Binding`,\n })\n}\n\n/**\n * Create a binding to a specific property of an object\n */\nexport function createPropertyBinding<T, K extends keyof T>(\n object: Accessor<T>,\n setObject: Setter<T>,\n property: K,\n options: { name?: string } = {}\n): Binding<T[K]> {\n const get = () => object()[property]\n const set = (value: T[K] | ((prev: T[K]) => T[K])) => {\n const currentObject = object()\n const newValue =\n typeof value === 'function' ? (value as (prev: T[K]) => T[K])(currentObject[property]) : value\n const newObject = { ...currentObject, [property]: newValue }\n setObject(newObject as any)\n }\n\n return createBinding(get, set as Setter<T[K]>, {\n ...options,\n name: options.name || `${String(property)}PropertyBinding`,\n })\n}\n\n/**\n * Create a two-way binding between two state sources\n */\nexport function createTwoWayBinding<T>(\n source1: Types.State<T>,\n source2: Types.State<T>,\n options: {\n name?: string\n transform?: (value: T) => T\n reverseTransform?: (value: T) => T\n } = {}\n): [Binding<T>, Binding<T>] {\n const transform = options.transform || ((v: T) => v)\n const reverseTransform = options.reverseTransform || options.transform || ((v: T) => v)\n\n const binding1 = createBinding(\n () => transform(source1.wrappedValue),\n (value: T | ((prev: T) => T)) => {\n const newValue =\n typeof value === 'function' ? (value as (prev: T) => T)(source1.wrappedValue) : value\n const transformedValue = reverseTransform(newValue)\n source1.wrappedValue = transformedValue\n source2.wrappedValue = transformedValue\n return transformedValue\n },\n { name: `${options.name || 'twoWay'}Binding1` }\n )\n\n const binding2 = createBinding(\n () => transform(source2.wrappedValue),\n (value: T | ((prev: T) => T)) => {\n const newValue =\n typeof value === 'function' ? (value as (prev: T) => T)(source2.wrappedValue) : value\n const transformedValue = reverseTransform(newValue)\n source1.wrappedValue = transformedValue\n source2.wrappedValue = transformedValue\n return transformedValue\n },\n { name: `${options.name || 'twoWay'}Binding2` }\n )\n\n return [binding1, binding2]\n}\n\n/**\n * Helper to get the property name of the caller (used for metadata)\n */\nfunction getCallerPropertyName(): string | null {\n try {\n const stack = new Error().stack\n if (stack) {\n // Parse stack to get property name - this is a fallback for debugging\n const match = stack.match(/at (\\w+)\\./)?.[1]\n return match || null\n }\n } catch {\n // Ignore errors in stack parsing\n }\n return null\n}\n\n/**\n * Type guard for Binding property wrappers\n */\nexport function isBinding<T>(value: any): value is Binding<T> {\n return (\n value &&\n typeof value === 'object' &&\n 'get' in value &&\n 'set' in value &&\n 'wrappedValue' in value &&\n value instanceof BindingImpl\n )\n}\n\n/**\n * Utility functions for binding management\n */\nexport const BindingUtils = {\n /**\n * Check if a binding is read-only\n */\n isReadOnly<T>(binding: Binding<T>): boolean {\n if (binding instanceof BindingImpl) {\n // Check if it's a constant binding by testing the setter\n try {\n const originalValue = binding.get()\n const consoleWarn = console.warn\n let warningCalled = false\n console.warn = (...args) => {\n if (args[0] === 'Attempted to set value on constant binding') {\n warningCalled = true\n }\n }\n\n binding.set(originalValue)\n console.warn = consoleWarn\n\n return warningCalled\n } catch {\n return true\n }\n }\n return false\n },\n\n /**\n * Create a computed binding from multiple sources\n */\n computed<T, Args extends readonly any[]>(\n sources: { [K in keyof Args]: Binding<Args[K]> },\n compute: (...values: Args) => T,\n options: { name?: string } = {}\n ): Binding<T> {\n const get = () => {\n const values = sources.map((source) => source.get()) as any as Args\n return compute(...values)\n }\n\n const set = () => {\n console.warn('Cannot set computed binding value')\n return get()\n }\n\n return createBinding(get, set, options)\n },\n\n /**\n * Chain multiple bindings together\n */\n chain<T>(bindings: Binding<T>[], options: { name?: string } = {}): Binding<T[]> {\n const get = () => bindings.map((binding) => binding.get())\n const set = (values: T[] | ((prev: T[]) => T[])) => {\n const newValues = typeof values === 'function' ? values(get()) : values\n bindings.forEach((binding, index) => {\n if (index < newValues.length) {\n binding.set(newValues[index])\n }\n })\n return newValues\n }\n\n return createBinding(get, set as Setter<T[]>, options)\n },\n}\n"],"names":["BindingImpl","get","set","componentContext","propertyName","options","__publicField","value","getter","setter","mappedGet","mappedSet","currentValue","currentMapped","newMapped","newOriginal","readOnlySet","validator","errorMessage","validatingSet","newValue","delay","timeoutId","debouncedSet","createBinding","getCurrentComponentContext","getCallerPropertyName","stack","isBinding","BindingUtils","binding","originalValue","consoleWarn","warningCalled","args","sources","compute","values","source","bindings","newValues","index"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../reactive/effect.cjs"),b=require("../reactive/signal.cjs"),r=require("../runtime/component-context.cjs");var l=Object.defineProperty,h=(t,e,n)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,i=(t,e,n)=>h(t,typeof e!="symbol"?e+"":e,n);class s{constructor(e){i(this,"_signal"),i(this,"_setter"),i(this,"_subscribers",new Set);const[n,o]=b.createSignal(e);this._signal=n,this._setter=o}get value(){return this._signal()}set value(e){this._setter(e),this.notifySubscribers()}updateProperty(e,n){const a={...this._signal(),[e]:n};this._setter(a),this.notifySubscribers()}subscribe(e){return this._subscribers.add(e),()=>this._subscribers.delete(e)}notifySubscribers(){for(const e of this._subscribers)try{e()}catch(n){console.error("Error in environment object subscriber:",n)}}onChange(e){const n=u.createEffect(()=>{e(this._signal())});return()=>n.dispose()}}class c{constructor(e,n){i(this,"key"),i(this,"componentContext"),i(this,"_cachedValue"),i(this,"_subscriptionCleanup"),this.key=e,this.componentContext=n,n.onCleanup(()=>{this._subscriptionCleanup&&this._subscriptionCleanup()})}get wrappedValue(){if(this._cachedValue===void 0&&(this._cachedValue=r.consumeEnvironmentValue(this.key),this._cachedValue&&typeof this._cachedValue=="object"&&"subscribe"in this._cachedValue)){const e=this._cachedValue;typeof e.subscribe=="function"&&(this._subscriptionCleanup=e.subscribe(()=>{this.componentContext.setState(`_env_${this.key.name}_trigger`,Date.now())}))}return this._cachedValue}get projectedValue(){return this}}function m(t){const e=r.getCurrentComponentContext();return new c(t,e)}function p(t,e){r.provideEnvironmentValue(t,e)}function v(t,e){return new s(e)}function _(t){return t&&typeof t=="object"&&"wrappedValue"in t&&"key"in t&&"componentContext"in t&&t instanceof c}const f={Theme:r.createEnvironmentKey("Theme",{mode:"light",primaryColor:"#007AFF",secondaryColor:"#5856D6"}),Localization:r.createEnvironmentKey("Localization"),Navigation:r.createEnvironmentKey("Navigation"),Config:r.createEnvironmentKey("Config"),Auth:r.createEnvironmentKey("Auth")};exports.createEnvironmentKey=r.createEnvironmentKey;exports.CommonEnvironmentKeys=f;exports.EnvironmentObject=m;exports.ObservableEnvironmentObject=s;exports.createObservableEnvironmentObject=v;exports.isEnvironmentObject=_;exports.provideEnvironmentObject=p;
2
- //# sourceMappingURL=environment.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.cjs","sources":["../../src/state/environment.ts"],"sourcesContent":["/**\n * @EnvironmentObject Property Wrapper Implementation\n *\n * Implements SwiftUI's @EnvironmentObject property wrapper for dependency injection.\n * Provides reactive environment objects with automatic component re-rendering on changes.\n */\n\nimport { createEffect } from '../reactive/effect'\nimport { createSignal } from '../reactive/signal'\nimport type { Accessor, Setter } from '../reactive/types'\nimport {\n consumeEnvironmentValue,\n createEnvironmentKey,\n type EnvironmentKey,\n getCurrentComponentContext,\n provideEnvironmentValue,\n} from '../runtime/component-context'\nimport type { ComponentContext } from '../runtime/types'\n\n/**\n * Environment object wrapper interface\n */\nexport interface EnvironmentObject<T> {\n readonly wrappedValue: T\n readonly projectedValue: EnvironmentObject<T>\n readonly key: EnvironmentKey<T>\n readonly componentContext: ComponentContext\n}\n\n/**\n * Observable environment object that can notify subscribers of changes\n */\nexport class ObservableEnvironmentObject<T extends object> {\n private _signal: Accessor<T>\n private _setter: Setter<T>\n public _subscribers = new Set<() => void>()\n\n constructor(initialValue: T) {\n const [signal, setter] = createSignal(initialValue)\n this._signal = signal\n this._setter = setter\n }\n\n get value(): T {\n return this._signal()\n }\n\n set value(newValue: T) {\n this._setter(newValue)\n this.notifySubscribers()\n }\n\n /**\n * Update a property of the environment object\n */\n updateProperty<K extends keyof T>(key: K, value: T[K]): void {\n const currentValue = this._signal()\n const newValue = { ...currentValue, [key]: value }\n this._setter(newValue)\n this.notifySubscribers()\n }\n\n /**\n * Subscribe to changes\n */\n subscribe(callback: () => void): () => void {\n this._subscribers.add(callback)\n return () => this._subscribers.delete(callback)\n }\n\n private notifySubscribers(): void {\n for (const callback of this._subscribers) {\n try {\n callback()\n } catch (error) {\n console.error('Error in environment object subscriber:', error)\n }\n }\n }\n\n /**\n * Create a reactive effect that runs when this object changes\n */\n onChange(effect: (value: T) => void): () => void {\n const cleanup = createEffect(() => {\n effect(this._signal())\n })\n return () => cleanup.dispose()\n }\n}\n\n/**\n * Environment object implementation\n */\nclass EnvironmentObjectImpl<T> implements EnvironmentObject<T> {\n readonly key: EnvironmentKey<T>\n readonly componentContext: ComponentContext\n private _cachedValue: T | undefined\n private _subscriptionCleanup: (() => void) | undefined\n\n constructor(key: EnvironmentKey<T>, componentContext: ComponentContext) {\n this.key = key\n this.componentContext = componentContext\n\n // Set up cleanup on component unmount\n componentContext.onCleanup(() => {\n if (this._subscriptionCleanup) {\n this._subscriptionCleanup()\n }\n })\n }\n\n get wrappedValue(): T {\n if (this._cachedValue === undefined) {\n this._cachedValue = consumeEnvironmentValue(this.key)\n\n // Subscribe to changes if it's an observable environment object\n if (\n this._cachedValue &&\n typeof this._cachedValue === 'object' &&\n 'subscribe' in this._cachedValue\n ) {\n const observableObject = this._cachedValue as any\n if (typeof observableObject.subscribe === 'function') {\n this._subscriptionCleanup = observableObject.subscribe(() => {\n // Trigger component re-render when environment object changes\n this.componentContext.setState(`_env_${this.key.name}_trigger`, Date.now())\n })\n }\n }\n }\n\n return this._cachedValue\n }\n\n get projectedValue(): EnvironmentObject<T> {\n return this\n }\n}\n\n/**\n * @EnvironmentObject property wrapper factory\n *\n * Creates an @EnvironmentObject property wrapper for dependency injection.\n *\n * @param key - The environment key to look up\n * @returns An EnvironmentObject property wrapper\n *\n * @example\n * ```typescript\n * // Define environment key\n * const UserServiceKey = createEnvironmentKey<UserService>('UserService')\n *\n * class MyComponent {\n * @EnvironmentObject(UserServiceKey)\n * private userService: UserService\n *\n * render() {\n * const user = this.userService.getCurrentUser()\n * return Text(`Hello, ${user.name}!`)\n * }\n * }\n * ```\n */\nexport function EnvironmentObject<T>(key: EnvironmentKey<T>): EnvironmentObject<T> {\n const componentContext = getCurrentComponentContext()\n return new EnvironmentObjectImpl(key, componentContext)\n}\n\n/**\n * Provide an environment object to child components\n *\n * @param key - The environment key\n * @param value - The value to provide\n *\n * @example\n * ```typescript\n * const userService = new UserService()\n * provideEnvironmentObject(UserServiceKey, userService)\n * ```\n */\nexport function provideEnvironmentObject<T>(key: EnvironmentKey<T>, value: T): void {\n provideEnvironmentValue(key, value)\n}\n\n/**\n * Create an observable environment object\n *\n * @param key - The environment key\n * @param initialValue - The initial value\n * @returns An observable environment object\n *\n * @example\n * ```typescript\n * const ThemeKey = createEnvironmentKey<Theme>('Theme')\n * const theme = createObservableEnvironmentObject(ThemeKey, { mode: 'light' })\n * provideEnvironmentObject(ThemeKey, theme)\n * ```\n */\nexport function createObservableEnvironmentObject<T extends object>(\n _key: EnvironmentKey<ObservableEnvironmentObject<T>>,\n initialValue: T\n): ObservableEnvironmentObject<T> {\n return new ObservableEnvironmentObject(initialValue)\n}\n\n/**\n * Create and provide an environment object in one step\n *\n * @param key - The environment key\n * @param value - The value to provide\n * @returns The provided value for chaining\n */\nexport function createEnvironmentObject<T>(key: EnvironmentKey<T>, value: T): T {\n provideEnvironmentObject(key, value)\n return value\n}\n\n/**\n * Type guard for EnvironmentObject property wrappers\n */\nexport function isEnvironmentObject<T>(value: any): value is EnvironmentObject<T> {\n return (\n value &&\n typeof value === 'object' &&\n 'wrappedValue' in value &&\n 'key' in value &&\n 'componentContext' in value &&\n value instanceof EnvironmentObjectImpl\n )\n}\n\n/**\n * Environment object utilities\n */\nexport const EnvironmentObjectUtils = {\n /**\n * Check if an environment object is available\n */\n isAvailable<T>(key: EnvironmentKey<T>): boolean {\n try {\n const context = getCurrentComponentContext()\n return context.consume(key.symbol) !== undefined\n } catch {\n return false\n }\n },\n\n /**\n * Get environment object value without creating a dependency\n */\n peek<T>(key: EnvironmentKey<T>): T | undefined {\n try {\n const context = getCurrentComponentContext()\n return context.consume(key.symbol)\n } catch {\n return undefined\n }\n },\n\n /**\n * Create a derived environment object\n */\n derived<T, U>(\n sourceKey: EnvironmentKey<T>,\n targetKey: EnvironmentKey<U>,\n transform: (value: T) => U\n ): void {\n const sourceValue = consumeEnvironmentValue(sourceKey)\n const derivedValue = transform(sourceValue)\n provideEnvironmentObject(targetKey, derivedValue)\n },\n\n /**\n * Create a scoped environment context\n */\n scoped(setup: () => void, cleanup?: () => void): () => void {\n const context = getCurrentComponentContext()\n\n // Run setup\n setup()\n\n // Register cleanup\n if (cleanup) {\n context.onCleanup(cleanup)\n }\n\n return () => {\n if (cleanup) {\n cleanup()\n }\n }\n },\n}\n\n/**\n * Common environment keys for built-in services\n */\nexport const CommonEnvironmentKeys = {\n /**\n * Application theme\n */\n Theme: createEnvironmentKey<{\n mode: 'light' | 'dark'\n primaryColor: string\n secondaryColor: string\n }>('Theme', {\n mode: 'light',\n primaryColor: '#007AFF',\n secondaryColor: '#5856D6',\n }),\n\n /**\n * Localization service\n */\n Localization: createEnvironmentKey<{\n locale: string\n t: (key: string, params?: Record<string, any>) => string\n }>('Localization'),\n\n /**\n * Navigation service\n */\n Navigation: createEnvironmentKey<{\n navigate: (path: string) => void\n goBack: () => void\n getCurrentRoute: () => string\n }>('Navigation'),\n\n /**\n * Application configuration\n */\n Config: createEnvironmentKey<{\n apiUrl: string\n version: string\n environment: 'development' | 'staging' | 'production'\n }>('Config'),\n\n /**\n * User authentication\n */\n Auth: createEnvironmentKey<{\n isAuthenticated: boolean\n user?: { id: string; name: string; email: string }\n login: (credentials: any) => Promise<void>\n logout: () => Promise<void>\n }>('Auth'),\n}\n\n// Re-export environment key creation function\nexport { createEnvironmentKey }\n"],"names":["ObservableEnvironmentObject","initialValue","__publicField","signal","setter","createSignal","newValue","key","value","callback","error","effect","cleanup","createEffect","EnvironmentObjectImpl","componentContext","consumeEnvironmentValue","observableObject","EnvironmentObject","getCurrentComponentContext","provideEnvironmentObject","provideEnvironmentValue","createObservableEnvironmentObject","_key","isEnvironmentObject","CommonEnvironmentKeys","createEnvironmentKey"],"mappings":"wWAgCO,MAAMA,CAA8C,CAKzD,YAAYC,EAAiB,CAJ7BC,EAAA,KAAQ,SAAA,EACRA,EAAA,KAAQ,SAAA,EACRA,EAAA,KAAO,mBAAmB,GAAgB,EAGxC,KAAM,CAACC,EAAQC,CAAM,EAAIC,EAAAA,aAAaJ,CAAY,EAClD,KAAK,QAAUE,EACf,KAAK,QAAUC,CACjB,CAEA,IAAI,OAAW,CACb,OAAO,KAAK,QAAA,CACd,CAEA,IAAI,MAAME,EAAa,CACrB,KAAK,QAAQA,CAAQ,EACrB,KAAK,kBAAA,CACP,CAKA,eAAkCC,EAAQC,EAAmB,CAE3D,MAAMF,EAAW,CAAE,GADE,KAAK,QAAA,EACU,CAACC,CAAG,EAAGC,CAAA,EAC3C,KAAK,QAAQF,CAAQ,EACrB,KAAK,kBAAA,CACP,CAKA,UAAUG,EAAkC,CAC1C,YAAK,aAAa,IAAIA,CAAQ,EACvB,IAAM,KAAK,aAAa,OAAOA,CAAQ,CAChD,CAEQ,mBAA0B,CAChC,UAAWA,KAAY,KAAK,aAC1B,GAAI,CACFA,EAAA,CACF,OAASC,EAAO,CACd,QAAQ,MAAM,0CAA2CA,CAAK,CAChE,CAEJ,CAKA,SAASC,EAAwC,CAC/C,MAAMC,EAAUC,EAAAA,aAAa,IAAM,CACjCF,EAAO,KAAK,SAAS,CACvB,CAAC,EACD,MAAO,IAAMC,EAAQ,QAAA,CACvB,CACF,CAKA,MAAME,CAAyD,CAM7D,YAAYP,EAAwBQ,EAAoC,CALxEb,EAAA,KAAS,KAAA,EACTA,EAAA,KAAS,kBAAA,EACTA,EAAA,KAAQ,cAAA,EACRA,EAAA,KAAQ,sBAAA,EAGN,KAAK,IAAMK,EACX,KAAK,iBAAmBQ,EAGxBA,EAAiB,UAAU,IAAM,CAC3B,KAAK,sBACP,KAAK,qBAAA,CAET,CAAC,CACH,CAEA,IAAI,cAAkB,CACpB,GAAI,KAAK,eAAiB,SACxB,KAAK,aAAeC,0BAAwB,KAAK,GAAG,EAIlD,KAAK,cACL,OAAO,KAAK,cAAiB,UAC7B,cAAe,KAAK,cACpB,CACA,MAAMC,EAAmB,KAAK,aAC1B,OAAOA,EAAiB,WAAc,aACxC,KAAK,qBAAuBA,EAAiB,UAAU,IAAM,CAE3D,KAAK,iBAAiB,SAAS,QAAQ,KAAK,IAAI,IAAI,WAAY,KAAK,IAAA,CAAK,CAC5E,CAAC,EAEL,CAGF,OAAO,KAAK,YACd,CAEA,IAAI,gBAAuC,CACzC,OAAO,IACT,CACF,CA0BO,SAASC,EAAqBX,EAA8C,CACjF,MAAMQ,EAAmBI,EAAAA,2BAAA,EACzB,OAAO,IAAIL,EAAsBP,EAAKQ,CAAgB,CACxD,CAcO,SAASK,EAA4Bb,EAAwBC,EAAgB,CAClFa,EAAAA,wBAAwBd,EAAKC,CAAK,CACpC,CAgBO,SAASc,EACdC,EACAtB,EACgC,CAChC,OAAO,IAAID,EAA4BC,CAAY,CACrD,CAiBO,SAASuB,EAAuBhB,EAA2C,CAChF,OACEA,GACA,OAAOA,GAAU,UACjB,iBAAkBA,GAClB,QAASA,GACT,qBAAsBA,GACtBA,aAAiBM,CAErB,CAoEO,MAAMW,EAAwB,CAInC,MAAOC,EAAAA,qBAIJ,QAAS,CACV,KAAM,QACN,aAAc,UACd,eAAgB,SAAA,CACjB,EAKD,aAAcA,EAAAA,qBAGX,cAAc,EAKjB,WAAYA,EAAAA,qBAIT,YAAY,EAKf,OAAQA,EAAAA,qBAIL,QAAQ,EAKX,KAAMA,EAAAA,qBAKH,MAAM,CACX"}
@@ -1,115 +0,0 @@
1
- import { createEffect as a } from "../reactive/effect.js";
2
- import { createSignal as u } from "../reactive/signal.js";
3
- import { createEnvironmentKey as i, getCurrentComponentContext as h, provideEnvironmentValue as b, consumeEnvironmentValue as l } from "../runtime/component-context.js";
4
- var p = Object.defineProperty, _ = (t, e, n) => e in t ? p(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, r = (t, e, n) => _(t, typeof e != "symbol" ? e + "" : e, n);
5
- class m {
6
- constructor(e) {
7
- r(this, "_signal"), r(this, "_setter"), r(this, "_subscribers", /* @__PURE__ */ new Set());
8
- const [n, s] = u(e);
9
- this._signal = n, this._setter = s;
10
- }
11
- get value() {
12
- return this._signal();
13
- }
14
- set value(e) {
15
- this._setter(e), this.notifySubscribers();
16
- }
17
- /**
18
- * Update a property of the environment object
19
- */
20
- updateProperty(e, n) {
21
- const c = { ...this._signal(), [e]: n };
22
- this._setter(c), this.notifySubscribers();
23
- }
24
- /**
25
- * Subscribe to changes
26
- */
27
- subscribe(e) {
28
- return this._subscribers.add(e), () => this._subscribers.delete(e);
29
- }
30
- notifySubscribers() {
31
- for (const e of this._subscribers)
32
- try {
33
- e();
34
- } catch (n) {
35
- console.error("Error in environment object subscriber:", n);
36
- }
37
- }
38
- /**
39
- * Create a reactive effect that runs when this object changes
40
- */
41
- onChange(e) {
42
- const n = a(() => {
43
- e(this._signal());
44
- });
45
- return () => n.dispose();
46
- }
47
- }
48
- class o {
49
- constructor(e, n) {
50
- r(this, "key"), r(this, "componentContext"), r(this, "_cachedValue"), r(this, "_subscriptionCleanup"), this.key = e, this.componentContext = n, n.onCleanup(() => {
51
- this._subscriptionCleanup && this._subscriptionCleanup();
52
- });
53
- }
54
- get wrappedValue() {
55
- if (this._cachedValue === void 0 && (this._cachedValue = l(this.key), this._cachedValue && typeof this._cachedValue == "object" && "subscribe" in this._cachedValue)) {
56
- const e = this._cachedValue;
57
- typeof e.subscribe == "function" && (this._subscriptionCleanup = e.subscribe(() => {
58
- this.componentContext.setState(`_env_${this.key.name}_trigger`, Date.now());
59
- }));
60
- }
61
- return this._cachedValue;
62
- }
63
- get projectedValue() {
64
- return this;
65
- }
66
- }
67
- function v(t) {
68
- const e = h();
69
- return new o(t, e);
70
- }
71
- function C(t, e) {
72
- b(t, e);
73
- }
74
- function y(t, e) {
75
- return new m(e);
76
- }
77
- function V(t) {
78
- return t && typeof t == "object" && "wrappedValue" in t && "key" in t && "componentContext" in t && t instanceof o;
79
- }
80
- const E = {
81
- /**
82
- * Application theme
83
- */
84
- Theme: i("Theme", {
85
- mode: "light",
86
- primaryColor: "#007AFF",
87
- secondaryColor: "#5856D6"
88
- }),
89
- /**
90
- * Localization service
91
- */
92
- Localization: i("Localization"),
93
- /**
94
- * Navigation service
95
- */
96
- Navigation: i("Navigation"),
97
- /**
98
- * Application configuration
99
- */
100
- Config: i("Config"),
101
- /**
102
- * User authentication
103
- */
104
- Auth: i("Auth")
105
- };
106
- export {
107
- E as CommonEnvironmentKeys,
108
- v as EnvironmentObject,
109
- m as ObservableEnvironmentObject,
110
- i as createEnvironmentKey,
111
- y as createObservableEnvironmentObject,
112
- V as isEnvironmentObject,
113
- C as provideEnvironmentObject
114
- };
115
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sources":["../../src/state/environment.ts"],"sourcesContent":["/**\n * @EnvironmentObject Property Wrapper Implementation\n *\n * Implements SwiftUI's @EnvironmentObject property wrapper for dependency injection.\n * Provides reactive environment objects with automatic component re-rendering on changes.\n */\n\nimport { createEffect } from '../reactive/effect'\nimport { createSignal } from '../reactive/signal'\nimport type { Accessor, Setter } from '../reactive/types'\nimport {\n consumeEnvironmentValue,\n createEnvironmentKey,\n type EnvironmentKey,\n getCurrentComponentContext,\n provideEnvironmentValue,\n} from '../runtime/component-context'\nimport type { ComponentContext } from '../runtime/types'\n\n/**\n * Environment object wrapper interface\n */\nexport interface EnvironmentObject<T> {\n readonly wrappedValue: T\n readonly projectedValue: EnvironmentObject<T>\n readonly key: EnvironmentKey<T>\n readonly componentContext: ComponentContext\n}\n\n/**\n * Observable environment object that can notify subscribers of changes\n */\nexport class ObservableEnvironmentObject<T extends object> {\n private _signal: Accessor<T>\n private _setter: Setter<T>\n public _subscribers = new Set<() => void>()\n\n constructor(initialValue: T) {\n const [signal, setter] = createSignal(initialValue)\n this._signal = signal\n this._setter = setter\n }\n\n get value(): T {\n return this._signal()\n }\n\n set value(newValue: T) {\n this._setter(newValue)\n this.notifySubscribers()\n }\n\n /**\n * Update a property of the environment object\n */\n updateProperty<K extends keyof T>(key: K, value: T[K]): void {\n const currentValue = this._signal()\n const newValue = { ...currentValue, [key]: value }\n this._setter(newValue)\n this.notifySubscribers()\n }\n\n /**\n * Subscribe to changes\n */\n subscribe(callback: () => void): () => void {\n this._subscribers.add(callback)\n return () => this._subscribers.delete(callback)\n }\n\n private notifySubscribers(): void {\n for (const callback of this._subscribers) {\n try {\n callback()\n } catch (error) {\n console.error('Error in environment object subscriber:', error)\n }\n }\n }\n\n /**\n * Create a reactive effect that runs when this object changes\n */\n onChange(effect: (value: T) => void): () => void {\n const cleanup = createEffect(() => {\n effect(this._signal())\n })\n return () => cleanup.dispose()\n }\n}\n\n/**\n * Environment object implementation\n */\nclass EnvironmentObjectImpl<T> implements EnvironmentObject<T> {\n readonly key: EnvironmentKey<T>\n readonly componentContext: ComponentContext\n private _cachedValue: T | undefined\n private _subscriptionCleanup: (() => void) | undefined\n\n constructor(key: EnvironmentKey<T>, componentContext: ComponentContext) {\n this.key = key\n this.componentContext = componentContext\n\n // Set up cleanup on component unmount\n componentContext.onCleanup(() => {\n if (this._subscriptionCleanup) {\n this._subscriptionCleanup()\n }\n })\n }\n\n get wrappedValue(): T {\n if (this._cachedValue === undefined) {\n this._cachedValue = consumeEnvironmentValue(this.key)\n\n // Subscribe to changes if it's an observable environment object\n if (\n this._cachedValue &&\n typeof this._cachedValue === 'object' &&\n 'subscribe' in this._cachedValue\n ) {\n const observableObject = this._cachedValue as any\n if (typeof observableObject.subscribe === 'function') {\n this._subscriptionCleanup = observableObject.subscribe(() => {\n // Trigger component re-render when environment object changes\n this.componentContext.setState(`_env_${this.key.name}_trigger`, Date.now())\n })\n }\n }\n }\n\n return this._cachedValue\n }\n\n get projectedValue(): EnvironmentObject<T> {\n return this\n }\n}\n\n/**\n * @EnvironmentObject property wrapper factory\n *\n * Creates an @EnvironmentObject property wrapper for dependency injection.\n *\n * @param key - The environment key to look up\n * @returns An EnvironmentObject property wrapper\n *\n * @example\n * ```typescript\n * // Define environment key\n * const UserServiceKey = createEnvironmentKey<UserService>('UserService')\n *\n * class MyComponent {\n * @EnvironmentObject(UserServiceKey)\n * private userService: UserService\n *\n * render() {\n * const user = this.userService.getCurrentUser()\n * return Text(`Hello, ${user.name}!`)\n * }\n * }\n * ```\n */\nexport function EnvironmentObject<T>(key: EnvironmentKey<T>): EnvironmentObject<T> {\n const componentContext = getCurrentComponentContext()\n return new EnvironmentObjectImpl(key, componentContext)\n}\n\n/**\n * Provide an environment object to child components\n *\n * @param key - The environment key\n * @param value - The value to provide\n *\n * @example\n * ```typescript\n * const userService = new UserService()\n * provideEnvironmentObject(UserServiceKey, userService)\n * ```\n */\nexport function provideEnvironmentObject<T>(key: EnvironmentKey<T>, value: T): void {\n provideEnvironmentValue(key, value)\n}\n\n/**\n * Create an observable environment object\n *\n * @param key - The environment key\n * @param initialValue - The initial value\n * @returns An observable environment object\n *\n * @example\n * ```typescript\n * const ThemeKey = createEnvironmentKey<Theme>('Theme')\n * const theme = createObservableEnvironmentObject(ThemeKey, { mode: 'light' })\n * provideEnvironmentObject(ThemeKey, theme)\n * ```\n */\nexport function createObservableEnvironmentObject<T extends object>(\n _key: EnvironmentKey<ObservableEnvironmentObject<T>>,\n initialValue: T\n): ObservableEnvironmentObject<T> {\n return new ObservableEnvironmentObject(initialValue)\n}\n\n/**\n * Create and provide an environment object in one step\n *\n * @param key - The environment key\n * @param value - The value to provide\n * @returns The provided value for chaining\n */\nexport function createEnvironmentObject<T>(key: EnvironmentKey<T>, value: T): T {\n provideEnvironmentObject(key, value)\n return value\n}\n\n/**\n * Type guard for EnvironmentObject property wrappers\n */\nexport function isEnvironmentObject<T>(value: any): value is EnvironmentObject<T> {\n return (\n value &&\n typeof value === 'object' &&\n 'wrappedValue' in value &&\n 'key' in value &&\n 'componentContext' in value &&\n value instanceof EnvironmentObjectImpl\n )\n}\n\n/**\n * Environment object utilities\n */\nexport const EnvironmentObjectUtils = {\n /**\n * Check if an environment object is available\n */\n isAvailable<T>(key: EnvironmentKey<T>): boolean {\n try {\n const context = getCurrentComponentContext()\n return context.consume(key.symbol) !== undefined\n } catch {\n return false\n }\n },\n\n /**\n * Get environment object value without creating a dependency\n */\n peek<T>(key: EnvironmentKey<T>): T | undefined {\n try {\n const context = getCurrentComponentContext()\n return context.consume(key.symbol)\n } catch {\n return undefined\n }\n },\n\n /**\n * Create a derived environment object\n */\n derived<T, U>(\n sourceKey: EnvironmentKey<T>,\n targetKey: EnvironmentKey<U>,\n transform: (value: T) => U\n ): void {\n const sourceValue = consumeEnvironmentValue(sourceKey)\n const derivedValue = transform(sourceValue)\n provideEnvironmentObject(targetKey, derivedValue)\n },\n\n /**\n * Create a scoped environment context\n */\n scoped(setup: () => void, cleanup?: () => void): () => void {\n const context = getCurrentComponentContext()\n\n // Run setup\n setup()\n\n // Register cleanup\n if (cleanup) {\n context.onCleanup(cleanup)\n }\n\n return () => {\n if (cleanup) {\n cleanup()\n }\n }\n },\n}\n\n/**\n * Common environment keys for built-in services\n */\nexport const CommonEnvironmentKeys = {\n /**\n * Application theme\n */\n Theme: createEnvironmentKey<{\n mode: 'light' | 'dark'\n primaryColor: string\n secondaryColor: string\n }>('Theme', {\n mode: 'light',\n primaryColor: '#007AFF',\n secondaryColor: '#5856D6',\n }),\n\n /**\n * Localization service\n */\n Localization: createEnvironmentKey<{\n locale: string\n t: (key: string, params?: Record<string, any>) => string\n }>('Localization'),\n\n /**\n * Navigation service\n */\n Navigation: createEnvironmentKey<{\n navigate: (path: string) => void\n goBack: () => void\n getCurrentRoute: () => string\n }>('Navigation'),\n\n /**\n * Application configuration\n */\n Config: createEnvironmentKey<{\n apiUrl: string\n version: string\n environment: 'development' | 'staging' | 'production'\n }>('Config'),\n\n /**\n * User authentication\n */\n Auth: createEnvironmentKey<{\n isAuthenticated: boolean\n user?: { id: string; name: string; email: string }\n login: (credentials: any) => Promise<void>\n logout: () => Promise<void>\n }>('Auth'),\n}\n\n// Re-export environment key creation function\nexport { createEnvironmentKey }\n"],"names":["ObservableEnvironmentObject","initialValue","__publicField","signal","setter","createSignal","newValue","key","value","callback","error","effect","cleanup","createEffect","EnvironmentObjectImpl","componentContext","consumeEnvironmentValue","observableObject","EnvironmentObject","getCurrentComponentContext","provideEnvironmentObject","provideEnvironmentValue","createObservableEnvironmentObject","_key","isEnvironmentObject","CommonEnvironmentKeys","createEnvironmentKey"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./environment.cjs"),o=require("../reactive/signal.cjs");require("../reactive/cleanup.cjs");require("../reactive/unified-scheduler.cjs");require("../reactive/scheduler.cjs");require("../reactive/theme.cjs");const r=require("./state-manager.cjs"),s=a.provideEnvironmentObject;function c(e){return console.warn("useEnvironmentObject is deprecated, use EnvironmentObject instead"),a.EnvironmentObject(e)}const b={isPropertyWrapper(e){return e&&typeof e=="object"&&"wrappedValue"in e&&"projectedValue"in e},unwrap(e){return this.isPropertyWrapper(e)?e.wrappedValue:e},createDebugSnapshot(e){if(typeof window<"u"){const n=window.__TACHUI_DEBUG__;if(n)return{states:n.states?Object.keys(n.states).filter(t=>t.startsWith(e)).reduce((t,i)=>(t[i]=n.states[i].getValue(),t),{}):{},observedObjects:n.observedObjects?Object.keys(n.observedObjects).filter(t=>t.startsWith(e)).reduce((t,i)=>(t[i]={notificationCount:n.observedObjects[i].getNotificationCount(),object:n.observedObjects[i].getObject()},t),{}):{}}}return null}};exports.CommonEnvironmentKeys=a.CommonEnvironmentKeys;exports.EnvironmentObject=a.EnvironmentObject;exports.createObservableEnvironmentObject=a.createObservableEnvironmentObject;exports.isEnvironmentObject=a.isEnvironmentObject;exports.provideEnvironmentObject=a.provideEnvironmentObject;exports.createSignal=o.createSignal;exports.StateManagerImpl=r.StateManagerImpl;exports.createStateManager=r.createStateManager;exports.getAllStateManagers=r.getAllStateManagers;exports.getStateManager=r.getStateManager;exports.getStateManagerDebugInfo=r.getStateManagerDebugInfo;exports.initializeStateDebugging=r.initializeStateDebugging;exports.registerStateManager=r.registerStateManager;exports.unregisterStateManager=r.unregisterStateManager;exports.StateUtils=b;exports.createEnvironmentObjectProvider=s;exports.useEnvironmentObject=c;
2
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/state/index.ts"],"sourcesContent":["/**\n * SwiftUI-Style State Management\n *\n * This module provides SwiftUI-compatible property wrappers for state management:\n * - @State: Local component state with automatic reactivity\n * - @Binding: Two-way data binding between parent and child components\n * - @ObservedObject: Observation of external objects that implement ObservableObject\n * - @EnvironmentObject: Dependency injection through environment context\n */\n\nimport {\n CommonEnvironmentKeys,\n createEnvironmentKey,\n createObservableEnvironmentObject,\n EnvironmentObject,\n provideEnvironmentObject,\n} from './environment'\nimport { makeObservable, observable } from './observed-object'\n// Import actual implementations\nimport { createBinding, createStateBinding, State } from './state'\n\n// Enhanced @Binding property wrapper\nexport {\n BindingImpl,\n BindingUtils,\n createBinding as createEnhancedBinding,\n isBinding as isEnhancedBinding,\n} from './binding'\n// @EnvironmentObject property wrapper\nexport {\n CommonEnvironmentKeys,\n createEnvironmentKey,\n createObservableEnvironmentObject,\n EnvironmentObject,\n isEnvironmentObject,\n provideEnvironmentObject,\n} from './environment'\n\n// @ObservedObject property wrapper\nexport {\n createObservableStore,\n isObservableObject,\n isObservedObject,\n makeObservable,\n ObservableObjectBase,\n ObservedObjectWrapper as ObservedObject,\n observable,\n} from './observed-object'\n// @State property wrapper\nexport {\n createBinding,\n createStateBinding,\n isBinding,\n isState,\n State,\n unwrapValue,\n} from './state'\n// Core types\nexport type {\n Binding,\n BindingFactory,\n BindingOptions,\n BindingValue,\n ComputedProperty,\n EnvironmentKey,\n EnvironmentObject as IEnvironmentObject,\n EnvironmentObjectFactory,\n EnvironmentObjectOptions,\n EnvironmentObjectProvider,\n ObservableObject,\n ObservableObjectOptions,\n ObservedObject as IObservedObject,\n ObservedObjectFactory,\n PropertyWrapper,\n PropertyWrapperMetadata,\n PropertyWrapperRegistry,\n State as IState,\n StateBinding,\n StateFactory,\n StateManager,\n StateWrapperOptions,\n} from './types'\n\n// Legacy compatibility exports (for failing tests)\nexport const createEnvironmentObjectProvider = provideEnvironmentObject\nexport function useEnvironmentObject(key: any) {\n console.warn('useEnvironmentObject is deprecated, use EnvironmentObject instead')\n return EnvironmentObject(key)\n}\n\n/**\n * Re-export commonly used reactive primitives from the reactive system\n */\nexport { createComputed, createEffect, createMemo, createSignal } from '../reactive'\n// State manager\nexport {\n createStateManager,\n getAllStateManagers,\n getStateManager,\n getStateManagerDebugInfo,\n initializeStateDebugging,\n registerStateManager,\n StateManagerImpl,\n unregisterStateManager,\n} from './state-manager'\n\n/**\n * Utility functions for working with property wrappers\n */\nexport const StateUtils = {\n /**\n * Check if a value is any kind of property wrapper\n */\n isPropertyWrapper(value: any): value is { wrappedValue: any; projectedValue: any } {\n return (\n value && typeof value === 'object' && 'wrappedValue' in value && 'projectedValue' in value\n )\n },\n\n /**\n * Extract the wrapped value from any property wrapper\n */\n unwrap<T>(wrapper: any): T {\n if (this.isPropertyWrapper(wrapper)) {\n return wrapper.wrappedValue\n }\n return wrapper\n },\n\n /**\n * Create a debug snapshot of all property wrappers in a component\n */\n createDebugSnapshot(componentId: string): any {\n if (typeof window !== 'undefined') {\n const debug = (window as any).__TACHUI_DEBUG__\n if (debug) {\n return {\n states: debug.states\n ? Object.keys(debug.states)\n .filter((key: string) => key.startsWith(componentId))\n .reduce((acc: any, key: string) => {\n acc[key] = debug.states[key].getValue()\n return acc\n }, {})\n : {},\n observedObjects: debug.observedObjects\n ? Object.keys(debug.observedObjects)\n .filter((key: string) => key.startsWith(componentId))\n .reduce((acc: any, key: string) => {\n acc[key] = {\n notificationCount: debug.observedObjects[key].getNotificationCount(),\n object: debug.observedObjects[key].getObject(),\n }\n return acc\n }, {})\n : {},\n }\n }\n }\n return null\n },\n}\n\n/**\n * Default export with all property wrappers\n */\nexport default {\n State,\n EnvironmentObject,\n createStateBinding,\n createBinding,\n makeObservable,\n observable,\n createEnvironmentKey,\n provideEnvironmentObject,\n createObservableEnvironmentObject,\n CommonEnvironmentKeys,\n StateUtils,\n}\n"],"names":["createEnvironmentObjectProvider","provideEnvironmentObject","useEnvironmentObject","key","EnvironmentObject","StateUtils","value","wrapper","componentId","debug","acc"],"mappings":"sVAoFaA,EAAkCC,EAAAA,yBACxC,SAASC,EAAqBC,EAAU,CAC7C,eAAQ,KAAK,mEAAmE,EACzEC,EAAAA,kBAAkBD,CAAG,CAC9B,CAqBO,MAAME,EAAa,CAIxB,kBAAkBC,EAAiE,CACjF,OACEA,GAAS,OAAOA,GAAU,UAAY,iBAAkBA,GAAS,mBAAoBA,CAEzF,EAKA,OAAUC,EAAiB,CACzB,OAAI,KAAK,kBAAkBA,CAAO,EACzBA,EAAQ,aAEVA,CACT,EAKA,oBAAoBC,EAA0B,CAC5C,GAAI,OAAO,OAAW,IAAa,CACjC,MAAMC,EAAS,OAAe,iBAC9B,GAAIA,EACF,MAAO,CACL,OAAQA,EAAM,OACV,OAAO,KAAKA,EAAM,MAAM,EACrB,OAAQN,GAAgBA,EAAI,WAAWK,CAAW,CAAC,EACnD,OAAO,CAACE,EAAUP,KACjBO,EAAIP,CAAG,EAAIM,EAAM,OAAON,CAAG,EAAE,SAAA,EACtBO,GACN,CAAA,CAAE,EACP,CAAA,EACJ,gBAAiBD,EAAM,gBACnB,OAAO,KAAKA,EAAM,eAAe,EAC9B,OAAQN,GAAgBA,EAAI,WAAWK,CAAW,CAAC,EACnD,OAAO,CAACE,EAAUP,KACjBO,EAAIP,CAAG,EAAI,CACT,kBAAmBM,EAAM,gBAAgBN,CAAG,EAAE,qBAAA,EAC9C,OAAQM,EAAM,gBAAgBN,CAAG,EAAE,UAAA,CAAU,EAExCO,GACN,CAAA,CAAE,EACP,CAAA,CAAC,CAGX,CACA,OAAO,IACT,CACF"}
@@ -1,63 +0,0 @@
1
- import { provideEnvironmentObject as o, EnvironmentObject as i } from "./environment.js";
2
- import { CommonEnvironmentKeys as O, createObservableEnvironmentObject as f, isEnvironmentObject as v } from "./environment.js";
3
- import { createSignal as S } from "../reactive/signal.js";
4
- import "../reactive/cleanup.js";
5
- import "../reactive/unified-scheduler.js";
6
- import "../reactive/scheduler.js";
7
- import "../reactive/theme.js";
8
- import { StateManagerImpl as M, createStateManager as w, getAllStateManagers as _, getStateManager as h, getStateManagerDebugInfo as x, initializeStateDebugging as y, registerStateManager as C, unregisterStateManager as D } from "./state-manager.js";
9
- const g = o;
10
- function p(e) {
11
- return console.warn("useEnvironmentObject is deprecated, use EnvironmentObject instead"), i(e);
12
- }
13
- const m = {
14
- /**
15
- * Check if a value is any kind of property wrapper
16
- */
17
- isPropertyWrapper(e) {
18
- return e && typeof e == "object" && "wrappedValue" in e && "projectedValue" in e;
19
- },
20
- /**
21
- * Extract the wrapped value from any property wrapper
22
- */
23
- unwrap(e) {
24
- return this.isPropertyWrapper(e) ? e.wrappedValue : e;
25
- },
26
- /**
27
- * Create a debug snapshot of all property wrappers in a component
28
- */
29
- createDebugSnapshot(e) {
30
- if (typeof window < "u") {
31
- const r = window.__TACHUI_DEBUG__;
32
- if (r)
33
- return {
34
- states: r.states ? Object.keys(r.states).filter((t) => t.startsWith(e)).reduce((t, n) => (t[n] = r.states[n].getValue(), t), {}) : {},
35
- observedObjects: r.observedObjects ? Object.keys(r.observedObjects).filter((t) => t.startsWith(e)).reduce((t, n) => (t[n] = {
36
- notificationCount: r.observedObjects[n].getNotificationCount(),
37
- object: r.observedObjects[n].getObject()
38
- }, t), {}) : {}
39
- };
40
- }
41
- return null;
42
- }
43
- };
44
- export {
45
- O as CommonEnvironmentKeys,
46
- i as EnvironmentObject,
47
- M as StateManagerImpl,
48
- m as StateUtils,
49
- g as createEnvironmentObjectProvider,
50
- f as createObservableEnvironmentObject,
51
- S as createSignal,
52
- w as createStateManager,
53
- _ as getAllStateManagers,
54
- h as getStateManager,
55
- x as getStateManagerDebugInfo,
56
- y as initializeStateDebugging,
57
- v as isEnvironmentObject,
58
- o as provideEnvironmentObject,
59
- C as registerStateManager,
60
- D as unregisterStateManager,
61
- p as useEnvironmentObject
62
- };
63
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/state/index.ts"],"sourcesContent":["/**\n * SwiftUI-Style State Management\n *\n * This module provides SwiftUI-compatible property wrappers for state management:\n * - @State: Local component state with automatic reactivity\n * - @Binding: Two-way data binding between parent and child components\n * - @ObservedObject: Observation of external objects that implement ObservableObject\n * - @EnvironmentObject: Dependency injection through environment context\n */\n\nimport {\n CommonEnvironmentKeys,\n createEnvironmentKey,\n createObservableEnvironmentObject,\n EnvironmentObject,\n provideEnvironmentObject,\n} from './environment'\nimport { makeObservable, observable } from './observed-object'\n// Import actual implementations\nimport { createBinding, createStateBinding, State } from './state'\n\n// Enhanced @Binding property wrapper\nexport {\n BindingImpl,\n BindingUtils,\n createBinding as createEnhancedBinding,\n isBinding as isEnhancedBinding,\n} from './binding'\n// @EnvironmentObject property wrapper\nexport {\n CommonEnvironmentKeys,\n createEnvironmentKey,\n createObservableEnvironmentObject,\n EnvironmentObject,\n isEnvironmentObject,\n provideEnvironmentObject,\n} from './environment'\n\n// @ObservedObject property wrapper\nexport {\n createObservableStore,\n isObservableObject,\n isObservedObject,\n makeObservable,\n ObservableObjectBase,\n ObservedObjectWrapper as ObservedObject,\n observable,\n} from './observed-object'\n// @State property wrapper\nexport {\n createBinding,\n createStateBinding,\n isBinding,\n isState,\n State,\n unwrapValue,\n} from './state'\n// Core types\nexport type {\n Binding,\n BindingFactory,\n BindingOptions,\n BindingValue,\n ComputedProperty,\n EnvironmentKey,\n EnvironmentObject as IEnvironmentObject,\n EnvironmentObjectFactory,\n EnvironmentObjectOptions,\n EnvironmentObjectProvider,\n ObservableObject,\n ObservableObjectOptions,\n ObservedObject as IObservedObject,\n ObservedObjectFactory,\n PropertyWrapper,\n PropertyWrapperMetadata,\n PropertyWrapperRegistry,\n State as IState,\n StateBinding,\n StateFactory,\n StateManager,\n StateWrapperOptions,\n} from './types'\n\n// Legacy compatibility exports (for failing tests)\nexport const createEnvironmentObjectProvider = provideEnvironmentObject\nexport function useEnvironmentObject(key: any) {\n console.warn('useEnvironmentObject is deprecated, use EnvironmentObject instead')\n return EnvironmentObject(key)\n}\n\n/**\n * Re-export commonly used reactive primitives from the reactive system\n */\nexport { createComputed, createEffect, createMemo, createSignal } from '../reactive'\n// State manager\nexport {\n createStateManager,\n getAllStateManagers,\n getStateManager,\n getStateManagerDebugInfo,\n initializeStateDebugging,\n registerStateManager,\n StateManagerImpl,\n unregisterStateManager,\n} from './state-manager'\n\n/**\n * Utility functions for working with property wrappers\n */\nexport const StateUtils = {\n /**\n * Check if a value is any kind of property wrapper\n */\n isPropertyWrapper(value: any): value is { wrappedValue: any; projectedValue: any } {\n return (\n value && typeof value === 'object' && 'wrappedValue' in value && 'projectedValue' in value\n )\n },\n\n /**\n * Extract the wrapped value from any property wrapper\n */\n unwrap<T>(wrapper: any): T {\n if (this.isPropertyWrapper(wrapper)) {\n return wrapper.wrappedValue\n }\n return wrapper\n },\n\n /**\n * Create a debug snapshot of all property wrappers in a component\n */\n createDebugSnapshot(componentId: string): any {\n if (typeof window !== 'undefined') {\n const debug = (window as any).__TACHUI_DEBUG__\n if (debug) {\n return {\n states: debug.states\n ? Object.keys(debug.states)\n .filter((key: string) => key.startsWith(componentId))\n .reduce((acc: any, key: string) => {\n acc[key] = debug.states[key].getValue()\n return acc\n }, {})\n : {},\n observedObjects: debug.observedObjects\n ? Object.keys(debug.observedObjects)\n .filter((key: string) => key.startsWith(componentId))\n .reduce((acc: any, key: string) => {\n acc[key] = {\n notificationCount: debug.observedObjects[key].getNotificationCount(),\n object: debug.observedObjects[key].getObject(),\n }\n return acc\n }, {})\n : {},\n }\n }\n }\n return null\n },\n}\n\n/**\n * Default export with all property wrappers\n */\nexport default {\n State,\n EnvironmentObject,\n createStateBinding,\n createBinding,\n makeObservable,\n observable,\n createEnvironmentKey,\n provideEnvironmentObject,\n createObservableEnvironmentObject,\n CommonEnvironmentKeys,\n StateUtils,\n}\n"],"names":["createEnvironmentObjectProvider","provideEnvironmentObject","useEnvironmentObject","key","EnvironmentObject","StateUtils","value","wrapper","componentId","debug","acc"],"mappings":";;;;;;;;AAoFO,MAAMA,IAAkCC;AACxC,SAASC,EAAqBC,GAAU;AAC7C,iBAAQ,KAAK,mEAAmE,GACzEC,EAAkBD,CAAG;AAC9B;AAqBO,MAAME,IAAa;AAAA;AAAA;AAAA;AAAA,EAIxB,kBAAkBC,GAAiE;AACjF,WACEA,KAAS,OAAOA,KAAU,YAAY,kBAAkBA,KAAS,oBAAoBA;AAAA,EAEzF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAUC,GAAiB;AACzB,WAAI,KAAK,kBAAkBA,CAAO,IACzBA,EAAQ,eAEVA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoBC,GAA0B;AAC5C,QAAI,OAAO,SAAW,KAAa;AACjC,YAAMC,IAAS,OAAe;AAC9B,UAAIA;AACF,eAAO;AAAA,UACL,QAAQA,EAAM,SACV,OAAO,KAAKA,EAAM,MAAM,EACrB,OAAO,CAACN,MAAgBA,EAAI,WAAWK,CAAW,CAAC,EACnD,OAAO,CAACE,GAAUP,OACjBO,EAAIP,CAAG,IAAIM,EAAM,OAAON,CAAG,EAAE,SAAA,GACtBO,IACN,CAAA,CAAE,IACP,CAAA;AAAA,UACJ,iBAAiBD,EAAM,kBACnB,OAAO,KAAKA,EAAM,eAAe,EAC9B,OAAO,CAACN,MAAgBA,EAAI,WAAWK,CAAW,CAAC,EACnD,OAAO,CAACE,GAAUP,OACjBO,EAAIP,CAAG,IAAI;AAAA,YACT,mBAAmBM,EAAM,gBAAgBN,CAAG,EAAE,qBAAA;AAAA,YAC9C,QAAQM,EAAM,gBAAgBN,CAAG,EAAE,UAAA;AAAA,UAAU,GAExCO,IACN,CAAA,CAAE,IACP,CAAA;AAAA,QAAC;AAAA,IAGX;AACA,WAAO;AAAA,EACT;AACF;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../reactive/context.cjs"),g=require("../reactive/effect.cjs"),C=require("../reactive/signal.cjs");var O=Object.defineProperty,d=(e,t,n)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,s=(e,t,n)=>d(e,typeof t!="symbol"?t+"":t,n);class c{constructor(){s(this,"_objectWillChange"),s(this,"_notifyCount",0);const[t,n]=C.createSignal(void 0);this._objectWillChange={getValue:t,peek:t},this._notifySetter=n}get objectWillChange(){return this._objectWillChange}notifyChange(){this._notifyCount++;const t=this._notifySetter;t&&t(void 0)}get notificationCount(){return this._notifyCount}}class y{constructor(t,n,i,r={}){s(this,"_object"),s(this,"_metadata"),s(this,"_effectCleanup"),this._object=t,this._metadata={type:"ObservedObject",propertyName:i,componentId:n.id,options:r},this.setupObservation();const o=f.getCurrentOwner();o&&o.cleanups.push(()=>{this.cleanup()})}get wrappedValue(){return this._object}get projectedValue(){return this}get metadata(){return this._metadata}setupObservation(){const t=g.createEffect(()=>{this._object.objectWillChange()});this._effectCleanup=()=>t.dispose()}cleanup(){this._effectCleanup&&(this._effectCleanup(),this._effectCleanup=void 0)}updateObject(t){this.cleanup(),this._object=t,this.setupObservation()}}const j=(e,t={})=>{const n=m(),i=v()||"observedObject";return new y(e,n,i,t)};function l(e,t={}){const n=new c;return new Proxy(e,{set(r,o,a){const p=r[o],b=Reflect.set(r,o,a);return b&&p!==a&&t.autoNotify!==!1&&n.notifyChange(),b},get(r,o){return o==="objectWillChange"?n.objectWillChange:o==="notifyChange"?()=>n.notifyChange():o==="notificationCount"?n.notificationCount:Reflect.get(r,o)}})}function _(e={}){return t=>class extends t{constructor(...n){super(...n),s(this,"_observableBase",new c),e.autoNotify!==!1&&this.setupAutoNotification()}get objectWillChange(){return this._observableBase.objectWillChange}get notificationCount(){return this._observableBase.notificationCount}notifyChange(){this._observableBase.notifyChange()}setupAutoNotification(){const n=Object.getOwnPropertyNames(this);for(const i of n){if(i.startsWith("_")||typeof this[i]=="function")continue;let r=this[i];Object.defineProperty(this,i,{get:()=>r,set:o=>{r!==o&&(r=o,this.notifyChange())},enumerable:!0,configurable:!0})}}}}function m(){const e=f.getCurrentOwner();if(!e?.context.has(u))throw new Error("@ObservedObject can only be used within a component context");return e.context.get(u)}function v(){try{const e=new Error().stack;if(e)return e.match(/at (\w+)\./)?.[1]||null}catch{}return null}const u=Symbol("TachUI.ComponentContext");function h(e){return e&&typeof e=="object"&&"objectWillChange"in e&&"notifyChange"in e}function w(e){return e&&typeof e=="object"&&"wrappedValue"in e&&"projectedValue"in e&&h(e.wrappedValue)}function W(e,t={}){return l({...e},t)}const x=j;exports.ObservableObjectBase=c;exports.ObservedObjectWrapper=x;exports.createObservableStore=W;exports.isObservableObject=h;exports.isObservedObject=w;exports.makeObservable=l;exports.observable=_;
2
- //# sourceMappingURL=observed-object.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observed-object.cjs","sources":["../../src/state/observed-object.ts"],"sourcesContent":["/**\n * @ObservedObject Property Wrapper Implementation\n *\n * Implements SwiftUI's @ObservedObject property wrapper for observing external objects\n * that conform to the ObservableObject protocol. Automatically triggers component\n * re-renders when the observed object changes.\n */\n\nimport { getCurrentOwner } from '../reactive/context'\nimport { createEffect } from '../reactive/effect'\nimport { createSignal } from '../reactive/signal'\nimport type { Signal } from '../reactive/types'\nimport type { ComponentContext } from '../runtime/types'\nimport type {\n ObservableObject,\n ObservableObjectOptions,\n ObservedObject,\n ObservedObjectFactory,\n PropertyWrapperMetadata,\n} from './types'\n\n/**\n * Base class for objects that can be observed\n * Provides the foundation for SwiftUI's ObservableObject protocol\n */\nexport class ObservableObjectBase implements ObservableObject {\n private _objectWillChange: Signal<void>\n private _notifyCount = 0\n\n constructor() {\n const [getNotify, setNotify] = createSignal<void>(undefined)\n this._objectWillChange = {\n getValue: getNotify,\n peek: getNotify,\n } as unknown as Signal<void>\n\n // Track notification setter for manual triggering\n ;(this as any)._notifySetter = setNotify\n }\n\n get objectWillChange(): Signal<void> {\n return this._objectWillChange\n }\n\n /**\n * Notify observers that the object has changed\n * Call this method whenever properties of the object change\n */\n notifyChange(): void {\n this._notifyCount++\n const setter = (this as any)._notifySetter\n if (setter) {\n setter(undefined)\n }\n }\n\n /**\n * Get the current notification count (for debugging)\n */\n get notificationCount(): number {\n return this._notifyCount\n }\n}\n\n/**\n * Internal observed object wrapper implementation\n */\nclass ObservedObjectImpl<T extends ObservableObject> implements ObservedObject<T> {\n private _object: T\n private _metadata: PropertyWrapperMetadata\n private _effectCleanup?: () => void\n\n constructor(\n object: T,\n componentContext: ComponentContext,\n propertyName: string,\n options: ObservableObjectOptions = {}\n ) {\n this._object = object\n\n // Store metadata for introspection\n this._metadata = {\n type: 'ObservedObject',\n propertyName,\n componentId: componentContext.id,\n options,\n }\n\n // Register with component context for lifecycle management\n // TODO: Integrate StateManager with ComponentContext in future version\n // if (componentContext.stateManager) {\n // componentContext.stateManager.registerObservedObject(this, options)\n // }\n\n // Set up observation effect\n this.setupObservation()\n\n // Set up cleanup on component unmount\n const owner = getCurrentOwner()\n if (owner) {\n owner.cleanups.push(() => {\n this.cleanup()\n })\n }\n }\n\n get wrappedValue(): T {\n return this._object\n }\n\n get projectedValue(): ObservedObject<T> {\n return this\n }\n\n /**\n * Get property wrapper metadata\n */\n get metadata(): PropertyWrapperMetadata {\n return this._metadata\n }\n\n /**\n * Set up reactive observation of the object\n */\n private setupObservation(): void {\n // Create an effect that tracks the object's objectWillChange signal\n const effect = createEffect(() => {\n // Access the objectWillChange signal to create dependency\n this._object.objectWillChange()\n\n // The effect will re-run whenever the object notifies changes\n // This will trigger component re-renders automatically\n })\n this._effectCleanup = () => effect.dispose()\n }\n\n /**\n * Cleanup observation\n */\n private cleanup(): void {\n if (this._effectCleanup) {\n this._effectCleanup()\n this._effectCleanup = undefined\n }\n }\n\n /**\n * Replace the observed object (advanced usage)\n */\n updateObject(newObject: T): void {\n this.cleanup()\n this._object = newObject\n this.setupObservation()\n }\n}\n\n/**\n * @ObservedObject property wrapper factory\n *\n * Creates an @ObservedObject property wrapper for observing external objects.\n * The observed object must implement the ObservableObject interface.\n *\n * @param object - The observable object to observe\n * @param options - Configuration options for the observed object wrapper\n * @returns An ObservedObject property wrapper\n *\n * @example\n * ```typescript\n * class UserData extends ObservableObjectBase {\n * private _name = 'Unknown'\n * private _age = 0\n *\n * get name() { return this._name }\n * set name(value: string) {\n * this._name = value\n * this.notifyChange()\n * }\n *\n * get age() { return this._age }\n * set age(value: number) {\n * this._age = value\n * this.notifyChange()\n * }\n * }\n *\n * class UserProfile {\n * @ObservedObject(userData)\n * private user: UserData\n *\n * render() {\n * return Text(`${this.user.name}, age ${this.user.age}`)\n * }\n * }\n * ```\n */\nconst ObservedObjectFactory: ObservedObjectFactory = <T extends ObservableObject>(\n object: T,\n options: ObservableObjectOptions = {}\n): ObservedObject<T> => {\n // This will be replaced by the decorator transformer during compilation\n const componentContext = getCurrentComponentContext()\n const propertyName = getCallerPropertyName() || 'observedObject'\n\n return new ObservedObjectImpl(object, componentContext, propertyName, options)\n}\n\n/**\n * Create an observable object with automatic change notification\n *\n * @param target - The target object to make observable\n * @param options - Configuration options\n * @returns An observable version of the target object\n *\n * @example\n * ```typescript\n * const observableData = makeObservable({\n * count: 0,\n * name: 'Test'\n * })\n *\n * // Changes to properties will automatically trigger notifications\n * observableData.count = 10 // Triggers objectWillChange\n * ```\n */\nexport function makeObservable<T extends Record<string, any>>(\n target: T,\n options: ObservableObjectOptions = {}\n): T & ObservableObject {\n const observableBase = new ObservableObjectBase()\n\n // Create a proxy that intercepts property changes\n const proxy = new Proxy(target, {\n set(obj, prop, value) {\n const oldValue = obj[prop as keyof T]\n const result = Reflect.set(obj, prop, value)\n\n // Only notify if the value actually changed\n if (result && oldValue !== value && options.autoNotify !== false) {\n observableBase.notifyChange()\n }\n\n return result\n },\n\n get(obj, prop) {\n // Provide access to ObservableObject methods\n if (prop === 'objectWillChange') {\n return observableBase.objectWillChange\n }\n if (prop === 'notifyChange') {\n return () => observableBase.notifyChange()\n }\n if (prop === 'notificationCount') {\n return observableBase.notificationCount\n }\n\n return Reflect.get(obj, prop)\n },\n })\n\n return proxy as T & ObservableObject\n}\n\n/**\n * Create an observable class decorator\n *\n * @param options - Configuration options\n * @returns A class decorator that makes the class observable\n *\n * @example\n * ```typescript\n * @observable()\n * class TodoItem {\n * text: string = ''\n * completed: boolean = false\n *\n * toggle() {\n * this.completed = !this.completed\n * // Change notification happens automatically\n * }\n * }\n * ```\n */\nexport function observable(options: ObservableObjectOptions = {}) {\n return <T extends new (...args: any[]) => any>(constructor: T) =>\n class extends constructor implements ObservableObject {\n private _observableBase = new ObservableObjectBase()\n\n get objectWillChange(): Signal<void> {\n return this._observableBase.objectWillChange\n }\n\n get notificationCount(): number {\n return this._observableBase.notificationCount\n }\n\n notifyChange(): void {\n this._observableBase.notifyChange()\n }\n\n constructor(...args: any[]) {\n super(...args)\n\n // If auto-notify is enabled, set up property interception\n if (options.autoNotify !== false) {\n this.setupAutoNotification()\n }\n }\n\n private setupAutoNotification(): void {\n const propertyNames = Object.getOwnPropertyNames(this)\n\n for (const propName of propertyNames) {\n if (propName.startsWith('_') || typeof this[propName as keyof this] === 'function') {\n continue\n }\n\n let value = this[propName as keyof this]\n\n Object.defineProperty(this, propName, {\n get: () => value,\n set: (newValue) => {\n if (value !== newValue) {\n value = newValue\n this.notifyChange()\n }\n },\n enumerable: true,\n configurable: true,\n })\n }\n }\n } as any\n}\n\n/**\n * Helper to get current component context (will be injected by compiler)\n */\nfunction getCurrentComponentContext(): ComponentContext {\n const owner = getCurrentOwner()\n if (!owner?.context.has(ComponentContextSymbol)) {\n throw new Error('@ObservedObject can only be used within a component context')\n }\n return owner.context.get(ComponentContextSymbol) as ComponentContext\n}\n\n/**\n * Helper to get the property name of the caller (used for metadata)\n */\nfunction getCallerPropertyName(): string | null {\n try {\n const stack = new Error().stack\n if (stack) {\n const match = stack.match(/at (\\w+)\\./)?.[1]\n return match || null\n }\n } catch {\n // Ignore errors in stack parsing\n }\n return null\n}\n\n/**\n * Symbol for component context storage\n */\nconst ComponentContextSymbol = Symbol('TachUI.ComponentContext')\n\n/**\n * Type guard for ObservableObject\n */\nexport function isObservableObject(value: any): value is ObservableObject {\n return (\n value && typeof value === 'object' && 'objectWillChange' in value && 'notifyChange' in value\n )\n}\n\n/**\n * Type guard for ObservedObject property wrapper\n */\nexport function isObservedObject<T extends ObservableObject>(\n value: any\n): value is ObservedObject<T> {\n return (\n value &&\n typeof value === 'object' &&\n 'wrappedValue' in value &&\n 'projectedValue' in value &&\n isObservableObject(value.wrappedValue)\n )\n}\n\n/**\n * Utility to create a simple observable store\n */\nexport function createObservableStore<T extends Record<string, any>>(\n initialState: T,\n options: ObservableObjectOptions = {}\n): T & ObservableObject {\n return makeObservable({ ...initialState }, options)\n}\n\n/**\n * Export the ObservedObject factory function\n */\nexport const ObservedObjectWrapper = ObservedObjectFactory\n"],"names":["ObservableObjectBase","__publicField","getNotify","setNotify","createSignal","setter","ObservedObjectImpl","object","componentContext","propertyName","options","owner","getCurrentOwner","effect","createEffect","newObject","ObservedObjectFactory","getCurrentComponentContext","getCallerPropertyName","makeObservable","target","observableBase","obj","prop","value","oldValue","result","observable","constructor","args","propertyNames","propName","newValue","ComponentContextSymbol","stack","isObservableObject","isObservedObject","createObservableStore","initialState","ObservedObjectWrapper"],"mappings":"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"}