@vectoriox/iox-ui 5.84.0 → 5.85.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 (37) hide show
  1. package/actions-core/index.d.ts +18 -2
  2. package/composite-core/index.d.ts +93 -15
  3. package/design-core/index.d.ts +566 -4
  4. package/fesm2022/vectoriox-iox-ui-actions-core.mjs +18 -1
  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 +680 -15
  9. package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
  10. package/fesm2022/vectoriox-iox-ui-generation-core.mjs +35 -4
  11. package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
  12. package/fesm2022/vectoriox-iox-ui-scene-core.mjs +101 -5
  13. package/fesm2022/vectoriox-iox-ui-scene-core.mjs.map +1 -1
  14. package/fesm2022/vectoriox-iox-ui.mjs +285 -12
  15. package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
  16. package/generation-core/index.d.ts +13 -0
  17. package/index.d.ts +143 -42
  18. package/package.json +1 -1
  19. package/scene-core/index.d.ts +32 -4
  20. package/src/actions-core/dialog-motion.ts +25 -0
  21. package/src/composite-core/header.ts +25 -0
  22. package/src/composite-core/public-api.ts +1 -0
  23. package/src/composite-core/slider-runtime.ts +82 -0
  24. package/src/composite-core/slider.ts +194 -27
  25. package/src/composite-core/structure.ts +14 -9
  26. package/src/design-core/flavor-spec.generated.ts +596 -9
  27. package/src/design-core/header-behaviour.ts +76 -0
  28. package/src/design-core/public-api.ts +1 -0
  29. package/src/design-core/theme-color.ts +21 -5
  30. package/src/generation-core/compose-site.ts +8 -0
  31. package/src/generation-core/node-baselines.generated.ts +17 -3
  32. package/src/generation-core/patterns.ts +2 -0
  33. package/src/generation-core/site-spec.generated.ts +8 -0
  34. package/src/scene-core/scene.ts +18 -0
  35. package/src/scene-core/scroll-driver.ts +83 -6
  36. package/styles/iox-design.css +232 -1
  37. package/styles/iox-forms.css +5 -2
@@ -2,7 +2,7 @@ import { NEW_NODE_STYLE_DEFAULTS, defaultElementStyleFor, elementStyleById, owne
2
2
  import { formPresetById, FORM_ACTIONS_ROLE, channelOpensNewTab, FORM_CHANNEL_ROLE, planFormPresetIds, ControlType, FORM_NODE_TYPE, collectFormSpec, FIELD_NODE_TYPE, isChannelFilled } from '@vectoriox/iox-ui/forms-core';
3
3
  import { normalizeFrameSequence, filmScreensFor, FILM_PREPARED_PICTURES, FrameExtension } from '@vectoriox/iox-ui/media-core';
4
4
  import { SEO_DESCRIPTION_MAX, SEO_TITLE_MAX } from '@vectoriox/iox-ui/seo-core';
5
- import { pickTabsAutoBinds, pickAccordionAutoBinds, segmentedOptions, ITEM_OPEN_STATE, CardPart, CardRole, CardLayout, CARD_LAYOUTS, CARD_PARTS, BADGE_TONES, buildCardRecipe, findByRole, buildSegmentedRecipe, AccordionRole, buildAccordionRecipe, ACCORDION_WORDS, accordionItems, accordionQuestionOf, accordionAnswerOf, ACCORDION_BIND_PROP, ACCORDION_CONTENT_LIMIT, buildTabsRecipe, TABS_WORDS, tabsTriggers, tabLabelNodeOf, TABS_LABEL_BIND_PROP, tabsPanels, tabPanelTextOf, TABS_TEXT_BIND_PROP, tabPanelImageOf, tabsListOf, tabsPanelsOf, TABS_CONTENT_LIMIT, TABS_IMAGE_BIND_PROP, buildCarouselRecipe, SLIDE_TYPE, buildLightboxRecipe, LIGHTBOX_LABEL, SLIDE_TO_ROW } from '@vectoriox/iox-ui/composite-core';
5
+ import { pickTabsAutoBinds, pickAccordionAutoBinds, segmentedOptions, ITEM_OPEN_STATE, CardPart, CardRole, CardLayout, CARD_LAYOUTS, CARD_PARTS, BADGE_TONES, buildCardRecipe, findByRole, buildSegmentedRecipe, AccordionRole, buildAccordionRecipe, ACCORDION_WORDS, accordionItems, accordionQuestionOf, accordionAnswerOf, ACCORDION_BIND_PROP, ACCORDION_CONTENT_LIMIT, buildTabsRecipe, TABS_WORDS, tabsTriggers, tabLabelNodeOf, TABS_LABEL_BIND_PROP, tabsPanels, tabPanelTextOf, TABS_TEXT_BIND_PROP, tabPanelImageOf, tabsListOf, tabsPanelsOf, TABS_CONTENT_LIMIT, TABS_IMAGE_BIND_PROP, buildCarouselRecipe, SLIDE_TYPE, buildLightboxRecipe, LIGHTBOX_LABEL, SLIDE_TO_ROW, setHeaderBehaviour } from '@vectoriox/iox-ui/composite-core';
6
6
  import { ELEMENT_ACTION_DESCRIPTORS, resolveActionAvailability } from '@vectoriox/iox-ui/actions-core';
7
7
 
8
8
  // GENERATED from iox-ai-guidance flavor-spec.v1.json — do not edit; re-run scripts/gen-flavor-spec.mjs
@@ -1146,6 +1146,10 @@ const SPEC_SITE_PATTERNS = {
1146
1146
  "label": "Navigation bar",
1147
1147
  "global": "before",
1148
1148
  "phoneMenu": "drawer",
1149
+ "header": {
1150
+ "behaviour": "hides",
1151
+ "edge": "fade"
1152
+ },
1149
1153
  "intent": "The brand on one side, the pages and one call to action on the other — the default header.",
1150
1154
  "node": {
1151
1155
  "t": "Container",
@@ -1215,6 +1219,10 @@ const SPEC_SITE_PATTERNS = {
1215
1219
  "label": "Navigation — the name centred",
1216
1220
  "global": "before",
1217
1221
  "phoneMenu": "drawer",
1222
+ "header": {
1223
+ "behaviour": "hides",
1224
+ "edge": "fade"
1225
+ },
1218
1226
  "intent": "The name centred above a centred row of pages — when the name is the brand.",
1219
1227
  "node": {
1220
1228
  "t": "Container",
@@ -6581,7 +6589,9 @@ const NODE_BASELINES = {
6581
6589
  "defaultOn",
6582
6590
  "activateOn",
6583
6591
  "orientation",
6584
- "ariaLabel"
6592
+ "ariaLabel",
6593
+ "headerBehaviour",
6594
+ "headerEdge"
6585
6595
  ],
6586
6596
  "styleTraits": [
6587
6597
  "position",
@@ -9004,6 +9014,10 @@ const NODE_BASELINES = {
9004
9014
  "slideToClickedSlide": false,
9005
9015
  "effect": "slide",
9006
9016
  "speed": 300,
9017
+ "scrollPlays": false,
9018
+ "controlsPlacement": "under",
9019
+ "enableCaption": false,
9020
+ "enableCount": false,
9007
9021
  "enableNavigation": false,
9008
9022
  "navigationColor": "#ffffff",
9009
9023
  "navigationSize": 44,
@@ -9111,7 +9125,11 @@ const NODE_BASELINES = {
9111
9125
  "__effectsLabel",
9112
9126
  "effect",
9113
9127
  "speed",
9128
+ "scrollPlays",
9114
9129
  "__navLabel",
9130
+ "controlsPlacement",
9131
+ "enableCaption",
9132
+ "enableCount",
9115
9133
  "enableNavigation",
9116
9134
  "navigationColor",
9117
9135
  "navigationSize",
@@ -9216,7 +9234,9 @@ const NODE_BASELINES = {
9216
9234
  "container": true
9217
9235
  },
9218
9236
  "SliderSlide": {
9219
- "props": {},
9237
+ "props": {
9238
+ "caption": ""
9239
+ },
9220
9240
  "styleProps": {
9221
9241
  "position": "static",
9222
9242
  "top": "auto",
@@ -9295,7 +9315,9 @@ const NODE_BASELINES = {
9295
9315
  "transitionDelay": "0ms",
9296
9316
  "transitionTimingFunction": "ease"
9297
9317
  },
9298
- "traits": [],
9318
+ "traits": [
9319
+ "caption"
9320
+ ],
9299
9321
  "styleTraits": [
9300
9322
  "position",
9301
9323
  "top",
@@ -14411,6 +14433,13 @@ function composeSite(plan, context) {
14411
14433
  if (shape)
14412
14434
  globals = planNavShape(globals, shape, {}, slot).globals;
14413
14435
  }
14436
+ // Premium M4 (T2): a header pattern's behaviour as the page scrolls — the same edit the Header section makes.
14437
+ for (const slot of Object.values(GlobalSlot)) {
14438
+ const header = patternById(plan.globals[slot])?.header;
14439
+ const root = header ? globals.find(g => g.id === slot) : null;
14440
+ if (header && root)
14441
+ setHeaderBehaviour(root, header.behaviour, header.edge ?? null);
14442
+ }
14414
14443
  return {
14415
14444
  source: clone$1(plan.source),
14416
14445
  business: clone$1(plan.business),
@@ -14471,6 +14500,8 @@ function composeNavHeader(input, options) {
14471
14500
  root.globalPosition = pattern.global;
14472
14501
  const shape = pattern.phoneMenu;
14473
14502
  const header = shape ? planNavShape([root], shape, { newId: options.newId }, root.id).globals[0] : root;
14503
+ if (pattern.header)
14504
+ setHeaderBehaviour(header, pattern.header.behaviour, pattern.header.edge ?? null);
14474
14505
  return { header, issues };
14475
14506
  }
14476
14507
  // ── One pattern on its own (CC4b) ───────────────────────────────────────────────────────────────