@vectoriox/iox-builder 11.12.1 → 11.13.0

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.
@@ -20,7 +20,7 @@ import * as i1$1 from '@vectoriox/iox-ui';
20
20
  import { nodeCssId, needsGroupName, resolveBoundValue, STRUCTURAL_STATES as STRUCTURAL_STATES$1, VALIDATION_STATES as VALIDATION_STATES$1, VALIDATION_STATE_CLASS as VALIDATION_STATE_CLASS$1, DEFAULT_WIDTH_BY_TYPE, TEXT_DIRECTION_KEY, TEXT_ALIGN_KEY, TextAlign, COLOR_SCHEME_TRAIT, COLOR_SCHEMES, ColorScheme, LinkType, MAX_LINES_KEY, A11yTrait, BREAKPOINTS, Breakpoint, withSchemeInk, stripSuppressedProps, DeclarationContext, planPartRule, gateHoverRule, planResponsiveRules, resolveStyleProps, planStateRule, splitOuterProps, OUTER_STYLE_PROPS, compileTokenCssBlocks, catalogFontId, fontsForTokens, GOOGLE_FONTS_FILE_ORIGIN, googleFontHref, compileDeclarations, isLastEmittedStateKey, wrapInBreakpointQuery, BreakpointQueryKind, NEW_NODE_STYLE_DEFAULTS, defaultElementStyleFor, applyElementStyle, planDataSource, dataSourcePlanToRequest, normalizeCollectionResult, resolveRepeaterItems, getByPath, computeRelative, ContextStore, ENTRANCE_ACTION_TYPES, EXIT_ACTION_TYPES, ComponentInstanceRegistryService, entranceStartsHidden, isActionEnabled, splitPressFeedback, isHoverPointer, isContextAction, contextActionEffect, resolveContextValue, effectiveActionType, INTERACTION_HIDDEN_ATTRIBUTE, motionAllowed, settleInteraction, settleModeFor, playInteraction, resolveInteractionEasing, entranceDelay, repeatedRowIndex, entrancePreStateStyle, buildInteractionKeyframes, cascadeChain, declaredInputNames, emptyImagePlaceholder, syncNodeDesignClasses, nodeTraitValue, syncNodeA11yAttributes, nodeA11yAttributes, safeSetInput, colorSchemeOf, withStateTransitions, composeVirtualTraits, stateNamesIn, partClassName, switchElementStyle, releaseElementStyle, countOverrides, setOverride, breakpointDef, breakpointForWidth, FormRenderState, needsAccessibleName, resolveInputs, setInputOverride, barReserveClass, collectContextSlotKeys, withContextSlots, compilePageStyle, nodeUsesContext, isScrolled, SCROLLED_ATTRIBUTE, syncSubmitButtons, IS_PREVIEW, buttonBlockHref, bootSlider, IoxPageModule, PALETTE_PRESETS, elementStyleById, PART_CLASS_NAMES } from '@vectoriox/iox-ui';
21
21
  export { ComponentInstanceRegistryService, VIRTUAL_TRAIT_KEYS, composeVirtualTraits } from '@vectoriox/iox-ui';
22
22
  import { StructureEdit, isAccordionPart, isDisclosurePart, isSliderPart, isTabsPart, isSegmentedPart, structureRefusal, StructureRefusal, SegmentedRole, SEGMENTED_MAX_OPTIONS, AccordionRole, SEGMENTED_MIN_OPTIONS, isExclusiveItemPart, TabsRole, ITEM_OPEN_STATE, readStyle, isSegmentedRoot, segmentedDefaultOn, segmentedOptions, isTabsRoot, isTabsFromContent, tabsTriggers, isAccordionRoot, isAccordionFromContent, accordionItems, initialAccordionOpen, accordionBehaviour, exclusiveItemLabel, exclusiveRootOf, tabTriggerOf, tabLabel, removeTabPair, tabPanelOf, tabsListOf, tabsPanelsOf, nextTabKey, CompositeBehaviourTrait, ACCORDION_DEFAULT_ONS, TabsBehaviourTrait, TABS_ACTIVATE_ONS, TABS_ORIENTATIONS, onCompositeItemState, isCompositeItemOn, runCompositeItemAction, shouldScrollToItem, rowIndexOf as rowIndexOf$1, slideIndexForRow, DisclosureRole, isExclusiveTrigger, compositeScopeId, compositeRowKeys, isExclusiveRoot, ExclusiveRuntime, exclusiveDefaultOf, exclusiveLabelOf, exclusiveBehaviourOf, exclusiveKindOf, compositeKindOfRole, AccordionRuntime, isToggleKind, closestAccordionItem, isAnyCompositeRoot, SceneRole, isExclusiveList, buildCardRecipe, buildBadge, buildChip, buildAccordionRecipe, buildDisclosureRecipe, buildTabsRecipe, buildSegmentedRecipe, buildLightboxRecipe, NO_ELEMENT_STYLE, CompositeKind, SliderRole, accordionItemLabel, segmentedOptionLabel, isExclusivePanels, isLockedPart, accordionRootOf, accordionItemOf, addAccordionItem, addTabPair, segmentedAddRefusal, addSegmentedOption, isCompositeItem, accordionHeadingLevel, isCompositePanel, isCompositeTrigger, splitSliderChildren, hasSliderParts } from '@vectoriox/iox-ui/composite-core';
23
- import { formContentInHost, isInteractiveHost, findFormContentInHosts } from '@vectoriox/iox-ui/forms-core';
23
+ import { formContentInHost, isInteractiveHost, findFormContentInHosts, FORM_CHANNEL_ROLE, channelHref, channelOpensNewTab, FORM_ACTIONS_ROLE, SUBMIT_BUTTON_NODE_TYPE } from '@vectoriox/iox-ui/forms-core';
24
24
  import { Subject, BehaviorSubject, of, forkJoin } from 'rxjs';
25
25
  import interact from 'interactjs';
26
26
  import { map, catchError } from 'rxjs/operators';
@@ -5412,6 +5412,8 @@ function syncNodeDesign(ref, node, emptyLabel) {
5412
5412
  syncEmptyImagePlaceholder(ref, node, emptyLabel);
5413
5413
  }
5414
5414
 
5415
+ /** The Field type, whose Date control has a design-time Open state on the canvas. */
5416
+ const FIELD_TYPE = 'Field';
5415
5417
  // Module-level counter — unique drop-list ID per Section instance across the whole app session.
5416
5418
  let dropListCounter = 0;
5417
5419
  /**
@@ -5685,6 +5687,12 @@ class RenderDirective {
5685
5687
  // safeSetInput for every component that does not declare it.
5686
5688
  if (node.responsive)
5687
5689
  safeSetInput(componentRef, 'responsive', node.responsive);
5690
+ // A Date field's design-time Open state (premium N8): "Showing on canvas ▸ Open" draws its calendar under it so
5691
+ // the author can style the Calendar parts — the R2 state every hidden-at-rest part reads (CC1.3 / CC2).
5692
+ if (node.type === FIELD_TYPE && this.designState && node.id) {
5693
+ const id = node.id;
5694
+ this.childSubs.push(this.designState.state$.subscribe(() => safeSetInput(componentRef, 'designOpen', this.designState.isShown(id))));
5695
+ }
5688
5696
  // Empty images (DS3): a MARKED Image shows the shared placeholder whenever its source is empty —
5689
5697
  // the "Add image" label on the editing canvas, the bare blank anywhere else (Preview), which is
5690
5698
  // what the live site shows. An unmarked Image gets null and renders exactly as before. Set from
@@ -13236,13 +13244,30 @@ function buildFormPreset(def, createConfig) {
13236
13244
  setTrait(field, 'optionsText', spec.optionsText);
13237
13245
  if (spec.rows)
13238
13246
  setTrait(field, 'rows', spec.rows);
13247
+ if (spec.multiple)
13248
+ setTrait(field, 'multiple', true);
13249
+ if (spec.appearance)
13250
+ setTrait(field, 'appearance', spec.appearance);
13251
+ if (spec.earliest !== undefined)
13252
+ setTrait(field, 'earliest', spec.earliest);
13253
+ if (spec.latest !== undefined)
13254
+ setTrait(field, 'latest', spec.latest);
13239
13255
  children.push(field);
13240
13256
  }
13241
13257
  const submit = createConfig('SubmitButton');
13242
13258
  if (!submit)
13243
13259
  return null;
13244
13260
  setTrait(submit, 'label', def.submitLabel);
13245
- children.push(submit);
13261
+ if (def.channel) {
13262
+ // Send and the second channel share ONE row (premium N2) — it stays on screen after the form has sent.
13263
+ const row = buildFormActionsRow(submit, def.channel, '', createConfig);
13264
+ if (!row)
13265
+ return null;
13266
+ children.push(row);
13267
+ }
13268
+ else {
13269
+ children.push(submit);
13270
+ }
13246
13271
  // Both state blocks, every time. They are not optional: a form without them is the silent-form
13247
13272
  // failure this design exists to prevent (decision D7).
13248
13273
  const success = createConfig('FormSuccess');
@@ -13272,6 +13297,14 @@ const FIELD_KIND_PRESETS = Object.freeze([
13272
13297
  label: 'Pick one',
13273
13298
  optionsText: 'First choice\nSecond choice\nThird choice',
13274
13299
  },
13300
+ {
13301
+ // Premium N1: chips — one or several of a few visible choices; tap to pick, the arrow keys move a one-answer row.
13302
+ control: 'choices', name: 'Choice chips', icon: 'ph-thin ph-list-checks',
13303
+ description: 'Pick one or several, as chips. The answer is the words picked.',
13304
+ label: 'What do you need?',
13305
+ optionsText: 'First choice\nSecond choice\nThird choice',
13306
+ multiple: true,
13307
+ },
13275
13308
  {
13276
13309
  control: 'select', name: 'Dropdown', icon: 'ph-thin ph-caret-circle-down',
13277
13310
  description: 'Pick one from a list that folds away.',
@@ -13303,8 +13336,118 @@ function buildFieldKindPreset(def, createConfig) {
13303
13336
  setTrait(field, 'control', def.control);
13304
13337
  if (def.optionsText)
13305
13338
  setTrait(field, 'optionsText', def.optionsText);
13339
+ if (def.multiple)
13340
+ setTrait(field, 'multiple', true);
13306
13341
  return field;
13307
13342
  }
13343
+ /** The element style a second channel wears: the quieter button beside Send. */
13344
+ const CHANNEL_STYLE = 'button-secondary';
13345
+ const BUTTON_LABEL_STYLE$1 = 'button-label';
13346
+ /**
13347
+ * The second channel (premium N2): a ButtonBlock that links, wearing the secondary button, its words a Text wearing
13348
+ * `button-label`, the role `form.channel`. Its address is the OWNER's — built from what they typed by forms-core
13349
+ * `channelHref`, '' when they typed nothing (the Publishable gate then blocks publishing: never a made-up number).
13350
+ */
13351
+ function buildFormChannel(channel, input, createConfig) {
13352
+ const button = createConfig('ButtonBlock');
13353
+ const words = textNode(channel.label, createConfig);
13354
+ if (!button || !words)
13355
+ return null;
13356
+ button.role = FORM_CHANNEL_ROLE;
13357
+ setTrait(button, 'tag', 'a');
13358
+ setTrait(button, 'linkType', 'external');
13359
+ setChannelAddress(button, channel.kind, input);
13360
+ if (button.elementStyle !== CHANNEL_STYLE)
13361
+ switchElementStyle(button, button.elementStyle, CHANNEL_STYLE);
13362
+ if (words.elementStyle !== BUTTON_LABEL_STYLE$1)
13363
+ switchElementStyle(words, words.elementStyle, BUTTON_LABEL_STYLE$1);
13364
+ button.children = [words];
13365
+ return button;
13366
+ }
13367
+ /** Point a channel at what the author typed — the address, and a new tab for WhatsApp and a web link. */
13368
+ function setChannelAddress(button, kind, input) {
13369
+ setTrait(button, 'href', channelHref(kind, input));
13370
+ setTrait(button, 'target', channelOpensNewTab(kind) ? '_blank' : '_self');
13371
+ }
13372
+ /**
13373
+ * The form's actions row (role `form.actions`): Send, then the channel, side by side, wrapping on a narrow screen. A
13374
+ * FieldGroup — the form's own layout row — so the shared form CSS keeps it on screen after a success.
13375
+ */
13376
+ function buildFormActionsRow(submit, channel, input, createConfig) {
13377
+ const row = createConfig('FieldGroup');
13378
+ const link = buildFormChannel(channel, input, createConfig);
13379
+ if (!row || !link)
13380
+ return null;
13381
+ row.role = FORM_ACTIONS_ROLE;
13382
+ setStyle(row, 'flexWrap', 'wrap');
13383
+ setStyle(row, 'alignItems', 'center');
13384
+ setStyle(row, 'gap', '12px');
13385
+ row.children = [submit, link];
13386
+ return row;
13387
+ }
13388
+ /** The form's second channel node, if it has one (anywhere in its subtree, never inside a nested form). */
13389
+ function formChannelOf(form) {
13390
+ const visit = (nodes) => {
13391
+ for (const n of nodes ?? []) {
13392
+ if (n.role === FORM_CHANNEL_ROLE)
13393
+ return n;
13394
+ if (n.type === 'Form')
13395
+ continue;
13396
+ const hit = visit(n.children);
13397
+ if (hit)
13398
+ return hit;
13399
+ }
13400
+ return null;
13401
+ };
13402
+ return visit(form?.children);
13403
+ }
13404
+ /**
13405
+ * "Add a second way to reach you" on an existing form (premium N2): the channel goes beside the form's FIRST submit
13406
+ * button — the submit moves into a new actions row in its place, or the channel joins the row it is already in. Null
13407
+ * when the form already has one or has no submit button. Mutates the form's tree; the caller records the undo step.
13408
+ */
13409
+ function addFormChannel(form, channel, input, createConfig) {
13410
+ if (formChannelOf(form))
13411
+ return null;
13412
+ const found = findWithParent(form, n => n.type === SUBMIT_BUTTON_NODE_TYPE);
13413
+ if (!found)
13414
+ return null;
13415
+ const { node: submit, parent } = found;
13416
+ const siblings = parent.children;
13417
+ if (parent.role === FORM_ACTIONS_ROLE) {
13418
+ const link = buildFormChannel(channel, input, createConfig);
13419
+ if (!link)
13420
+ return null;
13421
+ siblings.splice(siblings.indexOf(submit) + 1, 0, link);
13422
+ return link;
13423
+ }
13424
+ const row = buildFormActionsRow(submit, channel, input, createConfig);
13425
+ if (!row)
13426
+ return null;
13427
+ siblings.splice(siblings.indexOf(submit), 1, row);
13428
+ return formChannelOf(row);
13429
+ }
13430
+ function findWithParent(root, match) {
13431
+ for (const child of root.children ?? []) {
13432
+ if (match(child))
13433
+ return { node: child, parent: root };
13434
+ if (child.type === 'Form')
13435
+ continue;
13436
+ const hit = findWithParent(child, match);
13437
+ if (hit)
13438
+ return hit;
13439
+ }
13440
+ return null;
13441
+ }
13442
+ function setStyle(node, prop, value) {
13443
+ for (const group of (node.styleTraits ?? [])) {
13444
+ const trait = group?.traits?.find((t) => t?.name === prop);
13445
+ if (trait) {
13446
+ trait.default = value;
13447
+ return;
13448
+ }
13449
+ }
13450
+ }
13308
13451
  function textNode(content, createConfig) {
13309
13452
  const text = createConfig('Text');
13310
13453
  if (!text)
@@ -14160,7 +14303,25 @@ const FIELD_PARTS = [
14160
14303
  { key: 'help', label: 'Note', className: PART_CLASS_NAMES['Field']['help'] },
14161
14304
  { key: 'error', label: 'Error message', className: PART_CLASS_NAMES['Field']['error'] },
14162
14305
  { key: 'required', label: 'Required mark', className: PART_CLASS_NAMES['Field']['required'] },
14306
+ // Premium M3: a Choices field's chip (N1) and a Date's calendar and its days (N8 — shown on the canvas by
14307
+ // "Showing on canvas ▸ Open"). Their look is the contract's `chip` / `calendar` / `calendar-day`; a part style
14308
+ // here is this field's own.
14309
+ { key: 'chip', label: 'Choice chip', className: PART_CLASS_NAMES['Field']['chip'] },
14310
+ { key: 'calendar', label: 'Calendar', className: PART_CLASS_NAMES['Field']['calendar'] },
14311
+ { key: 'calendarDay', label: 'Calendar day', className: PART_CLASS_NAMES['Field']['calendarDay'] },
14163
14312
  ];
14313
+ /** The Field traits the Bindings panel's Field section edits (premium M3) — never generic rows, so every word is a
14314
+ * translation key: a Choices field's appearance and "several", a Date's Earliest / Latest. */
14315
+ var FieldTrait;
14316
+ (function (FieldTrait) {
14317
+ FieldTrait["Control"] = "control";
14318
+ FieldTrait["Multiple"] = "multiple";
14319
+ FieldTrait["Appearance"] = "appearance";
14320
+ FieldTrait["Earliest"] = "earliest";
14321
+ FieldTrait["Latest"] = "latest";
14322
+ })(FieldTrait || (FieldTrait = {}));
14323
+ /** The SubmitButton's "Sent" words (premium N2) — empty: the catalog's "Sent" in the page's language. */
14324
+ const SENT_LABEL_TRAIT = 'sentLabel';
14164
14325
  /** Every style group — the state blocks and field group are ordinary containers to style. */
14165
14326
  const fullStyles = () => buildFullStyleTraits();
14166
14327
  /** Layout-ish groups for a form shell: it arranges fields, it is not text. */
@@ -14264,6 +14425,8 @@ class FieldComponentConfig extends ComponentConfig {
14264
14425
  { label: 'Checkbox', value: 'checkbox' },
14265
14426
  { label: 'Switch', value: 'switch' },
14266
14427
  { label: 'Radio group', value: 'radio' },
14428
+ // Premium N1: one or several of a few visible choices, as chips (or the look's rows).
14429
+ { label: 'Choices', value: 'choices' },
14267
14430
  { label: 'Slider', value: 'range' },
14268
14431
  { label: 'Date', value: 'date' },
14269
14432
  { label: 'Time', value: 'time' },
@@ -14274,7 +14437,16 @@ class FieldComponentConfig extends ComponentConfig {
14274
14437
  // enforcement nor the file. See forms-and-inputs-plan.md → Remaining work P0/1.
14275
14438
  { label: 'Hidden', value: 'hidden' },
14276
14439
  ], 'text'),
14277
- new TraitConfig('placeholder', 'Hint inside the box', TraitInputType.Text, undefined, '', false, { trait: 'control', values: ['text', 'email', 'tel', 'url', 'number', 'password', 'textarea', 'select'] }),
14440
+ new TraitConfig('placeholder', 'Hint inside the box', TraitInputType.Text, undefined, '', false, { trait: 'control', values: ['text', 'email', 'tel', 'url', 'number', 'password', 'textarea', 'select', 'date'] }),
14441
+ // Choices (N1) and Date (N8): edited in the Bindings panel's own Field section (cms-client), whose words
14442
+ // are translated — hidden from the generic rows there.
14443
+ new TraitConfig(FieldTrait.Multiple, 'Several can be chosen', TraitInputType.Checkbox, undefined, false, false, { trait: 'control', values: 'choices' }),
14444
+ new TraitConfig(FieldTrait.Appearance, 'Appearance', TraitInputType.Select, [
14445
+ { label: 'Chips', value: 'chips' },
14446
+ { label: 'List', value: 'list' },
14447
+ ], 'chips', false, { trait: 'control', values: 'choices' }),
14448
+ new TraitConfig(FieldTrait.Earliest, 'Earliest', TraitInputType.Text, undefined, '', false, { trait: 'control', values: 'date' }),
14449
+ new TraitConfig(FieldTrait.Latest, 'Latest', TraitInputType.Text, undefined, '', false, { trait: 'control', values: 'date' }),
14278
14450
  new TraitConfig('help', 'Help text', TraitInputType.Text, undefined, ''),
14279
14451
  new TraitConfig('rows', 'Rows', TraitInputType.Number, undefined, 4, false, { trait: 'control', values: 'textarea' }),
14280
14452
  new TraitConfig('rangeMin', 'Min', TraitInputType.Number, undefined, 0, false, { trait: 'control', values: 'range' }),
@@ -14287,7 +14459,7 @@ class FieldComponentConfig extends ComponentConfig {
14287
14459
  new TraitConfig('__optionsLabel', 'Options', TraitInputType.SectionLabel),
14288
14460
  // One per line, `value|Label` or just the label. A richer editor arrives with bound
14289
14461
  // options in Phase 2; this keeps v1 to one control instead of a new trait type.
14290
- new TraitConfig('optionsText', 'Choices (one per line)', TraitInputType.Textarea, undefined, '', false, { trait: 'control', values: ['select', 'radio'] }),
14462
+ new TraitConfig('optionsText', 'Choices (one per line)', TraitInputType.Textarea, undefined, '', false, { trait: 'control', values: ['select', 'radio', 'choices'] }),
14291
14463
  new TraitConfig('__validationLabel', 'What this field demands', TraitInputType.SectionLabel),
14292
14464
  new TraitConfig('required', 'They must fill it in', TraitInputType.Checkbox, undefined, false),
14293
14465
  // The additive rule list (minLength, pattern, matches, …). Unused rules are invisible
@@ -14323,6 +14495,8 @@ class SubmitButtonComponentConfig extends ComponentConfig {
14323
14495
  this.traits = [
14324
14496
  new TraitConfig('label', 'Label', TraitInputType.Text, undefined, 'Send'),
14325
14497
  new TraitConfig('loadingLabel', 'While sending', TraitInputType.Text, undefined, 'Sending…'),
14498
+ // Premium N2: what it says once the form has sent, beside a check drawn once. Empty: "Sent".
14499
+ new TraitConfig(SENT_LABEL_TRAIT, 'Once sent', TraitInputType.Text, undefined, ''),
14326
14500
  new TraitConfig('disableWhileSubmitting', 'Disable while sending', TraitInputType.Checkbox, undefined, true),
14327
14501
  ];
14328
14502
  this.styleTraits = fullStyles();
@@ -14807,5 +14981,5 @@ class BuilderSpacerComponentConfig extends ComponentConfig {
14807
14981
  * Generated bundle index. Do not edit.
14808
14982
  */
14809
14983
 
14810
- export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BOUND_ICON, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, BusinessSpecimenView, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, COMPOSITE_PRESETS, CanvasDesignStateService, CanvasShowState, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, CompositeCanvasService, CompositePaletteGroup, CompositePresetId, DEFAULT_ESSENTIAL_TRAITS, DESCRIPTOR_MAX_LENGTH, DRAG_HANDLE_ATTR, DROP_REFUSED_CLASS, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_STATE_BLOCK_TYPES, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GLOBALS_AFTER_CLASS, GalleryConfig, GlobalCanvasLayer, GroupStyleConfig, HIDDEN_AT_REST_LABEL_KEY, HIDDEN_AT_REST_ROLES, HIDDEN_AT_REST_TYPES, INSERT_REFUSAL_LABEL_KEYS, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_CONTENT_TYPE_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InsertRefusal, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PAGE_TRANSITION_EASING_OPTIONS, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PhoneMenuOpenerAction, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, REPEATER_SOURCE_PROP, REPEATER_TYPE, REVEALED_WHILE_SELECTED_ROLES, ROOT_ESCAPE_PX, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, RootZone, SCREEN_WIDTH_OPTIONS, SILENT_REFUSALS, STRUCTURAL_STATES, SUPPORTED_STATES, SceneCanvasService, SectionComponent, SectionComponentConfig, SelectionReveal, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StructureFix, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TOGGLE_PART_ROLES, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, VideoConfig, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, auditNodes, bindingLabel, bindingLabels, buildBusinessSpecimen, buildCompositePreset, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, builderCompositeFactory, canFluidise, canvasEmptyImageLabel, canvasHostDisplay, collapseColumnsProps, columnCountOf, compositeStructureFindings, defaultBuilderLabels, defaultPageSettings, deleteTabPair, displayTriggerOf, dropChildren, dropTargetLabel, duplicateTabPair, escapesRoot, essentialTraitsFor, findNodeByIdInEither, findNodeLocation, findParentOf, flattenLayerTree, flattenSchemaFields, fluidiseProps, generateNodeId, globalCanvasLayer, hiddenAtBase, hiddenUntilItemOn, inPhoneMenuContext, insertRefusal, insertRefusalLabel, interactionTargets, isHiddenAt, isHiddenAtRest, isPhoneMenuOpener, isPinnedGlobal, isSpecimen, itemsOnAtRest, markSpecimen, matchesControlSearch, nearestFormNode, neverShown, nodeAncestorPath, nodeAncestorPathInEither, nodeDescriptor, nodeStyleMap, overlayGlobals, pathToNode, phoneMenuOf, phoneMenuShowsAt, refreshSubtree, regenerateNodeIds, removalRefusal, reorderProps, repeaterSourceAlias, repeaterSubLabel, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, retypeNode, rootEscapeBand, rootZone, selectionRevealOf, setOverlayPreview, setStyleTrait, setTrait, shortDescriptor, shownBeforeControl, sourceContentType, sourceTypeLabel, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, syncNodeInputs, tabPairLabel, tabsRootForPart, textNode, upsertNodeStyles, visibilityProps, walkNodes, wrapNode };
14984
+ export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BOUND_ICON, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, BusinessSpecimenView, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, COMPOSITE_PRESETS, CanvasDesignStateService, CanvasShowState, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, CompositeCanvasService, CompositePaletteGroup, CompositePresetId, DEFAULT_ESSENTIAL_TRAITS, DESCRIPTOR_MAX_LENGTH, DRAG_HANDLE_ATTR, DROP_REFUSED_CLASS, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_STATE_BLOCK_TYPES, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FieldTrait, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GLOBALS_AFTER_CLASS, GalleryConfig, GlobalCanvasLayer, GroupStyleConfig, HIDDEN_AT_REST_LABEL_KEY, HIDDEN_AT_REST_ROLES, HIDDEN_AT_REST_TYPES, INSERT_REFUSAL_LABEL_KEYS, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_CONTENT_TYPE_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InsertRefusal, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PAGE_TRANSITION_EASING_OPTIONS, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PhoneMenuOpenerAction, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, REPEATER_SOURCE_PROP, REPEATER_TYPE, REVEALED_WHILE_SELECTED_ROLES, ROOT_ESCAPE_PX, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, RootZone, SCREEN_WIDTH_OPTIONS, SENT_LABEL_TRAIT, SILENT_REFUSALS, STRUCTURAL_STATES, SUPPORTED_STATES, SceneCanvasService, SectionComponent, SectionComponentConfig, SelectionReveal, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StructureFix, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TOGGLE_PART_ROLES, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, VideoConfig, ViewportService, ZOOM_OPTIONS, addFormChannel, arrayItemSchemaFields, arraySchemaFields, auditNodes, bindingLabel, bindingLabels, buildBusinessSpecimen, buildCompositePreset, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormActionsRow, buildFormChannel, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, builderCompositeFactory, canFluidise, canvasEmptyImageLabel, canvasHostDisplay, collapseColumnsProps, columnCountOf, compositeStructureFindings, defaultBuilderLabels, defaultPageSettings, deleteTabPair, displayTriggerOf, dropChildren, dropTargetLabel, duplicateTabPair, escapesRoot, essentialTraitsFor, findNodeByIdInEither, findNodeLocation, findParentOf, flattenLayerTree, flattenSchemaFields, fluidiseProps, formChannelOf, generateNodeId, globalCanvasLayer, hiddenAtBase, hiddenUntilItemOn, inPhoneMenuContext, insertRefusal, insertRefusalLabel, interactionTargets, isHiddenAt, isHiddenAtRest, isPhoneMenuOpener, isPinnedGlobal, isSpecimen, itemsOnAtRest, markSpecimen, matchesControlSearch, nearestFormNode, neverShown, nodeAncestorPath, nodeAncestorPathInEither, nodeDescriptor, nodeStyleMap, overlayGlobals, pathToNode, phoneMenuOf, phoneMenuShowsAt, refreshSubtree, regenerateNodeIds, removalRefusal, reorderProps, repeaterSourceAlias, repeaterSubLabel, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, retypeNode, rootEscapeBand, rootZone, selectionRevealOf, setChannelAddress, setOverlayPreview, setStyleTrait, setTrait, shortDescriptor, shownBeforeControl, sourceContentType, sourceTypeLabel, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, syncNodeInputs, tabPairLabel, tabsRootForPart, textNode, upsertNodeStyles, visibilityProps, walkNodes, wrapNode };
14811
14985
  //# sourceMappingURL=vectoriox-iox-builder.mjs.map