@tachui/core 0.7.0-alpha1 → 0.7.1-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/ScrollView-h-6wYMAm.js +515 -0
- package/dist/Spacer-BbteDQ9I.js +5337 -0
- package/dist/binding-CmdpowkI.js +2276 -0
- package/dist/bundles/minimal.d.ts +30 -4
- package/dist/bundles/minimal.d.ts.map +1 -1
- package/dist/common.js +825 -954
- package/dist/compiler/index.js +1386 -10
- package/dist/components/index.js +4166 -101
- package/dist/concatenated-component-DPcl2TEO.js +6779 -0
- package/dist/{runtime/context.js → context--zQFIImS.js} +65 -71
- package/dist/debug.js +0 -1
- package/dist/dom-bridge-Cx-s6Ihx.js +406 -0
- package/dist/effect-CytAc9em.js +66 -0
- package/dist/essential.js +825 -954
- package/dist/index-Nfi2SBQh.js +3268 -0
- package/dist/index.js +825 -954
- package/dist/minimal-prod.js +162 -191
- package/dist/minimal.js +183 -957
- package/dist/modifiers/responsive/index.d.ts +10 -9
- package/dist/modifiers/responsive/index.d.ts.map +1 -1
- package/dist/plugins/index.js +543 -32
- package/dist/reactive/index.js +490 -93
- package/dist/runtime/dom-bridge.js +12 -239
- package/dist/runtime/renderer.js +8 -388
- package/dist/scheduler-7SvC3a21.js +814 -0
- package/dist/validation/index.js +6614 -198
- package/dist/viewport/index.js +2002 -83
- package/package.json +3 -4
- 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +0 -46
- 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.cjs +0 -52
- package/dist/debug.cjs.map +0 -1
- package/dist/debug.js.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.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.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 +0 -745
- 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.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 +0 -930
- 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.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.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.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.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.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.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.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.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 +0 -163
- 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.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.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.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.js +0 -380
- package/dist/modifiers/responsive/dev-tools.js.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.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.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.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.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.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.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.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.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.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.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.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.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 +0 -5
- 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.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.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.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.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 +0 -5
- 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.js +0 -177
- package/dist/validation/build-time/transformer.js.map +0 -1
- package/dist/validation/comprehensive.cjs +0 -9
- package/dist/validation/comprehensive.cjs.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../src/modifiers/core.ts"],"sourcesContent":["/**\n * Core SwiftUI Modifiers\n *\n * Implementation of the most commonly used SwiftUI modifiers\n * for layout, appearance, and interaction.\n */\n\nimport type { Asset } from '../assets/Asset'\nimport type { Signal } from '../reactive/types'\nimport type { Dimension } from '../constants/layout'\nimport type { GradientDefinition } from '../gradients/types'\nimport {\n AnimationModifier,\n AppearanceModifier,\n InteractionModifier,\n LayoutModifier,\n LifecycleModifier,\n} from './base'\nimport { BackgroundModifier } from './background'\nimport type {\n AnimationModifierProps,\n AppearanceModifierProps,\n LayoutModifierProps,\n Modifier,\n} from './types'\n\n/**\n * Layout Modifiers\n */\nexport const layoutModifiers = {\n /**\n * Set foreground (text) color\n */\n foregroundColor(color: string | Signal<string> | any): Modifier {\n return new AppearanceModifier({ foregroundColor: color })\n },\n\n /**\n * Set frame dimensions with support for infinity\n */\n frame(\n width?: Dimension,\n height?: Dimension,\n options?: Omit<LayoutModifierProps['frame'], 'width' | 'height'>\n ): Modifier {\n return new LayoutModifier({\n frame: {\n width,\n height,\n ...options,\n },\n })\n },\n\n /**\n * Set padding on all sides\n */\n padding(value: number): Modifier {\n return new LayoutModifier({ padding: value })\n },\n\n /**\n * Set padding with detailed control\n */\n paddingDetailed(options: LayoutModifierProps['padding']): Modifier {\n return new LayoutModifier({ padding: options })\n },\n\n /**\n * Set horizontal and vertical padding\n */\n paddingSymmetric(horizontal?: number, vertical?: number): Modifier {\n return new LayoutModifier({\n padding: {\n left: horizontal,\n right: horizontal,\n top: vertical,\n bottom: vertical,\n },\n })\n },\n\n /**\n * Set margin on all sides\n */\n margin(value: number): Modifier {\n return new LayoutModifier({ margin: value })\n },\n\n /**\n * Set margin with detailed control\n */\n marginDetailed(options: LayoutModifierProps['margin']): Modifier {\n return new LayoutModifier({ margin: options })\n },\n\n /**\n * Set content alignment\n */\n alignment(value: LayoutModifierProps['alignment']): Modifier {\n return new LayoutModifier({ alignment: value })\n },\n\n /**\n * Set layout priority for ZStack container sizing and flexible layout\n * Higher priority views determine container size in ZStack\n */\n layoutPriority(priority: number | Signal<number>): Modifier {\n return new LayoutModifier({ layoutPriority: priority })\n },\n}\n\n/**\n * Appearance Modifiers\n */\nexport const appearanceModifiers = {\n /**\n * Set foreground (text) color\n */\n foregroundColor(color: string | Asset | Signal<string>): Modifier {\n return new AppearanceModifier({ foregroundColor: color })\n },\n\n /**\n * Set background color\n */\n backgroundColor(color: string | Asset | Signal<string>): Modifier {\n return new AppearanceModifier({ backgroundColor: color })\n },\n\n /**\n * Set background (supports gradients)\n */\n background(value: string | GradientDefinition | Asset): Modifier {\n return new BackgroundModifier({ background: value })\n },\n\n /**\n * Set font properties\n */\n font(options: AppearanceModifierProps['font']): Modifier {\n return new AppearanceModifier({ font: options })\n },\n\n /**\n * Set font size\n */\n fontSize(size: number | string): Modifier {\n return new AppearanceModifier({ font: { size } })\n },\n\n /**\n * Set font weight\n */\n fontWeight(weight: NonNullable<AppearanceModifierProps['font']>['weight']): Modifier {\n return new AppearanceModifier({ font: { weight } })\n },\n\n /**\n * Set font family\n */\n fontFamily(family: string): Modifier {\n return new AppearanceModifier({ font: { family } })\n },\n\n /**\n * Set opacity\n */\n opacity(value: number | Signal<number>): Modifier {\n return new AppearanceModifier({ opacity: value })\n },\n\n /**\n * Set corner radius (enhanced)\n */\n cornerRadius(radius: number | Signal<number>): Modifier {\n return new AppearanceModifier({ cornerRadius: radius })\n },\n\n /**\n * Set border\n */\n border(\n width: number,\n color: string | Asset = '#000000',\n style: 'solid' | 'dashed' | 'dotted' = 'solid'\n ): Modifier {\n return new AppearanceModifier({\n border: { width, color, style },\n })\n },\n\n /**\n * Set detailed border properties\n */\n borderDetailed(options: AppearanceModifierProps['border']): Modifier {\n return new AppearanceModifier({ border: options })\n },\n\n /**\n * Add shadow\n */\n shadow(options: AppearanceModifierProps['shadow']): Modifier {\n return new AppearanceModifier({ shadow: options })\n },\n\n /**\n * Add drop shadow with common settings\n */\n dropShadow(\n x: number = 0,\n y: number = 2,\n radius: number = 4,\n color: string = 'rgba(0,0,0,0.25)'\n ): Modifier {\n return new AppearanceModifier({\n shadow: { x, y, radius, color },\n })\n },\n}\n\n/**\n * Interaction Modifiers\n */\nexport const interactionModifiers = {\n /**\n * Add tap handler\n */\n onTap(handler: (event: MouseEvent) => void): Modifier {\n return new InteractionModifier({ onTap: handler })\n },\n\n /**\n * Add hover handler\n */\n onHover(handler: (isHovered: boolean) => void): Modifier {\n return new InteractionModifier({ onHover: handler })\n },\n\n /**\n * Add focus handler\n */\n onFocus(handler: (isFocused: boolean) => void): Modifier {\n return new InteractionModifier({ onFocus: handler })\n },\n\n /**\n * Set disabled state\n */\n disabled(isDisabled: boolean | Signal<boolean> = true): Modifier {\n return new InteractionModifier({ disabled: isDisabled })\n },\n\n /**\n * Set accessibility label\n */\n accessibilityLabel(label: string): Modifier {\n return new InteractionModifier({ accessibilityLabel: label })\n },\n\n /**\n * Set accessibility hint\n */\n accessibilityHint(hint: string): Modifier {\n return new InteractionModifier({ accessibilityHint: hint })\n },\n}\n\n/**\n * Animation Modifiers\n */\nexport const animationModifiers = {\n /**\n * Add transition\n */\n transition(\n property: string = 'all',\n duration: number = 300,\n easing: string = 'ease',\n delay: number = 0\n ): Modifier {\n return new AnimationModifier({\n transition: { property, duration, easing, delay },\n })\n },\n\n /**\n * Add detailed transition\n */\n transitionDetailed(options: AnimationModifierProps['transition']): Modifier {\n return new AnimationModifier({ transition: options })\n },\n\n /**\n * Add animation\n */\n animation(options: AnimationModifierProps['animation']): Modifier {\n return new AnimationModifier({ animation: options })\n },\n\n /**\n * Add fade in animation\n */\n fadeIn(duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n\n /**\n * Add fade out animation\n */\n fadeOut(duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\n },\n duration,\n easing: 'ease-in',\n },\n })\n },\n\n /**\n * Add slide in animation\n */\n slideIn(\n direction: 'up' | 'down' | 'left' | 'right' = 'up',\n duration: number = 300,\n distance: number = 20\n ): Modifier {\n const transforms = {\n up: [`translateY(${distance}px)`, 'translateY(0)'],\n down: [`translateY(-${distance}px)`, 'translateY(0)'],\n left: [`translateX(${distance}px)`, 'translateX(0)'],\n right: [`translateX(-${distance}px)`, 'translateX(0)'],\n }\n\n const [from, to] = transforms[direction]\n\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { transform: from, opacity: '0' },\n '100%': { transform: to, opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n\n /**\n * Add scale animation\n */\n scaleAnimation(from: number = 0.8, to: number = 1, duration: number = 300): Modifier {\n return new AnimationModifier({\n animation: {\n keyframes: {\n '0%': { transform: `scale(${from})`, opacity: '0' },\n '100%': { transform: `scale(${to})`, opacity: '1' },\n },\n duration,\n easing: 'ease-out',\n },\n })\n },\n}\n\n/**\n * Lifecycle Modifiers\n */\nexport const lifecycleModifiers = {\n /**\n * Execute handler when component appears in viewport\n */\n onAppear(handler: () => void): Modifier {\n return new LifecycleModifier({ onAppear: handler })\n },\n\n /**\n * Execute handler when component disappears from viewport\n */\n onDisappear(handler: () => void): Modifier {\n return new LifecycleModifier({ onDisappear: handler })\n },\n\n /**\n * Execute async task with automatic cancellation on component unmount\n */\n task(\n operation: () => Promise<void> | void,\n options?: {\n id?: string\n priority?: 'background' | 'userInitiated' | 'utility' | 'default'\n }\n ): Modifier {\n return new LifecycleModifier({\n task: {\n operation,\n id: options?.id,\n priority: options?.priority || 'default',\n },\n })\n },\n\n /**\n * Add pull-to-refresh functionality\n */\n refreshable(onRefresh: () => Promise<void>, isRefreshing?: boolean | Signal<boolean>): Modifier {\n return new LifecycleModifier({\n refreshable: {\n onRefresh,\n isRefreshing,\n },\n })\n },\n}\n\n/**\n * Preset Modifiers - Common combinations\n */\nexport const presetModifiers = {\n /**\n * Card-like appearance\n */\n card(padding: number = 16): Modifier[] {\n return [\n appearanceModifiers.backgroundColor('#ffffff'),\n appearanceModifiers.cornerRadius(8),\n appearanceModifiers.shadow({\n x: 0,\n y: 2,\n radius: 8,\n color: 'rgba(0,0,0,0.1)',\n }),\n layoutModifiers.padding(padding),\n ]\n },\n\n /**\n * Button-like appearance\n */\n button(\n backgroundColor: string | Asset = '#007AFF',\n textColor: string | Asset = '#ffffff'\n ): Modifier[] {\n return [\n appearanceModifiers.backgroundColor(backgroundColor),\n appearanceModifiers.foregroundColor(textColor),\n appearanceModifiers.cornerRadius(6),\n layoutModifiers.paddingSymmetric(16, 8),\n interactionModifiers.onHover((_hovered) => {\n // This would need a more sophisticated hover state system\n }),\n animationModifiers.transition('all', 150),\n ]\n },\n\n /**\n * Input field appearance\n */\n input(): Modifier[] {\n return [\n appearanceModifiers.border(1, '#d1d5db'),\n appearanceModifiers.cornerRadius(4),\n layoutModifiers.padding(8),\n animationModifiers.transition('border-color', 150),\n interactionModifiers.onFocus((_focused) => {\n // Focus state would need more sophisticated handling\n }),\n ]\n },\n\n /**\n * Typography presets\n */\n typography: {\n title: (): Modifier[] => [\n appearanceModifiers.fontSize(24),\n appearanceModifiers.fontWeight('bold'),\n ],\n\n heading: (): Modifier[] => [\n appearanceModifiers.fontSize(20),\n appearanceModifiers.fontWeight('600'),\n ],\n\n body: (): Modifier[] => [\n appearanceModifiers.fontSize(16),\n appearanceModifiers.fontWeight('normal'),\n ],\n\n caption: (): Modifier[] => [\n appearanceModifiers.fontSize(12),\n appearanceModifiers.fontWeight('normal'),\n appearanceModifiers.opacity(0.7),\n ],\n },\n}\n\n/**\n * Export all core modifiers\n */\nexport const coreModifiers = {\n ...layoutModifiers,\n ...appearanceModifiers,\n ...interactionModifiers,\n ...animationModifiers,\n ...lifecycleModifiers,\n presets: presetModifiers,\n}\n"],"names":["layoutModifiers","color","AppearanceModifier","width","height","options","LayoutModifier","value","horizontal","vertical","priority","appearanceModifiers","BackgroundModifier","size","weight","family","radius","style","x","y","interactionModifiers","handler","InteractionModifier","isDisabled","label","hint","animationModifiers","property","duration","easing","delay","AnimationModifier","direction","distance","transforms","from","to","lifecycleModifiers","LifecycleModifier","operation","onRefresh","isRefreshing","presetModifiers","padding","backgroundColor","textColor","_hovered","_focused","coreModifiers"],"mappings":"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"}
|
package/dist/modifiers/css.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./base.cjs");var l=Object.defineProperty,a=(r,e,t)=>e in r?l(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,c=(r,e,t)=>a(r,typeof e!="symbol"?e+"":e,t);class n extends p.BaseModifier{constructor(e){const t={};for(const[o,s]of Object.entries(e))typeof s=="function"&&"peek"in s?t[o]=s.peek():t[o]=s;super(t),c(this,"type","css"),c(this,"priority",5)}apply(e,t){if(!t.element)return;const o=this.computeCSSStyles(this.properties);this.applyStyles(t.element,o)}computeCSSStyles(e){const t={};for(const[o,s]of Object.entries(e))if(s!==void 0){const i=this.toCSSProperty(o);t[i]=this.toCSSValue(s)}return t}}function u(r){return new n(r)}function f(r,e){return new n({[r]:e})}function d(r,e){const t=r.startsWith("--")?r:`--${r}`;return new n({[t]:e})}function y(r,e,t){const o=r.charAt(0).toUpperCase()+r.slice(1),s=`-${r.toLowerCase()}-${e}`,i=o+e.charAt(0).toUpperCase()+e.slice(1);return new n({[s]:t,[i]:t})}exports.CSSModifier=n;exports.css=u;exports.cssProperty=f;exports.cssVariable=d;exports.cssVendor=y;
|
|
2
|
-
//# sourceMappingURL=css.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css.cjs","sources":["../../src/modifiers/css.ts"],"sourcesContent":["/**\n * CSS Modifier - raw CSS properties\n *\n * Provides an escape hatch for applying raw CSS properties\n * that may not have dedicated modifiers yet, or for experimental\n * CSS features.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface CSSOptions {\n [property: string]: string | number | undefined\n}\n\nexport type ReactiveCSSOptions = ReactiveModifierProps<CSSOptions>\n\nexport class CSSModifier extends BaseModifier<CSSOptions> {\n readonly type = 'css'\n readonly priority = 5 // Very low priority so raw CSS doesn't override specific modifiers\n\n constructor(options: ReactiveCSSOptions) {\n // Convert reactive options to regular options for immediate use\n const resolvedOptions: CSSOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n const styles = this.computeCSSStyles(this.properties)\n this.applyStyles(context.element, styles)\n \n return undefined\n }\n\n private computeCSSStyles(props: CSSOptions) {\n const styles: Record<string, string> = {}\n\n for (const [property, value] of Object.entries(props)) {\n if (value !== undefined) {\n // Convert camelCase to kebab-case for CSS properties\n const cssProperty = this.toCSSProperty(property)\n styles[cssProperty] = this.toCSSValue(value)\n }\n }\n\n return styles\n }\n}\n\n/**\n * Create a CSS modifier with raw CSS properties\n *\n * @example\n * ```typescript\n * // Apply raw CSS properties\n * .css({\n * backdropFilter: 'blur(10px)',\n * maskImage: 'linear-gradient(to bottom, black, transparent)',\n * scrollBehavior: 'smooth',\n * containerType: 'inline-size'\n * })\n *\n * // Mix camelCase and kebab-case (both work)\n * .css({\n * backgroundColor: 'red', // camelCase (recommended)\n * 'background-color': 'red', // kebab-case (also works)\n * WebkitTransform: 'scale(1.1)', // vendor prefixes\n * '--custom-property': '42px' // CSS custom properties\n * })\n *\n * // Experimental CSS features\n * .css({\n * aspectRatio: '16/9',\n * scrollSnapType: 'y mandatory',\n * containIntrinsicSize: '300px',\n * accentColor: '#007AFF'\n * })\n * ```\n */\nexport function css(properties: ReactiveCSSOptions): CSSModifier {\n return new CSSModifier(properties)\n}\n\n/**\n * Convenience function for setting a single CSS property\n *\n * @example\n * ```typescript\n * .cssProperty('backdrop-filter', 'blur(10px)')\n * .cssProperty('scrollBehavior', 'smooth')\n * .cssProperty('aspectRatio', '16/9')\n * ```\n */\nexport function cssProperty(property: string, value: string | number): CSSModifier {\n return new CSSModifier({ [property]: value })\n}\n\n/**\n * Convenience function for CSS custom properties (CSS variables)\n *\n * @example\n * ```typescript\n * .cssVariable('primary-color', '#007AFF')\n * .cssVariable('spacing-unit', '8px')\n * .cssVariable('border-radius', '12px')\n * ```\n */\nexport function cssVariable(name: string, value: string | number): CSSModifier {\n // Ensure the property starts with --\n const propertyName = name.startsWith('--') ? name : `--${name}`\n return new CSSModifier({ [propertyName]: value })\n}\n\n/**\n * Convenience function for vendor-prefixed properties\n *\n * @example\n * ```typescript\n * .cssVendor('webkit', 'transform', 'scale(1.1)')\n * .cssVendor('moz', 'user-select', 'none')\n * .cssVendor('ms', 'filter', 'blur(5px)')\n * ```\n */\nexport function cssVendor(\n prefix: 'webkit' | 'moz' | 'ms' | 'o',\n property: string,\n value: string | number\n): CSSModifier {\n // Convert to proper vendor prefix format\n const capitalizedPrefix = prefix.charAt(0).toUpperCase() + prefix.slice(1)\n const vendorProperty = `-${prefix.toLowerCase()}-${property}`\n const camelCaseProperty = capitalizedPrefix + property.charAt(0).toUpperCase() + property.slice(1)\n\n return new CSSModifier({\n [vendorProperty]: value,\n [camelCaseProperty]: value,\n })\n}\n"],"names":["CSSModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","styles","props","property","cssProperty","css","properties","cssVariable","name","propertyName","cssVendor","prefix","capitalizedPrefix","vendorProperty","camelCaseProperty"],"mappings":"0QAkBO,MAAMA,UAAoBC,EAAAA,YAAyB,CAIxD,YAAYC,EAA6B,CAEvC,MAAMC,EAA8B,CAAA,EACpC,SAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAO,EAC3C,OAAOG,GAAU,YAAc,SAAUA,EACzCF,EAAwBC,CAAG,EAAKC,EAAc,KAAA,EAE9CF,EAAwBC,CAAG,EAAIC,EAGrC,MAAMF,CAAe,EAbvBG,EAAA,KAAS,OAAO,KAAA,EAChBA,EAAA,KAAS,WAAW,CAAA,CAapB,CAEA,MAAMC,EAAgBC,EAA+C,CACnE,GAAI,CAACA,EAAQ,QAAS,OAEtB,MAAMC,EAAS,KAAK,iBAAiB,KAAK,UAAU,EACpD,KAAK,YAAYD,EAAQ,QAASC,CAAM,CAG1C,CAEQ,iBAAiBC,EAAmB,CAC1C,MAAMD,EAAiC,CAAA,EAEvC,SAAW,CAACE,EAAUN,CAAK,IAAK,OAAO,QAAQK,CAAK,EAClD,GAAIL,IAAU,OAAW,CAEvB,MAAMO,EAAc,KAAK,cAAcD,CAAQ,EAC/CF,EAAOG,CAAW,EAAI,KAAK,WAAWP,CAAK,CAC7C,CAGF,OAAOI,CACT,CACF,CAgCO,SAASI,EAAIC,EAA6C,CAC/D,OAAO,IAAId,EAAYc,CAAU,CACnC,CAYO,SAASF,EAAYD,EAAkBN,EAAqC,CACjF,OAAO,IAAIL,EAAY,CAAE,CAACW,CAAQ,EAAGN,EAAO,CAC9C,CAYO,SAASU,EAAYC,EAAcX,EAAqC,CAE7E,MAAMY,EAAeD,EAAK,WAAW,IAAI,EAAIA,EAAO,KAAKA,CAAI,GAC7D,OAAO,IAAIhB,EAAY,CAAE,CAACiB,CAAY,EAAGZ,EAAO,CAClD,CAYO,SAASa,EACdC,EACAR,EACAN,EACa,CAEb,MAAMe,EAAoBD,EAAO,OAAO,CAAC,EAAE,cAAgBA,EAAO,MAAM,CAAC,EACnEE,EAAiB,IAAIF,EAAO,aAAa,IAAIR,CAAQ,GACrDW,EAAoBF,EAAoBT,EAAS,OAAO,CAAC,EAAE,cAAgBA,EAAS,MAAM,CAAC,EAEjG,OAAO,IAAIX,EAAY,CACrB,CAACqB,CAAc,EAAGhB,EAClB,CAACiB,CAAiB,EAAGjB,CAAA,CACtB,CACH"}
|
package/dist/modifiers/css.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { BaseModifier as p } from "./base.js";
|
|
2
|
-
var l = Object.defineProperty, a = (r, e, t) => e in r ? l(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, c = (r, e, t) => a(r, typeof e != "symbol" ? e + "" : e, t);
|
|
3
|
-
class n extends p {
|
|
4
|
-
// Very low priority so raw CSS doesn't override specific modifiers
|
|
5
|
-
constructor(e) {
|
|
6
|
-
const t = {};
|
|
7
|
-
for (const [o, s] of Object.entries(e))
|
|
8
|
-
typeof s == "function" && "peek" in s ? t[o] = s.peek() : t[o] = s;
|
|
9
|
-
super(t), c(this, "type", "css"), c(this, "priority", 5);
|
|
10
|
-
}
|
|
11
|
-
apply(e, t) {
|
|
12
|
-
if (!t.element) return;
|
|
13
|
-
const o = this.computeCSSStyles(this.properties);
|
|
14
|
-
this.applyStyles(t.element, o);
|
|
15
|
-
}
|
|
16
|
-
computeCSSStyles(e) {
|
|
17
|
-
const t = {};
|
|
18
|
-
for (const [o, s] of Object.entries(e))
|
|
19
|
-
if (s !== void 0) {
|
|
20
|
-
const i = this.toCSSProperty(o);
|
|
21
|
-
t[i] = this.toCSSValue(s);
|
|
22
|
-
}
|
|
23
|
-
return t;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function f(r) {
|
|
27
|
-
return new n(r);
|
|
28
|
-
}
|
|
29
|
-
function y(r, e) {
|
|
30
|
-
return new n({ [r]: e });
|
|
31
|
-
}
|
|
32
|
-
function d(r, e) {
|
|
33
|
-
const t = r.startsWith("--") ? r : `--${r}`;
|
|
34
|
-
return new n({ [t]: e });
|
|
35
|
-
}
|
|
36
|
-
function S(r, e, t) {
|
|
37
|
-
const o = r.charAt(0).toUpperCase() + r.slice(1), s = `-${r.toLowerCase()}-${e}`, i = o + e.charAt(0).toUpperCase() + e.slice(1);
|
|
38
|
-
return new n({
|
|
39
|
-
[s]: t,
|
|
40
|
-
[i]: t
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
export {
|
|
44
|
-
n as CSSModifier,
|
|
45
|
-
f as css,
|
|
46
|
-
y as cssProperty,
|
|
47
|
-
d as cssVariable,
|
|
48
|
-
S as cssVendor
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","sources":["../../src/modifiers/css.ts"],"sourcesContent":["/**\n * CSS Modifier - raw CSS properties\n *\n * Provides an escape hatch for applying raw CSS properties\n * that may not have dedicated modifiers yet, or for experimental\n * CSS features.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface CSSOptions {\n [property: string]: string | number | undefined\n}\n\nexport type ReactiveCSSOptions = ReactiveModifierProps<CSSOptions>\n\nexport class CSSModifier extends BaseModifier<CSSOptions> {\n readonly type = 'css'\n readonly priority = 5 // Very low priority so raw CSS doesn't override specific modifiers\n\n constructor(options: ReactiveCSSOptions) {\n // Convert reactive options to regular options for immediate use\n const resolvedOptions: CSSOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n const styles = this.computeCSSStyles(this.properties)\n this.applyStyles(context.element, styles)\n \n return undefined\n }\n\n private computeCSSStyles(props: CSSOptions) {\n const styles: Record<string, string> = {}\n\n for (const [property, value] of Object.entries(props)) {\n if (value !== undefined) {\n // Convert camelCase to kebab-case for CSS properties\n const cssProperty = this.toCSSProperty(property)\n styles[cssProperty] = this.toCSSValue(value)\n }\n }\n\n return styles\n }\n}\n\n/**\n * Create a CSS modifier with raw CSS properties\n *\n * @example\n * ```typescript\n * // Apply raw CSS properties\n * .css({\n * backdropFilter: 'blur(10px)',\n * maskImage: 'linear-gradient(to bottom, black, transparent)',\n * scrollBehavior: 'smooth',\n * containerType: 'inline-size'\n * })\n *\n * // Mix camelCase and kebab-case (both work)\n * .css({\n * backgroundColor: 'red', // camelCase (recommended)\n * 'background-color': 'red', // kebab-case (also works)\n * WebkitTransform: 'scale(1.1)', // vendor prefixes\n * '--custom-property': '42px' // CSS custom properties\n * })\n *\n * // Experimental CSS features\n * .css({\n * aspectRatio: '16/9',\n * scrollSnapType: 'y mandatory',\n * containIntrinsicSize: '300px',\n * accentColor: '#007AFF'\n * })\n * ```\n */\nexport function css(properties: ReactiveCSSOptions): CSSModifier {\n return new CSSModifier(properties)\n}\n\n/**\n * Convenience function for setting a single CSS property\n *\n * @example\n * ```typescript\n * .cssProperty('backdrop-filter', 'blur(10px)')\n * .cssProperty('scrollBehavior', 'smooth')\n * .cssProperty('aspectRatio', '16/9')\n * ```\n */\nexport function cssProperty(property: string, value: string | number): CSSModifier {\n return new CSSModifier({ [property]: value })\n}\n\n/**\n * Convenience function for CSS custom properties (CSS variables)\n *\n * @example\n * ```typescript\n * .cssVariable('primary-color', '#007AFF')\n * .cssVariable('spacing-unit', '8px')\n * .cssVariable('border-radius', '12px')\n * ```\n */\nexport function cssVariable(name: string, value: string | number): CSSModifier {\n // Ensure the property starts with --\n const propertyName = name.startsWith('--') ? name : `--${name}`\n return new CSSModifier({ [propertyName]: value })\n}\n\n/**\n * Convenience function for vendor-prefixed properties\n *\n * @example\n * ```typescript\n * .cssVendor('webkit', 'transform', 'scale(1.1)')\n * .cssVendor('moz', 'user-select', 'none')\n * .cssVendor('ms', 'filter', 'blur(5px)')\n * ```\n */\nexport function cssVendor(\n prefix: 'webkit' | 'moz' | 'ms' | 'o',\n property: string,\n value: string | number\n): CSSModifier {\n // Convert to proper vendor prefix format\n const capitalizedPrefix = prefix.charAt(0).toUpperCase() + prefix.slice(1)\n const vendorProperty = `-${prefix.toLowerCase()}-${property}`\n const camelCaseProperty = capitalizedPrefix + property.charAt(0).toUpperCase() + property.slice(1)\n\n return new CSSModifier({\n [vendorProperty]: value,\n [camelCaseProperty]: value,\n })\n}\n"],"names":["CSSModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","styles","props","property","cssProperty","css","properties","cssVariable","name","propertyName","cssVendor","prefix","capitalizedPrefix","vendorProperty","camelCaseProperty"],"mappings":";;AAkBO,MAAMA,UAAoBC,EAAyB;AAAA;AAAA,EAIxD,YAAYC,GAA6B;AAEvC,UAAMC,IAA8B,CAAA;AACpC,eAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQH,CAAO;AAC/C,MAAI,OAAOG,KAAU,cAAc,UAAUA,IACzCF,EAAwBC,CAAG,IAAKC,EAAc,KAAA,IAE9CF,EAAwBC,CAAG,IAAIC;AAGrC,UAAMF,CAAe,GAbvBG,EAAA,MAAS,QAAO,KAAA,GAChBA,EAAA,MAAS,YAAW,CAAA;AAAA,EAapB;AAAA,EAEA,MAAMC,GAAgBC,GAA+C;AACnE,QAAI,CAACA,EAAQ,QAAS;AAEtB,UAAMC,IAAS,KAAK,iBAAiB,KAAK,UAAU;AACpD,SAAK,YAAYD,EAAQ,SAASC,CAAM;AAAA,EAG1C;AAAA,EAEQ,iBAAiBC,GAAmB;AAC1C,UAAMD,IAAiC,CAAA;AAEvC,eAAW,CAACE,GAAUN,CAAK,KAAK,OAAO,QAAQK,CAAK;AAClD,UAAIL,MAAU,QAAW;AAEvB,cAAMO,IAAc,KAAK,cAAcD,CAAQ;AAC/C,QAAAF,EAAOG,CAAW,IAAI,KAAK,WAAWP,CAAK;AAAA,MAC7C;AAGF,WAAOI;AAAA,EACT;AACF;AAgCO,SAASI,EAAIC,GAA6C;AAC/D,SAAO,IAAId,EAAYc,CAAU;AACnC;AAYO,SAASF,EAAYD,GAAkBN,GAAqC;AACjF,SAAO,IAAIL,EAAY,EAAE,CAACW,CAAQ,GAAGN,GAAO;AAC9C;AAYO,SAASU,EAAYC,GAAcX,GAAqC;AAE7E,QAAMY,IAAeD,EAAK,WAAW,IAAI,IAAIA,IAAO,KAAKA,CAAI;AAC7D,SAAO,IAAIhB,EAAY,EAAE,CAACiB,CAAY,GAAGZ,GAAO;AAClD;AAYO,SAASa,EACdC,GACAR,GACAN,GACa;AAEb,QAAMe,IAAoBD,EAAO,OAAO,CAAC,EAAE,gBAAgBA,EAAO,MAAM,CAAC,GACnEE,IAAiB,IAAIF,EAAO,aAAa,IAAIR,CAAQ,IACrDW,IAAoBF,IAAoBT,EAAS,OAAO,CAAC,EAAE,gBAAgBA,EAAS,MAAM,CAAC;AAEjG,SAAO,IAAIX,EAAY;AAAA,IACrB,CAACqB,CAAc,GAAGhB;AAAA,IAClB,CAACiB,CAAiB,GAAGjB;AAAA,EAAA,CACtB;AACH;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("./base.cjs");var C=Object.defineProperty,S=(t,e,r)=>e in t?C(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,s=(t,e,r)=>S(t,typeof e!="symbol"?e+"":e,r);class p extends v.BaseModifier{constructor(e){const r={cursor:"auto"};for(const[n,o]of Object.entries(e))typeof o=="function"&&"peek"in o?r[n]=o.peek():r[n]=o;super(r),s(this,"type","cursor"),s(this,"priority",10)}apply(e,r){r.element&&(process.env.NODE_ENV==="development"&&this.validateCursorValue(this.properties.cursor),this.applyStyles(r.element,{cursor:this.properties.cursor}))}validateCursorValue(e){!["auto","default","pointer","text","wait","help","not-allowed","none","grab","grabbing","zoom-in","zoom-out","alias","cell","copy"].includes(e)&&!e.includes("url(")&&console.warn(`Unknown cursor value: "${e}". See documentation for valid cursor values.`)}}const y=class m extends v.BaseModifier{constructor(e){const r={};for(const[n,o]of Object.entries(e))typeof o=="function"&&"peek"in o?r[n]=o.peek():r[n]=o;super(r),s(this,"type","hover"),s(this,"priority",15)}apply(e,r){if(!r.element||!(this.properties.isEnabled!==!1))return;const o=`tachui-hover-${++m.hoverCount}`;r.element.classList.add(o),this.addHoverStyles(o,this.properties)}addHoverStyles(e,r){const n=this.getOrCreateStyleSheet(),o=this.formatTransition(r.transition);if(o){const l=`.${e} { transition: ${o}; }`;try{n.insertRule(l)}catch(c){console.warn("Failed to add transition rule:",c)}}const f=this.computeHoverStyles(r);if(Object.keys(f).length>0){const l=Object.entries(f).map(([d,b])=>{const h=this.toCSSProperty(d),g=["background-color","background","border-color","color"].includes(h);return`${h}: ${b}${g?" !important":""}`}).join("; "),c=`.${e}:hover { ${l} }`;try{n.insertRule(c)}catch(d){console.warn("Failed to add hover rule:",d)}}}computeHoverStyles(e){const r={};return e.effect&&Object.assign(r,this.getSwiftUIEffectStyles(e.effect)),e.hoverStyles&&Object.assign(r,e.hoverStyles),r}getSwiftUIEffectStyles(e){switch(e){case"automatic":return{transform:"scale(1.02)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)"};case"highlight":return{backgroundColor:"rgba(0, 0, 0, 0.05)",filter:"brightness(0.95)"};case"lift":return{transform:"translateY(-2px)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.15)"};case"scale":return{transform:"scale(1.05)"};default:return{}}}formatTransition(e){return e===void 0?"all 200ms ease":typeof e=="number"?`all ${e}ms ease`:e}getOrCreateStyleSheet(){const e=document.getElementById("tachui-hover-styles");if(e&&e instanceof HTMLStyleElement)return e.sheet;const r=document.createElement("style");return r.id="tachui-hover-styles",document.head.appendChild(r),r.sheet}};s(y,"hoverCount",0);let u=y;function i(t){return new p({cursor:t})}function a(t,e){return new u({effect:t,isEnabled:e})}function w(t,e){return new u({hoverStyles:t,transition:e})}function H(t,e=200){return new u({hoverStyles:t,transition:e})}function O(t,e){return new u({effect:t,isEnabled:e})}function x(){return i("pointer")}function E(){return i("grab")}function M(){return i("text")}function _(){return i("not-allowed")}function $(){return i("wait")}function k(){return i("help")}function j(t="in"){return i(t==="in"?"zoom-in":"zoom-out")}function P(){return a("lift")}function z(){return a("automatic")}function T(){return a("highlight")}function I(){return a("scale")}exports.CursorModifier=p;exports.HoverModifier=u;exports.buttonHover=P;exports.cardHover=z;exports.conditionalHover=O;exports.cursor=i;exports.disabledCursor=_;exports.draggableCursor=E;exports.helpCursor=k;exports.hover=w;exports.hoverEffect=a;exports.hoverWithTransition=H;exports.imageHover=I;exports.interactiveCursor=x;exports.linkHover=T;exports.loadingCursor=$;exports.textCursor=M;exports.zoomCursor=j;
|
|
2
|
-
//# sourceMappingURL=effects.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effects.cjs","sources":["../../src/modifiers/effects.ts"],"sourcesContent":["/**\n * Effects Modifiers - Hover effects and cursor styling\n *\n * Provides comprehensive hover effect system with SwiftUI-style effects\n * and enhanced cursor styling with complete CSS cursor support.\n */\n\nimport type { Signal } from '../reactive/types'\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\n// ============================================================================\n// Cursor System\n// ============================================================================\n\nexport type CSSCursorValue = \n // Existing values (8 values) - no breaking changes\n | 'auto' | 'default' | 'pointer' | 'text' | 'wait' | 'help' | 'not-allowed' | 'none'\n \n // New additions (7 values) - additive enhancement\n | 'grab' | 'grabbing' | 'zoom-in' | 'zoom-out' | 'alias' | 'cell' | 'copy'\n \n // Custom cursor support\n | string // CSS cursor syntax: 'url(...), fallback'\n\nexport interface CursorOptions {\n cursor: CSSCursorValue\n}\n\nexport type ReactiveCursorOptions = ReactiveModifierProps<CursorOptions>\n\nexport class CursorModifier extends BaseModifier<CursorOptions> {\n readonly type = 'cursor'\n readonly priority = 10\n\n constructor(options: ReactiveCursorOptions) {\n const resolvedOptions: CursorOptions = { cursor: 'auto' }\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Validate cursor value in development mode\n if (process.env.NODE_ENV === 'development') {\n this.validateCursorValue(this.properties.cursor)\n }\n\n this.applyStyles(context.element, { cursor: this.properties.cursor })\n \n return undefined\n }\n\n private validateCursorValue(value: string): void {\n const validCursors = [\n 'auto', 'default', 'pointer', 'text', 'wait', 'help', 'not-allowed', 'none',\n 'grab', 'grabbing', 'zoom-in', 'zoom-out', 'alias', 'cell', 'copy'\n ]\n \n if (!validCursors.includes(value) && !value.includes('url(')) {\n console.warn(`Unknown cursor value: \"${value}\". See documentation for valid cursor values.`)\n }\n }\n}\n\n// ============================================================================\n// Hover Effects System\n// ============================================================================\n\nexport type SwiftUIHoverEffect = \n | 'automatic' // SwiftUI default - subtle scaling and shadow\n | 'highlight' // Subtle background change\n | 'lift' // Elevation effect with shadow\n | 'scale' // Scale transform on hover\n\nexport interface HoverStyles {\n backgroundColor?: string\n color?: string\n transform?: string\n opacity?: number\n boxShadow?: string\n borderColor?: string\n filter?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface HoverOptions {\n effect?: SwiftUIHoverEffect\n hoverStyles?: HoverStyles\n transition?: string | number \n isEnabled?: boolean\n}\n\nexport type ReactiveHoverOptions = ReactiveModifierProps<HoverOptions>\n\nexport class HoverModifier extends BaseModifier<HoverOptions> {\n readonly type = 'hover'\n readonly priority = 15\n private static hoverCount = 0\n\n constructor(options: ReactiveHoverOptions) {\n const resolvedOptions: HoverOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Check if hover effects are enabled\n const isEnabled = this.properties.isEnabled !== false\n if (!isEnabled) return undefined\n\n // Generate unique class for hover states\n const hoverClass = `tachui-hover-${++HoverModifier.hoverCount}`\n context.element.classList.add(hoverClass)\n\n // Add hover styles to stylesheet\n this.addHoverStyles(hoverClass, this.properties)\n \n return undefined\n }\n\n private addHoverStyles(className: string, props: HoverOptions): void {\n const styleSheet = this.getOrCreateStyleSheet()\n \n // Base transition styles\n const transition = this.formatTransition(props.transition)\n if (transition) {\n const transitionRule = `.${className} { transition: ${transition}; }`\n try {\n styleSheet.insertRule(transitionRule)\n } catch (e) {\n console.warn('Failed to add transition rule:', e)\n }\n }\n\n // Hover effect styles\n const hoverStyles = this.computeHoverStyles(props)\n if (Object.keys(hoverStyles).length > 0) {\n // Use !important for critical hover properties that might conflict with inline styles\n const cssPropertiesWithImportant = Object.entries(hoverStyles)\n .map(([prop, value]) => {\n const cssProperty = this.toCSSProperty(prop)\n // Add !important to properties commonly overridden by inline styles\n // Note: Exclude 'transform' to prevent conflicts with button press states\n const needsImportant = ['background-color', 'background', 'border-color', 'color'].includes(cssProperty)\n return `${cssProperty}: ${value}${needsImportant ? ' !important' : ''}`\n })\n .join('; ')\n \n const hoverRule = `.${className}:hover { ${cssPropertiesWithImportant} }`\n \n try {\n styleSheet.insertRule(hoverRule)\n } catch (e) {\n console.warn('Failed to add hover rule:', e)\n }\n }\n }\n\n private computeHoverStyles(props: HoverOptions): HoverStyles {\n const styles: HoverStyles = {}\n\n // Apply preset SwiftUI effect if specified\n if (props.effect) {\n Object.assign(styles, this.getSwiftUIEffectStyles(props.effect))\n }\n\n // Apply custom hover styles (these override preset effects)\n if (props.hoverStyles) {\n Object.assign(styles, props.hoverStyles)\n }\n\n return styles\n }\n\n private getSwiftUIEffectStyles(effect: SwiftUIHoverEffect): HoverStyles {\n switch (effect) {\n case 'automatic':\n return {\n transform: 'scale(1.02)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)'\n }\n \n case 'highlight':\n return {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n filter: 'brightness(0.95)'\n }\n \n case 'lift':\n return {\n transform: 'translateY(-2px)',\n boxShadow: '0 8px 24px rgba(0, 0, 0, 0.15)'\n }\n \n case 'scale':\n return {\n transform: 'scale(1.05)'\n }\n \n default:\n return {}\n }\n }\n\n private formatTransition(transition?: string | number): string {\n if (transition === undefined) {\n return 'all 200ms ease' // Default transition\n }\n \n if (typeof transition === 'number') {\n return `all ${transition}ms ease`\n }\n \n return transition\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById('tachui-hover-styles')\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = 'tachui-hover-styles'\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Effects Functions\n// ============================================================================\n\n/**\n * Enhanced cursor modifier with complete CSS cursor support\n *\n * @example\n * ```typescript\n * .cursor('pointer') // Standard pointer cursor\n * .cursor('grab') // Grab cursor for draggable elements\n * .cursor('zoom-in') // Zoom cursor for zoomable content\n * .cursor('url(custom.cur), pointer') // Custom cursor with fallback\n * ```\n */\nexport function cursor(value: CSSCursorValue): CursorModifier {\n return new CursorModifier({ cursor: value })\n}\n\n/**\n * SwiftUI-style hover effect modifier with preset effects\n *\n * @example\n * ```typescript\n * .hoverEffect('automatic') // Default SwiftUI hover with scale + shadow\n * .hoverEffect('lift') // Elevation effect with shadow\n * .hoverEffect('highlight') // Subtle background change\n * .hoverEffect('scale') // Scale transform only\n * ```\n */\nexport function hoverEffect(effect: SwiftUIHoverEffect, isEnabled?: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n/**\n * Custom hover styles with optional transition\n *\n * @example\n * ```typescript\n * .hover({ \n * backgroundColor: '#f0f0f0', \n * transform: 'scale(1.05)' \n * })\n * .hover({ \n * opacity: 0.8, \n * filter: 'blur(2px)' \n * }, 300)\n * ```\n */\nexport function hover(styles: HoverStyles, transition?: string | number): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition })\n}\n\n/**\n * Hover styles with explicit transition duration\n *\n * @example\n * ```typescript\n * .hoverWithTransition({ \n * transform: 'rotate(5deg)', \n * color: '#007AFF' \n * }, 250)\n * ```\n */\nexport function hoverWithTransition(styles: HoverStyles, duration: number = 200): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition: duration })\n}\n\n/**\n * Conditional hover effect - can be toggled on/off\n *\n * @example\n * ```typescript\n * .conditionalHover('lift', isInteractive) // Signal<boolean>\n * .conditionalHover('highlight', false) // Disabled\n * ```\n */\nexport function conditionalHover(effect: SwiftUIHoverEffect, isEnabled: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n// ============================================================================\n// Cursor Presets - Common cursor patterns\n// ============================================================================\n\n/**\n * Interactive cursor - pointer with hover effect\n */\nexport function interactiveCursor(): CursorModifier {\n return cursor('pointer')\n}\n\n/**\n * Draggable cursor - grab when idle, grabbing when active\n */\nexport function draggableCursor(): CursorModifier {\n return cursor('grab')\n}\n\n/**\n * Text selection cursor\n */\nexport function textCursor(): CursorModifier {\n return cursor('text')\n}\n\n/**\n * Disabled/not-allowed cursor\n */\nexport function disabledCursor(): CursorModifier {\n return cursor('not-allowed')\n}\n\n/**\n * Loading cursor\n */\nexport function loadingCursor(): CursorModifier {\n return cursor('wait')\n}\n\n/**\n * Help cursor\n */\nexport function helpCursor(): CursorModifier {\n return cursor('help')\n}\n\n/**\n * Zoom cursor for zoomable content\n */\nexport function zoomCursor(mode: 'in' | 'out' = 'in'): CursorModifier {\n return cursor(mode === 'in' ? 'zoom-in' : 'zoom-out')\n}\n\n// ============================================================================\n// Hover Effect Presets - Common interaction patterns\n// ============================================================================\n\n/**\n * Button hover effect - lift with shadow\n */\nexport function buttonHover(): HoverModifier {\n return hoverEffect('lift')\n}\n\n/**\n * Card hover effect - subtle scale and shadow\n */\nexport function cardHover(): HoverModifier {\n return hoverEffect('automatic')\n}\n\n/**\n * Link hover effect - highlight background\n */\nexport function linkHover(): HoverModifier {\n return hoverEffect('highlight')\n}\n\n/**\n * Image hover effect - scale on hover\n */\nexport function imageHover(): HoverModifier {\n return hoverEffect('scale')\n}"],"names":["CursorModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","_HoverModifier","hoverClass","className","props","styleSheet","transition","transitionRule","e","hoverStyles","cssPropertiesWithImportant","prop","cssProperty","needsImportant","hoverRule","styles","effect","existingStyle","style","HoverModifier","cursor","hoverEffect","isEnabled","hover","hoverWithTransition","duration","conditionalHover","interactiveCursor","draggableCursor","textCursor","disabledCursor","loadingCursor","helpCursor","zoomCursor","mode","buttonHover","cardHover","linkHover","imageHover"],"mappings":"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"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { BaseModifier as p } from "./base.js";
|
|
2
|
-
var g = Object.defineProperty, S = (r, e, t) => e in r ? g(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, i = (r, e, t) => S(r, typeof e != "symbol" ? e + "" : e, t);
|
|
3
|
-
class C extends p {
|
|
4
|
-
constructor(e) {
|
|
5
|
-
const t = { cursor: "auto" };
|
|
6
|
-
for (const [n, o] of Object.entries(e))
|
|
7
|
-
typeof o == "function" && "peek" in o ? t[n] = o.peek() : t[n] = o;
|
|
8
|
-
super(t), i(this, "type", "cursor"), i(this, "priority", 10);
|
|
9
|
-
}
|
|
10
|
-
apply(e, t) {
|
|
11
|
-
t.element && (process.env.NODE_ENV === "development" && this.validateCursorValue(this.properties.cursor), this.applyStyles(t.element, { cursor: this.properties.cursor }));
|
|
12
|
-
}
|
|
13
|
-
validateCursorValue(e) {
|
|
14
|
-
![
|
|
15
|
-
"auto",
|
|
16
|
-
"default",
|
|
17
|
-
"pointer",
|
|
18
|
-
"text",
|
|
19
|
-
"wait",
|
|
20
|
-
"help",
|
|
21
|
-
"not-allowed",
|
|
22
|
-
"none",
|
|
23
|
-
"grab",
|
|
24
|
-
"grabbing",
|
|
25
|
-
"zoom-in",
|
|
26
|
-
"zoom-out",
|
|
27
|
-
"alias",
|
|
28
|
-
"cell",
|
|
29
|
-
"copy"
|
|
30
|
-
].includes(e) && !e.includes("url(") && console.warn(`Unknown cursor value: "${e}". See documentation for valid cursor values.`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const v = class y extends p {
|
|
34
|
-
constructor(e) {
|
|
35
|
-
const t = {};
|
|
36
|
-
for (const [n, o] of Object.entries(e))
|
|
37
|
-
typeof o == "function" && "peek" in o ? t[n] = o.peek() : t[n] = o;
|
|
38
|
-
super(t), i(this, "type", "hover"), i(this, "priority", 15);
|
|
39
|
-
}
|
|
40
|
-
apply(e, t) {
|
|
41
|
-
if (!t.element || !(this.properties.isEnabled !== !1)) return;
|
|
42
|
-
const o = `tachui-hover-${++y.hoverCount}`;
|
|
43
|
-
t.element.classList.add(o), this.addHoverStyles(o, this.properties);
|
|
44
|
-
}
|
|
45
|
-
addHoverStyles(e, t) {
|
|
46
|
-
const n = this.getOrCreateStyleSheet(), o = this.formatTransition(t.transition);
|
|
47
|
-
if (o) {
|
|
48
|
-
const l = `.${e} { transition: ${o}; }`;
|
|
49
|
-
try {
|
|
50
|
-
n.insertRule(l);
|
|
51
|
-
} catch (c) {
|
|
52
|
-
console.warn("Failed to add transition rule:", c);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
const d = this.computeHoverStyles(t);
|
|
56
|
-
if (Object.keys(d).length > 0) {
|
|
57
|
-
const l = Object.entries(d).map(([f, m]) => {
|
|
58
|
-
const h = this.toCSSProperty(f), b = ["background-color", "background", "border-color", "color"].includes(h);
|
|
59
|
-
return `${h}: ${m}${b ? " !important" : ""}`;
|
|
60
|
-
}).join("; "), c = `.${e}:hover { ${l} }`;
|
|
61
|
-
try {
|
|
62
|
-
n.insertRule(c);
|
|
63
|
-
} catch (f) {
|
|
64
|
-
console.warn("Failed to add hover rule:", f);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
computeHoverStyles(e) {
|
|
69
|
-
const t = {};
|
|
70
|
-
return e.effect && Object.assign(t, this.getSwiftUIEffectStyles(e.effect)), e.hoverStyles && Object.assign(t, e.hoverStyles), t;
|
|
71
|
-
}
|
|
72
|
-
getSwiftUIEffectStyles(e) {
|
|
73
|
-
switch (e) {
|
|
74
|
-
case "automatic":
|
|
75
|
-
return {
|
|
76
|
-
transform: "scale(1.02)",
|
|
77
|
-
boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)"
|
|
78
|
-
};
|
|
79
|
-
case "highlight":
|
|
80
|
-
return {
|
|
81
|
-
backgroundColor: "rgba(0, 0, 0, 0.05)",
|
|
82
|
-
filter: "brightness(0.95)"
|
|
83
|
-
};
|
|
84
|
-
case "lift":
|
|
85
|
-
return {
|
|
86
|
-
transform: "translateY(-2px)",
|
|
87
|
-
boxShadow: "0 8px 24px rgba(0, 0, 0, 0.15)"
|
|
88
|
-
};
|
|
89
|
-
case "scale":
|
|
90
|
-
return {
|
|
91
|
-
transform: "scale(1.05)"
|
|
92
|
-
};
|
|
93
|
-
default:
|
|
94
|
-
return {};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
formatTransition(e) {
|
|
98
|
-
return e === void 0 ? "all 200ms ease" : typeof e == "number" ? `all ${e}ms ease` : e;
|
|
99
|
-
}
|
|
100
|
-
getOrCreateStyleSheet() {
|
|
101
|
-
const e = document.getElementById("tachui-hover-styles");
|
|
102
|
-
if (e && e instanceof HTMLStyleElement)
|
|
103
|
-
return e.sheet;
|
|
104
|
-
const t = document.createElement("style");
|
|
105
|
-
return t.id = "tachui-hover-styles", document.head.appendChild(t), t.sheet;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
i(v, "hoverCount", 0);
|
|
109
|
-
let u = v;
|
|
110
|
-
function s(r) {
|
|
111
|
-
return new C({ cursor: r });
|
|
112
|
-
}
|
|
113
|
-
function a(r, e) {
|
|
114
|
-
return new u({ effect: r, isEnabled: e });
|
|
115
|
-
}
|
|
116
|
-
function H(r, e) {
|
|
117
|
-
return new u({ hoverStyles: r, transition: e });
|
|
118
|
-
}
|
|
119
|
-
function x(r, e = 200) {
|
|
120
|
-
return new u({ hoverStyles: r, transition: e });
|
|
121
|
-
}
|
|
122
|
-
function O(r, e) {
|
|
123
|
-
return new u({ effect: r, isEnabled: e });
|
|
124
|
-
}
|
|
125
|
-
function E() {
|
|
126
|
-
return s("pointer");
|
|
127
|
-
}
|
|
128
|
-
function _() {
|
|
129
|
-
return s("grab");
|
|
130
|
-
}
|
|
131
|
-
function $() {
|
|
132
|
-
return s("text");
|
|
133
|
-
}
|
|
134
|
-
function k() {
|
|
135
|
-
return s("not-allowed");
|
|
136
|
-
}
|
|
137
|
-
function j() {
|
|
138
|
-
return s("wait");
|
|
139
|
-
}
|
|
140
|
-
function M() {
|
|
141
|
-
return s("help");
|
|
142
|
-
}
|
|
143
|
-
function P(r = "in") {
|
|
144
|
-
return s(r === "in" ? "zoom-in" : "zoom-out");
|
|
145
|
-
}
|
|
146
|
-
function z() {
|
|
147
|
-
return a("lift");
|
|
148
|
-
}
|
|
149
|
-
function I() {
|
|
150
|
-
return a("automatic");
|
|
151
|
-
}
|
|
152
|
-
function R() {
|
|
153
|
-
return a("highlight");
|
|
154
|
-
}
|
|
155
|
-
function T() {
|
|
156
|
-
return a("scale");
|
|
157
|
-
}
|
|
158
|
-
export {
|
|
159
|
-
C as CursorModifier,
|
|
160
|
-
u as HoverModifier,
|
|
161
|
-
z as buttonHover,
|
|
162
|
-
I as cardHover,
|
|
163
|
-
O as conditionalHover,
|
|
164
|
-
s as cursor,
|
|
165
|
-
k as disabledCursor,
|
|
166
|
-
_ as draggableCursor,
|
|
167
|
-
M as helpCursor,
|
|
168
|
-
H as hover,
|
|
169
|
-
a as hoverEffect,
|
|
170
|
-
x as hoverWithTransition,
|
|
171
|
-
T as imageHover,
|
|
172
|
-
E as interactiveCursor,
|
|
173
|
-
R as linkHover,
|
|
174
|
-
j as loadingCursor,
|
|
175
|
-
$ as textCursor,
|
|
176
|
-
P as zoomCursor
|
|
177
|
-
};
|
|
178
|
-
//# sourceMappingURL=effects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sources":["../../src/modifiers/effects.ts"],"sourcesContent":["/**\n * Effects Modifiers - Hover effects and cursor styling\n *\n * Provides comprehensive hover effect system with SwiftUI-style effects\n * and enhanced cursor styling with complete CSS cursor support.\n */\n\nimport type { Signal } from '../reactive/types'\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\n// ============================================================================\n// Cursor System\n// ============================================================================\n\nexport type CSSCursorValue = \n // Existing values (8 values) - no breaking changes\n | 'auto' | 'default' | 'pointer' | 'text' | 'wait' | 'help' | 'not-allowed' | 'none'\n \n // New additions (7 values) - additive enhancement\n | 'grab' | 'grabbing' | 'zoom-in' | 'zoom-out' | 'alias' | 'cell' | 'copy'\n \n // Custom cursor support\n | string // CSS cursor syntax: 'url(...), fallback'\n\nexport interface CursorOptions {\n cursor: CSSCursorValue\n}\n\nexport type ReactiveCursorOptions = ReactiveModifierProps<CursorOptions>\n\nexport class CursorModifier extends BaseModifier<CursorOptions> {\n readonly type = 'cursor'\n readonly priority = 10\n\n constructor(options: ReactiveCursorOptions) {\n const resolvedOptions: CursorOptions = { cursor: 'auto' }\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Validate cursor value in development mode\n if (process.env.NODE_ENV === 'development') {\n this.validateCursorValue(this.properties.cursor)\n }\n\n this.applyStyles(context.element, { cursor: this.properties.cursor })\n \n return undefined\n }\n\n private validateCursorValue(value: string): void {\n const validCursors = [\n 'auto', 'default', 'pointer', 'text', 'wait', 'help', 'not-allowed', 'none',\n 'grab', 'grabbing', 'zoom-in', 'zoom-out', 'alias', 'cell', 'copy'\n ]\n \n if (!validCursors.includes(value) && !value.includes('url(')) {\n console.warn(`Unknown cursor value: \"${value}\". See documentation for valid cursor values.`)\n }\n }\n}\n\n// ============================================================================\n// Hover Effects System\n// ============================================================================\n\nexport type SwiftUIHoverEffect = \n | 'automatic' // SwiftUI default - subtle scaling and shadow\n | 'highlight' // Subtle background change\n | 'lift' // Elevation effect with shadow\n | 'scale' // Scale transform on hover\n\nexport interface HoverStyles {\n backgroundColor?: string\n color?: string\n transform?: string\n opacity?: number\n boxShadow?: string\n borderColor?: string\n filter?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface HoverOptions {\n effect?: SwiftUIHoverEffect\n hoverStyles?: HoverStyles\n transition?: string | number \n isEnabled?: boolean\n}\n\nexport type ReactiveHoverOptions = ReactiveModifierProps<HoverOptions>\n\nexport class HoverModifier extends BaseModifier<HoverOptions> {\n readonly type = 'hover'\n readonly priority = 15\n private static hoverCount = 0\n\n constructor(options: ReactiveHoverOptions) {\n const resolvedOptions: HoverOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Check if hover effects are enabled\n const isEnabled = this.properties.isEnabled !== false\n if (!isEnabled) return undefined\n\n // Generate unique class for hover states\n const hoverClass = `tachui-hover-${++HoverModifier.hoverCount}`\n context.element.classList.add(hoverClass)\n\n // Add hover styles to stylesheet\n this.addHoverStyles(hoverClass, this.properties)\n \n return undefined\n }\n\n private addHoverStyles(className: string, props: HoverOptions): void {\n const styleSheet = this.getOrCreateStyleSheet()\n \n // Base transition styles\n const transition = this.formatTransition(props.transition)\n if (transition) {\n const transitionRule = `.${className} { transition: ${transition}; }`\n try {\n styleSheet.insertRule(transitionRule)\n } catch (e) {\n console.warn('Failed to add transition rule:', e)\n }\n }\n\n // Hover effect styles\n const hoverStyles = this.computeHoverStyles(props)\n if (Object.keys(hoverStyles).length > 0) {\n // Use !important for critical hover properties that might conflict with inline styles\n const cssPropertiesWithImportant = Object.entries(hoverStyles)\n .map(([prop, value]) => {\n const cssProperty = this.toCSSProperty(prop)\n // Add !important to properties commonly overridden by inline styles\n // Note: Exclude 'transform' to prevent conflicts with button press states\n const needsImportant = ['background-color', 'background', 'border-color', 'color'].includes(cssProperty)\n return `${cssProperty}: ${value}${needsImportant ? ' !important' : ''}`\n })\n .join('; ')\n \n const hoverRule = `.${className}:hover { ${cssPropertiesWithImportant} }`\n \n try {\n styleSheet.insertRule(hoverRule)\n } catch (e) {\n console.warn('Failed to add hover rule:', e)\n }\n }\n }\n\n private computeHoverStyles(props: HoverOptions): HoverStyles {\n const styles: HoverStyles = {}\n\n // Apply preset SwiftUI effect if specified\n if (props.effect) {\n Object.assign(styles, this.getSwiftUIEffectStyles(props.effect))\n }\n\n // Apply custom hover styles (these override preset effects)\n if (props.hoverStyles) {\n Object.assign(styles, props.hoverStyles)\n }\n\n return styles\n }\n\n private getSwiftUIEffectStyles(effect: SwiftUIHoverEffect): HoverStyles {\n switch (effect) {\n case 'automatic':\n return {\n transform: 'scale(1.02)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)'\n }\n \n case 'highlight':\n return {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n filter: 'brightness(0.95)'\n }\n \n case 'lift':\n return {\n transform: 'translateY(-2px)',\n boxShadow: '0 8px 24px rgba(0, 0, 0, 0.15)'\n }\n \n case 'scale':\n return {\n transform: 'scale(1.05)'\n }\n \n default:\n return {}\n }\n }\n\n private formatTransition(transition?: string | number): string {\n if (transition === undefined) {\n return 'all 200ms ease' // Default transition\n }\n \n if (typeof transition === 'number') {\n return `all ${transition}ms ease`\n }\n \n return transition\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById('tachui-hover-styles')\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = 'tachui-hover-styles'\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Effects Functions\n// ============================================================================\n\n/**\n * Enhanced cursor modifier with complete CSS cursor support\n *\n * @example\n * ```typescript\n * .cursor('pointer') // Standard pointer cursor\n * .cursor('grab') // Grab cursor for draggable elements\n * .cursor('zoom-in') // Zoom cursor for zoomable content\n * .cursor('url(custom.cur), pointer') // Custom cursor with fallback\n * ```\n */\nexport function cursor(value: CSSCursorValue): CursorModifier {\n return new CursorModifier({ cursor: value })\n}\n\n/**\n * SwiftUI-style hover effect modifier with preset effects\n *\n * @example\n * ```typescript\n * .hoverEffect('automatic') // Default SwiftUI hover with scale + shadow\n * .hoverEffect('lift') // Elevation effect with shadow\n * .hoverEffect('highlight') // Subtle background change\n * .hoverEffect('scale') // Scale transform only\n * ```\n */\nexport function hoverEffect(effect: SwiftUIHoverEffect, isEnabled?: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n/**\n * Custom hover styles with optional transition\n *\n * @example\n * ```typescript\n * .hover({ \n * backgroundColor: '#f0f0f0', \n * transform: 'scale(1.05)' \n * })\n * .hover({ \n * opacity: 0.8, \n * filter: 'blur(2px)' \n * }, 300)\n * ```\n */\nexport function hover(styles: HoverStyles, transition?: string | number): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition })\n}\n\n/**\n * Hover styles with explicit transition duration\n *\n * @example\n * ```typescript\n * .hoverWithTransition({ \n * transform: 'rotate(5deg)', \n * color: '#007AFF' \n * }, 250)\n * ```\n */\nexport function hoverWithTransition(styles: HoverStyles, duration: number = 200): HoverModifier {\n return new HoverModifier({ hoverStyles: styles, transition: duration })\n}\n\n/**\n * Conditional hover effect - can be toggled on/off\n *\n * @example\n * ```typescript\n * .conditionalHover('lift', isInteractive) // Signal<boolean>\n * .conditionalHover('highlight', false) // Disabled\n * ```\n */\nexport function conditionalHover(effect: SwiftUIHoverEffect, isEnabled: boolean | Signal<boolean>): HoverModifier {\n return new HoverModifier({ effect, isEnabled })\n}\n\n// ============================================================================\n// Cursor Presets - Common cursor patterns\n// ============================================================================\n\n/**\n * Interactive cursor - pointer with hover effect\n */\nexport function interactiveCursor(): CursorModifier {\n return cursor('pointer')\n}\n\n/**\n * Draggable cursor - grab when idle, grabbing when active\n */\nexport function draggableCursor(): CursorModifier {\n return cursor('grab')\n}\n\n/**\n * Text selection cursor\n */\nexport function textCursor(): CursorModifier {\n return cursor('text')\n}\n\n/**\n * Disabled/not-allowed cursor\n */\nexport function disabledCursor(): CursorModifier {\n return cursor('not-allowed')\n}\n\n/**\n * Loading cursor\n */\nexport function loadingCursor(): CursorModifier {\n return cursor('wait')\n}\n\n/**\n * Help cursor\n */\nexport function helpCursor(): CursorModifier {\n return cursor('help')\n}\n\n/**\n * Zoom cursor for zoomable content\n */\nexport function zoomCursor(mode: 'in' | 'out' = 'in'): CursorModifier {\n return cursor(mode === 'in' ? 'zoom-in' : 'zoom-out')\n}\n\n// ============================================================================\n// Hover Effect Presets - Common interaction patterns\n// ============================================================================\n\n/**\n * Button hover effect - lift with shadow\n */\nexport function buttonHover(): HoverModifier {\n return hoverEffect('lift')\n}\n\n/**\n * Card hover effect - subtle scale and shadow\n */\nexport function cardHover(): HoverModifier {\n return hoverEffect('automatic')\n}\n\n/**\n * Link hover effect - highlight background\n */\nexport function linkHover(): HoverModifier {\n return hoverEffect('highlight')\n}\n\n/**\n * Image hover effect - scale on hover\n */\nexport function imageHover(): HoverModifier {\n return hoverEffect('scale')\n}"],"names":["CursorModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","_HoverModifier","hoverClass","className","props","styleSheet","transition","transitionRule","e","hoverStyles","cssPropertiesWithImportant","prop","cssProperty","needsImportant","hoverRule","styles","effect","existingStyle","style","HoverModifier","cursor","hoverEffect","isEnabled","hover","hoverWithTransition","duration","conditionalHover","interactiveCursor","draggableCursor","textCursor","disabledCursor","loadingCursor","helpCursor","zoomCursor","mode","buttonHover","cardHover","linkHover","imageHover"],"mappings":";;AAgCO,MAAMA,UAAuBC,EAA4B;AAAA,EAI9D,YAAYC,GAAgC;AAC1C,UAAMC,IAAiC,EAAE,QAAQ,OAAA;AACjD,eAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQH,CAAO;AAC/C,MAAI,OAAOG,KAAU,cAAc,UAAUA,IACzCF,EAAwBC,CAAG,IAAKC,EAAc,KAAA,IAE9CF,EAAwBC,CAAG,IAAIC;AAGrC,UAAMF,CAAe,GAZvBG,EAAA,MAAS,QAAO,QAAA,GAChBA,EAAA,MAAS,YAAW,EAAA;AAAA,EAYpB;AAAA,EAEA,MAAMC,GAAgBC,GAA+C;AACnE,IAAKA,EAAQ,YAGT,QAAQ,IAAI,aAAa,iBAC3B,KAAK,oBAAoB,KAAK,WAAW,MAAM,GAGjD,KAAK,YAAYA,EAAQ,SAAS,EAAE,QAAQ,KAAK,WAAW,QAAQ;AAAA,EAGtE;AAAA,EAEQ,oBAAoBH,GAAqB;AAM/C,IAAI,CALiB;AAAA,MACnB;AAAA,MAAQ;AAAA,MAAW;AAAA,MAAW;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAe;AAAA,MACrE;AAAA,MAAQ;AAAA,MAAY;AAAA,MAAW;AAAA,MAAY;AAAA,MAAS;AAAA,MAAQ;AAAA,IAAA,EAG5C,SAASA,CAAK,KAAK,CAACA,EAAM,SAAS,MAAM,KACzD,QAAQ,KAAK,0BAA0BA,CAAK,+CAA+C;AAAA,EAE/F;AACF;AAgCO,MAAMI,IAAN,MAAMA,UAAsBR,EAA2B;AAAA,EAK5D,YAAYC,GAA+B;AACzC,UAAMC,IAAgC,CAAA;AACtC,eAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQH,CAAO;AAC/C,MAAI,OAAOG,KAAU,cAAc,UAAUA,IACzCF,EAAwBC,CAAG,IAAKC,EAAc,KAAA,IAE9CF,EAAwBC,CAAG,IAAIC;AAGrC,UAAMF,CAAe,GAbvBG,EAAA,MAAS,QAAO,OAAA,GAChBA,EAAA,MAAS,YAAW,EAAA;AAAA,EAapB;AAAA,EAEA,MAAMC,GAAgBC,GAA+C;AAKnE,QAJI,CAACA,EAAQ,WAIT,EADc,KAAK,WAAW,cAAc,IAChC;AAGhB,UAAME,IAAa,gBAAgB,EAAED,EAAc,UAAU;AAC7D,IAAAD,EAAQ,QAAQ,UAAU,IAAIE,CAAU,GAGxC,KAAK,eAAeA,GAAY,KAAK,UAAU;AAAA,EAGjD;AAAA,EAEQ,eAAeC,GAAmBC,GAA2B;AACnE,UAAMC,IAAa,KAAK,sBAAA,GAGlBC,IAAa,KAAK,iBAAiBF,EAAM,UAAU;AACzD,QAAIE,GAAY;AACd,YAAMC,IAAiB,IAAIJ,CAAS,kBAAkBG,CAAU;AAChE,UAAI;AACF,QAAAD,EAAW,WAAWE,CAAc;AAAA,MACtC,SAASC,GAAG;AACV,gBAAQ,KAAK,kCAAkCA,CAAC;AAAA,MAClD;AAAA,IACF;AAGA,UAAMC,IAAc,KAAK,mBAAmBL,CAAK;AACjD,QAAI,OAAO,KAAKK,CAAW,EAAE,SAAS,GAAG;AAEvC,YAAMC,IAA6B,OAAO,QAAQD,CAAW,EAC1D,IAAI,CAAC,CAACE,GAAMd,CAAK,MAAM;AACtB,cAAMe,IAAc,KAAK,cAAcD,CAAI,GAGrCE,IAAiB,CAAC,oBAAoB,cAAc,gBAAgB,OAAO,EAAE,SAASD,CAAW;AACvG,eAAO,GAAGA,CAAW,KAAKf,CAAK,GAAGgB,IAAiB,gBAAgB,EAAE;AAAA,MACvE,CAAC,EACA,KAAK,IAAI,GAENC,IAAY,IAAIX,CAAS,YAAYO,CAA0B;AAErE,UAAI;AACF,QAAAL,EAAW,WAAWS,CAAS;AAAA,MACjC,SAASN,GAAG;AACV,gBAAQ,KAAK,6BAA6BA,CAAC;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,mBAAmBJ,GAAkC;AAC3D,UAAMW,IAAsB,CAAA;AAG5B,WAAIX,EAAM,UACR,OAAO,OAAOW,GAAQ,KAAK,uBAAuBX,EAAM,MAAM,CAAC,GAI7DA,EAAM,eACR,OAAO,OAAOW,GAAQX,EAAM,WAAW,GAGlCW;AAAA,EACT;AAAA,EAEQ,uBAAuBC,GAAyC;AACtE,YAAQA,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,UACL,WAAW;AAAA,UACX,WAAW;AAAA,QAAA;AAAA,MAGf,KAAK;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,QAAQ;AAAA,QAAA;AAAA,MAGZ,KAAK;AACH,eAAO;AAAA,UACL,WAAW;AAAA,UACX,WAAW;AAAA,QAAA;AAAA,MAGf,KAAK;AACH,eAAO;AAAA,UACL,WAAW;AAAA,QAAA;AAAA,MAGf;AACE,eAAO,CAAA;AAAA,IAAC;AAAA,EAEd;AAAA,EAEQ,iBAAiBV,GAAsC;AAC7D,WAAIA,MAAe,SACV,mBAGL,OAAOA,KAAe,WACjB,OAAOA,CAAU,YAGnBA;AAAA,EACT;AAAA,EAEQ,wBAAuC;AAC7C,UAAMW,IAAgB,SAAS,eAAe,qBAAqB;AAEnE,QAAIA,KAAiBA,aAAyB;AAC5C,aAAOA,EAAc;AAGvB,UAAMC,IAAQ,SAAS,cAAc,OAAO;AAC5C,WAAAA,EAAM,KAAK,uBACX,SAAS,KAAK,YAAYA,CAAK,GACxBA,EAAM;AAAA,EACf;AACF;AA3IEpB,EAHWG,GAGI,cAAa,CAAA;AAHvB,IAAMkB,IAANlB;AA+JA,SAASmB,EAAOvB,GAAuC;AAC5D,SAAO,IAAIL,EAAe,EAAE,QAAQK,GAAO;AAC7C;AAaO,SAASwB,EAAYL,GAA4BM,GAAsD;AAC5G,SAAO,IAAIH,EAAc,EAAE,QAAAH,GAAQ,WAAAM,GAAW;AAChD;AAiBO,SAASC,EAAMR,GAAqBT,GAA6C;AACtF,SAAO,IAAIa,EAAc,EAAE,aAAaJ,GAAQ,YAAAT,GAAY;AAC9D;AAaO,SAASkB,EAAoBT,GAAqBU,IAAmB,KAAoB;AAC9F,SAAO,IAAIN,EAAc,EAAE,aAAaJ,GAAQ,YAAYU,GAAU;AACxE;AAWO,SAASC,EAAiBV,GAA4BM,GAAqD;AAChH,SAAO,IAAIH,EAAc,EAAE,QAAAH,GAAQ,WAAAM,GAAW;AAChD;AASO,SAASK,IAAoC;AAClD,SAAOP,EAAO,SAAS;AACzB;AAKO,SAASQ,IAAkC;AAChD,SAAOR,EAAO,MAAM;AACtB;AAKO,SAASS,IAA6B;AAC3C,SAAOT,EAAO,MAAM;AACtB;AAKO,SAASU,IAAiC;AAC/C,SAAOV,EAAO,aAAa;AAC7B;AAKO,SAASW,IAAgC;AAC9C,SAAOX,EAAO,MAAM;AACtB;AAKO,SAASY,IAA6B;AAC3C,SAAOZ,EAAO,MAAM;AACtB;AAKO,SAASa,EAAWC,IAAqB,MAAsB;AACpE,SAAOd,EAAOc,MAAS,OAAO,YAAY,UAAU;AACtD;AASO,SAASC,IAA6B;AAC3C,SAAOd,EAAY,MAAM;AAC3B;AAKO,SAASe,IAA2B;AACzC,SAAOf,EAAY,WAAW;AAChC;AAKO,SAASgB,IAA2B;AACzC,SAAOhB,EAAY,WAAW;AAChC;AAKO,SAASiB,IAA4B;AAC1C,SAAOjB,EAAY,OAAO;AAC5B;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./base.cjs");var b=Object.defineProperty,S=(n,t,e)=>t in n?b(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,u=(n,t,e)=>S(n,typeof t!="symbol"?t+"":t,e);const f=class a extends g.BaseModifier{constructor(t){const e={};for(const[o,r]of Object.entries(t))typeof r=="function"&&"peek"in r?e[o]=r.peek():e[o]=r;super(e),u(this,"type","pseudoElement"),u(this,"priority",50)}apply(t,e){if(!e.element)return;const o=`tachui-pseudo-${++a.elementCount}`;e.element.classList.add(o),this.properties.before&&this.addPseudoElementRule(o,"before",this.properties.before),this.properties.after&&this.addPseudoElementRule(o,"after",this.properties.after)}addPseudoElementRule(t,e,o){const r=this.getOrCreateStyleSheet(),c=this.generatePseudoElementCSS(t,e,o);try{r.insertRule(c)}catch(d){console.warn("Failed to add pseudo-element rule:",d)}}generatePseudoElementCSS(t,e,o){const r=`.${t}::${e}`,c=[];return o.content||(o.content='""'),Object.entries(o).forEach(([d,p])=>{if(p!==void 0){const h=this.toCSSProperty(d),m=this.formatCSSValue(d,p);c.push(`${h}: ${m}`)}}),`${r} { ${c.join("; ")} }`}formatCSSValue(t,e){return t==="content"?typeof e=="string"&&!e.startsWith('"')&&!e.startsWith("'")?`"${e}"`:e:typeof e=="number"?["opacity","z-index","line-height","flex-grow","flex-shrink","order","column-count","font-weight"].includes(this.toCSSProperty(t))?String(e):`${e}px`:String(e)}getOrCreateStyleSheet(){const t=document.getElementById(a.styleSheetId);if(t&&t instanceof HTMLStyleElement)return t.sheet;const e=document.createElement("style");return e.id=a.styleSheetId,document.head.appendChild(e),e.sheet}};u(f,"styleSheetId","tachui-pseudo-elements");u(f,"elementCount",0);let s=f;function i(n){return new s({before:n})}function l(n){return new s({after:n})}function y(n){return new s(n)}function C(n,t={}){return i({content:n,display:"inline-block",...t})}function P(n,t={}){return l({content:n,display:"inline-block",...t})}function w(n="#ddd",t=1,e=16){return i({content:"",display:"inline-block",width:e,height:t,backgroundColor:n,marginRight:8,verticalAlign:"middle"})}function E(n="#ddd",t=1,e=16){return l({content:"",display:"inline-block",width:e,height:t,backgroundColor:n,marginLeft:8,verticalAlign:"middle"})}function x(n='"',t='"'){return new s({before:{content:n,fontSize:"1.2em",color:"#666",marginRight:4},after:{content:t,fontSize:"1.2em",color:"#666",marginLeft:4}})}function R(n="currentColor",t=1,e=1){return l({content:"",position:"absolute",bottom:0,left:0,right:0,height:t,backgroundColor:n,opacity:e})}function $(n="#ff3b30",t=6,e=""){return l({content:e,position:"absolute",top:-2,right:-2,width:e?"auto":t,height:t,minWidth:t,backgroundColor:n,borderRadius:"50%",fontSize:10,color:"white",textAlign:"center",lineHeight:e?t/10:1,padding:e?"2px 4px":0,display:"flex",alignItems:"center",justifyContent:"center"})}function k(n,t="top",e="#333",o="white"){return i({content:n,position:"absolute",backgroundColor:e,color:o,padding:"4px 8px",borderRadius:4,fontSize:12,whiteSpace:"nowrap",zIndex:1e3,opacity:0,pointerEvents:"none",transition:"opacity 0.2s ease",...{top:{bottom:"100%",left:"50%",transform:"translateX(-50%)",marginBottom:5},bottom:{top:"100%",left:"50%",transform:"translateX(-50%)",marginTop:5},left:{right:"100%",top:"50%",transform:"translateY(-50%)",marginRight:5},right:{left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:5}}[t]})}function A(n,t="#ff3b30",e="white"){return i({content:n,position:"absolute",top:8,right:-8,backgroundColor:t,color:e,padding:"2px 12px",fontSize:11,fontWeight:"bold",textTransform:"uppercase",transform:"rotate(45deg)",transformOrigin:"center",zIndex:10})}function O(n=20,t="#007AFF",e=2){return i({content:"",display:"inline-block",width:n,height:n,border:`${e}px solid transparent`,borderTop:`${e}px solid ${t}`,borderRadius:"50%",animation:"spin 1s linear infinite"})}exports.PseudoElementModifier=s;exports.after=l;exports.badge=$;exports.before=i;exports.cornerRibbon=A;exports.iconAfter=P;exports.iconBefore=C;exports.lineAfter=E;exports.lineBefore=w;exports.pseudoElements=y;exports.quotes=x;exports.spinner=O;exports.tooltip=k;exports.underline=R;
|
|
2
|
-
//# sourceMappingURL=elements.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elements.cjs","sources":["../../src/modifiers/elements.ts"],"sourcesContent":["/**\n * Pseudo-element Modifiers - ::before and ::after styling\n *\n * Provides comprehensive pseudo-element support for ::before and ::after\n * with dynamic stylesheet generation and flexible styling options.\n */\n\nimport type { DOMNode } from '../runtime/types'\nimport { BaseModifier } from './base'\nimport type { ModifierContext, ReactiveModifierProps } from './types'\n\nexport interface PseudoElementStyles {\n content?: string // Content for pseudo-element (required)\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n top?: number | string\n right?: number | string\n bottom?: number | string\n left?: number | string\n width?: number | string\n height?: number | string\n backgroundColor?: string\n color?: string\n fontSize?: number | string\n fontWeight?: string | number\n fontFamily?: string\n lineHeight?: number | string\n textAlign?: 'left' | 'center' | 'right' | 'justify'\n margin?: number | string\n marginTop?: number | string\n marginRight?: number | string\n marginBottom?: number | string\n marginLeft?: number | string\n padding?: number | string\n paddingTop?: number | string\n paddingRight?: number | string\n paddingBottom?: number | string\n paddingLeft?: number | string\n border?: string\n borderTop?: string\n borderRight?: string\n borderBottom?: string\n borderLeft?: string\n borderRadius?: number | string\n borderWidth?: number | string\n borderStyle?: string\n borderColor?: string\n boxShadow?: string\n textShadow?: string\n opacity?: number\n transform?: string\n transformOrigin?: string\n zIndex?: number\n display?: string\n flexDirection?: string\n flexWrap?: string\n alignItems?: string\n justifyContent?: string\n alignSelf?: string\n flex?: string\n flexGrow?: number\n flexShrink?: number\n flexBasis?: string\n order?: number\n overflow?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowX?: 'visible' | 'hidden' | 'scroll' | 'auto'\n overflowY?: 'visible' | 'hidden' | 'scroll' | 'auto'\n whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line'\n textOverflow?: 'clip' | 'ellipsis'\n cursor?: string\n pointerEvents?: 'auto' | 'none'\n visibility?: 'visible' | 'hidden'\n backgroundImage?: string\n backgroundSize?: string\n backgroundPosition?: string\n backgroundRepeat?: string\n filter?: string\n backdropFilter?: string\n transition?: string\n animation?: string\n [key: string]: any // Allow any CSS property\n}\n\nexport interface PseudoElementOptions {\n before?: PseudoElementStyles\n after?: PseudoElementStyles\n}\n\nexport type ReactivePseudoElementOptions = ReactiveModifierProps<PseudoElementOptions>\n\nexport class PseudoElementModifier extends BaseModifier<PseudoElementOptions> {\n readonly type = 'pseudoElement'\n readonly priority = 50 // High priority to ensure pseudo-elements are applied last\n private static styleSheetId = 'tachui-pseudo-elements'\n private static elementCount = 0\n\n constructor(options: ReactivePseudoElementOptions) {\n const resolvedOptions: PseudoElementOptions = {}\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === 'function' && 'peek' in value) {\n ;(resolvedOptions as any)[key] = (value as any).peek()\n } else {\n ;(resolvedOptions as any)[key] = value\n }\n }\n super(resolvedOptions)\n }\n\n apply(_node: DOMNode, context: ModifierContext): DOMNode | undefined {\n if (!context.element) return\n\n // Generate unique class for pseudo-element styles\n const pseudoClass = `tachui-pseudo-${++PseudoElementModifier.elementCount}`\n context.element.classList.add(pseudoClass)\n\n // Add pseudo-element styles to stylesheet\n if (this.properties.before) {\n this.addPseudoElementRule(pseudoClass, 'before', this.properties.before)\n }\n\n if (this.properties.after) {\n this.addPseudoElementRule(pseudoClass, 'after', this.properties.after)\n }\n \n return undefined\n }\n\n private addPseudoElementRule(\n className: string, \n pseudoType: 'before' | 'after', \n styles: PseudoElementStyles\n ): void {\n const styleSheet = this.getOrCreateStyleSheet()\n const cssRule = this.generatePseudoElementCSS(className, pseudoType, styles)\n \n try {\n styleSheet.insertRule(cssRule)\n } catch (e) {\n console.warn('Failed to add pseudo-element rule:', e)\n }\n }\n\n private generatePseudoElementCSS(\n className: string, \n pseudoType: 'before' | 'after', \n styles: PseudoElementStyles\n ): string {\n const selector = `.${className}::${pseudoType}`\n const cssProperties: string[] = []\n\n // Ensure content property is set (required for pseudo-elements)\n if (!styles.content) {\n styles.content = '\"\"'\n }\n\n Object.entries(styles).forEach(([prop, value]) => {\n if (value !== undefined) {\n const cssProperty = this.toCSSProperty(prop)\n const cssValue = this.formatCSSValue(prop, value)\n cssProperties.push(`${cssProperty}: ${cssValue}`)\n }\n })\n\n return `${selector} { ${cssProperties.join('; ')} }`\n }\n\n private formatCSSValue(property: string, value: any): string {\n // Handle special cases for pseudo-element properties\n if (property === 'content') {\n // Ensure content is properly quoted if it's not already\n if (typeof value === 'string' && !value.startsWith('\"') && !value.startsWith(\"'\")) {\n return `\"${value}\"`\n }\n return value\n }\n\n if (typeof value === 'number') {\n // Properties that should be unitless\n const unitlessProperties = [\n 'opacity', 'z-index', 'line-height', 'flex-grow', 'flex-shrink', \n 'order', 'column-count', 'font-weight'\n ]\n \n if (unitlessProperties.includes(this.toCSSProperty(property))) {\n return String(value)\n }\n \n return `${value}px`\n }\n\n return String(value)\n }\n\n private getOrCreateStyleSheet(): CSSStyleSheet {\n const existingStyle = document.getElementById(PseudoElementModifier.styleSheetId)\n \n if (existingStyle && existingStyle instanceof HTMLStyleElement) {\n return existingStyle.sheet!\n }\n\n const style = document.createElement('style')\n style.id = PseudoElementModifier.styleSheetId\n document.head.appendChild(style)\n return style.sheet!\n }\n}\n\n// ============================================================================\n// Pseudo-element Functions\n// ============================================================================\n\n/**\n * ::before pseudo-element modifier\n *\n * @example\n * ```typescript\n * .before({\n * content: '★',\n * position: 'absolute',\n * left: -20,\n * color: '#ffd700'\n * })\n * ```\n */\nexport function before(styles: PseudoElementStyles): PseudoElementModifier {\n return new PseudoElementModifier({ before: styles })\n}\n\n/**\n * ::after pseudo-element modifier\n *\n * @example\n * ```typescript\n * .after({\n * content: '',\n * position: 'absolute',\n * bottom: 0,\n * left: 0,\n * right: 0,\n * height: 2,\n * backgroundColor: '#007AFF'\n * })\n * ```\n */\nexport function after(styles: PseudoElementStyles): PseudoElementModifier {\n return new PseudoElementModifier({ after: styles })\n}\n\n/**\n * Both ::before and ::after pseudo-elements\n *\n * @example\n * ```typescript\n * .pseudoElements({\n * before: { content: '\"', fontSize: 24, color: '#666' },\n * after: { content: '\"', fontSize: 24, color: '#666' }\n * })\n * ```\n */\nexport function pseudoElements(options: PseudoElementOptions): PseudoElementModifier {\n return new PseudoElementModifier(options)\n}\n\n// ============================================================================\n// Common Pseudo-element Patterns\n// ============================================================================\n\n/**\n * Icon before content using a Unicode character\n *\n * @example\n * ```typescript\n * .iconBefore('★', { color: '#ffd700', marginRight: 8 })\n * .iconBefore('→', { color: '#007AFF' })\n * ```\n */\nexport function iconBefore(\n icon: string, \n styles: Omit<PseudoElementStyles, 'content'> = {}\n): PseudoElementModifier {\n return before({\n content: icon,\n display: 'inline-block',\n ...styles\n })\n}\n\n/**\n * Icon after content using a Unicode character\n *\n * @example\n * ```typescript\n * .iconAfter('→', { color: '#007AFF', marginLeft: 8 })\n * .iconAfter('✓', { color: '#34c759' })\n * ```\n */\nexport function iconAfter(\n icon: string, \n styles: Omit<PseudoElementStyles, 'content'> = {}\n): PseudoElementModifier {\n return after({\n content: icon,\n display: 'inline-block',\n ...styles\n })\n}\n\n/**\n * Decorative line before content\n *\n * @example\n * ```typescript\n * .lineBefore() // Default line\n * .lineBefore('#007AFF', 2, 20) // Blue line, 2px thick, 20px long\n * ```\n */\nexport function lineBefore(\n color: string = '#ddd',\n thickness: number = 1,\n length: number = 16\n): PseudoElementModifier {\n return before({\n content: '',\n display: 'inline-block',\n width: length,\n height: thickness,\n backgroundColor: color,\n marginRight: 8,\n verticalAlign: 'middle'\n })\n}\n\n/**\n * Decorative line after content\n *\n * @example\n * ```typescript\n * .lineAfter() // Default line\n * .lineAfter('#007AFF', 2, 20) // Blue line, 2px thick, 20px long\n * ```\n */\nexport function lineAfter(\n color: string = '#ddd',\n thickness: number = 1,\n length: number = 16\n): PseudoElementModifier {\n return after({\n content: '',\n display: 'inline-block',\n width: length,\n height: thickness,\n backgroundColor: color,\n marginLeft: 8,\n verticalAlign: 'middle'\n })\n}\n\n/**\n * Quote marks around content\n *\n * @example\n * ```typescript\n * .quotes() // Default quotes (\" \")\n * .quotes('«', '»') // Custom quote characters\n * ```\n */\nexport function quotes(\n openQuote: string = '\"',\n closeQuote: string = '\"'\n): PseudoElementModifier {\n return new PseudoElementModifier({\n before: {\n content: openQuote,\n fontSize: '1.2em',\n color: '#666',\n marginRight: 4\n },\n after: {\n content: closeQuote,\n fontSize: '1.2em',\n color: '#666',\n marginLeft: 4\n }\n })\n}\n\n/**\n * Underline decoration using ::after\n *\n * @example\n * ```typescript\n * .underline() // Default underline\n * .underline('#007AFF', 2, 0.2) // Blue underline, 2px thick, 20% opacity\n * ```\n */\nexport function underline(\n color: string = 'currentColor',\n thickness: number = 1,\n opacity: number = 1\n): PseudoElementModifier {\n return after({\n content: '',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: thickness,\n backgroundColor: color,\n opacity\n })\n}\n\n/**\n * Badge or notification dot using ::after\n *\n * @example\n * ```typescript\n * .badge() // Default red dot\n * .badge('#007AFF', 8, '2') // Blue badge with \"2\" text\n * ```\n */\nexport function badge(\n color: string = '#ff3b30',\n size: number = 6,\n text: string = ''\n): PseudoElementModifier {\n return after({\n content: text,\n position: 'absolute',\n top: -2,\n right: -2,\n width: text ? 'auto' : size,\n height: size,\n minWidth: size,\n backgroundColor: color,\n borderRadius: '50%',\n fontSize: 10,\n color: 'white',\n textAlign: 'center',\n lineHeight: text ? size / 10 : 1,\n padding: text ? '2px 4px' : 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n })\n}\n\n/**\n * Tooltip using ::before with positioning\n *\n * @example\n * ```typescript\n * .tooltip('This is a tooltip')\n * .tooltip('Custom tooltip', 'bottom', '#333')\n * ```\n */\nexport function tooltip(\n text: string,\n position: 'top' | 'bottom' | 'left' | 'right' = 'top',\n backgroundColor: string = '#333',\n textColor: string = 'white'\n): PseudoElementModifier {\n const positionStyles: Record<string, any> = {\n top: { bottom: '100%', left: '50%', transform: 'translateX(-50%)', marginBottom: 5 },\n bottom: { top: '100%', left: '50%', transform: 'translateX(-50%)', marginTop: 5 },\n left: { right: '100%', top: '50%', transform: 'translateY(-50%)', marginRight: 5 },\n right: { left: '100%', top: '50%', transform: 'translateY(-50%)', marginLeft: 5 }\n }\n\n return before({\n content: text,\n position: 'absolute',\n backgroundColor,\n color: textColor,\n padding: '4px 8px',\n borderRadius: 4,\n fontSize: 12,\n whiteSpace: 'nowrap',\n zIndex: 1000,\n opacity: 0,\n pointerEvents: 'none',\n transition: 'opacity 0.2s ease',\n ...positionStyles[position]\n })\n}\n\n/**\n * Corner ribbon using ::before\n *\n * @example\n * ```typescript\n * .cornerRibbon('New!') // Default red ribbon\n * .cornerRibbon('Sale', '#ff9500') // Orange sale ribbon\n * ```\n */\nexport function cornerRibbon(\n text: string,\n color: string = '#ff3b30',\n textColor: string = 'white'\n): PseudoElementModifier {\n return before({\n content: text,\n position: 'absolute',\n top: 8,\n right: -8,\n backgroundColor: color,\n color: textColor,\n padding: '2px 12px',\n fontSize: 11,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n transform: 'rotate(45deg)',\n transformOrigin: 'center',\n zIndex: 10\n })\n}\n\n/**\n * Loading spinner using ::before with animation\n *\n * @example\n * ```typescript\n * .spinner() // Default spinner\n * .spinner(16, '#007AFF', 2) // Custom size, color, border width\n * ```\n */\nexport function spinner(\n size: number = 20,\n color: string = '#007AFF',\n borderWidth: number = 2\n): PseudoElementModifier {\n return before({\n content: '',\n display: 'inline-block',\n width: size,\n height: size,\n border: `${borderWidth}px solid transparent`,\n borderTop: `${borderWidth}px solid ${color}`,\n borderRadius: '50%',\n animation: 'spin 1s linear infinite'\n })\n}"],"names":["_PseudoElementModifier","BaseModifier","options","resolvedOptions","key","value","__publicField","_node","context","pseudoClass","className","pseudoType","styles","styleSheet","cssRule","e","selector","cssProperties","prop","cssProperty","cssValue","property","existingStyle","style","PseudoElementModifier","before","after","pseudoElements","iconBefore","icon","iconAfter","lineBefore","color","thickness","length","lineAfter","quotes","openQuote","closeQuote","underline","opacity","badge","size","text","tooltip","position","backgroundColor","textColor","cornerRibbon","spinner","borderWidth"],"mappings":"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"}
|