meno-core 1.0.53 → 1.0.54

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 (387) hide show
  1. package/.claude/settings.local.json +1 -3
  2. package/bin/cli.ts +48 -57
  3. package/build-astro.ts +131 -113
  4. package/build-next.ts +109 -96
  5. package/build-static.test.ts +39 -10
  6. package/build-static.ts +120 -122
  7. package/dist/bin/cli.js +34 -38
  8. package/dist/bin/cli.js.map +2 -2
  9. package/dist/build-static.js +12 -11
  10. package/dist/chunks/chunk-2AR55GYH.js +42 -0
  11. package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
  12. package/dist/chunks/{chunk-IGYR22T6.js → chunk-2FN4UOVO.js} +512 -239
  13. package/dist/chunks/chunk-2FN4UOVO.js.map +7 -0
  14. package/dist/chunks/chunk-3XER4E5W.js +168 -0
  15. package/dist/chunks/chunk-3XER4E5W.js.map +7 -0
  16. package/dist/chunks/{chunk-X754AHS5.js → chunk-5ETZFREW.js} +9 -12
  17. package/dist/chunks/chunk-5ETZFREW.js.map +7 -0
  18. package/dist/chunks/{chunk-2MHDV5BF.js → chunk-7E4IF5L7.js} +15 -21
  19. package/dist/chunks/chunk-7E4IF5L7.js.map +7 -0
  20. package/dist/chunks/{chunk-JGWFTO6P.js → chunk-7HWQUVTU.js} +1578 -1349
  21. package/dist/chunks/chunk-7HWQUVTU.js.map +7 -0
  22. package/dist/chunks/{chunk-O3NAGJP4.js → chunk-AE3QK5QW.js} +110 -21
  23. package/dist/chunks/chunk-AE3QK5QW.js.map +7 -0
  24. package/dist/chunks/{chunk-GZHGVVW3.js → chunk-F6KTJYGV.js} +7 -7
  25. package/dist/chunks/chunk-F6KTJYGV.js.map +7 -0
  26. package/dist/chunks/{chunk-WQFG7PAH.js → chunk-FZITJSSS.js} +2 -6
  27. package/dist/chunks/chunk-FZITJSSS.js.map +7 -0
  28. package/dist/chunks/{chunk-QB2LNO4W.js → chunk-GSYYA5GX.js} +2 -2
  29. package/dist/chunks/chunk-GSYYA5GX.js.map +7 -0
  30. package/dist/chunks/{chunk-YBLHKYFF.js → chunk-HIZMY3EP.js} +1 -1
  31. package/dist/chunks/chunk-HIZMY3EP.js.map +7 -0
  32. package/dist/chunks/{chunk-AZQYF6KE.js → chunk-I2WEGYA7.js} +41 -176
  33. package/dist/chunks/chunk-I2WEGYA7.js.map +7 -0
  34. package/dist/chunks/{chunk-I7YIGZXT.js → chunk-JNO3CNLJ.js} +6 -9
  35. package/dist/chunks/chunk-JNO3CNLJ.js.map +7 -0
  36. package/dist/chunks/{chunk-UB44F4Z2.js → chunk-NVRBTSQG.js} +2 -4
  37. package/dist/chunks/chunk-NVRBTSQG.js.map +7 -0
  38. package/dist/chunks/{chunk-JGP5A3Y5.js → chunk-Q4OBWKXG.js} +40 -33
  39. package/dist/chunks/chunk-Q4OBWKXG.js.map +7 -0
  40. package/dist/chunks/{chunk-R6XHAFBF.js → chunk-QTE32Y53.js} +250 -242
  41. package/dist/chunks/chunk-QTE32Y53.js.map +7 -0
  42. package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-STDY3OVM.js} +214 -85
  43. package/dist/chunks/chunk-STDY3OVM.js.map +7 -0
  44. package/dist/chunks/configService-PRJZF7Y6.js +14 -0
  45. package/dist/chunks/{constants-STK2YBIW.js → constants-KIQEYMAM.js} +2 -2
  46. package/dist/chunks/{fs-JGINUXGL.js → fs-ZI5JEU7V.js} +2 -2
  47. package/dist/entries/server-router.js +14 -19
  48. package/dist/entries/server-router.js.map +2 -2
  49. package/dist/lib/client/index.js +638 -332
  50. package/dist/lib/client/index.js.map +2 -2
  51. package/dist/lib/server/index.js +177 -235
  52. package/dist/lib/server/index.js.map +2 -2
  53. package/dist/lib/shared/index.js +80 -44
  54. package/dist/lib/shared/index.js.map +2 -2
  55. package/dist/lib/shared/richtext/index.js +1 -1
  56. package/dist/lib/test-utils/index.js +38 -60
  57. package/dist/lib/test-utils/index.js.map +2 -2
  58. package/entries/client-router.tsx +10 -8
  59. package/entries/server-router.tsx +1 -7
  60. package/lib/client/ClientInitializer.ts +8 -8
  61. package/lib/client/ErrorBoundary.test.tsx +146 -143
  62. package/lib/client/ErrorBoundary.tsx +175 -127
  63. package/lib/client/componentRegistry.test.ts +96 -108
  64. package/lib/client/componentRegistry.ts +1 -2
  65. package/lib/client/contexts/ThemeContext.tsx +3 -2
  66. package/lib/client/core/ComponentBuilder.test.ts +513 -560
  67. package/lib/client/core/ComponentBuilder.ts +318 -146
  68. package/lib/client/core/ComponentRenderer.test.tsx +1 -2
  69. package/lib/client/core/ComponentRenderer.tsx +46 -33
  70. package/lib/client/core/builders/embedBuilder.ts +241 -53
  71. package/lib/client/core/builders/linkBuilder.ts +71 -44
  72. package/lib/client/core/builders/linkNodeBuilder.ts +78 -53
  73. package/lib/client/core/builders/listBuilder.ts +115 -86
  74. package/lib/client/core/builders/localeListBuilder.ts +95 -60
  75. package/lib/client/core/builders/types.ts +5 -5
  76. package/lib/client/core/cmsTemplateProcessor.ts +7 -7
  77. package/lib/client/elementRegistry.ts +3 -3
  78. package/lib/client/fontFamiliesService.test.ts +2 -10
  79. package/lib/client/fontFamiliesService.ts +3 -3
  80. package/lib/client/hmr/HMRManager.tsx +8 -0
  81. package/lib/client/hmrCssReload.ts +14 -8
  82. package/lib/client/hmrWebSocket.ts +9 -14
  83. package/lib/client/hooks/useColorVariables.test.ts +21 -21
  84. package/lib/client/hooks/useColorVariables.ts +12 -10
  85. package/lib/client/hooks/usePropertyAutocomplete.ts +3 -5
  86. package/lib/client/hooks/useVariables.ts +4 -4
  87. package/lib/client/hydration/HydrationUtils.test.ts +24 -25
  88. package/lib/client/hydration/HydrationUtils.ts +3 -4
  89. package/lib/client/i18nConfigService.test.ts +2 -7
  90. package/lib/client/i18nConfigService.ts +2 -2
  91. package/lib/client/meno-filter/MenoFilter.test.ts +19 -21
  92. package/lib/client/meno-filter/MenoFilter.ts +5 -9
  93. package/lib/client/meno-filter/bindings.ts +15 -40
  94. package/lib/client/meno-filter/init.ts +1 -1
  95. package/lib/client/meno-filter/renderer.ts +23 -29
  96. package/lib/client/meno-filter/script.generated.ts +1 -3
  97. package/lib/client/meno-filter/ui.ts +3 -5
  98. package/lib/client/meno-filter/updates.ts +15 -21
  99. package/lib/client/navigation.test.ts +159 -159
  100. package/lib/client/navigation.ts +0 -1
  101. package/lib/client/responsiveStyleResolver.test.ts +230 -228
  102. package/lib/client/responsiveStyleResolver.ts +13 -16
  103. package/lib/client/routing/RouteLoader.test.ts +23 -24
  104. package/lib/client/routing/RouteLoader.ts +22 -35
  105. package/lib/client/routing/Router.tsx +31 -3
  106. package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
  107. package/lib/client/scripts/ScriptExecutor.ts +15 -33
  108. package/lib/client/services/PrefetchService.test.ts +2 -2
  109. package/lib/client/services/PrefetchService.ts +10 -24
  110. package/lib/client/styleProcessor.test.ts +9 -9
  111. package/lib/client/styleProcessor.ts +18 -15
  112. package/lib/client/styles/StyleInjector.test.ts +122 -115
  113. package/lib/client/styles/StyleInjector.ts +9 -6
  114. package/lib/client/styles/UtilityClassCollector.ts +19 -26
  115. package/lib/client/styles/cspNonce.test.ts +2 -5
  116. package/lib/client/templateEngine.test.ts +554 -482
  117. package/lib/client/templateEngine.ts +200 -64
  118. package/lib/client/theme.ts +0 -1
  119. package/lib/client/utils/toast.ts +0 -1
  120. package/lib/server/__integration__/api-routes.test.ts +8 -4
  121. package/lib/server/__integration__/cms-integration.test.ts +1 -4
  122. package/lib/server/__integration__/server-lifecycle.test.ts +2 -5
  123. package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
  124. package/lib/server/__integration__/static-assets.test.ts +1 -1
  125. package/lib/server/__integration__/test-helpers.ts +84 -70
  126. package/lib/server/ab/generateFunctions.ts +12 -10
  127. package/lib/server/astro/cmsPageEmitter.ts +23 -38
  128. package/lib/server/astro/componentEmitter.ts +25 -36
  129. package/lib/server/astro/cssCollector.ts +10 -26
  130. package/lib/server/astro/nodeToAstro.test.ts +1750 -30
  131. package/lib/server/astro/nodeToAstro.ts +198 -187
  132. package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +105 -109
  133. package/lib/server/astro/normalizeOrphanTemplateProps.ts +4 -12
  134. package/lib/server/astro/pageEmitter.ts +9 -13
  135. package/lib/server/astro/tailwindMapper.test.ts +10 -37
  136. package/lib/server/astro/tailwindMapper.ts +33 -40
  137. package/lib/server/astro/templateTransformer.ts +14 -17
  138. package/lib/server/createServer.ts +5 -17
  139. package/lib/server/cssGenerator.test.ts +35 -44
  140. package/lib/server/cssGenerator.ts +6 -17
  141. package/lib/server/fileWatcher.test.ts +124 -10
  142. package/lib/server/fileWatcher.ts +124 -118
  143. package/lib/server/index.ts +7 -1
  144. package/lib/server/jsonLoader.test.ts +39 -2
  145. package/lib/server/jsonLoader.ts +33 -31
  146. package/lib/server/middleware/cors.test.ts +20 -20
  147. package/lib/server/middleware/cors.ts +28 -4
  148. package/lib/server/middleware/errorHandler.test.ts +5 -3
  149. package/lib/server/middleware/errorHandler.ts +3 -8
  150. package/lib/server/middleware/index.ts +0 -1
  151. package/lib/server/middleware/logger.test.ts +7 -5
  152. package/lib/server/middleware/logger.ts +10 -22
  153. package/lib/server/pageCache.test.ts +76 -77
  154. package/lib/server/pageCache.ts +0 -1
  155. package/lib/server/projectContext.ts +4 -3
  156. package/lib/server/providers/fileSystemCMSProvider.test.ts +124 -95
  157. package/lib/server/providers/fileSystemCMSProvider.ts +35 -20
  158. package/lib/server/providers/fileSystemPageProvider.test.ts +84 -0
  159. package/lib/server/providers/fileSystemPageProvider.ts +31 -12
  160. package/lib/server/routes/api/cms.test.ts +26 -14
  161. package/lib/server/routes/api/cms.ts +9 -14
  162. package/lib/server/routes/api/components.ts +30 -34
  163. package/lib/server/routes/api/config.ts +0 -1
  164. package/lib/server/routes/api/core-routes.ts +47 -74
  165. package/lib/server/routes/api/functions.ts +8 -16
  166. package/lib/server/routes/api/index.ts +3 -6
  167. package/lib/server/routes/api/pages.ts +8 -11
  168. package/lib/server/routes/api/shared.test.ts +1 -1
  169. package/lib/server/routes/api/shared.ts +12 -9
  170. package/lib/server/routes/api/variables.test.ts +1 -3
  171. package/lib/server/routes/api/variables.ts +1 -1
  172. package/lib/server/routes/index.ts +23 -26
  173. package/lib/server/routes/pages.ts +34 -29
  174. package/lib/server/routes/static.ts +16 -4
  175. package/lib/server/runtime/bundler.ts +47 -32
  176. package/lib/server/runtime/fs.ts +3 -13
  177. package/lib/server/runtime/httpServer.ts +5 -9
  178. package/lib/server/services/ColorService.ts +32 -27
  179. package/lib/server/services/EnumService.test.ts +2 -6
  180. package/lib/server/services/EnumService.ts +7 -2
  181. package/lib/server/services/VariableService.test.ts +1 -5
  182. package/lib/server/services/VariableService.ts +6 -1
  183. package/lib/server/services/cmsService.test.ts +116 -78
  184. package/lib/server/services/cmsService.ts +24 -54
  185. package/lib/server/services/componentService.test.ts +122 -36
  186. package/lib/server/services/componentService.ts +54 -38
  187. package/lib/server/services/configService.test.ts +9 -31
  188. package/lib/server/services/configService.ts +20 -27
  189. package/lib/server/services/fileWatcherService.ts +40 -6
  190. package/lib/server/services/index.ts +0 -1
  191. package/lib/server/services/pageService.test.ts +1 -3
  192. package/lib/server/services/pageService.ts +14 -13
  193. package/lib/server/ssr/attributeBuilder.ts +16 -6
  194. package/lib/server/ssr/buildErrorOverlay.ts +11 -12
  195. package/lib/server/ssr/clientDataInjector.ts +7 -21
  196. package/lib/server/ssr/cmsSSRProcessor.ts +3 -6
  197. package/lib/server/ssr/cssCollector.ts +1 -1
  198. package/lib/server/ssr/errorOverlay.test.ts +1 -1
  199. package/lib/server/ssr/errorOverlay.ts +3 -9
  200. package/lib/server/ssr/htmlGenerator.nonce.test.ts +3 -9
  201. package/lib/server/ssr/htmlGenerator.test.ts +120 -43
  202. package/lib/server/ssr/htmlGenerator.ts +120 -85
  203. package/lib/server/ssr/imageMetadata.test.ts +3 -1
  204. package/lib/server/ssr/imageMetadata.ts +25 -19
  205. package/lib/server/ssr/jsCollector.test.ts +3 -13
  206. package/lib/server/ssr/jsCollector.ts +3 -8
  207. package/lib/server/ssr/liveReloadIntegration.test.ts +69 -28
  208. package/lib/server/ssr/metaTagGenerator.ts +2 -2
  209. package/lib/server/ssr/ssrRenderer.branches.test.ts +1103 -0
  210. package/lib/server/ssr/ssrRenderer.test.ts +196 -246
  211. package/lib/server/ssr/ssrRenderer.ts +609 -225
  212. package/lib/server/ssrRenderer.test.ts +1044 -950
  213. package/lib/server/utils/jsonLineMapper.test.ts +28 -28
  214. package/lib/server/utils/jsonLineMapper.ts +1 -1
  215. package/lib/server/validateStyleCoverage.ts +18 -20
  216. package/lib/server/webflow/buildWebflow.ts +41 -53
  217. package/lib/server/webflow/nodeToWebflow.test.ts +150 -218
  218. package/lib/server/webflow/nodeToWebflow.ts +195 -258
  219. package/lib/server/webflow/styleMapper.test.ts +15 -56
  220. package/lib/server/webflow/styleMapper.ts +33 -41
  221. package/lib/server/webflow/types.ts +1 -8
  222. package/lib/server/websocketManager.ts +16 -19
  223. package/lib/shared/attributeNodeUtils.test.ts +15 -15
  224. package/lib/shared/attributeNodeUtils.ts +5 -12
  225. package/lib/shared/breakpoints.ts +4 -11
  226. package/lib/shared/cmsQueryParser.test.ts +50 -42
  227. package/lib/shared/cmsQueryParser.ts +49 -31
  228. package/lib/shared/colorVariableUtils.test.ts +5 -5
  229. package/lib/shared/colorVariableUtils.ts +3 -8
  230. package/lib/shared/componentRefs.ts +1 -5
  231. package/lib/shared/constants.test.ts +3 -3
  232. package/lib/shared/constants.ts +4 -8
  233. package/lib/shared/cssGeneration.test.ts +262 -144
  234. package/lib/shared/cssGeneration.ts +189 -516
  235. package/lib/shared/cssNamedColors.ts +152 -30
  236. package/lib/shared/cssProperties.test.ts +5 -6
  237. package/lib/shared/cssProperties.ts +296 -112
  238. package/lib/shared/elementClassName.test.ts +109 -109
  239. package/lib/shared/elementClassName.ts +1 -1
  240. package/lib/shared/elementUtils.ts +12 -16
  241. package/lib/shared/errorLogger.ts +2 -10
  242. package/lib/shared/errors.test.ts +2 -13
  243. package/lib/shared/errors.ts +2 -8
  244. package/lib/shared/expressionEvaluator.test.ts +119 -0
  245. package/lib/shared/expressionEvaluator.ts +43 -24
  246. package/lib/shared/fontLoader.test.ts +19 -5
  247. package/lib/shared/friendlyError.ts +2 -3
  248. package/lib/shared/gradientUtils.test.ts +1 -5
  249. package/lib/shared/gradientUtils.ts +2 -6
  250. package/lib/shared/hrefRefs.ts +2 -10
  251. package/lib/shared/i18n.test.ts +1 -1
  252. package/lib/shared/i18n.ts +13 -34
  253. package/lib/shared/index.ts +4 -0
  254. package/lib/shared/inlineSvgStyleRules.ts +2 -4
  255. package/lib/shared/interactiveStyleMappings.test.ts +11 -33
  256. package/lib/shared/interactiveStyleMappings.ts +9 -16
  257. package/lib/shared/interactiveStyles.test.ts +165 -188
  258. package/lib/shared/interfaces/contentProvider.ts +1 -1
  259. package/lib/shared/itemTemplateUtils.test.ts +6 -12
  260. package/lib/shared/itemTemplateUtils.ts +19 -35
  261. package/lib/shared/jsonRepair.ts +8 -2
  262. package/lib/shared/libraryLoader.test.ts +15 -49
  263. package/lib/shared/libraryLoader.ts +7 -22
  264. package/lib/shared/netlifyLocale404.test.ts +179 -0
  265. package/lib/shared/netlifyLocale404.ts +110 -0
  266. package/lib/shared/nodeUtils.test.ts +24 -16
  267. package/lib/shared/nodeUtils.ts +49 -19
  268. package/lib/shared/pathArrayUtils.test.ts +1 -2
  269. package/lib/shared/pathArrayUtils.ts +1 -1
  270. package/lib/shared/pathSecurity.ts +1 -1
  271. package/lib/shared/pathUtils.test.ts +4 -6
  272. package/lib/shared/pathUtils.ts +42 -48
  273. package/lib/shared/paths/Path.test.ts +2 -2
  274. package/lib/shared/paths/Path.ts +0 -1
  275. package/lib/shared/paths/PathConverter.test.ts +1 -1
  276. package/lib/shared/paths/PathConverter.ts +14 -17
  277. package/lib/shared/paths/PathUtils.ts +9 -10
  278. package/lib/shared/paths/PathValidator.test.ts +2 -15
  279. package/lib/shared/paths/PathValidator.ts +11 -9
  280. package/lib/shared/paths/index.ts +1 -2
  281. package/lib/shared/propResolver.test.ts +240 -244
  282. package/lib/shared/propResolver.ts +14 -25
  283. package/lib/shared/pxToRem.test.ts +7 -6
  284. package/lib/shared/pxToRem.ts +2 -5
  285. package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +9 -5
  286. package/lib/shared/registry/ClientRegistry.ts +0 -1
  287. package/lib/shared/registry/ComponentRegistry.test.ts +43 -29
  288. package/lib/shared/registry/ComponentRegistry.ts +9 -11
  289. package/lib/shared/registry/NodeTypeDefinition.ts +15 -8
  290. package/lib/shared/registry/RegistryManager.ts +1 -2
  291. package/lib/shared/registry/SSRRegistry.ts +0 -1
  292. package/lib/shared/registry/createNodeType.ts +7 -9
  293. package/lib/shared/registry/defineNodeType.ts +2 -6
  294. package/lib/shared/registry/index.ts +0 -1
  295. package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
  296. package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
  297. package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +47 -18
  298. package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
  299. package/lib/shared/registry/nodeTypes/ListNodeType.ts +78 -74
  300. package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
  301. package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +6 -7
  302. package/lib/shared/registry/nodeTypes/index.ts +10 -2
  303. package/lib/shared/responsiveScaling.test.ts +15 -31
  304. package/lib/shared/responsiveScaling.ts +55 -37
  305. package/lib/shared/responsiveStyleUtils.ts +11 -13
  306. package/lib/shared/richtext/htmlToTiptap.test.ts +23 -14
  307. package/lib/shared/richtext/htmlToTiptap.ts +1 -3
  308. package/lib/shared/richtext/tiptapToHtml.test.ts +5 -6
  309. package/lib/shared/richtext/types.ts +1 -8
  310. package/lib/shared/slugTranslator.test.ts +13 -13
  311. package/lib/shared/slugTranslator.ts +12 -16
  312. package/lib/shared/slugify.ts +9 -15
  313. package/lib/shared/styleNodeUtils.test.ts +8 -8
  314. package/lib/shared/styleNodeUtils.ts +5 -10
  315. package/lib/shared/styleUtils.test.ts +87 -61
  316. package/lib/shared/styleUtils.ts +5 -6
  317. package/lib/shared/themeDefaults.test.ts +11 -11
  318. package/lib/shared/themeDefaults.ts +3 -4
  319. package/lib/shared/tree/PathBuilder.test.ts +62 -138
  320. package/lib/shared/tree/PathBuilder.ts +49 -39
  321. package/lib/shared/treePathUtils.test.ts +2 -10
  322. package/lib/shared/treePathUtils.ts +54 -59
  323. package/lib/shared/types/api.ts +1 -2
  324. package/lib/shared/types/cms.ts +25 -21
  325. package/lib/shared/types/comment.ts +49 -16
  326. package/lib/shared/types/components.ts +27 -25
  327. package/lib/shared/types/errors.test.ts +1 -6
  328. package/lib/shared/types/errors.ts +3 -7
  329. package/lib/shared/types/experiments.ts +28 -28
  330. package/lib/shared/types/index.ts +2 -2
  331. package/lib/shared/types/styles.ts +0 -1
  332. package/lib/shared/types/variables.test.ts +4 -13
  333. package/lib/shared/types/variables.ts +48 -27
  334. package/lib/shared/types.ts +1 -2
  335. package/lib/shared/utilityClassConfig.ts +648 -321
  336. package/lib/shared/utilityClassMapper.test.ts +203 -92
  337. package/lib/shared/utilityClassMapper.ts +188 -246
  338. package/lib/shared/utilityClassNames.ts +326 -0
  339. package/lib/shared/utils.test.ts +2 -10
  340. package/lib/shared/utils.ts +19 -10
  341. package/lib/shared/validation/cmsValidators.ts +2 -1
  342. package/lib/shared/validation/commentValidators.test.ts +53 -0
  343. package/lib/shared/validation/commentValidators.ts +12 -1
  344. package/lib/shared/validation/propValidator.test.ts +18 -20
  345. package/lib/shared/validation/propValidator.ts +12 -17
  346. package/lib/shared/validation/schemas.test.ts +24 -33
  347. package/lib/shared/validation/schemas.ts +469 -344
  348. package/lib/shared/validation/validators.test.ts +1 -6
  349. package/lib/shared/validation/validators.ts +89 -68
  350. package/lib/shared/viewportUnits.integration.test.ts +14 -10
  351. package/lib/shared/viewportUnits.test.ts +11 -23
  352. package/lib/test-utils/dom-setup.ts +1 -1
  353. package/lib/test-utils/factories/ConsoleMockFactory.ts +3 -7
  354. package/lib/test-utils/factories/DomMockFactory.ts +7 -19
  355. package/lib/test-utils/factories/EventMockFactory.ts +7 -13
  356. package/lib/test-utils/factories/FetchMockFactory.ts +39 -57
  357. package/lib/test-utils/factories/ServerMockFactory.ts +5 -9
  358. package/lib/test-utils/factories/StoreMockFactory.ts +14 -25
  359. package/lib/test-utils/fixtures.ts +45 -45
  360. package/lib/test-utils/helpers/asyncHelpers.test.ts +15 -18
  361. package/lib/test-utils/helpers/asyncHelpers.ts +11 -20
  362. package/lib/test-utils/helpers.ts +1 -5
  363. package/lib/test-utils/index.ts +0 -4
  364. package/lib/test-utils/mockFactories.ts +12 -18
  365. package/lib/test-utils/mocks.ts +4 -2
  366. package/package.json +1 -1
  367. package/scripts/build-meno-filter.ts +1 -4
  368. package/vite.config.ts +4 -4
  369. package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
  370. package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
  371. package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
  372. package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
  373. package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
  374. package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
  375. package/dist/chunks/chunk-JGP5A3Y5.js.map +0 -7
  376. package/dist/chunks/chunk-JGWFTO6P.js.map +0 -7
  377. package/dist/chunks/chunk-O3NAGJP4.js.map +0 -7
  378. package/dist/chunks/chunk-QB2LNO4W.js.map +0 -7
  379. package/dist/chunks/chunk-R6XHAFBF.js.map +0 -7
  380. package/dist/chunks/chunk-UB44F4Z2.js.map +0 -7
  381. package/dist/chunks/chunk-WQFG7PAH.js.map +0 -7
  382. package/dist/chunks/chunk-X754AHS5.js.map +0 -7
  383. package/dist/chunks/chunk-YBLHKYFF.js.map +0 -7
  384. package/dist/chunks/configService-R3OGU2UD.js +0 -13
  385. /package/dist/chunks/{configService-R3OGU2UD.js.map → configService-PRJZF7Y6.js.map} +0 -0
  386. /package/dist/chunks/{constants-STK2YBIW.js.map → constants-KIQEYMAM.js.map} +0 -0
  387. /package/dist/chunks/{fs-JGINUXGL.js.map → fs-ZI5JEU7V.js.map} +0 -0
@@ -15,7 +15,7 @@ import { isResponsiveStyle } from './styleUtils';
15
15
  export function applyStylesToNode(
16
16
  node: ComponentNode,
17
17
  styles: StyleValue | Record<string, string | number> | null | undefined,
18
- viewportWidth?: number
18
+ viewportWidth?: number,
19
19
  ): ComponentNode {
20
20
  if (!styles) return node;
21
21
 
@@ -45,12 +45,11 @@ export function applyStylesToNode(
45
45
  */
46
46
  export function deepMergeStyles(
47
47
  existing: StyleValue | Record<string, any>,
48
- instance: StyleValue | Record<string, any> | null | undefined
48
+ instance: StyleValue | Record<string, any> | null | undefined,
49
49
  ): StyleValue {
50
50
  if (!instance) return existing as StyleValue;
51
51
 
52
- const bothResponsive =
53
- isResponsiveStyle(existing as StyleValue) && isResponsiveStyle(instance as StyleValue);
52
+ const bothResponsive = isResponsiveStyle(existing as StyleValue) && isResponsiveStyle(instance as StyleValue);
54
53
 
55
54
  if (bothResponsive) {
56
55
  const e = existing as Record<string, any>;
@@ -78,7 +77,7 @@ export function deepMergeStyles(
78
77
  export function mergeNodeStyles(
79
78
  node: ComponentNode,
80
79
  instanceStyles: StyleValue | Record<string, string | number> | null | undefined,
81
- viewportWidth?: number
80
+ viewportWidth?: number,
82
81
  ): ComponentNode {
83
82
  if (!instanceStyles) return node;
84
83
 
@@ -110,10 +109,7 @@ export function mergeNodeStyles(
110
109
  * Extract styles from a ComponentNode based on its type
111
110
  * Returns a flat style object ready for React props
112
111
  */
113
- export function extractStylesFromNode(
114
- node: ComponentNode,
115
- viewportWidth?: number
116
- ): Record<string, string | number> {
112
+ export function extractStylesFromNode(node: ComponentNode, viewportWidth?: number): Record<string, string | number> {
117
113
  if (isComponentNode(node)) {
118
114
  // Component instance: styles are in props.style
119
115
  const style = node.props?.style;
@@ -130,4 +126,3 @@ export function extractStylesFromNode(
130
126
 
131
127
  return {};
132
128
  }
133
-
@@ -21,11 +21,13 @@ describe('styleUtils', () => {
21
21
  });
22
22
 
23
23
  test('should return true for object with multiple responsive keys', () => {
24
- expect(isResponsiveStyle({
25
- base: { color: 'red' },
26
- tablet: { color: 'blue' },
27
- mobile: { color: 'green' },
28
- })).toBe(true);
24
+ expect(
25
+ isResponsiveStyle({
26
+ base: { color: 'red' },
27
+ tablet: { color: 'blue' },
28
+ mobile: { color: 'green' },
29
+ }),
30
+ ).toBe(true);
29
31
  });
30
32
 
31
33
  test('should return false for regular style object', () => {
@@ -58,10 +60,12 @@ describe('styleUtils', () => {
58
60
  });
59
61
 
60
62
  test('should handle object with base key and other properties', () => {
61
- expect(isResponsiveStyle({
62
- base: { color: 'red' },
63
- customProp: 'value',
64
- } as any)).toBe(true);
63
+ expect(
64
+ isResponsiveStyle({
65
+ base: { color: 'red' },
66
+ customProp: 'value',
67
+ } as any),
68
+ ).toBe(true);
65
69
  });
66
70
  });
67
71
 
@@ -71,41 +75,51 @@ describe('styleUtils', () => {
71
75
  });
72
76
 
73
77
  test('should return true for style object with string values', () => {
74
- expect(isStyleObject({
75
- color: 'red',
76
- backgroundColor: 'blue',
77
- padding: '10px',
78
- })).toBe(true);
78
+ expect(
79
+ isStyleObject({
80
+ color: 'red',
81
+ backgroundColor: 'blue',
82
+ padding: '10px',
83
+ }),
84
+ ).toBe(true);
79
85
  });
80
86
 
81
87
  test('should return true for style object with number values', () => {
82
- expect(isStyleObject({
83
- width: 100,
84
- height: 200,
85
- opacity: 0.5,
86
- })).toBe(true);
88
+ expect(
89
+ isStyleObject({
90
+ width: 100,
91
+ height: 200,
92
+ opacity: 0.5,
93
+ }),
94
+ ).toBe(true);
87
95
  });
88
96
 
89
97
  test('should return true for style object with mixed string and number', () => {
90
- expect(isStyleObject({
91
- color: 'red',
92
- width: 100,
93
- fontSize: '16px',
94
- opacity: 0.8,
95
- })).toBe(true);
98
+ expect(
99
+ isStyleObject({
100
+ color: 'red',
101
+ width: 100,
102
+ fontSize: '16px',
103
+ opacity: 0.8,
104
+ }),
105
+ ).toBe(true);
96
106
  });
97
107
 
98
108
  test('should return true for style object with _mapping property', () => {
99
- expect(isStyleObject({
100
- color: { _mapping: 'theme.colors.primary' },
101
- })).toBe(true);
109
+ expect(
110
+ isStyleObject({
111
+ color: { _mapping: 'theme.colors.primary' },
112
+ }),
113
+ ).toBe(true);
102
114
  });
103
115
 
104
116
  test('should return false for responsive style object', () => {
105
- expect(isStyleObject({
106
- base: { color: 'red' },
107
- tablet: { color: 'blue' },
108
- })).toBe(false);
117
+ expect(
118
+ isStyleObject({
119
+ base: { color: 'red' },
120
+ tablet: { color: 'blue' },
121
+ }),
122
+ ).toBe(false);
109
123
  });
110
124
 
111
125
  test('should return false for object with only base key', () => {
@@ -138,25 +152,31 @@ describe('styleUtils', () => {
138
152
  });
139
153
 
140
154
  test('should return false for object with invalid value types', () => {
141
- expect(isStyleObject({
142
- color: 'red',
143
- invalid: [],
144
- })).toBe(false);
155
+ expect(
156
+ isStyleObject({
157
+ color: 'red',
158
+ invalid: [],
159
+ }),
160
+ ).toBe(false);
145
161
  });
146
162
 
147
163
  test('should return false for object with nested objects without _mapping', () => {
148
- expect(isStyleObject({
149
- color: 'red',
150
- nested: { prop: 'value' },
151
- })).toBe(false);
164
+ expect(
165
+ isStyleObject({
166
+ color: 'red',
167
+ nested: { prop: 'value' },
168
+ }),
169
+ ).toBe(false);
152
170
  });
153
171
 
154
172
  test('should handle complex StyleMapping objects', () => {
155
- expect(isStyleObject({
156
- color: { _mapping: 'colors.primary' },
157
- fontSize: '16px',
158
- width: 100,
159
- })).toBe(true);
173
+ expect(
174
+ isStyleObject({
175
+ color: { _mapping: 'colors.primary' },
176
+ fontSize: '16px',
177
+ width: 100,
178
+ }),
179
+ ).toBe(true);
160
180
  });
161
181
  });
162
182
 
@@ -166,10 +186,12 @@ describe('styleUtils', () => {
166
186
  });
167
187
 
168
188
  test('should return true for responsive style object', () => {
169
- expect(isStyleValue({
170
- base: { color: 'red' },
171
- tablet: { color: 'blue' },
172
- })).toBe(true);
189
+ expect(
190
+ isStyleValue({
191
+ base: { color: 'red' },
192
+ tablet: { color: 'blue' },
193
+ }),
194
+ ).toBe(true);
173
195
  });
174
196
 
175
197
  test('should return true for object with base key', () => {
@@ -218,21 +240,25 @@ describe('styleUtils', () => {
218
240
  });
219
241
 
220
242
  test('should handle complex responsive styles', () => {
221
- expect(isStyleValue({
222
- base: { color: 'red', fontSize: '18px' },
223
- tablet: { color: 'blue', fontSize: '16px' },
224
- mobile: { color: 'green', fontSize: '14px' },
225
- })).toBe(true);
243
+ expect(
244
+ isStyleValue({
245
+ base: { color: 'red', fontSize: '18px' },
246
+ tablet: { color: 'blue', fontSize: '16px' },
247
+ mobile: { color: 'green', fontSize: '14px' },
248
+ }),
249
+ ).toBe(true);
226
250
  });
227
251
 
228
252
  test('should handle complex style objects', () => {
229
- expect(isStyleValue({
230
- color: 'red',
231
- fontSize: '16px',
232
- width: 100,
233
- height: 200,
234
- opacity: 0.8,
235
- })).toBe(true);
253
+ expect(
254
+ isStyleValue({
255
+ color: 'red',
256
+ fontSize: '16px',
257
+ width: 100,
258
+ height: 200,
259
+ opacity: 0.8,
260
+ }),
261
+ ).toBe(true);
236
262
  });
237
263
  });
238
264
  });
@@ -11,7 +11,7 @@ export function isResponsiveStyle(style: StyleValue): style is ResponsiveStyleOb
11
11
  if (!style || typeof style !== 'object' || Array.isArray(style)) {
12
12
  return false;
13
13
  }
14
-
14
+
15
15
  // Check if it has base, tablet, or mobile keys (indicating responsive format)
16
16
  return 'base' in style || 'tablet' in style || 'mobile' in style;
17
17
  }
@@ -23,14 +23,14 @@ export function isStyleObject(style: unknown): style is StyleObject {
23
23
  if (!style || typeof style !== 'object' || Array.isArray(style)) {
24
24
  return false;
25
25
  }
26
-
26
+
27
27
  // StyleObject is a record of string keys to string | number | StyleMapping values
28
28
  // Check that it's not a ResponsiveStyleObject (which has base/tablet/mobile keys)
29
29
  // Use proper type narrowing instead of assertion
30
30
  if (!('base' in style) && !('tablet' in style) && !('mobile' in style)) {
31
31
  // All values should be string, number, or objects with _mapping property
32
32
  const obj = style as Record<string, unknown>;
33
- return Object.values(obj).every(value => {
33
+ return Object.values(obj).every((value) => {
34
34
  if (typeof value === 'string' || typeof value === 'number') {
35
35
  return true;
36
36
  }
@@ -40,7 +40,7 @@ export function isStyleObject(style: unknown): style is StyleObject {
40
40
  return false;
41
41
  });
42
42
  }
43
-
43
+
44
44
  return false; // This is a ResponsiveStyleObject, not a StyleObject
45
45
  }
46
46
 
@@ -51,7 +51,7 @@ export function isStyleValue(style: unknown): style is StyleValue {
51
51
  if (!style || typeof style !== 'object' || Array.isArray(style)) {
52
52
  return false;
53
53
  }
54
-
54
+
55
55
  // Check if it's a ResponsiveStyleObject
56
56
  if (isResponsiveStyle(style as StyleValue)) {
57
57
  return true;
@@ -60,4 +60,3 @@ export function isStyleValue(style: unknown): style is StyleValue {
60
60
  // Check if it's a StyleObject
61
61
  return isStyleObject(style);
62
62
  }
63
-
@@ -26,16 +26,16 @@ describe('themeDefaults', () => {
26
26
  });
27
27
 
28
28
  describe('DEFAULT_INPUT_STYLE', () => {
29
- test('should have Consolas monospace font', () => {
30
- expect(DEFAULT_INPUT_STYLE.fontFamily).toBe('Consolas, monospace');
29
+ test('should have Inter UI font stack', () => {
30
+ expect(DEFAULT_INPUT_STYLE.fontFamily).toBe("'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif");
31
31
  });
32
32
 
33
- test('should have 12px font size', () => {
34
- expect(DEFAULT_INPUT_STYLE.fontSize).toBe('12px');
33
+ test('should have 13px font size', () => {
34
+ expect(DEFAULT_INPUT_STYLE.fontSize).toBe('13px');
35
35
  });
36
36
 
37
- test('should have 4px 6px padding', () => {
38
- expect(DEFAULT_INPUT_STYLE.padding).toBe('4px 6px');
37
+ test('should have 6px 8px padding', () => {
38
+ expect(DEFAULT_INPUT_STYLE.padding).toBe('6px 8px');
39
39
  });
40
40
 
41
41
  test('should have 3px border radius', () => {
@@ -56,8 +56,8 @@ describe('themeDefaults', () => {
56
56
  expect(DEFAULT_TEXTAREA_STYLE.fontSize).toBe('13px');
57
57
  });
58
58
 
59
- test('should have 4px 6px padding', () => {
60
- expect(DEFAULT_TEXTAREA_STYLE.padding).toBe('4px 6px');
59
+ test('should have 6px 8px padding', () => {
60
+ expect(DEFAULT_TEXTAREA_STYLE.padding).toBe('6px 8px');
61
61
  });
62
62
 
63
63
  test('should have 3px border radius', () => {
@@ -103,7 +103,7 @@ describe('themeDefaults', () => {
103
103
  });
104
104
 
105
105
  test('should have input colors', () => {
106
- expect(DEFAULT_PROPS_PANEL_COLORS.inputBackground).toBe('#1e1e1e');
106
+ expect(DEFAULT_PROPS_PANEL_COLORS.inputBackground).toBe('#2a2a2a');
107
107
  expect(DEFAULT_PROPS_PANEL_COLORS.inputBorder).toBe('#444444');
108
108
  });
109
109
 
@@ -120,7 +120,7 @@ describe('themeDefaults', () => {
120
120
  });
121
121
 
122
122
  test('should have border colors', () => {
123
- expect(LIGHT_PROPS_PANEL_COLORS.border).toBe('#e0e0e0');
123
+ expect(LIGHT_PROPS_PANEL_COLORS.border).toBe('#e4e8ec');
124
124
  expect(LIGHT_PROPS_PANEL_COLORS.borderSecondary).toBe('#d0d0d0');
125
125
  });
126
126
 
@@ -146,7 +146,7 @@ describe('themeDefaults', () => {
146
146
  });
147
147
 
148
148
  test('should have input colors', () => {
149
- expect(LIGHT_PROPS_PANEL_COLORS.inputBackground).toBe('#ffffff');
149
+ expect(LIGHT_PROPS_PANEL_COLORS.inputBackground).toBe('#f5f7fa');
150
150
  expect(LIGHT_PROPS_PANEL_COLORS.inputBorder).toBe('#d0d0d0');
151
151
  });
152
152
 
@@ -31,9 +31,9 @@ export interface PropsPanelColors {
31
31
  * Spacing constants for props panel components
32
32
  */
33
33
  export interface PropsPanelSpacing {
34
- tight: string; // 2px - for label:colon:input gaps
35
- normal: string; // 4px - for standard gaps
36
- loose: string; // 8px - for larger gaps
34
+ tight: string; // 2px - for label:colon:input gaps
35
+ normal: string; // 4px - for standard gaps
36
+ loose: string; // 8px - for larger gaps
37
37
  }
38
38
 
39
39
  export const DEFAULT_PROPS_PANEL_SPACING: PropsPanelSpacing = {
@@ -129,4 +129,3 @@ export const LIGHT_PROPS_PANEL_COLORS: PropsPanelColors = {
129
129
  hoverBackground: '#f0f0f0',
130
130
  variableBackground: '#ebedf0',
131
131
  };
132
-