meno-core 1.0.53 → 1.1.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 (415) hide show
  1. package/.claude/settings.local.json +1 -3
  2. package/bin/cli.ts +66 -261
  3. package/build-astro.ts +150 -128
  4. package/dist/bin/cli.js +42 -185
  5. package/dist/bin/cli.js.map +2 -2
  6. package/dist/chunks/chunk-2AR55GYH.js +42 -0
  7. package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
  8. package/dist/chunks/{chunk-JGWFTO6P.js → chunk-2IIQK7T3.js} +2624 -1389
  9. package/dist/chunks/chunk-2IIQK7T3.js.map +7 -0
  10. package/dist/chunks/chunk-4ZRU52J2.js +169 -0
  11. package/dist/chunks/chunk-4ZRU52J2.js.map +7 -0
  12. package/dist/chunks/{chunk-UB44F4Z2.js → chunk-5X4HCN7J.js} +5 -7
  13. package/dist/chunks/chunk-5X4HCN7J.js.map +7 -0
  14. package/dist/chunks/{chunk-WQFG7PAH.js → chunk-7CCVOL5M.js} +15 -19
  15. package/dist/chunks/chunk-7CCVOL5M.js.map +7 -0
  16. package/dist/chunks/{chunk-YBLHKYFF.js → chunk-AR7LHIFY.js} +8 -2
  17. package/dist/chunks/chunk-AR7LHIFY.js.map +7 -0
  18. package/dist/chunks/{chunk-O3NAGJP4.js → chunk-NUP7H7D3.js} +135 -41
  19. package/dist/chunks/chunk-NUP7H7D3.js.map +7 -0
  20. package/dist/chunks/{chunk-X754AHS5.js → chunk-QWTQZHG3.js} +194 -90
  21. package/dist/chunks/chunk-QWTQZHG3.js.map +7 -0
  22. package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-XTKNX4FW.js} +216 -87
  23. package/dist/chunks/chunk-XTKNX4FW.js.map +7 -0
  24. package/dist/chunks/{fs-JGINUXGL.js → fs-G3ANWEFP.js} +2 -2
  25. package/dist/lib/client/index.js +1003 -475
  26. package/dist/lib/client/index.js.map +3 -3
  27. package/dist/lib/server/index.js +14393 -6371
  28. package/dist/lib/server/index.js.map +4 -4
  29. package/dist/lib/shared/index.js +342 -101
  30. package/dist/lib/shared/index.js.map +4 -4
  31. package/dist/lib/shared/richtext/index.js +1 -1
  32. package/dist/lib/test-utils/index.js +64 -80
  33. package/dist/lib/test-utils/index.js.map +2 -2
  34. package/entries/client-router.tsx +10 -8
  35. package/lib/client/ClientInitializer.ts +8 -8
  36. package/lib/client/ErrorBoundary.test.tsx +246 -186
  37. package/lib/client/ErrorBoundary.tsx +183 -132
  38. package/lib/client/componentRegistry.test.ts +96 -108
  39. package/lib/client/componentRegistry.ts +1 -3
  40. package/lib/client/contexts/ThemeContext.tsx +3 -2
  41. package/lib/client/core/ComponentBuilder.test.ts +663 -560
  42. package/lib/client/core/ComponentBuilder.ts +427 -155
  43. package/lib/client/core/ComponentRenderer.test.tsx +2 -4
  44. package/lib/client/core/ComponentRenderer.tsx +46 -33
  45. package/lib/client/core/builders/embedBuilder.ts +242 -54
  46. package/lib/client/core/builders/linkBuilder.ts +72 -45
  47. package/lib/client/core/builders/linkNodeBuilder.ts +79 -54
  48. package/lib/client/core/builders/listBuilder.ts +155 -89
  49. package/lib/client/core/builders/localeListBuilder.ts +97 -62
  50. package/lib/client/core/builders/types.ts +5 -5
  51. package/lib/client/core/cmsTemplateProcessor.ts +8 -9
  52. package/lib/client/elementRegistry.ts +3 -3
  53. package/lib/client/fontFamiliesService.test.ts +2 -10
  54. package/lib/client/fontFamiliesService.ts +3 -3
  55. package/lib/client/hmr/HMRManager.tsx +47 -30
  56. package/lib/client/hmrCssReload.ts +49 -14
  57. package/lib/client/hmrWebSocket.ts +14 -19
  58. package/lib/client/hooks/useColorVariables.test.ts +21 -21
  59. package/lib/client/hooks/useColorVariables.ts +23 -18
  60. package/lib/client/hooks/usePropertyAutocomplete.ts +4 -6
  61. package/lib/client/hooks/useVariables.ts +6 -4
  62. package/lib/client/hydration/HydrationUtils.test.ts +24 -25
  63. package/lib/client/hydration/HydrationUtils.ts +3 -4
  64. package/lib/client/i18nConfigService.test.ts +2 -7
  65. package/lib/client/i18nConfigService.ts +2 -2
  66. package/lib/client/meno-filter/MenoFilter.test.ts +47 -49
  67. package/lib/client/meno-filter/MenoFilter.ts +14 -15
  68. package/lib/client/meno-filter/bindings.ts +18 -43
  69. package/lib/client/meno-filter/init.ts +4 -4
  70. package/lib/client/meno-filter/renderer.ts +30 -32
  71. package/lib/client/meno-filter/script.generated.ts +1 -3
  72. package/lib/client/meno-filter/ui.ts +4 -6
  73. package/lib/client/meno-filter/updates.ts +18 -23
  74. package/lib/client/meno-filter/utils.ts +1 -1
  75. package/lib/client/navigation.test.ts +174 -178
  76. package/lib/client/navigation.ts +0 -1
  77. package/lib/client/responsiveStyleResolver.knownTokens.test.ts +71 -0
  78. package/lib/client/responsiveStyleResolver.test.ts +234 -232
  79. package/lib/client/responsiveStyleResolver.ts +74 -20
  80. package/lib/client/routing/RouteLoader.test.ts +24 -25
  81. package/lib/client/routing/RouteLoader.ts +27 -35
  82. package/lib/client/routing/Router.tsx +210 -153
  83. package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
  84. package/lib/client/scripts/ScriptExecutor.ts +18 -36
  85. package/lib/client/services/PrefetchService.test.ts +3 -3
  86. package/lib/client/services/PrefetchService.ts +23 -29
  87. package/lib/client/styleProcessor.test.ts +9 -9
  88. package/lib/client/styleProcessor.ts +24 -15
  89. package/lib/client/styles/StyleInjector.test.ts +122 -115
  90. package/lib/client/styles/StyleInjector.ts +10 -7
  91. package/lib/client/styles/UtilityClassCollector.ts +62 -28
  92. package/lib/client/styles/cspNonce.test.ts +2 -5
  93. package/lib/client/templateEngine.test.ts +554 -488
  94. package/lib/client/templateEngine.ts +203 -73
  95. package/lib/client/theme.test.ts +1 -1
  96. package/lib/client/theme.ts +0 -1
  97. package/lib/client/utils/toast.ts +0 -1
  98. package/lib/server/__integration__/api-routes.test.ts +8 -4
  99. package/lib/server/__integration__/cms-integration.test.ts +1 -4
  100. package/lib/server/__integration__/server-lifecycle.test.ts +4 -5
  101. package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
  102. package/lib/server/__integration__/static-assets.test.ts +3 -3
  103. package/lib/server/__integration__/test-helpers.ts +87 -74
  104. package/lib/server/ab/generateFunctions.ts +12 -10
  105. package/lib/server/astro/cmsPageEmitter.ts +26 -42
  106. package/lib/server/astro/componentEmitter.ts +35 -43
  107. package/lib/server/astro/cssCollector.ts +10 -26
  108. package/lib/server/astro/nodeToAstro.test.ts +1754 -34
  109. package/lib/server/astro/nodeToAstro.ts +232 -216
  110. package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +115 -119
  111. package/lib/server/astro/normalizeOrphanTemplateProps.ts +11 -18
  112. package/lib/server/astro/pageEmitter.ts +9 -13
  113. package/lib/server/astro/tailwindMapper.test.ts +10 -37
  114. package/lib/server/astro/tailwindMapper.ts +33 -40
  115. package/lib/server/astro/templateTransformer.ts +17 -20
  116. package/lib/server/createServer.ts +7 -19
  117. package/lib/server/cssGenerator.test.ts +35 -44
  118. package/lib/server/cssGenerator.ts +8 -19
  119. package/lib/server/fileWatcher.test.ts +164 -13
  120. package/lib/server/fileWatcher.ts +209 -124
  121. package/lib/server/index.ts +14 -17
  122. package/lib/server/jsonLoader.test.ts +39 -2
  123. package/lib/server/jsonLoader.ts +39 -34
  124. package/lib/server/middleware/cors.test.ts +21 -21
  125. package/lib/server/middleware/cors.ts +28 -4
  126. package/lib/server/middleware/errorHandler.test.ts +7 -5
  127. package/lib/server/middleware/errorHandler.ts +3 -8
  128. package/lib/server/middleware/index.ts +0 -1
  129. package/lib/server/middleware/logger.test.ts +10 -8
  130. package/lib/server/middleware/logger.ts +17 -29
  131. package/lib/server/migrateTemplates.ts +3 -3
  132. package/lib/server/pageCache.test.ts +76 -77
  133. package/lib/server/pageCache.ts +0 -1
  134. package/lib/server/projectContext.ts +5 -4
  135. package/lib/server/providers/fileSystemCMSProvider.test.ts +142 -99
  136. package/lib/server/providers/fileSystemCMSProvider.ts +62 -38
  137. package/lib/server/routes/api/cms.test.ts +26 -14
  138. package/lib/server/routes/api/cms.ts +9 -14
  139. package/lib/server/routes/api/colors.test.ts +2 -2
  140. package/lib/server/routes/api/components.ts +31 -35
  141. package/lib/server/routes/api/config.ts +3 -4
  142. package/lib/server/routes/api/core-routes.ts +49 -76
  143. package/lib/server/routes/api/enums.test.ts +2 -2
  144. package/lib/server/routes/api/functions.ts +9 -17
  145. package/lib/server/routes/api/index.ts +3 -6
  146. package/lib/server/routes/api/pages.ts +8 -11
  147. package/lib/server/routes/api/shared.test.ts +1 -1
  148. package/lib/server/routes/api/shared.ts +12 -9
  149. package/lib/server/routes/api/variables.test.ts +3 -5
  150. package/lib/server/routes/api/variables.ts +1 -1
  151. package/lib/server/routes/index.ts +25 -28
  152. package/lib/server/routes/pages.ts +35 -31
  153. package/lib/server/routes/static.ts +17 -6
  154. package/lib/server/runtime/bundler.ts +98 -61
  155. package/lib/server/runtime/fs.ts +16 -26
  156. package/lib/server/runtime/httpServer.ts +8 -12
  157. package/lib/server/services/ColorService.test.ts +3 -3
  158. package/lib/server/services/ColorService.ts +37 -29
  159. package/lib/server/services/EnumService.test.ts +4 -8
  160. package/lib/server/services/EnumService.ts +11 -3
  161. package/lib/server/services/VariableService.test.ts +8 -12
  162. package/lib/server/services/VariableService.ts +11 -3
  163. package/lib/server/services/cmsService.test.ts +158 -120
  164. package/lib/server/services/cmsService.ts +36 -146
  165. package/lib/server/services/componentService.test.ts +125 -45
  166. package/lib/server/services/componentService.ts +70 -46
  167. package/lib/server/services/configService.test.ts +22 -45
  168. package/lib/server/services/configService.ts +50 -27
  169. package/lib/server/services/fileWatcherService.ts +42 -8
  170. package/lib/server/services/index.ts +0 -1
  171. package/lib/server/services/pageService.test.ts +8 -10
  172. package/lib/server/services/pageService.ts +32 -18
  173. package/lib/server/ssr/attributeBuilder.ts +18 -8
  174. package/lib/server/ssr/buildErrorOverlay.ts +11 -12
  175. package/lib/server/ssr/clientDataInjector.ts +7 -21
  176. package/lib/server/ssr/cmsSSRProcessor.ts +4 -8
  177. package/lib/server/ssr/cssCollector.ts +1 -1
  178. package/lib/server/ssr/errorOverlay.test.ts +1 -1
  179. package/lib/server/ssr/errorOverlay.ts +3 -9
  180. package/lib/server/ssr/htmlGenerator.nonce.test.ts +9 -14
  181. package/lib/server/ssr/htmlGenerator.test.ts +120 -44
  182. package/lib/server/ssr/htmlGenerator.ts +126 -91
  183. package/lib/server/ssr/imageMetadata.test.ts +3 -1
  184. package/lib/server/ssr/imageMetadata.ts +27 -21
  185. package/lib/server/ssr/jsCollector.test.ts +8 -18
  186. package/lib/server/ssr/jsCollector.ts +3 -8
  187. package/lib/server/ssr/liveReloadIntegration.test.ts +76 -36
  188. package/lib/server/ssr/metaTagGenerator.ts +2 -2
  189. package/lib/server/ssr/ssrRenderer.branches.test.ts +1103 -0
  190. package/lib/server/ssr/ssrRenderer.test.ts +316 -256
  191. package/lib/server/ssr/ssrRenderer.ts +795 -243
  192. package/lib/server/ssrRenderer.test.ts +1048 -954
  193. package/lib/server/utils/jsonLineMapper.test.ts +28 -28
  194. package/lib/server/utils/jsonLineMapper.ts +7 -7
  195. package/lib/server/validateStyleCoverage.ts +18 -21
  196. package/lib/server/websocketManager.ts +28 -19
  197. package/lib/shared/attributeNodeUtils.test.ts +15 -15
  198. package/lib/shared/attributeNodeUtils.ts +5 -12
  199. package/lib/shared/breakpoints.test.ts +5 -5
  200. package/lib/shared/breakpoints.ts +4 -11
  201. package/lib/shared/cmsQuery.test.ts +81 -0
  202. package/lib/shared/cmsQuery.ts +92 -0
  203. package/lib/shared/cmsQueryParser.test.ts +50 -42
  204. package/lib/shared/cmsQueryParser.ts +60 -38
  205. package/lib/shared/colorConversions.ts +9 -9
  206. package/lib/shared/colorVariableUtils.test.ts +27 -5
  207. package/lib/shared/colorVariableUtils.ts +21 -12
  208. package/lib/shared/componentRefs.ts +1 -5
  209. package/lib/shared/constants.test.ts +3 -3
  210. package/lib/shared/constants.ts +8 -8
  211. package/lib/shared/cssGeneration.test.ts +285 -144
  212. package/lib/shared/cssGeneration.ts +217 -531
  213. package/lib/shared/cssNamedColors.ts +152 -30
  214. package/lib/shared/cssProperties.test.ts +69 -70
  215. package/lib/shared/cssProperties.ts +298 -114
  216. package/lib/shared/elementClassName.test.ts +109 -109
  217. package/lib/shared/elementClassName.ts +3 -3
  218. package/lib/shared/elementUtils.ts +12 -16
  219. package/lib/shared/errorLogger.test.ts +12 -12
  220. package/lib/shared/errorLogger.ts +2 -10
  221. package/lib/shared/errors.test.ts +2 -13
  222. package/lib/shared/errors.ts +2 -8
  223. package/lib/shared/expressionEvaluator.test.ts +145 -0
  224. package/lib/shared/expressionEvaluator.ts +52 -24
  225. package/lib/shared/fontLoader.test.ts +32 -18
  226. package/lib/shared/fontLoader.ts +2 -2
  227. package/lib/shared/friendlyError.ts +2 -3
  228. package/lib/shared/gradientUtils.test.ts +3 -7
  229. package/lib/shared/gradientUtils.ts +17 -14
  230. package/lib/shared/hrefRefs.test.ts +2 -2
  231. package/lib/shared/hrefRefs.ts +2 -10
  232. package/lib/shared/i18n.test.ts +4 -4
  233. package/lib/shared/i18n.ts +18 -38
  234. package/lib/shared/index.ts +27 -0
  235. package/lib/shared/inlineSvgStyleRules.ts +14 -13
  236. package/lib/shared/interactiveStyleMappings.test.ts +32 -54
  237. package/lib/shared/interactiveStyleMappings.ts +11 -24
  238. package/lib/shared/interactiveStyles.test.ts +165 -188
  239. package/lib/shared/interfaces/contentProvider.ts +1 -1
  240. package/lib/shared/itemTemplateUtils.test.ts +11 -17
  241. package/lib/shared/itemTemplateUtils.ts +27 -39
  242. package/lib/shared/jsonRepair.ts +16 -10
  243. package/lib/shared/libraryLoader.test.ts +21 -55
  244. package/lib/shared/libraryLoader.ts +7 -22
  245. package/lib/shared/linkUtils.ts +1 -1
  246. package/lib/shared/logger.test.ts +66 -0
  247. package/lib/shared/logger.ts +94 -0
  248. package/lib/shared/markdown.ts +25 -0
  249. package/lib/shared/netlifyLocale404.test.ts +179 -0
  250. package/lib/shared/netlifyLocale404.ts +110 -0
  251. package/lib/shared/nodeUtils.test.ts +28 -16
  252. package/lib/shared/nodeUtils.ts +76 -23
  253. package/lib/shared/pathArrayUtils.test.ts +1 -2
  254. package/lib/shared/pathArrayUtils.ts +1 -1
  255. package/lib/shared/pathSecurity.ts +2 -2
  256. package/lib/shared/pathUtils.test.ts +4 -6
  257. package/lib/shared/pathUtils.ts +42 -49
  258. package/lib/shared/paths/Path.test.ts +2 -2
  259. package/lib/shared/paths/Path.ts +0 -1
  260. package/lib/shared/paths/PathConverter.test.ts +1 -1
  261. package/lib/shared/paths/PathConverter.ts +17 -20
  262. package/lib/shared/paths/PathUtils.ts +13 -13
  263. package/lib/shared/paths/PathValidator.test.ts +2 -15
  264. package/lib/shared/paths/PathValidator.ts +12 -10
  265. package/lib/shared/paths/index.ts +1 -2
  266. package/lib/shared/permissions.test.ts +168 -0
  267. package/lib/shared/permissions.ts +162 -0
  268. package/lib/shared/propResolver.test.ts +240 -244
  269. package/lib/shared/propResolver.ts +15 -26
  270. package/lib/shared/pxToRem.test.ts +7 -6
  271. package/lib/shared/pxToRem.ts +2 -5
  272. package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +12 -6
  273. package/lib/shared/registry/ClientRegistry.ts +0 -2
  274. package/lib/shared/registry/ComponentRegistry.test.ts +46 -32
  275. package/lib/shared/registry/ComponentRegistry.ts +12 -9
  276. package/lib/shared/registry/NodeTypeDefinition.ts +16 -9
  277. package/lib/shared/registry/RegistryManager.ts +1 -2
  278. package/lib/shared/registry/SSRRegistry.ts +0 -2
  279. package/lib/shared/registry/createNodeType.ts +7 -9
  280. package/lib/shared/registry/defineNodeType.ts +2 -6
  281. package/lib/shared/registry/fieldPresets.ts +3 -1
  282. package/lib/shared/registry/index.ts +0 -1
  283. package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
  284. package/lib/shared/registry/nodeTypes/CustomNodeType.ts +103 -0
  285. package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
  286. package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +48 -19
  287. package/lib/shared/registry/nodeTypes/IslandNodeType.ts +129 -0
  288. package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
  289. package/lib/shared/registry/nodeTypes/ListNodeType.ts +117 -77
  290. package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
  291. package/lib/shared/registry/nodeTypes/MarkdownNodeType.ts +78 -0
  292. package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +12 -8
  293. package/lib/shared/registry/nodeTypes/index.ts +26 -3
  294. package/lib/shared/responsiveScaling.test.ts +16 -34
  295. package/lib/shared/responsiveScaling.ts +61 -42
  296. package/lib/shared/responsiveStyleUtils.test.ts +0 -1
  297. package/lib/shared/responsiveStyleUtils.ts +11 -13
  298. package/lib/shared/richtext/htmlToTiptap.test.ts +139 -130
  299. package/lib/shared/richtext/htmlToTiptap.ts +2 -4
  300. package/lib/shared/richtext/tiptapToHtml.test.ts +5 -6
  301. package/lib/shared/richtext/types.ts +1 -8
  302. package/lib/shared/slugTranslator.test.ts +13 -13
  303. package/lib/shared/slugTranslator.ts +12 -16
  304. package/lib/shared/slugify.ts +9 -15
  305. package/lib/shared/styleNodeUtils.test.ts +8 -8
  306. package/lib/shared/styleNodeUtils.ts +18 -20
  307. package/lib/shared/styleUtils.test.ts +87 -61
  308. package/lib/shared/styleUtils.ts +5 -6
  309. package/lib/shared/themeDefaults.test.ts +11 -14
  310. package/lib/shared/themeDefaults.ts +3 -4
  311. package/lib/shared/tree/PathBuilder.test.ts +63 -145
  312. package/lib/shared/tree/PathBuilder.ts +59 -47
  313. package/lib/shared/treePathUtils.test.ts +51 -12
  314. package/lib/shared/treePathUtils.ts +91 -60
  315. package/lib/shared/types/api.ts +105 -8
  316. package/lib/shared/types/cms.test.ts +34 -0
  317. package/lib/shared/types/cms.ts +90 -34
  318. package/lib/shared/types/comment.ts +49 -16
  319. package/lib/shared/types/components.ts +51 -25
  320. package/lib/shared/types/errors.test.ts +1 -6
  321. package/lib/shared/types/errors.ts +3 -7
  322. package/lib/shared/types/experiments.ts +28 -28
  323. package/lib/shared/types/index.ts +25 -2
  324. package/lib/shared/types/permissions.ts +139 -0
  325. package/lib/shared/types/styles.ts +0 -1
  326. package/lib/shared/types/variables.test.ts +4 -13
  327. package/lib/shared/types/variables.ts +51 -30
  328. package/lib/shared/types.ts +1 -2
  329. package/lib/shared/utilityClassConfig.ts +751 -321
  330. package/lib/shared/utilityClassMapper.durability.test.ts +117 -0
  331. package/lib/shared/utilityClassMapper.test.ts +433 -95
  332. package/lib/shared/utilityClassMapper.ts +322 -249
  333. package/lib/shared/utilityClassNames.test.ts +38 -0
  334. package/lib/shared/utilityClassNames.ts +458 -0
  335. package/lib/shared/utils.test.ts +2 -10
  336. package/lib/shared/utils.ts +19 -10
  337. package/lib/shared/validation/cmsValidators.ts +2 -1
  338. package/lib/shared/validation/commentValidators.test.ts +53 -0
  339. package/lib/shared/validation/commentValidators.ts +12 -1
  340. package/lib/shared/validation/index.ts +1 -0
  341. package/lib/shared/validation/permissionsValidators.test.ts +49 -0
  342. package/lib/shared/validation/permissionsValidators.ts +49 -0
  343. package/lib/shared/validation/propValidator.test.ts +19 -21
  344. package/lib/shared/validation/propValidator.ts +13 -18
  345. package/lib/shared/validation/schemas.test.ts +64 -32
  346. package/lib/shared/validation/schemas.ts +616 -345
  347. package/lib/shared/validation/validators.test.ts +3 -8
  348. package/lib/shared/validation/validators.ts +89 -68
  349. package/lib/shared/viewportUnits.integration.test.ts +14 -10
  350. package/lib/shared/viewportUnits.test.ts +24 -23
  351. package/lib/shared/viewportUnits.ts +12 -5
  352. package/lib/test-utils/dom-setup.ts +1 -1
  353. package/lib/test-utils/factories/ConsoleMockFactory.ts +10 -14
  354. package/lib/test-utils/factories/DomMockFactory.ts +17 -23
  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 +6 -10
  358. package/lib/test-utils/factories/StoreMockFactory.ts +18 -29
  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 +13 -19
  365. package/lib/test-utils/mocks.ts +6 -4
  366. package/package.json +3 -5
  367. package/scripts/build-for-publish.mjs +2 -4
  368. package/scripts/build-meno-filter.ts +4 -7
  369. package/tsconfig.json +1 -0
  370. package/vite.config.ts +4 -4
  371. package/build-next.ts +0 -1361
  372. package/build-static.test.ts +0 -424
  373. package/build-static.ts +0 -1074
  374. package/dist/build-static.js +0 -36
  375. package/dist/chunks/chunk-2MHDV5BF.js +0 -251
  376. package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
  377. package/dist/chunks/chunk-AZQYF6KE.js +0 -559
  378. package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
  379. package/dist/chunks/chunk-GZHGVVW3.js +0 -322
  380. package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
  381. package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
  382. package/dist/chunks/chunk-I7YIGZXT.js +0 -467
  383. package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
  384. package/dist/chunks/chunk-IGYR22T6.js +0 -6192
  385. package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
  386. package/dist/chunks/chunk-JGP5A3Y5.js +0 -1136
  387. package/dist/chunks/chunk-JGP5A3Y5.js.map +0 -7
  388. package/dist/chunks/chunk-JGWFTO6P.js.map +0 -7
  389. package/dist/chunks/chunk-O3NAGJP4.js.map +0 -7
  390. package/dist/chunks/chunk-QB2LNO4W.js +0 -77
  391. package/dist/chunks/chunk-QB2LNO4W.js.map +0 -7
  392. package/dist/chunks/chunk-R6XHAFBF.js +0 -3821
  393. package/dist/chunks/chunk-R6XHAFBF.js.map +0 -7
  394. package/dist/chunks/chunk-UB44F4Z2.js.map +0 -7
  395. package/dist/chunks/chunk-WQFG7PAH.js.map +0 -7
  396. package/dist/chunks/chunk-X754AHS5.js.map +0 -7
  397. package/dist/chunks/chunk-YBLHKYFF.js.map +0 -7
  398. package/dist/chunks/configService-R3OGU2UD.js +0 -13
  399. package/dist/chunks/configService-R3OGU2UD.js.map +0 -7
  400. package/dist/chunks/constants-STK2YBIW.js +0 -46
  401. package/dist/chunks/constants-STK2YBIW.js.map +0 -7
  402. package/dist/chunks/fs-JGINUXGL.js.map +0 -7
  403. package/dist/entries/server-router.js +0 -67
  404. package/dist/entries/server-router.js.map +0 -7
  405. package/entries/server-router.tsx +0 -81
  406. package/lib/server/providers/fileSystemPageProvider.ts +0 -160
  407. package/lib/server/webflow/buildWebflow.ts +0 -635
  408. package/lib/server/webflow/index.ts +0 -23
  409. package/lib/server/webflow/nodeToWebflow.test.ts +0 -3170
  410. package/lib/server/webflow/nodeToWebflow.ts +0 -2435
  411. package/lib/server/webflow/styleMapper.test.ts +0 -389
  412. package/lib/server/webflow/styleMapper.ts +0 -695
  413. package/lib/server/webflow/templateWrapper.ts +0 -49
  414. package/lib/server/webflow/types.ts +0 -396
  415. /package/dist/{build-static.js.map → chunks/fs-G3ANWEFP.js.map} +0 -0
@@ -52,7 +52,32 @@ export interface ResponsiveScales {
52
52
  export const DEFAULT_FLUID_RANGE: FluidRange = { min: 320, max: 1440 };
53
53
  export const DEFAULT_SITE_MARGIN: SiteMarginConfig = { min: 16, max: 32 };
54
54
 
55
- export type CSSPropertyType = 'fontSize' | 'padding' | 'margin' | 'gap' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft' | 'rowGap' | 'columnGap' | 'borderRadius' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderBottomLeftRadius' | 'borderBottomRightRadius' | 'width' | 'height' | 'maxWidth' | 'maxHeight' | 'minWidth' | 'minHeight';
55
+ export type CSSPropertyType =
56
+ | 'fontSize'
57
+ | 'padding'
58
+ | 'margin'
59
+ | 'gap'
60
+ | 'paddingTop'
61
+ | 'paddingRight'
62
+ | 'paddingBottom'
63
+ | 'paddingLeft'
64
+ | 'marginTop'
65
+ | 'marginRight'
66
+ | 'marginBottom'
67
+ | 'marginLeft'
68
+ | 'rowGap'
69
+ | 'columnGap'
70
+ | 'borderRadius'
71
+ | 'borderTopLeftRadius'
72
+ | 'borderTopRightRadius'
73
+ | 'borderBottomLeftRadius'
74
+ | 'borderBottomRightRadius'
75
+ | 'width'
76
+ | 'height'
77
+ | 'maxWidth'
78
+ | 'maxHeight'
79
+ | 'minWidth'
80
+ | 'minHeight';
56
81
 
57
82
  /**
58
83
  * Map CSS property to its scale category
@@ -64,8 +89,17 @@ function getScaleCategory(property: CSSPropertyType): keyof ResponsiveScales | n
64
89
  if (propertyStr.startsWith('padding')) return 'padding';
65
90
  if (propertyStr.startsWith('margin')) return 'margin';
66
91
  if (property === 'gap' || property === 'rowGap' || property === 'columnGap') return 'gap';
67
- if (propertyStr === 'borderRadius' || (propertyStr.startsWith('border') && propertyStr.includes('Radius'))) return 'borderRadius';
68
- if (property === 'width' || property === 'height' || property === 'maxWidth' || property === 'maxHeight' || property === 'minWidth' || property === 'minHeight') return 'size';
92
+ if (propertyStr === 'borderRadius' || (propertyStr.startsWith('border') && propertyStr.includes('Radius')))
93
+ return 'borderRadius';
94
+ if (
95
+ property === 'width' ||
96
+ property === 'height' ||
97
+ property === 'maxWidth' ||
98
+ property === 'maxHeight' ||
99
+ property === 'minWidth' ||
100
+ property === 'minHeight'
101
+ )
102
+ return 'size';
69
103
  return null;
70
104
  }
71
105
 
@@ -77,8 +111,8 @@ export function parseValue(valueStr: string): { value: number; unit: string } |
77
111
  const match = valueStr.trim().match(/^(-?[\d.]+)(px|rem|em|%|pt)$/);
78
112
  if (!match) return null;
79
113
  return {
80
- value: parseFloat(match[1]),
81
- unit: match[2],
114
+ value: parseFloat(match[1] ?? ''),
115
+ unit: match[2] ?? '',
82
116
  };
83
117
  }
84
118
 
@@ -139,11 +173,7 @@ export const SCALABLE_CSS_PROPERTIES: ReadonlySet<string> = new Set([
139
173
  * Calculate responsive value using the formula:
140
174
  * responsive_value = base_value + (base_value - base_reference) * (scale - 1)
141
175
  */
142
- export function calculateResponsiveValue(
143
- baseValue: number,
144
- baseReference: number,
145
- scale: number
146
- ): number {
176
+ export function calculateResponsiveValue(baseValue: number, baseReference: number, scale: number): number {
147
177
  // Values at or below baseReference stay unchanged
148
178
  if (Math.abs(baseValue) <= baseReference) {
149
179
  return Math.round(baseValue);
@@ -161,7 +191,7 @@ export function calculateResponsiveValue(
161
191
  export function getScaleMultiplier(
162
192
  scales: ResponsiveScales,
163
193
  property: CSSPropertyType,
164
- breakpoint: string
194
+ breakpoint: string,
165
195
  ): number | null {
166
196
  const category = getScaleCategory(property);
167
197
  if (!category || !scales[category]) return null;
@@ -179,18 +209,17 @@ export function parseMultiValue(valueStr: string): string[] {
179
209
  // First, convert hyphen separators to spaces (for class names like "p-0-80px" → "0-80px")
180
210
  // But only convert hyphens between values (digit/px followed by hyphen followed by digit/px)
181
211
  const normalized = valueStr.replace(/(?<=\w)-(?=\d|auto|inherit|initial|unset)/g, ' ');
182
- return normalized.trim().split(/\s+/).filter(v => v.length > 0);
212
+ return normalized
213
+ .trim()
214
+ .split(/\s+/)
215
+ .filter((v) => v.length > 0);
183
216
  }
184
217
 
185
218
  /**
186
219
  * Scale a single CSS value using the responsive scale
187
220
  * Returns null if the value cannot be parsed (no unit)
188
221
  */
189
- export function scaleValue(
190
- valueStr: string,
191
- baseReference: number,
192
- scale: number
193
- ): string | null {
222
+ export function scaleValue(valueStr: string, baseReference: number, scale: number): string | null {
194
223
  const parsed = parseValue(valueStr);
195
224
  if (!parsed) return null;
196
225
 
@@ -209,15 +238,11 @@ export function scaleValue(
209
238
  * e.g., "20px 40px" -> "18px 36px" (both values scaled independently)
210
239
  * Unitless values (0, auto, inherit) are kept as-is
211
240
  */
212
- export function scalePropertyValue(
213
- valueStr: string,
214
- baseReference: number,
215
- scale: number
216
- ): string | null {
241
+ export function scalePropertyValue(valueStr: string, baseReference: number, scale: number): string | null {
217
242
  const parts = parseMultiValue(valueStr);
218
243
  if (parts.length === 0) return null;
219
244
 
220
- const scaledParts = parts.map(part => {
245
+ const scaledParts = parts.map((part) => {
221
246
  // Try to scale the value
222
247
  const scaled = scaleValue(part, baseReference, scale);
223
248
  if (scaled !== null) {
@@ -244,7 +269,7 @@ export function getResponsiveValues(
244
269
  baseValue: string,
245
270
  property: CSSPropertyType,
246
271
  scales: ResponsiveScales,
247
- breakpointNames?: string[]
272
+ breakpointNames?: string[],
248
273
  ): Record<string, string | null> {
249
274
  if (!scales.enabled) {
250
275
  return { base: baseValue };
@@ -283,7 +308,7 @@ export function getResponsiveValues(
283
308
  export function resolveVariableValueAtBreakpoint(
284
309
  variable: { value: string; type: string; scales?: Record<string, string> },
285
310
  breakpoint: string,
286
- responsiveScales?: ResponsiveScales | null
311
+ responsiveScales?: ResponsiveScales | null,
287
312
  ): string {
288
313
  if (breakpoint === 'base') return variable.value;
289
314
 
@@ -291,11 +316,7 @@ export function resolveVariableValueAtBreakpoint(
291
316
  if (override !== undefined) return override;
292
317
 
293
318
  if (responsiveScales?.enabled && variable.type !== 'none') {
294
- const scale = getScaleMultiplier(
295
- responsiveScales,
296
- variable.type as CSSPropertyType,
297
- breakpoint
298
- );
319
+ const scale = getScaleMultiplier(responsiveScales, variable.type as CSSPropertyType, breakpoint);
299
320
  if (scale !== null) {
300
321
  const baseRef = responsiveScales.baseReference || 16;
301
322
  const scaled = scalePropertyValue(variable.value, baseRef, scale);
@@ -314,13 +335,14 @@ export function resolveVariableValueAtBreakpoint(
314
335
  * Returns null if there are no entries.
315
336
  */
316
337
  export function getSmallestBreakpointName(
317
- breakpoints: Record<string, { breakpoint: number }> | undefined | null
338
+ breakpoints: Record<string, { breakpoint: number }> | undefined | null,
318
339
  ): string | null {
319
340
  if (!breakpoints) return null;
320
341
  const entries = Object.entries(breakpoints);
321
- if (entries.length === 0) return null;
322
- let smallestName = entries[0][0];
323
- let smallestWidth = entries[0][1].breakpoint;
342
+ const firstEntry = entries[0];
343
+ if (entries.length === 0 || firstEntry === undefined) return null;
344
+ let smallestName = firstEntry[0];
345
+ let smallestWidth = firstEntry[1].breakpoint;
324
346
  for (const [name, cfg] of entries) {
325
347
  if (cfg.breakpoint < smallestWidth) {
326
348
  smallestWidth = cfg.breakpoint;
@@ -350,7 +372,7 @@ export function buildFluidClamp(
350
372
  scale: number,
351
373
  vpMin: number,
352
374
  vpMax: number,
353
- baseReference = 16
375
+ baseReference = 16,
354
376
  ): string {
355
377
  const max = baseValue;
356
378
  const min = calculateResponsiveValue(baseValue, baseReference, scale);
@@ -392,7 +414,7 @@ export function buildFluidClampWithExplicitMin(
392
414
  maxValue: number,
393
415
  unit: string,
394
416
  vpMin: number,
395
- vpMax: number
417
+ vpMax: number,
396
418
  ): string {
397
419
  if (minValue === maxValue || vpMax === vpMin) {
398
420
  return `${formatNumber(maxValue)}${unit}`;
@@ -424,10 +446,7 @@ function formatNumber(n: number): string {
424
446
  *
425
447
  * If `min === max` the function returns the plain value (no clamp).
426
448
  */
427
- export function buildSiteMarginClamp(
428
- siteMargin: SiteMarginConfig,
429
- fluidRange: FluidRange
430
- ): string {
449
+ export function buildSiteMarginClamp(siteMargin: SiteMarginConfig, fluidRange: FluidRange): string {
431
450
  const { min, max } = siteMargin;
432
451
  const { min: vpMin, max: vpMax } = fluidRange;
433
452
 
@@ -455,13 +474,13 @@ export function buildFluidPropertyValue(
455
474
  scale: number,
456
475
  vpMin: number,
457
476
  vpMax: number,
458
- baseReference = 16
477
+ baseReference = 16,
459
478
  ): string | null {
460
479
  const parts = parseMultiValue(valueStr);
461
480
  if (parts.length === 0) return null;
462
481
 
463
482
  let anyScaled = false;
464
- const out = parts.map(part => {
483
+ const out = parts.map((part) => {
465
484
  const parsed = parseValue(part);
466
485
  if (!parsed) return part;
467
486
  if (parsed.unit === '%' || parsed.unit === 'em') return part;
@@ -4,7 +4,6 @@ import {
4
4
  normalizeStyle,
5
5
  getAvailableBreakpoints,
6
6
  breakpointToViewportWidth,
7
- type MergeStrategy,
8
7
  } from './responsiveStyleUtils';
9
8
  import type { ResponsiveStyleObject, StyleObject } from './types';
10
9
  import type { BreakpointConfig } from './breakpoints';
@@ -17,7 +17,7 @@ export type MergeStrategy = 'all' | 'viewport';
17
17
 
18
18
  /**
19
19
  * Merge responsive styles into a single style object
20
- *
20
+ *
21
21
  * @param responsiveStyle - The responsive style object to merge
22
22
  * @param strategy - 'all' merges all breakpoints, 'viewport' merges based on active breakpoint
23
23
  * @param viewportWidth - Viewport width in pixels (required for 'viewport' strategy)
@@ -27,7 +27,7 @@ export function mergeResponsiveStyles(
27
27
  responsiveStyle: ResponsiveStyleObject,
28
28
  strategy: MergeStrategy = 'all',
29
29
  viewportWidth?: number,
30
- breakpoints: BreakpointConfig = DEFAULT_BREAKPOINTS
30
+ breakpoints: BreakpointConfig = DEFAULT_BREAKPOINTS,
31
31
  ): StyleObject {
32
32
  // Start with base styles
33
33
  const merged: StyleObject = { ...(responsiveStyle.base || {}) };
@@ -82,14 +82,14 @@ export function normalizeStyle(
82
82
  style: StyleValue | null | undefined,
83
83
  strategy: MergeStrategy = 'all',
84
84
  viewportWidth?: number,
85
- breakpoints?: BreakpointConfig
85
+ breakpoints?: BreakpointConfig,
86
86
  ): StyleObject | null {
87
87
  if (!style) return null;
88
-
88
+
89
89
  if (isResponsiveStyle(style)) {
90
90
  return mergeResponsiveStyles(style, strategy, viewportWidth, breakpoints);
91
91
  }
92
-
92
+
93
93
  // Legacy flat style object
94
94
  return style as StyleObject;
95
95
  }
@@ -98,25 +98,23 @@ export function normalizeStyle(
98
98
  * Get breakpoint names that have non-empty styles defined
99
99
  * Always includes 'base' if the responsive style exists
100
100
  */
101
- export function getAvailableBreakpoints(
102
- responsiveStyle: ResponsiveStyleObject | null | undefined
103
- ): BreakpointName[] {
101
+ export function getAvailableBreakpoints(responsiveStyle: ResponsiveStyleObject | null | undefined): BreakpointName[] {
104
102
  if (!responsiveStyle) return [];
105
-
103
+
106
104
  const available: BreakpointName[] = [];
107
-
105
+
108
106
  // Always include 'base' if it exists and has styles
109
107
  if (responsiveStyle.base && Object.keys(responsiveStyle.base).length > 0) {
110
108
  available.push('base');
111
109
  }
112
-
110
+
113
111
  // Check all other breakpoint properties (excluding 'base')
114
112
  for (const [key, value] of Object.entries(responsiveStyle)) {
115
113
  if (key !== 'base' && value && typeof value === 'object' && Object.keys(value).length > 0) {
116
114
  available.push(key);
117
115
  }
118
116
  }
119
-
117
+
120
118
  return available;
121
119
  }
122
120
 
@@ -126,7 +124,7 @@ export function getAvailableBreakpoints(
126
124
  */
127
125
  export function breakpointToViewportWidth(
128
126
  breakpoint: BreakpointName,
129
- breakpoints: BreakpointConfig = DEFAULT_BREAKPOINTS
127
+ breakpoints: BreakpointConfig = DEFAULT_BREAKPOINTS,
130
128
  ): number {
131
129
  // Extract breakpoint values for comparisons
132
130
  const breakpointValues = getBreakpointValues(breakpoints);