@seatlayer/core 0.79.0 → 0.80.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 (106) hide show
  1. package/dist/ar-EZLC3TID.js +1 -0
  2. package/dist/be-PNW4HSCT.js +1 -0
  3. package/dist/bg-WWTVMKHN.js +1 -0
  4. package/dist/ca-7CQTBZHV.js +1 -0
  5. package/dist/chunk-7LMW7QTP.js +1 -0
  6. package/dist/chunk-C7MR6CFC.js +1 -0
  7. package/dist/{chunk-SGYNM3SG.js → chunk-GQLJAU75.js} +1 -1
  8. package/dist/{chunk-SSBMTFAV.js → chunk-SKMHD76O.js} +1 -1
  9. package/dist/{chunk-FGMGDTMR.js → chunk-YXOSJLK7.js} +1 -1
  10. package/dist/core/chart-ops/index.js +1 -1
  11. package/dist/core/inventory/index.cjs +1 -1
  12. package/dist/core/inventory/index.d.cts +2 -2
  13. package/dist/core/inventory/index.d.ts +2 -2
  14. package/dist/core/inventory/index.js +1 -1
  15. package/dist/core/layout/index.d.cts +2 -2
  16. package/dist/core/layout/index.d.ts +2 -2
  17. package/dist/core/quality/index.cjs +1 -1
  18. package/dist/core/quality/index.d.cts +34 -3
  19. package/dist/core/quality/index.d.ts +34 -3
  20. package/dist/core/quality/index.js +1 -1
  21. package/dist/core/sections/index.d.cts +1 -1
  22. package/dist/core/sections/index.d.ts +1 -1
  23. package/dist/cs-CO6IPOND.js +1 -0
  24. package/dist/{cy-NF6Y2W6J.js → cy-JSKIEF7V.js} +1 -1
  25. package/dist/da-XNN2TLET.js +1 -0
  26. package/dist/de-T7S7DY4P.js +1 -0
  27. package/dist/el-SQNQJ6N5.js +1 -0
  28. package/dist/es-WIEMVIPM.js +1 -0
  29. package/dist/et-AJ666JLF.js +1 -0
  30. package/dist/fa-PA22MNZD.js +1 -0
  31. package/dist/fi-OIKV7BZB.js +1 -0
  32. package/dist/fr-K2BPY3ZG.js +1 -0
  33. package/dist/he-NB5S5QOD.js +1 -0
  34. package/dist/hr-HB2ZBWCL.js +1 -0
  35. package/dist/hu-DXONGHET.js +1 -0
  36. package/dist/index.cjs +1 -1
  37. package/dist/index.d.cts +58 -78
  38. package/dist/index.d.ts +58 -78
  39. package/dist/index.js +1 -1
  40. package/dist/it-7YYWICOD.js +1 -0
  41. package/dist/ja-ROSYSJVY.js +1 -0
  42. package/dist/ku-3VHLRVJY.js +1 -0
  43. package/dist/localeLoaders-42CYOXB5.js +1 -0
  44. package/dist/lt-KOUZG2YJ.js +1 -0
  45. package/dist/{lv-OORJZFNN.js → lv-JOK7LYAH.js} +1 -1
  46. package/dist/nl-H7NAUHTK.js +1 -0
  47. package/dist/no-OJ35WOND.js +1 -0
  48. package/dist/pl-FD5NFT6Y.js +1 -0
  49. package/dist/{pt-5DSXBZNH.js → pt-BOCUN4SZ.js} +1 -1
  50. package/dist/{renderedQuality-C4-5Oy6-.d.ts → renderedQuality-DObXwisG.d.ts} +1 -1
  51. package/dist/{renderedQuality-CHAf5J4i.d.cts → renderedQuality-Dz-WTrRc.d.cts} +1 -1
  52. package/dist/{renderer-CuLIU7z1.d.cts → renderer-BjuHQ0bx.d.cts} +11 -1
  53. package/dist/{renderer-Bx0ucRf6.d.ts → renderer-i_mthe5Z.d.ts} +11 -1
  54. package/dist/ro-Z44LTOXH.js +1 -0
  55. package/dist/ru-J4XWPJR6.js +1 -0
  56. package/dist/sk-4O4XNGR6.js +1 -0
  57. package/dist/sl-AHDPSHB6.js +1 -0
  58. package/dist/sr-B5PADXMB.js +1 -0
  59. package/dist/sv-KZCOVO3R.js +1 -0
  60. package/dist/{tableSizing-Dr-ksQTq.d.ts → tableSizing-BpRvVdXK.d.ts} +1 -1
  61. package/dist/{tableSizing-tDaLWj54.d.cts → tableSizing-DnSAiaXL.d.cts} +1 -1
  62. package/dist/{ticketRestrictions-7HrT6IQM.d.ts → ticketRestrictions-BijtF-Lw.d.ts} +46 -6
  63. package/dist/{ticketRestrictions-B4eT6vEy.d.cts → ticketRestrictions-CvaHRHti.d.cts} +46 -6
  64. package/dist/tr-E5X266RM.js +1 -0
  65. package/dist/uk-6RR5RHIY.js +1 -0
  66. package/dist/view3d/index.d.cts +1 -1
  67. package/dist/view3d/index.d.ts +1 -1
  68. package/dist/view3d/index.js +1 -1
  69. package/dist/view3d/scene/scene.worker.js +1 -1
  70. package/dist/{zh-Hans-WG6IMHH2.js → zh-Hans-GQWICG2Q.js} +1 -1
  71. package/dist/{zh-Hant-I55RLM6N.js → zh-Hant-DTRJKLTS.js} +1 -1
  72. package/package.json +1 -1
  73. package/dist/ar-MBXKQCHF.js +0 -1
  74. package/dist/be-ZUVYQYAI.js +0 -1
  75. package/dist/bg-62YMMGP4.js +0 -1
  76. package/dist/ca-6CX2TCFE.js +0 -1
  77. package/dist/chunk-O5UH442K.js +0 -1
  78. package/dist/chunk-XD2P4ZS4.js +0 -1
  79. package/dist/cs-HPMCEWCG.js +0 -1
  80. package/dist/da-22D72GSM.js +0 -1
  81. package/dist/de-RPFLEDOZ.js +0 -1
  82. package/dist/el-FUQRGODC.js +0 -1
  83. package/dist/es-MCE7ZWGC.js +0 -1
  84. package/dist/et-GS4LQD5N.js +0 -1
  85. package/dist/fa-5MNQP3RH.js +0 -1
  86. package/dist/fi-5A22IZ6C.js +0 -1
  87. package/dist/fr-QSMP5CON.js +0 -1
  88. package/dist/he-ET4VHFSC.js +0 -1
  89. package/dist/hr-CEQPLBXQ.js +0 -1
  90. package/dist/hu-NWXXZPCO.js +0 -1
  91. package/dist/it-LJJQ32WS.js +0 -1
  92. package/dist/ja-JH7SZMXQ.js +0 -1
  93. package/dist/ku-ZEL3JYZ3.js +0 -1
  94. package/dist/localeLoaders-CG4DAMUW.js +0 -1
  95. package/dist/lt-X4GMJWOB.js +0 -1
  96. package/dist/nl-EIWNKXHE.js +0 -1
  97. package/dist/no-KE42FJWD.js +0 -1
  98. package/dist/pl-ATCAGIF2.js +0 -1
  99. package/dist/ro-ESUBYINR.js +0 -1
  100. package/dist/ru-5SYA53AZ.js +0 -1
  101. package/dist/sk-QHQ7T2BK.js +0 -1
  102. package/dist/sl-OQHYGFQ7.js +0 -1
  103. package/dist/sr-VOVDWZBT.js +0 -1
  104. package/dist/sv-II3AGEJF.js +0 -1
  105. package/dist/tr-EZHEWRQG.js +0 -1
  106. package/dist/uk-V3LWALME.js +0 -1
@@ -1,7 +1,7 @@
1
1
  import { P as Point, A as AccessibilityType, C as ChartDoc, R as RowObject } from '../../types-eVmh2-Yn.cjs';
2
- import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-CuLIU7z1.cjs';
2
+ import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-BjuHQ0bx.cjs';
3
3
  export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-BR7noBOD.cjs';
4
- export { C as ClientInventoryModelVersion, a as CompanionSelectionIssue, G as GroupedTableBookingMode, b as GroupedTableInventoryUnit, c as GroupedTableProjectionError, M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, e as TicketSelection, f as TicketSelectionIssue, g as TicketTierResolution, h as applicableTicketTiers, i as companionSelectionIssue, j as gaAreasOf, k as gaInventorySegments, l as gaUnitLabel, m as gaUnitLabels, n as groupedTableInventory, o as growJoinedGAInventory, p as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, q as ticketSelectionIssue, s as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-B4eT6vEy.cjs';
4
+ export { C as ClientInventoryModelVersion, a as CompanionSelectionIssue, G as GroupedTableBookingMode, b as GroupedTableInventoryUnit, c as GroupedTableProjectionError, M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, R as RestrictionChartDoc, e as RestrictionSeat, T as TicketOptionApplicabilityIssue, f as TicketSelection, g as TicketSelectionIssue, h as TicketSelectionOptions, i as TicketTierResolution, j as applicableTicketTiers, k as companionSelectionIssue, l as gaAreasOf, m as gaInventorySegments, n as gaUnitLabel, o as gaUnitLabels, p as groupedTableInventory, q as growJoinedGAInventory, r as isFullChartDoc, s as isGaUnitLabel, t as resolveTicketTierForSeat, u as ticketOptionNotApplicableIssue, v as ticketSelectionIssue, w as ticketTierAppliesToSeat, x as validGAInventorySegments } from '../../ticketRestrictions-CvaHRHti.cjs';
5
5
 
6
6
  /**
7
7
  * Best-available seat selection — a PURE, fully unit-testable ranking function.
@@ -1,7 +1,7 @@
1
1
  import { P as Point, A as AccessibilityType, C as ChartDoc, R as RowObject } from '../../types-eVmh2-Yn.js';
2
- import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-Bx0ucRf6.js';
2
+ import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-i_mthe5Z.js';
3
3
  export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-CZRNxr1T.js';
4
- export { C as ClientInventoryModelVersion, a as CompanionSelectionIssue, G as GroupedTableBookingMode, b as GroupedTableInventoryUnit, c as GroupedTableProjectionError, M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, e as TicketSelection, f as TicketSelectionIssue, g as TicketTierResolution, h as applicableTicketTiers, i as companionSelectionIssue, j as gaAreasOf, k as gaInventorySegments, l as gaUnitLabel, m as gaUnitLabels, n as groupedTableInventory, o as growJoinedGAInventory, p as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, q as ticketSelectionIssue, s as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-7HrT6IQM.js';
4
+ export { C as ClientInventoryModelVersion, a as CompanionSelectionIssue, G as GroupedTableBookingMode, b as GroupedTableInventoryUnit, c as GroupedTableProjectionError, M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, R as RestrictionChartDoc, e as RestrictionSeat, T as TicketOptionApplicabilityIssue, f as TicketSelection, g as TicketSelectionIssue, h as TicketSelectionOptions, i as TicketTierResolution, j as applicableTicketTiers, k as companionSelectionIssue, l as gaAreasOf, m as gaInventorySegments, n as gaUnitLabel, o as gaUnitLabels, p as groupedTableInventory, q as growJoinedGAInventory, r as isFullChartDoc, s as isGaUnitLabel, t as resolveTicketTierForSeat, u as ticketOptionNotApplicableIssue, v as ticketSelectionIssue, w as ticketTierAppliesToSeat, x as validGAInventorySegments } from '../../ticketRestrictions-BijtF-Lw.js';
5
5
 
6
6
  /**
7
7
  * Best-available seat selection — a PURE, fully unit-testable ranking function.
@@ -1 +1 @@
1
- import{a as it,b as st,c as ct,d as lt,e as ut,f as pt,g as ft,h as mt,i as yt,j as dt,k as ht}from"../../chunk-O5UH442K.js";import{a as bt,b as xt,c as Mt,d as gt,e as wt,f as B,h as N}from"../../chunk-FGMGDTMR.js";import"../../chunk-BT2KJXQC.js";import"../../chunk-XD2P4ZS4.js";import"../../chunk-QLDV5ZGA.js";import{a as H,b as V,c as Z,d as tt,e as et,f as ot,g as rt,h as nt,i as at}from"../../chunk-Q3U3F4YJ.js";import"../../chunk-WXGW2SYC.js";import{Ea as S,Ga as v,Ha as P,I as O,Ja as j,Ka as _,Pa as I,x as R}from"../../chunk-24O23MNB.js";import"../../chunk-JBOTRSMY.js";import"../../chunk-CRCGO52K.js";function g(t){return t.floors?.length?t.floors.flatMap(e=>e.objects):t.objects}function k(t){return g(t).reduce((e,r)=>r.type==="row"?e+S(r):r.type==="table"?e+j(r):r.type==="gaArea"?e+Math.max(0,Math.floor(r.capacity)):r.type==="booth"?e+1:e,0)}function St(t){let e={};for(let o of t.categories??[])e[o.key]=0;let r=(o,n)=>{n>0&&(e[o]=(e[o]??0)+n)};for(let o of g(t))if(o.type==="row")for(let n of v(o))r(n.categoryKey,1);else if(o.type==="table")if(o.bookAsWhole||o.variableOccupancy)r(o.categoryKey,Math.max(0,Math.round(o.seatCount)));else for(let n of _(o))r(n.categoryKey,1);else o.type==="gaArea"?r(o.categoryKey,Math.max(0,Math.floor(o.capacity))):o.type==="booth"&&r(o.categoryKey,1);return e}function z(t){if(!t.template)return null;let e=g(t),r=e.filter(u=>u.type==="row"||u.type==="table"||u.type==="gaArea");if(!r.length)return null;let n=e.filter(u=>u.type==="booth").length+r.reduce((u,f)=>u+(f.type==="table"?2:1),0),i=k(t),c=Math.max(n+1,Math.min(5e4,i*4)),l=[.5,1,1.5,2].map(u=>O(Math.round(i*u),n,c));return{family:t.template.family,display:t.template.family.replace(/-/g," ").replace(/\b\w/g,u=>u.toUpperCase()),min:n,max:c,presets:["S","M","L","XL"].map((u,f)=>({size:u,seats:l[f]}))}}function A(t){let e=v(t);return e.length?R(e):{...t.origin}}function Pt(t,e){let r=z(t);if(!r)return structuredClone(t);let o=structuredClone(t),n=g(o),i=n.filter(a=>a.type==="row"||a.type==="table"||a.type==="gaArea"),c=n.filter(a=>a.type==="booth").length,l=Math.max(r.min,Math.min(r.max,Math.round(e))),u=l-c,f=i.map((a,s)=>{let m=a.type==="gaArea"?Math.max(0,Math.floor(a.capacity)):a.seatCount,x=a.type==="table"?2:1;return{object:a,index:s,current:m,minimum:x,value:x,fraction:0}}),K=f.reduce((a,s)=>a+s.minimum,0),w=Math.max(0,u-K),L=f.reduce((a,s)=>a+Math.max(1,s.current-s.minimum),0);for(let a of f){let s=w*Math.max(1,a.current-a.minimum)/L,m=Math.floor(s);a.value+=m,a.fraction=s-m}w=u-f.reduce((a,s)=>a+s.value,0),f.sort((a,s)=>s.fraction-a.fraction||a.index-s.index);for(let a=0;a<w;a++)f[a%f.length].value++;f.sort((a,s)=>a.index-s.index);for(let a of f)if(a.object.type==="row"){let s=A(a.object);a.object.seatCount=a.value;let m=A(a.object);a.object.origin.x+=s.x-m.x,a.object.origin.y+=s.y-m.y}else if(a.object.type==="table"){let s=a.object;if(s.seatCountsBySide){let m=["top","bottom","left","right"],x=P(s),F=m.reduce((p,y)=>p+x[y],0)||1,d=m.map((p,y)=>{let C=a.value*x[p]/F;return{side:p,index:y,value:Math.floor(C),fraction:C-Math.floor(C)}}),X=a.value-d.reduce((p,y)=>p+y.value,0);d.sort((p,y)=>y.fraction-p.fraction||p.index-y.index);for(let p=0;p<X;p++)d[p%d.length].value+=1;d.sort((p,y)=>p.index-y.index),s.seatCountsBySide={top:d[0].value,bottom:d[1].value,left:d[2].value,right:d[3].value},s.sides=m.filter(p=>s.seatCountsBySide[p]>0)}s.seatCount=a.value,s.overrides&&(s.overrides=s.overrides.filter(m=>m.index<a.value),s.overrides.length||delete s.overrides)}else a.object.capacity=a.value;return o.floors?.length&&(o.objects=o.floors[0].objects),o.template={family:o.template.family,targetSeats:l},o=N(o).doc,o.template={family:t.template.family,targetSeats:k(o)},o}var W=1,T=100;function J(t,e){if(!Number.isInteger(e)||e<W||e>T)return null;let r=t.rotation*Math.PI/180,o={x:Math.cos(r),y:Math.sin(r)},n={x:-o.y,y:o.x};return Array.from({length:e},(i,c)=>{let l=t.style==="intertwined"&&c%2===1?t.seatSpacing/2:0;return{type:"row",id:`__block_preview_${c}`,label:"",origin:{x:t.origin.x+n.x*c*t.rowGap+o.x*l,y:t.origin.y+n.y*c*t.rowGap+o.y*l},rotation:t.rotation,curve:t.curve,seatCount:t.seatsPerRow,seatSpacing:t.seatSpacing,categoryKey:"__preview__"}})}function G(t,e=t.rowCount){let r=J(t,e);return r?.length?I(r[r.length-1]):null}function It(t,e){if(!Number.isFinite(e.x)||!Number.isFinite(e.y)||t.rowGap<=0)return null;let r=G(t,1);if(!r)return null;let o=t.rotation*Math.PI/180,n={x:-Math.sin(o),y:Math.cos(o)},i=(e.x-r.x)*n.x+(e.y-r.y)*n.y,c=Math.max(W,Math.min(T,Math.round(i/t.rowGap)+1)),l=G(t,c);return l?{rowCount:c,edgePoint:l}:null}function Bt(t,e){return t.length!==e.rowCount?!1:[...t].sort((o,n)=>(o.rowBlockGeneration?.rowIndex??1/0)-(n.rowBlockGeneration?.rowIndex??1/0)).every((o,n)=>{let i=o.rowBlockGeneration;return i?.kind==="row-block-v1"&&i.groupId===e.groupId&&i.rowIndex===n&&i.signature===e.signature&&JSON.stringify(i)===JSON.stringify({...e,rowIndex:n})})}var h=1,b=300,D=330;function M(t){return t.seatCount>1?t.curve/(t.seatCount-1):0}function E(t,e){let r=t.rotation*Math.PI/180,o=M(t)*Math.PI/180,n,i;if(Math.abs(o)<1e-9)n=e*t.seatSpacing,i=0;else{let c=t.seatSpacing/(2*Math.sin(Math.abs(o)/2)),l=o*e;n=c*Math.sin(l),i=-c+c*Math.cos(l)}return{x:t.origin.x+n*Math.cos(r)-i*Math.sin(r),y:t.origin.y+n*Math.sin(r)+i*Math.cos(r)}}function Q(t,e,r){let o=(t??[]).map(n=>({...n,index:n.index+e})).filter(n=>n.index>=0&&n.index<r);return o.length?o:void 0}function U(t,e){if(t.path||!Number.isInteger(e)||e<h||e>b)return null;let r=M(t);return{...t,seatCount:e,curve:r*(e-1)}}function Y(t,e){if(t.path||!Number.isInteger(e)||e<h||e>b)return null;let r=M(t),o=t.seatCount-e,n=-o;return{...t,origin:E(t,o),rotation:B(t.rotation-r*o),seatCount:e,curve:r*(e-1),overrides:Q(t.overrides,n,e)}}function $(t,e=t.seatCount){let r=U(t,e);return r?E(r,e-1):null}function q(t,e=t.seatCount){return Y(t,e)?.origin??null}function kt(t,e){if(t.path||!Number.isFinite(e.x)||!Number.isFinite(e.y))return null;let r=M(t),o=Math.abs(r)<1e-9?b:Math.min(b,Math.floor(D/Math.abs(r))+1),n=null;for(let i=h;i<=Math.max(h,o);i+=1){let c=$(t,i);if(!c)continue;let l=Math.hypot(c.x-e.x,c.y-e.y),u=r*(i-1);(!n||l<n.distance||l===n.distance&&i<n.seatCount)&&(n={seatCount:i,curve:u,endpoint:c,distance:l})}return n}function Gt(t,e){if(t.path||!Number.isFinite(e.x)||!Number.isFinite(e.y))return null;let r=M(t),o=Math.abs(r)<1e-9?b:Math.min(b,Math.floor(D/Math.abs(r))+1),n=null;for(let i=h;i<=Math.max(h,o);i+=1){let c=q(t,i);if(!c)continue;let l=Math.hypot(c.x-e.x,c.y-e.y),u=r*(i-1);(!n||l<n.distance||l===n.distance&&i<n.seatCount)&&(n={seatCount:i,curve:u,endpoint:c,distance:l})}return n}export{bt as CATEGORY_INVENTORY_FAMILIES,dt as GroupedTableProjectionError,D as MAX_DIRECT_ROW_SWEEP,V as MAX_EVENT_INVENTORY,H as MAX_GA_CAPACITY,T as MAX_ROW_BLOCK_ROWS,b as MAX_ROW_SEATS,W as MIN_ROW_BLOCK_ROWS,h as MIN_ROW_SEATS,lt as applicableTicketTiers,z as capacityControl,St as categoryCapacity,k as chartCapacity,pt as companionSelectionIssue,gt as describeCategoryInventoryConflict,xt as effectiveSeatOwnerCategoryCounts,nt as gaAreasOf,et as gaInventorySegments,Z as gaUnitLabel,ot as gaUnitLabels,ht as groupedTableInventory,rt as growJoinedGAInventory,Mt as inspectCategoryInventoryConflicts,Bt as intactRowBlockMembers,at as isGaUnitLabel,mt as pickBestAvailable,yt as pickBestAvailableInventory,wt as remediateCategoryInventoryConflicts,Pt as resizeChartCapacity,It as resolveRowBlockCount,Gt as resolveRowStartCapacity,kt as resolveRowTerminalCapacity,ut as resolveTicketTierForSeat,G as rowBlockEdgePoint,J as rowBlockPreviewRows,q as rowStartEndpoint,$ as rowTerminalEndpoint,Y as rowWithStartCapacity,U as rowWithTerminalCapacity,it as strandedSingles,st as ticketOptionNotApplicableIssue,ft as ticketSelectionIssue,ct as ticketTierAppliesToSeat,tt as validGAInventorySegments};
1
+ import{a as it,b as st,c as ct,d as lt,e as ut,f as pt,g as ft,h as mt,i as yt,j as dt,k as ht,l as bt}from"../../chunk-7LMW7QTP.js";import{a as xt,b as Mt,c as gt,d as wt,e as Ct,f as B,h as N}from"../../chunk-YXOSJLK7.js";import"../../chunk-BT2KJXQC.js";import"../../chunk-C7MR6CFC.js";import"../../chunk-QLDV5ZGA.js";import{a as H,b as V,c as Z,d as tt,e as et,f as ot,g as rt,h as nt,i as at}from"../../chunk-Q3U3F4YJ.js";import"../../chunk-WXGW2SYC.js";import{Ea as S,Ga as v,Ha as P,I as O,Ja as j,Ka as _,Pa as I,x as R}from"../../chunk-24O23MNB.js";import"../../chunk-JBOTRSMY.js";import"../../chunk-CRCGO52K.js";function g(t){return t.floors?.length?t.floors.flatMap(e=>e.objects):t.objects}function k(t){return g(t).reduce((e,r)=>r.type==="row"?e+S(r):r.type==="table"?e+j(r):r.type==="gaArea"?e+Math.max(0,Math.floor(r.capacity)):r.type==="booth"?e+1:e,0)}function Pt(t){let e={};for(let o of t.categories??[])e[o.key]=0;let r=(o,n)=>{n>0&&(e[o]=(e[o]??0)+n)};for(let o of g(t))if(o.type==="row")for(let n of v(o))r(n.categoryKey,1);else if(o.type==="table")if(o.bookAsWhole||o.variableOccupancy)r(o.categoryKey,Math.max(0,Math.round(o.seatCount)));else for(let n of _(o))r(n.categoryKey,1);else o.type==="gaArea"?r(o.categoryKey,Math.max(0,Math.floor(o.capacity))):o.type==="booth"&&r(o.categoryKey,1);return e}function z(t){if(!t.template)return null;let e=g(t),r=e.filter(u=>u.type==="row"||u.type==="table"||u.type==="gaArea");if(!r.length)return null;let n=e.filter(u=>u.type==="booth").length+r.reduce((u,f)=>u+(f.type==="table"?2:1),0),i=k(t),c=Math.max(n+1,Math.min(5e4,i*4)),l=[.5,1,1.5,2].map(u=>O(Math.round(i*u),n,c));return{family:t.template.family,display:t.template.family.replace(/-/g," ").replace(/\b\w/g,u=>u.toUpperCase()),min:n,max:c,presets:["S","M","L","XL"].map((u,f)=>({size:u,seats:l[f]}))}}function A(t){let e=v(t);return e.length?R(e):{...t.origin}}function jt(t,e){let r=z(t);if(!r)return structuredClone(t);let o=structuredClone(t),n=g(o),i=n.filter(a=>a.type==="row"||a.type==="table"||a.type==="gaArea"),c=n.filter(a=>a.type==="booth").length,l=Math.max(r.min,Math.min(r.max,Math.round(e))),u=l-c,f=i.map((a,s)=>{let m=a.type==="gaArea"?Math.max(0,Math.floor(a.capacity)):a.seatCount,x=a.type==="table"?2:1;return{object:a,index:s,current:m,minimum:x,value:x,fraction:0}}),K=f.reduce((a,s)=>a+s.minimum,0),w=Math.max(0,u-K),L=f.reduce((a,s)=>a+Math.max(1,s.current-s.minimum),0);for(let a of f){let s=w*Math.max(1,a.current-a.minimum)/L,m=Math.floor(s);a.value+=m,a.fraction=s-m}w=u-f.reduce((a,s)=>a+s.value,0),f.sort((a,s)=>s.fraction-a.fraction||a.index-s.index);for(let a=0;a<w;a++)f[a%f.length].value++;f.sort((a,s)=>a.index-s.index);for(let a of f)if(a.object.type==="row"){let s=A(a.object);a.object.seatCount=a.value;let m=A(a.object);a.object.origin.x+=s.x-m.x,a.object.origin.y+=s.y-m.y}else if(a.object.type==="table"){let s=a.object;if(s.seatCountsBySide){let m=["top","bottom","left","right"],x=P(s),F=m.reduce((p,y)=>p+x[y],0)||1,d=m.map((p,y)=>{let C=a.value*x[p]/F;return{side:p,index:y,value:Math.floor(C),fraction:C-Math.floor(C)}}),X=a.value-d.reduce((p,y)=>p+y.value,0);d.sort((p,y)=>y.fraction-p.fraction||p.index-y.index);for(let p=0;p<X;p++)d[p%d.length].value+=1;d.sort((p,y)=>p.index-y.index),s.seatCountsBySide={top:d[0].value,bottom:d[1].value,left:d[2].value,right:d[3].value},s.sides=m.filter(p=>s.seatCountsBySide[p]>0)}s.seatCount=a.value,s.overrides&&(s.overrides=s.overrides.filter(m=>m.index<a.value),s.overrides.length||delete s.overrides)}else a.object.capacity=a.value;return o.floors?.length&&(o.objects=o.floors[0].objects),o.template={family:o.template.family,targetSeats:l},o=N(o).doc,o.template={family:t.template.family,targetSeats:k(o)},o}var W=1,T=100;function J(t,e){if(!Number.isInteger(e)||e<W||e>T)return null;let r=t.rotation*Math.PI/180,o={x:Math.cos(r),y:Math.sin(r)},n={x:-o.y,y:o.x};return Array.from({length:e},(i,c)=>{let l=t.style==="intertwined"&&c%2===1?t.seatSpacing/2:0;return{type:"row",id:`__block_preview_${c}`,label:"",origin:{x:t.origin.x+n.x*c*t.rowGap+o.x*l,y:t.origin.y+n.y*c*t.rowGap+o.y*l},rotation:t.rotation,curve:t.curve,seatCount:t.seatsPerRow,seatSpacing:t.seatSpacing,categoryKey:"__preview__"}})}function G(t,e=t.rowCount){let r=J(t,e);return r?.length?I(r[r.length-1]):null}function Bt(t,e){if(!Number.isFinite(e.x)||!Number.isFinite(e.y)||t.rowGap<=0)return null;let r=G(t,1);if(!r)return null;let o=t.rotation*Math.PI/180,n={x:-Math.sin(o),y:Math.cos(o)},i=(e.x-r.x)*n.x+(e.y-r.y)*n.y,c=Math.max(W,Math.min(T,Math.round(i/t.rowGap)+1)),l=G(t,c);return l?{rowCount:c,edgePoint:l}:null}function Nt(t,e){return t.length!==e.rowCount?!1:[...t].sort((o,n)=>(o.rowBlockGeneration?.rowIndex??1/0)-(n.rowBlockGeneration?.rowIndex??1/0)).every((o,n)=>{let i=o.rowBlockGeneration;return i?.kind==="row-block-v1"&&i.groupId===e.groupId&&i.rowIndex===n&&i.signature===e.signature&&JSON.stringify(i)===JSON.stringify({...e,rowIndex:n})})}var h=1,b=300,D=330;function M(t){return t.seatCount>1?t.curve/(t.seatCount-1):0}function E(t,e){let r=t.rotation*Math.PI/180,o=M(t)*Math.PI/180,n,i;if(Math.abs(o)<1e-9)n=e*t.seatSpacing,i=0;else{let c=t.seatSpacing/(2*Math.sin(Math.abs(o)/2)),l=o*e;n=c*Math.sin(l),i=-c+c*Math.cos(l)}return{x:t.origin.x+n*Math.cos(r)-i*Math.sin(r),y:t.origin.y+n*Math.sin(r)+i*Math.cos(r)}}function Q(t,e,r){let o=(t??[]).map(n=>({...n,index:n.index+e})).filter(n=>n.index>=0&&n.index<r);return o.length?o:void 0}function U(t,e){if(t.path||!Number.isInteger(e)||e<h||e>b)return null;let r=M(t);return{...t,seatCount:e,curve:r*(e-1)}}function Y(t,e){if(t.path||!Number.isInteger(e)||e<h||e>b)return null;let r=M(t),o=t.seatCount-e,n=-o;return{...t,origin:E(t,o),rotation:B(t.rotation-r*o),seatCount:e,curve:r*(e-1),overrides:Q(t.overrides,n,e)}}function $(t,e=t.seatCount){let r=U(t,e);return r?E(r,e-1):null}function q(t,e=t.seatCount){return Y(t,e)?.origin??null}function Gt(t,e){if(t.path||!Number.isFinite(e.x)||!Number.isFinite(e.y))return null;let r=M(t),o=Math.abs(r)<1e-9?b:Math.min(b,Math.floor(D/Math.abs(r))+1),n=null;for(let i=h;i<=Math.max(h,o);i+=1){let c=$(t,i);if(!c)continue;let l=Math.hypot(c.x-e.x,c.y-e.y),u=r*(i-1);(!n||l<n.distance||l===n.distance&&i<n.seatCount)&&(n={seatCount:i,curve:u,endpoint:c,distance:l})}return n}function Wt(t,e){if(t.path||!Number.isFinite(e.x)||!Number.isFinite(e.y))return null;let r=M(t),o=Math.abs(r)<1e-9?b:Math.min(b,Math.floor(D/Math.abs(r))+1),n=null;for(let i=h;i<=Math.max(h,o);i+=1){let c=q(t,i);if(!c)continue;let l=Math.hypot(c.x-e.x,c.y-e.y),u=r*(i-1);(!n||l<n.distance||l===n.distance&&i<n.seatCount)&&(n={seatCount:i,curve:u,endpoint:c,distance:l})}return n}export{xt as CATEGORY_INVENTORY_FAMILIES,ht as GroupedTableProjectionError,D as MAX_DIRECT_ROW_SWEEP,V as MAX_EVENT_INVENTORY,H as MAX_GA_CAPACITY,T as MAX_ROW_BLOCK_ROWS,b as MAX_ROW_SEATS,W as MIN_ROW_BLOCK_ROWS,h as MIN_ROW_SEATS,ut as applicableTicketTiers,z as capacityControl,Pt as categoryCapacity,k as chartCapacity,ft as companionSelectionIssue,wt as describeCategoryInventoryConflict,Mt as effectiveSeatOwnerCategoryCounts,nt as gaAreasOf,et as gaInventorySegments,Z as gaUnitLabel,ot as gaUnitLabels,bt as groupedTableInventory,rt as growJoinedGAInventory,gt as inspectCategoryInventoryConflicts,Nt as intactRowBlockMembers,st as isFullChartDoc,at as isGaUnitLabel,yt as pickBestAvailable,dt as pickBestAvailableInventory,Ct as remediateCategoryInventoryConflicts,jt as resizeChartCapacity,Bt as resolveRowBlockCount,Wt as resolveRowStartCapacity,Gt as resolveRowTerminalCapacity,pt as resolveTicketTierForSeat,G as rowBlockEdgePoint,J as rowBlockPreviewRows,q as rowStartEndpoint,$ as rowTerminalEndpoint,Y as rowWithStartCapacity,U as rowWithTerminalCapacity,it as strandedSingles,ct as ticketOptionNotApplicableIssue,mt as ticketSelectionIssue,lt as ticketTierAppliesToSeat,tt as validGAInventorySegments};
@@ -1,8 +1,8 @@
1
1
  import { P as Point, u as CubicPath, v as TextObject } from '../../types-eVmh2-Yn.cjs';
2
2
  export { F as FloorLabelStyle } from '../../types-eVmh2-Yn.cjs';
3
- export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from '../../tableSizing-tDaLWj54.cjs';
3
+ export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from '../../tableSizing-DnSAiaXL.cjs';
4
4
  export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-BYSxfsqX.cjs';
5
- import { E as ExpandedSeat } from '../../renderer-CuLIU7z1.cjs';
5
+ import { E as ExpandedSeat } from '../../renderer-BjuHQ0bx.cjs';
6
6
 
7
7
  type SectionShellMode = 'auto' | 'rectangle' | 'tapered' | 'bezier';
8
8
  declare function cubicPoint(path: CubicPath, t: number): Point;
@@ -1,8 +1,8 @@
1
1
  import { P as Point, u as CubicPath, v as TextObject } from '../../types-eVmh2-Yn.js';
2
2
  export { F as FloorLabelStyle } from '../../types-eVmh2-Yn.js';
3
- export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from '../../tableSizing-Dr-ksQTq.js';
3
+ export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from '../../tableSizing-BpRvVdXK.js';
4
4
  export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-N9Z0rnKY.js';
5
- import { E as ExpandedSeat } from '../../renderer-Bx0ucRf6.js';
5
+ import { E as ExpandedSeat } from '../../renderer-i_mthe5Z.js';
6
6
 
7
7
  type SectionShellMode = 'auto' | 'rectangle' | 'tapered' | 'bezier';
8
8
  declare function cubicPoint(path: CubicPath, t: number): Point;
@@ -1 +1 @@
1
- "use strict";var K=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var Le=Object.prototype.hasOwnProperty;var xe=(t,r)=>{for(var o in r)K(t,o,{get:r[o],enumerable:!0})},ve=(t,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of ye(r))!Le.call(t,c)&&c!==o&&K(t,c,{get:()=>r[c],enumerable:!(s=fe(r,c))||s.enumerable});return t};var we=t=>ve(K({},"__esModule",{value:!0}),t);var je={};xe(je,{ACCESS_GLYPH_PATH:()=>Pe,ACCESS_GLYPH_VIEWBOX:()=>Fe,ACCESS_TYPE_GLYPH_PATHS:()=>U,AUTHORED_LABEL_MIN_CONTRAST:()=>Ve,BOOTH_LABEL_FONT_SIZE:()=>Se,DARK_BOOKABLE_LABEL_INK:()=>S,DARK_NEUTRAL_SECTION_FILL:()=>ce,GA_CAPACITY_LABEL_FONT_SIZE:()=>Be,GA_FILL_OPACITY:()=>Te,GA_LABEL_FONT_SIZE:()=>Ae,LARGE_TEXT_CONTRAST:()=>se,LIGHT_BOOKABLE_LABEL_INK:()=>A,LIGHT_NEUTRAL_SECTION_FILL:()=>le,MIN_POINTER_TARGET_PX:()=>X,MIN_VISIBLE_BOOKABLE_LABEL_PX:()=>B,RENDERED_QUALITY_REPORT_VERSION:()=>be,ROW_LABEL_FONT_SIZE:()=>ke,SEAT_LABEL_FONT_SIZE:()=>Ie,SMALL_TEXT_CONTRAST:()=>T,accessGlyphInk:()=>Qe,accessGlyphPath:()=>Ne,bookableMarkerLabel:()=>ze,compositeHexOver:()=>Oe,explicitOrStateAwareLabelInk:()=>Ze,inspectRenderedQualityEvidence:()=>Ue,isBookableLabelLegibleAtScale:()=>_e,isLightFill:()=>ae,minimumTextContrast:()=>Ee,neutralSectionFill:()=>Ge,renderedTextContrast:()=>b,stateAwareBookableLabelInk:()=>j,summarizeLabelInkContrast:()=>Ke});module.exports=we(je);var Re=/^#?([\da-f]{3}|[\da-f]{6})$/i;function R(t){let r=Re.exec((t??"").trim());if(!r)return null;let o=r[1].length===3?r[1].split("").map(c=>c+c).join(""):r[1],s=parseInt(o,16);return[s>>16&255,s>>8&255,s&255]}function $(t){let r=t/255;return r<=.04045?r/12.92:((r+.055)/1.055)**2.4}function z(t){return .2126*$(t[0])+.7152*$(t[1])+.0722*$(t[2])}function ie(t,r){let o=R(t),s=R(r);if(!o||!s)return null;let c=z(o),u=z(s);return(Math.max(c,u)+.05)/(Math.min(c,u)+.05)}var Ie=7,ke=10,Se=10,Ae=15,Be=11,Te=.85,B=12,T=4.5,se=3,S="#000000",A="#ffffff",Me=24,Ce=18.67;function Ee(t,r=400){return t>=Me||r>=700&&t>=Ce?se:T}function _e(t,r){return t*r>=B}var Fe=24,U={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z","designated-aisle":"M3 5L6 5L6 14L3 14ZM3 12L13 12L13 15L3 15ZM5 15L7 15L7 20L5 20ZM11 15L13 15L13 20L11 20ZM13 7L20 7L17 4L19 4L23 8.5L19 13L17 13L20 10L13 10Z","step-free":"M4 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM4.4 7L7.5 7L7.5 13L11 15L9.5 17L5 14L4.4 7ZM2 19L8 19L17 10L22 10L22 13L18 13L10 21L2 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","low-vision":"M2.5 12C6 6 18 6 21.5 12C18 18 6 18 2.5 12ZM9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM17.5 3L19 3L19 6L17.5 6ZM19 4L22 4L22 5.5L19 5.5Z","sensory-friendly":"M4 11C4 5 7 2.5 12 2.5S20 5 20 11L17 11C17 7 15.5 5.5 12 5.5S7 7 7 11ZM3 10L8 10L8 19L5 19a2 2 0 0 1 -2 -2ZM16 10L21 10L21 17a2 2 0 0 1 -2 2L16 19ZM9 12L15 12L15 14L9 14ZM10 16L14 16L14 18L10 18Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},Pe=U.wheelchair;function Ne(t){if(!t?.length)return null;let r=t.includes("wheelchair")?"wheelchair":t[0];return U[r]??null}function ze(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var b=ie;function Oe(t,r,o){let s=R(t),c=R(r);if(!s||!c)return r;let u=Math.max(0,Math.min(1,o));return`#${s.map((p,C)=>Math.round(p*u+c[C]*(1-u))).map(p=>p.toString(16).padStart(2,"0")).join("")}`}var Ve=3;function j(t,r,o=T){let s=b(r,t);if(s!=null&&s>=o)return r;let c=b(S,t)??0,u=b(A,t)??0;return c===0&&u===0?r:c>=u?S:A}function Ze(t,r,o,s=T){return r??j(t,o,s)}var He=3;function Qe(t){let r=b("#ffffff",t);if(r!=null&&r>=He)return"#ffffff";let o=b(S,t)??0,s=b(A,t)??0;return o===0&&s===0?"#ffffff":o>=s?S:A}var oe=/^#[0-9a-f]{6}$/i;function ae(t){let r=R(t);return r!=null&&z(r)>.5}var le="#e5e7eb",ce="#273142";function Ge(t){return ae(t)?le:ce}function Ke(t,r,o=T){let s=oe.test(t.trim()),c=t.trim().toLowerCase(),u=0,m=0,p=null;for(let E of r){if(!s||!oe.test(E.trim()))continue;u+=1;let _=j(E,t,o);_.toLowerCase()!==c&&(m+=1,p=_)}return{total:u,overridden:m,status:u===0?"none":m===0?"applies":m===u?"overridden":"mixed",overrideInk:p}}var be=3,I=4.5,O=3,X=24,$e=20;function V(t){return t.filter(r=>r.visible&&!!r.screenBox)}function y(t,r){return t.x<r.x+r.width&&t.x+t.width>r.x&&t.y<r.y+r.height&&t.y+t.height>r.y}function h(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function l(t,r,o){return o.length?{code:t,message:r,count:o.length,samples:o.slice(0,$e)}:null}function M(t,r,o){return{primaryId:t.seatId,primaryLabel:t.label,...r==null?{}:{measured:Math.round(r*100)/100},...o==null?{}:{minimum:o}}}function Z(t,r,o){return{primaryId:t.id,primaryLabel:t.label,...r==null?{}:{measured:Math.round(r*100)/100},...o==null?{}:{minimum:o}}}function ue(t,r,o){return{primaryId:t.objectId,primaryLabel:t.text,...r==null?{}:{measured:Math.round(r*100)/100},...o==null?{}:{minimum:o}}}function L(t,r,o,s){return{primaryId:t,primaryLabel:r,secondaryId:o,secondaryLabel:s}}function Ue(t,r="overview",o=null){let s=V(t.labels),c=V(t.hierarchyLabels),u=V(t.freeTextLabels),m=V(t.rowLabels),p=t.gaAreas.filter(e=>e.visible),C=s.map(e=>b(e.ink,e.fill)??0),E=c.map(e=>b(e.ink,e.fill)??0),_=u.map(e=>b(e.ink,e.background)??0),de=p.map(e=>b(e.effectiveBackground,t.canvasBackground)??0),d=o?t.labels.filter(e=>e.categoryKey===o):t.labels,x=o?t.gaAreas.filter(e=>e.categoryKey===o):t.gaAreas,f=d.filter(e=>e.selected),v=d.filter(e=>e.status==="held"),w=d.filter(e=>e.status==="booked"),F=d.filter(e=>e.pointerTarget.active),D=new Set([...t.labels.filter(e=>e.visible&&(e.opacity>.25||e.selected||e.status!=="free")).map(e=>e.categoryKey),...t.gaAreas.filter(e=>e.visible&&e.opacity>.1).map(e=>e.categoryKey)]),P=f.length?h(f.map(e=>b(e.selectionRingColor??t.selectionRingColor,e.fill)??0)):null,a=[],k=(e,n)=>Array.from({length:e},(g,N)=>({primaryId:`overview:${N+1}`,primaryLabel:n}));r==="overview"&&t.rung==="sections"&&(a.push(l("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",k(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),a.push(l("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",k(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),a.push(l("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",k(t.overviewStyle.visibleSectionRowHints,"section row hint"))),a.push(l("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),a.push(l("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),a.push(l("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",s.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>M(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),a.push(l("bookable-label-viewport-clipped","Visible interaction labels must remain fully inside the buyer viewport",r==="interaction"?s.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>M(e)):[])),a.push(l("row-label-viewport-clipped","Visible interaction row labels must remain fully inside the buyer viewport",r==="interaction"?m.flatMap((e,n)=>{let g=e.screenBox;return g.x<0||g.y<0||g.x+g.width>t.viewport.width||g.y+g.height>t.viewport.height?[{primaryId:`row-label-${n}`,primaryLabel:e.text}]:[]}):[]));let Y=[];if(r==="interaction")for(let e=0;e<m.length;e+=1)for(let n=0;n<e;n+=1)y(m[e].screenBox,m[n].screenBox)&&Y.push(L(`row-label-${n}`,m[n].text,`row-label-${e}`,m[e].text));if(a.push(l("row-label-collision","Visible interaction row labels must not overlap",Y)),r==="interaction"){let e=d.length>0,n=x.length>0,g=e||n,N=x.filter(i=>i.visible),me=new Set([...d.flatMap(i=>i.sectionId?[i.sectionId]:[]),...x.flatMap(i=>i.sectionId?[i.sectionId]:[])]),pe=new Set([...t.labels.map(i=>i.categoryKey),...t.gaAreas.map(i=>i.categoryKey)]),H=i=>i.screenCenter.x>=0&&i.screenCenter.x<=t.viewport.width&&i.screenCenter.y>=0&&i.screenCenter.y<=t.viewport.height;a.push(l("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",g&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),a.push(l("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",g&&!d.some(H)&&!N.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),a.push(l("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!F.some(H)||!e&&n&&!N.some(i=>i.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),a.push(l("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",F.filter(i=>H(i)&&i.pointerTarget.effectiveMinimumPx<X).map(i=>M(i,i.pointerTarget.effectiveMinimumPx,X)))),a.push(l("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!f.length||!f.some(i=>t.selectionRingSeatIds.includes(i.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),a.push(l("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the seat paint",f.length&&(P??0)<O?[{primaryId:f[0].seatId,primaryLabel:f[0].label,measured:Math.round((P??0)*100)/100,minimum:O}]:[])),a.push(l("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",d.length>=2&&!v.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),a.push(l("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",d.length>=3&&!w.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let ge=new Set(v.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`)),he=new Set(w.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`));a.push(l("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",v.length&&w.length&&[...ge].some(i=>he.has(i))?[{primaryId:v[0].seatId,primaryLabel:v[0].label,secondaryId:w[0].seatId,secondaryLabel:w[0].label}]:[])),a.push(l("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",me.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),a.push(l("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",pe.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let Q=t.labels.filter(i=>i.status==="free"&&!i.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey)),G=t.gaAreas.filter(i=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey));a.push(l("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(Q.length||G.length)&&!Q.some(i=>i.opacity<=.25)&&!G.some(i=>i.opacity<=.1)?[...Q.map(i=>M(i,i.opacity)),...G.map(i=>({primaryId:i.areaId,primaryLabel:i.label,measured:i.opacity}))]:[])),a.push(l("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",o&&!D.has(o)?[{primaryId:o,primaryLabel:o}]:[])),a.push(l("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",o&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==o)?[{primaryId:o,primaryLabel:o}]:[]))}a.push(l("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",s.flatMap(e=>{let n=b(e.ink,e.fill)??0;return n<I?[M(e,n,I)]:[]})));let W=[];for(let e=0;e<s.length;e+=1)for(let n=0;n<e;n+=1)y(s[e].screenBox,s[n].screenBox)&&W.push(L(s[n].seatId,s[n].label,s[e].seatId,s[e].label));a.push(l("bookable-label-collision","Visible bookable labels must not overlap",W)),a.push(l("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",c.filter(e=>e.renderedFontPx<(e.sizeFloorPx??B)).map(e=>Z(e,e.renderedFontPx,e.sizeFloorPx??B)))),a.push(l("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",c.flatMap(e=>{let n=b(e.ink,e.fill)??0;return n<I?[Z(e,n,I)]:[]}))),a.push(l("hierarchy-label-viewport-clipped","Visible overview hierarchy labels must remain fully inside the buyer viewport",r==="overview"?c.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>Z(e)):[])),a.push(l("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",c.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>Z(e))));let J=[];for(let e=0;e<c.length;e+=1)for(let n=0;n<e;n+=1)y(c[e].screenBox,c[n].screenBox)&&J.push(L(c[n].id,c[n].label,c[e].id,c[e].label));a.push(l("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",J));let q=[];for(let e of c)for(let n of s)y(e.screenBox,n.screenBox)&&q.push(L(e.id,e.label,n.seatId,n.label));a.push(l("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",q)),a.push(l("free-text-undersized","Visible chart text must meet the rendered small-text size floor",u.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>ue(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),a.push(l("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",u.flatMap(e=>{let n=b(e.ink,e.background)??0;return n<I?[ue(e,n,I)]:[]})));let ee=[];for(let e=0;e<u.length;e+=1)for(let n=0;n<e;n+=1)y(u[e].screenBox,u[n].screenBox)&&ee.push(L(u[n].objectId,u[n].text,u[e].objectId,u[e].text));a.push(l("free-text-collision","Visible chart text labels must not overlap each other",ee));let te=[];for(let e of u)for(let n of s)y(e.screenBox,n.screenBox)&&te.push(L(e.objectId,e.text,n.seatId,n.label));a.push(l("free-text-bookable-collision","Visible chart text must not overlap bookable labels",te));let re=[];for(let e of u)for(let n of c)y(e.screenBox,n.screenBox)&&re.push(L(e.objectId,e.text,n.id,n.label));a.push(l("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",re)),a.push(l("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",p.flatMap(e=>{let n=b(e.effectiveBackground,t.canvasBackground)??0;return n<O?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(n*100)/100,minimum:O}]:[]})));let ne=a.filter(e=>!!e);return{version:be,passed:ne.length===0,state:r,targetCategoryKey:o,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-viewport","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...r==="interaction"?["rendered-detail-label-viewport","rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:s.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:c.length,visibleFreeTextLabels:u.length,visibleGAAreas:p.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(e=>e.role==="name").map(e=>({id:e.id,kind:e.kind,label:e.label,visible:e.visible})).sort((e,n)=>e.kind.localeCompare(n.kind)||e.id.localeCompare(n.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,n)=>e.objectId.localeCompare(n.objectId)||e.kind.localeCompare(n.kind)),gaAreas:t.gaAreas.map(e=>({areaId:e.areaId,label:e.label,categoryKey:e.categoryKey,...e.sectionId?{sectionId:e.sectionId}:{},visible:e.visible})).sort((e,n)=>e.areaId.localeCompare(n.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(e=>e.sectionId?[e.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)])].sort(),activeCategoryKeys:[...D].sort()},metrics:{minimumRenderedBookableLabelPx:h(s.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:h(C),minimumRenderedHierarchyLabelPx:h(c.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:h(E),minimumRenderedFreeTextPx:h(u.map(e=>e.renderedFontPx)),minimumFreeTextContrast:h(_),minimumGAContrast:h(de),minimumEffectivePointerTargetPx:h(F.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:P==null?null:Math.round(P*100)/100},interaction:{applicable:{detail:d.length>0||x.length>0,pointer:d.length>0||x.length>0,held:d.length>=2,booked:d.length>=3,sectionFocus:d.some(e=>!!e.sectionId)||x.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:f.length,heldUnits:v.length,bookedUnits:w.length,activePointerTargets:F.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:ne}}0&&(module.exports={ACCESS_GLYPH_PATH,ACCESS_GLYPH_VIEWBOX,ACCESS_TYPE_GLYPH_PATHS,AUTHORED_LABEL_MIN_CONTRAST,BOOTH_LABEL_FONT_SIZE,DARK_BOOKABLE_LABEL_INK,DARK_NEUTRAL_SECTION_FILL,GA_CAPACITY_LABEL_FONT_SIZE,GA_FILL_OPACITY,GA_LABEL_FONT_SIZE,LARGE_TEXT_CONTRAST,LIGHT_BOOKABLE_LABEL_INK,LIGHT_NEUTRAL_SECTION_FILL,MIN_POINTER_TARGET_PX,MIN_VISIBLE_BOOKABLE_LABEL_PX,RENDERED_QUALITY_REPORT_VERSION,ROW_LABEL_FONT_SIZE,SEAT_LABEL_FONT_SIZE,SMALL_TEXT_CONTRAST,accessGlyphInk,accessGlyphPath,bookableMarkerLabel,compositeHexOver,explicitOrStateAwareLabelInk,inspectRenderedQualityEvidence,isBookableLabelLegibleAtScale,isLightFill,minimumTextContrast,neutralSectionFill,renderedTextContrast,stateAwareBookableLabelInk,summarizeLabelInkContrast});
1
+ "use strict";var $=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var xe=Object.prototype.hasOwnProperty;var ve=(t,r)=>{for(var i in r)$(t,i,{get:r[i],enumerable:!0})},we=(t,r,i,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of Le(r))!xe.call(t,c)&&c!==i&&$(t,c,{get:()=>r[c],enumerable:!(s=ye(r,c))||s.enumerable});return t};var Re=t=>we($({},"__esModule",{value:!0}),t);var We={};ve(We,{ACCESS_GLYPH_PATH:()=>ze,ACCESS_GLYPH_VIEWBOX:()=>Ne,ACCESS_TYPE_GLYPH_PATHS:()=>j,AUTHORED_LABEL_MIN_CONTRAST:()=>He,BOOTH_LABEL_FONT_SIZE:()=>Ae,DARK_BOOKABLE_LABEL_INK:()=>h,DARK_NEUTRAL_SECTION_FILL:()=>ue,GA_CAPACITY_LABEL_FONT_SIZE:()=>Me,GA_FILL_OPACITY:()=>Ce,GA_LABEL_FONT_SIZE:()=>Te,LARGE_TEXT_CONTRAST:()=>ae,LIGHT_BOOKABLE_LABEL_INK:()=>f,LIGHT_NEUTRAL_SECTION_FILL:()=>ce,MIN_POINTER_TARGET_PX:()=>D,MIN_VISIBLE_BOOKABLE_LABEL_PX:()=>T,RENDERED_QUALITY_REPORT_VERSION:()=>de,ROW_LABEL_FONT_SIZE:()=>Be,SEAT_LABEL_FONT_SIZE:()=>Se,SMALL_TEXT_CONTRAST:()=>v,accessGlyphInk:()=>Ue,accessGlyphPath:()=>Oe,bookableMarkerLabel:()=>Ve,categoryBandInk:()=>Qe,compositeHexOver:()=>Ze,explicitOrStateAwareLabelInk:()=>Ke,inspectRenderedQualityEvidence:()=>Ye,isBookableLabelLegibleAtScale:()=>Pe,isLightFill:()=>le,mapSeparatingInk:()=>Ge,minimumTextContrast:()=>Fe,neutralSectionFill:()=>je,renderedTextContrast:()=>b,stateAwareBookableLabelInk:()=>X,summarizeLabelInkContrast:()=>Xe});module.exports=Re(We);var Ie=/^#?([\da-f]{3}|[\da-f]{6})$/i;function x(t){let r=Ie.exec((t??"").trim());if(!r)return null;let i=r[1].length===3?r[1].split("").map(c=>c+c).join(""):r[1],s=parseInt(i,16);return[s>>16&255,s>>8&255,s&255]}function U(t){let r=t/255;return r<=.04045?r/12.92:((r+.055)/1.055)**2.4}function z(t){return .2126*U(t[0])+.7152*U(t[1])+.0722*U(t[2])}function oe(t,r){let i=x(t),s=x(r);if(!i||!s)return null;let c=z(i),u=z(s);return(Math.max(c,u)+.05)/(Math.min(c,u)+.05)}function ke(t){let r=t.trim();if(r.startsWith("#")){let s=x(r);return s?(.2126*s[0]+.7152*s[1]+.0722*s[2])/255:NaN}let i=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(r);return i?(.2126*+i[1]+.7152*+i[2]+.0722*+i[3])/255:NaN}function O(t,r=.6){let i=ke(t);return!Number.isNaN(i)&&i>r}var Se=7,Be=10,Ae=10,Te=15,Me=11,Ce=.85,T=12,v=4.5,ae=3,h="#000000",f="#ffffff",Ee=24,_e=18.67;function Fe(t,r=400){return t>=Ee||r>=700&&t>=_e?ae:v}function Pe(t,r){return t*r>=T}var Ne=24,j={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z","designated-aisle":"M3 5L6 5L6 14L3 14ZM3 12L13 12L13 15L3 15ZM5 15L7 15L7 20L5 20ZM11 15L13 15L13 20L11 20ZM13 7L20 7L17 4L19 4L23 8.5L19 13L17 13L20 10L13 10Z","step-free":"M4 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM4.4 7L7.5 7L7.5 13L11 15L9.5 17L5 14L4.4 7ZM2 19L8 19L17 10L22 10L22 13L18 13L10 21L2 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","low-vision":"M2.5 12C6 6 18 6 21.5 12C18 18 6 18 2.5 12ZM9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM17.5 3L19 3L19 6L17.5 6ZM19 4L22 4L22 5.5L19 5.5Z","sensory-friendly":"M4 11C4 5 7 2.5 12 2.5S20 5 20 11L17 11C17 7 15.5 5.5 12 5.5S7 7 7 11ZM3 10L8 10L8 19L5 19a2 2 0 0 1 -2 -2ZM16 10L21 10L21 17a2 2 0 0 1 -2 2L16 19ZM9 12L15 12L15 14L9 14ZM10 16L14 16L14 18L10 18Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},ze=j.wheelchair;function Oe(t){if(!t?.length)return null;let r=t.includes("wheelchair")?"wheelchair":t[0];return j[r]??null}function Ve(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var b=oe;function Ze(t,r,i){let s=x(t),c=x(r);if(!s||!c)return r;let u=Math.max(0,Math.min(1,i));return`#${s.map((p,C)=>Math.round(p*u+c[C]*(1-u))).map(p=>p.toString(16).padStart(2,"0")).join("")}`}var He=3;function Qe(t){let r=b(f,t)??0,i=b(h,t)??0;return r>=v?f:i>=v&&O(t)||O(t)?h:f}function Ge(t){return O(t)?h:f}function X(t,r,i=v){let s=b(r,t);if(s!=null&&s>=i)return r;let c=b(h,t)??0,u=b(f,t)??0;return c===0&&u===0?r:c>=u?h:f}function Ke(t,r,i,s=v){return r??X(t,i,s)}var $e=3;function Ue(t){let r=b("#ffffff",t);if(r!=null&&r>=$e)return"#ffffff";let i=b(h,t)??0,s=b(f,t)??0;return i===0&&s===0?"#ffffff":i>=s?h:f}var se=/^#[0-9a-f]{6}$/i;function le(t){let r=x(t);return r!=null&&z(r)>.5}var ce="#e5e7eb",ue="#273142";function je(t){return le(t)?ce:ue}function Xe(t,r,i=v){let s=se.test(t.trim()),c=t.trim().toLowerCase(),u=0,m=0,p=null;for(let E of r){if(!s||!se.test(E.trim()))continue;u+=1;let _=X(E,t,i);_.toLowerCase()!==c&&(m+=1,p=_)}return{total:u,overridden:m,status:u===0?"none":m===0?"applies":m===u?"overridden":"mixed",overrideInk:p}}var de=3,B=4.5,V=3,D=24,De=20;function Z(t){return t.filter(r=>r.visible&&!!r.screenBox)}function w(t,r){return t.x<r.x+r.width&&t.x+t.width>r.x&&t.y<r.y+r.height&&t.y+t.height>r.y}function y(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function l(t,r,i){return i.length?{code:t,message:r,count:i.length,samples:i.slice(0,De)}:null}function M(t,r,i){return{primaryId:t.seatId,primaryLabel:t.label,...r==null?{}:{measured:Math.round(r*100)/100},...i==null?{}:{minimum:i}}}function H(t,r,i){return{primaryId:t.id,primaryLabel:t.label,...r==null?{}:{measured:Math.round(r*100)/100},...i==null?{}:{minimum:i}}}function be(t,r,i){return{primaryId:t.objectId,primaryLabel:t.text,...r==null?{}:{measured:Math.round(r*100)/100},...i==null?{}:{minimum:i}}}function R(t,r,i,s){return{primaryId:t,primaryLabel:r,secondaryId:i,secondaryLabel:s}}function Ye(t,r="overview",i=null){let s=Z(t.labels),c=Z(t.hierarchyLabels),u=Z(t.freeTextLabels),m=Z(t.rowLabels),p=t.gaAreas.filter(e=>e.visible),C=s.map(e=>b(e.ink,e.fill)??0),E=c.map(e=>b(e.ink,e.fill)??0),_=u.map(e=>b(e.ink,e.background)??0),me=p.map(e=>b(e.effectiveBackground,t.canvasBackground)??0),d=i?t.labels.filter(e=>e.categoryKey===i):t.labels,I=i?t.gaAreas.filter(e=>e.categoryKey===i):t.gaAreas,L=d.filter(e=>e.selected),k=d.filter(e=>e.status==="held"),S=d.filter(e=>e.status==="booked"),F=d.filter(e=>e.pointerTarget.active),Y=new Set([...t.labels.filter(e=>e.visible&&(e.opacity>.25||e.selected||e.status!=="free")).map(e=>e.categoryKey),...t.gaAreas.filter(e=>e.visible&&e.opacity>.1).map(e=>e.categoryKey)]),P=L.length?y(L.map(e=>b(e.selectionRingColor??t.selectionRingColor,e.fill)??0)):null,a=[],A=(e,n)=>Array.from({length:e},(g,N)=>({primaryId:`overview:${N+1}`,primaryLabel:n}));r==="overview"&&t.rung==="sections"&&(a.push(l("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",A(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),a.push(l("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",A(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),a.push(l("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",A(t.overviewStyle.visibleSectionRowHints,"section row hint"))),a.push(l("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",A(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),a.push(l("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",A(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),a.push(l("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",s.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>M(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),a.push(l("bookable-label-viewport-clipped","Visible interaction labels must remain fully inside the buyer viewport",r==="interaction"?s.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>M(e)):[])),a.push(l("row-label-viewport-clipped","Visible interaction row labels must remain fully inside the buyer viewport",r==="interaction"?m.flatMap((e,n)=>{let g=e.screenBox;return g.x<0||g.y<0||g.x+g.width>t.viewport.width||g.y+g.height>t.viewport.height?[{primaryId:`row-label-${n}`,primaryLabel:e.text}]:[]}):[]));let W=[];if(r==="interaction")for(let e=0;e<m.length;e+=1)for(let n=0;n<e;n+=1)w(m[e].screenBox,m[n].screenBox)&&W.push(R(`row-label-${n}`,m[n].text,`row-label-${e}`,m[e].text));if(a.push(l("row-label-collision","Visible interaction row labels must not overlap",W)),r==="interaction"){let e=d.length>0,n=I.length>0,g=e||n,N=I.filter(o=>o.visible),pe=new Set([...d.flatMap(o=>o.sectionId?[o.sectionId]:[]),...I.flatMap(o=>o.sectionId?[o.sectionId]:[])]),ge=new Set([...t.labels.map(o=>o.categoryKey),...t.gaAreas.map(o=>o.categoryKey)]),Q=o=>o.screenCenter.x>=0&&o.screenCenter.x<=t.viewport.width&&o.screenCenter.y>=0&&o.screenCenter.y<=t.viewport.height;a.push(l("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",g&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),a.push(l("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",g&&!d.some(Q)&&!N.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),a.push(l("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!F.some(Q)||!e&&n&&!N.some(o=>o.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),a.push(l("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",F.filter(o=>Q(o)&&o.pointerTarget.effectiveMinimumPx<D).map(o=>M(o,o.pointerTarget.effectiveMinimumPx,D)))),a.push(l("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!L.length||!L.some(o=>t.selectionRingSeatIds.includes(o.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),a.push(l("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the seat paint",L.length&&(P??0)<V?[{primaryId:L[0].seatId,primaryLabel:L[0].label,measured:Math.round((P??0)*100)/100,minimum:V}]:[])),a.push(l("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",d.length>=2&&!k.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),a.push(l("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",d.length>=3&&!S.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let he=new Set(k.map(o=>`${o.fill.toLowerCase()}:${o.opacity}`)),fe=new Set(S.map(o=>`${o.fill.toLowerCase()}:${o.opacity}`));a.push(l("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",k.length&&S.length&&[...he].some(o=>fe.has(o))?[{primaryId:k[0].seatId,primaryLabel:k[0].label,secondaryId:S[0].seatId,secondaryLabel:S[0].label}]:[])),a.push(l("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",pe.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),a.push(l("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",ge.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let G=t.labels.filter(o=>o.status==="free"&&!o.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(o.categoryKey)),K=t.gaAreas.filter(o=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(o.categoryKey));a.push(l("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(G.length||K.length)&&!G.some(o=>o.opacity<=.25)&&!K.some(o=>o.opacity<=.1)?[...G.map(o=>M(o,o.opacity)),...K.map(o=>({primaryId:o.areaId,primaryLabel:o.label,measured:o.opacity}))]:[])),a.push(l("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",i&&!Y.has(i)?[{primaryId:i,primaryLabel:i}]:[])),a.push(l("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",i&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==i)?[{primaryId:i,primaryLabel:i}]:[]))}a.push(l("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",s.flatMap(e=>{let n=b(e.ink,e.fill)??0;return n<B?[M(e,n,B)]:[]})));let J=[];for(let e=0;e<s.length;e+=1)for(let n=0;n<e;n+=1)w(s[e].screenBox,s[n].screenBox)&&J.push(R(s[n].seatId,s[n].label,s[e].seatId,s[e].label));a.push(l("bookable-label-collision","Visible bookable labels must not overlap",J)),a.push(l("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",c.filter(e=>e.renderedFontPx<(e.sizeFloorPx??T)).map(e=>H(e,e.renderedFontPx,e.sizeFloorPx??T)))),a.push(l("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",c.flatMap(e=>{let n=b(e.ink,e.fill)??0;return n<B?[H(e,n,B)]:[]}))),a.push(l("hierarchy-label-viewport-clipped","Visible overview hierarchy labels must remain fully inside the buyer viewport",r==="overview"?c.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>H(e)):[])),a.push(l("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",c.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>H(e))));let q=[];for(let e=0;e<c.length;e+=1)for(let n=0;n<e;n+=1)w(c[e].screenBox,c[n].screenBox)&&q.push(R(c[n].id,c[n].label,c[e].id,c[e].label));a.push(l("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",q));let ee=[];for(let e of c)for(let n of s)w(e.screenBox,n.screenBox)&&ee.push(R(e.id,e.label,n.seatId,n.label));a.push(l("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",ee)),a.push(l("free-text-undersized","Visible chart text must meet the rendered small-text size floor",u.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>be(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),a.push(l("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",u.flatMap(e=>{let n=b(e.ink,e.background)??0;return n<B?[be(e,n,B)]:[]})));let te=[];for(let e=0;e<u.length;e+=1)for(let n=0;n<e;n+=1)w(u[e].screenBox,u[n].screenBox)&&te.push(R(u[n].objectId,u[n].text,u[e].objectId,u[e].text));a.push(l("free-text-collision","Visible chart text labels must not overlap each other",te));let re=[];for(let e of u)for(let n of s)w(e.screenBox,n.screenBox)&&re.push(R(e.objectId,e.text,n.seatId,n.label));a.push(l("free-text-bookable-collision","Visible chart text must not overlap bookable labels",re));let ne=[];for(let e of u)for(let n of c)w(e.screenBox,n.screenBox)&&ne.push(R(e.objectId,e.text,n.id,n.label));a.push(l("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",ne)),a.push(l("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",p.flatMap(e=>{let n=b(e.effectiveBackground,t.canvasBackground)??0;return n<V?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(n*100)/100,minimum:V}]:[]})));let ie=a.filter(e=>!!e);return{version:de,passed:ie.length===0,state:r,targetCategoryKey:i,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-viewport","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...r==="interaction"?["rendered-detail-label-viewport","rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:s.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:c.length,visibleFreeTextLabels:u.length,visibleGAAreas:p.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(e=>e.role==="name").map(e=>({id:e.id,kind:e.kind,label:e.label,visible:e.visible})).sort((e,n)=>e.kind.localeCompare(n.kind)||e.id.localeCompare(n.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,n)=>e.objectId.localeCompare(n.objectId)||e.kind.localeCompare(n.kind)),gaAreas:t.gaAreas.map(e=>({areaId:e.areaId,label:e.label,categoryKey:e.categoryKey,...e.sectionId?{sectionId:e.sectionId}:{},visible:e.visible})).sort((e,n)=>e.areaId.localeCompare(n.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(e=>e.sectionId?[e.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)])].sort(),activeCategoryKeys:[...Y].sort()},metrics:{minimumRenderedBookableLabelPx:y(s.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:y(C),minimumRenderedHierarchyLabelPx:y(c.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:y(E),minimumRenderedFreeTextPx:y(u.map(e=>e.renderedFontPx)),minimumFreeTextContrast:y(_),minimumGAContrast:y(me),minimumEffectivePointerTargetPx:y(F.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:P==null?null:Math.round(P*100)/100},interaction:{applicable:{detail:d.length>0||I.length>0,pointer:d.length>0||I.length>0,held:d.length>=2,booked:d.length>=3,sectionFocus:d.some(e=>!!e.sectionId)||I.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:L.length,heldUnits:k.length,bookedUnits:S.length,activePointerTargets:F.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:ie}}0&&(module.exports={ACCESS_GLYPH_PATH,ACCESS_GLYPH_VIEWBOX,ACCESS_TYPE_GLYPH_PATHS,AUTHORED_LABEL_MIN_CONTRAST,BOOTH_LABEL_FONT_SIZE,DARK_BOOKABLE_LABEL_INK,DARK_NEUTRAL_SECTION_FILL,GA_CAPACITY_LABEL_FONT_SIZE,GA_FILL_OPACITY,GA_LABEL_FONT_SIZE,LARGE_TEXT_CONTRAST,LIGHT_BOOKABLE_LABEL_INK,LIGHT_NEUTRAL_SECTION_FILL,MIN_POINTER_TARGET_PX,MIN_VISIBLE_BOOKABLE_LABEL_PX,RENDERED_QUALITY_REPORT_VERSION,ROW_LABEL_FONT_SIZE,SEAT_LABEL_FONT_SIZE,SMALL_TEXT_CONTRAST,accessGlyphInk,accessGlyphPath,bookableMarkerLabel,categoryBandInk,compositeHexOver,explicitOrStateAwareLabelInk,inspectRenderedQualityEvidence,isBookableLabelLegibleAtScale,isLightFill,mapSeparatingInk,minimumTextContrast,neutralSectionFill,renderedTextContrast,stateAwareBookableLabelInk,summarizeLabelInkContrast});
@@ -1,7 +1,7 @@
1
1
  import { A as AccessibilityType } from '../../types-eVmh2-Yn.cjs';
2
2
  import { contrastRatioOrNull } from '../color.cjs';
3
- export { M as MIN_POINTER_TARGET_PX, R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-CHAf5J4i.cjs';
4
- import '../../renderer-CuLIU7z1.cjs';
3
+ export { M as MIN_POINTER_TARGET_PX, R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-Dz-WTrRc.cjs';
4
+ import '../../renderer-BjuHQ0bx.cjs';
5
5
 
6
6
  /**
7
7
  * Rendering constants that quality inspection must agree with.
@@ -101,6 +101,37 @@ declare function compositeHexOver(foreground: string, background: string, opacit
101
101
  * warns when they miss this floor; inherited theme ink stays contrast-safe.
102
102
  */
103
103
  declare const AUTHORED_LABEL_MIN_CONTRAST = 3;
104
+ /**
105
+ * Ink for text ON a category's own fill — a legend chip, a hover-card band.
106
+ *
107
+ * The plain "strongest contrast wins" answer is wrong here, and looks it. On
108
+ * the arena's red (#e5484d) black scores 6.3 against white's 3.3, so the rule
109
+ * picked black — and a black-on-red band reads as a warning stripe rather than
110
+ * as a price. Every ticketing map worth comparing against puts white on a
111
+ * saturated fill (owner, on a competitor's card, 2026-09-04).
112
+ *
113
+ * So the direction is chosen by the FILL, and contrast only decides when it can
114
+ * be satisfied outright: a light fill takes dark ink, a dark or saturated fill
115
+ * takes light ink, and either is kept when it clears the small-text bar on its
116
+ * own. The band's text is bold and short, which is what makes the lighter
117
+ * answer legible in practice; it is never used for a paragraph.
118
+ */
119
+ declare function categoryBandInk(fill: string): string;
120
+ /**
121
+ * Ink for a mark whose job is to separate from the MAP, not from the seat.
122
+ *
123
+ * The seat ring inside a mark is contrast-repaired against the seat's own fill,
124
+ * which on a dark chart with mid-grey seats correctly resolves to near-black —
125
+ * and then vanishes into the black around it. The client, on the dark theme
126
+ * (2026-09-04): the focus circle "does not look good, white is lots better",
127
+ * next to a light-theme screenshot where the same treatment reads perfectly.
128
+ *
129
+ * A mark is two jobs, so it gets two inks: the inner ring answers the seat, and
130
+ * the outer ring answers the canvas. This is the second one — the plain
131
+ * opposite of the ground it is drawn on, which is why it needs no contrast
132
+ * search of its own.
133
+ */
134
+ declare function mapSeparatingInk(canvasBackground: string): string;
104
135
  declare function stateAwareBookableLabelInk(fill: string, preferred: string, minContrast?: number): string;
105
136
  /**
106
137
  * Resolve a label colour controlled by an explicit per-object picker.
@@ -140,4 +171,4 @@ interface LabelInkContrastSummary {
140
171
  */
141
172
  declare function summarizeLabelInkContrast(preferred: string, backgrounds: Iterable<string>, minContrast?: number): LabelInkContrastSummary;
142
173
 
143
- export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, explicitOrStateAwareLabelInk, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
174
+ export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, categoryBandInk, compositeHexOver, explicitOrStateAwareLabelInk, isBookableLabelLegibleAtScale, isLightFill, mapSeparatingInk, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
@@ -1,7 +1,7 @@
1
1
  import { A as AccessibilityType } from '../../types-eVmh2-Yn.js';
2
2
  import { contrastRatioOrNull } from '../color.js';
3
- export { M as MIN_POINTER_TARGET_PX, R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-C4-5Oy6-.js';
4
- import '../../renderer-Bx0ucRf6.js';
3
+ export { M as MIN_POINTER_TARGET_PX, R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-DObXwisG.js';
4
+ import '../../renderer-i_mthe5Z.js';
5
5
 
6
6
  /**
7
7
  * Rendering constants that quality inspection must agree with.
@@ -101,6 +101,37 @@ declare function compositeHexOver(foreground: string, background: string, opacit
101
101
  * warns when they miss this floor; inherited theme ink stays contrast-safe.
102
102
  */
103
103
  declare const AUTHORED_LABEL_MIN_CONTRAST = 3;
104
+ /**
105
+ * Ink for text ON a category's own fill — a legend chip, a hover-card band.
106
+ *
107
+ * The plain "strongest contrast wins" answer is wrong here, and looks it. On
108
+ * the arena's red (#e5484d) black scores 6.3 against white's 3.3, so the rule
109
+ * picked black — and a black-on-red band reads as a warning stripe rather than
110
+ * as a price. Every ticketing map worth comparing against puts white on a
111
+ * saturated fill (owner, on a competitor's card, 2026-09-04).
112
+ *
113
+ * So the direction is chosen by the FILL, and contrast only decides when it can
114
+ * be satisfied outright: a light fill takes dark ink, a dark or saturated fill
115
+ * takes light ink, and either is kept when it clears the small-text bar on its
116
+ * own. The band's text is bold and short, which is what makes the lighter
117
+ * answer legible in practice; it is never used for a paragraph.
118
+ */
119
+ declare function categoryBandInk(fill: string): string;
120
+ /**
121
+ * Ink for a mark whose job is to separate from the MAP, not from the seat.
122
+ *
123
+ * The seat ring inside a mark is contrast-repaired against the seat's own fill,
124
+ * which on a dark chart with mid-grey seats correctly resolves to near-black —
125
+ * and then vanishes into the black around it. The client, on the dark theme
126
+ * (2026-09-04): the focus circle "does not look good, white is lots better",
127
+ * next to a light-theme screenshot where the same treatment reads perfectly.
128
+ *
129
+ * A mark is two jobs, so it gets two inks: the inner ring answers the seat, and
130
+ * the outer ring answers the canvas. This is the second one — the plain
131
+ * opposite of the ground it is drawn on, which is why it needs no contrast
132
+ * search of its own.
133
+ */
134
+ declare function mapSeparatingInk(canvasBackground: string): string;
104
135
  declare function stateAwareBookableLabelInk(fill: string, preferred: string, minContrast?: number): string;
105
136
  /**
106
137
  * Resolve a label colour controlled by an explicit per-object picker.
@@ -140,4 +171,4 @@ interface LabelInkContrastSummary {
140
171
  */
141
172
  declare function summarizeLabelInkContrast(preferred: string, backgrounds: Iterable<string>, minContrast?: number): LabelInkContrastSummary;
142
173
 
143
- export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, explicitOrStateAwareLabelInk, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
174
+ export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, categoryBandInk, compositeHexOver, explicitOrStateAwareLabelInk, isBookableLabelLegibleAtScale, isLightFill, mapSeparatingInk, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
@@ -1 +1 @@
1
- import{a as D,b as E,c as F}from"../../chunk-SSBMTFAV.js";import{A,B,C,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"../../chunk-XD2P4ZS4.js";import"../../chunk-JBOTRSMY.js";export{j as ACCESS_GLYPH_PATH,h as ACCESS_GLYPH_VIEWBOX,i as ACCESS_TYPE_GLYPH_PATHS,s as AUTHORED_LABEL_MIN_CONTRAST,e as BOOTH_LABEL_FONT_SIZE,b as DARK_BOOKABLE_LABEL_INK,A as DARK_NEUTRAL_SECTION_FILL,m as GA_CAPACITY_LABEL_FONT_SIZE,p as GA_FILL_OPACITY,f as GA_LABEL_FONT_SIZE,a as LARGE_TEXT_CONTRAST,c as LIGHT_BOOKABLE_LABEL_INK,z as LIGHT_NEUTRAL_SECTION_FILL,E as MIN_POINTER_TARGET_PX,t as MIN_VISIBLE_BOOKABLE_LABEL_PX,D as RENDERED_QUALITY_REPORT_VERSION,r as ROW_LABEL_FONT_SIZE,o as SEAT_LABEL_FONT_SIZE,x as SMALL_TEXT_CONTRAST,w as accessGlyphInk,k as accessGlyphPath,l as bookableMarkerLabel,q as compositeHexOver,v as explicitOrStateAwareLabelInk,F as inspectRenderedQualityEvidence,g as isBookableLabelLegibleAtScale,y as isLightFill,d as minimumTextContrast,B as neutralSectionFill,n as renderedTextContrast,u as stateAwareBookableLabelInk,C as summarizeLabelInkContrast};
1
+ import{a as F,b as G,c as H}from"../../chunk-SKMHD76O.js";import{A,B,C,D,E,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"../../chunk-C7MR6CFC.js";import"../../chunk-JBOTRSMY.js";export{j as ACCESS_GLYPH_PATH,h as ACCESS_GLYPH_VIEWBOX,i as ACCESS_TYPE_GLYPH_PATHS,s as AUTHORED_LABEL_MIN_CONTRAST,e as BOOTH_LABEL_FONT_SIZE,b as DARK_BOOKABLE_LABEL_INK,C as DARK_NEUTRAL_SECTION_FILL,m as GA_CAPACITY_LABEL_FONT_SIZE,p as GA_FILL_OPACITY,f as GA_LABEL_FONT_SIZE,a as LARGE_TEXT_CONTRAST,c as LIGHT_BOOKABLE_LABEL_INK,B as LIGHT_NEUTRAL_SECTION_FILL,G as MIN_POINTER_TARGET_PX,t as MIN_VISIBLE_BOOKABLE_LABEL_PX,F as RENDERED_QUALITY_REPORT_VERSION,r as ROW_LABEL_FONT_SIZE,o as SEAT_LABEL_FONT_SIZE,x as SMALL_TEXT_CONTRAST,z as accessGlyphInk,k as accessGlyphPath,l as bookableMarkerLabel,u as categoryBandInk,q as compositeHexOver,y as explicitOrStateAwareLabelInk,H as inspectRenderedQualityEvidence,g as isBookableLabelLegibleAtScale,A as isLightFill,v as mapSeparatingInk,d as minimumTextContrast,D as neutralSectionFill,n as renderedTextContrast,w as stateAwareBookableLabelInk,E as summarizeLabelInkContrast};
@@ -3,7 +3,7 @@ export { D as DEFAULT_SECTION_CORNER_SMOOTHING, M as MAX_EDGE_SAGITTA_RATIO, R a
3
3
  export { SeatConfidenceDisclosure, seatConfidenceDisclosure } from '../seatConfidence.cjs';
4
4
  import { S as SegmentedRowPlacement } from '../../segmentedRowModel-BYSxfsqX.cjs';
5
5
  export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from '../../sections-DUG5M-hF.cjs';
6
- import { E as ExpandedSeat } from '../../renderer-CuLIU7z1.cjs';
6
+ import { E as ExpandedSeat } from '../../renderer-BjuHQ0bx.cjs';
7
7
 
8
8
  /**
9
9
  * THE bowl resolver — whether a floor's stands wrap a centre, and the smooth
@@ -3,7 +3,7 @@ export { D as DEFAULT_SECTION_CORNER_SMOOTHING, M as MAX_EDGE_SAGITTA_RATIO, R a
3
3
  export { SeatConfidenceDisclosure, seatConfidenceDisclosure } from '../seatConfidence.js';
4
4
  import { S as SegmentedRowPlacement } from '../../segmentedRowModel-N9Z0rnKY.js';
5
5
  export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from '../../sections-Du9QkrCf.js';
6
- import { E as ExpandedSeat } from '../../renderer-Bx0ucRf6.js';
6
+ import { E as ExpandedSeat } from '../../renderer-i_mthe5Z.js';
7
7
 
8
8
  /**
9
9
  * THE bowl resolver — whether a floor's stands wrap a centre, and the smooth
@@ -0,0 +1 @@
1
+ var e={"common.cancel":"Zru\u0161it","common.close":"Zav\u0159\xEDt","common.done":"Hotovo","common.copied":"\u2713 Zkop\xEDrov\xE1no","picker.holdExpired":"Va\u0161e rezervace vypr\u0161ela \u2014 m\xEDsta byla uvoln\u011Bna. Vyberte znovu.","picker.holdExpiredTitle":"Va\u0161e m\xEDsta byla uvoln\u011Bna","picker.holdExpiredBody":"Doba rezervace vypr\u0161ela a m\xEDsta se vr\xE1tila do prodeje.","picker.holdExpiredRestart":"Vybrat m\xEDsta znovu","picker.holdExpiredPickAgain":"Pokra\u010Dujte v\xFDb\u011Brem m\xEDst znovu \u2014 u\u017E mohou b\xFDt obsazen\xE1.","picker.releasedPair":"{first} \xB7 {second}","picker.releasedSeatPlace":"Sektor {section}, \u0159ada {row}, m\xEDsto {seat}","picker.releasedSeatRange":"Sektor {section}, \u0159ada {row}, m\xEDsta {from}\u2013{to}","picker.releasedInSection":"{seats} v sektoru {section}","picker.releasedInSections":"{seats} v sektorech {sections}","picker.releasedGa":"{quantity} \xD7 {area}","picker.poweredBy":"B\u011B\u017E\xED na SeatLayer","picker.testMode":"TESTOVAC\xCD RE\u017DIM","picker.testModeExplained":"Rezervace zde nejsou skute\u010Dn\xE9 a karta se ne\xFA\u010Dtuje","picker.seatsTogether":"M\xEDsta vedle sebe","picker.findClosestSeatsTogether":"Naj\xEDt nejbli\u017E\u0161\xED m\xEDsta vedle sebe","picker.addSeat":"P\u0159idat m\xEDsto","picker.removeSeat":"Odebrat m\xEDsto","picker.added":"P\u0159id\xE1no","picker.findSeats":"Naj\xEDt m\xEDsta","picker.displayOptions":"Mo\u017Enosti zobrazen\xED","picker.closeVenueNavigation":"Zav\u0159\xEDt navigaci po are\xE1lu","picker.orphanHint":"Takto z\u016Fstane jedno m\xEDsto osamocen\xE9 \u2014 zva\u017Ete posun o jedno m\xEDsto.","picker.companionRequiresWheelchair":"Vy\u017Eaduje sousedn\xED m\xEDsto pro voz\xEDk","picker.companionPairRequired":"Ke ka\u017Ed\xE9 vstupence pro doprovod vyberte sousedn\xED m\xEDsto pro voz\xEDk.","map.aria":"Pl\xE1n m\xEDst. \u0160ipkami se pohybujte mezi m\xEDsty, Enterem vyberte.","map.beaconAria":"P\u0159ej\xEDt na sv\xE1 m\xEDsta: {seats}, {name}","map.seatsLeft":"ZB\xDDV\xC1 {count}","map.soldOut":"VYPROD\xC1NO","map.fromPrice":"OD {price}","map.statusHeld":"Rezervov\xE1no","map.statusTaken":"Obsazeno","picker.floor":"Patro","picker.zoomLevel":"\xDArove\u0148 p\u0159ibl\xED\u017Een\xED","picker.rungTip.zones":"P\u0159ehled are\xE1lu \u2014 skupiny sektor\u016F jako Severn\xED tribuna nebo VIP","picker.rungTip.sections":"Bloky sektor\u016F \u2014 vyprodan\xE9 a t\xE9m\u011B\u0159 pln\xE9 sektory tmavnou, aby byla dostupnost vid\u011Bt na prvn\xED pohled","picker.rungTip.seats":"Jednotliv\xE1 m\xEDsta \u2014 bloky se rozpadaj\xED na te\u010Dky","picker.rungLabel.zones":"Z\xD3NY","picker.rungLabel.sections":"SEKTORY","picker.rungLabel.seats":"M\xCDSTA","picker.sectionSummaryAria":"Souhrn sektoru {label}","picker.closeSectionSummary":"Zav\u0159\xEDt souhrn sektoru","picker.seatsLeftInSection.one":"Zb\xFDv\xE1 {count} m\xEDsto","picker.seatsLeftInSection.few":"Zb\xFDvaj\xED {count} m\xEDsta","picker.seatsLeftInSection.many":"Zb\xFDv\xE1 {count} m\xEDsta","picker.seatsLeftInSection.other":"Zb\xFDv\xE1 {count} m\xEDst","picker.seatsLeftShort":"Zb\xFDv\xE1 {count}","picker.overview":"M\xEDsto kon\xE1n\xED","picker.entrance":"Vchod","picker.turnOffAccessibilityFilter":"Vypn\u011Bte filtr pro voz\xED\u010Dk\xE1\u0159e, abyste mohli vybrat toto m\xEDsto","picker.tapSeatHint":"Klepnut\xEDm na m\xEDsto si zobraz\xEDte v\xFDhled","picker.ticketTierFor":"Typ vstupenky pro {label}","picker.viewFromSeat":"V\xFDhled z m\xEDsta {label}","picker.real360":"SKUTE\u010CN\xDDCH 360\xB0","picker.preview":"N\xC1HLED","picker.sightline":"\u2248 {m} m k p\xF3diu","picker.panorama360":"Fotka are\xE1lu ve 360\xB0","picker.illustrationCaption":"ilustrace \xB7 \u2248 {m} m od p\xF3dia","picker.restrictedView":"Omezen\xFD v\xFDhled","picker.obstructedView":"Zakryt\xFD v\xFDhled","picker.premiumSeat":"Pr\xE9miov\xE9 m\xEDsto","picker.hideLimitedView":"Skr\xFDt m\xEDsta s omezen\xFDm v\xFDhledem","picker.bestSeatsPremium":"Nejlep\u0161\xED m\xEDsta","picker.premiumFallbackNote":"\u017D\xE1dn\xFD pr\xE9miov\xFD blok pro {count} \u2014 zobrazujeme nejlep\u0161\xED dostupnou variantu","picker.loading3d":"Sestavujeme are\xE1l ve 3D\u2026","picker.unavailable3d":"3D se nepoda\u0159ilo spustit. Pl\xE1n m\xEDst je d\xE1l dostupn\xFD.","picker.jumpToSection":"P\u0159ej\xEDt na sektor","picker.salesClosedPill":"Prodej ukon\u010Den","picker.salesClosedCopy":"Prodej vstupenek na tuto akci skon\u010Dil.","picker.salesClosedCta":"Prodej ukon\u010Den","picker.salesClosedToast":"Prodej na tuto akci je ukon\u010Den.","picker.holdReassurance":"Va\u0161e po dobu {time} \u2014 zat\xEDm v\xE1m nic nestrhneme.","picker.securingSeats":"Zaji\u0161\u0165ujeme va\u0161e m\xEDsta\u2026","picker.openingCheckout":"Otev\xEDr\xE1me zabezpe\u010Denou platbu\u2026","picker.peekSecured":"\u2713 {count} zaji\u0161t\u011Bno \xB7 {total} \u2014 zat\xEDm v\xE1m nic nestrhneme","picker.priceHint":"Barvy v pl\xE1nu jsou typy vstupenek \u2014 klepnut\xEDm na n\u011Bkter\xFD n\xED\u017Ee zobraz\xEDte jen ta m\xEDsta.","picker.findTogetherInstead":"Rad\u011Bji naj\xEDt m\xEDsta vedle sebe","picker.keepMyPicks":"Ponechat m\u016Fj v\xFDb\u011Br","picker.accessExpiredBody":"Abychom v\xE1m uk\xE1zali aktu\xE1ln\xED m\xEDsta, obnovte pros\xEDm str\xE1nku.","picker.accessExpiredTitle":"Relace vypr\u0161ela","picker.accessInvalidBody":"St\xE1le si m\u016F\u017Eete koupit v\u0161e, co je zobrazeno jako dostupn\xE9. O p\u0159\xEDstup ke zbytku po\u017E\xE1dejte toho, kdo v\xE1m poslal odkaz.","picker.accessInvalidTitle":"Nepoda\u0159ilo se n\xE1m ov\u011B\u0159it v\xE1\u0161 p\u0159\xEDstup","picker.accessPausedBody":"Po\u0159adatel tento v\xFDb\u011Br pozastavil. Zkuste to za p\xE1r minut znovu.","picker.accessPausedTitle":"Tato m\xEDsta jsou pr\xE1v\u011B blokovan\xE1","picker.accessRefresh":"Obnovit","picker.accessRetry":"Zkusit znovu","picker.accessRevokedBody":"Po\u017E\xE1dejte toho, kdo v\xE1m poslal odkaz, o nov\xFD, a\u0165 m\u016F\u017Eete tato m\xEDsta d\xE1l rezervovat.","picker.accessRevokedTitle":"Tento p\u0159\xEDstupov\xFD odkaz u\u017E nen\xED aktivn\xED","picker.accessiblePhysicalSeat":"Bezbari\xE9rov\xE9 fyzick\xE9 m\xEDsto","picker.addMinutes":"+{count} min","picker.accessibilityOptions":"P\u0159\xEDstupnost a barvy","picker.addingEllipsis":"P\u0159id\xE1v\xE1n\xED\u2026","picker.allLevels":"V\u0161echny \xFArovn\u011B","picker.allPlacesBookedTogether":"V\u0161ech {count} m\xEDst se rezervuje spole\u010Dn\u011B jako jeden exkluzivn\xED st\u016Fl.","picker.allPrices":"V\u0161echny ceny","picker.allSeats":"V\u0161echna m\xEDsta","picker.allSetTitle":"V\u0161e je p\u0159ipraveno","picker.anyTicketType":"Jak\xFDkoli typ vstupenky","picker.anyVenueZone":"Jak\xE1koli z\xF3na are\xE1lu","picker.areas":"Oblasti","picker.available":"Dostupn\xE9","picker.backToMap":"Zp\u011Bt na pl\xE1n","picker.backToVenue":"Zp\u011Bt do are\xE1lu","picker.bestSeatsStar":"\u2726 Nejlep\u0161\xED m\xEDsta","picker.booth":"St\xE1nek","picker.capacityGuests":"{count} host\u016F","picker.change":"Zm\u011Bnit","picker.chartDerivedModel":"Model odvozen\xFD z pl\xE1nu","picker.chartDerivedSeatEye":"\u017Div\xE9 3D \xB7 pohled z v\xFD\u0161ky o\u010D\xED odvozen\xFD z pl\xE1nu \xB7 nezam\u011B\u0159eno na m\xEDst\u011B","picker.checkConnection":"Zkontrolujte p\u0159ipojen\xED a zkuste to znovu.","picker.checkoutCouldNotBeOpened":"Platbu se nepoda\u0159ilo otev\u0159\xEDt. Va\u0161e m\xEDsta jsou st\xE1le rezervovan\xE1 \u2014 zkuste to pros\xEDm znovu.","picker.chooseAnotherToCompare":"Vyberte dal\u0161\xED m\xEDsto k porovn\xE1n\xED.","picker.chooseGuestsCopy":"Vyberte, kolik host\u016F bude sed\u011Bt spolu. Tento st\u016Fl je rezervov\xE1n v\xFDhradn\u011B pro va\u0161i spole\u010Dnost.","picker.chooseMinMaxGuests":"Vyberte {min}\u2013{max} host\u016F","picker.clearSavedSeatComparison":"Vymazat ulo\u017Een\xE9 porovn\xE1n\xED m\xEDst","picker.close":"Zav\u0159\xEDt","picker.closeSeatStatus":"Zav\u0159\xEDt stav m\xEDsta","picker.closestGroupChosenInstantly":"Nejbli\u017E\u0161\xED dostupn\xE1 skupina, vybran\xE1 okam\u017Eit\u011B.","picker.collapseTicketPanel":"Sbalit panel vstupenek","picker.colorblindColors":"Barvy vhodn\xE9 pro barvoslep\xE9","picker.companionSeatsNote":"Sousedn\xED m\xEDsta pro doprovod z\u016Fst\xE1vaj\xED voliteln\xE1","picker.accessFreeCount":"Voln\xFDch: {count}","picker.accessNoneLeft":"\u017D\xE1dn\xE1 voln\xE1","picker.accessSpreadHint":"{count} bezbari\xE9rov\xFDch m\xEDst v {sections} sektorech \xB7 klepn\u011Bte na zv\xFDrazn\u011Bn\xFD sektor","picker.holdLapsedStillFree.one":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D. Toto m\xEDsto je st\xE1le voln\xE9.","picker.holdLapsedStillFree.few":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D. Tato m\xEDsta jsou st\xE1le voln\xE1.","picker.holdLapsedStillFree.many":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D. Tato m\xEDsta jsou st\xE1le voln\xE1.","picker.holdLapsedStillFree.other":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D. Tato m\xEDsta jsou st\xE1le voln\xE1.","picker.holdLapsedSomeTaken.one":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a {count} z t\u011Bchto m\xEDst je ji\u017E obsazen\xE9. Zbytek je st\xE1le voln\xFD.","picker.holdLapsedSomeTaken.few":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a {count} z t\u011Bchto m\xEDst jsou ji\u017E obsazen\xE1. Zbytek je st\xE1le voln\xFD.","picker.holdLapsedSomeTaken.many":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a {count} z t\u011Bchto m\xEDst je ji\u017E obsazeno. Zbytek je st\xE1le voln\xFD.","picker.holdLapsedSomeTaken.other":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a {count} z t\u011Bchto m\xEDst je ji\u017E obsazeno. Zbytek je st\xE1le voln\xFD.","picker.holdLapsedAllTaken.one":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a toto m\xEDsto je ji\u017E obsazen\xE9.","picker.holdLapsedAllTaken.few":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a tato m\xEDsta jsou ji\u017E obsazen\xE1.","picker.holdLapsedAllTaken.many":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a tato m\xEDsta jsou ji\u017E obsazen\xE1.","picker.holdLapsedAllTaken.other":"Va\u0161e rezervace vypr\u0161ela, zat\xEDmco jste byli pry\u010D, a tato m\xEDsta jsou ji\u017E obsazen\xE1.","picker.holdLapsedSelectAgain.one":"Vybrat ho znovu","picker.holdLapsedSelectAgain.few":"Vybrat je znovu","picker.holdLapsedSelectAgain.many":"Vybrat je znovu","picker.holdLapsedSelectAgain.other":"Vybrat je znovu","picker.compareCount":"Porovnat {count}","picker.compareWithSaved":"Porovnat s ulo\u017Een\xFDm","picker.confirmOrCancelSeat":"Potvrdit nebo zru\u0161it toto m\xEDsto","picker.confirmSeatLabel":"Potvrdit m\xEDsto {label}","picker.confirmYourTable":"Potvr\u010Fte sv\u016Fj st\u016Fl","picker.confirmedAndOnWay":"potvrzeno. Potvrzen\xED je na cest\u011B.","picker.continue":"Pokra\u010Dovat","picker.continueToCheckout":"Pokra\u010Dovat k platb\u011B","picker.couldNotAddMoreTime":"Nepoda\u0159ilo se p\u0159idat \u010Das \u2014 p\u0159ejd\u011Bte pros\xEDm k platb\u011B hned.","picker.couldNotFindSeatsTogether":"Nena\u0161li jsme {count} m\xEDst vedle sebe. Zkuste m\xE9n\u011B m\xEDst nebo jin\xFD typ vstupenky.","picker.couldNotReleaseTickets":"Va\u0161e vstupenky se nepoda\u0159ilo uvolnit. Rezervace z\u016Fst\xE1v\xE1 beze zm\u011Bny.","picker.couldNotRemoveLabel":"Nepoda\u0159ilo se odebrat {label}. Rezervace z\u016Fst\xE1v\xE1 beze zm\u011Bny.","picker.currentOffer":"Aktu\xE1ln\xED nab\xEDdka","picker.currentTicketOffer":"Aktu\xE1ln\xED nab\xEDdka vstupenek","picker.dragToLookAround":"Ta\u017Een\xEDm se rozhl\xE9dnete \xB7 kole\u010Dkem p\u0159ibl\xED\u017E\xEDte","picker.dragToLookTouch":"Ta\u017Een\xEDm se rozhl\xE9dnete \xB7 sev\u0159en\xEDm p\u0159ibl\xED\u017E\xEDte \xB7 klepnut\xEDm na \u2715 zav\u0159ete","picker.dragToLookMouse":"Ta\u017Een\xEDm se rozhl\xE9dnete \xB7 sev\u0159en\xEDm nebo kole\u010Dkem p\u0159ibl\xED\u017E\xEDte \xB7 Esc zav\u0159ete","picker.emptyWheelchairSpace":"Voln\xE9 m\xEDsto pro voz\xEDk","picker.exitFullScreen":"Ukon\u010Dit celou obrazovku","picker.fewer":"M\xE9n\u011B","picker.fewerGuests":"M\xE9n\u011B host\u016F","picker.fewerSeats":"M\xE9n\u011B m\xEDst","picker.filterAndFocusByPrice":"Filtrovat a zv\xFDraznit m\xEDsta podle ceny","picker.filters":"Filtry","picker.findBestSeatsCount.one":"Naj\xEDt {count} nejlep\u0161\xED m\xEDsto","picker.findBestSeatsCount.few":"Naj\xEDt {count} nejlep\u0161\xED m\xEDsta","picker.findBestSeatsCount.many":"Naj\xEDt {count} nejlep\u0161\xEDho m\xEDsta","picker.findBestSeatsCount.other":"Naj\xEDt {count} nejlep\u0161\xEDch m\xEDst","picker.findBestSeatsTogether":"Naj\xEDt nejlep\u0161\xED m\xEDsta vedle sebe","picker.findNewSeats":"Naj\xEDt nov\xE1 m\xEDsta","picker.findingBestSeats":"Hled\xE1me nejlep\u0161\xED m\xEDsta\u2026","picker.findingEllipsis":"Hled\xE1n\xED\u2026","picker.fitToScreen":"P\u0159izp\u016Fsobit obrazovce","picker.flat2dMap":"Ploch\xFD 2D pl\xE1n","picker.flexiblePartyTypeWord":"Flexibiln\xED spole\u010Dnost \xB7 {typeWord}","picker.fullScreen":"Cel\xE1 obrazovka","picker.generalAdmission":"Voln\xFD vstup","picker.guestCountCouldNotBeSecured":"Tento po\u010Det host\u016F se nepoda\u0159ilo zajistit. Va\u0161e rezervace stolu z\u016Fst\xE1v\xE1 beze zm\u011Bny.","picker.guestCountNoLongerAvailable":"Tento po\u010Det host\u016F u\u017E nen\xED dostupn\xFD. Va\u0161e rezervace z\u016Fst\xE1v\xE1 beze zm\u011Bny.","picker.guests":"Host\xE9","picker.guestsCount":"{count} host\u016F","picker.guestsCountEdit":"{count} host\u016F \xB7 Upravit","picker.held":"Rezervov\xE1no","picker.heldByOther":"Rezervov\xE1no jin\xFDm kupuj\xEDc\xEDm \u2014 m\u016F\u017Ee se uvolnit","picker.heldForYou":"Rezervov\xE1no pro v\xE1s","picker.heldSeatExplanation":"Toto m\xEDsto dr\u017E\xED jin\xFD kupuj\xEDc\xED. M\u016F\u017Ee se znovu uvolnit.","picker.heldTicketsReleased":"Rezervovan\xE9 vstupenky uvoln\u011Bny. Vyberte si nov\xE1 m\xEDsta.","picker.heldTicketsRestored":"Va\u0161e rezervovan\xE9 vstupenky byly obnoveny.","picker.hidePanel":"Skr\xFDt panel","picker.hideTicketPanel":"Skr\xFDt panel vstupenek","picker.holdSeatsAndCheckout":"Rezervovat m\xEDsta a zaplatit","picker.howOfferWorks":"Jak funguje nab\xEDdka {name}","picker.interactive3dVenueView":"Interaktivn\xED 3D pohled na are\xE1l","picker.keepMine":"Ponechat moje","picker.labelNoLongerAvailable":"{label} u\u017E nen\xED dostupn\xE9.","picker.labelRemoved":"{label} odebr\xE1no.","picker.labelRemovedFromHold":"{label} odebr\xE1no z va\u0161\xED rezervace.","picker.labelRestored":"{label} obnoveno.","picker.labelsNoLongerAvailable.one":"{labels} u\u017E nen\xED dostupn\xE9. Vyberte jin\xE9 m\xEDsto.","picker.labelsNoLongerAvailable.few":"{labels} u\u017E nejsou dostupn\xE1. Vyberte jinou skupinu.","picker.labelsNoLongerAvailable.many":"{labels} u\u017E nejsou dostupn\xE1. Vyberte jinou skupinu.","picker.labelsNoLongerAvailable.other":"{labels} u\u017E nejsou dostupn\xE1. Vyberte jinou skupinu.","picker.leftCount.one":"zb\xFDv\xE1 {count}","picker.leftCount.few":"zb\xFDvaj\xED {count}","picker.leftCount.many":"zb\xFDv\xE1 {count}","picker.leftCount.other":"zb\xFDv\xE1 {count}","picker.levelNumber":"\xDArove\u0148 {number}","picker.levels":"\xDArovn\u011B","picker.liveAvailability":"\u017Div\xE1 dostupnost \u2014 m\xEDsta se aktualizuj\xED v re\xE1ln\xE9m \u010Dase","picker.loadingSeatMap":"Na\u010D\xEDt\xE1n\xED pl\xE1nu m\xEDst\u2026","picker.lookAroundLive3d":"Rozhl\xE9dn\u011Bte se v \u017Eiv\xE9m 3D","picker.manualTicketsRemovedNote":"Ru\u010Dn\u011B vybran\xE9 vstupenky odebereme a\u017E pot\xE9, co zajist\xEDme novou skupinu.","picker.map":"Pl\xE1n","picker.mapDidNotLoad":"Pl\xE1n m\xEDst se nena\u010Detl","picker.maxTicketsForOrder":"Do t\xE9to objedn\xE1vky m\u016F\u017Eete vybrat nejv\xFD\u0161e {count} vstupenek.","picker.selectExactMore":"Vyberte je\u0161t\u011B {count}","picker.selectExactCount":"Vyberte p\u0159esn\u011B {count} vstupenek","picker.selectMinimumMore":"Vyberte je\u0161t\u011B {count}","picker.adjustSeatSelection":"Upravit v\xFDb\u011Br m\xEDst","picker.selectSeatsTogether":"Vyberte m\xEDsta vedle sebe ve stejn\xE9 \u0159ad\u011B a kategorii vstupenky.","picker.minToMaxGuests":"{min} a\u017E {max} host\u016F","picker.more":"V\xEDce","picker.moreCount":"+{count} dal\u0161\xEDch","picker.showLess":"Zobrazit m\xE9n\u011B","picker.moreGuests":"V\xEDce host\u016F","picker.moreSeats":"V\xEDce m\xEDst","picker.moreSelectedCount":"vybr\xE1no o {count} v\xEDce","picker.moreTimeAdded":"\u010Cas prodlou\u017Een \u2014 va\u0161e m\xEDsta jsou st\xE1le rezervovan\xE1.","picker.noAccessibilityMetadata":"Nebyly poskytnuty \xFAdaje o p\u0159\xEDstupnosti","picker.noAuthoredRestriction":"Po\u0159adatel neuvedl \u017E\xE1dn\xE9 omezen\xED","picker.noSeatsSelected":"Nevybr\xE1na \u017E\xE1dn\xE1 m\xEDsta","picker.notChargedYet":"Zat\xEDm v\xE1m nic nestrhneme.","picker.notForSale":"Nen\xED v prodeji","picker.notForSaleExplanation":"Toto m\xEDsto nen\xED sou\u010D\xE1st\xED aktu\xE1ln\xEDho prodeje.","picker.numberOfGuests":"Po\u010Det host\u016F","picker.offerDetailActive":"Tato cena se automaticky vztahuje na zp\u016Fsobil\xE1 m\xEDsta. Vstupenky v aktivn\xEDch ko\u0161\xEDc\xEDch do\u010Dasn\u011B sni\u017Euj\xED dostupn\xE9 mno\u017Estv\xED; uvoln\u011Bn\xE9 nebo vypr\u0161el\xE9 rezervace ho vracej\xED. Po skon\u010Den\xED nab\xEDdky nastupuje dal\u0161\xED odpov\xEDdaj\xEDc\xED nab\xEDdka nebo b\u011B\u017En\xE1 cena vstupenky.","picker.offerDetailUpcoming":"Vstupenky jsou nyn\xED k dispozici za b\u011B\u017Enou cenu. Tato napl\xE1novan\xE1 nab\xEDdka se na zp\u016Fsobil\xE1 m\xEDsta uplatn\xED automaticky, jakmile za\u010Dne.","picker.offerRemainingAvailable":"dostupn\xFDch: {count}","picker.offerStarts":"za\u010D\xEDn\xE1 {time}","picker.offerUntil":"do {time}","picker.oneSeatSaved":"Ulo\u017Eeno 1 m\xEDsto","picker.oneSeatSavedChooseAnother":"Jedno m\xEDsto ulo\u017Eeno; vyberte dal\u0161\xED k porovn\xE1n\xED","picker.openAuthored360":"Otev\u0159\xEDt are\xE1l ve 360\xB0","picker.openComparison":"Otev\u0159\xEDt porovn\xE1n\xED","picker.openComparisonOfSeats":"Otev\u0159\xEDt porovn\xE1n\xED {count} m\xEDst","picker.openTicketPanel":"Otev\u0159\xEDt panel vstupenek","picker.peekFromPrice":"Od {price}","picker.peekTicketsTotal.one":"{count} vstupenka \xB7 {total}","picker.peekTicketsTotal.few":"{count} vstupenky \xB7 {total}","picker.peekTicketsTotal.many":"{count} vstupenky \xB7 {total}","picker.peekTicketsTotal.other":"{count} vstupenek \xB7 {total}","picker.perGuestPrice":"{price} za hosta","picker.pickYourSeats":"Vyberte si m\xEDsta","picker.preferredTicketType":"Preferovan\xFD typ vstupenky","picker.preferredVenueZone":"Preferovan\xE1 z\xF3na are\xE1lu","picker.priceNotSupplied":"Cena neuvedena","picker.releaseHeldTickets":"Uvolnit rezervovan\xE9 vstupenky a vybrat jin\xE1 m\xEDsta","picker.releasingEllipsis":"Uvol\u0148ov\xE1n\xED\u2026","picker.removeHeldTicketLabel":"Odebrat rezervovanou vstupenku {label}","picker.removeSeatLabel":"Odebrat {label}","picker.removeTicketsUntilOrFewer":"Odeb\xEDrejte vstupenky, dokud jich v objedn\xE1vce nebude {count} nebo m\xE9n\u011B.","picker.replaceCurrentChoices":"Nahradit v\xE1\u0161 sou\u010Dasn\xFD v\xFDb\u011Br?","picker.review":"Zkontrolovat","picker.row":"\u0158ada","picker.rowLabel":"\u0158ada {label}","picker.saveToCompare":"Ulo\u017Eit k porovn\xE1n\xED","picker.savedForComparison":"Ulo\u017Eeno k porovn\xE1n\xED","picker.savedSeatComparison":"Ulo\u017Een\xE9 porovn\xE1n\xED m\xEDst","picker.scheduledOffer":"Napl\xE1novan\xE1 nab\xEDdka","picker.seat":"M\xEDsto","picker.seatCount.one":"{count} m\xEDsto","picker.seatCount.few":"{count} m\xEDsta","picker.seatCount.many":"{count} m\xEDsta","picker.seatCount.other":"{count} m\xEDst","picker.seatJustTakenByAnother":"M\xEDsto {label} pr\xE1v\u011B obsadil jin\xFD kupuj\xEDc\xED.","picker.seatLabel":"M\xEDsto {label}","picker.seatNoLongerAvailable":"Toto m\xEDsto u\u017E nen\xED dostupn\xE9.","picker.seatNoLongerYours":"N\u011Bkter\xE1 m\xEDsta u\u017E pro v\xE1s nejsou dostupn\xE1. Byla odebr\xE1na z va\u0161\xED objedn\xE1vky.","picker.seatNumberLower":"m\xEDsto {label}","picker.seatSalesClosedForEvent":"Prodej m\xEDst na tuto akci byl ukon\u010Den.","picker.seatSelection":"V\xFDb\u011Br m\xEDst","picker.seatStatusLegend":"Legenda stav\u016F m\xEDst","picker.seatTaken":"N\u011Bkdo jin\xFD obsadil m\xEDsto, kter\xE9 jste si vybrali. Bylo odebr\xE1no z va\u0161\xED objedn\xE1vky.","picker.seatsJustTaken":"Jedno nebo v\xEDce m\xEDst bylo pr\xE1v\u011B obsazeno. Vyberte pros\xEDm znovu.","picker.seatsJustTakenInCategory.one":"{count} m\xEDsto pr\xE1v\u011B obsazeno v {label} \xB7 zb\xFDv\xE1 {left}","picker.seatsJustTakenInCategory.few":"{count} m\xEDsta pr\xE1v\u011B obsazena v {label} \xB7 zb\xFDv\xE1 {left}","picker.seatsJustTakenInCategory.many":"{count} m\xEDsta pr\xE1v\u011B obsazena v {label} \xB7 zb\xFDv\xE1 {left}","picker.seatsJustTakenInCategory.other":"{count} m\xEDst pr\xE1v\u011B obsazeno v {label} \xB7 zb\xFDv\xE1 {left}","picker.seatsNoLongerAvailableTryAnother":"Tato m\xEDsta u\u017E nejsou dostupn\xE1. Zkuste jin\xFD po\u010Det nebo typ vstupenky.","picker.seatsSecured":"M\xEDsta zaji\u0161t\u011Bna","picker.seatsSelectedCount.one":"vybr\xE1no {count}","picker.seatsSelectedCount.few":"vybr\xE1ny {count}","picker.seatsSelectedCount.many":"vybr\xE1no {count}","picker.seatsSelectedCount.other":"vybr\xE1no {count}","picker.section":"Sektor","picker.secureMore":"Zajistit v\xEDce","picker.secureMoreAndCheckout":"Zajistit je\u0161t\u011B {count} a zaplatit","picker.securedCount":"zaji\u0161t\u011Bno {count}","picker.seeItIn3d":"Zobrazit ve 3D","picker.select":"Vybrat","picker.selectSeats":"Vybrat m\xEDsta","picker.selectTable":"Vybrat st\u016Fl","picker.selectWholeTable":"Vybrat cel\xFD st\u016Fl","picker.selected":"Vybr\xE1no","picker.selectingEllipsis":"Vyb\xEDr\xE1n\xED\u2026","picker.showAllSeats":"Zobrazit v\u0161echna m\xEDsta","picker.showAllTicketTypes":"Zobrazit v\u0161ech {count} typ\u016F vstupenek","picker.showFewer":"Zobrazit m\xE9n\u011B","picker.showLabelSeatsOnMap":"Zobrazit m\xEDsta {label} v pl\xE1nu","picker.showTicketPanel":"Zobrazit panel vstupenek","picker.sold":"Prod\xE1no","picker.soldOutCopy":"Na tuto akci nejsou moment\xE1ln\u011B dostupn\xE1 \u017E\xE1dn\xE1 \u010D\xEDslovan\xE1 m\xEDsta.","picker.soldOutEyebrow":"Tato akce","picker.soldOutTitle":"Vyprod\xE1no","picker.soldSeatExplanation":"Toto m\xEDsto u\u017E bylo zarezervov\xE1no.","picker.statusAvailable":"dostupn\xE9","picker.statusOnHold":"rezervov\xE1no","picker.statusTaken2":"obsazeno","picker.table":"St\u016Fl","picker.tableCapacity":"Kapacita stolu","picker.tableUpdatedForGuests":"{label} upraveno pro {count} host\u016F.","picker.temporarilyHeld":"Do\u010Dasn\u011B rezervov\xE1no","picker.ticketPrices":"Ceny vstupenek","picker.ticketTypeSoldOut":"Tento typ vstupenky je vyprodan\xFD. Zkuste jin\xFD typ.","picker.tickets":"Vstupenky","picker.ticketsCount.one":"{count} vstupenka","picker.ticketsCount.few":"{count} vstupenky","picker.ticketsCount.many":"{count} vstupenky","picker.ticketsCount.other":"{count} vstupenek","picker.toggleColorblindColors":"P\u0159epnout barvy vhodn\xE9 pro barvoslep\xE9","picker.total":"Celkem","picker.trayHintTapOrBest":"Klepn\u011Bte na m\xEDsto v pl\xE1nu, nebo nechte n\xE1s vybrat nejlep\u0161\xED dostupn\xE1 za v\xE1s.","picker.trayHintTapOrStanding":"Klepn\u011Bte na m\xEDsto v pl\xE1nu \u2014 nebo si n\xED\u017Ee vezm\u011Bte vstupenky na st\xE1n\xED.","picker.undo":"Zp\u011Bt","picker.upcomingTicketOffer":"Nadch\xE1zej\xEDc\xED nab\xEDdka vstupenek","picker.updateTable":"Aktualizovat st\u016Fl","picker.updatingEllipsis":"Aktualizace\u2026","picker.venueView":"Pohled na are\xE1l","picker.recentreOnStage":"Vycentrovat zp\u011Bt na p\xF3dium","picker.stopYourSeat":"Va\u0161e m\xEDsto","picker.stopYourRow":"Va\u0161e \u0159ada","picker.stopYourSection":"V\xE1\u0161 sektor","picker.stopWholeVenue":"Cel\xFD are\xE1l","picker.viewFromHere":"V\xFDhled odsud","picker.viewFromYourSeat":"pohled z va\u0161eho m\xEDsta","picker.fromYourSeat":"z va\u0161eho m\xEDsta","picker.viewFromThisSeat":"V\xFDhled z tohoto m\xEDsta","picker.wholeTypeWord":"Cel\xFD {typeWord}","picker.willChooseClosestGroup":"Vybereme za v\xE1s nejbli\u017E\u0161\xED dostupnou skupinu.","picker.willFindSeatsTogether":"Najdeme {count} m\xEDst vedle sebe.","picker.yourSeats":"Va\u0161e m\xEDsta","picker.zoomIn":"P\u0159ibl\xED\u017Eit","picker.zoomOut":"Odd\xE1lit","picker.closeVenueNav":"Zav\u0159\xEDt","picker.levelsAndAreas":"\xDArovn\u011B a oblasti","picker.gaChooseTickets":"Kolik vstupenek?","picker.gaAdd.one":"P\u0159idat {count} vstupenku \xB7 {price}","picker.gaAdd.few":"P\u0159idat {count} vstupenky \xB7 {price}","picker.gaAdd.many":"P\u0159idat {count} vstupenky \xB7 {price}","picker.gaAdd.other":"P\u0159idat {count} vstupenek \xB7 {price}","picker.gaUpdate.one":"Upravit \xB7 {count} vstupenka","picker.gaUpdate.few":"Upravit \xB7 {count} vstupenky","picker.gaUpdate.many":"Upravit \xB7 {count} vstupenky","picker.gaUpdate.other":"Upravit \xB7 {count} vstupenek","picker.gaRemove":"Odebrat","picker.gaAreasHeading":"Oblasti","picker.gaTrayHintTapArea":"Klepnut\xEDm na oblast v pl\xE1nu vyberete vstupenky.","picker.gaAdded.one":"P\u0159id\xE1na {count} vstupenka {area}, {price}","picker.gaAdded.few":"P\u0159id\xE1ny {count} vstupenky {area}, {price}","picker.gaAdded.many":"P\u0159id\xE1ny {count} vstupenky {area}, {price}","picker.gaAdded.other":"P\u0159id\xE1no {count} vstupenek {area}, {price}","picker.gaRemoved":"Vstupenky {area} odebr\xE1ny","picker.gaChooseForArea":"Vyberte vstupenky pro {area}","picker.holdSeatsForAllPerformances":"Rezervovat m\xEDsta na v\u0161echna {count} p\u0159edstaven\xED","picker.completeAllPerformances":"Dokon\u010Dit v\u0161echna p\u0159edstaven\xED ({complete}/{total})","picker.groupTrayHint":"Vyberte m\xEDsta jednou \u2014 stejn\xE1 m\xEDsta budou rezervov\xE1na na ka\u017Ed\xE9 p\u0159edstaven\xED.","picker.groupPerPerformanceTrayHint":"Vyberte m\xEDsta na toto p\u0159edstaven\xED a pak dokon\u010Dete ka\u017Ed\xFD term\xEDn v\xFD\u0161e.","picker.group.sameSeatSummary":"Vyberte jednou. Stejn\xE1 m\xEDsta budou rezervov\xE1na na v\u0161echna {count} p\u0159edstaven\xED.","picker.group.perPerformanceSummary":"Vyberte m\xEDsta na ka\u017Ed\xE9 p\u0159edstaven\xED. V\u0161ech {count} v\xFDb\u011Br\u016F se rezervuje spole\u010Dn\u011B.","picker.group.allDates":"Zahrnuto v\u0161ech {count} term\xEDn\u016F","picker.group.flexibleDatesInView":"V zobrazen\xED je v\u0161ech {count} term\xEDn\u016F","picker.group.flexibleDatesSelected":"Vybr\xE1no {selected} z {total} term\xEDn\u016F","picker.group.performances":"P\u0159edstaven\xED","picker.group.heldForEveryPerformance":"Rezervov\xE1no na ka\u017Ed\xE9 p\u0159edstaven\xED","picker.group.notStarted":"Neza\u010Dato","picker.group.inProgress":"Prob\xEDh\xE1","picker.group.complete":"Hotovo","picker.group.needsAttention":"Vy\u017Eaduje pozornost","picker.group.previousPerformance":"P\u0159edchoz\xED p\u0159edstaven\xED","picker.group.nextPerformance":"Dal\u0161\xED p\u0159edstaven\xED","picker.group.performanceOpened":"Nyn\xED vyb\xEDr\xE1te m\xEDsta na {performance}.","picker.group.checkingAvailability":"Zji\u0161\u0165ujeme, kter\xE1 m\xEDsta jsou voln\xE1 na ka\u017Ed\xE9 p\u0159edstaven\xED\u2026","picker.group.securing":"Rezervujeme tato m\xEDsta na ka\u017Ed\xE9 p\u0159edstaven\xED. Chv\xEDli strpen\xED.","picker.group.commitPending":"St\xE1le rezervujeme tato m\xEDsta na ka\u017Ed\xE9 p\u0159edstaven\xED. SeatLayer pracuje d\xE1l a tato str\xE1nka sleduje v\xFDsledek.","picker.group.outcomeUnknown":"Ov\u011B\u0159ujeme, zda byla va\u0161e m\xEDsta rezervov\xE1na. Zat\xEDm nevyb\xEDrejte jin\xE1 m\xEDsta.","picker.group.longRunning":"Trv\xE1 to d\xE9le ne\u017E obvykle. St\xE1le ov\u011B\u0159ujeme stejn\xFD po\u017Eadavek. Neodes\xEDlejte ho znovu. Referen\u010Dn\xED \u010D\xEDslo: {reference}.","picker.group.abortPending":"Nepoda\u0159ilo se n\xE1m rezervovat ka\u017Ed\xE9 p\u0159edstaven\xED. Ov\u011B\u0159ujeme, \u017Ee jsou v\u0161echna m\xEDsta uvoln\u011Bna, ne\u017E to zkus\xEDte znovu.","picker.group.secured":"M\xEDsta jsou rezervov\xE1na na ka\u017Ed\xE9 p\u0159edstaven\xED. Pokra\u010Dujte, a\u017E budete cht\xEDt.","picker.group.notSecured":"Tato m\xEDsta se nepoda\u0159ilo rezervovat na ka\u017Ed\xE9 p\u0159edstaven\xED. Nic nen\xED rezervov\xE1no. Zkuste to znovu.","picker.group.retry":"Zkusit znovu","picker.group.salesClosed":"M\xEDsta pro tuto s\xE9rii p\u0159edstaven\xED nejsou nyn\xED dostupn\xE1. Vra\u0165te se na str\xE1nku akce pro dal\u0161\xED mo\u017Enosti.","picker.group.revisionChanged":"Tato s\xE9rie p\u0159edstaven\xED se zm\u011Bnila. P\u0159ed dal\u0161\xEDm v\xFDb\u011Brem m\xEDst si projd\u011Bte zahrnut\xE1 p\u0159edstaven\xED.","picker.group.legendTitle":"Dostupnost m\xEDst","picker.group.legendUnavailable":"Nedostupn\xE9","picker.group.partlyAvailableTitle":"Voln\xE9 jen n\u011Bkter\xE9 ve\u010Dery","picker.group.notAvailableOn":"Nedostupn\xE9 {dates}","picker.group.nightFree":"Voln\xE9","picker.group.nightBlocked":"Nedostupn\xE9","picker.group.pickSeatFreeEveryNight":"Vyberte m\xEDsto, kter\xE9 je voln\xE9 ka\u017Ed\xFD ve\u010Der.","picker.group.chooseNightByNight":"Vybrat m\xEDsta ve\u010Der po ve\u010Deru","picker.group.nightByNightStarted":"Nyn\xED vyb\xEDr\xE1te m\xEDsta pro ka\u017Ed\xE9 p\u0159edstaven\xED zvl\xE1\u0161\u0165. V\xE1\u0161 v\xFDb\u011Br byl zru\u0161en.","picker.group.yourSeatsByNight":"Va\u0161e m\xEDsta po ve\u010Derech","picker.group.noSeatsChosenYet":"Zat\xEDm \u017E\xE1dn\xE1 m\xEDsta","picker.group.chosenOfTotal":"{chosen} z {total}","picker.group.needsMoreSeats":"Chyb\xED je\u0161t\u011B {count}","picker.group.closeSeatDetails":"Zav\u0159\xEDt podrobnosti o m\xEDst\u011B","picker.group.seatPartlyAvailable":"{label}: voln\xE9 na {free} z {total} p\u0159edstaven\xED. Nedostupn\xE9 {dates}.","picker.group.selectAvailableDates":"Vybrat pro {count} dostupn\xFDch term\xEDn\u016F","picker.group.selectedAvailableDates":"Vybr\xE1no pro {count} dostupn\xFDch term\xEDn\u016F.","picker.group.clearBeforePartial":"P\u0159ed volbou jin\xE9 sady term\xEDn\u016F zru\u0161te sv\xE1 st\xE1vaj\xEDc\xED m\xEDsta.","picker.group.legendAvailable":"Dostupn\xE9","picker.group.legendSelected":"Vybran\xE9","picker.group.legendNotEveryDate":"Nen\xED voln\xE9 na v\u0161echny term\xEDny","picker.group.progressLabel":"Kroky rezervace","picker.group.stepPerformances":"P\u0159edstaven\xED","picker.group.stepSeats":"M\xEDsta","picker.group.stepReview":"Kontrola","picker.group.stepDone":"Hotovo","picker.group.stepCurrent":"Aktu\xE1ln\xED krok","picker.group.includedNote":"Zahrnuto je v\u0161ech {count} p\u0159edstaven\xED \xB7 term\xEDny zde nelze odebrat","picker.group.flexibleDatesNote":"Vyberte \u010D\xE1ste\u010Dn\u011B dostupn\xE9 m\xEDsto, aby se zahrnuly jen term\xEDny, kdy je voln\xE9.","picker.group.flexibleSelectedNote":"Pro toto m\xEDsto budou rezervov\xE1ny jen tyto {count} term\xEDny.","picker.group.yourSelection":"V\xE1\u0161 v\xFDb\u011Br","picker.group.pricesPerPerformance":"Ceny jsou uveden\xE9 za jedno p\u0159edstaven\xED","picker.group.total":"Celkem","picker.group.heldTogether":"V\u0161ech {count} v\xFDb\u011Br\u016F p\u0159edstaven\xED se rezervuje spole\u010Dn\u011B \xB7 zb\xFDv\xE1 {time}","picker.group.completeWithSeats":"Hotovo \xB7 {seats}","picker.group.stillNeedsSeat":"St\xE1le chyb\xED m\xEDsto","picker.group.sameSeatMapHelp":"Jeden pl\xE1n ukazuje jen m\xEDsta voln\xE1 na ka\u017Ed\xE9 vybran\xE9 p\u0159edstaven\xED.","picker.group.perPerformanceMapHelp":"Naho\u0159e p\u0159ep\xEDnejte term\xEDny; poloha pl\xE1nu i ka\u017Ed\xFD v\xFDb\u011Br z\u016Fstanou ulo\u017Een\xE9.","picker.group.bookedAll":"Hotovo \u2014 m\xEDsta jsou rezervov\xE1na na v\u0161ech {count} p\u0159edstaven\xED.","picker.group.seatsEveryPerformance.one":"{count} m\xEDsto \xB7 na ka\u017Ed\xE9 p\u0159edstaven\xED","picker.group.seatsEveryPerformance.few":"{count} m\xEDsta \xB7 na ka\u017Ed\xE9 p\u0159edstaven\xED","picker.group.seatsEveryPerformance.many":"{count} m\xEDsta \xB7 na ka\u017Ed\xE9 p\u0159edstaven\xED","picker.group.seatsEveryPerformance.other":"{count} m\xEDst \xB7 na ka\u017Ed\xE9 p\u0159edstaven\xED","picker.group.seatsPerPerformance.one":"{count} m\xEDsto \xB7 {per} na p\u0159edstaven\xED","picker.group.seatsPerPerformance.few":"{count} m\xEDsta \xB7 {per} na p\u0159edstaven\xED","picker.group.seatsPerPerformance.many":"{count} m\xEDsta \xB7 {per} na p\u0159edstaven\xED","picker.group.seatsPerPerformance.other":"{count} m\xEDst \xB7 {per} na p\u0159edstaven\xED","picker.group.performancesChosenOf.one":"Vybr\xE1no {chosen} ze {total} p\u0159edstaven\xED \xB7 {count} m\xEDsto","picker.group.performancesChosenOf.few":"Vybr\xE1no {chosen} ze {total} p\u0159edstaven\xED \xB7 {count} m\xEDsta","picker.group.performancesChosenOf.many":"Vybr\xE1no {chosen} ze {total} p\u0159edstaven\xED \xB7 {count} m\xEDsta","picker.group.performancesChosenOf.other":"Vybr\xE1no {chosen} ze {total} p\u0159edstaven\xED \xB7 {count} m\xEDst","picker.group.ticketsConfirmedAcross.one":"{count} vstupenka potvrzena na {performances} p\u0159edstaven\xED","picker.group.ticketsConfirmedAcross.few":"{count} vstupenky potvrzeny na {performances} p\u0159edstaven\xED","picker.group.ticketsConfirmedAcross.many":"{count} vstupenky potvrzeny na {performances} p\u0159edstaven\xED","picker.group.ticketsConfirmedAcross.other":"{count} vstupenek potvrzeno na {performances} p\u0159edstaven\xED"};export{e as cs};