@barefootjs/jsx 0.9.2 → 0.9.4

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 (283) hide show
  1. package/dist/adapters/attr-value-emitter.d.ts +1 -1
  2. package/dist/adapters/attr-value-emitter.d.ts.map +1 -1
  3. package/dist/adapters/interface.d.ts +1 -1
  4. package/dist/adapters/interface.d.ts.map +1 -1
  5. package/dist/adapters/ir-node-emitter.d.ts +1 -1
  6. package/dist/adapters/ir-node-emitter.d.ts.map +1 -1
  7. package/dist/adapters/jsx-adapter.d.ts +2 -2
  8. package/dist/adapters/jsx-adapter.d.ts.map +1 -1
  9. package/dist/adapters/parsed-expr-emitter.d.ts +1 -1
  10. package/dist/adapters/parsed-expr-emitter.d.ts.map +1 -1
  11. package/dist/adapters/template-imports.d.ts +1 -1
  12. package/dist/adapters/template-imports.d.ts.map +1 -1
  13. package/dist/adapters/test-adapter.d.ts +3 -3
  14. package/dist/adapters/test-adapter.d.ts.map +1 -1
  15. package/dist/analyzer-context.d.ts +2 -2
  16. package/dist/analyzer-context.d.ts.map +1 -1
  17. package/dist/analyzer.d.ts +2 -2
  18. package/dist/analyzer.d.ts.map +1 -1
  19. package/dist/augment-inherited-props.d.ts +1 -1
  20. package/dist/augment-inherited-props.d.ts.map +1 -1
  21. package/dist/compiler.d.ts +3 -3
  22. package/dist/compiler.d.ts.map +1 -1
  23. package/dist/css-layer-prefixer.d.ts +1 -1
  24. package/dist/css-layer-prefixer.d.ts.map +1 -1
  25. package/dist/debug.d.ts +3 -3
  26. package/dist/debug.d.ts.map +1 -1
  27. package/dist/errors.d.ts +1 -1
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/expression-parser.d.ts +12 -0
  30. package/dist/expression-parser.d.ts.map +1 -1
  31. package/dist/free-refs.d.ts +1 -1
  32. package/dist/free-refs.d.ts.map +1 -1
  33. package/dist/index.d.ts +42 -42
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +15 -0
  36. package/dist/ir-to-client-js/build-references.d.ts +2 -2
  37. package/dist/ir-to-client-js/build-references.d.ts.map +1 -1
  38. package/dist/ir-to-client-js/child-components.d.ts +2 -2
  39. package/dist/ir-to-client-js/child-components.d.ts.map +1 -1
  40. package/dist/ir-to-client-js/collect-elements.d.ts +4 -4
  41. package/dist/ir-to-client-js/collect-elements.d.ts.map +1 -1
  42. package/dist/ir-to-client-js/compute-inlinability.d.ts +4 -4
  43. package/dist/ir-to-client-js/compute-inlinability.d.ts.map +1 -1
  44. package/dist/ir-to-client-js/compute-prop-usage.d.ts +2 -2
  45. package/dist/ir-to-client-js/compute-prop-usage.d.ts.map +1 -1
  46. package/dist/ir-to-client-js/compute-scope.d.ts +2 -2
  47. package/dist/ir-to-client-js/compute-scope.d.ts.map +1 -1
  48. package/dist/ir-to-client-js/control-flow/plan/branch-loop.d.ts +3 -3
  49. package/dist/ir-to-client-js/control-flow/plan/branch-loop.d.ts.map +1 -1
  50. package/dist/ir-to-client-js/control-flow/plan/build-branch-loop.d.ts +2 -2
  51. package/dist/ir-to-client-js/control-flow/plan/build-branch-loop.d.ts.map +1 -1
  52. package/dist/ir-to-client-js/control-flow/plan/build-component-loop.d.ts +2 -2
  53. package/dist/ir-to-client-js/control-flow/plan/build-component-loop.d.ts.map +1 -1
  54. package/dist/ir-to-client-js/control-flow/plan/build-composite-loop.d.ts +2 -2
  55. package/dist/ir-to-client-js/control-flow/plan/build-composite-loop.d.ts.map +1 -1
  56. package/dist/ir-to-client-js/control-flow/plan/build-event-delegation.d.ts +2 -2
  57. package/dist/ir-to-client-js/control-flow/plan/build-event-delegation.d.ts.map +1 -1
  58. package/dist/ir-to-client-js/control-flow/plan/build-inner-loop.d.ts +3 -3
  59. package/dist/ir-to-client-js/control-flow/plan/build-inner-loop.d.ts.map +1 -1
  60. package/dist/ir-to-client-js/control-flow/plan/build-insert.d.ts +2 -2
  61. package/dist/ir-to-client-js/control-flow/plan/build-insert.d.ts.map +1 -1
  62. package/dist/ir-to-client-js/control-flow/plan/build-loop-child-arm.d.ts +3 -3
  63. package/dist/ir-to-client-js/control-flow/plan/build-loop-child-arm.d.ts.map +1 -1
  64. package/dist/ir-to-client-js/control-flow/plan/build-loop.d.ts +2 -2
  65. package/dist/ir-to-client-js/control-flow/plan/build-loop.d.ts.map +1 -1
  66. package/dist/ir-to-client-js/control-flow/plan/build-reactive-effects.d.ts +3 -3
  67. package/dist/ir-to-client-js/control-flow/plan/build-reactive-effects.d.ts.map +1 -1
  68. package/dist/ir-to-client-js/control-flow/plan/event-delegation.d.ts +1 -1
  69. package/dist/ir-to-client-js/control-flow/plan/event-delegation.d.ts.map +1 -1
  70. package/dist/ir-to-client-js/control-flow/plan/inner-loop.d.ts +3 -3
  71. package/dist/ir-to-client-js/control-flow/plan/inner-loop.d.ts.map +1 -1
  72. package/dist/ir-to-client-js/control-flow/plan/insert.d.ts +3 -3
  73. package/dist/ir-to-client-js/control-flow/plan/insert.d.ts.map +1 -1
  74. package/dist/ir-to-client-js/control-flow/plan/loop-child-arm.d.ts +4 -4
  75. package/dist/ir-to-client-js/control-flow/plan/loop-child-arm.d.ts.map +1 -1
  76. package/dist/ir-to-client-js/control-flow/plan/loop.d.ts +4 -4
  77. package/dist/ir-to-client-js/control-flow/plan/loop.d.ts.map +1 -1
  78. package/dist/ir-to-client-js/control-flow/plan/reactive-effects.d.ts +2 -2
  79. package/dist/ir-to-client-js/control-flow/plan/reactive-effects.d.ts.map +1 -1
  80. package/dist/ir-to-client-js/control-flow/plan/types.d.ts +7 -7
  81. package/dist/ir-to-client-js/control-flow/plan/types.d.ts.map +1 -1
  82. package/dist/ir-to-client-js/control-flow/shared.d.ts +5 -5
  83. package/dist/ir-to-client-js/control-flow/shared.d.ts.map +1 -1
  84. package/dist/ir-to-client-js/control-flow/stringify/branch-loop.d.ts +1 -1
  85. package/dist/ir-to-client-js/control-flow/stringify/branch-loop.d.ts.map +1 -1
  86. package/dist/ir-to-client-js/control-flow/stringify/component-loop.d.ts +1 -1
  87. package/dist/ir-to-client-js/control-flow/stringify/component-loop.d.ts.map +1 -1
  88. package/dist/ir-to-client-js/control-flow/stringify/composite-loop.d.ts +1 -1
  89. package/dist/ir-to-client-js/control-flow/stringify/composite-loop.d.ts.map +1 -1
  90. package/dist/ir-to-client-js/control-flow/stringify/event-delegation.d.ts +1 -1
  91. package/dist/ir-to-client-js/control-flow/stringify/event-delegation.d.ts.map +1 -1
  92. package/dist/ir-to-client-js/control-flow/stringify/inner-loop.d.ts +1 -1
  93. package/dist/ir-to-client-js/control-flow/stringify/inner-loop.d.ts.map +1 -1
  94. package/dist/ir-to-client-js/control-flow/stringify/insert.d.ts +1 -1
  95. package/dist/ir-to-client-js/control-flow/stringify/insert.d.ts.map +1 -1
  96. package/dist/ir-to-client-js/control-flow/stringify/loop-child-arm.d.ts +1 -1
  97. package/dist/ir-to-client-js/control-flow/stringify/loop-child-arm.d.ts.map +1 -1
  98. package/dist/ir-to-client-js/control-flow/stringify/loop.d.ts +1 -1
  99. package/dist/ir-to-client-js/control-flow/stringify/loop.d.ts.map +1 -1
  100. package/dist/ir-to-client-js/control-flow/stringify/reactive-effects.d.ts +1 -1
  101. package/dist/ir-to-client-js/control-flow/stringify/reactive-effects.d.ts.map +1 -1
  102. package/dist/ir-to-client-js/control-flow.d.ts +1 -1
  103. package/dist/ir-to-client-js/control-flow.d.ts.map +1 -1
  104. package/dist/ir-to-client-js/csr-substitute.d.ts +1 -1
  105. package/dist/ir-to-client-js/csr-substitute.d.ts.map +1 -1
  106. package/dist/ir-to-client-js/declaration-sort.d.ts +1 -1
  107. package/dist/ir-to-client-js/declaration-sort.d.ts.map +1 -1
  108. package/dist/ir-to-client-js/element-refs.d.ts +1 -1
  109. package/dist/ir-to-client-js/element-refs.d.ts.map +1 -1
  110. package/dist/ir-to-client-js/emit-module-level.d.ts +1 -1
  111. package/dist/ir-to-client-js/emit-module-level.d.ts.map +1 -1
  112. package/dist/ir-to-client-js/emit-reactive.d.ts +2 -2
  113. package/dist/ir-to-client-js/emit-reactive.d.ts.map +1 -1
  114. package/dist/ir-to-client-js/emit-registration.d.ts +2 -2
  115. package/dist/ir-to-client-js/emit-registration.d.ts.map +1 -1
  116. package/dist/ir-to-client-js/generate-init.d.ts +2 -2
  117. package/dist/ir-to-client-js/generate-init.d.ts.map +1 -1
  118. package/dist/ir-to-client-js/html-template.d.ts +4 -4
  119. package/dist/ir-to-client-js/html-template.d.ts.map +1 -1
  120. package/dist/ir-to-client-js/imports.d.ts +1 -1
  121. package/dist/ir-to-client-js/imports.d.ts.map +1 -1
  122. package/dist/ir-to-client-js/index.d.ts +3 -3
  123. package/dist/ir-to-client-js/index.d.ts.map +1 -1
  124. package/dist/ir-to-client-js/init-declarations.d.ts +2 -2
  125. package/dist/ir-to-client-js/init-declarations.d.ts.map +1 -1
  126. package/dist/ir-to-client-js/phases/conditional-slot-ids.d.ts +1 -1
  127. package/dist/ir-to-client-js/phases/conditional-slot-ids.d.ts.map +1 -1
  128. package/dist/ir-to-client-js/phases/effects-and-on-mounts.d.ts +1 -1
  129. package/dist/ir-to-client-js/phases/effects-and-on-mounts.d.ts.map +1 -1
  130. package/dist/ir-to-client-js/phases/event-handlers.d.ts +1 -1
  131. package/dist/ir-to-client-js/phases/event-handlers.d.ts.map +1 -1
  132. package/dist/ir-to-client-js/phases/init-statements.d.ts +1 -1
  133. package/dist/ir-to-client-js/phases/init-statements.d.ts.map +1 -1
  134. package/dist/ir-to-client-js/phases/props-event-handlers.d.ts +1 -1
  135. package/dist/ir-to-client-js/phases/props-event-handlers.d.ts.map +1 -1
  136. package/dist/ir-to-client-js/phases/props-extraction.d.ts +2 -2
  137. package/dist/ir-to-client-js/phases/props-extraction.d.ts.map +1 -1
  138. package/dist/ir-to-client-js/phases/provider-and-child-inits.d.ts +1 -1
  139. package/dist/ir-to-client-js/phases/provider-and-child-inits.d.ts.map +1 -1
  140. package/dist/ir-to-client-js/phases/ref-callbacks.d.ts +1 -1
  141. package/dist/ir-to-client-js/phases/ref-callbacks.d.ts.map +1 -1
  142. package/dist/ir-to-client-js/phases/rest-attr-applications.d.ts +1 -1
  143. package/dist/ir-to-client-js/phases/rest-attr-applications.d.ts.map +1 -1
  144. package/dist/ir-to-client-js/phases/static-array-child-inits.d.ts +1 -1
  145. package/dist/ir-to-client-js/phases/static-array-child-inits.d.ts.map +1 -1
  146. package/dist/ir-to-client-js/phases.d.ts +3 -3
  147. package/dist/ir-to-client-js/phases.d.ts.map +1 -1
  148. package/dist/ir-to-client-js/plan/build-declaration-emit.d.ts +5 -5
  149. package/dist/ir-to-client-js/plan/build-declaration-emit.d.ts.map +1 -1
  150. package/dist/ir-to-client-js/plan/build-static-array-child-init.d.ts +2 -2
  151. package/dist/ir-to-client-js/plan/build-static-array-child-init.d.ts.map +1 -1
  152. package/dist/ir-to-client-js/plan/static-array-child-init.d.ts +1 -1
  153. package/dist/ir-to-client-js/plan/static-array-child-init.d.ts.map +1 -1
  154. package/dist/ir-to-client-js/prop-handling.d.ts +2 -2
  155. package/dist/ir-to-client-js/prop-handling.d.ts.map +1 -1
  156. package/dist/ir-to-client-js/reactivity.d.ts +2 -2
  157. package/dist/ir-to-client-js/reactivity.d.ts.map +1 -1
  158. package/dist/ir-to-client-js/source-map.d.ts +2 -2
  159. package/dist/ir-to-client-js/source-map.d.ts.map +1 -1
  160. package/dist/ir-to-client-js/stringify/declaration-emit.d.ts +1 -1
  161. package/dist/ir-to-client-js/stringify/declaration-emit.d.ts.map +1 -1
  162. package/dist/ir-to-client-js/stringify/static-array-child-init.d.ts +1 -1
  163. package/dist/ir-to-client-js/stringify/static-array-child-init.d.ts.map +1 -1
  164. package/dist/ir-to-client-js/types.d.ts +7 -7
  165. package/dist/ir-to-client-js/types.d.ts.map +1 -1
  166. package/dist/ir-to-client-js/utils.d.ts +2 -2
  167. package/dist/ir-to-client-js/utils.d.ts.map +1 -1
  168. package/dist/ir-to-client-js/walk-prop-accesses.d.ts +1 -1
  169. package/dist/ir-to-client-js/walk-prop-accesses.d.ts.map +1 -1
  170. package/dist/ir-to-client-js/walker.d.ts +1 -1
  171. package/dist/ir-to-client-js/walker.d.ts.map +1 -1
  172. package/dist/jsx-to-ir.d.ts +2 -2
  173. package/dist/jsx-to-ir.d.ts.map +1 -1
  174. package/dist/module-exports.d.ts +1 -1
  175. package/dist/module-exports.d.ts.map +1 -1
  176. package/dist/preprocess-inline-jsx-callbacks.d.ts +1 -1
  177. package/dist/preprocess-inline-jsx-callbacks.d.ts.map +1 -1
  178. package/dist/relocate.d.ts +3 -3
  179. package/dist/relocate.d.ts.map +1 -1
  180. package/dist/ssr-defaults.d.ts +1 -1
  181. package/dist/ssr-defaults.d.ts.map +1 -1
  182. package/dist/types.d.ts +1 -1
  183. package/dist/types.d.ts.map +1 -1
  184. package/package.json +2 -2
  185. package/src/__tests__/expression-parser.test.ts +30 -1
  186. package/src/adapters/attr-value-emitter.ts +1 -1
  187. package/src/adapters/interface.ts +1 -1
  188. package/src/adapters/ir-node-emitter.ts +1 -1
  189. package/src/adapters/jsx-adapter.ts +3 -3
  190. package/src/adapters/parsed-expr-emitter.ts +1 -1
  191. package/src/adapters/template-imports.ts +1 -1
  192. package/src/adapters/test-adapter.ts +5 -5
  193. package/src/analyzer-context.ts +2 -2
  194. package/src/analyzer.ts +8 -8
  195. package/src/augment-inherited-props.ts +2 -2
  196. package/src/compiler.ts +12 -12
  197. package/src/css-layer-prefixer.ts +1 -1
  198. package/src/debug.ts +7 -7
  199. package/src/errors.ts +2 -2
  200. package/src/expression-parser.ts +27 -0
  201. package/src/free-refs.ts +4 -4
  202. package/src/index.ts +42 -42
  203. package/src/ir-to-client-js/build-references.ts +6 -6
  204. package/src/ir-to-client-js/child-components.ts +2 -2
  205. package/src/ir-to-client-js/collect-elements.ts +14 -14
  206. package/src/ir-to-client-js/compute-inlinability.ts +10 -10
  207. package/src/ir-to-client-js/compute-prop-usage.ts +3 -3
  208. package/src/ir-to-client-js/compute-scope.ts +3 -3
  209. package/src/ir-to-client-js/control-flow/plan/branch-loop.ts +3 -3
  210. package/src/ir-to-client-js/control-flow/plan/build-branch-loop.ts +7 -7
  211. package/src/ir-to-client-js/control-flow/plan/build-component-loop.ts +6 -6
  212. package/src/ir-to-client-js/control-flow/plan/build-composite-loop.ts +7 -7
  213. package/src/ir-to-client-js/control-flow/plan/build-event-delegation.ts +3 -3
  214. package/src/ir-to-client-js/control-flow/plan/build-inner-loop.ts +8 -8
  215. package/src/ir-to-client-js/control-flow/plan/build-insert.ts +4 -4
  216. package/src/ir-to-client-js/control-flow/plan/build-loop-child-arm.ts +7 -7
  217. package/src/ir-to-client-js/control-flow/plan/build-loop.ts +7 -7
  218. package/src/ir-to-client-js/control-flow/plan/build-reactive-effects.ts +8 -8
  219. package/src/ir-to-client-js/control-flow/plan/event-delegation.ts +1 -1
  220. package/src/ir-to-client-js/control-flow/plan/inner-loop.ts +3 -3
  221. package/src/ir-to-client-js/control-flow/plan/insert.ts +3 -3
  222. package/src/ir-to-client-js/control-flow/plan/loop-child-arm.ts +4 -4
  223. package/src/ir-to-client-js/control-flow/plan/loop.ts +4 -4
  224. package/src/ir-to-client-js/control-flow/plan/reactive-effects.ts +2 -2
  225. package/src/ir-to-client-js/control-flow/plan/types.ts +7 -7
  226. package/src/ir-to-client-js/control-flow/shared.ts +8 -8
  227. package/src/ir-to-client-js/control-flow/stringify/branch-loop.ts +6 -6
  228. package/src/ir-to-client-js/control-flow/stringify/component-loop.ts +3 -3
  229. package/src/ir-to-client-js/control-flow/stringify/composite-loop.ts +6 -6
  230. package/src/ir-to-client-js/control-flow/stringify/event-delegation.ts +2 -2
  231. package/src/ir-to-client-js/control-flow/stringify/event-listener.ts +1 -1
  232. package/src/ir-to-client-js/control-flow/stringify/inner-loop.ts +6 -6
  233. package/src/ir-to-client-js/control-flow/stringify/insert.ts +6 -6
  234. package/src/ir-to-client-js/control-flow/stringify/loop-child-arm.ts +6 -6
  235. package/src/ir-to-client-js/control-flow/stringify/loop.ts +7 -7
  236. package/src/ir-to-client-js/control-flow/stringify/reactive-effects.ts +5 -5
  237. package/src/ir-to-client-js/control-flow/stringify/template-parse.ts +1 -1
  238. package/src/ir-to-client-js/control-flow.ts +7 -7
  239. package/src/ir-to-client-js/csr-substitute.ts +3 -3
  240. package/src/ir-to-client-js/declaration-sort.ts +2 -2
  241. package/src/ir-to-client-js/element-refs.ts +3 -3
  242. package/src/ir-to-client-js/emit-module-level.ts +2 -2
  243. package/src/ir-to-client-js/emit-reactive.ts +5 -5
  244. package/src/ir-to-client-js/emit-registration.ts +6 -6
  245. package/src/ir-to-client-js/generate-init.ts +14 -14
  246. package/src/ir-to-client-js/html-template.ts +11 -11
  247. package/src/ir-to-client-js/imports.ts +1 -1
  248. package/src/ir-to-client-js/index.ts +15 -15
  249. package/src/ir-to-client-js/init-declarations.ts +8 -8
  250. package/src/ir-to-client-js/phases/conditional-slot-ids.ts +1 -1
  251. package/src/ir-to-client-js/phases/effects-and-on-mounts.ts +1 -1
  252. package/src/ir-to-client-js/phases/event-handlers.ts +2 -2
  253. package/src/ir-to-client-js/phases/init-statements.ts +1 -1
  254. package/src/ir-to-client-js/phases/props-event-handlers.ts +2 -2
  255. package/src/ir-to-client-js/phases/props-extraction.ts +4 -4
  256. package/src/ir-to-client-js/phases/provider-and-child-inits.ts +3 -3
  257. package/src/ir-to-client-js/phases/ref-callbacks.ts +2 -2
  258. package/src/ir-to-client-js/phases/rest-attr-applications.ts +2 -2
  259. package/src/ir-to-client-js/phases/static-array-child-inits.ts +3 -3
  260. package/src/ir-to-client-js/phases.ts +18 -18
  261. package/src/ir-to-client-js/plan/build-declaration-emit.ts +6 -6
  262. package/src/ir-to-client-js/plan/build-static-array-child-init.ts +7 -7
  263. package/src/ir-to-client-js/plan/static-array-child-init.ts +1 -1
  264. package/src/ir-to-client-js/prop-handling.ts +2 -2
  265. package/src/ir-to-client-js/reactivity.ts +5 -5
  266. package/src/ir-to-client-js/rewrite-props-object.ts +1 -1
  267. package/src/ir-to-client-js/source-map.ts +4 -4
  268. package/src/ir-to-client-js/stringify/declaration-emit.ts +1 -1
  269. package/src/ir-to-client-js/stringify/static-array-child-init.ts +2 -2
  270. package/src/ir-to-client-js/types.ts +6 -6
  271. package/src/ir-to-client-js/utils.ts +4 -4
  272. package/src/ir-to-client-js/walk-prop-accesses.ts +2 -2
  273. package/src/ir-to-client-js/walker.ts +1 -1
  274. package/src/jsx-runtime/index.d.ts +27 -2
  275. package/src/jsx-to-ir.ts +9 -9
  276. package/src/module-exports.ts +1 -1
  277. package/src/preprocess-inline-jsx-callbacks.ts +2 -2
  278. package/src/prop-rewrite.ts +2 -2
  279. package/src/reactivity-checker.ts +1 -1
  280. package/src/relocate.ts +5 -5
  281. package/src/shared-program.ts +1 -1
  282. package/src/ssr-defaults.ts +1 -1
  283. package/src/types.ts +1 -1
@@ -6,7 +6,7 @@
6
6
  * No external dependencies — VLQ encoding is implemented inline.
7
7
  */
8
8
 
9
- import type { SourceLocation } from '../types'
9
+ import type { SourceLocation } from '../types.ts'
10
10
 
11
11
  // =============================================================================
12
12
  // VLQ Base64 Encoding
@@ -217,7 +217,7 @@ export class MappedCodeBuilder {
217
217
  */
218
218
  export function buildSourceMapFromIR(
219
219
  generatedCode: string,
220
- ir: import('../types').ComponentIR,
220
+ ir: import('../types.ts').ComponentIR,
221
221
  generatedFileName: string,
222
222
  ): SourceMapV3 {
223
223
  const gen = new SourceMapGenerator(generatedFileName)
@@ -280,7 +280,7 @@ export function buildSourceMapFromIR(
280
280
  }
281
281
 
282
282
  /** Find the source file path from the IR (first available SourceLocation). */
283
- function findSourceFile(ir: import('../types').ComponentIR): string | null {
283
+ function findSourceFile(ir: import('../types.ts').ComponentIR): string | null {
284
284
  if (ir.root.loc?.file) return ir.root.loc.file
285
285
  for (const s of ir.metadata.signals) {
286
286
  if (s.loc?.file) return s.loc.file
@@ -307,7 +307,7 @@ function indentOf(line: string): number {
307
307
  /** Map event handlers from IR tree to generated code lines. */
308
308
  function mapEventHandlers(
309
309
  lines: string[],
310
- node: import('../types').IRNode,
310
+ node: import('../types.ts').IRNode,
311
311
  gen: SourceMapGenerator,
312
312
  ): void {
313
313
  if (node.type === 'element') {
@@ -29,7 +29,7 @@ import type {
29
29
  FunctionEmitPlan,
30
30
  MemoEmitPlan,
31
31
  SignalEmitPlan,
32
- } from '../plan/declaration-emit'
32
+ } from '../plan/declaration-emit.ts'
33
33
 
34
34
  export function stringifyDeclarationEmit(
35
35
  lines: string[],
@@ -56,8 +56,8 @@ import type {
56
56
  SingleCompInitPlan,
57
57
  StaticArrayChildInitPlan,
58
58
  StaticArrayChildInitsPlan,
59
- } from '../plan/static-array-child-init'
60
- import { nameForRegistryRef } from '../component-scope'
59
+ } from '../plan/static-array-child-init.ts'
60
+ import { nameForRegistryRef } from '../component-scope.ts'
61
61
 
62
62
  export function stringifyStaticArrayChildInits(
63
63
  lines: string[],
@@ -5,7 +5,7 @@
5
5
  import type {
6
6
  TemplatePrimitiveRegistry,
7
7
  TemplateCallAcceptor,
8
- } from '../adapters/interface'
8
+ } from '../adapters/interface.ts'
9
9
  import type {
10
10
  AttrMeta,
11
11
  IREvent,
@@ -19,8 +19,8 @@ import type {
19
19
  ConstantInfo,
20
20
  ParamInfo,
21
21
  CompilerError,
22
- } from '../types'
23
- import type { CsrInlinabilityMap } from './csr-substitute'
22
+ } from '../types.ts'
23
+ import type { CsrInlinabilityMap } from './csr-substitute.ts'
24
24
 
25
25
  export interface ClientJsContext {
26
26
  componentName: string
@@ -218,7 +218,7 @@ export interface LoopCore {
218
218
  * signal accessor instead of a once-captured local. Absent for
219
219
  * simple-name callbacks.
220
220
  */
221
- paramBindings?: readonly import('../types').LoopParamBinding[]
221
+ paramBindings?: readonly import('../types.ts').LoopParamBinding[]
222
222
  /**
223
223
  * Unique id for this loop's `<!--bf-loop:<id>--> ... <!--bf-/loop:<id>-->`
224
224
  * marker pair, threaded from `IRLoop.markerId`. Each `mapArray()` /
@@ -393,7 +393,7 @@ export interface NestedLoop extends LoopCore {
393
393
  /** Whether the inner array references the outer loop param (needs reactive mapArray) */
394
394
  refsOuterParam?: boolean
395
395
  /** Child components inside inner loop items (for initChild/createComponent) */
396
- childComponents?: import('../types').IRLoopChildComponent[]
396
+ childComponents?: import('../types.ts').IRLoopChildComponent[]
397
397
  /** True when this loop is inside a conditional branch (handled by insert() bindEvents instead) */
398
398
  insideConditional?: boolean
399
399
  /** Offset of this loop's items past its preceding container siblings (#1693). */
@@ -452,7 +452,7 @@ export interface LoopChildBranchSummary {
452
452
  * carry raw `props` + `children` — `propsExpr` is built by the emitter
453
453
  * inside the loop's mapArray callback where the loop param is in scope.
454
454
  */
455
- childComponents: Array<{ name: string; slotId: string | null; props: import('../types').IRProp[]; children: import('../types').IRNode[] }>
455
+ childComponents: Array<{ name: string; slotId: string | null; props: import('../types.ts').IRProp[]; children: import('../types.ts').IRNode[] }>
456
456
  /** Inner loops inside the branch that need mapArray setup. */
457
457
  innerLoops?: NestedLoop[]
458
458
  /** Nested conditionals inside the branch (recursive — Path A, #830). */
@@ -4,15 +4,15 @@
4
4
  */
5
5
 
6
6
  import ts from 'typescript'
7
- import type { AttrValue, IRTemplatePart, LoopParamBinding, FreeReference, IRNode } from '../types'
8
- import type { TopLevelLoop, BranchLoop, LoopOffset } from './types'
9
- import { buildLoopChainExpr } from '../loop-chain'
7
+ import type { AttrValue, IRTemplatePart, LoopParamBinding, FreeReference, IRNode } from '../types.ts'
8
+ import type { TopLevelLoop, BranchLoop, LoopOffset } from './types.ts'
9
+ import { buildLoopChainExpr } from '../loop-chain.ts'
10
10
  import {
11
11
  iterateJsTokens,
12
12
  isIdentifierLikeToken,
13
13
  isTriviaKind,
14
14
  replaceInExprContexts,
15
- } from '../scanner/js-scanner'
15
+ } from '../scanner/js-scanner.ts'
16
16
  import {
17
17
  BF_KEY as DATA_KEY,
18
18
  BF_KEY_PREFIX as DATA_KEY_PREFIX,
@@ -19,8 +19,8 @@
19
19
  */
20
20
 
21
21
  import ts from 'typescript'
22
- import type { PropAccessKind } from '../types'
23
- import { extractTemplateExpressions } from './identifiers'
22
+ import type { PropAccessKind } from '../types.ts'
23
+ import { extractTemplateExpressions } from './identifiers.ts'
24
24
 
25
25
  /** Map from prop name → set of access kinds observed across all sources. */
26
26
  export type PropAccessKindMap = Map<string, Set<PropAccessKind>>
@@ -42,7 +42,7 @@ import type {
42
42
  IRIfStatement,
43
43
  IRProvider,
44
44
  IRAsync,
45
- } from '../types'
45
+ } from '../types.ts'
46
46
 
47
47
  /**
48
48
  * Arguments passed to every per-kind visitor callback.
@@ -1,3 +1,24 @@
1
+ // @ts-nocheck — suppress TS2411 in THIS shim only; types stay strong for consumers.
2
+ //
3
+ // `IntrinsicElements` pairs explicitly-typed elements (input, button, svg, …)
4
+ // with a `[tagName: string]: HTMLBaseAttributes` catch-all for unknown tags.
5
+ // TS2411 ("Property 'input' … is not assignable to 'string' index type
6
+ // 'HTMLBaseAttributes'") fires because the per-element types intentionally
7
+ // narrow `ref` to a concrete subtype (`HTMLInputElement`, …) and re-declare
8
+ // event handlers — neither assignable to the `HTMLElement`-typed base under
9
+ // `strictFunctionTypes`. The diagnostic is spurious *for JSX*: a tag name
10
+ // always resolves to its explicit entry, never to the index signature, so the
11
+ // "incompatible index access" TS2411 guards against cannot happen here.
12
+ //
13
+ // `tsc` never surfaced it (the repo builds with `skipLibCheck`), but
14
+ // `deno publish` (JSR) always type-checks `.d.ts` and broke the
15
+ // `@barefootjs/hono` release with 31 of these. We suppress the self-check of
16
+ // this one declarative shim rather than widen the catch-all to
17
+ // `Record<string, any>` — widening would silently drop attribute checking for
18
+ // custom/web-component tags (`<my-widget foo>` would stop erroring). Consumers
19
+ // are unaffected: `@ts-nocheck` only disables errors *within* this file; its
20
+ // declarations (and their full strictness) still apply at every use site.
21
+ //
1
22
  /**
2
23
  * BarefootJS JSX Runtime - Type Definitions Only
3
24
  *
@@ -24,7 +45,7 @@ import type {
24
45
  SVGBaseAttributes,
25
46
  SVGPresentationAttributes,
26
47
  SVGMarkerReferenceAttributes,
27
- } from '../html-types'
48
+ } from '../html-types.ts'
28
49
 
29
50
  // Stub function types (for type checking only - no runtime implementation)
30
51
  export declare const jsx: (
@@ -324,7 +345,11 @@ export declare namespace JSX {
324
345
  ref?: (element: SVGForeignObjectElement) => void
325
346
  }
326
347
 
327
- // Allow any other elements
348
+ // Catch-all for any other (custom / unknown) element. Typed as
349
+ // `HTMLBaseAttributes` so unknown tags (e.g. web components) still get
350
+ // base-attribute checking instead of `any`. See the file-level
351
+ // `@ts-nocheck` note for why this trips TS2411 under `deno publish` and
352
+ // why suppressing it (rather than widening to `any`) is correct.
328
353
  [tagName: string]: HTMLBaseAttributes
329
354
  }
330
355
  }
package/src/jsx-to-ir.ts CHANGED
@@ -31,18 +31,18 @@ import {
31
31
  type OriginInfo,
32
32
  isReactiveOrigin,
33
33
  AttrValueOf,
34
- } from './types'
35
- import { type AnalyzerContext, type MultiReturnJsxInfo, getSourceLocation } from './analyzer-context'
36
- import { parseExpression, isSupported, parseBlockBody, extractSortComparatorFromTS, type ParsedExpr, type ParsedStatement, type SortComparator } from './expression-parser'
37
- import { createError, ErrorCodes, internalInvariant } from './errors'
38
- import { containsReactiveExpression } from './reactivity-checker'
34
+ } from './types.ts'
35
+ import { type AnalyzerContext, type MultiReturnJsxInfo, getSourceLocation } from './analyzer-context.ts'
36
+ import { parseExpression, isSupported, parseBlockBody, extractSortComparatorFromTS, type ParsedExpr, type ParsedStatement, type SortComparator } from './expression-parser.ts'
37
+ import { createError, ErrorCodes, internalInvariant } from './errors.ts'
38
+ import { containsReactiveExpression } from './reactivity-checker.ts'
39
39
  import {
40
40
  rewriteBarePropRefs as rewriteBarePropRefsCore,
41
41
  collectAstPropRefs,
42
- } from './prop-rewrite'
43
- import { resolveFreeRefs, type BindingEnvironment } from './free-refs'
44
- import { extractFreeIdentifiersFromNode, initializerShapeContainsJsx } from './analyzer'
45
- import { iterateJsTokens, replaceInExprContexts } from './scanner/js-scanner'
42
+ } from './prop-rewrite.ts'
43
+ import { resolveFreeRefs, type BindingEnvironment } from './free-refs.ts'
44
+ import { extractFreeIdentifiersFromNode, initializerShapeContainsJsx } from './analyzer.ts'
45
+ import { iterateJsTokens, replaceInExprContexts } from './scanner/js-scanner.ts'
46
46
 
47
47
  // =============================================================================
48
48
  // Transform Context
@@ -5,7 +5,7 @@
5
5
  * This is a compiler-layer concern, not adapter-specific.
6
6
  */
7
7
 
8
- import type { ComponentIR, ParamInfo } from './types'
8
+ import type { ComponentIR, ParamInfo } from './types.ts'
9
9
 
10
10
  /**
11
11
  * Emit module-level exports for local declarations and `export { ... } [from '...']`
@@ -31,8 +31,8 @@
31
31
  */
32
32
 
33
33
  import ts from 'typescript'
34
- import type { CompilerError, SourceLocation } from './types'
35
- import { ErrorCodes, createError } from './errors'
34
+ import type { CompilerError, SourceLocation } from './types.ts'
35
+ import { ErrorCodes, createError } from './errors.ts'
36
36
 
37
37
  export interface PreprocessResult {
38
38
  /** Source after rewriting; identical to the input when no inline arrows are found. */
@@ -7,8 +7,8 @@
7
7
  */
8
8
 
9
9
  import ts from 'typescript'
10
- import { PROPS_PARAM } from './ir-to-client-js/utils'
11
- import { createTemplateAwareStringProtector } from './ir-to-client-js/html-template'
10
+ import { PROPS_PARAM } from './ir-to-client-js/utils.ts'
11
+ import { createTemplateAwareStringProtector } from './ir-to-client-js/html-template.ts'
12
12
 
13
13
  /**
14
14
  * Walk an AST node for destructured-prop value references and add
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import ts from 'typescript'
14
- import { incrementCounter } from './instrumentation'
14
+ import { incrementCounter } from './instrumentation.ts'
15
15
 
16
16
  const REACTIVE_BRAND = '__reactive'
17
17
 
package/src/relocate.ts CHANGED
@@ -11,14 +11,14 @@
11
11
  */
12
12
 
13
13
  import ts from 'typescript'
14
- import type { Scope, BindingKind, IRMetadata } from './types'
15
- import { isVisibleIn } from './types'
16
- import type { AnalyzerContext } from './analyzer-context'
17
- import { PROPS_PARAM } from './ir-to-client-js/utils'
14
+ import type { Scope, BindingKind, IRMetadata } from './types.ts'
15
+ import { isVisibleIn } from './types.ts'
16
+ import type { AnalyzerContext } from './analyzer-context.ts'
17
+ import { PROPS_PARAM } from './ir-to-client-js/utils.ts'
18
18
  import type {
19
19
  TemplatePrimitiveRegistry,
20
20
  TemplateCallAcceptor,
21
- } from './adapters/interface'
21
+ } from './adapters/interface.ts'
22
22
 
23
23
  export interface RelocateEnv {
24
24
  /**
@@ -26,7 +26,7 @@
26
26
  */
27
27
 
28
28
  import ts from 'typescript'
29
- import path from 'path'
29
+ import path from 'node:path'
30
30
 
31
31
  export interface SharedProgramOptions {
32
32
  /** Override baseUrl for module resolution. Defaults to common parent of files. */
@@ -30,7 +30,7 @@
30
30
  // `undef`, which Mojo renders as empty string).
31
31
 
32
32
  import ts from 'typescript'
33
- import type { IRMetadata } from './types'
33
+ import type { IRMetadata } from './types.ts'
34
34
 
35
35
  /**
36
36
  * A single template-variable default. Keyed in the manifest by the
package/src/types.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * JSX-independent intermediate representation for multi-backend support.
5
5
  */
6
6
 
7
- import type { ParsedExpr, ParsedStatement, SortComparator } from './expression-parser'
7
+ import type { ParsedExpr, ParsedStatement, SortComparator } from './expression-parser.ts'
8
8
 
9
9
  // =============================================================================
10
10
  // Source Location (for Error Reporting)