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
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
* Generates .astro files from StructuredComponentDefinitions
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type {
|
|
7
|
-
ComponentDefinition,
|
|
8
|
-
StructuredComponentDefinition,
|
|
9
|
-
PropDefinition,
|
|
10
|
-
} from '../../shared/types';
|
|
11
|
-
import type { BasePropDefinition, ListPropDefinition, LinkPropValue } from '../../shared/types/components';
|
|
6
|
+
import type { ComponentDefinition, StructuredComponentDefinition, PropDefinition } from '../../shared/types';
|
|
12
7
|
import type { BreakpointConfig } from '../../shared/breakpoints';
|
|
13
8
|
import { DEFAULT_BREAKPOINTS } from '../../shared/breakpoints';
|
|
14
9
|
import { nodeToAstro, type AstroEmitContext } from './nodeToAstro';
|
|
@@ -90,12 +85,16 @@ function mergeClassNameOntoRoot(template: string): string {
|
|
|
90
85
|
const tagMatch = template.match(/^(\s*<)(\w[\w-]*)([\s\S]*?)(\/?>)/);
|
|
91
86
|
if (!tagMatch) return template;
|
|
92
87
|
|
|
93
|
-
const
|
|
88
|
+
const fullMatch = tagMatch[0];
|
|
89
|
+
const prefix = tagMatch[1] ?? '';
|
|
90
|
+
const tagName = tagMatch[2] ?? '';
|
|
91
|
+
const attrs = tagMatch[3] ?? '';
|
|
92
|
+
const close = tagMatch[4] ?? '';
|
|
94
93
|
|
|
95
94
|
// Check for existing class:list
|
|
96
95
|
const classListMatch = attrs.match(/\s+class:list=\{(\[[\s\S]*?\])\}/);
|
|
97
96
|
if (classListMatch) {
|
|
98
|
-
const existingList = classListMatch[1];
|
|
97
|
+
const existingList = classListMatch[1] ?? '';
|
|
99
98
|
// Append className to the array
|
|
100
99
|
const newList = existingList.replace(/\]$/, `, className]`);
|
|
101
100
|
const newAttrs = attrs.replace(classListMatch[0], ` class:list={${newList}}`);
|
|
@@ -105,7 +104,7 @@ function mergeClassNameOntoRoot(template: string): string {
|
|
|
105
104
|
// Check for existing class="..." (static)
|
|
106
105
|
const classStaticMatch = attrs.match(/\s+class="([^"]*)"/);
|
|
107
106
|
if (classStaticMatch) {
|
|
108
|
-
const existing = classStaticMatch[1];
|
|
107
|
+
const existing = classStaticMatch[1] ?? '';
|
|
109
108
|
const newAttrs = attrs.replace(classStaticMatch[0], ` class:list={["${existing}", className]}`);
|
|
110
109
|
return prefix + tagName + newAttrs + close + template.slice(fullMatch.length);
|
|
111
110
|
}
|
|
@@ -113,13 +112,13 @@ function mergeClassNameOntoRoot(template: string): string {
|
|
|
113
112
|
// Check for existing class={expr} (dynamic)
|
|
114
113
|
const classDynMatch = attrs.match(/\s+class=\{([^}]+)\}/);
|
|
115
114
|
if (classDynMatch) {
|
|
116
|
-
const expr = classDynMatch[1];
|
|
115
|
+
const expr = classDynMatch[1] ?? '';
|
|
117
116
|
const newAttrs = attrs.replace(classDynMatch[0], ` class:list={[${expr}, className]}`);
|
|
118
117
|
return prefix + tagName + newAttrs + close + template.slice(fullMatch.length);
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
// No existing class — add class={className}
|
|
122
|
-
return prefix + tagName
|
|
121
|
+
return `${prefix + tagName} class={className}${attrs}${close}${template.slice(fullMatch.length)}`;
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
// ---------------------------------------------------------------------------
|
|
@@ -147,7 +146,7 @@ export function emitAstroComponent(
|
|
|
147
146
|
defaultLocale: string = 'en',
|
|
148
147
|
responsiveScales?: ResponsiveScales,
|
|
149
148
|
remConfig?: RemConversionConfig,
|
|
150
|
-
cmsOptions?: ComponentCmsOptions
|
|
149
|
+
cmsOptions?: ComponentCmsOptions,
|
|
151
150
|
): string {
|
|
152
151
|
const comp = def.component;
|
|
153
152
|
const propDefs = comp.interface || {};
|
|
@@ -208,21 +207,20 @@ export function emitAstroComponent(
|
|
|
208
207
|
propDefs,
|
|
209
208
|
ctx.imports,
|
|
210
209
|
ctx.dynamicTags,
|
|
211
|
-
|
|
210
|
+
ctx.needsI18nResolver || isCmsConsumer ? defaultLocale : undefined,
|
|
212
211
|
ctx.imageImports,
|
|
213
212
|
ctx.astroImports,
|
|
214
213
|
ctx.frontmatterLines,
|
|
215
|
-
isCmsConsumer
|
|
214
|
+
isCmsConsumer,
|
|
216
215
|
);
|
|
217
216
|
|
|
218
217
|
// Build style/script sections
|
|
219
218
|
const styleSection = comp.css ? `\n<style>\n${comp.css}\n</style>\n` : '';
|
|
220
|
-
const interactiveStyleSection =
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
: '';
|
|
219
|
+
const interactiveStyleSection =
|
|
220
|
+
ctx.collectedInteractiveStyles!.size > 0
|
|
221
|
+
? `\n<style is:global>\n${generateAllInteractiveCSS(ctx.collectedInteractiveStyles!, breakpoints, remConfig, responsiveScales)}\n</style>\n`
|
|
222
|
+
: '';
|
|
223
|
+
const scriptSection = comp.javascript ? buildScriptSection(comp.javascript, comp, propDefs) : '';
|
|
226
224
|
|
|
227
225
|
return `---\n${frontmatter}---\n${templateBody}${styleSection}${interactiveStyleSection}${scriptSection}`;
|
|
228
226
|
}
|
|
@@ -231,7 +229,7 @@ export function emitAstroComponent(
|
|
|
231
229
|
* Build the frontmatter section (imports, Props interface, destructuring)
|
|
232
230
|
*/
|
|
233
231
|
function buildFrontmatter(
|
|
234
|
-
|
|
232
|
+
_componentName: string,
|
|
235
233
|
propDefs: Record<string, PropDefinition>,
|
|
236
234
|
imports: Set<string>,
|
|
237
235
|
dynamicTags?: Map<string, string>,
|
|
@@ -239,7 +237,7 @@ function buildFrontmatter(
|
|
|
239
237
|
imageImports?: Map<string, string>,
|
|
240
238
|
astroImports?: Set<string>,
|
|
241
239
|
frontmatterLines?: string[],
|
|
242
|
-
isCmsConsumer?: boolean
|
|
240
|
+
isCmsConsumer?: boolean,
|
|
243
241
|
): string {
|
|
244
242
|
const lines: string[] = [];
|
|
245
243
|
|
|
@@ -332,7 +330,9 @@ function buildFrontmatter(
|
|
|
332
330
|
lines.push(`const r = (v: any) => {`);
|
|
333
331
|
lines.push(` if (v && typeof v === 'object' && v._i18n) {`);
|
|
334
332
|
lines.push(` const locale = Astro.currentLocale ?? '${i18nDefaultLocale}';`);
|
|
335
|
-
lines.push(
|
|
333
|
+
lines.push(
|
|
334
|
+
` return v[locale] ?? v['${i18nDefaultLocale}'] ?? Object.values(v).find((s: any) => typeof s === 'string' && s !== '') ?? '';`,
|
|
335
|
+
);
|
|
336
336
|
lines.push(` }`);
|
|
337
337
|
lines.push(` return v ?? '';`);
|
|
338
338
|
lines.push(`};`);
|
|
@@ -352,10 +352,7 @@ function buildFrontmatter(
|
|
|
352
352
|
/**
|
|
353
353
|
* Build a component with no structure (CSS/JS only)
|
|
354
354
|
*/
|
|
355
|
-
function buildNoStructureComponent(
|
|
356
|
-
name: string,
|
|
357
|
-
comp: StructuredComponentDefinition
|
|
358
|
-
): string {
|
|
355
|
+
function buildNoStructureComponent(_name: string, comp: StructuredComponentDefinition): string {
|
|
359
356
|
let content = '---\n---\n<slot />\n';
|
|
360
357
|
if (comp.css) content += `\n<style>\n${comp.css}\n</style>\n`;
|
|
361
358
|
if (comp.javascript) content += `\n<script is:inline>\n${comp.javascript}\n</script>\n`;
|
|
@@ -374,14 +371,14 @@ function transformDefineVarsJS(js: string, varNames: string[]): string {
|
|
|
374
371
|
let result = js;
|
|
375
372
|
|
|
376
373
|
// 1. Remove destructuring from props: `const { x, y } = props;`
|
|
377
|
-
result = result.replace(
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
);
|
|
374
|
+
result = result.replace(/^\s*(const|let|var)\s+\{([^}]+)\}\s*=\s*props\s*;?\s*$/gm, (match, _keyword, inner) => {
|
|
375
|
+
const names = inner
|
|
376
|
+
.split(',')
|
|
377
|
+
.map((s: string) => s.trim())
|
|
378
|
+
.filter(Boolean);
|
|
379
|
+
if (names.every((n: string) => varNames.includes(n))) return '';
|
|
380
|
+
return match;
|
|
381
|
+
});
|
|
385
382
|
|
|
386
383
|
// 2. Replace `props.X` with `X` (longest names first to avoid substring conflicts)
|
|
387
384
|
const sorted = [...varNames].sort((a, b) => b.length - a.length);
|
|
@@ -391,10 +388,7 @@ function transformDefineVarsJS(js: string, varNames: string[]): string {
|
|
|
391
388
|
|
|
392
389
|
// 3. Remove redeclarations of define:vars variables (already injected as const by Astro)
|
|
393
390
|
for (const name of varNames) {
|
|
394
|
-
result = result.replace(
|
|
395
|
-
new RegExp(`^\\s*(var|let|const)\\s+${name}\\s*=[^;]*;?\\s*$`, 'gm'),
|
|
396
|
-
''
|
|
397
|
-
);
|
|
391
|
+
result = result.replace(new RegExp(`^\\s*(var|let|const)\\s+${name}\\s*=[^;]*;?\\s*$`, 'gm'), '');
|
|
398
392
|
}
|
|
399
393
|
|
|
400
394
|
return result;
|
|
@@ -409,7 +403,7 @@ function transformDefineVarsJS(js: string, varNames: string[]): string {
|
|
|
409
403
|
function buildScriptSection(
|
|
410
404
|
js: string,
|
|
411
405
|
comp: StructuredComponentDefinition,
|
|
412
|
-
propDefs: Record<string, PropDefinition
|
|
406
|
+
propDefs: Record<string, PropDefinition>,
|
|
413
407
|
): string {
|
|
414
408
|
// Capture el immediately (document.currentScript is only valid during script execution)
|
|
415
409
|
// but defer the component init until DOMContentLoaded so deferred libraries are ready
|
|
@@ -423,9 +417,7 @@ function buildScriptSection(
|
|
|
423
417
|
`if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', __init__); } else { __init__(); }`;
|
|
424
418
|
|
|
425
419
|
if (comp.defineVars) {
|
|
426
|
-
const vars = comp.defineVars === true
|
|
427
|
-
? Object.keys(propDefs).filter(k => k !== 'children')
|
|
428
|
-
: comp.defineVars;
|
|
420
|
+
const vars = comp.defineVars === true ? Object.keys(propDefs).filter((k) => k !== 'children') : comp.defineVars;
|
|
429
421
|
|
|
430
422
|
if (vars.length > 0) {
|
|
431
423
|
const transformedJS = transformDefineVarsJS(js, vars);
|
|
@@ -6,11 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import type { ComponentDefinition, ComponentNode } from '../../shared/types';
|
|
9
|
-
import type {
|
|
10
|
-
StyleObject,
|
|
11
|
-
ResponsiveStyleObject,
|
|
12
|
-
StyleMapping,
|
|
13
|
-
} from '../../shared/types/styles';
|
|
9
|
+
import type { StyleObject, ResponsiveStyleObject, StyleMapping } from '../../shared/types/styles';
|
|
14
10
|
import type { BreakpointConfig } from '../../shared/breakpoints';
|
|
15
11
|
import { DEFAULT_BREAKPOINTS } from '../../shared/breakpoints';
|
|
16
12
|
import { propertyToTailwind } from './tailwindMapper';
|
|
@@ -23,16 +19,11 @@ import { getScaleMultiplier, scalePropertyValue } from '../../shared/responsiveS
|
|
|
23
19
|
|
|
24
20
|
function isStyleMapping(value: unknown): value is StyleMapping {
|
|
25
21
|
return (
|
|
26
|
-
typeof value === 'object' &&
|
|
27
|
-
value !== null &&
|
|
28
|
-
'_mapping' in value &&
|
|
29
|
-
(value as StyleMapping)._mapping === true
|
|
22
|
+
typeof value === 'object' && value !== null && '_mapping' in value && (value as StyleMapping)._mapping === true
|
|
30
23
|
);
|
|
31
24
|
}
|
|
32
25
|
|
|
33
|
-
function isResponsiveStyle(
|
|
34
|
-
style: StyleObject | ResponsiveStyleObject
|
|
35
|
-
): style is ResponsiveStyleObject {
|
|
26
|
+
function isResponsiveStyle(style: StyleObject | ResponsiveStyleObject): style is ResponsiveStyleObject {
|
|
36
27
|
return 'base' in style || 'tablet' in style || 'mobile' in style;
|
|
37
28
|
}
|
|
38
29
|
|
|
@@ -43,7 +34,7 @@ function collectFromStyle(
|
|
|
43
34
|
style: StyleObject | ResponsiveStyleObject | undefined,
|
|
44
35
|
classes: Set<string>,
|
|
45
36
|
breakpoints: BreakpointConfig,
|
|
46
|
-
responsiveScales?: ResponsiveScales
|
|
37
|
+
responsiveScales?: ResponsiveScales,
|
|
47
38
|
): void {
|
|
48
39
|
if (!style) return;
|
|
49
40
|
|
|
@@ -72,20 +63,17 @@ function collectFromFlatStyle(
|
|
|
72
63
|
classes: Set<string>,
|
|
73
64
|
breakpoints: BreakpointConfig,
|
|
74
65
|
responsiveScales?: ResponsiveScales,
|
|
75
|
-
sourceBreakpoint?: string
|
|
66
|
+
sourceBreakpoint?: string,
|
|
76
67
|
): void {
|
|
77
68
|
// Only auto-scale when mapping value lives in the base branch (or a flat
|
|
78
69
|
// top-level style). Mappings inside an explicit breakpoint branch already
|
|
79
70
|
// describe the override the author wants — don't re-scale them.
|
|
80
|
-
const shouldAutoScale =
|
|
81
|
-
responsiveScales?.enabled === true && sourceBreakpoint === undefined;
|
|
71
|
+
const shouldAutoScale = responsiveScales?.enabled === true && sourceBreakpoint === undefined;
|
|
82
72
|
|
|
83
73
|
const scaleBreakpoints = shouldAutoScale
|
|
84
74
|
? Object.entries(breakpoints)
|
|
85
75
|
.map(([name, cfg]) => ({ name, value: cfg?.breakpoint }))
|
|
86
|
-
.filter((bp): bp is { name: string; value: number } =>
|
|
87
|
-
typeof bp.value === 'number' && bp.value > 0
|
|
88
|
-
)
|
|
76
|
+
.filter((bp): bp is { name: string; value: number } => typeof bp.value === 'number' && bp.value > 0)
|
|
89
77
|
.sort((a, b) => b.value - a.value)
|
|
90
78
|
: [];
|
|
91
79
|
|
|
@@ -107,11 +95,7 @@ function collectFromFlatStyle(
|
|
|
107
95
|
const strValue = String(cssValue);
|
|
108
96
|
if (strValue === '') continue;
|
|
109
97
|
for (const { name: bpName, value: bpPixels } of scaleBreakpoints) {
|
|
110
|
-
const scale = getScaleMultiplier(
|
|
111
|
-
responsiveScales,
|
|
112
|
-
property as CSSPropertyType,
|
|
113
|
-
bpName
|
|
114
|
-
);
|
|
98
|
+
const scale = getScaleMultiplier(responsiveScales, property as CSSPropertyType, bpName);
|
|
115
99
|
if (scale == null) continue;
|
|
116
100
|
const scaledValue = scalePropertyValue(strValue, baseRef, scale);
|
|
117
101
|
if (scaledValue == null || scaledValue === strValue) continue;
|
|
@@ -131,7 +115,7 @@ function walkNode(
|
|
|
131
115
|
node: ComponentNode | ComponentNode[] | string | number | null | undefined,
|
|
132
116
|
classes: Set<string>,
|
|
133
117
|
breakpoints: BreakpointConfig,
|
|
134
|
-
responsiveScales?: ResponsiveScales
|
|
118
|
+
responsiveScales?: ResponsiveScales,
|
|
135
119
|
): void {
|
|
136
120
|
if (!node || typeof node === 'string' || typeof node === 'number') return;
|
|
137
121
|
|
|
@@ -179,7 +163,7 @@ function walkNode(
|
|
|
179
163
|
export function collectAllMappingClasses(
|
|
180
164
|
componentDefs: Record<string, ComponentDefinition>,
|
|
181
165
|
breakpoints: BreakpointConfig = DEFAULT_BREAKPOINTS,
|
|
182
|
-
responsiveScales?: ResponsiveScales
|
|
166
|
+
responsiveScales?: ResponsiveScales,
|
|
183
167
|
): Set<string> {
|
|
184
168
|
const classes = new Set<string>();
|
|
185
169
|
|