@number10/jsx-core 5.0.0

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 (340) hide show
  1. package/LICENSE +667 -0
  2. package/README.md +38 -0
  3. package/dist/animation/animated-signal.cjs +19 -0
  4. package/dist/animation/animated-signal.cjs.map +1 -0
  5. package/dist/animation/animated-signal.d.ts +35 -0
  6. package/dist/animation/animated-signal.d.ts.map +1 -0
  7. package/dist/animation/animated-signal.js +19 -0
  8. package/dist/animation/animated-signal.js.map +1 -0
  9. package/dist/animation/create-spring.cjs +80 -0
  10. package/dist/animation/create-spring.cjs.map +1 -0
  11. package/dist/animation/create-spring.d.ts +56 -0
  12. package/dist/animation/create-spring.d.ts.map +1 -0
  13. package/dist/animation/create-spring.js +80 -0
  14. package/dist/animation/create-spring.js.map +1 -0
  15. package/dist/animation/easing.cjs +76 -0
  16. package/dist/animation/easing.cjs.map +1 -0
  17. package/dist/animation/easing.d.ts +45 -0
  18. package/dist/animation/easing.d.ts.map +1 -0
  19. package/dist/animation/easing.js +76 -0
  20. package/dist/animation/easing.js.map +1 -0
  21. package/dist/animation/effect-definitions.cjs +441 -0
  22. package/dist/animation/effect-definitions.cjs.map +1 -0
  23. package/dist/animation/effect-definitions.d.ts +60 -0
  24. package/dist/animation/effect-definitions.d.ts.map +1 -0
  25. package/dist/animation/effect-definitions.js +441 -0
  26. package/dist/animation/effect-definitions.js.map +1 -0
  27. package/dist/animation/effect-engine.cjs +189 -0
  28. package/dist/animation/effect-engine.cjs.map +1 -0
  29. package/dist/animation/effect-engine.d.ts +70 -0
  30. package/dist/animation/effect-engine.d.ts.map +1 -0
  31. package/dist/animation/effect-engine.js +189 -0
  32. package/dist/animation/effect-engine.js.map +1 -0
  33. package/dist/animation/index.d.ts +24 -0
  34. package/dist/animation/index.d.ts.map +1 -0
  35. package/dist/animation/spring-physics.cjs +94 -0
  36. package/dist/animation/spring-physics.cjs.map +1 -0
  37. package/dist/animation/spring-physics.d.ts +145 -0
  38. package/dist/animation/spring-physics.d.ts.map +1 -0
  39. package/dist/animation/spring-physics.js +94 -0
  40. package/dist/animation/spring-physics.js.map +1 -0
  41. package/dist/animation/tween.cjs +67 -0
  42. package/dist/animation/tween.cjs.map +1 -0
  43. package/dist/animation/tween.d.ts +60 -0
  44. package/dist/animation/tween.d.ts.map +1 -0
  45. package/dist/animation/tween.js +67 -0
  46. package/dist/animation/tween.js.map +1 -0
  47. package/dist/animation/types.d.ts +31 -0
  48. package/dist/animation/types.d.ts.map +1 -0
  49. package/dist/animation/useSpring.cjs +152 -0
  50. package/dist/animation/useSpring.cjs.map +1 -0
  51. package/dist/animation/useSpring.d.ts +55 -0
  52. package/dist/animation/useSpring.d.ts.map +1 -0
  53. package/dist/animation/useSpring.js +149 -0
  54. package/dist/animation/useSpring.js.map +1 -0
  55. package/dist/animation/useTween.cjs +208 -0
  56. package/dist/animation/useTween.cjs.map +1 -0
  57. package/dist/animation/useTween.d.ts +116 -0
  58. package/dist/animation/useTween.d.ts.map +1 -0
  59. package/dist/animation/useTween.js +208 -0
  60. package/dist/animation/useTween.js.map +1 -0
  61. package/dist/border-geometry.cjs +447 -0
  62. package/dist/border-geometry.cjs.map +1 -0
  63. package/dist/border-geometry.d.ts +114 -0
  64. package/dist/border-geometry.d.ts.map +1 -0
  65. package/dist/border-geometry.js +447 -0
  66. package/dist/border-geometry.js.map +1 -0
  67. package/dist/colors/color-presets.cjs +236 -0
  68. package/dist/colors/color-presets.cjs.map +1 -0
  69. package/dist/colors/color-presets.d.ts +89 -0
  70. package/dist/colors/color-presets.d.ts.map +1 -0
  71. package/dist/colors/color-presets.js +236 -0
  72. package/dist/colors/color-presets.js.map +1 -0
  73. package/dist/colors/color-theme-helpers.cjs +32 -0
  74. package/dist/colors/color-theme-helpers.cjs.map +1 -0
  75. package/dist/colors/color-theme-helpers.d.ts +65 -0
  76. package/dist/colors/color-theme-helpers.d.ts.map +1 -0
  77. package/dist/colors/color-theme-helpers.js +32 -0
  78. package/dist/colors/color-theme-helpers.js.map +1 -0
  79. package/dist/colors/color-types.cjs +38 -0
  80. package/dist/colors/color-types.cjs.map +1 -0
  81. package/dist/colors/color-types.d.ts +112 -0
  82. package/dist/colors/color-types.d.ts.map +1 -0
  83. package/dist/colors/color-types.js +38 -0
  84. package/dist/colors/color-types.js.map +1 -0
  85. package/dist/colors/color-utils.cjs +197 -0
  86. package/dist/colors/color-utils.cjs.map +1 -0
  87. package/dist/colors/color-utils.d.ts +216 -0
  88. package/dist/colors/color-utils.d.ts.map +1 -0
  89. package/dist/colors/color-utils.js +197 -0
  90. package/dist/colors/color-utils.js.map +1 -0
  91. package/dist/colors/contrast-contracts.cjs +265 -0
  92. package/dist/colors/contrast-contracts.cjs.map +1 -0
  93. package/dist/colors/contrast-contracts.d.ts +289 -0
  94. package/dist/colors/contrast-contracts.d.ts.map +1 -0
  95. package/dist/colors/contrast-contracts.js +265 -0
  96. package/dist/colors/contrast-contracts.js.map +1 -0
  97. package/dist/colors/index.cjs +55 -0
  98. package/dist/colors/index.cjs.map +1 -0
  99. package/dist/colors/index.d.ts +16 -0
  100. package/dist/colors/index.d.ts.map +1 -0
  101. package/dist/colors/index.js +55 -0
  102. package/dist/colors/index.js.map +1 -0
  103. package/dist/core-props.cjs +66 -0
  104. package/dist/core-props.cjs.map +1 -0
  105. package/dist/core-props.d.ts +395 -0
  106. package/dist/core-props.d.ts.map +1 -0
  107. package/dist/core-props.js +66 -0
  108. package/dist/core-props.js.map +1 -0
  109. package/dist/design-tokens/design-token-presets.cjs +91 -0
  110. package/dist/design-tokens/design-token-presets.cjs.map +1 -0
  111. package/dist/design-tokens/design-token-presets.d.ts +34 -0
  112. package/dist/design-tokens/design-token-presets.d.ts.map +1 -0
  113. package/dist/design-tokens/design-token-presets.js +91 -0
  114. package/dist/design-tokens/design-token-presets.js.map +1 -0
  115. package/dist/design-tokens/design-token-types.d.ts +97 -0
  116. package/dist/design-tokens/design-token-types.d.ts.map +1 -0
  117. package/dist/design-tokens/index.cjs +10 -0
  118. package/dist/design-tokens/index.cjs.map +1 -0
  119. package/dist/design-tokens/index.d.ts +9 -0
  120. package/dist/design-tokens/index.d.ts.map +1 -0
  121. package/dist/design-tokens/index.js +10 -0
  122. package/dist/design-tokens/index.js.map +1 -0
  123. package/dist/dev-config.cjs +296 -0
  124. package/dist/dev-config.cjs.map +1 -0
  125. package/dist/dev-config.d.ts +238 -0
  126. package/dist/dev-config.d.ts.map +1 -0
  127. package/dist/dev-config.js +296 -0
  128. package/dist/dev-config.js.map +1 -0
  129. package/dist/effects.cjs +69 -0
  130. package/dist/effects.cjs.map +1 -0
  131. package/dist/effects.d.ts +152 -0
  132. package/dist/effects.d.ts.map +1 -0
  133. package/dist/effects.js +69 -0
  134. package/dist/effects.js.map +1 -0
  135. package/dist/global-registry.cjs +25 -0
  136. package/dist/global-registry.cjs.map +1 -0
  137. package/dist/global-registry.d.ts +19 -0
  138. package/dist/global-registry.d.ts.map +1 -0
  139. package/dist/global-registry.js +25 -0
  140. package/dist/global-registry.js.map +1 -0
  141. package/dist/hooks.cjs +378 -0
  142. package/dist/hooks.cjs.map +1 -0
  143. package/dist/hooks.d.ts +322 -0
  144. package/dist/hooks.d.ts.map +1 -0
  145. package/dist/hooks.js +378 -0
  146. package/dist/hooks.js.map +1 -0
  147. package/dist/host-adapter.d.ts +414 -0
  148. package/dist/host-adapter.d.ts.map +1 -0
  149. package/dist/index.cjs +229 -0
  150. package/dist/index.cjs.map +1 -0
  151. package/dist/index.d.ts +32 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +226 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/jsx-dev-runtime.cjs +10 -0
  156. package/dist/jsx-dev-runtime.cjs.map +1 -0
  157. package/dist/jsx-dev-runtime.d.ts +5 -0
  158. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  159. package/dist/jsx-dev-runtime.js +11 -0
  160. package/dist/jsx-dev-runtime.js.map +1 -0
  161. package/dist/jsx-runtime.cjs +44 -0
  162. package/dist/jsx-runtime.cjs.map +1 -0
  163. package/dist/jsx-runtime.d.ts +24 -0
  164. package/dist/jsx-runtime.d.ts.map +1 -0
  165. package/dist/jsx-runtime.js +44 -0
  166. package/dist/jsx-runtime.js.map +1 -0
  167. package/dist/jsx-types.d.ts +25 -0
  168. package/dist/jsx-types.d.ts.map +1 -0
  169. package/dist/layout/appliers/container-applier.cjs +20 -0
  170. package/dist/layout/appliers/container-applier.cjs.map +1 -0
  171. package/dist/layout/appliers/container-applier.d.ts +9 -0
  172. package/dist/layout/appliers/container-applier.d.ts.map +1 -0
  173. package/dist/layout/appliers/container-applier.js +20 -0
  174. package/dist/layout/appliers/container-applier.js.map +1 -0
  175. package/dist/layout/appliers/position-applier.cjs +31 -0
  176. package/dist/layout/appliers/position-applier.cjs.map +1 -0
  177. package/dist/layout/appliers/position-applier.d.ts +8 -0
  178. package/dist/layout/appliers/position-applier.d.ts.map +1 -0
  179. package/dist/layout/appliers/position-applier.js +31 -0
  180. package/dist/layout/appliers/position-applier.js.map +1 -0
  181. package/dist/layout/layout-engine-test-utils.d.ts +26 -0
  182. package/dist/layout/layout-engine-test-utils.d.ts.map +1 -0
  183. package/dist/layout/layout-engine.cjs +628 -0
  184. package/dist/layout/layout-engine.cjs.map +1 -0
  185. package/dist/layout/layout-engine.d.ts +140 -0
  186. package/dist/layout/layout-engine.d.ts.map +1 -0
  187. package/dist/layout/layout-engine.js +628 -0
  188. package/dist/layout/layout-engine.js.map +1 -0
  189. package/dist/layout/strategies/base-strategy.cjs +31 -0
  190. package/dist/layout/strategies/base-strategy.cjs.map +1 -0
  191. package/dist/layout/strategies/base-strategy.d.ts +59 -0
  192. package/dist/layout/strategies/base-strategy.d.ts.map +1 -0
  193. package/dist/layout/strategies/base-strategy.js +31 -0
  194. package/dist/layout/strategies/base-strategy.js.map +1 -0
  195. package/dist/layout/strategies/column-layout.cjs +145 -0
  196. package/dist/layout/strategies/column-layout.cjs.map +1 -0
  197. package/dist/layout/strategies/column-layout.d.ts +38 -0
  198. package/dist/layout/strategies/column-layout.d.ts.map +1 -0
  199. package/dist/layout/strategies/column-layout.js +145 -0
  200. package/dist/layout/strategies/column-layout.js.map +1 -0
  201. package/dist/layout/strategies/row-layout.cjs +145 -0
  202. package/dist/layout/strategies/row-layout.cjs.map +1 -0
  203. package/dist/layout/strategies/row-layout.d.ts +38 -0
  204. package/dist/layout/strategies/row-layout.d.ts.map +1 -0
  205. package/dist/layout/strategies/row-layout.js +145 -0
  206. package/dist/layout/strategies/row-layout.js.map +1 -0
  207. package/dist/layout/strategies/stack-layout.cjs +94 -0
  208. package/dist/layout/strategies/stack-layout.cjs.map +1 -0
  209. package/dist/layout/strategies/stack-layout.d.ts +30 -0
  210. package/dist/layout/strategies/stack-layout.d.ts.map +1 -0
  211. package/dist/layout/strategies/stack-layout.js +94 -0
  212. package/dist/layout/strategies/stack-layout.js.map +1 -0
  213. package/dist/layout/types.d.ts +134 -0
  214. package/dist/layout/types.d.ts.map +1 -0
  215. package/dist/layout/utils/child-utils.cjs +129 -0
  216. package/dist/layout/utils/child-utils.cjs.map +1 -0
  217. package/dist/layout/utils/child-utils.d.ts +54 -0
  218. package/dist/layout/utils/child-utils.d.ts.map +1 -0
  219. package/dist/layout/utils/child-utils.js +129 -0
  220. package/dist/layout/utils/child-utils.js.map +1 -0
  221. package/dist/layout/utils/dimension-calculator.cjs +109 -0
  222. package/dist/layout/utils/dimension-calculator.cjs.map +1 -0
  223. package/dist/layout/utils/dimension-calculator.d.ts +59 -0
  224. package/dist/layout/utils/dimension-calculator.d.ts.map +1 -0
  225. package/dist/layout/utils/dimension-calculator.js +109 -0
  226. package/dist/layout/utils/dimension-calculator.js.map +1 -0
  227. package/dist/layout/utils/flex-distributor.cjs +173 -0
  228. package/dist/layout/utils/flex-distributor.cjs.map +1 -0
  229. package/dist/layout/utils/flex-distributor.d.ts +18 -0
  230. package/dist/layout/utils/flex-distributor.d.ts.map +1 -0
  231. package/dist/layout/utils/flex-distributor.js +173 -0
  232. package/dist/layout/utils/flex-distributor.js.map +1 -0
  233. package/dist/layout/utils/size-resolver.cjs +280 -0
  234. package/dist/layout/utils/size-resolver.cjs.map +1 -0
  235. package/dist/layout/utils/size-resolver.d.ts +84 -0
  236. package/dist/layout/utils/size-resolver.d.ts.map +1 -0
  237. package/dist/layout/utils/size-resolver.js +280 -0
  238. package/dist/layout/utils/size-resolver.js.map +1 -0
  239. package/dist/layout/utils/spacing-calculator.cjs +50 -0
  240. package/dist/layout/utils/spacing-calculator.cjs.map +1 -0
  241. package/dist/layout/utils/spacing-calculator.d.ts +27 -0
  242. package/dist/layout/utils/spacing-calculator.d.ts.map +1 -0
  243. package/dist/layout/utils/spacing-calculator.js +50 -0
  244. package/dist/layout/utils/spacing-calculator.js.map +1 -0
  245. package/dist/memo.cjs +18 -0
  246. package/dist/memo.cjs.map +1 -0
  247. package/dist/memo.d.ts +29 -0
  248. package/dist/memo.d.ts.map +1 -0
  249. package/dist/memo.js +18 -0
  250. package/dist/memo.js.map +1 -0
  251. package/dist/nineslice-contract.cjs +60 -0
  252. package/dist/nineslice-contract.cjs.map +1 -0
  253. package/dist/nineslice-contract.d.ts +107 -0
  254. package/dist/nineslice-contract.d.ts.map +1 -0
  255. package/dist/nineslice-contract.js +60 -0
  256. package/dist/nineslice-contract.js.map +1 -0
  257. package/dist/placeholder.cjs +12 -0
  258. package/dist/placeholder.cjs.map +1 -0
  259. package/dist/placeholder.d.ts +44 -0
  260. package/dist/placeholder.d.ts.map +1 -0
  261. package/dist/placeholder.js +12 -0
  262. package/dist/placeholder.js.map +1 -0
  263. package/dist/portal.cjs +89 -0
  264. package/dist/portal.cjs.map +1 -0
  265. package/dist/portal.d.ts +62 -0
  266. package/dist/portal.d.ts.map +1 -0
  267. package/dist/portal.js +89 -0
  268. package/dist/portal.js.map +1 -0
  269. package/dist/primitive-contracts.cjs +12 -0
  270. package/dist/primitive-contracts.cjs.map +1 -0
  271. package/dist/primitive-contracts.d.ts +186 -0
  272. package/dist/primitive-contracts.d.ts.map +1 -0
  273. package/dist/primitive-contracts.js +12 -0
  274. package/dist/primitive-contracts.js.map +1 -0
  275. package/dist/theme.cjs +332 -0
  276. package/dist/theme.cjs.map +1 -0
  277. package/dist/theme.d.ts +204 -0
  278. package/dist/theme.d.ts.map +1 -0
  279. package/dist/theme.js +332 -0
  280. package/dist/theme.js.map +1 -0
  281. package/dist/types.d.ts +86 -0
  282. package/dist/types.d.ts.map +1 -0
  283. package/dist/vdom/create-runtime.cjs +79 -0
  284. package/dist/vdom/create-runtime.cjs.map +1 -0
  285. package/dist/vdom/create-runtime.d.ts +7 -0
  286. package/dist/vdom/create-runtime.d.ts.map +1 -0
  287. package/dist/vdom/create-runtime.js +79 -0
  288. package/dist/vdom/create-runtime.js.map +1 -0
  289. package/dist/vdom/index.cjs +8 -0
  290. package/dist/vdom/index.cjs.map +1 -0
  291. package/dist/vdom/index.d.ts +4 -0
  292. package/dist/vdom/index.d.ts.map +1 -0
  293. package/dist/vdom/index.js +8 -0
  294. package/dist/vdom/index.js.map +1 -0
  295. package/dist/vdom/mount.cjs +161 -0
  296. package/dist/vdom/mount.cjs.map +1 -0
  297. package/dist/vdom/mount.d.ts +6 -0
  298. package/dist/vdom/mount.d.ts.map +1 -0
  299. package/dist/vdom/mount.js +161 -0
  300. package/dist/vdom/mount.js.map +1 -0
  301. package/dist/vdom/patch.cjs +163 -0
  302. package/dist/vdom/patch.cjs.map +1 -0
  303. package/dist/vdom/patch.d.ts +3 -0
  304. package/dist/vdom/patch.d.ts.map +1 -0
  305. package/dist/vdom/patch.js +163 -0
  306. package/dist/vdom/patch.js.map +1 -0
  307. package/dist/vdom/registry.cjs +85 -0
  308. package/dist/vdom/registry.cjs.map +1 -0
  309. package/dist/vdom/registry.d.ts +28 -0
  310. package/dist/vdom/registry.d.ts.map +1 -0
  311. package/dist/vdom/registry.js +85 -0
  312. package/dist/vdom/registry.js.map +1 -0
  313. package/dist/vdom/runtime-helpers.cjs +23 -0
  314. package/dist/vdom/runtime-helpers.cjs.map +1 -0
  315. package/dist/vdom/runtime-helpers.d.ts +8 -0
  316. package/dist/vdom/runtime-helpers.d.ts.map +1 -0
  317. package/dist/vdom/runtime-helpers.js +23 -0
  318. package/dist/vdom/runtime-helpers.js.map +1 -0
  319. package/dist/vdom/surface.cjs +107 -0
  320. package/dist/vdom/surface.cjs.map +1 -0
  321. package/dist/vdom/surface.d.ts +9 -0
  322. package/dist/vdom/surface.d.ts.map +1 -0
  323. package/dist/vdom/surface.js +107 -0
  324. package/dist/vdom/surface.js.map +1 -0
  325. package/dist/vdom/types.d.ts +104 -0
  326. package/dist/vdom/types.d.ts.map +1 -0
  327. package/dist/vdom/utils.cjs +146 -0
  328. package/dist/vdom/utils.cjs.map +1 -0
  329. package/dist/vdom/utils.d.ts +24 -0
  330. package/dist/vdom/utils.d.ts.map +1 -0
  331. package/dist/vdom/utils.js +146 -0
  332. package/dist/vdom/utils.js.map +1 -0
  333. package/dist/vdom.d.ts +4 -0
  334. package/dist/vdom.d.ts.map +1 -0
  335. package/dist/vector-draw-context.d.ts +63 -0
  336. package/dist/vector-draw-context.d.ts.map +1 -0
  337. package/package.json +161 -0
  338. package/vdom/index.cjs +1 -0
  339. package/vdom/index.d.ts +1 -0
  340. package/vdom/index.js +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-token-presets.d.ts","sourceRoot":"","sources":["../../src/design-tokens/design-token-presets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAOjC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CA+CxE;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAAkD,CAAA;AAEvF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAQpE"}
@@ -0,0 +1,91 @@
1
+ const defaultSpacingTokens = {
2
+ xs: 4,
3
+ sm: 8,
4
+ md: 16,
5
+ lg: 24,
6
+ xl: 32,
7
+ xxl: 48
8
+ };
9
+ const defaultSizeTokens = {
10
+ xs: 16,
11
+ sm: 24,
12
+ md: 32,
13
+ lg: 48,
14
+ xl: 64,
15
+ xxl: 96
16
+ };
17
+ const defaultRadiusTokens = {
18
+ none: 0,
19
+ sm: 4,
20
+ md: 8,
21
+ lg: 16,
22
+ xl: 24,
23
+ xxl: 48
24
+ };
25
+ function createTextStyleTokens(textColor) {
26
+ return {
27
+ DEFAULT: {
28
+ fontSize: "16px",
29
+ color: textColor,
30
+ fontFamily: "Arial",
31
+ align: "left"
32
+ },
33
+ small: {
34
+ fontSize: "12px",
35
+ color: textColor,
36
+ fontFamily: "Arial",
37
+ align: "left"
38
+ },
39
+ medium: {
40
+ fontSize: "16px",
41
+ color: textColor,
42
+ fontFamily: "Arial",
43
+ align: "left"
44
+ },
45
+ large: {
46
+ fontSize: "20px",
47
+ color: textColor,
48
+ fontFamily: "Arial",
49
+ align: "left"
50
+ },
51
+ title: {
52
+ fontSize: "28px",
53
+ color: textColor,
54
+ fontFamily: "Arial",
55
+ fontStyle: "bold",
56
+ align: "left"
57
+ },
58
+ heading: {
59
+ fontSize: "36px",
60
+ color: textColor,
61
+ fontFamily: "Arial",
62
+ fontStyle: "bold",
63
+ align: "left"
64
+ },
65
+ caption: {
66
+ fontSize: "10px",
67
+ color: textColor,
68
+ fontFamily: "Arial",
69
+ align: "left"
70
+ }
71
+ };
72
+ }
73
+ const defaultTextStyleTokens = createTextStyleTokens("#ffffff");
74
+ function createDesignTokens(preset) {
75
+ return {
76
+ colors: preset.colors,
77
+ textStyles: createTextStyleTokens(preset.colors.text.DEFAULT.toString()),
78
+ spacing: defaultSpacingTokens,
79
+ sizes: defaultSizeTokens,
80
+ radius: defaultRadiusTokens
81
+ };
82
+ }
83
+ export {
84
+ createDesignTokens,
85
+ createTextStyleTokens,
86
+ defaultRadiusTokens,
87
+ defaultSizeTokens,
88
+ defaultSpacingTokens,
89
+ defaultTextStyleTokens
90
+ };
91
+ //# sourceMappingURL=design-token-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-token-presets.js","sources":["../../src/design-tokens/design-token-presets.ts"],"sourcesContent":["/**\n * Default design token presets\n * Provides sensible defaults for text styles, spacing, sizes, and radius,\n * plus factory functions to create complete DesignTokens from color presets.\n */\nimport type { ColorPreset } from '../colors/color-presets'\nimport type {\n DesignTokens,\n RadiusTokens,\n SizeTokens,\n SpacingTokens,\n TextStyleTokens,\n} from './design-token-types'\n\n/**\n * Default spacing scale\n * Based on 4px base unit\n */\nexport const defaultSpacingTokens: SpacingTokens = {\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32,\n xxl: 48,\n}\n\n/**\n * Default size scale\n * For width, height, icon sizes, etc.\n */\nexport const defaultSizeTokens: SizeTokens = {\n xs: 16,\n sm: 24,\n md: 32,\n lg: 48,\n xl: 64,\n xxl: 96,\n}\n\n/**\n * Default border radius scale\n */\nexport const defaultRadiusTokens: RadiusTokens = {\n none: 0,\n sm: 4,\n md: 8,\n lg: 16,\n xl: 24,\n xxl: 48,\n}\n\n/**\n * Create text style tokens with the given base text color\n * @param textColor - Base text color (hex string)\n * @returns TextStyleTokens with color applied\n */\nexport function createTextStyleTokens(textColor: string): TextStyleTokens {\n return {\n DEFAULT: {\n fontSize: '16px',\n color: textColor,\n fontFamily: 'Arial',\n align: 'left',\n },\n small: {\n fontSize: '12px',\n color: textColor,\n fontFamily: 'Arial',\n align: 'left',\n },\n medium: {\n fontSize: '16px',\n color: textColor,\n fontFamily: 'Arial',\n align: 'left',\n },\n large: {\n fontSize: '20px',\n color: textColor,\n fontFamily: 'Arial',\n align: 'left',\n },\n title: {\n fontSize: '28px',\n color: textColor,\n fontFamily: 'Arial',\n fontStyle: 'bold',\n align: 'left',\n },\n heading: {\n fontSize: '36px',\n color: textColor,\n fontFamily: 'Arial',\n fontStyle: 'bold',\n align: 'left',\n },\n caption: {\n fontSize: '10px',\n color: textColor,\n fontFamily: 'Arial',\n align: 'left',\n },\n }\n}\n\n/**\n * Default text style tokens (white text)\n */\nexport const defaultTextStyleTokens: TextStyleTokens = createTextStyleTokens('#ffffff')\n\n/**\n * Create complete design tokens from a color preset.\n * Combines colors with default text styles, spacing, sizes, and radius tokens.\n * @param preset - Color preset (e.g., oceanBluePreset)\n * @returns Complete DesignTokens object\n */\nexport function createDesignTokens(preset: ColorPreset): DesignTokens {\n return {\n colors: preset.colors,\n textStyles: createTextStyleTokens(preset.colors.text.DEFAULT.toString()),\n spacing: defaultSpacingTokens,\n sizes: defaultSizeTokens,\n radius: defaultRadiusTokens,\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,uBAAsC;AAAA,EACjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AACP;AAMO,MAAM,oBAAgC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AACP;AAKO,MAAM,sBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AACP;AAOO,SAAS,sBAAsB,WAAoC;AACxE,SAAO;AAAA,IACL,SAAS;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,SAAS;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,SAAS;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAKO,MAAM,yBAA0C,sBAAsB,SAAS;AAQ/E,SAAS,mBAAmB,QAAmC;AACpE,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf,YAAY,sBAAsB,OAAO,OAAO,KAAK,QAAQ,UAAU;AAAA,IACvE,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAEZ;"}
@@ -0,0 +1,97 @@
1
+ import { ColorTokens } from '../colors/color-types';
2
+ import { PortableTextStyle } from '../primitive-contracts';
3
+ /**
4
+ * Text style preset token — compatible with PortableTextStyle.
5
+ */
6
+ export type TextStyleToken = PortableTextStyle;
7
+ /**
8
+ * Text style tokens for different use cases
9
+ * Provides semantic presets for common text styles
10
+ */
11
+ export interface TextStyleTokens {
12
+ /** Default text style - base body text (16px) */
13
+ DEFAULT: TextStyleToken;
14
+ /** Small text - captions, labels (12px) */
15
+ small: TextStyleToken;
16
+ /** Medium text - body, paragraphs (16px) */
17
+ medium: TextStyleToken;
18
+ /** Large text - subheadings, emphasis (20px) */
19
+ large: TextStyleToken;
20
+ /** Title text - section titles (28px) */
21
+ title: TextStyleToken;
22
+ /** Heading text - page headings (36px) */
23
+ heading: TextStyleToken;
24
+ /** Caption text - footnotes, metadata (10px, reduced opacity) */
25
+ caption: TextStyleToken;
26
+ }
27
+ /**
28
+ * Spacing scale tokens
29
+ * Consistent spacing values for padding, margin, gaps
30
+ */
31
+ export interface SpacingTokens {
32
+ /** Extra small - 4px */
33
+ xs: number;
34
+ /** Small - 8px */
35
+ sm: number;
36
+ /** Medium - 16px */
37
+ md: number;
38
+ /** Large - 24px */
39
+ lg: number;
40
+ /** Extra large - 32px */
41
+ xl: number;
42
+ /** Extra extra large - 48px */
43
+ xxl: number;
44
+ }
45
+ /**
46
+ * Size scale tokens
47
+ * For width, height, icon sizes, etc.
48
+ */
49
+ export interface SizeTokens {
50
+ /** Extra small - 16px */
51
+ xs: number;
52
+ /** Small - 24px */
53
+ sm: number;
54
+ /** Medium - 32px */
55
+ md: number;
56
+ /** Large - 48px */
57
+ lg: number;
58
+ /** Extra large - 64px */
59
+ xl: number;
60
+ /** Extra extra large - 96px */
61
+ xxl: number;
62
+ }
63
+ /**
64
+ * Border radius tokens
65
+ * Consistent corner radius values
66
+ */
67
+ export interface RadiusTokens {
68
+ /** None - 0px */
69
+ none: number;
70
+ /** Small - 4px */
71
+ sm: number;
72
+ /** Medium - 8px */
73
+ md: number;
74
+ /** Large - 16px */
75
+ lg: number;
76
+ /** Extra large - 24px */
77
+ xl: number;
78
+ /** Full - 9999px (pill shape) */
79
+ xxl: number;
80
+ }
81
+ /**
82
+ * Complete design token system
83
+ * Combines colors with semantic style tokens
84
+ */
85
+ export interface DesignTokens {
86
+ /** Color tokens - semantic color scales */
87
+ colors: ColorTokens;
88
+ /** Text style presets - ready-to-use text styles */
89
+ textStyles: TextStyleTokens;
90
+ /** Spacing scale - padding, margin, gaps */
91
+ spacing: SpacingTokens;
92
+ /** Size scale - width, height, icon sizes */
93
+ sizes: SizeTokens;
94
+ /** Border radius scale - corner radius values */
95
+ radius: RadiusTokens;
96
+ }
97
+ //# sourceMappingURL=design-token-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-token-types.d.ts","sourceRoot":"","sources":["../../src/design-tokens/design-token-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAA;AAE9C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,OAAO,EAAE,cAAc,CAAA;IACvB,2CAA2C;IAC3C,KAAK,EAAE,cAAc,CAAA;IACrB,4CAA4C;IAC5C,MAAM,EAAE,cAAc,CAAA;IACtB,gDAAgD;IAChD,KAAK,EAAE,cAAc,CAAA;IACrB,yCAAyC;IACzC,KAAK,EAAE,cAAc,CAAA;IACrB,0CAA0C;IAC1C,OAAO,EAAE,cAAc,CAAA;IACvB,iEAAiE;IACjE,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAA;IACnB,oDAAoD;IACpD,UAAU,EAAE,eAAe,CAAA;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,aAAa,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,UAAU,CAAA;IACjB,iDAAiD;IACjD,MAAM,EAAE,YAAY,CAAA;CACrB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const designTokenPresets = require("./design-token-presets.cjs");
4
+ exports.createDesignTokens = designTokenPresets.createDesignTokens;
5
+ exports.createTextStyleTokens = designTokenPresets.createTextStyleTokens;
6
+ exports.defaultRadiusTokens = designTokenPresets.defaultRadiusTokens;
7
+ exports.defaultSizeTokens = designTokenPresets.defaultSizeTokens;
8
+ exports.defaultSpacingTokens = designTokenPresets.defaultSpacingTokens;
9
+ exports.defaultTextStyleTokens = designTokenPresets.defaultTextStyleTokens;
10
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Design token system — renderer-neutral semantic tokens.
3
+ *
4
+ * @migration(audit:scene-portal-mount) Phase 3C — extracted from packages/ui/src/design-tokens.
5
+ * Pure token types and presets. Theme-dependent hooks + component size presets stay in Phaser package.
6
+ */
7
+ export { createDesignTokens, createTextStyleTokens, defaultRadiusTokens, defaultSizeTokens, defaultSpacingTokens, defaultTextStyleTokens, } from './design-token-presets';
8
+ export type { DesignTokens, RadiusTokens, SizeTokens, SpacingTokens, TextStyleToken, TextStyleTokens, } from './design-token-types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/design-tokens/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { createDesignTokens, createTextStyleTokens, defaultRadiusTokens, defaultSizeTokens, defaultSpacingTokens, defaultTextStyleTokens } from "./design-token-presets.js";
2
+ export {
3
+ createDesignTokens,
4
+ createTextStyleTokens,
5
+ defaultRadiusTokens,
6
+ defaultSizeTokens,
7
+ defaultSpacingTokens,
8
+ defaultTextStyleTokens
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function debounce(fn, delay) {
4
+ let timeoutId;
5
+ return (...args) => {
6
+ if (timeoutId !== void 0) clearTimeout(timeoutId);
7
+ timeoutId = setTimeout(() => {
8
+ timeoutId = void 0;
9
+ fn(...args);
10
+ }, delay);
11
+ };
12
+ }
13
+ const DevConfig = {
14
+ /**
15
+ * Debug logging configuration
16
+ * Controls console output for different subsystems
17
+ */
18
+ debug: {
19
+ /**
20
+ * Master switch - disables all debug output when false
21
+ * @default false
22
+ */
23
+ enabled: false,
24
+ /**
25
+ * Detailed layout calculation logs
26
+ * Shows container sizing, positioning, and flex distribution
27
+ * @default false
28
+ */
29
+ layout: false,
30
+ /**
31
+ * Overflow mask positioning logs
32
+ * Shows world coordinate calculations and mask updates
33
+ * @default false
34
+ */
35
+ overflowMask: false,
36
+ /**
37
+ * Flex distribution calculations
38
+ * Shows flex space allocation across children
39
+ * @default false
40
+ */
41
+ flex: false,
42
+ /**
43
+ * Child sizing and positioning
44
+ * Shows individual child dimension calculations
45
+ * @default false
46
+ */
47
+ positioning: false,
48
+ /**
49
+ * VDOM mount/patch/unmount operations
50
+ * Shows virtual DOM updates and reconciliation
51
+ * @default false
52
+ */
53
+ vdom: false,
54
+ /**
55
+ * Performance timing measurements
56
+ * Shows execution time for layout operations
57
+ * @default false
58
+ */
59
+ performance: false,
60
+ /**
61
+ * Theme system logs
62
+ * Shows theme registry updates and prop merging
63
+ * @default false
64
+ */
65
+ theme: false
66
+ },
67
+ /**
68
+ * VDOM warnings and development checks
69
+ * These help catch common mistakes that lead to performance issues
70
+ */
71
+ warnings: {
72
+ /**
73
+ * Warn when list items (siblings) don't have key props
74
+ * Similar to React's "Each child in a list should have a unique key prop" warning
75
+ * @default true (in development)
76
+ */
77
+ missingKeys: false,
78
+ // temp disable because of detection issues, will re-enable later
79
+ /**
80
+ * Warn when props change causes full remount instead of update
81
+ * Detects JSX/callback recreation that prevents VDOM optimization
82
+ * @default true (in development)
83
+ */
84
+ unnecessaryRemounts: false,
85
+ /**
86
+ * Warn when VNodes are frozen/sealed and need copying
87
+ * Happens in production builds or with certain bundler optimizations
88
+ * @default false (usually only relevant in production)
89
+ */
90
+ frozenVNodes: false
91
+ },
92
+ /**
93
+ * Visual debugging aids
94
+ * Runtime-configurable visual settings
95
+ */
96
+ visual: {
97
+ /**
98
+ * Show overflow mask areas
99
+ * When true, masks are visible (alpha > 0) for debugging
100
+ * @default false
101
+ */
102
+ showOverflowMasks: false,
103
+ /**
104
+ * Mask fill color
105
+ * @default 0xffffff (white, invisible with alpha=0)
106
+ * @example 0xff00ff (pink for debugging)
107
+ */
108
+ maskFillColor: 16777215,
109
+ /**
110
+ * Mask alpha transparency
111
+ * @default 0.0 (invisible)
112
+ * @example 0.3 (semi-transparent for debugging)
113
+ */
114
+ maskAlpha: 0
115
+ },
116
+ /**
117
+ * Performance tuning
118
+ */
119
+ performance: {
120
+ /**
121
+ * Enable deferred layout queue batching
122
+ * When false, deferred updates execute immediately (not batched)
123
+ * @default true
124
+ */
125
+ useDeferredQueue: true,
126
+ /**
127
+ * Log deferred queue statistics
128
+ * Shows number of batched callbacks per frame
129
+ * @default false
130
+ */
131
+ logQueueStats: false
132
+ }
133
+ };
134
+ class DebugLogger {
135
+ /**
136
+ * Debounced console.log instances per category-message combination
137
+ */
138
+ static debouncedLoggers = /* @__PURE__ */ new Map();
139
+ /**
140
+ * Log a message with category filtering and debouncing
141
+ * @param category - Debug category to check
142
+ * @param message - Message to log
143
+ * @param args - Additional arguments to log (only first element is used)
144
+ */
145
+ static log(category, message, ...args) {
146
+ if (!DevConfig.debug.enabled) return;
147
+ if (category !== "enabled" && !DevConfig.debug[category]) return;
148
+ const key = `${String(category)}:${message}`;
149
+ let debouncedLog = this.debouncedLoggers.get(key);
150
+ if (!debouncedLog) {
151
+ debouncedLog = debounce(() => {
152
+ console.log(`[${category}] ${message}`, args[0]);
153
+ }, 300);
154
+ this.debouncedLoggers.set(key, debouncedLog);
155
+ }
156
+ debouncedLog();
157
+ }
158
+ /**
159
+ * Log a warning message (always shown, even if debug disabled)
160
+ * @param category - Category for context
161
+ * @param message - Warning message
162
+ * @param args - Additional arguments
163
+ */
164
+ static warn(category, message, ...args) {
165
+ console.warn(`[${category}] ${message}`, ...args);
166
+ }
167
+ /**
168
+ * Log an error message (always shown, even if debug disabled)
169
+ * @param category - Category for context
170
+ * @param message - Error message
171
+ * @param args - Additional arguments
172
+ */
173
+ static error(category, message, ...args) {
174
+ console.error(`[${category}] ${message}`, ...args);
175
+ }
176
+ /**
177
+ * Start a performance timer
178
+ * @param category - Debug category to check
179
+ * @param label - Timer label
180
+ */
181
+ static time(category, label) {
182
+ if (!DevConfig.debug.enabled) return;
183
+ if (category !== "enabled" && !DevConfig.debug[category]) return;
184
+ console.time(`[${category}] ${label}`);
185
+ }
186
+ /**
187
+ * End a performance timer
188
+ * @param category - Debug category to check
189
+ * @param label - Timer label
190
+ */
191
+ static timeEnd(category, label) {
192
+ if (!DevConfig.debug.enabled) return;
193
+ if (category !== "enabled" && !DevConfig.debug[category]) return;
194
+ console.timeEnd(`[${category}] ${label}`);
195
+ }
196
+ }
197
+ const DevPresets = {
198
+ /**
199
+ * Production configuration
200
+ * All debugging disabled, optimal performance
201
+ */
202
+ production: () => {
203
+ DevConfig.debug.enabled = false;
204
+ DevConfig.visual.showOverflowMasks = false;
205
+ DevConfig.visual.maskAlpha = 0;
206
+ DevConfig.visual.maskFillColor = 16777215;
207
+ DevConfig.performance.logQueueStats = false;
208
+ },
209
+ /**
210
+ * Debug layout issues
211
+ * Enables layout, positioning, and flex logs
212
+ */
213
+ debugLayout: () => {
214
+ DevConfig.debug.enabled = true;
215
+ DevConfig.debug.layout = true;
216
+ DevConfig.debug.positioning = true;
217
+ DevConfig.debug.flex = true;
218
+ DevConfig.debug.overflowMask = false;
219
+ DevConfig.debug.vdom = false;
220
+ DevConfig.debug.performance = false;
221
+ },
222
+ /**
223
+ * Debug overflow masking
224
+ * Enables overflow logs and makes masks visible
225
+ */
226
+ debugOverflow: () => {
227
+ DevConfig.debug.enabled = true;
228
+ DevConfig.debug.overflowMask = true;
229
+ DevConfig.visual.showOverflowMasks = true;
230
+ DevConfig.visual.maskFillColor = 16711935;
231
+ DevConfig.visual.maskAlpha = 0.3;
232
+ DevConfig.debug.layout = false;
233
+ DevConfig.debug.positioning = false;
234
+ DevConfig.debug.flex = false;
235
+ DevConfig.debug.vdom = false;
236
+ DevConfig.debug.performance = false;
237
+ },
238
+ /**
239
+ * Performance profiling
240
+ * Enables performance timing and queue statistics
241
+ */
242
+ profilePerformance: () => {
243
+ DevConfig.debug.enabled = true;
244
+ DevConfig.debug.performance = true;
245
+ DevConfig.performance.logQueueStats = true;
246
+ DevConfig.debug.layout = false;
247
+ DevConfig.debug.overflowMask = false;
248
+ DevConfig.debug.positioning = false;
249
+ DevConfig.debug.flex = false;
250
+ DevConfig.debug.vdom = false;
251
+ },
252
+ /**
253
+ * Debug VDOM operations
254
+ * Enables virtual DOM mount/patch/unmount logs
255
+ */
256
+ debugVDOM: () => {
257
+ DevConfig.debug.enabled = true;
258
+ DevConfig.debug.vdom = true;
259
+ DevConfig.debug.layout = false;
260
+ DevConfig.debug.overflowMask = false;
261
+ DevConfig.debug.positioning = false;
262
+ DevConfig.debug.flex = false;
263
+ DevConfig.debug.performance = false;
264
+ },
265
+ debugTheme: () => {
266
+ DevConfig.debug.enabled = true;
267
+ DevConfig.debug.theme = true;
268
+ DevConfig.debug.layout = false;
269
+ DevConfig.debug.overflowMask = false;
270
+ DevConfig.debug.positioning = false;
271
+ DevConfig.debug.flex = false;
272
+ DevConfig.debug.performance = false;
273
+ DevConfig.debug.vdom = false;
274
+ },
275
+ /**
276
+ * Enable all debug categories (verbose!)
277
+ * Use with caution - produces lots of console output
278
+ */
279
+ debugAll: () => {
280
+ DevConfig.debug.enabled = true;
281
+ DevConfig.debug.layout = true;
282
+ DevConfig.debug.overflowMask = true;
283
+ DevConfig.debug.flex = true;
284
+ DevConfig.debug.positioning = true;
285
+ DevConfig.debug.vdom = true;
286
+ DevConfig.debug.performance = true;
287
+ DevConfig.visual.showOverflowMasks = true;
288
+ DevConfig.visual.maskFillColor = 16711935;
289
+ DevConfig.visual.maskAlpha = 0.3;
290
+ DevConfig.performance.logQueueStats = true;
291
+ }
292
+ };
293
+ exports.DebugLogger = DebugLogger;
294
+ exports.DevConfig = DevConfig;
295
+ exports.DevPresets = DevPresets;
296
+ //# sourceMappingURL=dev-config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-config.cjs","sources":["../src/dev-config.ts"],"sourcesContent":["/**\n * Development and debugging configuration\n * Runtime-configurable settings for debugging and development\n */\n\n/**\n * Simple debounce implementation — avoids pulling in ~1.1 MB of lodash\n * @internal\n */\nfunction debounce<T extends (...args: unknown[]) => void>(\n fn: T,\n delay: number\n): (...args: unknown[]) => void {\n let timeoutId: ReturnType<typeof setTimeout> | undefined\n return (...args: unknown[]) => {\n if (timeoutId !== undefined) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => {\n timeoutId = undefined\n fn(...args)\n }, delay)\n }\n}\n\n/**\n * Development configuration object\n * Can be modified at runtime from user code for debugging\n *\n * @example\n * ```typescript\n * import { DevConfig } from '@number10/phaserjsx'\n *\n * // Enable specific debug categories\n * DevConfig.debug.enabled = true\n * DevConfig.debug.layout = true\n *\n * // Customize visual debugging\n * DevConfig.visual.maskFillColor = 0xff00ff // Pink\n * DevConfig.visual.maskAlpha = 0.3 // Semi-transparent\n * ```\n */\nexport const DevConfig = {\n /**\n * Debug logging configuration\n * Controls console output for different subsystems\n */\n debug: {\n /**\n * Master switch - disables all debug output when false\n * @default false\n */\n enabled: false,\n\n /**\n * Detailed layout calculation logs\n * Shows container sizing, positioning, and flex distribution\n * @default false\n */\n layout: false,\n\n /**\n * Overflow mask positioning logs\n * Shows world coordinate calculations and mask updates\n * @default false\n */\n overflowMask: false,\n\n /**\n * Flex distribution calculations\n * Shows flex space allocation across children\n * @default false\n */\n flex: false,\n\n /**\n * Child sizing and positioning\n * Shows individual child dimension calculations\n * @default false\n */\n positioning: false,\n\n /**\n * VDOM mount/patch/unmount operations\n * Shows virtual DOM updates and reconciliation\n * @default false\n */\n vdom: false,\n\n /**\n * Performance timing measurements\n * Shows execution time for layout operations\n * @default false\n */\n performance: false,\n\n /**\n * Theme system logs\n * Shows theme registry updates and prop merging\n * @default false\n */\n theme: false,\n },\n\n /**\n * VDOM warnings and development checks\n * These help catch common mistakes that lead to performance issues\n */\n warnings: {\n /**\n * Warn when list items (siblings) don't have key props\n * Similar to React's \"Each child in a list should have a unique key prop\" warning\n * @default true (in development)\n */\n missingKeys: false, // temp disable because of detection issues, will re-enable later\n\n /**\n * Warn when props change causes full remount instead of update\n * Detects JSX/callback recreation that prevents VDOM optimization\n * @default true (in development)\n */\n unnecessaryRemounts: false,\n\n /**\n * Warn when VNodes are frozen/sealed and need copying\n * Happens in production builds or with certain bundler optimizations\n * @default false (usually only relevant in production)\n */\n frozenVNodes: false,\n },\n\n /**\n * Visual debugging aids\n * Runtime-configurable visual settings\n */\n visual: {\n /**\n * Show overflow mask areas\n * When true, masks are visible (alpha > 0) for debugging\n * @default false\n */\n showOverflowMasks: false,\n\n /**\n * Mask fill color\n * @default 0xffffff (white, invisible with alpha=0)\n * @example 0xff00ff (pink for debugging)\n */\n maskFillColor: 0xffffff,\n\n /**\n * Mask alpha transparency\n * @default 0.0 (invisible)\n * @example 0.3 (semi-transparent for debugging)\n */\n maskAlpha: 0.0,\n },\n\n /**\n * Performance tuning\n */\n performance: {\n /**\n * Enable deferred layout queue batching\n * When false, deferred updates execute immediately (not batched)\n * @default true\n */\n useDeferredQueue: true,\n\n /**\n * Log deferred queue statistics\n * Shows number of batched callbacks per frame\n * @default false\n */\n logQueueStats: false,\n },\n}\n\n/**\n * Debug logger with category support\n * Only logs when global debug is enabled AND category is enabled\n *\n * @example\n * ```typescript\n * DebugLogger.log('layout', 'Container size:', { width: 100, height: 200 })\n * // Only logs if DevConfig.debug.enabled && DevConfig.debug.layout\n * ```\n */\nexport class DebugLogger {\n /**\n * Debounced console.log instances per category-message combination\n */\n private static debouncedLoggers = new Map<string, (...args: unknown[]) => void>()\n\n /**\n * Log a message with category filtering and debouncing\n * @param category - Debug category to check\n * @param message - Message to log\n * @param args - Additional arguments to log (only first element is used)\n */\n static log(category: keyof typeof DevConfig.debug, message: string, ...args: unknown[]): void {\n if (!DevConfig.debug.enabled) return\n if (category !== 'enabled' && !DevConfig.debug[category]) return\n\n const key = `${String(category)}:${message}`\n let debouncedLog = this.debouncedLoggers.get(key)\n\n // console.log(`[${category}] ${message}`, args[0])\n\n if (!debouncedLog) {\n debouncedLog = debounce(() => {\n console.log(`[${category}] ${message}`, args[0])\n }, 300)\n this.debouncedLoggers.set(key, debouncedLog)\n }\n\n debouncedLog()\n }\n\n /**\n * Log a warning message (always shown, even if debug disabled)\n * @param category - Category for context\n * @param message - Warning message\n * @param args - Additional arguments\n */\n static warn(category: string, message: string, ...args: unknown[]): void {\n console.warn(`[${category}] ${message}`, ...args)\n }\n\n /**\n * Log an error message (always shown, even if debug disabled)\n * @param category - Category for context\n * @param message - Error message\n * @param args - Additional arguments\n */\n static error(category: string, message: string, ...args: unknown[]): void {\n console.error(`[${category}] ${message}`, ...args)\n }\n\n /**\n * Start a performance timer\n * @param category - Debug category to check\n * @param label - Timer label\n */\n static time(category: keyof typeof DevConfig.debug, label: string): void {\n if (!DevConfig.debug.enabled) return\n if (category !== 'enabled' && !DevConfig.debug[category]) return\n\n console.time(`[${category}] ${label}`)\n }\n\n /**\n * End a performance timer\n * @param category - Debug category to check\n * @param label - Timer label\n */\n static timeEnd(category: keyof typeof DevConfig.debug, label: string): void {\n if (!DevConfig.debug.enabled) return\n if (category !== 'enabled' && !DevConfig.debug[category]) return\n\n console.timeEnd(`[${category}] ${label}`)\n }\n}\n\n/**\n * Predefined configuration presets for common debugging scenarios\n *\n * @example\n * ```typescript\n * import { DevPresets } from '@number10/phaserjsx'\n *\n * // Quick activation of overflow debugging\n * DevPresets.debugOverflow()\n *\n * // Revert to production settings\n * DevPresets.production()\n * ```\n */\nexport const DevPresets = {\n /**\n * Production configuration\n * All debugging disabled, optimal performance\n */\n production: (): void => {\n DevConfig.debug.enabled = false\n DevConfig.visual.showOverflowMasks = false\n DevConfig.visual.maskAlpha = 0.0\n DevConfig.visual.maskFillColor = 0xffffff\n DevConfig.performance.logQueueStats = false\n },\n\n /**\n * Debug layout issues\n * Enables layout, positioning, and flex logs\n */\n debugLayout: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.layout = true\n DevConfig.debug.positioning = true\n DevConfig.debug.flex = true\n // Keep other categories off\n DevConfig.debug.overflowMask = false\n DevConfig.debug.vdom = false\n DevConfig.debug.performance = false\n },\n\n /**\n * Debug overflow masking\n * Enables overflow logs and makes masks visible\n */\n debugOverflow: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.overflowMask = true\n DevConfig.visual.showOverflowMasks = true\n DevConfig.visual.maskFillColor = 0xff00ff // Pink\n DevConfig.visual.maskAlpha = 0.3 // Semi-transparent\n // Keep other categories off\n DevConfig.debug.layout = false\n DevConfig.debug.positioning = false\n DevConfig.debug.flex = false\n DevConfig.debug.vdom = false\n DevConfig.debug.performance = false\n },\n\n /**\n * Performance profiling\n * Enables performance timing and queue statistics\n */\n profilePerformance: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.performance = true\n DevConfig.performance.logQueueStats = true\n // Keep other categories off\n DevConfig.debug.layout = false\n DevConfig.debug.overflowMask = false\n DevConfig.debug.positioning = false\n DevConfig.debug.flex = false\n DevConfig.debug.vdom = false\n },\n\n /**\n * Debug VDOM operations\n * Enables virtual DOM mount/patch/unmount logs\n */\n debugVDOM: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.vdom = true\n // Keep other categories off\n DevConfig.debug.layout = false\n DevConfig.debug.overflowMask = false\n DevConfig.debug.positioning = false\n DevConfig.debug.flex = false\n DevConfig.debug.performance = false\n },\n\n debugTheme: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.theme = true\n // Keep other categories off\n DevConfig.debug.layout = false\n DevConfig.debug.overflowMask = false\n DevConfig.debug.positioning = false\n DevConfig.debug.flex = false\n DevConfig.debug.performance = false\n DevConfig.debug.vdom = false\n },\n\n /**\n * Enable all debug categories (verbose!)\n * Use with caution - produces lots of console output\n */\n debugAll: (): void => {\n DevConfig.debug.enabled = true\n DevConfig.debug.layout = true\n DevConfig.debug.overflowMask = true\n DevConfig.debug.flex = true\n DevConfig.debug.positioning = true\n DevConfig.debug.vdom = true\n DevConfig.debug.performance = true\n DevConfig.visual.showOverflowMasks = true\n DevConfig.visual.maskFillColor = 0xff00ff\n DevConfig.visual.maskAlpha = 0.3\n DevConfig.performance.logQueueStats = true\n },\n}\n"],"names":[],"mappings":"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"}