@tachui/core 0.7.0-alpha1

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 (1327) hide show
  1. package/LICENSE +363 -0
  2. package/dist/assets/Asset.cjs +2 -0
  3. package/dist/assets/Asset.cjs.map +1 -0
  4. package/dist/assets/Asset.d.ts +11 -0
  5. package/dist/assets/Asset.d.ts.map +1 -0
  6. package/dist/assets/Asset.js +9 -0
  7. package/dist/assets/Asset.js.map +1 -0
  8. package/dist/assets/AssetCollection.cjs +2 -0
  9. package/dist/assets/AssetCollection.cjs.map +1 -0
  10. package/dist/assets/AssetCollection.d.ts +14 -0
  11. package/dist/assets/AssetCollection.d.ts.map +1 -0
  12. package/dist/assets/AssetCollection.js +44 -0
  13. package/dist/assets/AssetCollection.js.map +1 -0
  14. package/dist/assets/ColorAsset.cjs +2 -0
  15. package/dist/assets/ColorAsset.cjs.map +1 -0
  16. package/dist/assets/ColorAsset.d.ts +31 -0
  17. package/dist/assets/ColorAsset.d.ts.map +1 -0
  18. package/dist/assets/ColorAsset.js +114 -0
  19. package/dist/assets/ColorAsset.js.map +1 -0
  20. package/dist/assets/FontAsset.cjs +9 -0
  21. package/dist/assets/FontAsset.cjs.map +1 -0
  22. package/dist/assets/FontAsset.d.ts +114 -0
  23. package/dist/assets/FontAsset.d.ts.map +1 -0
  24. package/dist/assets/FontAsset.js +173 -0
  25. package/dist/assets/FontAsset.js.map +1 -0
  26. package/dist/assets/ImageAsset.cjs +2 -0
  27. package/dist/assets/ImageAsset.cjs.map +1 -0
  28. package/dist/assets/ImageAsset.d.ts +35 -0
  29. package/dist/assets/ImageAsset.d.ts.map +1 -0
  30. package/dist/assets/ImageAsset.js +39 -0
  31. package/dist/assets/ImageAsset.js.map +1 -0
  32. package/dist/assets/index.cjs +2 -0
  33. package/dist/assets/index.cjs.map +1 -0
  34. package/dist/assets/index.d.ts +26 -0
  35. package/dist/assets/index.d.ts.map +1 -0
  36. package/dist/assets/index.js +119 -0
  37. package/dist/assets/index.js.map +1 -0
  38. package/dist/assets/types.d.ts +70 -0
  39. package/dist/assets/types.d.ts.map +1 -0
  40. package/dist/bundles/common.d.ts +24 -0
  41. package/dist/bundles/common.d.ts.map +1 -0
  42. package/dist/bundles/complete.d.ts +27 -0
  43. package/dist/bundles/complete.d.ts.map +1 -0
  44. package/dist/bundles/essential.d.ts +24 -0
  45. package/dist/bundles/essential.d.ts.map +1 -0
  46. package/dist/bundles/minimal.d.ts +24 -0
  47. package/dist/bundles/minimal.d.ts.map +1 -0
  48. package/dist/bundles/production-minimal.d.ts +35 -0
  49. package/dist/bundles/production-minimal.d.ts.map +1 -0
  50. package/dist/common.cjs +2 -0
  51. package/dist/common.cjs.map +1 -0
  52. package/dist/common.js +985 -0
  53. package/dist/common.js.map +1 -0
  54. package/dist/compiler/advanced-parser.cjs +5 -0
  55. package/dist/compiler/advanced-parser.cjs.map +1 -0
  56. package/dist/compiler/advanced-parser.d.ts +113 -0
  57. package/dist/compiler/advanced-parser.d.ts.map +1 -0
  58. package/dist/compiler/advanced-parser.js +440 -0
  59. package/dist/compiler/advanced-parser.js.map +1 -0
  60. package/dist/compiler/codegen.cjs +6 -0
  61. package/dist/compiler/codegen.cjs.map +1 -0
  62. package/dist/compiler/codegen.d.ts +20 -0
  63. package/dist/compiler/codegen.d.ts.map +1 -0
  64. package/dist/compiler/codegen.js +241 -0
  65. package/dist/compiler/codegen.js.map +1 -0
  66. package/dist/compiler/enhanced-codegen.cjs +6 -0
  67. package/dist/compiler/enhanced-codegen.cjs.map +1 -0
  68. package/dist/compiler/enhanced-codegen.d.ts +121 -0
  69. package/dist/compiler/enhanced-codegen.d.ts.map +1 -0
  70. package/dist/compiler/enhanced-codegen.js +347 -0
  71. package/dist/compiler/enhanced-codegen.js.map +1 -0
  72. package/dist/compiler/index.cjs +2 -0
  73. package/dist/compiler/index.cjs.map +1 -0
  74. package/dist/compiler/index.d.ts +14 -0
  75. package/dist/compiler/index.d.ts.map +1 -0
  76. package/dist/compiler/index.js +13 -0
  77. package/dist/compiler/index.js.map +1 -0
  78. package/dist/compiler/parser.cjs +5 -0
  79. package/dist/compiler/parser.cjs.map +1 -0
  80. package/dist/compiler/parser.d.ts +12 -0
  81. package/dist/compiler/parser.d.ts.map +1 -0
  82. package/dist/compiler/parser.js +275 -0
  83. package/dist/compiler/parser.js.map +1 -0
  84. package/dist/compiler/plugin.cjs +33 -0
  85. package/dist/compiler/plugin.cjs.map +1 -0
  86. package/dist/compiler/plugin.d.ts +13 -0
  87. package/dist/compiler/plugin.d.ts.map +1 -0
  88. package/dist/compiler/plugin.js +103 -0
  89. package/dist/compiler/plugin.js.map +1 -0
  90. package/dist/compiler/types.d.ts +149 -0
  91. package/dist/compiler/types.d.ts.map +1 -0
  92. package/dist/components/BasicInput.cjs +2 -0
  93. package/dist/components/BasicInput.cjs.map +1 -0
  94. package/dist/components/BasicInput.d.ts +116 -0
  95. package/dist/components/BasicInput.d.ts.map +1 -0
  96. package/dist/components/BasicInput.js +182 -0
  97. package/dist/components/BasicInput.js.map +1 -0
  98. package/dist/components/Button.cjs +7 -0
  99. package/dist/components/Button.cjs.map +1 -0
  100. package/dist/components/Button.d.ts +252 -0
  101. package/dist/components/Button.d.ts.map +1 -0
  102. package/dist/components/Button.js +408 -0
  103. package/dist/components/Button.js.map +1 -0
  104. package/dist/components/Divider.cjs +2 -0
  105. package/dist/components/Divider.cjs.map +1 -0
  106. package/dist/components/Divider.d.ts +141 -0
  107. package/dist/components/Divider.d.ts.map +1 -0
  108. package/dist/components/Divider.js +187 -0
  109. package/dist/components/Divider.js.map +1 -0
  110. package/dist/components/EnhancedLink.cjs +2 -0
  111. package/dist/components/EnhancedLink.cjs.map +1 -0
  112. package/dist/components/EnhancedLink.d.ts +365 -0
  113. package/dist/components/EnhancedLink.d.ts.map +1 -0
  114. package/dist/components/EnhancedLink.js +345 -0
  115. package/dist/components/EnhancedLink.js.map +1 -0
  116. package/dist/components/Form.cjs +2 -0
  117. package/dist/components/Form.cjs.map +1 -0
  118. package/dist/components/Form.d.ts +141 -0
  119. package/dist/components/Form.d.ts.map +1 -0
  120. package/dist/components/Form.js +244 -0
  121. package/dist/components/Form.js.map +1 -0
  122. package/dist/components/Grid.cjs +2 -0
  123. package/dist/components/Grid.cjs.map +1 -0
  124. package/dist/components/Grid.d.ts +698 -0
  125. package/dist/components/Grid.d.ts.map +1 -0
  126. package/dist/components/Grid.js +1045 -0
  127. package/dist/components/Grid.js.map +1 -0
  128. package/dist/components/GridResponsive.cjs +2 -0
  129. package/dist/components/GridResponsive.cjs.map +1 -0
  130. package/dist/components/GridResponsive.d.ts +214 -0
  131. package/dist/components/GridResponsive.d.ts.map +1 -0
  132. package/dist/components/GridResponsive.js +382 -0
  133. package/dist/components/GridResponsive.js.map +1 -0
  134. package/dist/components/Image.cjs +2 -0
  135. package/dist/components/Image.cjs.map +1 -0
  136. package/dist/components/Image.d.ts +162 -0
  137. package/dist/components/Image.d.ts.map +1 -0
  138. package/dist/components/Image.js +212 -0
  139. package/dist/components/Image.js.map +1 -0
  140. package/dist/components/List.cjs +2 -0
  141. package/dist/components/List.cjs.map +1 -0
  142. package/dist/components/List.d.ts +287 -0
  143. package/dist/components/List.d.ts.map +1 -0
  144. package/dist/components/List.js +561 -0
  145. package/dist/components/List.js.map +1 -0
  146. package/dist/components/Menu.cjs +2 -0
  147. package/dist/components/Menu.cjs.map +1 -0
  148. package/dist/components/Menu.d.ts +159 -0
  149. package/dist/components/Menu.d.ts.map +1 -0
  150. package/dist/components/Menu.js +443 -0
  151. package/dist/components/Menu.js.map +1 -0
  152. package/dist/components/Picker.cjs +2 -0
  153. package/dist/components/Picker.cjs.map +1 -0
  154. package/dist/components/Picker.d.ts +153 -0
  155. package/dist/components/Picker.d.ts.map +1 -0
  156. package/dist/components/Picker.js +478 -0
  157. package/dist/components/Picker.js.map +1 -0
  158. package/dist/components/ScrollView.cjs +6 -0
  159. package/dist/components/ScrollView.cjs.map +1 -0
  160. package/dist/components/ScrollView.d.ts +222 -0
  161. package/dist/components/ScrollView.d.ts.map +1 -0
  162. package/dist/components/ScrollView.js +363 -0
  163. package/dist/components/ScrollView.js.map +1 -0
  164. package/dist/components/Section.cjs +2 -0
  165. package/dist/components/Section.cjs.map +1 -0
  166. package/dist/components/Section.d.ts +153 -0
  167. package/dist/components/Section.d.ts.map +1 -0
  168. package/dist/components/Section.js +323 -0
  169. package/dist/components/Section.js.map +1 -0
  170. package/dist/components/Show.cjs +2 -0
  171. package/dist/components/Show.cjs.map +1 -0
  172. package/dist/components/Show.d.ts +64 -0
  173. package/dist/components/Show.d.ts.map +1 -0
  174. package/dist/components/Show.js +112 -0
  175. package/dist/components/Show.js.map +1 -0
  176. package/dist/components/Spacer.cjs +2 -0
  177. package/dist/components/Spacer.cjs.map +1 -0
  178. package/dist/components/Spacer.d.ts +35 -0
  179. package/dist/components/Spacer.d.ts.map +1 -0
  180. package/dist/components/Spacer.js +53 -0
  181. package/dist/components/Spacer.js.map +1 -0
  182. package/dist/components/Text.cjs +2 -0
  183. package/dist/components/Text.cjs.map +1 -0
  184. package/dist/components/Text.d.ts +242 -0
  185. package/dist/components/Text.d.ts.map +1 -0
  186. package/dist/components/Text.js +193 -0
  187. package/dist/components/Text.js.map +1 -0
  188. package/dist/components/Toggle.cjs +2 -0
  189. package/dist/components/Toggle.cjs.map +1 -0
  190. package/dist/components/Toggle.d.ts +207 -0
  191. package/dist/components/Toggle.d.ts.map +1 -0
  192. package/dist/components/Toggle.js +477 -0
  193. package/dist/components/Toggle.js.map +1 -0
  194. package/dist/components/index.cjs +2 -0
  195. package/dist/components/index.cjs.map +1 -0
  196. package/dist/components/index.d.ts +45 -0
  197. package/dist/components/index.d.ts.map +1 -0
  198. package/dist/components/index.js +104 -0
  199. package/dist/components/index.js.map +1 -0
  200. package/dist/components/wrapper.cjs +2 -0
  201. package/dist/components/wrapper.cjs.map +1 -0
  202. package/dist/components/wrapper.d.ts +249 -0
  203. package/dist/components/wrapper.d.ts.map +1 -0
  204. package/dist/components/wrapper.js +484 -0
  205. package/dist/components/wrapper.js.map +1 -0
  206. package/dist/concatenation/concatenatable.cjs +2 -0
  207. package/dist/concatenation/concatenatable.cjs.map +1 -0
  208. package/dist/concatenation/concatenatable.d.ts +63 -0
  209. package/dist/concatenation/concatenatable.d.ts.map +1 -0
  210. package/dist/concatenation/concatenatable.js +118 -0
  211. package/dist/concatenation/concatenatable.js.map +1 -0
  212. package/dist/concatenation/concatenated-component.cjs +2 -0
  213. package/dist/concatenation/concatenated-component.cjs.map +1 -0
  214. package/dist/concatenation/concatenated-component.d.ts +110 -0
  215. package/dist/concatenation/concatenated-component.d.ts.map +1 -0
  216. package/dist/concatenation/concatenated-component.js +276 -0
  217. package/dist/concatenation/concatenated-component.js.map +1 -0
  218. package/dist/concatenation/index.d.ts +13 -0
  219. package/dist/concatenation/index.d.ts.map +1 -0
  220. package/dist/concatenation/text-optimizer.cjs +2 -0
  221. package/dist/concatenation/text-optimizer.cjs.map +1 -0
  222. package/dist/concatenation/text-optimizer.d.ts +104 -0
  223. package/dist/concatenation/text-optimizer.d.ts.map +1 -0
  224. package/dist/concatenation/text-optimizer.js +236 -0
  225. package/dist/concatenation/text-optimizer.js.map +1 -0
  226. package/dist/concatenation/types.cjs +2 -0
  227. package/dist/concatenation/types.cjs.map +1 -0
  228. package/dist/concatenation/types.d.ts +88 -0
  229. package/dist/concatenation/types.d.ts.map +1 -0
  230. package/dist/concatenation/types.js +13 -0
  231. package/dist/concatenation/types.js.map +1 -0
  232. package/dist/constants/frame-utils.cjs +2 -0
  233. package/dist/constants/frame-utils.cjs.map +1 -0
  234. package/dist/constants/frame-utils.d.ts +68 -0
  235. package/dist/constants/frame-utils.d.ts.map +1 -0
  236. package/dist/constants/frame-utils.js +116 -0
  237. package/dist/constants/frame-utils.js.map +1 -0
  238. package/dist/constants/index.d.ts +8 -0
  239. package/dist/constants/index.d.ts.map +1 -0
  240. package/dist/constants/layout.cjs +2 -0
  241. package/dist/constants/layout.cjs.map +1 -0
  242. package/dist/constants/layout.d.ts +60 -0
  243. package/dist/constants/layout.d.ts.map +1 -0
  244. package/dist/constants/layout.js +46 -0
  245. package/dist/constants/layout.js.map +1 -0
  246. package/dist/css-classes/component-base.cjs +2 -0
  247. package/dist/css-classes/component-base.cjs.map +1 -0
  248. package/dist/css-classes/component-base.d.ts +40 -0
  249. package/dist/css-classes/component-base.d.ts.map +1 -0
  250. package/dist/css-classes/component-base.js +62 -0
  251. package/dist/css-classes/component-base.js.map +1 -0
  252. package/dist/css-classes/css-class-manager.cjs +2 -0
  253. package/dist/css-classes/css-class-manager.cjs.map +1 -0
  254. package/dist/css-classes/css-class-manager.d.ts +89 -0
  255. package/dist/css-classes/css-class-manager.d.ts.map +1 -0
  256. package/dist/css-classes/css-class-manager.js +209 -0
  257. package/dist/css-classes/css-class-manager.js.map +1 -0
  258. package/dist/css-classes/dom-integration.cjs +2 -0
  259. package/dist/css-classes/dom-integration.cjs.map +1 -0
  260. package/dist/css-classes/dom-integration.d.ts +76 -0
  261. package/dist/css-classes/dom-integration.d.ts.map +1 -0
  262. package/dist/css-classes/dom-integration.js +67 -0
  263. package/dist/css-classes/dom-integration.js.map +1 -0
  264. package/dist/css-classes/enhanced-renderer.cjs +2 -0
  265. package/dist/css-classes/enhanced-renderer.cjs.map +1 -0
  266. package/dist/css-classes/enhanced-renderer.d.ts +42 -0
  267. package/dist/css-classes/enhanced-renderer.d.ts.map +1 -0
  268. package/dist/css-classes/enhanced-renderer.js +73 -0
  269. package/dist/css-classes/enhanced-renderer.js.map +1 -0
  270. package/dist/css-classes/index.d.ts +14 -0
  271. package/dist/css-classes/index.d.ts.map +1 -0
  272. package/dist/css-classes/types.d.ts +59 -0
  273. package/dist/css-classes/types.d.ts.map +1 -0
  274. package/dist/css-classes/utilities.cjs +2 -0
  275. package/dist/css-classes/utilities.cjs.map +1 -0
  276. package/dist/css-classes/utilities.d.ts +104 -0
  277. package/dist/css-classes/utilities.d.ts.map +1 -0
  278. package/dist/css-classes/utilities.js +41 -0
  279. package/dist/css-classes/utilities.js.map +1 -0
  280. package/dist/debug/index.d.ts +61 -0
  281. package/dist/debug/index.d.ts.map +1 -0
  282. package/dist/debug.cjs +52 -0
  283. package/dist/debug.cjs.map +1 -0
  284. package/dist/debug.js +179 -0
  285. package/dist/debug.js.map +1 -0
  286. package/dist/developer-experience/enhanced-errors.d.ts +128 -0
  287. package/dist/developer-experience/enhanced-errors.d.ts.map +1 -0
  288. package/dist/developer-experience/enhanced-types.d.ts +281 -0
  289. package/dist/developer-experience/enhanced-types.d.ts.map +1 -0
  290. package/dist/developer-experience/index.d.ts +44 -0
  291. package/dist/developer-experience/index.d.ts.map +1 -0
  292. package/dist/essential.cjs +2 -0
  293. package/dist/essential.cjs.map +1 -0
  294. package/dist/essential.js +968 -0
  295. package/dist/essential.js.map +1 -0
  296. package/dist/gradients/css-generator.cjs +2 -0
  297. package/dist/gradients/css-generator.cjs.map +1 -0
  298. package/dist/gradients/css-generator.d.ts +10 -0
  299. package/dist/gradients/css-generator.d.ts.map +1 -0
  300. package/dist/gradients/css-generator.js +100 -0
  301. package/dist/gradients/css-generator.js.map +1 -0
  302. package/dist/gradients/examples.cjs +2 -0
  303. package/dist/gradients/examples.cjs.map +1 -0
  304. package/dist/gradients/examples.d.ts +432 -0
  305. package/dist/gradients/examples.d.ts.map +1 -0
  306. package/dist/gradients/examples.js +555 -0
  307. package/dist/gradients/examples.js.map +1 -0
  308. package/dist/gradients/gradient-asset.cjs +2 -0
  309. package/dist/gradients/gradient-asset.cjs.map +1 -0
  310. package/dist/gradients/gradient-asset.d.ts +10 -0
  311. package/dist/gradients/gradient-asset.d.ts.map +1 -0
  312. package/dist/gradients/gradient-asset.js +22 -0
  313. package/dist/gradients/gradient-asset.js.map +1 -0
  314. package/dist/gradients/index.cjs +2 -0
  315. package/dist/gradients/index.cjs.map +1 -0
  316. package/dist/gradients/index.d.ts +19 -0
  317. package/dist/gradients/index.d.ts.map +1 -0
  318. package/dist/gradients/index.js +78 -0
  319. package/dist/gradients/index.js.map +1 -0
  320. package/dist/gradients/performance.cjs +2 -0
  321. package/dist/gradients/performance.cjs.map +1 -0
  322. package/dist/gradients/performance.d.ts +146 -0
  323. package/dist/gradients/performance.d.ts.map +1 -0
  324. package/dist/gradients/performance.js +237 -0
  325. package/dist/gradients/performance.js.map +1 -0
  326. package/dist/gradients/presets.cjs +2 -0
  327. package/dist/gradients/presets.cjs.map +1 -0
  328. package/dist/gradients/presets.d.ts +165 -0
  329. package/dist/gradients/presets.d.ts.map +1 -0
  330. package/dist/gradients/presets.js +254 -0
  331. package/dist/gradients/presets.js.map +1 -0
  332. package/dist/gradients/reactive.cjs +2 -0
  333. package/dist/gradients/reactive.cjs.map +1 -0
  334. package/dist/gradients/reactive.d.ts +167 -0
  335. package/dist/gradients/reactive.d.ts.map +1 -0
  336. package/dist/gradients/reactive.js +239 -0
  337. package/dist/gradients/reactive.js.map +1 -0
  338. package/dist/gradients/state-gradient-asset.cjs +2 -0
  339. package/dist/gradients/state-gradient-asset.cjs.map +1 -0
  340. package/dist/gradients/state-gradient-asset.d.ts +67 -0
  341. package/dist/gradients/state-gradient-asset.d.ts.map +1 -0
  342. package/dist/gradients/state-gradient-asset.js +111 -0
  343. package/dist/gradients/state-gradient-asset.js.map +1 -0
  344. package/dist/gradients/types.d.ts +94 -0
  345. package/dist/gradients/types.d.ts.map +1 -0
  346. package/dist/gradients/utils.cjs +2 -0
  347. package/dist/gradients/utils.cjs.map +1 -0
  348. package/dist/gradients/utils.d.ts +313 -0
  349. package/dist/gradients/utils.d.ts.map +1 -0
  350. package/dist/gradients/utils.js +385 -0
  351. package/dist/gradients/utils.js.map +1 -0
  352. package/dist/gradients/validation.cjs +2 -0
  353. package/dist/gradients/validation.cjs.map +1 -0
  354. package/dist/gradients/validation.d.ts +156 -0
  355. package/dist/gradients/validation.d.ts.map +1 -0
  356. package/dist/gradients/validation.js +209 -0
  357. package/dist/gradients/validation.js.map +1 -0
  358. package/dist/index.cjs +2 -0
  359. package/dist/index.cjs.map +1 -0
  360. package/dist/index.d.ts +26 -0
  361. package/dist/index.d.ts.map +1 -0
  362. package/dist/index.js +965 -0
  363. package/dist/index.js.map +1 -0
  364. package/dist/index2.cjs +2 -0
  365. package/dist/index2.cjs.map +1 -0
  366. package/dist/index2.js +293 -0
  367. package/dist/index2.js.map +1 -0
  368. package/dist/lifecycle/hooks.cjs +2 -0
  369. package/dist/lifecycle/hooks.cjs.map +1 -0
  370. package/dist/lifecycle/hooks.d.ts +101 -0
  371. package/dist/lifecycle/hooks.d.ts.map +1 -0
  372. package/dist/lifecycle/hooks.js +159 -0
  373. package/dist/lifecycle/hooks.js.map +1 -0
  374. package/dist/minimal-prod.cjs +2 -0
  375. package/dist/minimal-prod.cjs.map +1 -0
  376. package/dist/minimal-prod.js +193 -0
  377. package/dist/minimal-prod.js.map +1 -0
  378. package/dist/minimal.cjs +2 -0
  379. package/dist/minimal.cjs.map +1 -0
  380. package/dist/minimal.js +968 -0
  381. package/dist/minimal.js.map +1 -0
  382. package/dist/modifiers/as-html-validator.cjs +2 -0
  383. package/dist/modifiers/as-html-validator.cjs.map +1 -0
  384. package/dist/modifiers/as-html-validator.d.ts +20 -0
  385. package/dist/modifiers/as-html-validator.d.ts.map +1 -0
  386. package/dist/modifiers/as-html-validator.js +47 -0
  387. package/dist/modifiers/as-html-validator.js.map +1 -0
  388. package/dist/modifiers/as-html.cjs +2 -0
  389. package/dist/modifiers/as-html.cjs.map +1 -0
  390. package/dist/modifiers/as-html.d.ts +65 -0
  391. package/dist/modifiers/as-html.d.ts.map +1 -0
  392. package/dist/modifiers/as-html.js +71 -0
  393. package/dist/modifiers/as-html.js.map +1 -0
  394. package/dist/modifiers/attributes.cjs +2 -0
  395. package/dist/modifiers/attributes.cjs.map +1 -0
  396. package/dist/modifiers/attributes.d.ts +203 -0
  397. package/dist/modifiers/attributes.d.ts.map +1 -0
  398. package/dist/modifiers/attributes.js +272 -0
  399. package/dist/modifiers/attributes.js.map +1 -0
  400. package/dist/modifiers/backdrop.cjs +2 -0
  401. package/dist/modifiers/backdrop.cjs.map +1 -0
  402. package/dist/modifiers/backdrop.d.ts +59 -0
  403. package/dist/modifiers/backdrop.d.ts.map +1 -0
  404. package/dist/modifiers/backdrop.js +109 -0
  405. package/dist/modifiers/backdrop.js.map +1 -0
  406. package/dist/modifiers/background.cjs +2 -0
  407. package/dist/modifiers/background.cjs.map +1 -0
  408. package/dist/modifiers/background.d.ts +21 -0
  409. package/dist/modifiers/background.d.ts.map +1 -0
  410. package/dist/modifiers/background.js +67 -0
  411. package/dist/modifiers/background.js.map +1 -0
  412. package/dist/modifiers/base.cjs +25 -0
  413. package/dist/modifiers/base.cjs.map +1 -0
  414. package/dist/modifiers/base.d.ts +156 -0
  415. package/dist/modifiers/base.d.ts.map +1 -0
  416. package/dist/modifiers/base.js +745 -0
  417. package/dist/modifiers/base.js.map +1 -0
  418. package/dist/modifiers/basic-sanitizer.cjs +2 -0
  419. package/dist/modifiers/basic-sanitizer.cjs.map +1 -0
  420. package/dist/modifiers/basic-sanitizer.d.ts +54 -0
  421. package/dist/modifiers/basic-sanitizer.d.ts.map +1 -0
  422. package/dist/modifiers/basic-sanitizer.js +162 -0
  423. package/dist/modifiers/basic-sanitizer.js.map +1 -0
  424. package/dist/modifiers/border.cjs +2 -0
  425. package/dist/modifiers/border.cjs.map +1 -0
  426. package/dist/modifiers/border.d.ts +217 -0
  427. package/dist/modifiers/border.d.ts.map +1 -0
  428. package/dist/modifiers/border.js +160 -0
  429. package/dist/modifiers/border.js.map +1 -0
  430. package/dist/modifiers/builder.cjs +2 -0
  431. package/dist/modifiers/builder.cjs.map +1 -0
  432. package/dist/modifiers/builder.d.ts +377 -0
  433. package/dist/modifiers/builder.d.ts.map +1 -0
  434. package/dist/modifiers/builder.js +930 -0
  435. package/dist/modifiers/builder.js.map +1 -0
  436. package/dist/modifiers/core.cjs +2 -0
  437. package/dist/modifiers/core.cjs.map +1 -0
  438. package/dist/modifiers/core.d.ts +407 -0
  439. package/dist/modifiers/core.d.ts.map +1 -0
  440. package/dist/modifiers/core.js +398 -0
  441. package/dist/modifiers/core.js.map +1 -0
  442. package/dist/modifiers/css.cjs +2 -0
  443. package/dist/modifiers/css.cjs.map +1 -0
  444. package/dist/modifiers/css.d.ts +86 -0
  445. package/dist/modifiers/css.d.ts.map +1 -0
  446. package/dist/modifiers/css.js +50 -0
  447. package/dist/modifiers/css.js.map +1 -0
  448. package/dist/modifiers/effects.cjs +2 -0
  449. package/dist/modifiers/effects.cjs.map +1 -0
  450. package/dist/modifiers/effects.d.ts +159 -0
  451. package/dist/modifiers/effects.d.ts.map +1 -0
  452. package/dist/modifiers/effects.js +178 -0
  453. package/dist/modifiers/effects.js.map +1 -0
  454. package/dist/modifiers/elements.cjs +2 -0
  455. package/dist/modifiers/elements.cjs.map +1 -0
  456. package/dist/modifiers/elements.d.ts +240 -0
  457. package/dist/modifiers/elements.d.ts.map +1 -0
  458. package/dist/modifiers/elements.js +216 -0
  459. package/dist/modifiers/elements.js.map +1 -0
  460. package/dist/modifiers/filters.cjs +2 -0
  461. package/dist/modifiers/filters.cjs.map +1 -0
  462. package/dist/modifiers/filters.d.ts +275 -0
  463. package/dist/modifiers/filters.d.ts.map +1 -0
  464. package/dist/modifiers/filters.js +223 -0
  465. package/dist/modifiers/filters.js.map +1 -0
  466. package/dist/modifiers/flexbox.cjs +2 -0
  467. package/dist/modifiers/flexbox.cjs.map +1 -0
  468. package/dist/modifiers/flexbox.d.ts +82 -0
  469. package/dist/modifiers/flexbox.d.ts.map +1 -0
  470. package/dist/modifiers/flexbox.js +56 -0
  471. package/dist/modifiers/flexbox.js.map +1 -0
  472. package/dist/modifiers/font.cjs +2 -0
  473. package/dist/modifiers/font.cjs.map +1 -0
  474. package/dist/modifiers/font.d.ts +71 -0
  475. package/dist/modifiers/font.d.ts.map +1 -0
  476. package/dist/modifiers/font.js +60 -0
  477. package/dist/modifiers/font.js.map +1 -0
  478. package/dist/modifiers/grid.cjs +2 -0
  479. package/dist/modifiers/grid.cjs.map +1 -0
  480. package/dist/modifiers/grid.d.ts +92 -0
  481. package/dist/modifiers/grid.d.ts.map +1 -0
  482. package/dist/modifiers/grid.js +92 -0
  483. package/dist/modifiers/grid.js.map +1 -0
  484. package/dist/modifiers/index.d.ts +58 -0
  485. package/dist/modifiers/index.d.ts.map +1 -0
  486. package/dist/modifiers/margin.cjs +2 -0
  487. package/dist/modifiers/margin.cjs.map +1 -0
  488. package/dist/modifiers/margin.d.ts +128 -0
  489. package/dist/modifiers/margin.d.ts.map +1 -0
  490. package/dist/modifiers/margin.js +65 -0
  491. package/dist/modifiers/margin.js.map +1 -0
  492. package/dist/modifiers/padding.cjs +2 -0
  493. package/dist/modifiers/padding.cjs.map +1 -0
  494. package/dist/modifiers/padding.d.ts +204 -0
  495. package/dist/modifiers/padding.d.ts.map +1 -0
  496. package/dist/modifiers/padding.js +109 -0
  497. package/dist/modifiers/padding.js.map +1 -0
  498. package/dist/modifiers/registry.cjs +2 -0
  499. package/dist/modifiers/registry.cjs.map +1 -0
  500. package/dist/modifiers/registry.d.ts +69 -0
  501. package/dist/modifiers/registry.d.ts.map +1 -0
  502. package/dist/modifiers/registry.js +163 -0
  503. package/dist/modifiers/registry.js.map +1 -0
  504. package/dist/modifiers/responsive/advanced-utilities.cjs +2 -0
  505. package/dist/modifiers/responsive/advanced-utilities.cjs.map +1 -0
  506. package/dist/modifiers/responsive/advanced-utilities.d.ts +118 -0
  507. package/dist/modifiers/responsive/advanced-utilities.d.ts.map +1 -0
  508. package/dist/modifiers/responsive/advanced-utilities.js +291 -0
  509. package/dist/modifiers/responsive/advanced-utilities.js.map +1 -0
  510. package/dist/modifiers/responsive/breakpoints.cjs +2 -0
  511. package/dist/modifiers/responsive/breakpoints.cjs.map +1 -0
  512. package/dist/modifiers/responsive/breakpoints.d.ts +81 -0
  513. package/dist/modifiers/responsive/breakpoints.d.ts.map +1 -0
  514. package/dist/modifiers/responsive/breakpoints.js +168 -0
  515. package/dist/modifiers/responsive/breakpoints.js.map +1 -0
  516. package/dist/modifiers/responsive/css-generator.cjs +5 -0
  517. package/dist/modifiers/responsive/css-generator.cjs.map +1 -0
  518. package/dist/modifiers/responsive/css-generator.d.ts +100 -0
  519. package/dist/modifiers/responsive/css-generator.d.ts.map +1 -0
  520. package/dist/modifiers/responsive/css-generator.js +261 -0
  521. package/dist/modifiers/responsive/css-generator.js.map +1 -0
  522. package/dist/modifiers/responsive/dev-tools.cjs +77 -0
  523. package/dist/modifiers/responsive/dev-tools.cjs.map +1 -0
  524. package/dist/modifiers/responsive/dev-tools.d.ts +107 -0
  525. package/dist/modifiers/responsive/dev-tools.d.ts.map +1 -0
  526. package/dist/modifiers/responsive/dev-tools.js +380 -0
  527. package/dist/modifiers/responsive/dev-tools.js.map +1 -0
  528. package/dist/modifiers/responsive/index.d.ts +28 -0
  529. package/dist/modifiers/responsive/index.d.ts.map +1 -0
  530. package/dist/modifiers/responsive/layout-patterns.cjs +2 -0
  531. package/dist/modifiers/responsive/layout-patterns.cjs.map +1 -0
  532. package/dist/modifiers/responsive/layout-patterns.d.ts +230 -0
  533. package/dist/modifiers/responsive/layout-patterns.d.ts.map +1 -0
  534. package/dist/modifiers/responsive/layout-patterns.js +254 -0
  535. package/dist/modifiers/responsive/layout-patterns.js.map +1 -0
  536. package/dist/modifiers/responsive/performance.cjs +3 -0
  537. package/dist/modifiers/responsive/performance.cjs.map +1 -0
  538. package/dist/modifiers/responsive/performance.d.ts +130 -0
  539. package/dist/modifiers/responsive/performance.d.ts.map +1 -0
  540. package/dist/modifiers/responsive/performance.js +212 -0
  541. package/dist/modifiers/responsive/performance.js.map +1 -0
  542. package/dist/modifiers/responsive/responsive-builder.cjs +2 -0
  543. package/dist/modifiers/responsive/responsive-builder.cjs.map +1 -0
  544. package/dist/modifiers/responsive/responsive-builder.d.ts +133 -0
  545. package/dist/modifiers/responsive/responsive-builder.d.ts.map +1 -0
  546. package/dist/modifiers/responsive/responsive-builder.js +272 -0
  547. package/dist/modifiers/responsive/responsive-builder.js.map +1 -0
  548. package/dist/modifiers/responsive/responsive-modifier.cjs +3 -0
  549. package/dist/modifiers/responsive/responsive-modifier.cjs.map +1 -0
  550. package/dist/modifiers/responsive/responsive-modifier.d.ts +123 -0
  551. package/dist/modifiers/responsive/responsive-modifier.d.ts.map +1 -0
  552. package/dist/modifiers/responsive/responsive-modifier.js +204 -0
  553. package/dist/modifiers/responsive/responsive-modifier.js.map +1 -0
  554. package/dist/modifiers/responsive/types.cjs +2 -0
  555. package/dist/modifiers/responsive/types.cjs.map +1 -0
  556. package/dist/modifiers/responsive/types.d.ts +183 -0
  557. package/dist/modifiers/responsive/types.d.ts.map +1 -0
  558. package/dist/modifiers/responsive/types.js +26 -0
  559. package/dist/modifiers/responsive/types.js.map +1 -0
  560. package/dist/modifiers/responsive/utilities.cjs +16 -0
  561. package/dist/modifiers/responsive/utilities.cjs.map +1 -0
  562. package/dist/modifiers/responsive/utilities.d.ts +149 -0
  563. package/dist/modifiers/responsive/utilities.d.ts.map +1 -0
  564. package/dist/modifiers/responsive/utilities.js +273 -0
  565. package/dist/modifiers/responsive/utilities.js.map +1 -0
  566. package/dist/modifiers/scroll.cjs +2 -0
  567. package/dist/modifiers/scroll.cjs.map +1 -0
  568. package/dist/modifiers/scroll.d.ts +143 -0
  569. package/dist/modifiers/scroll.d.ts.map +1 -0
  570. package/dist/modifiers/scroll.js +82 -0
  571. package/dist/modifiers/scroll.js.map +1 -0
  572. package/dist/modifiers/shadows.cjs +2 -0
  573. package/dist/modifiers/shadows.cjs.map +1 -0
  574. package/dist/modifiers/shadows.d.ts +114 -0
  575. package/dist/modifiers/shadows.d.ts.map +1 -0
  576. package/dist/modifiers/shadows.js +147 -0
  577. package/dist/modifiers/shadows.js.map +1 -0
  578. package/dist/modifiers/size.cjs +2 -0
  579. package/dist/modifiers/size.cjs.map +1 -0
  580. package/dist/modifiers/size.d.ts +113 -0
  581. package/dist/modifiers/size.d.ts.map +1 -0
  582. package/dist/modifiers/size.js +74 -0
  583. package/dist/modifiers/size.js.map +1 -0
  584. package/dist/modifiers/text.cjs +2 -0
  585. package/dist/modifiers/text.cjs.map +1 -0
  586. package/dist/modifiers/text.d.ts +147 -0
  587. package/dist/modifiers/text.d.ts.map +1 -0
  588. package/dist/modifiers/text.js +166 -0
  589. package/dist/modifiers/text.js.map +1 -0
  590. package/dist/modifiers/transformations.cjs +2 -0
  591. package/dist/modifiers/transformations.cjs.map +1 -0
  592. package/dist/modifiers/transformations.d.ts +329 -0
  593. package/dist/modifiers/transformations.d.ts.map +1 -0
  594. package/dist/modifiers/transformations.js +216 -0
  595. package/dist/modifiers/transformations.js.map +1 -0
  596. package/dist/modifiers/transitions.cjs +2 -0
  597. package/dist/modifiers/transitions.cjs.map +1 -0
  598. package/dist/modifiers/transitions.d.ts +98 -0
  599. package/dist/modifiers/transitions.d.ts.map +1 -0
  600. package/dist/modifiers/transitions.js +102 -0
  601. package/dist/modifiers/transitions.js.map +1 -0
  602. package/dist/modifiers/types.cjs +2 -0
  603. package/dist/modifiers/types.cjs.map +1 -0
  604. package/dist/modifiers/types.d.ts +655 -0
  605. package/dist/modifiers/types.d.ts.map +1 -0
  606. package/dist/modifiers/types.js +5 -0
  607. package/dist/modifiers/types.js.map +1 -0
  608. package/dist/modifiers/typography.cjs +2 -0
  609. package/dist/modifiers/typography.cjs.map +1 -0
  610. package/dist/modifiers/typography.d.ts +192 -0
  611. package/dist/modifiers/typography.d.ts.map +1 -0
  612. package/dist/modifiers/typography.js +76 -0
  613. package/dist/modifiers/typography.js.map +1 -0
  614. package/dist/modifiers/utility.cjs +2 -0
  615. package/dist/modifiers/utility.cjs.map +1 -0
  616. package/dist/modifiers/utility.d.ts +69 -0
  617. package/dist/modifiers/utility.d.ts.map +1 -0
  618. package/dist/modifiers/utility.js +71 -0
  619. package/dist/modifiers/utility.js.map +1 -0
  620. package/dist/modifiers/utils.cjs +2 -0
  621. package/dist/modifiers/utils.cjs.map +1 -0
  622. package/dist/modifiers/utils.d.ts +75 -0
  623. package/dist/modifiers/utils.d.ts.map +1 -0
  624. package/dist/modifiers/utils.js +250 -0
  625. package/dist/modifiers/utils.js.map +1 -0
  626. package/dist/plugins/component-loader-registry.d.ts +143 -0
  627. package/dist/plugins/component-loader-registry.d.ts.map +1 -0
  628. package/dist/plugins/index.cjs +2 -0
  629. package/dist/plugins/index.cjs.map +1 -0
  630. package/dist/plugins/index.d.ts +17 -0
  631. package/dist/plugins/index.d.ts.map +1 -0
  632. package/dist/plugins/index.js +34 -0
  633. package/dist/plugins/index.js.map +1 -0
  634. package/dist/plugins/legacy-adapter.cjs +2 -0
  635. package/dist/plugins/legacy-adapter.cjs.map +1 -0
  636. package/dist/plugins/legacy-adapter.d.ts +35 -0
  637. package/dist/plugins/legacy-adapter.d.ts.map +1 -0
  638. package/dist/plugins/legacy-adapter.js +30 -0
  639. package/dist/plugins/legacy-adapter.js.map +1 -0
  640. package/dist/plugins/simplified-component-registry.cjs +2 -0
  641. package/dist/plugins/simplified-component-registry.cjs.map +1 -0
  642. package/dist/plugins/simplified-component-registry.d.ts +40 -0
  643. package/dist/plugins/simplified-component-registry.d.ts.map +1 -0
  644. package/dist/plugins/simplified-component-registry.js +71 -0
  645. package/dist/plugins/simplified-component-registry.js.map +1 -0
  646. package/dist/plugins/simplified-error-handler.cjs +2 -0
  647. package/dist/plugins/simplified-error-handler.cjs.map +1 -0
  648. package/dist/plugins/simplified-error-handler.d.ts +83 -0
  649. package/dist/plugins/simplified-error-handler.d.ts.map +1 -0
  650. package/dist/plugins/simplified-error-handler.js +154 -0
  651. package/dist/plugins/simplified-error-handler.js.map +1 -0
  652. package/dist/plugins/simplified-index.d.ts +17 -0
  653. package/dist/plugins/simplified-index.d.ts.map +1 -0
  654. package/dist/plugins/simplified-lazy-loader.cjs +2 -0
  655. package/dist/plugins/simplified-lazy-loader.cjs.map +1 -0
  656. package/dist/plugins/simplified-lazy-loader.d.ts +65 -0
  657. package/dist/plugins/simplified-lazy-loader.d.ts.map +1 -0
  658. package/dist/plugins/simplified-lazy-loader.js +129 -0
  659. package/dist/plugins/simplified-lazy-loader.js.map +1 -0
  660. package/dist/plugins/simplified-plugin-manager.cjs +2 -0
  661. package/dist/plugins/simplified-plugin-manager.cjs.map +1 -0
  662. package/dist/plugins/simplified-plugin-manager.d.ts +24 -0
  663. package/dist/plugins/simplified-plugin-manager.d.ts.map +1 -0
  664. package/dist/plugins/simplified-plugin-manager.js +51 -0
  665. package/dist/plugins/simplified-plugin-manager.js.map +1 -0
  666. package/dist/plugins/simplified-tachui-instance.cjs +2 -0
  667. package/dist/plugins/simplified-tachui-instance.cjs.map +1 -0
  668. package/dist/plugins/simplified-tachui-instance.d.ts +54 -0
  669. package/dist/plugins/simplified-tachui-instance.d.ts.map +1 -0
  670. package/dist/plugins/simplified-tachui-instance.js +88 -0
  671. package/dist/plugins/simplified-tachui-instance.js.map +1 -0
  672. package/dist/plugins/simplified-types.cjs +2 -0
  673. package/dist/plugins/simplified-types.cjs.map +1 -0
  674. package/dist/plugins/simplified-types.d.ts +63 -0
  675. package/dist/plugins/simplified-types.d.ts.map +1 -0
  676. package/dist/plugins/simplified-types.js +9 -0
  677. package/dist/plugins/simplified-types.js.map +1 -0
  678. package/dist/plugins/simplified-utils.cjs +2 -0
  679. package/dist/plugins/simplified-utils.cjs.map +1 -0
  680. package/dist/plugins/simplified-utils.d.ts +39 -0
  681. package/dist/plugins/simplified-utils.d.ts.map +1 -0
  682. package/dist/plugins/simplified-utils.js +40 -0
  683. package/dist/plugins/simplified-utils.js.map +1 -0
  684. package/dist/reactive/cleanup.cjs +2 -0
  685. package/dist/reactive/cleanup.cjs.map +1 -0
  686. package/dist/reactive/cleanup.d.ts +115 -0
  687. package/dist/reactive/cleanup.d.ts.map +1 -0
  688. package/dist/reactive/cleanup.js +62 -0
  689. package/dist/reactive/cleanup.js.map +1 -0
  690. package/dist/reactive/computed.cjs +2 -0
  691. package/dist/reactive/computed.cjs.map +1 -0
  692. package/dist/reactive/computed.d.ts +115 -0
  693. package/dist/reactive/computed.d.ts.map +1 -0
  694. package/dist/reactive/computed.js +121 -0
  695. package/dist/reactive/computed.js.map +1 -0
  696. package/dist/reactive/context.cjs +2 -0
  697. package/dist/reactive/context.cjs.map +1 -0
  698. package/dist/reactive/context.d.ts +82 -0
  699. package/dist/reactive/context.d.ts.map +1 -0
  700. package/dist/reactive/context.js +143 -0
  701. package/dist/reactive/context.js.map +1 -0
  702. package/dist/reactive/effect.cjs +2 -0
  703. package/dist/reactive/effect.cjs.map +1 -0
  704. package/dist/reactive/effect.d.ts +79 -0
  705. package/dist/reactive/effect.d.ts.map +1 -0
  706. package/dist/reactive/effect.js +67 -0
  707. package/dist/reactive/effect.js.map +1 -0
  708. package/dist/reactive/enhanced-effect.cjs +2 -0
  709. package/dist/reactive/enhanced-effect.cjs.map +1 -0
  710. package/dist/reactive/enhanced-effect.d.ts +108 -0
  711. package/dist/reactive/enhanced-effect.d.ts.map +1 -0
  712. package/dist/reactive/enhanced-effect.js +153 -0
  713. package/dist/reactive/enhanced-effect.js.map +1 -0
  714. package/dist/reactive/enhanced-signal.cjs +2 -0
  715. package/dist/reactive/enhanced-signal.cjs.map +1 -0
  716. package/dist/reactive/enhanced-signal.d.ts +91 -0
  717. package/dist/reactive/enhanced-signal.d.ts.map +1 -0
  718. package/dist/reactive/enhanced-signal.js +117 -0
  719. package/dist/reactive/enhanced-signal.js.map +1 -0
  720. package/dist/reactive/equality.cjs +2 -0
  721. package/dist/reactive/equality.cjs.map +1 -0
  722. package/dist/reactive/equality.d.ts +51 -0
  723. package/dist/reactive/equality.d.ts.map +1 -0
  724. package/dist/reactive/equality.js +66 -0
  725. package/dist/reactive/equality.js.map +1 -0
  726. package/dist/reactive/index.cjs +2 -0
  727. package/dist/reactive/index.cjs.map +1 -0
  728. package/dist/reactive/index.d.ts +21 -0
  729. package/dist/reactive/index.d.ts.map +1 -0
  730. package/dist/reactive/index.js +95 -0
  731. package/dist/reactive/index.js.map +1 -0
  732. package/dist/reactive/migration.cjs +18 -0
  733. package/dist/reactive/migration.cjs.map +1 -0
  734. package/dist/reactive/migration.d.ts +104 -0
  735. package/dist/reactive/migration.d.ts.map +1 -0
  736. package/dist/reactive/migration.js +164 -0
  737. package/dist/reactive/migration.js.map +1 -0
  738. package/dist/reactive/ownership.cjs +2 -0
  739. package/dist/reactive/ownership.cjs.map +1 -0
  740. package/dist/reactive/ownership.d.ts +75 -0
  741. package/dist/reactive/ownership.d.ts.map +1 -0
  742. package/dist/reactive/ownership.js +34 -0
  743. package/dist/reactive/ownership.js.map +1 -0
  744. package/dist/reactive/scheduler.cjs +2 -0
  745. package/dist/reactive/scheduler.cjs.map +1 -0
  746. package/dist/reactive/scheduler.d.ts +56 -0
  747. package/dist/reactive/scheduler.d.ts.map +1 -0
  748. package/dist/reactive/scheduler.js +111 -0
  749. package/dist/reactive/scheduler.js.map +1 -0
  750. package/dist/reactive/signal.cjs +2 -0
  751. package/dist/reactive/signal.cjs.map +1 -0
  752. package/dist/reactive/signal.d.ts +82 -0
  753. package/dist/reactive/signal.d.ts.map +1 -0
  754. package/dist/reactive/signal.js +96 -0
  755. package/dist/reactive/signal.js.map +1 -0
  756. package/dist/reactive/theme.cjs +2 -0
  757. package/dist/reactive/theme.cjs.map +1 -0
  758. package/dist/reactive/theme.d.ts +12 -0
  759. package/dist/reactive/theme.d.ts.map +1 -0
  760. package/dist/reactive/theme.js +27 -0
  761. package/dist/reactive/theme.js.map +1 -0
  762. package/dist/reactive/types.cjs +2 -0
  763. package/dist/reactive/types.cjs.map +1 -0
  764. package/dist/reactive/types.d.ts +93 -0
  765. package/dist/reactive/types.d.ts.map +1 -0
  766. package/dist/reactive/types.js +5 -0
  767. package/dist/reactive/types.js.map +1 -0
  768. package/dist/reactive/unified-scheduler.cjs +2 -0
  769. package/dist/reactive/unified-scheduler.cjs.map +1 -0
  770. package/dist/reactive/unified-scheduler.d.ts +112 -0
  771. package/dist/reactive/unified-scheduler.d.ts.map +1 -0
  772. package/dist/reactive/unified-scheduler.js +219 -0
  773. package/dist/reactive/unified-scheduler.js.map +1 -0
  774. package/dist/runtime/component-context.cjs +2 -0
  775. package/dist/runtime/component-context.cjs.map +1 -0
  776. package/dist/runtime/component-context.d.ts +73 -0
  777. package/dist/runtime/component-context.d.ts.map +1 -0
  778. package/dist/runtime/component-context.js +177 -0
  779. package/dist/runtime/component-context.js.map +1 -0
  780. package/dist/runtime/component.cjs +2 -0
  781. package/dist/runtime/component.cjs.map +1 -0
  782. package/dist/runtime/component.d.ts +112 -0
  783. package/dist/runtime/component.d.ts.map +1 -0
  784. package/dist/runtime/component.js +238 -0
  785. package/dist/runtime/component.js.map +1 -0
  786. package/dist/runtime/context.cjs +2 -0
  787. package/dist/runtime/context.cjs.map +1 -0
  788. package/dist/runtime/context.d.ts +138 -0
  789. package/dist/runtime/context.d.ts.map +1 -0
  790. package/dist/runtime/context.js +289 -0
  791. package/dist/runtime/context.js.map +1 -0
  792. package/dist/runtime/dev-tools.cjs +2 -0
  793. package/dist/runtime/dev-tools.cjs.map +1 -0
  794. package/dist/runtime/dev-tools.d.ts +240 -0
  795. package/dist/runtime/dev-tools.d.ts.map +1 -0
  796. package/dist/runtime/dev-tools.js +391 -0
  797. package/dist/runtime/dev-tools.js.map +1 -0
  798. package/dist/runtime/development-warnings.cjs +2 -0
  799. package/dist/runtime/development-warnings.cjs.map +1 -0
  800. package/dist/runtime/development-warnings.d.ts +42 -0
  801. package/dist/runtime/development-warnings.d.ts.map +1 -0
  802. package/dist/runtime/development-warnings.js +69 -0
  803. package/dist/runtime/development-warnings.js.map +1 -0
  804. package/dist/runtime/dom-bridge.cjs +2 -0
  805. package/dist/runtime/dom-bridge.cjs.map +1 -0
  806. package/dist/runtime/dom-bridge.d.ts +70 -0
  807. package/dist/runtime/dom-bridge.d.ts.map +1 -0
  808. package/dist/runtime/dom-bridge.js +241 -0
  809. package/dist/runtime/dom-bridge.js.map +1 -0
  810. package/dist/runtime/element-override.cjs +2 -0
  811. package/dist/runtime/element-override.cjs.map +1 -0
  812. package/dist/runtime/element-override.d.ts +82 -0
  813. package/dist/runtime/element-override.d.ts.map +1 -0
  814. package/dist/runtime/element-override.js +214 -0
  815. package/dist/runtime/element-override.js.map +1 -0
  816. package/dist/runtime/error-boundary.cjs +2 -0
  817. package/dist/runtime/error-boundary.cjs.map +1 -0
  818. package/dist/runtime/error-boundary.d.ts +302 -0
  819. package/dist/runtime/error-boundary.d.ts.map +1 -0
  820. package/dist/runtime/error-boundary.js +559 -0
  821. package/dist/runtime/error-boundary.js.map +1 -0
  822. package/dist/runtime/error-recovery.cjs +2 -0
  823. package/dist/runtime/error-recovery.cjs.map +1 -0
  824. package/dist/runtime/error-recovery.d.ts +267 -0
  825. package/dist/runtime/error-recovery.d.ts.map +1 -0
  826. package/dist/runtime/error-recovery.js +385 -0
  827. package/dist/runtime/error-recovery.js.map +1 -0
  828. package/dist/runtime/error-reporting.cjs +3 -0
  829. package/dist/runtime/error-reporting.cjs.map +1 -0
  830. package/dist/runtime/error-reporting.d.ts +287 -0
  831. package/dist/runtime/error-reporting.d.ts.map +1 -0
  832. package/dist/runtime/error-reporting.js +479 -0
  833. package/dist/runtime/error-reporting.js.map +1 -0
  834. package/dist/runtime/error-utils.cjs +3 -0
  835. package/dist/runtime/error-utils.cjs.map +1 -0
  836. package/dist/runtime/error-utils.d.ts +204 -0
  837. package/dist/runtime/error-utils.d.ts.map +1 -0
  838. package/dist/runtime/error-utils.js +352 -0
  839. package/dist/runtime/error-utils.js.map +1 -0
  840. package/dist/runtime/index.d.ts +29 -0
  841. package/dist/runtime/index.d.ts.map +1 -0
  842. package/dist/runtime/lazy-component.cjs +2 -0
  843. package/dist/runtime/lazy-component.cjs.map +1 -0
  844. package/dist/runtime/lazy-component.d.ts +58 -0
  845. package/dist/runtime/lazy-component.d.ts.map +1 -0
  846. package/dist/runtime/lazy-component.js +129 -0
  847. package/dist/runtime/lazy-component.js.map +1 -0
  848. package/dist/runtime/lifecycle.cjs +2 -0
  849. package/dist/runtime/lifecycle.cjs.map +1 -0
  850. package/dist/runtime/lifecycle.d.ts +8 -0
  851. package/dist/runtime/lifecycle.d.ts.map +1 -0
  852. package/dist/runtime/lifecycle.js +7 -0
  853. package/dist/runtime/lifecycle.js.map +1 -0
  854. package/dist/runtime/mounting.cjs +2 -0
  855. package/dist/runtime/mounting.cjs.map +1 -0
  856. package/dist/runtime/mounting.d.ts +9 -0
  857. package/dist/runtime/mounting.d.ts.map +1 -0
  858. package/dist/runtime/mounting.js +12 -0
  859. package/dist/runtime/mounting.js.map +1 -0
  860. package/dist/runtime/optimization.cjs +2 -0
  861. package/dist/runtime/optimization.cjs.map +1 -0
  862. package/dist/runtime/optimization.d.ts +8 -0
  863. package/dist/runtime/optimization.d.ts.map +1 -0
  864. package/dist/runtime/optimization.js +6 -0
  865. package/dist/runtime/optimization.js.map +1 -0
  866. package/dist/runtime/performance.cjs +2 -0
  867. package/dist/runtime/performance.cjs.map +1 -0
  868. package/dist/runtime/performance.d.ts +217 -0
  869. package/dist/runtime/performance.d.ts.map +1 -0
  870. package/dist/runtime/performance.js +399 -0
  871. package/dist/runtime/performance.js.map +1 -0
  872. package/dist/runtime/props.cjs +2 -0
  873. package/dist/runtime/props.cjs.map +1 -0
  874. package/dist/runtime/props.d.ts +154 -0
  875. package/dist/runtime/props.d.ts.map +1 -0
  876. package/dist/runtime/props.js +265 -0
  877. package/dist/runtime/props.js.map +1 -0
  878. package/dist/runtime/refs.d.ts +8 -0
  879. package/dist/runtime/refs.d.ts.map +1 -0
  880. package/dist/runtime/renderer.cjs +2 -0
  881. package/dist/runtime/renderer.cjs.map +1 -0
  882. package/dist/runtime/renderer.d.ts +116 -0
  883. package/dist/runtime/renderer.d.ts.map +1 -0
  884. package/dist/runtime/renderer.js +390 -0
  885. package/dist/runtime/renderer.js.map +1 -0
  886. package/dist/runtime/semantic-role-manager.cjs +2 -0
  887. package/dist/runtime/semantic-role-manager.cjs.map +1 -0
  888. package/dist/runtime/semantic-role-manager.d.ts +37 -0
  889. package/dist/runtime/semantic-role-manager.d.ts.map +1 -0
  890. package/dist/runtime/semantic-role-manager.js +82 -0
  891. package/dist/runtime/semantic-role-manager.js.map +1 -0
  892. package/dist/runtime/types.d.ts +230 -0
  893. package/dist/runtime/types.d.ts.map +1 -0
  894. package/dist/state/binding.cjs +2 -0
  895. package/dist/state/binding.cjs.map +1 -0
  896. package/dist/state/binding.d.ts +96 -0
  897. package/dist/state/binding.d.ts.map +1 -0
  898. package/dist/state/binding.js +155 -0
  899. package/dist/state/binding.js.map +1 -0
  900. package/dist/state/environment-object.d.ts +130 -0
  901. package/dist/state/environment-object.d.ts.map +1 -0
  902. package/dist/state/environment.cjs +2 -0
  903. package/dist/state/environment.cjs.map +1 -0
  904. package/dist/state/environment.d.ts +178 -0
  905. package/dist/state/environment.d.ts.map +1 -0
  906. package/dist/state/environment.js +115 -0
  907. package/dist/state/environment.js.map +1 -0
  908. package/dist/state/index.cjs +2 -0
  909. package/dist/state/index.cjs.map +1 -0
  910. package/dist/state/index.d.ts +108 -0
  911. package/dist/state/index.d.ts.map +1 -0
  912. package/dist/state/index.js +63 -0
  913. package/dist/state/index.js.map +1 -0
  914. package/dist/state/observed-object.cjs +2 -0
  915. package/dist/state/observed-object.cjs.map +1 -0
  916. package/dist/state/observed-object.d.ts +126 -0
  917. package/dist/state/observed-object.d.ts.map +1 -0
  918. package/dist/state/observed-object.js +163 -0
  919. package/dist/state/observed-object.js.map +1 -0
  920. package/dist/state/state-manager.cjs +2 -0
  921. package/dist/state/state-manager.cjs.map +1 -0
  922. package/dist/state/state-manager.d.ts +97 -0
  923. package/dist/state/state-manager.d.ts.map +1 -0
  924. package/dist/state/state-manager.js +233 -0
  925. package/dist/state/state-manager.js.map +1 -0
  926. package/dist/state/state.cjs +2 -0
  927. package/dist/state/state.cjs.map +1 -0
  928. package/dist/state/state.d.ts +78 -0
  929. package/dist/state/state.d.ts.map +1 -0
  930. package/dist/state/state.js +159 -0
  931. package/dist/state/state.js.map +1 -0
  932. package/dist/state/types.d.ts +159 -0
  933. package/dist/state/types.d.ts.map +1 -0
  934. package/dist/sui-compat.cjs +2 -0
  935. package/dist/sui-compat.cjs.map +1 -0
  936. package/dist/sui-compat.d.ts +110 -0
  937. package/dist/sui-compat.d.ts.map +1 -0
  938. package/dist/sui-compat.js +88 -0
  939. package/dist/sui-compat.js.map +1 -0
  940. package/dist/validation/advanced-debugging.cjs +44 -0
  941. package/dist/validation/advanced-debugging.cjs.map +1 -0
  942. package/dist/validation/advanced-debugging.d.ts +319 -0
  943. package/dist/validation/advanced-debugging.d.ts.map +1 -0
  944. package/dist/validation/advanced-debugging.js +455 -0
  945. package/dist/validation/advanced-debugging.js.map +1 -0
  946. package/dist/validation/build-time/detection.cjs +2 -0
  947. package/dist/validation/build-time/detection.cjs.map +1 -0
  948. package/dist/validation/build-time/detection.d.ts +32 -0
  949. package/dist/validation/build-time/detection.d.ts.map +1 -0
  950. package/dist/validation/build-time/detection.js +199 -0
  951. package/dist/validation/build-time/detection.js.map +1 -0
  952. package/dist/validation/build-time/index.cjs +2 -0
  953. package/dist/validation/build-time/index.cjs.map +1 -0
  954. package/dist/validation/build-time/index.d.ts +84 -0
  955. package/dist/validation/build-time/index.d.ts.map +1 -0
  956. package/dist/validation/build-time/index.js +122 -0
  957. package/dist/validation/build-time/index.js.map +1 -0
  958. package/dist/validation/build-time/plugins.cjs +3 -0
  959. package/dist/validation/build-time/plugins.cjs.map +1 -0
  960. package/dist/validation/build-time/plugins.d.ts +75 -0
  961. package/dist/validation/build-time/plugins.d.ts.map +1 -0
  962. package/dist/validation/build-time/plugins.js +282 -0
  963. package/dist/validation/build-time/plugins.js.map +1 -0
  964. package/dist/validation/build-time/rules.cjs +2 -0
  965. package/dist/validation/build-time/rules.cjs.map +1 -0
  966. package/dist/validation/build-time/rules.d.ts +73 -0
  967. package/dist/validation/build-time/rules.d.ts.map +1 -0
  968. package/dist/validation/build-time/rules.js +576 -0
  969. package/dist/validation/build-time/rules.js.map +1 -0
  970. package/dist/validation/build-time/transformer.cjs +3 -0
  971. package/dist/validation/build-time/transformer.cjs.map +1 -0
  972. package/dist/validation/build-time/transformer.d.ts +23 -0
  973. package/dist/validation/build-time/transformer.d.ts.map +1 -0
  974. package/dist/validation/build-time/transformer.js +177 -0
  975. package/dist/validation/build-time/transformer.js.map +1 -0
  976. package/dist/validation/build-time/types.d.ts +212 -0
  977. package/dist/validation/build-time/types.d.ts.map +1 -0
  978. package/dist/validation/comprehensive.cjs +9 -0
  979. package/dist/validation/comprehensive.cjs.map +1 -0
  980. package/dist/validation/comprehensive.d.ts +160 -0
  981. package/dist/validation/comprehensive.d.ts.map +1 -0
  982. package/dist/validation/comprehensive.js +916 -0
  983. package/dist/validation/comprehensive.js.map +1 -0
  984. package/dist/validation/debug-tools.cjs +16 -0
  985. package/dist/validation/debug-tools.cjs.map +1 -0
  986. package/dist/validation/debug-tools.d.ts +251 -0
  987. package/dist/validation/debug-tools.d.ts.map +1 -0
  988. package/dist/validation/debug-tools.js +405 -0
  989. package/dist/validation/debug-tools.js.map +1 -0
  990. package/dist/validation/developer-experience.cjs +17 -0
  991. package/dist/validation/developer-experience.cjs.map +1 -0
  992. package/dist/validation/developer-experience.d.ts +243 -0
  993. package/dist/validation/developer-experience.d.ts.map +1 -0
  994. package/dist/validation/developer-experience.js +433 -0
  995. package/dist/validation/developer-experience.js.map +1 -0
  996. package/dist/validation/documentation-integration.cjs +7 -0
  997. package/dist/validation/documentation-integration.cjs.map +1 -0
  998. package/dist/validation/documentation-integration.d.ts +269 -0
  999. package/dist/validation/documentation-integration.d.ts.map +1 -0
  1000. package/dist/validation/documentation-integration.js +440 -0
  1001. package/dist/validation/documentation-integration.js.map +1 -0
  1002. package/dist/validation/enhanced-runtime.cjs +6 -0
  1003. package/dist/validation/enhanced-runtime.cjs.map +1 -0
  1004. package/dist/validation/enhanced-runtime.d.ts +279 -0
  1005. package/dist/validation/enhanced-runtime.d.ts.map +1 -0
  1006. package/dist/validation/enhanced-runtime.js +465 -0
  1007. package/dist/validation/enhanced-runtime.js.map +1 -0
  1008. package/dist/validation/error-reporting.cjs +32 -0
  1009. package/dist/validation/error-reporting.cjs.map +1 -0
  1010. package/dist/validation/error-reporting.d.ts +186 -0
  1011. package/dist/validation/error-reporting.d.ts.map +1 -0
  1012. package/dist/validation/error-reporting.js +370 -0
  1013. package/dist/validation/error-reporting.js.map +1 -0
  1014. package/dist/validation/ide-integration.cjs +85 -0
  1015. package/dist/validation/ide-integration.cjs.map +1 -0
  1016. package/dist/validation/ide-integration.d.ts +328 -0
  1017. package/dist/validation/ide-integration.d.ts.map +1 -0
  1018. package/dist/validation/ide-integration.js +557 -0
  1019. package/dist/validation/ide-integration.js.map +1 -0
  1020. package/dist/validation/index.cjs +6 -0
  1021. package/dist/validation/index.cjs.map +1 -0
  1022. package/dist/validation/index.d.ts +171 -0
  1023. package/dist/validation/index.d.ts.map +1 -0
  1024. package/dist/validation/index.js +309 -0
  1025. package/dist/validation/index.js.map +1 -0
  1026. package/dist/validation/lifecycle-validation.cjs +2 -0
  1027. package/dist/validation/lifecycle-validation.cjs.map +1 -0
  1028. package/dist/validation/lifecycle-validation.d.ts +165 -0
  1029. package/dist/validation/lifecycle-validation.d.ts.map +1 -0
  1030. package/dist/validation/lifecycle-validation.js +314 -0
  1031. package/dist/validation/lifecycle-validation.js.map +1 -0
  1032. package/dist/validation/performance-optimizer.cjs +2 -0
  1033. package/dist/validation/performance-optimizer.cjs.map +1 -0
  1034. package/dist/validation/performance-optimizer.d.ts +218 -0
  1035. package/dist/validation/performance-optimizer.d.ts.map +1 -0
  1036. package/dist/validation/performance-optimizer.js +338 -0
  1037. package/dist/validation/performance-optimizer.js.map +1 -0
  1038. package/dist/validation/plugin-registration.cjs +2 -0
  1039. package/dist/validation/plugin-registration.cjs.map +1 -0
  1040. package/dist/validation/plugin-registration.d.ts +88 -0
  1041. package/dist/validation/plugin-registration.d.ts.map +1 -0
  1042. package/dist/validation/plugin-registration.js +126 -0
  1043. package/dist/validation/plugin-registration.js.map +1 -0
  1044. package/dist/validation/production-bypass.cjs +2 -0
  1045. package/dist/validation/production-bypass.cjs.map +1 -0
  1046. package/dist/validation/production-bypass.d.ts +175 -0
  1047. package/dist/validation/production-bypass.d.ts.map +1 -0
  1048. package/dist/validation/production-bypass.js +218 -0
  1049. package/dist/validation/production-bypass.js.map +1 -0
  1050. package/dist/validation/simple.cjs +9 -0
  1051. package/dist/validation/simple.cjs.map +1 -0
  1052. package/dist/validation/simple.d.ts +111 -0
  1053. package/dist/validation/simple.d.ts.map +1 -0
  1054. package/dist/validation/simple.js +146 -0
  1055. package/dist/validation/simple.js.map +1 -0
  1056. package/dist/viewport/adapters/web-adapter.cjs +70 -0
  1057. package/dist/viewport/adapters/web-adapter.cjs.map +1 -0
  1058. package/dist/viewport/adapters/web-adapter.d.ts +227 -0
  1059. package/dist/viewport/adapters/web-adapter.d.ts.map +1 -0
  1060. package/dist/viewport/adapters/web-adapter.js +823 -0
  1061. package/dist/viewport/adapters/web-adapter.js.map +1 -0
  1062. package/dist/viewport/components.cjs +2 -0
  1063. package/dist/viewport/components.cjs.map +1 -0
  1064. package/dist/viewport/components.d.ts +131 -0
  1065. package/dist/viewport/components.d.ts.map +1 -0
  1066. package/dist/viewport/components.js +298 -0
  1067. package/dist/viewport/components.js.map +1 -0
  1068. package/dist/viewport/environment.cjs +2 -0
  1069. package/dist/viewport/environment.cjs.map +1 -0
  1070. package/dist/viewport/environment.d.ts +75 -0
  1071. package/dist/viewport/environment.d.ts.map +1 -0
  1072. package/dist/viewport/environment.js +86 -0
  1073. package/dist/viewport/environment.js.map +1 -0
  1074. package/dist/viewport/index.cjs +2 -0
  1075. package/dist/viewport/index.cjs.map +1 -0
  1076. package/dist/viewport/index.d.ts +138 -0
  1077. package/dist/viewport/index.d.ts.map +1 -0
  1078. package/dist/viewport/index.js +166 -0
  1079. package/dist/viewport/index.js.map +1 -0
  1080. package/dist/viewport/platform-detection.cjs +2 -0
  1081. package/dist/viewport/platform-detection.cjs.map +1 -0
  1082. package/dist/viewport/platform-detection.d.ts +59 -0
  1083. package/dist/viewport/platform-detection.d.ts.map +1 -0
  1084. package/dist/viewport/platform-detection.js +205 -0
  1085. package/dist/viewport/platform-detection.js.map +1 -0
  1086. package/dist/viewport/types.cjs +2 -0
  1087. package/dist/viewport/types.cjs.map +1 -0
  1088. package/dist/viewport/types.d.ts +301 -0
  1089. package/dist/viewport/types.d.ts.map +1 -0
  1090. package/dist/viewport/types.js +13 -0
  1091. package/dist/viewport/types.js.map +1 -0
  1092. package/dist/viewport/viewport-manager.cjs +2 -0
  1093. package/dist/viewport/viewport-manager.cjs.map +1 -0
  1094. package/dist/viewport/viewport-manager.d.ts +118 -0
  1095. package/dist/viewport/viewport-manager.d.ts.map +1 -0
  1096. package/dist/viewport/viewport-manager.js +524 -0
  1097. package/dist/viewport/viewport-manager.js.map +1 -0
  1098. package/package.json +128 -0
  1099. package/src/assets/Asset.ts +11 -0
  1100. package/src/assets/AssetCollection.ts +99 -0
  1101. package/src/assets/ColorAsset.ts +210 -0
  1102. package/src/assets/FontAsset.ts +380 -0
  1103. package/src/assets/ImageAsset.ts +91 -0
  1104. package/src/assets/README.md +190 -0
  1105. package/src/assets/index.ts +175 -0
  1106. package/src/assets/test-assets.ts +69 -0
  1107. package/src/assets/test-integration.ts +46 -0
  1108. package/src/assets/test-simple.ts +28 -0
  1109. package/src/assets/types.ts +79 -0
  1110. package/src/bundles/common.ts +30 -0
  1111. package/src/bundles/complete.ts +29 -0
  1112. package/src/bundles/essential.ts +26 -0
  1113. package/src/bundles/minimal.ts +26 -0
  1114. package/src/bundles/production-minimal.ts +67 -0
  1115. package/src/compiler/advanced-parser.ts +871 -0
  1116. package/src/compiler/codegen.ts +450 -0
  1117. package/src/compiler/enhanced-codegen.ts +729 -0
  1118. package/src/compiler/index.ts +25 -0
  1119. package/src/compiler/parser.ts +461 -0
  1120. package/src/compiler/plugin.ts +181 -0
  1121. package/src/compiler/types.ts +177 -0
  1122. package/src/components/BasicInput.ts +352 -0
  1123. package/src/components/Button.ts +963 -0
  1124. package/src/components/Divider.ts +341 -0
  1125. package/src/components/EnhancedLink.ts +676 -0
  1126. package/src/components/Form.ts +414 -0
  1127. package/src/components/Grid.ts +2507 -0
  1128. package/src/components/GridResponsive.ts +637 -0
  1129. package/src/components/Image.ts +426 -0
  1130. package/src/components/List.ts +1084 -0
  1131. package/src/components/Menu.ts +807 -0
  1132. package/src/components/Picker.ts +678 -0
  1133. package/src/components/ScrollView.ts +725 -0
  1134. package/src/components/Section.ts +472 -0
  1135. package/src/components/Show.ts +205 -0
  1136. package/src/components/Spacer.ts +93 -0
  1137. package/src/components/Text.ts +447 -0
  1138. package/src/components/Toggle.ts +700 -0
  1139. package/src/components/index.ts +231 -0
  1140. package/src/components/wrapper.ts +828 -0
  1141. package/src/concatenation/concatenatable.ts +211 -0
  1142. package/src/concatenation/concatenated-component.ts +471 -0
  1143. package/src/concatenation/index.ts +41 -0
  1144. package/src/concatenation/styles.css +120 -0
  1145. package/src/concatenation/text-optimizer.ts +440 -0
  1146. package/src/concatenation/types.ts +116 -0
  1147. package/src/constants/README.md +339 -0
  1148. package/src/constants/__tests__/frame-utils.test.ts +276 -0
  1149. package/src/constants/__tests__/layout.test.ts +215 -0
  1150. package/src/constants/frame-utils.ts +174 -0
  1151. package/src/constants/index.ts +8 -0
  1152. package/src/constants/layout.ts +120 -0
  1153. package/src/css-classes/component-base.ts +117 -0
  1154. package/src/css-classes/css-class-manager.ts +372 -0
  1155. package/src/css-classes/dom-integration.ts +162 -0
  1156. package/src/css-classes/enhanced-renderer.ts +166 -0
  1157. package/src/css-classes/index.ts +45 -0
  1158. package/src/css-classes/types.ts +73 -0
  1159. package/src/css-classes/utilities.ts +175 -0
  1160. package/src/debug/index.ts +267 -0
  1161. package/src/developer-experience/enhanced-errors.ts +556 -0
  1162. package/src/developer-experience/enhanced-types.ts +427 -0
  1163. package/src/developer-experience/index.ts +220 -0
  1164. package/src/globals.d.ts +43 -0
  1165. package/src/gradients/__tests__/angular-gradient.test.ts +111 -0
  1166. package/src/gradients/__tests__/background-modifier.test.ts +81 -0
  1167. package/src/gradients/__tests__/comprehensive-gradients.test.ts +296 -0
  1168. package/src/gradients/__tests__/gradient-asset.test.ts +144 -0
  1169. package/src/gradients/__tests__/linear-gradient.test.ts +92 -0
  1170. package/src/gradients/__tests__/phase4-features.test.ts +386 -0
  1171. package/src/gradients/__tests__/radial-gradient.test.ts +110 -0
  1172. package/src/gradients/__tests__/repeating-gradients.test.ts +125 -0
  1173. package/src/gradients/__tests__/state-background-modifier.test.ts +340 -0
  1174. package/src/gradients/__tests__/state-gradient-asset.test.ts +262 -0
  1175. package/src/gradients/__tests__/state-gradient-integration.test.ts +277 -0
  1176. package/src/gradients/css-generator.ts +158 -0
  1177. package/src/gradients/examples.ts +632 -0
  1178. package/src/gradients/gradient-asset.ts +30 -0
  1179. package/src/gradients/index.ts +85 -0
  1180. package/src/gradients/performance.ts +521 -0
  1181. package/src/gradients/presets.ts +422 -0
  1182. package/src/gradients/reactive.ts +470 -0
  1183. package/src/gradients/state-gradient-asset.ts +179 -0
  1184. package/src/gradients/types.ts +148 -0
  1185. package/src/gradients/utils.ts +579 -0
  1186. package/src/gradients/validation.ts +489 -0
  1187. package/src/index.ts +168 -0
  1188. package/src/lifecycle/hooks.ts +332 -0
  1189. package/src/modifiers/__tests__/as-html-integration.test.ts +204 -0
  1190. package/src/modifiers/__tests__/as-html.test.ts +437 -0
  1191. package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +294 -0
  1192. package/src/modifiers/__tests__/border.test.ts +371 -0
  1193. package/src/modifiers/__tests__/margin-string-support.test.ts +41 -0
  1194. package/src/modifiers/__tests__/padding-string-support.test.ts +41 -0
  1195. package/src/modifiers/as-html-validator.ts +68 -0
  1196. package/src/modifiers/as-html.ts +216 -0
  1197. package/src/modifiers/attributes.ts +574 -0
  1198. package/src/modifiers/backdrop.ts +290 -0
  1199. package/src/modifiers/background.ts +165 -0
  1200. package/src/modifiers/base.ts +1815 -0
  1201. package/src/modifiers/basic-sanitizer.ts +227 -0
  1202. package/src/modifiers/border.ts +574 -0
  1203. package/src/modifiers/builder.ts +1747 -0
  1204. package/src/modifiers/core.ts +521 -0
  1205. package/src/modifiers/css.ts +148 -0
  1206. package/src/modifiers/effects.ts +412 -0
  1207. package/src/modifiers/elements.ts +541 -0
  1208. package/src/modifiers/filters.ts +501 -0
  1209. package/src/modifiers/flexbox.ts +180 -0
  1210. package/src/modifiers/font.ts +149 -0
  1211. package/src/modifiers/grid.ts +238 -0
  1212. package/src/modifiers/index.ts +481 -0
  1213. package/src/modifiers/margin.ts +218 -0
  1214. package/src/modifiers/padding.ts +318 -0
  1215. package/src/modifiers/registry.ts +444 -0
  1216. package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +392 -0
  1217. package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +368 -0
  1218. package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +556 -0
  1219. package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +558 -0
  1220. package/src/modifiers/responsive/advanced-utilities.ts +562 -0
  1221. package/src/modifiers/responsive/breakpoints.ts +330 -0
  1222. package/src/modifiers/responsive/css-generator.ts +432 -0
  1223. package/src/modifiers/responsive/dev-tools.ts +650 -0
  1224. package/src/modifiers/responsive/index.ts +119 -0
  1225. package/src/modifiers/responsive/layout-patterns.ts +592 -0
  1226. package/src/modifiers/responsive/performance.ts +385 -0
  1227. package/src/modifiers/responsive/responsive-builder.ts +620 -0
  1228. package/src/modifiers/responsive/responsive-modifier.ts +410 -0
  1229. package/src/modifiers/responsive/types.ts +226 -0
  1230. package/src/modifiers/responsive/utilities.ts +478 -0
  1231. package/src/modifiers/scroll.ts +297 -0
  1232. package/src/modifiers/shadows.ts +321 -0
  1233. package/src/modifiers/size.ts +208 -0
  1234. package/src/modifiers/text.ts +416 -0
  1235. package/src/modifiers/transformations.ts +640 -0
  1236. package/src/modifiers/transitions.ts +218 -0
  1237. package/src/modifiers/types.ts +889 -0
  1238. package/src/modifiers/typography.ts +341 -0
  1239. package/src/modifiers/utility.ts +209 -0
  1240. package/src/modifiers/utils.ts +413 -0
  1241. package/src/plugins/__tests__/simplified-plugin-system.test.ts +190 -0
  1242. package/src/plugins/component-loader-registry.ts +371 -0
  1243. package/src/plugins/index.ts +61 -0
  1244. package/src/plugins/legacy-adapter.ts +84 -0
  1245. package/src/plugins/simplified-component-registry.ts +130 -0
  1246. package/src/plugins/simplified-error-handler.ts +372 -0
  1247. package/src/plugins/simplified-index.ts +61 -0
  1248. package/src/plugins/simplified-lazy-loader.ts +242 -0
  1249. package/src/plugins/simplified-plugin-manager.ts +93 -0
  1250. package/src/plugins/simplified-tachui-instance.ts +142 -0
  1251. package/src/plugins/simplified-types.ts +79 -0
  1252. package/src/plugins/simplified-utils.ts +118 -0
  1253. package/src/reactive/cleanup.ts +241 -0
  1254. package/src/reactive/computed.ts +281 -0
  1255. package/src/reactive/context.ts +287 -0
  1256. package/src/reactive/effect.ts +194 -0
  1257. package/src/reactive/enhanced-effect.ts +318 -0
  1258. package/src/reactive/enhanced-signal.ts +227 -0
  1259. package/src/reactive/equality.ts +188 -0
  1260. package/src/reactive/globals.d.ts +5 -0
  1261. package/src/reactive/index.ts +150 -0
  1262. package/src/reactive/migration.ts +335 -0
  1263. package/src/reactive/ownership.ts +182 -0
  1264. package/src/reactive/scheduler.ts +300 -0
  1265. package/src/reactive/signal.ts +201 -0
  1266. package/src/reactive/theme.ts +49 -0
  1267. package/src/reactive/types.ts +103 -0
  1268. package/src/reactive/unified-scheduler.ts +357 -0
  1269. package/src/runtime/component-context.ts +343 -0
  1270. package/src/runtime/component.ts +499 -0
  1271. package/src/runtime/context.ts +527 -0
  1272. package/src/runtime/dev-tools.ts +752 -0
  1273. package/src/runtime/development-warnings.ts +114 -0
  1274. package/src/runtime/dom-bridge.ts +570 -0
  1275. package/src/runtime/element-override.ts +282 -0
  1276. package/src/runtime/error-boundary.ts +955 -0
  1277. package/src/runtime/error-recovery.ts +638 -0
  1278. package/src/runtime/error-reporting.ts +808 -0
  1279. package/src/runtime/error-utils.ts +698 -0
  1280. package/src/runtime/index.ts +202 -0
  1281. package/src/runtime/lazy-component.ts +268 -0
  1282. package/src/runtime/lifecycle.ts +10 -0
  1283. package/src/runtime/mounting.ts +17 -0
  1284. package/src/runtime/optimization.ts +13 -0
  1285. package/src/runtime/performance.ts +693 -0
  1286. package/src/runtime/props.ts +434 -0
  1287. package/src/runtime/refs.ts +13 -0
  1288. package/src/runtime/renderer.ts +674 -0
  1289. package/src/runtime/semantic-role-manager.ts +140 -0
  1290. package/src/runtime/types.ts +282 -0
  1291. package/src/state/binding.ts +381 -0
  1292. package/src/state/environment-object.ts +444 -0
  1293. package/src/state/environment.ts +351 -0
  1294. package/src/state/index.ts +179 -0
  1295. package/src/state/observed-object.ts +405 -0
  1296. package/src/state/state-manager.ts +366 -0
  1297. package/src/state/state.ts +339 -0
  1298. package/src/state/types.ts +192 -0
  1299. package/src/sui-compat.ts +163 -0
  1300. package/src/validation/__tests__/phase-1d-integration.test.ts +558 -0
  1301. package/src/validation/advanced-debugging.ts +860 -0
  1302. package/src/validation/build-time/detection.ts +373 -0
  1303. package/src/validation/build-time/index.ts +222 -0
  1304. package/src/validation/build-time/plugins.ts +515 -0
  1305. package/src/validation/build-time/rules.ts +624 -0
  1306. package/src/validation/build-time/transformer.ts +372 -0
  1307. package/src/validation/build-time/types.ts +232 -0
  1308. package/src/validation/comprehensive.ts +1272 -0
  1309. package/src/validation/debug-tools.ts +724 -0
  1310. package/src/validation/developer-experience.ts +712 -0
  1311. package/src/validation/documentation-integration.ts +835 -0
  1312. package/src/validation/enhanced-runtime.ts +765 -0
  1313. package/src/validation/error-reporting.ts +587 -0
  1314. package/src/validation/ide-integration.ts +845 -0
  1315. package/src/validation/index.ts +353 -0
  1316. package/src/validation/lifecycle-validation.ts +636 -0
  1317. package/src/validation/performance-optimizer.ts +599 -0
  1318. package/src/validation/plugin-registration.ts +249 -0
  1319. package/src/validation/production-bypass.ts +466 -0
  1320. package/src/validation/simple.ts +465 -0
  1321. package/src/viewport/adapters/web-adapter.ts +1385 -0
  1322. package/src/viewport/components.ts +505 -0
  1323. package/src/viewport/environment.ts +173 -0
  1324. package/src/viewport/index.ts +290 -0
  1325. package/src/viewport/platform-detection.ts +431 -0
  1326. package/src/viewport/types.ts +371 -0
  1327. package/src/viewport/viewport-manager.ts +979 -0
@@ -0,0 +1,443 @@
1
+ import "../reactive/cleanup.js";
2
+ import "../reactive/unified-scheduler.js";
3
+ import { createEffect as x } from "../reactive/effect.js";
4
+ import { createSignal as g, isSignal as E } from "../reactive/signal.js";
5
+ import "../reactive/scheduler.js";
6
+ import "../reactive/theme.js";
7
+ import "../runtime/component.js";
8
+ import "../runtime/context.js";
9
+ import "../runtime/dev-tools.js";
10
+ import "../runtime/dom-bridge.js";
11
+ import "../runtime/error-boundary.js";
12
+ import "../runtime/error-reporting.js";
13
+ import "../runtime/performance.js";
14
+ import { h as m } from "../runtime/renderer.js";
15
+ import "../runtime/element-override.js";
16
+ import "../runtime/semantic-role-manager.js";
17
+ import "../runtime/development-warnings.js";
18
+ import { useLifecycle as y, setupPositioning as I, AnimationManager as v, FocusManager as O } from "../lifecycle/hooks.js";
19
+ import { withModifiers as k } from "./wrapper.js";
20
+ var w = Object.defineProperty, C = (o, e, t) => e in o ? w(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, c = (o, e, t) => C(o, typeof e != "symbol" ? e + "" : e, t);
21
+ const f = {
22
+ colors: {
23
+ background: "#FFFFFF",
24
+ surface: "#F8F9FA",
25
+ text: "#1A1A1A",
26
+ textSecondary: "#6B7280",
27
+ textDisabled: "#A0A0A0",
28
+ textDestructive: "#FF3B30",
29
+ border: "#E5E5E5",
30
+ hover: "#F0F0F0",
31
+ active: "#E3F2FD",
32
+ separator: "#E5E5E5",
33
+ shortcut: "#8E8E93",
34
+ backdrop: "rgba(0, 0, 0, 0.1)"
35
+ },
36
+ spacing: {
37
+ padding: 8,
38
+ itemPadding: 12,
39
+ gap: 4
40
+ },
41
+ borderRadius: 8,
42
+ minWidth: 200,
43
+ maxWidth: 320,
44
+ itemHeight: 36,
45
+ shadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
46
+ backdropBlur: "blur(2px)"
47
+ };
48
+ class A {
49
+ constructor(e) {
50
+ c(this, "type", "component"), c(this, "id"), c(this, "props"), c(this, "cleanup", []), c(this, "theme", f), c(this, "isOpenSignal", g(!1)), c(this, "focusedIndex", -1), c(this, "menuElement", null), c(this, "triggerElement", null), c(this, "handleKeyDown", (t) => {
51
+ if (!this.isOpen()) return;
52
+ const i = this.getVisibleItems();
53
+ switch (t.key) {
54
+ case "Escape":
55
+ (this.props.escapeKeyCloses ?? !0) && (t.preventDefault(), this.setIsOpenValue(!1));
56
+ break;
57
+ case "ArrowDown":
58
+ t.preventDefault(), this.focusedIndex = Math.min(this.focusedIndex + 1, i.length - 1), this.updateItemFocus();
59
+ break;
60
+ case "ArrowUp":
61
+ t.preventDefault(), this.focusedIndex = Math.max(this.focusedIndex - 1, 0), this.updateItemFocus();
62
+ break;
63
+ case "Enter":
64
+ case " ":
65
+ if (this.focusedIndex >= 0 && this.focusedIndex < i.length) {
66
+ t.preventDefault();
67
+ const n = this.menuElement?.querySelector(
68
+ `[data-menu-item-index="${this.focusedIndex}"]`
69
+ );
70
+ n && n.click();
71
+ }
72
+ break;
73
+ case "Home":
74
+ t.preventDefault(), this.focusedIndex = 0, this.updateItemFocus();
75
+ break;
76
+ case "End":
77
+ t.preventDefault(), this.focusedIndex = i.length - 1, this.updateItemFocus();
78
+ break;
79
+ }
80
+ }), c(this, "handleClickOutside", (t) => {
81
+ if (!(this.props.closeOnClickOutside ?? !0)) return;
82
+ const i = t.target, n = this.menuElement?.contains(i), s = this.triggerElement?.contains(i);
83
+ !n && !s && this.setIsOpenValue(!1);
84
+ }), c(this, "setIsOpenValue", (t) => {
85
+ this.props.isOpen ? typeof this.props.isOpen == "function" && this.props.isOpen(t) : this.setIsOpen(t);
86
+ }), this.props = e, this.id = `menu-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, this.props.isOpen && (this.isOpenSignal = [
87
+ this.props.isOpen,
88
+ ((t) => {
89
+ typeof this.props.isOpen == "function" && this.props.isOpen(
90
+ typeof t == "function" ? t(this.props.isOpen()) : t
91
+ );
92
+ })
93
+ ]), y(this, {
94
+ onDOMReady: (t, i) => {
95
+ i && (this.setupMenuPositioning(i), this.setupMenuAnimations(i));
96
+ }
97
+ });
98
+ }
99
+ get isOpen() {
100
+ return this.isOpenSignal[0];
101
+ }
102
+ get setIsOpen() {
103
+ return this.isOpenSignal[1];
104
+ }
105
+ resolveValue(e) {
106
+ return E(e) ? e() : e;
107
+ }
108
+ /**
109
+ * Set up menu positioning using enhanced lifecycle (ENHANCED Phase 3)
110
+ */
111
+ setupMenuPositioning(e) {
112
+ this.cleanup || (this.cleanup = []), I(
113
+ this,
114
+ `[data-menu-trigger="${this.id}"]`,
115
+ `[data-menu-content="${this.id}"]`,
116
+ (t, i) => this.calculatePosition(t, i)
117
+ );
118
+ }
119
+ /**
120
+ * Set up menu animations using enhanced lifecycle (ENHANCED Phase 3)
121
+ */
122
+ setupMenuAnimations(e) {
123
+ this.cleanup || (this.cleanup = []);
124
+ }
125
+ getVisibleItems() {
126
+ return this.props.items.filter((e) => e.title !== "---");
127
+ }
128
+ createMenuItem(e, t) {
129
+ if (e.title === "---")
130
+ return m("div", {
131
+ role: "separator",
132
+ style: {
133
+ height: "1px",
134
+ backgroundColor: this.theme.colors.separator,
135
+ margin: `${this.theme.spacing.gap}px 0`
136
+ }
137
+ });
138
+ const i = this.resolveValue(e.disabled ?? !1), n = this.resolveValue(e.title), s = m("div", {
139
+ role: "menuitem",
140
+ tabindex: i ? "-1" : "0",
141
+ "aria-disabled": i,
142
+ "data-menu-item-index": t,
143
+ style: {
144
+ display: "flex",
145
+ alignItems: "center",
146
+ justifyContent: "space-between",
147
+ padding: `${this.theme.spacing.itemPadding}px`,
148
+ minHeight: `${this.theme.itemHeight}px`,
149
+ fontSize: "14px",
150
+ fontWeight: "400",
151
+ color: i ? this.theme.colors.textDisabled : e.destructive || e.role === "destructive" ? this.theme.colors.textDestructive : this.theme.colors.text,
152
+ cursor: i ? "default" : "pointer",
153
+ borderRadius: `${this.theme.borderRadius / 2}px`,
154
+ transition: "all 150ms ease-out",
155
+ userSelect: "none"
156
+ },
157
+ onclick: async (p) => {
158
+ if (!i) {
159
+ if (p.preventDefault(), p.stopPropagation(), e.action)
160
+ try {
161
+ await e.action();
162
+ } catch (r) {
163
+ console.error("Menu item action failed:", r);
164
+ }
165
+ (this.props.closeOnSelect ?? !0) && this.setIsOpenValue(!1);
166
+ }
167
+ },
168
+ onmouseenter: () => {
169
+ if (!i) {
170
+ this.focusedIndex = t, this.updateItemFocus();
171
+ const p = s.element;
172
+ p && (p.style.backgroundColor = this.theme.colors.hover);
173
+ }
174
+ },
175
+ onmouseleave: () => {
176
+ if (!i) {
177
+ const p = s.element;
178
+ p && (p.style.backgroundColor = "transparent");
179
+ }
180
+ }
181
+ }), a = m("div", {
182
+ style: {
183
+ display: "flex",
184
+ alignItems: "center",
185
+ gap: `${this.theme.spacing.gap * 2}px`
186
+ }
187
+ });
188
+ if (e.systemImage) {
189
+ const r = m("span", {
190
+ style: {
191
+ fontSize: "16px",
192
+ color: "inherit"
193
+ }
194
+ }).element;
195
+ r && (r.textContent = e.systemImage);
196
+ const b = a.element;
197
+ b && r && b.appendChild(r);
198
+ }
199
+ const l = m("span").element;
200
+ l && (l.textContent = n);
201
+ const h = a.element;
202
+ h && l && h.appendChild(l);
203
+ const d = s.element;
204
+ if (d && h && d.appendChild(h), e.shortcut) {
205
+ const r = m("span", {
206
+ style: {
207
+ fontSize: "12px",
208
+ color: this.theme.colors.shortcut,
209
+ fontFamily: "monospace"
210
+ }
211
+ }).element;
212
+ r && (r.textContent = e.shortcut), d && r && d.appendChild(r);
213
+ }
214
+ if (e.submenu && e.submenu.length > 0) {
215
+ const r = m("span", {
216
+ style: {
217
+ fontSize: "12px",
218
+ color: this.theme.colors.textSecondary
219
+ }
220
+ }).element;
221
+ r && (r.textContent = "▶"), d && r && d.appendChild(r);
222
+ }
223
+ return s;
224
+ }
225
+ updateItemFocus() {
226
+ if (!this.menuElement) return;
227
+ this.menuElement.querySelectorAll('[role="menuitem"]').forEach((t, i) => {
228
+ const n = t;
229
+ i === this.focusedIndex ? (n.style.backgroundColor = this.theme.colors.hover, n.focus()) : n.style.backgroundColor = "transparent";
230
+ });
231
+ }
232
+ calculatePosition(e, t) {
233
+ const i = e.getBoundingClientRect(), n = t.getBoundingClientRect(), s = {
234
+ width: window.innerWidth,
235
+ height: window.innerHeight
236
+ }, a = this.props.placement ?? "bottom", u = this.props.offset ?? { x: 0, y: 4 };
237
+ let l = 0, h = 0;
238
+ switch (a) {
239
+ case "bottom":
240
+ case "bottom-start":
241
+ case "bottom-end":
242
+ h = i.bottom + u.y;
243
+ break;
244
+ case "top":
245
+ case "top-start":
246
+ case "top-end":
247
+ h = i.top - n.height - u.y;
248
+ break;
249
+ case "right":
250
+ case "right-start":
251
+ case "right-end":
252
+ l = i.right + u.x;
253
+ break;
254
+ case "left":
255
+ case "left-start":
256
+ case "left-end":
257
+ l = i.left - n.width - u.x;
258
+ break;
259
+ }
260
+ switch (a) {
261
+ case "bottom":
262
+ case "top":
263
+ l = i.left + (i.width - n.width) / 2;
264
+ break;
265
+ case "bottom-start":
266
+ case "top-start":
267
+ l = i.left;
268
+ break;
269
+ case "bottom-end":
270
+ case "top-end":
271
+ l = i.right - n.width;
272
+ break;
273
+ case "right":
274
+ case "left":
275
+ h = i.top + (i.height - n.height) / 2;
276
+ break;
277
+ case "right-start":
278
+ case "left-start":
279
+ h = i.top;
280
+ break;
281
+ case "right-end":
282
+ case "left-end":
283
+ h = i.bottom - n.height;
284
+ break;
285
+ }
286
+ return (this.props.flip ?? !0) && (h + n.height > s.height && i.top > n.height && (h = i.top - n.height - u.y), l + n.width > s.width && i.left > n.width && (l = i.left - n.width - u.x)), (this.props.shift ?? !0) && (l = Math.max(8, Math.min(l, s.width - n.width - 8)), h = Math.max(8, Math.min(h, s.height - n.height - 8))), { x: l, y: h };
287
+ }
288
+ createMenuContent() {
289
+ const e = m("div", {
290
+ role: "menu",
291
+ "aria-labelledby": `${this.id}-trigger`,
292
+ "data-menu-id": this.id,
293
+ "data-menu-content": this.id,
294
+ // ENHANCED: Add data attribute for lifecycle hooks
295
+ style: {
296
+ position: "fixed",
297
+ backgroundColor: this.theme.colors.background,
298
+ border: `1px solid ${this.theme.colors.border}`,
299
+ borderRadius: `${this.theme.borderRadius}px`,
300
+ boxShadow: this.theme.shadow,
301
+ minWidth: `${this.theme.minWidth}px`,
302
+ maxWidth: `${this.theme.maxWidth}px`,
303
+ padding: `${this.theme.spacing.padding}px`,
304
+ zIndex: "9999",
305
+ opacity: "0",
306
+ transform: "scale(0.95)",
307
+ transformOrigin: "top",
308
+ transition: `all ${this.props.animationDuration || 150}ms cubic-bezier(0.16, 1, 0.3, 1)`
309
+ }
310
+ });
311
+ return this.props.items.forEach((t, i) => {
312
+ const n = this.createMenuItem(t, i), s = e.element, a = n.element;
313
+ s && a && s.appendChild(a);
314
+ }), this.menuElement = e.element, e;
315
+ }
316
+ setupTrigger() {
317
+ let e;
318
+ if (typeof this.props.trigger == "function") {
319
+ const t = this.props.trigger();
320
+ if ("render" in t) {
321
+ const i = t.render();
322
+ Array.isArray(i) ? e = i[0]?.element : e = i instanceof HTMLElement ? i : i?.element;
323
+ } else
324
+ e = t;
325
+ } else if ("render" in this.props.trigger) {
326
+ const t = this.props.trigger.render();
327
+ Array.isArray(t) ? e = t[0]?.element : e = t instanceof HTMLElement ? t : t?.element;
328
+ } else
329
+ e = this.props.trigger;
330
+ return e.id = e.id || `${this.id}-trigger`, e.setAttribute("aria-haspopup", "menu"), e.setAttribute("aria-expanded", String(this.isOpen())), e.setAttribute("data-menu-trigger", this.id), e.addEventListener("click", (t) => {
331
+ t.preventDefault(), t.stopPropagation(), this.setIsOpenValue(!this.isOpen());
332
+ }), this.triggerElement = e, e;
333
+ }
334
+ render() {
335
+ const e = m("div", {
336
+ style: {
337
+ position: "relative",
338
+ display: "inline-block"
339
+ }
340
+ }), t = this.setupTrigger();
341
+ return e.element && t && e.element.appendChild(t), x(() => {
342
+ if (this.isOpen()) {
343
+ const s = this.createMenuContent().element;
344
+ if (s && (document.body.appendChild(s), this.menuElement = s), this.triggerElement && this.menuElement) {
345
+ const a = this.calculatePosition(this.triggerElement, this.menuElement);
346
+ this.menuElement.style.left = `${a.x}px`, this.menuElement.style.top = `${a.y}px`, v.scaleIn(this, this.menuElement, this.props.animationDuration || 150), this.focusedIndex = 0, O.focusWhenReady(this, '[role="menuitem"]', this.menuElement);
347
+ }
348
+ document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleClickOutside), this.triggerElement?.setAttribute("aria-expanded", "true");
349
+ } else {
350
+ if (this.menuElement) {
351
+ this.menuElement.style.opacity = "0", this.menuElement.style.transform = "scale(0.95)";
352
+ const n = () => {
353
+ this.menuElement?.parentNode && (document.body.removeChild(this.menuElement), this.menuElement = null), this.menuElement?.removeEventListener("transitionend", n);
354
+ };
355
+ this.menuElement.addEventListener("transitionend", n);
356
+ const s = setTimeout(() => {
357
+ this.menuElement?.removeEventListener("transitionend", n), n();
358
+ }, this.props.animationDuration || 150);
359
+ this.cleanup || (this.cleanup = []), this.cleanup.push(() => {
360
+ s && clearTimeout(s);
361
+ });
362
+ }
363
+ document.removeEventListener("keydown", this.handleKeyDown), document.removeEventListener("click", this.handleClickOutside), this.triggerElement?.setAttribute("aria-expanded", "false"), this.focusedIndex = -1;
364
+ }
365
+ }), e;
366
+ }
367
+ }
368
+ function X(o) {
369
+ return k(new A(o));
370
+ }
371
+ const Y = {
372
+ /**
373
+ * Create a separator item
374
+ */
375
+ separator() {
376
+ return { title: "---" };
377
+ },
378
+ /**
379
+ * Create a destructive menu item
380
+ */
381
+ destructive(o, e, t) {
382
+ return {
383
+ title: o,
384
+ action: e,
385
+ destructive: !0,
386
+ systemImage: t
387
+ };
388
+ },
389
+ /**
390
+ * Create a menu item with keyboard shortcut
391
+ */
392
+ withShortcut(o, e, t, i) {
393
+ return {
394
+ title: o,
395
+ shortcut: e,
396
+ action: t,
397
+ systemImage: i
398
+ };
399
+ },
400
+ /**
401
+ * Create a context menu for right-click interactions
402
+ */
403
+ contextMenu(o, e) {
404
+ const [t, i] = g(!1), [n, s] = g({ x: 0, y: 0 });
405
+ o.addEventListener("contextmenu", (a) => {
406
+ a.preventDefault(), s({ x: a.clientX, y: a.clientY }), i(!0);
407
+ }), console.log("Context menu requested", { items: e, position: n(), isOpen: t() });
408
+ }
409
+ }, j = {
410
+ theme: f,
411
+ /**
412
+ * Create a custom menu theme
413
+ */
414
+ createTheme(o) {
415
+ return { ...f, ...o };
416
+ },
417
+ /**
418
+ * Dark theme preset
419
+ */
420
+ darkTheme() {
421
+ return {
422
+ ...f,
423
+ colors: {
424
+ ...f.colors,
425
+ background: "#2A2A2A",
426
+ surface: "#3A3A3A",
427
+ text: "#FFFFFF",
428
+ textSecondary: "#A0A0A0",
429
+ border: "#404040",
430
+ hover: "#404040",
431
+ active: "#0066CC"
432
+ }
433
+ };
434
+ }
435
+ };
436
+ export {
437
+ X as Menu,
438
+ A as MenuComponent,
439
+ j as MenuStyles,
440
+ Y as MenuUtils,
441
+ f as defaultMenuTheme
442
+ };
443
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sources":["../../src/components/Menu.ts"],"sourcesContent":["/**\n * Menu Component\n *\n * SwiftUI-inspired Menu component with dropdowns, context menus,\n * positioning, and keyboard navigation support.\n */\n\nimport type { ModifiableComponent, ModifierBuilder } from '../modifiers/types'\nimport { createEffect, createSignal, isSignal } from '../reactive'\nimport type { Signal } from '../reactive/types'\nimport { h } from '../runtime'\nimport type { ComponentInstance, ComponentProps, DOMNode } from '../runtime/types'\nimport { withModifiers } from './wrapper'\nimport { useLifecycle, AnimationManager, FocusManager, setupPositioning } from '../lifecycle/hooks'\n\n/**\n * Menu item configuration\n */\nexport interface MenuItem {\n id?: string\n title: string | Signal<string>\n systemImage?: string\n shortcut?: string\n disabled?: boolean | Signal<boolean>\n destructive?: boolean\n role?: 'default' | 'destructive' | 'cancel'\n action?: () => void | Promise<void>\n submenu?: MenuItem[]\n}\n\n/**\n * Menu positioning options\n */\nexport type MenuPlacement =\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n\n/**\n * Menu component properties\n */\nexport interface MenuProps extends ComponentProps {\n // Content\n items: MenuItem[]\n\n // Trigger\n trigger: ComponentInstance | HTMLElement | (() => ComponentInstance | HTMLElement)\n\n // Visibility\n isOpen?: Signal<boolean>\n\n // Behavior\n placement?: MenuPlacement\n closeOnSelect?: boolean\n closeOnClickOutside?: boolean\n escapeKeyCloses?: boolean\n\n // Positioning\n offset?: { x: number; y: number }\n flip?: boolean\n shift?: boolean\n\n // Animation\n animationDuration?: number\n\n // Accessibility\n accessibilityLabel?: string\n}\n\n/**\n * Menu theme configuration\n */\nexport interface MenuTheme {\n colors: {\n background: string\n surface: string\n text: string\n textSecondary: string\n textDisabled: string\n textDestructive: string\n border: string\n hover: string\n active: string\n separator: string\n shortcut: string\n backdrop: string\n }\n spacing: {\n padding: number\n itemPadding: number\n gap: number\n }\n borderRadius: number\n minWidth: number\n maxWidth: number\n itemHeight: number\n shadow: string\n backdropBlur: string\n}\n\n/**\n * Default menu theme\n */\nexport const defaultMenuTheme: MenuTheme = {\n colors: {\n background: '#FFFFFF',\n surface: '#F8F9FA',\n text: '#1A1A1A',\n textSecondary: '#6B7280',\n textDisabled: '#A0A0A0',\n textDestructive: '#FF3B30',\n border: '#E5E5E5',\n hover: '#F0F0F0',\n active: '#E3F2FD',\n separator: '#E5E5E5',\n shortcut: '#8E8E93',\n backdrop: 'rgba(0, 0, 0, 0.1)',\n },\n spacing: {\n padding: 8,\n itemPadding: 12,\n gap: 4,\n },\n borderRadius: 8,\n minWidth: 200,\n maxWidth: 320,\n itemHeight: 36,\n shadow: '0 4px 12px rgba(0, 0, 0, 0.15)',\n backdropBlur: 'blur(2px)',\n}\n\n/**\n * Menu component implementation\n */\nexport class MenuComponent implements ComponentInstance<MenuProps> {\n public readonly type = 'component' as const\n public readonly id: string\n public readonly props: MenuProps\n public cleanup: (() => void)[] = []\n private theme: MenuTheme = defaultMenuTheme\n private isOpenSignal = createSignal(false)\n private get isOpen() {\n return this.isOpenSignal[0]\n }\n private get setIsOpen() {\n return this.isOpenSignal[1]\n }\n private focusedIndex = -1\n private menuElement: HTMLElement | null = null\n private triggerElement: HTMLElement | null = null\n\n constructor(props: MenuProps) {\n this.props = props\n this.id = `menu-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n\n // Use provided isOpen signal or internal one\n if (this.props.isOpen) {\n this.isOpenSignal = [\n this.props.isOpen,\n ((value: boolean | ((prev: boolean) => boolean)) => {\n if (typeof this.props.isOpen === 'function') {\n ;(this.props.isOpen as any)(\n typeof value === 'function' ? value((this.props.isOpen as any)()) : value\n )\n }\n }) as any,\n ]\n }\n\n // ENHANCED: Set up lifecycle hooks for menu positioning and animations\n useLifecycle(this, {\n onDOMReady: (_elements, primaryElement) => {\n if (primaryElement) {\n // Set up menu positioning when DOM is ready\n this.setupMenuPositioning(primaryElement)\n \n // Set up animation and focus management\n this.setupMenuAnimations(primaryElement)\n }\n }\n })\n }\n\n private resolveValue<T>(value: T | Signal<T>): T {\n return isSignal(value) ? value() : value\n }\n\n /**\n * Set up menu positioning using enhanced lifecycle (ENHANCED Phase 3)\n */\n private setupMenuPositioning(_containerElement: Element): void {\n // Positioning is now handled via onDOMReady hooks when menu elements are guaranteed to exist\n // No more setTimeout positioning hacks needed\n if (!this.cleanup) this.cleanup = []\n \n // Set up positioning calculation that runs when both trigger and menu exist\n setupPositioning(\n this,\n `[data-menu-trigger=\"${this.id}\"]`,\n `[data-menu-content=\"${this.id}\"]`,\n (trigger, menu) => this.calculatePosition(trigger as HTMLElement, menu as HTMLElement)\n )\n }\n\n /**\n * Set up menu animations using enhanced lifecycle (ENHANCED Phase 3)\n */\n private setupMenuAnimations(_containerElement: Element): void {\n // Animation coordination now handled by AnimationManager instead of setTimeout\n // Focus management handled by FocusManager instead of setTimeout\n if (!this.cleanup) this.cleanup = []\n }\n\n private getVisibleItems(): MenuItem[] {\n return this.props.items.filter((item) => item.title !== '---') // Exclude separators\n }\n\n private createMenuItem(item: MenuItem, index: number): DOMNode {\n if (item.title === '---') {\n // Separator\n return h('div', {\n role: 'separator',\n style: {\n height: '1px',\n backgroundColor: this.theme.colors.separator,\n margin: `${this.theme.spacing.gap}px 0`,\n },\n })\n }\n\n const isDisabled = this.resolveValue(item.disabled ?? false)\n const title = this.resolveValue(item.title)\n\n const menuItem = h('div', {\n role: 'menuitem',\n tabindex: isDisabled ? '-1' : '0',\n 'aria-disabled': isDisabled,\n 'data-menu-item-index': index,\n style: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `${this.theme.spacing.itemPadding}px`,\n minHeight: `${this.theme.itemHeight}px`,\n fontSize: '14px',\n fontWeight: '400',\n color: isDisabled\n ? this.theme.colors.textDisabled\n : item.destructive || item.role === 'destructive'\n ? this.theme.colors.textDestructive\n : this.theme.colors.text,\n cursor: isDisabled ? 'default' : 'pointer',\n borderRadius: `${this.theme.borderRadius / 2}px`,\n transition: 'all 150ms ease-out',\n userSelect: 'none',\n },\n onclick: async (e: Event) => {\n if (isDisabled) return\n\n e.preventDefault()\n e.stopPropagation()\n\n if (item.action) {\n try {\n await item.action()\n } catch (error) {\n console.error('Menu item action failed:', error)\n }\n }\n\n if (this.props.closeOnSelect ?? true) {\n this.setIsOpenValue(false)\n }\n },\n onmouseenter: () => {\n if (!isDisabled) {\n this.focusedIndex = index\n this.updateItemFocus()\n const element = menuItem.element as HTMLElement\n if (element) element.style.backgroundColor = this.theme.colors.hover\n }\n },\n onmouseleave: () => {\n if (!isDisabled) {\n const element = menuItem.element as HTMLElement\n if (element) element.style.backgroundColor = 'transparent'\n }\n },\n })\n\n // Content container\n const content = h('div', {\n style: {\n display: 'flex',\n alignItems: 'center',\n gap: `${this.theme.spacing.gap * 2}px`,\n },\n })\n\n // System image/icon\n if (item.systemImage) {\n const icon = h('span', {\n style: {\n fontSize: '16px',\n color: 'inherit',\n },\n })\n const iconElement = icon.element as HTMLElement\n if (iconElement) iconElement.textContent = item.systemImage\n const contentElement = content.element as HTMLElement\n if (contentElement && iconElement) contentElement.appendChild(iconElement)\n }\n\n // Title\n const titleElement = h('span')\n const titleElementDOM = titleElement.element as HTMLElement\n if (titleElementDOM) titleElementDOM.textContent = title\n const contentElement = content.element as HTMLElement\n if (contentElement && titleElementDOM) contentElement.appendChild(titleElementDOM)\n\n const menuItemElement = menuItem.element as HTMLElement\n if (menuItemElement && contentElement) menuItemElement.appendChild(contentElement)\n\n // Keyboard shortcut\n if (item.shortcut) {\n const shortcut = h('span', {\n style: {\n fontSize: '12px',\n color: this.theme.colors.shortcut,\n fontFamily: 'monospace',\n },\n })\n const shortcutElement = shortcut.element as HTMLElement\n if (shortcutElement) shortcutElement.textContent = item.shortcut\n if (menuItemElement && shortcutElement) menuItemElement.appendChild(shortcutElement)\n }\n\n // Submenu indicator\n if (item.submenu && item.submenu.length > 0) {\n const indicator = h('span', {\n style: {\n fontSize: '12px',\n color: this.theme.colors.textSecondary,\n },\n })\n const indicatorElement = indicator.element as HTMLElement\n if (indicatorElement) indicatorElement.textContent = '▶'\n if (menuItemElement && indicatorElement) menuItemElement.appendChild(indicatorElement)\n }\n\n return menuItem\n }\n\n private updateItemFocus(): void {\n if (!this.menuElement) return\n\n const items = this.menuElement.querySelectorAll('[role=\"menuitem\"]')\n items.forEach((item, index) => {\n const element = item as HTMLElement\n if (index === this.focusedIndex) {\n element.style.backgroundColor = this.theme.colors.hover\n element.focus()\n } else {\n element.style.backgroundColor = 'transparent'\n }\n })\n }\n\n private handleKeyDown = (e: KeyboardEvent): void => {\n if (!this.isOpen()) return\n\n const visibleItems = this.getVisibleItems()\n\n switch (e.key) {\n case 'Escape':\n if (this.props.escapeKeyCloses ?? true) {\n e.preventDefault()\n this.setIsOpenValue(false)\n }\n break\n\n case 'ArrowDown':\n e.preventDefault()\n this.focusedIndex = Math.min(this.focusedIndex + 1, visibleItems.length - 1)\n this.updateItemFocus()\n break\n\n case 'ArrowUp':\n e.preventDefault()\n this.focusedIndex = Math.max(this.focusedIndex - 1, 0)\n this.updateItemFocus()\n break\n\n case 'Enter':\n case ' ':\n if (this.focusedIndex >= 0 && this.focusedIndex < visibleItems.length) {\n e.preventDefault()\n // const item = visibleItems[this.focusedIndex]\n const menuItem = this.menuElement?.querySelector(\n `[data-menu-item-index=\"${this.focusedIndex}\"]`\n ) as HTMLElement\n if (menuItem) {\n menuItem.click()\n }\n }\n break\n\n case 'Home':\n e.preventDefault()\n this.focusedIndex = 0\n this.updateItemFocus()\n break\n\n case 'End':\n e.preventDefault()\n this.focusedIndex = visibleItems.length - 1\n this.updateItemFocus()\n break\n }\n }\n\n private calculatePosition(trigger: HTMLElement, menu: HTMLElement): { x: number; y: number } {\n const triggerRect = trigger.getBoundingClientRect()\n const menuRect = menu.getBoundingClientRect()\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const placement = this.props.placement ?? 'bottom'\n const offset = this.props.offset ?? { x: 0, y: 4 }\n\n let x = 0\n let y = 0\n\n // Calculate base position based on placement\n switch (placement) {\n case 'bottom':\n case 'bottom-start':\n case 'bottom-end':\n y = triggerRect.bottom + offset.y\n break\n case 'top':\n case 'top-start':\n case 'top-end':\n y = triggerRect.top - menuRect.height - offset.y\n break\n case 'right':\n case 'right-start':\n case 'right-end':\n x = triggerRect.right + offset.x\n break\n case 'left':\n case 'left-start':\n case 'left-end':\n x = triggerRect.left - menuRect.width - offset.x\n break\n }\n\n switch (placement) {\n case 'bottom':\n case 'top':\n x = triggerRect.left + (triggerRect.width - menuRect.width) / 2\n break\n case 'bottom-start':\n case 'top-start':\n x = triggerRect.left\n break\n case 'bottom-end':\n case 'top-end':\n x = triggerRect.right - menuRect.width\n break\n case 'right':\n case 'left':\n y = triggerRect.top + (triggerRect.height - menuRect.height) / 2\n break\n case 'right-start':\n case 'left-start':\n y = triggerRect.top\n break\n case 'right-end':\n case 'left-end':\n y = triggerRect.bottom - menuRect.height\n break\n }\n\n // Handle flipping and shifting if enabled\n if (this.props.flip ?? true) {\n if (y + menuRect.height > viewport.height && triggerRect.top > menuRect.height) {\n y = triggerRect.top - menuRect.height - offset.y\n }\n if (x + menuRect.width > viewport.width && triggerRect.left > menuRect.width) {\n x = triggerRect.left - menuRect.width - offset.x\n }\n }\n\n if (this.props.shift ?? true) {\n x = Math.max(8, Math.min(x, viewport.width - menuRect.width - 8))\n y = Math.max(8, Math.min(y, viewport.height - menuRect.height - 8))\n }\n\n return { x, y }\n }\n\n private createMenuContent(): DOMNode {\n const menu = h('div', {\n role: 'menu',\n 'aria-labelledby': `${this.id}-trigger`,\n 'data-menu-id': this.id,\n 'data-menu-content': this.id, // ENHANCED: Add data attribute for lifecycle hooks\n style: {\n position: 'fixed',\n backgroundColor: this.theme.colors.background,\n border: `1px solid ${this.theme.colors.border}`,\n borderRadius: `${this.theme.borderRadius}px`,\n boxShadow: this.theme.shadow,\n minWidth: `${this.theme.minWidth}px`,\n maxWidth: `${this.theme.maxWidth}px`,\n padding: `${this.theme.spacing.padding}px`,\n zIndex: '9999',\n opacity: '0',\n transform: 'scale(0.95)',\n transformOrigin: 'top',\n transition: `all ${this.props.animationDuration || 150}ms cubic-bezier(0.16, 1, 0.3, 1)`,\n },\n })\n\n // Create menu items\n this.props.items.forEach((item, index) => {\n const menuItem = this.createMenuItem(item, index)\n const menuElement = menu.element as HTMLElement\n const menuItemElement = menuItem.element as HTMLElement\n if (menuElement && menuItemElement) {\n menuElement.appendChild(menuItemElement)\n }\n })\n\n this.menuElement = menu.element as HTMLElement\n return menu\n }\n\n private setupTrigger(): HTMLElement {\n let trigger: HTMLElement\n\n if (typeof this.props.trigger === 'function') {\n const result = this.props.trigger()\n if ('render' in result) {\n const rendered = result.render()\n if (Array.isArray(rendered)) {\n trigger = rendered[0]?.element as HTMLElement\n } else {\n trigger = rendered instanceof HTMLElement ? rendered : (rendered?.element as HTMLElement)\n }\n } else {\n trigger = result as HTMLElement\n }\n } else if ('render' in this.props.trigger) {\n const rendered = this.props.trigger.render()\n if (Array.isArray(rendered)) {\n trigger = rendered[0]?.element as HTMLElement\n } else {\n trigger = rendered instanceof HTMLElement ? rendered : (rendered?.element as HTMLElement)\n }\n } else {\n trigger = this.props.trigger as HTMLElement\n }\n\n trigger.id = trigger.id || `${this.id}-trigger`\n trigger.setAttribute('aria-haspopup', 'menu')\n trigger.setAttribute('aria-expanded', String(this.isOpen()))\n trigger.setAttribute('data-menu-trigger', this.id) // ENHANCED: Add data attribute for lifecycle hooks\n\n trigger.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.setIsOpenValue(!this.isOpen())\n })\n\n this.triggerElement = trigger\n return trigger\n }\n\n render(): DOMNode {\n const container = h('div', {\n style: {\n position: 'relative',\n display: 'inline-block',\n },\n })\n\n // Setup trigger\n const trigger = this.setupTrigger()\n if (container.element && trigger) {\n ;(container.element as HTMLElement).appendChild(trigger)\n }\n\n // Create reactive effect for menu visibility\n createEffect(() => {\n const isOpenValue = this.isOpen()\n\n if (isOpenValue) {\n // Show menu\n const menu = this.createMenuContent()\n const menuElement = menu.element as HTMLElement\n if (menuElement) {\n document.body.appendChild(menuElement)\n this.menuElement = menuElement\n }\n\n // ENHANCED: Position and animate menu using lifecycle hooks\n if (this.triggerElement && this.menuElement) {\n // Immediate positioning - no setTimeout needed\n const position = this.calculatePosition(this.triggerElement, this.menuElement)\n this.menuElement.style.left = `${position.x}px`\n this.menuElement.style.top = `${position.y}px`\n \n // Use AnimationManager for smooth animation\n AnimationManager.scaleIn(this, this.menuElement, this.props.animationDuration || 150)\n \n // Use FocusManager for proper focus handling\n this.focusedIndex = 0\n FocusManager.focusWhenReady(this, '[role=\"menuitem\"]', this.menuElement)\n }\n\n // Add event listeners\n document.addEventListener('keydown', this.handleKeyDown)\n document.addEventListener('click', this.handleClickOutside)\n\n // Update trigger aria-expanded\n this.triggerElement?.setAttribute('aria-expanded', 'true')\n } else {\n // ENHANCED: Hide menu using transition event listener instead of setTimeout\n if (this.menuElement) {\n this.menuElement.style.opacity = '0'\n this.menuElement.style.transform = 'scale(0.95)'\n\n // Use transition event listener for cleanup\n const handleTransitionEnd = () => {\n if (this.menuElement?.parentNode) {\n document.body.removeChild(this.menuElement)\n this.menuElement = null\n }\n this.menuElement?.removeEventListener('transitionend', handleTransitionEnd)\n }\n this.menuElement.addEventListener('transitionend', handleTransitionEnd)\n \n // Fallback timeout in case transition doesn't fire (rare edge case)\n const fallbackTimeout = setTimeout(() => {\n this.menuElement?.removeEventListener('transitionend', handleTransitionEnd)\n handleTransitionEnd()\n }, this.props.animationDuration || 150)\n \n // Store cleanup for fallback timeout\n if (!this.cleanup) this.cleanup = []\n this.cleanup.push(() => {\n if (fallbackTimeout) clearTimeout(fallbackTimeout)\n })\n }\n\n // Remove event listeners\n document.removeEventListener('keydown', this.handleKeyDown)\n document.removeEventListener('click', this.handleClickOutside)\n\n // Update trigger aria-expanded\n this.triggerElement?.setAttribute('aria-expanded', 'false')\n\n // Reset focus index\n this.focusedIndex = -1\n }\n })\n\n return container\n }\n\n private handleClickOutside = (e: Event): void => {\n if (!(this.props.closeOnClickOutside ?? true)) return\n\n const target = e.target as Element\n const isInsideMenu = this.menuElement?.contains(target)\n const isInsideTrigger = this.triggerElement?.contains(target)\n\n if (!isInsideMenu && !isInsideTrigger) {\n this.setIsOpenValue(false)\n }\n }\n\n private setIsOpenValue = (value: boolean): void => {\n if (this.props.isOpen) {\n // For controlled component, the signal setter should be used directly\n if (typeof this.props.isOpen === 'function') {\n ;(this.props.isOpen as any)(value)\n }\n } else {\n this.setIsOpen(value)\n }\n }\n}\n\n/**\n * Create a Menu component\n */\nexport function Menu(\n props: MenuProps\n): ModifiableComponent<MenuProps> & { modifier: ModifierBuilder<ModifiableComponent<MenuProps>> } {\n return withModifiers(new MenuComponent(props))\n}\n\n/**\n * Menu utility functions and presets\n */\nexport const MenuUtils = {\n /**\n * Create a separator item\n */\n separator(): MenuItem {\n return { title: '---' }\n },\n\n /**\n * Create a destructive menu item\n */\n destructive(title: string, action: () => void, systemImage?: string): MenuItem {\n return {\n title,\n action,\n destructive: true,\n systemImage,\n }\n },\n\n /**\n * Create a menu item with keyboard shortcut\n */\n withShortcut(\n title: string,\n shortcut: string,\n action: () => void,\n systemImage?: string\n ): MenuItem {\n return {\n title,\n shortcut,\n action,\n systemImage,\n }\n },\n\n /**\n * Create a context menu for right-click interactions\n */\n contextMenu(target: HTMLElement, items: MenuItem[]): void {\n const [isOpen, setIsOpen] = createSignal(false)\n const [position, setPosition] = createSignal({ x: 0, y: 0 })\n\n target.addEventListener('contextmenu', (e) => {\n e.preventDefault()\n setPosition({ x: e.clientX, y: e.clientY })\n setIsOpen(true)\n })\n\n // Note: This is a stub implementation\n // Full context menu positioning would require additional DOM manipulation\n console.log('Context menu requested', { items, position: position(), isOpen: isOpen() })\n },\n}\n\n/**\n * Menu styles and theming\n */\nexport const MenuStyles = {\n theme: defaultMenuTheme,\n\n /**\n * Create a custom menu theme\n */\n createTheme(overrides: Partial<MenuTheme>): MenuTheme {\n return { ...defaultMenuTheme, ...overrides }\n },\n\n /**\n * Dark theme preset\n */\n darkTheme(): MenuTheme {\n return {\n ...defaultMenuTheme,\n colors: {\n ...defaultMenuTheme.colors,\n background: '#2A2A2A',\n surface: '#3A3A3A',\n text: '#FFFFFF',\n textSecondary: '#A0A0A0',\n border: '#404040',\n hover: '#404040',\n active: '#0066CC',\n },\n }\n },\n}\n"],"names":["defaultMenuTheme","MenuComponent","props","__publicField","createSignal","e","visibleItems","menuItem","target","isInsideMenu","isInsideTrigger","value","useLifecycle","_elements","primaryElement","isSignal","_containerElement","setupPositioning","trigger","menu","item","index","h","isDisabled","title","error","element","content","iconElement","contentElement","titleElementDOM","menuItemElement","shortcutElement","indicatorElement","triggerRect","menuRect","viewport","placement","offset","x","y","menuElement","result","rendered","container","createEffect","position","AnimationManager","FocusManager","handleTransitionEnd","fallbackTimeout","Menu","withModifiers","MenuUtils","action","systemImage","shortcut","items","isOpen","setIsOpen","setPosition","MenuStyles","overrides"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../reactive/cleanup.cjs");require("../reactive/unified-scheduler.cjs");const d=require("../reactive/signal.cjs");require("../reactive/scheduler.cjs");require("../reactive/theme.cjs");require("../runtime/component.cjs");require("../runtime/context.cjs");require("../runtime/dev-tools.cjs");require("../runtime/dom-bridge.cjs");require("../runtime/error-boundary.cjs");require("../runtime/error-reporting.cjs");require("../runtime/performance.cjs");const i=require("../runtime/renderer.cjs");require("../runtime/element-override.cjs");require("../runtime/semantic-role-manager.cjs");require("../runtime/development-warnings.cjs");const b=require("./wrapper.cjs");var g=Object.defineProperty,f=(o,e,t)=>e in o?g(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,a=(o,e,t)=>f(o,typeof e!="symbol"?e+"":e,t);class h{constructor(e){this.props=e,a(this,"type","component"),a(this,"id"),a(this,"mounted",!1),a(this,"cleanup",[]),a(this,"isOpen"),a(this,"setIsOpen"),a(this,"searchTerm"),a(this,"setSearchTerm"),a(this,"handleSelection",l=>{this.props.onSelectionChange&&this.props.onSelectionChange(l),(this.props.variant==="dropdown"||this.props.variant==="menu")&&this.setIsOpen(!1),this.setSearchTerm("")}),a(this,"toggleOpen",()=>{this.isDisabled()||this.setIsOpen(!this.isOpen())}),this.id=`picker-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;const[t,r]=d.createSignal(!1),[n,s]=d.createSignal("");if(this.isOpen=t,this.setIsOpen=r,this.searchTerm=n,this.setSearchTerm=s,typeof window<"u"){const l=u=>{const c=document.getElementById(this.id);c&&!c.contains(u.target)&&this.setIsOpen(!1)};document.addEventListener("click",l),this.cleanup.push(()=>{document.removeEventListener("click",l)})}}getSelection(){const{selection:e}=this.props;return d.isSignal(e)?e():e}getOptions(){const{options:e}=this.props;return d.isSignal(e)?e():e}getFilteredOptions(){const e=this.getOptions(),t=this.searchTerm().toLowerCase();return!t||!this.props.searchable?e:e.filter(r=>r.label.toLowerCase().includes(t)||r.description?.toLowerCase().includes(t))}isDisabled(){const{disabled:e}=this.props;return typeof e=="boolean"?e:d.isSignal(e)?e():!1}getSelectedOption(){const e=this.getSelection();return this.getOptions().find(r=>r.value===e)||null}getSizeStyles(){const{size:e="medium"}=this.props;switch(e){case"small":return{fontSize:"14px",padding:"6px 12px",minHeight:"32px"};case"large":return{fontSize:"18px",padding:"12px 16px",minHeight:"48px"};default:return{fontSize:"16px",padding:"8px 12px",minHeight:"40px"}}}renderDropdown(){const e=this.getSelectedOption(),t=this.getFilteredOptions(),r=this.getSizeStyles(),n=this.isOpen();return i.h("div",{id:this.id,style:{position:"relative",display:"inline-block",minWidth:"200px"}},i.h("button",{type:"button",onClick:this.toggleOpen,disabled:this.isDisabled(),style:{...r,width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",backgroundColor:"#ffffff",border:"1px solid #d1d5db",borderRadius:"6px",cursor:this.isDisabled()?"not-allowed":"pointer",opacity:this.isDisabled()?.6:1,...n&&{borderColor:this.props.tint||"#007AFF",boxShadow:`0 0 0 1px ${this.props.tint||"#007AFF"}`}}},i.h("span",{style:{color:e?"#1a1a1a":"#6b7280"}},i.text(e?.label||this.props.placeholder||"Select an option")),i.h("span",{style:{fontSize:"12px",color:"#6b7280",transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},i.text("▼"))),...n?[i.h("div",{style:{position:"absolute",top:"100%",left:"0",right:"0",zIndex:1e3,backgroundColor:"#ffffff",border:"1px solid #d1d5db",borderRadius:"6px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1)",maxHeight:"200px",overflowY:"auto",marginTop:"2px"}},...this.props.searchable?[i.h("div",{style:{padding:"8px",borderBottom:"1px solid #e5e7eb"}},i.h("input",{type:"text",placeholder:"Search options...",value:this.searchTerm(),onInput:s=>{const l=s.target;this.setSearchTerm(l.value)},style:{width:"100%",padding:"6px 8px",border:"1px solid #d1d5db",borderRadius:"4px",fontSize:"14px"}}))]:[],...t.map(s=>i.h("button",{type:"button",key:String(s.value),onClick:()=>this.handleSelection(s.value),disabled:s.disabled,style:{width:"100%",padding:"8px 12px",textAlign:"left",backgroundColor:s.value===this.getSelection()?"#f3f4f6":"transparent",border:"none",cursor:s.disabled?"not-allowed":"pointer",opacity:s.disabled?.5:1,fontSize:"14px",display:"flex",alignItems:"center",gap:"8px",":hover":{backgroundColor:"#f9fafb"}}},...s.icon?[i.h("span",{style:{fontSize:"16px"}},i.text(s.icon))]:[],i.h("div",{},i.h("div",{},i.text(s.label)),...s.description?[i.h("div",{style:{fontSize:"12px",color:"#6b7280",marginTop:"2px"}},i.text(s.description))]:[]))),...t.length===0?[i.h("div",{style:{padding:"12px",textAlign:"center",color:"#6b7280",fontSize:"14px"}},i.text("No options found"))]:[])]:[])}renderSegmented(){const e=this.getOptions(),t=this.getSelection(),r=this.getSizeStyles();return i.h("div",{style:{display:"flex",backgroundColor:"#f3f4f6",borderRadius:"8px",padding:"2px"},role:"radiogroup","aria-label":this.props.accessibilityLabel},...e.map((n,s)=>i.h("button",{type:"button",key:String(n.value),onClick:()=>this.handleSelection(n.value),disabled:n.disabled||this.isDisabled(),role:"radio","aria-checked":n.value===t,style:{...r,flex:1,border:"none",borderRadius:"6px",backgroundColor:n.value===t?"#ffffff":"transparent",color:n.value===t?"#1a1a1a":"#6b7280",fontWeight:n.value===t?"600":"400",cursor:n.disabled||this.isDisabled()?"not-allowed":"pointer",opacity:n.disabled||this.isDisabled()?.5:1,boxShadow:n.value===t?"0 1px 2px rgba(0, 0, 0, 0.1)":"none",transition:"all 0.2s",margin:"0",...s===0&&{marginRight:"1px"},...s===e.length-1&&{marginLeft:"1px"}}},...n.icon?[i.h("span",{style:{marginRight:"6px",fontSize:"14px"}},i.text(n.icon))]:[],i.text(n.label))))}renderWheel(){const e=this.getOptions(),t=this.getSelection();return i.h("select",{value:String(t),onChange:r=>{const n=r.target,s=e.find(l=>String(l.value)===n.value);s&&this.handleSelection(s.value)},disabled:this.isDisabled(),style:{...this.getSizeStyles(),minWidth:"200px",backgroundColor:"#ffffff",border:"1px solid #d1d5db",borderRadius:"6px",cursor:this.isDisabled()?"not-allowed":"pointer",opacity:this.isDisabled()?.6:1}},...e.map(r=>i.h("option",{key:String(r.value),value:String(r.value),disabled:r.disabled},i.text(r.label))))}render(){const{variant:e="dropdown",accessibilityLabel:t,accessibilityHint:r}=this.props,n={"aria-label":t,"aria-describedby":r?`${this.id}-hint`:void 0};let s;switch(e){case"segmented":s=this.renderSegmented();break;case"wheel":s=this.renderWheel();break;default:s=this.renderDropdown();break}return i.h("div",n,s,...r?[i.h("div",{id:`${this.id}-hint`,style:{fontSize:"12px",color:"#6b7280",marginTop:"4px"}},i.text(r))]:[])}}function p(o,e,t={}){const r={...t,selection:o,options:e},n=new h(r);return b.withModifiers(n)}const x={Dropdown(o,e,t={}){return p(o,e,{...t,variant:"dropdown"})},Segmented(o,e,t={}){return p(o,e,{...t,variant:"segmented"})},Wheel(o,e,t={}){return p(o,e,{...t,variant:"wheel"})},Menu(o,e,t={}){return p(o,e,{...t,variant:"menu"})}},S={fromArray(o,e){return o.map(t=>({value:t,label:String(e&&typeof t=="object"&&t!==null?t[e]:t)}))},fromEnum(o){return Object.entries(o).map(([e,t])=>({value:t,label:e.replace(/([A-Z])/g," $1").trim()}))},grouped(o){return o.reduce((e,t)=>{const r=t.category||"Other";return e[r]||(e[r]=[]),e[r].push(t),e},{})}};exports.EnhancedPicker=h;exports.Picker=p;exports.PickerStyles=x;exports.PickerUtils=S;
2
+ //# sourceMappingURL=Picker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Picker.cjs","sources":["../../src/components/Picker.ts"],"sourcesContent":["/**\n * Enhanced Picker Component (Phase 6.4.3)\n *\n * SwiftUI-inspired Picker component with dropdown, wheel, and segmented\n * variants for selecting from a list of options.\n */\n\nimport type { ModifiableComponent, ModifierBuilder } from '../modifiers/types'\nimport { createSignal, isSignal } from '../reactive'\nimport type { Signal } from '../reactive/types'\nimport { h, text } from '../runtime'\nimport type { ComponentInstance, ComponentProps } from '../runtime/types'\nimport { withModifiers } from './wrapper'\n\n/**\n * Picker option structure\n */\n// biome-ignore lint/suspicious/noExplicitAny: Generic picker options require flexible type\nexport interface PickerOption<T = any> {\n value: T\n label: string\n disabled?: boolean\n icon?: string\n description?: string\n}\n\n/**\n * Picker component properties\n */\n// biome-ignore lint/suspicious/noExplicitAny: Generic picker props require flexible type\nexport interface PickerProps<T = any> extends ComponentProps {\n // Selection\n selection: T | Signal<T>\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>\n onSelectionChange?: (value: T) => void\n\n // Appearance\n variant?: 'dropdown' | 'wheel' | 'segmented' | 'menu'\n title?: string | (() => string) | Signal<string>\n placeholder?: string\n\n // Behavior\n multiple?: boolean\n searchable?: boolean\n clearable?: boolean\n disabled?: boolean | Signal<boolean>\n\n // Styling\n size?: 'small' | 'medium' | 'large'\n tint?: string\n\n // Accessibility\n accessibilityLabel?: string\n accessibilityHint?: string\n}\n\n/**\n * Enhanced Picker component class\n */\n// biome-ignore lint/suspicious/noExplicitAny: Generic picker implementation requires flexible type\nexport class EnhancedPicker<T = any> implements ComponentInstance<PickerProps<T>> {\n public readonly type = 'component' as const\n public readonly id: string\n public mounted = false\n public cleanup: (() => void)[] = []\n private isOpen: () => boolean\n private setIsOpen: (open: boolean) => boolean\n private searchTerm: () => string\n private setSearchTerm: (term: string) => string\n\n constructor(public props: PickerProps<T>) {\n this.id = `picker-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n\n // Initialize internal state\n const [open, setOpen] = createSignal(false)\n const [search, setSearch] = createSignal('')\n this.isOpen = open\n this.setIsOpen = setOpen\n this.searchTerm = search\n this.setSearchTerm = setSearch\n\n // Close picker when clicking outside\n if (typeof window !== 'undefined') {\n const handleClickOutside = (event: MouseEvent) => {\n const element = document.getElementById(this.id)\n if (element && !element.contains(event.target as Node)) {\n this.setIsOpen(false)\n }\n }\n\n document.addEventListener('click', handleClickOutside)\n this.cleanup.push(() => {\n document.removeEventListener('click', handleClickOutside)\n })\n }\n }\n\n /**\n * Get current selection value\n */\n private getSelection(): T {\n const { selection } = this.props\n if (isSignal(selection)) {\n return (selection as () => T)()\n }\n return selection as T\n }\n\n /**\n * Get current options\n */\n private getOptions(): PickerOption<T>[] {\n const { options } = this.props\n if (isSignal(options)) {\n return (options as () => PickerOption<T>[])()\n }\n return options as PickerOption<T>[]\n }\n\n /**\n * Filter options based on search term\n */\n private getFilteredOptions(): PickerOption<T>[] {\n const options = this.getOptions()\n const search = this.searchTerm().toLowerCase()\n\n if (!search || !this.props.searchable) {\n return options\n }\n\n return options.filter(\n (option) =>\n option.label.toLowerCase().includes(search) ||\n option.description?.toLowerCase().includes(search)\n )\n }\n\n /**\n * Check if picker is disabled\n */\n private isDisabled(): boolean {\n const { disabled } = this.props\n if (typeof disabled === 'boolean') return disabled\n if (isSignal(disabled)) return (disabled as () => boolean)()\n return false\n }\n\n /**\n * Get selected option\n */\n private getSelectedOption(): PickerOption<T> | null {\n const selection = this.getSelection()\n const options = this.getOptions()\n return options.find((option) => option.value === selection) || null\n }\n\n /**\n * Handle option selection\n */\n private handleSelection = (value: T) => {\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange(value)\n }\n\n // Close dropdown after selection\n if (this.props.variant === 'dropdown' || this.props.variant === 'menu') {\n this.setIsOpen(false)\n }\n\n // Clear search term\n this.setSearchTerm('')\n }\n\n /**\n * Toggle picker open state\n */\n private toggleOpen = () => {\n if (!this.isDisabled()) {\n this.setIsOpen(!this.isOpen())\n }\n }\n\n /**\n * Get picker size styles\n */\n private getSizeStyles() {\n const { size = 'medium' } = this.props\n\n switch (size) {\n case 'small':\n return {\n fontSize: '14px',\n padding: '6px 12px',\n minHeight: '32px',\n }\n case 'large':\n return {\n fontSize: '18px',\n padding: '12px 16px',\n minHeight: '48px',\n }\n default:\n return {\n fontSize: '16px',\n padding: '8px 12px',\n minHeight: '40px',\n }\n }\n }\n\n /**\n * Render dropdown variant\n */\n private renderDropdown() {\n const selectedOption = this.getSelectedOption()\n const filteredOptions = this.getFilteredOptions()\n const sizeStyles = this.getSizeStyles()\n const isOpen = this.isOpen()\n\n return h(\n 'div',\n {\n id: this.id,\n style: {\n position: 'relative',\n display: 'inline-block',\n minWidth: '200px',\n },\n },\n // Trigger button\n h(\n 'button',\n {\n type: 'button',\n onClick: this.toggleOpen,\n disabled: this.isDisabled(),\n style: {\n ...sizeStyles,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: '#ffffff',\n border: '1px solid #d1d5db',\n borderRadius: '6px',\n cursor: this.isDisabled() ? 'not-allowed' : 'pointer',\n opacity: this.isDisabled() ? 0.6 : 1,\n ...(isOpen && {\n borderColor: this.props.tint || '#007AFF',\n boxShadow: `0 0 0 1px ${this.props.tint || '#007AFF'}`,\n }),\n },\n },\n h(\n 'span',\n {\n style: {\n color: selectedOption ? '#1a1a1a' : '#6b7280',\n },\n },\n text(selectedOption?.label || this.props.placeholder || 'Select an option')\n ),\n\n h(\n 'span',\n {\n style: {\n fontSize: '12px',\n color: '#6b7280',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s',\n },\n },\n text('▼')\n )\n ),\n\n // Dropdown menu\n ...(isOpen\n ? [\n h(\n 'div',\n {\n style: {\n position: 'absolute',\n top: '100%',\n left: '0',\n right: '0',\n zIndex: 1000,\n backgroundColor: '#ffffff',\n border: '1px solid #d1d5db',\n borderRadius: '6px',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1)',\n maxHeight: '200px',\n overflowY: 'auto' as const,\n marginTop: '2px',\n },\n },\n // Search input (if searchable)\n ...(this.props.searchable\n ? [\n h(\n 'div',\n {\n style: {\n padding: '8px',\n borderBottom: '1px solid #e5e7eb',\n },\n },\n h('input', {\n type: 'text',\n placeholder: 'Search options...',\n value: this.searchTerm(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement\n this.setSearchTerm(target.value)\n },\n style: {\n width: '100%',\n padding: '6px 8px',\n border: '1px solid #d1d5db',\n borderRadius: '4px',\n fontSize: '14px',\n },\n })\n ),\n ]\n : []),\n\n // Options\n ...filteredOptions.map((option) =>\n h(\n 'button',\n {\n type: 'button',\n key: String(option.value),\n onClick: () => this.handleSelection(option.value),\n disabled: option.disabled,\n style: {\n width: '100%',\n padding: '8px 12px',\n textAlign: 'left' as const,\n backgroundColor:\n option.value === this.getSelection() ? '#f3f4f6' : 'transparent',\n border: 'none',\n cursor: option.disabled ? 'not-allowed' : 'pointer',\n opacity: option.disabled ? 0.5 : 1,\n fontSize: '14px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n ':hover': {\n backgroundColor: '#f9fafb',\n },\n },\n },\n ...(option.icon\n ? [h('span', { style: { fontSize: '16px' } }, text(option.icon))]\n : []),\n\n h(\n 'div',\n {},\n h('div', {}, text(option.label)),\n ...(option.description\n ? [\n h(\n 'div',\n {\n style: {\n fontSize: '12px',\n color: '#6b7280',\n marginTop: '2px',\n },\n },\n text(option.description)\n ),\n ]\n : [])\n )\n )\n ),\n\n // No results message\n ...(filteredOptions.length === 0\n ? [\n h(\n 'div',\n {\n style: {\n padding: '12px',\n textAlign: 'center' as const,\n color: '#6b7280',\n fontSize: '14px',\n },\n },\n text('No options found')\n ),\n ]\n : [])\n ),\n ]\n : [])\n )\n }\n\n /**\n * Render segmented variant\n */\n private renderSegmented() {\n const options = this.getOptions()\n const selection = this.getSelection()\n const sizeStyles = this.getSizeStyles()\n\n return h(\n 'div',\n {\n style: {\n display: 'flex',\n backgroundColor: '#f3f4f6',\n borderRadius: '8px',\n padding: '2px',\n },\n role: 'radiogroup',\n 'aria-label': this.props.accessibilityLabel,\n },\n ...options.map((option, index) =>\n h(\n 'button',\n {\n type: 'button',\n key: String(option.value),\n onClick: () => this.handleSelection(option.value),\n disabled: option.disabled || this.isDisabled(),\n role: 'radio',\n 'aria-checked': option.value === selection,\n style: {\n ...sizeStyles,\n flex: 1,\n border: 'none',\n borderRadius: '6px',\n backgroundColor: option.value === selection ? '#ffffff' : 'transparent',\n color: option.value === selection ? '#1a1a1a' : '#6b7280',\n fontWeight: option.value === selection ? '600' : '400',\n cursor: option.disabled || this.isDisabled() ? 'not-allowed' : 'pointer',\n opacity: option.disabled || this.isDisabled() ? 0.5 : 1,\n boxShadow: option.value === selection ? '0 1px 2px rgba(0, 0, 0, 0.1)' : 'none',\n transition: 'all 0.2s',\n margin: '0',\n ...(index === 0 && { marginRight: '1px' }),\n ...(index === options.length - 1 && { marginLeft: '1px' }),\n },\n },\n ...(option.icon\n ? [\n h(\n 'span',\n {\n style: {\n marginRight: '6px',\n fontSize: '14px',\n },\n },\n text(option.icon)\n ),\n ]\n : []),\n text(option.label)\n )\n )\n )\n }\n\n /**\n * Render wheel variant (simplified)\n */\n private renderWheel() {\n const options = this.getOptions()\n const selection = this.getSelection()\n\n return h(\n 'select',\n {\n value: String(selection),\n onChange: (e: Event) => {\n const target = e.target as HTMLSelectElement\n const selectedOption = options.find((opt) => String(opt.value) === target.value)\n if (selectedOption) {\n this.handleSelection(selectedOption.value)\n }\n },\n disabled: this.isDisabled(),\n style: {\n ...this.getSizeStyles(),\n minWidth: '200px',\n backgroundColor: '#ffffff',\n border: '1px solid #d1d5db',\n borderRadius: '6px',\n cursor: this.isDisabled() ? 'not-allowed' : 'pointer',\n opacity: this.isDisabled() ? 0.6 : 1,\n },\n },\n ...options.map((option) =>\n h(\n 'option',\n {\n key: String(option.value),\n value: String(option.value),\n disabled: option.disabled,\n },\n text(option.label)\n )\n )\n )\n }\n\n render() {\n const { variant = 'dropdown', accessibilityLabel, accessibilityHint } = this.props\n\n const containerProps = {\n 'aria-label': accessibilityLabel,\n 'aria-describedby': accessibilityHint ? `${this.id}-hint` : undefined,\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: Content can be various component types\n let content: any\n\n switch (variant) {\n case 'segmented':\n content = this.renderSegmented()\n break\n case 'wheel':\n content = this.renderWheel()\n break\n default:\n content = this.renderDropdown()\n break\n }\n\n return h(\n 'div',\n containerProps,\n content,\n ...(accessibilityHint\n ? [\n h(\n 'div',\n {\n id: `${this.id}-hint`,\n style: {\n fontSize: '12px',\n color: '#6b7280',\n marginTop: '4px',\n },\n },\n text(accessibilityHint)\n ),\n ]\n : [])\n )\n }\n}\n\n/**\n * Picker component function\n */\n// biome-ignore lint/suspicious/noExplicitAny: Generic picker function requires flexible type\nexport function Picker<T = any>(\n selection: T | Signal<T>,\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>,\n props: Omit<PickerProps<T>, 'selection' | 'options'> = {}\n): ModifiableComponent<PickerProps<T>> & {\n modifier: ModifierBuilder<ModifiableComponent<PickerProps<T>>>\n} {\n const pickerProps: PickerProps<T> = { ...props, selection, options }\n const component = new EnhancedPicker(pickerProps)\n return withModifiers(component)\n}\n\n/**\n * Picker style variants\n */\nexport const PickerStyles = {\n /**\n * Dropdown picker (default)\n */\n // biome-ignore lint/suspicious/noExplicitAny: Generic dropdown picker requires flexible type\n Dropdown<T = any>(\n selection: T | Signal<T>,\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>,\n props: Omit<PickerProps<T>, 'selection' | 'options' | 'variant'> = {}\n ) {\n return Picker(selection, options, { ...props, variant: 'dropdown' })\n },\n\n /**\n * Segmented picker\n */\n // biome-ignore lint/suspicious/noExplicitAny: Generic segmented picker requires flexible type\n Segmented<T = any>(\n selection: T | Signal<T>,\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>,\n props: Omit<PickerProps<T>, 'selection' | 'options' | 'variant'> = {}\n ) {\n return Picker(selection, options, { ...props, variant: 'segmented' })\n },\n\n /**\n * Wheel picker (native select)\n */\n // biome-ignore lint/suspicious/noExplicitAny: Generic wheel picker requires flexible type\n Wheel<T = any>(\n selection: T | Signal<T>,\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>,\n props: Omit<PickerProps<T>, 'selection' | 'options' | 'variant'> = {}\n ) {\n return Picker(selection, options, { ...props, variant: 'wheel' })\n },\n\n /**\n * Menu picker\n */\n // biome-ignore lint/suspicious/noExplicitAny: Generic menu picker requires flexible type\n Menu<T = any>(\n selection: T | Signal<T>,\n options: PickerOption<T>[] | Signal<PickerOption<T>[]>,\n props: Omit<PickerProps<T>, 'selection' | 'options' | 'variant'> = {}\n ) {\n return Picker(selection, options, { ...props, variant: 'menu' })\n },\n}\n\n/**\n * Picker utilities\n */\nexport const PickerUtils = {\n /**\n * Create options from simple array\n */\n fromArray<T>(items: T[], labelKey?: keyof T): PickerOption<T>[] {\n return items.map((item) => ({\n value: item,\n label:\n labelKey && typeof item === 'object' && item !== null\n ? String(item[labelKey])\n : String(item),\n }))\n },\n\n /**\n * Create options from enum\n */\n fromEnum(enumObject: Record<string, string | number>): PickerOption<string | number>[] {\n return Object.entries(enumObject).map(([key, value]) => ({\n value,\n label: key.replace(/([A-Z])/g, ' $1').trim(),\n }))\n },\n\n /**\n * Group options by category\n */\n grouped<T>(\n options: (PickerOption<T> & { category?: string })[]\n ): Record<string, PickerOption<T>[]> {\n return options.reduce(\n (groups, option) => {\n const category = option.category || 'Other'\n if (!groups[category]) {\n groups[category] = []\n }\n groups[category].push(option)\n return groups\n },\n {} as Record<string, PickerOption<T>[]>\n )\n },\n}\n"],"names":["EnhancedPicker","props","__publicField","value","open","setOpen","createSignal","search","setSearch","handleClickOutside","event","element","selection","isSignal","options","option","disabled","size","selectedOption","filteredOptions","sizeStyles","isOpen","h","text","e","target","index","opt","variant","accessibilityLabel","accessibilityHint","containerProps","content","Picker","pickerProps","component","withModifiers","PickerStyles","PickerUtils","items","labelKey","item","enumObject","key","groups","category"],"mappings":"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"}