@wix/himalaya-cli 0.1616.0 → 0.1618.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 (73) hide show
  1. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/builder.d.ts +15 -0
  2. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/schema.d.ts +28 -0
  3. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/index.d.ts +2 -0
  4. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/one-app-section.d.ts +39 -0
  5. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/one-app-visibility.d.ts +22 -0
  6. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/core.mjs +1 -0
  7. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/screens.mjs +151 -24
  8. package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/sdui.mjs +8 -0
  9. package/dist/cli.mjs +1042 -389
  10. package/dist/preview-assets.generated.bin +0 -0
  11. package/guides/component-reference.json +10 -1
  12. package/guides/component-reference.md +25 -2
  13. package/guides/designing-himi-screens.md +3 -1
  14. package/guides/hhp.md +3 -1
  15. package/guides/himi-json-output.md +11 -1
  16. package/guides/index.json +1 -1
  17. package/guides/one-app-section-mappings.md +32 -0
  18. package/guides/one-app-to-himi-app.md +133 -9
  19. package/guides/tier-5-add-a-screen.md +1 -1
  20. package/package.json +2 -2
  21. package/templates/beauty-salon/dev/index.ts +37 -18
  22. package/templates/beauty-salon/tier5-src/_shared/sign-in-sheet.ts +18 -0
  23. package/templates/beauty-salon/tier5-src/himi-booking-service/index.ts +8 -3
  24. package/templates/beauty-salon/tier5-src/himi-branded-lite-agenda/index.ts +7 -2
  25. package/templates/beauty-salon/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  26. package/templates/beauty-salon/tier5-src/himi-store-account/index.ts +8 -2
  27. package/templates/branded-lite/dev/index.ts +95 -47
  28. package/templates/branded-lite/tier5-src/_shared/sign-in-sheet.ts +18 -0
  29. package/templates/branded-lite/tier5-src/himi-booking-service/index.ts +8 -3
  30. package/templates/branded-lite/tier5-src/himi-branded-lite-agenda/index.ts +7 -2
  31. package/templates/branded-lite/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  32. package/templates/branded-lite/tier5-src/himi-branded-lite-program/index.ts +7 -2
  33. package/templates/branded-lite/tier5-src/himi-store-account/index.ts +8 -2
  34. package/templates/community-club/dev/index.ts +27 -13
  35. package/templates/community-club/tier5-src/_shared/sign-in-sheet.ts +18 -0
  36. package/templates/community-club/tier5-src/himi-store-account/index.ts +8 -2
  37. package/templates/events-meetups/dev/index.ts +25 -12
  38. package/templates/events-meetups/tier5-src/_shared/sign-in-sheet.ts +18 -0
  39. package/templates/events-meetups/tier5-src/himi-store-account/index.ts +8 -2
  40. package/templates/gym-fitness/dev/index.ts +41 -20
  41. package/templates/gym-fitness/tier5-src/_shared/sign-in-sheet.ts +18 -0
  42. package/templates/gym-fitness/tier5-src/himi-booking-service/index.ts +8 -3
  43. package/templates/gym-fitness/tier5-src/himi-branded-lite-agenda/index.ts +7 -2
  44. package/templates/gym-fitness/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  45. package/templates/gym-fitness/tier5-src/himi-store-account/index.ts +8 -2
  46. package/templates/nonprofit-cause/dev/index.ts +31 -15
  47. package/templates/nonprofit-cause/tier5-src/_shared/sign-in-sheet.ts +18 -0
  48. package/templates/nonprofit-cause/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  49. package/templates/nonprofit-cause/tier5-src/himi-store-account/index.ts +8 -2
  50. package/templates/podcast-creator/dev/index.ts +29 -14
  51. package/templates/podcast-creator/tier5-src/_shared/sign-in-sheet.ts +18 -0
  52. package/templates/podcast-creator/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  53. package/templates/podcast-creator/tier5-src/himi-store-account/index.ts +8 -2
  54. package/templates/portfolio-creative/dev/index.ts +31 -15
  55. package/templates/portfolio-creative/tier5-src/_shared/sign-in-sheet.ts +18 -0
  56. package/templates/portfolio-creative/tier5-src/himi-store-account/index.ts +8 -2
  57. package/templates/restaurant/dev/index.ts +27 -13
  58. package/templates/restaurant/tier5-src/_shared/sign-in-sheet.ts +18 -0
  59. package/templates/restaurant/tier5-src/himi-store-account/index.ts +8 -2
  60. package/templates/retail-store/dev/index.ts +25 -12
  61. package/templates/retail-store/tier5-src/_shared/sign-in-sheet.ts +18 -0
  62. package/templates/retail-store/tier5-src/himi-store-account/index.ts +8 -2
  63. package/templates/salon-spa/tier5-src/_shared/sign-in-sheet.ts +18 -0
  64. package/templates/salon-spa/tier5-src/himi-booking-service/index.ts +8 -3
  65. package/templates/salon-spa/tier5-src/himi-branded-lite-agenda/index.ts +7 -2
  66. package/templates/salon-spa/tier5-src/himi-store-account/index.ts +8 -2
  67. package/templates/yoga-studio/dev/index.ts +37 -18
  68. package/templates/yoga-studio/tier5-src/_shared/sign-in-sheet.ts +18 -0
  69. package/templates/yoga-studio/tier5-src/himi-booking-service/index.ts +8 -3
  70. package/templates/yoga-studio/tier5-src/himi-branded-lite-agenda/index.ts +7 -2
  71. package/templates/yoga-studio/tier5-src/himi-branded-lite-place-summary/index.ts +7 -2
  72. package/templates/yoga-studio/tier5-src/himi-branded-lite-program/index.ts +7 -2
  73. package/templates/yoga-studio/tier5-src/himi-store-account/index.ts +8 -2
package/dist/cli.mjs CHANGED
@@ -38,8 +38,8 @@ var init_define_HHP_CATALOG = __esm({
38
38
  "<define:__HHP_CATALOG__>"() {
39
39
  define_HHP_CATALOG_default = {
40
40
  encoding: "gzip-base64",
41
- sha256: "17e37c4c07b4df780bc3dba3077c3475dceb8dd7f9661a16d4796ae1cb625415",
42
- data: "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"
41
+ sha256: "689bbc628cbf47f43d8560a42737642fff03dee0f7f1260a5a37c78c99c92e61",
42
+ data: "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"
43
43
  };
44
44
  }
45
45
  });
@@ -2579,9 +2579,9 @@ function validateCmsConfig(cms, app, opts = {}) {
2579
2579
  message: spec.readRole === "SITE_MEMBER_AUTHOR" ? `readRole is SITE_MEMBER_AUTHOR (row-level: a member reads only rows they authored) but the app boots as a visitor, so this collection renders empty for visitors \u2014 who author nothing. Gate the screen behind a login, or declare \`memberGated\`. Do NOT widen the read: "ANYONE"/"SITE_MEMBER" are collection-wide and would expose every member's rows.` : `readRole is SITE_MEMBER but the app boots as a visitor, so this collection renders empty for visitors. Use readRole "ANYONE", or gate the screen behind a login.`
2580
2580
  });
2581
2581
  }
2582
- const memberOnly = ["SITE_MEMBER", "SITE_MEMBER_AUTHOR"];
2582
+ const memberOnly2 = ["SITE_MEMBER", "SITE_MEMBER_AUTHOR"];
2583
2583
  const effective = permissionsFor(spec);
2584
- const gatedOps = ["insert", "update"].filter((op) => memberOnly.includes(effective[op]));
2584
+ const gatedOps = ["insert", "update"].filter((op) => memberOnly2.includes(effective[op]));
2585
2585
  if (opts.bootAsVisitor && !cms.memberGated && !opts.hasSignInSurface && gatedOps.length > 0) {
2586
2586
  const named = gatedOps.map((op) => `${op} is ${effective[op]}`).join(" and ");
2587
2587
  const remedy = gatedOps.map((op) => `${op}Role "ANYONE"`).join(" + ");
@@ -5865,15 +5865,15 @@ function analyzeController(source, file2, profile, diagnostics) {
5865
5865
  error(declaration ?? sf2, "Default-export defineController({ initialState, handlers }).");
5866
5866
  return;
5867
5867
  }
5868
- const object14 = declaration.expression.arguments[0];
5869
- if (!object14 || !ts2.isObjectLiteralExpression(object14)) {
5868
+ const object15 = declaration.expression.arguments[0];
5869
+ if (!object15 || !ts2.isObjectLiteralExpression(object15)) {
5870
5870
  error(declaration, "Controller definition must be an object literal.");
5871
5871
  return;
5872
5872
  }
5873
- const props2 = new Map(object14.properties.map((p2) => [p2.name?.getText(sf2).replace(/^["']|["']$/g, ""), p2]));
5873
+ const props2 = new Map(object15.properties.map((p2) => [p2.name?.getText(sf2).replace(/^["']|["']$/g, ""), p2]));
5874
5874
  const state = props2.get("initialState"), handlers = props2.get("handlers");
5875
5875
  if (!state || !ts2.isPropertyAssignment(state) || !handlers || !ts2.isPropertyAssignment(handlers) || !ts2.isObjectLiteralExpression(handlers.initializer)) {
5876
- error(object14, "initialState and handlers must be object literals.");
5876
+ error(object15, "initialState and handlers must be object literals.");
5877
5877
  return;
5878
5878
  }
5879
5879
  function literal(n2) {
@@ -12724,9 +12724,9 @@ function manualPaginationIssues(descriptor) {
12724
12724
  while (pending.length) {
12725
12725
  const { value: value2, path: path2 } = pending.pop();
12726
12726
  if (!value2 || typeof value2 !== "object") continue;
12727
- const object14 = value2;
12728
- if (object14.body?.props) nodes2.push({ path: path2, type: object14.body.type, props: object14.body.props });
12729
- for (const [key3, child] of Object.entries(object14)) {
12727
+ const object15 = value2;
12728
+ if (object15.body?.props) nodes2.push({ path: path2, type: object15.body.type, props: object15.body.props });
12729
+ for (const [key3, child] of Object.entries(object15)) {
12730
12730
  if (key3 === "args" || key3 === "input") continue;
12731
12731
  if (child && typeof child === "object") pending.push({ value: child, path: path2 ? `${path2}.${key3}` : key3 });
12732
12732
  }
@@ -14211,6 +14211,7 @@ var init_validator = __esm({
14211
14211
  "himalaya.Spacer",
14212
14212
  "himalaya.EmptyState",
14213
14213
  "himalaya.ErrorState",
14214
+ "himalaya.QrCode",
14214
14215
  "himalaya.Text",
14215
14216
  "himalaya.Image",
14216
14217
  "himalaya.Icon",
@@ -14588,6 +14589,370 @@ var init_declared_navigation_lint = __esm({
14588
14589
  }
14589
14590
  });
14590
14591
 
14592
+ // ../../core/ts/src/qr-code.ts
14593
+ function qrErrorCorrection(raw) {
14594
+ const s2 = typeof raw === "string" ? raw.trim().toUpperCase() : "";
14595
+ return s2 === "L" || s2 === "M" || s2 === "Q" || s2 === "H" ? s2 : QR_DEFAULT_ERROR_CORRECTION;
14596
+ }
14597
+ function rawDataModules(ver) {
14598
+ let result = (16 * ver + 128) * ver + 64;
14599
+ if (ver >= 2) {
14600
+ const numAlign = Math.floor(ver / 7) + 2;
14601
+ result -= (25 * numAlign - 10) * numAlign - 55;
14602
+ if (ver >= 7) result -= 36;
14603
+ }
14604
+ return result;
14605
+ }
14606
+ function dataCodewords(ver, ecl) {
14607
+ return Math.floor(rawDataModules(ver) / 8) - ECC_CODEWORDS_PER_BLOCK[ecl][ver] * NUM_ERROR_CORRECTION_BLOCKS[ecl][ver];
14608
+ }
14609
+ function qrByteCapacity(version5, level = QR_DEFAULT_ERROR_CORRECTION) {
14610
+ const lenBits = version5 < 10 ? 8 : 16;
14611
+ return Math.floor((dataCodewords(version5, ECL_INDEX[level]) * 8 - 4 - lenBits) / 8);
14612
+ }
14613
+ function qrPayloadBytes(text13) {
14614
+ return new TextEncoder().encode(text13).length;
14615
+ }
14616
+ function qrFitVersion(byteLength, level = QR_DEFAULT_ERROR_CORRECTION) {
14617
+ for (let v2 = QR_MIN_VERSION; v2 <= QR_MAX_VERSION; v2++) if (qrByteCapacity(v2, level) >= byteLength) return v2;
14618
+ return void 0;
14619
+ }
14620
+ function qrFits(text13, level = QR_DEFAULT_ERROR_CORRECTION) {
14621
+ return qrFitVersion(qrPayloadBytes(text13), level) !== void 0;
14622
+ }
14623
+ function gfMul(x2, y2) {
14624
+ let z5 = 0;
14625
+ for (let i2 = 7; i2 >= 0; i2--) {
14626
+ z5 = z5 << 1 ^ (z5 >>> 7) * 285;
14627
+ z5 ^= (y2 >>> i2 & 1) * x2;
14628
+ }
14629
+ return z5 & 255;
14630
+ }
14631
+ function rsDivisor(degree) {
14632
+ const result = new Array(degree).fill(0);
14633
+ result[degree - 1] = 1;
14634
+ let root = 1;
14635
+ for (let i2 = 0; i2 < degree; i2++) {
14636
+ for (let j2 = 0; j2 < degree; j2++) {
14637
+ result[j2] = gfMul(result[j2], root);
14638
+ if (j2 + 1 < degree) result[j2] ^= result[j2 + 1];
14639
+ }
14640
+ root = gfMul(root, 2);
14641
+ }
14642
+ return result;
14643
+ }
14644
+ function rsRemainder(data, divisor) {
14645
+ const result = new Array(divisor.length).fill(0);
14646
+ for (const b2 of data) {
14647
+ const factor = b2 ^ result.shift();
14648
+ result.push(0);
14649
+ for (let i2 = 0; i2 < divisor.length; i2++) result[i2] ^= gfMul(divisor[i2], factor);
14650
+ }
14651
+ return result;
14652
+ }
14653
+ function encodeQrCode(text13, level = QR_DEFAULT_ERROR_CORRECTION) {
14654
+ const ecl = ECL_INDEX[level];
14655
+ const bytes2 = [...new TextEncoder().encode(text13)];
14656
+ const version5 = qrFitVersion(bytes2.length, level);
14657
+ if (version5 === void 0) throw new QrCapacityError(bytes2.length, level);
14658
+ const bits = [];
14659
+ const push = (val, len) => {
14660
+ for (let i3 = len - 1; i3 >= 0; i3--) bits.push(val >>> i3 & 1);
14661
+ };
14662
+ push(4, 4);
14663
+ push(bytes2.length, version5 < 10 ? 8 : 16);
14664
+ for (const b2 of bytes2) push(b2, 8);
14665
+ const capacityBits = dataCodewords(version5, ecl) * 8;
14666
+ push(0, Math.min(4, capacityBits - bits.length));
14667
+ push(0, (8 - bits.length % 8) % 8);
14668
+ for (let pad3 = 236; bits.length < capacityBits; pad3 ^= 236 ^ 17) push(pad3, 8);
14669
+ const data = [];
14670
+ for (let i3 = 0; i3 < bits.length; i3 += 8) {
14671
+ let byte2 = 0;
14672
+ for (let j2 = 0; j2 < 8; j2++) byte2 = byte2 << 1 | bits[i3 + j2];
14673
+ data.push(byte2);
14674
+ }
14675
+ const numBlocks = NUM_ERROR_CORRECTION_BLOCKS[ecl][version5];
14676
+ const blockEccLen = ECC_CODEWORDS_PER_BLOCK[ecl][version5];
14677
+ const rawCodewords = Math.floor(rawDataModules(version5) / 8);
14678
+ const numShortBlocks = numBlocks - rawCodewords % numBlocks;
14679
+ const shortBlockLen = Math.floor(rawCodewords / numBlocks);
14680
+ const divisor = rsDivisor(blockEccLen);
14681
+ const blocks = [];
14682
+ for (let i3 = 0, k2 = 0; i3 < numBlocks; i3++) {
14683
+ const dat = data.slice(k2, k2 + shortBlockLen - blockEccLen + (i3 < numShortBlocks ? 0 : 1));
14684
+ k2 += dat.length;
14685
+ const ecc = rsRemainder(dat, divisor);
14686
+ if (i3 < numShortBlocks) dat.push(0);
14687
+ blocks.push(dat.concat(ecc));
14688
+ }
14689
+ const codewords = [];
14690
+ for (let i3 = 0; i3 < blocks[0].length; i3++) {
14691
+ blocks.forEach((block, j2) => {
14692
+ if (i3 !== shortBlockLen - blockEccLen || j2 >= numShortBlocks) codewords.push(block[i3]);
14693
+ });
14694
+ }
14695
+ const size = version5 * 4 + 17;
14696
+ const modules = Array.from({ length: size }, () => new Array(size).fill(false));
14697
+ const isFunction = Array.from({ length: size }, () => new Array(size).fill(false));
14698
+ const setFn = (x2, y2, dark) => {
14699
+ modules[y2][x2] = dark;
14700
+ isFunction[y2][x2] = true;
14701
+ };
14702
+ for (let i3 = 0; i3 < size; i3++) {
14703
+ setFn(6, i3, i3 % 2 === 0);
14704
+ setFn(i3, 6, i3 % 2 === 0);
14705
+ }
14706
+ const finder = (cx, cy) => {
14707
+ for (let dy = -4; dy <= 4; dy++)
14708
+ for (let dx = -4; dx <= 4; dx++) {
14709
+ const dist = Math.max(Math.abs(dx), Math.abs(dy));
14710
+ const x2 = cx + dx, y2 = cy + dy;
14711
+ if (x2 >= 0 && x2 < size && y2 >= 0 && y2 < size) setFn(x2, y2, dist !== 2 && dist !== 4);
14712
+ }
14713
+ };
14714
+ finder(3, 3);
14715
+ finder(size - 4, 3);
14716
+ finder(3, size - 4);
14717
+ const align = alignmentPositions(version5);
14718
+ const numAlign = align.length;
14719
+ for (let i3 = 0; i3 < numAlign; i3++)
14720
+ for (let j2 = 0; j2 < numAlign; j2++) {
14721
+ if (i3 === 0 && j2 === 0 || i3 === 0 && j2 === numAlign - 1 || i3 === numAlign - 1 && j2 === 0) continue;
14722
+ for (let dy = -2; dy <= 2; dy++)
14723
+ for (let dx = -2; dx <= 2; dx++) setFn(align[i3] + dx, align[j2] + dy, Math.max(Math.abs(dx), Math.abs(dy)) !== 1);
14724
+ }
14725
+ drawFormat(0, ECL_FORMAT_BITS[ecl], size, setFn);
14726
+ drawVersion(version5, size, setFn);
14727
+ let i2 = 0;
14728
+ for (let right = size - 1; right >= 1; right -= 2) {
14729
+ if (right === 6) right = 5;
14730
+ for (let vert = 0; vert < size; vert++)
14731
+ for (let j2 = 0; j2 < 2; j2++) {
14732
+ const x2 = right - j2;
14733
+ const upward = (right + 1 & 2) === 0;
14734
+ const y2 = upward ? size - 1 - vert : vert;
14735
+ if (!isFunction[y2][x2] && i2 < codewords.length * 8) {
14736
+ modules[y2][x2] = (codewords[i2 >>> 3] >>> 7 - (i2 & 7) & 1) === 1;
14737
+ i2++;
14738
+ }
14739
+ }
14740
+ }
14741
+ let bestMask = 0, bestPenalty = Infinity, best = modules;
14742
+ for (let mask = 0; mask < 8; mask++) {
14743
+ const cand = modules.map((row2) => row2.slice());
14744
+ applyMask(cand, isFunction, mask, size);
14745
+ drawFormat(mask, ECL_FORMAT_BITS[ecl], size, (x2, y2, dark) => {
14746
+ cand[y2][x2] = dark;
14747
+ });
14748
+ const p2 = penaltyScore(cand, size);
14749
+ if (p2 < bestPenalty) {
14750
+ bestPenalty = p2;
14751
+ bestMask = mask;
14752
+ best = cand;
14753
+ }
14754
+ }
14755
+ return { size, version: version5, level, mask: bestMask, modules: best };
14756
+ }
14757
+ function alignmentPositions(ver) {
14758
+ if (ver === 1) return [];
14759
+ const numAlign = Math.floor(ver / 7) + 2;
14760
+ const step = ver === 32 ? 26 : Math.ceil((ver * 4 + 4) / (numAlign * 2 - 2)) * 2;
14761
+ const result = [6];
14762
+ for (let pos = ver * 4 + 10; result.length < numAlign; pos -= step) result.splice(1, 0, pos);
14763
+ return result;
14764
+ }
14765
+ function drawFormat(mask, eclBits, size, set2) {
14766
+ const data = eclBits << 3 | mask;
14767
+ let rem = data;
14768
+ for (let i2 = 0; i2 < 10; i2++) rem = rem << 1 ^ (rem >>> 9) * 1335;
14769
+ const bits = (data << 10 | rem) ^ 21522;
14770
+ const bit = (i2) => (bits >>> i2 & 1) !== 0;
14771
+ for (let i2 = 0; i2 <= 5; i2++) set2(8, i2, bit(i2));
14772
+ set2(8, 7, bit(6));
14773
+ set2(8, 8, bit(7));
14774
+ set2(7, 8, bit(8));
14775
+ for (let i2 = 9; i2 < 15; i2++) set2(14 - i2, 8, bit(i2));
14776
+ for (let i2 = 0; i2 < 8; i2++) set2(size - 1 - i2, 8, bit(i2));
14777
+ for (let i2 = 8; i2 < 15; i2++) set2(8, size - 15 + i2, bit(i2));
14778
+ set2(8, size - 8, true);
14779
+ }
14780
+ function drawVersion(ver, size, set2) {
14781
+ if (ver < 7) return;
14782
+ let rem = ver;
14783
+ for (let i2 = 0; i2 < 12; i2++) rem = rem << 1 ^ (rem >>> 11) * 7973;
14784
+ const bits = ver << 12 | rem;
14785
+ for (let i2 = 0; i2 < 18; i2++) {
14786
+ const dark = (bits >>> i2 & 1) !== 0;
14787
+ const a2 = size - 11 + i2 % 3, b2 = Math.floor(i2 / 3);
14788
+ set2(a2, b2, dark);
14789
+ set2(b2, a2, dark);
14790
+ }
14791
+ }
14792
+ function applyMask(m2, fn2, mask, size) {
14793
+ for (let y2 = 0; y2 < size; y2++)
14794
+ for (let x2 = 0; x2 < size; x2++) {
14795
+ let invert;
14796
+ switch (mask) {
14797
+ case 0:
14798
+ invert = (x2 + y2) % 2 === 0;
14799
+ break;
14800
+ case 1:
14801
+ invert = y2 % 2 === 0;
14802
+ break;
14803
+ case 2:
14804
+ invert = x2 % 3 === 0;
14805
+ break;
14806
+ case 3:
14807
+ invert = (x2 + y2) % 3 === 0;
14808
+ break;
14809
+ case 4:
14810
+ invert = (Math.floor(x2 / 3) + Math.floor(y2 / 2)) % 2 === 0;
14811
+ break;
14812
+ case 5:
14813
+ invert = x2 * y2 % 2 + x2 * y2 % 3 === 0;
14814
+ break;
14815
+ case 6:
14816
+ invert = (x2 * y2 % 2 + x2 * y2 % 3) % 2 === 0;
14817
+ break;
14818
+ default:
14819
+ invert = ((x2 + y2) % 2 + x2 * y2 % 3) % 2 === 0;
14820
+ break;
14821
+ }
14822
+ if (!fn2[y2][x2] && invert) m2[y2][x2] = !m2[y2][x2];
14823
+ }
14824
+ }
14825
+ function penaltyScore(m2, size) {
14826
+ let result = 0;
14827
+ const line = (get) => {
14828
+ for (let a2 = 0; a2 < size; a2++) {
14829
+ let runColor = false, runLen = 0;
14830
+ const history = [0, 0, 0, 0, 0, 0, 0];
14831
+ for (let b2 = 0; b2 < size; b2++) {
14832
+ if (get(a2, b2) === runColor) {
14833
+ runLen++;
14834
+ if (runLen === 5) result += N1;
14835
+ else if (runLen > 5) result++;
14836
+ } else {
14837
+ addHistory(runLen, history, size);
14838
+ if (!runColor) result += countPatterns(history) * N3;
14839
+ runColor = get(a2, b2);
14840
+ runLen = 1;
14841
+ }
14842
+ }
14843
+ result += terminateAndCount(runColor, runLen, history, size) * N3;
14844
+ }
14845
+ };
14846
+ line((y2, x2) => m2[y2][x2]);
14847
+ line((x2, y2) => m2[y2][x2]);
14848
+ for (let y2 = 0; y2 < size - 1; y2++)
14849
+ for (let x2 = 0; x2 < size - 1; x2++) {
14850
+ const c2 = m2[y2][x2];
14851
+ if (c2 === m2[y2][x2 + 1] && c2 === m2[y2 + 1][x2] && c2 === m2[y2 + 1][x2 + 1]) result += N2;
14852
+ }
14853
+ let dark = 0;
14854
+ for (const row2 of m2) for (const c2 of row2) if (c2) dark++;
14855
+ const total = size * size;
14856
+ const k2 = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;
14857
+ result += k2 * N4;
14858
+ return result;
14859
+ }
14860
+ function addHistory(runLen, history, size) {
14861
+ if (history[0] === 0) runLen += size;
14862
+ history.pop();
14863
+ history.unshift(runLen);
14864
+ }
14865
+ function countPatterns(h2) {
14866
+ const n2 = h2[1];
14867
+ const core2 = n2 > 0 && h2[2] === n2 && h2[3] === n2 * 3 && h2[4] === n2 && h2[5] === n2;
14868
+ return (core2 && h2[0] >= n2 * 4 && h2[6] >= n2 ? 1 : 0) + (core2 && h2[6] >= n2 * 4 && h2[0] >= n2 ? 1 : 0);
14869
+ }
14870
+ function terminateAndCount(runColor, runLen, history, size) {
14871
+ if (runColor) {
14872
+ addHistory(runLen, history, size);
14873
+ runLen = 0;
14874
+ }
14875
+ runLen += size;
14876
+ addHistory(runLen, history, size);
14877
+ return countPatterns(history);
14878
+ }
14879
+ function qrRelativeLuminance(hex2) {
14880
+ const m2 = /^#?([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(hex2.trim());
14881
+ if (!m2) return void 0;
14882
+ let h2 = m2[1];
14883
+ if (h2.length === 3) h2 = h2.split("").map((c2) => c2 + c2).join("");
14884
+ const ch2 = (i2) => {
14885
+ const c2 = parseInt(h2.slice(i2, i2 + 2), 16) / 255;
14886
+ return c2 <= 0.03928 ? c2 / 12.92 : Math.pow((c2 + 0.055) / 1.055, 2.4);
14887
+ };
14888
+ return 0.2126 * ch2(0) + 0.7152 * ch2(2) + 0.0722 * ch2(4);
14889
+ }
14890
+ function qrIsOpaque(hex2) {
14891
+ const h2 = hex2.trim().replace(/^#/, "");
14892
+ return h2.length !== 8 || h2.slice(6).toLowerCase() === "ff";
14893
+ }
14894
+ function qrContrastRatio(a2, b2) {
14895
+ const la2 = qrRelativeLuminance(a2), lb = qrRelativeLuminance(b2);
14896
+ if (la2 === void 0 || lb === void 0) return void 0;
14897
+ return (Math.max(la2, lb) + 0.05) / (Math.min(la2, lb) + 0.05);
14898
+ }
14899
+ function resolveQrColors(opts) {
14900
+ if (opts.dark && !(opts.colorGiven && opts.backgroundGiven)) {
14901
+ return { color: QR_FALLBACK_COLOR, background: QR_FALLBACK_BACKGROUND, fellBack: true };
14902
+ }
14903
+ const color = opts.color, background = opts.background;
14904
+ if (color && background && qrIsOpaque(color) && qrIsOpaque(background)) {
14905
+ const ratio = qrContrastRatio(color, background);
14906
+ const lc2 = qrRelativeLuminance(color), lb = qrRelativeLuminance(background);
14907
+ if (ratio !== void 0 && ratio >= QR_MIN_CONTRAST && lc2 < lb) return { color, background, fellBack: false };
14908
+ }
14909
+ return { color: QR_FALLBACK_COLOR, background: QR_FALLBACK_BACKGROUND, fellBack: true };
14910
+ }
14911
+ var QR_ERROR_CORRECTION_LEVELS, QR_DEFAULT_ERROR_CORRECTION, QR_MIN_VERSION, QR_MAX_VERSION, ECL_INDEX, ECL_FORMAT_BITS, ECC_CODEWORDS_PER_BLOCK, NUM_ERROR_CORRECTION_BLOCKS, QrCapacityError, N1, N2, N3, N4, QR_MIN_CONTRAST, QR_DEFAULT_COLOR_TOKEN, QR_DEFAULT_BACKGROUND_TOKEN, QR_DEFAULT_SIZE, QR_DEFAULT_QUIET_ZONE, QR_DEFAULT_ACCESSIBILITY_LABEL, QR_FALLBACK_COLOR, QR_FALLBACK_BACKGROUND;
14912
+ var init_qr_code = __esm({
14913
+ "../../core/ts/src/qr-code.ts"() {
14914
+ init_define_HHP_CATALOG();
14915
+ QR_ERROR_CORRECTION_LEVELS = ["L", "M", "Q", "H"];
14916
+ QR_DEFAULT_ERROR_CORRECTION = "M";
14917
+ QR_MIN_VERSION = 1;
14918
+ QR_MAX_VERSION = 40;
14919
+ ECL_INDEX = { L: 0, M: 1, Q: 2, H: 3 };
14920
+ ECL_FORMAT_BITS = [1, 0, 3, 2];
14921
+ ECC_CODEWORDS_PER_BLOCK = [
14922
+ [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
14923
+ [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
14924
+ [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
14925
+ [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]
14926
+ ];
14927
+ NUM_ERROR_CORRECTION_BLOCKS = [
14928
+ [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],
14929
+ [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],
14930
+ [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],
14931
+ [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]
14932
+ ];
14933
+ QrCapacityError = class extends RangeError {
14934
+ constructor(bytes2, level) {
14935
+ super(`QR payload too long: ${bytes2} bytes exceeds ${qrByteCapacity(QR_MAX_VERSION, level)} (version 40, level ${level})`);
14936
+ this.bytes = bytes2;
14937
+ this.level = level;
14938
+ this.name = "QrCapacityError";
14939
+ }
14940
+ };
14941
+ N1 = 3;
14942
+ N2 = 3;
14943
+ N3 = 40;
14944
+ N4 = 10;
14945
+ QR_MIN_CONTRAST = 3;
14946
+ QR_DEFAULT_COLOR_TOKEN = "textPrimary";
14947
+ QR_DEFAULT_BACKGROUND_TOKEN = "surfacePrimary";
14948
+ QR_DEFAULT_SIZE = 160;
14949
+ QR_DEFAULT_QUIET_ZONE = 4;
14950
+ QR_DEFAULT_ACCESSIBILITY_LABEL = "QR code";
14951
+ QR_FALLBACK_COLOR = "#000000";
14952
+ QR_FALLBACK_BACKGROUND = "#FFFFFF";
14953
+ }
14954
+ });
14955
+
14591
14956
  // ../../core/dev-server/src/token-suggest.ts
14592
14957
  function suggestTokenNames(name, known, max = 3) {
14593
14958
  return suggestNames(name, known, max, true);
@@ -15030,6 +15395,9 @@ var init_a11y_contract = __esm({
15030
15395
  // RFC 0065 §5 — a drawn shape has no content of its own to announce; a meaningful one
15031
15396
  // (a status dot) is named through `accessibilityLabel`, exactly like an Icon.
15032
15397
  Shape: { role: "decorative", name: "conditional", state: [], decorative: true },
15398
+ // #4671 — an IMAGE named by `accessibilityLabel`, defaulting to "QR code" on every renderer, so a
15399
+ // bare node already has a name. The encoded value is never read out.
15400
+ QrCode: { role: "image", name: "conditional", state: [], decorative: false },
15033
15401
  Banner: { role: "status", name: "required", state: ["dismissible"], decorative: false },
15034
15402
  Snackbar: { role: "status", name: "required", state: [], decorative: false },
15035
15403
  AlertDialog: { role: "alert", name: "required", state: ["modal"], decorative: false },
@@ -17893,6 +18261,52 @@ function mediaFieldFindings(descriptor) {
17893
18261
  visit(descriptor, "", true);
17894
18262
  return out2;
17895
18263
  }
18264
+ function qrCodeFindings(descriptor) {
18265
+ const out2 = [];
18266
+ const visit = (v2, path2, atRoot) => {
18267
+ if (Array.isArray(v2)) {
18268
+ v2.forEach((x2, i2) => visit(x2, `${path2}[${i2}]`, false));
18269
+ return;
18270
+ }
18271
+ if (!v2 || typeof v2 !== "object") return;
18272
+ const record3 = v2;
18273
+ const body = record3.body;
18274
+ if (body?.package === "himalaya" && body.type === "QrCode") {
18275
+ const p2 = body.props ?? {};
18276
+ const base = path2 ? `${path2}.body.props` : "body.props";
18277
+ const hasValue = typeof p2.value === "string" && p2.value !== "";
18278
+ const hasPath = typeof p2.valuePath === "string" && p2.valuePath !== "";
18279
+ if (!hasValue && !hasPath) {
18280
+ out2.push({ path: base, message: "QrCode needs a payload: set `value` (a literal string) or `valuePath` (a `$service:` / `$item.` binding)" });
18281
+ }
18282
+ if (hasPath && !p2.valuePath.startsWith("$service:") && !p2.valuePath.startsWith("$item.")) {
18283
+ out2.push({ path: `${base}.valuePath`, message: `QrCode.valuePath must be a "$service:<service>.<field>" or "$item.<field>" binding, got ${JSON.stringify(p2.valuePath)}. Put a literal payload in \`value\`` });
18284
+ }
18285
+ if (p2.errorCorrection !== void 0 && !(typeof p2.errorCorrection === "string" && QR_ERROR_CORRECTION_LEVELS.includes(p2.errorCorrection))) {
18286
+ out2.push({ path: `${base}.errorCorrection`, message: `QrCode.errorCorrection must be "L", "M", "Q" or "H", got ${JSON.stringify(p2.errorCorrection)}` });
18287
+ }
18288
+ const level = qrErrorCorrection(p2.errorCorrection);
18289
+ if (hasValue && !qrFits(p2.value, level)) {
18290
+ out2.push({
18291
+ path: `${base}.value`,
18292
+ message: `QrCode.value is ${qrPayloadBytes(p2.value)} bytes, over the ${qrByteCapacity(QR_MAX_VERSION, level)}-byte capacity of a level-${level} QR code \u2014 every renderer draws a placeholder instead. Shorten the payload (a short link) or lower \`errorCorrection\``
18293
+ });
18294
+ }
18295
+ if (p2.size !== void 0 && !(typeof p2.size === "number" && p2.size > 0)) {
18296
+ out2.push({ path: `${base}.size`, message: `QrCode.size must be a positive number, got ${JSON.stringify(p2.size)}` });
18297
+ }
18298
+ if (p2.quietZone !== void 0 && !(typeof p2.quietZone === "number" && Number.isInteger(p2.quietZone) && p2.quietZone >= 0)) {
18299
+ out2.push({ path: `${base}.quietZone`, message: `QrCode.quietZone must be a non-negative integer number of modules, got ${JSON.stringify(p2.quietZone)}` });
18300
+ }
18301
+ }
18302
+ for (const [key3, child] of Object.entries(record3)) {
18303
+ if (isOpaqueAuthorJson(key3, child, atRoot)) continue;
18304
+ visit(child, path2 ? `${path2}.${key3}` : key3, false);
18305
+ }
18306
+ };
18307
+ visit(descriptor, "", true);
18308
+ return out2;
18309
+ }
17896
18310
  function bottomSheetFindings(descriptor) {
17897
18311
  const out2 = [];
17898
18312
  const visit = (v2, path2, atRoot) => {
@@ -18370,6 +18784,9 @@ function validateScreenDescriptor(screenId, descriptor, opts = {}) {
18370
18784
  for (const finding2 of richTextFieldFindings(descriptor)) {
18371
18785
  issues.push({ severity: "error", pass: "rich-text-field", path: finding2.path, message: finding2.message });
18372
18786
  }
18787
+ for (const finding2 of qrCodeFindings(descriptor)) {
18788
+ issues.push({ severity: "error", pass: "qr-code", path: finding2.path, message: finding2.message });
18789
+ }
18373
18790
  for (const finding2 of buttonVariantFindings(descriptor)) {
18374
18791
  issues.push({ severity: "warning", pass: "button-variants", path: finding2.path, message: finding2.message });
18375
18792
  }
@@ -18973,6 +19390,7 @@ var init_validate_descriptor_core = __esm({
18973
19390
  init_validator();
18974
19391
  init_declared_navigation_lint();
18975
19392
  init_validator();
19393
+ init_qr_code();
18976
19394
  init_tokens();
18977
19395
  init_token_suggest();
18978
19396
  init_allowlist();
@@ -19548,6 +19966,15 @@ var init_validate_descriptor_core = __esm({
19548
19966
  trackColorPath: "string",
19549
19967
  value: "number"
19550
19968
  },
19969
+ QrCode: {
19970
+ background: "string",
19971
+ color: "string",
19972
+ errorCorrection: "string",
19973
+ quietZone: "number",
19974
+ size: "number",
19975
+ value: "string",
19976
+ valuePath: "string"
19977
+ },
19551
19978
  Rating: {
19552
19979
  color: "string",
19553
19980
  icon: "string",
@@ -19814,6 +20241,7 @@ var init_validate_descriptor_core = __esm({
19814
20241
  PageControl: ["count", "currentIndex"],
19815
20242
  Pager: ["currentIndex", "liveWindow"],
19816
20243
  PdfView: ["startPage"],
20244
+ QrCode: ["quietZone"],
19817
20245
  Rating: ["max"],
19818
20246
  SearchField: ["debounceMs"],
19819
20247
  Shape: ["cornerRadius"],
@@ -22667,7 +23095,7 @@ function fixedNavigations(bundleJs, ts16) {
22667
23095
  }
22668
23096
  function literalTargets(bundleJs, ts16) {
22669
23097
  const name = (n2) => n2 && (ts16.isIdentifier(n2) || ts16.isStringLiteral(n2) || ts16.isNoSubstitutionTemplateLiteral(n2)) ? n2.text : void 0;
22670
- const object14 = (n2) => {
23098
+ const object15 = (n2) => {
22671
23099
  while (n2 && ts16.isParenthesizedExpression(n2)) n2 = n2.expression;
22672
23100
  return n2 && ts16.isObjectLiteralExpression(n2) ? n2 : void 0;
22673
23101
  };
@@ -22702,7 +23130,7 @@ function literalTargets(bundleJs, ts16) {
22702
23130
  const results = /* @__PURE__ */ new Map();
22703
23131
  const fixed = /* @__PURE__ */ new Map();
22704
23132
  const literalNav = (expr) => {
22705
- const o2 = object14(expr);
23133
+ const o2 = object15(expr);
22706
23134
  if (!o2 || o2.properties.length === 0) return void 0;
22707
23135
  const nav = {};
22708
23136
  for (const p2 of o2.properties) {
@@ -22766,7 +23194,7 @@ function literalTargets(bundleJs, ts16) {
22766
23194
  if (!helper?.body || !plain2(helper) || helper.parameters.length !== 2 || !plainParams(helper)) return false;
22767
23195
  const [stateParam, navParam] = helper.parameters.map((p2) => name(p2.name));
22768
23196
  const body = ts16.isBlock(helper.body) ? helper.body.statements.length === 1 && ts16.isReturnStatement(helper.body.statements[0]) ? helper.body.statements[0].expression : void 0 : helper.body;
22769
- const o2 = object14(body);
23197
+ const o2 = object15(body);
22770
23198
  if (!o2 || o2.properties.length !== 2 || !stateParam || !navParam) return false;
22771
23199
  const [spread, nav] = o2.properties;
22772
23200
  return ts16.isSpreadAssignment(spread) && ts16.isIdentifier(spread.expression) && spread.expression.text === stateParam && ts16.isPropertyAssignment(nav) && name(nav.name) === "_nav" && ts16.isIdentifier(nav.initializer) && nav.initializer.text === navParam;
@@ -22802,14 +23230,14 @@ function literalTargets(bundleJs, ts16) {
22802
23230
  const callee = ts16.isPropertyAccessExpression(node.expression) ? node.expression.name.text : name(node.expression);
22803
23231
  const service = node.arguments[0];
22804
23232
  if (callee && /^defineService[0-9]*$/.test(callee) && service && ts16.isStringLiteralLike(service)) {
22805
- const actions = object14(initializer(property2(object14(node.arguments[1]), "actions")));
23233
+ const actions = object15(initializer(property2(object15(node.arguments[1]), "actions")));
22806
23234
  for (const member of actions?.properties ?? []) {
22807
23235
  const action = name(member.name);
22808
23236
  const fn2 = ts16.isMethodDeclaration(member) ? member : resolve95(ts16.isShorthandPropertyAssignment(member) ? member.name : initializer(member));
22809
23237
  if (!action || !fn2?.body) continue;
22810
23238
  const targets = [];
22811
23239
  const target = (expr) => {
22812
- const sid = initializer(property2(object14(expr), "screenId"));
23240
+ const sid = initializer(property2(object15(expr), "screenId"));
22813
23241
  if (!sid || !ts16.isStringLiteralLike(sid)) return;
22814
23242
  const position = file2.getLineAndCharacterOfPosition(sid.getStart(file2));
22815
23243
  targets.push({ screenId: sid.text, line: position.line + 1, column: position.character });
@@ -29029,14 +29457,25 @@ var init_stream_policy = __esm({
29029
29457
  });
29030
29458
 
29031
29459
  // ../../core/ts/src/locale.ts
29460
+ function primarySubtag(tag) {
29461
+ return (tag ?? "").trim().split(/[-_]/)[0].toLowerCase();
29462
+ }
29032
29463
  function isSupportedLocale(tag) {
29033
29464
  return SUPPORTED_LOCALES.includes(tag);
29034
29465
  }
29035
- var SUPPORTED_LOCALES;
29466
+ function coerceSupportedLocale(tag) {
29467
+ const t2 = primarySubtag(tag);
29468
+ return isSupportedLocale(t2) ? t2 : void 0;
29469
+ }
29470
+ function isRTL(locale) {
29471
+ return RTL_LOCALES.has(primarySubtag(locale));
29472
+ }
29473
+ var SUPPORTED_LOCALES, RTL_LOCALES;
29036
29474
  var init_locale = __esm({
29037
29475
  "../../core/ts/src/locale.ts"() {
29038
29476
  init_define_HHP_CATALOG();
29039
29477
  SUPPORTED_LOCALES = ["en", "he", "es"];
29478
+ RTL_LOCALES = /* @__PURE__ */ new Set(["he", "ar", "fa", "ur"]);
29040
29479
  }
29041
29480
  });
29042
29481
 
@@ -36030,8 +36469,8 @@ function browserIsRTL() {
36030
36469
  }
36031
36470
  return false;
36032
36471
  }
36033
- function ambientIsRTL(isRTL) {
36034
- return isRTL ?? browserIsRTL();
36472
+ function ambientIsRTL(isRTL2) {
36473
+ return isRTL2 ?? browserIsRTL();
36035
36474
  }
36036
36475
  function layoutIsRTL(ctx) {
36037
36476
  return ctx.layoutRTL ?? ambientIsRTL(ctx.isRTL);
@@ -36773,7 +37212,7 @@ function variantStyle(variant, tk, baseBackground) {
36773
37212
  return {};
36774
37213
  }
36775
37214
  }
36776
- function makeModStyle(tk, isRTL = () => false, glassPreview = false, scheme = "light") {
37215
+ function makeModStyle(tk, isRTL2 = () => false, glassPreview = false, scheme = "light") {
36777
37216
  return function modStyle(mods) {
36778
37217
  if (!mods) return {};
36779
37218
  if (mods.hidden === true) return { display: "none" };
@@ -36894,7 +37333,7 @@ function makeModStyle(tk, isRTL = () => false, glassPreview = false, scheme = "l
36894
37333
  const ox = pick(mods.offsetX, mods.offset_x);
36895
37334
  const oy = pick(mods.offsetY, mods.offset_y);
36896
37335
  if (ox != null && ox !== 0 || oy != null && oy !== 0) {
36897
- const tx = ox != null && ox !== 0 && isRTL() ? -ox : ox ?? 0;
37336
+ const tx = ox != null && ox !== 0 && isRTL2() ? -ox : ox ?? 0;
36898
37337
  const tr2 = `translate(${tx}px, ${oy ?? 0}px)`;
36899
37338
  s2.transform = s2.transform ? `${s2.transform} ${tr2}` : tr2;
36900
37339
  }
@@ -44762,11 +45201,11 @@ var init_pdf = __esm({
44762
45201
  var DESCRIPTORS = __webpack_require__3(3724);
44763
45202
  var definePropertyModule = __webpack_require__3(4913);
44764
45203
  var createPropertyDescriptor = __webpack_require__3(6980);
44765
- module.exports = DESCRIPTORS ? function(object14, key3, value2) {
44766
- return definePropertyModule.f(object14, key3, createPropertyDescriptor(1, value2));
44767
- } : function(object14, key3, value2) {
44768
- object14[key3] = value2;
44769
- return object14;
45204
+ module.exports = DESCRIPTORS ? function(object15, key3, value2) {
45205
+ return definePropertyModule.f(object15, key3, createPropertyDescriptor(1, value2));
45206
+ } : function(object15, key3, value2) {
45207
+ object15[key3] = value2;
45208
+ return object15;
44770
45209
  };
44771
45210
  },
44772
45211
  /***/
@@ -44785,9 +45224,9 @@ var init_pdf = __esm({
44785
45224
  var DESCRIPTORS = __webpack_require__3(3724);
44786
45225
  var definePropertyModule = __webpack_require__3(4913);
44787
45226
  var createPropertyDescriptor = __webpack_require__3(6980);
44788
- module.exports = function(object14, key3, value2) {
44789
- if (DESCRIPTORS) definePropertyModule.f(object14, key3, createPropertyDescriptor(0, value2));
44790
- else object14[key3] = value2;
45227
+ module.exports = function(object15, key3, value2) {
45228
+ if (DESCRIPTORS) definePropertyModule.f(object15, key3, createPropertyDescriptor(0, value2));
45229
+ else object15[key3] = value2;
44791
45230
  };
44792
45231
  },
44793
45232
  /***/
@@ -45077,9 +45516,9 @@ var init_pdf = __esm({
45077
45516
  6706(module, __unused_webpack_exports, __webpack_require__3) {
45078
45517
  var uncurryThis = __webpack_require__3(9504);
45079
45518
  var aCallable = __webpack_require__3(9306);
45080
- module.exports = function(object14, key3, method) {
45519
+ module.exports = function(object15, key3, method) {
45081
45520
  try {
45082
- return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object14, key3)[method]));
45521
+ return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object15, key3)[method]));
45083
45522
  } catch (error) {
45084
45523
  }
45085
45524
  };
@@ -46047,13 +46486,13 @@ var init_pdf = __esm({
46047
46486
  var $Object = Object;
46048
46487
  var ObjectPrototype = $Object.prototype;
46049
46488
  module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function(O2) {
46050
- var object14 = toObject(O2);
46051
- if (hasOwn(object14, IE_PROTO)) return object14[IE_PROTO];
46052
- var constructor = object14.constructor;
46053
- if (isCallable(constructor) && object14 instanceof constructor) {
46489
+ var object15 = toObject(O2);
46490
+ if (hasOwn(object15, IE_PROTO)) return object15[IE_PROTO];
46491
+ var constructor = object15.constructor;
46492
+ if (isCallable(constructor) && object15 instanceof constructor) {
46054
46493
  return constructor.prototype;
46055
46494
  }
46056
- return object14 instanceof $Object ? ObjectPrototype : null;
46495
+ return object15 instanceof $Object ? ObjectPrototype : null;
46057
46496
  };
46058
46497
  },
46059
46498
  /***/
@@ -46069,8 +46508,8 @@ var init_pdf = __esm({
46069
46508
  var indexOf = __webpack_require__3(9617).indexOf;
46070
46509
  var hiddenKeys = __webpack_require__3(421);
46071
46510
  var push = uncurryThis([].push);
46072
- module.exports = function(object14, names2) {
46073
- var O2 = toIndexedObject(object14);
46511
+ module.exports = function(object15, names2) {
46512
+ var O2 = toIndexedObject(object15);
46074
46513
  var i2 = 0;
46075
46514
  var result = [];
46076
46515
  var key3;
@@ -47513,13 +47952,13 @@ var init_pdf = __esm({
47513
47952
  }
47514
47953
  return call(reviver, holder, name, val, context);
47515
47954
  };
47516
- var internalizeProperty = function(object14, key3, value2) {
47955
+ var internalizeProperty = function(object15, key3, value2) {
47517
47956
  if (DESCRIPTORS) {
47518
- var descriptor = getOwnPropertyDescriptor(object14, key3);
47957
+ var descriptor = getOwnPropertyDescriptor(object15, key3);
47519
47958
  if (descriptor && !descriptor.configurable) return;
47520
47959
  }
47521
- if (value2 === void 0) delete object14[key3];
47522
- else createProperty(object14, key3, value2);
47960
+ if (value2 === void 0) delete object15[key3];
47961
+ else createProperty(object15, key3, value2);
47523
47962
  };
47524
47963
  var Node2 = function(value2, end, source, nodes2) {
47525
47964
  this.value = value2;
@@ -47564,7 +48003,7 @@ var init_pdf = __esm({
47564
48003
  var source = this.source;
47565
48004
  var i2 = this.index + 1;
47566
48005
  var expectKeypair = false;
47567
- var object14 = {};
48006
+ var object15 = {};
47568
48007
  var nodes2 = {};
47569
48008
  var closed = false;
47570
48009
  while (i2 < source.length) {
@@ -47581,7 +48020,7 @@ var init_pdf = __esm({
47581
48020
  i2 = this.skip(IS_WHITESPACE, i2);
47582
48021
  result = this.fork(i2).parse();
47583
48022
  createProperty(nodes2, key3, result);
47584
- createProperty(object14, key3, result.value);
48023
+ createProperty(object15, key3, result.value);
47585
48024
  i2 = this.until([",", "}"], result.end);
47586
48025
  var chr = at2(source, i2);
47587
48026
  if (chr === ",") {
@@ -47594,7 +48033,7 @@ var init_pdf = __esm({
47594
48033
  }
47595
48034
  }
47596
48035
  if (!closed) throw new SyntaxError2("Unterminated object at: " + i2);
47597
- return this.node(OBJECT, object14, this.index, i2, nodes2);
48036
+ return this.node(OBJECT, object15, this.index, i2, nodes2);
47598
48037
  },
47599
48038
  array: function() {
47600
48039
  var source = this.source;
@@ -69702,8 +70141,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
69702
70141
  return this.#getOutlineTwoPoints(points);
69703
70142
  }
69704
70143
  const outline = new Float32Array(this.#top.length + 24 + this.#bottom.length);
69705
- let N2 = top.length;
69706
- for (let i2 = 0; i2 < N2; i2 += 2) {
70144
+ let N5 = top.length;
70145
+ for (let i2 = 0; i2 < N5; i2 += 2) {
69707
70146
  if (isNaN(top[i2])) {
69708
70147
  outline[i2] = outline[i2 + 1] = NaN;
69709
70148
  continue;
@@ -69711,20 +70150,20 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
69711
70150
  outline[i2] = top[i2];
69712
70151
  outline[i2 + 1] = top[i2 + 1];
69713
70152
  }
69714
- N2 = this.#getOutlineEnd(outline, N2);
70153
+ N5 = this.#getOutlineEnd(outline, N5);
69715
70154
  for (let i2 = bottom.length - 6; i2 >= 6; i2 -= 6) {
69716
70155
  for (let j2 = 0; j2 < 6; j2 += 2) {
69717
70156
  if (isNaN(bottom[i2 + j2])) {
69718
- outline[N2] = outline[N2 + 1] = NaN;
69719
- N2 += 2;
70157
+ outline[N5] = outline[N5 + 1] = NaN;
70158
+ N5 += 2;
69720
70159
  continue;
69721
70160
  }
69722
- outline[N2] = bottom[i2 + j2];
69723
- outline[N2 + 1] = bottom[i2 + j2 + 1];
69724
- N2 += 2;
70161
+ outline[N5] = bottom[i2 + j2];
70162
+ outline[N5 + 1] = bottom[i2 + j2 + 1];
70163
+ N5 += 2;
69725
70164
  }
69726
70165
  }
69727
- this.#getOutlineStart(outline, N2);
70166
+ this.#getOutlineStart(outline, N5);
69728
70167
  return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);
69729
70168
  }
69730
70169
  #getOutlineTwoPoints(points) {
@@ -71763,9 +72202,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
71763
72202
  return -1;
71764
72203
  }
71765
72204
  static #findContours(buf, width, height, threshold) {
71766
- const N2 = buf.length;
71767
- const types2 = new Int32Array(N2);
71768
- for (let i2 = 0; i2 < N2; i2++) {
72205
+ const N5 = buf.length;
72206
+ const types2 = new Int32Array(N5);
72207
+ for (let i2 = 0; i2 < N5; i2++) {
71769
72208
  types2[i2] = buf[i2] <= threshold ? 1 : 0;
71770
72209
  }
71771
72210
  for (let i2 = 1; i2 < height - 1; i2++) {
@@ -71931,8 +72370,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
71931
72370
  for (let i2 = 0; i2 < 256; i2++) {
71932
72371
  rangeValues[i2] = Math.exp(i2 ** 2 / sigmaR2);
71933
72372
  }
71934
- const N2 = buf.length;
71935
- const out2 = new Uint8Array(N2);
72373
+ const N5 = buf.length;
72374
+ const out2 = new Uint8Array(N5);
71936
72375
  const histogram = new Uint32Array(256);
71937
72376
  for (let i2 = 0; i2 < height; i2++) {
71938
72377
  for (let j2 = 0; j2 < width; j2++) {
@@ -71970,8 +72409,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
71970
72409
  return histogram;
71971
72410
  }
71972
72411
  static #toUint8(buf) {
71973
- const N2 = buf.length;
71974
- const out2 = new Uint8ClampedArray(N2 >> 2);
72412
+ const N5 = buf.length;
72413
+ const out2 = new Uint8ClampedArray(N5 >> 2);
71975
72414
  let max = -Infinity;
71976
72415
  let min = Infinity;
71977
72416
  for (let i2 = 0, ii2 = out2.length; i2 < ii2; i2++) {
@@ -79348,7 +79787,7 @@ var init_pdf_worker_min = __esm({
79348
79787
  return e3;
79349
79788
  };
79350
79789
  }, 4644(e2, t2, n2) {
79351
- var a2, r3, s2, i2 = n2(7811), o2 = n2(3724), l2 = n2(4576), f2 = n2(4901), c2 = n2(34), h2 = n2(9297), u2 = n2(6955), m2 = n2(6823), p2 = n2(6699), d2 = n2(6840), g2 = n2(2106), b2 = n2(1625), w2 = n2(2787), j2 = n2(2967), k2 = n2(8227), y2 = n2(3392), q3 = n2(1181), v2 = q3.enforce, S2 = q3.get, x2 = l2.Int8Array, C2 = x2 && x2.prototype, T2 = l2.Uint8ClampedArray, O2 = T2 && T2.prototype, R2 = x2 && w2(x2), D2 = C2 && w2(C2), H2 = Object.prototype, M2 = l2.TypeError, N2 = k2("toStringTag"), _2 = y2("TYPED_ARRAY_TAG"), E2 = "TypedArrayConstructor", z5 = i2 && !!j2 && "Opera" !== u2(l2.opera), L2 = false, U2 = { Int8Array: 1, Uint8Array: 1, Uint8ClampedArray: 1, Int16Array: 2, Uint16Array: 2, Int32Array: 4, Uint32Array: 4, Float32Array: 4, Float64Array: 8 }, W2 = { BigInt64Array: 8, BigUint64Array: 8 }, getTypedArrayConstructor = function(e3) {
79790
+ var a2, r3, s2, i2 = n2(7811), o2 = n2(3724), l2 = n2(4576), f2 = n2(4901), c2 = n2(34), h2 = n2(9297), u2 = n2(6955), m2 = n2(6823), p2 = n2(6699), d2 = n2(6840), g2 = n2(2106), b2 = n2(1625), w2 = n2(2787), j2 = n2(2967), k2 = n2(8227), y2 = n2(3392), q3 = n2(1181), v2 = q3.enforce, S2 = q3.get, x2 = l2.Int8Array, C2 = x2 && x2.prototype, T2 = l2.Uint8ClampedArray, O2 = T2 && T2.prototype, R2 = x2 && w2(x2), D2 = C2 && w2(C2), H2 = Object.prototype, M2 = l2.TypeError, N5 = k2("toStringTag"), _2 = y2("TYPED_ARRAY_TAG"), E2 = "TypedArrayConstructor", z5 = i2 && !!j2 && "Opera" !== u2(l2.opera), L2 = false, U2 = { Int8Array: 1, Uint8Array: 1, Uint8ClampedArray: 1, Int16Array: 2, Uint16Array: 2, Int32Array: 4, Uint32Array: 4, Float32Array: 4, Float64Array: 8 }, W2 = { BigInt64Array: 8, BigUint64Array: 8 }, getTypedArrayConstructor = function(e3) {
79352
79791
  var t3 = w2(e3);
79353
79792
  if (c2(t3)) {
79354
79793
  var n3 = S2(t3);
@@ -79372,9 +79811,9 @@ var init_pdf_worker_min = __esm({
79372
79811
  if (z5) for (a2 in U2) l2[a2] && j2(l2[a2].prototype, D2);
79373
79812
  }
79374
79813
  z5 && w2(O2) !== D2 && j2(O2, D2);
79375
- if (o2 && !h2(D2, N2)) {
79814
+ if (o2 && !h2(D2, N5)) {
79376
79815
  L2 = true;
79377
- g2(D2, N2, { configurable: true, get: function() {
79816
+ g2(D2, N5, { configurable: true, get: function() {
79378
79817
  return c2(this) ? this[_2] : void 0;
79379
79818
  } });
79380
79819
  for (a2 in U2) l2[a2] && p2(l2[a2].prototype, _2, a2);
@@ -80874,7 +81313,7 @@ var init_pdf_worker_min = __esm({
80874
81313
  return e3;
80875
81314
  } });
80876
81315
  }, 3110(e2, t2, n2) {
80877
- var a2 = n2(6518), r3 = n2(7751), s2 = n2(9565), i2 = n2(9504), o2 = n2(9039), l2 = n2(4376), f2 = n2(4901), c2 = n2(34), h2 = n2(2360), u2 = n2(5810), m2 = n2(757), p2 = n2(2195), d2 = n2(1240), g2 = n2(9617).includes, b2 = n2(9297), w2 = n2(655), j2 = n2(8235), k2 = n2(3392), y2 = n2(4495), q3 = n2(7819), v2 = String, S2 = TypeError, x2 = r3("JSON", "stringify"), C2 = r3("BigInt"), T2 = i2("".valueOf), O2 = i2(true.valueOf), R2 = C2 && i2(C2.prototype.valueOf), D2 = i2(/./.exec), H2 = i2("".charAt), M2 = i2("".charCodeAt), N2 = i2("".replace), _2 = i2("".slice), E2 = i2([].push), z5 = i2([].pop), L2 = i2(1.1.toString), U2 = /[\uD800-\uDFFF]/g, W2 = /^[\uD800-\uDBFF]$/, X2 = /^[\uDC00-\uDFFF]$/, K3 = /^\d+$/, G2 = k2(), V2 = k2(), $2 = k2(), Y2 = G2.length, J2 = V2.length, Q2 = !y2 || o2(function() {
81316
+ var a2 = n2(6518), r3 = n2(7751), s2 = n2(9565), i2 = n2(9504), o2 = n2(9039), l2 = n2(4376), f2 = n2(4901), c2 = n2(34), h2 = n2(2360), u2 = n2(5810), m2 = n2(757), p2 = n2(2195), d2 = n2(1240), g2 = n2(9617).includes, b2 = n2(9297), w2 = n2(655), j2 = n2(8235), k2 = n2(3392), y2 = n2(4495), q3 = n2(7819), v2 = String, S2 = TypeError, x2 = r3("JSON", "stringify"), C2 = r3("BigInt"), T2 = i2("".valueOf), O2 = i2(true.valueOf), R2 = C2 && i2(C2.prototype.valueOf), D2 = i2(/./.exec), H2 = i2("".charAt), M2 = i2("".charCodeAt), N5 = i2("".replace), _2 = i2("".slice), E2 = i2([].push), z5 = i2([].pop), L2 = i2(1.1.toString), U2 = /[\uD800-\uDFFF]/g, W2 = /^[\uD800-\uDBFF]$/, X2 = /^[\uDC00-\uDFFF]$/, K3 = /^\d+$/, G2 = k2(), V2 = k2(), $2 = k2(), Y2 = G2.length, J2 = V2.length, Q2 = !y2 || o2(function() {
80878
81317
  var e3 = r3("Symbol")("stringify detection");
80879
81318
  return "[null]" !== x2([e3]) || "{}" !== x2({ a: e3 }) || "{}" !== x2(Object(e3));
80880
81319
  }), Z2 = o2(function() {
@@ -80969,7 +81408,7 @@ var init_pdf_worker_min = __esm({
80969
81408
  return t4;
80970
81409
  }, n3);
80971
81410
  if ("string" != typeof y3) return y3;
80972
- Z2 && (y3 = N2(y3, U2, fixIllFormedJSON));
81411
+ Z2 && (y3 = N5(y3, U2, fixIllFormedJSON));
80973
81412
  if (!d3) return y3;
80974
81413
  for (var x3 = "", C3 = y3.length, T3 = 0; T3 < C3; T3++) {
80975
81414
  var O3 = H2(y3, T3);
@@ -83748,13 +84187,13 @@ var init_pdf_worker_min = __esm({
83748
84187
  255 !== e2[i2] && i2--;
83749
84188
  break;
83750
84189
  default:
83751
- const N2 = findNextFileMarker(e2, n2, i2 - 2, i2 - 3);
83752
- if (N2?.invalid) {
83753
- warn2("JpegImage.parse - unexpected data, current marker is: " + N2.invalid);
83754
- i2 = N2.offset;
84190
+ const N5 = findNextFileMarker(e2, n2, i2 - 2, i2 - 3);
84191
+ if (N5?.invalid) {
84192
+ warn2("JpegImage.parse - unexpected data, current marker is: " + N5.invalid);
84193
+ i2 = N5.offset;
83755
84194
  break;
83756
84195
  }
83757
- if (!N2 || i2 >= a2) {
84196
+ if (!N5 || i2 >= a2) {
83758
84197
  warn2("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");
83759
84198
  break e;
83760
84199
  }
@@ -84470,20 +84909,20 @@ var init_pdf_worker_min = __esm({
84470
84909
  }
84471
84910
  let S2 = 0, x2 = v2[0], C2 = v2[1], T2 = v2[2];
84472
84911
  w2.push([0, Util2.makeHexColor(x2, C2, T2)]);
84473
- let O2 = 1, R2 = v2[3], D2 = v2[4], H2 = v2[5], M2 = R2 - x2 + 1, N2 = D2 - C2 + 1, _2 = H2 - T2 + 1, E2 = R2 - x2 - 1, z5 = D2 - C2 - 1, L2 = H2 - T2 - 1;
84912
+ let O2 = 1, R2 = v2[3], D2 = v2[4], H2 = v2[5], M2 = R2 - x2 + 1, N5 = D2 - C2 + 1, _2 = H2 - T2 + 1, E2 = R2 - x2 - 1, z5 = D2 - C2 - 1, L2 = H2 - T2 - 1;
84474
84913
  for (let e3 = 2; e3 < g2; e3++) {
84475
84914
  const t3 = 3 * e3, n3 = v2[t3], a3 = v2[t3 + 1], r4 = v2[t3 + 2], s3 = e3 - S2;
84476
84915
  M2 = Math.min(M2, (n3 - x2 + 1) / s3);
84477
- N2 = Math.min(N2, (a3 - C2 + 1) / s3);
84916
+ N5 = Math.min(N5, (a3 - C2 + 1) / s3);
84478
84917
  _2 = Math.min(_2, (r4 - T2 + 1) / s3);
84479
84918
  E2 = Math.max(E2, (n3 - x2 - 1) / s3);
84480
84919
  z5 = Math.max(z5, (a3 - C2 - 1) / s3);
84481
84920
  L2 = Math.max(L2, (r4 - T2 - 1) / s3);
84482
- if (!(E2 <= M2 && z5 <= N2 && L2 <= _2)) {
84921
+ if (!(E2 <= M2 && z5 <= N5 && L2 <= _2)) {
84483
84922
  const e4 = Util2.makeHexColor(R2, D2, H2);
84484
84923
  w2.push([O2 / g2, e4]);
84485
84924
  M2 = n3 - R2 + 1;
84486
- N2 = a3 - D2 + 1;
84925
+ N5 = a3 - D2 + 1;
84487
84926
  _2 = r4 - H2 + 1;
84488
84927
  E2 = n3 - R2 - 1;
84489
84928
  z5 = a3 - D2 - 1;
@@ -84542,15 +84981,15 @@ var init_pdf_worker_min = __esm({
84542
84981
  this.bounds = a.slice();
84543
84982
  Util2.axialAlignedBoundingBox([c2, u2, h2, m2], p2, this.bounds);
84544
84983
  const d2 = this.bounds[2] - this.bounds[0], g2 = this.bounds[3] - this.bounds[1], b2 = MathClamp2(Math.ceil(d2), 1, _FunctionBasedShading.MAX_STEP_COUNT), w2 = MathClamp2(Math.ceil(g2), 1, _FunctionBasedShading.MAX_STEP_COUNT), j2 = b2 + 1, k2 = (w2 + 1) * j2, y2 = this.coords = new Float32Array(2 * k2), q3 = this.colors = new Uint8ClampedArray(4 * k2), { numComps: v2 } = o2, x2 = new Float32Array(2), C2 = getColorConversionBatchSize(k2, v2), T2 = new Float32Array(C2 * v2), O2 = (h2 - c2) / b2, R2 = (m2 - u2) / w2, D2 = O2 / 2, H2 = R2 / 2;
84545
- let M2 = 0, N2 = 0, _2 = 0, E2 = 0;
84984
+ let M2 = 0, N5 = 0, _2 = 0, E2 = 0;
84546
84985
  for (let e3 = 0; e3 <= w2; e3++) {
84547
84986
  const t3 = u2 + R2 * e3;
84548
84987
  x2[1] = e3 === w2 ? t3 - H2 : t3;
84549
84988
  for (let e4 = 0; e4 <= b2; e4++) {
84550
84989
  const n3 = c2 + O2 * e4;
84551
84990
  x2[0] = e4 === b2 ? n3 - D2 : n3;
84552
- f2(x2, 0, T2, N2);
84553
- N2 += v2;
84991
+ f2(x2, 0, T2, N5);
84992
+ N5 += v2;
84554
84993
  _2++;
84555
84994
  y2[M2] = n3;
84556
84995
  y2[M2 + 1] = t3;
@@ -84559,7 +84998,7 @@ var init_pdf_worker_min = __esm({
84559
84998
  if (_2 === C2) {
84560
84999
  o2.getRgbItems(T2, _2, q3, E2, 1);
84561
85000
  E2 += 4 * _2;
84562
- N2 = _2 = 0;
85001
+ N5 = _2 = 0;
84563
85002
  }
84564
85003
  }
84565
85004
  }
@@ -106331,9 +106770,9 @@ var init_pdf_worker_min = __esm({
106331
106770
  M2.cMap = t3;
106332
106771
  M2.vertical = M2.cMap.vertical;
106333
106772
  }
106334
- const N2 = await this.extractDataStructures(t2, M2);
106335
- this.extractWidths(t2, e2, N2);
106336
- const _2 = new Font(h2.name, d2, N2, this.options);
106773
+ const N5 = await this.extractDataStructures(t2, M2);
106774
+ this.extractWidths(t2, e2, N5);
106775
+ const _2 = new Font(h2.name, d2, N5, this.options);
106337
106776
  if (_2.missingFile && !_2.systemFontInfo && !c2 && this.options.useSystemFonts) {
106338
106777
  const e3 = getStandardFontName(h2.name), t3 = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, h2.name, e3, r3);
106339
106778
  if (t3) {
@@ -117946,15 +118385,15 @@ var init_pdf_worker_min = __esm({
117946
118385
  H2 = [-l2[3], l2[0], w2, j2];
117947
118386
  D2 = [-l2[3], l2[2] - T2];
117948
118387
  }
117949
- const N2 = ["q", `${M2.join(" ")} 0 0 cm`, `${H2.join(" ")} re W n`, "BT", `${getPdfColor(i2, true)}`, `0 Tc /Helv ${numberToString(R2)} Tf`];
117950
- N2.push(`${D2.join(" ")} Td (${escapeString(v2[0])}) Tj`);
118388
+ const N5 = ["q", `${M2.join(" ")} 0 0 cm`, `${H2.join(" ")} re W n`, "BT", `${getPdfColor(i2, true)}`, `0 Tc /Helv ${numberToString(R2)} Tf`];
118389
+ N5.push(`${D2.join(" ")} Td (${escapeString(v2[0])}) Tj`);
117951
118390
  const _2 = numberToString(C2);
117952
118391
  for (let e3 = 1, t3 = v2.length; e3 < t3; e3++) {
117953
118392
  const t4 = v2[e3];
117954
- N2.push(`0 -${_2} Td (${escapeString(t4)}) Tj`);
118393
+ N5.push(`0 -${_2} Td (${escapeString(t4)}) Tj`);
117955
118394
  }
117956
- N2.push("ET", "Q");
117957
- const E2 = N2.join("\n"), z5 = new Dict(t2);
118395
+ N5.push("ET", "Q");
118396
+ const E2 = N5.join("\n"), z5 = new Dict(t2);
117958
118397
  z5.set("FormType", 1);
117959
118398
  z5.setIfName("Subtype", "Form");
117960
118399
  z5.setIfName("Type", "XObject");
@@ -120096,13 +120535,13 @@ var init_pdf_worker_min = __esm({
120096
120535
  return { opList: null, separateForm: false, separateCanvas: false };
120097
120536
  }));
120098
120537
  const M2 = await Promise.all(H2);
120099
- let N2 = false, _2 = false;
120538
+ let N5 = false, _2 = false;
120100
120539
  for (const { opList: e3, separateForm: t3, separateCanvas: n3 } of M2) {
120101
120540
  v2.addOpList(e3);
120102
- N2 ||= t3;
120541
+ N5 ||= t3;
120103
120542
  _2 ||= n3;
120104
120543
  }
120105
- v2.flush(true, { form: N2, canvas: _2 });
120544
+ v2.flush(true, { form: N5, canvas: _2 });
120106
120545
  return { length: v2.totalLength };
120107
120546
  }
120108
120547
  async extractTextContent({ handler: e2, task: t2, includeMarkedContent: n2, disableNormalization: a2, sink: r3, intersector: s2 = null }) {
@@ -123794,9 +124233,9 @@ function ensureConfettiRuntime() {
123794
124233
  if (el2.dataset.himalayaConfettiDone === "1") return;
123795
124234
  el2.dataset.himalayaConfettiDone = "1";
123796
124235
  const w2 = el2.clientWidth || 200;
123797
- const N2 = 26;
124236
+ const N5 = 26;
123798
124237
  const parts = [];
123799
- for (let i2 = 0; i2 < N2; i2++) {
124238
+ for (let i2 = 0; i2 < N5; i2++) {
123800
124239
  const p2 = document.createElement("div");
123801
124240
  p2.style.cssText = `position:absolute;top:38%;left:${(20 + rnd() * 60).toFixed(0)}%;width:8px;height:8px;border-radius:${rnd() > 0.5 ? "50%" : "1px"};background:${COLORS[i2 % COLORS.length]};will-change:transform,opacity`;
123802
124241
  el2.appendChild(p2);
@@ -126461,6 +126900,8 @@ function renderInner(node, ctx) {
126461
126900
  // RFC 0065 §5 — a basic shape (fill / gradient / dashed stroke).
126462
126901
  case "Shape":
126463
126902
  return /* @__PURE__ */ jsx12(ShapeNode, { props: props2, ctx, wrap });
126903
+ case "QrCode":
126904
+ return /* @__PURE__ */ jsx12(QrCodeNode, { props: props2, ctx, wrap });
126464
126905
  // RFC 0063 — Wix Ricos rich content (never a WebView; binding + fallback inside).
126465
126906
  case "RichContent":
126466
126907
  return /* @__PURE__ */ jsx12(RichContentNode, { props: props2, ctx, wrap, nodeId: resolvedComponentId(node.id, ctx) ?? "" });
@@ -126697,7 +127138,7 @@ function reportUnknownComponent(ctx, pkg, type2) {
126697
127138
  function unknownComponentShowsDeveloperLabel(ctx) {
126698
127139
  return ctx.debugUnknownComponents ?? ctx.previewSurface != null;
126699
127140
  }
126700
- var AppearanceActionContext, rowValue, loadPdfFetch, WebViewBridgeHost2, useIsomorphicLayoutEffect, GridColumnsContext, GridBoundList, GRID_SPAN_ALL, ResponsiveGrid, SPLIT_EXPANDED_MIN_WIDTH, SPLIT_COLUMN_GAP, ResponsiveSplitView, ABSOLUTE_URL_RE, appearKeyframesInjected, valueSwapKeyframesInjected, NUMERIC_TEXT, shimmerKeyframesInjected, pressStylesInjected, REVEAL_ON_FOCUS_ATTR, FOCUS_RING_CSS, focusStylesInjected, HLIST_CHILD_CSS, hListStylesInjected, listAnimateRuntimeInstalled, transitionKeyframesInjected, countUpRuntimeInjected, MEASURE_PREFIX, measureRuntimeInjected, revealRuntimeInjected, AMBIENT_HOST_STYLE, AmbientMotionBox, vectorAnimStylesInjected, scrollProgressRuntimeInjected, confettiRuntimeInjected, lottieRuntimeInjected, LOTTIE_RUNTIME_ATTRIBUTES, lottieAnims, riveRuntimeInjected, gradientKeyframesInjected, parallaxRuntimeInjected, spinKeyframesInjected, marqueeKeyframesInjected, alignItems, zJustifyItems, hAlignItems, bodyFont, kids2, rowKidCtx, rowKids, staggeredKids, asTextL10n, asFinalTextL10n, asBoundText, useBoundString, asBoundCopy, useBoundCopy, InterpolatedTextView, txt, selectFragmentCase, fragmentValueHash, fragmentSlotContent, FragmentSlotNode, RichContentEditorNode, MediaFieldNode, WorkerSubtreeNode, RichContentNode, substituteItemDeep, resolveItemDeep2, resolveRowAction2, resolveSwipeActions, resolveModBindings, resolvedComponentId, directServiceBindings, withRootStyle, ReactiveDirectScalars, HiddenGate, ExitPresence, StatefulSectionNode, KEYBOARD_INPUT_MODES, AUTOCAPITALIZE_VALUES, ENTER_KEY_HINTS, AUTOGROW_CEILING, EditableField, MENU_ANCHOR_CONTROL, MenuNode, MENU_LONG_PRESS_MS, menuOpensOnLongPress, LoadMoreSentinel, FieldErrorNode, FormView, MediaSlotProvider, MEDIA_ITEM_BINDABLE, MediaPlayerView, VideoNode, PdfDocumentCanvas, PdfViewNode, WebViewNode, InteractivePicker, InteractiveDatePicker, InteractiveSearchField, InteractiveStepper, NODE_EXTRAS_TARGET, SYNTHETIC_TAP_ROLE, SYNTHETIC_TABINDEX, INFERRED_DECORATIVE, SELF_RENDERED_LEAF, ROLE_WHEN_NAMED, AUTHORED_ROLE, PENDING_RANGE, RANGE_ROLES, NODE_A11Y_ATTRS, INTERACTIVE_ROLES, ALWAYS_INTERACTIVE_COMPONENT_TYPES, TAP_ACTIVATOR_ATTR, TAP_GROUP_ATTR, NESTED_CONTROL_SELECTOR, VISUALLY_HIDDEN, NAME_SKIP_SELECTOR, activatorNameObservers, ACTIVATOR_STATE_ATTRS, controlNode, ToggleNode, SliderNode, SelectionControlNode, TabsNode, SegmentedControlNode, DisclosureGroupNode, GridNode, SplitViewNode, REVEAL_RELEASE_MS, REVEAL_FADE_MS, REVEAL_BUFFER, revealProgress, countWords, RevealText, TextNode, ImageNode, ANIMATION_LEAF, LottieNode, RiveNode, AvatarNode, IconNode, EMPTY_STATE_SPACING, EmptyStateNode, ERROR_STATE_VARIANTS, ERROR_STATE_SPACING, ErrorStateNode, ButtonNode, OtpInputNode, ProgressBarNode, SnackbarNode, ACTIVITY_DEFAULT_NAME, ACTIVITY_RING_ARC, ActivityIndicatorNode, NATIVELY_TABBABLE, BottomSheetNode, BOTTOM_DRAWER_HOST_STACK_EVENT, ModalBottomSheetNode, BottomDrawerNode, PRESENTED_OVERLAY_ATTR, TooltipNode, PopoverNode, ChipsInputNode, ChipNode, TableNode, GaugeRing, GaugeNode, RATING_METRICS, ratingMetrics, RatingNode, AvatarStripNode, CHART_STROKE_CYCLE, chartStrokeAt, chartBarCenter, ChartNode, donutSliceOpacity, DonutChartNode, ShapeNode, LegendMarker, LegendNode, cellAlign, dataTableProbe, DataTableNode, voiceNoteState, voiceNoteDelivery, VOICE_NOTE_DEFAULT_BARS, clampBarCount, VoiceNoteNode, TimelineNode, ECHO_WINDOW_MS, heldPageIndex, LiveWindowMeasured, LiveWindowPage, PagingNode, WheelPickerNode, ColorPickerNode, FilterChipsNode, TILE_PX, MAX_MERCATOR_LAT, DEFAULT_TILE_MAX_ZOOM, CIRCLE_SEGMENTS, METRES_PER_DEG_LAT, MARKER_HIT_RADIUS, SHAPE_HIT_RADIUS, MapNode, CAROUSEL_SETTLE_MS, railScrollLeft, carouselScrollLeft, scrollCarouselTo, CarouselNode, BannerNode, CollapsingHeaderNode, UnsupportedOnSurface, CALENDAR_DATE_ONLY_RE, CAL_DEFAULT_MAX_DOTS, CAL_AGENDA_INITIAL_DAYS, CAL_AGENDA_PAGE_DAYS, CAL_DEFAULT_SNAP_MINUTES, CAL_UNASSIGNED_LANE_ID, MonthCalendarNode, TimeGridNode, AgendaNode, ARIA_ROLE, initialFocusScheduled, PRESENTED_SCOPE, focusRoots, A11yHintDescription, rowRenderers, railRowFrame, renderRailRow, RowAnchors, reportedUnknownComponents, UnknownComponentNode, WebRenderer, ScrollIntoViewNode;
127141
+ var AppearanceActionContext, rowValue, loadPdfFetch, WebViewBridgeHost2, useIsomorphicLayoutEffect, GridColumnsContext, GridBoundList, GRID_SPAN_ALL, ResponsiveGrid, SPLIT_EXPANDED_MIN_WIDTH, SPLIT_COLUMN_GAP, ResponsiveSplitView, ABSOLUTE_URL_RE, appearKeyframesInjected, valueSwapKeyframesInjected, NUMERIC_TEXT, shimmerKeyframesInjected, pressStylesInjected, REVEAL_ON_FOCUS_ATTR, FOCUS_RING_CSS, focusStylesInjected, HLIST_CHILD_CSS, hListStylesInjected, listAnimateRuntimeInstalled, transitionKeyframesInjected, countUpRuntimeInjected, MEASURE_PREFIX, measureRuntimeInjected, revealRuntimeInjected, AMBIENT_HOST_STYLE, AmbientMotionBox, vectorAnimStylesInjected, scrollProgressRuntimeInjected, confettiRuntimeInjected, lottieRuntimeInjected, LOTTIE_RUNTIME_ATTRIBUTES, lottieAnims, riveRuntimeInjected, gradientKeyframesInjected, parallaxRuntimeInjected, spinKeyframesInjected, marqueeKeyframesInjected, alignItems, zJustifyItems, hAlignItems, bodyFont, kids2, rowKidCtx, rowKids, staggeredKids, asTextL10n, asFinalTextL10n, asBoundText, useBoundString, asBoundCopy, useBoundCopy, InterpolatedTextView, txt, selectFragmentCase, fragmentValueHash, fragmentSlotContent, FragmentSlotNode, RichContentEditorNode, MediaFieldNode, WorkerSubtreeNode, RichContentNode, substituteItemDeep, resolveItemDeep2, resolveRowAction2, resolveSwipeActions, resolveModBindings, resolvedComponentId, directServiceBindings, withRootStyle, ReactiveDirectScalars, HiddenGate, ExitPresence, StatefulSectionNode, KEYBOARD_INPUT_MODES, AUTOCAPITALIZE_VALUES, ENTER_KEY_HINTS, AUTOGROW_CEILING, EditableField, MENU_ANCHOR_CONTROL, MenuNode, MENU_LONG_PRESS_MS, menuOpensOnLongPress, LoadMoreSentinel, FieldErrorNode, FormView, MediaSlotProvider, MEDIA_ITEM_BINDABLE, MediaPlayerView, VideoNode, PdfDocumentCanvas, PdfViewNode, WebViewNode, InteractivePicker, InteractiveDatePicker, InteractiveSearchField, InteractiveStepper, NODE_EXTRAS_TARGET, SYNTHETIC_TAP_ROLE, SYNTHETIC_TABINDEX, INFERRED_DECORATIVE, SELF_RENDERED_LEAF, ROLE_WHEN_NAMED, AUTHORED_ROLE, PENDING_RANGE, RANGE_ROLES, NODE_A11Y_ATTRS, INTERACTIVE_ROLES, ALWAYS_INTERACTIVE_COMPONENT_TYPES, TAP_ACTIVATOR_ATTR, TAP_GROUP_ATTR, NESTED_CONTROL_SELECTOR, VISUALLY_HIDDEN, NAME_SKIP_SELECTOR, activatorNameObservers, ACTIVATOR_STATE_ATTRS, controlNode, ToggleNode, SliderNode, SelectionControlNode, TabsNode, SegmentedControlNode, DisclosureGroupNode, GridNode, SplitViewNode, REVEAL_RELEASE_MS, REVEAL_FADE_MS, REVEAL_BUFFER, revealProgress, countWords, RevealText, TextNode, ImageNode, ANIMATION_LEAF, LottieNode, RiveNode, AvatarNode, IconNode, EMPTY_STATE_SPACING, EmptyStateNode, ERROR_STATE_VARIANTS, ERROR_STATE_SPACING, ErrorStateNode, ButtonNode, OtpInputNode, ProgressBarNode, SnackbarNode, ACTIVITY_DEFAULT_NAME, ACTIVITY_RING_ARC, ActivityIndicatorNode, NATIVELY_TABBABLE, BottomSheetNode, BOTTOM_DRAWER_HOST_STACK_EVENT, ModalBottomSheetNode, BottomDrawerNode, PRESENTED_OVERLAY_ATTR, TooltipNode, PopoverNode, ChipsInputNode, ChipNode, TableNode, GaugeRing, GaugeNode, RATING_METRICS, ratingMetrics, RatingNode, AvatarStripNode, CHART_STROKE_CYCLE, chartStrokeAt, chartBarCenter, ChartNode, donutSliceOpacity, DonutChartNode, QrCodeNode, ShapeNode, LegendMarker, LegendNode, cellAlign, dataTableProbe, DataTableNode, voiceNoteState, voiceNoteDelivery, VOICE_NOTE_DEFAULT_BARS, clampBarCount, VoiceNoteNode, TimelineNode, ECHO_WINDOW_MS, heldPageIndex, LiveWindowMeasured, LiveWindowPage, PagingNode, WheelPickerNode, ColorPickerNode, FilterChipsNode, TILE_PX, MAX_MERCATOR_LAT, DEFAULT_TILE_MAX_ZOOM, CIRCLE_SEGMENTS, METRES_PER_DEG_LAT, MARKER_HIT_RADIUS, SHAPE_HIT_RADIUS, MapNode, CAROUSEL_SETTLE_MS, railScrollLeft, carouselScrollLeft, scrollCarouselTo, CarouselNode, BannerNode, CollapsingHeaderNode, UnsupportedOnSurface, CALENDAR_DATE_ONLY_RE, CAL_DEFAULT_MAX_DOTS, CAL_AGENDA_INITIAL_DAYS, CAL_AGENDA_PAGE_DAYS, CAL_DEFAULT_SNAP_MINUTES, CAL_UNASSIGNED_LANE_ID, MonthCalendarNode, TimeGridNode, AgendaNode, ARIA_ROLE, initialFocusScheduled, PRESENTED_SCOPE, focusRoots, A11yHintDescription, rowRenderers, railRowFrame, renderRailRow, RowAnchors, reportedUnknownComponents, UnknownComponentNode, WebRenderer, ScrollIntoViewNode;
126701
127142
  var init_renderNode = __esm({
126702
127143
  "../../core/web-renderer/src/renderNode.tsx"() {
126703
127144
  "use strict";
@@ -126720,6 +127161,7 @@ var init_renderNode = __esm({
126720
127161
  init_bindings();
126721
127162
  init_tokens();
126722
127163
  init_message_format();
127164
+ init_qr_code();
126723
127165
  init_validation();
126724
127166
  init_formBag();
126725
127167
  init_form_bag();
@@ -128723,7 +129165,7 @@ var init_renderNode = __esm({
128723
129165
  const data = base + pdfOpenFragment(sourceHash, { page, zoom: zoomable ? view.zoom : null, fitWidth: !zoomable });
128724
129166
  const label3 = typeof props2.title === "string" && props2.title ? props2.title : "PDF document";
128725
129167
  const documentStyle = showPageControls || zoomable || allowShare ? { display: "block", width: "100%", flex: "1 1 auto", minHeight: ph ? 0 : 280, border: "none" } : frame;
128726
- const object14 = typeof window === "undefined" ? /* @__PURE__ */ jsx12("object", { "data-himalaya-pdf": "static-fallback", data, type: "application/pdf", "aria-label": label3, style: documentStyle }) : /* @__PURE__ */ jsx12(React17.Suspense, { fallback: /* @__PURE__ */ jsx12("div", { "data-himalaya-pdf": "loading", role: "img", "aria-label": "loading document", "aria-busy": "true", style: documentStyle }), children: /* @__PURE__ */ jsx12(
129168
+ const object15 = typeof window === "undefined" ? /* @__PURE__ */ jsx12("object", { "data-himalaya-pdf": "static-fallback", data, type: "application/pdf", "aria-label": label3, style: documentStyle }) : /* @__PURE__ */ jsx12(React17.Suspense, { fallback: /* @__PURE__ */ jsx12("div", { "data-himalaya-pdf": "loading", role: "img", "aria-label": "loading document", "aria-busy": "true", style: documentStyle }), children: /* @__PURE__ */ jsx12(
128727
129169
  PdfDocumentCanvas,
128728
129170
  {
128729
129171
  src: loadSrc ?? src,
@@ -128737,7 +129179,7 @@ var init_renderNode = __esm({
128737
129179
  style: documentStyle
128738
129180
  }
128739
129181
  ) });
128740
- if (!showPageControls && !zoomable && !allowShare) return object14;
129182
+ if (!showPageControls && !zoomable && !allowShare) return object15;
128741
129183
  const C2 = ctx.color;
128742
129184
  const go2 = (p2) => setNav({ from: rawUrl, page: Math.max(1, pageCount != null ? Math.min(p2, pageCount) : p2), zoom: view.zoom });
128743
129185
  const zoomBy = (d2) => setNav({ from: rawUrl, page: view.page, zoom: pdfZoomStep(view.zoom ?? sourceZoomPercent(sourceHash) ?? null, d2) });
@@ -128755,7 +129197,7 @@ var init_renderNode = __esm({
128755
129197
  const downloadHref = plan?.mode === "retype" ? base : directDoc?.blobUrl ?? null;
128756
129198
  const openHref = base + pdfOpenFragment(sourceHash, { page: shownPage, zoom: zoomable ? view.zoom : null, viewerChrome: true });
128757
129199
  return /* @__PURE__ */ jsxs10("div", { "data-himalaya-pdf": "reader", style: { ...frame, display: "flex", flexDirection: "column", background: C2("surfaceTertiary", "#f4f4f4") }, children: [
128758
- object14,
129200
+ object15,
128759
129201
  /* @__PURE__ */ jsxs10(
128760
129202
  "div",
128761
129203
  {
@@ -131201,6 +131643,69 @@ var init_renderNode = __esm({
131201
131643
  ] })
131202
131644
  ] }) });
131203
131645
  });
131646
+ QrCodeNode = withExtras("QrCodeNode", ({ props: props2, ctx, wrap }) => {
131647
+ const hasPath = typeof props2.valuePath === "string" && props2.valuePath !== "";
131648
+ const bound2 = useResolvedScalar(hasPath ? props2.valuePath : void 0, ctx);
131649
+ const boundText = bound2 == null ? "" : String(bound2);
131650
+ const value2 = hasPath && boundText !== "" ? boundText : typeof props2.value === "string" ? props2.value : "";
131651
+ const level = qrErrorCorrection(props2.errorCorrection);
131652
+ const matrix = React17.useMemo(() => {
131653
+ if (!value2) return null;
131654
+ try {
131655
+ return encodeQrCode(value2, level);
131656
+ } catch {
131657
+ return null;
131658
+ }
131659
+ }, [value2, level]);
131660
+ const side2 = typeof props2.size === "number" && props2.size > 0 ? props2.size : QR_DEFAULT_SIZE;
131661
+ const quietZone = typeof props2.quietZone === "number" && props2.quietZone >= 0 ? Math.floor(props2.quietZone) : QR_DEFAULT_QUIET_ZONE;
131662
+ const colorGiven = typeof props2.color === "string" && props2.color !== "";
131663
+ const backgroundGiven = typeof props2.background === "string" && props2.background !== "";
131664
+ const colors = resolveQrColors({
131665
+ color: ctx.color(colorGiven ? props2.color : QR_DEFAULT_COLOR_TOKEN, ""),
131666
+ background: ctx.color(backgroundGiven ? props2.background : QR_DEFAULT_BACKGROUND_TOKEN, ""),
131667
+ colorGiven,
131668
+ backgroundGiven,
131669
+ dark: ctx.scheme === "dark"
131670
+ });
131671
+ const path2 = React17.useMemo(() => {
131672
+ if (!matrix) return "";
131673
+ let d2 = "";
131674
+ for (let y2 = 0; y2 < matrix.size; y2++) {
131675
+ const row2 = matrix.modules[y2];
131676
+ for (let x2 = 0; x2 < matrix.size; ) {
131677
+ if (!row2[x2]) {
131678
+ x2++;
131679
+ continue;
131680
+ }
131681
+ const start = x2;
131682
+ while (x2 < matrix.size && row2[x2]) x2++;
131683
+ d2 += `M${start + quietZone} ${y2 + quietZone}h${x2 - start}v1h${start - x2}z`;
131684
+ }
131685
+ }
131686
+ return d2;
131687
+ }, [matrix, quietZone]);
131688
+ const dim = matrix ? matrix.size + quietZone * 2 : 21 + quietZone * 2;
131689
+ return /* @__PURE__ */ jsxs10(
131690
+ "svg",
131691
+ {
131692
+ role: "img",
131693
+ "aria-label": QR_DEFAULT_ACCESSIBILITY_LABEL,
131694
+ "data-qr-version": matrix?.version,
131695
+ "data-qr-placeholder": matrix ? void 0 : "",
131696
+ ...{ [SELF_RENDERED_LEAF]: true },
131697
+ width: side2,
131698
+ height: side2,
131699
+ viewBox: `0 0 ${dim} ${dim}`,
131700
+ shapeRendering: "crispEdges",
131701
+ style: { display: "block", flex: "none", background: colors.background, ...wrap },
131702
+ children: [
131703
+ /* @__PURE__ */ jsx12("rect", { width: dim, height: dim, fill: colors.background }),
131704
+ matrix ? /* @__PURE__ */ jsx12("path", { d: path2, fill: colors.color }) : /* @__PURE__ */ jsx12("g", { fill: colors.color, fillOpacity: 0.25, children: [[0, 0], [14, 0], [0, 14]].map(([x2, y2]) => /* @__PURE__ */ jsx12("rect", { x: x2 + quietZone, y: y2 + quietZone, width: 7, height: 7 }, `${x2}-${y2}`)) })
131705
+ ]
131706
+ }
131707
+ );
131708
+ });
131204
131709
  ShapeNode = withExtras("ShapeNode", ({ props: props2, ctx, wrap }) => {
131205
131710
  const ref = React17.useRef(null);
131206
131711
  const [box, setBox] = React17.useState(null);
@@ -133622,12 +134127,12 @@ function renderSchemeFor(requested, tokens2) {
133622
134127
  if (requested === "dark" || requested === "light") return requested;
133623
134128
  return kitColorScheme(tokens2?.kit) === "dark" ? "dark" : "light";
133624
134129
  }
133625
- function clientEnvFor(scheme, width, isRTL) {
134130
+ function clientEnvFor(scheme, width, isRTL2) {
133626
134131
  return {
133627
134132
  scheme,
133628
134133
  reduceMotion: false,
133629
134134
  sizeClass: width === void 0 ? "compact" : sizeClassFromWidth(width),
133630
- isRTL: isRTL === true,
134135
+ isRTL: isRTL2 === true,
133631
134136
  // #4674 — a server render has no software keyboard: `$env:keyboardVisible` draws the resting screen.
133632
134137
  keyboardVisible: false
133633
134138
  };
@@ -133816,7 +134321,7 @@ function composeStickyTree(payload, header, footer) {
133816
134321
  if (footer) children.push(footer);
133817
134322
  return { id: "screen", type: "ScreenChrome", children };
133818
134323
  }
133819
- async function renderDescriptorWeb(descriptor, tokens2, scheme, wantPng, services = null, width, isRTL, idiomContext, assetBaseUrl) {
134324
+ async function renderDescriptorWeb(descriptor, tokens2, scheme, wantPng, services = null, width, isRTL2, idiomContext, assetBaseUrl) {
133820
134325
  const desc = descriptor;
133821
134326
  const tooDeep = rawJsonDepthFinding(descriptor);
133822
134327
  if (tooDeep) return { renderable: false, reason: `depth_budget_exceeded: ${tooDeep.message}` };
@@ -133833,7 +134338,7 @@ async function renderDescriptorWeb(descriptor, tokens2, scheme, wantPng, service
133833
134338
  const provider = services ? new FakeServiceProvider(services) : null;
133834
134339
  const stickyHeader = isSduiNode(desc.stickyHeader) ? desc.stickyHeader : void 0;
133835
134340
  const stickyFooter = isSduiNode(desc.stickyFooter) ? desc.stickyFooter : void 0;
133836
- const clientEnv = clientEnvFor(scheme, width, isRTL);
134341
+ const clientEnv = clientEnvFor(scheme, width, isRTL2);
133837
134342
  const treeOf = (node, path2, prov) => buildRenderTree(node, path2, prov, void 0, true, clientEnv);
133838
134343
  const renderTree = composeStickyTree(
133839
134344
  treeOf(payload, "$", null) ?? void 0,
@@ -133857,7 +134362,7 @@ async function renderDescriptorWeb(descriptor, tokens2, scheme, wantPng, service
133857
134362
  stickyHeader || stickyFooter ? { stickyHeader, stickyFooter } : void 0,
133858
134363
  // #4497 — the agent fast loop is a dev tool: an unknown component type keeps its
133859
134364
  // developer label here (a shipped web app renders nothing for it).
133860
- { ...isRTL ? { isRTL: true } : {}, ...idiomContext ? { idiomContext } : {}, ...assetBaseUrl ? { assetBaseUrl } : {}, debugUnknownComponents: true }
134365
+ { ...isRTL2 ? { isRTL: true } : {}, ...idiomContext ? { idiomContext } : {}, ...assetBaseUrl ? { assetBaseUrl } : {}, debugUnknownComponents: true }
133861
134366
  );
133862
134367
  } catch (err) {
133863
134368
  return {
@@ -133871,7 +134376,7 @@ async function renderDescriptorWeb(descriptor, tokens2, scheme, wantPng, service
133871
134376
  const nativeOnly = collectNativeOnly(renderTree);
133872
134377
  if (nativeOnly.length) result.nativeOnly = nativeOnly;
133873
134378
  if (wantPng) {
133874
- const png = await renderPng(html, scheme, width, isRTL, tokens2, idiomContext, !!stickyFooter);
134379
+ const png = await renderPng(html, scheme, width, isRTL2, tokens2, idiomContext, !!stickyFooter);
133875
134380
  if (png) result.pngBase64 = png;
133876
134381
  else result.pngUnavailable = true;
133877
134382
  }
@@ -133888,8 +134393,8 @@ async function withRetry(op, attempts = 2) {
133888
134393
  }
133889
134394
  throw lastErr;
133890
134395
  }
133891
- async function renderPng(html, scheme, width, isRTL, tokens2, idiomContext, hasStickyFooter) {
133892
- const out2 = await renderPngBatch([{ html, scheme, width, isRTL, tokens: tokens2, idiomContext, hasStickyFooter }]);
134396
+ async function renderPng(html, scheme, width, isRTL2, tokens2, idiomContext, hasStickyFooter) {
134397
+ const out2 = await renderPngBatch([{ html, scheme, width, isRTL: isRTL2, tokens: tokens2, idiomContext, hasStickyFooter }]);
133893
134398
  return out2?.[0] ?? null;
133894
134399
  }
133895
134400
  function setPngFontCss(source) {
@@ -139213,8 +139718,8 @@ function sha256hex(b2) {
139213
139718
  function stableStringify(value2) {
139214
139719
  if (value2 === null || typeof value2 !== "object") return JSON.stringify(value2);
139215
139720
  if (Array.isArray(value2)) return "[" + value2.map(stableStringify).join(",") + "]";
139216
- const object14 = value2;
139217
- return "{" + Object.keys(object14).sort().map((key3) => JSON.stringify(key3) + ":" + stableStringify(object14[key3])).join(",") + "}";
139721
+ const object15 = value2;
139722
+ return "{" + Object.keys(object15).sort().map((key3) => JSON.stringify(key3) + ":" + stableStringify(object15[key3])).join(",") + "}";
139218
139723
  }
139219
139724
  function manifestContent(m2) {
139220
139725
  const {
@@ -144991,7 +145496,7 @@ var init_studio_page = __esm({
144991
145496
  });
144992
145497
 
144993
145498
  // ../../core/admin-web/src/utils/qr.ts
144994
- function rawDataModules(ver) {
145499
+ function rawDataModules2(ver) {
144995
145500
  let result = (16 * ver + 128) * ver + 64;
144996
145501
  if (ver >= 2) {
144997
145502
  const numAlign = Math.floor(ver / 7) + 2;
@@ -145002,32 +145507,32 @@ function rawDataModules(ver) {
145002
145507
  }
145003
145508
  function byteCapacity(ver) {
145004
145509
  const lenBits = ver < 10 ? 8 : 16;
145005
- return dataCodewords(ver) - Math.ceil((4 + lenBits) / 8);
145510
+ return dataCodewords2(ver) - Math.ceil((4 + lenBits) / 8);
145006
145511
  }
145007
145512
  function fitVersion(len) {
145008
- for (let v2 = 1; v2 <= QR_MAX_VERSION; v2++) if (byteCapacity(v2) >= len) return v2;
145513
+ for (let v2 = 1; v2 <= QR_MAX_VERSION2; v2++) if (byteCapacity(v2) >= len) return v2;
145009
145514
  return void 0;
145010
145515
  }
145011
- function rsDivisor(degree) {
145516
+ function rsDivisor2(degree) {
145012
145517
  const result = new Array(degree).fill(0);
145013
145518
  result[degree - 1] = 1;
145014
145519
  let root = 1;
145015
145520
  for (let i2 = 0; i2 < degree; i2++) {
145016
145521
  for (let j2 = 0; j2 < degree; j2++) {
145017
- result[j2] = gfMul(result[j2], root);
145522
+ result[j2] = gfMul2(result[j2], root);
145018
145523
  if (j2 + 1 < degree) result[j2] ^= result[j2 + 1];
145019
145524
  }
145020
- root = gfMul(root, 2);
145525
+ root = gfMul2(root, 2);
145021
145526
  }
145022
145527
  return result;
145023
145528
  }
145024
- function rsRemainder(data, degree) {
145025
- const divisor = rsDivisor(degree);
145529
+ function rsRemainder2(data, degree) {
145530
+ const divisor = rsDivisor2(degree);
145026
145531
  const res = new Array(degree).fill(0);
145027
145532
  for (const b2 of data) {
145028
145533
  const factor = b2 ^ res.shift();
145029
145534
  res.push(0);
145030
- for (let i2 = 0; i2 < degree; i2++) res[i2] ^= gfMul(divisor[i2], factor);
145535
+ for (let i2 = 0; i2 < degree; i2++) res[i2] ^= gfMul2(divisor[i2], factor);
145031
145536
  }
145032
145537
  return res;
145033
145538
  }
@@ -145039,7 +145544,7 @@ function encodeData(bytes2, ver) {
145039
145544
  push(4, 4);
145040
145545
  push(bytes2.length, ver < 10 ? 8 : 16);
145041
145546
  for (const b2 of bytes2) push(b2, 8);
145042
- const capacityBits = dataCodewords(ver) * 8;
145547
+ const capacityBits = dataCodewords2(ver) * 8;
145043
145548
  push(0, Math.min(4, capacityBits - bits.length));
145044
145549
  while (bits.length % 8 !== 0) bits.push(0);
145045
145550
  const out2 = [];
@@ -145048,7 +145553,7 @@ function encodeData(bytes2, ver) {
145048
145553
  for (let j2 = 0; j2 < 8; j2++) byte2 = byte2 << 1 | bits[i2 + j2];
145049
145554
  out2.push(byte2);
145050
145555
  }
145051
- for (let pad3 = 236; out2.length < dataCodewords(ver); pad3 ^= 236 ^ 17) out2.push(pad3);
145556
+ for (let pad3 = 236; out2.length < dataCodewords2(ver); pad3 ^= 236 ^ 17) out2.push(pad3);
145052
145557
  return out2;
145053
145558
  }
145054
145559
  function interleave(data, ver) {
@@ -145064,7 +145569,7 @@ function interleave(data, ver) {
145064
145569
  const blk = data.slice(off, off + len);
145065
145570
  off += len;
145066
145571
  blocks.push(blk);
145067
- eccs.push(rsRemainder(blk, eccLen));
145572
+ eccs.push(rsRemainder2(blk, eccLen));
145068
145573
  }
145069
145574
  const out2 = [];
145070
145575
  for (let i2 = 0; i2 < shortLen + 1; i2++) {
@@ -145076,7 +145581,7 @@ function interleave(data, ver) {
145076
145581
  for (let i2 = 0; i2 < eccLen; i2++) for (let b2 = 0; b2 < numBlocks; b2++) out2.push(eccs[b2][i2]);
145077
145582
  return out2;
145078
145583
  }
145079
- function alignmentPositions(ver) {
145584
+ function alignmentPositions2(ver) {
145080
145585
  if (ver === 1) return [];
145081
145586
  const num4 = Math.floor(ver / 7) + 2;
145082
145587
  const size = ver * 4 + 17;
@@ -145130,7 +145635,7 @@ function encodeQr(text13) {
145130
145635
  const bytes2 = [...new TextEncoder().encode(text13)];
145131
145636
  const version5 = fitVersion(bytes2.length);
145132
145637
  if (!version5) {
145133
- throw new RangeError(`QR payload too long: ${bytes2.length} bytes exceeds version ${QR_MAX_VERSION} at EC level L`);
145638
+ throw new RangeError(`QR payload too long: ${bytes2.length} bytes exceeds version ${QR_MAX_VERSION2} at EC level L`);
145134
145639
  }
145135
145640
  const codewords = interleave(encodeData(bytes2, version5), version5);
145136
145641
  const size = version5 * 4 + 17;
@@ -145156,8 +145661,8 @@ function encodeQr(text13) {
145156
145661
  set2(i2, 6, i2 % 2 === 0);
145157
145662
  set2(6, i2, i2 % 2 === 0);
145158
145663
  }
145159
- for (const ay of alignmentPositions(version5))
145160
- for (const ax of alignmentPositions(version5)) {
145664
+ for (const ay of alignmentPositions2(version5))
145665
+ for (const ax of alignmentPositions2(version5)) {
145161
145666
  if (ax === 6 && ay === 6 || ax === 6 && ay === size - 7 || ax === size - 7 && ay === 6) continue;
145162
145667
  for (let dy = -2; dy <= 2; dy++)
145163
145668
  for (let dx = -2; dx <= 2; dx++) set2(ax + dx, ay + dy, Math.max(Math.abs(dx), Math.abs(dy)) !== 1);
@@ -145232,15 +145737,15 @@ function applyVersion(m2, size, version5) {
145232
145737
  m2[b2][a2] = on4;
145233
145738
  }
145234
145739
  }
145235
- var ECC_PER_BLOCK_L, NUM_BLOCKS_L, QR_MAX_VERSION, totalCodewords, dataCodewords, EXP, LOG, gfMul, MASKS;
145740
+ var ECC_PER_BLOCK_L, NUM_BLOCKS_L, QR_MAX_VERSION2, totalCodewords, dataCodewords2, EXP, LOG, gfMul2, MASKS;
145236
145741
  var init_qr = __esm({
145237
145742
  "../../core/admin-web/src/utils/qr.ts"() {
145238
145743
  init_define_HHP_CATALOG();
145239
145744
  ECC_PER_BLOCK_L = [0, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28];
145240
145745
  NUM_BLOCKS_L = [0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8];
145241
- QR_MAX_VERSION = 20;
145242
- totalCodewords = (ver) => Math.floor(rawDataModules(ver) / 8);
145243
- dataCodewords = (ver) => totalCodewords(ver) - ECC_PER_BLOCK_L[ver] * NUM_BLOCKS_L[ver];
145746
+ QR_MAX_VERSION2 = 20;
145747
+ totalCodewords = (ver) => Math.floor(rawDataModules2(ver) / 8);
145748
+ dataCodewords2 = (ver) => totalCodewords(ver) - ECC_PER_BLOCK_L[ver] * NUM_BLOCKS_L[ver];
145244
145749
  EXP = new Uint8Array(512);
145245
145750
  LOG = new Uint8Array(256);
145246
145751
  (() => {
@@ -145253,7 +145758,7 @@ var init_qr = __esm({
145253
145758
  }
145254
145759
  for (let i2 = 255; i2 < 512; i2++) EXP[i2] = EXP[i2 - 255];
145255
145760
  })();
145256
- gfMul = (a2, b2) => a2 === 0 || b2 === 0 ? 0 : EXP[LOG[a2] + LOG[b2]];
145761
+ gfMul2 = (a2, b2) => a2 === 0 || b2 === 0 ? 0 : EXP[LOG[a2] + LOG[b2]];
145257
145762
  MASKS = [
145258
145763
  (x2, y2) => (x2 + y2) % 2 === 0,
145259
145764
  (_x, y2) => y2 % 2 === 0,
@@ -153929,22 +154434,22 @@ function resolveTagName2(name, isAttribute2, options, matcher, xmlVersion) {
153929
154434
  if (qName(name, { xmlVersion })) return name;
153930
154435
  return options.sanitizeName(name, { isAttribute: isAttribute2, matcher: matcher.readOnly() });
153931
154436
  }
153932
- function processTextOrObjNode(object14, key3, level, matcher, xmlVersion) {
153933
- const attrValues = this.extractAttributes(object14);
154437
+ function processTextOrObjNode(object15, key3, level, matcher, xmlVersion) {
154438
+ const attrValues = this.extractAttributes(object15);
153934
154439
  matcher.push(key3, attrValues);
153935
154440
  const isStopNode = this.checkStopNode(matcher);
153936
154441
  if (isStopNode) {
153937
- const rawContent = this.buildRawContent(object14);
153938
- const attrStr = this.buildAttributesForStopNode(object14);
154442
+ const rawContent = this.buildRawContent(object15);
154443
+ const attrStr = this.buildAttributesForStopNode(object15);
153939
154444
  matcher.pop();
153940
154445
  return this.buildObjectNode(rawContent, key3, attrStr, level);
153941
154446
  }
153942
- const result = this.j2x(object14, level + 1, matcher, xmlVersion);
154447
+ const result = this.j2x(object15, level + 1, matcher, xmlVersion);
153943
154448
  matcher.pop();
153944
154449
  if (key3[0] === "?") {
153945
154450
  return this.buildTextValNode("", key3, result.attrStr, level, matcher);
153946
- } else if (object14[this.options.textNodeName] !== void 0 && Object.keys(object14).length === 1) {
153947
- return this.buildTextValNode(object14[this.options.textNodeName], key3, result.attrStr, level, matcher);
154451
+ } else if (object15[this.options.textNodeName] !== void 0 && Object.keys(object15).length === 1) {
154452
+ return this.buildTextValNode(object15[this.options.textNodeName], key3, result.attrStr, level, matcher);
153948
154453
  } else {
153949
154454
  return this.buildObjectNode(result.val, key3, result.attrStr, level);
153950
154455
  }
@@ -164089,8 +164594,8 @@ function require_null() {
164089
164594
  function constructYamlNull() {
164090
164595
  return null;
164091
164596
  }
164092
- function isNull(object14) {
164093
- return object14 === null;
164597
+ function isNull(object15) {
164598
+ return object15 === null;
164094
164599
  }
164095
164600
  _null = new Type22("tag:yaml.org,2002:null", {
164096
164601
  kind: "scalar",
@@ -164130,8 +164635,8 @@ function requireBool() {
164130
164635
  function constructYamlBoolean(data) {
164131
164636
  return data === "true" || data === "True" || data === "TRUE";
164132
164637
  }
164133
- function isBoolean(object14) {
164134
- return Object.prototype.toString.call(object14) === "[object Boolean]";
164638
+ function isBoolean(object15) {
164639
+ return Object.prototype.toString.call(object15) === "[object Boolean]";
164135
164640
  }
164136
164641
  bool2 = new Type22("tag:yaml.org,2002:bool", {
164137
164642
  kind: "scalar",
@@ -164139,14 +164644,14 @@ function requireBool() {
164139
164644
  construct: constructYamlBoolean,
164140
164645
  predicate: isBoolean,
164141
164646
  represent: {
164142
- lowercase: function(object14) {
164143
- return object14 ? "true" : "false";
164647
+ lowercase: function(object15) {
164648
+ return object15 ? "true" : "false";
164144
164649
  },
164145
- uppercase: function(object14) {
164146
- return object14 ? "TRUE" : "FALSE";
164650
+ uppercase: function(object15) {
164651
+ return object15 ? "TRUE" : "FALSE";
164147
164652
  },
164148
- camelcase: function(object14) {
164149
- return object14 ? "True" : "False";
164653
+ camelcase: function(object15) {
164654
+ return object15 ? "True" : "False";
164150
164655
  }
164151
164656
  },
164152
164657
  defaultStyle: "lowercase"
@@ -164235,8 +164740,8 @@ function requireInt() {
164235
164740
  function constructYamlInteger(data) {
164236
164741
  return parseYamlInteger(data);
164237
164742
  }
164238
- function isInteger(object14) {
164239
- return Object.prototype.toString.call(object14) === "[object Number]" && (object14 % 1 === 0 && !common2.isNegativeZero(object14));
164743
+ function isInteger(object15) {
164744
+ return Object.prototype.toString.call(object15) === "[object Number]" && (object15 % 1 === 0 && !common2.isNegativeZero(object15));
164240
164745
  }
164241
164746
  int2 = new Type22("tag:yaml.org,2002:int", {
164242
164747
  kind: "scalar",
@@ -164303,8 +164808,8 @@ function requireFloat() {
164303
164808
  return sign3 * parseFloat(value2, 10);
164304
164809
  }
164305
164810
  const SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
164306
- function representYamlFloat(object14, style) {
164307
- if (isNaN(object14)) {
164811
+ function representYamlFloat(object15, style) {
164812
+ if (isNaN(object15)) {
164308
164813
  switch (style) {
164309
164814
  case "lowercase":
164310
164815
  return ".nan";
@@ -164313,7 +164818,7 @@ function requireFloat() {
164313
164818
  case "camelcase":
164314
164819
  return ".NaN";
164315
164820
  }
164316
- } else if (Number.POSITIVE_INFINITY === object14) {
164821
+ } else if (Number.POSITIVE_INFINITY === object15) {
164317
164822
  switch (style) {
164318
164823
  case "lowercase":
164319
164824
  return ".inf";
@@ -164322,7 +164827,7 @@ function requireFloat() {
164322
164827
  case "camelcase":
164323
164828
  return ".Inf";
164324
164829
  }
164325
- } else if (Number.NEGATIVE_INFINITY === object14) {
164830
+ } else if (Number.NEGATIVE_INFINITY === object15) {
164326
164831
  switch (style) {
164327
164832
  case "lowercase":
164328
164833
  return "-.inf";
@@ -164331,14 +164836,14 @@ function requireFloat() {
164331
164836
  case "camelcase":
164332
164837
  return "-.Inf";
164333
164838
  }
164334
- } else if (common2.isNegativeZero(object14)) {
164839
+ } else if (common2.isNegativeZero(object15)) {
164335
164840
  return "-0.0";
164336
164841
  }
164337
- const res = object14.toString(10);
164842
+ const res = object15.toString(10);
164338
164843
  return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
164339
164844
  }
164340
- function isFloat(object14) {
164341
- return Object.prototype.toString.call(object14) === "[object Number]" && (object14 % 1 !== 0 || common2.isNegativeZero(object14));
164845
+ function isFloat(object15) {
164846
+ return Object.prototype.toString.call(object15) === "[object Number]" && (object15 % 1 !== 0 || common2.isNegativeZero(object15));
164342
164847
  }
164343
164848
  float = new Type22("tag:yaml.org,2002:float", {
164344
164849
  kind: "scalar",
@@ -164417,8 +164922,8 @@ function requireTimestamp() {
164417
164922
  if (delta) date.setTime(date.getTime() - delta);
164418
164923
  return date;
164419
164924
  }
164420
- function representYamlTimestamp(object14) {
164421
- return object14.toISOString();
164925
+ function representYamlTimestamp(object15) {
164926
+ return object15.toISOString();
164422
164927
  }
164423
164928
  timestamp = new Type22("tag:yaml.org,2002:timestamp", {
164424
164929
  kind: "scalar",
@@ -164487,10 +164992,10 @@ function requireBinary() {
164487
164992
  }
164488
164993
  return new Uint8Array(result);
164489
164994
  }
164490
- function representYamlBinary(object14) {
164995
+ function representYamlBinary(object15) {
164491
164996
  let result = "";
164492
164997
  let bits = 0;
164493
- const max = object14.length;
164998
+ const max = object15.length;
164494
164999
  const map2 = BASE64_MAP;
164495
165000
  for (let idx = 0; idx < max; idx++) {
164496
165001
  if (idx % 3 === 0 && idx) {
@@ -164499,7 +165004,7 @@ function requireBinary() {
164499
165004
  result += map2[bits >> 6 & 63];
164500
165005
  result += map2[bits & 63];
164501
165006
  }
164502
- bits = (bits << 8) + object14[idx];
165007
+ bits = (bits << 8) + object15[idx];
164503
165008
  }
164504
165009
  const tail = max % 3;
164505
165010
  if (tail === 0) {
@@ -164541,9 +165046,9 @@ function requireOmap() {
164541
165046
  function resolveYamlOmap(data) {
164542
165047
  if (data === null) return true;
164543
165048
  const objectKeys = [];
164544
- const object14 = data;
164545
- for (let index = 0, length = object14.length; index < length; index += 1) {
164546
- const pair = object14[index];
165049
+ const object15 = data;
165050
+ for (let index = 0, length = object15.length; index < length; index += 1) {
165051
+ const pair = object15[index];
164547
165052
  let pairHasKey = false;
164548
165053
  if (_toString.call(pair) !== "[object Object]") return false;
164549
165054
  let pairKey;
@@ -164576,10 +165081,10 @@ function requirePairs() {
164576
165081
  const _toString = Object.prototype.toString;
164577
165082
  function resolveYamlPairs(data) {
164578
165083
  if (data === null) return true;
164579
- const object14 = data;
164580
- const result = new Array(object14.length);
164581
- for (let index = 0, length = object14.length; index < length; index += 1) {
164582
- const pair = object14[index];
165084
+ const object15 = data;
165085
+ const result = new Array(object15.length);
165086
+ for (let index = 0, length = object15.length; index < length; index += 1) {
165087
+ const pair = object15[index];
164583
165088
  if (_toString.call(pair) !== "[object Object]") return false;
164584
165089
  const keys = Object.keys(pair);
164585
165090
  if (keys.length !== 1) return false;
@@ -164589,10 +165094,10 @@ function requirePairs() {
164589
165094
  }
164590
165095
  function constructYamlPairs(data) {
164591
165096
  if (data === null) return [];
164592
- const object14 = data;
164593
- const result = new Array(object14.length);
164594
- for (let index = 0, length = object14.length; index < length; index += 1) {
164595
- const pair = object14[index];
165097
+ const object15 = data;
165098
+ const result = new Array(object15.length);
165099
+ for (let index = 0, length = object15.length; index < length; index += 1) {
165100
+ const pair = object15[index];
164596
165101
  const keys = Object.keys(pair);
164597
165102
  result[index] = [keys[0], pair[keys[0]]];
164598
165103
  }
@@ -164612,10 +165117,10 @@ function requireSet() {
164612
165117
  const _hasOwnProperty = Object.prototype.hasOwnProperty;
164613
165118
  function resolveYamlSet(data) {
164614
165119
  if (data === null) return true;
164615
- const object14 = data;
164616
- for (const key3 in object14) {
164617
- if (_hasOwnProperty.call(object14, key3)) {
164618
- if (object14[key3] !== null) return false;
165120
+ const object15 = data;
165121
+ for (const key3 in object15) {
165122
+ if (_hasOwnProperty.call(object15, key3)) {
165123
+ if (object15[key3] !== null) return false;
164619
165124
  }
164620
165125
  }
164621
165126
  return true;
@@ -164761,16 +165266,16 @@ function requireLoader() {
164761
165266
  (c2 - 65536 & 1023) + 56320
164762
165267
  );
164763
165268
  }
164764
- function setProperty(object14, key3, value2) {
165269
+ function setProperty(object15, key3, value2) {
164765
165270
  if (key3 === "__proto__") {
164766
- Object.defineProperty(object14, key3, {
165271
+ Object.defineProperty(object15, key3, {
164767
165272
  configurable: true,
164768
165273
  enumerable: true,
164769
165274
  writable: true,
164770
165275
  value: value2
164771
165276
  });
164772
165277
  } else {
164773
- object14[key3] = value2;
165278
+ object15[key3] = value2;
164774
165279
  }
164775
165280
  }
164776
165281
  const simpleEscapeCheck = new Array(256);
@@ -166394,13 +166899,13 @@ function requireDumper() {
166394
166899
  }
166395
166900
  return result;
166396
166901
  }
166397
- function writeFlowSequence(state, level, object14) {
166902
+ function writeFlowSequence(state, level, object15) {
166398
166903
  let _result = "";
166399
166904
  const _tag = state.tag;
166400
- for (let index = 0, length = object14.length; index < length; index += 1) {
166401
- let value2 = object14[index];
166905
+ for (let index = 0, length = object15.length; index < length; index += 1) {
166906
+ let value2 = object15[index];
166402
166907
  if (state.replacer) {
166403
- value2 = state.replacer.call(object14, String(index), value2);
166908
+ value2 = state.replacer.call(object15, String(index), value2);
166404
166909
  }
166405
166910
  if (writeNode(state, level, value2, false, false) || typeof value2 === "undefined" && writeNode(state, level, null, false, false)) {
166406
166911
  if (_result !== "") _result += "," + (!state.condenseFlow ? " " : "");
@@ -166410,13 +166915,13 @@ function requireDumper() {
166410
166915
  state.tag = _tag;
166411
166916
  state.dump = "[" + _result + "]";
166412
166917
  }
166413
- function writeBlockSequence(state, level, object14, compact) {
166918
+ function writeBlockSequence(state, level, object15, compact) {
166414
166919
  let _result = "";
166415
166920
  const _tag = state.tag;
166416
- for (let index = 0, length = object14.length; index < length; index += 1) {
166417
- let value2 = object14[index];
166921
+ for (let index = 0, length = object15.length; index < length; index += 1) {
166922
+ let value2 = object15[index];
166418
166923
  if (state.replacer) {
166419
- value2 = state.replacer.call(object14, String(index), value2);
166924
+ value2 = state.replacer.call(object15, String(index), value2);
166420
166925
  }
166421
166926
  if (writeNode(state, level + 1, value2, true, true, false, true) || typeof value2 === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) {
166422
166927
  if (!compact || _result !== "") {
@@ -166433,18 +166938,18 @@ function requireDumper() {
166433
166938
  state.tag = _tag;
166434
166939
  state.dump = _result || "[]";
166435
166940
  }
166436
- function writeFlowMapping(state, level, object14) {
166941
+ function writeFlowMapping(state, level, object15) {
166437
166942
  let _result = "";
166438
166943
  const _tag = state.tag;
166439
- const objectKeyList = Object.keys(object14);
166944
+ const objectKeyList = Object.keys(object15);
166440
166945
  for (let index = 0, length = objectKeyList.length; index < length; index += 1) {
166441
166946
  let pairBuffer = "";
166442
166947
  if (_result !== "") pairBuffer += ", ";
166443
166948
  if (state.condenseFlow) pairBuffer += '"';
166444
166949
  const objectKey = objectKeyList[index];
166445
- let objectValue = object14[objectKey];
166950
+ let objectValue = object15[objectKey];
166446
166951
  if (state.replacer) {
166447
- objectValue = state.replacer.call(object14, objectKey, objectValue);
166952
+ objectValue = state.replacer.call(object15, objectKey, objectValue);
166448
166953
  }
166449
166954
  if (!writeNode(state, level, objectKey, false, false)) {
166450
166955
  continue;
@@ -166460,10 +166965,10 @@ function requireDumper() {
166460
166965
  state.tag = _tag;
166461
166966
  state.dump = "{" + _result + "}";
166462
166967
  }
166463
- function writeBlockMapping(state, level, object14, compact) {
166968
+ function writeBlockMapping(state, level, object15, compact) {
166464
166969
  let _result = "";
166465
166970
  const _tag = state.tag;
166466
- const objectKeyList = Object.keys(object14);
166971
+ const objectKeyList = Object.keys(object15);
166467
166972
  if (state.sortKeys === true) {
166468
166973
  objectKeyList.sort();
166469
166974
  } else if (typeof state.sortKeys === "function") {
@@ -166477,9 +166982,9 @@ function requireDumper() {
166477
166982
  pairBuffer += generateNextLine(state, level);
166478
166983
  }
166479
166984
  const objectKey = objectKeyList[index];
166480
- let objectValue = object14[objectKey];
166985
+ let objectValue = object15[objectKey];
166481
166986
  if (state.replacer) {
166482
- objectValue = state.replacer.call(object14, objectKey, objectValue);
166987
+ objectValue = state.replacer.call(object15, objectKey, objectValue);
166483
166988
  }
166484
166989
  if (!writeNode(state, level + 1, objectKey, true, true, true)) {
166485
166990
  continue;
@@ -166510,14 +167015,14 @@ function requireDumper() {
166510
167015
  state.tag = _tag;
166511
167016
  state.dump = _result || "{}";
166512
167017
  }
166513
- function detectType(state, object14, explicit2) {
167018
+ function detectType(state, object15, explicit2) {
166514
167019
  const typeList = explicit2 ? state.explicitTypes : state.implicitTypes;
166515
167020
  for (let index = 0, length = typeList.length; index < length; index += 1) {
166516
167021
  const type2 = typeList[index];
166517
- if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object14 === "object" && object14 instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object14))) {
167022
+ if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object15 === "object" && object15 instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object15))) {
166518
167023
  if (explicit2) {
166519
167024
  if (type2.multi && type2.representName) {
166520
- state.tag = type2.representName(object14);
167025
+ state.tag = type2.representName(object15);
166521
167026
  } else {
166522
167027
  state.tag = type2.tag;
166523
167028
  }
@@ -166528,9 +167033,9 @@ function requireDumper() {
166528
167033
  const style = state.styleMap[type2.tag] || type2.defaultStyle;
166529
167034
  let _result;
166530
167035
  if (_toString.call(type2.represent) === "[object Function]") {
166531
- _result = type2.represent(object14, style);
167036
+ _result = type2.represent(object15, style);
166532
167037
  } else if (_hasOwnProperty.call(type2.represent, style)) {
166533
- _result = type2.represent[style](object14, style);
167038
+ _result = type2.represent[style](object15, style);
166534
167039
  } else {
166535
167040
  throw new YAMLException2("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style');
166536
167041
  }
@@ -166541,11 +167046,11 @@ function requireDumper() {
166541
167046
  }
166542
167047
  return false;
166543
167048
  }
166544
- function writeNode(state, level, object14, block, compact, iskey, isblockseq) {
167049
+ function writeNode(state, level, object15, block, compact, iskey, isblockseq) {
166545
167050
  state.tag = null;
166546
- state.dump = object14;
166547
- if (!detectType(state, object14, false)) {
166548
- detectType(state, object14, true);
167051
+ state.dump = object15;
167052
+ if (!detectType(state, object15, false)) {
167053
+ detectType(state, object15, true);
166549
167054
  }
166550
167055
  const type2 = _toString.call(state.dump);
166551
167056
  const inblock = block;
@@ -166556,7 +167061,7 @@ function requireDumper() {
166556
167061
  let duplicateIndex;
166557
167062
  let duplicate;
166558
167063
  if (objectOrArray) {
166559
- duplicateIndex = state.duplicates.indexOf(object14);
167064
+ duplicateIndex = state.duplicates.indexOf(object15);
166560
167065
  duplicate = duplicateIndex !== -1;
166561
167066
  }
166562
167067
  if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) {
@@ -166622,33 +167127,33 @@ function requireDumper() {
166622
167127
  }
166623
167128
  return true;
166624
167129
  }
166625
- function getDuplicateReferences(object14, state) {
167130
+ function getDuplicateReferences(object15, state) {
166626
167131
  const objects = [];
166627
167132
  const duplicatesIndexes = [];
166628
- inspectNode(object14, objects, duplicatesIndexes);
167133
+ inspectNode(object15, objects, duplicatesIndexes);
166629
167134
  const length = duplicatesIndexes.length;
166630
167135
  for (let index = 0; index < length; index += 1) {
166631
167136
  state.duplicates.push(objects[duplicatesIndexes[index]]);
166632
167137
  }
166633
167138
  state.usedDuplicates = new Array(length);
166634
167139
  }
166635
- function inspectNode(object14, objects, duplicatesIndexes) {
166636
- if (object14 !== null && typeof object14 === "object") {
166637
- const index = objects.indexOf(object14);
167140
+ function inspectNode(object15, objects, duplicatesIndexes) {
167141
+ if (object15 !== null && typeof object15 === "object") {
167142
+ const index = objects.indexOf(object15);
166638
167143
  if (index !== -1) {
166639
167144
  if (duplicatesIndexes.indexOf(index) === -1) {
166640
167145
  duplicatesIndexes.push(index);
166641
167146
  }
166642
167147
  } else {
166643
- objects.push(object14);
166644
- if (Array.isArray(object14)) {
166645
- for (let i2 = 0, length = object14.length; i2 < length; i2 += 1) {
166646
- inspectNode(object14[i2], objects, duplicatesIndexes);
167148
+ objects.push(object15);
167149
+ if (Array.isArray(object15)) {
167150
+ for (let i2 = 0, length = object15.length; i2 < length; i2 += 1) {
167151
+ inspectNode(object15[i2], objects, duplicatesIndexes);
166647
167152
  }
166648
167153
  } else {
166649
- const objectKeyList = Object.keys(object14);
167154
+ const objectKeyList = Object.keys(object15);
166650
167155
  for (let i2 = 0, length = objectKeyList.length; i2 < length; i2 += 1) {
166651
- inspectNode(object14[objectKeyList[i2]], objects, duplicatesIndexes);
167156
+ inspectNode(object15[objectKeyList[i2]], objects, duplicatesIndexes);
166652
167157
  }
166653
167158
  }
166654
167159
  }
@@ -179602,55 +180107,107 @@ var init_write_artifacts = __esm({
179602
180107
  }
179603
180108
  });
179604
180109
 
180110
+ // ../../stdlib/flows/screens/src/one-app-visibility.ts
180111
+ function oneAppSectionVisibility(id, definition) {
180112
+ const d2 = object6(definition);
180113
+ const present = definition !== null && typeof definition === "object" && !Array.isArray(definition);
180114
+ const list2 = (key3) => d2[key3] === void 0 ? [] : Array.isArray(d2[key3]) && d2[key3].every((v2) => typeof v2 === "string" && v2.length > 0) ? [...d2[key3]] : null;
180115
+ const visitorExperiments = list2("visitorModeExperiments"), experiments = list2("experiments");
180116
+ const valid = visitorExperiments !== null && experiments !== null && (d2.visitorModeEnabled === void 0 || typeof d2.visitorModeEnabled === "boolean");
180117
+ const enabled2 = present && valid ? d2.visitorModeEnabled === true : definition === void 0 && id && memberOnly.has(id) ? false : null;
180118
+ return {
180119
+ authentication: enabled2 === null ? "unresolved" : enabled2 ? "visitor-enabled" : "signed-in-only",
180120
+ visitorModeEnabled: enabled2,
180121
+ visitorModeExperiments: visitorExperiments ?? [],
180122
+ experiments: experiments ?? [],
180123
+ source: enabled2 === null ? "unresolved" : present ? "collected-definition" : "pinned-definition"
180124
+ };
180125
+ }
180126
+ var ONE_APP_MEMBER_ONLY_SECTIONS, memberOnly, object6;
180127
+ var init_one_app_visibility = __esm({
180128
+ "../../stdlib/flows/screens/src/one-app-visibility.ts"() {
180129
+ init_define_HHP_CATALOG();
180130
+ ONE_APP_MEMBER_ONLY_SECTIONS = [
180131
+ "food_section",
180132
+ "newBlog_submit_post_section",
180133
+ "selections",
180134
+ "file_share_section",
180135
+ "events_guests_section",
180136
+ "events_discussion_section",
180137
+ "performance_tracker_section",
180138
+ "achievements_participant_carousel_section",
180139
+ "memberships_packages_section",
180140
+ "upcoming_bookings_section",
180141
+ "loyalty_status_section"
180142
+ ];
180143
+ memberOnly = /* @__PURE__ */ new Set(ONE_APP_MEMBER_ONLY_SECTIONS);
180144
+ object6 = (v2) => v2 !== null && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
180145
+ }
180146
+ });
180147
+
179605
180148
  // src/one-app/graph.ts
179606
180149
  function buildSourceGraph(raw, enriched = {}) {
179607
180150
  const enrichedStructures = Object.values(enriched).filter((value2) => value2 !== void 0);
179608
180151
  function sourceMap2(key3) {
179609
180152
  const result = {};
179610
180153
  for (const structure of enrichedStructures) {
179611
- for (const [id, value2] of Object.entries(object6(structure[key3]))) {
180154
+ for (const [id, value2] of Object.entries(object7(structure[key3]))) {
179612
180155
  if (!own5(result, id)) result[id] = value2;
179613
180156
  }
179614
180157
  }
179615
- for (const [id, value2] of Object.entries(object6(raw[key3]))) {
179616
- result[id] = own5(result, id) ? { ...object6(result[id]), ...object6(value2) } : value2;
180158
+ for (const [id, value2] of Object.entries(object7(raw[key3]))) {
180159
+ result[id] = own5(result, id) ? { ...object7(result[id]), ...object7(value2) } : value2;
179617
180160
  }
179618
180161
  return result;
179619
180162
  }
179620
180163
  function definitionMap(key3) {
179621
180164
  const result = {};
179622
180165
  for (const structure of enrichedStructures) {
179623
- for (const [id, value2] of Object.entries(object6(object6(structure.definitions)[key3]))) {
180166
+ for (const [id, value2] of Object.entries(object7(object7(structure.definitions)[key3]))) {
179624
180167
  if (!own5(result, id)) result[id] = value2;
179625
180168
  }
179626
180169
  }
179627
- for (const [id, value2] of Object.entries(object6(object6(raw.definitions)[key3]))) {
179628
- result[id] = own5(result, id) ? { ...object6(result[id]), ...object6(value2) } : value2;
180170
+ for (const [id, value2] of Object.entries(object7(object7(raw.definitions)[key3]))) {
180171
+ result[id] = own5(result, id) ? { ...object7(result[id]), ...object7(value2) } : value2;
179629
180172
  }
179630
180173
  return result;
179631
180174
  }
179632
180175
  function platformMap(platformStructure, key3) {
179633
- const result = { ...object6(raw[key3]) };
179634
- for (const [id, value2] of Object.entries(object6(platformStructure[key3]))) {
179635
- result[id] = own5(result, id) ? { ...object6(result[id]), ...object6(value2) } : value2;
180176
+ const result = { ...object7(raw[key3]) };
180177
+ for (const [id, value2] of Object.entries(object7(platformStructure[key3]))) {
180178
+ result[id] = own5(result, id) ? { ...object7(result[id]), ...object7(value2) } : value2;
179636
180179
  }
179637
180180
  return result;
179638
180181
  }
179639
180182
  function platformDefinitionMap(platformStructure, key3) {
179640
- const result = { ...object6(object6(raw.definitions)[key3]) };
179641
- for (const [id, value2] of Object.entries(object6(object6(platformStructure.definitions)[key3]))) {
179642
- result[id] = own5(result, id) ? { ...object6(result[id]), ...object6(value2) } : value2;
180183
+ const result = { ...object7(object7(raw.definitions)[key3]) };
180184
+ for (const [id, value2] of Object.entries(object7(object7(platformStructure.definitions)[key3]))) {
180185
+ result[id] = own5(result, id) ? { ...object7(result[id]), ...object7(value2) } : value2;
179643
180186
  }
179644
180187
  return result;
179645
180188
  }
179646
180189
  const screens = sourceMap2("screens");
179647
- const layouts = object6(raw.layoutItems);
179648
- const allSections = object6(raw.sections);
180190
+ const layouts = object7(raw.layoutItems);
180191
+ const allSections = object7(raw.sections);
179649
180192
  const sections = Object.fromEntries(Object.entries(allSections).filter(([, v2]) => !sectionType(v2)?.startsWith("ntt.")));
179650
- const headers2 = object6(raw.headers);
180193
+ const headers2 = object7(raw.headers);
179651
180194
  const topBars = sourceMap2("topBars");
179652
180195
  const topBarButtonDefinitions = definitionMap("topBarButtons");
179653
180196
  const actionDefinitions = definitionMap("actions");
180197
+ const sectionDefinitions = definitionMap("sections");
180198
+ for (const [id, value2] of Object.entries(object7(object7(raw.definitions).sections))) {
180199
+ sectionDefinitions[id] = value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? {
180200
+ ...object7(sectionDefinitions[id]),
180201
+ ...object7(value2),
180202
+ visitorModeEnabled: own5(object7(value2), "visitorModeEnabled") ? object7(value2).visitorModeEnabled : false
180203
+ } : value2;
180204
+ }
180205
+ const memberOnlySections = new Set(ONE_APP_MEMBER_ONLY_SECTIONS);
180206
+ const sectionVisibility = Object.fromEntries(Object.entries(sections).flatMap(([id, value2]) => {
180207
+ const type2 = sectionType(value2);
180208
+ if (!type2 || !memberOnlySections.has(type2)) return [];
180209
+ return [[id, oneAppSectionVisibility(type2, own5(sectionDefinitions, type2) ? sectionDefinitions[type2] : void 0)]];
180210
+ }));
179654
180211
  const warnings = [];
179655
180212
  const usedSections = /* @__PURE__ */ new Set();
179656
180213
  const usedLayouts = /* @__PURE__ */ new Set();
@@ -179659,23 +180216,23 @@ function buildSourceGraph(raw, enriched = {}) {
179659
180216
  const layoutAliases = /* @__PURE__ */ new Map();
179660
180217
  const interactions = [];
179661
180218
  for (const [id, value2] of Object.entries(layouts)) {
179662
- const slug = string5(object6(value2).slug);
180219
+ const slug = string5(object7(value2).slug);
179663
180220
  if (slug) layoutAliases.set(slug, [...layoutAliases.get(slug) ?? [], id]);
179664
180221
  }
179665
180222
  for (const [id, value2] of Object.entries(screens)) {
179666
- for (const ref of array3(object6(object6(value2).layout).items)) {
179667
- const layoutId = string5(object6(ref).layoutItemId);
180223
+ for (const ref of array3(object7(object7(value2).layout).items)) {
180224
+ const layoutId = string5(object7(ref).layoutItemId);
179668
180225
  if (layoutId) parents.set(layoutId, [.../* @__PURE__ */ new Set([...parents.get(layoutId) ?? [], id])]);
179669
180226
  }
179670
180227
  }
179671
180228
  for (const [name, values] of Object.entries({ screens, layoutItems: layouts, sections, headers: headers2 })) {
179672
180229
  for (const [id, value2] of Object.entries(values)) {
179673
- const declared = string5(object6(value2).id);
180230
+ const declared = string5(object7(value2).id);
179674
180231
  if (declared !== void 0 && declared !== id) warnings.push({ code: "id_conflict", pointer: `/${name}/${part(id)}/id`, reference: declared });
179675
180232
  }
179676
180233
  }
179677
180234
  function order(refs, pointer3) {
179678
- const indexes = refs.map((ref) => object6(ref).orderIndex).filter((v2) => typeof v2 === "number");
180235
+ const indexes = refs.map((ref) => object7(ref).orderIndex).filter((v2) => typeof v2 === "number");
179679
180236
  if (indexes.some((v2, i2) => i2 > 0 && v2 <= indexes[i2 - 1])) warnings.push({ code: "order_conflict", pointer: pointer3 });
179680
180237
  }
179681
180238
  function route(value2, contract, pointer3) {
@@ -179705,7 +180262,7 @@ function buildSourceGraph(raw, enriched = {}) {
179705
180262
  warnings.push({ code: "action_depth_limit", pointer: current.pointer });
179706
180263
  continue;
179707
180264
  }
179708
- const item = object6(current.value);
180265
+ const item = object7(current.value);
179709
180266
  const kind = string5(item.type);
179710
180267
  if (kind && ["goToScreen", "vertical", "form", "url", "tel", "mailto"].includes(kind)) {
179711
180268
  const dest = string5(item.screenId);
@@ -179717,12 +180274,12 @@ function buildSourceGraph(raw, enriched = {}) {
179717
180274
  function placements(value2, pointer3, context = pointer3) {
179718
180275
  const refs = array3(value2);
179719
180276
  const inScope = refs.filter((ref) => {
179720
- const id = string5(object6(ref).elementId);
180277
+ const id = string5(object7(ref).elementId);
179721
180278
  return !id || !sectionType(allSections[id])?.startsWith("ntt.");
179722
180279
  });
179723
180280
  order(inScope, pointer3);
179724
180281
  return refs.flatMap((value3, index) => {
179725
- const ref = object6(value3);
180282
+ const ref = object7(value3);
179726
180283
  const id = string5(ref.elementId);
179727
180284
  if (id && sectionType(allSections[id])?.startsWith("ntt.")) return [];
179728
180285
  const refPointer = `${pointer3}/${index}`;
@@ -179741,15 +180298,15 @@ function buildSourceGraph(raw, enriched = {}) {
179741
180298
  });
179742
180299
  }
179743
180300
  function topBarButtons(value2, side2, pointer3, context, buttonDefinitions = topBarButtonDefinitions, availableActions = actionDefinitions, trackInteractions = true) {
179744
- const bar = object6(value2);
180301
+ const bar = object7(value2);
179745
180302
  const idsKey = `${side2}ButtonIds`;
179746
180303
  const definitionsKey = `${side2}ButtonDefinitions`;
179747
180304
  const refs = own5(bar, idsKey) ? array3(bar[idsKey]) : array3(bar[definitionsKey]);
179748
180305
  return refs.map((ref, index) => {
179749
- const refObject = object6(ref);
180306
+ const refObject = object7(ref);
179750
180307
  const id = typeof ref === "string" ? ref : string5(refObject.topBarButtonDefinitionId) ?? string5(refObject.id);
179751
180308
  const definition = id && own5(buttonDefinitions, id) ? buttonDefinitions[id] : typeof ref === "object" && ref !== null ? ref : void 0;
179752
- const actionDefinitionId = string5(object6(definition).actionDefinitionId) ?? string5(refObject.actionDefinitionId);
180309
+ const actionDefinitionId = string5(object7(definition).actionDefinitionId) ?? string5(refObject.actionDefinitionId);
179753
180310
  const actionDefinition = actionDefinitionId && own5(availableActions, actionDefinitionId) ? availableActions[actionDefinitionId] : void 0;
179754
180311
  const buttonPointer = `${pointer3}/${side2}/${index}`;
179755
180312
  if (trackInteractions) {
@@ -179765,8 +180322,8 @@ function buildSourceGraph(raw, enriched = {}) {
179765
180322
  });
179766
180323
  }
179767
180324
  const screenGraph = Object.entries(screens).map(([screenId, source]) => {
179768
- const screen = object6(source);
179769
- const layout = object6(screen.layout);
180325
+ const screen = object7(source);
180326
+ const layout = object7(screen.layout);
179770
180327
  const type2 = string5(layout.type);
179771
180328
  const refs = array3(layout.items);
179772
180329
  const pointer3 = `/screens/${part(screenId)}`;
@@ -179789,7 +180346,7 @@ function buildSourceGraph(raw, enriched = {}) {
179789
180346
  };
179790
180347
  const topBarByPlatform = Object.fromEntries(Object.entries(enriched).flatMap(([platform, platformStructure]) => {
179791
180348
  if (!platformStructure) return [];
179792
- const platformScreen = { ...object6(object6(raw.screens)[screenId]), ...object6(object6(platformStructure.screens)[screenId]) };
180349
+ const platformScreen = { ...object7(object7(raw.screens)[screenId]), ...object7(object7(platformStructure.screens)[screenId]) };
179793
180350
  const platformTopBarId = string5(platformScreen.topBarId);
179794
180351
  if (!platformTopBarId) return [];
179795
180352
  const platformTopBar = platformMap(platformStructure, "topBars")[platformTopBarId];
@@ -179808,13 +180365,13 @@ function buildSourceGraph(raw, enriched = {}) {
179808
180365
  }]];
179809
180366
  }));
179810
180367
  const pages2 = refs.flatMap((value2, index) => {
179811
- const ref = object6(value2), id = string5(ref.layoutItemId);
180368
+ const ref = object7(value2), id = string5(ref.layoutItemId);
179812
180369
  if (!id || !own5(layouts, id)) {
179813
180370
  warnings.push({ code: "missing_reference", pointer: `${pointer3}/layout/items/${index}`, ...id ? { reference: id } : {} });
179814
180371
  return [];
179815
180372
  }
179816
180373
  usedLayouts.add(id);
179817
- const item = object6(layouts[id]);
180374
+ const item = object7(layouts[id]);
179818
180375
  return [{
179819
180376
  layoutItemId: id,
179820
180377
  arrayIndex: index,
@@ -179844,7 +180401,7 @@ function buildSourceGraph(raw, enriched = {}) {
179844
180401
  };
179845
180402
  });
179846
180403
  const detachedLayouts = Object.entries(layouts).filter(([id]) => !usedLayouts.has(id)).map(([id, value2]) => {
179847
- const item = object6(value2);
180404
+ const item = object7(value2);
179848
180405
  return {
179849
180406
  layoutItemId: id,
179850
180407
  title: item.title,
@@ -179854,31 +180411,34 @@ function buildSourceGraph(raw, enriched = {}) {
179854
180411
  placements: placements(item.elements, `/layoutItems/${part(id)}/elements`)
179855
180412
  };
179856
180413
  });
179857
- const bottomTabs = array3(object6(raw.navigation).bottomTabs);
180414
+ const bottomTabs = array3(object7(raw.navigation).bottomTabs);
179858
180415
  order(bottomTabs, "/navigation/bottomTabs");
179859
180416
  const navigation = bottomTabs.map((value2, index) => {
179860
- const entry = object6(value2), id = string5(entry.screenId);
180417
+ const entry = object7(value2), id = string5(entry.screenId);
179861
180418
  if (!id) warnings.push({ code: "missing_reference", pointer: `/navigation/bottomTabs/${index}/screenId` });
179862
180419
  return { arrayIndex: index, entry, ...id ? { destination: route(id, "screen", `/navigation/bottomTabs/${index}/screenId`) } : {} };
179863
180420
  });
179864
- const overrides = Object.entries(object6(raw.screenOverrides)).map(([alias2, value2]) => {
179865
- const id = string5(object6(value2).screenId);
180421
+ const overrides = Object.entries(object7(raw.screenOverrides)).map(([alias2, value2]) => {
180422
+ const id = string5(object7(value2).screenId);
179866
180423
  if (!id) warnings.push({ code: "missing_reference", pointer: `/screenOverrides/${part(alias2)}/screenId` });
179867
180424
  return { alias: alias2, source: value2, ...id ? { destination: route(id, "screen", `/screenOverrides/${part(alias2)}/screenId`) } : {} };
179868
180425
  });
179869
- const profile = object6(raw.businessProfile);
180426
+ const profile = object7(raw.businessProfile);
179870
180427
  const profilePlacements = placements(profile.elements, "/businessProfile/elements");
180428
+ const usedSectionVisibility = Object.fromEntries(Object.entries(sectionVisibility).filter(([id]) => usedSections.has(id)));
179871
180429
  return {
179872
180430
  schemaVersion: 1,
179873
180431
  interpretation: "authored-evidence-not-evaluated-access",
179874
180432
  ordering: "source-array-order",
179875
180433
  appSettings: raw.settings,
179876
- navigation: { entries: navigation, settings: object6(raw.navigation).settings, firstAuthoredScreenId: string5(object6(bottomTabs[0]).screenId) },
180434
+ navigation: { entries: navigation, settings: object7(raw.navigation).settings, firstAuthoredScreenId: string5(object7(bottomTabs[0]).screenId) },
179877
180435
  screens: screenGraph,
179878
180436
  detachedLayouts,
179879
180437
  businessProfile: { settings: profile.settings, placements: profilePlacements },
179880
180438
  screenOverrides: overrides,
179881
180439
  sections: Object.fromEntries(Object.entries(sections).filter(([id]) => usedSections.has(id))),
180440
+ // No reviewed placements means no output change for an unrelated migration.
180441
+ ...Object.keys(usedSectionVisibility).length ? { sectionVisibility: usedSectionVisibility } : {},
179882
180442
  interactions,
179883
180443
  layoutAliases: Object.fromEntries(layoutAliases),
179884
180444
  unreferencedScreenIds: Object.keys(screens).filter((id) => !incoming.has(id)),
@@ -179887,17 +180447,18 @@ function buildSourceGraph(raw, enriched = {}) {
179887
180447
  next: "Interpret source settings, definition CTAs, top bars and runtime conditions with himi docs one-app-to-himi-app. This graph indexes basic actions; it does not claim complete business-journey coverage."
179888
180448
  };
179889
180449
  }
179890
- var object6, array3, string5, part, own5, sectionType;
180450
+ var object7, array3, string5, part, own5, sectionType;
179891
180451
  var init_graph = __esm({
179892
180452
  "src/one-app/graph.ts"() {
179893
180453
  init_define_HHP_CATALOG();
179894
- object6 = (value2) => value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
180454
+ init_one_app_visibility();
180455
+ object7 = (value2) => value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
179895
180456
  array3 = (value2) => Array.isArray(value2) ? value2 : [];
179896
180457
  string5 = (value2) => typeof value2 === "string" ? value2 : void 0;
179897
180458
  part = (value2) => value2.replaceAll("~", "~0").replaceAll("/", "~1");
179898
180459
  own5 = (value2, key3) => Object.hasOwn(value2, key3);
179899
180460
  sectionType = (value2) => {
179900
- const section3 = object6(value2);
180461
+ const section3 = object7(value2);
179901
180462
  return string5(section3.sectionDefinitionId ?? section3.section_definition_id);
179902
180463
  };
179903
180464
  }
@@ -180026,12 +180587,12 @@ function nativeWidgetObligations(sectionDefinitionId) {
180026
180587
  }
180027
180588
  function nativeWidgetSettingObligations(sectionDefinitionId, settings) {
180028
180589
  if (!sectionDefinitionId || !BLOG_LIST_SECTIONS.has(sectionDefinitionId)) return [];
180029
- const root = object7(settings);
180590
+ const root = object8(settings);
180030
180591
  const out2 = [];
180031
- const display = object7(root.displayOptions);
180592
+ const display = object8(root.displayOptions);
180032
180593
  const shown2 = BLOG_ROW_OPTIONS.filter(([key3]) => display[key3] === true).map(([, label3]) => label3);
180033
180594
  if (shown2.length) out2.push(`Post rows show exactly the authored display options (${shown2.join(", ")}); a generated row that drops one is a gap`);
180034
- const content = object7(root.contentSettings);
180595
+ const content = object8(root.contentSettings);
180035
180596
  const category = typeof content.categoryId === "string" && content.categoryId.trim() ? `category ${content.categoryId.trim()}` : "all categories";
180036
180597
  const scope2 = `${category}, ${content.featuredOnly === true ? "featured posts only" : "all posts"}`;
180037
180598
  const limit = content.postsPerCategory;
@@ -180042,7 +180603,7 @@ function nativeWidgetSettingObligations(sectionDefinitionId, settings) {
180042
180603
  if (typeof root.postsLayout === "string" && root.postsLayout) out2.push(`Post list layout "${root.postsLayout}": thumbnail side and row density match the source on device`);
180043
180604
  return out2;
180044
180605
  }
180045
- var bookings, groupFeed, programs, contact, members, blogList, NATIVE_WIDGET_DEFAULTS, BLOG_LIST_SECTIONS, BLOG_ROW_OPTIONS, object7;
180606
+ var bookings, groupFeed, programs, contact, members, blogList, NATIVE_WIDGET_DEFAULTS, BLOG_LIST_SECTIONS, BLOG_ROW_OPTIONS, object8;
180046
180607
  var init_native_defaults = __esm({
180047
180608
  "src/one-app/native-defaults.ts"() {
180048
180609
  init_define_HHP_CATALOG();
@@ -180080,7 +180641,15 @@ var init_native_defaults = __esm({
180080
180641
  newBlog_compact_post_list_vertical_section: blogList,
180081
180642
  events_list_section: ["Date badge", "Share event", "RSVP or ticket action appropriate to the event and visitor state"],
180082
180643
  platform_general_members_section: members,
180083
- platform_general_members_section_bp: members
180644
+ platform_general_members_section_bp: members,
180645
+ file_share_section: ["Signed-in-only visibility; preserve file/folder access and the View All action (media.openFileShareListScreen)"],
180646
+ events_guests_section: ["Signed-in-only event-scoped guest list; preserve event selector, guest privacy and display settings"],
180647
+ events_discussion_section: ["Signed-in-only event-scoped discussion; preserve event selector, discussion settings and actions"],
180648
+ performance_tracker_section: ["Signed-in-only performance tracker; preserve member data, settings and wix.bookings.performanceTrackerCTA"],
180649
+ achievements_participant_carousel_section: ["Signed-in-only participating-programs carousel; preserve member progress, selection/settings, default limit 5 and ParticipantChallengesScreen CTA"],
180650
+ memberships_packages_section: ["Signed-in-only memberships/packages; preserve plan orders, package balances/session credits, source settings and MyMemberships CTA"],
180651
+ upcoming_bookings_section: ["Signed-in-only upcoming bookings; preserve upcoming-only selection, source settings, limit and ActivityFeedCards CTA"],
180652
+ loyalty_status_section: ["Signed-in-only member loyalty status; preserve points, tier/status and authored display settings; a rewards catalog is not status"]
180084
180653
  };
180085
180654
  BLOG_LIST_SECTIONS = /* @__PURE__ */ new Set(["newBlog_postlist_vertical_section", "newBlog_compact_post_list_vertical_section"]);
180086
180655
  BLOG_ROW_OPTIONS = [
@@ -180092,7 +180661,7 @@ var init_native_defaults = __esm({
180092
180661
  ["reading_time", "reading time"],
180093
180662
  ["cover_image", "cover image"]
180094
180663
  ];
180095
- object7 = (value2) => value2 && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
180664
+ object8 = (value2) => value2 && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
180096
180665
  }
180097
180666
  });
180098
180667
 
@@ -180102,6 +180671,7 @@ __export(coverage_exports2, {
180102
180671
  COVERAGE_FILE: () => COVERAGE_FILE,
180103
180672
  NATIVE_PROOF_FILE: () => NATIVE_PROOF_FILE,
180104
180673
  REQUIRED_CHECK: () => REQUIRED_CHECK,
180674
+ SECTION_VISIBILITY_STATES: () => SECTION_VISIBILITY_STATES,
180105
180675
  deriveRequirements: () => deriveRequirements,
180106
180676
  requirementId: () => requirementId,
180107
180677
  syncCoverage: () => syncCoverage,
@@ -180112,6 +180682,17 @@ __export(coverage_exports2, {
180112
180682
  import { createHash as createHash40 } from "node:crypto";
180113
180683
  import { existsSync as existsSync87, readFileSync as readFileSync99, writeFileSync as writeFileSync39 } from "node:fs";
180114
180684
  import { isAbsolute as isAbsolute9, join as join91, resolve as resolve68 } from "node:path";
180685
+ function sectionVisibilityProof(record3, contentDir2) {
180686
+ const proof = obj4(record3.sectionVisibility);
180687
+ const states = obj4(proof.states), report4 = obj4(proof.testReport);
180688
+ const path2 = report4.path;
180689
+ if (proof.kind !== "automated" || typeof proof.command !== "string" || !proof.command.trim() || proof.hiddenMemberReads !== 0 || !Object.entries(SECTION_VISIBILITY_STATES).every(([key3, value2]) => states[key3] === value2) || typeof path2 !== "string" || !path2.trim() || isAbsolute9(path2) || path2.split(/[\\/]/).includes("..") || typeof report4.sha256 !== "string" || !/^[a-f0-9]{64}$/.test(report4.sha256)) return false;
180690
+ try {
180691
+ return sha(readFileSync99(join91(resolve68(contentDir2), path2))) === report4.sha256;
180692
+ } catch {
180693
+ return false;
180694
+ }
180695
+ }
180115
180696
  function verifiedEvidence(evidenceDir) {
180116
180697
  const manifest2 = obj4(JSON.parse(readFileSync99(join91(evidenceDir, "manifest.json"), "utf8")));
180117
180698
  if (manifest2.workflow !== "one-app-to-himi-app" || manifest2.stage !== "collected") throw Error("One App evidence is not collected.");
@@ -180147,6 +180728,17 @@ function deriveRequirements(evidenceDir) {
180147
180728
  };
180148
180729
  const placement = (entry) => {
180149
180730
  add("placement", entry.context, `Section ${entry.sectionDefinitionId ?? entry.sectionId}`, void 0, `${entry.sectionId}:${entry.sectionDefinitionId ?? "unknown"}`);
180731
+ const visibility = graph.sectionVisibility?.[entry.sectionId];
180732
+ if (visibility) {
180733
+ const row2 = add(
180734
+ "access",
180735
+ `${entry.context}/sectionVisibility`,
180736
+ `Section ${entry.sectionDefinitionId ?? entry.sectionId} visibility: ${visibility.authentication}; preserve experiments and other permissions; verify visitor \u2192 sign-in \u2192 sign-out, failed/cancelled login and restored sessions; no hidden member reads`,
180737
+ void 0,
180738
+ JSON.stringify({ sectionId: entry.sectionId, sectionDefinitionId: entry.sectionDefinitionId, visibility })
180739
+ );
180740
+ row2.sectionVisibility = visibility;
180741
+ }
180150
180742
  const settings = obj4(obj4(obj4(graph.sections)[entry.sectionId]).settings);
180151
180743
  for (const behavior of [...nativeWidgetObligations(entry.sectionDefinitionId), ...nativeWidgetSettingObligations(entry.sectionDefinitionId, settings)]) {
180152
180744
  add(
@@ -180362,6 +180954,8 @@ function verifyCoverage(evidenceDir, contentDir2, releaseHash, builtScreenIds) {
180362
180954
  if (result.hashesChanged) issues.push({ message: "Saved source hashes differ from the collected evidence." });
180363
180955
  const saved = result.existed ? obj4(JSON.parse(readFileSync99(join91(resolve68(contentDir2), COVERAGE_FILE), "utf8"))) : {};
180364
180956
  const rows = Array.isArray(saved.requirements) ? saved.requirements.map(obj4) : [];
180957
+ const memberSectionIds = new Set(result.coverage.requirements.filter((row2) => row2.sectionVisibility?.authentication === "signed-in-only").map((row2) => row2.id));
180958
+ const unresolvedSectionIds = new Set(result.coverage.requirements.filter((row2) => row2.sectionVisibility?.authentication === "unresolved").map((row2) => row2.id));
180365
180959
  const contentManifest = join91(resolve68(contentDir2), "himalaya.content.json");
180366
180960
  const declaredScreens = existsSync87(contentManifest) ? obj4(obj4(JSON.parse(readFileSync99(contentManifest, "utf8"))).screens) : void 0;
180367
180961
  const availableScreens = builtScreenIds ? new Set(builtScreenIds) : declaredScreens && Object.keys(declaredScreens).length ? new Set(Object.keys(declaredScreens)) : void 0;
@@ -180372,6 +180966,9 @@ function verifyCoverage(evidenceDir, contentDir2, releaseHash, builtScreenIds) {
180372
180966
  issues.push({ id, message: "Invalid requirement identity or kind." });
180373
180967
  continue;
180374
180968
  }
180969
+ if (unresolvedSectionIds.has(id)) {
180970
+ issues.push({ id, message: "Section visibility source definition is unresolved; a supported status or generic check cannot establish its access rule." });
180971
+ }
180375
180972
  const status = row2.status;
180376
180973
  if (status !== "supported" && status !== "adapted" && status !== "conditional") {
180377
180974
  issues.push({ id, message: "Requirement is unresolved or has no status." });
@@ -180411,6 +181008,9 @@ function verifyCoverage(evidenceDir, contentDir2, releaseHash, builtScreenIds) {
180411
181008
  if (!record3 || record3.status !== "passed") {
180412
181009
  issues.push({ id, message: `Check ${required3} has no latest passed record for this requirement and target.` });
180413
181010
  } else {
181011
+ if (memberSectionIds.has(id) && !sectionVisibilityProof(record3, contentDir2)) {
181012
+ issues.push({ id, message: "Member-only section visibility needs deterministic automated transition assertions, zero hidden member reads and a hashed test report." });
181013
+ }
180414
181014
  const artifact = record3.artifact;
180415
181015
  if (typeof artifact !== "string" || !artifact.trim() || isAbsolute9(artifact) || artifact.split(/[\\/]/).includes("..") || !existsSync87(join91(resolve68(contentDir2), artifact))) {
180416
181016
  issues.push({ id, message: `Check ${required3} needs a reviewable artifact file.` });
@@ -180438,13 +181038,23 @@ function verifyCoverage(evidenceDir, contentDir2, releaseHash, builtScreenIds) {
180438
181038
  }
180439
181039
  return { ok: issues.length === 0, count: rows.length, requirementIds: rows.map((row2) => String(row2.id ?? "")), issues };
180440
181040
  }
180441
- var obj4, sha, REQUIRED_CHECK, COVERAGE_FILE, NATIVE_PROOF_FILE;
181041
+ var SECTION_VISIBILITY_STATES, obj4, sha, REQUIRED_CHECK, COVERAGE_FILE, NATIVE_PROOF_FILE;
180442
181042
  var init_coverage2 = __esm({
180443
181043
  "src/one-app/coverage.ts"() {
180444
181044
  init_define_HHP_CATALOG();
180445
181045
  init_graph();
180446
181046
  init_design_rules();
180447
181047
  init_native_defaults();
181048
+ SECTION_VISIBILITY_STATES = {
181049
+ unresolved: "hidden",
181050
+ visitor: "hidden",
181051
+ signedIn: "visible",
181052
+ signedOut: "hidden",
181053
+ cancelled: "hidden",
181054
+ failed: "hidden",
181055
+ restored: "visible",
181056
+ otherRestricted: "hidden"
181057
+ };
180448
181058
  obj4 = (v2) => v2 && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
180449
181059
  sha = (v2) => createHash40("sha256").update(v2).digest("hex");
180450
181060
  REQUIRED_CHECK = {
@@ -180679,7 +181289,7 @@ function isBadgeWorkerUrl(url) {
180679
181289
  const name = (url ?? "").split("/").filter(Boolean).pop() ?? "";
180680
181290
  return NAV_WORKER_BUNDLES.includes(name);
180681
181291
  }
180682
- function object8(value2) {
181292
+ function object9(value2) {
180683
181293
  return value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : void 0;
180684
181294
  }
180685
181295
  function planHeaderBadges(raw, views) {
@@ -180689,7 +181299,7 @@ function planHeaderBadges(raw, views) {
180689
181299
  for (const screen of graph.screens) {
180690
181300
  const visit = (buttons, platform, side2) => {
180691
181301
  for (const [index, button] of buttons.entries()) {
180692
- const definition = object8(button.definition);
181302
+ const definition = object9(button.definition);
180693
181303
  const hasBadge = [definition?.badgeObserverId, definition?.badgeListenerId].some((value2) => typeof value2 === "string" && value2.trim());
180694
181304
  if (!hasBadge) continue;
180695
181305
  const words = `${button.id ?? ""} ${definition?.iconId ?? ""} ${definition?.accessibilityLabel ?? ""}`.toLowerCase();
@@ -180742,8 +181352,8 @@ function headerBadgesBundleRef() {
180742
181352
  function propName5(node) {
180743
181353
  return ts11.isIdentifier(node) || ts11.isStringLiteral(node) ? node.text : void 0;
180744
181354
  }
180745
- function findProperty(object14, name) {
180746
- return object14.properties.find((property2) => ts11.isPropertyAssignment(property2) && propName5(property2.name) === name);
181355
+ function findProperty(object15, name) {
181356
+ return object15.properties.find((property2) => ts11.isPropertyAssignment(property2) && propName5(property2.name) === name);
180747
181357
  }
180748
181358
  function appObject(source) {
180749
181359
  const exported = source.statements.find(ts11.isExportAssignment);
@@ -180842,7 +181452,7 @@ function enrichedControls(raw, views) {
180842
181452
  badges.set(screen.screenId, badgeButtons);
180843
181453
  const addButtons = (buttons, side2, platform) => {
180844
181454
  for (const [index, button] of buttons.entries()) {
180845
- const definition = object9(button.definition);
181455
+ const definition = object10(button.definition);
180846
181456
  const id = `${button.id ?? ""} ${definition?.iconId ?? ""} ${definition?.accessibilityLabel ?? ""}`.toLowerCase();
180847
181457
  let recognized = false;
180848
181458
  const matched = /* @__PURE__ */ new Set();
@@ -180882,11 +181492,11 @@ function enrichedControls(raw, views) {
180882
181492
  }
180883
181493
  return { controls: result, badges };
180884
181494
  }
180885
- function object9(value2) {
181495
+ function object10(value2) {
180886
181496
  return value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : void 0;
180887
181497
  }
180888
181498
  function readJson7(path2) {
180889
- return object9(JSON.parse(readFileSync102(path2, "utf8"))) ?? {};
181499
+ return object10(JSON.parse(readFileSync102(path2, "utf8"))) ?? {};
180890
181500
  }
180891
181501
  function parseArgs(args) {
180892
181502
  let evidenceDir;
@@ -180914,8 +181524,8 @@ function parseArgs(args) {
180914
181524
  return { evidenceDir: resolve70(evidenceDir), contentDir: resolve70(contentDir2), json: json9 };
180915
181525
  }
180916
181526
  function authoredControls(raw) {
180917
- const screens = object9(raw.screens);
180918
- const headers2 = object9(raw.headers) ?? {};
181527
+ const screens = object10(raw.screens);
181528
+ const headers2 = object10(raw.headers) ?? {};
180919
181529
  if (!screens || !Object.keys(screens).length) {
180920
181530
  return { controls: /* @__PURE__ */ new Set(), byScreen: /* @__PURE__ */ new Map(), inviteDisabled: /* @__PURE__ */ new Set(), screens: 0, error: "raw-structure.json is missing authored screens." };
180921
181531
  }
@@ -180924,16 +181534,16 @@ function authoredControls(raw) {
180924
181534
  const inviteDisabled = /* @__PURE__ */ new Set();
180925
181535
  let count2 = 0;
180926
181536
  for (const [screenId, rawScreen] of Object.entries(screens)) {
180927
- const screen = object9(rawScreen);
181537
+ const screen = object10(rawScreen);
180928
181538
  const headerId = typeof screen?.headerId === "string" ? screen.headerId : void 0;
180929
181539
  const screenControls = /* @__PURE__ */ new Set();
180930
181540
  byScreen.set(screenId, screenControls);
180931
181541
  if (!headerId) continue;
180932
181542
  count2++;
180933
- const header = object9(headers2[headerId]);
181543
+ const header = object10(headers2[headerId]);
180934
181544
  if (!header) return { controls, byScreen, inviteDisabled, screens: count2, error: `Authored header ${headerId} is missing for screen ${screenId}.` };
180935
- const settings = object9(header?.settings) ?? header;
180936
- const topBarSettings = object9(settings?.topBarSettings);
181545
+ const settings = object10(header?.settings) ?? header;
181546
+ const topBarSettings = object10(settings?.topBarSettings);
180937
181547
  const choice = (modern, legacy) => {
180938
181548
  const current = topBarSettings?.[modern];
180939
181549
  if (current !== void 0) return typeof current === "boolean" ? current : void 0;
@@ -181069,8 +181679,8 @@ function itemTokens(topBar, source) {
181069
181679
  const out2 = /* @__PURE__ */ new Set();
181070
181680
  if (!list2 || !ts12.isArrayLiteralExpression(list2)) return out2;
181071
181681
  for (const item of list2.elements) {
181072
- const object14 = ts12.isExpression(item) ? resolveObject(item, source) : void 0;
181073
- if (object14) for (const token of actionTokens(object14)) out2.add(token);
181682
+ const object15 = ts12.isExpression(item) ? resolveObject(item, source) : void 0;
181683
+ if (object15) for (const token of actionTokens(object15)) out2.add(token);
181074
181684
  }
181075
181685
  return out2;
181076
181686
  }
@@ -181204,13 +181814,13 @@ function readVerifiedEvidence(evidenceDir) {
181204
181814
  const manifest2 = readJson7(join94(evidenceDir, "manifest.json"));
181205
181815
  if (manifest2.workflow !== "one-app-to-himi-app") throw new Error("manifest.json is not for the one-app-to-himi-app workflow.");
181206
181816
  if (manifest2.stage !== "collected") throw new Error('manifest.json must have stage "collected".');
181207
- const unavailable = (Array.isArray(manifest2.warnings) ? manifest2.warnings : []).map(object9).filter((warning) => warning?.code === "runtime_context_unavailable" && (warning.platform === "ios" || warning.platform === "android"));
181817
+ const unavailable = (Array.isArray(manifest2.warnings) ? manifest2.warnings : []).map(object10).filter((warning) => warning?.code === "runtime_context_unavailable" && (warning.platform === "ios" || warning.platform === "android"));
181208
181818
  if (unavailable.length) {
181209
181819
  throw new Error(`Platform top-bar behavior is unverified: ${unavailable.map((warning) => warning.platform).join(", ")} runtime context unavailable.`);
181210
181820
  }
181211
181821
  const rawPath = join94(evidenceDir, "raw-structure.json");
181212
181822
  const rawBytes = readFileSync102(rawPath);
181213
- const expectedHash = object9(manifest2.sha256)?.["raw-structure.json"];
181823
+ const expectedHash = object10(manifest2.sha256)?.["raw-structure.json"];
181214
181824
  if (typeof expectedHash !== "string" || !/^[a-f0-9]{64}$/i.test(expectedHash)) {
181215
181825
  throw new Error("manifest.json is missing a valid raw-structure.json hash.");
181216
181826
  }
@@ -181221,7 +181831,7 @@ function readVerifiedEvidence(evidenceDir) {
181221
181831
  const views = {};
181222
181832
  for (const platform of ["ios", "android"]) {
181223
181833
  const name = `enriched-${platform}.json`;
181224
- const hash3 = object9(manifest2.sha256)?.[name];
181834
+ const hash3 = object10(manifest2.sha256)?.[name];
181225
181835
  if (hash3 === void 0) continue;
181226
181836
  if (typeof hash3 !== "string" || !/^[a-f0-9]{64}$/i.test(hash3)) throw new Error(`Invalid ${name} hash.`);
181227
181837
  const bytes2 = readFileSync102(join94(evidenceDir, name));
@@ -181286,15 +181896,15 @@ function validate3(evidenceDir, contentDir2) {
181286
181896
  try {
181287
181897
  const coverage = readJson7(coveragePath);
181288
181898
  for (const row2 of Array.isArray(coverage.requirements) ? coverage.requirements : []) {
181289
- const entry = object9(row2) ?? {};
181899
+ const entry = object10(row2) ?? {};
181290
181900
  const badge = typeof entry.id === "string" ? badgeDefinitions.get(entry.id) : void 0;
181291
- const destination = object9(entry.target);
181901
+ const destination = object10(entry.target);
181292
181902
  if (entry.kind === "top-bar" && badge && entry.source === badge.source && entry.platform === badge.platform && typeof destination?.screenId === "string" && destination.screenId.trim() && typeof destination.controlId === "string" && destination.controlId.trim()) {
181293
181903
  badgeTargets.set(badge.requirementId, { screenId: destination.screenId, controlId: destination.controlId });
181294
181904
  }
181295
181905
  if (entry.kind !== "route" || typeof entry.source !== "string" || !/^\/screens\/[^/]+$/.test(entry.source)) continue;
181296
181906
  const screenId = entry.source.slice(9).replaceAll("~1", "/").replaceAll("~0", "~");
181297
- const targetScreen = object9(entry.target)?.screenId;
181907
+ const targetScreen = object10(entry.target)?.screenId;
181298
181908
  if (typeof targetScreen === "string" && targetScreen) mappings.set(screenId, targetScreen);
181299
181909
  }
181300
181910
  } catch (error) {
@@ -184970,46 +185580,46 @@ var init_preview_assets_generated = __esm({
184970
185580
  init_define_HHP_CATALOG();
184971
185581
  init_preview_assets_format();
184972
185582
  PREVIEW_ASSET_MANIFEST = [
184973
- { key: "assets/DashboardHost-3gsTgUB9.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 2971, sha256: "ccc102ae2be3072f5b7298a5f79cacd148c1e9a283f18e5921af205a53172bd1" },
184974
- { key: "assets/DevDrawer-CwVEuTur.js", contentType: "application/javascript; charset=utf-8", offset: 2979, length: 16783, sha256: "ebc3214e2edbc7570e3ac558ac984cef001872a880970a99fa44b26be791992e" },
184975
- { key: "assets/IdiomCompare-BoaQOK5M.js", contentType: "application/javascript; charset=utf-8", offset: 19762, length: 1926, sha256: "abc579bdc3a253acc52bd32fb053e557012bd1e000c6c42e3fd72e0c1311f357" },
184976
- { key: "assets/LightboxViewer--lNQ7NIj.js", contentType: "application/javascript; charset=utf-8", offset: 21688, length: 8171, sha256: "a14ca36f17e8a8e29b00a66f39615048b581bfbca6430d30430a54eb2a52950f" },
184977
- { key: "assets/OfflineReadingBar-AT-uikhL.js", contentType: "application/javascript; charset=utf-8", offset: 29859, length: 1707, sha256: "f517ab243df6e2369f4e662d899a8615f5ff6f02eaa3c301e064d950718945b4" },
184978
- { key: "assets/PhonePreviewControl-Cfp_CLtT.js", contentType: "application/javascript; charset=utf-8", offset: 31566, length: 37851, sha256: "06bfbe4ee553f3982a44120f3d916bc733d99c7b529950f45dad3262a0e20b77" },
184979
- { key: "assets/SchemeCompare-CrGqEhYr.js", contentType: "application/javascript; charset=utf-8", offset: 69417, length: 1858, sha256: "6dd637143847ddbced59b327baaf5467a7a3ca63a93c5ef8d536df37cf4671d0" },
184980
- { key: "assets/WixFrogTelemetrySink-DVnUtztk.js", contentType: "application/javascript; charset=utf-8", offset: 71275, length: 3165, sha256: "d882f5f08bd59d88bcd7a26a0c625cd82662339eecbb13be88ca230f388a8b37" },
185583
+ { key: "assets/DashboardHost-Bub_QE7K.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 2971, sha256: "d497906fe33e2552a60fb4bb23cf21f6f4afeff265fb83002bcfb46314cbe819" },
185584
+ { key: "assets/DevDrawer-o5QbggjK.js", contentType: "application/javascript; charset=utf-8", offset: 2979, length: 16783, sha256: "07623e7279d3dc709674777c556d5a9093a102a5097898007bb3b28fa50eec94" },
185585
+ { key: "assets/IdiomCompare-Bsv5Or-x.js", contentType: "application/javascript; charset=utf-8", offset: 19762, length: 1926, sha256: "871113ec4773a5dc68e3b4fbc9e6ff46d4a593729655823a220d75aa692ee8b2" },
185586
+ { key: "assets/LightboxViewer-BOS3Ifbo.js", contentType: "application/javascript; charset=utf-8", offset: 21688, length: 8171, sha256: "b167db1eff3e134f838b5c919f109fe3fbe5e790e61e1899e3065a35c76b07e9" },
185587
+ { key: "assets/OfflineReadingBar-CI8cuY_-.js", contentType: "application/javascript; charset=utf-8", offset: 29859, length: 1707, sha256: "e7c1c32f218ec674827579c40d5d123d6651efd5b1ba35c5f4bf27e1cc622f25" },
185588
+ { key: "assets/PhonePreviewControl-BRkX4YEr.js", contentType: "application/javascript; charset=utf-8", offset: 31566, length: 37851, sha256: "c7e6d4a6eca09e93d4832203ef71b36ae02b1f0a0b4281afac8dbc0a122fb9dd" },
185589
+ { key: "assets/SchemeCompare-CJX24Kd_.js", contentType: "application/javascript; charset=utf-8", offset: 69417, length: 1858, sha256: "51be6ee0a840ac8afbfa6da978c04441d899ceffccda12eb86cf72b234d4c194" },
185590
+ { key: "assets/WixFrogTelemetrySink-kv9vvuRJ.js", contentType: "application/javascript; charset=utf-8", offset: 71275, length: 3165, sha256: "9fdcc47b4120ecd65260a91f158ef1b2593b2cf9e15b6f92362a206c113bce50" },
184981
185591
  { key: "assets/calendar-ics-BvfIYWjG.js", contentType: "application/javascript; charset=utf-8", offset: 74440, length: 2192, sha256: "1636167041e9829ceccd3544297b86b8475c38bd2f759c4dbc17c813dc6e9254" },
184982
185592
  { key: "assets/catalog-CAoUWITw.js", contentType: "application/javascript; charset=utf-8", offset: 76632, length: 26046, sha256: "4c270ca3051f77d761aef1297125e02339d48493dd2b84a0cacf0faf41aa8cb3" },
184983
- { key: "assets/catalogFontFaces-BOE7optU.js", contentType: "application/javascript; charset=utf-8", offset: 102678, length: 1111, sha256: "7b83ba034fc4b09e0c3731d2977d8ac48a12a3e46fa3a3383541d167cd7caa3f" },
184984
- { key: "assets/files-transfer-D2m-6sv8.js", contentType: "application/javascript; charset=utf-8", offset: 103789, length: 6446, sha256: "29aab69e2292eaf4f74e60b812aa6c7bd198d59bb6b45b057b69788e19912e94" },
185593
+ { key: "assets/catalogFontFaces-Chz9pfUq.js", contentType: "application/javascript; charset=utf-8", offset: 102678, length: 1111, sha256: "23367aac710fa244159da3d71e2a022230f0b452bab9815aa88faad6376e7e20" },
185594
+ { key: "assets/files-transfer-Bb0VLayU.js", contentType: "application/javascript; charset=utf-8", offset: 103789, length: 6446, sha256: "52cf1ca122cc955d5b1c2bfb202a29b02e2c5e370cfd082fd6cba2cd2da73e0e" },
184985
185595
  { key: "assets/glassPreviewBrowser-DONaOehd.js", contentType: "application/javascript; charset=utf-8", offset: 110235, length: 6578, sha256: "4402c4cddd2a564e7466cdf1e12a0e0277c0400b288e1e5eda1d23e797599d31" },
184986
185596
  { key: "assets/image-preparation-Cj4gldm6.js", contentType: "application/javascript; charset=utf-8", offset: 116813, length: 2704, sha256: "32944ea587c2f3b84389b66b50a850437560238f1c8d33b6275973ee04eee865" },
184987
- { key: "assets/index-48LXBr-k.js", contentType: "application/javascript; charset=utf-8", offset: 119517, length: 1505466, sha256: "da28ff94b8bd197873bf78378caa997d5325d052830890d0f9cc5fd5c02ded08" },
184988
- { key: "assets/jsx-runtime-CY_jTiqj.js", contentType: "application/javascript; charset=utf-8", offset: 1624983, length: 7624, sha256: "29dfba5b56f79a0b84d6b04d84d87617454baeba03c225f682ab2ab7ae2d5016" },
184989
- { key: "assets/pdf-3Rf3E3pE.js", contentType: "application/javascript; charset=utf-8", offset: 1632607, length: 488215, sha256: "514d227d462e697aecbae58f1b2b5bab5ad3847656b9257ef0037b3efdbceada" },
184990
- { key: "assets/pdf.worker.min-BGnVRhRG.js", contentType: "application/javascript; charset=utf-8", offset: 2120822, length: 90, sha256: "521a0e528916d678d7588b2cddf3dadd3bb959a6d62426382f61c77a82017e35" },
184991
- { key: "assets/pdf.worker.min-BmVo14Nb.mjs", contentType: "application/javascript; charset=utf-8", offset: 2120912, length: 1317034, sha256: "a33cfe728c584fdba4fcc1fd54bcdc2f9f2f13889ddbb5b2bd1d0f8cbe49b84e" },
184992
- { key: "assets/pdfDocument-BgmzreFf.js", contentType: "application/javascript; charset=utf-8", offset: 3437946, length: 3470, sha256: "ca223b966552c7e8b0a76558c5c9b54755c62fc3faa11e19f66e73b3bbaa1423" },
184993
- { key: "assets/pdfFetch-Cc8i1I1h.js", contentType: "application/javascript; charset=utf-8", offset: 3441416, length: 2266, sha256: "1d21ad008921942217c9eac0c35b1713773b9d89c71e3ab4412781f7bb88f463" },
184994
- { key: "assets/webviewBridgeHost-Droi-XuB.js", contentType: "application/javascript; charset=utf-8", offset: 3443682, length: 9888, sha256: "08bd776c6cef081f30b5ae82fb466d29e5175ec33d22811c65d8dd35924c2345" },
184995
- { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 3453570, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
184996
- { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 3458180, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
184997
- { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 3946764, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
184998
- { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 4037688, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
184999
- { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 4128672, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
185000
- { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 4219652, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
185001
- { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 4310524, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
185002
- { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 4401504, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
185003
- { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 4510140, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
185004
- { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 4619224, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
185005
- { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 4728272, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
185006
- { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 4835972, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
185007
- { key: "himi-sw.js", contentType: "application/javascript; charset=utf-8", offset: 4924080, length: 6818, sha256: "835250c3d8004f27c2b67f9b471984351ba6df07b916d97e33b43c691200a18c" },
185008
- { key: "index.html", contentType: "text/html; charset=utf-8", offset: 4930898, length: 4924, sha256: "1491906e0c9cc7184e38934ad525bde7a16834831ddb8340eeb4504d7c10b6af" },
185009
- { key: "ios-glass-preview.css", contentType: "text/css; charset=utf-8", offset: 4935822, length: 11457, sha256: "6cb2b75264fa5fa2b4d28851878a5eab0712900e8b3a6c2370cc661d6d820805" },
185010
- { key: "kit-tab-bar.css", contentType: "text/css; charset=utf-8", offset: 4947279, length: 1171, sha256: "9e2c3a0faaf05d5471badf167a4d3bdf1c4e6dd65c432eea6d254158bfd99585" },
185011
- { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 4948450, length: 23047, sha256: "20d1459e3f896f344e478e613d0c979a0de02e81a929a45d3a0ef6a53af36441" },
185012
- { key: "t5-worker-frame.html", contentType: "text/html; charset=utf-8", offset: 4971497, length: 23064, sha256: "8655cfe9c74212ec5dafecb49d2fdeb48b19f1bd8a710091e3e55631f9b4ab06" }
185597
+ { key: "assets/index-BZkAPpdD.js", contentType: "application/javascript; charset=utf-8", offset: 119517, length: 1513407, sha256: "34552fa052e5b62073d6311dd64efc184e6bb88c3e6f5ba87f9ed0d3be16dcfc" },
185598
+ { key: "assets/jsx-runtime-CY_jTiqj.js", contentType: "application/javascript; charset=utf-8", offset: 1632924, length: 7624, sha256: "29dfba5b56f79a0b84d6b04d84d87617454baeba03c225f682ab2ab7ae2d5016" },
185599
+ { key: "assets/pdf-lJy5xbZO.js", contentType: "application/javascript; charset=utf-8", offset: 1640548, length: 488215, sha256: "375f88fac226b68a7989752ae84b8052c3e08ed0b27ab745cddc1da628527edb" },
185600
+ { key: "assets/pdf.worker.min-BGnVRhRG.js", contentType: "application/javascript; charset=utf-8", offset: 2128763, length: 90, sha256: "521a0e528916d678d7588b2cddf3dadd3bb959a6d62426382f61c77a82017e35" },
185601
+ { key: "assets/pdf.worker.min-BmVo14Nb.mjs", contentType: "application/javascript; charset=utf-8", offset: 2128853, length: 1317034, sha256: "a33cfe728c584fdba4fcc1fd54bcdc2f9f2f13889ddbb5b2bd1d0f8cbe49b84e" },
185602
+ { key: "assets/pdfDocument-BMBxWNC0.js", contentType: "application/javascript; charset=utf-8", offset: 3445887, length: 3470, sha256: "7035f6e4b3ed1cba1df616f97650b82b0f33bc1054682cafd2140bc4eceb8f4f" },
185603
+ { key: "assets/pdfFetch-Cc8i1I1h.js", contentType: "application/javascript; charset=utf-8", offset: 3449357, length: 2266, sha256: "1d21ad008921942217c9eac0c35b1713773b9d89c71e3ab4412781f7bb88f463" },
185604
+ { key: "assets/webviewBridgeHost-Cq4rUBlZ.js", contentType: "application/javascript; charset=utf-8", offset: 3451623, length: 9888, sha256: "89a3cb4b9723c69be4a5f40f33dbaae5898ebcadb5d27f8f18e9cc53cd1d4e8f" },
185605
+ { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 3461511, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
185606
+ { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 3466121, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
185607
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 3954705, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
185608
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 4045629, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
185609
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 4136613, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
185610
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 4227593, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
185611
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 4318465, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
185612
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 4409445, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
185613
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 4518081, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
185614
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 4627165, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
185615
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 4736213, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
185616
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 4843913, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
185617
+ { key: "himi-sw.js", contentType: "application/javascript; charset=utf-8", offset: 4932021, length: 6818, sha256: "835250c3d8004f27c2b67f9b471984351ba6df07b916d97e33b43c691200a18c" },
185618
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 4938839, length: 4924, sha256: "6643e87006b2fe4e0ae2eb2475d124e6af2c6fd12fc4b75cb1ba322d48c84774" },
185619
+ { key: "ios-glass-preview.css", contentType: "text/css; charset=utf-8", offset: 4943763, length: 11457, sha256: "6cb2b75264fa5fa2b4d28851878a5eab0712900e8b3a6c2370cc661d6d820805" },
185620
+ { key: "kit-tab-bar.css", contentType: "text/css; charset=utf-8", offset: 4955220, length: 1171, sha256: "9e2c3a0faaf05d5471badf167a4d3bdf1c4e6dd65c432eea6d254158bfd99585" },
185621
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 4956391, length: 23047, sha256: "20d1459e3f896f344e478e613d0c979a0de02e81a929a45d3a0ef6a53af36441" },
185622
+ { key: "t5-worker-frame.html", contentType: "text/html; charset=utf-8", offset: 4979438, length: 23064, sha256: "8655cfe9c74212ec5dafecb49d2fdeb48b19f1bd8a710091e3e55631f9b4ab06" }
185013
185623
  ];
185014
185624
  }
185015
185625
  });
@@ -188877,21 +189487,21 @@ function fixedPriceRoute(item, currency) {
188877
189487
  return typeof amount === "string" && /^\d+(?:\.\d+)?$/.test(amount) && Number.isFinite(Number(amount)) && Number(amount) > 0 && /^[A-Z]{3}$/.test(currency) && item.currency === currency ? "appleIap" : "decide";
188878
189488
  }
188879
189489
  function bookingAttendanceOf(raw) {
188880
- const s2 = object10(raw);
188881
- const payment = object10(s2.payment);
188882
- const fixed = object10(payment.fixed);
188883
- const price = object10(fixed.price);
188884
- const options = object10(payment.options);
188885
- const policy = object10(object10(s2.bookingPolicy).participantsPolicy);
189490
+ const s2 = object11(raw);
189491
+ const payment = object11(s2.payment);
189492
+ const fixed = object11(payment.fixed);
189493
+ const price = object11(fixed.price);
189494
+ const options = object11(payment.options);
189495
+ const policy = object11(object11(s2.bookingPolicy).participantsPolicy);
188886
189496
  return {
188887
189497
  kind: "bookingsService",
188888
189498
  type: text10(s2.type),
188889
189499
  capacity: numeric(s2.defaultCapacity),
188890
189500
  maxParticipantsPerBooking: policy.enabled === true ? numeric(policy.maxParticipantsPerBooking) : void 0,
188891
189501
  hidden: boolean3(s2.hidden),
188892
- conferencing: boolean3(object10(s2.conferencing).enabled),
189502
+ conferencing: boolean3(object11(s2.conferencing).enabled),
188893
189503
  locations: Array.isArray(s2.locations) ? s2.locations.map(locationType) : void 0,
188894
- onlineBooking: boolean3(object10(s2.onlineBooking).enabled),
189504
+ onlineBooking: boolean3(object11(s2.onlineBooking).enabled),
188895
189505
  onlinePayment: boolean3(options.online),
188896
189506
  deposit: options.deposit === true || fixed.deposit !== void 0,
188897
189507
  priceType: text10(payment.rateType),
@@ -188900,9 +189510,9 @@ function bookingAttendanceOf(raw) {
188900
189510
  };
188901
189511
  }
188902
189512
  function locationType(raw) {
188903
- const location = object10(raw);
189513
+ const location = object11(raw);
188904
189514
  const type2 = text10(location.type) ?? "UNKNOWN";
188905
- const addresses = [object10(location.custom).address, location.calculatedAddress].map(object10);
189515
+ const addresses = [object11(location.custom).address, location.calculatedAddress].map(object11);
188906
189516
  return type2 === "CUSTOM" && addresses.every(describesNoPlace) ? ADDRESSLESS_CUSTOM : type2;
188907
189517
  }
188908
189518
  function describesNoPlace(address) {
@@ -188915,16 +189525,16 @@ function describesNoPlace(address) {
188915
189525
  });
188916
189526
  }
188917
189527
  function ticketAttendanceOf(event, definition) {
188918
- const e2 = object10(event);
188919
- const t2 = object10(definition);
188920
- const pricing = object10(t2.pricingMethod);
188921
- const price = object10(pricing.fixedPrice);
188922
- const registration = object10(e2.registration);
189528
+ const e2 = object11(event);
189529
+ const t2 = object11(definition);
189530
+ const pricing = object11(t2.pricingMethod);
189531
+ const price = object11(pricing.fixedPrice);
189532
+ const registration = object11(e2.registration);
188923
189533
  const type2 = text10(registration.type) ?? text10(registration.initialType) ?? text10(e2.eventType);
188924
189534
  const status = text10(e2.status) ?? text10(e2.eventStatus);
188925
189535
  return {
188926
189536
  kind: "eventsTicket",
188927
- location: text10(object10(e2.location).type),
189537
+ location: text10(object11(e2.location).type),
188928
189538
  registration: type2 === "TICKETS" || type2 === "RSVP_AND_TICKETS" ? "TICKETING" : type2,
188929
189539
  eventStatus: status === "SCHEDULED" ? "UPCOMING" : status,
188930
189540
  saleStatus: text10(t2.saleStatus),
@@ -188934,7 +189544,7 @@ function ticketAttendanceOf(event, definition) {
188934
189544
  currency: text10(price.currency)
188935
189545
  };
188936
189546
  }
188937
- function object10(value2) {
189547
+ function object11(value2) {
188938
189548
  return value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
188939
189549
  }
188940
189550
  var ADDRESSLESS_CUSTOM, PHYSICAL_LOCATIONS, ONLINE_LABEL, text10, numeric, boolean3, zeroPrice;
@@ -200265,41 +200875,41 @@ function normalizeWebsiteLinks(nodes2) {
200265
200875
  };
200266
200876
  for (const node of nodes2) {
200267
200877
  for (const path2 of linkFields[node.type ?? ""] ?? []) {
200268
- const parent = object11(path2.slice(0, -1).reduce((value2, key4) => object11(value2)[key4], node));
200878
+ const parent = object12(path2.slice(0, -1).reduce((value2, key4) => object12(value2)[key4], node));
200269
200879
  const key3 = path2[path2.length - 1];
200270
200880
  const holder = { url: parent[key3] };
200271
200881
  normalize5(holder);
200272
200882
  if (typeof holder.url === "string") parent[key3] = holder.url;
200273
200883
  }
200274
200884
  if (Array.isArray(node.textData?.decorations)) for (const decoration of node.textData.decorations) {
200275
- if (object11(decoration).type === "LINK") normalize5(object11(object11(decoration).linkData).link);
200885
+ if (object12(decoration).type === "LINK") normalize5(object12(object12(decoration).linkData).link);
200276
200886
  }
200277
200887
  if (Array.isArray(node.nodes)) changed += normalizeWebsiteLinks(node.nodes);
200278
200888
  }
200279
200889
  return changed;
200280
200890
  }
200281
200891
  function draftDocument(value2) {
200282
- const draft = object11(value2);
200892
+ const draft = object12(value2);
200283
200893
  if (!Array.isArray(draft.blocks) || draft.blocks.length > 5e3) return invalid();
200284
200894
  if (draft.entityMap !== void 0 && (!draft.entityMap || typeof draft.entityMap !== "object" || Array.isArray(draft.entityMap))) return invalid();
200285
- const entities = object11(draft.entityMap);
200895
+ const entities = object12(draft.entityMap);
200286
200896
  const nodes2 = [];
200287
200897
  for (const raw of draft.blocks) {
200288
- const block = object11(raw);
200898
+ const block = object12(raw);
200289
200899
  if (typeof block.text !== "string") return invalid();
200290
200900
  if (block.depth !== void 0 && block.depth !== 0) return unsupported();
200291
200901
  const text13 = block.text;
200292
200902
  const styles = block.inlineStyleRanges ?? [];
200293
200903
  const ranges = block.entityRanges ?? [];
200294
200904
  if (!Array.isArray(styles) || !Array.isArray(ranges) || styles.length + ranges.length > 500) return invalid();
200295
- const spans = [...styles.map((v2) => ({ ...object11(v2), kind: "style" })), ...ranges.map((v2) => ({ ...object11(v2), kind: "entity" }))];
200905
+ const spans = [...styles.map((v2) => ({ ...object12(v2), kind: "style" })), ...ranges.map((v2) => ({ ...object12(v2), kind: "entity" }))];
200296
200906
  for (const span of spans) {
200297
200907
  if (!Number.isInteger(span.offset) || !Number.isInteger(span.length) || Number(span.offset) < 0 || Number(span.length) < 0 || Number(span.offset) + Number(span.length) > text13.length) return invalid();
200298
200908
  }
200299
200909
  if (block.type === "atomic") {
200300
200910
  if (ranges.length !== 1) return unsupported();
200301
- const entity = object11(entities[String(object11(ranges[0]).key)]);
200302
- const data = object11(entity.data);
200911
+ const entity = object12(entities[String(object12(ranges[0]).key)]);
200912
+ const data = object12(entity.data);
200303
200913
  if (entity.type !== "IMAGE" && entity.type !== "wix-draft-plugin-image") return unsupported();
200304
200914
  const url = data.src ?? data.url;
200305
200915
  if (typeof url !== "string" || !url) return invalid();
@@ -200316,9 +200926,9 @@ function draftDocument(value2) {
200316
200926
  if (!["BOLD", "ITALIC", "UNDERLINE", "STRIKETHROUGH"].includes(String(span.style))) return unsupported();
200317
200927
  decorations.push({ type: String(span.style) });
200318
200928
  } else {
200319
- const entity = object11(entities[String(span.key)]);
200320
- if (entity.type !== "LINK" || typeof object11(entity.data).url !== "string") return unsupported();
200321
- decorations.push({ type: "LINK", linkData: { link: { url: object11(entity.data).url } } });
200929
+ const entity = object12(entities[String(span.key)]);
200930
+ if (entity.type !== "LINK" || typeof object12(entity.data).url !== "string") return unsupported();
200931
+ decorations.push({ type: "LINK", linkData: { link: { url: object12(entity.data).url } } });
200322
200932
  }
200323
200933
  }
200324
200934
  runs.push({ type: "TEXT", textData: { text: text13.slice(start, end), decorations } });
@@ -200338,7 +200948,7 @@ function draftDocument(value2) {
200338
200948
  return { nodes: nodes2 };
200339
200949
  }
200340
200950
  function decodeOneAppPage(response, expectedPageId) {
200341
- const dto = object11(response), content = object11(dto.content), body = object11(content.body);
200951
+ const dto = object12(response), content = object12(dto.content), body = object12(content.body);
200342
200952
  if (!isOneAppPageId(expectedPageId) || dto.pageId !== expectedPageId || typeof body.content !== "string" || content.title !== void 0 && typeof content.title !== "string") return invalid();
200343
200953
  const raw = body.content;
200344
200954
  if (richContentOverLimits(raw, null)) return invalid();
@@ -200355,13 +200965,13 @@ function decodeOneAppPage(response, expectedPageId) {
200355
200965
  if (richContentOverLimits(raw, parsed)) return invalid();
200356
200966
  if (contentType === "DRAFTJS") document2 = draftDocument(parsed);
200357
200967
  else {
200358
- if (!Array.isArray(object11(parsed).nodes)) return invalid();
200968
+ if (!Array.isArray(object12(parsed).nodes)) return invalid();
200359
200969
  document2 = parsed;
200360
200970
  }
200361
200971
  } else return unsupported();
200362
200972
  const validNodes = (nodes2) => nodes2.every((value2) => {
200363
- const n2 = object11(value2);
200364
- return typeof n2.type === "string" && n2.type.length > 0 && (n2.type !== "TEXT" || typeof object11(n2.textData).text === "string") && (n2.nodes === void 0 || Array.isArray(n2.nodes) && validNodes(n2.nodes));
200973
+ const n2 = object12(value2);
200974
+ return typeof n2.type === "string" && n2.type.length > 0 && (n2.type !== "TEXT" || typeof object12(n2.textData).text === "string") && (n2.nodes === void 0 || Array.isArray(n2.nodes) && validNodes(n2.nodes));
200365
200975
  });
200366
200976
  if (!validNodes(document2.nodes)) return invalid();
200367
200977
  const normalizedWebsiteLinks = normalizeWebsiteLinks(document2.nodes);
@@ -200387,7 +200997,7 @@ function oneAppPageSection(page, options) {
200387
200997
  documentJson: page.documentJson
200388
200998
  } } };
200389
200999
  }
200390
- var failure, object11, invalid, unsupported, isOneAppPageId;
201000
+ var failure, object12, invalid, unsupported, isOneAppPageId;
200391
201001
  var init_one_app_page = __esm({
200392
201002
  "../../stdlib/flows/screens/src/one-app-page.ts"() {
200393
201003
  init_define_HHP_CATALOG();
@@ -200395,7 +201005,7 @@ var init_one_app_page = __esm({
200395
201005
  failure = (code, message2) => {
200396
201006
  throw Object.assign(new Error(message2), { name: "OneAppPageContentError", code });
200397
201007
  };
200398
- object11 = (v2) => v2 && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
201008
+ object12 = (v2) => v2 && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
200399
201009
  invalid = () => failure("invalid", "The referenced page returned malformed content.");
200400
201010
  unsupported = () => failure("unsupported", "The referenced page uses an unsupported content format.");
200401
201011
  isOneAppPageId = (value2) => typeof value2 === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value2);
@@ -200405,16 +201015,16 @@ var init_one_app_page = __esm({
200405
201015
  // src/one-app/pages.ts
200406
201016
  import { createHash as createHash54 } from "node:crypto";
200407
201017
  function oneAppPagePlacements(raw) {
200408
- const sections = object12(raw.sections);
201018
+ const sections = object13(raw.sections);
200409
201019
  const placements = [];
200410
201020
  const read = (elements, base, layoutItemId) => {
200411
201021
  if (!Array.isArray(elements)) return;
200412
201022
  elements.forEach((value2, arrayIndex) => {
200413
- const ref = object12(value2);
201023
+ const ref = object13(value2);
200414
201024
  if (ref.elementType !== "SECTION" || typeof ref.elementId !== "string") return;
200415
- const section3 = object12(sections[ref.elementId]);
201025
+ const section3 = object13(sections[ref.elementId]);
200416
201026
  if ((section3.sectionDefinitionId ?? section3.section_definition_id) !== "pages_section") return;
200417
- const selected = object12(object12(section3.settings).value).pageId;
201027
+ const selected = object13(object13(section3.settings).value).pageId;
200418
201028
  placements.push({
200419
201029
  sectionId: ref.elementId,
200420
201030
  ...layoutItemId ? { layoutItemId } : {},
@@ -200425,8 +201035,8 @@ function oneAppPagePlacements(raw) {
200425
201035
  });
200426
201036
  });
200427
201037
  };
200428
- for (const [id, layout] of Object.entries(object12(raw.layoutItems))) read(object12(layout).elements, `/layoutItems/${pointer(id)}/elements`, id);
200429
- read(object12(raw.businessProfile).elements, "/businessProfile/elements");
201038
+ for (const [id, layout] of Object.entries(object13(raw.layoutItems))) read(object13(layout).elements, `/layoutItems/${pointer(id)}/elements`, id);
201039
+ read(object13(raw.businessProfile).elements, "/businessProfile/elements");
200430
201040
  return placements;
200431
201041
  }
200432
201042
  async function collectOneAppPages(raw, source, read) {
@@ -200457,13 +201067,13 @@ async function collectOneAppPages(raw, source, read) {
200457
201067
  }
200458
201068
  return { version: 1, source, placements, documents: [...documents.values()] };
200459
201069
  }
200460
- var object12, pointer, hash2, ONE_APP_PAGES_BASE;
201070
+ var object13, pointer, hash2, ONE_APP_PAGES_BASE;
200461
201071
  var init_pages = __esm({
200462
201072
  "src/one-app/pages.ts"() {
200463
201073
  init_define_HHP_CATALOG();
200464
201074
  init_one_app_page();
200465
201075
  init_errors2();
200466
- object12 = (v2) => v2 && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
201076
+ object13 = (v2) => v2 && typeof v2 === "object" && !Array.isArray(v2) ? v2 : {};
200467
201077
  pointer = (s2) => s2.replaceAll("~", "~0").replaceAll("/", "~1");
200468
201078
  hash2 = (s2) => createHash54("sha256").update(s2).digest("hex");
200469
201079
  ONE_APP_PAGES_BASE = "https://apps.wix.com/social-content/api/v1/pages/";
@@ -201177,9 +201787,13 @@ var init_header_badges_cli = __esm({
201177
201787
  // src/one-app/payment-review.ts
201178
201788
  import { readFileSync as readFileSync136 } from "node:fs";
201179
201789
  import { join as join126, resolve as resolve88 } from "node:path";
201790
+ function preservesUnverifiedFlow(flow) {
201791
+ const checkout = obj6(flow.checkout);
201792
+ return flow.payment === "online-paid" && obj6(flow.readiness).state === "unverified" && checkout.state === "supported" && text12(checkout.evidence) && (flow.decision === void 0 || obj6(flow.decision).action === "proceed");
201793
+ }
201180
201794
  function initialPaymentReview(metaSiteId) {
201181
201795
  return {
201182
- schemaVersion: 1,
201796
+ schemaVersion: 2,
201183
201797
  metaSiteId,
201184
201798
  inventoryReviewed: false,
201185
201799
  inventoryEvidence: "",
@@ -201194,7 +201808,7 @@ function initialPaymentReview(metaSiteId) {
201194
201808
  function paymentReviewIssues(value2, metaSiteId) {
201195
201809
  const review = obj6(value2);
201196
201810
  const issues = [];
201197
- if (review.schemaVersion !== 1 || !sameSite(review.metaSiteId, metaSiteId)) issues.push("Review must name the collected site and schemaVersion 1.");
201811
+ if (review.schemaVersion !== 1 && review.schemaVersion !== 2 || !sameSite(review.metaSiteId, metaSiteId)) issues.push("Review must name the collected site and schemaVersion 2 (or 1 for a legacy review).");
201198
201812
  if (review.inventoryReviewed !== true || !text12(review.inventoryEvidence)) issues.push("Review the source actions and live read-only catalog/payment options, including free and offline flows, before generation.");
201199
201813
  if (!Array.isArray(review.flows)) return [...issues, "List the reviewed flows (an empty list requires inventory evidence that there are no purchase flows)."];
201200
201814
  if (review.flows.length === 0 && review.noPurchaseFlows !== true) issues.push("An empty inventory requires an explicit noPurchaseFlows: true finding supported by inventoryEvidence.");
@@ -201213,11 +201827,15 @@ function paymentReviewIssues(value2, metaSiteId) {
201213
201827
  }
201214
201828
  const readiness = obj6(flow.readiness);
201215
201829
  const decision = obj6(flow.decision);
201830
+ const checkout = obj6(flow.checkout);
201831
+ if ((review.schemaVersion === 2 || flow.checkout !== void 0) && (typeof checkout.state !== "string" || !["supported", "unsupported", "unverified"].includes(checkout.state) || !text12(checkout.evidence))) issues.push(`${label3} needs supported, unsupported or unverified target checkout compatibility with evidence.`);
201216
201832
  if (!sameSite(readiness.metaSiteId, metaSiteId)) issues.push(`${label3} readiness must name the collected site; evidence from another site cannot authorize checkout.`);
201217
201833
  if (typeof readiness.state !== "string" || !["ready", "missing", "unverified"].includes(readiness.state) || !text12(readiness.evidence)) issues.push(`${label3} needs ready, missing or unverified readiness with site-bound evidence.`);
201218
- if (readiness.state === "ready" && decision.action === "proceed") continue;
201834
+ const checkoutProblem = flow.checkout !== void 0 && checkout.state !== "supported";
201835
+ if (!checkoutProblem && readiness.state === "ready" && decision.action === "proceed") continue;
201836
+ if (preservesUnverifiedFlow(flow)) continue;
201219
201837
  if (typeof decision.action !== "string" || !["retain", "hide", "connect-provider"].includes(decision.action) || !text12(decision.instruction)) {
201220
- issues.push(`${label3} needs the owner's explicit connect-provider, retain or hide decision; do not choose for them.`);
201838
+ issues.push(checkoutProblem ? `${label3} needs an owner decision for the target checkout gap: retain with an explanation or hide the affected interaction.` : readiness.state === "unverified" ? `${label3} needs reviewed target checkout support or an existing owner decision; unknown payment status alone does not require reconnecting payments.` : `${label3} needs the owner's explicit connect-provider, retain or hide decision; do not choose for them.`);
201221
201839
  continue;
201222
201840
  }
201223
201841
  if (decision.action === "connect-provider") issues.push(`${label3} is waiting for owner setup and a new readiness review; do not generate its paid UI yet.`);
@@ -201252,7 +201870,12 @@ function runPaymentReview(args, io2) {
201252
201870
  const review = JSON.parse(readFileSync136(join126(evidenceDir, "payment-review.json"), "utf8"));
201253
201871
  const issues = paymentReviewIssues(review, metaSiteId);
201254
201872
  if (issues.length) return fail7("payment_decision_required", issues, 1);
201255
- io2.log(JSON.stringify({ ok: true, stage: "payment-decisions-reviewed", evidenceDir, verification: "Recorded evidence and decisions checked; merchant readiness is not independently verified by this command." }));
201873
+ const warnings = obj6(review).flows.map(obj6).filter(preservesUnverifiedFlow).map((flow) => ({
201874
+ code: "payment_readiness_unverified",
201875
+ flowId: flow.id,
201876
+ message: "Payment setup could not be verified. Preserve the existing purchase flow with its supported checkout; do not claim payments are disconnected."
201877
+ }));
201878
+ io2.log(JSON.stringify({ ok: true, stage: "payment-decisions-reviewed", evidenceDir, warnings, verification: "Recorded evidence and decisions checked; merchant readiness is not independently verified by this command." }));
201256
201879
  return 0;
201257
201880
  } catch {
201258
201881
  return fail7("payment_review_unreadable", ["Read the collected manifest and source evidence, then prepare payment-review.json for that site."], 1);
@@ -201272,27 +201895,27 @@ var init_payment_review = __esm({
201272
201895
 
201273
201896
  // src/one-app/navigation.ts
201274
201897
  function sourceNavigationKind(raw) {
201275
- const navigation = object13(raw.navigation);
201276
- if (object13(navigation.settings).drawerMode === true) return "side-menu";
201898
+ const navigation = object14(raw.navigation);
201899
+ if (object14(navigation.settings).drawerMode === true) return "side-menu";
201277
201900
  const entries = array4(navigation.bottomTabs);
201278
201901
  if (entries.length > 1) return "bottom-tabs";
201279
- const screens = object13(raw.screens);
201280
- const screenId = string6(object13(entries[0]).screenId);
201281
- const screen = screenId && Object.hasOwn(screens, screenId) ? object13(screens[screenId]) : {};
201282
- return object13(screen.layout).type === "TOP_TABS" ? "top-tabs" : "single";
201902
+ const screens = object14(raw.screens);
201903
+ const screenId = string6(object14(entries[0]).screenId);
201904
+ const screen = screenId && Object.hasOwn(screens, screenId) ? object14(screens[screenId]) : {};
201905
+ return object14(screen.layout).type === "TOP_TABS" ? "top-tabs" : "single";
201283
201906
  }
201284
201907
  function planNavigation(raw, policy = "bottom-tabs") {
201285
- const navigation = object13(raw.navigation);
201908
+ const navigation = object14(raw.navigation);
201286
201909
  const entries = array4(navigation.bottomTabs);
201287
- const screens = object13(raw.screens);
201288
- const layouts = object13(raw.layoutItems);
201910
+ const screens = object14(raw.screens);
201911
+ const layouts = object14(raw.layoutItems);
201289
201912
  const kind = sourceNavigationKind(raw);
201290
201913
  const warnings = [];
201291
- const firstEntry = object13(entries[0]);
201914
+ const firstEntry = object14(entries[0]);
201292
201915
  const rootScreenId = string6(firstEntry.screenId) ?? null;
201293
- const rootScreen = rootScreenId && Object.hasOwn(screens, rootScreenId) ? object13(screens[rootScreenId]) : {};
201294
- const rootLayout = object13(rootScreen.layout);
201295
- const settings = object13(navigation.settings);
201916
+ const rootScreen = rootScreenId && Object.hasOwn(screens, rootScreenId) ? object14(screens[rootScreenId]) : {};
201917
+ const rootLayout = object14(rootScreen.layout);
201918
+ const settings = object14(navigation.settings);
201296
201919
  const appInstance = string6(raw.appInstance) ?? null;
201297
201920
  const source = {
201298
201921
  kind,
@@ -201304,8 +201927,8 @@ function planNavigation(raw, policy = "bottom-tabs") {
201304
201927
  const next = "Build navigation from this plan with himi docs one-app-to-himi-app. Report every warning; the plan does not replace the source graph.";
201305
201928
  if (kind === "bottom-tabs") {
201306
201929
  entries.forEach((value2, index) => {
201307
- const id = string6(object13(value2).screenId);
201308
- if (id && Object.hasOwn(screens, id) && object13(object13(screens[id]).layout).type === "TOP_TABS") {
201930
+ const id = string6(object14(value2).screenId);
201931
+ if (id && Object.hasOwn(screens, id) && object14(object14(screens[id]).layout).type === "TOP_TABS") {
201309
201932
  warnings.push({ code: "nested_top_tabs", pointer: `/screens/${part3(id)}/layout/type`, reference: `/navigation/bottomTabs/${index}` });
201310
201933
  }
201311
201934
  });
@@ -201316,14 +201939,14 @@ function planNavigation(raw, policy = "bottom-tabs") {
201316
201939
  const tabs = [];
201317
201940
  const hiddenPages = [];
201318
201941
  array4(rootLayout.items).forEach((value2, index) => {
201319
- const layoutItemId = string6(object13(value2).layoutItemId);
201942
+ const layoutItemId = string6(object14(value2).layoutItemId);
201320
201943
  const itemPointer = `${pointer3}/${index}`;
201321
201944
  if (!layoutItemId || !Object.hasOwn(layouts, layoutItemId)) {
201322
201945
  warnings.push({ code: "missing_reference", pointer: itemPointer, ...layoutItemId ? { reference: layoutItemId } : {} });
201323
201946
  return;
201324
201947
  }
201325
- const layout = object13(layouts[layoutItemId]);
201326
- if (object13(layout.settings).hideFromNavigation === true) {
201948
+ const layout = object14(layouts[layoutItemId]);
201949
+ if (object14(layout.settings).hideFromNavigation === true) {
201327
201950
  hiddenPages.push({ layoutItemId, pointer: itemPointer });
201328
201951
  return;
201329
201952
  }
@@ -201368,11 +201991,11 @@ function planNavigation(raw, policy = "bottom-tabs") {
201368
201991
  next
201369
201992
  };
201370
201993
  }
201371
- var object13, array4, string6, part3, TOP_TABS_POLICIES, MAX_BAR_TABS;
201994
+ var object14, array4, string6, part3, TOP_TABS_POLICIES, MAX_BAR_TABS;
201372
201995
  var init_navigation = __esm({
201373
201996
  "src/one-app/navigation.ts"() {
201374
201997
  init_define_HHP_CATALOG();
201375
- object13 = (value2) => value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
201998
+ object14 = (value2) => value2 !== null && typeof value2 === "object" && !Array.isArray(value2) ? value2 : {};
201376
201999
  array4 = (value2) => Array.isArray(value2) ? value2 : [];
201377
202000
  string6 = (value2) => typeof value2 === "string" && value2 ? value2 : void 0;
201378
202001
  part3 = (value2) => value2.replaceAll("~", "~0").replaceAll("/", "~1");
@@ -201933,7 +202556,7 @@ validate-payments checks site-bound payment evidence and explicit paid-flow deci
201933
202556
  warnings: collected.warnings,
201934
202557
  next: [
201935
202558
  `Continue now in this agent session. Read \`himi docs ${ONE_APP_WORKFLOW}\` and the migration manifest at ${artifacts["manifest.json"]}.`,
201936
- "Use the source as evidence and user-prompt.txt as the user's requested changes. Before scaffolding, review actual payment intents and site readiness in payment-review.json, resolve paid-flow decisions with the owner, and run one-app validate-payments. Then generate, validate and publish a hosted draft within the recorded scope.",
202559
+ "Use the source as evidence and user-prompt.txt as the user's requested changes. Before scaffolding, review actual payment intents, site binding and target checkout support in payment-review.json. Preserve supported existing paid flows when payment readiness is unverified; record the uncertainty without asking the owner to reconnect payments. Resolve confirmed payment setup or checkout gaps with the owner, honor existing decisions, and run one-app validate-payments. Then generate, validate and publish a hosted draft within the recorded scope.",
201937
202560
  "This command collected the source. A coding agent must perform the remaining workflow; no model or build was launched by the command."
201938
202561
  ]
201939
202562
  }).trimEnd());
@@ -207168,11 +207791,22 @@ __export(run_exports2, {
207168
207791
  isFidelityComment: () => isFidelityComment,
207169
207792
  prCommentBody: () => prCommentBody,
207170
207793
  rowStatus: () => rowStatus,
207794
+ rtlVariant: () => rtlVariant,
207171
207795
  runFidelity: () => runFidelity,
207172
207796
  runId: () => runId
207173
207797
  });
207174
207798
  import { mkdirSync as mkdirSync55, writeFileSync as writeFileSync59 } from "node:fs";
207175
207799
  import { basename as basename30, join as join134 } from "node:path";
207800
+ function rtlVariant(config) {
207801
+ const locale = config?.locale;
207802
+ const pinned = locale?.pin === true && typeof locale.default === "string" && coerceSupportedLocale(locale.default) !== void 0;
207803
+ const tags = [locale?.default, ...!pinned && Array.isArray(locale?.translations) ? locale.translations : []].filter((t2) => typeof t2 === "string");
207804
+ if (pinned && !isRTL(locale.default)) return { skipped: `the app pins the left-to-right language ${locale.default} (config.ts locale.pin)` };
207805
+ const rtl = tags.filter((t2) => isRTL(t2));
207806
+ const shown2 = rtl.map((t2) => coerceSupportedLocale(t2)).find((t2) => t2 !== void 0);
207807
+ if (shown2) return { locale: shown2 };
207808
+ return { skipped: rtl.length ? `the app's right-to-left language (${rtl.join(", ")}) is not one the Player supports` : "the app ships no right-to-left language (config.ts locale.default / locale.translations)" };
207809
+ }
207176
207810
  function runId(now = /* @__PURE__ */ new Date()) {
207177
207811
  return now.toISOString().replace(/[-:]/g, "").replace(/\..*/, "").replace("T", "-");
207178
207812
  }
@@ -207217,6 +207851,14 @@ async function runFidelity(root, opts = {}) {
207217
207851
  const rows = [];
207218
207852
  try {
207219
207853
  for (const variant of variants) {
207854
+ if (variant === "rtl" && opts.rtl && "skipped" in opts.rtl) {
207855
+ const reason = opts.rtl.skipped;
207856
+ for (const screen of screens) {
207857
+ const row2 = { screen, variant, frames: [{ surface: "web", screen, variant, skipped: { reason } }], scores: [], judge: skippedJudge(reason) };
207858
+ rows.push({ ...row2, ...rowStatus(row2, fidelityThresholds(manifest2, screen)) });
207859
+ }
207860
+ continue;
207861
+ }
207220
207862
  let webFrames;
207221
207863
  try {
207222
207864
  webFrames = await web(root, variant, framesDir, screens);
@@ -207302,6 +207944,7 @@ var init_run2 = __esm({
207302
207944
  init_judge();
207303
207945
  init_score();
207304
207946
  init_strip();
207947
+ init_locale();
207305
207948
  NATIVE_MASK = { top: 60, bottom: 0 };
207306
207949
  worst = (rows) => rows.some((r3) => r3.status === "fail") ? "fail" : rows.some((r3) => r3.status === "warn") ? "warn" : "pass";
207307
207950
  skippedJudge = (reason) => ({ verdict: "cannot_tell", design: "cannot_tell", parity: "cannot_tell", findings: [], confidence: "low", reason });
@@ -207698,6 +208341,16 @@ async function fidelityCommand(ctx) {
207698
208341
  return 2;
207699
208342
  }
207700
208343
  }
208344
+ let rtl;
208345
+ if (!variants.length || variants.includes("rtl")) {
208346
+ const { rtlVariant: rtlVariant2 } = await Promise.resolve().then(() => (init_run2(), run_exports2));
208347
+ const { loadAppConfigModule: loadAppConfigModule2 } = await Promise.resolve().then(() => (init_app_config_loader(), app_config_loader_exports));
208348
+ try {
208349
+ rtl = rtlVariant2(await loadAppConfigModule2(dir));
208350
+ } catch (e2) {
208351
+ rtl = { skipped: `config.ts did not load: ${e2.message.split("\n")[0]}` };
208352
+ }
208353
+ }
207701
208354
  let plane;
207702
208355
  let native;
207703
208356
  if (flags["no-native"] === true) native = false;
@@ -207719,7 +208372,7 @@ async function fidelityCommand(ctx) {
207719
208372
  return 1;
207720
208373
  }
207721
208374
  }
207722
- const capture = nativeCapture2(devices, { appId: app, ...release2 ? { release: release2 } : {}, ...plane ? { serveOrigin: plane.origin } : {} });
208375
+ const capture = nativeCapture2(devices, { appId: app, ...release2 ? { release: release2 } : {}, ...plane ? { serveOrigin: plane.origin } : {}, ...rtl && "locale" in rtl ? { rtlLanguage: rtl.locale } : {} });
207723
208376
  native = capture;
207724
208377
  const onSignal = () => {
207725
208378
  void capture.restore().finally(() => plane?.close()).finally(() => process.exit(130));
@@ -207729,7 +208382,7 @@ async function fidelityCommand(ctx) {
207729
208382
  }
207730
208383
  let report4;
207731
208384
  try {
207732
- report4 = await runFidelity2(dir, { judgeDir, screens: list(flags.screen), variants, ...native !== void 0 ? { native } : {} });
208385
+ report4 = await runFidelity2(dir, { judgeDir, screens: list(flags.screen), variants, ...native !== void 0 ? { native } : {}, ...rtl ? { rtl } : {} });
207733
208386
  } catch (e2) {
207734
208387
  const code = e2.code;
207735
208388
  if (code === "fidelity_not_hhp" || code === "fidelity_unknown_screen") {