@tachui/core 0.7.0-alpha1
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/LICENSE +363 -0
- package/dist/assets/Asset.cjs +2 -0
- package/dist/assets/Asset.cjs.map +1 -0
- package/dist/assets/Asset.d.ts +11 -0
- package/dist/assets/Asset.d.ts.map +1 -0
- package/dist/assets/Asset.js +9 -0
- package/dist/assets/Asset.js.map +1 -0
- package/dist/assets/AssetCollection.cjs +2 -0
- package/dist/assets/AssetCollection.cjs.map +1 -0
- package/dist/assets/AssetCollection.d.ts +14 -0
- package/dist/assets/AssetCollection.d.ts.map +1 -0
- package/dist/assets/AssetCollection.js +44 -0
- package/dist/assets/AssetCollection.js.map +1 -0
- package/dist/assets/ColorAsset.cjs +2 -0
- package/dist/assets/ColorAsset.cjs.map +1 -0
- package/dist/assets/ColorAsset.d.ts +31 -0
- package/dist/assets/ColorAsset.d.ts.map +1 -0
- package/dist/assets/ColorAsset.js +114 -0
- package/dist/assets/ColorAsset.js.map +1 -0
- package/dist/assets/FontAsset.cjs +9 -0
- package/dist/assets/FontAsset.cjs.map +1 -0
- package/dist/assets/FontAsset.d.ts +114 -0
- package/dist/assets/FontAsset.d.ts.map +1 -0
- package/dist/assets/FontAsset.js +173 -0
- package/dist/assets/FontAsset.js.map +1 -0
- package/dist/assets/ImageAsset.cjs +2 -0
- package/dist/assets/ImageAsset.cjs.map +1 -0
- package/dist/assets/ImageAsset.d.ts +35 -0
- package/dist/assets/ImageAsset.d.ts.map +1 -0
- package/dist/assets/ImageAsset.js +39 -0
- package/dist/assets/ImageAsset.js.map +1 -0
- package/dist/assets/index.cjs +2 -0
- package/dist/assets/index.cjs.map +1 -0
- package/dist/assets/index.d.ts +26 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +119 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/types.d.ts +70 -0
- package/dist/assets/types.d.ts.map +1 -0
- package/dist/bundles/common.d.ts +24 -0
- package/dist/bundles/common.d.ts.map +1 -0
- package/dist/bundles/complete.d.ts +27 -0
- package/dist/bundles/complete.d.ts.map +1 -0
- package/dist/bundles/essential.d.ts +24 -0
- package/dist/bundles/essential.d.ts.map +1 -0
- package/dist/bundles/minimal.d.ts +24 -0
- package/dist/bundles/minimal.d.ts.map +1 -0
- package/dist/bundles/production-minimal.d.ts +35 -0
- package/dist/bundles/production-minimal.d.ts.map +1 -0
- package/dist/common.cjs +2 -0
- package/dist/common.cjs.map +1 -0
- package/dist/common.js +985 -0
- package/dist/common.js.map +1 -0
- package/dist/compiler/advanced-parser.cjs +5 -0
- package/dist/compiler/advanced-parser.cjs.map +1 -0
- package/dist/compiler/advanced-parser.d.ts +113 -0
- package/dist/compiler/advanced-parser.d.ts.map +1 -0
- package/dist/compiler/advanced-parser.js +440 -0
- package/dist/compiler/advanced-parser.js.map +1 -0
- package/dist/compiler/codegen.cjs +6 -0
- package/dist/compiler/codegen.cjs.map +1 -0
- package/dist/compiler/codegen.d.ts +20 -0
- package/dist/compiler/codegen.d.ts.map +1 -0
- package/dist/compiler/codegen.js +241 -0
- package/dist/compiler/codegen.js.map +1 -0
- package/dist/compiler/enhanced-codegen.cjs +6 -0
- package/dist/compiler/enhanced-codegen.cjs.map +1 -0
- package/dist/compiler/enhanced-codegen.d.ts +121 -0
- package/dist/compiler/enhanced-codegen.d.ts.map +1 -0
- package/dist/compiler/enhanced-codegen.js +347 -0
- package/dist/compiler/enhanced-codegen.js.map +1 -0
- package/dist/compiler/index.cjs +2 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.d.ts +14 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +13 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/parser.cjs +5 -0
- package/dist/compiler/parser.cjs.map +1 -0
- package/dist/compiler/parser.d.ts +12 -0
- package/dist/compiler/parser.d.ts.map +1 -0
- package/dist/compiler/parser.js +275 -0
- package/dist/compiler/parser.js.map +1 -0
- package/dist/compiler/plugin.cjs +33 -0
- package/dist/compiler/plugin.cjs.map +1 -0
- package/dist/compiler/plugin.d.ts +13 -0
- package/dist/compiler/plugin.d.ts.map +1 -0
- package/dist/compiler/plugin.js +103 -0
- package/dist/compiler/plugin.js.map +1 -0
- package/dist/compiler/types.d.ts +149 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/components/BasicInput.cjs +2 -0
- package/dist/components/BasicInput.cjs.map +1 -0
- package/dist/components/BasicInput.d.ts +116 -0
- package/dist/components/BasicInput.d.ts.map +1 -0
- package/dist/components/BasicInput.js +182 -0
- package/dist/components/BasicInput.js.map +1 -0
- package/dist/components/Button.cjs +7 -0
- package/dist/components/Button.cjs.map +1 -0
- package/dist/components/Button.d.ts +252 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +408 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Divider.cjs +2 -0
- package/dist/components/Divider.cjs.map +1 -0
- package/dist/components/Divider.d.ts +141 -0
- package/dist/components/Divider.d.ts.map +1 -0
- package/dist/components/Divider.js +187 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/EnhancedLink.cjs +2 -0
- package/dist/components/EnhancedLink.cjs.map +1 -0
- package/dist/components/EnhancedLink.d.ts +365 -0
- package/dist/components/EnhancedLink.d.ts.map +1 -0
- package/dist/components/EnhancedLink.js +345 -0
- package/dist/components/EnhancedLink.js.map +1 -0
- package/dist/components/Form.cjs +2 -0
- package/dist/components/Form.cjs.map +1 -0
- package/dist/components/Form.d.ts +141 -0
- package/dist/components/Form.d.ts.map +1 -0
- package/dist/components/Form.js +244 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/Grid.cjs +2 -0
- package/dist/components/Grid.cjs.map +1 -0
- package/dist/components/Grid.d.ts +698 -0
- package/dist/components/Grid.d.ts.map +1 -0
- package/dist/components/Grid.js +1045 -0
- package/dist/components/Grid.js.map +1 -0
- package/dist/components/GridResponsive.cjs +2 -0
- package/dist/components/GridResponsive.cjs.map +1 -0
- package/dist/components/GridResponsive.d.ts +214 -0
- package/dist/components/GridResponsive.d.ts.map +1 -0
- package/dist/components/GridResponsive.js +382 -0
- package/dist/components/GridResponsive.js.map +1 -0
- package/dist/components/Image.cjs +2 -0
- package/dist/components/Image.cjs.map +1 -0
- package/dist/components/Image.d.ts +162 -0
- package/dist/components/Image.d.ts.map +1 -0
- package/dist/components/Image.js +212 -0
- package/dist/components/Image.js.map +1 -0
- package/dist/components/List.cjs +2 -0
- package/dist/components/List.cjs.map +1 -0
- package/dist/components/List.d.ts +287 -0
- package/dist/components/List.d.ts.map +1 -0
- package/dist/components/List.js +561 -0
- package/dist/components/List.js.map +1 -0
- package/dist/components/Menu.cjs +2 -0
- package/dist/components/Menu.cjs.map +1 -0
- package/dist/components/Menu.d.ts +159 -0
- package/dist/components/Menu.d.ts.map +1 -0
- package/dist/components/Menu.js +443 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/Picker.cjs +2 -0
- package/dist/components/Picker.cjs.map +1 -0
- package/dist/components/Picker.d.ts +153 -0
- package/dist/components/Picker.d.ts.map +1 -0
- package/dist/components/Picker.js +478 -0
- package/dist/components/Picker.js.map +1 -0
- package/dist/components/ScrollView.cjs +6 -0
- package/dist/components/ScrollView.cjs.map +1 -0
- package/dist/components/ScrollView.d.ts +222 -0
- package/dist/components/ScrollView.d.ts.map +1 -0
- package/dist/components/ScrollView.js +363 -0
- package/dist/components/ScrollView.js.map +1 -0
- package/dist/components/Section.cjs +2 -0
- package/dist/components/Section.cjs.map +1 -0
- package/dist/components/Section.d.ts +153 -0
- package/dist/components/Section.d.ts.map +1 -0
- package/dist/components/Section.js +323 -0
- package/dist/components/Section.js.map +1 -0
- package/dist/components/Show.cjs +2 -0
- package/dist/components/Show.cjs.map +1 -0
- package/dist/components/Show.d.ts +64 -0
- package/dist/components/Show.d.ts.map +1 -0
- package/dist/components/Show.js +112 -0
- package/dist/components/Show.js.map +1 -0
- package/dist/components/Spacer.cjs +2 -0
- package/dist/components/Spacer.cjs.map +1 -0
- package/dist/components/Spacer.d.ts +35 -0
- package/dist/components/Spacer.d.ts.map +1 -0
- package/dist/components/Spacer.js +53 -0
- package/dist/components/Spacer.js.map +1 -0
- package/dist/components/Text.cjs +2 -0
- package/dist/components/Text.cjs.map +1 -0
- package/dist/components/Text.d.ts +242 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +193 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Toggle.cjs +2 -0
- package/dist/components/Toggle.cjs.map +1 -0
- package/dist/components/Toggle.d.ts +207 -0
- package/dist/components/Toggle.d.ts.map +1 -0
- package/dist/components/Toggle.js +477 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/index.cjs +2 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +45 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +104 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/wrapper.cjs +2 -0
- package/dist/components/wrapper.cjs.map +1 -0
- package/dist/components/wrapper.d.ts +249 -0
- package/dist/components/wrapper.d.ts.map +1 -0
- package/dist/components/wrapper.js +484 -0
- package/dist/components/wrapper.js.map +1 -0
- package/dist/concatenation/concatenatable.cjs +2 -0
- package/dist/concatenation/concatenatable.cjs.map +1 -0
- package/dist/concatenation/concatenatable.d.ts +63 -0
- package/dist/concatenation/concatenatable.d.ts.map +1 -0
- package/dist/concatenation/concatenatable.js +118 -0
- package/dist/concatenation/concatenatable.js.map +1 -0
- package/dist/concatenation/concatenated-component.cjs +2 -0
- package/dist/concatenation/concatenated-component.cjs.map +1 -0
- package/dist/concatenation/concatenated-component.d.ts +110 -0
- package/dist/concatenation/concatenated-component.d.ts.map +1 -0
- package/dist/concatenation/concatenated-component.js +276 -0
- package/dist/concatenation/concatenated-component.js.map +1 -0
- package/dist/concatenation/index.d.ts +13 -0
- package/dist/concatenation/index.d.ts.map +1 -0
- package/dist/concatenation/text-optimizer.cjs +2 -0
- package/dist/concatenation/text-optimizer.cjs.map +1 -0
- package/dist/concatenation/text-optimizer.d.ts +104 -0
- package/dist/concatenation/text-optimizer.d.ts.map +1 -0
- package/dist/concatenation/text-optimizer.js +236 -0
- package/dist/concatenation/text-optimizer.js.map +1 -0
- package/dist/concatenation/types.cjs +2 -0
- package/dist/concatenation/types.cjs.map +1 -0
- package/dist/concatenation/types.d.ts +88 -0
- package/dist/concatenation/types.d.ts.map +1 -0
- package/dist/concatenation/types.js +13 -0
- package/dist/concatenation/types.js.map +1 -0
- package/dist/constants/frame-utils.cjs +2 -0
- package/dist/constants/frame-utils.cjs.map +1 -0
- package/dist/constants/frame-utils.d.ts +68 -0
- package/dist/constants/frame-utils.d.ts.map +1 -0
- package/dist/constants/frame-utils.js +116 -0
- package/dist/constants/frame-utils.js.map +1 -0
- package/dist/constants/index.d.ts +8 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/layout.cjs +2 -0
- package/dist/constants/layout.cjs.map +1 -0
- package/dist/constants/layout.d.ts +60 -0
- package/dist/constants/layout.d.ts.map +1 -0
- package/dist/constants/layout.js +46 -0
- package/dist/constants/layout.js.map +1 -0
- package/dist/css-classes/component-base.cjs +2 -0
- package/dist/css-classes/component-base.cjs.map +1 -0
- package/dist/css-classes/component-base.d.ts +40 -0
- package/dist/css-classes/component-base.d.ts.map +1 -0
- package/dist/css-classes/component-base.js +62 -0
- package/dist/css-classes/component-base.js.map +1 -0
- package/dist/css-classes/css-class-manager.cjs +2 -0
- package/dist/css-classes/css-class-manager.cjs.map +1 -0
- package/dist/css-classes/css-class-manager.d.ts +89 -0
- package/dist/css-classes/css-class-manager.d.ts.map +1 -0
- package/dist/css-classes/css-class-manager.js +209 -0
- package/dist/css-classes/css-class-manager.js.map +1 -0
- package/dist/css-classes/dom-integration.cjs +2 -0
- package/dist/css-classes/dom-integration.cjs.map +1 -0
- package/dist/css-classes/dom-integration.d.ts +76 -0
- package/dist/css-classes/dom-integration.d.ts.map +1 -0
- package/dist/css-classes/dom-integration.js +67 -0
- package/dist/css-classes/dom-integration.js.map +1 -0
- package/dist/css-classes/enhanced-renderer.cjs +2 -0
- package/dist/css-classes/enhanced-renderer.cjs.map +1 -0
- package/dist/css-classes/enhanced-renderer.d.ts +42 -0
- package/dist/css-classes/enhanced-renderer.d.ts.map +1 -0
- package/dist/css-classes/enhanced-renderer.js +73 -0
- package/dist/css-classes/enhanced-renderer.js.map +1 -0
- package/dist/css-classes/index.d.ts +14 -0
- package/dist/css-classes/index.d.ts.map +1 -0
- package/dist/css-classes/types.d.ts +59 -0
- package/dist/css-classes/types.d.ts.map +1 -0
- package/dist/css-classes/utilities.cjs +2 -0
- package/dist/css-classes/utilities.cjs.map +1 -0
- package/dist/css-classes/utilities.d.ts +104 -0
- package/dist/css-classes/utilities.d.ts.map +1 -0
- package/dist/css-classes/utilities.js +41 -0
- package/dist/css-classes/utilities.js.map +1 -0
- package/dist/debug/index.d.ts +61 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug.cjs +52 -0
- package/dist/debug.cjs.map +1 -0
- package/dist/debug.js +179 -0
- package/dist/debug.js.map +1 -0
- package/dist/developer-experience/enhanced-errors.d.ts +128 -0
- package/dist/developer-experience/enhanced-errors.d.ts.map +1 -0
- package/dist/developer-experience/enhanced-types.d.ts +281 -0
- package/dist/developer-experience/enhanced-types.d.ts.map +1 -0
- package/dist/developer-experience/index.d.ts +44 -0
- package/dist/developer-experience/index.d.ts.map +1 -0
- package/dist/essential.cjs +2 -0
- package/dist/essential.cjs.map +1 -0
- package/dist/essential.js +968 -0
- package/dist/essential.js.map +1 -0
- package/dist/gradients/css-generator.cjs +2 -0
- package/dist/gradients/css-generator.cjs.map +1 -0
- package/dist/gradients/css-generator.d.ts +10 -0
- package/dist/gradients/css-generator.d.ts.map +1 -0
- package/dist/gradients/css-generator.js +100 -0
- package/dist/gradients/css-generator.js.map +1 -0
- package/dist/gradients/examples.cjs +2 -0
- package/dist/gradients/examples.cjs.map +1 -0
- package/dist/gradients/examples.d.ts +432 -0
- package/dist/gradients/examples.d.ts.map +1 -0
- package/dist/gradients/examples.js +555 -0
- package/dist/gradients/examples.js.map +1 -0
- package/dist/gradients/gradient-asset.cjs +2 -0
- package/dist/gradients/gradient-asset.cjs.map +1 -0
- package/dist/gradients/gradient-asset.d.ts +10 -0
- package/dist/gradients/gradient-asset.d.ts.map +1 -0
- package/dist/gradients/gradient-asset.js +22 -0
- package/dist/gradients/gradient-asset.js.map +1 -0
- package/dist/gradients/index.cjs +2 -0
- package/dist/gradients/index.cjs.map +1 -0
- package/dist/gradients/index.d.ts +19 -0
- package/dist/gradients/index.d.ts.map +1 -0
- package/dist/gradients/index.js +78 -0
- package/dist/gradients/index.js.map +1 -0
- package/dist/gradients/performance.cjs +2 -0
- package/dist/gradients/performance.cjs.map +1 -0
- package/dist/gradients/performance.d.ts +146 -0
- package/dist/gradients/performance.d.ts.map +1 -0
- package/dist/gradients/performance.js +237 -0
- package/dist/gradients/performance.js.map +1 -0
- package/dist/gradients/presets.cjs +2 -0
- package/dist/gradients/presets.cjs.map +1 -0
- package/dist/gradients/presets.d.ts +165 -0
- package/dist/gradients/presets.d.ts.map +1 -0
- package/dist/gradients/presets.js +254 -0
- package/dist/gradients/presets.js.map +1 -0
- package/dist/gradients/reactive.cjs +2 -0
- package/dist/gradients/reactive.cjs.map +1 -0
- package/dist/gradients/reactive.d.ts +167 -0
- package/dist/gradients/reactive.d.ts.map +1 -0
- package/dist/gradients/reactive.js +239 -0
- package/dist/gradients/reactive.js.map +1 -0
- package/dist/gradients/state-gradient-asset.cjs +2 -0
- package/dist/gradients/state-gradient-asset.cjs.map +1 -0
- package/dist/gradients/state-gradient-asset.d.ts +67 -0
- package/dist/gradients/state-gradient-asset.d.ts.map +1 -0
- package/dist/gradients/state-gradient-asset.js +111 -0
- package/dist/gradients/state-gradient-asset.js.map +1 -0
- package/dist/gradients/types.d.ts +94 -0
- package/dist/gradients/types.d.ts.map +1 -0
- package/dist/gradients/utils.cjs +2 -0
- package/dist/gradients/utils.cjs.map +1 -0
- package/dist/gradients/utils.d.ts +313 -0
- package/dist/gradients/utils.d.ts.map +1 -0
- package/dist/gradients/utils.js +385 -0
- package/dist/gradients/utils.js.map +1 -0
- package/dist/gradients/validation.cjs +2 -0
- package/dist/gradients/validation.cjs.map +1 -0
- package/dist/gradients/validation.d.ts +156 -0
- package/dist/gradients/validation.d.ts.map +1 -0
- package/dist/gradients/validation.js +209 -0
- package/dist/gradients/validation.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +965 -0
- package/dist/index.js.map +1 -0
- package/dist/index2.cjs +2 -0
- package/dist/index2.cjs.map +1 -0
- package/dist/index2.js +293 -0
- package/dist/index2.js.map +1 -0
- package/dist/lifecycle/hooks.cjs +2 -0
- package/dist/lifecycle/hooks.cjs.map +1 -0
- package/dist/lifecycle/hooks.d.ts +101 -0
- package/dist/lifecycle/hooks.d.ts.map +1 -0
- package/dist/lifecycle/hooks.js +159 -0
- package/dist/lifecycle/hooks.js.map +1 -0
- package/dist/minimal-prod.cjs +2 -0
- package/dist/minimal-prod.cjs.map +1 -0
- package/dist/minimal-prod.js +193 -0
- package/dist/minimal-prod.js.map +1 -0
- package/dist/minimal.cjs +2 -0
- package/dist/minimal.cjs.map +1 -0
- package/dist/minimal.js +968 -0
- package/dist/minimal.js.map +1 -0
- package/dist/modifiers/as-html-validator.cjs +2 -0
- package/dist/modifiers/as-html-validator.cjs.map +1 -0
- package/dist/modifiers/as-html-validator.d.ts +20 -0
- package/dist/modifiers/as-html-validator.d.ts.map +1 -0
- package/dist/modifiers/as-html-validator.js +47 -0
- package/dist/modifiers/as-html-validator.js.map +1 -0
- package/dist/modifiers/as-html.cjs +2 -0
- package/dist/modifiers/as-html.cjs.map +1 -0
- package/dist/modifiers/as-html.d.ts +65 -0
- package/dist/modifiers/as-html.d.ts.map +1 -0
- package/dist/modifiers/as-html.js +71 -0
- package/dist/modifiers/as-html.js.map +1 -0
- package/dist/modifiers/attributes.cjs +2 -0
- package/dist/modifiers/attributes.cjs.map +1 -0
- package/dist/modifiers/attributes.d.ts +203 -0
- package/dist/modifiers/attributes.d.ts.map +1 -0
- package/dist/modifiers/attributes.js +272 -0
- package/dist/modifiers/attributes.js.map +1 -0
- package/dist/modifiers/backdrop.cjs +2 -0
- package/dist/modifiers/backdrop.cjs.map +1 -0
- package/dist/modifiers/backdrop.d.ts +59 -0
- package/dist/modifiers/backdrop.d.ts.map +1 -0
- package/dist/modifiers/backdrop.js +109 -0
- package/dist/modifiers/backdrop.js.map +1 -0
- package/dist/modifiers/background.cjs +2 -0
- package/dist/modifiers/background.cjs.map +1 -0
- package/dist/modifiers/background.d.ts +21 -0
- package/dist/modifiers/background.d.ts.map +1 -0
- package/dist/modifiers/background.js +67 -0
- package/dist/modifiers/background.js.map +1 -0
- package/dist/modifiers/base.cjs +25 -0
- package/dist/modifiers/base.cjs.map +1 -0
- package/dist/modifiers/base.d.ts +156 -0
- package/dist/modifiers/base.d.ts.map +1 -0
- package/dist/modifiers/base.js +745 -0
- package/dist/modifiers/base.js.map +1 -0
- package/dist/modifiers/basic-sanitizer.cjs +2 -0
- package/dist/modifiers/basic-sanitizer.cjs.map +1 -0
- package/dist/modifiers/basic-sanitizer.d.ts +54 -0
- package/dist/modifiers/basic-sanitizer.d.ts.map +1 -0
- package/dist/modifiers/basic-sanitizer.js +162 -0
- package/dist/modifiers/basic-sanitizer.js.map +1 -0
- package/dist/modifiers/border.cjs +2 -0
- package/dist/modifiers/border.cjs.map +1 -0
- package/dist/modifiers/border.d.ts +217 -0
- package/dist/modifiers/border.d.ts.map +1 -0
- package/dist/modifiers/border.js +160 -0
- package/dist/modifiers/border.js.map +1 -0
- package/dist/modifiers/builder.cjs +2 -0
- package/dist/modifiers/builder.cjs.map +1 -0
- package/dist/modifiers/builder.d.ts +377 -0
- package/dist/modifiers/builder.d.ts.map +1 -0
- package/dist/modifiers/builder.js +930 -0
- package/dist/modifiers/builder.js.map +1 -0
- package/dist/modifiers/core.cjs +2 -0
- package/dist/modifiers/core.cjs.map +1 -0
- package/dist/modifiers/core.d.ts +407 -0
- package/dist/modifiers/core.d.ts.map +1 -0
- package/dist/modifiers/core.js +398 -0
- package/dist/modifiers/core.js.map +1 -0
- package/dist/modifiers/css.cjs +2 -0
- package/dist/modifiers/css.cjs.map +1 -0
- package/dist/modifiers/css.d.ts +86 -0
- package/dist/modifiers/css.d.ts.map +1 -0
- package/dist/modifiers/css.js +50 -0
- package/dist/modifiers/css.js.map +1 -0
- package/dist/modifiers/effects.cjs +2 -0
- package/dist/modifiers/effects.cjs.map +1 -0
- package/dist/modifiers/effects.d.ts +159 -0
- package/dist/modifiers/effects.d.ts.map +1 -0
- package/dist/modifiers/effects.js +178 -0
- package/dist/modifiers/effects.js.map +1 -0
- package/dist/modifiers/elements.cjs +2 -0
- package/dist/modifiers/elements.cjs.map +1 -0
- package/dist/modifiers/elements.d.ts +240 -0
- package/dist/modifiers/elements.d.ts.map +1 -0
- package/dist/modifiers/elements.js +216 -0
- package/dist/modifiers/elements.js.map +1 -0
- package/dist/modifiers/filters.cjs +2 -0
- package/dist/modifiers/filters.cjs.map +1 -0
- package/dist/modifiers/filters.d.ts +275 -0
- package/dist/modifiers/filters.d.ts.map +1 -0
- package/dist/modifiers/filters.js +223 -0
- package/dist/modifiers/filters.js.map +1 -0
- package/dist/modifiers/flexbox.cjs +2 -0
- package/dist/modifiers/flexbox.cjs.map +1 -0
- package/dist/modifiers/flexbox.d.ts +82 -0
- package/dist/modifiers/flexbox.d.ts.map +1 -0
- package/dist/modifiers/flexbox.js +56 -0
- package/dist/modifiers/flexbox.js.map +1 -0
- package/dist/modifiers/font.cjs +2 -0
- package/dist/modifiers/font.cjs.map +1 -0
- package/dist/modifiers/font.d.ts +71 -0
- package/dist/modifiers/font.d.ts.map +1 -0
- package/dist/modifiers/font.js +60 -0
- package/dist/modifiers/font.js.map +1 -0
- package/dist/modifiers/grid.cjs +2 -0
- package/dist/modifiers/grid.cjs.map +1 -0
- package/dist/modifiers/grid.d.ts +92 -0
- package/dist/modifiers/grid.d.ts.map +1 -0
- package/dist/modifiers/grid.js +92 -0
- package/dist/modifiers/grid.js.map +1 -0
- package/dist/modifiers/index.d.ts +58 -0
- package/dist/modifiers/index.d.ts.map +1 -0
- package/dist/modifiers/margin.cjs +2 -0
- package/dist/modifiers/margin.cjs.map +1 -0
- package/dist/modifiers/margin.d.ts +128 -0
- package/dist/modifiers/margin.d.ts.map +1 -0
- package/dist/modifiers/margin.js +65 -0
- package/dist/modifiers/margin.js.map +1 -0
- package/dist/modifiers/padding.cjs +2 -0
- package/dist/modifiers/padding.cjs.map +1 -0
- package/dist/modifiers/padding.d.ts +204 -0
- package/dist/modifiers/padding.d.ts.map +1 -0
- package/dist/modifiers/padding.js +109 -0
- package/dist/modifiers/padding.js.map +1 -0
- package/dist/modifiers/registry.cjs +2 -0
- package/dist/modifiers/registry.cjs.map +1 -0
- package/dist/modifiers/registry.d.ts +69 -0
- package/dist/modifiers/registry.d.ts.map +1 -0
- package/dist/modifiers/registry.js +163 -0
- package/dist/modifiers/registry.js.map +1 -0
- package/dist/modifiers/responsive/advanced-utilities.cjs +2 -0
- package/dist/modifiers/responsive/advanced-utilities.cjs.map +1 -0
- package/dist/modifiers/responsive/advanced-utilities.d.ts +118 -0
- package/dist/modifiers/responsive/advanced-utilities.d.ts.map +1 -0
- package/dist/modifiers/responsive/advanced-utilities.js +291 -0
- package/dist/modifiers/responsive/advanced-utilities.js.map +1 -0
- package/dist/modifiers/responsive/breakpoints.cjs +2 -0
- package/dist/modifiers/responsive/breakpoints.cjs.map +1 -0
- package/dist/modifiers/responsive/breakpoints.d.ts +81 -0
- package/dist/modifiers/responsive/breakpoints.d.ts.map +1 -0
- package/dist/modifiers/responsive/breakpoints.js +168 -0
- package/dist/modifiers/responsive/breakpoints.js.map +1 -0
- package/dist/modifiers/responsive/css-generator.cjs +5 -0
- package/dist/modifiers/responsive/css-generator.cjs.map +1 -0
- package/dist/modifiers/responsive/css-generator.d.ts +100 -0
- package/dist/modifiers/responsive/css-generator.d.ts.map +1 -0
- package/dist/modifiers/responsive/css-generator.js +261 -0
- package/dist/modifiers/responsive/css-generator.js.map +1 -0
- package/dist/modifiers/responsive/dev-tools.cjs +77 -0
- package/dist/modifiers/responsive/dev-tools.cjs.map +1 -0
- package/dist/modifiers/responsive/dev-tools.d.ts +107 -0
- package/dist/modifiers/responsive/dev-tools.d.ts.map +1 -0
- package/dist/modifiers/responsive/dev-tools.js +380 -0
- package/dist/modifiers/responsive/dev-tools.js.map +1 -0
- package/dist/modifiers/responsive/index.d.ts +28 -0
- package/dist/modifiers/responsive/index.d.ts.map +1 -0
- package/dist/modifiers/responsive/layout-patterns.cjs +2 -0
- package/dist/modifiers/responsive/layout-patterns.cjs.map +1 -0
- package/dist/modifiers/responsive/layout-patterns.d.ts +230 -0
- package/dist/modifiers/responsive/layout-patterns.d.ts.map +1 -0
- package/dist/modifiers/responsive/layout-patterns.js +254 -0
- package/dist/modifiers/responsive/layout-patterns.js.map +1 -0
- package/dist/modifiers/responsive/performance.cjs +3 -0
- package/dist/modifiers/responsive/performance.cjs.map +1 -0
- package/dist/modifiers/responsive/performance.d.ts +130 -0
- package/dist/modifiers/responsive/performance.d.ts.map +1 -0
- package/dist/modifiers/responsive/performance.js +212 -0
- package/dist/modifiers/responsive/performance.js.map +1 -0
- package/dist/modifiers/responsive/responsive-builder.cjs +2 -0
- package/dist/modifiers/responsive/responsive-builder.cjs.map +1 -0
- package/dist/modifiers/responsive/responsive-builder.d.ts +133 -0
- package/dist/modifiers/responsive/responsive-builder.d.ts.map +1 -0
- package/dist/modifiers/responsive/responsive-builder.js +272 -0
- package/dist/modifiers/responsive/responsive-builder.js.map +1 -0
- package/dist/modifiers/responsive/responsive-modifier.cjs +3 -0
- package/dist/modifiers/responsive/responsive-modifier.cjs.map +1 -0
- package/dist/modifiers/responsive/responsive-modifier.d.ts +123 -0
- package/dist/modifiers/responsive/responsive-modifier.d.ts.map +1 -0
- package/dist/modifiers/responsive/responsive-modifier.js +204 -0
- package/dist/modifiers/responsive/responsive-modifier.js.map +1 -0
- package/dist/modifiers/responsive/types.cjs +2 -0
- package/dist/modifiers/responsive/types.cjs.map +1 -0
- package/dist/modifiers/responsive/types.d.ts +183 -0
- package/dist/modifiers/responsive/types.d.ts.map +1 -0
- package/dist/modifiers/responsive/types.js +26 -0
- package/dist/modifiers/responsive/types.js.map +1 -0
- package/dist/modifiers/responsive/utilities.cjs +16 -0
- package/dist/modifiers/responsive/utilities.cjs.map +1 -0
- package/dist/modifiers/responsive/utilities.d.ts +149 -0
- package/dist/modifiers/responsive/utilities.d.ts.map +1 -0
- package/dist/modifiers/responsive/utilities.js +273 -0
- package/dist/modifiers/responsive/utilities.js.map +1 -0
- package/dist/modifiers/scroll.cjs +2 -0
- package/dist/modifiers/scroll.cjs.map +1 -0
- package/dist/modifiers/scroll.d.ts +143 -0
- package/dist/modifiers/scroll.d.ts.map +1 -0
- package/dist/modifiers/scroll.js +82 -0
- package/dist/modifiers/scroll.js.map +1 -0
- package/dist/modifiers/shadows.cjs +2 -0
- package/dist/modifiers/shadows.cjs.map +1 -0
- package/dist/modifiers/shadows.d.ts +114 -0
- package/dist/modifiers/shadows.d.ts.map +1 -0
- package/dist/modifiers/shadows.js +147 -0
- package/dist/modifiers/shadows.js.map +1 -0
- package/dist/modifiers/size.cjs +2 -0
- package/dist/modifiers/size.cjs.map +1 -0
- package/dist/modifiers/size.d.ts +113 -0
- package/dist/modifiers/size.d.ts.map +1 -0
- package/dist/modifiers/size.js +74 -0
- package/dist/modifiers/size.js.map +1 -0
- package/dist/modifiers/text.cjs +2 -0
- package/dist/modifiers/text.cjs.map +1 -0
- package/dist/modifiers/text.d.ts +147 -0
- package/dist/modifiers/text.d.ts.map +1 -0
- package/dist/modifiers/text.js +166 -0
- package/dist/modifiers/text.js.map +1 -0
- package/dist/modifiers/transformations.cjs +2 -0
- package/dist/modifiers/transformations.cjs.map +1 -0
- package/dist/modifiers/transformations.d.ts +329 -0
- package/dist/modifiers/transformations.d.ts.map +1 -0
- package/dist/modifiers/transformations.js +216 -0
- package/dist/modifiers/transformations.js.map +1 -0
- package/dist/modifiers/transitions.cjs +2 -0
- package/dist/modifiers/transitions.cjs.map +1 -0
- package/dist/modifiers/transitions.d.ts +98 -0
- package/dist/modifiers/transitions.d.ts.map +1 -0
- package/dist/modifiers/transitions.js +102 -0
- package/dist/modifiers/transitions.js.map +1 -0
- package/dist/modifiers/types.cjs +2 -0
- package/dist/modifiers/types.cjs.map +1 -0
- package/dist/modifiers/types.d.ts +655 -0
- package/dist/modifiers/types.d.ts.map +1 -0
- package/dist/modifiers/types.js +5 -0
- package/dist/modifiers/types.js.map +1 -0
- package/dist/modifiers/typography.cjs +2 -0
- package/dist/modifiers/typography.cjs.map +1 -0
- package/dist/modifiers/typography.d.ts +192 -0
- package/dist/modifiers/typography.d.ts.map +1 -0
- package/dist/modifiers/typography.js +76 -0
- package/dist/modifiers/typography.js.map +1 -0
- package/dist/modifiers/utility.cjs +2 -0
- package/dist/modifiers/utility.cjs.map +1 -0
- package/dist/modifiers/utility.d.ts +69 -0
- package/dist/modifiers/utility.d.ts.map +1 -0
- package/dist/modifiers/utility.js +71 -0
- package/dist/modifiers/utility.js.map +1 -0
- package/dist/modifiers/utils.cjs +2 -0
- package/dist/modifiers/utils.cjs.map +1 -0
- package/dist/modifiers/utils.d.ts +75 -0
- package/dist/modifiers/utils.d.ts.map +1 -0
- package/dist/modifiers/utils.js +250 -0
- package/dist/modifiers/utils.js.map +1 -0
- package/dist/plugins/component-loader-registry.d.ts +143 -0
- package/dist/plugins/component-loader-registry.d.ts.map +1 -0
- package/dist/plugins/index.cjs +2 -0
- package/dist/plugins/index.cjs.map +1 -0
- package/dist/plugins/index.d.ts +17 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +34 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/legacy-adapter.cjs +2 -0
- package/dist/plugins/legacy-adapter.cjs.map +1 -0
- package/dist/plugins/legacy-adapter.d.ts +35 -0
- package/dist/plugins/legacy-adapter.d.ts.map +1 -0
- package/dist/plugins/legacy-adapter.js +30 -0
- package/dist/plugins/legacy-adapter.js.map +1 -0
- package/dist/plugins/simplified-component-registry.cjs +2 -0
- package/dist/plugins/simplified-component-registry.cjs.map +1 -0
- package/dist/plugins/simplified-component-registry.d.ts +40 -0
- package/dist/plugins/simplified-component-registry.d.ts.map +1 -0
- package/dist/plugins/simplified-component-registry.js +71 -0
- package/dist/plugins/simplified-component-registry.js.map +1 -0
- package/dist/plugins/simplified-error-handler.cjs +2 -0
- package/dist/plugins/simplified-error-handler.cjs.map +1 -0
- package/dist/plugins/simplified-error-handler.d.ts +83 -0
- package/dist/plugins/simplified-error-handler.d.ts.map +1 -0
- package/dist/plugins/simplified-error-handler.js +154 -0
- package/dist/plugins/simplified-error-handler.js.map +1 -0
- package/dist/plugins/simplified-index.d.ts +17 -0
- package/dist/plugins/simplified-index.d.ts.map +1 -0
- package/dist/plugins/simplified-lazy-loader.cjs +2 -0
- package/dist/plugins/simplified-lazy-loader.cjs.map +1 -0
- package/dist/plugins/simplified-lazy-loader.d.ts +65 -0
- package/dist/plugins/simplified-lazy-loader.d.ts.map +1 -0
- package/dist/plugins/simplified-lazy-loader.js +129 -0
- package/dist/plugins/simplified-lazy-loader.js.map +1 -0
- package/dist/plugins/simplified-plugin-manager.cjs +2 -0
- package/dist/plugins/simplified-plugin-manager.cjs.map +1 -0
- package/dist/plugins/simplified-plugin-manager.d.ts +24 -0
- package/dist/plugins/simplified-plugin-manager.d.ts.map +1 -0
- package/dist/plugins/simplified-plugin-manager.js +51 -0
- package/dist/plugins/simplified-plugin-manager.js.map +1 -0
- package/dist/plugins/simplified-tachui-instance.cjs +2 -0
- package/dist/plugins/simplified-tachui-instance.cjs.map +1 -0
- package/dist/plugins/simplified-tachui-instance.d.ts +54 -0
- package/dist/plugins/simplified-tachui-instance.d.ts.map +1 -0
- package/dist/plugins/simplified-tachui-instance.js +88 -0
- package/dist/plugins/simplified-tachui-instance.js.map +1 -0
- package/dist/plugins/simplified-types.cjs +2 -0
- package/dist/plugins/simplified-types.cjs.map +1 -0
- package/dist/plugins/simplified-types.d.ts +63 -0
- package/dist/plugins/simplified-types.d.ts.map +1 -0
- package/dist/plugins/simplified-types.js +9 -0
- package/dist/plugins/simplified-types.js.map +1 -0
- package/dist/plugins/simplified-utils.cjs +2 -0
- package/dist/plugins/simplified-utils.cjs.map +1 -0
- package/dist/plugins/simplified-utils.d.ts +39 -0
- package/dist/plugins/simplified-utils.d.ts.map +1 -0
- package/dist/plugins/simplified-utils.js +40 -0
- package/dist/plugins/simplified-utils.js.map +1 -0
- package/dist/reactive/cleanup.cjs +2 -0
- package/dist/reactive/cleanup.cjs.map +1 -0
- package/dist/reactive/cleanup.d.ts +115 -0
- package/dist/reactive/cleanup.d.ts.map +1 -0
- package/dist/reactive/cleanup.js +62 -0
- package/dist/reactive/cleanup.js.map +1 -0
- package/dist/reactive/computed.cjs +2 -0
- package/dist/reactive/computed.cjs.map +1 -0
- package/dist/reactive/computed.d.ts +115 -0
- package/dist/reactive/computed.d.ts.map +1 -0
- package/dist/reactive/computed.js +121 -0
- package/dist/reactive/computed.js.map +1 -0
- package/dist/reactive/context.cjs +2 -0
- package/dist/reactive/context.cjs.map +1 -0
- package/dist/reactive/context.d.ts +82 -0
- package/dist/reactive/context.d.ts.map +1 -0
- package/dist/reactive/context.js +143 -0
- package/dist/reactive/context.js.map +1 -0
- package/dist/reactive/effect.cjs +2 -0
- package/dist/reactive/effect.cjs.map +1 -0
- package/dist/reactive/effect.d.ts +79 -0
- package/dist/reactive/effect.d.ts.map +1 -0
- package/dist/reactive/effect.js +67 -0
- package/dist/reactive/effect.js.map +1 -0
- package/dist/reactive/enhanced-effect.cjs +2 -0
- package/dist/reactive/enhanced-effect.cjs.map +1 -0
- package/dist/reactive/enhanced-effect.d.ts +108 -0
- package/dist/reactive/enhanced-effect.d.ts.map +1 -0
- package/dist/reactive/enhanced-effect.js +153 -0
- package/dist/reactive/enhanced-effect.js.map +1 -0
- package/dist/reactive/enhanced-signal.cjs +2 -0
- package/dist/reactive/enhanced-signal.cjs.map +1 -0
- package/dist/reactive/enhanced-signal.d.ts +91 -0
- package/dist/reactive/enhanced-signal.d.ts.map +1 -0
- package/dist/reactive/enhanced-signal.js +117 -0
- package/dist/reactive/enhanced-signal.js.map +1 -0
- package/dist/reactive/equality.cjs +2 -0
- package/dist/reactive/equality.cjs.map +1 -0
- package/dist/reactive/equality.d.ts +51 -0
- package/dist/reactive/equality.d.ts.map +1 -0
- package/dist/reactive/equality.js +66 -0
- package/dist/reactive/equality.js.map +1 -0
- package/dist/reactive/index.cjs +2 -0
- package/dist/reactive/index.cjs.map +1 -0
- package/dist/reactive/index.d.ts +21 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +95 -0
- package/dist/reactive/index.js.map +1 -0
- package/dist/reactive/migration.cjs +18 -0
- package/dist/reactive/migration.cjs.map +1 -0
- package/dist/reactive/migration.d.ts +104 -0
- package/dist/reactive/migration.d.ts.map +1 -0
- package/dist/reactive/migration.js +164 -0
- package/dist/reactive/migration.js.map +1 -0
- package/dist/reactive/ownership.cjs +2 -0
- package/dist/reactive/ownership.cjs.map +1 -0
- package/dist/reactive/ownership.d.ts +75 -0
- package/dist/reactive/ownership.d.ts.map +1 -0
- package/dist/reactive/ownership.js +34 -0
- package/dist/reactive/ownership.js.map +1 -0
- package/dist/reactive/scheduler.cjs +2 -0
- package/dist/reactive/scheduler.cjs.map +1 -0
- package/dist/reactive/scheduler.d.ts +56 -0
- package/dist/reactive/scheduler.d.ts.map +1 -0
- package/dist/reactive/scheduler.js +111 -0
- package/dist/reactive/scheduler.js.map +1 -0
- package/dist/reactive/signal.cjs +2 -0
- package/dist/reactive/signal.cjs.map +1 -0
- package/dist/reactive/signal.d.ts +82 -0
- package/dist/reactive/signal.d.ts.map +1 -0
- package/dist/reactive/signal.js +96 -0
- package/dist/reactive/signal.js.map +1 -0
- package/dist/reactive/theme.cjs +2 -0
- package/dist/reactive/theme.cjs.map +1 -0
- package/dist/reactive/theme.d.ts +12 -0
- package/dist/reactive/theme.d.ts.map +1 -0
- package/dist/reactive/theme.js +27 -0
- package/dist/reactive/theme.js.map +1 -0
- package/dist/reactive/types.cjs +2 -0
- package/dist/reactive/types.cjs.map +1 -0
- package/dist/reactive/types.d.ts +93 -0
- package/dist/reactive/types.d.ts.map +1 -0
- package/dist/reactive/types.js +5 -0
- package/dist/reactive/types.js.map +1 -0
- package/dist/reactive/unified-scheduler.cjs +2 -0
- package/dist/reactive/unified-scheduler.cjs.map +1 -0
- package/dist/reactive/unified-scheduler.d.ts +112 -0
- package/dist/reactive/unified-scheduler.d.ts.map +1 -0
- package/dist/reactive/unified-scheduler.js +219 -0
- package/dist/reactive/unified-scheduler.js.map +1 -0
- package/dist/runtime/component-context.cjs +2 -0
- package/dist/runtime/component-context.cjs.map +1 -0
- package/dist/runtime/component-context.d.ts +73 -0
- package/dist/runtime/component-context.d.ts.map +1 -0
- package/dist/runtime/component-context.js +177 -0
- package/dist/runtime/component-context.js.map +1 -0
- package/dist/runtime/component.cjs +2 -0
- package/dist/runtime/component.cjs.map +1 -0
- package/dist/runtime/component.d.ts +112 -0
- package/dist/runtime/component.d.ts.map +1 -0
- package/dist/runtime/component.js +238 -0
- package/dist/runtime/component.js.map +1 -0
- package/dist/runtime/context.cjs +2 -0
- package/dist/runtime/context.cjs.map +1 -0
- package/dist/runtime/context.d.ts +138 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +289 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/dev-tools.cjs +2 -0
- package/dist/runtime/dev-tools.cjs.map +1 -0
- package/dist/runtime/dev-tools.d.ts +240 -0
- package/dist/runtime/dev-tools.d.ts.map +1 -0
- package/dist/runtime/dev-tools.js +391 -0
- package/dist/runtime/dev-tools.js.map +1 -0
- package/dist/runtime/development-warnings.cjs +2 -0
- package/dist/runtime/development-warnings.cjs.map +1 -0
- package/dist/runtime/development-warnings.d.ts +42 -0
- package/dist/runtime/development-warnings.d.ts.map +1 -0
- package/dist/runtime/development-warnings.js +69 -0
- package/dist/runtime/development-warnings.js.map +1 -0
- package/dist/runtime/dom-bridge.cjs +2 -0
- package/dist/runtime/dom-bridge.cjs.map +1 -0
- package/dist/runtime/dom-bridge.d.ts +70 -0
- package/dist/runtime/dom-bridge.d.ts.map +1 -0
- package/dist/runtime/dom-bridge.js +241 -0
- package/dist/runtime/dom-bridge.js.map +1 -0
- package/dist/runtime/element-override.cjs +2 -0
- package/dist/runtime/element-override.cjs.map +1 -0
- package/dist/runtime/element-override.d.ts +82 -0
- package/dist/runtime/element-override.d.ts.map +1 -0
- package/dist/runtime/element-override.js +214 -0
- package/dist/runtime/element-override.js.map +1 -0
- package/dist/runtime/error-boundary.cjs +2 -0
- package/dist/runtime/error-boundary.cjs.map +1 -0
- package/dist/runtime/error-boundary.d.ts +302 -0
- package/dist/runtime/error-boundary.d.ts.map +1 -0
- package/dist/runtime/error-boundary.js +559 -0
- package/dist/runtime/error-boundary.js.map +1 -0
- package/dist/runtime/error-recovery.cjs +2 -0
- package/dist/runtime/error-recovery.cjs.map +1 -0
- package/dist/runtime/error-recovery.d.ts +267 -0
- package/dist/runtime/error-recovery.d.ts.map +1 -0
- package/dist/runtime/error-recovery.js +385 -0
- package/dist/runtime/error-recovery.js.map +1 -0
- package/dist/runtime/error-reporting.cjs +3 -0
- package/dist/runtime/error-reporting.cjs.map +1 -0
- package/dist/runtime/error-reporting.d.ts +287 -0
- package/dist/runtime/error-reporting.d.ts.map +1 -0
- package/dist/runtime/error-reporting.js +479 -0
- package/dist/runtime/error-reporting.js.map +1 -0
- package/dist/runtime/error-utils.cjs +3 -0
- package/dist/runtime/error-utils.cjs.map +1 -0
- package/dist/runtime/error-utils.d.ts +204 -0
- package/dist/runtime/error-utils.d.ts.map +1 -0
- package/dist/runtime/error-utils.js +352 -0
- package/dist/runtime/error-utils.js.map +1 -0
- package/dist/runtime/index.d.ts +29 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/lazy-component.cjs +2 -0
- package/dist/runtime/lazy-component.cjs.map +1 -0
- package/dist/runtime/lazy-component.d.ts +58 -0
- package/dist/runtime/lazy-component.d.ts.map +1 -0
- package/dist/runtime/lazy-component.js +129 -0
- package/dist/runtime/lazy-component.js.map +1 -0
- package/dist/runtime/lifecycle.cjs +2 -0
- package/dist/runtime/lifecycle.cjs.map +1 -0
- package/dist/runtime/lifecycle.d.ts +8 -0
- package/dist/runtime/lifecycle.d.ts.map +1 -0
- package/dist/runtime/lifecycle.js +7 -0
- package/dist/runtime/lifecycle.js.map +1 -0
- package/dist/runtime/mounting.cjs +2 -0
- package/dist/runtime/mounting.cjs.map +1 -0
- package/dist/runtime/mounting.d.ts +9 -0
- package/dist/runtime/mounting.d.ts.map +1 -0
- package/dist/runtime/mounting.js +12 -0
- package/dist/runtime/mounting.js.map +1 -0
- package/dist/runtime/optimization.cjs +2 -0
- package/dist/runtime/optimization.cjs.map +1 -0
- package/dist/runtime/optimization.d.ts +8 -0
- package/dist/runtime/optimization.d.ts.map +1 -0
- package/dist/runtime/optimization.js +6 -0
- package/dist/runtime/optimization.js.map +1 -0
- package/dist/runtime/performance.cjs +2 -0
- package/dist/runtime/performance.cjs.map +1 -0
- package/dist/runtime/performance.d.ts +217 -0
- package/dist/runtime/performance.d.ts.map +1 -0
- package/dist/runtime/performance.js +399 -0
- package/dist/runtime/performance.js.map +1 -0
- package/dist/runtime/props.cjs +2 -0
- package/dist/runtime/props.cjs.map +1 -0
- package/dist/runtime/props.d.ts +154 -0
- package/dist/runtime/props.d.ts.map +1 -0
- package/dist/runtime/props.js +265 -0
- package/dist/runtime/props.js.map +1 -0
- package/dist/runtime/refs.d.ts +8 -0
- package/dist/runtime/refs.d.ts.map +1 -0
- package/dist/runtime/renderer.cjs +2 -0
- package/dist/runtime/renderer.cjs.map +1 -0
- package/dist/runtime/renderer.d.ts +116 -0
- package/dist/runtime/renderer.d.ts.map +1 -0
- package/dist/runtime/renderer.js +390 -0
- package/dist/runtime/renderer.js.map +1 -0
- package/dist/runtime/semantic-role-manager.cjs +2 -0
- package/dist/runtime/semantic-role-manager.cjs.map +1 -0
- package/dist/runtime/semantic-role-manager.d.ts +37 -0
- package/dist/runtime/semantic-role-manager.d.ts.map +1 -0
- package/dist/runtime/semantic-role-manager.js +82 -0
- package/dist/runtime/semantic-role-manager.js.map +1 -0
- package/dist/runtime/types.d.ts +230 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/state/binding.cjs +2 -0
- package/dist/state/binding.cjs.map +1 -0
- package/dist/state/binding.d.ts +96 -0
- package/dist/state/binding.d.ts.map +1 -0
- package/dist/state/binding.js +155 -0
- package/dist/state/binding.js.map +1 -0
- package/dist/state/environment-object.d.ts +130 -0
- package/dist/state/environment-object.d.ts.map +1 -0
- package/dist/state/environment.cjs +2 -0
- package/dist/state/environment.cjs.map +1 -0
- package/dist/state/environment.d.ts +178 -0
- package/dist/state/environment.d.ts.map +1 -0
- package/dist/state/environment.js +115 -0
- package/dist/state/environment.js.map +1 -0
- package/dist/state/index.cjs +2 -0
- package/dist/state/index.cjs.map +1 -0
- package/dist/state/index.d.ts +108 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +63 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/observed-object.cjs +2 -0
- package/dist/state/observed-object.cjs.map +1 -0
- package/dist/state/observed-object.d.ts +126 -0
- package/dist/state/observed-object.d.ts.map +1 -0
- package/dist/state/observed-object.js +163 -0
- package/dist/state/observed-object.js.map +1 -0
- package/dist/state/state-manager.cjs +2 -0
- package/dist/state/state-manager.cjs.map +1 -0
- package/dist/state/state-manager.d.ts +97 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +233 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/state/state.cjs +2 -0
- package/dist/state/state.cjs.map +1 -0
- package/dist/state/state.d.ts +78 -0
- package/dist/state/state.d.ts.map +1 -0
- package/dist/state/state.js +159 -0
- package/dist/state/state.js.map +1 -0
- package/dist/state/types.d.ts +159 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/sui-compat.cjs +2 -0
- package/dist/sui-compat.cjs.map +1 -0
- package/dist/sui-compat.d.ts +110 -0
- package/dist/sui-compat.d.ts.map +1 -0
- package/dist/sui-compat.js +88 -0
- package/dist/sui-compat.js.map +1 -0
- package/dist/validation/advanced-debugging.cjs +44 -0
- package/dist/validation/advanced-debugging.cjs.map +1 -0
- package/dist/validation/advanced-debugging.d.ts +319 -0
- package/dist/validation/advanced-debugging.d.ts.map +1 -0
- package/dist/validation/advanced-debugging.js +455 -0
- package/dist/validation/advanced-debugging.js.map +1 -0
- package/dist/validation/build-time/detection.cjs +2 -0
- package/dist/validation/build-time/detection.cjs.map +1 -0
- package/dist/validation/build-time/detection.d.ts +32 -0
- package/dist/validation/build-time/detection.d.ts.map +1 -0
- package/dist/validation/build-time/detection.js +199 -0
- package/dist/validation/build-time/detection.js.map +1 -0
- package/dist/validation/build-time/index.cjs +2 -0
- package/dist/validation/build-time/index.cjs.map +1 -0
- package/dist/validation/build-time/index.d.ts +84 -0
- package/dist/validation/build-time/index.d.ts.map +1 -0
- package/dist/validation/build-time/index.js +122 -0
- package/dist/validation/build-time/index.js.map +1 -0
- package/dist/validation/build-time/plugins.cjs +3 -0
- package/dist/validation/build-time/plugins.cjs.map +1 -0
- package/dist/validation/build-time/plugins.d.ts +75 -0
- package/dist/validation/build-time/plugins.d.ts.map +1 -0
- package/dist/validation/build-time/plugins.js +282 -0
- package/dist/validation/build-time/plugins.js.map +1 -0
- package/dist/validation/build-time/rules.cjs +2 -0
- package/dist/validation/build-time/rules.cjs.map +1 -0
- package/dist/validation/build-time/rules.d.ts +73 -0
- package/dist/validation/build-time/rules.d.ts.map +1 -0
- package/dist/validation/build-time/rules.js +576 -0
- package/dist/validation/build-time/rules.js.map +1 -0
- package/dist/validation/build-time/transformer.cjs +3 -0
- package/dist/validation/build-time/transformer.cjs.map +1 -0
- package/dist/validation/build-time/transformer.d.ts +23 -0
- package/dist/validation/build-time/transformer.d.ts.map +1 -0
- package/dist/validation/build-time/transformer.js +177 -0
- package/dist/validation/build-time/transformer.js.map +1 -0
- package/dist/validation/build-time/types.d.ts +212 -0
- package/dist/validation/build-time/types.d.ts.map +1 -0
- package/dist/validation/comprehensive.cjs +9 -0
- package/dist/validation/comprehensive.cjs.map +1 -0
- package/dist/validation/comprehensive.d.ts +160 -0
- package/dist/validation/comprehensive.d.ts.map +1 -0
- package/dist/validation/comprehensive.js +916 -0
- package/dist/validation/comprehensive.js.map +1 -0
- package/dist/validation/debug-tools.cjs +16 -0
- package/dist/validation/debug-tools.cjs.map +1 -0
- package/dist/validation/debug-tools.d.ts +251 -0
- package/dist/validation/debug-tools.d.ts.map +1 -0
- package/dist/validation/debug-tools.js +405 -0
- package/dist/validation/debug-tools.js.map +1 -0
- package/dist/validation/developer-experience.cjs +17 -0
- package/dist/validation/developer-experience.cjs.map +1 -0
- package/dist/validation/developer-experience.d.ts +243 -0
- package/dist/validation/developer-experience.d.ts.map +1 -0
- package/dist/validation/developer-experience.js +433 -0
- package/dist/validation/developer-experience.js.map +1 -0
- package/dist/validation/documentation-integration.cjs +7 -0
- package/dist/validation/documentation-integration.cjs.map +1 -0
- package/dist/validation/documentation-integration.d.ts +269 -0
- package/dist/validation/documentation-integration.d.ts.map +1 -0
- package/dist/validation/documentation-integration.js +440 -0
- package/dist/validation/documentation-integration.js.map +1 -0
- package/dist/validation/enhanced-runtime.cjs +6 -0
- package/dist/validation/enhanced-runtime.cjs.map +1 -0
- package/dist/validation/enhanced-runtime.d.ts +279 -0
- package/dist/validation/enhanced-runtime.d.ts.map +1 -0
- package/dist/validation/enhanced-runtime.js +465 -0
- package/dist/validation/enhanced-runtime.js.map +1 -0
- package/dist/validation/error-reporting.cjs +32 -0
- package/dist/validation/error-reporting.cjs.map +1 -0
- package/dist/validation/error-reporting.d.ts +186 -0
- package/dist/validation/error-reporting.d.ts.map +1 -0
- package/dist/validation/error-reporting.js +370 -0
- package/dist/validation/error-reporting.js.map +1 -0
- package/dist/validation/ide-integration.cjs +85 -0
- package/dist/validation/ide-integration.cjs.map +1 -0
- package/dist/validation/ide-integration.d.ts +328 -0
- package/dist/validation/ide-integration.d.ts.map +1 -0
- package/dist/validation/ide-integration.js +557 -0
- package/dist/validation/ide-integration.js.map +1 -0
- package/dist/validation/index.cjs +6 -0
- package/dist/validation/index.cjs.map +1 -0
- package/dist/validation/index.d.ts +171 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +309 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/lifecycle-validation.cjs +2 -0
- package/dist/validation/lifecycle-validation.cjs.map +1 -0
- package/dist/validation/lifecycle-validation.d.ts +165 -0
- package/dist/validation/lifecycle-validation.d.ts.map +1 -0
- package/dist/validation/lifecycle-validation.js +314 -0
- package/dist/validation/lifecycle-validation.js.map +1 -0
- package/dist/validation/performance-optimizer.cjs +2 -0
- package/dist/validation/performance-optimizer.cjs.map +1 -0
- package/dist/validation/performance-optimizer.d.ts +218 -0
- package/dist/validation/performance-optimizer.d.ts.map +1 -0
- package/dist/validation/performance-optimizer.js +338 -0
- package/dist/validation/performance-optimizer.js.map +1 -0
- package/dist/validation/plugin-registration.cjs +2 -0
- package/dist/validation/plugin-registration.cjs.map +1 -0
- package/dist/validation/plugin-registration.d.ts +88 -0
- package/dist/validation/plugin-registration.d.ts.map +1 -0
- package/dist/validation/plugin-registration.js +126 -0
- package/dist/validation/plugin-registration.js.map +1 -0
- package/dist/validation/production-bypass.cjs +2 -0
- package/dist/validation/production-bypass.cjs.map +1 -0
- package/dist/validation/production-bypass.d.ts +175 -0
- package/dist/validation/production-bypass.d.ts.map +1 -0
- package/dist/validation/production-bypass.js +218 -0
- package/dist/validation/production-bypass.js.map +1 -0
- package/dist/validation/simple.cjs +9 -0
- package/dist/validation/simple.cjs.map +1 -0
- package/dist/validation/simple.d.ts +111 -0
- package/dist/validation/simple.d.ts.map +1 -0
- package/dist/validation/simple.js +146 -0
- package/dist/validation/simple.js.map +1 -0
- package/dist/viewport/adapters/web-adapter.cjs +70 -0
- package/dist/viewport/adapters/web-adapter.cjs.map +1 -0
- package/dist/viewport/adapters/web-adapter.d.ts +227 -0
- package/dist/viewport/adapters/web-adapter.d.ts.map +1 -0
- package/dist/viewport/adapters/web-adapter.js +823 -0
- package/dist/viewport/adapters/web-adapter.js.map +1 -0
- package/dist/viewport/components.cjs +2 -0
- package/dist/viewport/components.cjs.map +1 -0
- package/dist/viewport/components.d.ts +131 -0
- package/dist/viewport/components.d.ts.map +1 -0
- package/dist/viewport/components.js +298 -0
- package/dist/viewport/components.js.map +1 -0
- package/dist/viewport/environment.cjs +2 -0
- package/dist/viewport/environment.cjs.map +1 -0
- package/dist/viewport/environment.d.ts +75 -0
- package/dist/viewport/environment.d.ts.map +1 -0
- package/dist/viewport/environment.js +86 -0
- package/dist/viewport/environment.js.map +1 -0
- package/dist/viewport/index.cjs +2 -0
- package/dist/viewport/index.cjs.map +1 -0
- package/dist/viewport/index.d.ts +138 -0
- package/dist/viewport/index.d.ts.map +1 -0
- package/dist/viewport/index.js +166 -0
- package/dist/viewport/index.js.map +1 -0
- package/dist/viewport/platform-detection.cjs +2 -0
- package/dist/viewport/platform-detection.cjs.map +1 -0
- package/dist/viewport/platform-detection.d.ts +59 -0
- package/dist/viewport/platform-detection.d.ts.map +1 -0
- package/dist/viewport/platform-detection.js +205 -0
- package/dist/viewport/platform-detection.js.map +1 -0
- package/dist/viewport/types.cjs +2 -0
- package/dist/viewport/types.cjs.map +1 -0
- package/dist/viewport/types.d.ts +301 -0
- package/dist/viewport/types.d.ts.map +1 -0
- package/dist/viewport/types.js +13 -0
- package/dist/viewport/types.js.map +1 -0
- package/dist/viewport/viewport-manager.cjs +2 -0
- package/dist/viewport/viewport-manager.cjs.map +1 -0
- package/dist/viewport/viewport-manager.d.ts +118 -0
- package/dist/viewport/viewport-manager.d.ts.map +1 -0
- package/dist/viewport/viewport-manager.js +524 -0
- package/dist/viewport/viewport-manager.js.map +1 -0
- package/package.json +128 -0
- package/src/assets/Asset.ts +11 -0
- package/src/assets/AssetCollection.ts +99 -0
- package/src/assets/ColorAsset.ts +210 -0
- package/src/assets/FontAsset.ts +380 -0
- package/src/assets/ImageAsset.ts +91 -0
- package/src/assets/README.md +190 -0
- package/src/assets/index.ts +175 -0
- package/src/assets/test-assets.ts +69 -0
- package/src/assets/test-integration.ts +46 -0
- package/src/assets/test-simple.ts +28 -0
- package/src/assets/types.ts +79 -0
- package/src/bundles/common.ts +30 -0
- package/src/bundles/complete.ts +29 -0
- package/src/bundles/essential.ts +26 -0
- package/src/bundles/minimal.ts +26 -0
- package/src/bundles/production-minimal.ts +67 -0
- package/src/compiler/advanced-parser.ts +871 -0
- package/src/compiler/codegen.ts +450 -0
- package/src/compiler/enhanced-codegen.ts +729 -0
- package/src/compiler/index.ts +25 -0
- package/src/compiler/parser.ts +461 -0
- package/src/compiler/plugin.ts +181 -0
- package/src/compiler/types.ts +177 -0
- package/src/components/BasicInput.ts +352 -0
- package/src/components/Button.ts +963 -0
- package/src/components/Divider.ts +341 -0
- package/src/components/EnhancedLink.ts +676 -0
- package/src/components/Form.ts +414 -0
- package/src/components/Grid.ts +2507 -0
- package/src/components/GridResponsive.ts +637 -0
- package/src/components/Image.ts +426 -0
- package/src/components/List.ts +1084 -0
- package/src/components/Menu.ts +807 -0
- package/src/components/Picker.ts +678 -0
- package/src/components/ScrollView.ts +725 -0
- package/src/components/Section.ts +472 -0
- package/src/components/Show.ts +205 -0
- package/src/components/Spacer.ts +93 -0
- package/src/components/Text.ts +447 -0
- package/src/components/Toggle.ts +700 -0
- package/src/components/index.ts +231 -0
- package/src/components/wrapper.ts +828 -0
- package/src/concatenation/concatenatable.ts +211 -0
- package/src/concatenation/concatenated-component.ts +471 -0
- package/src/concatenation/index.ts +41 -0
- package/src/concatenation/styles.css +120 -0
- package/src/concatenation/text-optimizer.ts +440 -0
- package/src/concatenation/types.ts +116 -0
- package/src/constants/README.md +339 -0
- package/src/constants/__tests__/frame-utils.test.ts +276 -0
- package/src/constants/__tests__/layout.test.ts +215 -0
- package/src/constants/frame-utils.ts +174 -0
- package/src/constants/index.ts +8 -0
- package/src/constants/layout.ts +120 -0
- package/src/css-classes/component-base.ts +117 -0
- package/src/css-classes/css-class-manager.ts +372 -0
- package/src/css-classes/dom-integration.ts +162 -0
- package/src/css-classes/enhanced-renderer.ts +166 -0
- package/src/css-classes/index.ts +45 -0
- package/src/css-classes/types.ts +73 -0
- package/src/css-classes/utilities.ts +175 -0
- package/src/debug/index.ts +267 -0
- package/src/developer-experience/enhanced-errors.ts +556 -0
- package/src/developer-experience/enhanced-types.ts +427 -0
- package/src/developer-experience/index.ts +220 -0
- package/src/globals.d.ts +43 -0
- package/src/gradients/__tests__/angular-gradient.test.ts +111 -0
- package/src/gradients/__tests__/background-modifier.test.ts +81 -0
- package/src/gradients/__tests__/comprehensive-gradients.test.ts +296 -0
- package/src/gradients/__tests__/gradient-asset.test.ts +144 -0
- package/src/gradients/__tests__/linear-gradient.test.ts +92 -0
- package/src/gradients/__tests__/phase4-features.test.ts +386 -0
- package/src/gradients/__tests__/radial-gradient.test.ts +110 -0
- package/src/gradients/__tests__/repeating-gradients.test.ts +125 -0
- package/src/gradients/__tests__/state-background-modifier.test.ts +340 -0
- package/src/gradients/__tests__/state-gradient-asset.test.ts +262 -0
- package/src/gradients/__tests__/state-gradient-integration.test.ts +277 -0
- package/src/gradients/css-generator.ts +158 -0
- package/src/gradients/examples.ts +632 -0
- package/src/gradients/gradient-asset.ts +30 -0
- package/src/gradients/index.ts +85 -0
- package/src/gradients/performance.ts +521 -0
- package/src/gradients/presets.ts +422 -0
- package/src/gradients/reactive.ts +470 -0
- package/src/gradients/state-gradient-asset.ts +179 -0
- package/src/gradients/types.ts +148 -0
- package/src/gradients/utils.ts +579 -0
- package/src/gradients/validation.ts +489 -0
- package/src/index.ts +168 -0
- package/src/lifecycle/hooks.ts +332 -0
- package/src/modifiers/__tests__/as-html-integration.test.ts +204 -0
- package/src/modifiers/__tests__/as-html.test.ts +437 -0
- package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +294 -0
- package/src/modifiers/__tests__/border.test.ts +371 -0
- package/src/modifiers/__tests__/margin-string-support.test.ts +41 -0
- package/src/modifiers/__tests__/padding-string-support.test.ts +41 -0
- package/src/modifiers/as-html-validator.ts +68 -0
- package/src/modifiers/as-html.ts +216 -0
- package/src/modifiers/attributes.ts +574 -0
- package/src/modifiers/backdrop.ts +290 -0
- package/src/modifiers/background.ts +165 -0
- package/src/modifiers/base.ts +1815 -0
- package/src/modifiers/basic-sanitizer.ts +227 -0
- package/src/modifiers/border.ts +574 -0
- package/src/modifiers/builder.ts +1747 -0
- package/src/modifiers/core.ts +521 -0
- package/src/modifiers/css.ts +148 -0
- package/src/modifiers/effects.ts +412 -0
- package/src/modifiers/elements.ts +541 -0
- package/src/modifiers/filters.ts +501 -0
- package/src/modifiers/flexbox.ts +180 -0
- package/src/modifiers/font.ts +149 -0
- package/src/modifiers/grid.ts +238 -0
- package/src/modifiers/index.ts +481 -0
- package/src/modifiers/margin.ts +218 -0
- package/src/modifiers/padding.ts +318 -0
- package/src/modifiers/registry.ts +444 -0
- package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +392 -0
- package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +368 -0
- package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +556 -0
- package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +558 -0
- package/src/modifiers/responsive/advanced-utilities.ts +562 -0
- package/src/modifiers/responsive/breakpoints.ts +330 -0
- package/src/modifiers/responsive/css-generator.ts +432 -0
- package/src/modifiers/responsive/dev-tools.ts +650 -0
- package/src/modifiers/responsive/index.ts +119 -0
- package/src/modifiers/responsive/layout-patterns.ts +592 -0
- package/src/modifiers/responsive/performance.ts +385 -0
- package/src/modifiers/responsive/responsive-builder.ts +620 -0
- package/src/modifiers/responsive/responsive-modifier.ts +410 -0
- package/src/modifiers/responsive/types.ts +226 -0
- package/src/modifiers/responsive/utilities.ts +478 -0
- package/src/modifiers/scroll.ts +297 -0
- package/src/modifiers/shadows.ts +321 -0
- package/src/modifiers/size.ts +208 -0
- package/src/modifiers/text.ts +416 -0
- package/src/modifiers/transformations.ts +640 -0
- package/src/modifiers/transitions.ts +218 -0
- package/src/modifiers/types.ts +889 -0
- package/src/modifiers/typography.ts +341 -0
- package/src/modifiers/utility.ts +209 -0
- package/src/modifiers/utils.ts +413 -0
- package/src/plugins/__tests__/simplified-plugin-system.test.ts +190 -0
- package/src/plugins/component-loader-registry.ts +371 -0
- package/src/plugins/index.ts +61 -0
- package/src/plugins/legacy-adapter.ts +84 -0
- package/src/plugins/simplified-component-registry.ts +130 -0
- package/src/plugins/simplified-error-handler.ts +372 -0
- package/src/plugins/simplified-index.ts +61 -0
- package/src/plugins/simplified-lazy-loader.ts +242 -0
- package/src/plugins/simplified-plugin-manager.ts +93 -0
- package/src/plugins/simplified-tachui-instance.ts +142 -0
- package/src/plugins/simplified-types.ts +79 -0
- package/src/plugins/simplified-utils.ts +118 -0
- package/src/reactive/cleanup.ts +241 -0
- package/src/reactive/computed.ts +281 -0
- package/src/reactive/context.ts +287 -0
- package/src/reactive/effect.ts +194 -0
- package/src/reactive/enhanced-effect.ts +318 -0
- package/src/reactive/enhanced-signal.ts +227 -0
- package/src/reactive/equality.ts +188 -0
- package/src/reactive/globals.d.ts +5 -0
- package/src/reactive/index.ts +150 -0
- package/src/reactive/migration.ts +335 -0
- package/src/reactive/ownership.ts +182 -0
- package/src/reactive/scheduler.ts +300 -0
- package/src/reactive/signal.ts +201 -0
- package/src/reactive/theme.ts +49 -0
- package/src/reactive/types.ts +103 -0
- package/src/reactive/unified-scheduler.ts +357 -0
- package/src/runtime/component-context.ts +343 -0
- package/src/runtime/component.ts +499 -0
- package/src/runtime/context.ts +527 -0
- package/src/runtime/dev-tools.ts +752 -0
- package/src/runtime/development-warnings.ts +114 -0
- package/src/runtime/dom-bridge.ts +570 -0
- package/src/runtime/element-override.ts +282 -0
- package/src/runtime/error-boundary.ts +955 -0
- package/src/runtime/error-recovery.ts +638 -0
- package/src/runtime/error-reporting.ts +808 -0
- package/src/runtime/error-utils.ts +698 -0
- package/src/runtime/index.ts +202 -0
- package/src/runtime/lazy-component.ts +268 -0
- package/src/runtime/lifecycle.ts +10 -0
- package/src/runtime/mounting.ts +17 -0
- package/src/runtime/optimization.ts +13 -0
- package/src/runtime/performance.ts +693 -0
- package/src/runtime/props.ts +434 -0
- package/src/runtime/refs.ts +13 -0
- package/src/runtime/renderer.ts +674 -0
- package/src/runtime/semantic-role-manager.ts +140 -0
- package/src/runtime/types.ts +282 -0
- package/src/state/binding.ts +381 -0
- package/src/state/environment-object.ts +444 -0
- package/src/state/environment.ts +351 -0
- package/src/state/index.ts +179 -0
- package/src/state/observed-object.ts +405 -0
- package/src/state/state-manager.ts +366 -0
- package/src/state/state.ts +339 -0
- package/src/state/types.ts +192 -0
- package/src/sui-compat.ts +163 -0
- package/src/validation/__tests__/phase-1d-integration.test.ts +558 -0
- package/src/validation/advanced-debugging.ts +860 -0
- package/src/validation/build-time/detection.ts +373 -0
- package/src/validation/build-time/index.ts +222 -0
- package/src/validation/build-time/plugins.ts +515 -0
- package/src/validation/build-time/rules.ts +624 -0
- package/src/validation/build-time/transformer.ts +372 -0
- package/src/validation/build-time/types.ts +232 -0
- package/src/validation/comprehensive.ts +1272 -0
- package/src/validation/debug-tools.ts +724 -0
- package/src/validation/developer-experience.ts +712 -0
- package/src/validation/documentation-integration.ts +835 -0
- package/src/validation/enhanced-runtime.ts +765 -0
- package/src/validation/error-reporting.ts +587 -0
- package/src/validation/ide-integration.ts +845 -0
- package/src/validation/index.ts +353 -0
- package/src/validation/lifecycle-validation.ts +636 -0
- package/src/validation/performance-optimizer.ts +599 -0
- package/src/validation/plugin-registration.ts +249 -0
- package/src/validation/production-bypass.ts +466 -0
- package/src/validation/simple.ts +465 -0
- package/src/viewport/adapters/web-adapter.ts +1385 -0
- package/src/viewport/components.ts +505 -0
- package/src/viewport/environment.ts +173 -0
- package/src/viewport/index.ts +290 -0
- package/src/viewport/platform-detection.ts +431 -0
- package/src/viewport/types.ts +371 -0
- package/src/viewport/viewport-manager.ts +979 -0
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import "../reactive/cleanup.js";
|
|
2
|
+
import "../reactive/unified-scheduler.js";
|
|
3
|
+
import { createSignal as l } from "../reactive/signal.js";
|
|
4
|
+
import "../reactive/scheduler.js";
|
|
5
|
+
import "../reactive/theme.js";
|
|
6
|
+
import { globalErrorManager as c } from "./error-boundary.js";
|
|
7
|
+
var y = Object.defineProperty, f = (i, t, e) => t in i ? y(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, a = (i, t, e) => f(i, typeof t != "symbol" ? t + "" : t, e);
|
|
8
|
+
class n {
|
|
9
|
+
constructor(t = {}) {
|
|
10
|
+
a(this, "state", "closed"), a(this, "failureCount", 0), a(this, "lastFailureTime", 0), a(this, "successCount", 0), a(this, "requestCount", 0), a(this, "lastRequestTime", 0), a(this, "config"), a(this, "stateSignal"), a(this, "setState"), this.config = {
|
|
11
|
+
failureThreshold: 5,
|
|
12
|
+
resetTimeout: 6e4,
|
|
13
|
+
// 1 minute
|
|
14
|
+
monitoringPeriod: 3e5,
|
|
15
|
+
// 5 minutes
|
|
16
|
+
minimumThroughput: 10,
|
|
17
|
+
...t
|
|
18
|
+
};
|
|
19
|
+
const [e, r] = l("closed");
|
|
20
|
+
this.stateSignal = e, this.setState = r;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Execute function with circuit breaker protection
|
|
24
|
+
*/
|
|
25
|
+
async execute(t) {
|
|
26
|
+
if (this.updateRequestCount(), this.state === "open")
|
|
27
|
+
if (this.shouldAttemptReset())
|
|
28
|
+
this.state = "half-open", this.setState("half-open");
|
|
29
|
+
else
|
|
30
|
+
throw new Error("Circuit breaker is open");
|
|
31
|
+
try {
|
|
32
|
+
const e = await t();
|
|
33
|
+
return this.onSuccess(), e;
|
|
34
|
+
} catch (e) {
|
|
35
|
+
throw this.onFailure(), e;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Handle successful execution
|
|
40
|
+
*/
|
|
41
|
+
onSuccess() {
|
|
42
|
+
this.successCount++, this.state === "half-open" && this.reset();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Handle failed execution
|
|
46
|
+
*/
|
|
47
|
+
onFailure() {
|
|
48
|
+
this.failureCount++, this.lastFailureTime = Date.now(), this.shouldTrip() && this.trip();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if circuit breaker should trip to open state
|
|
52
|
+
*/
|
|
53
|
+
shouldTrip() {
|
|
54
|
+
return this.failureCount >= this.config.failureThreshold && this.requestCount >= this.config.minimumThroughput;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Trip circuit breaker to open state
|
|
58
|
+
*/
|
|
59
|
+
trip() {
|
|
60
|
+
this.state = "open", this.setState("open"), c.reportError(
|
|
61
|
+
c.createTachUIError(new Error("Circuit breaker tripped"), {
|
|
62
|
+
category: "component_error",
|
|
63
|
+
severity: "medium",
|
|
64
|
+
context: {
|
|
65
|
+
failureCount: this.failureCount,
|
|
66
|
+
requestCount: this.requestCount
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if should attempt reset from open state
|
|
73
|
+
*/
|
|
74
|
+
shouldAttemptReset() {
|
|
75
|
+
return Date.now() - this.lastFailureTime >= this.config.resetTimeout;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Reset circuit breaker to closed state
|
|
79
|
+
*/
|
|
80
|
+
reset() {
|
|
81
|
+
this.state = "closed", this.failureCount = 0, this.successCount = 0, this.setState("closed");
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Update request count for monitoring period
|
|
85
|
+
*/
|
|
86
|
+
updateRequestCount() {
|
|
87
|
+
const t = Date.now();
|
|
88
|
+
t - this.lastRequestTime > this.config.monitoringPeriod && (this.requestCount = 0), this.requestCount++, this.lastRequestTime = t;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get current state
|
|
92
|
+
*/
|
|
93
|
+
getState() {
|
|
94
|
+
return this.state;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get state signal
|
|
98
|
+
*/
|
|
99
|
+
getStateSignal() {
|
|
100
|
+
return this.stateSignal;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get metrics
|
|
104
|
+
*/
|
|
105
|
+
getMetrics() {
|
|
106
|
+
return {
|
|
107
|
+
state: this.state,
|
|
108
|
+
failureCount: this.failureCount,
|
|
109
|
+
successCount: this.successCount,
|
|
110
|
+
requestCount: this.requestCount,
|
|
111
|
+
failureRate: this.requestCount > 0 ? this.failureCount / this.requestCount : 0
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
class u {
|
|
116
|
+
constructor(t = {}) {
|
|
117
|
+
a(this, "config"), this.config = {
|
|
118
|
+
maxAttempts: 3,
|
|
119
|
+
baseDelay: 1e3,
|
|
120
|
+
maxDelay: 3e4,
|
|
121
|
+
backoffMultiplier: 2,
|
|
122
|
+
jitter: !0,
|
|
123
|
+
retryableErrors: [],
|
|
124
|
+
// Empty means retry all errors by default (except non-retryable)
|
|
125
|
+
nonRetryableErrors: ["ValidationError", "AuthenticationError"],
|
|
126
|
+
...t
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Execute function with retry policy
|
|
131
|
+
*/
|
|
132
|
+
async execute(t) {
|
|
133
|
+
let e;
|
|
134
|
+
for (let r = 1; r <= this.config.maxAttempts; r++)
|
|
135
|
+
try {
|
|
136
|
+
return await t();
|
|
137
|
+
} catch (s) {
|
|
138
|
+
if (e = s, !this.shouldRetry(s, r))
|
|
139
|
+
throw s;
|
|
140
|
+
if (r < this.config.maxAttempts) {
|
|
141
|
+
const o = this.calculateDelay(r);
|
|
142
|
+
await this.sleep(o), c.reportError(
|
|
143
|
+
c.createTachUIError(s, {
|
|
144
|
+
category: "network_error",
|
|
145
|
+
severity: "low",
|
|
146
|
+
context: {
|
|
147
|
+
attempt: r,
|
|
148
|
+
nextDelay: o,
|
|
149
|
+
retryPolicy: !0
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
throw e;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Check if error should be retried
|
|
159
|
+
*/
|
|
160
|
+
shouldRetry(t, e) {
|
|
161
|
+
if (e >= this.config.maxAttempts)
|
|
162
|
+
return !1;
|
|
163
|
+
const r = t.constructor.name;
|
|
164
|
+
return this.config.nonRetryableErrors.includes(r) ? !1 : this.config.retryableErrors.length > 0 ? this.config.retryableErrors.includes(r) : !["ValidationError", "AuthenticationError", "AuthorizationError"].includes(r);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Calculate delay for next retry
|
|
168
|
+
*/
|
|
169
|
+
calculateDelay(t) {
|
|
170
|
+
const e = this.config.baseDelay * this.config.backoffMultiplier ** (t - 1);
|
|
171
|
+
let r = Math.min(e, this.config.maxDelay);
|
|
172
|
+
return this.config.jitter && (r = r * (0.5 + Math.random() * 0.5)), Math.floor(r);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Sleep for specified duration
|
|
176
|
+
*/
|
|
177
|
+
sleep(t) {
|
|
178
|
+
return new Promise((e) => setTimeout(e, t));
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get configuration
|
|
182
|
+
*/
|
|
183
|
+
getConfig() {
|
|
184
|
+
return { ...this.config };
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
class h {
|
|
188
|
+
constructor() {
|
|
189
|
+
a(this, "cache", /* @__PURE__ */ new Map());
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Execute with fallback
|
|
193
|
+
*/
|
|
194
|
+
async executeWithFallback(t, e) {
|
|
195
|
+
try {
|
|
196
|
+
return e.timeout ? await this.withTimeout(t(), e.timeout) : await t();
|
|
197
|
+
} catch (r) {
|
|
198
|
+
return this.getFallbackValue(e, r);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get fallback value
|
|
203
|
+
*/
|
|
204
|
+
async getFallbackValue(t, e) {
|
|
205
|
+
if (t.cache && t.cacheKey) {
|
|
206
|
+
const s = this.getCachedValue(t.cacheKey, t.cacheTimeout || 3e5);
|
|
207
|
+
if (s !== null)
|
|
208
|
+
return s;
|
|
209
|
+
}
|
|
210
|
+
let r;
|
|
211
|
+
if (t.factory)
|
|
212
|
+
r = await t.factory();
|
|
213
|
+
else if (t.value !== void 0)
|
|
214
|
+
r = t.value;
|
|
215
|
+
else
|
|
216
|
+
throw e;
|
|
217
|
+
return t.cache && t.cacheKey && this.setCachedValue(t.cacheKey, r), r;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Execute with timeout
|
|
221
|
+
*/
|
|
222
|
+
withTimeout(t, e) {
|
|
223
|
+
return new Promise((r, s) => {
|
|
224
|
+
const o = setTimeout(() => {
|
|
225
|
+
s(new Error(`Operation timed out after ${e}ms`));
|
|
226
|
+
}, e);
|
|
227
|
+
t.then(r).catch(s).finally(() => clearTimeout(o));
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get cached value
|
|
232
|
+
*/
|
|
233
|
+
getCachedValue(t, e) {
|
|
234
|
+
const r = this.cache.get(t);
|
|
235
|
+
return r ? Date.now() - r.timestamp > e ? (this.cache.delete(t), null) : r.value : null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Set cached value
|
|
239
|
+
*/
|
|
240
|
+
setCachedValue(t, e) {
|
|
241
|
+
this.cache.set(t, { value: e, timestamp: Date.now() });
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Clear cache
|
|
245
|
+
*/
|
|
246
|
+
clearCache() {
|
|
247
|
+
this.cache.clear();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
class m {
|
|
251
|
+
constructor(t, e) {
|
|
252
|
+
a(this, "circuitBreaker"), a(this, "retryPolicy"), a(this, "fallbackManager", new h()), t && (this.circuitBreaker = new n(t)), e && (this.retryPolicy = new u(e));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Execute with all recovery mechanisms
|
|
256
|
+
*/
|
|
257
|
+
async execute(t, e) {
|
|
258
|
+
const r = this.wrapWithRecovery(t);
|
|
259
|
+
return e ? this.fallbackManager.executeWithFallback(r, e) : r();
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Wrap function with recovery mechanisms
|
|
263
|
+
*/
|
|
264
|
+
wrapWithRecovery(t) {
|
|
265
|
+
let e = t;
|
|
266
|
+
if (this.retryPolicy) {
|
|
267
|
+
const r = e;
|
|
268
|
+
e = () => this.retryPolicy.execute(r);
|
|
269
|
+
}
|
|
270
|
+
if (this.circuitBreaker) {
|
|
271
|
+
const r = e;
|
|
272
|
+
e = () => this.circuitBreaker.execute(r);
|
|
273
|
+
}
|
|
274
|
+
return e;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get circuit breaker metrics
|
|
278
|
+
*/
|
|
279
|
+
getCircuitBreakerMetrics() {
|
|
280
|
+
return this.circuitBreaker?.getMetrics();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Get retry policy configuration
|
|
284
|
+
*/
|
|
285
|
+
getRetryPolicyConfig() {
|
|
286
|
+
return this.retryPolicy?.getConfig();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
const E = {
|
|
290
|
+
/**
|
|
291
|
+
* Create a robust function wrapper with all recovery mechanisms
|
|
292
|
+
*/
|
|
293
|
+
createRobustFunction(i, t = {}) {
|
|
294
|
+
const e = new m(t.circuitBreaker, t.retryPolicy);
|
|
295
|
+
return (async (...r) => {
|
|
296
|
+
try {
|
|
297
|
+
return await e.execute(() => i(...r), t.fallback);
|
|
298
|
+
} catch (s) {
|
|
299
|
+
if (t.onError) {
|
|
300
|
+
const o = c.createTachUIError(s, {
|
|
301
|
+
category: "network_error"
|
|
302
|
+
});
|
|
303
|
+
t.onError(o);
|
|
304
|
+
}
|
|
305
|
+
throw s;
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
},
|
|
309
|
+
/**
|
|
310
|
+
* Create simple retry wrapper
|
|
311
|
+
*/
|
|
312
|
+
withRetry(i, t = 3, e = 1e3) {
|
|
313
|
+
const r = new u({
|
|
314
|
+
maxAttempts: t,
|
|
315
|
+
baseDelay: e
|
|
316
|
+
});
|
|
317
|
+
return ((...s) => r.execute(() => i(...s)));
|
|
318
|
+
},
|
|
319
|
+
/**
|
|
320
|
+
* Create circuit breaker wrapper
|
|
321
|
+
*/
|
|
322
|
+
withCircuitBreaker(i, t) {
|
|
323
|
+
const e = new n(t);
|
|
324
|
+
return ((...r) => e.execute(() => i(...r)));
|
|
325
|
+
},
|
|
326
|
+
/**
|
|
327
|
+
* Create fallback wrapper
|
|
328
|
+
*/
|
|
329
|
+
withFallback(i, t) {
|
|
330
|
+
const e = new h();
|
|
331
|
+
return ((...r) => e.executeWithFallback(() => i(...r), {
|
|
332
|
+
factory: typeof t == "function" ? t : void 0,
|
|
333
|
+
value: typeof t != "function" ? t : void 0
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
336
|
+
}, T = {
|
|
337
|
+
/**
|
|
338
|
+
* Configuration for network requests
|
|
339
|
+
*/
|
|
340
|
+
network: {
|
|
341
|
+
circuitBreaker: {
|
|
342
|
+
failureThreshold: 5,
|
|
343
|
+
resetTimeout: 6e4,
|
|
344
|
+
monitoringPeriod: 3e5
|
|
345
|
+
},
|
|
346
|
+
retryPolicy: {
|
|
347
|
+
maxAttempts: 3,
|
|
348
|
+
baseDelay: 1e3,
|
|
349
|
+
backoffMultiplier: 2,
|
|
350
|
+
jitter: !0,
|
|
351
|
+
retryableErrors: ["NetworkError", "TimeoutError", "ServiceUnavailable"]
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
/**
|
|
355
|
+
* Configuration for component rendering
|
|
356
|
+
*/
|
|
357
|
+
component: {
|
|
358
|
+
retryPolicy: {
|
|
359
|
+
maxAttempts: 2,
|
|
360
|
+
baseDelay: 100,
|
|
361
|
+
backoffMultiplier: 1.5,
|
|
362
|
+
jitter: !1,
|
|
363
|
+
retryableErrors: ["RenderError", "ComponentError"]
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
/**
|
|
367
|
+
* Configuration for reactive operations
|
|
368
|
+
*/
|
|
369
|
+
reactive: {
|
|
370
|
+
retryPolicy: {
|
|
371
|
+
maxAttempts: 1,
|
|
372
|
+
baseDelay: 0,
|
|
373
|
+
retryableErrors: []
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
export {
|
|
378
|
+
n as CircuitBreaker,
|
|
379
|
+
h as FallbackManager,
|
|
380
|
+
m as RecoveryOrchestrator,
|
|
381
|
+
u as RetryPolicy,
|
|
382
|
+
T as recoveryPresets,
|
|
383
|
+
E as recoveryUtils
|
|
384
|
+
};
|
|
385
|
+
//# sourceMappingURL=error-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-recovery.js","sources":["../../src/runtime/error-recovery.ts"],"sourcesContent":["/**\n * Error Recovery Mechanisms (Phase 3.2.3)\n *\n * Advanced error recovery strategies and retry logic for TachUI.\n * Provides intelligent error handling, circuit breakers, and recovery patterns.\n */\n\nimport { createSignal } from '../reactive'\nimport { globalErrorManager, type TachUIError } from './error-boundary'\n\n/**\n * Circuit breaker states\n */\nexport type CircuitBreakerState = 'closed' | 'open' | 'half-open'\n\n/**\n * Circuit breaker configuration\n */\nexport interface CircuitBreakerConfig {\n failureThreshold: number\n resetTimeout: number\n monitoringPeriod: number\n minimumThroughput: number\n}\n\n/**\n * Retry policy configuration\n */\nexport interface RetryPolicyConfig {\n maxAttempts: number\n baseDelay: number\n maxDelay: number\n backoffMultiplier: number\n jitter: boolean\n retryableErrors: string[]\n nonRetryableErrors: string[]\n}\n\n/**\n * Fallback configuration\n */\nexport interface FallbackConfig<T> {\n value?: T\n factory?: () => T | Promise<T>\n timeout?: number\n cache?: boolean\n cacheKey?: string\n cacheTimeout?: number\n}\n\n/**\n * Circuit breaker implementation\n */\nexport class CircuitBreaker {\n private state: CircuitBreakerState = 'closed'\n private failureCount = 0\n private lastFailureTime = 0\n private successCount = 0\n private requestCount = 0\n private lastRequestTime = 0\n\n private config: CircuitBreakerConfig\n private stateSignal: () => CircuitBreakerState\n private setState: (value: CircuitBreakerState) => void\n\n constructor(config: Partial<CircuitBreakerConfig> = {}) {\n this.config = {\n failureThreshold: 5,\n resetTimeout: 60000, // 1 minute\n monitoringPeriod: 300000, // 5 minutes\n minimumThroughput: 10,\n ...config,\n }\n\n // Initialize reactive state\n const [stateSignal, setState] = createSignal<CircuitBreakerState>('closed')\n this.stateSignal = stateSignal\n this.setState = setState\n }\n\n /**\n * Execute function with circuit breaker protection\n */\n async execute<R>(fn: () => Promise<R>): Promise<R> {\n this.updateRequestCount()\n\n if (this.state === 'open') {\n if (this.shouldAttemptReset()) {\n this.state = 'half-open'\n this.setState('half-open')\n } else {\n throw new Error('Circuit breaker is open')\n }\n }\n\n try {\n const result = await fn()\n this.onSuccess()\n return result\n } catch (error) {\n this.onFailure()\n throw error\n }\n }\n\n /**\n * Handle successful execution\n */\n private onSuccess(): void {\n this.successCount++\n\n if (this.state === 'half-open') {\n this.reset()\n }\n }\n\n /**\n * Handle failed execution\n */\n private onFailure(): void {\n this.failureCount++\n this.lastFailureTime = Date.now()\n\n if (this.shouldTrip()) {\n this.trip()\n }\n }\n\n /**\n * Check if circuit breaker should trip to open state\n */\n private shouldTrip(): boolean {\n return (\n this.failureCount >= this.config.failureThreshold &&\n this.requestCount >= this.config.minimumThroughput\n )\n }\n\n /**\n * Trip circuit breaker to open state\n */\n private trip(): void {\n this.state = 'open'\n this.setState('open')\n\n globalErrorManager.reportError(\n globalErrorManager.createTachUIError(new Error('Circuit breaker tripped'), {\n category: 'component_error',\n severity: 'medium',\n context: {\n failureCount: this.failureCount,\n requestCount: this.requestCount,\n },\n })\n )\n }\n\n /**\n * Check if should attempt reset from open state\n */\n private shouldAttemptReset(): boolean {\n return Date.now() - this.lastFailureTime >= this.config.resetTimeout\n }\n\n /**\n * Reset circuit breaker to closed state\n */\n private reset(): void {\n this.state = 'closed'\n this.failureCount = 0\n this.successCount = 0\n this.setState('closed')\n }\n\n /**\n * Update request count for monitoring period\n */\n private updateRequestCount(): void {\n const now = Date.now()\n\n if (now - this.lastRequestTime > this.config.monitoringPeriod) {\n this.requestCount = 0\n }\n\n this.requestCount++\n this.lastRequestTime = now\n }\n\n /**\n * Get current state\n */\n getState(): CircuitBreakerState {\n return this.state\n }\n\n /**\n * Get state signal\n */\n getStateSignal(): () => CircuitBreakerState {\n return this.stateSignal\n }\n\n /**\n * Get metrics\n */\n getMetrics(): {\n state: CircuitBreakerState\n failureCount: number\n successCount: number\n requestCount: number\n failureRate: number\n } {\n return {\n state: this.state,\n failureCount: this.failureCount,\n successCount: this.successCount,\n requestCount: this.requestCount,\n failureRate: this.requestCount > 0 ? this.failureCount / this.requestCount : 0,\n }\n }\n}\n\n/**\n * Retry policy implementation\n */\nexport class RetryPolicy {\n private config: RetryPolicyConfig\n\n constructor(config: Partial<RetryPolicyConfig> = {}) {\n this.config = {\n maxAttempts: 3,\n baseDelay: 1000,\n maxDelay: 30000,\n backoffMultiplier: 2,\n jitter: true,\n retryableErrors: [], // Empty means retry all errors by default (except non-retryable)\n nonRetryableErrors: ['ValidationError', 'AuthenticationError'],\n ...config,\n }\n }\n\n /**\n * Execute function with retry policy\n */\n async execute<T>(fn: () => Promise<T>): Promise<T> {\n let lastError: Error\n\n for (let attempt = 1; attempt <= this.config.maxAttempts; attempt++) {\n try {\n return await fn()\n } catch (error) {\n lastError = error as Error\n\n if (!this.shouldRetry(error as Error, attempt)) {\n throw error\n }\n\n if (attempt < this.config.maxAttempts) {\n const delay = this.calculateDelay(attempt)\n await this.sleep(delay)\n\n // Report retry attempt\n globalErrorManager.reportError(\n globalErrorManager.createTachUIError(error as Error, {\n category: 'network_error',\n severity: 'low',\n context: {\n attempt,\n nextDelay: delay,\n retryPolicy: true,\n },\n })\n )\n }\n }\n }\n\n throw lastError!\n }\n\n /**\n * Check if error should be retried\n */\n private shouldRetry(error: Error, attempt: number): boolean {\n if (attempt >= this.config.maxAttempts) {\n return false\n }\n\n const errorName = error.constructor.name\n\n // Check non-retryable errors first\n if (this.config.nonRetryableErrors.includes(errorName)) {\n return false\n }\n\n // Check retryable errors - if empty, allow retries by default\n if (this.config.retryableErrors.length > 0) {\n return this.config.retryableErrors.includes(errorName)\n }\n\n // Default: retry most errors except validation/auth\n return !['ValidationError', 'AuthenticationError', 'AuthorizationError'].includes(errorName)\n }\n\n /**\n * Calculate delay for next retry\n */\n private calculateDelay(attempt: number): number {\n const exponentialDelay = this.config.baseDelay * this.config.backoffMultiplier ** (attempt - 1)\n let delay = Math.min(exponentialDelay, this.config.maxDelay)\n\n // Add jitter to prevent thundering herd\n if (this.config.jitter) {\n delay = delay * (0.5 + Math.random() * 0.5)\n }\n\n return Math.floor(delay)\n }\n\n /**\n * Sleep for specified duration\n */\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n }\n\n /**\n * Get configuration\n */\n getConfig(): RetryPolicyConfig {\n return { ...this.config }\n }\n}\n\n/**\n * Fallback manager\n */\nexport class FallbackManager<T> {\n private cache = new Map<string, { value: T; timestamp: number }>()\n\n /**\n * Execute with fallback\n */\n async executeWithFallback<R>(\n fn: () => Promise<R>,\n fallbackConfig: FallbackConfig<R>\n ): Promise<R> {\n try {\n // Try with timeout if specified\n if (fallbackConfig.timeout) {\n return await this.withTimeout(fn(), fallbackConfig.timeout)\n } else {\n return await fn()\n }\n } catch (error) {\n return this.getFallbackValue(fallbackConfig, error as Error)\n }\n }\n\n /**\n * Get fallback value\n */\n private async getFallbackValue<R>(config: FallbackConfig<R>, error: Error): Promise<R> {\n // Check cache first\n if (config.cache && config.cacheKey) {\n const cached = this.getCachedValue<R>(config.cacheKey, config.cacheTimeout || 300000)\n if (cached !== null) {\n return cached\n }\n }\n\n let fallbackValue: R\n\n // Get fallback value\n if (config.factory) {\n fallbackValue = await config.factory()\n } else if (config.value !== undefined) {\n fallbackValue = config.value\n } else {\n throw error // No fallback available\n }\n\n // Cache the fallback value\n if (config.cache && config.cacheKey) {\n this.setCachedValue(config.cacheKey, fallbackValue)\n }\n\n return fallbackValue\n }\n\n /**\n * Execute with timeout\n */\n private withTimeout<R>(promise: Promise<R>, timeout: number): Promise<R> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error(`Operation timed out after ${timeout}ms`))\n }, timeout)\n\n promise\n .then(resolve)\n .catch(reject)\n .finally(() => clearTimeout(timer))\n })\n }\n\n /**\n * Get cached value\n */\n private getCachedValue<R>(key: string, maxAge: number): R | null {\n const cached = this.cache.get(key)\n if (!cached) return null\n\n if (Date.now() - cached.timestamp > maxAge) {\n this.cache.delete(key)\n return null\n }\n\n return cached.value as unknown as R\n }\n\n /**\n * Set cached value\n */\n private setCachedValue<R>(key: string, value: R): void {\n this.cache.set(key, { value: value as any, timestamp: Date.now() })\n }\n\n /**\n * Clear cache\n */\n clearCache(): void {\n this.cache.clear()\n }\n}\n\n/**\n * Composite recovery strategy\n */\nexport class RecoveryOrchestrator {\n private circuitBreaker?: CircuitBreaker\n private retryPolicy?: RetryPolicy\n private fallbackManager = new FallbackManager()\n\n constructor(\n circuitBreakerConfig?: Partial<CircuitBreakerConfig>,\n retryPolicyConfig?: Partial<RetryPolicyConfig>\n ) {\n if (circuitBreakerConfig) {\n this.circuitBreaker = new CircuitBreaker(circuitBreakerConfig)\n }\n\n if (retryPolicyConfig) {\n this.retryPolicy = new RetryPolicy(retryPolicyConfig)\n }\n }\n\n /**\n * Execute with all recovery mechanisms\n */\n async execute<T>(fn: () => Promise<T>, fallbackConfig?: FallbackConfig<T>): Promise<T> {\n const wrappedFn = this.wrapWithRecovery(fn)\n\n if (fallbackConfig) {\n return this.fallbackManager.executeWithFallback(wrappedFn, fallbackConfig)\n } else {\n return wrappedFn()\n }\n }\n\n /**\n * Wrap function with recovery mechanisms\n */\n private wrapWithRecovery<T>(fn: () => Promise<T>): () => Promise<T> {\n let wrappedFn = fn\n\n // Apply retry policy\n if (this.retryPolicy) {\n const retryFn = wrappedFn\n wrappedFn = () => this.retryPolicy!.execute(retryFn)\n }\n\n // Apply circuit breaker\n if (this.circuitBreaker) {\n const circuitFn = wrappedFn\n wrappedFn = () => this.circuitBreaker!.execute(circuitFn)\n }\n\n return wrappedFn\n }\n\n /**\n * Get circuit breaker metrics\n */\n getCircuitBreakerMetrics() {\n return this.circuitBreaker?.getMetrics()\n }\n\n /**\n * Get retry policy configuration\n */\n getRetryPolicyConfig() {\n return this.retryPolicy?.getConfig()\n }\n}\n\n/**\n * Error recovery utilities\n */\nexport const recoveryUtils = {\n /**\n * Create a robust function wrapper with all recovery mechanisms\n */\n createRobustFunction<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n options: {\n circuitBreaker?: Partial<CircuitBreakerConfig>\n retryPolicy?: Partial<RetryPolicyConfig>\n fallback?: FallbackConfig<Awaited<ReturnType<T>>>\n onError?: (error: TachUIError) => void\n } = {}\n ): T {\n const orchestrator = new RecoveryOrchestrator(options.circuitBreaker, options.retryPolicy)\n\n return (async (...args: Parameters<T>): Promise<Awaited<ReturnType<T>>> => {\n try {\n return await orchestrator.execute(() => fn(...args), options.fallback)\n } catch (error) {\n if (options.onError) {\n const tachUIError = globalErrorManager.createTachUIError(error as Error, {\n category: 'network_error',\n })\n options.onError(tachUIError)\n }\n throw error\n }\n }) as T\n },\n\n /**\n * Create simple retry wrapper\n */\n withRetry<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n maxAttempts: number = 3,\n baseDelay: number = 1000\n ): T {\n const retryPolicy = new RetryPolicy({\n maxAttempts,\n baseDelay,\n })\n\n return ((...args: Parameters<T>): Promise<Awaited<ReturnType<T>>> => {\n return retryPolicy.execute(() => fn(...args))\n }) as T\n },\n\n /**\n * Create circuit breaker wrapper\n */\n withCircuitBreaker<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n config?: Partial<CircuitBreakerConfig>\n ): T {\n const circuitBreaker = new CircuitBreaker(config)\n\n return ((...args: Parameters<T>): Promise<Awaited<ReturnType<T>>> => {\n return circuitBreaker.execute(() => fn(...args))\n }) as T\n },\n\n /**\n * Create fallback wrapper\n */\n withFallback<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n fallbackValue: Awaited<ReturnType<T>> | (() => Awaited<ReturnType<T>>)\n ): T {\n const fallbackManager = new FallbackManager()\n\n return ((...args: Parameters<T>): Promise<Awaited<ReturnType<T>>> => {\n return fallbackManager.executeWithFallback(() => fn(...args), {\n factory:\n typeof fallbackValue === 'function'\n ? (fallbackValue as () => Awaited<ReturnType<T>>)\n : undefined,\n value: typeof fallbackValue !== 'function' ? fallbackValue : undefined,\n })\n }) as T\n },\n}\n\n/**\n * Global recovery configurations\n */\nexport const recoveryPresets = {\n /**\n * Configuration for network requests\n */\n network: {\n circuitBreaker: {\n failureThreshold: 5,\n resetTimeout: 60000,\n monitoringPeriod: 300000,\n },\n retryPolicy: {\n maxAttempts: 3,\n baseDelay: 1000,\n backoffMultiplier: 2,\n jitter: true,\n retryableErrors: ['NetworkError', 'TimeoutError', 'ServiceUnavailable'],\n },\n },\n\n /**\n * Configuration for component rendering\n */\n component: {\n retryPolicy: {\n maxAttempts: 2,\n baseDelay: 100,\n backoffMultiplier: 1.5,\n jitter: false,\n retryableErrors: ['RenderError', 'ComponentError'],\n },\n },\n\n /**\n * Configuration for reactive operations\n */\n reactive: {\n retryPolicy: {\n maxAttempts: 1,\n baseDelay: 0,\n retryableErrors: [],\n },\n },\n}\n"],"names":["CircuitBreaker","config","__publicField","stateSignal","setState","createSignal","fn","result","error","globalErrorManager","now","RetryPolicy","lastError","attempt","delay","errorName","exponentialDelay","ms","resolve","FallbackManager","fallbackConfig","cached","fallbackValue","promise","timeout","reject","timer","key","maxAge","value","RecoveryOrchestrator","circuitBreakerConfig","retryPolicyConfig","wrappedFn","retryFn","circuitFn","recoveryUtils","options","orchestrator","args","tachUIError","maxAttempts","baseDelay","retryPolicy","circuitBreaker","fallbackManager","recoveryPresets"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../reactive/cleanup.cjs");require("../reactive/unified-scheduler.cjs");const p=require("../reactive/signal.cjs");require("../reactive/scheduler.cjs");require("../reactive/theme.cjs");const m=require("./error-boundary.cjs");var S=Object.defineProperty,w=(n,e,t)=>e in n?S(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,a=(n,e,t)=>w(n,typeof e!="symbol"?e+"":e,t);class d{constructor(e={}){a(this,"entries",[]),a(this,"config"),a(this,"sessionId"),a(this,"userId"),a(this,"entriesSignal"),a(this,"setEntries"),this.config={enabled:!0,logLevel:"info",batchSize:50,batchTimeout:3e4,aggregationWindow:3e5,maxRetries:3,destinations:[],enableContextCapture:!0,enableStackTrace:!0,enableUserTracking:!1,enableSessionTracking:!0,sensitiveKeys:["password","token","apiKey","secret"],enableCompression:!1,...e};const[t,s]=p.createSignal([]);this.entriesSignal=t,this.setEntries=s,this.sessionId=this.generateSessionId(),this.setupBatchProcessing()}debug(e,t){this.log("debug",e,t)}info(e,t){this.log("info",e,t)}warn(e,t){this.log("warn",e,t)}error(e,t){this.log("error",e,t)}fatal(e,t){this.log("fatal",e,t)}log(e,t,s){if(!this.config.enabled||!this.shouldLog(e))return;const o={id:this.generateId(),timestamp:Date.now(),level:e,message:t,context:this.sanitizeContext(s),userAgent:typeof window<"u"?window.navigator.userAgent:void 0,url:typeof window<"u"?window.location.href:void 0,userId:this.userId,sessionId:this.sessionId,stack:this.config.enableStackTrace?new Error().stack:void 0};this.addEntry(o),typeof console<"u"&&(console[e==="fatal"?"error":e]||console.log)(`[${e.toUpperCase()}] ${t}`,s||"")}shouldLog(e){const t=["debug","info","warn","error","fatal"],s=t.indexOf(this.config.logLevel);return t.indexOf(e)>=s}addEntry(e){this.entries.push(e),this.setEntries([...this.entries]),this.entries.length>1e3&&(this.entries=this.entries.slice(-500),this.setEntries([...this.entries]))}sanitizeContext(e){if(!e||!this.config.enableContextCapture)return;const t={...e};for(const s of this.config.sensitiveKeys)s in t&&(t[s]="[REDACTED]");return t}setupBatchProcessing(){setInterval(()=>{this.flushBatch()},this.config.batchTimeout)}async flushBatch(){if(this.entries.length===0)return;const e=this.entries.splice(0,this.config.batchSize);for(const t of this.config.destinations)if(t.isEnabled())try{await this.sendWithRetry(t,e)}catch(s){console.error(`Failed to send logs to ${t.name}:`,s)}}async sendWithRetry(e,t){let s;for(let o=1;o<=this.config.maxRetries;o++)try{await e.send(t);return}catch(r){s=r,o<this.config.maxRetries&&await this.sleep(2**o*1e3)}throw s}sleep(e){return new Promise(t=>setTimeout(t,e))}generateId(){return`log_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}generateSessionId(){return`session_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}setUserId(e){this.config.enableUserTracking&&(this.userId=e)}getEntries(){return[...this.entries]}getEntriesSignal(){return this.entriesSignal}addDestination(e){this.config.destinations.push(e)}removeDestination(e){this.config.destinations=this.config.destinations.filter(t=>t.name!==e)}clear(){this.entries.length=0,this.setEntries([])}}class b{constructor(e={}){a(this,"aggregations",new Map),a(this,"config"),a(this,"aggregationsSignal"),a(this,"setAggregations"),this.config={enabled:!0,logLevel:"error",batchSize:10,batchTimeout:6e4,aggregationWindow:3e5,maxRetries:3,destinations:[],enableContextCapture:!0,enableStackTrace:!0,enableUserTracking:!1,enableSessionTracking:!0,sensitiveKeys:[],enableCompression:!0,...e};const[t,s]=p.createSignal([]);this.aggregationsSignal=t,this.setAggregations=s,this.setupCleanup()}aggregateError(e){const t=this.generateFingerprint(e),s=this.aggregations.get(t);if(s)s.count++,s.lastSeen=e.timestamp,s.samples.push(e),s.samples.length>5&&(s.samples=s.samples.slice(-5)),e.componentId&&!s.affectedComponents.includes(e.componentId)&&s.affectedComponents.push(e.componentId);else{const o={id:t,message:e.message,category:e.category,severity:e.severity,count:1,firstSeen:e.timestamp,lastSeen:e.timestamp,affectedComponents:e.componentId?[e.componentId]:[],samples:[e],fingerprint:t};this.aggregations.set(t,o)}this.setAggregations(Array.from(this.aggregations.values()))}generateFingerprint(e){return[e.category,e.message.replace(/\d+/g,"N"),e.componentName||"unknown"].join("|")}setupCleanup(){setInterval(()=>{this.cleanupOldAggregations()},this.config.aggregationWindow)}cleanupOldAggregations(){const e=Date.now()-this.config.aggregationWindow;for(const[t,s]of this.aggregations)s.lastSeen<e&&this.aggregations.delete(t);this.setAggregations(Array.from(this.aggregations.values()))}getAggregations(){return Array.from(this.aggregations.values())}getAggregationsSignal(){return this.aggregationsSignal}getTopErrors(e=10){return Array.from(this.aggregations.values()).sort((t,s)=>s.count-t.count).slice(0,e)}clear(){this.aggregations.clear(),this.setAggregations([])}}const g={console:{name:"console",async send(n){console.group("TachUI Report"),n.forEach(e=>{"level"in e?console.log(`[${e.level}] ${e.message}`,e.context||""):console.log(`Error: ${e.message} (${e.count} times)`)}),console.groupEnd()},isEnabled(){return typeof console<"u"}},localStorage:{name:"localStorage",async send(n){try{const e="level"in n[0]?"tachui_logs":"tachui_error_aggregations",s=[...JSON.parse(localStorage.getItem(e)||"[]"),...n];s.length>100&&s.splice(0,s.length-100),localStorage.setItem(e,JSON.stringify(s))}catch(e){console.error("Failed to save to localStorage:",e)}},isEnabled(){return typeof localStorage<"u"}},createHttpDestination(n,e){return{name:"http",async send(t){const s={"Content-Type":"application/json"};e&&(s.Authorization=`Bearer ${e}`);const o=await fetch(n,{method:"POST",headers:s,body:JSON.stringify({type:"level"in t[0]?"logs":"error_aggregations",data:t,timestamp:Date.now()})});if(!o.ok)throw new Error(`HTTP ${o.status}: ${o.statusText}`)},isEnabled(){return typeof fetch<"u"}}},createWebhookDestination(n,e={}){const t=o=>({blocks:o.slice(0,5).map(i=>"level"in i?{type:"section",text:{type:"mrkdwn",text:`*${i.level.toUpperCase()}*: ${i.message}`}}:{type:"section",text:{type:"mrkdwn",text:`*Error*: ${i.message} (${i.count} occurrences)`}})}),s=o=>({embeds:[{title:"TachUI Report",description:o.slice(0,5).map(i=>"level"in i?`**${i.level.toUpperCase()}**: ${i.message}`:`**Error**: ${i.message} (${i.count} times)`).join(`
|
|
2
|
+
`),color:16711680}]});return{name:"webhook",async send(o){const r=e.onlyErrors?o.filter(l=>"level"in l&&["error","fatal"].includes(l.level)||"count"in l):o;if(r.length===0)return;let i;switch(e.format){case"slack":i=t(r);break;case"discord":i=s(r);break;default:i={data:r}}const f=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!f.ok)throw new Error(`Webhook failed: ${f.status}`)},isEnabled(){return typeof fetch<"u"}}}},h=new d({logLevel:"info",destinations:[g.console]}),u=new b;function c(n={}){m.globalErrorManager.addHandler(e=>{u.aggregateError(e),h.error(e.message,{category:e.category,severity:e.severity,componentId:e.componentId,componentName:e.componentName,context:e.context})})}const v={setupDevelopment(){c({destinations:[g.console,g.localStorage]})},setupProduction(n){const e=[];n.endpoint&&e.push(g.createHttpDestination(n.endpoint,n.apiKey)),n.webhookUrl&&e.push(g.createWebhookDestination(n.webhookUrl,{format:"slack",onlyErrors:!0})),c({logLevel:n.logLevel||"warn"})},createLogger(n,e){const t=new d(e),s=t.log.bind(t);return t.log=(o,r,i)=>{s(o,`[${n}] ${r}`,i)},t},getErrorReport(){return{logs:h.getEntries(),aggregations:u.getAggregations(),statistics:m.globalErrorManager.getStatistics()}}};exports.ErrorAggregator=b;exports.StructuredLogger=d;exports.globalErrorAggregator=u;exports.globalLogger=h;exports.reportDestinations=g;exports.reportingUtils=v;exports.setupErrorReporting=c;
|
|
3
|
+
//# sourceMappingURL=error-reporting.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-reporting.cjs","sources":["../../src/runtime/error-reporting.ts"],"sourcesContent":["/**\n * Error Reporting and Logging System (Phase 3.2.3)\n *\n * Advanced error reporting, logging, and analytics for TachUI.\n * Provides structured logging, error aggregation, and reporting pipelines.\n */\n\nimport { createSignal } from '../reactive'\nimport {\n type ErrorCategory,\n type ErrorSeverity,\n globalErrorManager,\n type TachUIError,\n} from './error-boundary'\n\n/**\n * Log levels\n */\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal'\n\n/**\n * Log entry structure\n */\nexport interface LogEntry {\n id: string\n timestamp: number\n level: LogLevel\n message: string\n category?: string\n componentId?: string\n componentName?: string\n context?: Record<string, any>\n stack?: string\n userAgent?: string\n url?: string\n userId?: string\n sessionId?: string\n tags?: string[]\n}\n\n/**\n * Error aggregation data\n */\nexport interface ErrorAggregation {\n id: string\n message: string\n category: ErrorCategory\n severity: ErrorSeverity\n count: number\n firstSeen: number\n lastSeen: number\n affectedComponents: string[]\n samples: TachUIError[]\n fingerprint: string\n}\n\n/**\n * Logger interface\n */\nexport interface Logger {\n debug(message: string, context?: Record<string, any>): void\n info(message: string, context?: Record<string, any>): void\n warn(message: string, context?: Record<string, any>): void\n error(message: string, context?: Record<string, any>): void\n fatal(message: string, context?: Record<string, any>): void\n log(level: LogLevel, message: string, context?: Record<string, any>): void\n}\n\n/**\n * Report destination interface\n */\nexport interface ReportDestination {\n name: string\n send(data: LogEntry[] | ErrorAggregation[]): Promise<void>\n isEnabled(): boolean\n}\n\n/**\n * Reporting configuration\n */\nexport interface ReportingConfig {\n enabled: boolean\n logLevel: LogLevel\n batchSize: number\n batchTimeout: number\n aggregationWindow: number\n maxRetries: number\n destinations: ReportDestination[]\n enableContextCapture: boolean\n enableStackTrace: boolean\n enableUserTracking: boolean\n enableSessionTracking: boolean\n sensitiveKeys: string[]\n enableCompression: boolean\n}\n\n/**\n * Structured logger implementation\n */\nexport class StructuredLogger implements Logger {\n private entries: LogEntry[] = []\n private config: ReportingConfig\n private sessionId: string\n private userId?: string\n\n // Reactive state\n private entriesSignal: () => LogEntry[]\n private setEntries: (value: LogEntry[]) => void\n\n constructor(config: Partial<ReportingConfig> = {}) {\n this.config = {\n enabled: true,\n logLevel: 'info',\n batchSize: 50,\n batchTimeout: 30000, // 30 seconds\n aggregationWindow: 300000, // 5 minutes\n maxRetries: 3,\n destinations: [],\n enableContextCapture: true,\n enableStackTrace: true,\n enableUserTracking: false,\n enableSessionTracking: true,\n sensitiveKeys: ['password', 'token', 'apiKey', 'secret'],\n enableCompression: false,\n ...config,\n }\n\n // Initialize reactive state\n const [entriesSignal, setEntries] = createSignal<LogEntry[]>([])\n this.entriesSignal = entriesSignal\n this.setEntries = setEntries\n\n this.sessionId = this.generateSessionId()\n this.setupBatchProcessing()\n }\n\n /**\n * Debug level logging\n */\n debug(message: string, context?: Record<string, any>): void {\n this.log('debug', message, context)\n }\n\n /**\n * Info level logging\n */\n info(message: string, context?: Record<string, any>): void {\n this.log('info', message, context)\n }\n\n /**\n * Warning level logging\n */\n warn(message: string, context?: Record<string, any>): void {\n this.log('warn', message, context)\n }\n\n /**\n * Error level logging\n */\n error(message: string, context?: Record<string, any>): void {\n this.log('error', message, context)\n }\n\n /**\n * Fatal level logging\n */\n fatal(message: string, context?: Record<string, any>): void {\n this.log('fatal', message, context)\n }\n\n /**\n * Generic logging method\n */\n log(level: LogLevel, message: string, context?: Record<string, any>): void {\n if (!this.config.enabled || !this.shouldLog(level)) {\n return\n }\n\n const entry: LogEntry = {\n id: this.generateId(),\n timestamp: Date.now(),\n level,\n message,\n context: this.sanitizeContext(context),\n userAgent: typeof window !== 'undefined' ? window.navigator.userAgent : undefined,\n url: typeof window !== 'undefined' ? window.location.href : undefined,\n userId: this.userId,\n sessionId: this.sessionId,\n stack: this.config.enableStackTrace ? new Error().stack : undefined,\n }\n\n this.addEntry(entry)\n\n // Console logging in development\n if (typeof console !== 'undefined') {\n const consoleLevel = level === 'fatal' ? 'error' : level\n const consoleFn = (console as any)[consoleLevel] || console.log\n consoleFn(`[${level.toUpperCase()}] ${message}`, context || '')\n }\n }\n\n /**\n * Check if should log at given level\n */\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error', 'fatal']\n const currentLevelIndex = levels.indexOf(this.config.logLevel)\n const requestedLevelIndex = levels.indexOf(level)\n\n return requestedLevelIndex >= currentLevelIndex\n }\n\n /**\n * Add log entry\n */\n private addEntry(entry: LogEntry): void {\n this.entries.push(entry)\n this.setEntries([...this.entries])\n\n // Limit entries array size\n if (this.entries.length > 1000) {\n this.entries = this.entries.slice(-500)\n this.setEntries([...this.entries])\n }\n }\n\n /**\n * Sanitize context to remove sensitive data\n */\n private sanitizeContext(context?: Record<string, any>): Record<string, any> | undefined {\n if (!context || !this.config.enableContextCapture) return undefined\n\n const sanitized = { ...context }\n\n for (const key of this.config.sensitiveKeys) {\n if (key in sanitized) {\n sanitized[key] = '[REDACTED]'\n }\n }\n\n return sanitized\n }\n\n /**\n * Setup batch processing\n */\n private setupBatchProcessing(): void {\n setInterval(() => {\n this.flushBatch()\n }, this.config.batchTimeout)\n }\n\n /**\n * Flush current batch of log entries\n */\n private async flushBatch(): Promise<void> {\n if (this.entries.length === 0) return\n\n const batch = this.entries.splice(0, this.config.batchSize)\n\n for (const destination of this.config.destinations) {\n if (destination.isEnabled()) {\n try {\n await this.sendWithRetry(destination, batch)\n } catch (error) {\n console.error(`Failed to send logs to ${destination.name}:`, error)\n }\n }\n }\n }\n\n /**\n * Send data with retry logic\n */\n private async sendWithRetry(destination: ReportDestination, data: LogEntry[]): Promise<void> {\n let lastError: Error\n\n for (let attempt = 1; attempt <= this.config.maxRetries; attempt++) {\n try {\n await destination.send(data)\n return\n } catch (error) {\n lastError = error as Error\n\n if (attempt < this.config.maxRetries) {\n await this.sleep(2 ** attempt * 1000) // Exponential backoff\n }\n }\n }\n\n throw lastError!\n }\n\n /**\n * Sleep for specified duration\n */\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n }\n\n /**\n * Generate unique ID\n */\n private generateId(): string {\n return `log_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n }\n\n /**\n * Generate session ID\n */\n private generateSessionId(): string {\n return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n }\n\n /**\n * Set user ID for tracking\n */\n setUserId(userId: string): void {\n if (this.config.enableUserTracking) {\n this.userId = userId\n }\n }\n\n /**\n * Get log entries\n */\n getEntries(): LogEntry[] {\n return [...this.entries]\n }\n\n /**\n * Get entries signal\n */\n getEntriesSignal(): () => LogEntry[] {\n return this.entriesSignal\n }\n\n /**\n * Add destination\n */\n addDestination(destination: ReportDestination): void {\n this.config.destinations.push(destination)\n }\n\n /**\n * Remove destination\n */\n removeDestination(name: string): void {\n this.config.destinations = this.config.destinations.filter((d) => d.name !== name)\n }\n\n /**\n * Clear all log entries\n */\n clear(): void {\n this.entries.length = 0\n this.setEntries([])\n }\n}\n\n/**\n * Error aggregator\n */\nexport class ErrorAggregator {\n private aggregations = new Map<string, ErrorAggregation>()\n private config: ReportingConfig\n\n // Reactive state\n private aggregationsSignal: () => ErrorAggregation[]\n private setAggregations: (value: ErrorAggregation[]) => void\n\n constructor(config: Partial<ReportingConfig> = {}) {\n this.config = {\n enabled: true,\n logLevel: 'error',\n batchSize: 10,\n batchTimeout: 60000, // 1 minute\n aggregationWindow: 300000, // 5 minutes\n maxRetries: 3,\n destinations: [],\n enableContextCapture: true,\n enableStackTrace: true,\n enableUserTracking: false,\n enableSessionTracking: true,\n sensitiveKeys: [],\n enableCompression: true,\n ...config,\n }\n\n // Initialize reactive state\n const [aggregationsSignal, setAggregations] = createSignal<ErrorAggregation[]>([])\n this.aggregationsSignal = aggregationsSignal\n this.setAggregations = setAggregations\n\n this.setupCleanup()\n }\n\n /**\n * Aggregate error\n */\n aggregateError(error: TachUIError): void {\n const fingerprint = this.generateFingerprint(error)\n const existing = this.aggregations.get(fingerprint)\n\n if (existing) {\n existing.count++\n existing.lastSeen = error.timestamp\n existing.samples.push(error)\n\n // Keep only recent samples\n if (existing.samples.length > 5) {\n existing.samples = existing.samples.slice(-5)\n }\n\n if (error.componentId && !existing.affectedComponents.includes(error.componentId)) {\n existing.affectedComponents.push(error.componentId)\n }\n } else {\n const aggregation: ErrorAggregation = {\n id: fingerprint,\n message: error.message,\n category: error.category,\n severity: error.severity,\n count: 1,\n firstSeen: error.timestamp,\n lastSeen: error.timestamp,\n affectedComponents: error.componentId ? [error.componentId] : [],\n samples: [error],\n fingerprint,\n }\n\n this.aggregations.set(fingerprint, aggregation)\n }\n\n this.setAggregations(Array.from(this.aggregations.values()))\n }\n\n /**\n * Generate error fingerprint for grouping\n */\n private generateFingerprint(error: TachUIError): string {\n // Create a consistent hash based on error characteristics\n const components = [\n error.category,\n error.message.replace(/\\d+/g, 'N'), // Replace numbers with N\n error.componentName || 'unknown',\n ]\n\n return components.join('|')\n }\n\n /**\n * Setup cleanup of old aggregations\n */\n private setupCleanup(): void {\n setInterval(() => {\n this.cleanupOldAggregations()\n }, this.config.aggregationWindow)\n }\n\n /**\n * Cleanup old aggregations\n */\n private cleanupOldAggregations(): void {\n const cutoff = Date.now() - this.config.aggregationWindow\n\n for (const [fingerprint, aggregation] of this.aggregations) {\n if (aggregation.lastSeen < cutoff) {\n this.aggregations.delete(fingerprint)\n }\n }\n\n this.setAggregations(Array.from(this.aggregations.values()))\n }\n\n /**\n * Get aggregations\n */\n getAggregations(): ErrorAggregation[] {\n return Array.from(this.aggregations.values())\n }\n\n /**\n * Get aggregations signal\n */\n getAggregationsSignal(): () => ErrorAggregation[] {\n return this.aggregationsSignal\n }\n\n /**\n * Get top errors by count\n */\n getTopErrors(limit: number = 10): ErrorAggregation[] {\n return Array.from(this.aggregations.values())\n .sort((a, b) => b.count - a.count)\n .slice(0, limit)\n }\n\n /**\n * Clear aggregations\n */\n clear(): void {\n this.aggregations.clear()\n this.setAggregations([])\n }\n}\n\n/**\n * Built-in report destinations\n */\nexport const reportDestinations = {\n /**\n * Console destination\n */\n console: {\n name: 'console',\n async send(data: LogEntry[] | ErrorAggregation[]): Promise<void> {\n console.group('TachUI Report')\n data.forEach((entry) => {\n if ('level' in entry) {\n console.log(`[${entry.level}] ${entry.message}`, entry.context || '')\n } else {\n console.log(`Error: ${entry.message} (${entry.count} times)`)\n }\n })\n console.groupEnd()\n },\n isEnabled(): boolean {\n return typeof console !== 'undefined'\n },\n } as ReportDestination,\n\n /**\n * Local storage destination\n */\n localStorage: {\n name: 'localStorage',\n async send(data: LogEntry[] | ErrorAggregation[]): Promise<void> {\n try {\n const key = 'level' in data[0] ? 'tachui_logs' : 'tachui_error_aggregations'\n const existing = JSON.parse(localStorage.getItem(key) || '[]')\n const combined = [...existing, ...data]\n\n // Keep only last 100 entries\n if (combined.length > 100) {\n combined.splice(0, combined.length - 100)\n }\n\n localStorage.setItem(key, JSON.stringify(combined))\n } catch (error) {\n console.error('Failed to save to localStorage:', error)\n }\n },\n isEnabled(): boolean {\n return typeof localStorage !== 'undefined'\n },\n } as ReportDestination,\n\n /**\n * Create HTTP destination\n */\n createHttpDestination(endpoint: string, apiKey?: string): ReportDestination {\n return {\n name: 'http',\n async send(data: LogEntry[] | ErrorAggregation[]): Promise<void> {\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n }\n\n if (apiKey) {\n headers.Authorization = `Bearer ${apiKey}`\n }\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n type: 'level' in data[0] ? 'logs' : 'error_aggregations',\n data,\n timestamp: Date.now(),\n }),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`)\n }\n },\n isEnabled(): boolean {\n return typeof fetch !== 'undefined'\n },\n }\n },\n\n /**\n * Create webhook destination\n */\n createWebhookDestination(\n webhookUrl: string,\n options: {\n format?: 'slack' | 'discord' | 'teams' | 'generic'\n onlyErrors?: boolean\n } = {}\n ): ReportDestination {\n const formatForSlack = (data: (LogEntry | ErrorAggregation)[]): any => {\n const blocks = data.slice(0, 5).map((entry) => {\n if ('level' in entry) {\n return {\n type: 'section',\n text: {\n type: 'mrkdwn',\n text: `*${entry.level.toUpperCase()}*: ${entry.message}`,\n },\n }\n } else {\n return {\n type: 'section',\n text: {\n type: 'mrkdwn',\n text: `*Error*: ${entry.message} (${entry.count} occurrences)`,\n },\n }\n }\n })\n\n return { blocks }\n }\n\n const formatForDiscord = (data: (LogEntry | ErrorAggregation)[]): any => {\n const description = data\n .slice(0, 5)\n .map((entry) => {\n if ('level' in entry) {\n return `**${entry.level.toUpperCase()}**: ${entry.message}`\n } else {\n return `**Error**: ${entry.message} (${entry.count} times)`\n }\n })\n .join('\\n')\n\n return {\n embeds: [\n {\n title: 'TachUI Report',\n description,\n color: 0xff0000,\n },\n ],\n }\n }\n\n return {\n name: 'webhook',\n async send(data: LogEntry[] | ErrorAggregation[]): Promise<void> {\n const filteredData = options.onlyErrors\n ? data.filter(\n (entry) =>\n ('level' in entry && ['error', 'fatal'].includes(entry.level)) || 'count' in entry\n )\n : data\n\n if (filteredData.length === 0) return\n\n let payload: any\n\n switch (options.format) {\n case 'slack':\n payload = formatForSlack(filteredData)\n break\n case 'discord':\n payload = formatForDiscord(filteredData)\n break\n default:\n payload = { data: filteredData }\n }\n\n const response = await fetch(webhookUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n })\n\n if (!response.ok) {\n throw new Error(`Webhook failed: ${response.status}`)\n }\n },\n isEnabled(): boolean {\n return typeof fetch !== 'undefined'\n },\n }\n },\n}\n\n/**\n * Global logger instance\n */\nexport const globalLogger = new StructuredLogger({\n logLevel: 'info',\n destinations: [reportDestinations.console],\n})\n\n/**\n * Global error aggregator\n */\nexport const globalErrorAggregator = new ErrorAggregator()\n\n/**\n * Setup error reporting integration\n */\nexport function setupErrorReporting(config: Partial<ReportingConfig> = {}): void {\n // Configure logger by creating a new instance with merged config\n // Note: This assumes globalLogger has a way to get current config or we need to refactor\n // For now, we'll skip the config merge since there's no public API for it\n \n // TODO: Implement config usage once StructuredLogger has a public configure method\n void config // Silence unused parameter warning\n\n // Setup error aggregation\n globalErrorManager.addHandler((error: TachUIError) => {\n globalErrorAggregator.aggregateError(error)\n globalLogger.error(error.message, {\n category: error.category,\n severity: error.severity,\n componentId: error.componentId,\n componentName: error.componentName,\n context: error.context,\n })\n })\n}\n\n/**\n * Reporting utilities\n */\nexport const reportingUtils = {\n /**\n * Setup development reporting\n */\n setupDevelopment(): void {\n setupErrorReporting({\n logLevel: 'debug',\n enableStackTrace: true,\n enableContextCapture: true,\n destinations: [reportDestinations.console, reportDestinations.localStorage],\n })\n },\n\n /**\n * Setup production reporting\n */\n setupProduction(config: {\n endpoint?: string\n apiKey?: string\n webhookUrl?: string\n logLevel?: LogLevel\n }): void {\n const destinations: ReportDestination[] = []\n\n if (config.endpoint) {\n destinations.push(reportDestinations.createHttpDestination(config.endpoint, config.apiKey))\n }\n\n if (config.webhookUrl) {\n destinations.push(\n reportDestinations.createWebhookDestination(config.webhookUrl, {\n format: 'slack',\n onlyErrors: true,\n })\n )\n }\n\n setupErrorReporting({\n logLevel: config.logLevel || 'warn',\n enableStackTrace: false,\n enableContextCapture: false,\n destinations,\n })\n },\n\n /**\n * Create custom logger\n */\n createLogger(name: string, config?: Partial<ReportingConfig>): Logger {\n const logger = new StructuredLogger(config)\n\n // Wrap methods to include logger name\n const originalLog = logger.log.bind(logger)\n logger.log = (level: LogLevel, message: string, context?: Record<string, any>) => {\n originalLog(level, `[${name}] ${message}`, context)\n }\n\n return logger\n },\n\n /**\n * Get error report\n */\n getErrorReport(): {\n logs: LogEntry[]\n aggregations: ErrorAggregation[]\n statistics: any\n } {\n return {\n logs: globalLogger.getEntries(),\n aggregations: globalErrorAggregator.getAggregations(),\n statistics: globalErrorManager.getStatistics(),\n }\n },\n}\n"],"names":["StructuredLogger","config","__publicField","entriesSignal","setEntries","createSignal","message","context","level","entry","levels","currentLevelIndex","sanitized","key","batch","destination","error","data","lastError","attempt","ms","resolve","userId","name","d","ErrorAggregator","aggregationsSignal","setAggregations","fingerprint","existing","aggregation","cutoff","limit","a","b","reportDestinations","combined","endpoint","apiKey","headers","response","webhookUrl","options","formatForSlack","formatForDiscord","filteredData","payload","globalLogger","globalErrorAggregator","setupErrorReporting","globalErrorManager","reportingUtils","destinations","logger","originalLog"],"mappings":"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"}
|