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.
- package/.claude/settings.local.json +1 -3
- package/bin/cli.ts +66 -261
- package/build-astro.ts +150 -128
- package/dist/bin/cli.js +42 -185
- package/dist/bin/cli.js.map +2 -2
- package/dist/chunks/chunk-2AR55GYH.js +42 -0
- package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
- package/dist/chunks/{chunk-JGWFTO6P.js → chunk-2IIQK7T3.js} +2624 -1389
- package/dist/chunks/chunk-2IIQK7T3.js.map +7 -0
- package/dist/chunks/chunk-4ZRU52J2.js +169 -0
- package/dist/chunks/chunk-4ZRU52J2.js.map +7 -0
- package/dist/chunks/{chunk-UB44F4Z2.js → chunk-5X4HCN7J.js} +5 -7
- package/dist/chunks/chunk-5X4HCN7J.js.map +7 -0
- package/dist/chunks/{chunk-WQFG7PAH.js → chunk-7CCVOL5M.js} +15 -19
- package/dist/chunks/chunk-7CCVOL5M.js.map +7 -0
- package/dist/chunks/{chunk-YBLHKYFF.js → chunk-AR7LHIFY.js} +8 -2
- package/dist/chunks/chunk-AR7LHIFY.js.map +7 -0
- package/dist/chunks/{chunk-O3NAGJP4.js → chunk-NUP7H7D3.js} +135 -41
- package/dist/chunks/chunk-NUP7H7D3.js.map +7 -0
- package/dist/chunks/{chunk-X754AHS5.js → chunk-QWTQZHG3.js} +194 -90
- package/dist/chunks/chunk-QWTQZHG3.js.map +7 -0
- package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-XTKNX4FW.js} +216 -87
- package/dist/chunks/chunk-XTKNX4FW.js.map +7 -0
- package/dist/chunks/{fs-JGINUXGL.js → fs-G3ANWEFP.js} +2 -2
- package/dist/lib/client/index.js +1003 -475
- package/dist/lib/client/index.js.map +3 -3
- package/dist/lib/server/index.js +14393 -6371
- package/dist/lib/server/index.js.map +4 -4
- package/dist/lib/shared/index.js +342 -101
- package/dist/lib/shared/index.js.map +4 -4
- package/dist/lib/shared/richtext/index.js +1 -1
- package/dist/lib/test-utils/index.js +64 -80
- package/dist/lib/test-utils/index.js.map +2 -2
- package/entries/client-router.tsx +10 -8
- package/lib/client/ClientInitializer.ts +8 -8
- package/lib/client/ErrorBoundary.test.tsx +246 -186
- package/lib/client/ErrorBoundary.tsx +183 -132
- package/lib/client/componentRegistry.test.ts +96 -108
- package/lib/client/componentRegistry.ts +1 -3
- package/lib/client/contexts/ThemeContext.tsx +3 -2
- package/lib/client/core/ComponentBuilder.test.ts +663 -560
- package/lib/client/core/ComponentBuilder.ts +427 -155
- package/lib/client/core/ComponentRenderer.test.tsx +2 -4
- package/lib/client/core/ComponentRenderer.tsx +46 -33
- package/lib/client/core/builders/embedBuilder.ts +242 -54
- package/lib/client/core/builders/linkBuilder.ts +72 -45
- package/lib/client/core/builders/linkNodeBuilder.ts +79 -54
- package/lib/client/core/builders/listBuilder.ts +155 -89
- package/lib/client/core/builders/localeListBuilder.ts +97 -62
- package/lib/client/core/builders/types.ts +5 -5
- package/lib/client/core/cmsTemplateProcessor.ts +8 -9
- package/lib/client/elementRegistry.ts +3 -3
- package/lib/client/fontFamiliesService.test.ts +2 -10
- package/lib/client/fontFamiliesService.ts +3 -3
- package/lib/client/hmr/HMRManager.tsx +47 -30
- package/lib/client/hmrCssReload.ts +49 -14
- package/lib/client/hmrWebSocket.ts +14 -19
- package/lib/client/hooks/useColorVariables.test.ts +21 -21
- package/lib/client/hooks/useColorVariables.ts +23 -18
- package/lib/client/hooks/usePropertyAutocomplete.ts +4 -6
- package/lib/client/hooks/useVariables.ts +6 -4
- package/lib/client/hydration/HydrationUtils.test.ts +24 -25
- package/lib/client/hydration/HydrationUtils.ts +3 -4
- package/lib/client/i18nConfigService.test.ts +2 -7
- package/lib/client/i18nConfigService.ts +2 -2
- package/lib/client/meno-filter/MenoFilter.test.ts +47 -49
- package/lib/client/meno-filter/MenoFilter.ts +14 -15
- package/lib/client/meno-filter/bindings.ts +18 -43
- package/lib/client/meno-filter/init.ts +4 -4
- package/lib/client/meno-filter/renderer.ts +30 -32
- package/lib/client/meno-filter/script.generated.ts +1 -3
- package/lib/client/meno-filter/ui.ts +4 -6
- package/lib/client/meno-filter/updates.ts +18 -23
- package/lib/client/meno-filter/utils.ts +1 -1
- package/lib/client/navigation.test.ts +174 -178
- package/lib/client/navigation.ts +0 -1
- package/lib/client/responsiveStyleResolver.knownTokens.test.ts +71 -0
- package/lib/client/responsiveStyleResolver.test.ts +234 -232
- package/lib/client/responsiveStyleResolver.ts +74 -20
- package/lib/client/routing/RouteLoader.test.ts +24 -25
- package/lib/client/routing/RouteLoader.ts +27 -35
- package/lib/client/routing/Router.tsx +210 -153
- package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
- package/lib/client/scripts/ScriptExecutor.ts +18 -36
- package/lib/client/services/PrefetchService.test.ts +3 -3
- package/lib/client/services/PrefetchService.ts +23 -29
- package/lib/client/styleProcessor.test.ts +9 -9
- package/lib/client/styleProcessor.ts +24 -15
- package/lib/client/styles/StyleInjector.test.ts +122 -115
- package/lib/client/styles/StyleInjector.ts +10 -7
- package/lib/client/styles/UtilityClassCollector.ts +62 -28
- package/lib/client/styles/cspNonce.test.ts +2 -5
- package/lib/client/templateEngine.test.ts +554 -488
- package/lib/client/templateEngine.ts +203 -73
- package/lib/client/theme.test.ts +1 -1
- package/lib/client/theme.ts +0 -1
- package/lib/client/utils/toast.ts +0 -1
- package/lib/server/__integration__/api-routes.test.ts +8 -4
- package/lib/server/__integration__/cms-integration.test.ts +1 -4
- package/lib/server/__integration__/server-lifecycle.test.ts +4 -5
- package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
- package/lib/server/__integration__/static-assets.test.ts +3 -3
- package/lib/server/__integration__/test-helpers.ts +87 -74
- package/lib/server/ab/generateFunctions.ts +12 -10
- package/lib/server/astro/cmsPageEmitter.ts +26 -42
- package/lib/server/astro/componentEmitter.ts +35 -43
- package/lib/server/astro/cssCollector.ts +10 -26
- package/lib/server/astro/nodeToAstro.test.ts +1754 -34
- package/lib/server/astro/nodeToAstro.ts +232 -216
- package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +115 -119
- package/lib/server/astro/normalizeOrphanTemplateProps.ts +11 -18
- package/lib/server/astro/pageEmitter.ts +9 -13
- package/lib/server/astro/tailwindMapper.test.ts +10 -37
- package/lib/server/astro/tailwindMapper.ts +33 -40
- package/lib/server/astro/templateTransformer.ts +17 -20
- package/lib/server/createServer.ts +7 -19
- package/lib/server/cssGenerator.test.ts +35 -44
- package/lib/server/cssGenerator.ts +8 -19
- package/lib/server/fileWatcher.test.ts +164 -13
- package/lib/server/fileWatcher.ts +209 -124
- package/lib/server/index.ts +14 -17
- package/lib/server/jsonLoader.test.ts +39 -2
- package/lib/server/jsonLoader.ts +39 -34
- package/lib/server/middleware/cors.test.ts +21 -21
- package/lib/server/middleware/cors.ts +28 -4
- package/lib/server/middleware/errorHandler.test.ts +7 -5
- package/lib/server/middleware/errorHandler.ts +3 -8
- package/lib/server/middleware/index.ts +0 -1
- package/lib/server/middleware/logger.test.ts +10 -8
- package/lib/server/middleware/logger.ts +17 -29
- package/lib/server/migrateTemplates.ts +3 -3
- package/lib/server/pageCache.test.ts +76 -77
- package/lib/server/pageCache.ts +0 -1
- package/lib/server/projectContext.ts +5 -4
- package/lib/server/providers/fileSystemCMSProvider.test.ts +142 -99
- package/lib/server/providers/fileSystemCMSProvider.ts +62 -38
- package/lib/server/routes/api/cms.test.ts +26 -14
- package/lib/server/routes/api/cms.ts +9 -14
- package/lib/server/routes/api/colors.test.ts +2 -2
- package/lib/server/routes/api/components.ts +31 -35
- package/lib/server/routes/api/config.ts +3 -4
- package/lib/server/routes/api/core-routes.ts +49 -76
- package/lib/server/routes/api/enums.test.ts +2 -2
- package/lib/server/routes/api/functions.ts +9 -17
- package/lib/server/routes/api/index.ts +3 -6
- package/lib/server/routes/api/pages.ts +8 -11
- package/lib/server/routes/api/shared.test.ts +1 -1
- package/lib/server/routes/api/shared.ts +12 -9
- package/lib/server/routes/api/variables.test.ts +3 -5
- package/lib/server/routes/api/variables.ts +1 -1
- package/lib/server/routes/index.ts +25 -28
- package/lib/server/routes/pages.ts +35 -31
- package/lib/server/routes/static.ts +17 -6
- package/lib/server/runtime/bundler.ts +98 -61
- package/lib/server/runtime/fs.ts +16 -26
- package/lib/server/runtime/httpServer.ts +8 -12
- package/lib/server/services/ColorService.test.ts +3 -3
- package/lib/server/services/ColorService.ts +37 -29
- package/lib/server/services/EnumService.test.ts +4 -8
- package/lib/server/services/EnumService.ts +11 -3
- package/lib/server/services/VariableService.test.ts +8 -12
- package/lib/server/services/VariableService.ts +11 -3
- package/lib/server/services/cmsService.test.ts +158 -120
- package/lib/server/services/cmsService.ts +36 -146
- package/lib/server/services/componentService.test.ts +125 -45
- package/lib/server/services/componentService.ts +70 -46
- package/lib/server/services/configService.test.ts +22 -45
- package/lib/server/services/configService.ts +50 -27
- package/lib/server/services/fileWatcherService.ts +42 -8
- package/lib/server/services/index.ts +0 -1
- package/lib/server/services/pageService.test.ts +8 -10
- package/lib/server/services/pageService.ts +32 -18
- package/lib/server/ssr/attributeBuilder.ts +18 -8
- package/lib/server/ssr/buildErrorOverlay.ts +11 -12
- package/lib/server/ssr/clientDataInjector.ts +7 -21
- package/lib/server/ssr/cmsSSRProcessor.ts +4 -8
- package/lib/server/ssr/cssCollector.ts +1 -1
- package/lib/server/ssr/errorOverlay.test.ts +1 -1
- package/lib/server/ssr/errorOverlay.ts +3 -9
- package/lib/server/ssr/htmlGenerator.nonce.test.ts +9 -14
- package/lib/server/ssr/htmlGenerator.test.ts +120 -44
- package/lib/server/ssr/htmlGenerator.ts +126 -91
- package/lib/server/ssr/imageMetadata.test.ts +3 -1
- package/lib/server/ssr/imageMetadata.ts +27 -21
- package/lib/server/ssr/jsCollector.test.ts +8 -18
- package/lib/server/ssr/jsCollector.ts +3 -8
- package/lib/server/ssr/liveReloadIntegration.test.ts +76 -36
- package/lib/server/ssr/metaTagGenerator.ts +2 -2
- package/lib/server/ssr/ssrRenderer.branches.test.ts +1103 -0
- package/lib/server/ssr/ssrRenderer.test.ts +316 -256
- package/lib/server/ssr/ssrRenderer.ts +795 -243
- package/lib/server/ssrRenderer.test.ts +1048 -954
- package/lib/server/utils/jsonLineMapper.test.ts +28 -28
- package/lib/server/utils/jsonLineMapper.ts +7 -7
- package/lib/server/validateStyleCoverage.ts +18 -21
- package/lib/server/websocketManager.ts +28 -19
- package/lib/shared/attributeNodeUtils.test.ts +15 -15
- package/lib/shared/attributeNodeUtils.ts +5 -12
- package/lib/shared/breakpoints.test.ts +5 -5
- package/lib/shared/breakpoints.ts +4 -11
- package/lib/shared/cmsQuery.test.ts +81 -0
- package/lib/shared/cmsQuery.ts +92 -0
- package/lib/shared/cmsQueryParser.test.ts +50 -42
- package/lib/shared/cmsQueryParser.ts +60 -38
- package/lib/shared/colorConversions.ts +9 -9
- package/lib/shared/colorVariableUtils.test.ts +27 -5
- package/lib/shared/colorVariableUtils.ts +21 -12
- package/lib/shared/componentRefs.ts +1 -5
- package/lib/shared/constants.test.ts +3 -3
- package/lib/shared/constants.ts +8 -8
- package/lib/shared/cssGeneration.test.ts +285 -144
- package/lib/shared/cssGeneration.ts +217 -531
- package/lib/shared/cssNamedColors.ts +152 -30
- package/lib/shared/cssProperties.test.ts +69 -70
- package/lib/shared/cssProperties.ts +298 -114
- package/lib/shared/elementClassName.test.ts +109 -109
- package/lib/shared/elementClassName.ts +3 -3
- package/lib/shared/elementUtils.ts +12 -16
- package/lib/shared/errorLogger.test.ts +12 -12
- package/lib/shared/errorLogger.ts +2 -10
- package/lib/shared/errors.test.ts +2 -13
- package/lib/shared/errors.ts +2 -8
- package/lib/shared/expressionEvaluator.test.ts +145 -0
- package/lib/shared/expressionEvaluator.ts +52 -24
- package/lib/shared/fontLoader.test.ts +32 -18
- package/lib/shared/fontLoader.ts +2 -2
- package/lib/shared/friendlyError.ts +2 -3
- package/lib/shared/gradientUtils.test.ts +3 -7
- package/lib/shared/gradientUtils.ts +17 -14
- package/lib/shared/hrefRefs.test.ts +2 -2
- package/lib/shared/hrefRefs.ts +2 -10
- package/lib/shared/i18n.test.ts +4 -4
- package/lib/shared/i18n.ts +18 -38
- package/lib/shared/index.ts +27 -0
- package/lib/shared/inlineSvgStyleRules.ts +14 -13
- package/lib/shared/interactiveStyleMappings.test.ts +32 -54
- package/lib/shared/interactiveStyleMappings.ts +11 -24
- package/lib/shared/interactiveStyles.test.ts +165 -188
- package/lib/shared/interfaces/contentProvider.ts +1 -1
- package/lib/shared/itemTemplateUtils.test.ts +11 -17
- package/lib/shared/itemTemplateUtils.ts +27 -39
- package/lib/shared/jsonRepair.ts +16 -10
- package/lib/shared/libraryLoader.test.ts +21 -55
- package/lib/shared/libraryLoader.ts +7 -22
- package/lib/shared/linkUtils.ts +1 -1
- package/lib/shared/logger.test.ts +66 -0
- package/lib/shared/logger.ts +94 -0
- package/lib/shared/markdown.ts +25 -0
- package/lib/shared/netlifyLocale404.test.ts +179 -0
- package/lib/shared/netlifyLocale404.ts +110 -0
- package/lib/shared/nodeUtils.test.ts +28 -16
- package/lib/shared/nodeUtils.ts +76 -23
- package/lib/shared/pathArrayUtils.test.ts +1 -2
- package/lib/shared/pathArrayUtils.ts +1 -1
- package/lib/shared/pathSecurity.ts +2 -2
- package/lib/shared/pathUtils.test.ts +4 -6
- package/lib/shared/pathUtils.ts +42 -49
- package/lib/shared/paths/Path.test.ts +2 -2
- package/lib/shared/paths/Path.ts +0 -1
- package/lib/shared/paths/PathConverter.test.ts +1 -1
- package/lib/shared/paths/PathConverter.ts +17 -20
- package/lib/shared/paths/PathUtils.ts +13 -13
- package/lib/shared/paths/PathValidator.test.ts +2 -15
- package/lib/shared/paths/PathValidator.ts +12 -10
- package/lib/shared/paths/index.ts +1 -2
- package/lib/shared/permissions.test.ts +168 -0
- package/lib/shared/permissions.ts +162 -0
- package/lib/shared/propResolver.test.ts +240 -244
- package/lib/shared/propResolver.ts +15 -26
- package/lib/shared/pxToRem.test.ts +7 -6
- package/lib/shared/pxToRem.ts +2 -5
- package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +12 -6
- package/lib/shared/registry/ClientRegistry.ts +0 -2
- package/lib/shared/registry/ComponentRegistry.test.ts +46 -32
- package/lib/shared/registry/ComponentRegistry.ts +12 -9
- package/lib/shared/registry/NodeTypeDefinition.ts +16 -9
- package/lib/shared/registry/RegistryManager.ts +1 -2
- package/lib/shared/registry/SSRRegistry.ts +0 -2
- package/lib/shared/registry/createNodeType.ts +7 -9
- package/lib/shared/registry/defineNodeType.ts +2 -6
- package/lib/shared/registry/fieldPresets.ts +3 -1
- package/lib/shared/registry/index.ts +0 -1
- package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
- package/lib/shared/registry/nodeTypes/CustomNodeType.ts +103 -0
- package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
- package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +48 -19
- package/lib/shared/registry/nodeTypes/IslandNodeType.ts +129 -0
- package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
- package/lib/shared/registry/nodeTypes/ListNodeType.ts +117 -77
- package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
- package/lib/shared/registry/nodeTypes/MarkdownNodeType.ts +78 -0
- package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +12 -8
- package/lib/shared/registry/nodeTypes/index.ts +26 -3
- package/lib/shared/responsiveScaling.test.ts +16 -34
- package/lib/shared/responsiveScaling.ts +61 -42
- package/lib/shared/responsiveStyleUtils.test.ts +0 -1
- package/lib/shared/responsiveStyleUtils.ts +11 -13
- package/lib/shared/richtext/htmlToTiptap.test.ts +139 -130
- package/lib/shared/richtext/htmlToTiptap.ts +2 -4
- package/lib/shared/richtext/tiptapToHtml.test.ts +5 -6
- package/lib/shared/richtext/types.ts +1 -8
- package/lib/shared/slugTranslator.test.ts +13 -13
- package/lib/shared/slugTranslator.ts +12 -16
- package/lib/shared/slugify.ts +9 -15
- package/lib/shared/styleNodeUtils.test.ts +8 -8
- package/lib/shared/styleNodeUtils.ts +18 -20
- package/lib/shared/styleUtils.test.ts +87 -61
- package/lib/shared/styleUtils.ts +5 -6
- package/lib/shared/themeDefaults.test.ts +11 -14
- package/lib/shared/themeDefaults.ts +3 -4
- package/lib/shared/tree/PathBuilder.test.ts +63 -145
- package/lib/shared/tree/PathBuilder.ts +59 -47
- package/lib/shared/treePathUtils.test.ts +51 -12
- package/lib/shared/treePathUtils.ts +91 -60
- package/lib/shared/types/api.ts +105 -8
- package/lib/shared/types/cms.test.ts +34 -0
- package/lib/shared/types/cms.ts +90 -34
- package/lib/shared/types/comment.ts +49 -16
- package/lib/shared/types/components.ts +51 -25
- package/lib/shared/types/errors.test.ts +1 -6
- package/lib/shared/types/errors.ts +3 -7
- package/lib/shared/types/experiments.ts +28 -28
- package/lib/shared/types/index.ts +25 -2
- package/lib/shared/types/permissions.ts +139 -0
- package/lib/shared/types/styles.ts +0 -1
- package/lib/shared/types/variables.test.ts +4 -13
- package/lib/shared/types/variables.ts +51 -30
- package/lib/shared/types.ts +1 -2
- package/lib/shared/utilityClassConfig.ts +751 -321
- package/lib/shared/utilityClassMapper.durability.test.ts +117 -0
- package/lib/shared/utilityClassMapper.test.ts +433 -95
- package/lib/shared/utilityClassMapper.ts +322 -249
- package/lib/shared/utilityClassNames.test.ts +38 -0
- package/lib/shared/utilityClassNames.ts +458 -0
- package/lib/shared/utils.test.ts +2 -10
- package/lib/shared/utils.ts +19 -10
- package/lib/shared/validation/cmsValidators.ts +2 -1
- package/lib/shared/validation/commentValidators.test.ts +53 -0
- package/lib/shared/validation/commentValidators.ts +12 -1
- package/lib/shared/validation/index.ts +1 -0
- package/lib/shared/validation/permissionsValidators.test.ts +49 -0
- package/lib/shared/validation/permissionsValidators.ts +49 -0
- package/lib/shared/validation/propValidator.test.ts +19 -21
- package/lib/shared/validation/propValidator.ts +13 -18
- package/lib/shared/validation/schemas.test.ts +64 -32
- package/lib/shared/validation/schemas.ts +616 -345
- package/lib/shared/validation/validators.test.ts +3 -8
- package/lib/shared/validation/validators.ts +89 -68
- package/lib/shared/viewportUnits.integration.test.ts +14 -10
- package/lib/shared/viewportUnits.test.ts +24 -23
- package/lib/shared/viewportUnits.ts +12 -5
- package/lib/test-utils/dom-setup.ts +1 -1
- package/lib/test-utils/factories/ConsoleMockFactory.ts +10 -14
- package/lib/test-utils/factories/DomMockFactory.ts +17 -23
- package/lib/test-utils/factories/EventMockFactory.ts +7 -13
- package/lib/test-utils/factories/FetchMockFactory.ts +39 -57
- package/lib/test-utils/factories/ServerMockFactory.ts +6 -10
- package/lib/test-utils/factories/StoreMockFactory.ts +18 -29
- package/lib/test-utils/fixtures.ts +45 -45
- package/lib/test-utils/helpers/asyncHelpers.test.ts +15 -18
- package/lib/test-utils/helpers/asyncHelpers.ts +11 -20
- package/lib/test-utils/helpers.ts +1 -5
- package/lib/test-utils/index.ts +0 -4
- package/lib/test-utils/mockFactories.ts +13 -19
- package/lib/test-utils/mocks.ts +6 -4
- package/package.json +3 -5
- package/scripts/build-for-publish.mjs +2 -4
- package/scripts/build-meno-filter.ts +4 -7
- package/tsconfig.json +1 -0
- package/vite.config.ts +4 -4
- package/build-next.ts +0 -1361
- package/build-static.test.ts +0 -424
- package/build-static.ts +0 -1074
- package/dist/build-static.js +0 -36
- package/dist/chunks/chunk-2MHDV5BF.js +0 -251
- package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
- package/dist/chunks/chunk-AZQYF6KE.js +0 -559
- package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
- package/dist/chunks/chunk-GZHGVVW3.js +0 -322
- package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
- package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
- package/dist/chunks/chunk-I7YIGZXT.js +0 -467
- package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
- package/dist/chunks/chunk-IGYR22T6.js +0 -6192
- package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
- package/dist/chunks/chunk-JGP5A3Y5.js +0 -1136
- package/dist/chunks/chunk-JGP5A3Y5.js.map +0 -7
- package/dist/chunks/chunk-JGWFTO6P.js.map +0 -7
- package/dist/chunks/chunk-O3NAGJP4.js.map +0 -7
- package/dist/chunks/chunk-QB2LNO4W.js +0 -77
- package/dist/chunks/chunk-QB2LNO4W.js.map +0 -7
- package/dist/chunks/chunk-R6XHAFBF.js +0 -3821
- package/dist/chunks/chunk-R6XHAFBF.js.map +0 -7
- package/dist/chunks/chunk-UB44F4Z2.js.map +0 -7
- package/dist/chunks/chunk-WQFG7PAH.js.map +0 -7
- package/dist/chunks/chunk-X754AHS5.js.map +0 -7
- package/dist/chunks/chunk-YBLHKYFF.js.map +0 -7
- package/dist/chunks/configService-R3OGU2UD.js +0 -13
- package/dist/chunks/configService-R3OGU2UD.js.map +0 -7
- package/dist/chunks/constants-STK2YBIW.js +0 -46
- package/dist/chunks/constants-STK2YBIW.js.map +0 -7
- package/dist/chunks/fs-JGINUXGL.js.map +0 -7
- package/dist/entries/server-router.js +0 -67
- package/dist/entries/server-router.js.map +0 -7
- package/entries/server-router.tsx +0 -81
- package/lib/server/providers/fileSystemPageProvider.ts +0 -160
- package/lib/server/webflow/buildWebflow.ts +0 -635
- package/lib/server/webflow/index.ts +0 -23
- package/lib/server/webflow/nodeToWebflow.test.ts +0 -3170
- package/lib/server/webflow/nodeToWebflow.ts +0 -2435
- package/lib/server/webflow/styleMapper.test.ts +0 -389
- package/lib/server/webflow/styleMapper.ts +0 -695
- package/lib/server/webflow/templateWrapper.ts +0 -49
- package/lib/server/webflow/types.ts +0 -396
- /package/dist/{build-static.js.map → chunks/fs-G3ANWEFP.js.map} +0 -0
|
@@ -15,44 +15,51 @@
|
|
|
15
15
|
|
|
16
16
|
import { generateSingleClassCSS, sortClassesByPropertyOrder, generateRuleForClass } from '../../shared/cssGeneration';
|
|
17
17
|
import { rewriteViewportUnits } from '../../shared/viewportUnits';
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
getCachedBreakpointConfig,
|
|
20
|
+
getCachedResponsiveScalesConfig,
|
|
21
|
+
getCachedRemConversionConfig,
|
|
22
|
+
getCachedKnownTokens,
|
|
23
|
+
loadKnownTokens,
|
|
24
|
+
} from '../responsiveStyleResolver';
|
|
19
25
|
import { DEFAULT_BREAKPOINTS, getBreakpointValues } from '../../shared/breakpoints';
|
|
26
|
+
import { breakpointClassPrefixes } from '../../shared/utilityClassNames';
|
|
20
27
|
import type { BreakpointConfig } from '../../shared/breakpoints';
|
|
21
28
|
import { DEFAULT_RESPONSIVE_SCALES } from '../../shared/responsiveScaling';
|
|
22
29
|
import { applyNonce } from './cspNonce';
|
|
23
30
|
|
|
24
31
|
/**
|
|
25
|
-
* Build a map from responsive prefix (e.g. '
|
|
26
|
-
* Same logic as generateSingleClassCSS / generateUtilityCSS.
|
|
32
|
+
* Build a map from responsive variant prefix (e.g. 'tablet:', 'mobile:') to
|
|
33
|
+
* breakpoint value. Same logic as generateSingleClassCSS / generateUtilityCSS.
|
|
27
34
|
*/
|
|
28
35
|
function buildResponsivePrefixMap(breakpoints: BreakpointConfig): Record<string, number> {
|
|
29
36
|
const breakpointValues = getBreakpointValues(breakpoints);
|
|
30
37
|
const map: Record<string, number> = {};
|
|
31
38
|
for (const [breakpointName, breakpointValue] of Object.entries(breakpointValues)) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
prefix =
|
|
39
|
+
// Both the current `max-tablet:` and legacy `tablet:` forms resolve to the same breakpoint value.
|
|
40
|
+
for (const prefix of breakpointClassPrefixes(breakpointName)) {
|
|
41
|
+
map[prefix] = breakpointValue;
|
|
35
42
|
}
|
|
36
|
-
map[prefix] = breakpointValue;
|
|
37
43
|
}
|
|
38
44
|
return map;
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
/**
|
|
42
48
|
* Get the responsive breakpoint value for a class, or 0 if it's not responsive.
|
|
43
|
-
* A class is responsive if it starts with a known breakpoint prefix and
|
|
44
|
-
* remainder generates a valid CSS rule (same heuristic as generateSingleClassCSS).
|
|
49
|
+
* A class is responsive if it starts with a known breakpoint variant prefix and
|
|
50
|
+
* the remainder generates a valid CSS rule (same heuristic as generateSingleClassCSS).
|
|
45
51
|
*/
|
|
46
52
|
function getClassBreakpointValue(
|
|
47
53
|
className: string,
|
|
48
|
-
prefixMap: Record<string, number
|
|
54
|
+
prefixMap: Record<string, number>,
|
|
55
|
+
knownTokens?: ReadonlySet<string>,
|
|
49
56
|
): number {
|
|
50
|
-
for (const prefix of Object.
|
|
51
|
-
if (className.startsWith(
|
|
52
|
-
const potentialClass = className.substring(prefix.length
|
|
53
|
-
const rule = generateRuleForClass(potentialClass);
|
|
54
|
-
if (rule
|
|
55
|
-
return
|
|
57
|
+
for (const [prefix, prefixValue] of Object.entries(prefixMap)) {
|
|
58
|
+
if (className.startsWith(prefix) && className.length > prefix.length) {
|
|
59
|
+
const potentialClass = className.substring(prefix.length);
|
|
60
|
+
const rule = generateRuleForClass(potentialClass, knownTokens);
|
|
61
|
+
if (rule) {
|
|
62
|
+
return prefixValue;
|
|
56
63
|
}
|
|
57
64
|
}
|
|
58
65
|
}
|
|
@@ -71,14 +78,15 @@ function getClassBreakpointValue(
|
|
|
71
78
|
*/
|
|
72
79
|
function sortClassesWithBreakpointOrder(
|
|
73
80
|
classes: Iterable<string>,
|
|
74
|
-
breakpoints: BreakpointConfig
|
|
81
|
+
breakpoints: BreakpointConfig,
|
|
82
|
+
knownTokens?: ReadonlySet<string>,
|
|
75
83
|
): string[] {
|
|
76
84
|
const prefixMap = buildResponsivePrefixMap(breakpoints);
|
|
77
85
|
const arr = Array.from(classes);
|
|
78
86
|
|
|
79
87
|
// Pre-compute sort keys for each class
|
|
80
|
-
const keys = arr.map(cls => {
|
|
81
|
-
const bpValue = getClassBreakpointValue(cls, prefixMap);
|
|
88
|
+
const keys = arr.map((cls) => {
|
|
89
|
+
const bpValue = getClassBreakpointValue(cls, prefixMap, knownTokens);
|
|
82
90
|
return { cls, isResponsive: bpValue > 0 ? 1 : 0, bpValue };
|
|
83
91
|
});
|
|
84
92
|
|
|
@@ -86,7 +94,9 @@ function sortClassesWithBreakpointOrder(
|
|
|
86
94
|
const propertySorted = sortClassesByPropertyOrder(arr);
|
|
87
95
|
const propertyOrderIndex = new Map<string, number>();
|
|
88
96
|
for (let i = 0; i < propertySorted.length; i++) {
|
|
89
|
-
|
|
97
|
+
const cls = propertySorted[i];
|
|
98
|
+
if (cls === undefined) continue;
|
|
99
|
+
propertyOrderIndex.set(cls, i);
|
|
90
100
|
}
|
|
91
101
|
|
|
92
102
|
keys.sort((a, b) => {
|
|
@@ -98,7 +108,7 @@ function sortClassesWithBreakpointOrder(
|
|
|
98
108
|
return (propertyOrderIndex.get(a.cls) ?? Infinity) - (propertyOrderIndex.get(b.cls) ?? Infinity);
|
|
99
109
|
});
|
|
100
110
|
|
|
101
|
-
return keys.map(k => k.cls);
|
|
111
|
+
return keys.map((k) => k.cls);
|
|
102
112
|
}
|
|
103
113
|
|
|
104
114
|
class UtilityClassCollectorImpl {
|
|
@@ -110,6 +120,9 @@ class UtilityClassCollectorImpl {
|
|
|
110
120
|
/** Cached reference to <style id="utility-css"> */
|
|
111
121
|
private styleEl: HTMLStyleElement | null = null;
|
|
112
122
|
|
|
123
|
+
/** Guards a single async warm of the known-token set (see collect()). */
|
|
124
|
+
private knownTokensPending = false;
|
|
125
|
+
|
|
113
126
|
/**
|
|
114
127
|
* Ensure we have a valid reference to the utility-css style element.
|
|
115
128
|
* Returns null during SSR (no document).
|
|
@@ -118,7 +131,7 @@ class UtilityClassCollectorImpl {
|
|
|
118
131
|
if (typeof document === 'undefined') return null;
|
|
119
132
|
|
|
120
133
|
// Check if cached ref is still in the DOM
|
|
121
|
-
if (this.styleEl
|
|
134
|
+
if (this.styleEl?.isConnected) {
|
|
122
135
|
return this.styleEl;
|
|
123
136
|
}
|
|
124
137
|
|
|
@@ -150,6 +163,10 @@ class UtilityClassCollectorImpl {
|
|
|
150
163
|
const breakpointConfig = getCachedBreakpointConfig() || DEFAULT_BREAKPOINTS;
|
|
151
164
|
const responsiveScalesConfig = getCachedResponsiveScalesConfig() || DEFAULT_RESPONSIVE_SCALES;
|
|
152
165
|
const remConversionConfig = getCachedRemConversionConfig() || undefined;
|
|
166
|
+
// The project's design tokens, needed to expand bare color-token classes (`bg-muted` →
|
|
167
|
+
// `background-color: var(--muted)`). Null until the async fetch resolves — warm it once below,
|
|
168
|
+
// then re-attempt the classes that produced no rule yet (they were skipped, not cached).
|
|
169
|
+
const knownTokens = getCachedKnownTokens() ?? undefined;
|
|
153
170
|
|
|
154
171
|
let hasNew = false;
|
|
155
172
|
for (const name of classNames) {
|
|
@@ -157,7 +174,13 @@ class UtilityClassCollectorImpl {
|
|
|
157
174
|
|
|
158
175
|
if (this.injectedRules.has(name)) continue;
|
|
159
176
|
|
|
160
|
-
const css = generateSingleClassCSS(
|
|
177
|
+
const css = generateSingleClassCSS(
|
|
178
|
+
name,
|
|
179
|
+
breakpointConfig,
|
|
180
|
+
responsiveScalesConfig,
|
|
181
|
+
remConversionConfig,
|
|
182
|
+
knownTokens,
|
|
183
|
+
);
|
|
161
184
|
if (css) {
|
|
162
185
|
// Rewrite vh/vw so design-canvas mode can pin viewport units to a
|
|
163
186
|
// stable px value (see viewportUnits.ts). No-op when --design-vh
|
|
@@ -171,14 +194,24 @@ class UtilityClassCollectorImpl {
|
|
|
171
194
|
// Rebuild style element with all rules sorted by property order.
|
|
172
195
|
// This ensures shorthands always precede longhands regardless of
|
|
173
196
|
// which collect() batch introduced each class.
|
|
174
|
-
const sorted = sortClassesWithBreakpointOrder(this.injectedRules.keys(), breakpointConfig);
|
|
197
|
+
const sorted = sortClassesWithBreakpointOrder(this.injectedRules.keys(), breakpointConfig, knownTokens);
|
|
175
198
|
const styleEl = this.ensureStyleElement();
|
|
176
199
|
if (styleEl) {
|
|
177
|
-
styleEl.textContent = sorted
|
|
178
|
-
.map(name => this.injectedRules.get(name)!)
|
|
179
|
-
.join('\n');
|
|
200
|
+
styleEl.textContent = sorted.map((name) => this.injectedRules.get(name)!).join('\n');
|
|
180
201
|
}
|
|
181
202
|
}
|
|
203
|
+
|
|
204
|
+
// First render runs before the token set has loaded, so bare color-token classes produce no
|
|
205
|
+
// rule. Warm the set once, then re-inject the still-uninjected classes so they pick up the
|
|
206
|
+
// resolved tokens (e.g. `bg-muted` gets its `background-color` after the fetch completes).
|
|
207
|
+
if (!getCachedKnownTokens() && !this.knownTokensPending) {
|
|
208
|
+
this.knownTokensPending = true;
|
|
209
|
+
void loadKnownTokens().then(() => {
|
|
210
|
+
this.knownTokensPending = false;
|
|
211
|
+
const pending = Array.from(this.classes).filter((n) => !this.injectedRules.has(n));
|
|
212
|
+
if (pending.length > 0) this.collect(pending);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
182
215
|
}
|
|
183
216
|
|
|
184
217
|
/**
|
|
@@ -197,7 +230,8 @@ class UtilityClassCollectorImpl {
|
|
|
197
230
|
destroy(): void {
|
|
198
231
|
this.classes.clear();
|
|
199
232
|
this.injectedRules.clear();
|
|
200
|
-
|
|
233
|
+
this.knownTokensPending = false;
|
|
234
|
+
if (this.styleEl?.isConnected) {
|
|
201
235
|
this.styleEl.remove();
|
|
202
236
|
}
|
|
203
237
|
this.styleEl = null;
|
|
@@ -4,12 +4,9 @@ import { getCspNonce, applyNonce, _resetCspNonceCacheForTests } from './cspNonce
|
|
|
4
4
|
// Minimal DOM mock — just enough for querySelector('meta[name="csp-nonce"]')
|
|
5
5
|
// and for setting `el.nonce`. Bun's runtime does not ship a DOM.
|
|
6
6
|
function installMockDocument(metaContent: string | null) {
|
|
7
|
-
const meta = metaContent === null
|
|
8
|
-
? null
|
|
9
|
-
: { getAttribute: (k: string) => (k === 'content' ? metaContent : null) };
|
|
7
|
+
const meta = metaContent === null ? null : { getAttribute: (k: string) => (k === 'content' ? metaContent : null) };
|
|
10
8
|
(globalThis as any).document = {
|
|
11
|
-
querySelector: (selector: string) =>
|
|
12
|
-
selector === 'meta[name="csp-nonce"]' ? meta : null,
|
|
9
|
+
querySelector: (selector: string) => (selector === 'meta[name="csp-nonce"]' ? meta : null),
|
|
13
10
|
};
|
|
14
11
|
}
|
|
15
12
|
|