@vectoriox/iox-builder 1.4.5 → 1.4.7

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.
@@ -1609,7 +1609,7 @@ class TypographyGroupStyleConfig extends GroupStyleConfig {
1609
1609
  constructor() {
1610
1610
  super(StyleCategory.Typography, [
1611
1611
  new TraitConfig('fontFamily', 'Font Family', TraitInputType.FontFamily, [], 'Poppins, sans-serif'),
1612
- new TraitConfig('fontSize', 'Font Size', TraitInputType.Scrub, { min: 8, max: 200, step: 1, units: UNITS_FIXED }, '16px'),
1612
+ new TraitConfig('fontSize', 'Font Size', TraitInputType.Scrub, { min: 8, max: 200, step: 1, units: UNITS_ALL }, '16px'),
1613
1613
  new TraitConfig('fontWeight', 'Font Weight', TraitInputType.Select, ['100', '200', '300', '400', '500', '600', '700', '800', '900'], '400'),
1614
1614
  new TraitConfig('color', 'Color', TraitInputType.Color, { allowGradient: false, allowTransparent: false, formats: ['hex', 'rgb', 'hsl'] }, '#000000'),
1615
1615
  new TraitConfig('lineHeight', 'Line Height', TraitInputType.Select, ['1', '1.2', '1.4', '1.5', '1.75', '2', '2.5'], '1.5'),
@@ -1641,6 +1641,23 @@ class EffectsGroupStyleConfig extends GroupStyleConfig {
1641
1641
  ]);
1642
1642
  }
1643
1643
  }
1644
+ /**
1645
+ * Returns a fresh set of all 8 style-group configs in canonical display order.
1646
+ * Every call produces new TraitConfig instances so different component nodes
1647
+ * never share mutable state.
1648
+ */
1649
+ function buildFullStyleTraits() {
1650
+ return [
1651
+ new PositionGroupStyleConfig(),
1652
+ new LayoutGroupStyleConfig(),
1653
+ new SizeGroupStyleConfig(),
1654
+ new TypographyGroupStyleConfig(),
1655
+ new SpacingGroupStyleConfig(),
1656
+ new BorderGroupStyleConfig(),
1657
+ new BackgroundGroupStyleConfig(),
1658
+ new EffectsGroupStyleConfig(),
1659
+ ];
1660
+ }
1644
1661
  function flattenSchemaFields(properties, prefix = '') {
1645
1662
  const result = [];
1646
1663
  for (const [key, field] of Object.entries(properties)) {
@@ -4530,16 +4547,7 @@ class BuilderButtonComponentConfig extends ComponentConfig {
4530
4547
  new TraitConfig('link', 'Link', TraitInputType.Text, undefined, '#'),
4531
4548
  new TraitConfig('variant', 'Variant', TraitInputType.Select, ['primary', 'outlined', 'text'], 'primary'),
4532
4549
  ];
4533
- this.styleTraits = [
4534
- new PositionGroupStyleConfig(),
4535
- new LayoutGroupStyleConfig(),
4536
- new SizeGroupStyleConfig(),
4537
- new TypographyGroupStyleConfig(),
4538
- new SpacingGroupStyleConfig(),
4539
- new BorderGroupStyleConfig(),
4540
- new BackgroundGroupStyleConfig(),
4541
- new EffectsGroupStyleConfig(),
4542
- ];
4550
+ this.styleTraits = buildFullStyleTraits();
4543
4551
  }
4544
4552
  }
4545
4553
 
@@ -4559,15 +4567,7 @@ class ButtonBlockComponentConfig extends ComponentConfig {
4559
4567
  new TraitConfig('target', 'Target', TraitInputType.Select, ['_self', '_blank'], '_self', false, { trait: 'tag', values: 'a' }),
4560
4568
  new TraitConfig('type', 'Type', TraitInputType.Select, ['button', 'submit', 'reset'], 'button', false, { trait: 'tag', values: 'button' }),
4561
4569
  ];
4562
- this.styleTraits = [
4563
- new PositionGroupStyleConfig(),
4564
- new LayoutGroupStyleConfig(),
4565
- new SizeGroupStyleConfig(),
4566
- new SpacingGroupStyleConfig(),
4567
- new BorderGroupStyleConfig(),
4568
- new BackgroundGroupStyleConfig(),
4569
- new EffectsGroupStyleConfig(),
4570
- ];
4570
+ this.styleTraits = buildFullStyleTraits();
4571
4571
  this.applyStyleDefaults({
4572
4572
  display: 'inline-flex',
4573
4573
  alignItems: 'center',
@@ -4595,15 +4595,7 @@ class CardComponentConfig extends ComponentConfig {
4595
4595
  new TraitConfig('image', 'Image URL', TraitInputType.Media, { mode: 'compact' }, 'https://via.placeholder.com/150'),
4596
4596
  new TraitConfig('description', 'Description', TraitInputType.Text, undefined, 'This is a default card description.')
4597
4597
  ];
4598
- this.styleTraits = [
4599
- new PositionGroupStyleConfig(),
4600
- new LayoutGroupStyleConfig(),
4601
- new SizeGroupStyleConfig(),
4602
- new SpacingGroupStyleConfig(),
4603
- new BorderGroupStyleConfig(),
4604
- new BackgroundGroupStyleConfig(),
4605
- new EffectsGroupStyleConfig(),
4606
- ];
4598
+ this.styleTraits = buildFullStyleTraits();
4607
4599
  this.applyStyleDefaults({
4608
4600
  width: '200px',
4609
4601
  height: 'auto',
@@ -4622,14 +4614,7 @@ class BuilderContainerComponentConfig extends ComponentConfig {
4622
4614
  super('Container', 'app-builder-container', 'ph-thin ph-square', 'Layout');
4623
4615
  this.children = [];
4624
4616
  this.traits = [];
4625
- this.styleTraits = [
4626
- new LayoutGroupStyleConfig(),
4627
- new SizeGroupStyleConfig(),
4628
- new SpacingGroupStyleConfig(),
4629
- new BorderGroupStyleConfig(),
4630
- new BackgroundGroupStyleConfig(),
4631
- new EffectsGroupStyleConfig(),
4632
- ];
4617
+ this.styleTraits = buildFullStyleTraits();
4633
4618
  this.applyStyleDefaults({
4634
4619
  width: '100%',
4635
4620
  height: 'auto',
@@ -4644,14 +4629,7 @@ class BuilderDividerComponentConfig extends ComponentConfig {
4644
4629
  constructor() {
4645
4630
  super('Divider', 'app-builder-divider', 'ph-thin ph-minus', 'Layout');
4646
4631
  this.traits = [];
4647
- this.styleTraits = [
4648
- new LayoutGroupStyleConfig(),
4649
- new SizeGroupStyleConfig(),
4650
- new BackgroundGroupStyleConfig(),
4651
- new SpacingGroupStyleConfig(),
4652
- new BorderGroupStyleConfig(),
4653
- new EffectsGroupStyleConfig(),
4654
- ];
4632
+ this.styleTraits = buildFullStyleTraits();
4655
4633
  this.applyStyleDefaults({
4656
4634
  width: '100%',
4657
4635
  height: '1px',
@@ -4668,16 +4646,7 @@ class BuilderHeadingComponentConfig extends ComponentConfig {
4668
4646
  new TraitConfig('content', 'Content', TraitInputType.Text, undefined, 'Heading'),
4669
4647
  new TraitConfig('level', 'Level', TraitInputType.Select, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], 'h2'),
4670
4648
  ];
4671
- this.styleTraits = [
4672
- new PositionGroupStyleConfig(),
4673
- new LayoutGroupStyleConfig(),
4674
- new SizeGroupStyleConfig(),
4675
- new TypographyGroupStyleConfig(),
4676
- new SpacingGroupStyleConfig(),
4677
- new BorderGroupStyleConfig(),
4678
- new BackgroundGroupStyleConfig(),
4679
- new EffectsGroupStyleConfig(),
4680
- ];
4649
+ this.styleTraits = buildFullStyleTraits();
4681
4650
  this.applyStyleDefaults({
4682
4651
  fontSize: '32px',
4683
4652
  fontWeight: '700',
@@ -4692,19 +4661,11 @@ class BuilderIconComponentConfig extends ComponentConfig {
4692
4661
  this.traits = [
4693
4662
  new TraitConfig('iconClass', 'Icon', TraitInputType.Icon, undefined, 'ph-thin ph-star'),
4694
4663
  ];
4695
- this.styleTraits = [
4696
- new PositionGroupStyleConfig(),
4697
- new LayoutGroupStyleConfig(),
4698
- new SizeGroupStyleConfig(),
4699
- new GroupStyleConfig(StyleCategory.Typography, [
4700
- new TraitConfig('fontSize', 'Size', TraitInputType.Scrub, { min: 8, max: 200, step: 1, units: UNITS_FIXED }, '24px'),
4701
- new TraitConfig('color', 'Color', TraitInputType.Color, { allowGradient: false, allowTransparent: false, formats: ['hex', 'rgb', 'hsl'] }, '#374151'),
4702
- ]),
4703
- new SpacingGroupStyleConfig(),
4704
- new BorderGroupStyleConfig(),
4705
- new BackgroundGroupStyleConfig(),
4706
- new EffectsGroupStyleConfig(),
4707
- ];
4664
+ this.styleTraits = buildFullStyleTraits();
4665
+ this.applyStyleDefaults({
4666
+ fontSize: '24px',
4667
+ color: '#374151',
4668
+ });
4708
4669
  }
4709
4670
  }
4710
4671
 
@@ -4721,14 +4682,7 @@ class BuilderImageComponentConfig extends ComponentConfig {
4721
4682
  new TraitConfig('alt', 'Alt Text', TraitInputType.Text, undefined, 'Image'),
4722
4683
  new TraitConfig('objectFit', 'Object Fit', TraitInputType.Select, ['cover', 'contain', 'fill', 'none'], 'cover'),
4723
4684
  ];
4724
- this.styleTraits = [
4725
- new PositionGroupStyleConfig(),
4726
- new LayoutGroupStyleConfig(),
4727
- new SizeGroupStyleConfig(),
4728
- new SpacingGroupStyleConfig(),
4729
- new BorderGroupStyleConfig(),
4730
- new BackgroundGroupStyleConfig(),
4731
- ];
4685
+ this.styleTraits = buildFullStyleTraits();
4732
4686
  this.applyStyleDefaults({
4733
4687
  width: '300px',
4734
4688
  aspectRatio: '1/1',
@@ -4758,12 +4712,7 @@ class BuilderLinkComponentConfig extends ComponentConfig {
4758
4712
  { label: 'Full window', value: '_top' },
4759
4713
  ], '_self'),
4760
4714
  ];
4761
- this.styleTraits = [
4762
- new PositionGroupStyleConfig(),
4763
- new SpacingGroupStyleConfig(),
4764
- new TypographyGroupStyleConfig(),
4765
- new EffectsGroupStyleConfig(),
4766
- ];
4715
+ this.styleTraits = buildFullStyleTraits();
4767
4716
  }
4768
4717
  }
4769
4718
 
@@ -4788,15 +4737,7 @@ class BuilderLinkedContainerConfig extends ComponentConfig {
4788
4737
  { label: 'Full window', value: '_top' },
4789
4738
  ], '_self'),
4790
4739
  ];
4791
- this.styleTraits = [
4792
- new PositionGroupStyleConfig(),
4793
- new LayoutGroupStyleConfig(),
4794
- new SizeGroupStyleConfig(),
4795
- new SpacingGroupStyleConfig(),
4796
- new BorderGroupStyleConfig(),
4797
- new BackgroundGroupStyleConfig(),
4798
- new EffectsGroupStyleConfig(),
4799
- ];
4740
+ this.styleTraits = buildFullStyleTraits();
4800
4741
  this.applyStyleDefaults({
4801
4742
  width: 'auto',
4802
4743
  height: 'auto',
@@ -4825,14 +4766,7 @@ class RepeaterComponentConfig extends ComponentConfig {
4825
4766
  default: 10,
4826
4767
  },
4827
4768
  ];
4828
- this.styleTraits = [
4829
- new LayoutGroupStyleConfig(),
4830
- new SizeGroupStyleConfig(),
4831
- new SpacingGroupStyleConfig(),
4832
- new BorderGroupStyleConfig(),
4833
- new BackgroundGroupStyleConfig(),
4834
- new EffectsGroupStyleConfig(),
4835
- ];
4769
+ this.styleTraits = buildFullStyleTraits();
4836
4770
  this.applyStyleDefaults({
4837
4771
  width: '100%',
4838
4772
  height: 'auto',
@@ -4843,16 +4777,9 @@ class RepeaterComponentConfig extends ComponentConfig {
4843
4777
  class SectionComponentConfig extends ComponentConfig {
4844
4778
  constructor() {
4845
4779
  super('Section', 'app-section', 'ph-thin ph-rows', 'Layout');
4846
- this.children = []; // marks this config as a layout component — RenderDirective checks `node.children !== undefined`
4780
+ this.children = [];
4847
4781
  this.traits = [];
4848
- this.styleTraits = [
4849
- new LayoutGroupStyleConfig(),
4850
- new SizeGroupStyleConfig(),
4851
- new SpacingGroupStyleConfig(),
4852
- new BorderGroupStyleConfig(),
4853
- new BackgroundGroupStyleConfig(),
4854
- new EffectsGroupStyleConfig(),
4855
- ];
4782
+ this.styleTraits = buildFullStyleTraits();
4856
4783
  this.applyStyleDefaults({
4857
4784
  width: 'auto',
4858
4785
  height: 'auto',
@@ -4867,11 +4794,7 @@ class BuilderSpacerComponentConfig extends ComponentConfig {
4867
4794
  constructor() {
4868
4795
  super('Spacer', 'app-builder-spacer', 'ph-thin ph-arrows-vertical', 'Layout');
4869
4796
  this.traits = [];
4870
- this.styleTraits = [
4871
- new LayoutGroupStyleConfig(),
4872
- new SizeGroupStyleConfig(),
4873
- new EffectsGroupStyleConfig(),
4874
- ];
4797
+ this.styleTraits = buildFullStyleTraits();
4875
4798
  this.applyStyleDefaults({
4876
4799
  width: '100%',
4877
4800
  height: '40px',
@@ -4890,16 +4813,7 @@ class TextBlockComponentConfig extends ComponentConfig {
4890
4813
  new TraitConfig('content', 'Content', TraitInputType.Text, undefined, 'Enter text here'),
4891
4814
  new TraitConfig('tag', 'Tag', TraitInputType.Select, ['p', 'span'], 'p'),
4892
4815
  ];
4893
- this.styleTraits = [
4894
- new PositionGroupStyleConfig(),
4895
- new LayoutGroupStyleConfig(),
4896
- new SizeGroupStyleConfig(),
4897
- new TypographyGroupStyleConfig(),
4898
- new SpacingGroupStyleConfig(),
4899
- new BorderGroupStyleConfig(),
4900
- new BackgroundGroupStyleConfig(),
4901
- new EffectsGroupStyleConfig(),
4902
- ];
4816
+ this.styleTraits = buildFullStyleTraits();
4903
4817
  this.applyStyleDefaults({
4904
4818
  display: 'block',
4905
4819
  width: '100%',
@@ -4918,5 +4832,5 @@ class TextBlockComponentConfig extends ComponentConfig {
4918
4832
  * Generated bundle index. Do not edit.
4919
4833
  */
4920
4834
 
4921
- export { ACTION_TYPE_OPTIONS, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DeviceMode, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, GroupStyleConfig, INTERACTION_STATES, IOX_CONTENT_SERVICE, IOX_FONT_MANAGER, InteractionEngineService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PresetRegistryService, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, buildPresetStyleTraits, defaultPageSettings, generateNodeId, resolveTraitControllerType, resolveTraitOptions };
4835
+ export { ACTION_TYPE_OPTIONS, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DeviceMode, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, GroupStyleConfig, INTERACTION_STATES, IOX_CONTENT_SERVICE, IOX_FONT_MANAGER, InteractionEngineService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PresetRegistryService, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, generateNodeId, resolveTraitControllerType, resolveTraitOptions };
4922
4836
  //# sourceMappingURL=vectoriox-iox-builder.mjs.map