@tachui/core 0.7.0-alpha1 → 0.8.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -0
- package/dist/bundles/common.d.ts +1 -1
- package/dist/bundles/common.d.ts.map +1 -1
- package/dist/bundles/minimal.d.ts +17 -5
- package/dist/bundles/minimal.d.ts.map +1 -1
- package/dist/bundles/production-minimal.d.ts +2 -16
- package/dist/bundles/production-minimal.d.ts.map +1 -1
- package/dist/common.js +402 -955
- package/dist/compiler/advanced-parser.d.ts.map +1 -1
- package/dist/compiler/index.js +1392 -10
- package/dist/component-XAzF1xqs.js +487 -0
- package/dist/component-base-x2XmHFjy.js +255 -0
- package/dist/components/index.d.ts +4 -38
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -102
- package/dist/components/wrapper.d.ts +5 -152
- package/dist/components/wrapper.d.ts.map +1 -1
- package/dist/concatenated-component-ByPl3_FF.js +2933 -0
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/layout.d.ts +47 -4
- package/dist/constants/layout.d.ts.map +1 -1
- package/dist/constants/layout.js +52 -14
- package/dist/css-classes/index.js +176 -0
- package/dist/dom-bridge-CAa1N2zX.js +406 -0
- package/dist/effect-B9Knft0b.js +66 -0
- package/dist/essential.js +394 -953
- package/dist/index-DCPJFUm9.js +1407 -0
- package/dist/index-DIvMCJQO.js +268 -0
- package/dist/index-vdsiw6gQ.js +777 -0
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +394 -953
- package/dist/minimal-prod.js +107 -190
- package/dist/minimal.js +115 -955
- package/dist/modifiers/background.d.ts +41 -11
- package/dist/modifiers/background.d.ts.map +1 -1
- package/dist/modifiers/base.d.ts +6 -33
- package/dist/modifiers/base.d.ts.map +1 -1
- package/dist/modifiers/base.js +275 -533
- package/dist/modifiers/builder.d.ts +103 -195
- package/dist/modifiers/builder.d.ts.map +1 -1
- package/dist/modifiers/builder.js +7 -928
- package/dist/modifiers/core.d.ts +9 -401
- package/dist/modifiers/core.d.ts.map +1 -1
- package/dist/modifiers/{utils.d.ts → factories.d.ts} +18 -5
- package/dist/modifiers/factories.d.ts.map +1 -0
- package/dist/modifiers/index.d.ts +8 -52
- package/dist/modifiers/index.d.ts.map +1 -1
- package/dist/modifiers/index.js +38 -0
- package/dist/modifiers/presets.d.ts +368 -0
- package/dist/modifiers/presets.d.ts.map +1 -0
- package/dist/modifiers/registry.js +8 -161
- package/dist/modifiers/types.d.ts +39 -211
- package/dist/modifiers/types.d.ts.map +1 -1
- package/dist/modifiers/types.js +0 -1
- package/dist/performance-optimizer-stub-CtfXUwl4.js +38 -0
- package/dist/plugins/index.d.ts +5 -6
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +393 -32
- package/dist/plugins/simplified-index.d.ts +5 -6
- package/dist/plugins/simplified-index.d.ts.map +1 -1
- package/dist/production-minimal-BY_gMc-l.js +2532 -0
- package/dist/reactive/index.js +489 -91
- package/dist/reactive/types.js +0 -1
- package/dist/runtime/dom-bridge.js +12 -239
- package/dist/runtime/element-override.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +0 -7
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/renderer.d.ts.map +1 -1
- package/dist/runtime/renderer.js +7 -388
- package/dist/runtime/semantic-role-manager.d.ts.map +1 -1
- package/dist/runtime/types.js +1 -0
- package/dist/scheduler-BKeqwrYE.js +814 -0
- package/dist/validation/build-time-stub.d.ts +33 -0
- package/dist/validation/build-time-stub.d.ts.map +1 -0
- package/dist/validation/debug-tools-stub.d.ts +67 -0
- package/dist/validation/debug-tools-stub.d.ts.map +1 -0
- package/dist/validation/index.d.ts +23 -78
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +788 -233
- package/dist/validation/lifecycle-validation.d.ts.map +1 -1
- package/dist/validation/performance-optimizer-stub.d.ts +50 -0
- package/dist/validation/performance-optimizer-stub.d.ts.map +1 -0
- package/dist/validation/plugin-registration.d.ts +5 -1
- package/dist/validation/plugin-registration.d.ts.map +1 -1
- package/dist/validation/production-bypass-core.d.ts +69 -0
- package/dist/validation/production-bypass-core.d.ts.map +1 -0
- package/package.json +43 -8
- package/dist/assets/Asset.cjs +0 -2
- package/dist/assets/Asset.cjs.map +0 -1
- package/dist/assets/Asset.js +0 -9
- package/dist/assets/Asset.js.map +0 -1
- package/dist/assets/AssetCollection.cjs +0 -2
- package/dist/assets/AssetCollection.cjs.map +0 -1
- package/dist/assets/AssetCollection.js +0 -44
- package/dist/assets/AssetCollection.js.map +0 -1
- package/dist/assets/ColorAsset.cjs +0 -2
- package/dist/assets/ColorAsset.cjs.map +0 -1
- package/dist/assets/ColorAsset.js +0 -114
- package/dist/assets/ColorAsset.js.map +0 -1
- package/dist/assets/FontAsset.cjs +0 -9
- package/dist/assets/FontAsset.cjs.map +0 -1
- package/dist/assets/FontAsset.js +0 -173
- package/dist/assets/FontAsset.js.map +0 -1
- package/dist/assets/ImageAsset.cjs +0 -2
- package/dist/assets/ImageAsset.cjs.map +0 -1
- package/dist/assets/ImageAsset.js +0 -39
- package/dist/assets/ImageAsset.js.map +0 -1
- package/dist/assets/index.cjs +0 -2
- package/dist/assets/index.cjs.map +0 -1
- package/dist/assets/index.js +0 -119
- package/dist/assets/index.js.map +0 -1
- package/dist/common.cjs +0 -2
- package/dist/common.cjs.map +0 -1
- package/dist/common.js.map +0 -1
- package/dist/compiler/advanced-parser.cjs +0 -5
- package/dist/compiler/advanced-parser.cjs.map +0 -1
- package/dist/compiler/advanced-parser.js +0 -440
- package/dist/compiler/advanced-parser.js.map +0 -1
- package/dist/compiler/codegen.cjs +0 -6
- package/dist/compiler/codegen.cjs.map +0 -1
- package/dist/compiler/codegen.js +0 -241
- package/dist/compiler/codegen.js.map +0 -1
- package/dist/compiler/enhanced-codegen.cjs +0 -6
- package/dist/compiler/enhanced-codegen.cjs.map +0 -1
- package/dist/compiler/enhanced-codegen.js +0 -347
- package/dist/compiler/enhanced-codegen.js.map +0 -1
- package/dist/compiler/index.cjs +0 -2
- package/dist/compiler/index.cjs.map +0 -1
- package/dist/compiler/index.js.map +0 -1
- package/dist/compiler/parser.cjs +0 -5
- package/dist/compiler/parser.cjs.map +0 -1
- package/dist/compiler/parser.js +0 -275
- package/dist/compiler/parser.js.map +0 -1
- package/dist/compiler/plugin.cjs +0 -33
- package/dist/compiler/plugin.cjs.map +0 -1
- package/dist/compiler/plugin.js +0 -103
- package/dist/compiler/plugin.js.map +0 -1
- package/dist/components/BasicInput.cjs +0 -2
- package/dist/components/BasicInput.cjs.map +0 -1
- package/dist/components/BasicInput.d.ts +0 -116
- package/dist/components/BasicInput.d.ts.map +0 -1
- package/dist/components/BasicInput.js +0 -182
- package/dist/components/BasicInput.js.map +0 -1
- package/dist/components/Button.cjs +0 -7
- package/dist/components/Button.cjs.map +0 -1
- package/dist/components/Button.d.ts +0 -252
- package/dist/components/Button.d.ts.map +0 -1
- package/dist/components/Button.js +0 -408
- package/dist/components/Button.js.map +0 -1
- package/dist/components/Divider.cjs +0 -2
- package/dist/components/Divider.cjs.map +0 -1
- package/dist/components/Divider.d.ts +0 -141
- package/dist/components/Divider.d.ts.map +0 -1
- package/dist/components/Divider.js +0 -187
- package/dist/components/Divider.js.map +0 -1
- package/dist/components/EnhancedLink.cjs +0 -2
- package/dist/components/EnhancedLink.cjs.map +0 -1
- package/dist/components/EnhancedLink.d.ts +0 -365
- package/dist/components/EnhancedLink.d.ts.map +0 -1
- package/dist/components/EnhancedLink.js +0 -345
- package/dist/components/EnhancedLink.js.map +0 -1
- package/dist/components/Form.cjs +0 -2
- package/dist/components/Form.cjs.map +0 -1
- package/dist/components/Form.d.ts +0 -141
- package/dist/components/Form.d.ts.map +0 -1
- package/dist/components/Form.js +0 -244
- package/dist/components/Form.js.map +0 -1
- package/dist/components/Grid.cjs +0 -2
- package/dist/components/Grid.cjs.map +0 -1
- package/dist/components/Grid.d.ts +0 -698
- package/dist/components/Grid.d.ts.map +0 -1
- package/dist/components/Grid.js +0 -1045
- package/dist/components/Grid.js.map +0 -1
- package/dist/components/GridResponsive.cjs +0 -2
- package/dist/components/GridResponsive.cjs.map +0 -1
- package/dist/components/GridResponsive.d.ts +0 -214
- package/dist/components/GridResponsive.d.ts.map +0 -1
- package/dist/components/GridResponsive.js +0 -382
- package/dist/components/GridResponsive.js.map +0 -1
- package/dist/components/Image.cjs +0 -2
- package/dist/components/Image.cjs.map +0 -1
- package/dist/components/Image.d.ts +0 -162
- package/dist/components/Image.d.ts.map +0 -1
- package/dist/components/Image.js +0 -212
- package/dist/components/Image.js.map +0 -1
- package/dist/components/List.cjs +0 -2
- package/dist/components/List.cjs.map +0 -1
- package/dist/components/List.d.ts +0 -287
- package/dist/components/List.d.ts.map +0 -1
- package/dist/components/List.js +0 -561
- package/dist/components/List.js.map +0 -1
- package/dist/components/Menu.cjs +0 -2
- package/dist/components/Menu.cjs.map +0 -1
- package/dist/components/Menu.d.ts +0 -159
- package/dist/components/Menu.d.ts.map +0 -1
- package/dist/components/Menu.js +0 -443
- package/dist/components/Menu.js.map +0 -1
- package/dist/components/Picker.cjs +0 -2
- package/dist/components/Picker.cjs.map +0 -1
- package/dist/components/Picker.d.ts +0 -153
- package/dist/components/Picker.d.ts.map +0 -1
- package/dist/components/Picker.js +0 -478
- package/dist/components/Picker.js.map +0 -1
- package/dist/components/ScrollView.cjs +0 -6
- package/dist/components/ScrollView.cjs.map +0 -1
- package/dist/components/ScrollView.d.ts +0 -222
- package/dist/components/ScrollView.d.ts.map +0 -1
- package/dist/components/ScrollView.js +0 -363
- package/dist/components/ScrollView.js.map +0 -1
- package/dist/components/Section.cjs +0 -2
- package/dist/components/Section.cjs.map +0 -1
- package/dist/components/Section.d.ts +0 -153
- package/dist/components/Section.d.ts.map +0 -1
- package/dist/components/Section.js +0 -323
- package/dist/components/Section.js.map +0 -1
- package/dist/components/Show.cjs +0 -2
- package/dist/components/Show.cjs.map +0 -1
- package/dist/components/Show.d.ts +0 -64
- package/dist/components/Show.d.ts.map +0 -1
- package/dist/components/Show.js +0 -112
- package/dist/components/Show.js.map +0 -1
- package/dist/components/Spacer.cjs +0 -2
- package/dist/components/Spacer.cjs.map +0 -1
- package/dist/components/Spacer.d.ts +0 -35
- package/dist/components/Spacer.d.ts.map +0 -1
- package/dist/components/Spacer.js +0 -53
- package/dist/components/Spacer.js.map +0 -1
- package/dist/components/Text.cjs +0 -2
- package/dist/components/Text.cjs.map +0 -1
- package/dist/components/Text.d.ts +0 -242
- package/dist/components/Text.d.ts.map +0 -1
- package/dist/components/Text.js +0 -193
- package/dist/components/Text.js.map +0 -1
- package/dist/components/Toggle.cjs +0 -2
- package/dist/components/Toggle.cjs.map +0 -1
- package/dist/components/Toggle.d.ts +0 -207
- package/dist/components/Toggle.d.ts.map +0 -1
- package/dist/components/Toggle.js +0 -477
- package/dist/components/Toggle.js.map +0 -1
- package/dist/components/index.cjs +0 -2
- package/dist/components/index.cjs.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/wrapper.cjs +0 -2
- package/dist/components/wrapper.cjs.map +0 -1
- package/dist/components/wrapper.js +0 -484
- package/dist/components/wrapper.js.map +0 -1
- package/dist/concatenation/concatenatable.cjs +0 -2
- package/dist/concatenation/concatenatable.cjs.map +0 -1
- package/dist/concatenation/concatenatable.js +0 -118
- package/dist/concatenation/concatenatable.js.map +0 -1
- package/dist/concatenation/concatenated-component.cjs +0 -2
- package/dist/concatenation/concatenated-component.cjs.map +0 -1
- package/dist/concatenation/concatenated-component.js +0 -276
- package/dist/concatenation/concatenated-component.js.map +0 -1
- package/dist/concatenation/text-optimizer.cjs +0 -2
- package/dist/concatenation/text-optimizer.cjs.map +0 -1
- package/dist/concatenation/text-optimizer.js +0 -236
- package/dist/concatenation/text-optimizer.js.map +0 -1
- package/dist/concatenation/types.cjs +0 -2
- package/dist/concatenation/types.cjs.map +0 -1
- package/dist/concatenation/types.js +0 -13
- package/dist/concatenation/types.js.map +0 -1
- package/dist/constants/frame-utils.cjs +0 -2
- package/dist/constants/frame-utils.cjs.map +0 -1
- package/dist/constants/frame-utils.js +0 -116
- package/dist/constants/frame-utils.js.map +0 -1
- package/dist/constants/layout.cjs +0 -2
- package/dist/constants/layout.cjs.map +0 -1
- package/dist/constants/layout.js.map +0 -1
- package/dist/css-classes/component-base.cjs +0 -2
- package/dist/css-classes/component-base.cjs.map +0 -1
- package/dist/css-classes/component-base.js +0 -62
- package/dist/css-classes/component-base.js.map +0 -1
- package/dist/css-classes/css-class-manager.cjs +0 -2
- package/dist/css-classes/css-class-manager.cjs.map +0 -1
- package/dist/css-classes/css-class-manager.js +0 -209
- package/dist/css-classes/css-class-manager.js.map +0 -1
- package/dist/css-classes/dom-integration.cjs +0 -2
- package/dist/css-classes/dom-integration.cjs.map +0 -1
- package/dist/css-classes/dom-integration.js +0 -67
- package/dist/css-classes/dom-integration.js.map +0 -1
- package/dist/css-classes/enhanced-renderer.cjs +0 -2
- package/dist/css-classes/enhanced-renderer.cjs.map +0 -1
- package/dist/css-classes/enhanced-renderer.js +0 -73
- package/dist/css-classes/enhanced-renderer.js.map +0 -1
- package/dist/css-classes/utilities.cjs +0 -2
- package/dist/css-classes/utilities.cjs.map +0 -1
- package/dist/css-classes/utilities.js +0 -41
- package/dist/css-classes/utilities.js.map +0 -1
- package/dist/debug/index.d.ts +0 -61
- package/dist/debug/index.d.ts.map +0 -1
- package/dist/debug.cjs +0 -52
- package/dist/debug.cjs.map +0 -1
- package/dist/debug.js +0 -179
- package/dist/debug.js.map +0 -1
- package/dist/developer-experience/enhanced-errors.d.ts +0 -128
- package/dist/developer-experience/enhanced-errors.d.ts.map +0 -1
- package/dist/developer-experience/enhanced-types.d.ts +0 -281
- package/dist/developer-experience/enhanced-types.d.ts.map +0 -1
- package/dist/developer-experience/index.d.ts +0 -44
- package/dist/developer-experience/index.d.ts.map +0 -1
- package/dist/essential.cjs +0 -2
- package/dist/essential.cjs.map +0 -1
- package/dist/essential.js.map +0 -1
- package/dist/gradients/css-generator.cjs +0 -2
- package/dist/gradients/css-generator.cjs.map +0 -1
- package/dist/gradients/css-generator.js +0 -100
- package/dist/gradients/css-generator.js.map +0 -1
- package/dist/gradients/examples.cjs +0 -2
- package/dist/gradients/examples.cjs.map +0 -1
- package/dist/gradients/examples.js +0 -555
- package/dist/gradients/examples.js.map +0 -1
- package/dist/gradients/gradient-asset.cjs +0 -2
- package/dist/gradients/gradient-asset.cjs.map +0 -1
- package/dist/gradients/gradient-asset.js +0 -22
- package/dist/gradients/gradient-asset.js.map +0 -1
- package/dist/gradients/index.cjs +0 -2
- package/dist/gradients/index.cjs.map +0 -1
- package/dist/gradients/index.js +0 -78
- package/dist/gradients/index.js.map +0 -1
- package/dist/gradients/performance.cjs +0 -2
- package/dist/gradients/performance.cjs.map +0 -1
- package/dist/gradients/performance.js +0 -237
- package/dist/gradients/performance.js.map +0 -1
- package/dist/gradients/presets.cjs +0 -2
- package/dist/gradients/presets.cjs.map +0 -1
- package/dist/gradients/presets.js +0 -254
- package/dist/gradients/presets.js.map +0 -1
- package/dist/gradients/reactive.cjs +0 -2
- package/dist/gradients/reactive.cjs.map +0 -1
- package/dist/gradients/reactive.js +0 -239
- package/dist/gradients/reactive.js.map +0 -1
- package/dist/gradients/state-gradient-asset.cjs +0 -2
- package/dist/gradients/state-gradient-asset.cjs.map +0 -1
- package/dist/gradients/state-gradient-asset.js +0 -111
- package/dist/gradients/state-gradient-asset.js.map +0 -1
- package/dist/gradients/utils.cjs +0 -2
- package/dist/gradients/utils.cjs.map +0 -1
- package/dist/gradients/utils.js +0 -385
- package/dist/gradients/utils.js.map +0 -1
- package/dist/gradients/validation.cjs +0 -2
- package/dist/gradients/validation.cjs.map +0 -1
- package/dist/gradients/validation.js +0 -209
- package/dist/gradients/validation.js.map +0 -1
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index2.cjs +0 -2
- package/dist/index2.cjs.map +0 -1
- package/dist/index2.js +0 -293
- package/dist/index2.js.map +0 -1
- package/dist/lifecycle/hooks.cjs +0 -2
- package/dist/lifecycle/hooks.cjs.map +0 -1
- package/dist/lifecycle/hooks.js +0 -159
- package/dist/lifecycle/hooks.js.map +0 -1
- package/dist/minimal-prod.cjs +0 -2
- package/dist/minimal-prod.cjs.map +0 -1
- package/dist/minimal-prod.js.map +0 -1
- package/dist/minimal.cjs +0 -2
- package/dist/minimal.cjs.map +0 -1
- package/dist/minimal.js.map +0 -1
- package/dist/modifiers/as-html-validator.cjs +0 -2
- package/dist/modifiers/as-html-validator.cjs.map +0 -1
- package/dist/modifiers/as-html-validator.js +0 -47
- package/dist/modifiers/as-html-validator.js.map +0 -1
- package/dist/modifiers/as-html.cjs +0 -2
- package/dist/modifiers/as-html.cjs.map +0 -1
- package/dist/modifiers/as-html.js +0 -71
- package/dist/modifiers/as-html.js.map +0 -1
- package/dist/modifiers/attributes.cjs +0 -2
- package/dist/modifiers/attributes.cjs.map +0 -1
- package/dist/modifiers/attributes.d.ts +0 -203
- package/dist/modifiers/attributes.d.ts.map +0 -1
- package/dist/modifiers/attributes.js +0 -272
- package/dist/modifiers/attributes.js.map +0 -1
- package/dist/modifiers/backdrop.cjs +0 -2
- package/dist/modifiers/backdrop.cjs.map +0 -1
- package/dist/modifiers/backdrop.d.ts +0 -59
- package/dist/modifiers/backdrop.d.ts.map +0 -1
- package/dist/modifiers/backdrop.js +0 -109
- package/dist/modifiers/backdrop.js.map +0 -1
- package/dist/modifiers/background.cjs +0 -2
- package/dist/modifiers/background.cjs.map +0 -1
- package/dist/modifiers/background.js +0 -67
- package/dist/modifiers/background.js.map +0 -1
- package/dist/modifiers/base.cjs +0 -25
- package/dist/modifiers/base.cjs.map +0 -1
- package/dist/modifiers/base.js.map +0 -1
- package/dist/modifiers/basic-sanitizer.cjs +0 -2
- package/dist/modifiers/basic-sanitizer.cjs.map +0 -1
- package/dist/modifiers/basic-sanitizer.js +0 -162
- package/dist/modifiers/basic-sanitizer.js.map +0 -1
- package/dist/modifiers/border.cjs +0 -2
- package/dist/modifiers/border.cjs.map +0 -1
- package/dist/modifiers/border.d.ts +0 -217
- package/dist/modifiers/border.d.ts.map +0 -1
- package/dist/modifiers/border.js +0 -160
- package/dist/modifiers/border.js.map +0 -1
- package/dist/modifiers/builder.cjs +0 -2
- package/dist/modifiers/builder.cjs.map +0 -1
- package/dist/modifiers/builder.js.map +0 -1
- package/dist/modifiers/core.cjs +0 -2
- package/dist/modifiers/core.cjs.map +0 -1
- package/dist/modifiers/core.js +0 -398
- package/dist/modifiers/core.js.map +0 -1
- package/dist/modifiers/css.cjs +0 -2
- package/dist/modifiers/css.cjs.map +0 -1
- package/dist/modifiers/css.js +0 -50
- package/dist/modifiers/css.js.map +0 -1
- package/dist/modifiers/effects.cjs +0 -2
- package/dist/modifiers/effects.cjs.map +0 -1
- package/dist/modifiers/effects.d.ts +0 -159
- package/dist/modifiers/effects.d.ts.map +0 -1
- package/dist/modifiers/effects.js +0 -178
- package/dist/modifiers/effects.js.map +0 -1
- package/dist/modifiers/elements.cjs +0 -2
- package/dist/modifiers/elements.cjs.map +0 -1
- package/dist/modifiers/elements.d.ts +0 -240
- package/dist/modifiers/elements.d.ts.map +0 -1
- package/dist/modifiers/elements.js +0 -216
- package/dist/modifiers/elements.js.map +0 -1
- package/dist/modifiers/filters.cjs +0 -2
- package/dist/modifiers/filters.cjs.map +0 -1
- package/dist/modifiers/filters.d.ts +0 -275
- package/dist/modifiers/filters.d.ts.map +0 -1
- package/dist/modifiers/filters.js +0 -223
- package/dist/modifiers/filters.js.map +0 -1
- package/dist/modifiers/flexbox.cjs +0 -2
- package/dist/modifiers/flexbox.cjs.map +0 -1
- package/dist/modifiers/flexbox.d.ts +0 -82
- package/dist/modifiers/flexbox.d.ts.map +0 -1
- package/dist/modifiers/flexbox.js +0 -56
- package/dist/modifiers/flexbox.js.map +0 -1
- package/dist/modifiers/font.cjs +0 -2
- package/dist/modifiers/font.cjs.map +0 -1
- package/dist/modifiers/font.d.ts +0 -71
- package/dist/modifiers/font.d.ts.map +0 -1
- package/dist/modifiers/font.js +0 -60
- package/dist/modifiers/font.js.map +0 -1
- package/dist/modifiers/grid.cjs +0 -2
- package/dist/modifiers/grid.cjs.map +0 -1
- package/dist/modifiers/grid.d.ts +0 -92
- package/dist/modifiers/grid.d.ts.map +0 -1
- package/dist/modifiers/grid.js +0 -92
- package/dist/modifiers/grid.js.map +0 -1
- package/dist/modifiers/margin.cjs +0 -2
- package/dist/modifiers/margin.cjs.map +0 -1
- package/dist/modifiers/margin.d.ts +0 -128
- package/dist/modifiers/margin.d.ts.map +0 -1
- package/dist/modifiers/margin.js +0 -65
- package/dist/modifiers/margin.js.map +0 -1
- package/dist/modifiers/padding.cjs +0 -2
- package/dist/modifiers/padding.cjs.map +0 -1
- package/dist/modifiers/padding.d.ts +0 -204
- package/dist/modifiers/padding.d.ts.map +0 -1
- package/dist/modifiers/padding.js +0 -109
- package/dist/modifiers/padding.js.map +0 -1
- package/dist/modifiers/registry.cjs +0 -2
- package/dist/modifiers/registry.cjs.map +0 -1
- package/dist/modifiers/registry.js.map +0 -1
- package/dist/modifiers/responsive/advanced-utilities.cjs +0 -2
- package/dist/modifiers/responsive/advanced-utilities.cjs.map +0 -1
- package/dist/modifiers/responsive/advanced-utilities.d.ts +0 -118
- package/dist/modifiers/responsive/advanced-utilities.d.ts.map +0 -1
- package/dist/modifiers/responsive/advanced-utilities.js +0 -291
- package/dist/modifiers/responsive/advanced-utilities.js.map +0 -1
- package/dist/modifiers/responsive/breakpoints.cjs +0 -2
- package/dist/modifiers/responsive/breakpoints.cjs.map +0 -1
- package/dist/modifiers/responsive/breakpoints.d.ts +0 -81
- package/dist/modifiers/responsive/breakpoints.d.ts.map +0 -1
- package/dist/modifiers/responsive/breakpoints.js +0 -168
- package/dist/modifiers/responsive/breakpoints.js.map +0 -1
- package/dist/modifiers/responsive/css-generator.cjs +0 -5
- package/dist/modifiers/responsive/css-generator.cjs.map +0 -1
- package/dist/modifiers/responsive/css-generator.d.ts +0 -100
- package/dist/modifiers/responsive/css-generator.d.ts.map +0 -1
- package/dist/modifiers/responsive/css-generator.js +0 -261
- package/dist/modifiers/responsive/css-generator.js.map +0 -1
- package/dist/modifiers/responsive/dev-tools.cjs +0 -77
- package/dist/modifiers/responsive/dev-tools.cjs.map +0 -1
- package/dist/modifiers/responsive/dev-tools.d.ts +0 -107
- package/dist/modifiers/responsive/dev-tools.d.ts.map +0 -1
- package/dist/modifiers/responsive/dev-tools.js +0 -380
- package/dist/modifiers/responsive/dev-tools.js.map +0 -1
- package/dist/modifiers/responsive/index.d.ts +0 -28
- package/dist/modifiers/responsive/index.d.ts.map +0 -1
- package/dist/modifiers/responsive/layout-patterns.cjs +0 -2
- package/dist/modifiers/responsive/layout-patterns.cjs.map +0 -1
- package/dist/modifiers/responsive/layout-patterns.d.ts +0 -230
- package/dist/modifiers/responsive/layout-patterns.d.ts.map +0 -1
- package/dist/modifiers/responsive/layout-patterns.js +0 -254
- package/dist/modifiers/responsive/layout-patterns.js.map +0 -1
- package/dist/modifiers/responsive/performance.cjs +0 -3
- package/dist/modifiers/responsive/performance.cjs.map +0 -1
- package/dist/modifiers/responsive/performance.d.ts +0 -130
- package/dist/modifiers/responsive/performance.d.ts.map +0 -1
- package/dist/modifiers/responsive/performance.js +0 -212
- package/dist/modifiers/responsive/performance.js.map +0 -1
- package/dist/modifiers/responsive/responsive-builder.cjs +0 -2
- package/dist/modifiers/responsive/responsive-builder.cjs.map +0 -1
- package/dist/modifiers/responsive/responsive-builder.d.ts +0 -133
- package/dist/modifiers/responsive/responsive-builder.d.ts.map +0 -1
- package/dist/modifiers/responsive/responsive-builder.js +0 -272
- package/dist/modifiers/responsive/responsive-builder.js.map +0 -1
- package/dist/modifiers/responsive/responsive-modifier.cjs +0 -3
- package/dist/modifiers/responsive/responsive-modifier.cjs.map +0 -1
- package/dist/modifiers/responsive/responsive-modifier.d.ts +0 -123
- package/dist/modifiers/responsive/responsive-modifier.d.ts.map +0 -1
- package/dist/modifiers/responsive/responsive-modifier.js +0 -204
- package/dist/modifiers/responsive/responsive-modifier.js.map +0 -1
- package/dist/modifiers/responsive/types.cjs +0 -2
- package/dist/modifiers/responsive/types.cjs.map +0 -1
- package/dist/modifiers/responsive/types.d.ts +0 -183
- package/dist/modifiers/responsive/types.d.ts.map +0 -1
- package/dist/modifiers/responsive/types.js +0 -26
- package/dist/modifiers/responsive/types.js.map +0 -1
- package/dist/modifiers/responsive/utilities.cjs +0 -16
- package/dist/modifiers/responsive/utilities.cjs.map +0 -1
- package/dist/modifiers/responsive/utilities.d.ts +0 -149
- package/dist/modifiers/responsive/utilities.d.ts.map +0 -1
- package/dist/modifiers/responsive/utilities.js +0 -273
- package/dist/modifiers/responsive/utilities.js.map +0 -1
- package/dist/modifiers/scroll.cjs +0 -2
- package/dist/modifiers/scroll.cjs.map +0 -1
- package/dist/modifiers/scroll.d.ts +0 -143
- package/dist/modifiers/scroll.d.ts.map +0 -1
- package/dist/modifiers/scroll.js +0 -82
- package/dist/modifiers/scroll.js.map +0 -1
- package/dist/modifiers/shadows.cjs +0 -2
- package/dist/modifiers/shadows.cjs.map +0 -1
- package/dist/modifiers/shadows.d.ts +0 -114
- package/dist/modifiers/shadows.d.ts.map +0 -1
- package/dist/modifiers/shadows.js +0 -147
- package/dist/modifiers/shadows.js.map +0 -1
- package/dist/modifiers/size.cjs +0 -2
- package/dist/modifiers/size.cjs.map +0 -1
- package/dist/modifiers/size.d.ts +0 -113
- package/dist/modifiers/size.d.ts.map +0 -1
- package/dist/modifiers/size.js +0 -74
- package/dist/modifiers/size.js.map +0 -1
- package/dist/modifiers/text.cjs +0 -2
- package/dist/modifiers/text.cjs.map +0 -1
- package/dist/modifiers/text.d.ts +0 -147
- package/dist/modifiers/text.d.ts.map +0 -1
- package/dist/modifiers/text.js +0 -166
- package/dist/modifiers/text.js.map +0 -1
- package/dist/modifiers/transformations.cjs +0 -2
- package/dist/modifiers/transformations.cjs.map +0 -1
- package/dist/modifiers/transformations.d.ts +0 -329
- package/dist/modifiers/transformations.d.ts.map +0 -1
- package/dist/modifiers/transformations.js +0 -216
- package/dist/modifiers/transformations.js.map +0 -1
- package/dist/modifiers/transitions.cjs +0 -2
- package/dist/modifiers/transitions.cjs.map +0 -1
- package/dist/modifiers/transitions.d.ts +0 -98
- package/dist/modifiers/transitions.d.ts.map +0 -1
- package/dist/modifiers/transitions.js +0 -102
- package/dist/modifiers/transitions.js.map +0 -1
- package/dist/modifiers/types.cjs +0 -2
- package/dist/modifiers/types.cjs.map +0 -1
- package/dist/modifiers/types.js.map +0 -1
- package/dist/modifiers/typography.cjs +0 -2
- package/dist/modifiers/typography.cjs.map +0 -1
- package/dist/modifiers/typography.d.ts +0 -192
- package/dist/modifiers/typography.d.ts.map +0 -1
- package/dist/modifiers/typography.js +0 -76
- package/dist/modifiers/typography.js.map +0 -1
- package/dist/modifiers/utility.cjs +0 -2
- package/dist/modifiers/utility.cjs.map +0 -1
- package/dist/modifiers/utility.d.ts +0 -69
- package/dist/modifiers/utility.d.ts.map +0 -1
- package/dist/modifiers/utility.js +0 -71
- package/dist/modifiers/utility.js.map +0 -1
- package/dist/modifiers/utils.cjs +0 -2
- package/dist/modifiers/utils.cjs.map +0 -1
- package/dist/modifiers/utils.d.ts.map +0 -1
- package/dist/modifiers/utils.js +0 -250
- package/dist/modifiers/utils.js.map +0 -1
- package/dist/plugins/index.cjs +0 -2
- package/dist/plugins/index.cjs.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/legacy-adapter.cjs +0 -2
- package/dist/plugins/legacy-adapter.cjs.map +0 -1
- package/dist/plugins/legacy-adapter.js +0 -30
- package/dist/plugins/legacy-adapter.js.map +0 -1
- package/dist/plugins/simplified-component-registry.cjs +0 -2
- package/dist/plugins/simplified-component-registry.cjs.map +0 -1
- package/dist/plugins/simplified-component-registry.js +0 -71
- package/dist/plugins/simplified-component-registry.js.map +0 -1
- package/dist/plugins/simplified-error-handler.cjs +0 -2
- package/dist/plugins/simplified-error-handler.cjs.map +0 -1
- package/dist/plugins/simplified-error-handler.d.ts +0 -83
- package/dist/plugins/simplified-error-handler.d.ts.map +0 -1
- package/dist/plugins/simplified-error-handler.js +0 -154
- package/dist/plugins/simplified-error-handler.js.map +0 -1
- package/dist/plugins/simplified-lazy-loader.cjs +0 -2
- package/dist/plugins/simplified-lazy-loader.cjs.map +0 -1
- package/dist/plugins/simplified-lazy-loader.js +0 -129
- package/dist/plugins/simplified-lazy-loader.js.map +0 -1
- package/dist/plugins/simplified-plugin-manager.cjs +0 -2
- package/dist/plugins/simplified-plugin-manager.cjs.map +0 -1
- package/dist/plugins/simplified-plugin-manager.js +0 -51
- package/dist/plugins/simplified-plugin-manager.js.map +0 -1
- package/dist/plugins/simplified-tachui-instance.cjs +0 -2
- package/dist/plugins/simplified-tachui-instance.cjs.map +0 -1
- package/dist/plugins/simplified-tachui-instance.js +0 -88
- package/dist/plugins/simplified-tachui-instance.js.map +0 -1
- package/dist/plugins/simplified-types.cjs +0 -2
- package/dist/plugins/simplified-types.cjs.map +0 -1
- package/dist/plugins/simplified-types.js +0 -9
- package/dist/plugins/simplified-types.js.map +0 -1
- package/dist/plugins/simplified-utils.cjs +0 -2
- package/dist/plugins/simplified-utils.cjs.map +0 -1
- package/dist/plugins/simplified-utils.js +0 -40
- package/dist/plugins/simplified-utils.js.map +0 -1
- package/dist/reactive/cleanup.cjs +0 -2
- package/dist/reactive/cleanup.cjs.map +0 -1
- package/dist/reactive/cleanup.js +0 -62
- package/dist/reactive/cleanup.js.map +0 -1
- package/dist/reactive/computed.cjs +0 -2
- package/dist/reactive/computed.cjs.map +0 -1
- package/dist/reactive/computed.js +0 -121
- package/dist/reactive/computed.js.map +0 -1
- package/dist/reactive/context.cjs +0 -2
- package/dist/reactive/context.cjs.map +0 -1
- package/dist/reactive/context.js +0 -143
- package/dist/reactive/context.js.map +0 -1
- package/dist/reactive/effect.cjs +0 -2
- package/dist/reactive/effect.cjs.map +0 -1
- package/dist/reactive/effect.js +0 -67
- package/dist/reactive/effect.js.map +0 -1
- package/dist/reactive/enhanced-effect.cjs +0 -2
- package/dist/reactive/enhanced-effect.cjs.map +0 -1
- package/dist/reactive/enhanced-effect.js +0 -153
- package/dist/reactive/enhanced-effect.js.map +0 -1
- package/dist/reactive/enhanced-signal.cjs +0 -2
- package/dist/reactive/enhanced-signal.cjs.map +0 -1
- package/dist/reactive/enhanced-signal.js +0 -117
- package/dist/reactive/enhanced-signal.js.map +0 -1
- package/dist/reactive/equality.cjs +0 -2
- package/dist/reactive/equality.cjs.map +0 -1
- package/dist/reactive/equality.js +0 -66
- package/dist/reactive/equality.js.map +0 -1
- package/dist/reactive/index.cjs +0 -2
- package/dist/reactive/index.cjs.map +0 -1
- package/dist/reactive/index.js.map +0 -1
- package/dist/reactive/migration.cjs +0 -18
- package/dist/reactive/migration.cjs.map +0 -1
- package/dist/reactive/migration.js +0 -164
- package/dist/reactive/migration.js.map +0 -1
- package/dist/reactive/ownership.cjs +0 -2
- package/dist/reactive/ownership.cjs.map +0 -1
- package/dist/reactive/ownership.js +0 -34
- package/dist/reactive/ownership.js.map +0 -1
- package/dist/reactive/scheduler.cjs +0 -2
- package/dist/reactive/scheduler.cjs.map +0 -1
- package/dist/reactive/scheduler.js +0 -111
- package/dist/reactive/scheduler.js.map +0 -1
- package/dist/reactive/signal.cjs +0 -2
- package/dist/reactive/signal.cjs.map +0 -1
- package/dist/reactive/signal.js +0 -96
- package/dist/reactive/signal.js.map +0 -1
- package/dist/reactive/theme.cjs +0 -2
- package/dist/reactive/theme.cjs.map +0 -1
- package/dist/reactive/theme.js +0 -27
- package/dist/reactive/theme.js.map +0 -1
- package/dist/reactive/types.cjs +0 -2
- package/dist/reactive/types.cjs.map +0 -1
- package/dist/reactive/types.js.map +0 -1
- package/dist/reactive/unified-scheduler.cjs +0 -2
- package/dist/reactive/unified-scheduler.cjs.map +0 -1
- package/dist/reactive/unified-scheduler.js +0 -219
- package/dist/reactive/unified-scheduler.js.map +0 -1
- package/dist/runtime/component-context.cjs +0 -2
- package/dist/runtime/component-context.cjs.map +0 -1
- package/dist/runtime/component-context.js +0 -177
- package/dist/runtime/component-context.js.map +0 -1
- package/dist/runtime/component.cjs +0 -2
- package/dist/runtime/component.cjs.map +0 -1
- package/dist/runtime/component.js +0 -238
- package/dist/runtime/component.js.map +0 -1
- package/dist/runtime/context.cjs +0 -2
- package/dist/runtime/context.cjs.map +0 -1
- package/dist/runtime/context.js +0 -289
- package/dist/runtime/context.js.map +0 -1
- package/dist/runtime/dev-tools.cjs +0 -2
- package/dist/runtime/dev-tools.cjs.map +0 -1
- package/dist/runtime/dev-tools.d.ts +0 -240
- package/dist/runtime/dev-tools.d.ts.map +0 -1
- package/dist/runtime/dev-tools.js +0 -391
- package/dist/runtime/dev-tools.js.map +0 -1
- package/dist/runtime/development-warnings.cjs +0 -2
- package/dist/runtime/development-warnings.cjs.map +0 -1
- package/dist/runtime/development-warnings.d.ts +0 -42
- package/dist/runtime/development-warnings.d.ts.map +0 -1
- package/dist/runtime/development-warnings.js +0 -69
- package/dist/runtime/development-warnings.js.map +0 -1
- package/dist/runtime/dom-bridge.cjs +0 -2
- package/dist/runtime/dom-bridge.cjs.map +0 -1
- package/dist/runtime/dom-bridge.js.map +0 -1
- package/dist/runtime/element-override.cjs +0 -2
- package/dist/runtime/element-override.cjs.map +0 -1
- package/dist/runtime/element-override.js +0 -214
- package/dist/runtime/element-override.js.map +0 -1
- package/dist/runtime/error-boundary.cjs +0 -2
- package/dist/runtime/error-boundary.cjs.map +0 -1
- package/dist/runtime/error-boundary.d.ts +0 -302
- package/dist/runtime/error-boundary.d.ts.map +0 -1
- package/dist/runtime/error-boundary.js +0 -559
- package/dist/runtime/error-boundary.js.map +0 -1
- package/dist/runtime/error-recovery.cjs +0 -2
- package/dist/runtime/error-recovery.cjs.map +0 -1
- package/dist/runtime/error-recovery.d.ts +0 -267
- package/dist/runtime/error-recovery.d.ts.map +0 -1
- package/dist/runtime/error-recovery.js +0 -385
- package/dist/runtime/error-recovery.js.map +0 -1
- package/dist/runtime/error-reporting.cjs +0 -3
- package/dist/runtime/error-reporting.cjs.map +0 -1
- package/dist/runtime/error-reporting.d.ts +0 -287
- package/dist/runtime/error-reporting.d.ts.map +0 -1
- package/dist/runtime/error-reporting.js +0 -479
- package/dist/runtime/error-reporting.js.map +0 -1
- package/dist/runtime/error-utils.cjs +0 -3
- package/dist/runtime/error-utils.cjs.map +0 -1
- package/dist/runtime/error-utils.d.ts +0 -204
- package/dist/runtime/error-utils.d.ts.map +0 -1
- package/dist/runtime/error-utils.js +0 -352
- package/dist/runtime/error-utils.js.map +0 -1
- package/dist/runtime/lazy-component.cjs +0 -2
- package/dist/runtime/lazy-component.cjs.map +0 -1
- package/dist/runtime/lazy-component.js +0 -129
- package/dist/runtime/lazy-component.js.map +0 -1
- package/dist/runtime/lifecycle.cjs +0 -2
- package/dist/runtime/lifecycle.cjs.map +0 -1
- package/dist/runtime/lifecycle.js +0 -7
- package/dist/runtime/lifecycle.js.map +0 -1
- package/dist/runtime/mounting.cjs +0 -2
- package/dist/runtime/mounting.cjs.map +0 -1
- package/dist/runtime/mounting.js +0 -12
- package/dist/runtime/mounting.js.map +0 -1
- package/dist/runtime/optimization.cjs +0 -2
- package/dist/runtime/optimization.cjs.map +0 -1
- package/dist/runtime/optimization.js +0 -6
- package/dist/runtime/optimization.js.map +0 -1
- package/dist/runtime/performance.cjs +0 -2
- package/dist/runtime/performance.cjs.map +0 -1
- package/dist/runtime/performance.d.ts +0 -217
- package/dist/runtime/performance.d.ts.map +0 -1
- package/dist/runtime/performance.js +0 -399
- package/dist/runtime/performance.js.map +0 -1
- package/dist/runtime/props.cjs +0 -2
- package/dist/runtime/props.cjs.map +0 -1
- package/dist/runtime/props.js +0 -265
- package/dist/runtime/props.js.map +0 -1
- package/dist/runtime/renderer.cjs +0 -2
- package/dist/runtime/renderer.cjs.map +0 -1
- package/dist/runtime/renderer.js.map +0 -1
- package/dist/runtime/semantic-role-manager.cjs +0 -2
- package/dist/runtime/semantic-role-manager.cjs.map +0 -1
- package/dist/runtime/semantic-role-manager.js +0 -82
- package/dist/runtime/semantic-role-manager.js.map +0 -1
- package/dist/state/binding.cjs +0 -2
- package/dist/state/binding.cjs.map +0 -1
- package/dist/state/binding.js +0 -155
- package/dist/state/binding.js.map +0 -1
- package/dist/state/environment.cjs +0 -2
- package/dist/state/environment.cjs.map +0 -1
- package/dist/state/environment.js +0 -115
- package/dist/state/environment.js.map +0 -1
- package/dist/state/index.cjs +0 -2
- package/dist/state/index.cjs.map +0 -1
- package/dist/state/index.js +0 -63
- package/dist/state/index.js.map +0 -1
- package/dist/state/observed-object.cjs +0 -2
- package/dist/state/observed-object.cjs.map +0 -1
- package/dist/state/observed-object.js +0 -163
- package/dist/state/observed-object.js.map +0 -1
- package/dist/state/state-manager.cjs +0 -2
- package/dist/state/state-manager.cjs.map +0 -1
- package/dist/state/state-manager.js +0 -233
- package/dist/state/state-manager.js.map +0 -1
- package/dist/state/state.cjs +0 -2
- package/dist/state/state.cjs.map +0 -1
- package/dist/state/state.js +0 -159
- package/dist/state/state.js.map +0 -1
- package/dist/sui-compat.cjs +0 -2
- package/dist/sui-compat.cjs.map +0 -1
- package/dist/sui-compat.d.ts +0 -110
- package/dist/sui-compat.d.ts.map +0 -1
- package/dist/sui-compat.js +0 -88
- package/dist/sui-compat.js.map +0 -1
- package/dist/validation/advanced-debugging.cjs +0 -44
- package/dist/validation/advanced-debugging.cjs.map +0 -1
- package/dist/validation/advanced-debugging.d.ts +0 -319
- package/dist/validation/advanced-debugging.d.ts.map +0 -1
- package/dist/validation/advanced-debugging.js +0 -455
- package/dist/validation/advanced-debugging.js.map +0 -1
- package/dist/validation/build-time/detection.cjs +0 -2
- package/dist/validation/build-time/detection.cjs.map +0 -1
- package/dist/validation/build-time/detection.d.ts +0 -32
- package/dist/validation/build-time/detection.d.ts.map +0 -1
- package/dist/validation/build-time/detection.js +0 -199
- package/dist/validation/build-time/detection.js.map +0 -1
- package/dist/validation/build-time/index.cjs +0 -2
- package/dist/validation/build-time/index.cjs.map +0 -1
- package/dist/validation/build-time/index.d.ts +0 -84
- package/dist/validation/build-time/index.d.ts.map +0 -1
- package/dist/validation/build-time/index.js +0 -122
- package/dist/validation/build-time/index.js.map +0 -1
- package/dist/validation/build-time/plugins.cjs +0 -3
- package/dist/validation/build-time/plugins.cjs.map +0 -1
- package/dist/validation/build-time/plugins.d.ts +0 -75
- package/dist/validation/build-time/plugins.d.ts.map +0 -1
- package/dist/validation/build-time/plugins.js +0 -282
- package/dist/validation/build-time/plugins.js.map +0 -1
- package/dist/validation/build-time/rules.cjs +0 -2
- package/dist/validation/build-time/rules.cjs.map +0 -1
- package/dist/validation/build-time/rules.d.ts +0 -73
- package/dist/validation/build-time/rules.d.ts.map +0 -1
- package/dist/validation/build-time/rules.js +0 -576
- package/dist/validation/build-time/rules.js.map +0 -1
- package/dist/validation/build-time/transformer.cjs +0 -3
- package/dist/validation/build-time/transformer.cjs.map +0 -1
- package/dist/validation/build-time/transformer.d.ts +0 -23
- package/dist/validation/build-time/transformer.d.ts.map +0 -1
- package/dist/validation/build-time/transformer.js +0 -177
- package/dist/validation/build-time/transformer.js.map +0 -1
- package/dist/validation/build-time/types.d.ts +0 -212
- package/dist/validation/build-time/types.d.ts.map +0 -1
- package/dist/validation/comprehensive.cjs +0 -9
- package/dist/validation/comprehensive.cjs.map +0 -1
- package/dist/validation/comprehensive.d.ts +0 -160
- package/dist/validation/comprehensive.d.ts.map +0 -1
- package/dist/validation/comprehensive.js +0 -916
- package/dist/validation/comprehensive.js.map +0 -1
- package/dist/validation/debug-tools.cjs +0 -16
- package/dist/validation/debug-tools.cjs.map +0 -1
- package/dist/validation/debug-tools.d.ts +0 -251
- package/dist/validation/debug-tools.d.ts.map +0 -1
- package/dist/validation/debug-tools.js +0 -405
- package/dist/validation/debug-tools.js.map +0 -1
- package/dist/validation/developer-experience.cjs +0 -17
- package/dist/validation/developer-experience.cjs.map +0 -1
- package/dist/validation/developer-experience.d.ts +0 -243
- package/dist/validation/developer-experience.d.ts.map +0 -1
- package/dist/validation/developer-experience.js +0 -433
- package/dist/validation/developer-experience.js.map +0 -1
- package/dist/validation/documentation-integration.cjs +0 -7
- package/dist/validation/documentation-integration.cjs.map +0 -1
- package/dist/validation/documentation-integration.d.ts +0 -269
- package/dist/validation/documentation-integration.d.ts.map +0 -1
- package/dist/validation/documentation-integration.js +0 -440
- package/dist/validation/documentation-integration.js.map +0 -1
- package/dist/validation/enhanced-runtime.cjs +0 -6
- package/dist/validation/enhanced-runtime.cjs.map +0 -1
- package/dist/validation/enhanced-runtime.d.ts +0 -279
- package/dist/validation/enhanced-runtime.d.ts.map +0 -1
- package/dist/validation/enhanced-runtime.js +0 -465
- package/dist/validation/enhanced-runtime.js.map +0 -1
- package/dist/validation/error-reporting.cjs +0 -32
- package/dist/validation/error-reporting.cjs.map +0 -1
- package/dist/validation/error-reporting.d.ts +0 -186
- package/dist/validation/error-reporting.d.ts.map +0 -1
- package/dist/validation/error-reporting.js +0 -370
- package/dist/validation/error-reporting.js.map +0 -1
- package/dist/validation/ide-integration.cjs +0 -85
- package/dist/validation/ide-integration.cjs.map +0 -1
- package/dist/validation/ide-integration.d.ts +0 -328
- package/dist/validation/ide-integration.d.ts.map +0 -1
- package/dist/validation/ide-integration.js +0 -557
- package/dist/validation/ide-integration.js.map +0 -1
- package/dist/validation/index.cjs +0 -6
- package/dist/validation/index.cjs.map +0 -1
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/lifecycle-validation.cjs +0 -2
- package/dist/validation/lifecycle-validation.cjs.map +0 -1
- package/dist/validation/lifecycle-validation.js +0 -314
- package/dist/validation/lifecycle-validation.js.map +0 -1
- package/dist/validation/performance-optimizer.cjs +0 -2
- package/dist/validation/performance-optimizer.cjs.map +0 -1
- package/dist/validation/performance-optimizer.d.ts +0 -218
- package/dist/validation/performance-optimizer.d.ts.map +0 -1
- package/dist/validation/performance-optimizer.js +0 -338
- package/dist/validation/performance-optimizer.js.map +0 -1
- package/dist/validation/plugin-registration.cjs +0 -2
- package/dist/validation/plugin-registration.cjs.map +0 -1
- package/dist/validation/plugin-registration.js +0 -126
- package/dist/validation/plugin-registration.js.map +0 -1
- package/dist/validation/production-bypass.cjs +0 -2
- package/dist/validation/production-bypass.cjs.map +0 -1
- package/dist/validation/production-bypass.d.ts +0 -175
- package/dist/validation/production-bypass.d.ts.map +0 -1
- package/dist/validation/production-bypass.js +0 -218
- package/dist/validation/production-bypass.js.map +0 -1
- package/dist/validation/simple.cjs +0 -9
- package/dist/validation/simple.cjs.map +0 -1
- package/dist/validation/simple.d.ts +0 -111
- package/dist/validation/simple.d.ts.map +0 -1
- package/dist/validation/simple.js +0 -146
- package/dist/validation/simple.js.map +0 -1
- package/dist/viewport/adapters/web-adapter.cjs +0 -70
- package/dist/viewport/adapters/web-adapter.cjs.map +0 -1
- package/dist/viewport/adapters/web-adapter.d.ts +0 -227
- package/dist/viewport/adapters/web-adapter.d.ts.map +0 -1
- package/dist/viewport/adapters/web-adapter.js +0 -823
- package/dist/viewport/adapters/web-adapter.js.map +0 -1
- package/dist/viewport/components.cjs +0 -2
- package/dist/viewport/components.cjs.map +0 -1
- package/dist/viewport/components.d.ts +0 -131
- package/dist/viewport/components.d.ts.map +0 -1
- package/dist/viewport/components.js +0 -298
- package/dist/viewport/components.js.map +0 -1
- package/dist/viewport/environment.cjs +0 -2
- package/dist/viewport/environment.cjs.map +0 -1
- package/dist/viewport/environment.d.ts +0 -75
- package/dist/viewport/environment.d.ts.map +0 -1
- package/dist/viewport/environment.js +0 -86
- package/dist/viewport/environment.js.map +0 -1
- package/dist/viewport/index.cjs +0 -2
- package/dist/viewport/index.cjs.map +0 -1
- package/dist/viewport/index.d.ts +0 -138
- package/dist/viewport/index.d.ts.map +0 -1
- package/dist/viewport/index.js +0 -166
- package/dist/viewport/index.js.map +0 -1
- package/dist/viewport/platform-detection.cjs +0 -2
- package/dist/viewport/platform-detection.cjs.map +0 -1
- package/dist/viewport/platform-detection.d.ts +0 -59
- package/dist/viewport/platform-detection.d.ts.map +0 -1
- package/dist/viewport/platform-detection.js +0 -205
- package/dist/viewport/platform-detection.js.map +0 -1
- package/dist/viewport/types.cjs +0 -2
- package/dist/viewport/types.cjs.map +0 -1
- package/dist/viewport/types.d.ts +0 -301
- package/dist/viewport/types.d.ts.map +0 -1
- package/dist/viewport/types.js +0 -13
- package/dist/viewport/types.js.map +0 -1
- package/dist/viewport/viewport-manager.cjs +0 -2
- package/dist/viewport/viewport-manager.cjs.map +0 -1
- package/dist/viewport/viewport-manager.d.ts +0 -118
- package/dist/viewport/viewport-manager.d.ts.map +0 -1
- package/dist/viewport/viewport-manager.js +0 -524
- package/dist/viewport/viewport-manager.js.map +0 -1
- package/src/assets/Asset.ts +0 -11
- package/src/assets/AssetCollection.ts +0 -99
- package/src/assets/ColorAsset.ts +0 -210
- package/src/assets/FontAsset.ts +0 -380
- package/src/assets/ImageAsset.ts +0 -91
- package/src/assets/README.md +0 -190
- package/src/assets/index.ts +0 -175
- package/src/assets/test-assets.ts +0 -69
- package/src/assets/test-integration.ts +0 -46
- package/src/assets/test-simple.ts +0 -28
- package/src/assets/types.ts +0 -79
- package/src/bundles/common.ts +0 -30
- package/src/bundles/complete.ts +0 -29
- package/src/bundles/essential.ts +0 -26
- package/src/bundles/minimal.ts +0 -26
- package/src/bundles/production-minimal.ts +0 -67
- package/src/compiler/advanced-parser.ts +0 -871
- package/src/compiler/codegen.ts +0 -450
- package/src/compiler/enhanced-codegen.ts +0 -729
- package/src/compiler/index.ts +0 -25
- package/src/compiler/parser.ts +0 -461
- package/src/compiler/plugin.ts +0 -181
- package/src/compiler/types.ts +0 -177
- package/src/components/BasicInput.ts +0 -352
- package/src/components/Button.ts +0 -963
- package/src/components/Divider.ts +0 -341
- package/src/components/EnhancedLink.ts +0 -676
- package/src/components/Form.ts +0 -414
- package/src/components/Grid.ts +0 -2507
- package/src/components/GridResponsive.ts +0 -637
- package/src/components/Image.ts +0 -426
- package/src/components/List.ts +0 -1084
- package/src/components/Menu.ts +0 -807
- package/src/components/Picker.ts +0 -678
- package/src/components/ScrollView.ts +0 -725
- package/src/components/Section.ts +0 -472
- package/src/components/Show.ts +0 -205
- package/src/components/Spacer.ts +0 -93
- package/src/components/Text.ts +0 -447
- package/src/components/Toggle.ts +0 -700
- package/src/components/index.ts +0 -231
- package/src/components/wrapper.ts +0 -828
- package/src/concatenation/concatenatable.ts +0 -211
- package/src/concatenation/concatenated-component.ts +0 -471
- package/src/concatenation/index.ts +0 -41
- package/src/concatenation/styles.css +0 -120
- package/src/concatenation/text-optimizer.ts +0 -440
- package/src/concatenation/types.ts +0 -116
- package/src/constants/README.md +0 -339
- package/src/constants/__tests__/frame-utils.test.ts +0 -276
- package/src/constants/__tests__/layout.test.ts +0 -215
- package/src/constants/frame-utils.ts +0 -174
- package/src/constants/index.ts +0 -8
- package/src/constants/layout.ts +0 -120
- package/src/css-classes/component-base.ts +0 -117
- package/src/css-classes/css-class-manager.ts +0 -372
- package/src/css-classes/dom-integration.ts +0 -162
- package/src/css-classes/enhanced-renderer.ts +0 -166
- package/src/css-classes/index.ts +0 -45
- package/src/css-classes/types.ts +0 -73
- package/src/css-classes/utilities.ts +0 -175
- package/src/debug/index.ts +0 -267
- package/src/developer-experience/enhanced-errors.ts +0 -556
- package/src/developer-experience/enhanced-types.ts +0 -427
- package/src/developer-experience/index.ts +0 -220
- package/src/globals.d.ts +0 -43
- package/src/gradients/__tests__/angular-gradient.test.ts +0 -111
- package/src/gradients/__tests__/background-modifier.test.ts +0 -81
- package/src/gradients/__tests__/comprehensive-gradients.test.ts +0 -296
- package/src/gradients/__tests__/gradient-asset.test.ts +0 -144
- package/src/gradients/__tests__/linear-gradient.test.ts +0 -92
- package/src/gradients/__tests__/phase4-features.test.ts +0 -386
- package/src/gradients/__tests__/radial-gradient.test.ts +0 -110
- package/src/gradients/__tests__/repeating-gradients.test.ts +0 -125
- package/src/gradients/__tests__/state-background-modifier.test.ts +0 -340
- package/src/gradients/__tests__/state-gradient-asset.test.ts +0 -262
- package/src/gradients/__tests__/state-gradient-integration.test.ts +0 -277
- package/src/gradients/css-generator.ts +0 -158
- package/src/gradients/examples.ts +0 -632
- package/src/gradients/gradient-asset.ts +0 -30
- package/src/gradients/index.ts +0 -85
- package/src/gradients/performance.ts +0 -521
- package/src/gradients/presets.ts +0 -422
- package/src/gradients/reactive.ts +0 -470
- package/src/gradients/state-gradient-asset.ts +0 -179
- package/src/gradients/types.ts +0 -148
- package/src/gradients/utils.ts +0 -579
- package/src/gradients/validation.ts +0 -489
- package/src/index.ts +0 -168
- package/src/lifecycle/hooks.ts +0 -332
- package/src/modifiers/__tests__/as-html-integration.test.ts +0 -204
- package/src/modifiers/__tests__/as-html.test.ts +0 -437
- package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +0 -294
- package/src/modifiers/__tests__/border.test.ts +0 -371
- package/src/modifiers/__tests__/margin-string-support.test.ts +0 -41
- package/src/modifiers/__tests__/padding-string-support.test.ts +0 -41
- package/src/modifiers/as-html-validator.ts +0 -68
- package/src/modifiers/as-html.ts +0 -216
- package/src/modifiers/attributes.ts +0 -574
- package/src/modifiers/backdrop.ts +0 -290
- package/src/modifiers/background.ts +0 -165
- package/src/modifiers/base.ts +0 -1815
- package/src/modifiers/basic-sanitizer.ts +0 -227
- package/src/modifiers/border.ts +0 -574
- package/src/modifiers/builder.ts +0 -1747
- package/src/modifiers/core.ts +0 -521
- package/src/modifiers/css.ts +0 -148
- package/src/modifiers/effects.ts +0 -412
- package/src/modifiers/elements.ts +0 -541
- package/src/modifiers/filters.ts +0 -501
- package/src/modifiers/flexbox.ts +0 -180
- package/src/modifiers/font.ts +0 -149
- package/src/modifiers/grid.ts +0 -238
- package/src/modifiers/index.ts +0 -481
- package/src/modifiers/margin.ts +0 -218
- package/src/modifiers/padding.ts +0 -318
- package/src/modifiers/registry.ts +0 -444
- package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +0 -392
- package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +0 -368
- package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +0 -556
- package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +0 -558
- package/src/modifiers/responsive/advanced-utilities.ts +0 -562
- package/src/modifiers/responsive/breakpoints.ts +0 -330
- package/src/modifiers/responsive/css-generator.ts +0 -432
- package/src/modifiers/responsive/dev-tools.ts +0 -650
- package/src/modifiers/responsive/index.ts +0 -119
- package/src/modifiers/responsive/layout-patterns.ts +0 -592
- package/src/modifiers/responsive/performance.ts +0 -385
- package/src/modifiers/responsive/responsive-builder.ts +0 -620
- package/src/modifiers/responsive/responsive-modifier.ts +0 -410
- package/src/modifiers/responsive/types.ts +0 -226
- package/src/modifiers/responsive/utilities.ts +0 -478
- package/src/modifiers/scroll.ts +0 -297
- package/src/modifiers/shadows.ts +0 -321
- package/src/modifiers/size.ts +0 -208
- package/src/modifiers/text.ts +0 -416
- package/src/modifiers/transformations.ts +0 -640
- package/src/modifiers/transitions.ts +0 -218
- package/src/modifiers/types.ts +0 -889
- package/src/modifiers/typography.ts +0 -341
- package/src/modifiers/utility.ts +0 -209
- package/src/modifiers/utils.ts +0 -413
- package/src/plugins/__tests__/simplified-plugin-system.test.ts +0 -190
- package/src/plugins/component-loader-registry.ts +0 -371
- package/src/plugins/index.ts +0 -61
- package/src/plugins/legacy-adapter.ts +0 -84
- package/src/plugins/simplified-component-registry.ts +0 -130
- package/src/plugins/simplified-error-handler.ts +0 -372
- package/src/plugins/simplified-index.ts +0 -61
- package/src/plugins/simplified-lazy-loader.ts +0 -242
- package/src/plugins/simplified-plugin-manager.ts +0 -93
- package/src/plugins/simplified-tachui-instance.ts +0 -142
- package/src/plugins/simplified-types.ts +0 -79
- package/src/plugins/simplified-utils.ts +0 -118
- package/src/reactive/cleanup.ts +0 -241
- package/src/reactive/computed.ts +0 -281
- package/src/reactive/context.ts +0 -287
- package/src/reactive/effect.ts +0 -194
- package/src/reactive/enhanced-effect.ts +0 -318
- package/src/reactive/enhanced-signal.ts +0 -227
- package/src/reactive/equality.ts +0 -188
- package/src/reactive/globals.d.ts +0 -5
- package/src/reactive/index.ts +0 -150
- package/src/reactive/migration.ts +0 -335
- package/src/reactive/ownership.ts +0 -182
- package/src/reactive/scheduler.ts +0 -300
- package/src/reactive/signal.ts +0 -201
- package/src/reactive/theme.ts +0 -49
- package/src/reactive/types.ts +0 -103
- package/src/reactive/unified-scheduler.ts +0 -357
- package/src/runtime/component-context.ts +0 -343
- package/src/runtime/component.ts +0 -499
- package/src/runtime/context.ts +0 -527
- package/src/runtime/dev-tools.ts +0 -752
- package/src/runtime/development-warnings.ts +0 -114
- package/src/runtime/dom-bridge.ts +0 -570
- package/src/runtime/element-override.ts +0 -282
- package/src/runtime/error-boundary.ts +0 -955
- package/src/runtime/error-recovery.ts +0 -638
- package/src/runtime/error-reporting.ts +0 -808
- package/src/runtime/error-utils.ts +0 -698
- package/src/runtime/index.ts +0 -202
- package/src/runtime/lazy-component.ts +0 -268
- package/src/runtime/lifecycle.ts +0 -10
- package/src/runtime/mounting.ts +0 -17
- package/src/runtime/optimization.ts +0 -13
- package/src/runtime/performance.ts +0 -693
- package/src/runtime/props.ts +0 -434
- package/src/runtime/refs.ts +0 -13
- package/src/runtime/renderer.ts +0 -674
- package/src/runtime/semantic-role-manager.ts +0 -140
- package/src/runtime/types.ts +0 -282
- package/src/state/binding.ts +0 -381
- package/src/state/environment-object.ts +0 -444
- package/src/state/environment.ts +0 -351
- package/src/state/index.ts +0 -179
- package/src/state/observed-object.ts +0 -405
- package/src/state/state-manager.ts +0 -366
- package/src/state/state.ts +0 -339
- package/src/state/types.ts +0 -192
- package/src/sui-compat.ts +0 -163
- package/src/validation/__tests__/phase-1d-integration.test.ts +0 -558
- package/src/validation/advanced-debugging.ts +0 -860
- package/src/validation/build-time/detection.ts +0 -373
- package/src/validation/build-time/index.ts +0 -222
- package/src/validation/build-time/plugins.ts +0 -515
- package/src/validation/build-time/rules.ts +0 -624
- package/src/validation/build-time/transformer.ts +0 -372
- package/src/validation/build-time/types.ts +0 -232
- package/src/validation/comprehensive.ts +0 -1272
- package/src/validation/debug-tools.ts +0 -724
- package/src/validation/developer-experience.ts +0 -712
- package/src/validation/documentation-integration.ts +0 -835
- package/src/validation/enhanced-runtime.ts +0 -765
- package/src/validation/error-reporting.ts +0 -587
- package/src/validation/ide-integration.ts +0 -845
- package/src/validation/index.ts +0 -353
- package/src/validation/lifecycle-validation.ts +0 -636
- package/src/validation/performance-optimizer.ts +0 -599
- package/src/validation/plugin-registration.ts +0 -249
- package/src/validation/production-bypass.ts +0 -466
- package/src/validation/simple.ts +0 -465
- package/src/viewport/adapters/web-adapter.ts +0 -1385
- package/src/viewport/components.ts +0 -505
- package/src/viewport/environment.ts +0 -173
- package/src/viewport/index.ts +0 -290
- package/src/viewport/platform-detection.ts +0 -431
- package/src/viewport/types.ts +0 -371
- package/src/viewport/viewport-manager.ts +0 -979
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
import "../reactive/cleanup.js";
|
|
2
|
-
import "../reactive/unified-scheduler.js";
|
|
3
|
-
import { createEffect as _ } from "../reactive/effect.js";
|
|
4
|
-
import { createSignal as $, isSignal as g } from "../reactive/signal.js";
|
|
5
|
-
import "../reactive/scheduler.js";
|
|
6
|
-
import "../reactive/theme.js";
|
|
7
|
-
import { h as P, text as R } from "../runtime/renderer.js";
|
|
8
|
-
import { withModifiers as V } from "./wrapper.js";
|
|
9
|
-
import { useLifecycle as H } from "../lifecycle/hooks.js";
|
|
10
|
-
import { ColorAsset as L } from "../assets/ColorAsset.js";
|
|
11
|
-
import { ConcatenatedComponent as M } from "../concatenation/concatenated-component.js";
|
|
12
|
-
import "../css-classes/css-class-manager.js";
|
|
13
|
-
import { ComponentWithCSSClasses as I } from "../css-classes/component-base.js";
|
|
14
|
-
var O = Object.defineProperty, W = (i, e, t) => e in i ? O(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, h = (i, e, t) => W(i, typeof e != "symbol" ? e + "" : e, t);
|
|
15
|
-
const K = {
|
|
16
|
-
colors: {
|
|
17
|
-
primary: "#007AFF",
|
|
18
|
-
secondary: "#5856D6",
|
|
19
|
-
destructive: "#FF3B30",
|
|
20
|
-
background: "#F2F2F7",
|
|
21
|
-
surface: "#FFFFFF",
|
|
22
|
-
onPrimary: "#FFFFFF",
|
|
23
|
-
onSecondary: "#FFFFFF",
|
|
24
|
-
onSurface: "#000000",
|
|
25
|
-
border: "#C7C7CC",
|
|
26
|
-
disabled: "#8E8E93"
|
|
27
|
-
},
|
|
28
|
-
spacing: {
|
|
29
|
-
small: 8,
|
|
30
|
-
medium: 12,
|
|
31
|
-
large: 16
|
|
32
|
-
},
|
|
33
|
-
borderRadius: {
|
|
34
|
-
small: 6,
|
|
35
|
-
medium: 8,
|
|
36
|
-
large: 12
|
|
37
|
-
},
|
|
38
|
-
typography: {
|
|
39
|
-
small: { size: 14, weight: "500" },
|
|
40
|
-
medium: { size: 16, weight: "500" },
|
|
41
|
-
large: { size: 18, weight: "600" }
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
class U extends I {
|
|
45
|
-
constructor(e, t = K) {
|
|
46
|
-
super(), this.props = e, h(this, "type", "component"), h(this, "id"), h(this, "mounted", !1), h(this, "cleanup", []), h(this, "stateSignal"), h(this, "setState"), h(this, "theme"), this.id = `button-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, this.theme = t;
|
|
47
|
-
const [s, o] = $("normal");
|
|
48
|
-
this.stateSignal = s, this.setState = o, this.setupDOMEventListeners();
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Set up DOM event listeners for button interactions
|
|
52
|
-
*/
|
|
53
|
-
setupDOMEventListeners() {
|
|
54
|
-
H(this, {
|
|
55
|
-
onDOMReady: (e, t) => {
|
|
56
|
-
t instanceof HTMLButtonElement && (this.attachInteractionEvents(t), this.setupReactiveStyles(t));
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Set up reactive style updates based on state changes
|
|
62
|
-
*/
|
|
63
|
-
setupReactiveStyles(e) {
|
|
64
|
-
const t = _(() => {
|
|
65
|
-
this.stateSignal(), this.isEnabled(), this.isLoading();
|
|
66
|
-
const { tint: s, backgroundColor: o, foregroundColor: r } = this.props;
|
|
67
|
-
s && g(s) ? s() : s instanceof L && s.resolve(), o && g(o) ? o() : o instanceof L && o.resolve(), r && g(r) ? r() : r instanceof L && r.resolve();
|
|
68
|
-
const n = this.getButtonStyles();
|
|
69
|
-
this.applyStylesToElement(e, n);
|
|
70
|
-
});
|
|
71
|
-
this.cleanup.push(() => {
|
|
72
|
-
t && typeof t.dispose == "function" && t.dispose();
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Apply computed styles to the button element, respecting modifier-applied styles
|
|
77
|
-
*/
|
|
78
|
-
applyStylesToElement(e, t) {
|
|
79
|
-
Object.entries(t).forEach(([s, o]) => {
|
|
80
|
-
const r = this.camelToKebabCase(s);
|
|
81
|
-
if (typeof o == "string" || typeof o == "number") {
|
|
82
|
-
const n = e.style.getPropertyValue(r);
|
|
83
|
-
r === "transform" ? e.style.setProperty(r, String(o)) : n && n !== "" && n !== "inherit" || e.style.setProperty(r, String(o));
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Convert camelCase to kebab-case for CSS properties
|
|
89
|
-
*/
|
|
90
|
-
camelToKebabCase(e) {
|
|
91
|
-
return e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Resolve color value from string, signal, or asset
|
|
95
|
-
*/
|
|
96
|
-
resolveColorValue(e) {
|
|
97
|
-
if (e) {
|
|
98
|
-
if (typeof e == "string")
|
|
99
|
-
return e;
|
|
100
|
-
if (g(e))
|
|
101
|
-
return e();
|
|
102
|
-
if (e instanceof L)
|
|
103
|
-
return e.resolve();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Attach interaction event listeners to the button element
|
|
108
|
-
*/
|
|
109
|
-
attachInteractionEvents(e) {
|
|
110
|
-
const t = () => {
|
|
111
|
-
const a = this.isEnabled();
|
|
112
|
-
return typeof a == "boolean" ? a : a();
|
|
113
|
-
};
|
|
114
|
-
let s = null;
|
|
115
|
-
const o = (a) => {
|
|
116
|
-
t() && a.button === 0 && (this.setState("pressed"), s = () => {
|
|
117
|
-
this.stateSignal() === "pressed" && this.setState("normal"), s && (document.removeEventListener("mouseup", s), s = null);
|
|
118
|
-
}, document.addEventListener("mouseup", s));
|
|
119
|
-
}, r = () => {
|
|
120
|
-
t() && this.stateSignal() === "pressed" && (this.setState("normal"), s && (document.removeEventListener("mouseup", s), s = null));
|
|
121
|
-
}, n = () => {
|
|
122
|
-
t() && (this.setState("normal"), s && (document.removeEventListener("mouseup", s), s = null));
|
|
123
|
-
}, d = () => {
|
|
124
|
-
t() && this.stateSignal() !== "pressed" && this.setState("focused");
|
|
125
|
-
}, v = () => {
|
|
126
|
-
t() && this.stateSignal() === "focused" && this.setState("normal");
|
|
127
|
-
}, b = (a) => {
|
|
128
|
-
t() && (a.key === " " || a.key === "Enter") && (a.preventDefault(), this.setState("pressed"));
|
|
129
|
-
}, S = (a) => {
|
|
130
|
-
t() && (a.key === " " || a.key === "Enter") && (a.preventDefault(), this.setState("normal"), this.props.action?.());
|
|
131
|
-
};
|
|
132
|
-
e.addEventListener("mousedown", o), e.addEventListener("mouseup", r), e.addEventListener("mouseleave", n), e.addEventListener("focus", d), e.addEventListener("blur", v), e.addEventListener("keydown", b), e.addEventListener("keyup", S), this.cleanup.push(() => {
|
|
133
|
-
e.removeEventListener("mousedown", o), e.removeEventListener("mouseup", r), e.removeEventListener("mouseleave", n), e.removeEventListener("focus", d), e.removeEventListener("blur", v), e.removeEventListener("keydown", b), e.removeEventListener("keyup", S), s && (document.removeEventListener("mouseup", s), s = null);
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Check if button is enabled
|
|
138
|
-
*/
|
|
139
|
-
isEnabled() {
|
|
140
|
-
const { isEnabled: e } = this.props;
|
|
141
|
-
return e === void 0 ? !0 : typeof e == "boolean" || g(e) ? e : !0;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Render the button component
|
|
145
|
-
*/
|
|
146
|
-
render() {
|
|
147
|
-
const e = this.isEnabled(), t = [];
|
|
148
|
-
this.props.systemImage && t.push(P("span", {
|
|
149
|
-
class: "button-icon",
|
|
150
|
-
style: {
|
|
151
|
-
marginRight: "8px",
|
|
152
|
-
fontSize: "1.2em"
|
|
153
|
-
}
|
|
154
|
-
}, R(this.props.systemImage))), t.push(P("span", {
|
|
155
|
-
class: "button-title"
|
|
156
|
-
}, R(this.props.title || "")));
|
|
157
|
-
const s = ["tachui-button"];
|
|
158
|
-
return [{
|
|
159
|
-
type: "element",
|
|
160
|
-
tag: "button",
|
|
161
|
-
props: {
|
|
162
|
-
className: this.createClassString(this.props, s),
|
|
163
|
-
type: "button",
|
|
164
|
-
disabled: typeof e == "boolean" ? !e : () => !e(),
|
|
165
|
-
// Invert enabled to disabled
|
|
166
|
-
onClick: this.props.action ? () => {
|
|
167
|
-
try {
|
|
168
|
-
this.props.action?.();
|
|
169
|
-
} catch (n) {
|
|
170
|
-
console.error("Button action error:", n);
|
|
171
|
-
}
|
|
172
|
-
} : void 0,
|
|
173
|
-
// Pass through debug label for debug system
|
|
174
|
-
...this.props.debugLabel && { debugLabel: this.props.debugLabel }
|
|
175
|
-
},
|
|
176
|
-
children: t,
|
|
177
|
-
// Attach component metadata for modifier processing
|
|
178
|
-
componentMetadata: {
|
|
179
|
-
id: this.id,
|
|
180
|
-
type: "Button"
|
|
181
|
-
// Note: modifiers are attached automatically by the modifier system
|
|
182
|
-
}
|
|
183
|
-
}];
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Check if button is in loading state
|
|
187
|
-
*/
|
|
188
|
-
isLoading() {
|
|
189
|
-
const { isLoading: e } = this.props;
|
|
190
|
-
return e === void 0 ? !1 : typeof e == "boolean" ? e : g(e) ? e() : !1;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Check if the button has color-related modifiers applied
|
|
194
|
-
*/
|
|
195
|
-
hasColorModifiers() {
|
|
196
|
-
let e = this.modifiers;
|
|
197
|
-
return !e && this.modifierBuilder && (e = this.modifierBuilder.modifiers), !e && this.modifiableComponent && (e = this.modifiableComponent.modifiers), !e || !Array.isArray(e) ? !1 : e.some((t) => t.type === "appearance" || t.constructor?.name === "AppearanceModifier" ? t.properties && (t.properties.foregroundColor !== void 0 || t.properties.color !== void 0) : t.properties ? ["foregroundColor", "color", "textColor"].some((o) => t.properties[o] !== void 0) : !1);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Check if the button has typography-related modifiers applied
|
|
201
|
-
*/
|
|
202
|
-
hasTypographyModifiers() {
|
|
203
|
-
let e = this.modifiers;
|
|
204
|
-
return !e && this.modifierBuilder && (e = this.modifierBuilder.modifiers), !e && this.modifiableComponent && (e = this.modifiableComponent.modifiers), !e || !Array.isArray(e) ? !1 : e.some((s) => s.type === "typography" || s.constructor?.name === "TypographyModifier" ? s.properties && (s.properties.transform !== void 0 || s.properties.textTransform !== void 0) : !1);
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Get computed button styles based on variant, size, role, and state
|
|
208
|
-
*/
|
|
209
|
-
// biome-ignore lint/suspicious/noExplicitAny: CSS styles require flexible property types
|
|
210
|
-
getButtonStyles() {
|
|
211
|
-
const { variant: e, size: t, role: s = "none", tint: o, backgroundColor: r, foregroundColor: n } = this.props, d = this.stateSignal(), v = this.isLoading(), b = this.isEnabled(), S = this.hasColorModifiers(), a = this.hasTypographyModifiers(), u = {
|
|
212
|
-
// Only set color property if no modifiers will handle it
|
|
213
|
-
// This prevents conflicts between Button styles and AppearanceModifier
|
|
214
|
-
...!S && !n && !e && { color: "inherit" },
|
|
215
|
-
// Only set text-related properties if no typography modifiers will handle them
|
|
216
|
-
// This prevents conflicts between Button styles and TypographyModifier
|
|
217
|
-
...!a && {
|
|
218
|
-
fontStyle: "inherit",
|
|
219
|
-
lineHeight: "inherit",
|
|
220
|
-
textTransform: "inherit",
|
|
221
|
-
textDecoration: "inherit",
|
|
222
|
-
textIndent: "inherit",
|
|
223
|
-
textShadow: "inherit",
|
|
224
|
-
wordSpacing: "inherit",
|
|
225
|
-
textOrientation: "inherit",
|
|
226
|
-
writingMode: "inherit",
|
|
227
|
-
direction: "inherit"
|
|
228
|
-
}
|
|
229
|
-
// Let modifiers control: fontFamily, fontSize, fontWeight, letterSpacing, textAlign
|
|
230
|
-
};
|
|
231
|
-
if (t) {
|
|
232
|
-
const f = this.theme.spacing[t] || this.theme.spacing.medium, D = this.theme.borderRadius[t] || this.theme.borderRadius.medium, T = this.theme.typography[t] || this.theme.typography.medium, z = {
|
|
233
|
-
small: "32px",
|
|
234
|
-
medium: "40px",
|
|
235
|
-
large: "48px"
|
|
236
|
-
};
|
|
237
|
-
u.padding = `${f}px ${f * 2}px`, u.borderRadius = `${D}px`, u.fontSize = `${T.size}px`, u.fontWeight = T.weight, u.minHeight = z[t];
|
|
238
|
-
}
|
|
239
|
-
let c = "transparent", p = "transparent", k = "1px", m;
|
|
240
|
-
const A = this.resolveColorValue(o), C = this.resolveColorValue(r), E = this.resolveColorValue(n);
|
|
241
|
-
if (e) {
|
|
242
|
-
const f = A || this.theme.colors.primary;
|
|
243
|
-
switch (e) {
|
|
244
|
-
case "filled":
|
|
245
|
-
s === "destructive" ? c = this.theme.colors.destructive : s === "cancel" ? c = this.theme.colors.secondary : c = f, m = this.theme.colors.onPrimary;
|
|
246
|
-
break;
|
|
247
|
-
case "outlined":
|
|
248
|
-
p = s === "destructive" ? this.theme.colors.destructive : f, m = s === "destructive" ? this.theme.colors.destructive : f;
|
|
249
|
-
break;
|
|
250
|
-
case "bordered":
|
|
251
|
-
c = this.theme.colors.background, p = this.theme.colors.border;
|
|
252
|
-
break;
|
|
253
|
-
case "borderedProminent":
|
|
254
|
-
c = this.theme.colors.surface, p = this.theme.colors.primary, k = "2px";
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
C && (c = C), E && (m = E);
|
|
259
|
-
let F = "1", w = "auto", x, B = "none";
|
|
260
|
-
b ? v ? (F = "0.6", w = "none") : d === "pressed" ? (c = this.darkenColor(c, 0.1), p = this.darkenColor(p, 0.1), x = "scale(0.95)") : d === "focused" && (B = "0 0 0 3px #007AFF40") : (c = this.theme.colors.disabled, p = this.theme.colors.disabled, m = this.theme.colors.disabled, F = "0.6", w = "none");
|
|
261
|
-
const l = {
|
|
262
|
-
...u
|
|
263
|
-
// Size-based styles (only if size provided)
|
|
264
|
-
};
|
|
265
|
-
return e && (l.backgroundColor = c, l.borderColor = p, l.borderWidth = k, m !== void 0 && (l.color = m)), C && (l.backgroundColor = C), E && (l.color = E), l.cursor = b ? "pointer" : "not-allowed", l.opacity = F, l.pointerEvents = w, l.transform = x !== void 0 ? x : "none", l.boxShadow = B, l.transition = "all 0.2s ease", l;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Handle button press with proper state management
|
|
269
|
-
*/
|
|
270
|
-
async handlePress() {
|
|
271
|
-
if (!(!this.isEnabled() || this.isLoading()) && (this.triggerHapticFeedback(), this.setState("pressed"), setTimeout(() => {
|
|
272
|
-
this.isEnabled() && this.setState("normal");
|
|
273
|
-
}, 150), this.props.action))
|
|
274
|
-
try {
|
|
275
|
-
const e = this.props.action();
|
|
276
|
-
e && typeof e.then == "function" && await e;
|
|
277
|
-
} catch (e) {
|
|
278
|
-
console.error("Button action failed:", e);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Trigger haptic feedback (mobile Safari support)
|
|
283
|
-
*/
|
|
284
|
-
triggerHapticFeedback() {
|
|
285
|
-
if (this.props.hapticFeedback !== !1 && typeof window < "u" && "navigator" in window) {
|
|
286
|
-
const e = window.navigator;
|
|
287
|
-
e.vibrate && e.vibrate(10);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Helper to darken a color for pressed states
|
|
292
|
-
*/
|
|
293
|
-
darkenColor(e, t) {
|
|
294
|
-
if (e === "transparent") return e;
|
|
295
|
-
if (e.startsWith("#")) {
|
|
296
|
-
const s = e.slice(1), o = parseInt(s, 16), r = Math.max(0, Math.floor((o >> 16) * (1 - t))), n = Math.max(0, Math.floor((o >> 8 & 255) * (1 - t))), d = Math.max(0, Math.floor((o & 255) * (1 - t)));
|
|
297
|
-
return `#${(r << 16 | n << 8 | d).toString(16).padStart(6, "0")}`;
|
|
298
|
-
}
|
|
299
|
-
return e;
|
|
300
|
-
}
|
|
301
|
-
// ============================================================================
|
|
302
|
-
// Concatenation Support (Phase 3.1)
|
|
303
|
-
// ============================================================================
|
|
304
|
-
/**
|
|
305
|
-
* Concatenate this button with another concatenatable component
|
|
306
|
-
*/
|
|
307
|
-
concat(e) {
|
|
308
|
-
const t = this.toSegment(), s = e.toSegment(), o = {
|
|
309
|
-
totalSegments: e instanceof M ? e.segments.length + 1 : 2,
|
|
310
|
-
accessibilityRole: e instanceof M ? this.mergeAccessibilityRoles("composite", e.metadata.accessibilityRole) : this.determineAccessibilityRole(e),
|
|
311
|
-
semanticStructure: "inline"
|
|
312
|
-
// Buttons are typically inline in concatenation
|
|
313
|
-
};
|
|
314
|
-
return new M([t, s], o);
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Convert this button to a segment for concatenation
|
|
318
|
-
*/
|
|
319
|
-
toSegment() {
|
|
320
|
-
return {
|
|
321
|
-
id: this.id,
|
|
322
|
-
component: this,
|
|
323
|
-
modifiers: [],
|
|
324
|
-
// Buttons don't typically have concatenation-specific modifiers
|
|
325
|
-
render: () => {
|
|
326
|
-
const e = this.render();
|
|
327
|
-
return Array.isArray(e) ? e[0] : e;
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Check if this component supports concatenation
|
|
333
|
-
*/
|
|
334
|
-
isConcatenatable() {
|
|
335
|
-
return !0;
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Determine accessibility role for concatenation
|
|
339
|
-
*/
|
|
340
|
-
determineAccessibilityRole(e) {
|
|
341
|
-
switch (e.constructor.name) {
|
|
342
|
-
case "EnhancedText":
|
|
343
|
-
return "composite";
|
|
344
|
-
// Button + Text = composite (interactive content)
|
|
345
|
-
case "EnhancedImage":
|
|
346
|
-
return "composite";
|
|
347
|
-
// Button + Image = composite (interactive content)
|
|
348
|
-
case "EnhancedButton":
|
|
349
|
-
case "EnhancedLink":
|
|
350
|
-
return "composite";
|
|
351
|
-
// Button + Interactive = composite
|
|
352
|
-
default:
|
|
353
|
-
return "composite";
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Merge accessibility roles when combining components
|
|
358
|
-
*/
|
|
359
|
-
mergeAccessibilityRoles(e, t) {
|
|
360
|
-
return "composite";
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
function y(i, e, t = {}) {
|
|
364
|
-
const s = { ...t, title: i, ...e && { action: e } }, o = new U(s);
|
|
365
|
-
return V(o);
|
|
366
|
-
}
|
|
367
|
-
const re = {
|
|
368
|
-
/**
|
|
369
|
-
* Filled button (primary)
|
|
370
|
-
*/
|
|
371
|
-
Filled: (i, e, t = {}) => y(i, e, { ...t, variant: "filled" }),
|
|
372
|
-
/**
|
|
373
|
-
* Outlined button
|
|
374
|
-
*/
|
|
375
|
-
Outlined: (i, e, t = {}) => y(i, e, { ...t, variant: "outlined" }),
|
|
376
|
-
/**
|
|
377
|
-
* Plain button (text only)
|
|
378
|
-
*/
|
|
379
|
-
Plain: (i, e, t = {}) => y(i, e, { ...t, variant: "plain" }),
|
|
380
|
-
/**
|
|
381
|
-
* Bordered button
|
|
382
|
-
*/
|
|
383
|
-
Bordered: (i, e, t = {}) => y(i, e, { ...t, variant: "bordered" }),
|
|
384
|
-
/**
|
|
385
|
-
* Destructive button
|
|
386
|
-
*/
|
|
387
|
-
Destructive: (i, e, t = {}) => y(i, e, { ...t, role: "destructive" }),
|
|
388
|
-
/**
|
|
389
|
-
* Cancel button
|
|
390
|
-
*/
|
|
391
|
-
Cancel: (i, e, t = {}) => y(i, e, { ...t, role: "cancel" })
|
|
392
|
-
}, N = `
|
|
393
|
-
@keyframes spin {
|
|
394
|
-
from { transform: rotate(0deg); }
|
|
395
|
-
to { transform: rotate(360deg); }
|
|
396
|
-
}
|
|
397
|
-
`;
|
|
398
|
-
if (typeof document < "u") {
|
|
399
|
-
const i = document.createElement("style");
|
|
400
|
-
i.textContent = N, document.head.appendChild(i);
|
|
401
|
-
}
|
|
402
|
-
export {
|
|
403
|
-
y as Button,
|
|
404
|
-
re as ButtonStyles,
|
|
405
|
-
U as EnhancedButton,
|
|
406
|
-
K as defaultButtonTheme
|
|
407
|
-
};
|
|
408
|
-
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/components/Button.ts"],"sourcesContent":["/**\n * Enhanced Button Component (Phase 5.2)\n *\n * SwiftUI-inspired Button component with press states, variants,\n * and advanced interaction handling.\n */\n\nimport type { ModifiableComponent, ModifierBuilder } from '../modifiers/types'\nimport { createSignal, isSignal, createEffect } from '../reactive'\nimport type { Signal } from '../reactive/types'\nimport type { ComponentInstance, ComponentProps } from '../runtime/types'\nimport { text, h } from '../runtime/renderer'\nimport { withModifiers } from './wrapper'\nimport { useLifecycle } from '../lifecycle/hooks'\nimport { ColorAsset } from '../assets/ColorAsset'\nimport type { Concatenatable, ComponentSegment, ConcatenationMetadata } from '../concatenation/types'\nimport { ConcatenatedComponent } from '../concatenation/concatenated-component'\nimport {\n ComponentWithCSSClasses,\n type CSSClassesProps\n} from '../css-classes'\n\n/**\n * Button role types following SwiftUI patterns\n */\nexport type ButtonRole = 'destructive' | 'cancel' | 'none'\n\n/**\n * Button variants\n */\nexport type ButtonVariant =\n | 'filled' // Solid background (primary)\n | 'outlined' // Border with transparent background\n | 'plain' // No background or border\n | 'bordered' // Subtle border with light background\n | 'borderedProminent' // Prominent border style\n\n/**\n * Button size presets\n */\nexport type ButtonSize = 'small' | 'medium' | 'large'\n\n/**\n * Button state\n */\nexport type ButtonState = 'normal' | 'pressed' | 'disabled' | 'focused'\n\n/**\n * Button component properties with CSS classes support\n */\nexport interface ButtonProps extends ComponentProps, CSSClassesProps {\n // Content\n title?: string | (() => string) | Signal<string>\n systemImage?: string\n\n // Behavior\n action?: () => void | Promise<void>\n role?: ButtonRole\n isEnabled?: boolean | Signal<boolean>\n\n // Appearance\n variant?: ButtonVariant\n size?: ButtonSize\n tint?: string | Signal<string> | ColorAsset\n backgroundColor?: string | Signal<string> | ColorAsset\n foregroundColor?: string | Signal<string> | ColorAsset\n\n // State management\n isPressed?: Signal<boolean>\n isLoading?: boolean | Signal<boolean>\n\n // Accessibility\n accessibilityLabel?: string\n accessibilityHint?: string\n\n // Advanced\n controlSize?: ButtonSize\n hapticFeedback?: boolean\n}\n\n/**\n * Button theme configuration\n */\nexport interface ButtonTheme {\n colors: {\n primary: string\n secondary: string\n destructive: string\n background: string\n surface: string\n onPrimary: string\n onSecondary: string\n onSurface: string\n border: string\n disabled: string\n }\n spacing: {\n small: number\n medium: number\n large: number\n }\n borderRadius: {\n small: number\n medium: number\n large: number\n }\n typography: {\n small: { size: number; weight: string }\n medium: { size: number; weight: string }\n large: { size: number; weight: string }\n }\n}\n\n/**\n * Default button theme\n */\nexport const defaultButtonTheme: ButtonTheme = {\n colors: {\n primary: '#007AFF',\n secondary: '#5856D6',\n destructive: '#FF3B30',\n background: '#F2F2F7',\n surface: '#FFFFFF',\n onPrimary: '#FFFFFF',\n onSecondary: '#FFFFFF',\n onSurface: '#000000',\n border: '#C7C7CC',\n disabled: '#8E8E93',\n },\n spacing: {\n small: 8,\n medium: 12,\n large: 16,\n },\n borderRadius: {\n small: 6,\n medium: 8,\n large: 12,\n },\n typography: {\n small: { size: 14, weight: '500' },\n medium: { size: 16, weight: '500' },\n large: { size: 18, weight: '600' },\n },\n}\n\n/**\n * Enhanced Button component class with CSS classes support\n */\nexport class EnhancedButton extends ComponentWithCSSClasses implements ComponentInstance<ButtonProps>, Concatenatable<ButtonProps> {\n public readonly type = 'component' as const\n public readonly id: string\n public mounted = false\n public cleanup: (() => void)[] = []\n public stateSignal: () => ButtonState\n private setState: (value: ButtonState) => void\n public theme: ButtonTheme\n\n constructor(\n public props: ButtonProps,\n theme: ButtonTheme = defaultButtonTheme\n ) {\n super()\n this.id = `button-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n this.theme = theme\n\n // Create reactive state signals\n const [stateSignal, setState] = createSignal<ButtonState>('normal')\n this.stateSignal = stateSignal\n this.setState = setState\n\n // Set up DOM event listeners when component is ready\n this.setupDOMEventListeners()\n }\n\n /**\n * Set up DOM event listeners for button interactions\n */\n private setupDOMEventListeners(): void {\n useLifecycle(this, {\n onDOMReady: (_elements, primaryElement) => {\n if (primaryElement instanceof HTMLButtonElement) {\n this.attachInteractionEvents(primaryElement)\n this.setupReactiveStyles(primaryElement)\n }\n }\n })\n }\n\n /**\n * Set up reactive style updates based on state changes\n */\n private setupReactiveStyles(button: HTMLButtonElement): void {\n // Create a reactive effect that updates styles when state changes\n const effect = createEffect(() => {\n // Reading the state signal makes this effect reactive to state changes\n this.stateSignal()\n\n // Also watch for changes in enabled/loading states if they're reactive\n this.isEnabled()\n this.isLoading()\n\n // Watch color properties for reactivity\n const { tint, backgroundColor, foregroundColor } = this.props\n\n // Make reactive to tint changes\n if (tint && isSignal(tint)) {\n (tint as () => string)() // Read the signal to make effect reactive to it\n } else if (tint instanceof ColorAsset) {\n tint.resolve() // Make effect reactive to theme changes\n }\n\n // Make reactive to backgroundColor changes\n if (backgroundColor && isSignal(backgroundColor)) {\n (backgroundColor as () => string)()\n } else if (backgroundColor instanceof ColorAsset) {\n backgroundColor.resolve()\n }\n\n // Make reactive to foregroundColor changes\n if (foregroundColor && isSignal(foregroundColor)) {\n (foregroundColor as () => string)()\n } else if (foregroundColor instanceof ColorAsset) {\n foregroundColor.resolve()\n }\n\n // Trigger style update whenever any dependency changes\n const styles = this.getButtonStyles()\n this.applyStylesToElement(button, styles)\n })\n\n // Store the effect cleanup function\n this.cleanup.push(() => {\n // Clean up the reactive effect when component unmounts\n if (effect && typeof effect.dispose === 'function') {\n effect.dispose()\n }\n })\n }\n\n /**\n * Apply computed styles to the button element, respecting modifier-applied styles\n */\n private applyStylesToElement(element: HTMLButtonElement, styles: Record<string, any>): void {\n // Apply each style property to the element, but only if not already set by modifiers\n Object.entries(styles).forEach(([property, value]) => {\n const cssProperty = this.camelToKebabCase(property)\n if (typeof value === 'string' || typeof value === 'number') {\n // Check if this property is already set by a modifier\n const currentValue = element.style.getPropertyValue(cssProperty)\n const hasModifierValue = currentValue && currentValue !== '' && currentValue !== 'inherit'\n \n // Special handling for transform: Button state transforms should override modifier transforms\n if (cssProperty === 'transform') {\n element.style.setProperty(cssProperty, String(value))\n } else if (!hasModifierValue) {\n // For other properties, only apply Button styles if no modifier has set this property\n element.style.setProperty(cssProperty, String(value))\n }\n }\n })\n }\n\n /**\n * Convert camelCase to kebab-case for CSS properties\n */\n private camelToKebabCase(str: string): string {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n }\n\n /**\n * Resolve color value from string, signal, or asset\n */\n private resolveColorValue(color: string | Signal<string> | ColorAsset | undefined): string | undefined {\n if (!color) return undefined\n\n if (typeof color === 'string') {\n return color\n } else if (isSignal(color)) {\n return (color as () => string)()\n } else if (color instanceof ColorAsset) {\n return color.resolve()\n }\n\n return undefined\n }\n\n /**\n * Attach interaction event listeners to the button element\n */\n private attachInteractionEvents(button: HTMLButtonElement): void {\n // Helper to check if button is currently enabled\n const isCurrentlyEnabled = (): boolean => {\n const enabled = this.isEnabled()\n return typeof enabled === 'boolean' ? enabled : enabled()\n }\n\n // Store global mouseup handler reference for cleanup\n let globalMouseUpHandler: ((event: MouseEvent) => void) | null = null\n\n // Mouse/pointer events for press states\n const handleMouseDown = (event: MouseEvent) => {\n if (isCurrentlyEnabled() && event.button === 0) { // Only left click\n this.setState('pressed')\n \n // Add global mouseup listener to handle mouseup outside the button\n globalMouseUpHandler = () => {\n if (this.stateSignal() === 'pressed') {\n this.setState('normal')\n }\n // Remove the global listener after handling\n if (globalMouseUpHandler) {\n document.removeEventListener('mouseup', globalMouseUpHandler)\n globalMouseUpHandler = null\n }\n }\n document.addEventListener('mouseup', globalMouseUpHandler)\n }\n }\n\n const handleMouseUp = () => {\n if (isCurrentlyEnabled() && this.stateSignal() === 'pressed') {\n this.setState('normal')\n // Clean up global listener if it exists\n if (globalMouseUpHandler) {\n document.removeEventListener('mouseup', globalMouseUpHandler)\n globalMouseUpHandler = null\n }\n }\n }\n\n const handleMouseLeave = () => {\n if (isCurrentlyEnabled()) {\n this.setState('normal')\n // Clean up global listener if it exists\n if (globalMouseUpHandler) {\n document.removeEventListener('mouseup', globalMouseUpHandler)\n globalMouseUpHandler = null\n }\n }\n }\n\n // Focus events\n const handleFocus = () => {\n if (isCurrentlyEnabled() && this.stateSignal() !== 'pressed') {\n this.setState('focused')\n }\n }\n\n const handleBlur = () => {\n if (isCurrentlyEnabled() && this.stateSignal() === 'focused') {\n this.setState('normal')\n }\n }\n\n // Keyboard events\n const handleKeyDown = (event: KeyboardEvent) => {\n if (isCurrentlyEnabled() && (event.key === ' ' || event.key === 'Enter')) {\n event.preventDefault()\n this.setState('pressed')\n }\n }\n\n const handleKeyUp = (event: KeyboardEvent) => {\n if (isCurrentlyEnabled() && (event.key === ' ' || event.key === 'Enter')) {\n event.preventDefault()\n this.setState('normal')\n // Trigger the action for keyboard activation\n this.props.action?.()\n }\n }\n\n // Add event listeners\n button.addEventListener('mousedown', handleMouseDown)\n button.addEventListener('mouseup', handleMouseUp)\n button.addEventListener('mouseleave', handleMouseLeave)\n button.addEventListener('focus', handleFocus)\n button.addEventListener('blur', handleBlur)\n button.addEventListener('keydown', handleKeyDown)\n button.addEventListener('keyup', handleKeyUp)\n\n // Store cleanup functions\n this.cleanup.push(() => {\n button.removeEventListener('mousedown', handleMouseDown)\n button.removeEventListener('mouseup', handleMouseUp)\n button.removeEventListener('mouseleave', handleMouseLeave)\n button.removeEventListener('focus', handleFocus)\n button.removeEventListener('blur', handleBlur)\n button.removeEventListener('keydown', handleKeyDown)\n button.removeEventListener('keyup', handleKeyUp)\n \n // Clean up global mouseup listener if it exists\n if (globalMouseUpHandler) {\n document.removeEventListener('mouseup', globalMouseUpHandler)\n globalMouseUpHandler = null\n }\n })\n }\n\n /**\n * Check if button is enabled\n */\n isEnabled(): boolean | (() => boolean) {\n const { isEnabled } = this.props\n\n if (isEnabled === undefined) return true\n if (typeof isEnabled === 'boolean') return isEnabled\n if (isSignal(isEnabled)) return isEnabled as () => boolean\n return true\n }\n\n\n /**\n * Render the button component\n */\n render() {\n // Use reactive pattern - pass signals/functions directly to runtime\n const enabled = this.isEnabled() // Get signal/value for enabled state\n\n // Create button content - always include title\n const children = []\n\n // System image (icon) - only if specified\n if (this.props.systemImage) {\n children.push(h('span', {\n class: 'button-icon',\n style: {\n marginRight: '8px',\n fontSize: '1.2em',\n },\n }, text(this.props.systemImage)))\n }\n\n // Button title - use h() helper for proper text node handling\n children.push(h('span', {\n class: 'button-title'\n }, text(this.props.title || '')))\n\n // Process CSS classes for this component\n const baseClasses = ['tachui-button']\n const classString = this.createClassString(this.props, baseClasses)\n\n // Create button element as DOMNode object with modifier metadata\n const buttonElement = {\n type: 'element' as const,\n tag: 'button',\n props: {\n className: classString,\n type: 'button',\n disabled: typeof enabled === 'boolean' ? !enabled : () => !enabled(), // Invert enabled to disabled\n onClick: this.props.action\n ? () => {\n try {\n this.props.action?.()\n } catch (error) {\n console.error('Button action error:', error)\n }\n }\n : undefined,\n // Pass through debug label for debug system\n ...(this.props.debugLabel && { debugLabel: this.props.debugLabel }),\n },\n children,\n // Attach component metadata for modifier processing\n componentMetadata: {\n id: this.id,\n type: 'Button',\n // Note: modifiers are attached automatically by the modifier system\n },\n }\n\n return [buttonElement]\n }\n\n /**\n * Check if button is in loading state\n */\n isLoading(): boolean {\n const { isLoading } = this.props\n\n if (isLoading === undefined) return false\n if (typeof isLoading === 'boolean') return isLoading\n if (isSignal(isLoading)) return (isLoading as () => boolean)()\n return false\n }\n\n /**\n * Check if the button has color-related modifiers applied\n */\n private hasColorModifiers(): boolean {\n // Try to get modifiers from the wrapper component first\n let modifiers = (this as any).modifiers\n\n // If not found on this component, check if we're wrapped and get from wrapper\n if (!modifiers && (this as any).modifierBuilder) {\n modifiers = (this as any).modifierBuilder.modifiers\n }\n\n // Also check if we're part of a modifiable component structure\n if (!modifiers && (this as any).modifiableComponent) {\n modifiers = (this as any).modifiableComponent.modifiers\n }\n\n if (!modifiers || !Array.isArray(modifiers)) {\n return false\n }\n\n // Check for any modifier that affects color\n return modifiers.some((modifier: any) => {\n // Check AppearanceModifier\n if (modifier.type === 'appearance' || modifier.constructor?.name === 'AppearanceModifier') {\n return modifier.properties &&\n (modifier.properties.foregroundColor !== undefined ||\n modifier.properties.color !== undefined)\n }\n\n // Check for any other modifiers that might affect color\n if (modifier.properties) {\n const colorProps = ['foregroundColor', 'color', 'textColor']\n return colorProps.some(prop => modifier.properties[prop] !== undefined)\n }\n\n return false\n })\n }\n\n /**\n * Check if the button has typography-related modifiers applied\n */\n private hasTypographyModifiers(): boolean {\n // Try to get modifiers from the wrapper component first\n let modifiers = (this as any).modifiers\n\n // If not found on this component, check if we're wrapped and get from wrapper\n if (!modifiers && (this as any).modifierBuilder) {\n modifiers = (this as any).modifierBuilder.modifiers\n }\n\n // Also check if we're part of a modifiable component structure\n if (!modifiers && (this as any).modifiableComponent) {\n modifiers = (this as any).modifiableComponent.modifiers\n }\n\n if (!modifiers || !Array.isArray(modifiers)) {\n return false\n }\n\n // Check for any modifier that affects text transformation\n const hasTypography = modifiers.some((modifier: any) => {\n // Check TypographyModifier\n if (modifier.type === 'typography' || modifier.constructor?.name === 'TypographyModifier') {\n return modifier.properties &&\n (modifier.properties.transform !== undefined ||\n modifier.properties.textTransform !== undefined)\n }\n\n return false\n })\n\n return hasTypography\n }\n\n /**\n * Get computed button styles based on variant, size, role, and state\n */\n // biome-ignore lint/suspicious/noExplicitAny: CSS styles require flexible property types\n getButtonStyles(): Record<string, any> {\n const { variant, size, role = 'none', tint, backgroundColor: bgColorProp, foregroundColor: fgColorProp } = this.props\n const state = this.stateSignal()\n const isLoading = this.isLoading()\n const isEnabled = this.isEnabled()\n\n // Check if the component has color-related or typography modifiers applied\n const hasColorModifiers = this.hasColorModifiers()\n const hasTypographyModifiers = this.hasTypographyModifiers()\n\n // Base styles - minimal defaults, inherit from parent but allow modifiers to override\n const baseStyles: Record<string, any> = {\n // Only set color property if no modifiers will handle it\n // This prevents conflicts between Button styles and AppearanceModifier\n ...((!hasColorModifiers && !fgColorProp && !variant) && { color: 'inherit' }),\n // Only set text-related properties if no typography modifiers will handle them\n // This prevents conflicts between Button styles and TypographyModifier\n ...(!hasTypographyModifiers && {\n fontStyle: 'inherit',\n lineHeight: 'inherit',\n textTransform: 'inherit',\n textDecoration: 'inherit',\n textIndent: 'inherit',\n textShadow: 'inherit',\n wordSpacing: 'inherit',\n textOrientation: 'inherit',\n writingMode: 'inherit',\n direction: 'inherit',\n }),\n // Let modifiers control: fontFamily, fontSize, fontWeight, letterSpacing, textAlign\n }\n\n // Only apply size-based styles if size is explicitly provided\n if (size) {\n const sizeConfig = this.theme.spacing[size] || this.theme.spacing.medium\n const borderRadius = this.theme.borderRadius[size] || this.theme.borderRadius.medium\n const typography = this.theme.typography[size] || this.theme.typography.medium\n\n const minHeights = {\n small: '32px',\n medium: '40px',\n large: '48px',\n }\n\n baseStyles.padding = `${sizeConfig}px ${sizeConfig * 2}px`\n baseStyles.borderRadius = `${borderRadius}px`\n baseStyles.fontSize = `${typography.size}px`\n baseStyles.fontWeight = typography.weight\n baseStyles.minHeight = minHeights[size]\n }\n\n let backgroundColor = 'transparent'\n let borderColor = 'transparent'\n let borderWidth = '1px'\n let color = undefined // Will be set by variant or remain undefined to use baseStyles.color\n\n // Resolve color values using helper method\n const tintColor = this.resolveColorValue(tint)\n const customBackgroundColor = this.resolveColorValue(bgColorProp)\n const customForegroundColor = this.resolveColorValue(fgColorProp)\n\n // Apply variant styles ONLY if variant is explicitly provided\n if (variant) {\n const fallbackTintColor = tintColor || this.theme.colors.primary\n\n switch (variant) {\n case 'filled':\n if (role === 'destructive') {\n backgroundColor = this.theme.colors.destructive\n } else if (role === 'cancel') {\n backgroundColor = this.theme.colors.secondary\n } else {\n backgroundColor = fallbackTintColor\n }\n color = this.theme.colors.onPrimary\n break\n case 'outlined':\n borderColor = role === 'destructive' ? this.theme.colors.destructive : fallbackTintColor\n color = role === 'destructive' ? this.theme.colors.destructive : fallbackTintColor\n break\n case 'bordered':\n backgroundColor = this.theme.colors.background\n borderColor = this.theme.colors.border\n break\n case 'borderedProminent':\n backgroundColor = this.theme.colors.surface\n borderColor = this.theme.colors.primary\n borderWidth = '2px'\n break\n case 'plain':\n // Keep defaults (transparent)\n break\n }\n }\n\n // Apply custom colors if provided (override variant defaults)\n if (customBackgroundColor) {\n backgroundColor = customBackgroundColor\n }\n if (customForegroundColor) {\n color = customForegroundColor\n }\n\n // Apply state modifications\n let opacity = '1'\n let pointerEvents = 'auto'\n let transform = undefined // Only set when needed\n let boxShadow = 'none'\n\n if (!isEnabled) {\n backgroundColor = this.theme.colors.disabled\n borderColor = this.theme.colors.disabled\n color = this.theme.colors.disabled\n opacity = '0.6'\n pointerEvents = 'none'\n } else if (isLoading) {\n opacity = '0.6'\n pointerEvents = 'none'\n } else if (state === 'pressed') {\n // Darken colors for pressed state\n backgroundColor = this.darkenColor(backgroundColor, 0.1)\n borderColor = this.darkenColor(borderColor, 0.1)\n transform = 'scale(0.95)'\n } else if (state === 'focused') {\n boxShadow = '0 0 0 3px #007AFF40'\n }\n\n // Build final styles object - only include styles when explicitly needed\n const finalStyles: Record<string, any> = {\n ...baseStyles, // Size-based styles (only if size provided)\n }\n\n // Only apply variant/color styles if variant is provided\n if (variant) {\n finalStyles.backgroundColor = backgroundColor\n finalStyles.borderColor = borderColor\n finalStyles.borderWidth = borderWidth\n if (color !== undefined) {\n finalStyles.color = color\n }\n }\n\n // Apply custom color overrides even without variant\n if (customBackgroundColor) {\n finalStyles.backgroundColor = customBackgroundColor\n }\n if (customForegroundColor) {\n finalStyles.color = customForegroundColor\n }\n\n // Always apply interaction and state styles\n finalStyles.cursor = isEnabled ? 'pointer' : 'not-allowed'\n finalStyles.opacity = opacity\n finalStyles.pointerEvents = pointerEvents\n\n // Always apply transform - use 'none' when not needed to properly clear previous values\n finalStyles.transform = transform !== undefined ? transform : 'none'\n finalStyles.boxShadow = boxShadow\n\n finalStyles.transition = 'all 0.2s ease'\n\n return finalStyles\n }\n\n /**\n * Handle button press with proper state management\n */\n async handlePress(): Promise<void> {\n if (!this.isEnabled() || this.isLoading()) return\n\n // Trigger haptic feedback (if available)\n this.triggerHapticFeedback()\n\n this.setState('pressed')\n\n // Reset state after animation\n setTimeout(() => {\n if (this.isEnabled()) {\n this.setState('normal')\n }\n }, 150)\n\n // Execute action if provided\n if (this.props.action) {\n try {\n const result = this.props.action()\n // Handle if action returns a Promise\n if (result && typeof result.then === 'function') {\n await result\n }\n } catch (error) {\n console.error('Button action failed:', error)\n }\n }\n }\n\n /**\n * Trigger haptic feedback (mobile Safari support)\n */\n private triggerHapticFeedback(): void {\n // Check if haptic feedback is disabled\n if (this.props.hapticFeedback === false) return\n\n if (typeof window !== 'undefined' && 'navigator' in window) {\n // biome-ignore lint/suspicious/noExplicitAny: Navigator API requires dynamic access\n const navigator = window.navigator as any\n if (navigator.vibrate) {\n navigator.vibrate(10) // Short vibration\n }\n }\n }\n\n /**\n * Helper to darken a color for pressed states\n */\n private darkenColor(color: string, amount: number): string {\n if (color === 'transparent') return color\n\n // Simple darkening for hex colors\n if (color.startsWith('#')) {\n const hex = color.slice(1)\n const num = parseInt(hex, 16)\n const r = Math.max(0, Math.floor((num >> 16) * (1 - amount)))\n const g = Math.max(0, Math.floor(((num >> 8) & 0x00ff) * (1 - amount)))\n const b = Math.max(0, Math.floor((num & 0x0000ff) * (1 - amount)))\n return `#${((r << 16) | (g << 8) | b).toString(16).padStart(6, '0')}`\n }\n\n return color\n }\n\n // ============================================================================\n // Concatenation Support (Phase 3.1)\n // ============================================================================\n\n /**\n * Concatenate this button with another concatenatable component\n */\n concat<U extends Concatenatable<any>>(other: U): ConcatenatedComponent<ButtonProps | U> {\n const thisSegment = this.toSegment()\n const otherSegment = other.toSegment()\n\n const metadata: ConcatenationMetadata = {\n totalSegments: other instanceof ConcatenatedComponent ? other.segments.length + 1 : 2,\n accessibilityRole: other instanceof ConcatenatedComponent\n ? this.mergeAccessibilityRoles('composite', other.metadata.accessibilityRole)\n : this.determineAccessibilityRole(other),\n semanticStructure: 'inline' // Buttons are typically inline in concatenation\n }\n\n return new ConcatenatedComponent([thisSegment, otherSegment], metadata)\n }\n\n /**\n * Convert this button to a segment for concatenation\n */\n toSegment(): ComponentSegment {\n return {\n id: this.id,\n component: this,\n modifiers: [], // Buttons don't typically have concatenation-specific modifiers\n render: () => {\n const rendered = this.render()\n return Array.isArray(rendered) ? rendered[0] : rendered\n }\n }\n }\n\n /**\n * Check if this component supports concatenation\n */\n isConcatenatable(): boolean {\n return true\n }\n\n /**\n * Determine accessibility role for concatenation\n */\n private determineAccessibilityRole(other: Concatenatable): 'text' | 'group' | 'composite' {\n const componentType = (other as any).constructor.name\n\n switch (componentType) {\n case 'EnhancedText':\n return 'composite' // Button + Text = composite (interactive content)\n case 'EnhancedImage':\n return 'composite' // Button + Image = composite (interactive content)\n case 'EnhancedButton':\n case 'EnhancedLink':\n return 'composite' // Button + Interactive = composite\n default:\n return 'composite'\n }\n }\n\n /**\n * Merge accessibility roles when combining components\n */\n private mergeAccessibilityRoles(\n _thisRole: 'text' | 'group' | 'composite',\n _existingRole: 'text' | 'group' | 'composite'\n ): 'text' | 'group' | 'composite' {\n // Buttons always contribute as 'composite' (interactive), so result is always composite\n return 'composite'\n }\n}\n\n/**\n * Create enhanced Button component with modifier support\n */\nexport function Button(\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action'> = {}\n): ModifiableComponent<ButtonProps> & {\n modifier: ModifierBuilder<ModifiableComponent<ButtonProps>>\n} {\n const buttonProps: ButtonProps = { ...props, title, ...(action && { action }) }\n const component = new EnhancedButton(buttonProps)\n return withModifiers(component)\n}\n\n\n/**\n * Button variant shortcuts\n */\nexport const ButtonStyles = {\n /**\n * Filled button (primary)\n */\n Filled: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'variant'> = {}\n ) => Button(title, action, { ...props, variant: 'filled' }),\n\n /**\n * Outlined button\n */\n Outlined: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'variant'> = {}\n ) => Button(title, action, { ...props, variant: 'outlined' }),\n\n /**\n * Plain button (text only)\n */\n Plain: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'variant'> = {}\n ) => Button(title, action, { ...props, variant: 'plain' }),\n\n /**\n * Bordered button\n */\n Bordered: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'variant'> = {}\n ) => Button(title, action, { ...props, variant: 'bordered' }),\n\n /**\n * Destructive button\n */\n Destructive: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'role'> = {}\n ) => Button(title, action, { ...props, role: 'destructive' }),\n\n /**\n * Cancel button\n */\n Cancel: (\n title: string | (() => string) | Signal<string>,\n action?: () => void | Promise<void>,\n props: Omit<ButtonProps, 'title' | 'action' | 'role'> = {}\n ) => Button(title, action, { ...props, role: 'cancel' }),\n}\n\n/**\n * CSS animations for button loading spinner\n */\nconst buttonAnimations = `\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n`\n\n// Inject animations into document head\nif (typeof document !== 'undefined') {\n const style = document.createElement('style')\n style.textContent = buttonAnimations\n document.head.appendChild(style)\n}\n"],"names":["defaultButtonTheme","EnhancedButton","ComponentWithCSSClasses","props","theme","__publicField","stateSignal","setState","createSignal","useLifecycle","_elements","primaryElement","button","effect","createEffect","tint","backgroundColor","foregroundColor","isSignal","ColorAsset","styles","element","property","value","cssProperty","currentValue","str","color","isCurrentlyEnabled","enabled","globalMouseUpHandler","handleMouseDown","event","handleMouseUp","handleMouseLeave","handleFocus","handleBlur","handleKeyDown","handleKeyUp","isEnabled","children","h","text","baseClasses","error","isLoading","modifiers","modifier","prop","variant","size","role","bgColorProp","fgColorProp","state","hasColorModifiers","hasTypographyModifiers","baseStyles","sizeConfig","borderRadius","typography","minHeights","borderColor","borderWidth","tintColor","customBackgroundColor","customForegroundColor","fallbackTintColor","opacity","pointerEvents","transform","boxShadow","finalStyles","result","navigator","amount","hex","num","g","b","other","thisSegment","otherSegment","metadata","ConcatenatedComponent","rendered","_thisRole","_existingRole","Button","title","action","buttonProps","component","withModifiers","ButtonStyles","buttonAnimations","style"],"mappings":";;;;;;;;;;;;;;AAoHO,MAAMA,IAAkC;AAAA,EAC7C,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,YAAY;AAAA,IACV,OAAO,EAAE,MAAM,IAAI,QAAQ,MAAA;AAAA,IAC3B,QAAQ,EAAE,MAAM,IAAI,QAAQ,MAAA;AAAA,IAC5B,OAAO,EAAE,MAAM,IAAI,QAAQ,MAAA;AAAA,EAAM;AAErC;AAKO,MAAMC,UAAuBC,EAA+F;AAAA,EASjI,YACSC,GACPC,IAAqBJ,GACrB;AACA,UAAA,GAHO,KAAA,QAAAG,GATTE,EAAA,MAAgB,QAAO,WAAA,GACvBA,EAAA,MAAgB,IAAA,GAChBA,EAAA,MAAO,WAAU,EAAA,GACjBA,EAAA,MAAO,WAA0B,EAAC,GAClCA,EAAA,MAAO,aAAA,GACPA,EAAA,MAAQ,UAAA,GACRA,EAAA,MAAO,OAAA,GAOL,KAAK,KAAK,UAAU,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,IACzE,KAAK,QAAQD;AAGb,UAAM,CAACE,GAAaC,CAAQ,IAAIC,EAA0B,QAAQ;AAClE,SAAK,cAAcF,GACnB,KAAK,WAAWC,GAGhB,KAAK,uBAAA;AAAA,EACP;AAAA;AAAA;AAAA;AAAA,EAKQ,yBAA+B;AACrC,IAAAE,EAAa,MAAM;AAAA,MACjB,YAAY,CAACC,GAAWC,MAAmB;AACzC,QAAIA,aAA0B,sBAC5B,KAAK,wBAAwBA,CAAc,GAC3C,KAAK,oBAAoBA,CAAc;AAAA,MAE3C;AAAA,IAAA,CACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoBC,GAAiC;AAE3D,UAAMC,IAASC,EAAa,MAAM;AAEhC,WAAK,YAAA,GAGL,KAAK,UAAA,GACL,KAAK,UAAA;AAGL,YAAM,EAAE,MAAAC,GAAM,iBAAAC,GAAiB,iBAAAC,EAAA,IAAoB,KAAK;AAGxD,MAAIF,KAAQG,EAASH,CAAI,IACtBA,EAAA,IACQA,aAAgBI,KACzBJ,EAAK,QAAA,GAIHC,KAAmBE,EAASF,CAAe,IAC5CA,EAAA,IACQA,aAA2BG,KACpCH,EAAgB,QAAA,GAIdC,KAAmBC,EAASD,CAAe,IAC5CA,EAAA,IACQA,aAA2BE,KACpCF,EAAgB,QAAA;AAIlB,YAAMG,IAAS,KAAK,gBAAA;AACpB,WAAK,qBAAqBR,GAAQQ,CAAM;AAAA,IAC1C,CAAC;AAGD,SAAK,QAAQ,KAAK,MAAM;AAEtB,MAAIP,KAAU,OAAOA,EAAO,WAAY,cACtCA,EAAO,QAAA;AAAA,IAEX,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,qBAAqBQ,GAA4BD,GAAmC;AAE1F,WAAO,QAAQA,CAAM,EAAE,QAAQ,CAAC,CAACE,GAAUC,CAAK,MAAM;AACpD,YAAMC,IAAc,KAAK,iBAAiBF,CAAQ;AAClD,UAAI,OAAOC,KAAU,YAAY,OAAOA,KAAU,UAAU;AAE1D,cAAME,IAAeJ,EAAQ,MAAM,iBAAiBG,CAAW;AAI/D,QAAIA,MAAgB,cAClBH,EAAQ,MAAM,YAAYG,GAAa,OAAOD,CAAK,CAAC,IAJ7BE,KAAgBA,MAAiB,MAAMA,MAAiB,aAO/EJ,EAAQ,MAAM,YAAYG,GAAa,OAAOD,CAAK,CAAC;AAAA,MAExD;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAiBG,GAAqB;AAC5C,WAAOA,EAAI,QAAQ,sBAAsB,OAAO,EAAE,YAAA;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKQ,kBAAkBC,GAA6E;AACrG,QAAKA,GAEL;AAAA,UAAI,OAAOA,KAAU;AACnB,eAAOA;AACT,UAAWT,EAASS,CAAK;AACvB,eAAQA,EAAA;AACV,UAAWA,aAAiBR;AAC1B,eAAOQ,EAAM,QAAA;AAAA;AAAA,EAIjB;AAAA;AAAA;AAAA;AAAA,EAKQ,wBAAwBf,GAAiC;AAE/D,UAAMgB,IAAqB,MAAe;AACxC,YAAMC,IAAU,KAAK,UAAA;AACrB,aAAO,OAAOA,KAAY,YAAYA,IAAUA,EAAA;AAAA,IAClD;AAGA,QAAIC,IAA6D;AAGjE,UAAMC,IAAkB,CAACC,MAAsB;AAC7C,MAAIJ,EAAA,KAAwBI,EAAM,WAAW,MAC3C,KAAK,SAAS,SAAS,GAGvBF,IAAuB,MAAM;AAC3B,QAAI,KAAK,YAAA,MAAkB,aACzB,KAAK,SAAS,QAAQ,GAGpBA,MACF,SAAS,oBAAoB,WAAWA,CAAoB,GAC5DA,IAAuB;AAAA,MAE3B,GACA,SAAS,iBAAiB,WAAWA,CAAoB;AAAA,IAE7D,GAEMG,IAAgB,MAAM;AAC1B,MAAIL,EAAA,KAAwB,KAAK,YAAA,MAAkB,cACjD,KAAK,SAAS,QAAQ,GAElBE,MACF,SAAS,oBAAoB,WAAWA,CAAoB,GAC5DA,IAAuB;AAAA,IAG7B,GAEMI,IAAmB,MAAM;AAC7B,MAAIN,QACF,KAAK,SAAS,QAAQ,GAElBE,MACF,SAAS,oBAAoB,WAAWA,CAAoB,GAC5DA,IAAuB;AAAA,IAG7B,GAGMK,IAAc,MAAM;AACxB,MAAIP,EAAA,KAAwB,KAAK,YAAA,MAAkB,aACjD,KAAK,SAAS,SAAS;AAAA,IAE3B,GAEMQ,IAAa,MAAM;AACvB,MAAIR,EAAA,KAAwB,KAAK,YAAA,MAAkB,aACjD,KAAK,SAAS,QAAQ;AAAA,IAE1B,GAGMS,IAAgB,CAACL,MAAyB;AAC9C,MAAIJ,QAAyBI,EAAM,QAAQ,OAAOA,EAAM,QAAQ,aAC9DA,EAAM,eAAA,GACN,KAAK,SAAS,SAAS;AAAA,IAE3B,GAEMM,IAAc,CAACN,MAAyB;AAC5C,MAAIJ,QAAyBI,EAAM,QAAQ,OAAOA,EAAM,QAAQ,aAC9DA,EAAM,eAAA,GACN,KAAK,SAAS,QAAQ,GAEtB,KAAK,MAAM,SAAA;AAAA,IAEf;AAGA,IAAApB,EAAO,iBAAiB,aAAamB,CAAe,GACpDnB,EAAO,iBAAiB,WAAWqB,CAAa,GAChDrB,EAAO,iBAAiB,cAAcsB,CAAgB,GACtDtB,EAAO,iBAAiB,SAASuB,CAAW,GAC5CvB,EAAO,iBAAiB,QAAQwB,CAAU,GAC1CxB,EAAO,iBAAiB,WAAWyB,CAAa,GAChDzB,EAAO,iBAAiB,SAAS0B,CAAW,GAG5C,KAAK,QAAQ,KAAK,MAAM;AACtB,MAAA1B,EAAO,oBAAoB,aAAamB,CAAe,GACvDnB,EAAO,oBAAoB,WAAWqB,CAAa,GACnDrB,EAAO,oBAAoB,cAAcsB,CAAgB,GACzDtB,EAAO,oBAAoB,SAASuB,CAAW,GAC/CvB,EAAO,oBAAoB,QAAQwB,CAAU,GAC7CxB,EAAO,oBAAoB,WAAWyB,CAAa,GACnDzB,EAAO,oBAAoB,SAAS0B,CAAW,GAG3CR,MACF,SAAS,oBAAoB,WAAWA,CAAoB,GAC5DA,IAAuB;AAAA,IAE3B,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,YAAuC;AACrC,UAAM,EAAE,WAAAS,MAAc,KAAK;AAE3B,WAAIA,MAAc,SAAkB,KAChC,OAAOA,KAAc,aACrBrB,EAASqB,CAAS,IAAUA,IACzB;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AAEP,UAAMV,IAAU,KAAK,UAAA,GAGfW,IAAW,CAAA;AAGjB,IAAI,KAAK,MAAM,eACbA,EAAS,KAAKC,EAAE,QAAQ;AAAA,MACtB,OAAO;AAAA,MACP,OAAO;AAAA,QACL,aAAa;AAAA,QACb,UAAU;AAAA,MAAA;AAAA,IACZ,GACCC,EAAK,KAAK,MAAM,WAAW,CAAC,CAAC,GAIlCF,EAAS,KAAKC,EAAE,QAAQ;AAAA,MACtB,OAAO;AAAA,IAAA,GACNC,EAAK,KAAK,MAAM,SAAS,EAAE,CAAC,CAAC;AAGhC,UAAMC,IAAc,CAAC,eAAe;AAgCpC,WAAO,CA5Be;AAAA,MACpB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,QACL,WAPgB,KAAK,kBAAkB,KAAK,OAAOA,CAAW;AAAA,QAQ9D,MAAM;AAAA,QACN,UAAU,OAAOd,KAAY,YAAY,CAACA,IAAU,MAAM,CAACA,EAAA;AAAA;AAAA,QAC3D,SAAS,KAAK,MAAM,SAChB,MAAM;AACJ,cAAI;AACF,iBAAK,MAAM,SAAA;AAAA,UACb,SAASe,GAAO;AACd,oBAAQ,MAAM,wBAAwBA,CAAK;AAAA,UAC7C;AAAA,QACF,IACA;AAAA;AAAA,QAEJ,GAAI,KAAK,MAAM,cAAc,EAAE,YAAY,KAAK,MAAM,WAAA;AAAA,MAAW;AAAA,MAEnE,UAAAJ;AAAA;AAAA,MAEA,mBAAmB;AAAA,QACjB,IAAI,KAAK;AAAA,QACT,MAAM;AAAA;AAAA,MAAA;AAAA,IAER,CAGmB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,YAAqB;AACnB,UAAM,EAAE,WAAAK,MAAc,KAAK;AAE3B,WAAIA,MAAc,SAAkB,KAChC,OAAOA,KAAc,YAAkBA,IACvC3B,EAAS2B,CAAS,IAAWA,EAAA,IAC1B;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAA6B;AAEnC,QAAIC,IAAa,KAAa;AAY9B,WATI,CAACA,KAAc,KAAa,oBAC9BA,IAAa,KAAa,gBAAgB,YAIxC,CAACA,KAAc,KAAa,wBAC9BA,IAAa,KAAa,oBAAoB,YAG5C,CAACA,KAAa,CAAC,MAAM,QAAQA,CAAS,IACjC,KAIFA,EAAU,KAAK,CAACC,MAEjBA,EAAS,SAAS,gBAAgBA,EAAS,aAAa,SAAS,uBAC5DA,EAAS,eACRA,EAAS,WAAW,oBAAoB,UACxCA,EAAS,WAAW,UAAU,UAIpCA,EAAS,aACQ,CAAC,mBAAmB,SAAS,WAAW,EACzC,KAAK,CAAAC,MAAQD,EAAS,WAAWC,CAAI,MAAM,MAAS,IAGjE,EACR;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,yBAAkC;AAExC,QAAIF,IAAa,KAAa;AAY9B,WATI,CAACA,KAAc,KAAa,oBAC9BA,IAAa,KAAa,gBAAgB,YAIxC,CAACA,KAAc,KAAa,wBAC9BA,IAAa,KAAa,oBAAoB,YAG5C,CAACA,KAAa,CAAC,MAAM,QAAQA,CAAS,IACjC,KAIaA,EAAU,KAAK,CAACC,MAEhCA,EAAS,SAAS,gBAAgBA,EAAS,aAAa,SAAS,uBAC5DA,EAAS,eACRA,EAAS,WAAW,cAAc,UAClCA,EAAS,WAAW,kBAAkB,UAGzC,EACR;AAAA,EAGH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAuC;AACrC,UAAM,EAAE,SAAAE,GAAS,MAAAC,GAAM,MAAAC,IAAO,QAAQ,MAAApC,GAAM,iBAAiBqC,GAAa,iBAAiBC,EAAA,IAAgB,KAAK,OAC1GC,IAAQ,KAAK,YAAA,GACbT,IAAY,KAAK,UAAA,GACjBN,IAAY,KAAK,UAAA,GAGjBgB,IAAoB,KAAK,kBAAA,GACzBC,IAAyB,KAAK,uBAAA,GAG9BC,IAAkC;AAAA;AAAA;AAAA,MAGtC,GAAK,CAACF,KAAqB,CAACF,KAAe,CAACJ,KAAY,EAAE,OAAO,UAAA;AAAA;AAAA;AAAA,MAGjE,GAAI,CAACO,KAA0B;AAAA,QAC7B,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,WAAW;AAAA,MAAA;AAAA;AAAA,IACb;AAKF,QAAIN,GAAM;AACR,YAAMQ,IAAa,KAAK,MAAM,QAAQR,CAAI,KAAK,KAAK,MAAM,QAAQ,QAC5DS,IAAe,KAAK,MAAM,aAAaT,CAAI,KAAK,KAAK,MAAM,aAAa,QACxEU,IAAa,KAAK,MAAM,WAAWV,CAAI,KAAK,KAAK,MAAM,WAAW,QAElEW,IAAa;AAAA,QACjB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAGT,MAAAJ,EAAW,UAAU,GAAGC,CAAU,MAAMA,IAAa,CAAC,MACtDD,EAAW,eAAe,GAAGE,CAAY,MACzCF,EAAW,WAAW,GAAGG,EAAW,IAAI,MACxCH,EAAW,aAAaG,EAAW,QACnCH,EAAW,YAAYI,EAAWX,CAAI;AAAA,IACxC;AAEA,QAAIlC,IAAkB,eAClB8C,IAAc,eACdC,IAAc,OACdpC;AAGJ,UAAMqC,IAAY,KAAK,kBAAkBjD,CAAI,GACvCkD,IAAwB,KAAK,kBAAkBb,CAAW,GAC1Dc,IAAwB,KAAK,kBAAkBb,CAAW;AAGhE,QAAIJ,GAAS;AACX,YAAMkB,IAAoBH,KAAa,KAAK,MAAM,OAAO;AAEzD,cAAQf,GAAA;AAAA,QACN,KAAK;AACH,UAAIE,MAAS,gBACXnC,IAAkB,KAAK,MAAM,OAAO,cAC3BmC,MAAS,WAClBnC,IAAkB,KAAK,MAAM,OAAO,YAEpCA,IAAkBmD,GAEpBxC,IAAQ,KAAK,MAAM,OAAO;AAC1B;AAAA,QACF,KAAK;AACH,UAAAmC,IAAcX,MAAS,gBAAgB,KAAK,MAAM,OAAO,cAAcgB,GACvExC,IAAQwB,MAAS,gBAAgB,KAAK,MAAM,OAAO,cAAcgB;AACjE;AAAA,QACF,KAAK;AACH,UAAAnD,IAAkB,KAAK,MAAM,OAAO,YACpC8C,IAAc,KAAK,MAAM,OAAO;AAChC;AAAA,QACF,KAAK;AACH,UAAA9C,IAAkB,KAAK,MAAM,OAAO,SACpC8C,IAAc,KAAK,MAAM,OAAO,SAChCC,IAAc;AACd;AAAA,MAGA;AAAA,IAEN;AAGA,IAAIE,MACFjD,IAAkBiD,IAEhBC,MACFvC,IAAQuC;AAIV,QAAIE,IAAU,KACVC,IAAgB,QAChBC,GACAC,IAAY;AAEhB,IAAKhC,IAMMM,KACTuB,IAAU,OACVC,IAAgB,UACPf,MAAU,aAEnBtC,IAAkB,KAAK,YAAYA,GAAiB,GAAG,GACvD8C,IAAc,KAAK,YAAYA,GAAa,GAAG,GAC/CQ,IAAY,iBACHhB,MAAU,cACnBiB,IAAY,0BAdZvD,IAAkB,KAAK,MAAM,OAAO,UACpC8C,IAAc,KAAK,MAAM,OAAO,UAChCnC,IAAQ,KAAK,MAAM,OAAO,UAC1ByC,IAAU,OACVC,IAAgB;AAclB,UAAMG,IAAmC;AAAA,MACvC,GAAGf;AAAA;AAAA,IAAA;AAIL,WAAIR,MACFuB,EAAY,kBAAkBxD,GAC9BwD,EAAY,cAAcV,GAC1BU,EAAY,cAAcT,GACtBpC,MAAU,WACZ6C,EAAY,QAAQ7C,KAKpBsC,MACFO,EAAY,kBAAkBP,IAE5BC,MACFM,EAAY,QAAQN,IAItBM,EAAY,SAASjC,IAAY,YAAY,eAC7CiC,EAAY,UAAUJ,GACtBI,EAAY,gBAAgBH,GAG5BG,EAAY,YAAYF,MAAc,SAAYA,IAAY,QAC9DE,EAAY,YAAYD,GAExBC,EAAY,aAAa,iBAElBA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAA6B;AACjC,QAAI,GAAC,KAAK,UAAA,KAAe,KAAK,iBAG9B,KAAK,sBAAA,GAEL,KAAK,SAAS,SAAS,GAGvB,WAAW,MAAM;AACf,MAAI,KAAK,eACP,KAAK,SAAS,QAAQ;AAAA,IAE1B,GAAG,GAAG,GAGF,KAAK,MAAM;AACb,UAAI;AACF,cAAMC,IAAS,KAAK,MAAM,OAAA;AAE1B,QAAIA,KAAU,OAAOA,EAAO,QAAS,cACnC,MAAMA;AAAA,MAEV,SAAS7B,GAAO;AACd,gBAAQ,MAAM,yBAAyBA,CAAK;AAAA,MAC9C;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKQ,wBAA8B;AAEpC,QAAI,KAAK,MAAM,mBAAmB,MAE9B,OAAO,SAAW,OAAe,eAAe,QAAQ;AAE1D,YAAM8B,IAAY,OAAO;AACzB,MAAIA,EAAU,WACZA,EAAU,QAAQ,EAAE;AAAA,IAExB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,YAAY/C,GAAegD,GAAwB;AACzD,QAAIhD,MAAU,cAAe,QAAOA;AAGpC,QAAIA,EAAM,WAAW,GAAG,GAAG;AACzB,YAAMiD,IAAMjD,EAAM,MAAM,CAAC,GACnBkD,IAAM,SAASD,GAAK,EAAE,GACtB,IAAI,KAAK,IAAI,GAAG,KAAK,OAAOC,KAAO,OAAO,IAAIF,EAAO,CAAC,GACtDG,IAAI,KAAK,IAAI,GAAG,KAAK,OAAQD,KAAO,IAAK,QAAW,IAAIF,EAAO,CAAC,GAChEI,IAAI,KAAK,IAAI,GAAG,KAAK,OAAOF,IAAM,QAAa,IAAIF,EAAO,CAAC;AACjE,aAAO,KAAM,KAAK,KAAOG,KAAK,IAAKC,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IACrE;AAEA,WAAOpD;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAsCqD,GAAkD;AACtF,UAAMC,IAAc,KAAK,UAAA,GACnBC,IAAeF,EAAM,UAAA,GAErBG,IAAkC;AAAA,MACtC,eAAeH,aAAiBI,IAAwBJ,EAAM,SAAS,SAAS,IAAI;AAAA,MACpF,mBAAmBA,aAAiBI,IAChC,KAAK,wBAAwB,aAAaJ,EAAM,SAAS,iBAAiB,IAC1E,KAAK,2BAA2BA,CAAK;AAAA,MACzC,mBAAmB;AAAA;AAAA,IAAA;AAGrB,WAAO,IAAII,EAAsB,CAACH,GAAaC,CAAY,GAAGC,CAAQ;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA,EAKA,YAA8B;AAC5B,WAAO;AAAA,MACL,IAAI,KAAK;AAAA,MACT,WAAW;AAAA,MACX,WAAW,CAAA;AAAA;AAAA,MACX,QAAQ,MAAM;AACZ,cAAME,IAAW,KAAK,OAAA;AACtB,eAAO,MAAM,QAAQA,CAAQ,IAAIA,EAAS,CAAC,IAAIA;AAAA,MACjD;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKA,mBAA4B;AAC1B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,2BAA2BL,GAAuD;AAGxF,YAFuBA,EAAc,YAAY,MAEzC;AAAA,MACN,KAAK;AACH,eAAO;AAAA;AAAA,MACT,KAAK;AACH,eAAO;AAAA;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb;AAAA;AAAA;AAAA;AAAA,EAKQ,wBACNM,GACAC,GACgC;AAEhC,WAAO;AAAA,EACT;AACF;AAKO,SAASC,EACdC,GACAC,GACAvF,IAA+C,CAAA,GAG/C;AACA,QAAMwF,IAA2B,EAAE,GAAGxF,GAAO,OAAAsF,GAAO,GAAIC,KAAU,EAAE,QAAAA,IAAO,GACrEE,IAAY,IAAI3F,EAAe0F,CAAW;AAChD,SAAOE,EAAcD,CAAS;AAChC;AAMO,MAAME,KAAe;AAAA;AAAA;AAAA;AAAA,EAI1B,QAAQ,CACNL,GACAC,GACAvF,IAA2D,CAAA,MACxDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA,EAK1D,UAAU,CACRsF,GACAC,GACAvF,IAA2D,CAAA,MACxDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK5D,OAAO,CACLsF,GACAC,GACAvF,IAA2D,CAAA,MACxDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,SAAS,SAAS;AAAA;AAAA;AAAA;AAAA,EAKzD,UAAU,CACRsF,GACAC,GACAvF,IAA2D,CAAA,MACxDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA,EAK5D,aAAa,CACXsF,GACAC,GACAvF,IAAwD,CAAA,MACrDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA,EAK5D,QAAQ,CACNsF,GACAC,GACAvF,IAAwD,CAAA,MACrDqF,EAAOC,GAAOC,GAAQ,EAAE,GAAGvF,GAAO,MAAM,UAAU;AACzD,GAKM4F,IAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,IAAI,OAAO,WAAa,KAAa;AACnC,QAAMC,IAAQ,SAAS,cAAc,OAAO;AAC5C,EAAAA,EAAM,cAAcD,GACpB,SAAS,KAAK,YAAYC,CAAK;AACjC;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../reactive/cleanup.cjs");require("../reactive/unified-scheduler.cjs");const m=require("../reactive/effect.cjs"),u=require("../reactive/signal.cjs");require("../reactive/scheduler.cjs");require("../reactive/theme.cjs");require("../runtime/component.cjs");require("../runtime/context.cjs");require("../runtime/dev-tools.cjs");require("../runtime/dom-bridge.cjs");require("../runtime/error-boundary.cjs");require("../runtime/error-reporting.cjs");require("../runtime/performance.cjs");const g=require("../runtime/renderer.cjs");require("../runtime/element-override.cjs");require("../runtime/semantic-role-manager.cjs");require("../runtime/development-warnings.cjs");const f=require("./wrapper.cjs");var v=Object.defineProperty,y=(t,e,o)=>e in t?v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,a=(t,e,o)=>y(t,typeof e!="symbol"?e+"":e,o);const r={colors:{default:"#E5E5E5",light:"#F0F0F0",medium:"#D1D1D1",heavy:"#A0A0A0"},thickness:{thin:1,medium:2,thick:3},spacing:{small:8,medium:16,large:24}};class d{constructor(e){a(this,"type","component"),a(this,"id"),a(this,"props"),a(this,"theme",r),this.props=e,this.id=`divider-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}resolveValue(e){return u.isSignal(e)?e():e}getBaseStyles(){const e=this.props.orientation==="vertical",o=this.resolveValue(this.props.thickness??this.theme.thickness.thin),n=this.resolveValue(this.props.color??this.theme.colors.default),s=this.props.style??"solid",p=this.resolveValue(this.props.opacity??1),h=this.resolveValue(this.props.margin??this.theme.spacing.medium),l=this.resolveValue(this.props.length),i={border:"none",margin:"0",padding:"0",backgroundColor:n,opacity:String(p),flexShrink:"0"};return e?(i.width=`${o}px`,i.height=l?typeof l=="string"?l:`${l}px`:"100%",i.marginLeft=`${h}px`,i.marginRight=`${h}px`,i.alignSelf="stretch"):(i.height=`${o}px`,i.width=l?typeof l=="string"?l:`${l}px`:"100%",i.marginTop=`${h}px`,i.marginBottom=`${h}px`),(s==="dashed"||s==="dotted")&&(i.backgroundColor="transparent",e?i.borderRight=`${o}px ${s} ${n}`:i.borderTop=`${o}px ${s} ${n}`),i}render(){const e=g.h("div",{role:"separator","aria-orientation":this.props.orientation??"horizontal",style:this.getBaseStyles()});return["color","thickness","length","margin","opacity"].forEach(n=>{const s=this.props[n];u.isSignal(s)&&m.createEffect(()=>{const p=this.getBaseStyles(),h=e.element;h&&Object.assign(h.style,p)})}),e.getAttribute=n=>{const s=e.props?.[n];return s==null?null:String(s)},e.setAttribute=(n,s)=>{e.props||(e.props={}),e.props[n]=s},e}}function c(t={}){return f.withModifiers(new d(t))}const k={thin(t){return c({thickness:r.thickness.thin,color:t})},medium(t){return c({thickness:r.thickness.medium,color:t})},thick(t){return c({thickness:r.thickness.thick,color:t})},vertical(t,e){return c({orientation:"vertical",length:t,thickness:e})},dashed(t,e){return c({style:"dashed",color:t,thickness:e})},dotted(t,e){return c({style:"dotted",color:t,thickness:e})},subtle(){return c({color:r.colors.light,opacity:.6})},prominent(){return c({color:r.colors.heavy,thickness:r.thickness.medium})}},q={theme:r,createTheme(t){return{colors:{...r.colors,...t.colors},thickness:{...r.thickness,...t.thickness},spacing:{...r.spacing,...t.spacing}}},colors:{light:r.colors.light,medium:r.colors.medium,heavy:r.colors.heavy,primary:"#007AFF",success:"#34C759",warning:"#FF9500",danger:"#FF3B30"}};exports.Divider=c;exports.DividerComponent=d;exports.DividerStyles=q;exports.DividerUtils=k;exports.defaultDividerTheme=r;
|
|
2
|
-
//# sourceMappingURL=Divider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.cjs","sources":["../../src/components/Divider.ts"],"sourcesContent":["/**\n * Divider Component\n *\n * SwiftUI-inspired Divider component for visual separation between content.\n * Simple, clean line separator with customizable styling.\n */\n\nimport type { ModifiableComponent, ModifierBuilder } from '../modifiers/types'\nimport { createEffect, isSignal } from '../reactive'\nimport type { Signal } from '../reactive/types'\nimport { h } from '../runtime'\nimport type { ComponentInstance, ComponentProps, DOMNode } from '../runtime/types'\nimport { withModifiers } from './wrapper'\n\n/**\n * Divider component properties\n */\nexport interface DividerProps extends ComponentProps {\n // Appearance\n color?: string | Signal<string>\n thickness?: number | Signal<number>\n length?: number | string | Signal<number | string>\n\n // Orientation\n orientation?: 'horizontal' | 'vertical'\n\n // Spacing\n margin?: number | Signal<number>\n\n // Style\n style?: 'solid' | 'dashed' | 'dotted'\n opacity?: number | Signal<number>\n}\n\n/**\n * Default divider theme\n */\nexport interface DividerTheme {\n colors: {\n default: string\n light: string\n medium: string\n heavy: string\n }\n thickness: {\n thin: number\n medium: number\n thick: number\n }\n spacing: {\n small: number\n medium: number\n large: number\n }\n}\n\nexport const defaultDividerTheme: DividerTheme = {\n colors: {\n default: '#E5E5E5',\n light: '#F0F0F0',\n medium: '#D1D1D1',\n heavy: '#A0A0A0',\n },\n thickness: {\n thin: 1,\n medium: 2,\n thick: 3,\n },\n spacing: {\n small: 8,\n medium: 16,\n large: 24,\n },\n}\n\n/**\n * Divider component implementation\n */\nexport class DividerComponent implements ComponentInstance<DividerProps> {\n public readonly type = 'component' as const\n public readonly id: string\n public readonly props: DividerProps\n private theme: DividerTheme = defaultDividerTheme\n\n constructor(props: DividerProps) {\n this.props = props\n this.id = `divider-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n }\n\n private resolveValue<T>(value: T | Signal<T>): T {\n return isSignal(value) ? value() : value\n }\n\n private getBaseStyles(): Record<string, string> {\n const isVertical = this.props.orientation === 'vertical'\n const thickness = this.resolveValue(this.props.thickness ?? this.theme.thickness.thin)\n const color = this.resolveValue(this.props.color ?? this.theme.colors.default)\n const style = this.props.style ?? 'solid'\n const opacity = this.resolveValue(this.props.opacity ?? 1)\n const margin = this.resolveValue(this.props.margin ?? this.theme.spacing.medium)\n const length = this.resolveValue(this.props.length)\n\n const baseStyles: Record<string, string> = {\n border: 'none',\n margin: '0',\n padding: '0',\n backgroundColor: color,\n opacity: String(opacity),\n flexShrink: '0',\n }\n\n if (isVertical) {\n // Vertical divider\n baseStyles.width = `${thickness}px`\n baseStyles.height = length ? (typeof length === 'string' ? length : `${length}px`) : '100%'\n baseStyles.marginLeft = `${margin}px`\n baseStyles.marginRight = `${margin}px`\n baseStyles.alignSelf = 'stretch'\n } else {\n // Horizontal divider (default)\n baseStyles.height = `${thickness}px`\n baseStyles.width = length ? (typeof length === 'string' ? length : `${length}px`) : '100%'\n baseStyles.marginTop = `${margin}px`\n baseStyles.marginBottom = `${margin}px`\n }\n\n // Handle dashed/dotted styles differently\n if (style === 'dashed' || style === 'dotted') {\n baseStyles.backgroundColor = 'transparent'\n if (isVertical) {\n baseStyles.borderRight = `${thickness}px ${style} ${color}`\n } else {\n baseStyles.borderTop = `${thickness}px ${style} ${color}`\n }\n }\n\n return baseStyles\n }\n\n render(): DOMNode {\n const element = h('div', {\n role: 'separator',\n 'aria-orientation': this.props.orientation ?? 'horizontal',\n style: this.getBaseStyles(),\n })\n\n // Set up reactive updates for dynamic properties\n const reactiveProps = ['color', 'thickness', 'length', 'margin', 'opacity'] as const\n\n reactiveProps.forEach((prop) => {\n const value = this.props[prop]\n if (isSignal(value)) {\n createEffect(() => {\n // Recalculate and apply styles when reactive values change\n const newStyles = this.getBaseStyles()\n const elementDOM = element.element as HTMLElement\n if (elementDOM) {\n Object.assign(elementDOM.style, newStyles)\n }\n })\n }\n })\n\n // For tests that call getAttribute directly on returned DOMNode,\n // expose minimal helpers mapping to props\n // biome-ignore lint/suspicious/noExplicitAny: DOM compatibility requires any for dynamic property access\n ;(element as any).getAttribute = (name: string) => {\n // biome-ignore lint/suspicious/noExplicitAny: Dynamic props access for DOM compatibility\n const value = (element.props as any)?.[name]\n return value == null ? null : String(value)\n }\n // biome-ignore lint/suspicious/noExplicitAny: Test utility requires DOM-like interface\n ;(element as any).setAttribute = (name: string, value: any) => {\n if (!element.props)\n element.props = {}\n // biome-ignore lint/suspicious/noExplicitAny: Dynamic props access\n ;(element.props as any)[name] = value\n }\n\n return element\n }\n}\n\n/**\n * Create a Divider component\n */\nexport function Divider(props?: DividerProps): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n}\nexport function Divider(): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n}\nexport function Divider(props: DividerProps = {}): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n} {\n return withModifiers(new DividerComponent(props))\n}\n\n/**\n * Divider utility functions and presets\n */\nexport const DividerUtils = {\n /**\n * Create a thin horizontal divider\n */\n thin(color?: string): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n thickness: defaultDividerTheme.thickness.thin,\n color,\n })\n },\n\n /**\n * Create a medium horizontal divider\n */\n medium(color?: string): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n thickness: defaultDividerTheme.thickness.medium,\n color,\n })\n },\n\n /**\n * Create a thick horizontal divider\n */\n thick(color?: string): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n thickness: defaultDividerTheme.thickness.thick,\n color,\n })\n },\n\n /**\n * Create a vertical divider\n */\n vertical(\n height?: number | string,\n thickness?: number\n ): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n orientation: 'vertical',\n length: height,\n thickness,\n })\n },\n\n /**\n * Create a dashed divider\n */\n dashed(\n color?: string,\n thickness?: number\n ): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n style: 'dashed',\n color,\n thickness,\n })\n },\n\n /**\n * Create a dotted divider\n */\n dotted(\n color?: string,\n thickness?: number\n ): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n style: 'dotted',\n color,\n thickness,\n })\n },\n\n /**\n * Create a subtle divider with light color\n */\n subtle(): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n color: defaultDividerTheme.colors.light,\n opacity: 0.6,\n })\n },\n\n /**\n * Create a prominent divider with heavier color\n */\n prominent(): ModifiableComponent<DividerProps> & {\n modifier: ModifierBuilder<ModifiableComponent<DividerProps>>\n } {\n return Divider({\n color: defaultDividerTheme.colors.heavy,\n thickness: defaultDividerTheme.thickness.medium,\n })\n },\n}\n\n/**\n * Divider styles and theming\n */\nexport const DividerStyles = {\n theme: defaultDividerTheme,\n\n /**\n * Create a custom divider theme\n */\n createTheme(overrides: Partial<DividerTheme>): DividerTheme {\n return {\n colors: { ...defaultDividerTheme.colors, ...overrides.colors },\n thickness: { ...defaultDividerTheme.thickness, ...overrides.thickness },\n spacing: { ...defaultDividerTheme.spacing, ...overrides.spacing },\n }\n },\n\n /**\n * Preset color schemes\n */\n colors: {\n light: defaultDividerTheme.colors.light,\n medium: defaultDividerTheme.colors.medium,\n heavy: defaultDividerTheme.colors.heavy,\n primary: '#007AFF',\n success: '#34C759',\n warning: '#FF9500',\n danger: '#FF3B30',\n },\n}\n"],"names":["defaultDividerTheme","DividerComponent","props","__publicField","value","isSignal","isVertical","thickness","color","style","opacity","margin","length","baseStyles","element","h","prop","createEffect","newStyles","elementDOM","name","Divider","withModifiers","DividerUtils","height","DividerStyles","overrides"],"mappings":"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"}
|