@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":"core.js","sources":["../../src/modifiers/core.ts"],"sourcesContent":["/**\n * Core SwiftUI Modifiers\n *\n * Implementation of the most commonly used SwiftUI modifiers\n * for layout, appearance, and interaction.\n */\n\nimport type { Asset } from '../assets/Asset'\nimport type { Signal } from '../reactive/types'\nimport type { Dimension } from '../constants/layout'\nimport type { GradientDefinition } from '../gradients/types'\nimport {\n AnimationModifier,\n AppearanceModifier,\n InteractionModifier,\n LayoutModifier,\n LifecycleModifier,\n} from './base'\nimport { BackgroundModifier } from './background'\nimport type {\n AnimationModifierProps,\n AppearanceModifierProps,\n LayoutModifierProps,\n Modifier,\n} from './types'\n\n/**\n * Layout Modifiers\n */\nexport const layoutModifiers = {\n /**\n * Set foreground (text) color\n */\n foregroundColor(color: string | Signal<string> | any): Modifier {\n return new AppearanceModifier({ foregroundColor: color })\n },\n\n /**\n * Set frame dimensions with support for infinity\n */\n frame(\n width?: Dimension,\n height?: Dimension,\n options?: Omit<LayoutModifierProps['frame'], 'width' | 'height'>\n ): Modifier {\n return new LayoutModifier({\n frame: {\n width,\n height,\n ...options,\n },\n })\n },\n\n /**\n * Set padding on all sides\n */\n padding(value: number): Modifier {\n return new LayoutModifier({ padding: value })\n },\n\n /**\n * Set padding with detailed control\n */\n paddingDetailed(options: LayoutModifierProps['padding']): Modifier {\n return new LayoutModifier({ padding: options })\n },\n\n /**\n * Set horizontal and vertical padding\n */\n paddingSymmetric(horizontal?: number, vertical?: number): Modifier {\n return new LayoutModifier({\n padding: {\n left: horizontal,\n right: horizontal,\n top: vertical,\n bottom: vertical,\n },\n })\n },\n\n /**\n * Set margin on all sides\n */\n margin(value: number): Modifier {\n return new LayoutModifier({ margin: value })\n },\n\n /**\n * Set margin with detailed control\n */\n marginDetailed(options: LayoutModifierProps['margin']): Modifier {\n return new LayoutModifier({ margin: options })\n },\n\n /**\n * Set content alignment\n */\n alignment(value: LayoutModifierProps['alignment']): Modifier {\n return new LayoutModifier({ alignment: value })\n },\n\n /**\n * Set layout priority for ZStack container sizing and flexible layout\n * Higher priority views determine container size in ZStack\n */\n layoutPriority(priority: number | Signal<number>): Modifier {\n return new LayoutModifier({ layoutPriority: priority })\n },\n}\n\n/**\n * Appearance Modifiers\n */\nexport const appearanceModifiers = {\n /**\n * Set foreground (text) color\n */\n foregroundColor(color: string | Asset | Signal<string>): Modifier {\n return new AppearanceModifier({ foregroundColor: color })\n },\n\n /**\n * Set background color\n */\n backgroundColor(color: string | Asset | Signal<string>): Modifier {\n return new AppearanceModifier({ backgroundColor: color })\n },\n\n /**\n * Set background (supports gradients)\n */\n background(value: string | GradientDefinition | Asset): Modifier {\n return new BackgroundModifier({ background: value })\n },\n\n /**\n * Set font properties\n */\n font(options: AppearanceModifierProps['font']): Modifier {\n return new AppearanceModifier({ font: options })\n },\n\n /**\n * Set font size\n */\n fontSize(size: number | string): Modifier {\n return new AppearanceModifier({ font: { size } })\n },\n\n /**\n * Set font weight\n */\n fontWeight(weight: NonNullable<AppearanceModifierProps['font']>['weight']): Modifier {\n return new AppearanceModifier({ font: { weight } })\n },\n\n /**\n * Set font family\n */\n fontFamily(family: string): Modifier {\n return new AppearanceModifier({ font: { family } })\n },\n\n /**\n * Set opacity\n */\n opacity(value: number | Signal<number>): Modifier {\n return new AppearanceModifier({ opacity: value })\n },\n\n /**\n * Set corner radius (enhanced)\n */\n cornerRadius(radius: number | Signal<number>): Modifier {\n return new AppearanceModifier({ cornerRadius: radius })\n },\n\n /**\n * Set border\n */\n border(\n width: number,\n color: string | Asset = '#000000',\n style: 'solid' | 'dashed' | 'dotted' = 'solid'\n ): Modifier {\n return new AppearanceModifier({\n border: { width, color, style },\n })\n },\n\n /**\n * Set detailed border properties\n */\n borderDetailed(options: AppearanceModifierProps['border']): Modifier {\n return new AppearanceModifier({ border: options })\n },\n\n /**\n * Add shadow\n */\n shadow(options: AppearanceModifierProps['shadow']): Modifier {\n return new AppearanceModifier({ shadow: options })\n },\n\n /**\n * Add drop shadow with common settings\n */\n dropShadow(\n x: number = 0,\n y: number = 2,\n radius: number = 4,\n color: string = 'rgba(0,0,0,0.25)'\n ): Modifier {\n return new AppearanceModifier({\n shadow: { x, y, radius, color },\n })\n },\n}\n\n/**\n * Interaction Modifiers\n */\nexport const interactionModifiers = {\n /**\n * Add tap handler\n */\n onTap(handler: (event: MouseEvent) => void): Modifier {\n return new InteractionModifier({ onTap: handler })\n },\n\n /**\n * Add hover handler\n */\n onHover(handler: (isHovered: boolean) => void): Modifier {\n return new InteractionModifier({ onHover: handler })\n },\n\n /**\n * Add focus handler\n */\n onFocus(handler: (isFocused: boolean) => void): Modifier {\n return new InteractionModifier({ onFocus: handler })\n },\n\n /**\n * Set disabled state\n */\n disabled(isDisabled: boolean | Signal<boolean> = true): Modifier {\n return new InteractionModifier({ disabled: isDisabled })\n },\n\n /**\n * Set accessibility label\n */\n accessibilityLabel(label: string): Modifier {\n return new InteractionModifier({ accessibilityLabel: label })\n },\n\n /**\n * Set accessibility hint\n */\n accessibilityHint(hint: string): Modifier {\n return new InteractionModifier({ accessibilityHint: hint })\n },\n}\n\n/**\n * Animation Modifiers\n */\nexport const animationModifiers = {\n /**\n * Add transition\n */\n transition(\n property: string = 'all',\n duration: number = 300,\n easing: string = 'ease',\n delay: number = 0\n ): Modifier {\n return new AnimationModifier({\n transition: { property, duration, easing, delay },\n })\n },\n\n /**\n * Add detailed transition\n */\n transitionDetailed(options: AnimationModifierProps['transition']): Modifier {\n return new AnimationModifier({ transition: options })\n },\n\n /**\n * Add animation\n */\n animation(options: AnimationModifierProps['animation']): Modifier {\n return new AnimationModifier({ animation: options })\n },\n\n /**\n * Add fade in animation\n */\n fadeIn(duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n\n /**\n * Add fade out animation\n */\n fadeOut(duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\n },\n duration,\n easing: 'ease-in',\n },\n })\n },\n\n /**\n * Add slide in animation\n */\n slideIn(\n direction: 'up' | 'down' | 'left' | 'right' = 'up',\n duration: number = 300,\n distance: number = 20\n ): Modifier {\n const transforms = {\n up: [`translateY(${distance}px)`, 'translateY(0)'],\n down: [`translateY(-${distance}px)`, 'translateY(0)'],\n left: [`translateX(${distance}px)`, 'translateX(0)'],\n right: [`translateX(-${distance}px)`, 'translateX(0)'],\n }\n\n const [from, to] = transforms[direction]\n\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { transform: from, opacity: '0' },\n '100%': { transform: to, opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n\n /**\n * Add scale animation\n */\n scaleAnimation(from: number = 0.8, to: number = 1, duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { transform: `scale(${from})`, opacity: '0' },\n '100%': { transform: `scale(${to})`, opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n}\n\n/**\n * Lifecycle Modifiers\n */\nexport const lifecycleModifiers = {\n /**\n * Execute handler when component appears in viewport\n */\n onAppear(handler: () => void): Modifier {\n return new LifecycleModifier({ onAppear: handler })\n },\n\n /**\n * Execute handler when component disappears from viewport\n */\n onDisappear(handler: () => void): Modifier {\n return new LifecycleModifier({ onDisappear: handler })\n },\n\n /**\n * Execute async task with automatic cancellation on component unmount\n */\n task(\n operation: () => Promise<void> | void,\n options?: {\n id?: string\n priority?: 'background' | 'userInitiated' | 'utility' | 'default'\n }\n ): Modifier {\n return new LifecycleModifier({\n task: {\n operation,\n id: options?.id,\n priority: options?.priority || 'default',\n },\n })\n },\n\n /**\n * Add pull-to-refresh functionality\n */\n refreshable(onRefresh: () => Promise<void>, isRefreshing?: boolean | Signal<boolean>): Modifier {\n return new LifecycleModifier({\n refreshable: {\n onRefresh,\n isRefreshing,\n },\n })\n },\n}\n\n/**\n * Preset Modifiers - Common combinations\n */\nexport const presetModifiers = {\n /**\n * Card-like appearance\n */\n card(padding: number = 16): Modifier[] {\n return [\n appearanceModifiers.backgroundColor('#ffffff'),\n appearanceModifiers.cornerRadius(8),\n appearanceModifiers.shadow({\n x: 0,\n y: 2,\n radius: 8,\n color: 'rgba(0,0,0,0.1)',\n }),\n layoutModifiers.padding(padding),\n ]\n },\n\n /**\n * Button-like appearance\n */\n button(\n backgroundColor: string | Asset = '#007AFF',\n textColor: string | Asset = '#ffffff'\n ): Modifier[] {\n return [\n appearanceModifiers.backgroundColor(backgroundColor),\n appearanceModifiers.foregroundColor(textColor),\n appearanceModifiers.cornerRadius(6),\n layoutModifiers.paddingSymmetric(16, 8),\n interactionModifiers.onHover((_hovered) => {\n // This would need a more sophisticated hover state system\n }),\n animationModifiers.transition('all', 150),\n ]\n },\n\n /**\n * Input field appearance\n */\n input(): Modifier[] {\n return [\n appearanceModifiers.border(1, '#d1d5db'),\n appearanceModifiers.cornerRadius(4),\n layoutModifiers.padding(8),\n animationModifiers.transition('border-color', 150),\n interactionModifiers.onFocus((_focused) => {\n // Focus state would need more sophisticated handling\n }),\n ]\n },\n\n /**\n * Typography presets\n */\n typography: {\n title: (): Modifier[] => [\n appearanceModifiers.fontSize(24),\n appearanceModifiers.fontWeight('bold'),\n ],\n\n heading: (): Modifier[] => [\n appearanceModifiers.fontSize(20),\n appearanceModifiers.fontWeight('600'),\n ],\n\n body: (): Modifier[] => [\n appearanceModifiers.fontSize(16),\n appearanceModifiers.fontWeight('normal'),\n ],\n\n caption: (): Modifier[] => [\n appearanceModifiers.fontSize(12),\n appearanceModifiers.fontWeight('normal'),\n appearanceModifiers.opacity(0.7),\n ],\n },\n}\n\n/**\n * Export all core modifiers\n */\nexport const coreModifiers = {\n ...layoutModifiers,\n ...appearanceModifiers,\n ...interactionModifiers,\n ...animationModifiers,\n ...lifecycleModifiers,\n presets: presetModifiers,\n}\n"],"names":["layoutModifiers","color","AppearanceModifier","width","height","options","LayoutModifier","value","horizontal","vertical","priority","appearanceModifiers","BackgroundModifier","size","weight","family","radius","style","x","y","interactionModifiers","handler","InteractionModifier","isDisabled","label","hint","animationModifiers","property","duration","easing","delay","AnimationModifier","direction","distance","transforms","from","to","lifecycleModifiers","LifecycleModifier","operation","onRefresh","isRefreshing","presetModifiers","padding","backgroundColor","textColor","_hovered","_focused","coreModifiers"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./base.cjs");var l=Object.defineProperty,a=(r,e,t)=>e in r?l(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,c=(r,e,t)=>a(r,typeof e!="symbol"?e+"":e,t);class n extends p.BaseModifier{constructor(e){const t={};for(const[o,s]of Object.entries(e))typeof s=="function"&&"peek"in s?t[o]=s.peek():t[o]=s;super(t),c(this,"type","css"),c(this,"priority",5)}apply(e,t){if(!t.element)return;const o=this.computeCSSStyles(this.properties);this.applyStyles(t.element,o)}computeCSSStyles(e){const t={};for(const[o,s]of Object.entries(e))if(s!==void 0){const i=this.toCSSProperty(o);t[i]=this.toCSSValue(s)}return t}}function u(r){return new n(r)}function f(r,e){return new n({[r]:e})}function d(r,e){const t=r.startsWith("--")?r:`--${r}`;return new n({[t]:e})}function y(r,e,t){const o=r.charAt(0).toUpperCase()+r.slice(1),s=`-${r.toLowerCase()}-${e}`,i=o+e.charAt(0).toUpperCase()+e.slice(1);return new n({[s]:t,[i]:t})}exports.CSSModifier=n;exports.css=u;exports.cssProperty=f;exports.cssVariable=d;exports.cssVendor=y;
2
- //# sourceMappingURL=css.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"css.cjs","sources":["../../src/modifiers/css.ts"],"sourcesContent":["/**\n * CSS Modifier - raw CSS properties\n *\n * Provides an escape hatch for applying raw CSS properties\n * that may not have dedicated modifiers yet, or for experimental\n * CSS features.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface CSSOptions {\n [property: string]: string | number | undefined\n}\n\nexport type ReactiveCSSOptions = ReactiveModifierProps<CSSOptions>\n\nexport class CSSModifier extends BaseModifier<CSSOptions> {\n readonly type = 'css'\n readonly priority = 5 // Very low priority so raw CSS doesn't override specific modifiers\n\n constructor(options: ReactiveCSSOptions) {\n // Convert reactive options to regular options for immediate use\n const resolvedOptions: CSSOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n const styles = this.computeCSSStyles(this.properties)\n this.applyStyles(context.element, styles)\n \n return undefined\n }\n\n private computeCSSStyles(props: CSSOptions) {\n const styles: Record<string, string> = {}\n\n for (const [property, value] of Object.entries(props)) {\n if (value !== undefined) {\n // Convert camelCase to kebab-case for CSS properties\n const cssProperty = this.toCSSProperty(property)\n styles[cssProperty] = this.toCSSValue(value)\n }\n }\n\n return styles\n }\n}\n\n/**\n * Create a CSS modifier with raw CSS properties\n *\n * @example\n * ```typescript\n * // Apply raw CSS properties\n * .css({\n * backdropFilter: 'blur(10px)',\n * maskImage: 'linear-gradient(to bottom, black, transparent)',\n * scrollBehavior: 'smooth',\n * containerType: 'inline-size'\n * })\n *\n * // Mix camelCase and kebab-case (both work)\n * .css({\n * backgroundColor: 'red', // camelCase (recommended)\n * 'background-color': 'red', // kebab-case (also works)\n * WebkitTransform: 'scale(1.1)', // vendor prefixes\n * '--custom-property': '42px' // CSS custom properties\n * })\n *\n * // Experimental CSS features\n * .css({\n * aspectRatio: '16/9',\n * scrollSnapType: 'y mandatory',\n * containIntrinsicSize: '300px',\n * accentColor: '#007AFF'\n * })\n * ```\n */\nexport function css(properties: ReactiveCSSOptions): CSSModifier {\n return new CSSModifier(properties)\n}\n\n/**\n * Convenience function for setting a single CSS property\n *\n * @example\n * ```typescript\n * .cssProperty('backdrop-filter', 'blur(10px)')\n * .cssProperty('scrollBehavior', 'smooth')\n * .cssProperty('aspectRatio', '16/9')\n * ```\n */\nexport function cssProperty(property: string, value: string | number): CSSModifier {\n return new CSSModifier({ [property]: value })\n}\n\n/**\n * Convenience function for CSS custom properties (CSS variables)\n *\n * @example\n * ```typescript\n * .cssVariable('primary-color', '#007AFF')\n * .cssVariable('spacing-unit', '8px')\n * .cssVariable('border-radius', '12px')\n * ```\n */\nexport function cssVariable(name: string, value: string | number): CSSModifier {\n // Ensure the property starts with --\n const propertyName = name.startsWith('--') ? name : `--${name}`\n return new CSSModifier({ [propertyName]: value })\n}\n\n/**\n * Convenience function for vendor-prefixed properties\n *\n * @example\n * ```typescript\n * .cssVendor('webkit', 'transform', 'scale(1.1)')\n * .cssVendor('moz', 'user-select', 'none')\n * .cssVendor('ms', 'filter', 'blur(5px)')\n * ```\n */\nexport function cssVendor(\n prefix: 'webkit' | 'moz' | 'ms' | 'o',\n property: string,\n value: string | number\n): CSSModifier {\n // Convert to proper vendor prefix format\n const capitalizedPrefix = prefix.charAt(0).toUpperCase() + prefix.slice(1)\n const vendorProperty = `-${prefix.toLowerCase()}-${property}`\n const camelCaseProperty = capitalizedPrefix + property.charAt(0).toUpperCase() + property.slice(1)\n\n return new CSSModifier({\n [vendorProperty]: value,\n [camelCaseProperty]: value,\n })\n}\n"],"names":["CSSModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","styles","props","property","cssProperty","css","properties","cssVariable","name","propertyName","cssVendor","prefix","capitalizedPrefix","vendorProperty","camelCaseProperty"],"mappings":"0QAkBO,MAAMA,UAAoBC,EAAAA,YAAyB,CAIxD,YAAYC,EAA6B,CAEvC,MAAMC,EAA8B,CAAA,EACpC,SAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAO,EAC3C,OAAOG,GAAU,YAAc,SAAUA,EACzCF,EAAwBC,CAAG,EAAKC,EAAc,KAAA,EAE9CF,EAAwBC,CAAG,EAAIC,EAGrC,MAAMF,CAAe,EAbvBG,EAAA,KAAS,OAAO,KAAA,EAChBA,EAAA,KAAS,WAAW,CAAA,CAapB,CAEA,MAAMC,EAAgBC,EAA+C,CACnE,GAAI,CAACA,EAAQ,QAAS,OAEtB,MAAMC,EAAS,KAAK,iBAAiB,KAAK,UAAU,EACpD,KAAK,YAAYD,EAAQ,QAASC,CAAM,CAG1C,CAEQ,iBAAiBC,EAAmB,CAC1C,MAAMD,EAAiC,CAAA,EAEvC,SAAW,CAACE,EAAUN,CAAK,IAAK,OAAO,QAAQK,CAAK,EAClD,GAAIL,IAAU,OAAW,CAEvB,MAAMO,EAAc,KAAK,cAAcD,CAAQ,EAC/CF,EAAOG,CAAW,EAAI,KAAK,WAAWP,CAAK,CAC7C,CAGF,OAAOI,CACT,CACF,CAgCO,SAASI,EAAIC,EAA6C,CAC/D,OAAO,IAAId,EAAYc,CAAU,CACnC,CAYO,SAASF,EAAYD,EAAkBN,EAAqC,CACjF,OAAO,IAAIL,EAAY,CAAE,CAACW,CAAQ,EAAGN,EAAO,CAC9C,CAYO,SAASU,EAAYC,EAAcX,EAAqC,CAE7E,MAAMY,EAAeD,EAAK,WAAW,IAAI,EAAIA,EAAO,KAAKA,CAAI,GAC7D,OAAO,IAAIhB,EAAY,CAAE,CAACiB,CAAY,EAAGZ,EAAO,CAClD,CAYO,SAASa,EACdC,EACAR,EACAN,EACa,CAEb,MAAMe,EAAoBD,EAAO,OAAO,CAAC,EAAE,cAAgBA,EAAO,MAAM,CAAC,EACnEE,EAAiB,IAAIF,EAAO,aAAa,IAAIR,CAAQ,GACrDW,EAAoBF,EAAoBT,EAAS,OAAO,CAAC,EAAE,cAAgBA,EAAS,MAAM,CAAC,EAEjG,OAAO,IAAIX,EAAY,CACrB,CAACqB,CAAc,EAAGhB,EAClB,CAACiB,CAAiB,EAAGjB,CAAA,CACtB,CACH"}
@@ -1,50 +0,0 @@
1
- import { BaseModifier as p } from "./base.js";
2
- var l = Object.defineProperty, a = (r, e, t) => e in r ? l(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, c = (r, e, t) => a(r, typeof e != "symbol" ? e + "" : e, t);
3
- class n extends p {
4
- // Very low priority so raw CSS doesn't override specific modifiers
5
- constructor(e) {
6
- const t = {};
7
- for (const [o, s] of Object.entries(e))
8
- typeof s == "function" && "peek" in s ? t[o] = s.peek() : t[o] = s;
9
- super(t), c(this, "type", "css"), c(this, "priority", 5);
10
- }
11
- apply(e, t) {
12
- if (!t.element) return;
13
- const o = this.computeCSSStyles(this.properties);
14
- this.applyStyles(t.element, o);
15
- }
16
- computeCSSStyles(e) {
17
- const t = {};
18
- for (const [o, s] of Object.entries(e))
19
- if (s !== void 0) {
20
- const i = this.toCSSProperty(o);
21
- t[i] = this.toCSSValue(s);
22
- }
23
- return t;
24
- }
25
- }
26
- function f(r) {
27
- return new n(r);
28
- }
29
- function y(r, e) {
30
- return new n({ [r]: e });
31
- }
32
- function d(r, e) {
33
- const t = r.startsWith("--") ? r : `--${r}`;
34
- return new n({ [t]: e });
35
- }
36
- function S(r, e, t) {
37
- const o = r.charAt(0).toUpperCase() + r.slice(1), s = `-${r.toLowerCase()}-${e}`, i = o + e.charAt(0).toUpperCase() + e.slice(1);
38
- return new n({
39
- [s]: t,
40
- [i]: t
41
- });
42
- }
43
- export {
44
- n as CSSModifier,
45
- f as css,
46
- y as cssProperty,
47
- d as cssVariable,
48
- S as cssVendor
49
- };
50
- //# sourceMappingURL=css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"css.js","sources":["../../src/modifiers/css.ts"],"sourcesContent":["/**\n * CSS Modifier - raw CSS properties\n *\n * Provides an escape hatch for applying raw CSS properties\n * that may not have dedicated modifiers yet, or for experimental\n * CSS features.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface CSSOptions {\n [property: string]: string | number | undefined\n}\n\nexport type ReactiveCSSOptions = ReactiveModifierProps<CSSOptions>\n\nexport class CSSModifier extends BaseModifier<CSSOptions> {\n readonly type = 'css'\n readonly priority = 5 // Very low priority so raw CSS doesn't override specific modifiers\n\n constructor(options: ReactiveCSSOptions) {\n // Convert reactive options to regular options for immediate use\n const resolvedOptions: CSSOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n const styles = this.computeCSSStyles(this.properties)\n this.applyStyles(context.element, styles)\n \n return undefined\n }\n\n private computeCSSStyles(props: CSSOptions) {\n const styles: Record<string, string> = {}\n\n for (const [property, value] of Object.entries(props)) {\n if (value !== undefined) {\n // Convert camelCase to kebab-case for CSS properties\n const cssProperty = this.toCSSProperty(property)\n styles[cssProperty] = this.toCSSValue(value)\n }\n }\n\n return styles\n }\n}\n\n/**\n * Create a CSS modifier with raw CSS properties\n *\n * @example\n * ```typescript\n * // Apply raw CSS properties\n * .css({\n * backdropFilter: 'blur(10px)',\n * maskImage: 'linear-gradient(to bottom, black, transparent)',\n * scrollBehavior: 'smooth',\n * containerType: 'inline-size'\n * })\n *\n * // Mix camelCase and kebab-case (both work)\n * .css({\n * backgroundColor: 'red', // camelCase (recommended)\n * 'background-color': 'red', // kebab-case (also works)\n * WebkitTransform: 'scale(1.1)', // vendor prefixes\n * '--custom-property': '42px' // CSS custom properties\n * })\n *\n * // Experimental CSS features\n * .css({\n * aspectRatio: '16/9',\n * scrollSnapType: 'y mandatory',\n * containIntrinsicSize: '300px',\n * accentColor: '#007AFF'\n * })\n * ```\n */\nexport function css(properties: ReactiveCSSOptions): CSSModifier {\n return new CSSModifier(properties)\n}\n\n/**\n * Convenience function for setting a single CSS property\n *\n * @example\n * ```typescript\n * .cssProperty('backdrop-filter', 'blur(10px)')\n * .cssProperty('scrollBehavior', 'smooth')\n * .cssProperty('aspectRatio', '16/9')\n * ```\n */\nexport function cssProperty(property: string, value: string | number): CSSModifier {\n return new CSSModifier({ [property]: value })\n}\n\n/**\n * Convenience function for CSS custom properties (CSS variables)\n *\n * @example\n * ```typescript\n * .cssVariable('primary-color', '#007AFF')\n * .cssVariable('spacing-unit', '8px')\n * .cssVariable('border-radius', '12px')\n * ```\n */\nexport function cssVariable(name: string, value: string | number): CSSModifier {\n // Ensure the property starts with --\n const propertyName = name.startsWith('--') ? name : `--${name}`\n return new CSSModifier({ [propertyName]: value })\n}\n\n/**\n * Convenience function for vendor-prefixed properties\n *\n * @example\n * ```typescript\n * .cssVendor('webkit', 'transform', 'scale(1.1)')\n * .cssVendor('moz', 'user-select', 'none')\n * .cssVendor('ms', 'filter', 'blur(5px)')\n * ```\n */\nexport function cssVendor(\n prefix: 'webkit' | 'moz' | 'ms' | 'o',\n property: string,\n value: string | number\n): CSSModifier {\n // Convert to proper vendor prefix format\n const capitalizedPrefix = prefix.charAt(0).toUpperCase() + prefix.slice(1)\n const vendorProperty = `-${prefix.toLowerCase()}-${property}`\n const camelCaseProperty = capitalizedPrefix + property.charAt(0).toUpperCase() + property.slice(1)\n\n return new CSSModifier({\n [vendorProperty]: value,\n [camelCaseProperty]: value,\n })\n}\n"],"names":["CSSModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","styles","props","property","cssProperty","css","properties","cssVariable","name","propertyName","cssVendor","prefix","capitalizedPrefix","vendorProperty","camelCaseProperty"],"mappings":";;AAkBO,MAAMA,UAAoBC,EAAyB;AAAA;AAAA,EAIxD,YAAYC,GAA6B;AAEvC,UAAMC,IAA8B,CAAA;AACpC,eAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQH,CAAO;AAC/C,MAAI,OAAOG,KAAU,cAAc,UAAUA,IACzCF,EAAwBC,CAAG,IAAKC,EAAc,KAAA,IAE9CF,EAAwBC,CAAG,IAAIC;AAGrC,UAAMF,CAAe,GAbvBG,EAAA,MAAS,QAAO,KAAA,GAChBA,EAAA,MAAS,YAAW,CAAA;AAAA,EAapB;AAAA,EAEA,MAAMC,GAAgBC,GAA+C;AACnE,QAAI,CAACA,EAAQ,QAAS;AAEtB,UAAMC,IAAS,KAAK,iBAAiB,KAAK,UAAU;AACpD,SAAK,YAAYD,EAAQ,SAASC,CAAM;AAAA,EAG1C;AAAA,EAEQ,iBAAiBC,GAAmB;AAC1C,UAAMD,IAAiC,CAAA;AAEvC,eAAW,CAACE,GAAUN,CAAK,KAAK,OAAO,QAAQK,CAAK;AAClD,UAAIL,MAAU,QAAW;AAEvB,cAAMO,IAAc,KAAK,cAAcD,CAAQ;AAC/C,QAAAF,EAAOG,CAAW,IAAI,KAAK,WAAWP,CAAK;AAAA,MAC7C;AAGF,WAAOI;AAAA,EACT;AACF;AAgCO,SAASI,EAAIC,GAA6C;AAC/D,SAAO,IAAId,EAAYc,CAAU;AACnC;AAYO,SAASF,EAAYD,GAAkBN,GAAqC;AACjF,SAAO,IAAIL,EAAY,EAAE,CAACW,CAAQ,GAAGN,GAAO;AAC9C;AAYO,SAASU,EAAYC,GAAcX,GAAqC;AAE7E,QAAMY,IAAeD,EAAK,WAAW,IAAI,IAAIA,IAAO,KAAKA,CAAI;AAC7D,SAAO,IAAIhB,EAAY,EAAE,CAACiB,CAAY,GAAGZ,GAAO;AAClD;AAYO,SAASa,EACdC,GACAR,GACAN,GACa;AAEb,QAAMe,IAAoBD,EAAO,OAAO,CAAC,EAAE,gBAAgBA,EAAO,MAAM,CAAC,GACnEE,IAAiB,IAAIF,EAAO,aAAa,IAAIR,CAAQ,IACrDW,IAAoBF,IAAoBT,EAAS,OAAO,CAAC,EAAE,gBAAgBA,EAAS,MAAM,CAAC;AAEjG,SAAO,IAAIX,EAAY;AAAA,IACrB,CAACqB,CAAc,GAAGhB;AAAA,IAClB,CAACiB,CAAiB,GAAGjB;AAAA,EAAA,CACtB;AACH;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("./base.cjs");var C=Object.defineProperty,S=(t,e,r)=>e in t?C(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,s=(t,e,r)=>S(t,typeof e!="symbol"?e+"":e,r);class p extends v.BaseModifier{constructor(e){const r={cursor:"auto"};for(const[n,o]of Object.entries(e))typeof o=="function"&&"peek"in o?r[n]=o.peek():r[n]=o;super(r),s(this,"type","cursor"),s(this,"priority",10)}apply(e,r){r.element&&(process.env.NODE_ENV==="development"&&this.validateCursorValue(this.properties.cursor),this.applyStyles(r.element,{cursor:this.properties.cursor}))}validateCursorValue(e){!["auto","default","pointer","text","wait","help","not-allowed","none","grab","grabbing","zoom-in","zoom-out","alias","cell","copy"].includes(e)&&!e.includes("url(")&&console.warn(`Unknown cursor value: "${e}". See documentation for valid cursor values.`)}}const y=class m extends v.BaseModifier{constructor(e){const r={};for(const[n,o]of Object.entries(e))typeof o=="function"&&"peek"in o?r[n]=o.peek():r[n]=o;super(r),s(this,"type","hover"),s(this,"priority",15)}apply(e,r){if(!r.element||!(this.properties.isEnabled!==!1))return;const o=`tachui-hover-${++m.hoverCount}`;r.element.classList.add(o),this.addHoverStyles(o,this.properties)}addHoverStyles(e,r){const n=this.getOrCreateStyleSheet(),o=this.formatTransition(r.transition);if(o){const l=`.${e} { transition: ${o}; }`;try{n.insertRule(l)}catch(c){console.warn("Failed to add transition rule:",c)}}const f=this.computeHoverStyles(r);if(Object.keys(f).length>0){const l=Object.entries(f).map(([d,b])=>{const h=this.toCSSProperty(d),g=["background-color","background","border-color","color"].includes(h);return`${h}: ${b}${g?" !important":""}`}).join("; "),c=`.${e}:hover { ${l} }`;try{n.insertRule(c)}catch(d){console.warn("Failed to add hover rule:",d)}}}computeHoverStyles(e){const r={};return e.effect&&Object.assign(r,this.getSwiftUIEffectStyles(e.effect)),e.hoverStyles&&Object.assign(r,e.hoverStyles),r}getSwiftUIEffectStyles(e){switch(e){case"automatic":return{transform:"scale(1.02)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"};case"highlight":return{backgroundColor:"rgba(0, 0, 0, 0.05)",filter:"brightness(0.95)"};case"lift":return{transform:"translateY(-2px)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.15)"};case"scale":return{transform:"scale(1.05)"};default:return{}}}formatTransition(e){return e===void 0?"all 200ms ease":typeof e=="number"?`all ${e}ms ease`:e}getOrCreateStyleSheet(){const e=document.getElementById("tachui-hover-styles");if(e&&e instanceof HTMLStyleElement)return e.sheet;const r=document.createElement("style");return r.id="tachui-hover-styles",document.head.appendChild(r),r.sheet}};s(y,"hoverCount",0);let u=y;function i(t){return new p({cursor:t})}function a(t,e){return new u({effect:t,isEnabled:e})}function w(t,e){return new u({hoverStyles:t,transition:e})}function H(t,e=200){return new u({hoverStyles:t,transition:e})}function O(t,e){return new u({effect:t,isEnabled:e})}function x(){return i("pointer")}function E(){return i("grab")}function M(){return i("text")}function _(){return i("not-allowed")}function $(){return i("wait")}function k(){return i("help")}function j(t="in"){return i(t==="in"?"zoom-in":"zoom-out")}function P(){return a("lift")}function z(){return a("automatic")}function T(){return a("highlight")}function I(){return a("scale")}exports.CursorModifier=p;exports.HoverModifier=u;exports.buttonHover=P;exports.cardHover=z;exports.conditionalHover=O;exports.cursor=i;exports.disabledCursor=_;exports.draggableCursor=E;exports.helpCursor=k;exports.hover=w;exports.hoverEffect=a;exports.hoverWithTransition=H;exports.imageHover=I;exports.interactiveCursor=x;exports.linkHover=T;exports.loadingCursor=$;exports.textCursor=M;exports.zoomCursor=j;
2
- //# sourceMappingURL=effects.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effects.cjs","sources":["../../src/modifiers/effects.ts"],"sourcesContent":["/**\n * Effects Modifiers - Hover effects and cursor styling\n *\n * Provides comprehensive hover effect system with SwiftUI-style effects\n * and enhanced cursor styling with complete CSS cursor support.\n */\n\nimport type { Signal } from '../reactive/types'\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\n// ============================================================================\n// Cursor System\n// ============================================================================\n\nexport type CSSCursorValue = \n // Existing values (8 values) - no breaking changes\n | 'auto' | 'default' | 'pointer' | 'text' | 'wait' | 'help' | 'not-allowed' | 'none'\n \n // New additions (7 values) - additive enhancement\n | 'grab' | 'grabbing' | 'zoom-in' | 'zoom-out' | 'alias' | 'cell' | 'copy'\n \n // Custom cursor support\n | string // CSS cursor syntax: 'url(...), fallback'\n\nexport interface CursorOptions {\n cursor: CSSCursorValue\n}\n\nexport type ReactiveCursorOptions = ReactiveModifierProps<CursorOptions>\n\nexport class CursorModifier extends BaseModifier<CursorOptions> {\n readonly type = 'cursor'\n readonly priority = 10\n\n constructor(options: ReactiveCursorOptions) {\n const resolvedOptions: CursorOptions = { cursor: 'auto' }\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Validate cursor value in development mode\n if (process.env.NODE_ENV === 'development') {\n this.validateCursorValue(this.properties.cursor)\n }\n\n this.applyStyles(context.element, { cursor: this.properties.cursor })\n \n return undefined\n }\n\n private validateCursorValue(value: string): void {\n const validCursors = [\n 'auto', 'default', 'pointer', 'text', 'wait', 'help', 'not-allowed', 'none',\n 'grab', 'grabbing', 'zoom-in', 'zoom-out', 'alias', 'cell', 'copy'\n ]\n \n if (!validCursors.includes(value) && !value.includes('url(')) {\n console.warn(`Unknown cursor value: \"${value}\". See documentation for valid cursor values.`)\n }\n }\n}\n\n// ============================================================================\n// Hover Effects System\n// ============================================================================\n\nexport type SwiftUIHoverEffect = \n | 'automatic' // SwiftUI default - subtle scaling and shadow\n | 'highlight' // Subtle background change\n | 'lift' // Elevation effect with shadow\n | 'scale' // Scale transform on hover\n\nexport interface HoverStyles {\n backgroundColor?: string\n color?: string\n transform?: string\n opacity?: number\n boxShadow?: string\n borderColor?: string\n filter?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface HoverOptions {\n effect?: SwiftUIHoverEffect\n hoverStyles?: HoverStyles\n transition?: string | number \n isEnabled?: boolean\n}\n\nexport type ReactiveHoverOptions = ReactiveModifierProps<HoverOptions>\n\nexport class HoverModifier extends BaseModifier<HoverOptions> {\n readonly type = 'hover'\n readonly priority = 15\n private static hoverCount = 0\n\n constructor(options: ReactiveHoverOptions) {\n const resolvedOptions: HoverOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Check if hover effects are enabled\n const isEnabled = this.properties.isEnabled !== false\n if (!isEnabled) return undefined\n\n // Generate unique class for hover states\n const hoverClass = `tachui-hover-${++HoverModifier.hoverCount}`\n context.element.classList.add(hoverClass)\n\n // Add hover styles to stylesheet\n this.addHoverStyles(hoverClass, this.properties)\n \n return undefined\n }\n\n private addHoverStyles(className: string, props: HoverOptions): void {\n const styleSheet = this.getOrCreateStyleSheet()\n \n // Base transition styles\n const transition = this.formatTransition(props.transition)\n if (transition) {\n const transitionRule = `.${className} { transition: ${transition}; }`\n try {\n styleSheet.insertRule(transitionRule)\n } catch (e) {\n console.warn('Failed to add transition rule:', e)\n }\n }\n\n // Hover effect styles\n const hoverStyles = this.computeHoverStyles(props)\n if (Object.keys(hoverStyles).length > 0) {\n // Use !important for critical hover properties that might conflict with inline styles\n const cssPropertiesWithImportant = Object.entries(hoverStyles)\n .map(([prop, value]) => {\n const cssProperty = this.toCSSProperty(prop)\n // Add !important to properties commonly overridden by inline styles\n // Note: Exclude 'transform' to prevent conflicts with button press states\n const needsImportant = ['background-color', 'background', 'border-color', 'color'].includes(cssProperty)\n return `${cssProperty}: ${value}${needsImportant ? ' !important' : ''}`\n })\n .join('; ')\n \n const hoverRule = `.${className}:hover { ${cssPropertiesWithImportant} }`\n \n try {\n styleSheet.insertRule(hoverRule)\n } catch (e) {\n console.warn('Failed to add hover rule:', e)\n }\n }\n }\n\n private computeHoverStyles(props: HoverOptions): HoverStyles {\n const styles: HoverStyles = {}\n\n // Apply preset SwiftUI effect if specified\n if (props.effect) {\n Object.assign(styles, this.getSwiftUIEffectStyles(props.effect))\n }\n\n // Apply custom hover styles (these override preset effects)\n if (props.hoverStyles) {\n Object.assign(styles, props.hoverStyles)\n }\n\n return styles\n }\n\n private getSwiftUIEffectStyles(effect: SwiftUIHoverEffect): HoverStyles {\n switch (effect) {\n case 'automatic':\n return {\n transform: 'scale(1.02)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)'\n }\n \n case 'highlight':\n return {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n filter: 'brightness(0.95)'\n }\n \n case 'lift':\n return {\n transform: 'translateY(-2px)',\n boxShadow: '0 8px 24px rgba(0, 0, 0, 0.15)'\n }\n \n case 'scale':\n return {\n transform: 'scale(1.05)'\n }\n \n default:\n return {}\n }\n }\n\n private formatTransition(transition?: string | number): string {\n if (transition === undefined) {\n return 'all 200ms ease' // Default transition\n }\n \n if (typeof transition === 'number') {\n return `all ${transition}ms ease`\n }\n \n return transition\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById('tachui-hover-styles')\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = 'tachui-hover-styles'\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Effects Functions\n// ============================================================================\n\n/**\n * Enhanced cursor modifier with complete CSS cursor support\n *\n * @example\n * ```typescript\n * .cursor('pointer') // Standard pointer cursor\n * .cursor('grab') // Grab cursor for draggable elements\n * .cursor('zoom-in') // Zoom cursor for zoomable content\n * .cursor('url(custom.cur), pointer') // Custom cursor with fallback\n * ```\n */\nexport function cursor(value: CSSCursorValue): CursorModifier {\n return new CursorModifier({ cursor: value })\n}\n\n/**\n * SwiftUI-style hover effect modifier with preset effects\n *\n * @example\n * ```typescript\n * .hoverEffect('automatic') // Default SwiftUI hover with scale + shadow\n * .hoverEffect('lift') // Elevation effect with shadow\n * .hoverEffect('highlight') // Subtle background change\n * .hoverEffect('scale') // Scale transform only\n * ```\n */\nexport function hoverEffect(effect: SwiftUIHoverEffect, isEnabled?: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n/**\n * Custom hover styles with optional transition\n *\n * @example\n * ```typescript\n * .hover({ \n * backgroundColor: '#f0f0f0', \n * transform: 'scale(1.05)' \n * })\n * .hover({ \n * opacity: 0.8, \n * filter: 'blur(2px)' \n * }, 300)\n * ```\n */\nexport function hover(styles: HoverStyles, transition?: string | number): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition })\n}\n\n/**\n * Hover styles with explicit transition duration\n *\n * @example\n * ```typescript\n * .hoverWithTransition({ \n * transform: 'rotate(5deg)', \n * color: '#007AFF' \n * }, 250)\n * ```\n */\nexport function hoverWithTransition(styles: HoverStyles, duration: number = 200): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition: duration })\n}\n\n/**\n * Conditional hover effect - can be toggled on/off\n *\n * @example\n * ```typescript\n * .conditionalHover('lift', isInteractive) // Signal<boolean>\n * .conditionalHover('highlight', false) // Disabled\n * ```\n */\nexport function conditionalHover(effect: SwiftUIHoverEffect, isEnabled: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n// ============================================================================\n// Cursor Presets - Common cursor patterns\n// ============================================================================\n\n/**\n * Interactive cursor - pointer with hover effect\n */\nexport function interactiveCursor(): CursorModifier {\n return cursor('pointer')\n}\n\n/**\n * Draggable cursor - grab when idle, grabbing when active\n */\nexport function draggableCursor(): CursorModifier {\n return cursor('grab')\n}\n\n/**\n * Text selection cursor\n */\nexport function textCursor(): CursorModifier {\n return cursor('text')\n}\n\n/**\n * Disabled/not-allowed cursor\n */\nexport function disabledCursor(): CursorModifier {\n return cursor('not-allowed')\n}\n\n/**\n * Loading cursor\n */\nexport function loadingCursor(): CursorModifier {\n return cursor('wait')\n}\n\n/**\n * Help cursor\n */\nexport function helpCursor(): CursorModifier {\n return cursor('help')\n}\n\n/**\n * Zoom cursor for zoomable content\n */\nexport function zoomCursor(mode: 'in' | 'out' = 'in'): CursorModifier {\n return cursor(mode === 'in' ? 'zoom-in' : 'zoom-out')\n}\n\n// ============================================================================\n// Hover Effect Presets - Common interaction patterns\n// ============================================================================\n\n/**\n * Button hover effect - lift with shadow\n */\nexport function buttonHover(): HoverModifier {\n return hoverEffect('lift')\n}\n\n/**\n * Card hover effect - subtle scale and shadow\n */\nexport function cardHover(): HoverModifier {\n return hoverEffect('automatic')\n}\n\n/**\n * Link hover effect - highlight background\n */\nexport function linkHover(): HoverModifier {\n return hoverEffect('highlight')\n}\n\n/**\n * Image hover effect - scale on hover\n */\nexport function imageHover(): HoverModifier {\n return hoverEffect('scale')\n}"],"names":["CursorModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","_HoverModifier","hoverClass","className","props","styleSheet","transition","transitionRule","e","hoverStyles","cssPropertiesWithImportant","prop","cssProperty","needsImportant","hoverRule","styles","effect","existingStyle","style","HoverModifier","cursor","hoverEffect","isEnabled","hover","hoverWithTransition","duration","conditionalHover","interactiveCursor","draggableCursor","textCursor","disabledCursor","loadingCursor","helpCursor","zoomCursor","mode","buttonHover","cardHover","linkHover","imageHover"],"mappings":"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"}
@@ -1,178 +0,0 @@
1
- import { BaseModifier as p } from "./base.js";
2
- var g = Object.defineProperty, S = (r, e, t) => e in r ? g(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, i = (r, e, t) => S(r, typeof e != "symbol" ? e + "" : e, t);
3
- class C extends p {
4
- constructor(e) {
5
- const t = { cursor: "auto" };
6
- for (const [n, o] of Object.entries(e))
7
- typeof o == "function" && "peek" in o ? t[n] = o.peek() : t[n] = o;
8
- super(t), i(this, "type", "cursor"), i(this, "priority", 10);
9
- }
10
- apply(e, t) {
11
- t.element && (process.env.NODE_ENV === "development" && this.validateCursorValue(this.properties.cursor), this.applyStyles(t.element, { cursor: this.properties.cursor }));
12
- }
13
- validateCursorValue(e) {
14
- ![
15
- "auto",
16
- "default",
17
- "pointer",
18
- "text",
19
- "wait",
20
- "help",
21
- "not-allowed",
22
- "none",
23
- "grab",
24
- "grabbing",
25
- "zoom-in",
26
- "zoom-out",
27
- "alias",
28
- "cell",
29
- "copy"
30
- ].includes(e) && !e.includes("url(") && console.warn(`Unknown cursor value: "${e}". See documentation for valid cursor values.`);
31
- }
32
- }
33
- const v = class y extends p {
34
- constructor(e) {
35
- const t = {};
36
- for (const [n, o] of Object.entries(e))
37
- typeof o == "function" && "peek" in o ? t[n] = o.peek() : t[n] = o;
38
- super(t), i(this, "type", "hover"), i(this, "priority", 15);
39
- }
40
- apply(e, t) {
41
- if (!t.element || !(this.properties.isEnabled !== !1)) return;
42
- const o = `tachui-hover-${++y.hoverCount}`;
43
- t.element.classList.add(o), this.addHoverStyles(o, this.properties);
44
- }
45
- addHoverStyles(e, t) {
46
- const n = this.getOrCreateStyleSheet(), o = this.formatTransition(t.transition);
47
- if (o) {
48
- const l = `.${e} { transition: ${o}; }`;
49
- try {
50
- n.insertRule(l);
51
- } catch (c) {
52
- console.warn("Failed to add transition rule:", c);
53
- }
54
- }
55
- const d = this.computeHoverStyles(t);
56
- if (Object.keys(d).length > 0) {
57
- const l = Object.entries(d).map(([f, m]) => {
58
- const h = this.toCSSProperty(f), b = ["background-color", "background", "border-color", "color"].includes(h);
59
- return `${h}: ${m}${b ? " !important" : ""}`;
60
- }).join("; "), c = `.${e}:hover { ${l} }`;
61
- try {
62
- n.insertRule(c);
63
- } catch (f) {
64
- console.warn("Failed to add hover rule:", f);
65
- }
66
- }
67
- }
68
- computeHoverStyles(e) {
69
- const t = {};
70
- return e.effect && Object.assign(t, this.getSwiftUIEffectStyles(e.effect)), e.hoverStyles && Object.assign(t, e.hoverStyles), t;
71
- }
72
- getSwiftUIEffectStyles(e) {
73
- switch (e) {
74
- case "automatic":
75
- return {
76
- transform: "scale(1.02)",
77
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)"
78
- };
79
- case "highlight":
80
- return {
81
- backgroundColor: "rgba(0, 0, 0, 0.05)",
82
- filter: "brightness(0.95)"
83
- };
84
- case "lift":
85
- return {
86
- transform: "translateY(-2px)",
87
- boxShadow: "0 8px 24px rgba(0, 0, 0, 0.15)"
88
- };
89
- case "scale":
90
- return {
91
- transform: "scale(1.05)"
92
- };
93
- default:
94
- return {};
95
- }
96
- }
97
- formatTransition(e) {
98
- return e === void 0 ? "all 200ms ease" : typeof e == "number" ? `all ${e}ms ease` : e;
99
- }
100
- getOrCreateStyleSheet() {
101
- const e = document.getElementById("tachui-hover-styles");
102
- if (e && e instanceof HTMLStyleElement)
103
- return e.sheet;
104
- const t = document.createElement("style");
105
- return t.id = "tachui-hover-styles", document.head.appendChild(t), t.sheet;
106
- }
107
- };
108
- i(v, "hoverCount", 0);
109
- let u = v;
110
- function s(r) {
111
- return new C({ cursor: r });
112
- }
113
- function a(r, e) {
114
- return new u({ effect: r, isEnabled: e });
115
- }
116
- function H(r, e) {
117
- return new u({ hoverStyles: r, transition: e });
118
- }
119
- function x(r, e = 200) {
120
- return new u({ hoverStyles: r, transition: e });
121
- }
122
- function O(r, e) {
123
- return new u({ effect: r, isEnabled: e });
124
- }
125
- function E() {
126
- return s("pointer");
127
- }
128
- function _() {
129
- return s("grab");
130
- }
131
- function $() {
132
- return s("text");
133
- }
134
- function k() {
135
- return s("not-allowed");
136
- }
137
- function j() {
138
- return s("wait");
139
- }
140
- function M() {
141
- return s("help");
142
- }
143
- function P(r = "in") {
144
- return s(r === "in" ? "zoom-in" : "zoom-out");
145
- }
146
- function z() {
147
- return a("lift");
148
- }
149
- function I() {
150
- return a("automatic");
151
- }
152
- function R() {
153
- return a("highlight");
154
- }
155
- function T() {
156
- return a("scale");
157
- }
158
- export {
159
- C as CursorModifier,
160
- u as HoverModifier,
161
- z as buttonHover,
162
- I as cardHover,
163
- O as conditionalHover,
164
- s as cursor,
165
- k as disabledCursor,
166
- _ as draggableCursor,
167
- M as helpCursor,
168
- H as hover,
169
- a as hoverEffect,
170
- x as hoverWithTransition,
171
- T as imageHover,
172
- E as interactiveCursor,
173
- R as linkHover,
174
- j as loadingCursor,
175
- $ as textCursor,
176
- P as zoomCursor
177
- };
178
- //# sourceMappingURL=effects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effects.js","sources":["../../src/modifiers/effects.ts"],"sourcesContent":["/**\n * Effects Modifiers - Hover effects and cursor styling\n *\n * Provides comprehensive hover effect system with SwiftUI-style effects\n * and enhanced cursor styling with complete CSS cursor support.\n */\n\nimport type { Signal } from '../reactive/types'\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\n// ============================================================================\n// Cursor System\n// ============================================================================\n\nexport type CSSCursorValue = \n // Existing values (8 values) - no breaking changes\n | 'auto' | 'default' | 'pointer' | 'text' | 'wait' | 'help' | 'not-allowed' | 'none'\n \n // New additions (7 values) - additive enhancement\n | 'grab' | 'grabbing' | 'zoom-in' | 'zoom-out' | 'alias' | 'cell' | 'copy'\n \n // Custom cursor support\n | string // CSS cursor syntax: 'url(...), fallback'\n\nexport interface CursorOptions {\n cursor: CSSCursorValue\n}\n\nexport type ReactiveCursorOptions = ReactiveModifierProps<CursorOptions>\n\nexport class CursorModifier extends BaseModifier<CursorOptions> {\n readonly type = 'cursor'\n readonly priority = 10\n\n constructor(options: ReactiveCursorOptions) {\n const resolvedOptions: CursorOptions = { cursor: 'auto' }\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Validate cursor value in development mode\n if (process.env.NODE_ENV === 'development') {\n this.validateCursorValue(this.properties.cursor)\n }\n\n this.applyStyles(context.element, { cursor: this.properties.cursor })\n \n return undefined\n }\n\n private validateCursorValue(value: string): void {\n const validCursors = [\n 'auto', 'default', 'pointer', 'text', 'wait', 'help', 'not-allowed', 'none',\n 'grab', 'grabbing', 'zoom-in', 'zoom-out', 'alias', 'cell', 'copy'\n ]\n \n if (!validCursors.includes(value) && !value.includes('url(')) {\n console.warn(`Unknown cursor value: \"${value}\". See documentation for valid cursor values.`)\n }\n }\n}\n\n// ============================================================================\n// Hover Effects System\n// ============================================================================\n\nexport type SwiftUIHoverEffect = \n | 'automatic' // SwiftUI default - subtle scaling and shadow\n | 'highlight' // Subtle background change\n | 'lift' // Elevation effect with shadow\n | 'scale' // Scale transform on hover\n\nexport interface HoverStyles {\n backgroundColor?: string\n color?: string\n transform?: string\n opacity?: number\n boxShadow?: string\n borderColor?: string\n filter?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface HoverOptions {\n effect?: SwiftUIHoverEffect\n hoverStyles?: HoverStyles\n transition?: string | number \n isEnabled?: boolean\n}\n\nexport type ReactiveHoverOptions = ReactiveModifierProps<HoverOptions>\n\nexport class HoverModifier extends BaseModifier<HoverOptions> {\n readonly type = 'hover'\n readonly priority = 15\n private static hoverCount = 0\n\n constructor(options: ReactiveHoverOptions) {\n const resolvedOptions: HoverOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Check if hover effects are enabled\n const isEnabled = this.properties.isEnabled !== false\n if (!isEnabled) return undefined\n\n // Generate unique class for hover states\n const hoverClass = `tachui-hover-${++HoverModifier.hoverCount}`\n context.element.classList.add(hoverClass)\n\n // Add hover styles to stylesheet\n this.addHoverStyles(hoverClass, this.properties)\n \n return undefined\n }\n\n private addHoverStyles(className: string, props: HoverOptions): void {\n const styleSheet = this.getOrCreateStyleSheet()\n \n // Base transition styles\n const transition = this.formatTransition(props.transition)\n if (transition) {\n const transitionRule = `.${className} { transition: ${transition}; }`\n try {\n styleSheet.insertRule(transitionRule)\n } catch (e) {\n console.warn('Failed to add transition rule:', e)\n }\n }\n\n // Hover effect styles\n const hoverStyles = this.computeHoverStyles(props)\n if (Object.keys(hoverStyles).length > 0) {\n // Use !important for critical hover properties that might conflict with inline styles\n const cssPropertiesWithImportant = Object.entries(hoverStyles)\n .map(([prop, value]) => {\n const cssProperty = this.toCSSProperty(prop)\n // Add !important to properties commonly overridden by inline styles\n // Note: Exclude 'transform' to prevent conflicts with button press states\n const needsImportant = ['background-color', 'background', 'border-color', 'color'].includes(cssProperty)\n return `${cssProperty}: ${value}${needsImportant ? ' !important' : ''}`\n })\n .join('; ')\n \n const hoverRule = `.${className}:hover { ${cssPropertiesWithImportant} }`\n \n try {\n styleSheet.insertRule(hoverRule)\n } catch (e) {\n console.warn('Failed to add hover rule:', e)\n }\n }\n }\n\n private computeHoverStyles(props: HoverOptions): HoverStyles {\n const styles: HoverStyles = {}\n\n // Apply preset SwiftUI effect if specified\n if (props.effect) {\n Object.assign(styles, this.getSwiftUIEffectStyles(props.effect))\n }\n\n // Apply custom hover styles (these override preset effects)\n if (props.hoverStyles) {\n Object.assign(styles, props.hoverStyles)\n }\n\n return styles\n }\n\n private getSwiftUIEffectStyles(effect: SwiftUIHoverEffect): HoverStyles {\n switch (effect) {\n case 'automatic':\n return {\n transform: 'scale(1.02)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)'\n }\n \n case 'highlight':\n return {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n filter: 'brightness(0.95)'\n }\n \n case 'lift':\n return {\n transform: 'translateY(-2px)',\n boxShadow: '0 8px 24px rgba(0, 0, 0, 0.15)'\n }\n \n case 'scale':\n return {\n transform: 'scale(1.05)'\n }\n \n default:\n return {}\n }\n }\n\n private formatTransition(transition?: string | number): string {\n if (transition === undefined) {\n return 'all 200ms ease' // Default transition\n }\n \n if (typeof transition === 'number') {\n return `all ${transition}ms ease`\n }\n \n return transition\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById('tachui-hover-styles')\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = 'tachui-hover-styles'\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Effects Functions\n// ============================================================================\n\n/**\n * Enhanced cursor modifier with complete CSS cursor support\n *\n * @example\n * ```typescript\n * .cursor('pointer') // Standard pointer cursor\n * .cursor('grab') // Grab cursor for draggable elements\n * .cursor('zoom-in') // Zoom cursor for zoomable content\n * .cursor('url(custom.cur), pointer') // Custom cursor with fallback\n * ```\n */\nexport function cursor(value: CSSCursorValue): CursorModifier {\n return new CursorModifier({ cursor: value })\n}\n\n/**\n * SwiftUI-style hover effect modifier with preset effects\n *\n * @example\n * ```typescript\n * .hoverEffect('automatic') // Default SwiftUI hover with scale + shadow\n * .hoverEffect('lift') // Elevation effect with shadow\n * .hoverEffect('highlight') // Subtle background change\n * .hoverEffect('scale') // Scale transform only\n * ```\n */\nexport function hoverEffect(effect: SwiftUIHoverEffect, isEnabled?: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n/**\n * Custom hover styles with optional transition\n *\n * @example\n * ```typescript\n * .hover({ \n * backgroundColor: '#f0f0f0', \n * transform: 'scale(1.05)' \n * })\n * .hover({ \n * opacity: 0.8, \n * filter: 'blur(2px)' \n * }, 300)\n * ```\n */\nexport function hover(styles: HoverStyles, transition?: string | number): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition })\n}\n\n/**\n * Hover styles with explicit transition duration\n *\n * @example\n * ```typescript\n * .hoverWithTransition({ \n * transform: 'rotate(5deg)', \n * color: '#007AFF' \n * }, 250)\n * ```\n */\nexport function hoverWithTransition(styles: HoverStyles, duration: number = 200): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition: duration })\n}\n\n/**\n * Conditional hover effect - can be toggled on/off\n *\n * @example\n * ```typescript\n * .conditionalHover('lift', isInteractive) // Signal<boolean>\n * .conditionalHover('highlight', false) // Disabled\n * ```\n */\nexport function conditionalHover(effect: SwiftUIHoverEffect, isEnabled: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n// ============================================================================\n// Cursor Presets - Common cursor patterns\n// ============================================================================\n\n/**\n * Interactive cursor - pointer with hover effect\n */\nexport function interactiveCursor(): CursorModifier {\n return cursor('pointer')\n}\n\n/**\n * Draggable cursor - grab when idle, grabbing when active\n */\nexport function draggableCursor(): CursorModifier {\n return cursor('grab')\n}\n\n/**\n * Text selection cursor\n */\nexport function textCursor(): CursorModifier {\n return cursor('text')\n}\n\n/**\n * Disabled/not-allowed cursor\n */\nexport function disabledCursor(): CursorModifier {\n return cursor('not-allowed')\n}\n\n/**\n * Loading cursor\n */\nexport function loadingCursor(): CursorModifier {\n return cursor('wait')\n}\n\n/**\n * Help cursor\n */\nexport function helpCursor(): CursorModifier {\n return cursor('help')\n}\n\n/**\n * Zoom cursor for zoomable content\n */\nexport function zoomCursor(mode: 'in' | 'out' = 'in'): CursorModifier {\n return cursor(mode === 'in' ? 'zoom-in' : 'zoom-out')\n}\n\n// ============================================================================\n// Hover Effect Presets - Common interaction patterns\n// ============================================================================\n\n/**\n * Button hover effect - lift with shadow\n */\nexport function buttonHover(): HoverModifier {\n return hoverEffect('lift')\n}\n\n/**\n * Card hover effect - subtle scale and shadow\n */\nexport function cardHover(): HoverModifier {\n return hoverEffect('automatic')\n}\n\n/**\n * Link hover effect - highlight background\n */\nexport function linkHover(): HoverModifier {\n return hoverEffect('highlight')\n}\n\n/**\n * Image hover effect - scale on hover\n */\nexport function imageHover(): HoverModifier {\n return hoverEffect('scale')\n}"],"names":["CursorModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","_HoverModifier","hoverClass","className","props","styleSheet","transition","transitionRule","e","hoverStyles","cssPropertiesWithImportant","prop","cssProperty","needsImportant","hoverRule","styles","effect","existingStyle","style","HoverModifier","cursor","hoverEffect","isEnabled","hover","hoverWithTransition","duration","conditionalHover","interactiveCursor","draggableCursor","textCursor","disabledCursor","loadingCursor","helpCursor","zoomCursor","mode","buttonHover","cardHover","linkHover","imageHover"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./base.cjs");var b=Object.defineProperty,S=(n,t,e)=>t in n?b(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,u=(n,t,e)=>S(n,typeof t!="symbol"?t+"":t,e);const f=class a extends g.BaseModifier{constructor(t){const e={};for(const[o,r]of Object.entries(t))typeof r=="function"&&"peek"in r?e[o]=r.peek():e[o]=r;super(e),u(this,"type","pseudoElement"),u(this,"priority",50)}apply(t,e){if(!e.element)return;const o=`tachui-pseudo-${++a.elementCount}`;e.element.classList.add(o),this.properties.before&&this.addPseudoElementRule(o,"before",this.properties.before),this.properties.after&&this.addPseudoElementRule(o,"after",this.properties.after)}addPseudoElementRule(t,e,o){const r=this.getOrCreateStyleSheet(),c=this.generatePseudoElementCSS(t,e,o);try{r.insertRule(c)}catch(d){console.warn("Failed to add pseudo-element rule:",d)}}generatePseudoElementCSS(t,e,o){const r=`.${t}::${e}`,c=[];return o.content||(o.content='""'),Object.entries(o).forEach(([d,p])=>{if(p!==void 0){const h=this.toCSSProperty(d),m=this.formatCSSValue(d,p);c.push(`${h}: ${m}`)}}),`${r} { ${c.join("; ")} }`}formatCSSValue(t,e){return t==="content"?typeof e=="string"&&!e.startsWith('"')&&!e.startsWith("'")?`"${e}"`:e:typeof e=="number"?["opacity","z-index","line-height","flex-grow","flex-shrink","order","column-count","font-weight"].includes(this.toCSSProperty(t))?String(e):`${e}px`:String(e)}getOrCreateStyleSheet(){const t=document.getElementById(a.styleSheetId);if(t&&t instanceof HTMLStyleElement)return t.sheet;const e=document.createElement("style");return e.id=a.styleSheetId,document.head.appendChild(e),e.sheet}};u(f,"styleSheetId","tachui-pseudo-elements");u(f,"elementCount",0);let s=f;function i(n){return new s({before:n})}function l(n){return new s({after:n})}function y(n){return new s(n)}function C(n,t={}){return i({content:n,display:"inline-block",...t})}function P(n,t={}){return l({content:n,display:"inline-block",...t})}function w(n="#ddd",t=1,e=16){return i({content:"",display:"inline-block",width:e,height:t,backgroundColor:n,marginRight:8,verticalAlign:"middle"})}function E(n="#ddd",t=1,e=16){return l({content:"",display:"inline-block",width:e,height:t,backgroundColor:n,marginLeft:8,verticalAlign:"middle"})}function x(n='"',t='"'){return new s({before:{content:n,fontSize:"1.2em",color:"#666",marginRight:4},after:{content:t,fontSize:"1.2em",color:"#666",marginLeft:4}})}function R(n="currentColor",t=1,e=1){return l({content:"",position:"absolute",bottom:0,left:0,right:0,height:t,backgroundColor:n,opacity:e})}function $(n="#ff3b30",t=6,e=""){return l({content:e,position:"absolute",top:-2,right:-2,width:e?"auto":t,height:t,minWidth:t,backgroundColor:n,borderRadius:"50%",fontSize:10,color:"white",textAlign:"center",lineHeight:e?t/10:1,padding:e?"2px 4px":0,display:"flex",alignItems:"center",justifyContent:"center"})}function k(n,t="top",e="#333",o="white"){return i({content:n,position:"absolute",backgroundColor:e,color:o,padding:"4px 8px",borderRadius:4,fontSize:12,whiteSpace:"nowrap",zIndex:1e3,opacity:0,pointerEvents:"none",transition:"opacity 0.2s ease",...{top:{bottom:"100%",left:"50%",transform:"translateX(-50%)",marginBottom:5},bottom:{top:"100%",left:"50%",transform:"translateX(-50%)",marginTop:5},left:{right:"100%",top:"50%",transform:"translateY(-50%)",marginRight:5},right:{left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:5}}[t]})}function A(n,t="#ff3b30",e="white"){return i({content:n,position:"absolute",top:8,right:-8,backgroundColor:t,color:e,padding:"2px 12px",fontSize:11,fontWeight:"bold",textTransform:"uppercase",transform:"rotate(45deg)",transformOrigin:"center",zIndex:10})}function O(n=20,t="#007AFF",e=2){return i({content:"",display:"inline-block",width:n,height:n,border:`${e}px solid transparent`,borderTop:`${e}px solid ${t}`,borderRadius:"50%",animation:"spin 1s linear infinite"})}exports.PseudoElementModifier=s;exports.after=l;exports.badge=$;exports.before=i;exports.cornerRibbon=A;exports.iconAfter=P;exports.iconBefore=C;exports.lineAfter=E;exports.lineBefore=w;exports.pseudoElements=y;exports.quotes=x;exports.spinner=O;exports.tooltip=k;exports.underline=R;
2
- //# sourceMappingURL=elements.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elements.cjs","sources":["../../src/modifiers/elements.ts"],"sourcesContent":["/**\n * Pseudo-element Modifiers - ::before and ::after styling\n *\n * Provides comprehensive pseudo-element support for ::before and ::after\n * with dynamic stylesheet generation and flexible styling options.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface PseudoElementStyles {\n content?: string // Content for pseudo-element (required)\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n top?: number | string\n right?: number | string\n bottom?: number | string\n left?: number | string\n width?: number | string\n height?: number | string\n backgroundColor?: string\n color?: string\n fontSize?: number | string\n fontWeight?: string | number\n fontFamily?: string\n lineHeight?: number | string\n textAlign?: 'left' | 'center' | 'right' | 'justify'\n margin?: number | string\n marginTop?: number | string\n marginRight?: number | string\n marginBottom?: number | string\n marginLeft?: number | string\n padding?: number | string\n paddingTop?: number | string\n paddingRight?: number | string\n paddingBottom?: number | string\n paddingLeft?: number | string\n border?: string\n borderTop?: string\n borderRight?: string\n borderBottom?: string\n borderLeft?: string\n borderRadius?: number | string\n borderWidth?: number | string\n borderStyle?: string\n borderColor?: string\n boxShadow?: string\n textShadow?: string\n opacity?: number\n transform?: string\n transformOrigin?: string\n zIndex?: number\n display?: string\n flexDirection?: string\n flexWrap?: string\n alignItems?: string\n justifyContent?: string\n alignSelf?: string\n flex?: string\n flexGrow?: number\n flexShrink?: number\n flexBasis?: string\n order?: number\n overflow?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto'\n whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line'\n textOverflow?: 'clip' | 'ellipsis'\n cursor?: string\n pointerEvents?: 'auto' | 'none'\n visibility?: 'visible' | 'hidden'\n backgroundImage?: string\n backgroundSize?: string\n backgroundPosition?: string\n backgroundRepeat?: string\n filter?: string\n backdropFilter?: string\n transition?: string\n animation?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface PseudoElementOptions {\n before?: PseudoElementStyles\n after?: PseudoElementStyles\n}\n\nexport type ReactivePseudoElementOptions = ReactiveModifierProps<PseudoElementOptions>\n\nexport class PseudoElementModifier extends BaseModifier<PseudoElementOptions> {\n readonly type = 'pseudoElement'\n readonly priority = 50 // High priority to ensure pseudo-elements are applied last\n private static styleSheetId = 'tachui-pseudo-elements'\n private static elementCount = 0\n\n constructor(options: ReactivePseudoElementOptions) {\n const resolvedOptions: PseudoElementOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Generate unique class for pseudo-element styles\n const pseudoClass = `tachui-pseudo-${++PseudoElementModifier.elementCount}`\n context.element.classList.add(pseudoClass)\n\n // Add pseudo-element styles to stylesheet\n if (this.properties.before) {\n this.addPseudoElementRule(pseudoClass, 'before', this.properties.before)\n }\n\n if (this.properties.after) {\n this.addPseudoElementRule(pseudoClass, 'after', this.properties.after)\n }\n \n return undefined\n }\n\n private addPseudoElementRule(\n className: string, \n pseudoType: 'before' | 'after', \n styles: PseudoElementStyles\n ): void {\n const styleSheet = this.getOrCreateStyleSheet()\n const cssRule = this.generatePseudoElementCSS(className, pseudoType, styles)\n \n try {\n styleSheet.insertRule(cssRule)\n } catch (e) {\n console.warn('Failed to add pseudo-element rule:', e)\n }\n }\n\n private generatePseudoElementCSS(\n className: string, \n pseudoType: 'before' | 'after', \n styles: PseudoElementStyles\n ): string {\n const selector = `.${className}::${pseudoType}`\n const cssProperties: string[] = []\n\n // Ensure content property is set (required for pseudo-elements)\n if (!styles.content) {\n styles.content = '\"\"'\n }\n\n Object.entries(styles).forEach(([prop, value]) => {\n if (value !== undefined) {\n const cssProperty = this.toCSSProperty(prop)\n const cssValue = this.formatCSSValue(prop, value)\n cssProperties.push(`${cssProperty}: ${cssValue}`)\n }\n })\n\n return `${selector} { ${cssProperties.join('; ')} }`\n }\n\n private formatCSSValue(property: string, value: any): string {\n // Handle special cases for pseudo-element properties\n if (property === 'content') {\n // Ensure content is properly quoted if it's not already\n if (typeof value === 'string' && !value.startsWith('\"') && !value.startsWith(\"'\")) {\n return `\"${value}\"`\n }\n return value\n }\n\n if (typeof value === 'number') {\n // Properties that should be unitless\n const unitlessProperties = [\n 'opacity', 'z-index', 'line-height', 'flex-grow', 'flex-shrink', \n 'order', 'column-count', 'font-weight'\n ]\n \n if (unitlessProperties.includes(this.toCSSProperty(property))) {\n return String(value)\n }\n \n return `${value}px`\n }\n\n return String(value)\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById(PseudoElementModifier.styleSheetId)\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = PseudoElementModifier.styleSheetId\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Pseudo-element Functions\n// ============================================================================\n\n/**\n * ::before pseudo-element modifier\n *\n * @example\n * ```typescript\n * .before({\n * content: '★',\n * position: 'absolute',\n * left: -20,\n * color: '#ffd700'\n * })\n * ```\n */\nexport function before(styles: PseudoElementStyles): PseudoElementModifier {\n return new PseudoElementModifier({ before: styles })\n}\n\n/**\n * ::after pseudo-element modifier\n *\n * @example\n * ```typescript\n * .after({\n * content: '',\n * position: 'absolute',\n * bottom: 0,\n * left: 0,\n * right: 0,\n * height: 2,\n * backgroundColor: '#007AFF'\n * })\n * ```\n */\nexport function after(styles: PseudoElementStyles): PseudoElementModifier {\n return new PseudoElementModifier({ after: styles })\n}\n\n/**\n * Both ::before and ::after pseudo-elements\n *\n * @example\n * ```typescript\n * .pseudoElements({\n * before: { content: '\"', fontSize: 24, color: '#666' },\n * after: { content: '\"', fontSize: 24, color: '#666' }\n * })\n * ```\n */\nexport function pseudoElements(options: PseudoElementOptions): PseudoElementModifier {\n return new PseudoElementModifier(options)\n}\n\n// ============================================================================\n// Common Pseudo-element Patterns\n// ============================================================================\n\n/**\n * Icon before content using a Unicode character\n *\n * @example\n * ```typescript\n * .iconBefore('★', { color: '#ffd700', marginRight: 8 })\n * .iconBefore('→', { color: '#007AFF' })\n * ```\n */\nexport function iconBefore(\n icon: string, \n styles: Omit<PseudoElementStyles, 'content'> = {}\n): PseudoElementModifier {\n return before({\n content: icon,\n display: 'inline-block',\n ...styles\n })\n}\n\n/**\n * Icon after content using a Unicode character\n *\n * @example\n * ```typescript\n * .iconAfter('→', { color: '#007AFF', marginLeft: 8 })\n * .iconAfter('✓', { color: '#34c759' })\n * ```\n */\nexport function iconAfter(\n icon: string, \n styles: Omit<PseudoElementStyles, 'content'> = {}\n): PseudoElementModifier {\n return after({\n content: icon,\n display: 'inline-block',\n ...styles\n })\n}\n\n/**\n * Decorative line before content\n *\n * @example\n * ```typescript\n * .lineBefore() // Default line\n * .lineBefore('#007AFF', 2, 20) // Blue line, 2px thick, 20px long\n * ```\n */\nexport function lineBefore(\n color: string = '#ddd',\n thickness: number = 1,\n length: number = 16\n): PseudoElementModifier {\n return before({\n content: '',\n display: 'inline-block',\n width: length,\n height: thickness,\n backgroundColor: color,\n marginRight: 8,\n verticalAlign: 'middle'\n })\n}\n\n/**\n * Decorative line after content\n *\n * @example\n * ```typescript\n * .lineAfter() // Default line\n * .lineAfter('#007AFF', 2, 20) // Blue line, 2px thick, 20px long\n * ```\n */\nexport function lineAfter(\n color: string = '#ddd',\n thickness: number = 1,\n length: number = 16\n): PseudoElementModifier {\n return after({\n content: '',\n display: 'inline-block',\n width: length,\n height: thickness,\n backgroundColor: color,\n marginLeft: 8,\n verticalAlign: 'middle'\n })\n}\n\n/**\n * Quote marks around content\n *\n * @example\n * ```typescript\n * .quotes() // Default quotes (\" \")\n * .quotes('«', '»') // Custom quote characters\n * ```\n */\nexport function quotes(\n openQuote: string = '\"',\n closeQuote: string = '\"'\n): PseudoElementModifier {\n return new PseudoElementModifier({\n before: {\n content: openQuote,\n fontSize: '1.2em',\n color: '#666',\n marginRight: 4\n },\n after: {\n content: closeQuote,\n fontSize: '1.2em',\n color: '#666',\n marginLeft: 4\n }\n })\n}\n\n/**\n * Underline decoration using ::after\n *\n * @example\n * ```typescript\n * .underline() // Default underline\n * .underline('#007AFF', 2, 0.2) // Blue underline, 2px thick, 20% opacity\n * ```\n */\nexport function underline(\n color: string = 'currentColor',\n thickness: number = 1,\n opacity: number = 1\n): PseudoElementModifier {\n return after({\n content: '',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: thickness,\n backgroundColor: color,\n opacity\n })\n}\n\n/**\n * Badge or notification dot using ::after\n *\n * @example\n * ```typescript\n * .badge() // Default red dot\n * .badge('#007AFF', 8, '2') // Blue badge with \"2\" text\n * ```\n */\nexport function badge(\n color: string = '#ff3b30',\n size: number = 6,\n text: string = ''\n): PseudoElementModifier {\n return after({\n content: text,\n position: 'absolute',\n top: -2,\n right: -2,\n width: text ? 'auto' : size,\n height: size,\n minWidth: size,\n backgroundColor: color,\n borderRadius: '50%',\n fontSize: 10,\n color: 'white',\n textAlign: 'center',\n lineHeight: text ? size / 10 : 1,\n padding: text ? '2px 4px' : 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n })\n}\n\n/**\n * Tooltip using ::before with positioning\n *\n * @example\n * ```typescript\n * .tooltip('This is a tooltip')\n * .tooltip('Custom tooltip', 'bottom', '#333')\n * ```\n */\nexport function tooltip(\n text: string,\n position: 'top' | 'bottom' | 'left' | 'right' = 'top',\n backgroundColor: string = '#333',\n textColor: string = 'white'\n): PseudoElementModifier {\n const positionStyles: Record<string, any> = {\n top: { bottom: '100%', left: '50%', transform: 'translateX(-50%)', marginBottom: 5 },\n bottom: { top: '100%', left: '50%', transform: 'translateX(-50%)', marginTop: 5 },\n left: { right: '100%', top: '50%', transform: 'translateY(-50%)', marginRight: 5 },\n right: { left: '100%', top: '50%', transform: 'translateY(-50%)', marginLeft: 5 }\n }\n\n return before({\n content: text,\n position: 'absolute',\n backgroundColor,\n color: textColor,\n padding: '4px 8px',\n borderRadius: 4,\n fontSize: 12,\n whiteSpace: 'nowrap',\n zIndex: 1000,\n opacity: 0,\n pointerEvents: 'none',\n transition: 'opacity 0.2s ease',\n ...positionStyles[position]\n })\n}\n\n/**\n * Corner ribbon using ::before\n *\n * @example\n * ```typescript\n * .cornerRibbon('New!') // Default red ribbon\n * .cornerRibbon('Sale', '#ff9500') // Orange sale ribbon\n * ```\n */\nexport function cornerRibbon(\n text: string,\n color: string = '#ff3b30',\n textColor: string = 'white'\n): PseudoElementModifier {\n return before({\n content: text,\n position: 'absolute',\n top: 8,\n right: -8,\n backgroundColor: color,\n color: textColor,\n padding: '2px 12px',\n fontSize: 11,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n transform: 'rotate(45deg)',\n transformOrigin: 'center',\n zIndex: 10\n })\n}\n\n/**\n * Loading spinner using ::before with animation\n *\n * @example\n * ```typescript\n * .spinner() // Default spinner\n * .spinner(16, '#007AFF', 2) // Custom size, color, border width\n * ```\n */\nexport function spinner(\n size: number = 20,\n color: string = '#007AFF',\n borderWidth: number = 2\n): PseudoElementModifier {\n return before({\n content: '',\n display: 'inline-block',\n width: size,\n height: size,\n border: `${borderWidth}px solid transparent`,\n borderTop: `${borderWidth}px solid ${color}`,\n borderRadius: '50%',\n animation: 'spin 1s linear infinite'\n })\n}"],"names":["_PseudoElementModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","pseudoClass","className","pseudoType","styles","styleSheet","cssRule","e","selector","cssProperties","prop","cssProperty","cssValue","property","existingStyle","style","PseudoElementModifier","before","after","pseudoElements","iconBefore","icon","iconAfter","lineBefore","color","thickness","length","lineAfter","quotes","openQuote","closeQuote","underline","opacity","badge","size","text","tooltip","position","backgroundColor","textColor","cornerRibbon","spinner","borderWidth"],"mappings":"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"}