@tachui/cli 0.8.1-alpha → 0.8.5-alpha
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/README.md +15 -0
- package/bin/tacho.js +57 -7
- package/dist/cli/src/commands/analyze-imports.d.ts +18 -0
- package/dist/cli/src/commands/analyze-imports.d.ts.map +1 -0
- package/dist/cli/src/commands/analyze-imports.js +152 -0
- package/dist/cli/src/commands/analyze-imports.js.map +1 -0
- package/dist/cli/src/commands/analyze.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/analyze.js +1 -1
- package/dist/cli/src/commands/analyze.js.map +1 -0
- package/dist/cli/src/commands/dev.d.ts.map +1 -0
- package/dist/cli/src/commands/dev.js.map +1 -0
- package/dist/cli/src/commands/generate.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/generate.js +0 -21
- package/dist/cli/src/commands/generate.js.map +1 -0
- package/dist/cli/src/commands/init.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/init.js +1 -28
- package/dist/cli/src/commands/init.js.map +1 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts +3 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts.map +1 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.js +103 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.js.map +1 -0
- package/dist/cli/src/commands/migrate.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/migrate.js +5 -3
- package/dist/cli/src/commands/migrate.js.map +1 -0
- package/dist/cli/src/commands/modifier-docs.d.ts +24 -0
- package/dist/cli/src/commands/modifier-docs.d.ts.map +1 -0
- package/dist/cli/src/commands/modifier-docs.js +375 -0
- package/dist/cli/src/commands/modifier-docs.js.map +1 -0
- package/dist/cli/src/commands/optimize.d.ts.map +1 -0
- package/dist/cli/src/commands/optimize.js.map +1 -0
- package/dist/cli/src/import-optimizer.d.ts +50 -0
- package/dist/cli/src/import-optimizer.d.ts.map +1 -0
- package/dist/cli/src/import-optimizer.js +227 -0
- package/dist/cli/src/import-optimizer.js.map +1 -0
- package/dist/cli/src/index.d.ts.map +1 -0
- package/dist/{index.js → cli/src/index.js} +14 -3
- package/dist/cli/src/index.js.map +1 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.d.ts +7 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.d.ts.map +1 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.js +99 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.js.map +1 -0
- package/dist/core/package.json +223 -0
- package/dist/core/src/assets/Asset.d.ts +11 -0
- package/dist/core/src/assets/Asset.d.ts.map +1 -0
- package/dist/core/src/assets/Asset.js +12 -0
- package/dist/core/src/assets/Asset.js.map +1 -0
- package/dist/core/src/assets/AssetCollection.d.ts +14 -0
- package/dist/core/src/assets/AssetCollection.d.ts.map +1 -0
- package/dist/core/src/assets/AssetCollection.js +133 -0
- package/dist/core/src/assets/AssetCollection.js.map +1 -0
- package/dist/core/src/assets/ColorAsset.d.ts +31 -0
- package/dist/core/src/assets/ColorAsset.d.ts.map +1 -0
- package/dist/core/src/assets/ColorAsset.js +182 -0
- package/dist/core/src/assets/ColorAsset.js.map +1 -0
- package/dist/core/src/assets/FontAsset.d.ts +114 -0
- package/dist/core/src/assets/FontAsset.d.ts.map +1 -0
- package/dist/core/src/assets/FontAsset.js +289 -0
- package/dist/core/src/assets/FontAsset.js.map +1 -0
- package/dist/core/src/assets/ImageAsset.d.ts +35 -0
- package/dist/core/src/assets/ImageAsset.d.ts.map +1 -0
- package/dist/core/src/assets/ImageAsset.js +69 -0
- package/dist/core/src/assets/ImageAsset.js.map +1 -0
- package/dist/core/src/assets/index.d.ts +27 -0
- package/dist/core/src/assets/index.d.ts.map +1 -0
- package/dist/core/src/assets/index.js +137 -0
- package/dist/core/src/assets/index.js.map +1 -0
- package/dist/core/src/assets/types.d.ts +10 -0
- package/dist/core/src/assets/types.d.ts.map +1 -0
- package/dist/core/src/assets/types.js +6 -0
- package/dist/core/src/assets/types.js.map +1 -0
- package/dist/core/src/compiler/advanced-parser.d.ts +113 -0
- package/dist/core/src/compiler/advanced-parser.d.ts.map +1 -0
- package/dist/core/src/compiler/advanced-parser.js +702 -0
- package/dist/core/src/compiler/advanced-parser.js.map +1 -0
- package/dist/core/src/compiler/codegen.d.ts +20 -0
- package/dist/core/src/compiler/codegen.d.ts.map +1 -0
- package/dist/core/src/compiler/codegen.js +509 -0
- package/dist/core/src/compiler/codegen.js.map +1 -0
- package/dist/core/src/compiler/enhanced-codegen.d.ts +121 -0
- package/dist/core/src/compiler/enhanced-codegen.d.ts.map +1 -0
- package/dist/core/src/compiler/enhanced-codegen.js +607 -0
- package/dist/core/src/compiler/enhanced-codegen.js.map +1 -0
- package/dist/core/src/compiler/index.d.ts +14 -0
- package/dist/core/src/compiler/index.d.ts.map +1 -0
- package/dist/core/src/compiler/index.js +12 -0
- package/dist/core/src/compiler/index.js.map +1 -0
- package/dist/core/src/compiler/parser.d.ts +12 -0
- package/dist/core/src/compiler/parser.d.ts.map +1 -0
- package/dist/core/src/compiler/parser.js +407 -0
- package/dist/core/src/compiler/parser.js.map +1 -0
- package/dist/core/src/compiler/plugin.d.ts +13 -0
- package/dist/core/src/compiler/plugin.d.ts.map +1 -0
- package/dist/core/src/compiler/plugin.js +456 -0
- package/dist/core/src/compiler/plugin.js.map +1 -0
- package/dist/core/src/compiler/types.d.ts +177 -0
- package/dist/core/src/compiler/types.d.ts.map +1 -0
- package/dist/core/src/compiler/types.js +5 -0
- package/dist/core/src/compiler/types.js.map +1 -0
- package/dist/core/src/components/factory.d.ts +24 -0
- package/dist/core/src/components/factory.d.ts.map +1 -0
- package/dist/core/src/components/factory.js +19 -0
- package/dist/core/src/components/factory.js.map +1 -0
- package/dist/core/src/components/index.d.ts +12 -0
- package/dist/core/src/components/index.d.ts.map +1 -0
- package/dist/core/src/components/index.js +9 -0
- package/dist/core/src/components/index.js.map +1 -0
- package/dist/core/src/components/wrapper.d.ts +142 -0
- package/dist/core/src/components/wrapper.d.ts.map +1 -0
- package/dist/core/src/components/wrapper.js +628 -0
- package/dist/core/src/components/wrapper.js.map +1 -0
- package/dist/core/src/concatenation/concatenatable.d.ts +63 -0
- package/dist/core/src/concatenation/concatenatable.d.ts.map +1 -0
- package/dist/core/src/concatenation/concatenatable.js +158 -0
- package/dist/core/src/concatenation/concatenatable.js.map +1 -0
- package/dist/core/src/concatenation/concatenated-component.d.ts +124 -0
- package/dist/core/src/concatenation/concatenated-component.d.ts.map +1 -0
- package/dist/core/src/concatenation/concatenated-component.js +447 -0
- package/dist/core/src/concatenation/concatenated-component.js.map +1 -0
- package/dist/core/src/concatenation/index.d.ts +13 -0
- package/dist/core/src/concatenation/index.d.ts.map +1 -0
- package/dist/core/src/concatenation/index.js +16 -0
- package/dist/core/src/concatenation/index.js.map +1 -0
- package/dist/core/src/concatenation/text-optimizer.d.ts +104 -0
- package/dist/core/src/concatenation/text-optimizer.d.ts.map +1 -0
- package/dist/core/src/concatenation/text-optimizer.js +349 -0
- package/dist/core/src/concatenation/text-optimizer.js.map +1 -0
- package/dist/core/src/concatenation/types.d.ts +88 -0
- package/dist/core/src/concatenation/types.d.ts.map +1 -0
- package/dist/core/src/concatenation/types.js +23 -0
- package/dist/core/src/concatenation/types.js.map +1 -0
- package/dist/core/src/config.d.ts +7 -0
- package/dist/core/src/config.d.ts.map +1 -0
- package/dist/core/src/config.js +17 -0
- package/dist/core/src/config.js.map +1 -0
- package/dist/core/src/constants/frame-utils.d.ts +68 -0
- package/dist/core/src/constants/frame-utils.d.ts.map +1 -0
- package/dist/core/src/constants/frame-utils.js +156 -0
- package/dist/core/src/constants/frame-utils.js.map +1 -0
- package/dist/core/src/constants/index.d.ts +8 -0
- package/dist/core/src/constants/index.d.ts.map +1 -0
- package/dist/core/src/constants/index.js +8 -0
- package/dist/core/src/constants/index.js.map +1 -0
- package/dist/core/src/constants/layout.d.ts +96 -0
- package/dist/core/src/constants/layout.d.ts.map +1 -0
- package/dist/core/src/constants/layout.js +124 -0
- package/dist/core/src/constants/layout.js.map +1 -0
- package/dist/core/src/css-classes/component-base.d.ts +40 -0
- package/dist/core/src/css-classes/component-base.d.ts.map +1 -0
- package/dist/core/src/css-classes/component-base.js +90 -0
- package/dist/core/src/css-classes/component-base.js.map +1 -0
- package/dist/core/src/css-classes/css-class-manager.d.ts +89 -0
- package/dist/core/src/css-classes/css-class-manager.d.ts.map +1 -0
- package/dist/core/src/css-classes/css-class-manager.js +328 -0
- package/dist/core/src/css-classes/css-class-manager.js.map +1 -0
- package/dist/core/src/css-classes/dom-integration.d.ts +76 -0
- package/dist/core/src/css-classes/dom-integration.d.ts.map +1 -0
- package/dist/core/src/css-classes/dom-integration.js +104 -0
- package/dist/core/src/css-classes/dom-integration.js.map +1 -0
- package/dist/core/src/css-classes/enhanced-renderer.d.ts +42 -0
- package/dist/core/src/css-classes/enhanced-renderer.d.ts.map +1 -0
- package/dist/core/src/css-classes/enhanced-renderer.js +121 -0
- package/dist/core/src/css-classes/enhanced-renderer.js.map +1 -0
- package/dist/core/src/css-classes/index.d.ts +14 -0
- package/dist/core/src/css-classes/index.d.ts.map +1 -0
- package/dist/core/src/css-classes/index.js +14 -0
- package/dist/core/src/css-classes/index.js.map +1 -0
- package/dist/core/src/css-classes/types.d.ts +59 -0
- package/dist/core/src/css-classes/types.d.ts.map +1 -0
- package/dist/core/src/css-classes/types.js +8 -0
- package/dist/core/src/css-classes/types.js.map +1 -0
- package/dist/core/src/css-classes/utilities.d.ts +104 -0
- package/dist/core/src/css-classes/utilities.d.ts.map +1 -0
- package/dist/core/src/css-classes/utilities.js +126 -0
- package/dist/core/src/css-classes/utilities.js.map +1 -0
- package/dist/core/src/gradients/css-generator.d.ts +10 -0
- package/dist/core/src/gradients/css-generator.d.ts.map +1 -0
- package/dist/core/src/gradients/css-generator.js +123 -0
- package/dist/core/src/gradients/css-generator.js.map +1 -0
- package/dist/core/src/gradients/examples.d.ts +432 -0
- package/dist/core/src/gradients/examples.d.ts.map +1 -0
- package/dist/core/src/gradients/examples.js +588 -0
- package/dist/core/src/gradients/examples.js.map +1 -0
- package/dist/core/src/gradients/gradient-asset.d.ts +10 -0
- package/dist/core/src/gradients/gradient-asset.d.ts.map +1 -0
- package/dist/core/src/gradients/gradient-asset.js +25 -0
- package/dist/core/src/gradients/gradient-asset.js.map +1 -0
- package/dist/core/src/gradients/index.d.ts +19 -0
- package/dist/core/src/gradients/index.d.ts.map +1 -0
- package/dist/core/src/gradients/index.js +56 -0
- package/dist/core/src/gradients/index.js.map +1 -0
- package/dist/core/src/gradients/performance.d.ts +146 -0
- package/dist/core/src/gradients/performance.d.ts.map +1 -0
- package/dist/core/src/gradients/performance.js +413 -0
- package/dist/core/src/gradients/performance.js.map +1 -0
- package/dist/core/src/gradients/presets.d.ts +165 -0
- package/dist/core/src/gradients/presets.d.ts.map +1 -0
- package/dist/core/src/gradients/presets.js +371 -0
- package/dist/core/src/gradients/presets.js.map +1 -0
- package/dist/core/src/gradients/reactive.d.ts +167 -0
- package/dist/core/src/gradients/reactive.d.ts.map +1 -0
- package/dist/core/src/gradients/reactive.js +329 -0
- package/dist/core/src/gradients/reactive.js.map +1 -0
- package/dist/core/src/gradients/state-gradient-asset.d.ts +67 -0
- package/dist/core/src/gradients/state-gradient-asset.d.ts.map +1 -0
- package/dist/core/src/gradients/state-gradient-asset.js +145 -0
- package/dist/core/src/gradients/state-gradient-asset.js.map +1 -0
- package/dist/core/src/gradients/types.d.ts +6 -0
- package/dist/core/src/gradients/types.d.ts.map +1 -0
- package/dist/core/src/gradients/types.js +6 -0
- package/dist/core/src/gradients/types.js.map +1 -0
- package/dist/core/src/gradients/utils.d.ts +313 -0
- package/dist/core/src/gradients/utils.d.ts.map +1 -0
- package/dist/core/src/gradients/utils.js +513 -0
- package/dist/core/src/gradients/utils.js.map +1 -0
- package/dist/core/src/gradients/validation.d.ts +156 -0
- package/dist/core/src/gradients/validation.d.ts.map +1 -0
- package/dist/core/src/gradients/validation.js +392 -0
- package/dist/core/src/gradients/validation.js.map +1 -0
- package/dist/core/src/index.d.ts +33 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/index.js +57 -0
- package/dist/core/src/index.js.map +1 -0
- package/dist/core/src/lifecycle/hooks.d.ts +101 -0
- package/dist/core/src/lifecycle/hooks.d.ts.map +1 -0
- package/dist/core/src/lifecycle/hooks.js +241 -0
- package/dist/core/src/lifecycle/hooks.js.map +1 -0
- package/dist/core/src/modifiers/alignment.d.ts +5 -0
- package/dist/core/src/modifiers/alignment.d.ts.map +1 -0
- package/dist/core/src/modifiers/alignment.js +19 -0
- package/dist/core/src/modifiers/alignment.js.map +1 -0
- package/dist/core/src/modifiers/base.d.ts +128 -0
- package/dist/core/src/modifiers/base.d.ts.map +1 -0
- package/dist/core/src/modifiers/base.js +1062 -0
- package/dist/core/src/modifiers/base.js.map +1 -0
- package/dist/core/src/modifiers/builder.d.ts +148 -0
- package/dist/core/src/modifiers/builder.d.ts.map +1 -0
- package/dist/core/src/modifiers/builder.js +903 -0
- package/dist/core/src/modifiers/builder.js.map +1 -0
- package/dist/core/src/modifiers/core.d.ts +14 -0
- package/dist/core/src/modifiers/core.d.ts.map +1 -0
- package/dist/core/src/modifiers/core.js +16 -0
- package/dist/core/src/modifiers/core.js.map +1 -0
- package/dist/core/src/modifiers/corner-radius.d.ts +8 -0
- package/dist/core/src/modifiers/corner-radius.d.ts.map +1 -0
- package/dist/core/src/modifiers/corner-radius.js +19 -0
- package/dist/core/src/modifiers/corner-radius.js.map +1 -0
- package/dist/core/src/modifiers/factories.d.ts +88 -0
- package/dist/core/src/modifiers/factories.d.ts.map +1 -0
- package/dist/core/src/modifiers/factories.js +376 -0
- package/dist/core/src/modifiers/factories.js.map +1 -0
- package/dist/core/src/modifiers/index.d.ts +17 -0
- package/dist/core/src/modifiers/index.d.ts.map +1 -0
- package/dist/core/src/modifiers/index.js +16 -0
- package/dist/core/src/modifiers/index.js.map +1 -0
- package/dist/core/src/modifiers/layout-priority.d.ts +8 -0
- package/dist/core/src/modifiers/layout-priority.d.ts.map +1 -0
- package/dist/core/src/modifiers/layout-priority.js +19 -0
- package/dist/core/src/modifiers/layout-priority.js.map +1 -0
- package/dist/core/src/modifiers/opacity.d.ts +8 -0
- package/dist/core/src/modifiers/opacity.d.ts.map +1 -0
- package/dist/core/src/modifiers/opacity.js +19 -0
- package/dist/core/src/modifiers/opacity.js.map +1 -0
- package/dist/core/src/modifiers/presets.d.ts +368 -0
- package/dist/core/src/modifiers/presets.d.ts.map +1 -0
- package/dist/core/src/modifiers/presets.js +394 -0
- package/dist/core/src/modifiers/presets.js.map +1 -0
- package/dist/core/src/modifiers/proxy.d.ts +4 -0
- package/dist/core/src/modifiers/proxy.d.ts.map +1 -0
- package/dist/core/src/modifiers/proxy.js +212 -0
- package/dist/core/src/modifiers/proxy.js.map +1 -0
- package/dist/core/src/modifiers/registration-utils.d.ts +7 -0
- package/dist/core/src/modifiers/registration-utils.d.ts.map +1 -0
- package/dist/core/src/modifiers/registration-utils.js +46 -0
- package/dist/core/src/modifiers/registration-utils.js.map +1 -0
- package/dist/core/src/modifiers/registry.d.ts +78 -0
- package/dist/core/src/modifiers/registry.d.ts.map +1 -0
- package/dist/core/src/modifiers/registry.js +397 -0
- package/dist/core/src/modifiers/registry.js.map +1 -0
- package/dist/core/src/modifiers/types.d.ts +6 -0
- package/dist/core/src/modifiers/types.d.ts.map +1 -0
- package/dist/core/src/modifiers/types.js +6 -0
- package/dist/core/src/modifiers/types.js.map +1 -0
- package/dist/core/src/plugins/index.d.ts +16 -0
- package/dist/core/src/plugins/index.d.ts.map +1 -0
- package/dist/core/src/plugins/index.js +21 -0
- package/dist/core/src/plugins/index.js.map +1 -0
- package/dist/core/src/plugins/legacy-adapter.d.ts +35 -0
- package/dist/core/src/plugins/legacy-adapter.d.ts.map +1 -0
- package/dist/core/src/plugins/legacy-adapter.js +57 -0
- package/dist/core/src/plugins/legacy-adapter.js.map +1 -0
- package/dist/core/src/plugins/simplified-component-registry.d.ts +40 -0
- package/dist/core/src/plugins/simplified-component-registry.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-component-registry.js +97 -0
- package/dist/core/src/plugins/simplified-component-registry.js.map +1 -0
- package/dist/core/src/plugins/simplified-lazy-loader.d.ts +65 -0
- package/dist/core/src/plugins/simplified-lazy-loader.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-lazy-loader.js +205 -0
- package/dist/core/src/plugins/simplified-lazy-loader.js.map +1 -0
- package/dist/core/src/plugins/simplified-plugin-manager.d.ts +24 -0
- package/dist/core/src/plugins/simplified-plugin-manager.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-plugin-manager.js +77 -0
- package/dist/core/src/plugins/simplified-plugin-manager.js.map +1 -0
- package/dist/core/src/plugins/simplified-tachui-instance.d.ts +54 -0
- package/dist/core/src/plugins/simplified-tachui-instance.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-tachui-instance.js +114 -0
- package/dist/core/src/plugins/simplified-tachui-instance.js.map +1 -0
- package/dist/core/src/plugins/simplified-types.d.ts +63 -0
- package/dist/core/src/plugins/simplified-types.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-types.js +18 -0
- package/dist/core/src/plugins/simplified-types.js.map +1 -0
- package/dist/core/src/plugins/simplified-utils.d.ts +39 -0
- package/dist/core/src/plugins/simplified-utils.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-utils.js +104 -0
- package/dist/core/src/plugins/simplified-utils.js.map +1 -0
- package/dist/core/src/reactive/cleanup.d.ts +115 -0
- package/dist/core/src/reactive/cleanup.d.ts.map +1 -0
- package/dist/core/src/reactive/cleanup.js +187 -0
- package/dist/core/src/reactive/cleanup.js.map +1 -0
- package/dist/core/src/reactive/computed.d.ts +115 -0
- package/dist/core/src/reactive/computed.d.ts.map +1 -0
- package/dist/core/src/reactive/computed.js +237 -0
- package/dist/core/src/reactive/computed.js.map +1 -0
- package/dist/core/src/reactive/context.d.ts +83 -0
- package/dist/core/src/reactive/context.d.ts.map +1 -0
- package/dist/core/src/reactive/context.js +286 -0
- package/dist/core/src/reactive/context.js.map +1 -0
- package/dist/core/src/reactive/effect.d.ts +79 -0
- package/dist/core/src/reactive/effect.d.ts.map +1 -0
- package/dist/core/src/reactive/effect.js +159 -0
- package/dist/core/src/reactive/effect.js.map +1 -0
- package/dist/core/src/reactive/enhanced-effect.d.ts +108 -0
- package/dist/core/src/reactive/enhanced-effect.d.ts.map +1 -0
- package/dist/core/src/reactive/enhanced-effect.js +265 -0
- package/dist/core/src/reactive/enhanced-effect.js.map +1 -0
- package/dist/core/src/reactive/enhanced-signal.d.ts +91 -0
- package/dist/core/src/reactive/enhanced-signal.d.ts.map +1 -0
- package/dist/core/src/reactive/enhanced-signal.js +175 -0
- package/dist/core/src/reactive/enhanced-signal.js.map +1 -0
- package/dist/core/src/reactive/equality.d.ts +51 -0
- package/dist/core/src/reactive/equality.d.ts.map +1 -0
- package/dist/core/src/reactive/equality.js +169 -0
- package/dist/core/src/reactive/equality.js.map +1 -0
- package/dist/core/src/reactive/index.d.ts +22 -0
- package/dist/core/src/reactive/index.d.ts.map +1 -0
- package/dist/core/src/reactive/index.js +33 -0
- package/dist/core/src/reactive/index.js.map +1 -0
- package/dist/core/src/reactive/migration.d.ts +104 -0
- package/dist/core/src/reactive/migration.d.ts.map +1 -0
- package/dist/core/src/reactive/migration.js +257 -0
- package/dist/core/src/reactive/migration.js.map +1 -0
- package/dist/core/src/reactive/ownership.d.ts +75 -0
- package/dist/core/src/reactive/ownership.d.ts.map +1 -0
- package/dist/core/src/reactive/ownership.js +155 -0
- package/dist/core/src/reactive/ownership.js.map +1 -0
- package/dist/core/src/reactive/scheduler.d.ts +56 -0
- package/dist/core/src/reactive/scheduler.d.ts.map +1 -0
- package/dist/core/src/reactive/scheduler.js +263 -0
- package/dist/core/src/reactive/scheduler.js.map +1 -0
- package/dist/core/src/reactive/signal-list.d.ts +100 -0
- package/dist/core/src/reactive/signal-list.d.ts.map +1 -0
- package/dist/core/src/reactive/signal-list.js +240 -0
- package/dist/core/src/reactive/signal-list.js.map +1 -0
- package/dist/core/src/reactive/signal.d.ts +82 -0
- package/dist/core/src/reactive/signal.d.ts.map +1 -0
- package/dist/core/src/reactive/signal.js +172 -0
- package/dist/core/src/reactive/signal.js.map +1 -0
- package/dist/core/src/reactive/theme.d.ts +12 -0
- package/dist/core/src/reactive/theme.d.ts.map +1 -0
- package/dist/core/src/reactive/theme.js +41 -0
- package/dist/core/src/reactive/theme.js.map +1 -0
- package/dist/core/src/reactive/types.d.ts +6 -0
- package/dist/core/src/reactive/types.d.ts.map +1 -0
- package/dist/core/src/reactive/types.js +6 -0
- package/dist/core/src/reactive/types.js.map +1 -0
- package/dist/core/src/reactive/unified-scheduler.d.ts +112 -0
- package/dist/core/src/reactive/unified-scheduler.d.ts.map +1 -0
- package/dist/core/src/reactive/unified-scheduler.js +315 -0
- package/dist/core/src/reactive/unified-scheduler.js.map +1 -0
- package/dist/core/src/runtime/component-context.d.ts +73 -0
- package/dist/core/src/runtime/component-context.d.ts.map +1 -0
- package/dist/core/src/runtime/component-context.js +278 -0
- package/dist/core/src/runtime/component-context.js.map +1 -0
- package/dist/core/src/runtime/component.d.ts +112 -0
- package/dist/core/src/runtime/component.d.ts.map +1 -0
- package/dist/core/src/runtime/component.js +394 -0
- package/dist/core/src/runtime/component.js.map +1 -0
- package/dist/core/src/runtime/context.d.ts +138 -0
- package/dist/core/src/runtime/context.d.ts.map +1 -0
- package/dist/core/src/runtime/context.js +411 -0
- package/dist/core/src/runtime/context.js.map +1 -0
- package/dist/core/src/runtime/dom-bridge.d.ts +70 -0
- package/dist/core/src/runtime/dom-bridge.d.ts.map +1 -0
- package/dist/core/src/runtime/dom-bridge.js +481 -0
- package/dist/core/src/runtime/dom-bridge.js.map +1 -0
- package/dist/core/src/runtime/element-override.d.ts +82 -0
- package/dist/core/src/runtime/element-override.d.ts.map +1 -0
- package/dist/core/src/runtime/element-override.js +360 -0
- package/dist/core/src/runtime/element-override.js.map +1 -0
- package/dist/core/src/runtime/event-delegation.d.ts +59 -0
- package/dist/core/src/runtime/event-delegation.d.ts.map +1 -0
- package/dist/core/src/runtime/event-delegation.js +220 -0
- package/dist/core/src/runtime/event-delegation.js.map +1 -0
- package/dist/core/src/runtime/index.d.ts +24 -0
- package/dist/core/src/runtime/index.d.ts.map +1 -0
- package/dist/core/src/runtime/index.js +36 -0
- package/dist/core/src/runtime/index.js.map +1 -0
- package/dist/core/src/runtime/lazy-component.d.ts +58 -0
- package/dist/core/src/runtime/lazy-component.d.ts.map +1 -0
- package/dist/core/src/runtime/lazy-component.js +206 -0
- package/dist/core/src/runtime/lazy-component.js.map +1 -0
- package/dist/core/src/runtime/lifecycle.d.ts +8 -0
- package/dist/core/src/runtime/lifecycle.d.ts.map +1 -0
- package/dist/core/src/runtime/lifecycle.js +9 -0
- package/dist/core/src/runtime/lifecycle.js.map +1 -0
- package/dist/core/src/runtime/mounting.d.ts +9 -0
- package/dist/core/src/runtime/mounting.d.ts.map +1 -0
- package/dist/core/src/runtime/mounting.js +15 -0
- package/dist/core/src/runtime/mounting.js.map +1 -0
- package/dist/core/src/runtime/optimization.d.ts +8 -0
- package/dist/core/src/runtime/optimization.d.ts.map +1 -0
- package/dist/core/src/runtime/optimization.js +12 -0
- package/dist/core/src/runtime/optimization.js.map +1 -0
- package/dist/core/src/runtime/props.d.ts +154 -0
- package/dist/core/src/runtime/props.d.ts.map +1 -0
- package/dist/core/src/runtime/props.js +389 -0
- package/dist/core/src/runtime/props.js.map +1 -0
- package/dist/core/src/runtime/renderer.d.ts +168 -0
- package/dist/core/src/runtime/renderer.d.ts.map +1 -0
- package/dist/core/src/runtime/renderer.js +1181 -0
- package/dist/core/src/runtime/renderer.js.map +1 -0
- package/dist/core/src/runtime/semantic-role-manager.d.ts +37 -0
- package/dist/core/src/runtime/semantic-role-manager.d.ts.map +1 -0
- package/dist/core/src/runtime/semantic-role-manager.js +102 -0
- package/dist/core/src/runtime/semantic-role-manager.js.map +1 -0
- package/dist/core/src/runtime/types.d.ts +6 -0
- package/dist/core/src/runtime/types.d.ts.map +1 -0
- package/dist/core/src/runtime/types.js +6 -0
- package/dist/core/src/runtime/types.js.map +1 -0
- package/dist/core/src/state/binding.d.ts +96 -0
- package/dist/core/src/state/binding.d.ts.map +1 -0
- package/dist/core/src/state/binding.js +264 -0
- package/dist/core/src/state/binding.js.map +1 -0
- package/dist/core/src/state/environment.d.ts +178 -0
- package/dist/core/src/state/environment.d.ts.map +1 -0
- package/dist/core/src/state/environment.js +272 -0
- package/dist/core/src/state/environment.js.map +1 -0
- package/dist/core/src/state/index.d.ts +108 -0
- package/dist/core/src/state/index.d.ts.map +1 -0
- package/dist/core/src/state/index.js +102 -0
- package/dist/core/src/state/index.js.map +1 -0
- package/dist/core/src/state/observed-object.d.ts +126 -0
- package/dist/core/src/state/observed-object.d.ts.map +1 -0
- package/dist/core/src/state/observed-object.js +330 -0
- package/dist/core/src/state/observed-object.js.map +1 -0
- package/dist/core/src/state/state-manager.d.ts +97 -0
- package/dist/core/src/state/state-manager.d.ts.map +1 -0
- package/dist/core/src/state/state-manager.js +297 -0
- package/dist/core/src/state/state-manager.js.map +1 -0
- package/dist/core/src/state/state.d.ts +78 -0
- package/dist/core/src/state/state.d.ts.map +1 -0
- package/dist/core/src/state/state.js +283 -0
- package/dist/core/src/state/state.js.map +1 -0
- package/dist/core/src/state/types.d.ts +159 -0
- package/dist/core/src/state/types.d.ts.map +1 -0
- package/dist/core/src/state/types.js +8 -0
- package/dist/core/src/state/types.js.map +1 -0
- package/dist/core/src/utils/clone-helpers.d.ts +11 -0
- package/dist/core/src/utils/clone-helpers.d.ts.map +1 -0
- package/dist/core/src/utils/clone-helpers.js +69 -0
- package/dist/core/src/utils/clone-helpers.js.map +1 -0
- package/dist/core/src/validation/build-time-stub.d.ts +33 -0
- package/dist/core/src/validation/build-time-stub.d.ts.map +1 -0
- package/dist/core/src/validation/build-time-stub.js +53 -0
- package/dist/core/src/validation/build-time-stub.js.map +1 -0
- package/dist/core/src/validation/debug-tools-stub.d.ts +67 -0
- package/dist/core/src/validation/debug-tools-stub.d.ts.map +1 -0
- package/dist/core/src/validation/debug-tools-stub.js +94 -0
- package/dist/core/src/validation/debug-tools-stub.js.map +1 -0
- package/dist/core/src/validation/index.d.ts +116 -0
- package/dist/core/src/validation/index.d.ts.map +1 -0
- package/dist/core/src/validation/index.js +306 -0
- package/dist/core/src/validation/index.js.map +1 -0
- package/dist/core/src/validation/lifecycle-validation.d.ts +165 -0
- package/dist/core/src/validation/lifecycle-validation.d.ts.map +1 -0
- package/dist/core/src/validation/lifecycle-validation.js +501 -0
- package/dist/core/src/validation/lifecycle-validation.js.map +1 -0
- package/dist/core/src/validation/performance-optimizer-stub.d.ts +50 -0
- package/dist/core/src/validation/performance-optimizer-stub.d.ts.map +1 -0
- package/dist/core/src/validation/performance-optimizer-stub.js +50 -0
- package/dist/core/src/validation/performance-optimizer-stub.js.map +1 -0
- package/dist/core/src/validation/plugin-registration.d.ts +92 -0
- package/dist/core/src/validation/plugin-registration.d.ts.map +1 -0
- package/dist/core/src/validation/plugin-registration.js +199 -0
- package/dist/core/src/validation/plugin-registration.js.map +1 -0
- package/dist/core/src/validation/production-bypass-core.d.ts +69 -0
- package/dist/core/src/validation/production-bypass-core.d.ts.map +1 -0
- package/dist/core/src/validation/production-bypass-core.js +115 -0
- package/dist/core/src/validation/production-bypass-core.js.map +1 -0
- package/dist/core/src/version.d.ts +19 -0
- package/dist/core/src/version.d.ts.map +1 -0
- package/dist/core/src/version.js +20 -0
- package/dist/core/src/version.js.map +1 -0
- package/dist/devtools/src/build-time/detection.d.ts +32 -0
- package/dist/devtools/src/build-time/detection.d.ts.map +1 -0
- package/dist/devtools/src/build-time/detection.js +327 -0
- package/dist/devtools/src/build-time/detection.js.map +1 -0
- package/dist/devtools/src/build-time/index.d.ts +84 -0
- package/dist/devtools/src/build-time/index.d.ts.map +1 -0
- package/dist/devtools/src/build-time/index.js +157 -0
- package/dist/devtools/src/build-time/index.js.map +1 -0
- package/dist/devtools/src/build-time/plugins.d.ts +75 -0
- package/dist/devtools/src/build-time/plugins.d.ts.map +1 -0
- package/dist/devtools/src/build-time/plugins.js +429 -0
- package/dist/devtools/src/build-time/plugins.js.map +1 -0
- package/dist/devtools/src/build-time/rules.d.ts +73 -0
- package/dist/devtools/src/build-time/rules.d.ts.map +1 -0
- package/dist/devtools/src/build-time/rules.js +622 -0
- package/dist/devtools/src/build-time/rules.js.map +1 -0
- package/dist/devtools/src/build-time/transformer.d.ts +23 -0
- package/dist/devtools/src/build-time/transformer.d.ts.map +1 -0
- package/dist/devtools/src/build-time/transformer.js +294 -0
- package/dist/devtools/src/build-time/transformer.js.map +1 -0
- package/dist/devtools/src/build-time/types.d.ts +212 -0
- package/dist/devtools/src/build-time/types.d.ts.map +1 -0
- package/dist/devtools/src/build-time/types.js +8 -0
- package/dist/devtools/src/build-time/types.js.map +1 -0
- package/dist/devtools/src/debug/debug.d.ts +61 -0
- package/dist/devtools/src/debug/debug.d.ts.map +1 -0
- package/dist/devtools/src/debug/debug.js +239 -0
- package/dist/devtools/src/debug/debug.js.map +1 -0
- package/dist/devtools/src/debug/development-warnings.d.ts +42 -0
- package/dist/devtools/src/debug/development-warnings.d.ts.map +1 -0
- package/dist/devtools/src/debug/development-warnings.js +84 -0
- package/dist/devtools/src/debug/development-warnings.js.map +1 -0
- package/dist/devtools/src/debug/enhanced-errors.d.ts +176 -0
- package/dist/devtools/src/debug/enhanced-errors.d.ts.map +1 -0
- package/dist/devtools/src/debug/enhanced-errors.js +481 -0
- package/dist/devtools/src/debug/enhanced-errors.js.map +1 -0
- package/dist/devtools/src/debug/enhanced-types.d.ts +284 -0
- package/dist/devtools/src/debug/enhanced-types.d.ts.map +1 -0
- package/dist/devtools/src/debug/enhanced-types.js +8 -0
- package/dist/devtools/src/debug/enhanced-types.js.map +1 -0
- package/dist/devtools/src/debug/index.d.ts +13 -0
- package/dist/devtools/src/debug/index.d.ts.map +1 -0
- package/dist/devtools/src/debug/index.js +17 -0
- package/dist/devtools/src/debug/index.js.map +1 -0
- package/dist/devtools/src/debug/validation-debug-tools.d.ts +228 -0
- package/dist/devtools/src/debug/validation-debug-tools.d.ts.map +1 -0
- package/dist/devtools/src/debug/validation-debug-tools.js +472 -0
- package/dist/devtools/src/debug/validation-debug-tools.js.map +1 -0
- package/dist/devtools/src/import-guide.d.ts +50 -0
- package/dist/devtools/src/import-guide.d.ts.map +1 -0
- package/dist/devtools/src/import-guide.js +257 -0
- package/dist/devtools/src/import-guide.js.map +1 -0
- package/dist/devtools/src/index.d.ts +24 -0
- package/dist/devtools/src/index.d.ts.map +1 -0
- package/dist/devtools/src/index.js +32 -0
- package/dist/devtools/src/index.js.map +1 -0
- package/dist/devtools/src/inspector/index.d.ts +232 -0
- package/dist/devtools/src/inspector/index.d.ts.map +1 -0
- package/dist/devtools/src/inspector/index.js +551 -0
- package/dist/devtools/src/inspector/index.js.map +1 -0
- package/dist/devtools/src/modifier-parameter-system.d.ts +69 -0
- package/dist/devtools/src/modifier-parameter-system.d.ts.map +1 -0
- package/dist/devtools/src/modifier-parameter-system.js +462 -0
- package/dist/devtools/src/modifier-parameter-system.js.map +1 -0
- package/dist/devtools/src/plugins/simplified-error-handler.d.ts +83 -0
- package/dist/devtools/src/plugins/simplified-error-handler.d.ts.map +1 -0
- package/dist/devtools/src/plugins/simplified-error-handler.js +335 -0
- package/dist/devtools/src/plugins/simplified-error-handler.js.map +1 -0
- package/dist/devtools/src/profiler/index.d.ts +21 -0
- package/dist/devtools/src/profiler/index.d.ts.map +1 -0
- package/dist/devtools/src/profiler/index.js +30 -0
- package/dist/devtools/src/profiler/index.js.map +1 -0
- package/dist/devtools/src/profiler/performance-optimizer.d.ts +115 -0
- package/dist/devtools/src/profiler/performance-optimizer.d.ts.map +1 -0
- package/dist/devtools/src/profiler/performance-optimizer.js +273 -0
- package/dist/devtools/src/profiler/performance-optimizer.js.map +1 -0
- package/dist/devtools/src/profiler/production-monitoring.d.ts +150 -0
- package/dist/devtools/src/profiler/production-monitoring.d.ts.map +1 -0
- package/dist/devtools/src/profiler/production-monitoring.js +274 -0
- package/dist/devtools/src/profiler/production-monitoring.js.map +1 -0
- package/dist/devtools/src/runtime/error-boundary.d.ts +302 -0
- package/dist/devtools/src/runtime/error-boundary.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-boundary.js +717 -0
- package/dist/devtools/src/runtime/error-boundary.js.map +1 -0
- package/dist/devtools/src/runtime/error-recovery.d.ts +267 -0
- package/dist/devtools/src/runtime/error-recovery.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-recovery.js +499 -0
- package/dist/devtools/src/runtime/error-recovery.js.map +1 -0
- package/dist/devtools/src/runtime/error-reporting.d.ts +287 -0
- package/dist/devtools/src/runtime/error-reporting.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-reporting.js +626 -0
- package/dist/devtools/src/runtime/error-reporting.js.map +1 -0
- package/dist/devtools/src/runtime/error-utils.d.ts +204 -0
- package/dist/devtools/src/runtime/error-utils.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-utils.js +519 -0
- package/dist/devtools/src/runtime/error-utils.js.map +1 -0
- package/dist/devtools/src/runtime/performance.d.ts +217 -0
- package/dist/devtools/src/runtime/performance.d.ts.map +1 -0
- package/dist/devtools/src/runtime/performance.js +538 -0
- package/dist/devtools/src/runtime/performance.js.map +1 -0
- package/dist/devtools/src/testing/index.d.ts +29 -0
- package/dist/devtools/src/testing/index.d.ts.map +1 -0
- package/dist/devtools/src/testing/index.js +48 -0
- package/dist/devtools/src/testing/index.js.map +1 -0
- package/dist/devtools/src/validation/enhanced-runtime.d.ts +310 -0
- package/dist/devtools/src/validation/enhanced-runtime.d.ts.map +1 -0
- package/dist/devtools/src/validation/enhanced-runtime.js +603 -0
- package/dist/devtools/src/validation/enhanced-runtime.js.map +1 -0
- package/dist/devtools/src/validation/error-reporting.d.ts +186 -0
- package/dist/devtools/src/validation/error-reporting.d.ts.map +1 -0
- package/dist/devtools/src/validation/error-reporting.js +439 -0
- package/dist/devtools/src/validation/error-reporting.js.map +1 -0
- package/package.json +6 -2
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js.map +0 -1
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/generate.d.ts.map +0 -1
- package/dist/commands/generate.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/migrate.d.ts.map +0 -1
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/optimize.d.ts.map +0 -1
- package/dist/commands/optimize.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- /package/dist/{commands → cli/src/commands}/analyze.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/dev.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/dev.js +0 -0
- /package/dist/{commands → cli/src/commands}/generate.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/init.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/migrate.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/optimize.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/optimize.js +0 -0
- /package/dist/{index.d.ts → cli/src/index.d.ts} +0 -0
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConcatenatedComponent Implementation
|
|
3
|
+
*
|
|
4
|
+
* The main class that represents a concatenated component composed of multiple
|
|
5
|
+
* component segments. Handles rendering, accessibility, and further concatenation.
|
|
6
|
+
*/
|
|
7
|
+
import { h } from '../runtime/renderer';
|
|
8
|
+
import { applyModifiersToNode } from '../modifiers/registry';
|
|
9
|
+
// import { CONCAT_SYMBOL } from './concatenatable' // Unused
|
|
10
|
+
/**
|
|
11
|
+
* A component that represents the concatenation of multiple components
|
|
12
|
+
*/
|
|
13
|
+
export class ConcatenatedComponent {
|
|
14
|
+
metadata;
|
|
15
|
+
type = 'component';
|
|
16
|
+
id;
|
|
17
|
+
mounted = false;
|
|
18
|
+
cleanup = [];
|
|
19
|
+
props = {}; // Required by ComponentInstance interface
|
|
20
|
+
segments; // Make segments public
|
|
21
|
+
modifiers = []; // Required by ModifiableComponent interface
|
|
22
|
+
constructor(segments, metadata, _enableOptimization = true) {
|
|
23
|
+
this.metadata = metadata;
|
|
24
|
+
this.id = `concat-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
25
|
+
// Temporarily disable optimization to avoid require() issues in browser
|
|
26
|
+
// TODO: Fix text optimization to work in browser environment
|
|
27
|
+
this.segments = segments;
|
|
28
|
+
// Apply text optimization if enabled and beneficial (disabled for now)
|
|
29
|
+
// if (enableOptimization && TextConcatenationOptimizer.shouldOptimize(segments)) {
|
|
30
|
+
// this.segments = TextConcatenationOptimizer.optimize(segments)
|
|
31
|
+
//
|
|
32
|
+
// // Log optimization stats in development
|
|
33
|
+
// if (process.env.NODE_ENV === 'development') {
|
|
34
|
+
// const stats = TextConcatenationOptimizer.getOptimizationStats(segments, this.segments)
|
|
35
|
+
// console.log(`TachUI Concatenation: Optimized ${stats.originalCount} → ${stats.optimizedCount} segments (${stats.reductionPercent}% reduction)`)
|
|
36
|
+
// }
|
|
37
|
+
// } else {
|
|
38
|
+
// this.segments = segments
|
|
39
|
+
// }
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Render the concatenated component to DOM nodes (Enhanced - Phase 4.2)
|
|
43
|
+
*/
|
|
44
|
+
render() {
|
|
45
|
+
const containerClass = this.determineContainerClass();
|
|
46
|
+
const ariaLabel = this.buildAccessibilityLabel();
|
|
47
|
+
const accessibilityAttributes = this.buildAccessibilityAttributes();
|
|
48
|
+
// Check if the concatenated component itself has asHTML modifiers
|
|
49
|
+
const hasAsHTMLModifiers = this.modifiers && this.modifiers.some(mod => mod.type === 'asHTML');
|
|
50
|
+
let segmentNodes;
|
|
51
|
+
if (hasAsHTMLModifiers) {
|
|
52
|
+
// Special handling for asHTML modifiers - apply them to individual segments
|
|
53
|
+
segmentNodes = this.renderSegmentsWithAsHTML();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Normal rendering
|
|
57
|
+
segmentNodes = this.segments.map(segment => segment.render()).flat();
|
|
58
|
+
}
|
|
59
|
+
// Create container element with comprehensive accessibility
|
|
60
|
+
const container = h('span', {
|
|
61
|
+
class: `tachui-concatenated ${containerClass}`,
|
|
62
|
+
...accessibilityAttributes,
|
|
63
|
+
'aria-label': ariaLabel || undefined,
|
|
64
|
+
// Enhanced live region support for dynamic content
|
|
65
|
+
...(this.hasInteractiveContent() && {
|
|
66
|
+
'aria-live': 'polite',
|
|
67
|
+
'aria-atomic': 'true'
|
|
68
|
+
}),
|
|
69
|
+
// Add debug information in development
|
|
70
|
+
...(process.env.NODE_ENV === 'development' && {
|
|
71
|
+
'data-concatenated-segments': this.segments.length,
|
|
72
|
+
'data-semantic-structure': this.metadata.semanticStructure,
|
|
73
|
+
'data-accessibility-role': this.metadata.accessibilityRole
|
|
74
|
+
})
|
|
75
|
+
}, ...segmentNodes);
|
|
76
|
+
return [container];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build comprehensive accessibility attributes
|
|
80
|
+
*/
|
|
81
|
+
buildAccessibilityAttributes() {
|
|
82
|
+
const attributes = {};
|
|
83
|
+
// Set appropriate role based on metadata
|
|
84
|
+
switch (this.metadata.accessibilityRole) {
|
|
85
|
+
case 'text':
|
|
86
|
+
// For text-only content, no explicit role needed (default text semantics)
|
|
87
|
+
break;
|
|
88
|
+
case 'group':
|
|
89
|
+
attributes.role = 'group';
|
|
90
|
+
// Add description for groups to clarify purpose
|
|
91
|
+
attributes['aria-describedby'] = this.generateGroupDescription();
|
|
92
|
+
break;
|
|
93
|
+
case 'composite':
|
|
94
|
+
attributes.role = 'group';
|
|
95
|
+
// For composite content (with interactive elements), mark as application region
|
|
96
|
+
attributes['aria-roledescription'] = 'interactive content group';
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
// Add reading order hints for complex layouts
|
|
100
|
+
if (this.metadata.semanticStructure === 'mixed' && this.segments.length > 2) {
|
|
101
|
+
attributes['aria-flowto'] = this.generateFlowTargets();
|
|
102
|
+
}
|
|
103
|
+
// Add keyboard navigation hints for interactive content
|
|
104
|
+
if (this.hasInteractiveContent()) {
|
|
105
|
+
attributes.tabindex = '0';
|
|
106
|
+
attributes['aria-description'] = 'Contains interactive elements. Use Tab to navigate.';
|
|
107
|
+
}
|
|
108
|
+
return attributes;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Generate description for grouped content
|
|
112
|
+
*/
|
|
113
|
+
generateGroupDescription() {
|
|
114
|
+
const componentTypes = this.getUniqueComponentTypes();
|
|
115
|
+
if (componentTypes.length === 1) {
|
|
116
|
+
return `Group of ${this.segments.length} ${componentTypes[0]} elements`;
|
|
117
|
+
}
|
|
118
|
+
return `Group containing ${componentTypes.join(', ')} elements`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Generate flow targets for reading order
|
|
122
|
+
*/
|
|
123
|
+
generateFlowTargets() {
|
|
124
|
+
// This would typically reference IDs of next focusable elements
|
|
125
|
+
// For now, return empty string as it requires DOM coordination
|
|
126
|
+
return '';
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Check if concatenated content contains interactive elements
|
|
130
|
+
*/
|
|
131
|
+
hasInteractiveContent() {
|
|
132
|
+
return this.segments.some(segment => {
|
|
133
|
+
const componentType = segment.component.constructor.name;
|
|
134
|
+
return componentType === 'EnhancedButton' || componentType === 'EnhancedLinkComponent';
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get unique component types in this concatenation
|
|
139
|
+
*/
|
|
140
|
+
getUniqueComponentTypes() {
|
|
141
|
+
const types = new Set(this.segments.map(segment => {
|
|
142
|
+
const componentType = segment.component.constructor.name;
|
|
143
|
+
switch (componentType) {
|
|
144
|
+
case 'EnhancedText': return 'text';
|
|
145
|
+
case 'EnhancedImage': return 'image';
|
|
146
|
+
case 'EnhancedButton': return 'button';
|
|
147
|
+
case 'EnhancedLinkComponent': return 'link';
|
|
148
|
+
default: return 'component';
|
|
149
|
+
}
|
|
150
|
+
}));
|
|
151
|
+
return Array.from(types);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Concatenate this component with another concatenatable component
|
|
155
|
+
*/
|
|
156
|
+
concat(other) {
|
|
157
|
+
let newSegments;
|
|
158
|
+
let newMetadata;
|
|
159
|
+
if (other instanceof ConcatenatedComponent) {
|
|
160
|
+
// Merging with another concatenated component
|
|
161
|
+
newSegments = [...this.segments, ...other.segments];
|
|
162
|
+
newMetadata = this.mergeMetadata(this.metadata, other.metadata, newSegments.length);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Adding a single component
|
|
166
|
+
newSegments = [...this.segments, other.toSegment()];
|
|
167
|
+
newMetadata = this.mergeMetadata(this.metadata, {
|
|
168
|
+
totalSegments: 1,
|
|
169
|
+
accessibilityRole: this.determineComponentAccessibilityRole(other),
|
|
170
|
+
semanticStructure: this.determineComponentSemanticStructure(other)
|
|
171
|
+
}, newSegments.length);
|
|
172
|
+
}
|
|
173
|
+
return new ConcatenatedComponent(newSegments, newMetadata);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Convert this concatenated component to a segment (for further concatenation)
|
|
177
|
+
*/
|
|
178
|
+
toSegment() {
|
|
179
|
+
return {
|
|
180
|
+
id: this.id,
|
|
181
|
+
component: this, // Cast to satisfy interface requirements
|
|
182
|
+
modifiers: [], // Concatenated components don't have their own modifiers
|
|
183
|
+
render: () => this.render()[0]
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check if this component supports concatenation
|
|
188
|
+
*/
|
|
189
|
+
isConcatenatable() {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Determine the appropriate CSS class for the container
|
|
194
|
+
*/
|
|
195
|
+
determineContainerClass() {
|
|
196
|
+
const componentTypes = this.segments.map(s => s.component.constructor.name);
|
|
197
|
+
const hasImages = componentTypes.some(type => type === 'EnhancedImage');
|
|
198
|
+
const hasText = componentTypes.some(type => type === 'EnhancedText');
|
|
199
|
+
const hasButtons = componentTypes.some(type => type === 'EnhancedButton');
|
|
200
|
+
const hasLinks = componentTypes.some(type => type === 'EnhancedLink');
|
|
201
|
+
// Determine the most appropriate container class
|
|
202
|
+
if (hasImages && hasText && (hasButtons || hasLinks)) {
|
|
203
|
+
return 'mixed-content';
|
|
204
|
+
}
|
|
205
|
+
else if (hasImages && hasText) {
|
|
206
|
+
return 'image-text-composition';
|
|
207
|
+
}
|
|
208
|
+
else if (hasImages && !hasText) {
|
|
209
|
+
return 'image-composition';
|
|
210
|
+
}
|
|
211
|
+
else if (hasText && !hasImages) {
|
|
212
|
+
return 'text-composition';
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return 'generic-composition';
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Build comprehensive accessibility label for screen readers (Enhanced - Phase 4.2)
|
|
220
|
+
*/
|
|
221
|
+
buildAccessibilityLabel() {
|
|
222
|
+
const labels = this.segments.map(segment => this.extractAccessibilityText(segment));
|
|
223
|
+
// Filter out empty labels and format appropriately
|
|
224
|
+
const cleanLabels = labels.filter(Boolean);
|
|
225
|
+
if (cleanLabels.length === 0)
|
|
226
|
+
return '';
|
|
227
|
+
// Apply intelligent joining based on content type
|
|
228
|
+
return this.joinAccessibilityLabels(cleanLabels);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Intelligently join accessibility labels based on content and structure
|
|
232
|
+
*/
|
|
233
|
+
joinAccessibilityLabels(labels) {
|
|
234
|
+
if (labels.length === 1)
|
|
235
|
+
return labels[0];
|
|
236
|
+
// Analyze the semantic structure to determine appropriate joining
|
|
237
|
+
switch (this.metadata.semanticStructure) {
|
|
238
|
+
case 'inline':
|
|
239
|
+
// For inline content, join with spaces (natural reading flow)
|
|
240
|
+
return labels.join(' ');
|
|
241
|
+
case 'block':
|
|
242
|
+
// For block content, use more explicit separators
|
|
243
|
+
return labels.join('. ');
|
|
244
|
+
case 'mixed':
|
|
245
|
+
// For mixed content, use context-aware joining
|
|
246
|
+
return this.smartJoinLabels(labels);
|
|
247
|
+
default:
|
|
248
|
+
return labels.join(' ');
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Context-aware label joining for mixed content
|
|
253
|
+
*/
|
|
254
|
+
smartJoinLabels(labels) {
|
|
255
|
+
const result = [];
|
|
256
|
+
for (let i = 0; i < labels.length; i++) {
|
|
257
|
+
const current = labels[i];
|
|
258
|
+
const next = labels[i + 1];
|
|
259
|
+
result.push(current);
|
|
260
|
+
if (next) {
|
|
261
|
+
// Add appropriate separator based on content
|
|
262
|
+
if (this.needsExplicitSeparator(current, next)) {
|
|
263
|
+
result.push('. ');
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
result.push(' ');
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return result.join('');
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Determine if two accessibility labels need explicit separation
|
|
274
|
+
*/
|
|
275
|
+
needsExplicitSeparator(current, next) {
|
|
276
|
+
// Add separator if current doesn't end with punctuation and next is a new concept
|
|
277
|
+
const currentEndsWithPunctuation = /[.!?:;]$/.test(current.trim());
|
|
278
|
+
const nextStartsWithCapital = /^[A-Z]/.test(next.trim());
|
|
279
|
+
return !currentEndsWithPunctuation && nextStartsWithCapital;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Extract accessibility text from a component segment
|
|
283
|
+
*/
|
|
284
|
+
extractAccessibilityText(segment) {
|
|
285
|
+
const component = segment.component;
|
|
286
|
+
const componentType = component.constructor.name;
|
|
287
|
+
// Handle different component types
|
|
288
|
+
switch (componentType) {
|
|
289
|
+
case 'EnhancedText':
|
|
290
|
+
return component.content || component.title || '';
|
|
291
|
+
case 'EnhancedImage':
|
|
292
|
+
return component.alt || component.accessibilityLabel || 'Image';
|
|
293
|
+
case 'EnhancedButton':
|
|
294
|
+
return component.title || component.accessibilityLabel || 'Button';
|
|
295
|
+
case 'EnhancedLink':
|
|
296
|
+
return component.title || component.accessibilityLabel || 'Link';
|
|
297
|
+
case 'ConcatenatedComponent':
|
|
298
|
+
return component.buildAccessibilityLabel();
|
|
299
|
+
default:
|
|
300
|
+
return component.accessibilityLabel || '';
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Merge metadata from two concatenation operations
|
|
305
|
+
*/
|
|
306
|
+
mergeMetadata(metadata1, metadata2, totalSegments) {
|
|
307
|
+
return {
|
|
308
|
+
totalSegments,
|
|
309
|
+
accessibilityRole: this.mergeAccessibilityRoles(metadata1.accessibilityRole, metadata2.accessibilityRole),
|
|
310
|
+
semanticStructure: this.mergeSemanticStructures(metadata1.semanticStructure, metadata2.semanticStructure)
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Merge accessibility roles from two components
|
|
315
|
+
*/
|
|
316
|
+
mergeAccessibilityRoles(role1, role2) {
|
|
317
|
+
// If both are text, keep text
|
|
318
|
+
if (role1 === 'text' && role2 === 'text')
|
|
319
|
+
return 'text';
|
|
320
|
+
// If either is composite, result is composite
|
|
321
|
+
if (role1 === 'composite' || role2 === 'composite')
|
|
322
|
+
return 'composite';
|
|
323
|
+
// Otherwise, it's a group
|
|
324
|
+
return 'group';
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Merge semantic structures from two components
|
|
328
|
+
*/
|
|
329
|
+
mergeSemanticStructures(structure1, structure2) {
|
|
330
|
+
// If both are inline, keep inline
|
|
331
|
+
if (structure1 === 'inline' && structure2 === 'inline')
|
|
332
|
+
return 'inline';
|
|
333
|
+
// If both are block, keep block
|
|
334
|
+
if (structure1 === 'block' && structure2 === 'block')
|
|
335
|
+
return 'block';
|
|
336
|
+
// Otherwise, it's mixed
|
|
337
|
+
return 'mixed';
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Determine accessibility role for a single component
|
|
341
|
+
*/
|
|
342
|
+
determineComponentAccessibilityRole(component) {
|
|
343
|
+
const componentType = component.constructor.name;
|
|
344
|
+
switch (componentType) {
|
|
345
|
+
case 'EnhancedText':
|
|
346
|
+
return 'text';
|
|
347
|
+
case 'EnhancedImage':
|
|
348
|
+
return 'group';
|
|
349
|
+
case 'EnhancedButton':
|
|
350
|
+
case 'EnhancedLink':
|
|
351
|
+
return 'group';
|
|
352
|
+
default:
|
|
353
|
+
return 'composite';
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Determine semantic structure for a single component
|
|
358
|
+
*/
|
|
359
|
+
determineComponentSemanticStructure(component) {
|
|
360
|
+
const componentType = component.constructor.name;
|
|
361
|
+
switch (componentType) {
|
|
362
|
+
case 'EnhancedText':
|
|
363
|
+
case 'EnhancedImage':
|
|
364
|
+
return 'inline';
|
|
365
|
+
case 'EnhancedButton':
|
|
366
|
+
case 'EnhancedLink':
|
|
367
|
+
return 'inline'; // Buttons and links are typically inline in concatenation
|
|
368
|
+
default:
|
|
369
|
+
return 'mixed';
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Special rendering method for segments with asHTML modifiers
|
|
374
|
+
*/
|
|
375
|
+
renderSegmentsWithAsHTML() {
|
|
376
|
+
// Get asHTML modifiers from the concatenated component itself
|
|
377
|
+
const asHTMLModifiers = this.modifiers?.filter(mod => mod.type === 'asHTML') || [];
|
|
378
|
+
const result = [];
|
|
379
|
+
for (const segment of this.segments) {
|
|
380
|
+
const segmentNodes = segment.render();
|
|
381
|
+
const nodes = Array.isArray(segmentNodes) ? segmentNodes : [segmentNodes];
|
|
382
|
+
// Check if this segment is a Text component that should get asHTML modifiers
|
|
383
|
+
const isTextComponent = this.isTextSegment(segment);
|
|
384
|
+
if (isTextComponent && nodes.length > 0) {
|
|
385
|
+
// Apply asHTML modifiers to the segment's DOM node with proper context
|
|
386
|
+
const modifiedNode = this.applyAsHTMLToSegment(nodes[0], asHTMLModifiers, segment);
|
|
387
|
+
result.push(modifiedNode);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
// No asHTML modifiers needed, use normal rendering
|
|
391
|
+
result.push(...nodes);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return result;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Check if a segment represents a Text component
|
|
398
|
+
*/
|
|
399
|
+
isTextSegment(segment) {
|
|
400
|
+
const component = segment.component;
|
|
401
|
+
if (!component)
|
|
402
|
+
return false;
|
|
403
|
+
// Check various ways to identify Text components
|
|
404
|
+
return component.constructor?.name === 'TextComponent' ||
|
|
405
|
+
component.constructor?.name === 'EnhancedText' ||
|
|
406
|
+
component.__tachui_component_type === 'Text' ||
|
|
407
|
+
component.componentMetadata?.originalType === 'Text';
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Apply asHTML modifiers to a segment with proper component context
|
|
411
|
+
*/
|
|
412
|
+
applyAsHTMLToSegment(node, asHTMLModifiers, segment) {
|
|
413
|
+
// Create proper context with the original component instance
|
|
414
|
+
const context = {
|
|
415
|
+
element: undefined, // Will be set when the node is rendered to DOM
|
|
416
|
+
componentId: segment.id,
|
|
417
|
+
phase: 'creation',
|
|
418
|
+
componentInstance: segment.component, // Pass the original component
|
|
419
|
+
};
|
|
420
|
+
// Apply only the asHTML modifiers to this segment
|
|
421
|
+
return applyModifiersToNode(node, asHTMLModifiers, context, { batch: true });
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Generate comprehensive accessibility tree for this concatenated component
|
|
425
|
+
*/
|
|
426
|
+
generateAccessibilityTree() {
|
|
427
|
+
return {
|
|
428
|
+
role: this.metadata.accessibilityRole,
|
|
429
|
+
label: this.buildAccessibilityLabel(),
|
|
430
|
+
children: this.segments.map(segment => this.segmentToAccessibilityNode(segment))
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Convert a component segment to an accessibility node
|
|
435
|
+
*/
|
|
436
|
+
segmentToAccessibilityNode(segment) {
|
|
437
|
+
const component = segment.component;
|
|
438
|
+
return {
|
|
439
|
+
role: this.determineComponentAccessibilityRole(component),
|
|
440
|
+
label: this.extractAccessibilityText(segment),
|
|
441
|
+
children: component instanceof ConcatenatedComponent
|
|
442
|
+
? component.generateAccessibilityTree().children
|
|
443
|
+
: undefined
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
//# sourceMappingURL=concatenated-component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concatenated-component.js","sourceRoot":"","sources":["../../../../../core/src/concatenation/concatenated-component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Concatenation System
|
|
3
|
+
*
|
|
4
|
+
* Exports all concatenation functionality for SwiftUI-style component composition
|
|
5
|
+
* using the + operator.
|
|
6
|
+
*/
|
|
7
|
+
export type { ComponentSegment, ConcatenationMetadata, AccessibilityNode, ConcatenationResult, Concatenatable } from './types';
|
|
8
|
+
export { ConcatenationSymbol, isConcatenatable, isConcatenatedComponent } from './types';
|
|
9
|
+
export { ConcatenatableBase, makeConcatenatable, CONCAT_SYMBOL } from './concatenatable';
|
|
10
|
+
export { ConcatenatedComponent } from './concatenated-component';
|
|
11
|
+
export { TextConcatenationOptimizer } from './text-optimizer';
|
|
12
|
+
export { ConcatenatedComponent as Concatenated } from './concatenated-component';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/concatenation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,qBAAqB,EACtB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,0BAA0B,EAC3B,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,qBAAqB,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Concatenation System
|
|
3
|
+
*
|
|
4
|
+
* Exports all concatenation functionality for SwiftUI-style component composition
|
|
5
|
+
* using the + operator.
|
|
6
|
+
*/
|
|
7
|
+
export { ConcatenationSymbol, isConcatenatable, isConcatenatedComponent } from './types';
|
|
8
|
+
// Base concatenatable implementation
|
|
9
|
+
export { ConcatenatableBase, makeConcatenatable, CONCAT_SYMBOL } from './concatenatable';
|
|
10
|
+
// Main concatenated component class
|
|
11
|
+
export { ConcatenatedComponent } from './concatenated-component';
|
|
12
|
+
// Text optimization utilities
|
|
13
|
+
export { TextConcatenationOptimizer } from './text-optimizer';
|
|
14
|
+
// Re-export for convenience
|
|
15
|
+
export { ConcatenatedComponent as Concatenated } from './concatenated-component';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../core/src/concatenation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,qCAAqC;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,kBAAkB,CAAA;AAEzB,oCAAoC;AACpC,OAAO,EACL,qBAAqB,EACtB,MAAM,0BAA0B,CAAA;AAEjC,8BAA8B;AAC9B,OAAO,EACL,0BAA0B,EAC3B,MAAM,kBAAkB,CAAA;AAEzB,4BAA4B;AAC5B,OAAO,EAAE,qBAAqB,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text Concatenation Optimizer (Enhanced - Phase 4.1)
|
|
3
|
+
*
|
|
4
|
+
* Optimizes concatenated text components by merging adjacent text segments
|
|
5
|
+
* with compatible modifiers to improve performance and reduce DOM complexity.
|
|
6
|
+
*
|
|
7
|
+
* Enhanced with caching and advanced optimization strategies.
|
|
8
|
+
*/
|
|
9
|
+
import type { ComponentSegment } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Text-specific concatenation optimizer
|
|
12
|
+
*/
|
|
13
|
+
export declare class TextConcatenationOptimizer {
|
|
14
|
+
/**
|
|
15
|
+
* Optimize an array of segments by merging compatible adjacent text segments
|
|
16
|
+
* Enhanced with caching and performance monitoring
|
|
17
|
+
*/
|
|
18
|
+
static optimize(segments: ComponentSegment[]): ComponentSegment[];
|
|
19
|
+
/**
|
|
20
|
+
* Core optimization algorithm separated for clarity
|
|
21
|
+
*/
|
|
22
|
+
private static performOptimization;
|
|
23
|
+
/**
|
|
24
|
+
* Generate a cache key from segments
|
|
25
|
+
*/
|
|
26
|
+
private static generateCacheKey;
|
|
27
|
+
/**
|
|
28
|
+
* Hash modifiers for cache key generation
|
|
29
|
+
*/
|
|
30
|
+
private static hashModifiers;
|
|
31
|
+
/**
|
|
32
|
+
* Simple hash function fallback for environments without btoa
|
|
33
|
+
*/
|
|
34
|
+
private static simpleHash;
|
|
35
|
+
/**
|
|
36
|
+
* Get cached optimization result
|
|
37
|
+
*/
|
|
38
|
+
private static getCachedOptimization;
|
|
39
|
+
/**
|
|
40
|
+
* Cache optimization result
|
|
41
|
+
*/
|
|
42
|
+
private static cacheOptimization;
|
|
43
|
+
/**
|
|
44
|
+
* Clear optimization cache (useful for testing)
|
|
45
|
+
*/
|
|
46
|
+
static clearCache(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get cache statistics
|
|
49
|
+
*/
|
|
50
|
+
static getCacheStats(): {
|
|
51
|
+
size: number;
|
|
52
|
+
maxSize: number;
|
|
53
|
+
hitRate: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Check if two segments can be merged
|
|
57
|
+
*/
|
|
58
|
+
private static canMergeTextSegments;
|
|
59
|
+
/**
|
|
60
|
+
* Check if two modifier arrays are compatible for merging
|
|
61
|
+
*/
|
|
62
|
+
private static modifiersCompatible;
|
|
63
|
+
/**
|
|
64
|
+
* Check if two modifiers are equal (simplified comparison)
|
|
65
|
+
*/
|
|
66
|
+
private static modifierEqual;
|
|
67
|
+
/**
|
|
68
|
+
* Merge two text segments into a single segment
|
|
69
|
+
*/
|
|
70
|
+
private static mergeTextSegments;
|
|
71
|
+
/**
|
|
72
|
+
* Extract text content from a text component
|
|
73
|
+
*/
|
|
74
|
+
private static extractTextContent;
|
|
75
|
+
/**
|
|
76
|
+
* Create a new merged text component
|
|
77
|
+
*/
|
|
78
|
+
private static createMergedTextComponent;
|
|
79
|
+
/**
|
|
80
|
+
* Analyze segments and determine if optimization would be beneficial
|
|
81
|
+
*/
|
|
82
|
+
static shouldOptimize(segments: ComponentSegment[]): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Get optimization statistics (enhanced for Phase 4.1)
|
|
85
|
+
*/
|
|
86
|
+
static getOptimizationStats(originalSegments: ComponentSegment[], optimizedSegments: ComponentSegment[]): {
|
|
87
|
+
originalCount: number;
|
|
88
|
+
optimizedCount: number;
|
|
89
|
+
reductionPercent: number;
|
|
90
|
+
textSegmentsMerged: number;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Advanced optimization analysis for performance monitoring
|
|
94
|
+
*/
|
|
95
|
+
static analyzeOptimizationOpportunities(segments: ComponentSegment[]): {
|
|
96
|
+
totalSegments: number;
|
|
97
|
+
textSegments: number;
|
|
98
|
+
imageSegments: number;
|
|
99
|
+
interactiveSegments: number;
|
|
100
|
+
optimizableTextPairs: number;
|
|
101
|
+
estimatedReductionPercent: number;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=text-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-optimizer.d.ts","sourceRoot":"","sources":["../../../../../core/src/concatenation/text-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA+B/C;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE;IAkCjE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAsB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;KAChB;IAQD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAWnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAclC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO;IAoB5D;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG;QACxG,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,gBAAgB,EAAE,MAAM,CAAA;QACxB,kBAAkB,EAAE,MAAM,CAAA;KAC3B;IAcD;;OAEG;IACH,MAAM,CAAC,gCAAgC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG;QACrE,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,mBAAmB,EAAE,MAAM,CAAA;QAC3B,oBAAoB,EAAE,MAAM,CAAA;QAC5B,yBAAyB,EAAE,MAAM,CAAA;KAClC;CA4CF"}
|