@vectoriox/iox-builder 2.7.0 → 2.8.1

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.
@@ -151,6 +151,9 @@ var TraitInputType;
151
151
  TraitInputType["Range"] = "range";
152
152
  TraitInputType["Icon"] = "icon";
153
153
  TraitInputType["Media"] = "media";
154
+ /** Ordered list of images (URL / one-by-one / filebox; per-item binding in a later phase).
155
+ * Controller registered in the consumer (iox-cms-client) as `mediaList`. Value: GalleryImage[]. */
156
+ TraitInputType["MediaList"] = "mediaList";
154
157
  TraitInputType["FontFamily"] = "fontFamily";
155
158
  TraitInputType["GridTemplate"] = "gridTemplate";
156
159
  TraitInputType["SectionLabel"] = "sectionLabel";
@@ -224,6 +227,7 @@ function resolveTraitControllerType(type) {
224
227
  case TraitInputType.SectionLabel: return 'sectionLabel';
225
228
  case TraitInputType.Icon: return 'icon';
226
229
  case TraitInputType.Media: return 'media';
230
+ case TraitInputType.MediaList: return 'mediaList';
227
231
  case TraitInputType.FontFamily: return 'select';
228
232
  case TraitInputType.GridTemplate: return 'gridTemplate';
229
233
  case TraitInputType.Textarea: return 'textarea';
@@ -7998,6 +8002,53 @@ class BuilderDividerComponentConfig extends ComponentConfig {
7998
8002
  }
7999
8003
  }
8000
8004
 
8005
+ /**
8006
+ * Gallery — crossfade image gallery (working name; "fade" is the first effect, not the component).
8007
+ *
8008
+ * The RENDER component is the shared engine twin `ClientGalleryComponent` (`iox-gallery`) from
8009
+ * `@vectoriox/iox-ui` — reused directly in the builder (like Image reuses BuilderImageComponent), so
8010
+ * there is ONE implementation of the crossfade for both canvas and live site. This config only
8011
+ * declares the editable traits + the minimal style groups (size + spacing, per product decision).
8012
+ *
8013
+ * Population (v1): the `images` MediaList trait (URL / one-by-one / filebox / paste). Data-source
8014
+ * binding (`source`/`sourcePath`) is a later phase. See gallery-component-plan.md.
8015
+ */
8016
+ class GalleryConfig extends ComponentConfig {
8017
+ constructor() {
8018
+ super('Gallery', 'iox-gallery', 'ph-thin ph-images', 'Media');
8019
+ this.traits = [
8020
+ // ── Images ────────────────────────────────────────────────────────
8021
+ new TraitConfig('__imagesLabel', 'Images', TraitInputType.SectionLabel),
8022
+ new TraitConfig('images', 'Images', TraitInputType.MediaList, undefined, []),
8023
+ // ── Playback ──────────────────────────────────────────────────────
8024
+ new TraitConfig('__playbackLabel', 'Playback', TraitInputType.SectionLabel),
8025
+ // Effect is a Select scaffolded for future effects; v1 lists only Fade.
8026
+ new TraitConfig('effect', 'Effect', TraitInputType.Select, [{ label: 'Fade', value: 'fade' }], 'fade'),
8027
+ // Durations are milliseconds — use a plain Number field (Scrub renders a px unit label).
8028
+ new TraitConfig('showDuration', 'Show duration (ms)', TraitInputType.Number, undefined, 4000),
8029
+ new TraitConfig('fadeDuration', 'Fade duration (ms)', TraitInputType.Number, undefined, 1000),
8030
+ new TraitConfig('autoStart', 'Auto start', TraitInputType.Checkbox, undefined, true),
8031
+ ];
8032
+ // Styling: size + spacing + border + background (letterbox). No typography (not text-bearing).
8033
+ this.styleTraits = [
8034
+ new PositionGroupStyleConfig(),
8035
+ new SizeGroupStyleConfig(),
8036
+ new SpacingGroupStyleConfig(),
8037
+ new BorderGroupStyleConfig(),
8038
+ new BackgroundGroupStyleConfig(),
8039
+ ];
8040
+ // Size traits stay at their group default (auto) so a gallery starts unconstrained. The one
8041
+ // exception is `minHeight: 200px` — the image layers are absolutely positioned (no intrinsic
8042
+ // height), so without a floor a freshly-dropped, unsized gallery would collapse to 0px and be
8043
+ // invisible. min-height is a style-engine default on `.iox-node` (not scoped component CSS),
8044
+ // so the user can freely override it.
8045
+ this.applyStyleDefaults({
8046
+ minHeight: '200px',
8047
+ backgroundColor: '#000000',
8048
+ });
8049
+ }
8050
+ }
8051
+
8001
8052
  class BuilderHeadingComponentConfig extends ComponentConfig {
8002
8053
  constructor() {
8003
8054
  super('Heading', 'app-builder-heading', 'ph-thin ph-text-h', 'Basic');
@@ -8399,5 +8450,5 @@ class BuilderSpacerComponentConfig extends ComponentConfig {
8399
8450
  * Generated bundle index. Do not edit.
8400
8451
  */
8401
8452
 
8402
- export { ACTION_TYPE_OPTIONS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DataSourceType, DeviceMode, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, EffectsGroupStyleConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SymbolRegistryService, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, findNodeLocation, flattenSchemaFields, generateNodeId, resolveTraitControllerType, resolveTraitOptions, wrapNode };
8453
+ export { ACTION_TYPE_OPTIONS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DataSourceRegistryService, DataSourceType, DeviceMode, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS$1 as EASING_OPTIONS, EffectsGroupStyleConfig, GalleryConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, InteractionsPanelComponent, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SymbolRegistryService, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, findNodeLocation, flattenSchemaFields, generateNodeId, resolveTraitControllerType, resolveTraitOptions, wrapNode };
8403
8454
  //# sourceMappingURL=vectoriox-iox-builder.mjs.map