meno-core 1.0.53 → 1.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +1 -3
- package/bin/cli.ts +48 -57
- package/build-astro.ts +131 -113
- package/build-next.ts +109 -96
- package/build-static.test.ts +39 -10
- package/build-static.ts +120 -122
- package/dist/bin/cli.js +34 -38
- package/dist/bin/cli.js.map +2 -2
- package/dist/build-static.js +12 -11
- package/dist/chunks/chunk-2AR55GYH.js +42 -0
- package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
- package/dist/chunks/{chunk-IGYR22T6.js → chunk-2FN4UOVO.js} +512 -239
- package/dist/chunks/chunk-2FN4UOVO.js.map +7 -0
- package/dist/chunks/chunk-3XER4E5W.js +168 -0
- package/dist/chunks/chunk-3XER4E5W.js.map +7 -0
- package/dist/chunks/{chunk-X754AHS5.js → chunk-5ETZFREW.js} +9 -12
- package/dist/chunks/chunk-5ETZFREW.js.map +7 -0
- package/dist/chunks/{chunk-2MHDV5BF.js → chunk-7E4IF5L7.js} +15 -21
- package/dist/chunks/chunk-7E4IF5L7.js.map +7 -0
- package/dist/chunks/{chunk-JGWFTO6P.js → chunk-7HWQUVTU.js} +1578 -1349
- package/dist/chunks/chunk-7HWQUVTU.js.map +7 -0
- package/dist/chunks/{chunk-O3NAGJP4.js → chunk-AE3QK5QW.js} +110 -21
- package/dist/chunks/chunk-AE3QK5QW.js.map +7 -0
- package/dist/chunks/{chunk-GZHGVVW3.js → chunk-F6KTJYGV.js} +7 -7
- package/dist/chunks/chunk-F6KTJYGV.js.map +7 -0
- package/dist/chunks/{chunk-WQFG7PAH.js → chunk-FZITJSSS.js} +2 -6
- package/dist/chunks/chunk-FZITJSSS.js.map +7 -0
- package/dist/chunks/{chunk-QB2LNO4W.js → chunk-GSYYA5GX.js} +2 -2
- package/dist/chunks/chunk-GSYYA5GX.js.map +7 -0
- package/dist/chunks/{chunk-YBLHKYFF.js → chunk-HIZMY3EP.js} +1 -1
- package/dist/chunks/chunk-HIZMY3EP.js.map +7 -0
- package/dist/chunks/{chunk-AZQYF6KE.js → chunk-I2WEGYA7.js} +41 -176
- package/dist/chunks/chunk-I2WEGYA7.js.map +7 -0
- package/dist/chunks/{chunk-I7YIGZXT.js → chunk-JNO3CNLJ.js} +6 -9
- package/dist/chunks/chunk-JNO3CNLJ.js.map +7 -0
- package/dist/chunks/{chunk-UB44F4Z2.js → chunk-NVRBTSQG.js} +2 -4
- package/dist/chunks/chunk-NVRBTSQG.js.map +7 -0
- package/dist/chunks/{chunk-JGP5A3Y5.js → chunk-Q4OBWKXG.js} +40 -33
- package/dist/chunks/chunk-Q4OBWKXG.js.map +7 -0
- package/dist/chunks/{chunk-R6XHAFBF.js → chunk-QTE32Y53.js} +250 -242
- package/dist/chunks/chunk-QTE32Y53.js.map +7 -0
- package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-STDY3OVM.js} +214 -85
- package/dist/chunks/chunk-STDY3OVM.js.map +7 -0
- package/dist/chunks/configService-PRJZF7Y6.js +14 -0
- package/dist/chunks/{constants-STK2YBIW.js → constants-KIQEYMAM.js} +2 -2
- package/dist/chunks/{fs-JGINUXGL.js → fs-ZI5JEU7V.js} +2 -2
- package/dist/entries/server-router.js +14 -19
- package/dist/entries/server-router.js.map +2 -2
- package/dist/lib/client/index.js +638 -332
- package/dist/lib/client/index.js.map +2 -2
- package/dist/lib/server/index.js +177 -235
- package/dist/lib/server/index.js.map +2 -2
- package/dist/lib/shared/index.js +80 -44
- package/dist/lib/shared/index.js.map +2 -2
- package/dist/lib/shared/richtext/index.js +1 -1
- package/dist/lib/test-utils/index.js +38 -60
- package/dist/lib/test-utils/index.js.map +2 -2
- package/entries/client-router.tsx +10 -8
- package/entries/server-router.tsx +1 -7
- package/lib/client/ClientInitializer.ts +8 -8
- package/lib/client/ErrorBoundary.test.tsx +146 -143
- package/lib/client/ErrorBoundary.tsx +175 -127
- package/lib/client/componentRegistry.test.ts +96 -108
- package/lib/client/componentRegistry.ts +1 -2
- package/lib/client/contexts/ThemeContext.tsx +3 -2
- package/lib/client/core/ComponentBuilder.test.ts +513 -560
- package/lib/client/core/ComponentBuilder.ts +318 -146
- package/lib/client/core/ComponentRenderer.test.tsx +1 -2
- package/lib/client/core/ComponentRenderer.tsx +46 -33
- package/lib/client/core/builders/embedBuilder.ts +241 -53
- package/lib/client/core/builders/linkBuilder.ts +71 -44
- package/lib/client/core/builders/linkNodeBuilder.ts +78 -53
- package/lib/client/core/builders/listBuilder.ts +115 -86
- package/lib/client/core/builders/localeListBuilder.ts +95 -60
- package/lib/client/core/builders/types.ts +5 -5
- package/lib/client/core/cmsTemplateProcessor.ts +7 -7
- 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 +8 -0
- package/lib/client/hmrCssReload.ts +14 -8
- package/lib/client/hmrWebSocket.ts +9 -14
- package/lib/client/hooks/useColorVariables.test.ts +21 -21
- package/lib/client/hooks/useColorVariables.ts +12 -10
- package/lib/client/hooks/usePropertyAutocomplete.ts +3 -5
- package/lib/client/hooks/useVariables.ts +4 -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 +19 -21
- package/lib/client/meno-filter/MenoFilter.ts +5 -9
- package/lib/client/meno-filter/bindings.ts +15 -40
- package/lib/client/meno-filter/init.ts +1 -1
- package/lib/client/meno-filter/renderer.ts +23 -29
- package/lib/client/meno-filter/script.generated.ts +1 -3
- package/lib/client/meno-filter/ui.ts +3 -5
- package/lib/client/meno-filter/updates.ts +15 -21
- package/lib/client/navigation.test.ts +159 -159
- package/lib/client/navigation.ts +0 -1
- package/lib/client/responsiveStyleResolver.test.ts +230 -228
- package/lib/client/responsiveStyleResolver.ts +13 -16
- package/lib/client/routing/RouteLoader.test.ts +23 -24
- package/lib/client/routing/RouteLoader.ts +22 -35
- package/lib/client/routing/Router.tsx +31 -3
- package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
- package/lib/client/scripts/ScriptExecutor.ts +15 -33
- package/lib/client/services/PrefetchService.test.ts +2 -2
- package/lib/client/services/PrefetchService.ts +10 -24
- package/lib/client/styleProcessor.test.ts +9 -9
- package/lib/client/styleProcessor.ts +18 -15
- package/lib/client/styles/StyleInjector.test.ts +122 -115
- package/lib/client/styles/StyleInjector.ts +9 -6
- package/lib/client/styles/UtilityClassCollector.ts +19 -26
- package/lib/client/styles/cspNonce.test.ts +2 -5
- package/lib/client/templateEngine.test.ts +554 -482
- package/lib/client/templateEngine.ts +200 -64
- 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 +2 -5
- package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
- package/lib/server/__integration__/static-assets.test.ts +1 -1
- package/lib/server/__integration__/test-helpers.ts +84 -70
- package/lib/server/ab/generateFunctions.ts +12 -10
- package/lib/server/astro/cmsPageEmitter.ts +23 -38
- package/lib/server/astro/componentEmitter.ts +25 -36
- package/lib/server/astro/cssCollector.ts +10 -26
- package/lib/server/astro/nodeToAstro.test.ts +1750 -30
- package/lib/server/astro/nodeToAstro.ts +198 -187
- package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +105 -109
- package/lib/server/astro/normalizeOrphanTemplateProps.ts +4 -12
- 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 +14 -17
- package/lib/server/createServer.ts +5 -17
- package/lib/server/cssGenerator.test.ts +35 -44
- package/lib/server/cssGenerator.ts +6 -17
- package/lib/server/fileWatcher.test.ts +124 -10
- package/lib/server/fileWatcher.ts +124 -118
- package/lib/server/index.ts +7 -1
- package/lib/server/jsonLoader.test.ts +39 -2
- package/lib/server/jsonLoader.ts +33 -31
- package/lib/server/middleware/cors.test.ts +20 -20
- package/lib/server/middleware/cors.ts +28 -4
- package/lib/server/middleware/errorHandler.test.ts +5 -3
- package/lib/server/middleware/errorHandler.ts +3 -8
- package/lib/server/middleware/index.ts +0 -1
- package/lib/server/middleware/logger.test.ts +7 -5
- package/lib/server/middleware/logger.ts +10 -22
- package/lib/server/pageCache.test.ts +76 -77
- package/lib/server/pageCache.ts +0 -1
- package/lib/server/projectContext.ts +4 -3
- package/lib/server/providers/fileSystemCMSProvider.test.ts +124 -95
- package/lib/server/providers/fileSystemCMSProvider.ts +35 -20
- package/lib/server/providers/fileSystemPageProvider.test.ts +84 -0
- package/lib/server/providers/fileSystemPageProvider.ts +31 -12
- package/lib/server/routes/api/cms.test.ts +26 -14
- package/lib/server/routes/api/cms.ts +9 -14
- package/lib/server/routes/api/components.ts +30 -34
- package/lib/server/routes/api/config.ts +0 -1
- package/lib/server/routes/api/core-routes.ts +47 -74
- package/lib/server/routes/api/functions.ts +8 -16
- 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 +1 -3
- package/lib/server/routes/api/variables.ts +1 -1
- package/lib/server/routes/index.ts +23 -26
- package/lib/server/routes/pages.ts +34 -29
- package/lib/server/routes/static.ts +16 -4
- package/lib/server/runtime/bundler.ts +47 -32
- package/lib/server/runtime/fs.ts +3 -13
- package/lib/server/runtime/httpServer.ts +5 -9
- package/lib/server/services/ColorService.ts +32 -27
- package/lib/server/services/EnumService.test.ts +2 -6
- package/lib/server/services/EnumService.ts +7 -2
- package/lib/server/services/VariableService.test.ts +1 -5
- package/lib/server/services/VariableService.ts +6 -1
- package/lib/server/services/cmsService.test.ts +116 -78
- package/lib/server/services/cmsService.ts +24 -54
- package/lib/server/services/componentService.test.ts +122 -36
- package/lib/server/services/componentService.ts +54 -38
- package/lib/server/services/configService.test.ts +9 -31
- package/lib/server/services/configService.ts +20 -27
- package/lib/server/services/fileWatcherService.ts +40 -6
- package/lib/server/services/index.ts +0 -1
- package/lib/server/services/pageService.test.ts +1 -3
- package/lib/server/services/pageService.ts +14 -13
- package/lib/server/ssr/attributeBuilder.ts +16 -6
- package/lib/server/ssr/buildErrorOverlay.ts +11 -12
- package/lib/server/ssr/clientDataInjector.ts +7 -21
- package/lib/server/ssr/cmsSSRProcessor.ts +3 -6
- 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 +3 -9
- package/lib/server/ssr/htmlGenerator.test.ts +120 -43
- package/lib/server/ssr/htmlGenerator.ts +120 -85
- package/lib/server/ssr/imageMetadata.test.ts +3 -1
- package/lib/server/ssr/imageMetadata.ts +25 -19
- package/lib/server/ssr/jsCollector.test.ts +3 -13
- package/lib/server/ssr/jsCollector.ts +3 -8
- package/lib/server/ssr/liveReloadIntegration.test.ts +69 -28
- 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 +196 -246
- package/lib/server/ssr/ssrRenderer.ts +609 -225
- package/lib/server/ssrRenderer.test.ts +1044 -950
- package/lib/server/utils/jsonLineMapper.test.ts +28 -28
- package/lib/server/utils/jsonLineMapper.ts +1 -1
- package/lib/server/validateStyleCoverage.ts +18 -20
- package/lib/server/webflow/buildWebflow.ts +41 -53
- package/lib/server/webflow/nodeToWebflow.test.ts +150 -218
- package/lib/server/webflow/nodeToWebflow.ts +195 -258
- package/lib/server/webflow/styleMapper.test.ts +15 -56
- package/lib/server/webflow/styleMapper.ts +33 -41
- package/lib/server/webflow/types.ts +1 -8
- package/lib/server/websocketManager.ts +16 -19
- package/lib/shared/attributeNodeUtils.test.ts +15 -15
- package/lib/shared/attributeNodeUtils.ts +5 -12
- package/lib/shared/breakpoints.ts +4 -11
- package/lib/shared/cmsQueryParser.test.ts +50 -42
- package/lib/shared/cmsQueryParser.ts +49 -31
- package/lib/shared/colorVariableUtils.test.ts +5 -5
- package/lib/shared/colorVariableUtils.ts +3 -8
- package/lib/shared/componentRefs.ts +1 -5
- package/lib/shared/constants.test.ts +3 -3
- package/lib/shared/constants.ts +4 -8
- package/lib/shared/cssGeneration.test.ts +262 -144
- package/lib/shared/cssGeneration.ts +189 -516
- package/lib/shared/cssNamedColors.ts +152 -30
- package/lib/shared/cssProperties.test.ts +5 -6
- package/lib/shared/cssProperties.ts +296 -112
- package/lib/shared/elementClassName.test.ts +109 -109
- package/lib/shared/elementClassName.ts +1 -1
- package/lib/shared/elementUtils.ts +12 -16
- 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 +119 -0
- package/lib/shared/expressionEvaluator.ts +43 -24
- package/lib/shared/fontLoader.test.ts +19 -5
- package/lib/shared/friendlyError.ts +2 -3
- package/lib/shared/gradientUtils.test.ts +1 -5
- package/lib/shared/gradientUtils.ts +2 -6
- package/lib/shared/hrefRefs.ts +2 -10
- package/lib/shared/i18n.test.ts +1 -1
- package/lib/shared/i18n.ts +13 -34
- package/lib/shared/index.ts +4 -0
- package/lib/shared/inlineSvgStyleRules.ts +2 -4
- package/lib/shared/interactiveStyleMappings.test.ts +11 -33
- package/lib/shared/interactiveStyleMappings.ts +9 -16
- package/lib/shared/interactiveStyles.test.ts +165 -188
- package/lib/shared/interfaces/contentProvider.ts +1 -1
- package/lib/shared/itemTemplateUtils.test.ts +6 -12
- package/lib/shared/itemTemplateUtils.ts +19 -35
- package/lib/shared/jsonRepair.ts +8 -2
- package/lib/shared/libraryLoader.test.ts +15 -49
- package/lib/shared/libraryLoader.ts +7 -22
- package/lib/shared/netlifyLocale404.test.ts +179 -0
- package/lib/shared/netlifyLocale404.ts +110 -0
- package/lib/shared/nodeUtils.test.ts +24 -16
- package/lib/shared/nodeUtils.ts +49 -19
- package/lib/shared/pathArrayUtils.test.ts +1 -2
- package/lib/shared/pathArrayUtils.ts +1 -1
- package/lib/shared/pathSecurity.ts +1 -1
- package/lib/shared/pathUtils.test.ts +4 -6
- package/lib/shared/pathUtils.ts +42 -48
- 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 +14 -17
- package/lib/shared/paths/PathUtils.ts +9 -10
- package/lib/shared/paths/PathValidator.test.ts +2 -15
- package/lib/shared/paths/PathValidator.ts +11 -9
- package/lib/shared/paths/index.ts +1 -2
- package/lib/shared/propResolver.test.ts +240 -244
- package/lib/shared/propResolver.ts +14 -25
- package/lib/shared/pxToRem.test.ts +7 -6
- package/lib/shared/pxToRem.ts +2 -5
- package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +9 -5
- package/lib/shared/registry/ClientRegistry.ts +0 -1
- package/lib/shared/registry/ComponentRegistry.test.ts +43 -29
- package/lib/shared/registry/ComponentRegistry.ts +9 -11
- package/lib/shared/registry/NodeTypeDefinition.ts +15 -8
- package/lib/shared/registry/RegistryManager.ts +1 -2
- package/lib/shared/registry/SSRRegistry.ts +0 -1
- package/lib/shared/registry/createNodeType.ts +7 -9
- package/lib/shared/registry/defineNodeType.ts +2 -6
- package/lib/shared/registry/index.ts +0 -1
- package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
- package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
- package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +47 -18
- package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
- package/lib/shared/registry/nodeTypes/ListNodeType.ts +78 -74
- package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
- package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +6 -7
- package/lib/shared/registry/nodeTypes/index.ts +10 -2
- package/lib/shared/responsiveScaling.test.ts +15 -31
- package/lib/shared/responsiveScaling.ts +55 -37
- package/lib/shared/responsiveStyleUtils.ts +11 -13
- package/lib/shared/richtext/htmlToTiptap.test.ts +23 -14
- package/lib/shared/richtext/htmlToTiptap.ts +1 -3
- 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 +5 -10
- package/lib/shared/styleUtils.test.ts +87 -61
- package/lib/shared/styleUtils.ts +5 -6
- package/lib/shared/themeDefaults.test.ts +11 -11
- package/lib/shared/themeDefaults.ts +3 -4
- package/lib/shared/tree/PathBuilder.test.ts +62 -138
- package/lib/shared/tree/PathBuilder.ts +49 -39
- package/lib/shared/treePathUtils.test.ts +2 -10
- package/lib/shared/treePathUtils.ts +54 -59
- package/lib/shared/types/api.ts +1 -2
- package/lib/shared/types/cms.ts +25 -21
- package/lib/shared/types/comment.ts +49 -16
- package/lib/shared/types/components.ts +27 -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 +2 -2
- package/lib/shared/types/styles.ts +0 -1
- package/lib/shared/types/variables.test.ts +4 -13
- package/lib/shared/types/variables.ts +48 -27
- package/lib/shared/types.ts +1 -2
- package/lib/shared/utilityClassConfig.ts +648 -321
- package/lib/shared/utilityClassMapper.test.ts +203 -92
- package/lib/shared/utilityClassMapper.ts +188 -246
- package/lib/shared/utilityClassNames.ts +326 -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/propValidator.test.ts +18 -20
- package/lib/shared/validation/propValidator.ts +12 -17
- package/lib/shared/validation/schemas.test.ts +24 -33
- package/lib/shared/validation/schemas.ts +469 -344
- package/lib/shared/validation/validators.test.ts +1 -6
- package/lib/shared/validation/validators.ts +89 -68
- package/lib/shared/viewportUnits.integration.test.ts +14 -10
- package/lib/shared/viewportUnits.test.ts +11 -23
- package/lib/test-utils/dom-setup.ts +1 -1
- package/lib/test-utils/factories/ConsoleMockFactory.ts +3 -7
- package/lib/test-utils/factories/DomMockFactory.ts +7 -19
- 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 +5 -9
- package/lib/test-utils/factories/StoreMockFactory.ts +14 -25
- 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 +12 -18
- package/lib/test-utils/mocks.ts +4 -2
- package/package.json +1 -1
- package/scripts/build-meno-filter.ts +1 -4
- package/vite.config.ts +4 -4
- package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
- package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
- package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
- package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
- package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
- package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
- 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.map +0 -7
- 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 → configService-PRJZF7Y6.js.map} +0 -0
- /package/dist/chunks/{constants-STK2YBIW.js.map → constants-KIQEYMAM.js.map} +0 -0
- /package/dist/chunks/{fs-JGINUXGL.js.map → fs-ZI5JEU7V.js.map} +0 -0
|
@@ -19,20 +19,15 @@ export interface ScriptExecutorConfig {
|
|
|
19
19
|
/**
|
|
20
20
|
* Generate destructure statement for defineVars
|
|
21
21
|
*/
|
|
22
|
-
function generateDestructure(
|
|
23
|
-
defineVars
|
|
24
|
-
interfaceDef?: Record<string, PropDefinition>
|
|
25
|
-
): string {
|
|
26
|
-
const vars = defineVars === true
|
|
27
|
-
? Object.keys(interfaceDef || {})
|
|
28
|
-
: defineVars;
|
|
22
|
+
function generateDestructure(defineVars: true | string[], interfaceDef?: Record<string, PropDefinition>): string {
|
|
23
|
+
const vars = defineVars === true ? Object.keys(interfaceDef || {}) : defineVars;
|
|
29
24
|
if (vars.length === 0) return '';
|
|
30
25
|
return `var {${vars.join(', ')}} = props;`;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
28
|
/**
|
|
34
29
|
* ScriptExecutor manages JavaScript execution from components
|
|
35
|
-
*
|
|
30
|
+
*
|
|
36
31
|
* Features:
|
|
37
32
|
* - Executes JavaScript from all registered components
|
|
38
33
|
* - Processes templates per component instance when needed
|
|
@@ -59,8 +54,10 @@ export class ScriptExecutor {
|
|
|
59
54
|
// wrapper degrades gracefully when the hook is absent (e.g. direct
|
|
60
55
|
// <script> use outside the runtime) — see executeWithInitPattern.
|
|
61
56
|
if (typeof window !== 'undefined') {
|
|
62
|
-
(window as { __menoShouldBind?: (el: Element, name: string) => boolean }).__menoShouldBind =
|
|
63
|
-
|
|
57
|
+
(window as { __menoShouldBind?: (el: Element, name: string) => boolean }).__menoShouldBind = (
|
|
58
|
+
el: Element,
|
|
59
|
+
name: string,
|
|
60
|
+
) => this.shouldBind(el, name);
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
63
|
|
|
@@ -155,7 +152,7 @@ export class ScriptExecutor {
|
|
|
155
152
|
componentName: string,
|
|
156
153
|
js: string,
|
|
157
154
|
defineVars: true | string[],
|
|
158
|
-
interfaceDef?: Record<string, PropDefinition
|
|
155
|
+
interfaceDef?: Record<string, PropDefinition>,
|
|
159
156
|
): void {
|
|
160
157
|
const destructure = generateDestructure(defineVars, interfaceDef);
|
|
161
158
|
|
|
@@ -218,12 +215,7 @@ export class ScriptExecutor {
|
|
|
218
215
|
if (defineVars) {
|
|
219
216
|
// Use initComponent pattern - queries all instances and initializes each with props
|
|
220
217
|
if (!executedComponents.has(componentName)) {
|
|
221
|
-
this.executeWithInitPattern(
|
|
222
|
-
componentName,
|
|
223
|
-
originalJS,
|
|
224
|
-
defineVars,
|
|
225
|
-
component.component.interface
|
|
226
|
-
);
|
|
218
|
+
this.executeWithInitPattern(componentName, originalJS, defineVars, component.component.interface);
|
|
227
219
|
executedComponents.add(componentName);
|
|
228
220
|
}
|
|
229
221
|
} else if (hasTemplates(originalJS)) {
|
|
@@ -281,12 +273,7 @@ export class ScriptExecutor {
|
|
|
281
273
|
|
|
282
274
|
// Check if component uses defineVars (Astro-style prop injection)
|
|
283
275
|
if (defineVars) {
|
|
284
|
-
this.executeWithInitPattern(
|
|
285
|
-
componentName,
|
|
286
|
-
originalJS,
|
|
287
|
-
defineVars,
|
|
288
|
-
component.component.interface
|
|
289
|
-
);
|
|
276
|
+
this.executeWithInitPattern(componentName, originalJS, defineVars, component.component.interface);
|
|
290
277
|
} else if (hasTemplates(originalJS)) {
|
|
291
278
|
// Legacy: Process and execute JS per instance (templates need instance-specific props)
|
|
292
279
|
const componentRootPaths = this.elementRegistry.getComponentRootPaths(componentName);
|
|
@@ -315,11 +302,7 @@ export class ScriptExecutor {
|
|
|
315
302
|
* @param element - The DOM element to re-execute for
|
|
316
303
|
* @param newProps - New props to inject
|
|
317
304
|
*/
|
|
318
|
-
executeForElement(
|
|
319
|
-
componentName: string,
|
|
320
|
-
element: HTMLElement,
|
|
321
|
-
newProps: Record<string, unknown>
|
|
322
|
-
): void {
|
|
305
|
+
executeForElement(componentName: string, element: HTMLElement, newProps: Record<string, unknown>): void {
|
|
323
306
|
try {
|
|
324
307
|
const component = this.componentRegistry.get(componentName);
|
|
325
308
|
if (!component?.component?.javascript) return;
|
|
@@ -331,9 +314,7 @@ export class ScriptExecutor {
|
|
|
331
314
|
const destructure = generateDestructure(defineVars, component.component.interface);
|
|
332
315
|
|
|
333
316
|
// Update data-props attribute (keyed by component name)
|
|
334
|
-
const varsToExpose = defineVars === true
|
|
335
|
-
? Object.keys(component.component.interface || {})
|
|
336
|
-
: defineVars;
|
|
317
|
+
const varsToExpose = defineVars === true ? Object.keys(component.component.interface || {}) : defineVars;
|
|
337
318
|
|
|
338
319
|
const propsForJS: Record<string, unknown> = {};
|
|
339
320
|
for (const varName of varsToExpose) {
|
|
@@ -346,7 +327,9 @@ export class ScriptExecutor {
|
|
|
346
327
|
let allProps: Record<string, unknown> = {};
|
|
347
328
|
const existingStr = element.getAttribute('data-props');
|
|
348
329
|
if (existingStr) {
|
|
349
|
-
try {
|
|
330
|
+
try {
|
|
331
|
+
allProps = JSON.parse(existingStr);
|
|
332
|
+
} catch {}
|
|
350
333
|
}
|
|
351
334
|
allProps[componentName] = propsForJS;
|
|
352
335
|
element.setAttribute('data-props', JSON.stringify(allProps));
|
|
@@ -368,4 +351,3 @@ export class ScriptExecutor {
|
|
|
368
351
|
}
|
|
369
352
|
}
|
|
370
353
|
}
|
|
371
|
-
|
|
@@ -19,7 +19,7 @@ describe('PrefetchService', () => {
|
|
|
19
19
|
Promise.resolve({
|
|
20
20
|
ok: true,
|
|
21
21
|
json: () => Promise.resolve({ root: { type: 'node', tag: 'div' } }),
|
|
22
|
-
} as Response)
|
|
22
|
+
} as Response),
|
|
23
23
|
) as unknown as typeof fetch;
|
|
24
24
|
|
|
25
25
|
// Create service with enabled config
|
|
@@ -166,7 +166,7 @@ describe('PrefetchService', () => {
|
|
|
166
166
|
Promise.resolve({
|
|
167
167
|
ok: false,
|
|
168
168
|
status: 404,
|
|
169
|
-
} as Response)
|
|
169
|
+
} as Response),
|
|
170
170
|
) as unknown as typeof fetch;
|
|
171
171
|
|
|
172
172
|
await service.prefetch('/nonexistent');
|
|
@@ -10,12 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { API_ROUTES } from '../../shared/constants';
|
|
13
|
-
import type {
|
|
14
|
-
PrefetchConfig,
|
|
15
|
-
PrefetchStrategy,
|
|
16
|
-
CachedPageEntry,
|
|
17
|
-
ConnectionInfo,
|
|
18
|
-
} from '../../shared/types/prefetch';
|
|
13
|
+
import type { PrefetchConfig, PrefetchStrategy, CachedPageEntry, ConnectionInfo } from '../../shared/types/prefetch';
|
|
19
14
|
import { DEFAULT_PREFETCH_CONFIG } from '../../shared/types/prefetch';
|
|
20
15
|
|
|
21
16
|
export interface PrefetchServiceConfig {
|
|
@@ -52,9 +47,7 @@ export class PrefetchService {
|
|
|
52
47
|
|
|
53
48
|
return {
|
|
54
49
|
saveData: connection?.saveData ?? false,
|
|
55
|
-
effectiveType:
|
|
56
|
-
(connection?.effectiveType as ConnectionInfo['effectiveType']) ??
|
|
57
|
-
'unknown',
|
|
50
|
+
effectiveType: (connection?.effectiveType as ConnectionInfo['effectiveType']) ?? 'unknown',
|
|
58
51
|
downlink: connection?.downlink ?? Infinity,
|
|
59
52
|
};
|
|
60
53
|
}
|
|
@@ -62,9 +55,7 @@ export class PrefetchService {
|
|
|
62
55
|
/**
|
|
63
56
|
* Determine effective strategy based on connection quality
|
|
64
57
|
*/
|
|
65
|
-
private getEffectiveStrategy(
|
|
66
|
-
requestedStrategy: PrefetchStrategy
|
|
67
|
-
): PrefetchStrategy {
|
|
58
|
+
private getEffectiveStrategy(requestedStrategy: PrefetchStrategy): PrefetchStrategy {
|
|
68
59
|
if (!this.config.respectSaveData) return requestedStrategy;
|
|
69
60
|
|
|
70
61
|
const { saveData, effectiveType, downlink } = this.getConnectionInfo();
|
|
@@ -110,9 +101,7 @@ export class PrefetchService {
|
|
|
110
101
|
if (this.cache.size <= this.config.maxCacheSize) return;
|
|
111
102
|
|
|
112
103
|
// Get oldest entries and remove them
|
|
113
|
-
const entries = Array.from(this.cache.entries()).sort(
|
|
114
|
-
(a, b) => a[1].timestamp - b[1].timestamp
|
|
115
|
-
);
|
|
104
|
+
const entries = Array.from(this.cache.entries()).sort((a, b) => a[1].timestamp - b[1].timestamp);
|
|
116
105
|
|
|
117
106
|
const toRemove = this.cache.size - this.config.maxCacheSize;
|
|
118
107
|
for (let i = 0; i < toRemove; i++) {
|
|
@@ -133,14 +122,11 @@ export class PrefetchService {
|
|
|
133
122
|
|
|
134
123
|
try {
|
|
135
124
|
// Fetch page data (same endpoint RouteLoader uses)
|
|
136
|
-
const response = await fetch(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
cache: 'default',
|
|
142
|
-
}
|
|
143
|
-
);
|
|
125
|
+
const response = await fetch(`${API_ROUTES.PAGE_CONTENT}?page=${encodeURIComponent(path)}`, {
|
|
126
|
+
signal: abortController.signal,
|
|
127
|
+
// Allow browser caching for prefetched content
|
|
128
|
+
cache: 'default',
|
|
129
|
+
});
|
|
144
130
|
|
|
145
131
|
if (!response.ok) {
|
|
146
132
|
this.pendingPrefetches.delete(path);
|
|
@@ -248,7 +234,7 @@ export class PrefetchService {
|
|
|
248
234
|
}
|
|
249
235
|
});
|
|
250
236
|
},
|
|
251
|
-
{ rootMargin: '50px' } // Start prefetching slightly before visible
|
|
237
|
+
{ rootMargin: '50px' }, // Start prefetching slightly before visible
|
|
252
238
|
);
|
|
253
239
|
}
|
|
254
240
|
|
|
@@ -11,7 +11,7 @@ describe('styleProcessor', () => {
|
|
|
11
11
|
expect(result).toEqual({
|
|
12
12
|
color: 'red',
|
|
13
13
|
fontSize: '16px',
|
|
14
|
-
padding: '10px'
|
|
14
|
+
padding: '10px',
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@ describe('styleProcessor', () => {
|
|
|
22
22
|
expect(result).toEqual({
|
|
23
23
|
color: 'blue',
|
|
24
24
|
fontSize: '16px',
|
|
25
|
-
padding: '10px'
|
|
25
|
+
padding: '10px',
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
|
|
@@ -31,7 +31,7 @@ describe('styleProcessor', () => {
|
|
|
31
31
|
const result = mergeStyles(style1, undefined, { fontSize: '16px' });
|
|
32
32
|
expect(result).toEqual({
|
|
33
33
|
color: 'red',
|
|
34
|
-
fontSize: '16px'
|
|
34
|
+
fontSize: '16px',
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
37
|
|
|
@@ -49,15 +49,15 @@ describe('styleProcessor', () => {
|
|
|
49
49
|
const style1: StyleObject = {
|
|
50
50
|
display: 'flex',
|
|
51
51
|
flexDirection: 'column',
|
|
52
|
-
padding: '20px'
|
|
52
|
+
padding: '20px',
|
|
53
53
|
};
|
|
54
54
|
const style2: StyleObject = {
|
|
55
55
|
backgroundColor: '#f0f0f0',
|
|
56
|
-
border: '1px solid #ccc'
|
|
56
|
+
border: '1px solid #ccc',
|
|
57
57
|
};
|
|
58
58
|
const style3: StyleObject = {
|
|
59
59
|
padding: '30px',
|
|
60
|
-
margin: '10px'
|
|
60
|
+
margin: '10px',
|
|
61
61
|
};
|
|
62
62
|
const result = mergeStyles(style1, style2, style3);
|
|
63
63
|
expect(result).toEqual({
|
|
@@ -66,7 +66,7 @@ describe('styleProcessor', () => {
|
|
|
66
66
|
padding: '30px',
|
|
67
67
|
backgroundColor: '#f0f0f0',
|
|
68
68
|
border: '1px solid #ccc',
|
|
69
|
-
margin: '10px'
|
|
69
|
+
margin: '10px',
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
72
|
|
|
@@ -108,7 +108,7 @@ describe('styleProcessor', () => {
|
|
|
108
108
|
expect(result).toEqual({
|
|
109
109
|
opacity: 0.5,
|
|
110
110
|
zIndex: 20,
|
|
111
|
-
fontSize: 16
|
|
111
|
+
fontSize: 16,
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
|
|
@@ -119,7 +119,7 @@ describe('styleProcessor', () => {
|
|
|
119
119
|
expect(result).toEqual({
|
|
120
120
|
opacity: 0,
|
|
121
121
|
margin: '0',
|
|
122
|
-
padding: '0px'
|
|
122
|
+
padding: '0px',
|
|
123
123
|
});
|
|
124
124
|
});
|
|
125
125
|
});
|
|
@@ -12,10 +12,7 @@ type ComponentProps = Record<string, unknown>;
|
|
|
12
12
|
* Merge component styles from structured component definition
|
|
13
13
|
* Returns merged props with all applicable styles
|
|
14
14
|
*/
|
|
15
|
-
export function mergeComponentStyles(
|
|
16
|
-
componentDef: ComponentDefinition,
|
|
17
|
-
props: ComponentProps
|
|
18
|
-
): ComponentProps {
|
|
15
|
+
export function mergeComponentStyles(componentDef: ComponentDefinition, props: ComponentProps): ComponentProps {
|
|
19
16
|
try {
|
|
20
17
|
// Start with base props from component definition
|
|
21
18
|
let mergedProps: ComponentProps = { ...(componentDef.props || {}) };
|
|
@@ -43,28 +40,35 @@ export function mergeComponentStyles(
|
|
|
43
40
|
// processStructure now reads from structure.style and merges into props.style
|
|
44
41
|
try {
|
|
45
42
|
if (structuredComponentDef.structure) {
|
|
46
|
-
const processed = processStructure(structuredComponentDef.structure, {
|
|
43
|
+
const processed = processStructure(structuredComponentDef.structure, {
|
|
44
|
+
props: effectiveInputProps,
|
|
45
|
+
componentDef: structuredComponentDef,
|
|
46
|
+
});
|
|
47
47
|
// Type guard: ensure processed is a ComponentNode with props
|
|
48
48
|
if (processed && typeof processed === 'object' && !Array.isArray(processed) && 'props' in processed) {
|
|
49
49
|
const processedProps = processed.props as Record<string, unknown> | undefined;
|
|
50
|
-
const structureStyle =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
const structureStyle =
|
|
51
|
+
processedProps?.style &&
|
|
52
|
+
typeof processedProps.style === 'object' &&
|
|
53
|
+
processedProps.style !== null &&
|
|
54
|
+
!Array.isArray(processedProps.style)
|
|
55
|
+
? (processedProps.style as Record<string, unknown>)
|
|
56
|
+
: {};
|
|
57
|
+
const currentStyle =
|
|
58
|
+
typeof mergedProps.style === 'object' && mergedProps.style !== null && !Array.isArray(mergedProps.style)
|
|
59
|
+
? { ...(mergedProps.style as Record<string, unknown>) }
|
|
60
|
+
: {};
|
|
56
61
|
mergedProps.style = { ...currentStyle, ...structureStyle };
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
|
-
} catch (e) {
|
|
60
|
-
}
|
|
64
|
+
} catch (e) {}
|
|
61
65
|
|
|
62
66
|
// Merge with instance props (allows overrides)
|
|
63
67
|
// Normalize responsive styles to flat StyleObject
|
|
64
68
|
const restProps = props || {};
|
|
65
69
|
const normalizedMergedStyle = normalizeStyle(mergedProps.style as StyleValue) || {};
|
|
66
70
|
const normalizedRestStyle = normalizeStyle(restProps?.style as StyleValue) || {};
|
|
67
|
-
|
|
71
|
+
|
|
68
72
|
mergedProps = {
|
|
69
73
|
...mergedProps,
|
|
70
74
|
...restProps,
|
|
@@ -90,4 +94,3 @@ export function mergeStyles(...styles: (StyleObject | undefined)[]): StyleObject
|
|
|
90
94
|
return { ...acc, ...style };
|
|
91
95
|
}, {});
|
|
92
96
|
}
|
|
93
|
-
|