@vectoriox/iox-ui 5.84.0 → 5.86.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.
Files changed (47) hide show
  1. package/actions-core/index.d.ts +47 -3
  2. package/composite-core/index.d.ts +93 -15
  3. package/design-core/index.d.ts +2013 -187
  4. package/fesm2022/vectoriox-iox-ui-actions-core.mjs +153 -70
  5. package/fesm2022/vectoriox-iox-ui-actions-core.mjs.map +1 -1
  6. package/fesm2022/vectoriox-iox-ui-composite-core.mjs +307 -39
  7. package/fesm2022/vectoriox-iox-ui-composite-core.mjs.map +1 -1
  8. package/fesm2022/vectoriox-iox-ui-design-core.mjs +2222 -85
  9. package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
  10. package/fesm2022/vectoriox-iox-ui-forms-core.mjs +27 -4
  11. package/fesm2022/vectoriox-iox-ui-forms-core.mjs.map +1 -1
  12. package/fesm2022/vectoriox-iox-ui-generation-core.mjs +250 -12
  13. package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
  14. package/fesm2022/vectoriox-iox-ui-scene-core.mjs +101 -5
  15. package/fesm2022/vectoriox-iox-ui-scene-core.mjs.map +1 -1
  16. package/fesm2022/vectoriox-iox-ui.mjs +1545 -78
  17. package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
  18. package/forms-core/index.d.ts +23 -4
  19. package/generation-core/index.d.ts +13 -0
  20. package/index.d.ts +563 -62
  21. package/package.json +1 -1
  22. package/scene-core/index.d.ts +32 -4
  23. package/src/actions-core/action.model.ts +1 -1
  24. package/src/actions-core/dialog-motion.ts +25 -0
  25. package/src/actions-core/dialog-opener.ts +9 -3
  26. package/src/actions-core/element-actions.ts +25 -1
  27. package/src/actions-core/popover-opener.ts +50 -0
  28. package/src/actions-core/public-api.ts +1 -0
  29. package/src/composite-core/header.ts +25 -0
  30. package/src/composite-core/public-api.ts +1 -0
  31. package/src/composite-core/slider-runtime.ts +82 -0
  32. package/src/composite-core/slider.ts +194 -27
  33. package/src/composite-core/structure.ts +14 -9
  34. package/src/design-core/flavor-spec.generated.ts +2145 -85
  35. package/src/design-core/header-behaviour.ts +76 -0
  36. package/src/design-core/public-api.ts +1 -0
  37. package/src/design-core/theme-color.ts +21 -5
  38. package/src/forms-core/submit-lifecycle.ts +30 -3
  39. package/src/generation-core/baseline-roles.ts +1 -0
  40. package/src/generation-core/compose-site.ts +8 -0
  41. package/src/generation-core/node-baselines.generated.ts +231 -11
  42. package/src/generation-core/patterns.ts +2 -0
  43. package/src/generation-core/site-spec.generated.ts +8 -0
  44. package/src/scene-core/scene.ts +18 -0
  45. package/src/scene-core/scroll-driver.ts +83 -6
  46. package/styles/iox-design.css +431 -1
  47. package/styles/iox-forms.css +29 -4
@@ -10,7 +10,7 @@ import { CompositeItemAction } from '@vectoriox/iox-ui/composite-core';
10
10
  /** How a step executes — decides which editor fields appear (timing only for `animated`). */
11
11
  type ActionKind = 'animated' | 'instant' | 'server';
12
12
  /** Picker grouping. Flat lists die at ~10 entries; the group is data, never a second list. */
13
- type ActionGroup = 'motion' | 'visibility' | 'navigate' | 'dialog' | 'item' | 'form' | 'data' | 'consent' | 'service';
13
+ type ActionGroup = 'motion' | 'visibility' | 'navigate' | 'dialog' | 'popover' | 'notice' | 'item' | 'form' | 'data' | 'consent' | 'service';
14
14
  /**
15
15
  * What a step does inside the live builder canvas (the canvas RUNS interactions):
16
16
  * `run` for real (open the dialog), `simulate` announce-only (navigate), `inert` with a
@@ -109,6 +109,8 @@ declare const SERVER_ELEMENT_ACTION_TYPES: ReadonlySet<string>;
109
109
  /** The Tier-A behaviour executors' dispatch set (A1c) — the engines branch on it beside
110
110
  * DIALOG/SWIPER. Dialog actions have their own set; context/visibility stay in the legacy path. */
111
111
  declare const BEHAVIOUR_ACTION_TYPES: ReadonlySet<string>;
112
+ /** The toast action's dispatch set (premium M5) — the engines branch on it beside DIALOG / POPOVER. */
113
+ declare const TOAST_ACTION_TYPES: ReadonlySet<string>;
112
114
  /** The item actions' dispatch set (T14) and what each does to its item — the engines branch on it beside
113
115
  * DIALOG/BEHAVIOUR, and composite-core `runCompositeItemAction` runs it on the target item's own runtime. */
114
116
  declare const ITEM_ACTION_TYPES: Readonly<Record<string, CompositeItemAction>>;
@@ -169,6 +171,9 @@ interface OpenerInteractionLike {
169
171
  interface OpenerNodeLike {
170
172
  interactions?: ReadonlyArray<OpenerInteractionLike> | null;
171
173
  }
174
+ /** The node id the element's click opens through one of `openerTypes` (its first enabled such action), or null —
175
+ * the ONE reading every opener kind shares (a dialog's, a popover's). */
176
+ declare function openedTargetId(node: OpenerNodeLike | null | undefined, openerTypes: ReadonlySet<string>): string | null;
172
177
  /** The Dialog node id the element's click opens (its first enabled opener action), or null. */
173
178
  declare function openedDialogId(node: OpenerNodeLike | null | undefined): string | null;
174
179
  /**
@@ -180,6 +185,29 @@ declare function dialogOpenerAttributes(node: OpenerNodeLike | null | undefined,
180
185
  /** The selector of every opener of one dialog (by its DOM id) — what a runtime updates on open/close. */
181
186
  declare function dialogOpenersSelector(dialogDomIdValue: string): string;
182
187
 
188
+ /**
189
+ * What an element that OPENS a popover says about itself (premium components M5, N4 — the APG disclosure pattern over a
190
+ * non-modal dialog): `aria-haspopup="dialog"`, `aria-controls` = the popover's DOM id, and `aria-expanded` — `false` in
191
+ * the server render, kept in step by the runtime. ONE decision for every renderer, read the way a dialog opener is
192
+ * (`openedTargetId`); the popover's DOM id comes from `popoverDomId`, the one place that names it.
193
+ */
194
+ /** The Popover node type. */
195
+ declare const POPOVER_NODE_TYPE = "Popover";
196
+ /** The actions that open a popover (close-only actions do not make an opener). */
197
+ declare const POPOVER_OPENER_ACTION_TYPES: ReadonlySet<string>;
198
+ /** Every action that opens, closes or toggles a popover — what the engines dispatch. */
199
+ declare const POPOVER_ACTION_TYPE_SET: ReadonlySet<string>;
200
+ /** The DOM id of a Popover node's panel — what an opener's `aria-controls` names. */
201
+ declare function popoverDomId(nodeId: string): string;
202
+ /** The node id a popover DOM id names, or null. */
203
+ declare function nodeIdOfPopoverDomId(domId: string | null | undefined): string | null;
204
+ /** The Popover node id the element's click opens, or null. */
205
+ declare function openedPopoverId(node: OpenerNodeLike | null | undefined): string | null;
206
+ /** The opener attributes for a node: `{}` when its click opens no popover. */
207
+ declare function popoverOpenerAttributes(node: OpenerNodeLike | null | undefined, open?: boolean): Record<string, string>;
208
+ /** The selector of every opener of one popover (by its DOM id). */
209
+ declare function popoverOpenersSelector(popoverDomIdValue: string): string;
210
+
183
211
  /**
184
212
  * How a dialog LEAVES (CC1 follow-up — the drawer that vanished). Opening is pure CSS (`@starting-style`
185
213
  * in the shared `iox-design.css`); closing needs one beat of script, because `dialog.close()` drops the
@@ -240,6 +268,22 @@ declare function runExitMotion(el: ExitMotionElement, options: ExitMotionOptions
240
268
  declare function closeDialogAnimated(el: DialogElementLike, options: ExitMotionOptions): Promise<void>;
241
269
  /** True when a toggle should CLOSE the dialog: it is open and not already on its way out. */
242
270
  declare function dialogTogglesClosed(el: Pick<DialogElementLike, 'open' | 'hasAttribute'>): boolean;
271
+ interface FocusableSheet {
272
+ classList: {
273
+ contains(token: string): boolean;
274
+ };
275
+ querySelector(selector: string): unknown;
276
+ hasAttribute(name: string): boolean;
277
+ setAttribute(name: string, value: string): void;
278
+ focus(options?: FocusOptions): void;
279
+ }
280
+ /**
281
+ * A styled dialog a visitor just opened takes focus on its SHEET (premium components M4 — M1.1's carry-over). A bare
282
+ * `showModal()` focuses its first control, and a phone can ring it after a tap; the sheet never rings (iox-design.css) and
283
+ * the first Tab moves to that control, with its ring. A dialog with an author's `[autofocus]` keeps it; a dialog saved
284
+ * before element styles keeps the browser's behaviour. True when the sheet took focus.
285
+ */
286
+ declare function focusDialogSheet(dialog: FocusableSheet | null | undefined): boolean;
243
287
 
244
- export { BEHAVIOUR_ACTION_TYPES, CONSENT_ACTION_TYPES, DIALOG_ACTION_TYPE_SET, DIALOG_CLOSING_ATTRIBUTE, DIALOG_EXIT_TIMEOUT_MS, DIALOG_OPENER_ACTION_TYPES, DIALOG_OPENER_TRIGGER, DIALOG_SELECTOR, ELEMENT_ACTION_DESCRIPTORS, ELEMENT_ACTION_GROUP_ORDER, FORM_SUBMIT_ACTION_DESCRIPTORS, ITEM_ACTION_TYPES, OpenerAttribute, SERVER_ELEMENT_ACTION_TYPES, addableActions, cancelExit, closeDialogAnimated, dialogDomId, dialogOpenerAttributes, dialogOpenersSelector, dialogTogglesClosed, groupedElementActions, isExiting, itemActionOf, nodeIdOfDialogDomId, openedDialogId, opensAtClickedItem, resolveActionAvailability, runExitMotion };
245
- export type { ActionAvailability, ActionAvailabilityContext, ActionAvailabilityState, ActionDescriptor, ActionGroup, ActionKind, ActionParamSpec, ActionTargetSpec, BuilderBehaviour, DialogElementLike, ExitAnimationLike, ExitMotionElement, ExitMotionOptions, OpenerActionLike, OpenerInteractionLike, OpenerNodeLike };
288
+ export { BEHAVIOUR_ACTION_TYPES, CONSENT_ACTION_TYPES, DIALOG_ACTION_TYPE_SET, DIALOG_CLOSING_ATTRIBUTE, DIALOG_EXIT_TIMEOUT_MS, DIALOG_OPENER_ACTION_TYPES, DIALOG_OPENER_TRIGGER, DIALOG_SELECTOR, ELEMENT_ACTION_DESCRIPTORS, ELEMENT_ACTION_GROUP_ORDER, FORM_SUBMIT_ACTION_DESCRIPTORS, ITEM_ACTION_TYPES, OpenerAttribute, POPOVER_ACTION_TYPE_SET, POPOVER_NODE_TYPE, POPOVER_OPENER_ACTION_TYPES, SERVER_ELEMENT_ACTION_TYPES, TOAST_ACTION_TYPES, addableActions, cancelExit, closeDialogAnimated, dialogDomId, dialogOpenerAttributes, dialogOpenersSelector, dialogTogglesClosed, focusDialogSheet, groupedElementActions, isExiting, itemActionOf, nodeIdOfDialogDomId, nodeIdOfPopoverDomId, openedDialogId, openedPopoverId, openedTargetId, opensAtClickedItem, popoverDomId, popoverOpenerAttributes, popoverOpenersSelector, resolveActionAvailability, runExitMotion };
289
+ export type { ActionAvailability, ActionAvailabilityContext, ActionAvailabilityState, ActionDescriptor, ActionGroup, ActionKind, ActionParamSpec, ActionTargetSpec, BuilderBehaviour, DialogElementLike, ExitAnimationLike, ExitMotionElement, ExitMotionOptions, FocusableSheet, OpenerActionLike, OpenerInteractionLike, OpenerNodeLike };
@@ -1,4 +1,4 @@
1
- import { ElementStyleTarget } from '@vectoriox/iox-ui/design-core';
1
+ import { ElementStyleTarget, HeaderBehaviour, HeaderEdge } from '@vectoriox/iox-ui/design-core';
2
2
  export { ROW_INDEX_ATTRIBUTE } from '@vectoriox/iox-ui/design-core';
3
3
 
4
4
  /**
@@ -825,7 +825,8 @@ declare function setCardLinked(card: CompositeNode, on: boolean): boolean;
825
825
  interface CompositeRoleSpec {
826
826
  /** The role of the part's parent; null for a composite root. */
827
827
  readonly parent: string | null;
828
- /** The TYPE of the part's parent, for a part whose parent carries no role (a Slider's controls). */
828
+ /** The TYPE of the part's parent, for a part whose parent carries no role (a Slider's controls). With `parent`
829
+ * also set, either parent places it (a Slider's control lives in the slider or in its bar). */
829
830
  readonly parentType?: string;
830
831
  readonly locked?: boolean;
831
832
  /** May be deleted, but never moved out of its parent (a Slider's controls work only as its direct children). */
@@ -888,17 +889,40 @@ declare enum SliderRole {
888
889
  Pause = "slider.pause",
889
890
  Prev = "slider.prev",
890
891
  Next = "slider.next",
891
- Pagination = "slider.pagination"
892
+ Pagination = "slider.pagination",
893
+ /** Premium M4 (M1.3): the bar UNDER the picture that holds the controls — caption · count · arrows. */
894
+ Bar = "slider.bar",
895
+ /** The caption of the slide in view (its `caption`, else its picture's description) — drawn by the runtime. */
896
+ Caption = "slider.caption",
897
+ /** "1 / 3", drawn by the runtime, left to right in every language. */
898
+ Count = "slider.count"
892
899
  }
893
900
  /** Parts in the order they are stamped: the pause control first (APG: the first focus stop), the dots last. */
894
901
  declare const SLIDER_PART_ROLES: ReadonlyArray<SliderRole>;
902
+ /** Where the controls sit (premium M4): over the picture (CC3, every slider saved before M4) or in the bar under it. */
903
+ declare enum SliderPlacement {
904
+ Over = "over",
905
+ Under = "under"
906
+ }
907
+ declare const SLIDER_PLACEMENT_TRAIT = "controlsPlacement";
908
+ /** The bar's parts in reading order: the pause control, the caption at the reading start, the count, the dots, the
909
+ * arrows at the end (M1.3). */
910
+ declare const SLIDER_BAR_ORDER: ReadonlyArray<SliderRole>;
911
+ /** Premium M4: the trait that has the SCROLL play the slider (held mid-screen, resting on each picture). */
912
+ declare const SLIDER_SCROLL_PLAYS_TRAIT = "scrollPlays";
913
+ /** Premium M4: a slide's caption (SliderSlide ▸ Caption) — the bar's Caption part shows the one in view. */
914
+ declare const SLIDE_CAPTION_TRAIT = "caption";
895
915
  declare const SLIDER_TYPE = "SliderContainer";
896
916
  declare const SLIDE_TYPE = "SliderSlide";
897
917
  /** The Bindings switches that own the parts. */
898
918
  declare enum SliderFlag {
899
919
  Navigation = "enableNavigation",
900
920
  Pagination = "enablePagination",
901
- Autoplay = "enableAutoplay"
921
+ Autoplay = "enableAutoplay",
922
+ /** Premium M4: a caption under the picture (the bar only). */
923
+ Caption = "enableCaption",
924
+ /** Premium M4: "1 / 3" under the picture (the bar only). */
925
+ Count = "enableCount"
902
926
  }
903
927
  /** The trait that names the carousel (Slider ▸ Accessibility ▸ Carousel name) — the A11y trait every named part uses. */
904
928
  declare const SLIDER_NAME_TRAIT = "ariaLabel";
@@ -908,10 +932,18 @@ interface RoleLike {
908
932
  }
909
933
  declare function isSliderPart(node: RoleLike | null | undefined): boolean;
910
934
  declare function isSlider(node: RoleLike | null | undefined): boolean;
911
- /** The slider's own part playing `role` (a direct child), or undefined. */
912
- declare function sliderPart<T extends RoleLike>(slider: {
935
+ /** The slider's own part playing `role` — a direct child, or one in its bar — or undefined. */
936
+ declare function sliderPart<T extends RoleLike & {
937
+ children?: T[] | null;
938
+ }>(slider: {
913
939
  children?: T[] | null;
914
940
  }, role: SliderRole): T | undefined;
941
+ /**
942
+ * Where the slider's controls sit. The STRUCTURE decides once there are controls — a bar means under the picture, a
943
+ * control of its own means over it (every slider saved before M4) — so a stored trait can never disagree with what is
944
+ * drawn. A slider with no controls yet takes its `controlsPlacement` (the builder's new Slider: under the picture).
945
+ */
946
+ declare function sliderPlacementOf(slider: CompositeNode | null | undefined): SliderPlacement;
915
947
  /** True when the slider's controls are parts (it was created or migrated in CC3) — Swiper then draws none of its own. */
916
948
  declare function hasSliderParts(slider: {
917
949
  children?: ReadonlyArray<RoleLike> | null;
@@ -926,7 +958,7 @@ declare function splitSliderChildren<T extends RoleLike>(children: ReadonlyArray
926
958
  /** The slides only (the template slide of a bound slider is `sliderSlides(children)[0]`). */
927
959
  declare function sliderSlides<T extends RoleLike>(children: ReadonlyArray<T> | null | undefined): T[];
928
960
  /** Each part's glyph (Phosphor) and its default accessible name. */
929
- declare const SLIDER_PART_GLYPH: Readonly<Record<Exclude<SliderRole, SliderRole.Pagination>, string>>;
961
+ declare const SLIDER_PART_GLYPH: Readonly<Record<SliderRole.Pause | SliderRole.Prev | SliderRole.Next, string>>;
930
962
  declare const SLIDER_PLAY_GLYPH = "ph-fill ph-play";
931
963
  /**
932
964
  * What a saved slider drew through Swiper before CC3, carried into its parts by the migration so it looks the same:
@@ -941,19 +973,27 @@ interface LegacySliderLook {
941
973
  declare const SWIPER_THEME_COLOR = "#007aff";
942
974
  /** One part, from the recipe (board 6: `button-secondary` controls, token dots) or in a migrated slider's legacy look. */
943
975
  declare function buildSliderPart(create: CompositeNodeFactory, role: SliderRole, legacy?: LegacySliderLook): CompositeNode;
944
- /** The parts the slider's switches call for, in stamping order. */
945
- declare function wantedSliderParts(slider: CompositeNode): SliderRole[];
976
+ /** The parts the slider's switches call for, in stamping order — and its bar, while the controls sit under the
977
+ * picture. A caption and a count live in the bar only. */
978
+ declare function wantedSliderParts(slider: CompositeNode, placement?: SliderPlacement): SliderRole[];
946
979
  interface SliderPartsChange {
947
980
  added: CompositeNode[];
948
981
  removed: CompositeNode[];
949
982
  }
950
983
  /**
951
- * Make the slider's parts match its switches — ONE edit (a palette switch, the migration, the composer). Missing
952
- * parts are stamped from the recipe (or, `legacy`, in the migrated look) at their place: the pause control, Previous
953
- * and Next before the first slide, the pagination after the last; parts whose switch is off are removed. Everything
954
- * else (the slides, the author's edits to an existing part) is kept.
984
+ * Make the slider's parts match its switches — ONE edit (a palette switch, the migration, the composer, a change of
985
+ * placement). Missing parts are stamped from the recipe (or, `legacy`, in the migrated look) at their place: over the
986
+ * picture, the pause control, Previous and Next before the first slide and the pagination after the last; under it
987
+ * (premium M4), every control in the bar in its reading order, the bar after the slides. Parts whose switch is off are
988
+ * removed wherever they are. Everything else (the slides, the author's edits to an existing part) is kept.
955
989
  */
956
990
  declare function syncSliderParts(slider: CompositeNode, create: CompositeNodeFactory, legacy?: LegacySliderLook): SliderPartsChange;
991
+ /**
992
+ * Move the controls over the picture or into the bar under it (premium M4, M1.3 — Slider ▸ Controls) — ONE edit and
993
+ * one undo step. The parts keep their identity and the author's edits; only their place changes (in flow in the bar,
994
+ * absolute over the picture). A caption and a count exist only in the bar. True when anything changed.
995
+ */
996
+ declare function setSliderPlacement(slider: CompositeNode, placement: SliderPlacement, create: CompositeNodeFactory): boolean;
957
997
  /** True when a saved slider still relies on Swiper-drawn controls: a switch is on and no part exists yet. */
958
998
  declare function needsSliderMigration(slider: CompositeNode | null | undefined): boolean;
959
999
  /**
@@ -1081,6 +1121,31 @@ declare class CarouselA11y {
1081
1121
  declare function carouselOf(el: Element | null | undefined): CarouselA11y | null;
1082
1122
  /** Attach once per Swiper (a re-init gets a fresh runtime). */
1083
1123
  declare function attachCarouselA11y(swiper: CarouselSwiper, options?: CarouselA11yOptions): CarouselA11y;
1124
+ /** Where the Caption and the Count parts get their words: generated content (`attr()`), never the element's text — so
1125
+ * the canvas's Text component and the runtime never write the same node. */
1126
+ declare const SLIDER_TEXT_ATTRIBUTE = "data-iox-text";
1127
+ /** Held for a frame while the caption changes, so its new words fade in (iox-design.css). */
1128
+ declare const SLIDER_SWAPPING_ATTRIBUTE = "data-iox-swapping";
1129
+ /** What the caption says for a slide: its own caption, else its picture's description, else nothing. */
1130
+ declare function sliderCaptionOf(slide: Element | null | undefined): string;
1131
+ /** "2 / 5" — the slide in view and how many there are; nothing for an empty slider. */
1132
+ declare function sliderCountText(index: number, total: number): string;
1133
+ /** The parts of a running Swiper the bar's runtime reads. */
1134
+ interface BarSwiper {
1135
+ el: HTMLElement;
1136
+ slides: HTMLElement[];
1137
+ activeIndex: number;
1138
+ realIndex?: number;
1139
+ destroyed?: boolean;
1140
+ on(event: string, handler: (...args: unknown[]) => void): void;
1141
+ off(event: string, handler: (...args: unknown[]) => void): void;
1142
+ }
1143
+ /**
1144
+ * Keep the bar's Caption and Count on the slide in view — the canvas, Preview and both engine paths (bootSlider). The
1145
+ * caption changes behind a short fade (the first one does not); the count reads left to right in every language.
1146
+ * Returns the stop; a slider with neither part gets a no-op.
1147
+ */
1148
+ declare function attachSliderBar(swiper: BarSwiper): () => void;
1084
1149
 
1085
1150
  /**
1086
1151
  * THE LIGHTBOX (CC3 — complex-components plan §7d, board 6). Not a component: a Dialog holding a Slider bound to the
@@ -1631,5 +1696,18 @@ declare function isCompositeItemOn(el: Element): boolean;
1631
1696
  */
1632
1697
  declare function runCompositeItemAction(el: Element | null | undefined, action: CompositeItemAction): boolean | null;
1633
1698
 
1634
- export { ACCORDION_BIND_PROP, ACCORDION_CONTENT_LIMIT, ACCORDION_DEFAULT_ONS, ACCORDION_ICONS, ACCORDION_ICON_GLYPH, ACCORDION_NEW_ITEM_WORDS, ACCORDION_WORDS, ACTIVATE_ON_ATTRIBUTE, AccordionClass, AccordionDefaultOn, AccordionEditRefusal, AccordionIcon, AccordionKeyAction, AccordionRole, AccordionRuntime, BADGE_TONES, BADGE_TONE_ICONS, BadgeTone, CARD_LAYOUTS, CARD_LAYOUT_CUSTOM, CARD_PARTS, CARD_PART_ROLE, CARD_STACK_BREAKPOINT, CARD_WORDS, CAROUSEL_QUOTES, CHIP_ICON, CHIP_STYLE, COMPOSITE_ATTRIBUTE, COMPOSITE_KIND_ROLES, COMPOSITE_ROLE_SPECS, CardLayout, CardPart, CardRole, CarouselA11y, CompositeBehaviourTrait, CompositeItemAction, CompositeKind, DEFAULT_ON_ATTRIBUTE, DISCLOSURE_ITEM_KEY, DISCLOSURE_WORDS, DisclosureRole, EXCLUSIVE_KIND_ROLES, ExclusiveRuntime, ITEM_KEY_ATTRIBUTE, ITEM_OFF_EVENT, ITEM_ON_EVENT, ITEM_OPEN_STATE, LIGHTBOX_ARROWS_HIDE_AT, LIGHTBOX_LABEL, MULTIPLE_ATTRIBUTE, NO_ELEMENT_STYLE, ON_ATTRIBUTE, ON_STATE, ORIENTATION_ATTRIBUTE, PILL_LABEL_STYLE, SCOPE_ATTRIBUTE, SEGMENTED_BADGE_TONE, SEGMENTED_BADGE_WORDS, SEGMENTED_BEHAVIOUR, SEGMENTED_MAX_OPTIONS, SEGMENTED_MIN_OPTIONS, SEGMENTED_NAME, SEGMENTED_NEW_OPTION_WORDS, SEGMENTED_WORDS, SLIDER_NAME_TRAIT, SLIDER_PART_GLYPH, SLIDER_PART_ROLES, SLIDER_PLAY_GLYPH, SLIDER_TYPE, SLIDER_WORDS, SLIDE_TO_ROW, SLIDE_TYPE, SWIPER_THEME_COLOR, SceneRole, SegmentedEditRefusal, SegmentedRole, SegmentedTrait, SliderFlag, SliderRole, StructureEdit, StructureRefusal, TABS_ACTIVATE_ONS, TABS_CONTENT_LIMIT, TABS_IMAGE_BIND_PROP, TABS_LABEL_BIND_PROP, TABS_NEW_TAB_WORDS, TABS_ORIENTATIONS, TABS_STACK_BREAKPOINT, TABS_TEXT_BIND_PROP, TABS_WORDS, TabsActivateOn, TabsBehaviourTrait, TabsEditRefusal, TabsOrientation, TabsRole, UNTIL_FOUND, acceptsRefusal, accordionAnswerOf, accordionBehaviour, accordionDomIds, accordionFocusIndex, accordionHeadingLevel, accordionItemAttributes, accordionItemLabel, accordionItemOf, accordionItemState, accordionItems, accordionKeyAction, accordionPanelAttributes, accordionPanelOf, accordionPartStyle, accordionQuestionOf, accordionRegionAttributes, accordionRemovalRefusal, accordionRootAttributes, accordionRootOf, accordionRootOfItem, accordionRuntimeOf, accordionScope, accordionToContent, accordionToManual, accordionTrackAttributes, accordionTriggerAttributes, accordionTriggerOf, addAccordionItem, addSegmentedOption, addTabPair, applyCardLayout, attachAccordionAt, attachAccordions, attachCarouselA11y, attachCompositeAt, attachExclusiveAt, badgeStyleId, badgeToneOf, buildAccordionItem, buildAccordionRecipe, buildBadge, buildCardRecipe, buildCarouselRecipe, buildChip, buildCompositeIcon, buildDisclosureRecipe, buildLightboxRecipe, buildSegmentedOption, buildSegmentedRecipe, buildSliderPart, buildTabPair, buildTabsRecipe, canOpenAtClickedItem, cardPartsOf, cardRootOf, cardTitleOf, carouselOf, clearLayerStyles, closeAccordionItem, closestAccordion, closestAccordionItem, closestExclusive, closestExclusiveItemPart, compositeItemOf, compositeItems, compositeKindOfRole, compositeRootOf, compositeRowKeys, compositeScopeId, detachAccordion, detectAccordionIcon, detectCardLayout, disclosureOpenByDefault, domSafeKey, exclusiveBehaviourOf, exclusiveDefaultOf, exclusiveItemLabel, exclusiveItemPartOf, exclusiveKindHasPanels, exclusiveKindOf, exclusiveLabelOf, exclusivePartAttributes, exclusiveRootAttributesOf, exclusiveRootHoldsTriggers, exclusiveRootOf, exclusiveRuntimeOf, exclusiveScopeFor, findByRole, hasLabelledRegion, hasSliderParts, initialAccordionOpen, isAccordionFromContent, isAccordionItemOn, isAccordionPart, isAccordionRoot, isAnyCompositeRoot, isCardLinked, isCardRoot, isCompositeItem, isCompositeItemOn, isCompositePanel, isCompositeRoot, isCompositeTrigger, isDisclosurePart, isDisclosureRoot, isExclusiveItemOn, isExclusiveItemPart, isExclusiveKind, isExclusiveList, isExclusivePanel, isExclusivePanels, isExclusiveRoot, isExclusiveTrigger, isLockedPart, isPartOfExclusiveScope, isPillNode, isSegmentedPart, isSegmentedRoot, isSlider, isSliderPart, isTabsFromContent, isTabsPart, isTabsRoot, isToggleKind, itemOpenTriggerIds, lightboxSliderOf, makeCompositePart, manualTabKeys, migrateSliderControls, moveAccordionItem, moveSegmentedOption, moveTabPair, needsSliderMigration, nextAccordionState, nextItemKey, nextSegmentedKey, nextTabKey, onAccordionItemState, onCompositeItemState, onExclusiveItemState, openAccordionItem, parentInComposite, pickAccordionAutoBinds, pickTabsAutoBinds, readLayerStyle, readProp, readStyle, removeFromComposite, removeSegmentedOption, removeTabPair, renameAccordionItem, renameSegmentedOption, renameTab, repeatSourceOf, rowIndexOf, rowItemKey, rowSourceOf, runCompositeItemAction, sameRepeatSource, segmentedAddRefusal, segmentedBadgeOf, segmentedDefaultOn, segmentedItemTriggerIds, segmentedKeyAction, segmentedKeys, segmentedLabel, segmentedOptionAttributes, segmentedOptionKey, segmentedOptionLabel, segmentedOptionLabelNodeOf, segmentedOptions, segmentedPartAttributes, segmentedRemovalRefusal, segmentedRootAttributes, segmentedRootAttributesOf, segmentedScopeFor, serializeDomAttributes, setAccordionBehaviour, setAccordionIcon, setBadgeTone, setCardLinked, setCardPart, setSegmentedBadge, setSegmentedBehaviour, setSliderFlag, setTabsBehaviour, shouldScrollToItem, slideIndexForRow, sliderLiveRegion, sliderPart, sliderPartElement, sliderPauseAttributes, sliderPauseGlyph, sliderSlides, sliderWords, splitSliderChildren, structureRefusal, syncSliderParts, tabLabel, tabLabelNodeOf, tabListAttributes, tabPanelAttributes, tabPanelImageOf, tabPanelOf, tabPanelTextOf, tabPartKey, tabTriggerAttributes, tabTriggerOf, tabsBehaviour, tabsItemState, tabsItemTriggerIds, tabsKeyAction, tabsLabel, tabsListOf, tabsPanels, tabsPanelsOf, tabsPartAttributes, tabsPartnerOf, tabsRemovalRefusal, tabsRootAttributes, tabsScope, tabsScopeFor, tabsToContent, tabsToManual, tabsTriggers, walkComposite, wantedSliderParts, writeLayerStyles, writeProp, writeStyles };
1635
- export type { AccordionAutoBinds, AccordionBehaviour, AccordionDomIds, AccordionItemState, AccordionOptions, AccordionRuntimeOptions, AccordionScope, AccordionWords, BaselineStyles, CardEditOptions, CardLayoutResult, CardLayoutState, CardOptions, CardPartChange, CardWords, CarouselA11yOptions, CarouselOptions, CarouselQuote, CarouselSwiper, CompositeBinding, CompositeKindRoles, CompositeLayer, CompositeNode, CompositeNodeFactory, CompositeNodeSpec, CompositeRoleSpec, CompositeRuntime, CompositeTrait, ContentFieldLike, DisclosureOptions, DisclosureWords, DomAttributes, ExclusiveCompositeKind, ExclusiveKindRoles, ExclusiveRuntimeOptions, ExclusiveScope, LegacySliderLook, LightboxOptions, PillOptions, RepeatSource, SegmentedOptionWords, SegmentedOptions, SliderPartsChange, SliderWords, TabPair, TabWords, TabsAutoBinds, TabsBehaviour, TabsItemState, TabsOptions, TabsScope, ToggleCompositeKind };
1699
+ /**
1700
+ * Set how a header behaves as the page scrolls (premium components T2, M4) — ONE edit for the builder's Header section
1701
+ * and the composer (generation-core), on either node shape. A header that stays at the top is the containing block of its
1702
+ * edge: the live site makes it sticky (iox-design.css), and a header stored `static` becomes `relative` — what the canvas,
1703
+ * which forces a node's own position, draws it with. Nothing else of the author's is touched.
1704
+ */
1705
+ declare function setHeaderBehaviour(node: CompositeNode, behaviour: HeaderBehaviour | `${HeaderBehaviour}`, edge: HeaderEdge | `${HeaderEdge}` | null): void;
1706
+ /** The header's behaviour and edge as stored (Scrolls / none for a header that never chose). */
1707
+ declare function headerBehaviourOfNode(node: CompositeNode | null | undefined): {
1708
+ behaviour: HeaderBehaviour;
1709
+ edge: HeaderEdge | null;
1710
+ };
1711
+
1712
+ export { ACCORDION_BIND_PROP, ACCORDION_CONTENT_LIMIT, ACCORDION_DEFAULT_ONS, ACCORDION_ICONS, ACCORDION_ICON_GLYPH, ACCORDION_NEW_ITEM_WORDS, ACCORDION_WORDS, ACTIVATE_ON_ATTRIBUTE, AccordionClass, AccordionDefaultOn, AccordionEditRefusal, AccordionIcon, AccordionKeyAction, AccordionRole, AccordionRuntime, BADGE_TONES, BADGE_TONE_ICONS, BadgeTone, CARD_LAYOUTS, CARD_LAYOUT_CUSTOM, CARD_PARTS, CARD_PART_ROLE, CARD_STACK_BREAKPOINT, CARD_WORDS, CAROUSEL_QUOTES, CHIP_ICON, CHIP_STYLE, COMPOSITE_ATTRIBUTE, COMPOSITE_KIND_ROLES, COMPOSITE_ROLE_SPECS, CardLayout, CardPart, CardRole, CarouselA11y, CompositeBehaviourTrait, CompositeItemAction, CompositeKind, DEFAULT_ON_ATTRIBUTE, DISCLOSURE_ITEM_KEY, DISCLOSURE_WORDS, DisclosureRole, EXCLUSIVE_KIND_ROLES, ExclusiveRuntime, ITEM_KEY_ATTRIBUTE, ITEM_OFF_EVENT, ITEM_ON_EVENT, ITEM_OPEN_STATE, LIGHTBOX_ARROWS_HIDE_AT, LIGHTBOX_LABEL, MULTIPLE_ATTRIBUTE, NO_ELEMENT_STYLE, ON_ATTRIBUTE, ON_STATE, ORIENTATION_ATTRIBUTE, PILL_LABEL_STYLE, SCOPE_ATTRIBUTE, SEGMENTED_BADGE_TONE, SEGMENTED_BADGE_WORDS, SEGMENTED_BEHAVIOUR, SEGMENTED_MAX_OPTIONS, SEGMENTED_MIN_OPTIONS, SEGMENTED_NAME, SEGMENTED_NEW_OPTION_WORDS, SEGMENTED_WORDS, SLIDER_BAR_ORDER, SLIDER_NAME_TRAIT, SLIDER_PART_GLYPH, SLIDER_PART_ROLES, SLIDER_PLACEMENT_TRAIT, SLIDER_PLAY_GLYPH, SLIDER_SCROLL_PLAYS_TRAIT, SLIDER_SWAPPING_ATTRIBUTE, SLIDER_TEXT_ATTRIBUTE, SLIDER_TYPE, SLIDER_WORDS, SLIDE_CAPTION_TRAIT, SLIDE_TO_ROW, SLIDE_TYPE, SWIPER_THEME_COLOR, SceneRole, SegmentedEditRefusal, SegmentedRole, SegmentedTrait, SliderFlag, SliderPlacement, SliderRole, StructureEdit, StructureRefusal, TABS_ACTIVATE_ONS, TABS_CONTENT_LIMIT, TABS_IMAGE_BIND_PROP, TABS_LABEL_BIND_PROP, TABS_NEW_TAB_WORDS, TABS_ORIENTATIONS, TABS_STACK_BREAKPOINT, TABS_TEXT_BIND_PROP, TABS_WORDS, TabsActivateOn, TabsBehaviourTrait, TabsEditRefusal, TabsOrientation, TabsRole, UNTIL_FOUND, acceptsRefusal, accordionAnswerOf, accordionBehaviour, accordionDomIds, accordionFocusIndex, accordionHeadingLevel, accordionItemAttributes, accordionItemLabel, accordionItemOf, accordionItemState, accordionItems, accordionKeyAction, accordionPanelAttributes, accordionPanelOf, accordionPartStyle, accordionQuestionOf, accordionRegionAttributes, accordionRemovalRefusal, accordionRootAttributes, accordionRootOf, accordionRootOfItem, accordionRuntimeOf, accordionScope, accordionToContent, accordionToManual, accordionTrackAttributes, accordionTriggerAttributes, accordionTriggerOf, addAccordionItem, addSegmentedOption, addTabPair, applyCardLayout, attachAccordionAt, attachAccordions, attachCarouselA11y, attachCompositeAt, attachExclusiveAt, attachSliderBar, badgeStyleId, badgeToneOf, buildAccordionItem, buildAccordionRecipe, buildBadge, buildCardRecipe, buildCarouselRecipe, buildChip, buildCompositeIcon, buildDisclosureRecipe, buildLightboxRecipe, buildSegmentedOption, buildSegmentedRecipe, buildSliderPart, buildTabPair, buildTabsRecipe, canOpenAtClickedItem, cardPartsOf, cardRootOf, cardTitleOf, carouselOf, clearLayerStyles, closeAccordionItem, closestAccordion, closestAccordionItem, closestExclusive, closestExclusiveItemPart, compositeItemOf, compositeItems, compositeKindOfRole, compositeRootOf, compositeRowKeys, compositeScopeId, detachAccordion, detectAccordionIcon, detectCardLayout, disclosureOpenByDefault, domSafeKey, exclusiveBehaviourOf, exclusiveDefaultOf, exclusiveItemLabel, exclusiveItemPartOf, exclusiveKindHasPanels, exclusiveKindOf, exclusiveLabelOf, exclusivePartAttributes, exclusiveRootAttributesOf, exclusiveRootHoldsTriggers, exclusiveRootOf, exclusiveRuntimeOf, exclusiveScopeFor, findByRole, hasLabelledRegion, hasSliderParts, headerBehaviourOfNode, initialAccordionOpen, isAccordionFromContent, isAccordionItemOn, isAccordionPart, isAccordionRoot, isAnyCompositeRoot, isCardLinked, isCardRoot, isCompositeItem, isCompositeItemOn, isCompositePanel, isCompositeRoot, isCompositeTrigger, isDisclosurePart, isDisclosureRoot, isExclusiveItemOn, isExclusiveItemPart, isExclusiveKind, isExclusiveList, isExclusivePanel, isExclusivePanels, isExclusiveRoot, isExclusiveTrigger, isLockedPart, isPartOfExclusiveScope, isPillNode, isSegmentedPart, isSegmentedRoot, isSlider, isSliderPart, isTabsFromContent, isTabsPart, isTabsRoot, isToggleKind, itemOpenTriggerIds, lightboxSliderOf, makeCompositePart, manualTabKeys, migrateSliderControls, moveAccordionItem, moveSegmentedOption, moveTabPair, needsSliderMigration, nextAccordionState, nextItemKey, nextSegmentedKey, nextTabKey, onAccordionItemState, onCompositeItemState, onExclusiveItemState, openAccordionItem, parentInComposite, pickAccordionAutoBinds, pickTabsAutoBinds, readLayerStyle, readProp, readStyle, removeFromComposite, removeSegmentedOption, removeTabPair, renameAccordionItem, renameSegmentedOption, renameTab, repeatSourceOf, rowIndexOf, rowItemKey, rowSourceOf, runCompositeItemAction, sameRepeatSource, segmentedAddRefusal, segmentedBadgeOf, segmentedDefaultOn, segmentedItemTriggerIds, segmentedKeyAction, segmentedKeys, segmentedLabel, segmentedOptionAttributes, segmentedOptionKey, segmentedOptionLabel, segmentedOptionLabelNodeOf, segmentedOptions, segmentedPartAttributes, segmentedRemovalRefusal, segmentedRootAttributes, segmentedRootAttributesOf, segmentedScopeFor, serializeDomAttributes, setAccordionBehaviour, setAccordionIcon, setBadgeTone, setCardLinked, setCardPart, setHeaderBehaviour, setSegmentedBadge, setSegmentedBehaviour, setSliderFlag, setSliderPlacement, setTabsBehaviour, shouldScrollToItem, slideIndexForRow, sliderCaptionOf, sliderCountText, sliderLiveRegion, sliderPart, sliderPartElement, sliderPauseAttributes, sliderPauseGlyph, sliderPlacementOf, sliderSlides, sliderWords, splitSliderChildren, structureRefusal, syncSliderParts, tabLabel, tabLabelNodeOf, tabListAttributes, tabPanelAttributes, tabPanelImageOf, tabPanelOf, tabPanelTextOf, tabPartKey, tabTriggerAttributes, tabTriggerOf, tabsBehaviour, tabsItemState, tabsItemTriggerIds, tabsKeyAction, tabsLabel, tabsListOf, tabsPanels, tabsPanelsOf, tabsPartAttributes, tabsPartnerOf, tabsRemovalRefusal, tabsRootAttributes, tabsScope, tabsScopeFor, tabsToContent, tabsToManual, tabsTriggers, walkComposite, wantedSliderParts, writeLayerStyles, writeProp, writeStyles };
1713
+ export type { AccordionAutoBinds, AccordionBehaviour, AccordionDomIds, AccordionItemState, AccordionOptions, AccordionRuntimeOptions, AccordionScope, AccordionWords, BarSwiper, BaselineStyles, CardEditOptions, CardLayoutResult, CardLayoutState, CardOptions, CardPartChange, CardWords, CarouselA11yOptions, CarouselOptions, CarouselQuote, CarouselSwiper, CompositeBinding, CompositeKindRoles, CompositeLayer, CompositeNode, CompositeNodeFactory, CompositeNodeSpec, CompositeRoleSpec, CompositeRuntime, CompositeTrait, ContentFieldLike, DisclosureOptions, DisclosureWords, DomAttributes, ExclusiveCompositeKind, ExclusiveKindRoles, ExclusiveRuntimeOptions, ExclusiveScope, LegacySliderLook, LightboxOptions, PillOptions, RepeatSource, SegmentedOptionWords, SegmentedOptions, SliderPartsChange, SliderWords, TabPair, TabWords, TabsAutoBinds, TabsBehaviour, TabsItemState, TabsOptions, TabsScope, ToggleCompositeKind };