@vectoriox/iox-ui 5.9.0 → 5.11.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.
@@ -8,6 +8,7 @@ import * as i1 from '@angular/common';
8
8
  import { CommonModule, isPlatformBrowser } from '@angular/common';
9
9
  import Lenis from 'lenis';
10
10
  import '@vectoriox/iox-ui/actions-core';
11
+ export * from '@vectoriox/iox-ui/design-core';
11
12
 
12
13
  class ViewPositionDirective {
13
14
  constructor(_elr) {
@@ -4650,6 +4651,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.31", ngImpo
4650
4651
  args: [{ providedIn: 'root' }]
4651
4652
  }] });
4652
4653
 
4654
+ /** camelCase style key → kebab CSS property (`borderRadius` → `border-radius`). */
4655
+ function styleKeyToKebab(key) {
4656
+ return key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
4657
+ }
4658
+
4653
4659
  /**
4654
4660
  * style-compiler — the SINGLE source of truth for turning a node's style map into
4655
4661
  * CSS declarations. Framework-agnostic (no Angular): consumed by both renderers.
@@ -4675,10 +4681,6 @@ function rewriteViewportUnits(value) {
4675
4681
  .replace(/(-?\d*\.?\d+)vh/g, 'calc($1 * var(--preview-vh, 1vh))')
4676
4682
  .replace(/(-?\d*\.?\d+)vw/g, 'calc($1 * var(--preview-vw, 1vw))');
4677
4683
  }
4678
- /** camelCase style key → kebab-case CSS property. */
4679
- function styleKeyToKebab(key) {
4680
- return key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
4681
- }
4682
4684
  /**
4683
4685
  * kebab CSS property → the value that equals its CSS initial AND has no UA-stylesheet override for
4684
4686
  * any element the builder renders (div/section/span/i/a/img/h1–h6/p/ul). Emitting these is a pure
@@ -5020,346 +5022,6 @@ function partClassName(type, partKey) {
5020
5022
  return PART_CLASS_NAMES[type]?.[partKey];
5021
5023
  }
5022
5024
 
5023
- function parseHexColor(hex) {
5024
- const m = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec((hex ?? '').trim());
5025
- if (!m)
5026
- return null;
5027
- let h = m[1];
5028
- if (h.length === 3)
5029
- h = h.split('').map(c => c + c).join('');
5030
- const n = parseInt(h, 16);
5031
- return { r: ((n >> 16) & 255) / 255, g: ((n >> 8) & 255) / 255, b: (n & 255) / 255 };
5032
- }
5033
- function toHexColor(c) {
5034
- const q = (v) => Math.round(Math.min(1, Math.max(0, v)) * 255).toString(16).padStart(2, '0');
5035
- return `#${q(c.r)}${q(c.g)}${q(c.b)}`;
5036
- }
5037
- const srgbToLinear = (v) => (v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4));
5038
- const linearToSrgb = (v) => (v <= 0.0031308 ? v * 12.92 : 1.055 * Math.pow(v, 1 / 2.4) - 0.055);
5039
- function rgbToOklab(c) {
5040
- const r = srgbToLinear(c.r), g = srgbToLinear(c.g), b = srgbToLinear(c.b);
5041
- const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
5042
- const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
5043
- const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
5044
- return {
5045
- L: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,
5046
- a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,
5047
- b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,
5048
- };
5049
- }
5050
- function oklabToRgb(c) {
5051
- const l = Math.pow(c.L + 0.3963377774 * c.a + 0.2158037573 * c.b, 3);
5052
- const m = Math.pow(c.L - 0.1055613458 * c.a - 0.0638541728 * c.b, 3);
5053
- const s = Math.pow(c.L - 0.0894841775 * c.a - 1.291485548 * c.b, 3);
5054
- return {
5055
- r: linearToSrgb(+4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s),
5056
- g: linearToSrgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s),
5057
- b: linearToSrgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s),
5058
- };
5059
- }
5060
- const inGamut = (c) => [c.r, c.g, c.b].every(v => v >= -1e-6 && v <= 1 + 1e-6);
5061
- /** The OKLab colour at (L, hue, chroma), chroma reduced until it fits sRGB. */
5062
- function atLightness(L, hueA, hueB, chroma) {
5063
- const len = Math.hypot(hueA, hueB) || 1;
5064
- const ua = hueA / len, ub = hueB / len;
5065
- let c = chroma;
5066
- for (let i = 0; i < 24; i++) {
5067
- const rgb = oklabToRgb({ L, a: ua * c, b: ub * c });
5068
- if (inGamut(rgb))
5069
- return rgb;
5070
- c *= 0.82;
5071
- }
5072
- return oklabToRgb({ L, a: 0, b: 0 });
5073
- }
5074
- // ── WCAG 2 (the gate) ────────────────────────────────────────────────────────
5075
- function relativeLuminance(c) {
5076
- return 0.2126 * srgbToLinear(c.r) + 0.7152 * srgbToLinear(c.g) + 0.0722 * srgbToLinear(c.b);
5077
- }
5078
- /** WCAG 2 contrast ratio between two colours (order-independent), 1..21. */
5079
- function wcagContrastRatio(a, b) {
5080
- const ca = typeof a === 'string' ? parseHexColor(a) : a;
5081
- const cb = typeof b === 'string' ? parseHexColor(b) : b;
5082
- if (!ca || !cb)
5083
- return 1;
5084
- const la = relativeLuminance(ca), lb = relativeLuminance(cb);
5085
- const [hi, lo] = la >= lb ? [la, lb] : [lb, la];
5086
- return (hi + 0.05) / (lo + 0.05);
5087
- }
5088
- // ── APCA (the read-out — WCAG 2 stays the gate) ─────────────────────────────
5089
- /**
5090
- * APCA-W3 lightness contrast Lc (0.0.98G-4g constants), text-on-background and signed:
5091
- * positive for dark-on-light, negative for light-on-dark; |Lc| ≈ 106–108 at the extremes.
5092
- * Shown in the picker as the perceptual read-out; never used as the pass/fail gate here.
5093
- */
5094
- function apcaLc(text, bg) {
5095
- const toY = (c) => 0.2126729 * Math.pow(c.r, 2.4) + 0.7151522 * Math.pow(c.g, 2.4) + 0.072175 * Math.pow(c.b, 2.4);
5096
- const clamp = (y) => (y < 0.022 ? y + Math.pow(0.022 - y, 1.414) : y);
5097
- const ct = typeof text === 'string' ? parseHexColor(text) : text;
5098
- const cb = typeof bg === 'string' ? parseHexColor(bg) : bg;
5099
- if (!ct || !cb)
5100
- return 0;
5101
- const yTxt = clamp(toY(ct)), yBg = clamp(toY(cb));
5102
- let lc;
5103
- if (yBg > yTxt)
5104
- lc = (Math.pow(yBg, 0.56) - Math.pow(yTxt, 0.57)) * 1.14;
5105
- else
5106
- lc = (Math.pow(yBg, 0.65) - Math.pow(yTxt, 0.62)) * 1.14;
5107
- if (Math.abs(lc) < 0.1)
5108
- return 0;
5109
- return Math.round((lc > 0 ? lc - 0.027 : lc + 0.027) * 1000) / 10;
5110
- }
5111
- // ── The ramp ─────────────────────────────────────────────────────────────────
5112
- /** Fixed, perceptually even lightness ladder for brand-50 … brand-900. */
5113
- const RAMP_STEPS = [
5114
- { step: 50, L: 0.97, chromaScale: 0.22 },
5115
- { step: 100, L: 0.93, chromaScale: 0.42 },
5116
- { step: 200, L: 0.86, chromaScale: 0.66 },
5117
- { step: 300, L: 0.78, chromaScale: 0.85 },
5118
- { step: 400, L: 0.70, chromaScale: 0.96 },
5119
- { step: 500, L: 0.62, chromaScale: 1.0 },
5120
- { step: 600, L: 0.53, chromaScale: 0.96 },
5121
- { step: 700, L: 0.45, chromaScale: 0.88 },
5122
- { step: 800, L: 0.36, chromaScale: 0.76 },
5123
- { step: 900, L: 0.27, chromaScale: 0.62 },
5124
- ];
5125
- const BLACK = { r: 0, g: 0, b: 0 };
5126
- const WHITE = { r: 1, g: 1, b: 1 };
5127
- /** Snap to the 8-bit hex the token will actually carry — contrast is judged on WHAT SHIPS.
5128
- * (The first version searched in float space and hex rounding landed 6.9596 where 7 was owed.) */
5129
- const quant = (c) => parseHexColor(toHexColor(c));
5130
- /** Binary-search an OKLab lightness so `contrast(colour, against) ≥ ratio`, darkening-or-lightening. */
5131
- function atContrast(against, ratio, hueA, hueB, chroma, darker) {
5132
- let lo = darker ? 0 : rgbToOklab(against).L;
5133
- let hi = darker ? rgbToOklab(against).L : 1;
5134
- let best = quant(atLightness(darker ? 0.18 : 0.92, hueA, hueB, chroma));
5135
- for (let i = 0; i < 28; i++) {
5136
- const mid = (lo + hi) / 2;
5137
- const candidate = quant(atLightness(mid, hueA, hueB, chroma));
5138
- if (wcagContrastRatio(candidate, against) >= ratio) {
5139
- best = candidate;
5140
- if (darker)
5141
- lo = mid;
5142
- else
5143
- hi = mid; // pull back toward `against`: the LOWEST passing step
5144
- }
5145
- else {
5146
- if (darker)
5147
- hi = mid;
5148
- else
5149
- lo = mid;
5150
- }
5151
- }
5152
- return best;
5153
- }
5154
- /**
5155
- * The derived brand tokens (plan §6's table, every row asserted in brand.spec.ts):
5156
- * `brand-50…900` (monotonic OKLab lightness, gamut-safe) · `brandInk` (black or white, ≥4.5 on
5157
- * brand-500 — brand-500's lightness is nudged when neither side clears it) · `surface`/`ink`/
5158
- * `inkMuted` (seed-tinted neutrals, ≥7:1 / ≥4.5:1 on surface) · `line` (the LIGHTEST neutral that
5159
- * still clears 3:1 on surface) · `accent` (pack-rotated hue, ≥4.5:1 on surface) — with dark-scheme
5160
- * values for the neutral family riding `values.dark`.
5161
- *
5162
- * Throws on an unparseable seed: callers (the picker) validate; a silent fallback here would
5163
- * launch a studio into a palette nobody chose.
5164
- */
5165
- function deriveBrandTokens(seed, pack) {
5166
- const seedRgb = parseHexColor(seed);
5167
- if (!seedRgb)
5168
- throw new TypeError(`deriveBrandTokens: not a colour: "${seed}"`);
5169
- const lab = rgbToOklab(seedRgb);
5170
- const chroma = Math.hypot(lab.a, lab.b);
5171
- const ua = chroma > 1e-6 ? lab.a : 0.0, ub = chroma > 1e-6 ? lab.b : 1e-6; // grey seeds: keep a stable (arbitrary) hue axis
5172
- const baseChroma = Math.max(chroma, 0.02); // near-grey seeds still get a usable, quiet ramp
5173
- const token = (name, value, dark) => ({ name, value, ...(dark ? { values: { dark } } : {}), type: 'color', group: 'colour' });
5174
- // 1 — the ramp
5175
- const ramp = RAMP_STEPS.map(({ step, L, chromaScale }) => ({ step, rgb: atLightness(L, ua, ub, baseChroma * chromaScale) }));
5176
- // 2 — brandInk on brand-500, nudging 500 (within its neighbours) when neither ink clears 4.5
5177
- let five = ramp.find(r => r.step === 500);
5178
- five.rgb = quant(five.rgb);
5179
- const inkFor = (bg) => (wcagContrastRatio(WHITE, bg) >= wcagContrastRatio(BLACK, bg) ? WHITE : BLACK);
5180
- for (let i = 0; i < 40 && wcagContrastRatio(inkFor(five.rgb), five.rgb) < 4.5; i++) {
5181
- const L = rgbToOklab(five.rgb).L;
5182
- // Mid tones can fail both inks — walk toward whichever side is already winning, but
5183
- // never past the neighbouring steps: the ramp's monotonic lightness is a guarantee.
5184
- const towardDark = wcagContrastRatio(WHITE, five.rgb) >= wcagContrastRatio(BLACK, five.rgb);
5185
- const next = Math.min(0.695, Math.max(0.545, L + (towardDark ? -0.012 : 0.012)));
5186
- if (next === L)
5187
- break;
5188
- five.rgb = quant(atLightness(next, ua, ub, baseChroma));
5189
- }
5190
- const brandInk = inkFor(five.rgb);
5191
- // 3 — the neutral family, faintly tinted by the seed hue. Surfaces are quantized FIRST:
5192
- // every later guarantee is measured against the hex that ships, not a float ideal.
5193
- const tint = 0.006;
5194
- const surface = quant(atLightness(0.985, ua, ub, tint));
5195
- const surfaceDark = quant(atLightness(0.145, ua, ub, tint * 1.5));
5196
- const ink = atContrast(surface, 7, ua, ub, tint * 2, true);
5197
- const inkDark = atContrast(surfaceDark, 7, ua, ub, tint * 2, false);
5198
- const inkMuted = atContrast(surface, 4.5, ua, ub, tint * 2, true);
5199
- const inkMutedDark = atContrast(surfaceDark, 4.5, ua, ub, tint * 2, false);
5200
- const line = atContrast(surface, 3, ua, ub, tint, true);
5201
- const lineDark = atContrast(surfaceDark, 3, ua, ub, tint, false);
5202
- // 4 — the accent: pack-defined hue rotation from the seed, readable on surface
5203
- const rot = ((pack.accentHueDeg ?? 150) * Math.PI) / 180;
5204
- const ra = ua * Math.cos(rot) - ub * Math.sin(rot);
5205
- const rb = ua * Math.sin(rot) + ub * Math.cos(rot);
5206
- const accent = atContrast(surface, 4.5, ra, rb, Math.max(baseChroma, 0.06), true);
5207
- return [
5208
- ...ramp.map(({ step, rgb }) => token(`brand-${step}`, toHexColor(rgb))),
5209
- token('brandInk', toHexColor(brandInk)),
5210
- token('surface', toHexColor(surface), toHexColor(surfaceDark)),
5211
- token('ink', toHexColor(ink), toHexColor(inkDark)),
5212
- token('inkMuted', toHexColor(inkMuted), toHexColor(inkMutedDark)),
5213
- token('line', toHexColor(line), toHexColor(lineDark)),
5214
- token('accent', toHexColor(accent)),
5215
- ];
5216
- }
5217
-
5218
- /**
5219
- * Design-token → CSS compilation, shared by BOTH renderers (flavors plan F0).
5220
- *
5221
- * A token row is `{ name, value }` plus, since F0, an optional per-scheme override:
5222
- * `values.dark`. The shape exists NOW — before any dark-mode UI — because retrofitting it
5223
- * later means rewriting every org's `designtokens` collection (flavors plan §10 C3).
5224
- *
5225
- * ⚠️ The appended-last contract: the dark block REDEFINES custom properties under
5226
- * `@media (prefers-color-scheme: dark)`. Per the responsive-breakpoints A3 lesson, every
5227
- * consumer appends it AFTER all of its base rules — the engine pushes it after the page's
5228
- * css blocks, the builder registry keeps it as its last token rule. Custom properties are
5229
- * order-insensitive against node rules, but keeping one ordering rule for every @media
5230
- * block in the product is cheaper than remembering which ones are exempt.
5231
- */
5232
- const usable = (t) => !!t && typeof t.name === 'string' && t.name !== '' &&
5233
- typeof t.value === 'string' && t.value !== '';
5234
- /** `{ 'iox-brand': '#2f6f62', … }` — the builder registry's input shape for base values. */
5235
- function tokensToVarMap(tokens) {
5236
- const map = {};
5237
- for (const t of tokens ?? []) {
5238
- if (usable(t))
5239
- map[`iox-${t.name}`] = t.value;
5240
- }
5241
- return map;
5242
- }
5243
- /** Only the tokens that carry a dark override, as `{ 'iox-name': darkValue }`. */
5244
- function tokensToDarkVarMap(tokens) {
5245
- const map = {};
5246
- for (const t of tokens ?? []) {
5247
- const dark = t?.values?.dark;
5248
- if (usable(t) && typeof dark === 'string' && dark !== '')
5249
- map[`iox-${t.name}`] = dark;
5250
- }
5251
- return map;
5252
- }
5253
- /**
5254
- * The two CSS blocks a renderer emits. `base` goes FIRST (before node rules), `dark` goes
5255
- * LAST (after every base rule); either may be '' when there is nothing to say.
5256
- */
5257
- function compileTokenCss(tokens) {
5258
- const baseVars = Object.entries(tokensToVarMap(tokens))
5259
- .map(([k, v]) => ` --${k}: ${v};`).join('\n');
5260
- const darkVars = Object.entries(tokensToDarkVarMap(tokens))
5261
- .map(([k, v]) => ` --${k}: ${v};`).join('\n');
5262
- return {
5263
- base: baseVars ? `:root {\n${baseVars}\n}` : '',
5264
- dark: darkVars ? `@media (prefers-color-scheme: dark) {\n :root {\n${darkVars}\n }\n}` : '',
5265
- };
5266
- }
5267
-
5268
- /** trait → `var(--iox-<token>, <packValue>)` for one node type. Unknown type → {}. */
5269
- function resolveFlavorDefaults(type, pack) {
5270
- const map = pack?.defaults?.[type];
5271
- if (!map)
5272
- return {};
5273
- const byName = new Map((pack.tokens ?? []).map(t => [t.name, t.value]));
5274
- const out = {};
5275
- for (const [trait, tokenName] of Object.entries(map)) {
5276
- const fallback = byName.get(tokenName);
5277
- if (fallback === undefined)
5278
- continue; // validator fails the build; runtime stays safe
5279
- out[trait] = `var(--iox-${tokenName}, ${fallback})`;
5280
- }
5281
- return out;
5282
- }
5283
- /**
5284
- * The ENGINE's half of the cascade: kebab `prop: var(…)` declarations for every pack default
5285
- * the node's persisted styleProps does NOT set. Appended beside renderDefaultDeclarations —
5286
- * same guard-on-undefined discipline, so a node saved post-F1 (var already serialised via the
5287
- * builder's trait defaults) is untouched, and a legacy node picks the pack default up at
5288
- * render time. Node styleProps always wins.
5289
- */
5290
- function flavorDefaultDeclarations(type, styleProps, pack) {
5291
- const sp = styleProps ?? {};
5292
- const out = [];
5293
- for (const [trait, value] of Object.entries(resolveFlavorDefaults(type, pack))) {
5294
- if (sp[trait] === undefined)
5295
- out.push(`${styleKeyToKebab(trait)}: ${value}`);
5296
- }
5297
- return out;
5298
- }
5299
- /**
5300
- * The CI gate (flavors plan §10 C4): a pack may only name types and traits that exist in the
5301
- * live component registry, and tokens it defines itself. Returns human-readable errors; a
5302
- * consumer spec feeds it the REAL registry and asserts [].
5303
- */
5304
- function validateFlavorPack(pack, knownTraitsByType) {
5305
- const errors = [];
5306
- const tokenNames = new Set((pack.tokens ?? []).map(t => t.name));
5307
- for (const t of pack.tokens ?? []) {
5308
- if (!t.name)
5309
- errors.push(`${pack.id}: token with empty name`);
5310
- if (!t.value)
5311
- errors.push(`${pack.id}: token "${t.name}" has no value`);
5312
- }
5313
- for (const [type, traits] of Object.entries(pack.defaults ?? {})) {
5314
- const known = knownTraitsByType[type];
5315
- if (!known) {
5316
- errors.push(`${pack.id}: unknown component type "${type}"`);
5317
- continue;
5318
- }
5319
- const knownSet = known instanceof Set ? known : new Set(known);
5320
- for (const [trait, tokenName] of Object.entries(traits)) {
5321
- if (!knownSet.has(trait))
5322
- errors.push(`${pack.id}: "${type}" has no style trait "${trait}"`);
5323
- if (!tokenNames.has(tokenName))
5324
- errors.push(`${pack.id}: "${type}.${trait}" references undefined token "${tokenName}"`);
5325
- if (/[:(]|^#|\d/.test(tokenName))
5326
- errors.push(`${pack.id}: "${type}.${trait}" must name a token, not a value ("${tokenName}")`);
5327
- }
5328
- }
5329
- return errors;
5330
- }
5331
- /**
5332
- * Swiss — the default pack (flavors plan §8: "the flavor that can never embarrass anyone").
5333
- * Deliberately SMALL at F1: radius + control padding on the clickables, surface radius on Card.
5334
- * Colour, type and motion arrive with the brand step (F2) — a colour default here would repaint
5335
- * legacy pages before anyone chose anything.
5336
- */
5337
- const SWISS_FLAVOR = {
5338
- id: 'swiss',
5339
- version: 1,
5340
- label: 'Swiss',
5341
- blurb: 'Grid discipline, hairline rules, near-zero motion.',
5342
- tokens: [
5343
- { name: 'radius-control', value: '4px', type: 'size', group: 'radius' },
5344
- { name: 'radius-surface', value: '4px', type: 'size', group: 'radius' },
5345
- { name: 'space-control', value: '10px 18px', type: 'spacing', group: 'space' },
5346
- { name: 'space-stack', value: '12px', type: 'spacing', group: 'space' },
5347
- ],
5348
- defaults: {
5349
- Button: { borderRadius: 'radius-control', padding: 'space-control' },
5350
- ButtonBlock: { borderRadius: 'radius-control', padding: 'space-control' },
5351
- Card: { borderRadius: 'radius-surface' },
5352
- },
5353
- // F2: Swiss turns the seed toward a cool counterpoint. NOTE deliberately: the brand tokens
5354
- // deriveBrandTokens() emits are SEEDED per org — they do not join `defaults` here, because a
5355
- // colour default repaints legacy nodes whose saved styleProps lack the key (the engine fills
5356
- // missing keys from config defaults). Coloured element defaults are a Swiss v2 upgrade
5357
- // decision (§10 C2), taken with the picker in front of the author — never a side effect.
5358
- accentHueDeg: 150,
5359
- };
5360
- /** What both renderers use until F2 lets an org choose. */
5361
- const DEFAULT_FLAVOR = SWISS_FLAVOR;
5362
-
5363
5025
  /**
5364
5026
  * page-style — the ONE compiler that turns a page's style settings into CSS.
5365
5027
  *
@@ -7197,5 +6859,5 @@ function effectiveTransitionId(anim) {
7197
6859
  * Generated bundle index. Do not edit.
7198
6860
  */
7199
6861
 
7200
- export { AOSService, BREAKPOINTS, Breakpoint, BreakpointQueryKind, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CONTEXT_ACTION_TYPES, CardComponent, ClientGalleryComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ContainerComponent, ContextStore, DEFAULT_FLAVOR, DEFAULT_GALLERY_SCHEDULER, DEFAULT_PAGE_TRANSITION, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_EASING, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_PHOSPHOR_WEIGHT, DEFAULT_WIDTH_BY_TYPE, DeclarationContext, FormRenderState, FormRuntimeService, GALLERY_EFFECTS, GALLERY_EFFECT_DESCRIPTORS, GalleryLoop, IOX_BUILDER_EVENTS, IOX_FORM_MESSAGES, IOX_FORM_NAVIGATOR, IOX_FORM_TRANSPORT, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxFieldComponent, IoxFormComponent, IoxFormErrorComponent, IoxFormSuccessComponent, IoxPageComponent, IoxPageModule, IoxSubmitButtonComponent, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PART_CLASS_NAMES, PIPE_DESCRIPTORS, PIPE_REGISTRY, PageScrollProvider, RESERVED_ALIAS_PREFIX, SUPPRESSED_STYLE_PROPS_BY_TYPE, SWIPER_RESPONSIVE_TRAITS, SWISS_FLAVOR, SectionComponent, TRANSITION_FEELS, TextBlockComponent, VALIDATION_STATES, VALIDATION_STATE_CLASS, VIRTUAL_TRAIT_GROUPS, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, activeActions, apcaLc, applyBindingPipes, applyFeel, breakpointDef, breakpointForWidth, breakpointQueryFor, buildDataSourceFilter, buildPartSelector, buildRelatedFilter, buildSwiperBreakpoints, buildTargetedStateSelector, buildTransitionTimeline, cascadeChain, clearInputOverride, clearOverride, collectContextSlotKeys, collectReferencedAliases, compileDeclarations, compilePageStyle, compileTokenCss, composeVirtualTraits, computeRelative, contextActionEffect, contextSlotKeys, countOverrides, dataSourcePlanToRequest, declaredInputNames, defaultMessageResolver, deriveBrandTokens, deriveSeoFromContent, describeSeoFields, effectiveTransitionId, excludeSelf, feelFor, flavorDefaultDeclarations, getByPath, getSeoValue, initialSlotValues, isActionEnabled, isContextAction, isInputOverriddenAt, isOverriddenAt, isReservedAlias, isValidSlotKey, legacyEnterToTransition, matchRouteParams, mediaQueryFor, mergeSwiperBreakpoints, nearestCommonAncestorId, nodeCssId, nodeUsesContext, normalizeCollectionResult, normalizeGalleryImage, normalizeIconClass, oklabToRgb, parentBreakpoint, parseHexColor, parseUrlList, partClassName, planDataSource, planResponsiveRules, referencedDataSources, referencedDataSourcesDeep, relativeLuminance, renderDefaultDeclarations, resetSeoField, resolveBoundValue, resolveContextValue, resolveDerivedInto, resolveFlavorDefaults, resolveGalleryEffect, resolveGalleryUrls, resolveInputChain, resolveInputs, resolvePageTransition, resolvePath, resolveRelativeInto, resolveRepeaterItems, resolveSeo, resolveSiblings, resolveSingleItemId, resolveStateStyles, resolveStyleProps, resolveValueChain, rewriteViewportUnits, rgbToOklab, safeSetInput, setInputOverride, setOverride, setSeoAuto, setSeoBinding, setSeoOverride, setSeoValue, stateNamesIn, stripSuppressedProps, styleKeyToKebab, toHexColor, tokensToDarkVarMap, tokensToVarMap, validateFlavorPack, variableAliases, variableItemsFrom, wcagContrastRatio, withContextSlots, wrapInBreakpointQuery, wrapInMediaQuery };
6862
+ export { AOSService, BREAKPOINTS, Breakpoint, BreakpointQueryKind, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CONTEXT_ACTION_TYPES, CardComponent, ClientGalleryComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ContainerComponent, ContextStore, DEFAULT_GALLERY_SCHEDULER, DEFAULT_PAGE_TRANSITION, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_EASING, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_PHOSPHOR_WEIGHT, DEFAULT_WIDTH_BY_TYPE, DeclarationContext, FormRenderState, FormRuntimeService, GALLERY_EFFECTS, GALLERY_EFFECT_DESCRIPTORS, GalleryLoop, IOX_BUILDER_EVENTS, IOX_FORM_MESSAGES, IOX_FORM_NAVIGATOR, IOX_FORM_TRANSPORT, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxFieldComponent, IoxFormComponent, IoxFormErrorComponent, IoxFormSuccessComponent, IoxPageComponent, IoxPageModule, IoxSubmitButtonComponent, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PART_CLASS_NAMES, PIPE_DESCRIPTORS, PIPE_REGISTRY, PageScrollProvider, RESERVED_ALIAS_PREFIX, SUPPRESSED_STYLE_PROPS_BY_TYPE, SWIPER_RESPONSIVE_TRAITS, SectionComponent, TRANSITION_FEELS, TextBlockComponent, VALIDATION_STATES, VALIDATION_STATE_CLASS, VIRTUAL_TRAIT_GROUPS, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, activeActions, applyBindingPipes, applyFeel, breakpointDef, breakpointForWidth, breakpointQueryFor, buildDataSourceFilter, buildPartSelector, buildRelatedFilter, buildSwiperBreakpoints, buildTargetedStateSelector, buildTransitionTimeline, cascadeChain, clearInputOverride, clearOverride, collectContextSlotKeys, collectReferencedAliases, compileDeclarations, compilePageStyle, composeVirtualTraits, computeRelative, contextActionEffect, contextSlotKeys, countOverrides, dataSourcePlanToRequest, declaredInputNames, defaultMessageResolver, deriveSeoFromContent, describeSeoFields, effectiveTransitionId, excludeSelf, feelFor, getByPath, getSeoValue, initialSlotValues, isActionEnabled, isContextAction, isInputOverriddenAt, isOverriddenAt, isReservedAlias, isValidSlotKey, legacyEnterToTransition, matchRouteParams, mediaQueryFor, mergeSwiperBreakpoints, nearestCommonAncestorId, nodeCssId, nodeUsesContext, normalizeCollectionResult, normalizeGalleryImage, normalizeIconClass, parentBreakpoint, parseUrlList, partClassName, planDataSource, planResponsiveRules, referencedDataSources, referencedDataSourcesDeep, renderDefaultDeclarations, resetSeoField, resolveBoundValue, resolveContextValue, resolveDerivedInto, resolveGalleryEffect, resolveGalleryUrls, resolveInputChain, resolveInputs, resolvePageTransition, resolvePath, resolveRelativeInto, resolveRepeaterItems, resolveSeo, resolveSiblings, resolveSingleItemId, resolveStateStyles, resolveStyleProps, resolveValueChain, rewriteViewportUnits, safeSetInput, setInputOverride, setOverride, setSeoAuto, setSeoBinding, setSeoOverride, setSeoValue, stateNamesIn, stripSuppressedProps, variableAliases, variableItemsFrom, withContextSlots, wrapInBreakpointQuery, wrapInMediaQuery };
7201
6863
  //# sourceMappingURL=vectoriox-iox-ui.mjs.map