@broadpaper/pdf 0.2.0 → 0.3.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.
@@ -1,5 +1,5 @@
1
- "use strict";var BroadPaper=(()=>{var Pt=Object.defineProperty;var Hi=Object.getOwnPropertyDescriptor;var Gi=Object.getOwnPropertyNames;var Wi=Object.prototype.hasOwnProperty;var qi=(e,t,n)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ui=(e,t)=>{for(var n in t)Pt(e,n,{get:t[n],enumerable:!0})},Ki=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Gi(t))!Wi.call(e,o)&&o!==n&&Pt(e,o,{get:()=>t[o],enumerable:!(r=Hi(t,o))||r.enumerable});return e};var Zi=e=>Ki(Pt({},"__esModule",{value:!0}),e);var X=(e,t,n)=>qi(e,typeof t!="symbol"?t+"":t,n);var ws={};Ui(ws,{defineBlock:()=>z,h:()=>v,registerBlocks:()=>xs,render:()=>ks});function Xi(e="",t){return{type:"paragraph",content:e?[{type:"text",text:e,...t?{marks:t}:{}}]:[]}}function Mt(e=""){return{type:"doc",content:[Xi(e)]}}function br(e){return!!e&&typeof e=="object"&&e.type==="doc"&&Array.isArray(e.content)}function xr(e){let t="";for(let n of e)n.kind==="prop"?t+=t?`.${n.name}`:n.name:t+=`[${n.index}]`;return t}function se(e,t=[]){switch(e.kind){case"path":t.push(e.segments);break;case"unary":se(e.arg,t);break;case"binary":se(e.left,t),se(e.right,t);break;case"conditional":se(e.test,t),se(e.then,t),se(e.else,t);break;case"call":case"array":for(let n of e.kind==="call"?e.args:e.items)se(n,t);break;case"pipe":se(e.input,t);for(let n of e.args)se(n,t);break}return t}var ye=class extends Error{constructor(n,r,o){super(n);X(this,"position",r);X(this,"source",o);this.name="ExpressionError"}},kr=2e3,Yi=32,Ji=new Set(["and","or","not","in","true","false","null"]),Qi=["==","!=","<=",">="],ea=new Set("+-*/%<>()[]|:?,.".split(""));function ta(e){if(e.length>kr)throw new ye(`Expression is too long (max ${kr} characters)`,0,e);let t=[],n=0;for(;n<e.length;){let r=e[n];if(/\s/.test(r)){n++;continue}let o=n;if(/[0-9]/.test(r)||r==="."&&/[0-9]/.test(e[n+1]??"")){let a=n;for(;a<e.length&&/[0-9_]/.test(e[a]);)a++;if(e[a]==="."&&/[0-9]/.test(e[a+1]??""))for(a++;a<e.length&&/[0-9]/.test(e[a]);)a++;if((e[a]==="e"||e[a]==="E")&&/[0-9+-]/.test(e[a+1]??""))for(a+=2;a<e.length&&/[0-9]/.test(e[a]);)a++;t.push({type:"num",value:Number(e.slice(n,a).replace(/_/g,"")),pos:o}),n=a;continue}if(r==='"'||r==="'"){let a=n+1,s="";for(;a<e.length&&e[a]!==r;)if(e[a]==="\\"&&a+1<e.length){let c=e[a+1];s+=c==="n"?`
2
- `:c==="t"?" ":c,a+=2}else s+=e[a],a++;if(a>=e.length)throw new ye("Unterminated string",o,e);t.push({type:"str",value:s,pos:o}),n=a+1;continue}if(/[A-Za-z_$]/.test(r)){let a=n;for(;a<e.length&&/[A-Za-z0-9_$]/.test(e[a]);)a++;t.push({type:"ident",value:e.slice(n,a),pos:o}),n=a;continue}let i=e.slice(n,n+2);if(Qi.includes(i)){t.push({type:"op",value:i,pos:o}),n+=2;continue}if(r==="="&&e[n+1]!=="="){t.push({type:"op",value:"==",pos:o}),n++;continue}if(r==="&"&&e[n+1]==="&"){t.push({type:"ident",value:"and",pos:o}),n+=2;continue}if(r==="|"&&e[n+1]==="|"){t.push({type:"ident",value:"or",pos:o}),n+=2;continue}if(r==="!"){t.push({type:"ident",value:"not",pos:o}),n++;continue}if(ea.has(r)){t.push({type:"op",value:r,pos:o}),n++;continue}throw new ye(`Unexpected character "${r}"`,o,e)}return t.push({type:"eof",pos:e.length}),t}var un=class{constructor(t,n){X(this,"tokens",t);X(this,"src",n);X(this,"i",0);X(this,"depth",0)}parse(){let t=this.parsePipe();return this.peek().type!=="eof"&&this.fail(`Unexpected "${this.describe(this.peek())}"`),t}peek(){return this.tokens[this.i]}next(){return this.tokens[this.i++]}isOp(t){let n=this.peek();return n.type==="op"&&n.value===t}isKw(t){let n=this.peek();return n.type==="ident"&&n.value===t}expectOp(t){this.isOp(t)||this.fail(`Expected "${t}" but found "${this.describe(this.peek())}"`),this.next()}describe(t){return t.type==="eof"?"end of expression":t.type==="str"?`"${t.value}"`:String(t.value)}fail(t){throw new ye(t,this.peek().pos,this.src)}enter(){++this.depth>Yi&&this.fail("Expression is nested too deeply")}leave(){this.depth--}parsePipe(){let t=this.parseConditional();for(;this.isOp("|");){this.next();let n=this.next();n.type!=="ident"&&this.fail("Expected a formatter name after |");let r=[];for(;this.isOp(":");)this.next(),r.push(this.parseConditional());t={kind:"pipe",input:t,name:n.value,args:r}}return t}parseConditional(){let t=this.parseOr();if(this.isOp("?")){this.enter(),this.next();let n=this.parseConditional();this.expectOp(":");let r=this.parseConditional();return this.leave(),{kind:"conditional",test:t,then:n,else:r}}return t}parseOr(){let t=this.parseAnd();for(;this.isKw("or");)this.next(),t={kind:"binary",op:"or",left:t,right:this.parseAnd()};return t}parseAnd(){let t=this.parseNot();for(;this.isKw("and");)this.next(),t={kind:"binary",op:"and",left:t,right:this.parseNot()};return t}parseNot(){if(this.isKw("not")){this.enter(),this.next();let t=this.parseNot();return this.leave(),{kind:"unary",op:"not",arg:t}}return this.parseEquality()}parseEquality(){let t=this.parseComparison();for(;;)if(this.isOp("==")||this.isOp("!="))t={kind:"binary",op:this.next().value,left:t,right:this.parseComparison()};else if(this.isKw("in"))this.next(),t={kind:"binary",op:"in",left:t,right:this.parseComparison()};else return t}parseComparison(){let t=this.parseAdditive();for(;this.isOp("<")||this.isOp("<=")||this.isOp(">")||this.isOp(">=");)t={kind:"binary",op:this.next().value,left:t,right:this.parseAdditive()};return t}parseAdditive(){let t=this.parseMultiplicative();for(;this.isOp("+")||this.isOp("-");)t={kind:"binary",op:this.next().value,left:t,right:this.parseMultiplicative()};return t}parseMultiplicative(){let t=this.parseUnary();for(;this.isOp("*")||this.isOp("/")||this.isOp("%");)t={kind:"binary",op:this.next().value,left:t,right:this.parseUnary()};return t}parseUnary(){if(this.isOp("-")){this.enter(),this.next();let t=this.parseUnary();return this.leave(),t.kind==="literal"&&typeof t.value=="number"?{kind:"literal",value:-t.value}:{kind:"unary",op:"-",arg:t}}return this.parsePostfix()}parsePostfix(){let t=this.parsePrimary();for(;;)if(this.isOp(".")){this.next();let n=this.next();n.type!=="ident"&&this.fail("Expected a property name after ."),t=wr(t,{kind:"prop",name:n.value},()=>this.fail("Property access is only allowed on data paths"))}else if(this.isOp("[")){this.next();let n=this.next();(n.type!=="num"||!Number.isInteger(n.value)||n.value<0)&&this.fail("Index must be a non-negative integer"),this.expectOp("]"),t=wr(t,{kind:"index",index:n.value},()=>this.fail("Indexing is only allowed on data paths"))}else return t}parsePrimary(){let t=this.next();switch(t.type){case"num":return{kind:"literal",value:t.value};case"str":return{kind:"literal",value:t.value};case"ident":{if(t.value==="true")return{kind:"literal",value:!0};if(t.value==="false")return{kind:"literal",value:!1};if(t.value==="null")return{kind:"literal",value:null};if(Ji.has(t.value)&&this.fail(`Unexpected keyword "${t.value}"`),this.isOp("(")){this.enter(),this.next();let n=[];if(!this.isOp(")"))for(n.push(this.parsePipe());this.isOp(",");)this.next(),n.push(this.parsePipe());return this.expectOp(")"),this.leave(),{kind:"call",name:t.value,args:n}}return{kind:"path",segments:[{kind:"prop",name:t.value}]}}case"op":if(t.value==="("){this.enter();let n=this.parsePipe();return this.expectOp(")"),this.leave(),n}if(t.value==="["){this.enter();let n=[];if(!this.isOp("]"))for(n.push(this.parsePipe());this.isOp(",");)this.next(),n.push(this.parsePipe());return this.expectOp("]"),this.leave(),{kind:"array",items:n}}this.fail(`Unexpected "${t.value}"`);case"eof":this.fail("Unexpected end of expression")}}};function wr(e,t,n){return e.kind!=="path"?n():{kind:"path",segments:[...e.segments,t]}}var Ct=new Map;function Se(e){let t=e.trim(),n=Ct.get(t);if(n)return n;if(t.length===0)throw new ye("Expression is empty",0,e);let r=new un(ta(t),t).parse();return Ct.size>5e3&&Ct.clear(),Ct.set(t,r),r}function dn(e){try{return Se(e),null}catch(t){return t instanceof ye?t:new ye(String(t),0,e)}}var vr=new Map,Sr=new Map;function mn(e,t){let n=e+JSON.stringify(t),r=vr.get(n);if(!r){try{r=new Intl.NumberFormat(e,t)}catch{r=new Intl.NumberFormat("en-GB",{...t,currency:t.currency??"GBP"})}vr.set(n,r)}return r}function fn(e,t){let n=e+JSON.stringify(t),r=Sr.get(n);if(!r){try{r=new Intl.DateTimeFormat(e,t)}catch{r=new Intl.DateTimeFormat("en-GB",t)}Sr.set(n,r)}return r}function H(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e.replace(/[,\s]/g,""));return Number.isFinite(t)?t:null}return typeof e=="boolean"?e?1:0:null}function Nt(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number")return new Date(e);if(typeof e=="string"&&e.trim()){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function Fe(e){return e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0:typeof e=="object"?Object.keys(e).length===0:!1}function A(e){return e==null?"":typeof e=="string"?e:typeof e=="number"?Number.isFinite(e)?String(e):"":typeof e=="boolean"?e?"Yes":"No":e instanceof Date?e.toISOString():Array.isArray(e)?e.map(A).join(", "):""}function $r(e,t,n){let r=p=>{let u={...p};return n.timeZone&&(u.timeZone=n.timeZone),fn(n.locale,u).formatToParts(e)},o=(p,u)=>r(p).find(d=>d.type===u)?.value??"",i=(p,u)=>p.padStart(u,"0"),a=r({year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!1}),s=p=>a.find(u=>u.type===p)?.value??"",c=Number(s("hour"))%24,l=c%12===0?12:c%12;return t.replace(/yyyy|yy|MMMM|MMM|MM|M|dd|d|EEEE|EEE|HH|H|hh|h|mm|ss|a|'[^']*'/g,p=>{switch(p){case"yyyy":return s("year");case"yy":return s("year").slice(-2);case"MMMM":return o({month:"long"},"month");case"MMM":return o({month:"short"},"month");case"MM":return i(s("month"),2);case"M":return s("month");case"dd":return i(s("day"),2);case"d":return s("day");case"EEEE":return o({weekday:"long"},"weekday");case"EEE":return o({weekday:"short"},"weekday");case"HH":return i(String(c),2);case"H":return String(c);case"hh":return i(String(l),2);case"h":return String(l);case"mm":return i(s("minute"),2);case"ss":return i(s("second"),2);case"a":return c<12?"AM":"PM";default:return p.startsWith("'")?p.slice(1,-1):p}})}var Tr={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}};function Ge(e,t,n,r=!1){let o=Nt(e);if(!o)return A(e);if(t&&Tr[t]){let a={...Tr[t]};return r&&(a.timeStyle="short"),n.timeZone&&(a.timeZone=n.timeZone),fn(n.locale,a).format(o)}if(t)return $r(o,t,n);let i=r?{dateStyle:"medium",timeStyle:"short"}:{dateStyle:"medium"};return n.timeZone&&(i.timeZone=n.timeZone),fn(n.locale,i).format(o)}function Rr(e,t,n,r){let o=H(e);if(o===null)return A(e);let a={style:"currency",currency:t&&String(t).toUpperCase()||r.currency};return n!==void 0&&(a.minimumFractionDigits=n,a.maximumFractionDigits=n),mn(r.locale,a).format(o)}function Pr(e,t,n){let r=H(e);if(r===null)return A(e);let o={};return t!==void 0?(o.minimumFractionDigits=t,o.maximumFractionDigits=t):o.maximumFractionDigits=2,mn(n.locale,o).format(r)}function Mr(e,t,n,r=!1){let o=H(e);if(o===null)return A(e);let i={style:"percent"},a=t??1;return i.minimumFractionDigits=a,i.maximumFractionDigits=a,mn(n.locale,i).format(r?o/100:o)}function ie(e,t){return e[t]}var st={currency:{name:"currency",description:"Format as money",returns:"string",accepts:["number","currency"],args:[{name:"code",type:"string",optional:!0,description:"ISO currency code, e.g. GBP"},{name:"decimals",type:"number",optional:!0}],fn:(e,t,n)=>Rr(e,ie(t,0),H(t[1])??void 0,n)},number:{name:"number",description:"Format with thousands separators",returns:"string",accepts:["number"],args:[{name:"decimals",type:"number",optional:!0}],fn:(e,t,n)=>Pr(e,H(t[0])??void 0,n)},percent:{name:"percent",description:"Format a fraction (0.25) as a percentage (25%)",returns:"string",accepts:["number","percent"],args:[{name:"decimals",type:"number",optional:!0},{name:"scaled",type:"boolean",optional:!0,description:"Set true when the value is already 0\u2013100"}],fn:(e,t,n)=>Mr(e,H(t[0])??void 0,n,t[1]===!0)},date:{name:"date",description:"Format a date",returns:"string",accepts:["date","datetime"],args:[{name:"pattern",type:"string",optional:!0,description:"e.g. dd MMM yyyy, or short/medium/long/full"}],fn:(e,t,n)=>Ge(e,ie(t,0),n,!1)},datetime:{name:"datetime",description:"Format a date with time",returns:"string",accepts:["date","datetime"],args:[{name:"pattern",type:"string",optional:!0}],fn:(e,t,n)=>Ge(e,ie(t,0),n,!0)},boolean:{name:"boolean",description:"Show a boolean as text",returns:"string",accepts:["boolean"],args:[{name:"yes",type:"string",optional:!0},{name:"no",type:"string",optional:!0}],fn:(e,t)=>e===!0||e==="true"||e===1?ie(t,0)??"Yes":ie(t,1)??"No"},upper:{name:"upper",description:"UPPERCASE",returns:"string",fn:e=>A(e).toUpperCase()},lower:{name:"lower",description:"lowercase",returns:"string",fn:e=>A(e).toLowerCase()},title:{name:"title",description:"Title Case",returns:"string",fn:e=>A(e).replace(/\b\p{L}/gu,t=>t.toUpperCase())},default:{name:"default",description:"Fallback when the value is empty",returns:"same",args:[{name:"fallback",type:"any"}],fn:(e,t)=>Fe(e)?t[0]:e},join:{name:"join",description:"Join a list into text",returns:"string",accepts:["array"],args:[{name:"separator",type:"string",optional:!0}],fn:(e,t)=>Array.isArray(e)?e.map(A).join(ie(t,0)??", "):A(e)},truncate:{name:"truncate",description:"Limit length with an ellipsis",returns:"string",args:[{name:"length",type:"number"}],fn:(e,t)=>{let n=A(e),r=H(t[0])??50;return n.length>r?n.slice(0,Math.max(0,r-1)).trimEnd()+"\u2026":n}},round:{name:"round",description:"Round to N decimals",returns:"number",accepts:["number"],args:[{name:"decimals",type:"number",optional:!0}],fn:(e,t)=>{let n=H(e);if(n===null)return e;let o=10**(H(t[0])??0);return Math.round(n*o)/o}},abs:{name:"abs",description:"Absolute value",returns:"number",accepts:["number"],fn:e=>H(e)===null?e:Math.abs(H(e))},pluralize:{name:"pluralize",description:"Choose singular/plural word by count",returns:"string",args:[{name:"singular",type:"string"},{name:"plural",type:"string"}],fn:(e,t)=>H(e)===1?ie(t,0)??"":ie(t,1)??`${ie(t,0)??""}s`},length:{name:"length",description:"Number of items or characters",returns:"number",fn:e=>Array.isArray(e)?e.length:A(e).length},first:{name:"first",description:"First item",returns:"same",accepts:["array"],fn:e=>Array.isArray(e)?e[0]:e},last:{name:"last",description:"Last item",returns:"same",accepts:["array"],fn:e=>Array.isArray(e)?e[e.length-1]:e},sortBy:{name:"sortBy",description:"Sort a list by a field",returns:"array",accepts:["array"],args:[{name:"field",type:"string"},{name:"direction",type:"string",optional:!0,description:"asc or desc"}],fn:(e,t)=>{if(!Array.isArray(e))return e;let n=ie(t,0)??"",r=(ie(t,1)??"asc").toLowerCase()==="desc"?-1:1;return[...e].sort((o,i)=>We(be(o,n),be(i,n))*r)}},take:{name:"take",description:"First N items",returns:"array",accepts:["array"],args:[{name:"count",type:"number"}],fn:(e,t)=>Array.isArray(e)?e.slice(0,Math.max(0,H(t[0])??0)):e},filter:{name:"filter",description:"Keep items whose field equals a value",returns:"array",accepts:["array"],args:[{name:"field",type:"string"},{name:"value",type:"any"}],fn:(e,t)=>Array.isArray(e)?e.filter(n=>_e(be(n,ie(t,0)??""),t[1])):e},pluck:{name:"pluck",description:"Extract one field from each item",returns:"array",accepts:["array"],args:[{name:"field",type:"string"}],fn:(e,t)=>Array.isArray(e)?e.map(n=>be(n,ie(t,0)??"")):be(e,ie(t,0)??"")},initials:{name:"initials",description:"Initials of a name",returns:"string",fn:e=>A(e).split(/\s+/).filter(Boolean).map(t=>t[0].toUpperCase()).join("")}};function be(e,t){if(e==null)return;let n=e;for(let r of t.split("."))if(r){if(n==null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function We(e,t){let n=H(e),r=H(t);if(n!==null&&r!==null&&typeof e!="string"&&typeof t!="string")return n-r;let o=Nt(e),i=Nt(t);if(o&&i&&(e instanceof Date||typeof e=="string")&&(t instanceof Date||typeof t=="string")&&/\d{4}-\d{2}/.test(String(e)))return o.getTime()-i.getTime();let a=A(e),s=A(t);return a<s?-1:a>s?1:0}function _e(e,t){if(e===t)return!0;if(e==null||t===null||t===void 0)return(e??null)===(t??null);if(typeof e=="number"||typeof t=="number"){let n=H(e),r=H(t);if(n!==null&&r!==null)return n===r}return typeof e=="boolean"||typeof t=="boolean"?String(e)===String(t):A(e)===A(t)}var ke=class e{constructor(t,n){X(this,"vars",t);X(this,"parent",n)}lookup(t){return Object.prototype.hasOwnProperty.call(this.vars,t)?{found:!0,value:this.vars[t]}:this.parent?this.parent.lookup(t):{found:!1,value:void 0}}child(t){return new e(t,this)}names(){let t=[],n=this;for(;n;){for(let r of Object.keys(n.vars))t.includes(r)||t.push(r);n=n.parent}return t}},Cr={sum:([e])=>qe(e).reduce((t,n)=>t+n,0),count:([e])=>Array.isArray(e)?e.length:Fe(e)?0:1,avg:([e])=>{let t=qe(e);return t.length?t.reduce((n,r)=>n+r,0)/t.length:null},min:([e,...t])=>{let n=t.length?qe([e,...t]):qe(e);return n.length?Math.min(...n):null},max:([e,...t])=>{let n=t.length?qe([e,...t]):qe(e);return n.length?Math.max(...n):null},first:([e])=>Array.isArray(e)?e[0]:e,last:([e])=>Array.isArray(e)?e[e.length-1]:e,length:([e])=>Array.isArray(e)?e.length:A(e).length,coalesce:e=>e.find(t=>!Fe(t))??null,isEmpty:([e])=>Fe(e),isNotEmpty:([e])=>!Fe(e),contains:([e,t])=>Array.isArray(e)?e.some(n=>_e(n,t)):A(e).toLowerCase().includes(A(t).toLowerCase()),startsWith:([e,t])=>A(e).toLowerCase().startsWith(A(t).toLowerCase()),endsWith:([e,t])=>A(e).toLowerCase().endsWith(A(t).toLowerCase()),concat:e=>e.map(A).join(""),round:([e,t])=>{let n=H(e);if(n===null)return null;let r=10**(H(t)??0);return Math.round(n*r)/r},abs:([e])=>{let t=H(e);return t===null?null:Math.abs(t)},number:([e])=>H(e),string:([e])=>A(e),if:([e,t,n])=>xe(e)?t:n,now:(e,t)=>t.format.now??new Date,year:([e])=>gn(e)?.getFullYear()??null,daysBetween:([e,t])=>{let n=gn(e),r=gn(t);return n&&r?Math.round((r.getTime()-n.getTime())/864e5):null}},hn=Object.keys(Cr);function gn(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function qe(e){if(!Array.isArray(e)){let n=H(e);return n===null?[]:[n]}let t=[];for(let n of e){let r=H(n);r!==null&&t.push(r)}return t}function xe(e){return e==null||e===!1||e===0||e===""?!1:typeof e=="string"?!["false","no","0","off"].includes(e.trim().toLowerCase()):Array.isArray(e)?e.length>0:!0}function yn(e,t){if(e==null)return;if(typeof e=="string"&&t==="length")return e.length;if(typeof e!="object")return;if(Array.isArray(e)){if(t==="length")return e.length;let r=e.map(o=>yn(o,t));return r.every(o=>o===void 0)?void 0:r}if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t];return typeof n=="function"?void 0:n}function Nr(e,t){let n=e[0];if(!n||n.kind!=="prop")return{found:!1,value:void 0};let r=t.lookup(n.name);if(!r.found)return{found:!1,value:void 0};let o=r.value;for(let i=1;i<e.length;i++){let a=e[i];if(a.kind==="prop"?o=yn(o,a.name):o=Array.isArray(o)?o[a.index]:void 0,o===void 0)return{found:!0,value:void 0}}return{found:!0,value:o}}function te(e,t){switch(e.kind){case"literal":return e.value;case"path":return Nr(e.segments,t.scope).value;case"unary":{let n=te(e.arg,t);if(e.op==="not")return!xe(n);let r=H(n);return r===null?null:-r}case"binary":return na(e.op,e.left,e.right,t);case"conditional":return xe(te(e.test,t))?te(e.then,t):te(e.else,t);case"call":{let n=Cr[e.name];return n?n(e.args.map(r=>te(r,t)),t):(t.onWarning?.(`Unknown function "${e.name}"`),null)}case"pipe":{let n=te(e.input,t),r=st[e.name];return r?r.fn(n,e.args.map(o=>te(o,t)),t.format):(t.onWarning?.(`Unknown formatter "${e.name}"`),n)}case"array":return e.items.map(n=>te(n,t))}}function na(e,t,n,r){if(e==="and")return xe(te(t,r))?xe(te(n,r)):!1;if(e==="or")return xe(te(t,r))?!0:xe(te(n,r));let o=te(t,r),i=te(n,r);switch(e){case"==":return _e(o,i);case"!=":return!_e(o,i);case"<":return Ft(o,i,a=>a<0);case"<=":return Ft(o,i,a=>a<=0);case">":return Ft(o,i,a=>a>0);case">=":return Ft(o,i,a=>a>=0);case"in":return Array.isArray(i)?i.some(a=>_e(a,o)):A(i).includes(A(o));case"+":{let a=H(o),s=H(i);return a!==null&&s!==null&&typeof o!="string"&&typeof i!="string"?a+s:typeof o=="string"||typeof i=="string"?A(o)+A(i):a!==null&&s!==null?a+s:null}case"-":case"*":case"/":case"%":{let a=H(o),s=H(i);return a===null||s===null?null:e==="-"?a-s:e==="*"?a*s:e==="/"?s===0?null:a/s:s===0?null:a%s}}return null}function Ft(e,t,n){return e==null||t===null||t===void 0?!1:n(We(e,t))}function Te(e,t){return te(Se(e),t)}function _t(e,t){return xe(Te(e,t))}function bn(e){let t=[],n=/\{\{\s*([^}]+?)\s*\}\}/g,r=0,o;for(;o=n.exec(e);)o.index>r&&t.push({kind:"text",text:e.slice(r,o.index)}),t.push({kind:"token",text:o[0],expr:o[1]}),r=o.index+o[0].length;return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t}var xn=class e{constructor(t,n){X(this,"vars",t);X(this,"parent",n)}lookup(t){return Object.prototype.hasOwnProperty.call(this.vars,t)?this.vars[t]:this.parent?.lookup(t)}child(t){return new e(t,this)}entries(){let t=[],n=this,r=0;for(;n;){for(let[o,i]of Object.entries(n.vars))t.some(a=>a.name===o)||t.push({name:o,schema:i,depth:r});n=n.parent,r++}return t}},ra={page:{type:"object",label:"Page",fields:{number:{type:"number",label:"Page number"},total:{type:"number",label:"Total pages"}}},now:{type:"datetime",label:"Generated at"},theme:{type:"object",label:"Theme",fields:{name:{type:"string",label:"Theme name"},logo:{type:"image",label:"Logo"},colors:{type:"object",label:"Colours",fields:{}},typography:{type:"object",label:"Typography",fields:{}},meta:{type:"object",label:"Brand details",fields:{}}}}};function oa(e){let t={};for(let n of e)t[n.id]={type:"object",label:n.label,description:n.description,fields:n.schema};return t}function _r(e,t={}){return new xn({...ra,...t}).child(oa(e))}function lt(e,t){let n=e[0];if(!n||n.kind!=="prop")return{issue:{code:"unknown-root",message:"Expression must start with a name"}};let r=t.lookup(n.name);if(!r)return{issue:{code:"unknown-root",message:`Unknown data source or variable "${n.name}"`}};let o=r,i=!1;for(let a=1;a<e.length;a++){let s=e[a],c=xr(e.slice(0,a));if(s.kind==="index"){if(o.type!=="array")return{issue:{code:"not-a-list",message:`"${c}" is not a list and cannot be indexed`}};o=o.itemSchema??{type:"any"};continue}if(o.type==="array"){if(!o.itemSchema)return{schema:{type:"array"}};if(o.itemSchema.type!=="object"||!o.itemSchema.fields)return{issue:{code:"not-an-object",message:`Items of "${c}" have no field "${s.name}"`}};let p=o.itemSchema.fields[s.name];if(!p)return{issue:{code:"unknown-field",message:`Items of "${c}" have no field "${s.name}"`}};i=!0,o={type:"array",itemSchema:p,label:p.label};continue}if(o.type==="any")return{schema:{type:"any"}};if(o.type!=="object")return{issue:{code:"not-an-object",message:`"${c}" is a ${o.type} and has no field "${s.name}"`}};if(o.fields&&Object.keys(o.fields).length===0&&["colors","typography","meta"].includes(e[a-1].kind==="prop"?e[a-1].name:""))return{schema:{type:"string"}};let l=o.fields?.[s.name];if(!l)return{issue:{code:"unknown-field",message:`"${c}" has no field "${s.name}"`}};o=l}return{schema:o}}function Fr(e){return e?.type??"unknown"}function Ar(e,t){let n=[],r=ce(e,t,n);return{type:r.type,schema:r.schema,issues:n}}function ce(e,t,n){switch(e.kind){case"literal":return{type:e.value===null?"null":typeof e.value};case"path":{let r=lt(e.segments,t);return r.issue?(n.push(r.issue),{type:"unknown"}):{type:Fr(r.schema),schema:r.schema}}case"unary":{let r=ce(e.arg,t,n);return{type:e.op==="not"?"boolean":r.type==="unknown"?"unknown":"number"}}case"binary":{let r=ce(e.left,t,n),o=ce(e.right,t,n);switch(e.op){case"and":case"or":case"==":case"!=":case"<":case"<=":case">":case">=":case"in":return{type:"boolean"};case"+":return{type:r.type==="string"||o.type==="string"?"string":"number"};default:return{type:"number"}}}case"conditional":{ce(e.test,t,n);let r=ce(e.then,t,n);return ce(e.else,t,n),r}case"call":{hn.includes(e.name)||n.push({code:"unknown-function",message:`Unknown function "${e.name}"`});for(let o of e.args)ce(o,t,n);if(["sum","count","avg","min","max","length","round","abs","number","year","daysBetween"].includes(e.name))return{type:"number"};if(["isEmpty","isNotEmpty","contains","startsWith","endsWith"].includes(e.name))return{type:"boolean"};if(["concat","string"].includes(e.name))return{type:"string"};if(e.name==="now")return{type:"datetime"};if(["first","last"].includes(e.name)&&e.args[0]){let o=ce(e.args[0],t,n);return o.schema?.type==="array"?{type:Fr(o.schema.itemSchema),schema:o.schema.itemSchema}:o}return{type:"any"}}case"pipe":{let r=ce(e.input,t,n);for(let i of e.args)ce(i,t,n);let o=st[e.name];return o?o.returns==="same"?r:o.returns==="array"?{type:"array",schema:r.schema?.type==="array"?r.schema:void 0}:(o.accepts&&r.type!=="unknown"&&r.type!=="any"&&r.type!=="null"&&!o.accepts.includes(r.type)&&(o.accepts.includes("number")&&(r.type==="currency"||r.type==="percent")||o.accepts.includes("array")&&r.type==="array"||n.push({code:"type-mismatch",message:`Formatter "${e.name}" expects ${o.accepts.join(" or ")} but received ${r.type}`})),{type:o.returns}):(n.push({code:"unknown-pipe",message:`Unknown formatter "${e.name}"`}),r)}case"array":for(let r of e.items)ce(r,t,n);return{type:"array"}}}function kn(e){return e==null?null:typeof e=="string"?e.trim()||null:Br(e)||null}function Br(e){let t=e.rules.map(n=>"op"in n?Br(n):ia(n)).filter(n=>!!n);return t.length===0?"":t.length===1?t[0]:t.map(n=>`(${n})`).join(e.op==="and"?" and ":" or ")}function fe(e){if(e==null)return"null";if(typeof e=="string"){let t=/^\{\{\s*(.+?)\s*\}\}$/.exec(e);return t?t[1]:JSON.stringify(e)}return String(e)}function ia(e){let t=e.left.trim();if(!t)return"";switch(e.operator){case"eq":return`${t} == ${fe(e.right)}`;case"neq":return`${t} != ${fe(e.right)}`;case"gt":return`${t} > ${fe(e.right)}`;case"gte":return`${t} >= ${fe(e.right)}`;case"lt":return`${t} < ${fe(e.right)}`;case"lte":return`${t} <= ${fe(e.right)}`;case"contains":return`contains(${t}, ${fe(e.right)})`;case"startsWith":return`startsWith(${t}, ${fe(e.right)})`;case"endsWith":return`endsWith(${t}, ${fe(e.right)})`;case"in":return`${t} in ${Array.isArray(e.right)?JSON.stringify(e.right):fe(e.right)}`;case"isEmpty":return`isEmpty(${t})`;case"isNotEmpty":return`isNotEmpty(${t})`;case"isTrue":return`${t} == true`;case"isFalse":return`not ${t}`}}var $e={id:"default",name:"Default",typography:{headingFont:"Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",bodyFont:"Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",monoFont:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",baseFontSize:11,headingScale:1.25,headingWeight:600,bodyWeight:400,lineHeight:1.5,headingLetterSpacing:-.01},colors:{primary:"#1F3A5F",secondary:"#4A6FA5",accent:"#E0B04B",text:"#1A1D21",mutedText:"#6B7280",surface:"#FFFFFF",background:"#F5F6F8",border:"#E2E5EA",success:"#1E8E5A",warning:"#C77D0A",danger:"#C0392B",chart:["#1F3A5F","#4A6FA5","#E0B04B","#7FB3D5","#A9CCE3","#F4D03F","#6C7A89","#B0BEC5"]},radius:6,table:{headerBackground:"#F3F4F6",headerColor:"#1A1D21",zebraBackground:"#FAFAFB",borderColor:"#E2E5EA"}};function Dr(e){return typeof e=="string"&&e.startsWith("$")&&e.length>1}function Er(e,t){let n=e.slice(1).split("."),r=Ir(t,n);if(typeof r=="string")return r;let o=Ir($e,n);return typeof o=="string"?o:void 0}function Ir(e,t){let n=e;for(let r of t){if(n==null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function q(e,t,n){return e==null||e===""?n:Dr(e)?Er(e,t)??n:e}function Ae(e){return e?{...$e,...e,typography:{...$e.typography,...e.typography??{}},colors:{...$e.colors,...e.colors??{},chart:e.colors?.chart?.length?e.colors.chart:$e.colors.chart},table:{...$e.table,...e.table??{}},fonts:e.fonts??[],meta:e.meta??{}}:$e}function Ue(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return!1;let n=parseInt(t[1],16),r=n>>16&255,o=n>>8&255,i=n&255;return .2126*wn(r)+.7152*wn(o)+.0722*wn(i)<.4}function wn(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function Or(e,...t){let n={...e};for(let r of t)r&&(r.top!==void 0&&(n.top=r.top),r.right!==void 0&&(n.right=r.right),r.bottom!==void 0&&(n.bottom=r.bottom),r.left!==void 0&&(n.left=r.left));return n}function ct(e){let{theme:t,styles:n}=e,r=n.text[e.textStyle??"body"]??n.text.body??{},o=e.defaults??{},i=e.allowOverrides===!1?{}:e.overrides??{},a=t.typography,s=q(i.fontFamily??o.fontFamily??r.fontFamily,t,a.bodyFont),c=i.fontSize??o.fontSize??r.fontSize??a.baseFontSize??11,l=i.fontWeight??o.fontWeight??r.fontWeight??a.bodyWeight??400,p=i.lineHeight??o.lineHeight??r.lineHeight??a.lineHeight??1.5,u=i.border||o.border?{width:i.border?.width??o.border?.width??1,style:i.border?.style??o.border?.style??"solid",color:q(i.border?.color??o.border?.color,t,t.colors.border),radius:i.border?.radius??o.border?.radius??0,sides:i.border?.sides??o.border?.sides??["top","right","bottom","left"]}:void 0,d=aa(i.background??o.background,t);return{fontFamily:s,fontSize:c,fontWeight:l,fontStyle:i.fontStyle??o.fontStyle??r.fontStyle??"normal",lineHeight:p,letterSpacing:i.letterSpacing??o.letterSpacing??r.letterSpacing??0,textTransform:i.textTransform??o.textTransform??r.textTransform??"none",textAlign:i.textAlign??o.textAlign??"left",verticalAlign:i.verticalAlign??o.verticalAlign??"top",color:q(i.color??o.color??r.color,t,t.colors.text),background:d,padding:Or({top:0,right:0,bottom:0,left:0},o.padding,i.padding),margin:Or({top:r.marginTop??0,right:0,bottom:r.marginBottom??0,left:0},o.margin,i.margin),border:u,width:i.width??o.width,height:i.height??o.height,align:i.align??o.align,opacity:i.opacity??o.opacity}}function aa(e,t){if(!(!e||e==="transparent"||e==="none"))return q(e,t,"")}function vn(e,t={text:!0,box:!0}){let n={};if(t.text!==!1&&(n["font-family"]=e.fontFamily,n["font-size"]=`${e.fontSize}px`,n["font-weight"]=String(e.fontWeight),n["font-style"]=e.fontStyle,n["line-height"]=String(e.lineHeight),e.letterSpacing&&(n["letter-spacing"]=`${e.letterSpacing}em`),e.textTransform!=="none"&&(n["text-transform"]=e.textTransform),n["text-align"]=e.textAlign,n.color=e.color),t.box!==!1){e.background&&(n.background=e.background);let r=e.padding;(r.top||r.right||r.bottom||r.left)&&(n.padding=`${r.top}px ${r.right}px ${r.bottom}px ${r.left}px`);let o=e.margin;if((o.top||o.right||o.bottom||o.left)&&(n.margin=`${o.top}px ${o.right}px ${o.bottom}px ${o.left}px`),e.border&&e.border.width>0&&e.border.style!=="none"){let i=`${e.border.width}px ${e.border.style} ${e.border.color}`;if(e.border.sides.length===4)n.border=i;else for(let a of e.border.sides)n[`border-${a}`]=i}e.border?.radius&&(n["border-radius"]=`${e.border.radius}px`),e.width!==void 0&&(n.width=typeof e.width=="number"?`${e.width}px`:e.width),e.height!==void 0&&(n.height=`${e.height}px`),e.opacity!==void 0&&e.opacity<1&&(n.opacity=String(e.opacity))}return n}function O(e){return Object.entries(e).filter(([,t])=>t!==void 0&&t!=="").map(([t,n])=>`${t}:${n}`).join(";")}var sa=new Set(["svg","g","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","defs","clipPath","linearGradient","radialGradient","stop","use","symbol","mask","pattern","title","desc","foreignObject"]);function v(e,t,...n){let r={tag:e,props:t??{},children:[]};return sa.has(e)&&(r.ns="svg"),Vr(r.children,n),r}function Vr(e,t){for(let n of t)n==null||n===!1||n===""||(Array.isArray(n)?Vr(e,n):typeof n=="number"?e.push(String(n)):e.push(n))}function Sn(e){return e?typeof e=="string"?e:e.filter(Boolean).join(" "):""}function Tn(e){return e?typeof e=="string"?e:Object.entries(e).filter(([,t])=>t!==void 0&&t!==""&&t!==null).map(([t,n])=>`${t}:${n}`).join(";"):""}function At(e,t){if(t(e)!==!1)for(let n of e.children)typeof n!="string"&&At(n,t)}function z(e){if(!e.type||!/^[a-z0-9][a-z0-9._-]*$/i.test(e.type))throw new Error(`Invalid block type "${e.type}". Use letters, digits, dots, dashes and underscores.`);return e}function Lr(e){let t=e.defaultProps;return typeof t=="function"?structuredClone(t()):structuredClone(t)}var jr={community:0,pro:1,enterprise:2},pt=class{constructor(t=[],n={}){X(this,"defs",new Map);X(this,"listeners",new Set);X(this,"enabledTiers");this.enabledTiers=new Set(n.enabledTiers??["community","pro","enterprise"]);for(let r of t)this.register(r)}register(t){if(this.defs.has(t.type))throw new Error(`Block type "${t.type}" is already registered`);return this.defs.set(t.type,t),this.emit(),this}replace(t){return this.defs.set(t.type,t),this.emit(),this}unregister(t){return this.defs.delete(t),this.emit(),this}get(t){return this.defs.get(t)}has(t){return this.defs.has(t)}require(t){let n=this.defs.get(t);if(!n)throw new Error(`Unknown block type "${t}"`);return n}list(){return[...this.defs.values()]}palette(){return this.list().filter(t=>!t.hidden&&t.category!=="structure")}isTierEnabled(t){return this.enabledTiers.has(t??"community")}requiredTier(t){let n="community";for(let r of t){let o=this.defs.get(r)?.license??"community";jr[o]>jr[n]&&(n=o)}return n}bindingsOf(t){let n=this.defs.get(t);return n?Bt(n):[]}accepts(t,n){let r=this.defs.get(t),o=this.defs.get(n);if(!r?.container)return!1;for(let i of r.container.accepts)if(i===n||i==="@blocks"&&o&&o.category!=="structure"||i==="@rows"&&n==="row"||i==="@columns"&&n==="column"||i==="@sections"&&n==="section")return!0;return!1}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}emit(){for(let t of this.listeners)t()}},zr=new WeakMap;function Bt(e){let t=zr.get(e);if(t)return t;let n;if(e.bindings)n=e.bindings;else{n=[];let r=o=>{for(let i of o)switch(i.kind){case"binding":n.push({prop:i.prop,kind:"value",valueType:i.valueType});break;case"collection":n.push({prop:i.prop,kind:"collection"});break;case"expression":n.push({prop:i.prop,kind:"value"});break;case"richtext":n.push({prop:i.prop,kind:"richtext"});break;case"condition":n.push({prop:i.prop,kind:"condition"});break;case"text":case"textarea":i.allowTokens!==!1&&n.push({prop:i.prop,kind:"template"});break;case"image":i.allowBinding!==!1&&n.push({prop:i.prop,kind:"template"});break;case"list":r(i.fields);break;default:break}};for(let o of e.inspector??[])r(o.fields)}return zr.set(e,n),n}var Gr=[{from:0,to:1,description:"Pre-release drafts: normalise `content` \u2192 `body`, add page regions and styles",migrate(e){let t={...e,schemaVersion:1};return Array.isArray(e.content)&&!e.body&&(t.body=e.content,delete t.content),t.header??(t.header={default:[]}),t.footer??(t.footer={default:[]}),t}}],ut=class extends Error{constructor(t){super(t),this.name="MigrationError"}};function $n(e){let t=typeof e.schemaVersion=="number"?e.schemaVersion:0;if(t>1)throw new ut(`Template schemaVersion ${t} is newer than this version of BroadPaper supports (${1}). Upgrade the SDK.`);let n=structuredClone(e),r=[],o=t;for(;o<1;){let i=Gr.find(a=>a.from===o);if(!i)throw new ut(`No migration from schemaVersion ${o} to ${o+1}`);n=i.migrate(n),n.schemaVersion=i.to,r.push(i),o=i.to}return{template:n,applied:r,fromVersion:t}}function Rn(e,t={}){let n={};for(let r of e)n[r.id]=Wr(r.schema,t,0);return n}function It(e,t={},n=0,r=0){if(e.example!==void 0)return e.example;if(e.enum?.length)return e.enum[r%e.enum.length];let o=t.now??new Date;switch(e.type){case"string":return e.label??"Sample text";case"number":return[1240,875,2310,1580,990,1870][r%6];case"currency":return[125e3,48200.5,231e3,15800,99e3,187500][r%6];case"percent":return[.125,.082,.31,.058,.196,.229][r%6];case"date":case"datetime":{let i=new Date(o);return i.setMonth(i.getMonth()-r),i.toISOString()}case"boolean":return r%2===0;case"image":return;case"url":return"https://example.com";case"richtext":return"Sample rich text";case"object":return n>6?{}:Wr(e.fields??{},t,n+1);case"array":{let i=t.arrayLength??4,a=e.itemSchema??{type:"string"};return n>6?[]:Array.from({length:i},(s,c)=>It(a,t,n+1,c))}default:return}}function Wr(e,t,n){let r={},o=0;for(let[i,a]of Object.entries(e))r[i]=It(a,t,n,o++);return r}function Dt(e,t){let n=[];for(let r=0;r<e.length;r++){let o=e[r];if(o.kind==="index"){n[n.length-1]=`${n[n.length-1]??""} #${o.index+1}`;continue}let i=lt(e.slice(0,r+1),t);n.push(i.schema?.label??la(o.name))}return n.join(" \u203A ")}function la(e){return e.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,t=>t.toUpperCase())}function qr(e,t){try{let n=Se(e),r=Ar(n,t),o=r.issues.length?"unknown":r.type,i=se(n);if(n.kind==="path")return{label:Dt(n.segments,t),type:o};if(n.kind==="pipe"&&n.input.kind==="path")return{label:`${Dt(n.input.segments,t)} \xB7 ${n.name}`,type:o};let a=[...new Set(i.map(s=>Dt(s,t)))];return a.length===1?{label:`\u0192 ${a[0]}`,type:o}:a.length>1?{label:`\u0192 ${a.slice(0,2).join(", ")}${a.length>2?"\u2026":""}`,type:o}:{label:e,type:o}}catch{return{label:e,type:"unknown"}}}var Zr=A;function Cn(e){let t=e.mode??"preview",n=Ae(e.theme),r=e.template,o=e.dataSources??[],i=e.now??new Date,a={locale:e.locale??r.settings?.locale??"en-GB",currency:e.currency??r.settings?.currency??"GBP",timeZone:e.timeZone??r.settings?.timeZone,now:i},s=[],c;t==="preview"?c=e.data??e.sampleData??{}:c=e.data??e.sampleData??Rn(o,{now:i}),t==="design"&&(c={...Rn(o,{now:i}),...c});let l={page:{number:1,total:1},now:i,theme:{name:n.name,logo:n.logo,logoDark:n.logoDark,colors:n.colors,typography:n.typography,meta:n.meta??{}}},p=new ke(l).child(c),u=_r(o),d={registry:e.registry,theme:n,template:r,mode:t,format:a,warnings:s,designIterations:Math.max(1,e.designIterations??1),maxIterations:e.maxIterations??5e3,allowStyleOverrides:e.allowStyleOverrides??!0,designShowHidden:e.designShowHidden??!0,dataSources:o},m=h=>(h??[]).flatMap(x=>Et(d,x,p,u,"","section")),f={default:m(r.header?.default)};r.page.header.differentFirstPage&&(f.firstPage=m(r.header?.firstPage));let b={default:m(r.footer?.default)};return r.page.footer.differentFirstPage&&(b.firstPage=m(r.footer?.firstPage)),{body:m(r.body),header:f,footer:b,warnings:s,mode:t}}function Nn(e){try{return se(Se(e)).some(t=>t[0]?.kind==="prop"&&t[0].name==="page")}catch{return!1}}function Mn(e,t,n){return{scope:t,format:e.format,onWarning:(r,o)=>e.warnings.push({message:r,nodeId:n,expr:o})}}function Ke(e,t,n,r){try{return Te(r,Mn(e,t,n))}catch(o){e.warnings.push({message:`Invalid expression: ${o.message}`,nodeId:n,expr:r});return}}var ft=qr;function Xr(e,t,n,r,o){let i=[],a=!1;for(let c of bn(o)){if(c.kind==="text"){i.push(c);continue}let l=c.expr,{label:p}=ft(l,n);if(Nn(l)){a=!0,i.push({...c,label:p,deferred:!0});continue}let u=Ke(e,t,r,l);i.push({...c,label:p,value:Zr(u)})}let s=i.map(c=>c.kind==="text"?c.text:c.value??"").join("");return{segments:i,text:s,pageDependent:a}}function ca(e,t,n,r,o){let i=!1,a=l=>l.map(p=>{if(p.type!=="token"){if(p.type==="text"&&p.marks?.link?.includes("{{")){let d=Xr(e,t,n,r,p.marks.link);return{...p,marks:{...p.marks,link:d.text}}}return p}let{label:u}=ft(p.expr,n);return Nn(p.expr)?(i=!0,{...p,label:u,deferred:!0}):{...p,label:u,value:Zr(Ke(e,t,r,p.expr))}}),s=l=>({...l,content:a(l.content)});return{doc:{type:"doc",content:o.content.map(l=>l.type==="paragraph"?s(l):{...l,content:l.content.map(p=>({...p,content:p.content.map(s)}))})},pageDependent:i}}function Ur(e,t){let n=t.split("."),r=e;for(let o of n){if(r==null||typeof r!="object")return;r=r[o]}return r}function dt(e,t,n){let r=t.split("."),o=e;for(let i=0;i<r.length-1;i++){let a=r[i];(typeof o[a]!="object"||o[a]===null)&&(o[a]={}),o=o[a]}o[r[r.length-1]]=n}function Kr(e,t,n){let r=e?.defaultFlow??{},o=t.flow??{},i=!!e?.container,a=e?.split??(i?"children":"none");return{breakBefore:o.breakBefore??r.breakBefore??"auto",breakAfter:o.breakAfter??r.breakAfter??"auto",keepTogether:o.keepTogether??r.keepTogether??!1,keepWithNext:o.keepWithNext??r.keepWithNext??n??!1,split:a,minOrphans:o.minOrphans??r.minOrphans??2,minWidows:o.minWidows??r.minWidows??2}}function Pn(e){return e==="section"||e==="row"||e==="column"?e:"block"}function Et(e,t,n,r,o,i){let a=e.registry.get(t.type),s=o+t.id,c=t.id,l=!1,p=kn(t.visibleWhen);if(p){let y=dn(p);if(y)e.warnings.push({message:`Invalid condition: ${y.message}`,nodeId:c,expr:p});else{let k=!0;try{k=_t(p,Mn(e,n,c))}catch($){e.warnings.push({message:`Condition failed: ${$.message}`,nodeId:c,expr:p})}if(!k){if(e.mode==="preview"||!e.designShowHidden)return[];l=!0}}}if(!a)return e.warnings.push({message:`Unknown block type "${t.type}"`,nodeId:c}),[{key:s,nodeId:c,type:t.type,role:Pn(t.type),props:{...t.props,__unknown:!0},raw:t.props,style:ct({theme:e.theme,styles:e.template.styles}),flow:Kr(void 0,t,void 0),children:[],bindings:{},textSegments:{},richText:{},label:t.name??t.type,locked:t.locked}];let d={...Lr(a),...t.props},m=structuredClone(d),f={},b={},h={},x=!1,R=(y,k,$)=>{let _=$+y.prop,S=Ur(k,y.prop);switch(y.kind){case"value":{if(typeof S!="string"||S.trim()==="")return;let{label:M,type:N}=ft(S,r);if(f[_]={prop:_,kind:"value",expr:S,label:M,type:N},Nn(S)){x=!0,dt(k,y.prop,void 0);return}dt(k,y.prop,Ke(e,n,c,S));return}case"collection":{if(typeof S!="string"||S.trim()===""){dt(k,y.prop,[]);return}let{label:M,type:N}=ft(S,r);f[_]={prop:_,kind:"collection",expr:S,label:M,type:N};let B=Ke(e,n,c,S);dt(k,y.prop,Array.isArray(B)?B:B==null?[]:[B]);return}case"template":{if(typeof S!="string")return;if(!S.includes("{{")){b[_]=[{kind:"text",text:S}];return}let M=Xr(e,n,r,c,S);M.pageDependent&&(x=!0),b[_]=M.segments;let N=M.segments.filter(B=>B.kind==="token");if(N.length===1&&M.segments.length===1){let{label:B,type:U}=ft(N[0].expr,r);f[_]={prop:_,kind:"template",expr:N[0].expr,label:B,type:U}}dt(k,y.prop,M.text);return}case"richtext":{if(!br(S))return;let M=ca(e,n,r,c,S);M.pageDependent&&(x=!0),h[_]=M.doc;return}case"condition":case"list":return}};for(let y of Bt(a))if(!y.perItem){if(y.items){let k=Ur(m,y.prop);Array.isArray(k)&&k.forEach(($,_)=>$&&typeof $=="object"&&y.items.forEach(S=>!S.perItem&&R(S,$,`${y.prop}.${_}.`)));continue}R(y,m,"")}if(a.resolve){let y={props:m,node:t,scope:n,mode:e.mode,theme:e.theme,format:e.format,evaluate:k=>Ke(e,n,c,k),evaluateIn:(k,$)=>Ke(e,n.child($),c,k),warn:k=>e.warnings.push({message:k,nodeId:c})};try{let k=a.resolve(y);k&&typeof k=="object"&&Object.assign(m,k)}catch(k){e.warnings.push({message:`Block "${a.name}" failed to resolve: ${k.message}`,nodeId:c})}}let w=t.style?.textStyle??a.defaultTextStyle,g=ct({theme:e.theme,styles:e.template.styles,textStyle:w,defaults:a.defaultStyle,overrides:t.style,allowOverrides:e.allowStyleOverrides}),P=w?e.template.styles.text[w]:void 0,T=Kr(a,t,P?.keepWithNext),C=[],I,W=!1,D=a.container;if(D?.repeat){let y=m[D.repeat.collectionProp],k=m[D.repeat.aliasProp??"alias"]||"item",$=d[D.repeat.collectionProp],_=Array.isArray(y)?y:[],S=D.repeat.limitProp&&Number(m[D.repeat.limitProp])||void 0;S&&(_=_.slice(0,S)),_.length>e.maxIterations&&(e.warnings.push({message:`Repeater truncated to ${e.maxIterations} items`,nodeId:c}),_=_.slice(0,e.maxIterations));let M;if(typeof $=="string"&&$.trim())try{let j=Se($);for(;j.kind==="pipe";)j=j.input;let K=j.kind==="path"?lt(j.segments,r):{};M=K.schema?.type==="array"?K.schema.itemSchema:void 0}catch{M=void 0}e.mode==="design"&&(_.length===0&&(_=M?[It(M,{now:e.format.now},0,0)]:[{}],W=!0),_=_.slice(0,e.designIterations));let N=D.repeat.keepItemTogetherProp?!!m[D.repeat.keepItemTogetherProp]:!1,B=_.length,U=r.child({[k]:M??{type:"object",label:k,fields:{}},index:{type:"number",label:"Index"},first:{type:"boolean",label:"Is first"},last:{type:"boolean",label:"Is last"},count:{type:"number",label:"Count"}});C=_.map((j,K)=>{let F=n.child({[k]:j,item:j,index:K+1,first:K===0,last:K===B-1,count:B}),Z=`${s}@${K}`,J=(t.children??[]).flatMap(ne=>Et(e,ne,F,U,`${Z}/`,"block"));return{key:Z,nodeId:c,type:"repeater-item",role:"block",props:{index:K,count:B},raw:{},style:ct({theme:e.theme,styles:e.template.styles}),flow:{breakBefore:"auto",breakAfter:"auto",keepTogether:N,keepWithNext:!1,split:"children",minOrphans:1,minWidows:1},children:J,bindings:{},textSegments:{},richText:{},iteration:{index:K,count:B,alias:k},label:`${k} ${K+1}`}}),I=void 0,m.__itemCount=Array.isArray(y)?y.length:0}else if(D?.conditional){let y=kn(d[D.conditional.conditionProp]),k=!0;if(y){let $=dn(y);if($)e.warnings.push({message:`Invalid condition: ${$.message}`,nodeId:c,expr:y});else try{k=_t(y,Mn(e,n,c))}catch(_){e.warnings.push({message:`Condition failed: ${_.message}`,nodeId:c,expr:y})}}m.__conditionResult=k,(k||e.mode==="design")&&(C=(t.children??[]).flatMap($=>Et(e,$,n,r,o,"block")))}else D&&(C=(t.children??[]).flatMap(y=>Et(e,y,n,r,o,Pn(t.type))));let E={key:s,nodeId:c,type:t.type,role:Pn(t.type),props:m,raw:d,style:g,flow:T,children:C,bindings:f,textSegments:b,richText:h,label:t.name??a.canvas?.label?.(m)??a.name,locked:t.locked,pageDependent:x||void 0,placeholder:W||void 0,iteration:I};if(l&&(E.props.__hiddenByCondition=!0),t.type==="row"){let y=Array.isArray(m.layout)?m.layout:C.map(()=>12/Math.max(1,C.length));E.layout={columns:y},C.forEach((k,$)=>{k.span=y[$]??12/Math.max(1,C.length)})}return[E]}var pa=3.7795275590551185,Yr={A3:{width:297,height:420},A4:{width:210,height:297},A5:{width:148,height:210},Letter:{width:215.9,height:279.4},Legal:{width:215.9,height:355.6},Tabloid:{width:279.4,height:431.8}};function Re(e){return Math.round(e*pa*100)/100}function ua(e){return typeof e=="string"?Yr[e]??Yr.A4:e}function Jr(e){let t=ua(e.size),n=e.orientation!=="landscape",r=Re(n?t.width:t.height),o=Re(n?t.height:t.width),i={top:Re(e.margins.top),right:Re(e.margins.right),bottom:Re(e.margins.bottom),left:Re(e.margins.left)},a=Re(Math.max(0,e.header.height)),s=Re(Math.max(0,e.footer.height)),c=i.top+a,l=o-i.bottom-s;return{width:r,height:o,margins:i,headerHeight:a,footerHeight:s,contentWidth:Math.max(0,r-i.left-i.right),contentHeight:Math.max(0,l-c),contentTop:c,headerTop:i.top,footerTop:l}}function Ze(e,t){return e.geom.nodes[t.key]??{top:0,height:0,left:0,width:0}}var G=.01;function Ot(e,t,n,r){let o=(i,a)=>{for(let s=i;s>=0&&s<t.length;s+=a){let c=t[s];if(Ze(e,c).height>G)return c}};for(let i=t.length-1;i>=0;i--){let a=t[i],s=Ze(e,a),c=s.top,l=s.top+s.height;if(c>n+G||s.height<=G)continue;let p=o(i+1,1);if(l>n+G){let m=da(e,a,n,r);if(m!==null&&m>r+G&&m>c+G)return m}else{let m=Math.min(p?Ze(e,p).top:l,n),f=a.flow.keepWithNext&&!!p;if(!f&&m>r+G)return m;if(!f)return null}let u=o(i-1,-1),d=!!u&&u.flow.keepWithNext;if(!d&&c>r+G)return c;if(!d)return null}return null}function da(e,t,n,r){let o=Ze(e,t),i=o.height<=e.pageHeight+G;if(t.flow.keepTogether&&i)return null;if(t.role==="row"&&t.children.length>1)return!(t.props.allowSplit===!0)&&i?null:fa(e,t.children,n,r);switch(t.flow.split){case"none":return null;case"lines":{let a=o.lines;if(!a||a.length<2)return null;let s=Math.max(1,t.flow.minOrphans),c=Math.max(1,t.flow.minWidows);for(let l=a.length-2;l>=0;l--){let p=a[l];if(p>n+G)continue;let u=l+1,d=a.length-u;if(u<s)return null;if(!(d<c))return p>r+G?p:null}return null}case"rows":{let a=o.rows;if(!a||a.length===0)return null;let s=a.filter(p=>p.kind==="body");if(s.length<2)return null;let c=Math.max(1,t.flow.minOrphans),l=Math.max(1,t.flow.minWidows);for(let p=s.length-2;p>=0;p--){let u=s[p],d=u.top+u.height;if(d>n+G)continue;let m=p+1,f=s.length-m;if(m<c)return null;if(!(f<l))return d>r+G?d:null}return null}case"children":return Ot(e,t.children,n,r)}}function fa(e,t,n,r){let o=n;for(let i=0;i<64;i++){let a=o;for(let s of t){let c=s.children;if(c.length===0)continue;let l=Ze(e,c[0]).top,p=Ze(e,c[c.length-1]),u=p.top+p.height;if(o<=l+G||o>=u-G)continue;let d=Ot(e,c,o,r);if(d===null)return null;d<a&&(a=d)}if(Math.abs(a-o)<G)return o>r+G?o:null;o=a}return null}function Qr(e,t=[]){e.flow.split==="rows"&&t.push(e);for(let n of e.children)Qr(n,t);return t}function ma(e,t,n){let r=[];for(let o of t){let i=e.nodes[o.key];if(!i?.rows)continue;let a=i.rows.filter(c=>c.kind==="header");if(a.length===0)continue;let s=i.top+i.height;if(i.top<n-G&&n<s-G){let c=a.reduce((l,p)=>l+p.height,0);r.push({tableKey:o.key,height:c,left:i.left,width:i.width})}}return r}function ga(e,t){let n=new Set,r=Number.POSITIVE_INFINITY,o=0,i=a=>{let s=t.nodes[a.key];s&&(a.flow.breakBefore==="page"&&n.add(s.top),a.flow.breakAfter==="page"&&n.add(s.top+s.height)),a.children.forEach(i)};for(let a of e.children){let s=t.nodes[a.key];s&&(r=Math.min(r,s.top),o=Math.max(o,s.top+s.height)),i(a)}return Number.isFinite(r)||(r=0),{inside:[...n].filter(a=>a>r+G&&a<o-G).sort((a,s)=>a-s),atStart:[...n].some(a=>a<=r+G),atEnd:[...n].some(a=>a>=o-G)}}function Fn(e){let{document:t,geometry:n,page:r}=e,o=r.contentHeight,i=[],a=[],s={index:0,number:1,fragments:[],first:!0},c=0,l=!1,p=()=>{a.push(s),s={index:a.length,number:a.length+1,fragments:[],first:!1},c=0,l=!1};for(let d of t.body){let m=n[d.key];if(!m){i.push({code:"forced-split",message:"Section was not measured",sectionKey:d.key,nodeId:d.nodeId});continue}let f=m.height,b={geom:m,pageHeight:o},h=Qr(d),x=ga(d,m),R=d.children.reduce((P,T)=>{let C=m.nodes[T.key];return C?Math.max(P,C.top+C.height):P},0);if((l||d.flow.breakBefore==="page"||x.atStart)&&c>0&&p(),d.flow.keepTogether&&f>o-c+G&&f<=o+G&&c>0&&p(),f<=G)continue;let w=0,g=0;for(;w<f-G;){if(++g>1e4){i.push({code:"forced-split",message:"Pagination aborted after too many fragments",sectionKey:d.key,nodeId:d.nodeId});break}let P=o-c,T=ma(m,h,w),C=T.reduce((k,$)=>k+$.height,0),I=x.inside.find(k=>k>w+G)??f,W=I>=f-G,D=I-w;if(D+C<=P+G){if(s.fragments.push({sectionKey:d.key,from:w,to:I,repeatHeaders:T,y:c,height:D+C,continued:w>0,continues:!W}),c+=D+C,w=I,W)break;p();continue}let E=Math.min(w+P-C,I),y=null;if(E>w+G&&(y=d.flow.split==="children"?Ot(b,d.children,E,w):null,y!==null&&y<=w+G&&(y=null),y!==null&&y>E+G&&(y=null),W&&y!==null&&y>=R-G)){s.fragments.push({sectionKey:d.key,from:w,to:f,repeatHeaders:T,y:c,height:Math.min(f-w+C,P),continued:w>0,continues:!1}),c+=Math.min(f-w+C,P),w=f;break}if(y===null){if(c>0||s.fragments.length>0){p();continue}E<=w+G?(i.push({code:"oversized-header",message:"A repeated table header is taller than the page",sectionKey:d.key,nodeId:d.nodeId,page:s.number}),y=Math.min(f,w+Math.max(1,o))):(y=Math.min(f,E),i.push({code:"forced-split",message:"Content taller than a page had to be cut at an arbitrary position",sectionKey:d.key,nodeId:d.nodeId,page:s.number}))}s.fragments.push({sectionKey:d.key,from:w,to:y,repeatHeaders:T,y:c,height:y-w+C,continued:w>0,continues:!0}),w=y,p()}(d.flow.breakAfter==="page"||x.atEnd)&&(l=!0)}for(a.push(s);a.length>1&&a[a.length-1].fragments.length===0;)a.pop();l&&i.push({code:"no-op-break",message:"A page break after the last content has nothing to move to a new page",page:a.length});let u=Math.max(1,e.minPages??1);for(;a.length<u;)a.push({index:a.length,number:a.length+1,fragments:[],first:a.length===0});if(t.body.length===0&&i.push({code:"empty-document",message:"The document has no content"}),e.regionGeometry){let d=(m,f,b)=>{if(!m)return;let h=m.reduce((x,R)=>x+(e.regionGeometry[R.key]?.height??0),0);h>f+.5&&i.push({code:"region-overflow",message:`${b} content (${Math.round(h)}px) is taller than the ${b.toLowerCase()} region (${Math.round(f)}px) and will be clipped`})};d(t.header.default,r.headerHeight,"Header"),d(t.header.firstPage,r.headerHeight,"First-page header"),d(t.footer.default,r.footerHeight,"Footer"),d(t.footer.firstPage,r.footerHeight,"First-page footer")}return{pages:a,totalPages:a.length,geometry:r,warnings:i}}function me(e,t={}){if(!e)return!1;let n=e.trim();if(/^https?:\/\//i.test(n)||/^mailto:/i.test(n)||n.startsWith("/")&&!n.startsWith("//")||n.startsWith("./")||n.startsWith("../"))return!0;if(t.allowData&&/^data:image\/(png|jpe?g|gif|webp|svg\+xml)[;,]/i.test(n)){if(!/^data:image\/svg\+xml/i.test(n))return!0;let r=n.indexOf(","),o=r===-1?"":n.slice(r+1),i;if(/;base64/i.test(n.slice(0,r===-1?n.length:r)))i=ha(o);else try{i=decodeURIComponent(o)}catch{i=o}return!/<script|javascript:|on[a-z]+\s*=|<foreignObject/i.test(i)}return!1}function ha(e){let t=e.trim();try{let n=globalThis;if(typeof n.atob=="function")return n.atob(t);if(n.Buffer)return n.Buffer.from(t,"base64").toString("utf8")}catch{}return"<script"}function ya(e){return new ke({page:e.page,now:e.format.now??new Date,theme:{name:e.theme.name,logo:e.theme.logo,colors:e.theme.colors,typography:e.theme.typography,meta:e.theme.meta??{}}})}function no(e,t){try{return A(Te(e,{scope:ya(t),format:t.format}))}catch{return""}}function _n(e,t,n){return v("span",{class:"bp-token","data-expr":e,title:e,contenteditable:"false"},t??e,n!==void 0&&n!==""?v("span",{class:"bp-token__value"},n):null)}function ro(e,t,n){return e?e.map(r=>{if(r.kind==="text")return r.text;let o=r.deferred?no(r.expr,n):r.value??"";return n.mode==="design"?_n(r.expr,r.label,r.deferred?o:void 0):o}):t!==void 0?[t]:[]}function eo(e,t,n){if(!t)return e;let r=e;if(t.code&&(r=v("code",{class:"bp-code"},r)),t.bold&&(r=v("strong",null,r)),t.italic&&(r=v("em",null,r)),t.underline&&(r=v("u",null,r)),t.strike&&(r=v("s",null,r)),t.color&&(r=v("span",{style:{color:q(t.color,n.theme,"inherit")}},r)),t.link){let o=t.link,i=me(o),a=q(n.styles.link.color,n.theme,n.theme.colors.secondary);r=v("a",{class:"bp-link",href:i?o:void 0,rel:"noopener",style:{color:a,"text-decoration":n.styles.link.underline===!1?"none":"underline"}},r)}return r}function oo(e,t){return e.map(n=>{if(n.type==="break")return v("br");if(n.type==="text")return eo([n.text],n.marks,t);let r=n.deferred?no(n.expr,t):n.value??"",o=t.mode==="design"?_n(n.expr,n.label,n.deferred?r:void 0):r;return eo([o],n.marks,t)})}function to(e,t){let n=e.content.length===0;return v("p",{class:["bp-p",n&&"bp-p--empty"],style:e.align?{"text-align":e.align}:void 0},n?v("br"):oo(e.content,t))}function io(e,t){return e?e.content.map(n=>n.type==="paragraph"?to(n,t):v(n.type==="bulletList"?"ul":"ol",{class:"bp-list"},n.content.map(r=>v("li",null,r.content.map(o=>to(o,t)))))):[]}function ao(e,t={}){return{"data-key":e.key,"data-node":e.nodeId,"data-type":e.type,...t}}function so(e,t,n,r){let o=e-n*Math.max(0,r-1);return Math.max(0,o*t/12)}function we(e,t,n=t.width){let r=t.registry.get(e.type),o=t.styles.spacing.blockGap,i=t.styles.spacing.columnGap,a=n;if(r?.container){let h=e.style.padding,x=e.style.border?e.style.border.width:0;a=Math.max(0,n-h.left-h.right-2*x)}let s=[];if(e.role==="row"){let h=e.children.length;for(let x of e.children){let R=so(a,x.span??12/Math.max(1,h),i,h),w=we(x,t,R);w&&s.push(w)}}else for(let h of e.children){let x=we(h,t,a);x&&s.push(x)}let c=e.style,l=vn(c);delete l.margin,delete l.width,delete l.height;let p={},u=c.margin;(u.top||u.right||u.bottom||u.left)&&(p.margin=`${u.top}px ${u.right}px ${u.bottom}px ${u.left}px`),c.width!==void 0&&e.role==="block"&&(p.width=typeof c.width=="number"?`${c.width}px`:c.width,p["max-width"]="100%",c.align==="center"?p["margin-left"]=p["margin-right"]="auto":c.align==="right"&&(p["margin-left"]="auto")),c.height!==void 0&&e.role==="block"&&(p.height=`${c.height}px`),e.role==="column"&&(p["grid-column"]=`span ${e.span??12}`,p["min-width"]="0");let d=["bp-node",`bp-node--${e.type}`,`bp-${e.role}`];e.props.__hiddenByCondition&&d.push("bp-node--hidden"),e.placeholder&&d.push("bp-node--placeholder"),e.locked&&d.push("bp-node--locked"),e.iteration&&d.push("bp-repeater-item"),e.flow.keepTogether&&d.push("bp-node--keep");let m=ao(e,{class:d,style:p});if(t.decorate&&(m=t.decorate(e,m)),!r)return v("div",m,v("div",{class:"bp-unknown-block",style:O(l)},`Unavailable block: ${e.type}`));let f={node:e,props:e.props,style:c,css:l,theme:t.theme,styles:t.styles,mode:t.mode,h:v,children:s,page:t.page,width:n,format:t.format,registry:t.registry,text:(h,x)=>ro(e.textSegments[h],x??(typeof e.props[h]=="string"?e.props[h]:void 0),t),richText:h=>io(e.richText[h]??e.props[h],t),textValue:h=>h===void 0?[]:[h],binding:h=>e.bindings[h],partAttrs:(h,x={})=>({"data-part":h,"data-node":e.nodeId,...x}),placeholder:(h,x={})=>v("div",{class:"bp-placeholder",...x},h)},b;try{b=r.render(f)}catch(h){b=v("div",{class:"bp-block-error"},`${r.name} failed to render: ${h.message}`)}return b?(r.container&&e.role!=="row"&&e.role!=="column"&&r.container.direction,v("div",m,b)):null}var lo=z({type:"section",name:"Section",category:"structure",icon:"rectangle-horizontal",hidden:!0,defaultProps:{padding:0},container:{accepts:["@rows","@blocks"]},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Section",fields:[{kind:"text",prop:"label",label:"Label",placeholder:"e.g. Executive summary",allowTokens:!1},{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"}]}],canvas:{label:e=>e.label??"Section"},render:({h:e,css:t,children:n,styles:r,props:o,mode:i,node:a})=>{let s=Number(o.padding)||0,c=n.length===0;return e("div",{class:["bp-section__inner",c&&"bp-section__inner--empty"],style:O({...t,padding:s?`${s}px`:t.padding})},e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":a.nodeId},c&&i==="design"?e("div",{class:"bp-empty-section"},e("span",{class:"bp-empty-section__title"},"Empty section"),e("span",{class:"bp-empty-section__hint"},"Drag blocks here, or pick one from the panel")):n))}}),co=z({type:"row",name:"Columns",description:"A row of columns",category:"layout",icon:"columns-3",keywords:["row","columns","grid","layout"],defaultProps:{layout:[6,6],allowSplit:!1,verticalAlign:"top"},container:{accepts:["@columns"],direction:"row"},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Columns",fields:[{kind:"segmented",prop:"verticalAlign",label:"Vertical align",options:[{value:"top",label:"Top",icon:"align-start-vertical"},{value:"middle",label:"Middle",icon:"align-center-vertical"},{value:"bottom",label:"Bottom",icon:"align-end-vertical"},{value:"stretch",label:"Stretch",icon:"stretch-vertical"}]},{kind:"toggle",prop:"allowSplit",label:"Allow splitting across pages",description:"When off, a row that does not fit moves to the next page whole."}]}],canvas:{label:e=>`Columns ${e.layout.join(" / ")}`},render:({h:e,css:t,children:n,styles:r,props:o})=>{let i=o.verticalAlign==="middle"?"center":o.verticalAlign==="bottom"?"end":o.verticalAlign==="stretch"?"stretch":"start";return e("div",{class:"bp-row__grid",style:O({...t,display:"grid","grid-template-columns":"repeat(12, minmax(0, 1fr))","column-gap":`${r.spacing.columnGap}px`,"align-items":i})},n)}}),po=z({type:"column",name:"Column",category:"structure",icon:"rectangle-vertical",hidden:!0,defaultProps:{span:6},container:{accepts:["@blocks","@rows"]},split:"children",styleGroups:["spacing","background","border"],render:({h:e,css:t,children:n,node:r,styles:o,mode:i})=>{let a=n.length===0;return e("div",{class:["bp-column__inner",a&&"bp-column__inner--empty"],style:O({...t,"min-width":"0",height:"100%"})},e("div",{class:"bp-stack",style:{gap:`${o.spacing.blockGap}px`},"data-dropzone":r.nodeId},a&&i==="design"?e("div",{class:"bp-empty-column"},"Drop here"):n))}}),uo=z({type:"repeater-item",name:"Repeater item",category:"structure",hidden:!0,defaultProps:{index:0,count:0},container:{accepts:["@blocks","@rows"]},split:"children",render:({h:e,children:t,styles:n})=>e("div",{class:"bp-stack bp-repeater-item__inner",style:{gap:`${n.spacing.blockGap}px`}},t)});function An(e,t){return v("svg",{width:e,height:e,viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",style:{display:"block","flex-shrink":"0"}},t)}function fo(e,t,n){return An(t,[v("path",{d:e==="up"?"M6 2 L11 9.5 L1 9.5 Z":"M6 10 L1 2.5 L11 2.5 Z",fill:n})])}function mo(e,t){return An(e,[v("path",{d:"M2 6.4 L4.8 9.2 L10 3.2",fill:"none",stroke:t,"stroke-width":1.8,"stroke-linecap":"round","stroke-linejoin":"round"})])}function go(e,t){return An(e,[v("circle",{cx:6,cy:6,r:2.6,fill:t})])}var Xe={kind:"segmented",prop:"align",label:"Align",options:[{value:"left",label:"Left",icon:"align-left"},{value:"center",label:"Centre",icon:"align-center"},{value:"right",label:"Right",icon:"align-right"}]},ho=z({type:"heading",name:"Heading",description:"Section title using a document heading style",category:"content",icon:"heading",keywords:["title","h1","h2","h3"],defaultProps:{text:"Heading",level:"h2"},defaultTextStyle:"h2",defaultFlow:{keepWithNext:!0},split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Heading",fields:[{kind:"text",prop:"text",label:"Text",placeholder:"Heading text or {{ token }}"},{kind:"segmented",prop:"level",label:"Level",options:[{value:"h1",label:"H1"},{value:"h2",label:"H2"},{value:"h3",label:"H3"},{value:"h4",label:"H4"}]}]}],canvas:{inlineEdit:{prop:"text",kind:"text"},label:e=>e.text?.slice(0,40)||"Heading"},render:({h:e,css:t,text:n,props:r,partAttrs:o,mode:i})=>{let a=n("text"),s=a.length===0||a.length===1&&a[0]==="";return e(r.level||"h2",{class:["bp-heading",`bp-heading--${r.level}`],style:O(t),...o("text")},s&&i==="design"?e("span",{class:"bp-placeholder-text"},"Heading"):a)}}),yo=z({type:"text",name:"Text",description:"Rich text with inline data tokens",category:"content",icon:"text",keywords:["paragraph","rich text","body","copy"],defaultProps:()=>({content:Mt("")}),defaultTextStyle:"body",split:"lines",measure:"text",styleGroups:["textStyle","typography","alignment","spacing","background","border","flow"],inspector:[{title:"Text",fields:[{kind:"richtext",prop:"content",label:"Content"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"},label:()=>"Text"},render:({h:e,css:t,richText:n,partAttrs:r,mode:o,node:i})=>{let a=i.richText.content??i.props.content,s=!a||a.content.every(c=>c.type==="paragraph"&&c.content.length===0);return e("div",{class:["bp-text",s&&"bp-text--empty"],style:O(t),...r("text")},s&&o==="design"?e("p",{class:"bp-p bp-placeholder-text"},"Type or drop a field here\u2026"):n("content"))}}),bo=z({type:"image",name:"Image",description:"Static or data-bound image",category:"content",icon:"image",keywords:["picture","photo","graphic"],defaultProps:{src:"",alt:"",fit:"contain",width:null,height:null,align:"left",radius:0,link:""},split:"none",styleGroups:["spacing","border","flow"],inspector:[{title:"Image",fields:[{kind:"image",prop:"src",label:"Source",allowBinding:!0},{kind:"text",prop:"alt",label:"Alt text",allowTokens:!0},{kind:"text",prop:"link",label:"Link URL",allowTokens:!0}]},{title:"Size",fields:[{kind:"number",prop:"width",label:"Width",min:8,max:2e3,unit:"px"},{kind:"number",prop:"height",label:"Height",min:8,max:2e3,unit:"px"},{kind:"segmented",prop:"fit",label:"Fit",options:[{value:"contain",label:"Contain"},{value:"cover",label:"Cover"}]},Xe,{kind:"number",prop:"radius",label:"Corner radius",min:0,max:200,unit:"px"}]}],validate:({props:e})=>{let t=String(e.src??"");return t&&!t.includes("{{")&&!me(t,{allowData:!0})?[{severity:"warning",code:"invalid-url",message:`Image URL "${t.slice(0,60)}" is not an http(s) or data:image URL`,prop:"src"}]:[]},render:({h:e,css:t,props:n,mode:r,node:o,width:i})=>{let a=typeof n.src=="string"?n.src:"",s=a&&me(a,{allowData:!0}),c=n.width??void 0,l=n.height??void 0,p=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start",u={width:c?`${Math.min(c,i)}px`:l?"auto":"100%",height:l?`${l}px`:"auto","max-width":"100%","object-fit":n.fit,"border-radius":n.radius?`${n.radius}px`:void 0,display:"block"},d;if(s)d=e("img",{src:a,alt:n.alt||"",style:u,draggable:"false"});else if(r==="design"){let f=o.bindings.src;d=e("div",{class:"bp-image-placeholder",style:{width:c?`${Math.min(c,i)}px`:"100%",height:`${l??140}px`,"border-radius":n.radius?`${n.radius}px`:void 0}},e("span",{class:"bp-image-placeholder__label"},f?f.label:a?"Invalid image URL":"Choose an image"))}else d=e("div",{style:{width:c?`${c}px`:"100%",height:`${l??0}px`}});let m=n.link&&me(n.link)?e("a",{href:n.link,rel:"noopener",style:{display:"block",width:c?`${Math.min(c,i)}px`:"100%"}},d):d;return e("div",{class:"bp-image",style:O({...t,display:"flex","justify-content":p})},m)}}),xo=z({type:"logo",name:"Logo",description:"The active brand's logo",category:"content",icon:"badge-check",keywords:["brand","theme"],defaultProps:{variant:"auto",height:32,align:"left"},split:"none",styleGroups:["spacing","flow"],inspector:[{title:"Logo",fields:[{kind:"number",prop:"height",label:"Height",min:8,max:400,unit:"px"},Xe,{kind:"select",prop:"variant",label:"Variant",options:[{value:"auto",label:"Automatic"},{value:"light",label:"Standard"},{value:"dark",label:"For dark backgrounds"}]}]}],render:({h:e,css:t,props:n,theme:r,mode:o,style:i})=>{let s=(n.variant==="dark"||n.variant==="auto"&&!!i.background&&Ue(i.background))&&r.logoDark||r.logo,c=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start",l=s&&me(s,{allowData:!0})?e("img",{src:s,alt:r.logoAlt??`${r.name} logo`,style:{height:`${n.height}px`,width:"auto","max-width":"100%",display:"block"},draggable:"false"}):o==="design"?e("div",{class:"bp-logo-placeholder",style:{height:`${n.height}px`}},r.name||"Logo"):e("div",{style:{height:`${n.height}px`}});return e("div",{class:"bp-logo",style:O({...t,display:"flex","justify-content":c})},l)}}),ko=z({type:"divider",name:"Divider",category:"content",icon:"minus",keywords:["rule","line","separator","hr"],defaultProps:{thickness:1,color:"$colors.border",lineStyle:"solid",width:100},split:"none",styleGroups:["spacing","flow"],inspector:[{title:"Divider",fields:[{kind:"number",prop:"thickness",label:"Thickness",min:1,max:20,unit:"px"},{kind:"color",prop:"color",label:"Colour"},{kind:"segmented",prop:"lineStyle",label:"Style",options:[{value:"solid",label:"Solid"},{value:"dashed",label:"Dashed"},{value:"dotted",label:"Dotted"}]},{kind:"number",prop:"width",label:"Width",min:5,max:100,unit:"%"}]}],render:({h:e,css:t,props:n,theme:r})=>e("div",{class:"bp-divider",style:O({...t,display:"flex","justify-content":"center"})},e("div",{style:{width:`${n.width}%`,"border-top":`${n.thickness}px ${n.lineStyle} ${q(n.color,r,r.colors.border)}`}}))}),wo=z({type:"spacer",name:"Spacer",category:"content",icon:"move-vertical",keywords:["gap","space","padding"],defaultProps:{height:24},split:"none",styleGroups:["flow"],inspector:[{title:"Spacer",fields:[{kind:"number",prop:"height",label:"Height",min:1,max:600,unit:"px"}]}],render:({h:e,props:t,mode:n})=>e("div",{class:["bp-spacer",n==="design"&&"bp-spacer--design"],style:{height:`${t.height}px`}})}),vo=z({type:"button",name:"Button",description:"A hyperlink styled as a button",category:"content",icon:"mouse-pointer-click",keywords:["link","cta","url"],defaultProps:{label:"View online",url:"https://",variant:"filled",color:"$colors.primary",align:"left",size:"md"},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Button",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"url",label:"URL",placeholder:"https://\u2026 or {{ token }}"},{kind:"segmented",prop:"variant",label:"Style",options:[{value:"filled",label:"Filled"},{value:"outline",label:"Outline"},{value:"link",label:"Link"}]},{kind:"color",prop:"color",label:"Colour"},{kind:"segmented",prop:"size",label:"Size",options:[{value:"sm",label:"S"},{value:"md",label:"M"},{value:"lg",label:"L"}]},Xe]}],validate:({props:e})=>{let t=String(e.url??"");return t&&!t.includes("{{")&&!me(t)?[{severity:"warning",code:"invalid-url",message:`Button URL "${t}" is not a valid http(s) or mailto link`,prop:"url"}]:[]},render:({h:e,css:t,props:n,theme:r,text:o,style:i})=>{let a=q(n.color,r,r.colors.primary),s=n.size==="sm"?"5px 10px":n.size==="lg"?"11px 22px":"8px 16px",c=n.size==="sm"?i.fontSize-1:n.size==="lg"?i.fontSize+2:i.fontSize,l={display:"inline-block",padding:n.variant==="link"?"0":s,"border-radius":`${r.radius??6}px`,"font-weight":"600","font-size":`${c}px`,"text-decoration":n.variant==="link"?"underline":"none","font-family":i.fontFamily,"line-height":"1.2"};n.variant==="filled"?Object.assign(l,{background:a,color:Ue(a)?"#FFFFFF":r.colors.text}):n.variant==="outline"?Object.assign(l,{border:`1.5px solid ${a}`,color:a}):Object.assign(l,{color:a});let p=typeof n.url=="string"?n.url:"",u=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start";return e("div",{class:"bp-button",style:O({...t,display:"flex","justify-content":u})},e("a",{class:"bp-button__link",href:me(p)?p:void 0,rel:"noopener",style:l},o("label","Button")))}}),So=z({type:"callout",name:"Callout",description:"Highlighted note or warning",category:"content",icon:"message-square-warning",keywords:["note","warning","alert","notice","info"],defaultProps:()=>({title:"Important",content:Mt("Add the note here."),tone:"info",icon:!0}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Callout",fields:[{kind:"text",prop:"title",label:"Title"},{kind:"richtext",prop:"content",label:"Content"},{kind:"select",prop:"tone",label:"Tone",options:[{value:"info",label:"Information"},{value:"success",label:"Success"},{value:"warning",label:"Warning"},{value:"danger",label:"Danger"},{value:"neutral",label:"Neutral"}]},{kind:"toggle",prop:"icon",label:"Show icon"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"},label:e=>e.title||"Callout"},render:({h:e,css:t,props:n,theme:r,text:o,richText:i,partAttrs:a})=>{let c={info:r.colors.secondary,success:r.colors.success??"#1E8E5A",warning:r.colors.warning??"#C77D0A",danger:r.colors.danger??"#C0392B",neutral:r.colors.mutedText}[n.tone]??r.colors.secondary,p={info:"i",warning:"!",danger:"!"}[n.tone]??(n.tone==="success"?mo(11,"#fff"):n.tone==="neutral"?go(11,"#fff"):"i");return e("div",{class:["bp-callout",`bp-callout--${n.tone}`],style:O({...t,display:"flex",gap:"12px",padding:t.padding??"12px 14px","border-left":`3px solid ${c}`,background:t.background??ba(c),"border-radius":`${r.radius??6}px`})},n.icon?e("div",{class:"bp-callout__icon",style:{color:"#fff",background:c,"font-weight":"700","font-size":"11px",width:"18px",height:"18px","border-radius":"9px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0","margin-top":"1px"}},p):null,e("div",{class:"bp-callout__body",style:{flex:"1","min-width":"0"}},n.title?e("div",{class:"bp-callout__title",style:{"font-weight":"600","margin-bottom":"3px"}},o("title")):null,e("div",{class:"bp-callout__content",...a("text")},i("content"))))}});function ba(e,t=.92){let n=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!n)return"transparent";let r=parseInt(n[1],16);return`#${[r>>16&255,r>>8&255,r&255].map(i=>Math.round(i+(255-i)*t)).map(i=>i.toString(16).padStart(2,"0")).join("")}`}var To=z({type:"quote",name:"Quote",category:"content",icon:"quote",keywords:["blockquote","testimonial","citation"],defaultProps:()=>({content:Mt("A memorable statement."),attribution:""}),defaultTextStyle:"lead",defaultStyle:{fontStyle:"italic"},defaultFlow:{keepTogether:!0},split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Quote",fields:[{kind:"richtext",prop:"content",label:"Quote"},{kind:"text",prop:"attribution",label:"Attribution",placeholder:"\u2014 Name, role"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"}},render:({h:e,css:t,props:n,theme:r,richText:o,text:i,partAttrs:a})=>e("blockquote",{class:"bp-quote",style:O({...t,margin:"0","padding-left":"16px","border-left":`3px solid ${r.colors.accent}`})},e("div",{class:"bp-quote__content",...a("text")},o("content")),n.attribution?e("div",{class:"bp-quote__attribution",style:{"font-style":"normal","font-size":`${Math.max(8,Math.round(Number(t["font-size"]?.replace("px",""))*.8))}px`,color:r.colors.mutedText,"margin-top":"6px"}},i("attribution")):null)}),$o=z({type:"field",name:"Field",description:"A labelled data value",category:"data",icon:"tag",keywords:["key value","label","dynamic text","binding","data"],defaultProps:{label:"Label",value:"",layout:"stacked",fallback:"\u2014",labelWidth:40},defaultTextStyle:"body",split:"none",styleGroups:["typography","alignment","spacing","flow"],inspector:[{title:"Field",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"binding",prop:"value",label:"Value",placeholder:"Pick a field"},{kind:"text",prop:"fallback",label:"Fallback when empty",allowTokens:!1},{kind:"segmented",prop:"layout",label:"Layout",options:[{value:"stacked",label:"Stacked"},{value:"inline",label:"Inline"}]},{kind:"number",prop:"labelWidth",label:"Label width",min:10,max:80,unit:"%",when:e=>e.layout==="inline"}]}],canvas:{label:e=>e.label||"Field"},render:({h:e,css:t,props:n,theme:r,text:o,mode:i,node:a})=>{let s=a.bindings.value,c=n.value,l=c==null||c===""?n.fallback:String(c),p=i==="design"&&s?e("span",{class:"bp-token","data-expr":s.expr,title:s.expr},s.label):l,u=e("div",{class:"bp-field__label",style:{color:r.colors.mutedText,"font-size":"0.85em","text-transform":"uppercase","letter-spacing":"0.04em","font-weight":"600"}},o("label")),d=e("div",{class:"bp-field__value",style:{"font-weight":"500"}},p);return n.layout==="inline"?e("div",{class:"bp-field bp-field--inline",style:O({...t,display:"flex",gap:"8px","align-items":"baseline"})},e("div",{style:{flex:`0 0 ${n.labelWidth}%`}},u),e("div",{style:{flex:"1","min-width":"0"}},d)):e("div",{class:"bp-field",style:O({...t,display:"flex","flex-direction":"column",gap:"2px"})},u,d)}}),Ro=z({type:"kpi",name:"Statistic",description:"Big number with label and trend",category:"data",icon:"trending-up",keywords:["kpi","metric","number","stat","big number"],defaultProps:{label:"Portfolio value",value:"",caption:"",trend:"",trendFormat:"percent",accent:"$colors.primary",align:"left",size:"md"},defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","background","border","flow"],inspector:[{title:"Statistic",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"binding",prop:"value",label:"Value",valueType:["number","currency","percent","string"]},{kind:"binding",prop:"trend",label:"Trend",valueType:["number","percent","string"],placeholder:"e.g. portfolio.change"},{kind:"segmented",prop:"trendFormat",label:"Trend format",options:[{value:"percent",label:"%"},{value:"number",label:"#"},{value:"text",label:"Aa"}]},{kind:"text",prop:"caption",label:"Caption"},{kind:"color",prop:"accent",label:"Accent"},Xe,{kind:"segmented",prop:"size",label:"Size",options:[{value:"sm",label:"S"},{value:"md",label:"M"},{value:"lg",label:"L"}]}]}],canvas:{label:e=>e.label||"Statistic"},render:({h:e,css:t,props:n,theme:r,text:o,mode:i,node:a,format:s})=>{let c=q(n.accent,r,r.colors.primary),l=n.size==="sm"?20:n.size==="lg"?36:28,p=a.bindings.value,u=e("span",{class:i==="design"&&p?"bp-cell--bound":void 0,title:p?.expr},n.value===void 0||n.value===null||n.value===""?"\u2014":String(n.value)),d=null,m=n.trend;if(m!=null&&m!==""){let f=Number(m),b=Number.isFinite(f)?f>=0:!0,h=n.trendFormat==="percent"&&Number.isFinite(f)?`${f>0?"+":""}${new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:1}).format(f)}`:n.trendFormat==="number"&&Number.isFinite(f)?`${f>0?"+":""}${new Intl.NumberFormat(s.locale,{maximumFractionDigits:2}).format(f)}`:String(m),x=a.bindings.trend,R=b?r.colors.success??"#1E8E5A":r.colors.danger??"#C0392B";d=e("span",{class:["bp-kpi__trend",b?"bp-kpi__trend--up":"bp-kpi__trend--down",i==="design"&&x?"bp-cell--bound":""],title:x?.expr,style:{color:R,"font-weight":"600","font-size":`${Math.round(l*.9)}px`,display:"inline-flex","align-items":"center",gap:"4px",height:`${Math.round(l*1.05)}px`}},fo(b?"up":"down",Math.max(9,Math.round(l*.55)),R),e("span",null,h))}return e("div",{class:"bp-kpi",style:O({...t,"text-align":n.align,"border-top":t.border?void 0:`3px solid ${c}`,"padding-top":t.padding?void 0:"8px"})},e("div",{class:"bp-kpi__label",style:{color:r.colors.mutedText,"font-size":"0.9em","text-transform":"uppercase","letter-spacing":"0.05em","font-weight":"600",display:"flex",gap:"6px","align-items":"center","justify-content":n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start","flex-wrap":"wrap"}},o("label"),i==="design"&&p?e("span",{class:"bp-token","data-expr":p.expr,style:{"text-transform":"none","letter-spacing":"0","font-weight":"500"}},p.label):null),e("div",{class:"bp-kpi__value",style:{"font-size":`${l}px`,"font-weight":"700","line-height":"1.15",color:r.colors.text,"font-family":r.typography.headingFont,"letter-spacing":"-0.02em","margin-top":"4px",display:"flex","align-items":"baseline",gap:"8px","justify-content":n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start","flex-wrap":"wrap"}},u,d),n.caption?e("div",{class:"bp-kpi__caption",style:{color:r.colors.mutedText,"font-size":"0.9em","margin-top":"3px"}},o("caption")):null)}}),Po=z({type:"signature",name:"Signature",description:"Signature line with name and date",category:"content",icon:"pen-line",keywords:["sign","approval"],defaultProps:{label:"Signed",name:"",role:"",showDate:!0,lineWidth:240},defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Signature",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"name",label:"Name",placeholder:"{{ adviser.name }}"},{kind:"text",prop:"role",label:"Role"},{kind:"toggle",prop:"showDate",label:"Date line"},{kind:"number",prop:"lineWidth",label:"Line width",min:80,max:600,unit:"px"}]}],render:({h:e,css:t,props:n,theme:r,text:o})=>{let i=(a,s)=>e("div",{style:{width:`${n.lineWidth}px`,"max-width":"100%"}},e("div",{style:{height:"36px","border-bottom":`1px solid ${r.colors.text}`}}),e("div",{style:{"font-size":"0.85em",color:r.colors.mutedText,"margin-top":"4px"}},a),s.length?e("div",{style:{"font-weight":"600","margin-top":"2px"}},s):null);return e("div",{class:"bp-signature",style:O({...t,display:"flex",gap:"32px","flex-wrap":"wrap"})},i(n.label||"Signed",[...o("name"),...n.role?[e("div",{style:{"font-weight":"400",color:r.colors.mutedText}},o("role"))]:[]]),n.showDate?i("Date",[]):null)}}),Mo=z({type:"date",name:"Date",description:"Today's date or a bound date field",category:"content",icon:"calendar",keywords:["today","generated","date"],defaultProps:{source:"now",value:"",pattern:"d MMMM yyyy",prefix:""},defaultTextStyle:"body",split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Date",fields:[{kind:"segmented",prop:"source",label:"Source",options:[{value:"now",label:"Today"},{value:"binding",label:"Field"}]},{kind:"binding",prop:"value",label:"Date field",valueType:["date","datetime"],when:e=>e.source==="binding"},{kind:"text",prop:"pattern",label:"Format",placeholder:"d MMMM yyyy",allowTokens:!1},{kind:"text",prop:"prefix",label:"Prefix",placeholder:"Prepared on "}]}],render:({h:e,css:t,props:n,format:r,text:o,mode:i,node:a})=>{let s=n.source==="now"?r.now??new Date:n.value,c=a.bindings.value,l=i==="design"&&n.source==="binding"&&c?e("span",{class:"bp-token","data-expr":c.expr},c.label):Ge(s,n.pattern||void 0,r);return e("div",{class:"bp-date",style:O(t)},o("prefix"),l)}}),Co=z({type:"pageNumber",name:"Page number",category:"content",icon:"hash",keywords:["page","of","footer","numbering"],defaultProps:{format:"Page {{page.number}} of {{page.total}}",align:"right"},defaultTextStyle:"caption",split:"none",styleGroups:["textStyle","typography","spacing"],inspector:[{title:"Page number",fields:[{kind:"text",prop:"format",label:"Format",placeholder:"Page {{page.number}} of {{page.total}}"},Xe]}],render:({h:e,css:t,props:n,text:r})=>e("div",{class:"bp-page-number",style:O({...t,"text-align":n.align})},r("format"))}),No=z({type:"timestamp",name:"Generated at",description:"Date and time the document was generated",category:"content",icon:"clock",keywords:["generated","printed","timestamp","time"],defaultProps:{prefix:"Generated ",pattern:"d MMM yyyy, HH:mm",align:"left"},defaultTextStyle:"caption",split:"none",styleGroups:["textStyle","typography","spacing"],inspector:[{title:"Generated at",fields:[{kind:"text",prop:"prefix",label:"Prefix"},{kind:"text",prop:"pattern",label:"Format",allowTokens:!1},Xe]}],render:({h:e,css:t,props:n,format:r,text:o})=>e("div",{class:"bp-timestamp",style:O({...t,"text-align":n.align})},o("prefix"),Ge(r.now??new Date,n.pattern||void 0,r,!0))});var Fo=z({type:"container",name:"Container",description:"Groups blocks with shared padding and background",category:"layout",icon:"square-dashed",keywords:["group","box","wrapper"],defaultProps:{padding:0,gap:null},container:{accepts:["@blocks","@rows"]},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Container",fields:[{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"},{kind:"number",prop:"gap",label:"Block gap",min:0,max:120,unit:"px",description:"Overrides the document block gap"}]}],render:({h:e,css:t,children:n,styles:r,props:o,node:i,mode:a})=>e("div",{class:"bp-container",style:O({...t,padding:o.padding?`${o.padding}px`:t.padding})},e("div",{class:"bp-stack",style:{gap:`${o.gap??r.spacing.blockGap}px`},"data-dropzone":i.nodeId},n.length===0&&a==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}),_o=z({type:"card",name:"Card",description:"Panel with border, background and optional title",category:"layout",icon:"panel-top",keywords:["panel","box","surface"],defaultProps:{title:"",padding:null,accent:!1,accentColor:"$colors.primary"},container:{accepts:["@blocks","@rows"]},defaultFlow:{keepTogether:!0},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Card",fields:[{kind:"text",prop:"title",label:"Title"},{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"},{kind:"toggle",prop:"accent",label:"Accent bar"},{kind:"color",prop:"accentColor",label:"Accent colour",when:e=>!!e.accent}]}],canvas:{label:e=>e.title||"Card"},render:({h:e,css:t,children:n,styles:r,props:o,theme:i,text:a,node:s,mode:c})=>{let l=r.card,p=o.padding??l.padding??16,u={...t,background:t.background??q(l.background,i,i.colors.surface),border:t.border??`${l.borderWidth??1}px solid ${q(l.borderColor,i,i.colors.border)}`,"border-radius":t["border-radius"]??`${l.borderRadius??i.radius??6}px`,padding:`${p}px`,"box-shadow":l.shadow?"0 1px 2px rgba(16,24,40,0.06), 0 1px 3px rgba(16,24,40,0.1)":void 0,"border-top":o.accent?`3px solid ${q(o.accentColor,i,i.colors.primary)}`:void 0};return e("div",{class:"bp-card",style:O(u)},o.title?e("div",{class:"bp-card__title",style:{"font-family":i.typography.headingFont,"font-weight":"600","font-size":"1.1em","margin-bottom":"8px",color:i.colors.primary}},a("title")):null,e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":s.nodeId},n.length===0&&c==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}}),Ao=z({type:"pageBreak",name:"Page break",description:"Start the following content on a new page",category:"layout",icon:"scissors",keywords:["break","new page"],defaultProps:{},defaultFlow:{breakAfter:"page"},split:"none",styleGroups:[],render:({h:e,mode:t})=>t==="design"?e("div",{class:"bp-page-break"},e("span",{class:"bp-page-break__label"},"Page break")):e("div",{class:"bp-page-break bp-page-break--print",style:{height:"0"}})}),Bo=z({type:"keepTogether",name:"Keep together",description:"Blocks inside never split across pages",category:"layout",icon:"link",keywords:["group","no split","together"],defaultProps:{label:""},container:{accepts:["@blocks","@rows"]},defaultFlow:{keepTogether:!0},split:"children",styleGroups:["spacing","flow"],render:({h:e,css:t,children:n,styles:r,node:o,mode:i})=>e("div",{class:"bp-keep-together",style:O(t)},e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":o.nodeId},n.length===0&&i==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}),Io=z({type:"conditional",name:"Conditional",description:"Show the blocks inside only when a rule is true",category:"data",icon:"git-branch",keywords:["if","condition","rule","visibility","show when"],defaultProps:()=>({condition:{op:"and",rules:[]},label:""}),container:{accepts:["@blocks","@rows"],conditional:{conditionProp:"condition"}},split:"children",styleGroups:["spacing","flow"],bindings:[{prop:"condition",kind:"condition"}],inspector:[{title:"Show when",fields:[{kind:"condition",prop:"condition",label:"Rule",fullWidth:!0}]}],canvas:{label:e=>e.label||"Conditional"},render:({h:e,css:t,children:n,styles:r,props:o,node:i,mode:a})=>{let s=o.__conditionResult!==!1;return a==="preview"&&!s?null:e("div",{class:["bp-conditional",!s&&"bp-conditional--false"],style:O(t)},a==="design"?e("div",{class:"bp-conditional__badge",contenteditable:"false"},s?"Shown when rule is true":"Hidden with sample data"):null,e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":i.nodeId},n.length===0&&a==="design"?e("div",{class:"bp-empty-column"},"Drop conditional blocks here"):n))}}),Do=z({type:"repeater",name:"Repeater",description:"Repeats the blocks inside for every item in a list",category:"data",icon:"repeat",keywords:["loop","for each","list","items"],defaultProps:{source:"",alias:"item",keepItemTogether:!0,gap:null,limit:null,emptyMessage:"",separator:!1},container:{accepts:["@blocks","@rows"],repeat:{collectionProp:"source",aliasProp:"alias",keepItemTogetherProp:"keepItemTogether",limitProp:"limit"}},split:"children",styleGroups:["spacing","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"emptyMessage",kind:"template"}],inspector:[{title:"Repeat",fields:[{kind:"collection",prop:"source",label:"For each item in",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Item name",description:e=>`The name each item goes by inside the repeater, e.g. {{ ${typeof e.alias=="string"&&e.alias.trim()?e.alias.trim():"item"}.name }}`,allowTokens:!1},{kind:"toggle",prop:"keepItemTogether",label:"Keep each item on one page"},{kind:"toggle",prop:"separator",label:"Divider between items"},{kind:"number",prop:"gap",label:"Gap between items",min:0,max:120,unit:"px"},{kind:"number",prop:"limit",label:"Maximum items",min:1,max:1e4},{kind:"text",prop:"emptyMessage",label:"Message when empty",description:"Printed instead of the items when the list is empty.",fullWidth:!0}]}],canvas:{label:e=>e.source?`Repeat ${e.source}`:"Repeater"},render:({h:e,css:t,children:n,styles:r,props:o,node:i,mode:a,theme:s,text:c})=>{let l=Number(o.__itemCount??0),p=i.bindings.source;if(n.length===0&&a==="preview")return o.emptyMessage?e("div",{class:"bp-repeater__empty",style:O({...t,color:s.colors.mutedText})},c("emptyMessage")):null;let u=o.gap??r.spacing.blockGap,d=o.separator?n.flatMap((m,f)=>f===0?[m]:[e("div",{class:"bp-repeater__separator",style:{"border-top":`1px solid ${s.colors.border}`}}),m]):n;return e("div",{class:"bp-repeater",style:O(t)},a==="design"?e("div",{class:"bp-repeater__badge",contenteditable:"false"},p?`${p.label} \xB7 ${n.length>=l?`repeats ${l} time${l===1?"":"s"}`:`showing ${n.length} of ${l} sample items`}`:"Choose a list to repeat over"):null,e("div",{class:"bp-stack bp-repeater__items",style:{gap:`${u}px`},"data-dropzone":i.nodeId},d.length===0&&a==="design"?e("div",{class:"bp-empty-column"},"Drop blocks to repeat here"):d))}});function xa(){return[{id:"c1",header:"Name",value:"row.name",width:null},{id:"c2",header:"Value",value:"row.value | number",align:"right",width:30,total:"sum"}]}function Eo(e){let t=e.alias;return typeof t=="string"&&t.trim()?t.trim():"row"}function ka(e,t){if(!e||e==="*")return"Every column";let n=(t.columns??[]).find(r=>r.id===e);return n?.header||n?.value||e}var Oo=z({type:"table",name:"Table",description:"Data table bound to a list, with totals, zebra rows and page-spanning headers",category:"data",icon:"table",keywords:["grid","rows","columns","data","list"],defaultProps:()=>({source:"",alias:"row",columns:xa(),showHeader:!0,repeatHeader:!0,zebra:!0,borders:"inherit",compact:!1,fontSize:null,headerBackground:"",headerColor:"",sortBy:"",sortDir:"asc",emptyMessage:"No data",totalsLabel:"Total",conditionalFormats:[],designRows:3,rowLimit:null}),defaultTextStyle:"body",defaultFlow:{minOrphans:2,minWidows:2},split:"rows",measure:"table",styleGroups:["typography","spacing","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"columns",kind:"list",items:[{prop:"value",kind:"value",perItem:!0},{prop:"header",kind:"template"},{prop:"totalExpr",kind:"value"}]},{prop:"conditionalFormats",kind:"list",items:[{prop:"condition",kind:"value",perItem:!0}]},{prop:"emptyMessage",kind:"template"},{prop:"totalsLabel",kind:"template"}],inspector:[{title:"Data",fields:[{kind:"collection",prop:"source",label:"Rows from",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Row name",description:e=>`The name each row goes by in column values, e.g. ${Eo(e)}.name`,allowTokens:!1},{kind:"text",prop:"sortBy",label:"Sort by field",placeholder:"e.g. value",allowTokens:!1},{kind:"segmented",prop:"sortDir",label:"Direction",options:[{value:"asc",label:"Ascending"},{value:"desc",label:"Descending"}],when:e=>!!e.sortBy},{kind:"number",prop:"rowLimit",label:"Maximum rows",min:1,max:1e5},{kind:"text",prop:"emptyMessage",label:"Message when empty",description:"Printed instead of the table when the list has no rows.",fullWidth:!0}]},{title:"Columns",fields:[{kind:"columns",prop:"columns",label:"Columns",fullWidth:!0}]},{title:"Appearance",collapsed:!0,fields:[{kind:"toggle",prop:"showHeader",label:"Header row"},{kind:"toggle",prop:"repeatHeader",label:"Repeat header on each page",when:e=>e.showHeader!==!1},{kind:"toggle",prop:"zebra",label:"Zebra rows"},{kind:"toggle",prop:"compact",label:"Compact rows"},{kind:"select",prop:"borders",label:"Borders",options:[{value:"inherit",label:"Document default"},{value:"horizontal",label:"Horizontal lines"},{value:"all",label:"Full grid"},{value:"outer",label:"Outer only"},{value:"none",label:"None"}]},{kind:"color",prop:"headerBackground",label:"Header background",allowTransparent:!0},{kind:"color",prop:"headerColor",label:"Header text"},{kind:"number",prop:"fontSize",label:"Font size",min:6,max:24,unit:"px"},{kind:"text",prop:"totalsLabel",label:"Totals label"}]},{title:"Conditional formatting",collapsed:!0,fields:[{kind:"list",prop:"conditionalFormats",label:"Rules",itemLabel:"Rule",fullWidth:!0,itemSummary:(e,t,n)=>{let r=ka(String(e.columnId??""),n),o=String(e.condition??"").trim();return o?`${r} \xB7 when ${o}`:`${r} \xB7 Rule ${t+1}`},fields:[{kind:"select",prop:"columnId",label:"Column",optionsFrom:e=>[{value:"*",label:"Every column"},...(e.columns??[]).map(t=>({value:t.id,label:t.header||t.id}))]},{kind:"expression",prop:"condition",label:"When",placeholder:"row.value < 0",description:e=>`Checked once per row, e.g. ${Eo(e)}.value < 0`},{kind:"color",prop:"color",label:"Text colour"},{kind:"color",prop:"background",label:"Background",allowTransparent:!0},{kind:"toggle",prop:"bold",label:"Bold"}]}]}],validate:({props:e,checkExpression:t})=>{let n=[];(!Array.isArray(e.columns)||e.columns.length===0)&&n.push({severity:"warning",code:"empty-content",message:"Table has no columns",prop:"columns"});for(let r of e.columns??[])r.value?.trim()||n.push({severity:"warning",code:"missing-required",message:`Column "${r.header||r.id}" has no value`,prop:`columns.${r.id}.value`});for(let r of e.columns??[])r.totalExpr?.trim()&&n.push(...t(r.totalExpr,`columns.${r.id}.totalExpr`));return n},canvas:{label:e=>e.source?`Table \xB7 ${e.source}`:"Table"},resolve:({props:e,mode:t,evaluateIn:n,evaluate:r,warn:o,theme:i})=>{let a=e.alias||"row",s=Array.isArray(e.source)?e.source:[];if(e.sortBy){let f=e.sortDir==="desc"?-1:1;s=[...s].sort((b,h)=>We(be(b,e.sortBy),be(h,e.sortBy))*f)}let c=s.length;e.rowLimit&&(s=s.slice(0,e.rowLimit));let l=s;t==="design"&&(s=s.slice(0,Math.max(1,e.designRows||3)));let p=Array.isArray(e.columns)?e.columns:[],u=Array.isArray(e.conditionalFormats)?e.conditionalFormats:[],d=s.map((f,b)=>{let h={[a]:f,item:f,row:f,index:b+1,first:b===0,last:b===s.length-1,count:s.length},x={},R={};for(let g of u){if(!g.condition?.trim())continue;let P=!1;try{P=!!n(g.condition,h)}catch{P=!1}if(!P)continue;let T={};g.color&&(T.color=q(g.color,i,i.colors.text)),g.background&&(T.background=q(g.background,i,"transparent")),g.bold&&(T["font-weight"]="700"),g.columnId==="*"||!g.columnId?Object.assign(x,T):R[g.columnId]={...R[g.columnId]??{},...T}}return{cells:p.map(g=>{let P="";if(g.value?.trim())try{P=A(n(g.value,h))}catch(T){o(`Column "${g.header}" failed: ${T.message}`)}return{text:P,style:R[g.id]}}),style:Object.keys(x).length?x:void 0}}),m=null;return p.some(f=>f.total&&f.total!=="none"||f.totalExpr?.trim())&&(m=p.map((f,b)=>{if(f.totalExpr?.trim())try{return{text:A(n(f.totalExpr,{rows:l,[a+"s"]:l}))}}catch{return{text:""}}if(!f.total||f.total==="none")return{text:b===0&&!p[0]?.total?String(e.totalsLabel??"Total"):""};let h=l.map(g=>H(n(va(f.value),{[a]:g,item:g,row:g}))).filter(g=>g!==null),x=null;f.total==="sum"?x=h.reduce((g,P)=>g+P,0):f.total==="avg"?x=h.length?h.reduce((g,P)=>g+P,0)/h.length:null:f.total==="count"?x=l.length:f.total==="min"?x=h.length?Math.min(...h):null:f.total==="max"&&(x=h.length?Math.max(...h):null);let R=f.totalFormat?.trim()||Sa(f.value);return{text:x===null?"":R?A(r(`(${x}) | ${R}`)):A(x)}}),m[0]&&m[0].text===""&&!(p[0]?.total&&p[0].total!=="none")&&(m[0]={text:String(e.totalsLabel??"Total")})),{__rows:d,__totals:m,__rowCount:c,__rowsShown:d.length}},render:({h:e,css:t,props:n,theme:r,styles:o,mode:i,text:a,node:s,style:c})=>{let l=n,p=Array.isArray(l.columns)?l.columns:[],u=o.table,d=l.fontSize??u.fontSize??c.fontSize,m=l.borders==="inherit"?u.borders??"horizontal":l.borders,f=q(u.borderColor,r,r.colors.border),b=u.borderWidth??1,h=l.compact?Math.max(2,(u.cellPaddingY??6)-3):u.cellPaddingY??6,x=u.cellPaddingX??8,R=l.headerBackground?q(l.headerBackground,r,""):q(u.headerBackground,r,r.table?.headerBackground??"#F3F4F6"),w=l.headerColor?q(l.headerColor,r,""):q(u.headerColor,r,R&&Ue(R)?"#FFFFFF":r.colors.text),g=q(u.zebraBackground,r,r.table?.zebraBackground??"#FAFAFB"),P=(M,N)=>{let B=`${b}px solid ${f}`;switch(m){case"all":return{border:B};case"horizontal":return{"border-bottom":B,...M?{"border-bottom":`${b*2}px solid ${f}`}:{}};case"outer":return{};default:return{}}},T=l.__rows??[],C=T.map((M,N)=>e("tr",{class:["bp-table__row",l.zebra&&N%2===1&&"bp-table__row--alt"],style:{...l.zebra&&N%2===1?{background:g}:{},...M.style??{}}},M.cells.map((B,U)=>{let j=p[U];return e("td",{class:["bp-table__cell",i==="design"&&"bp-cell--bound"],style:{padding:`${h}px ${x}px`,"text-align":j?.align??"left","font-weight":j?.bold?"600":void 0,"vertical-align":"top","white-space":j?.wrap===!1?"nowrap":"normal",overflow:"hidden","text-overflow":"ellipsis",...P(!1,N===T.length-1),...B.style??{}}},B.text)}))),I=p.reduce((M,N)=>M+(N.width??0),0),W=p.filter(M=>!M.width).length,D=W?Math.max(5,(100-I)/W):0,E=e("colgroup",null,p.map(M=>e("col",{style:{width:`${M.width??D}%`}}))),y=l.showHeader!==!1?e("thead",{class:"bp-table__head"},e("tr",null,p.map(M=>e("th",{class:"bp-table__th",style:{padding:`${h}px ${x}px`,"text-align":M.align??"left",background:R||void 0,color:w,"font-weight":String(u.headerFontWeight??600),"vertical-align":"bottom",...P(!0,!1)}},...a(`columns.${p.indexOf(M)}.header`,M.header))))):null,k=l.__totals?e("tfoot",{class:"bp-table__foot"},e("tr",null,l.__totals.map((M,N)=>e("td",{class:"bp-table__total",style:{padding:`${h}px ${x}px`,"text-align":p[N]?.align??"left","font-weight":"700","border-top":`${b*2}px solid ${f}`,...m==="all"?{border:`${b}px solid ${f}`}:{}}},M.text)))):null,$=T.length===0,_={width:"100%","border-collapse":"collapse","table-layout":"fixed","font-size":`${d}px`,...m==="outer"?{border:`${b}px solid ${f}`}:{}},S=s.bindings.source;return e("div",{class:"bp-table-wrap",style:O(t)},i==="design"?e("div",{class:"bp-table__badge",contenteditable:"false"},S?`${S.label} \xB7 ${wa(l.__rowsShown??0,l.__rowCount??0)}`:"Choose a list"):null,e("table",{class:"bp-table",style:_},E,y,e("tbody",null,$?e("tr",null,e("td",{colspan:String(Math.max(1,p.length)),style:{padding:`${h*2}px ${x}px`,color:r.colors.mutedText,"text-align":"center","font-style":"italic"}},...a("emptyMessage","No data"))):C),k))}});function wa(e,t){return t===0?"no rows":e>=t?`${t} row${t===1?"":"s"}`:`showing ${e} of ${t} sample rows`}function va(e){let t=e.indexOf("|");return t<0||e[t+1]==="|"?e:e.slice(0,t).trim()}function Sa(e){let t=e.indexOf("|");return t<0||e[t+1]==="|"?"":e.slice(t+1).trim()}var Vo=z({type:"keyValueList",name:"Key / value list",description:"A list of labelled values",category:"data",icon:"list",keywords:["details","properties","definition list","summary"],defaultProps:()=>({items:[{id:"k1",label:"Name",value:""},{id:"k2",label:"Reference",value:""}],layout:"inline",labelWidth:35,dividers:!0,columns:1}),defaultTextStyle:"body",split:"none",styleGroups:["typography","spacing","background","border","flow"],bindings:[{prop:"items",kind:"list",items:[{prop:"label",kind:"template"},{prop:"value",kind:"template"}]}],inspector:[{title:"Items",fields:[{kind:"keyValues",prop:"items",label:"Items",fullWidth:!0},{kind:"segmented",prop:"layout",label:"Layout",options:[{value:"inline",label:"Inline"},{value:"stacked",label:"Stacked"},{value:"grid",label:"Grid"}]},{kind:"number",prop:"columns",label:"Columns",min:1,max:4,when:e=>e.layout==="grid"},{kind:"number",prop:"labelWidth",label:"Label width",min:10,max:80,unit:"%",when:e=>e.layout==="inline"},{kind:"toggle",prop:"dividers",label:"Dividers"}]}],render:({h:e,css:t,props:n,theme:r,text:o})=>{let i=Array.isArray(n.items)?n.items:[],a=n.dividers?`1px solid ${r.colors.border}`:void 0;return n.layout==="grid"?e("div",{class:"bp-kv bp-kv--grid",style:O({...t,display:"grid","grid-template-columns":`repeat(${n.columns||2}, minmax(0, 1fr))`,gap:"10px 16px"})},i.map((s,c)=>e("div",{class:"bp-kv__item"},e("div",{class:"bp-kv__label",style:{color:r.colors.mutedText,"font-size":"0.85em","text-transform":"uppercase","letter-spacing":"0.04em","font-weight":"600"}},o(`items.${c}.label`,s.label)),e("div",{class:"bp-kv__value",style:{"font-weight":"500"}},o(`items.${c}.value`,s.value||"\u2014"))))):e("div",{class:["bp-kv",`bp-kv--${n.layout}`],style:O(t)},i.map((s,c)=>n.layout==="inline"?e("div",{class:"bp-kv__row",style:{display:"flex",gap:"8px",padding:"5px 0","border-bottom":c<i.length-1?a:void 0}},e("div",{class:"bp-kv__label",style:{flex:`0 0 ${n.labelWidth}%`,color:r.colors.mutedText}},o(`items.${c}.label`,s.label)),e("div",{class:"bp-kv__value",style:{flex:"1","min-width":"0","font-weight":"500"}},o(`items.${c}.value`,s.value||"\u2014"))):e("div",{class:"bp-kv__row",style:{padding:"5px 0","border-bottom":c<i.length-1?a:void 0}},e("div",{class:"bp-kv__label",style:{color:r.colors.mutedText,"font-size":"0.85em"}},o(`items.${c}.label`,s.label)),e("div",{class:"bp-kv__value",style:{"font-weight":"500"}},o(`items.${c}.value`,s.value||"\u2014")))))}});function Be(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Bn(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Vt(e){let t,n,r;e.length!==2?(t=Be,n=(s,c)=>Be(e(s),c),r=(s,c)=>e(s)-c):(t=e===Be||e===Bn?e:Ta,n=e,r=e);function o(s,c,l=0,p=s.length){if(l<p){if(t(c,c)!==0)return p;do{let u=l+p>>>1;n(s[u],c)<0?l=u+1:p=u}while(l<p)}return l}function i(s,c,l=0,p=s.length){if(l<p){if(t(c,c)!==0)return p;do{let u=l+p>>>1;n(s[u],c)<=0?l=u+1:p=u}while(l<p)}return l}function a(s,c,l=0,p=s.length){let u=o(s,c,l,p-1);return u>l&&r(s[u-1],c)>-r(s[u],c)?u-1:u}return{left:o,center:a,right:i}}function Ta(){return 0}function In(e){return e===null?NaN:+e}var Lo=Vt(Be),jo=Lo.right,$a=Lo.left,Ra=Vt(In).center,Dn=jo;var Ye=class extends Map{constructor(t,n=Ca){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(let[r,o]of t)this.set(r,o)}get(t){return super.get(zo(this,t))}has(t){return super.has(zo(this,t))}set(t,n){return super.set(Pa(this,t),n)}delete(t){return super.delete(Ma(this,t))}};function zo({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function Pa({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Ma({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Ca(e){return e!==null&&typeof e=="object"?e.valueOf():e}var Na=Math.sqrt(50),Fa=Math.sqrt(10),_a=Math.sqrt(2);function Lt(e,t,n){let r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=Na?10:i>=Fa?5:i>=_a?2:1,s,c,l;return o<0?(l=Math.pow(10,-o)/a,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=Math.pow(10,o)*a,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?Lt(e,t,n*2):[s,c,l]}function jt(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[o,i,a]=r?Lt(t,e,n):Lt(e,t,n);if(!(i>=o))return[];let s=i-o+1,c=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)c[l]=(i-l)/-a;else for(let l=0;l<s;++l)c[l]=(i-l)*a;else if(a<0)for(let l=0;l<s;++l)c[l]=(o+l)/-a;else for(let l=0;l<s;++l)c[l]=(o+l)*a;return c}function mt(e,t,n){return t=+t,e=+e,n=+n,Lt(e,t,n)[2]}function En(e,t,n){t=+t,e=+e,n=+n;let r=t<e,o=r?mt(t,e,n):mt(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}function zt(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=Math.max(0,Math.ceil((t-e)/n))|0,i=new Array(o);++r<o;)i[r]=e+r*n;return i}function Je(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var Ho=Symbol("implicit");function Ht(){var e=new Ye,t=[],n=[],r=Ho;function o(i){let a=e.get(i);if(a===void 0){if(r!==Ho)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return o.domain=function(i){if(!arguments.length)return t.slice();t=[],e=new Ye;for(let a of i)e.has(a)||e.set(a,t.push(a)-1);return o},o.range=function(i){return arguments.length?(n=Array.from(i),o):n.slice()},o.unknown=function(i){return arguments.length?(r=i,o):r},o.copy=function(){return Ht(t,n).unknown(r)},Je.apply(o,arguments),o}function ve(){var e=Ht().unknown(void 0),t=e.domain,n=e.range,r=0,o=1,i,a,s=!1,c=0,l=0,p=.5;delete e.unknown;function u(){var d=t().length,m=o<r,f=m?o:r,b=m?r:o;i=(b-f)/Math.max(1,d-c+l*2),s&&(i=Math.floor(i)),f+=(b-f-i*(d-c))*p,a=i*(1-c),s&&(f=Math.round(f),a=Math.round(a));var h=zt(d).map(function(x){return f+i*x});return n(m?h.reverse():h)}return e.domain=function(d){return arguments.length?(t(d),u()):t()},e.range=function(d){return arguments.length?([r,o]=d,r=+r,o=+o,u()):[r,o]},e.rangeRound=function(d){return[r,o]=d,r=+r,o=+o,s=!0,u()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(d){return arguments.length?(s=!!d,u()):s},e.padding=function(d){return arguments.length?(c=Math.min(1,l=+d),u()):c},e.paddingInner=function(d){return arguments.length?(c=Math.min(1,d),u()):c},e.paddingOuter=function(d){return arguments.length?(l=+d,u()):l},e.align=function(d){return arguments.length?(p=Math.max(0,Math.min(1,d)),u()):p},e.copy=function(){return ve(t(),[r,o]).round(s).paddingInner(c).paddingOuter(l).align(p)},Je.apply(u(),arguments)}function Go(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return Go(t())},e}function On(){return Go(ve.apply(null,arguments).paddingInner(1))}function Gt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Vn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function yt(){}var gt=.7,Ut=1/gt,Qe="\\s*([+-]?\\d+)\\s*",ht="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Aa=/^#([0-9a-f]{3,8})$/,Ba=new RegExp(`^rgb\\(${Qe},${Qe},${Qe}\\)$`),Ia=new RegExp(`^rgb\\(${ge},${ge},${ge}\\)$`),Da=new RegExp(`^rgba\\(${Qe},${Qe},${Qe},${ht}\\)$`),Ea=new RegExp(`^rgba\\(${ge},${ge},${ge},${ht}\\)$`),Oa=new RegExp(`^hsl\\(${ht},${ge},${ge}\\)$`),Va=new RegExp(`^hsla\\(${ht},${ge},${ge},${ht}\\)$`),Wo={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Gt(yt,Pe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:qo,formatHex:qo,formatHex8:La,formatHsl:ja,formatRgb:Uo,toString:Uo});function qo(){return this.rgb().formatHex()}function La(){return this.rgb().formatHex8()}function ja(){return Qo(this).formatHsl()}function Uo(){return this.rgb().formatRgb()}function Pe(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Aa.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ko(t):n===3?new ae(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Wt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Wt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Ba.exec(e))?new ae(t[1],t[2],t[3],1):(t=Ia.exec(e))?new ae(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Da.exec(e))?Wt(t[1],t[2],t[3],t[4]):(t=Ea.exec(e))?Wt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Oa.exec(e))?Yo(t[1],t[2]/100,t[3]/100,1):(t=Va.exec(e))?Yo(t[1],t[2]/100,t[3]/100,t[4]):Wo.hasOwnProperty(e)?Ko(Wo[e]):e==="transparent"?new ae(NaN,NaN,NaN,0):null}function Ko(e){return new ae(e>>16&255,e>>8&255,e&255,1)}function Wt(e,t,n,r){return r<=0&&(e=t=n=NaN),new ae(e,t,n,r)}function za(e){return e instanceof yt||(e=Pe(e)),e?(e=e.rgb(),new ae(e.r,e.g,e.b,e.opacity)):new ae}function et(e,t,n,r){return arguments.length===1?za(e):new ae(e,t,n,r??1)}function ae(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Gt(ae,et,Vn(yt,{brighter(e){return e=e==null?Ut:Math.pow(Ut,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?gt:Math.pow(gt,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ae(De(this.r),De(this.g),De(this.b),Kt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Zo,formatHex:Zo,formatHex8:Ha,formatRgb:Xo,toString:Xo}));function Zo(){return`#${Ie(this.r)}${Ie(this.g)}${Ie(this.b)}`}function Ha(){return`#${Ie(this.r)}${Ie(this.g)}${Ie(this.b)}${Ie((isNaN(this.opacity)?1:this.opacity)*255)}`}function Xo(){let e=Kt(this.opacity);return`${e===1?"rgb(":"rgba("}${De(this.r)}, ${De(this.g)}, ${De(this.b)}${e===1?")":`, ${e})`}`}function Kt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function De(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ie(e){return e=De(e),(e<16?"0":"")+e.toString(16)}function Yo(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ue(e,t,n,r)}function Qo(e){if(e instanceof ue)return new ue(e.h,e.s,e.l,e.opacity);if(e instanceof yt||(e=Pe(e)),!e)return new ue;if(e instanceof ue)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,c=(i+o)/2;return s?(t===i?a=(n-r)/s+(n<r)*6:n===i?a=(r-t)/s+2:a=(t-n)/s+4,s/=c<.5?i+o:2-i-o,a*=60):s=c>0&&c<1?0:a,new ue(a,s,c,e.opacity)}function ei(e,t,n,r){return arguments.length===1?Qo(e):new ue(e,t,n,r??1)}function ue(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Gt(ue,ei,Vn(yt,{brighter(e){return e=e==null?Ut:Math.pow(Ut,e),new ue(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?gt:Math.pow(gt,e),new ue(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new ae(Ln(e>=240?e-240:e+120,o,r),Ln(e,o,r),Ln(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new ue(Jo(this.h),qt(this.s),qt(this.l),Kt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Kt(this.opacity);return`${e===1?"hsl(":"hsla("}${Jo(this.h)}, ${qt(this.s)*100}%, ${qt(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Jo(e){return e=(e||0)%360,e<0?e+360:e}function qt(e){return Math.max(0,Math.min(1,e||0))}function Ln(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function jn(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}function ti(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,s=r<t-1?e[r+2]:2*i-o;return jn((n-r/t)*t,a,o,i,s)}}function ni(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),o=e[(r+t-1)%t],i=e[r%t],a=e[(r+1)%t],s=e[(r+2)%t];return jn((n-r/t)*t,o,i,a,s)}}var bt=e=>()=>e;function Ga(e,t){return function(n){return e+n*t}}function Wa(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function ri(e){return(e=+e)==1?Zt:function(t,n){return n-t?Wa(t,n,e):bt(isNaN(t)?n:t)}}function Zt(e,t){var n=t-e;return n?Ga(e,n):bt(isNaN(e)?t:e)}var zn=(function e(t){var n=ri(t);function r(o,i){var a=n((o=et(o)).r,(i=et(i)).r),s=n(o.g,i.g),c=n(o.b,i.b),l=Zt(o.opacity,i.opacity);return function(p){return o.r=a(p),o.g=s(p),o.b=c(p),o.opacity=l(p),o+""}}return r.gamma=e,r})(1);function oi(e){return function(t){var n=t.length,r=new Array(n),o=new Array(n),i=new Array(n),a,s;for(a=0;a<n;++a)s=et(t[a]),r[a]=s.r||0,o[a]=s.g||0,i[a]=s.b||0;return r=e(r),o=e(o),i=e(i),s.opacity=1,function(c){return s.r=r(c),s.g=o(c),s.b=i(c),s+""}}}var cp=oi(ti),pp=oi(ni);function ii(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function ai(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function si(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),a;for(a=0;a<r;++a)o[a]=Ee(e[a],t[a]);for(;a<n;++a)i[a]=t[a];return function(s){for(a=0;a<r;++a)i[a]=o[a](s);return i}}function li(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Me(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ci(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=Ee(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Gn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hn=new RegExp(Gn.source,"g");function qa(e){return function(){return e}}function Ua(e){return function(t){return e(t)+""}}function pi(e,t){var n=Gn.lastIndex=Hn.lastIndex=0,r,o,i,a=-1,s=[],c=[];for(e=e+"",t=t+"";(r=Gn.exec(e))&&(o=Hn.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),s[a]?s[a]+=i:s[++a]=i),(r=r[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,c.push({i:a,x:Me(r,o)})),n=Hn.lastIndex;return n<t.length&&(i=t.slice(n),s[a]?s[a]+=i:s[++a]=i),s.length<2?c[0]?Ua(c[0].x):qa(t):(t=c.length,function(l){for(var p=0,u;p<t;++p)s[(u=c[p]).i]=u.x(l);return s.join("")})}function Ee(e,t){var n=typeof t,r;return t==null||n==="boolean"?bt(t):(n==="number"?Me:n==="string"?(r=Pe(t))?(t=r,zn):pi:t instanceof Pe?zn:t instanceof Date?li:ai(t)?ii:Array.isArray(t)?si:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?ci:Me)(e,t)}function Wn(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function qn(e){return function(){return e}}function Un(e){return+e}var ui=[0,1];function tt(e){return e}function Kn(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:qn(isNaN(t)?NaN:.5)}function Ka(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Za(e,t,n){var r=e[0],o=e[1],i=t[0],a=t[1];return o<r?(r=Kn(o,r),i=n(a,i)):(r=Kn(r,o),i=n(i,a)),function(s){return i(r(s))}}function Xa(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),i=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)o[a]=Kn(e[a],e[a+1]),i[a]=n(t[a],t[a+1]);return function(s){var c=Dn(e,s,1,r)-1;return i[c](o[c](s))}}function di(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Ya(){var e=ui,t=ui,n=Ee,r,o,i,a=tt,s,c,l;function p(){var d=Math.min(e.length,t.length);return a!==tt&&(a=Ka(e[0],e[d-1])),s=d>2?Xa:Za,c=l=null,u}function u(d){return d==null||isNaN(d=+d)?i:(c||(c=s(e.map(r),t,n)))(r(a(d)))}return u.invert=function(d){return a(o((l||(l=s(t,e.map(r),Me)))(d)))},u.domain=function(d){return arguments.length?(e=Array.from(d,Un),p()):e.slice()},u.range=function(d){return arguments.length?(t=Array.from(d),p()):t.slice()},u.rangeRound=function(d){return t=Array.from(d),n=Wn,p()},u.clamp=function(d){return arguments.length?(a=d?!0:tt,p()):a!==tt},u.interpolate=function(d){return arguments.length?(n=d,p()):n},u.unknown=function(d){return arguments.length?(i=d,u):i},function(d,m){return r=d,o=m,p()}}function Zn(){return Ya()(tt,tt)}function fi(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Oe(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function he(e){return e=Oe(Math.abs(e)),e?e[1]:NaN}function mi(e,t){return function(n,r){for(var o=n.length,i=[],a=0,s=e[0],c=0;o>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),i.push(n.substring(o-=s,o+s)),!((c+=s+1)>r));)s=e[a=(a+1)%e.length];return i.reverse().join(t)}}function gi(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Ja=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ce(e){if(!(t=Ja.exec(e)))throw new Error("invalid format: "+e);var t;return new Xt({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ce.prototype=Xt.prototype;function Xt(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Xt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function hi(e){e:for(var t=e.length,n=1,r=-1,o;n<t;++n)switch(e[n]){case".":r=o=n;break;case"0":r===0&&(r=n),o=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(o+1):e}var xt;function yi(e,t){var n=Oe(e,t);if(!n)return xt=void 0,e.toPrecision(t);var r=n[0],o=n[1],i=o-(xt=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+Oe(e,Math.max(0,t+i-1))[0]}function Xn(e,t){var n=Oe(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var Yn={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:fi,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Xn(e*100,t),r:Xn,s:yi,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Jn(e){return e}var bi=Array.prototype.map,xi=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function ki(e){var t=e.grouping===void 0||e.thousands===void 0?Jn:mi(bi.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?Jn:gi(bi.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function l(u,d){u=Ce(u);var m=u.fill,f=u.align,b=u.sign,h=u.symbol,x=u.zero,R=u.width,w=u.comma,g=u.precision,P=u.trim,T=u.type;T==="n"?(w=!0,T="g"):Yn[T]||(g===void 0&&(g=12),P=!0,T="g"),(x||m==="0"&&f==="=")&&(x=!0,m="0",f="=");var C=(d&&d.prefix!==void 0?d.prefix:"")+(h==="$"?n:h==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():""),I=(h==="$"?r:/[%p]/.test(T)?a:"")+(d&&d.suffix!==void 0?d.suffix:""),W=Yn[T],D=/[defgprs%]/.test(T);g=g===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g));function E(y){var k=C,$=I,_,S,M;if(T==="c")$=W(y)+$,y="";else{y=+y;var N=y<0||1/y<0;if(y=isNaN(y)?c:W(Math.abs(y),g),P&&(y=hi(y)),N&&+y==0&&b!=="+"&&(N=!1),k=(N?b==="("?b:s:b==="-"||b==="("?"":b)+k,$=(T==="s"&&!isNaN(y)&&xt!==void 0?xi[8+xt/3]:"")+$+(N&&b==="("?")":""),D){for(_=-1,S=y.length;++_<S;)if(M=y.charCodeAt(_),48>M||M>57){$=(M===46?o+y.slice(_+1):y.slice(_))+$,y=y.slice(0,_);break}}}w&&!x&&(y=t(y,1/0));var B=k.length+y.length+$.length,U=B<R?new Array(R-B+1).join(m):"";switch(w&&x&&(y=t(U+y,U.length?R-$.length:1/0),U=""),f){case"<":y=k+y+$+U;break;case"=":y=k+U+y+$;break;case"^":y=U.slice(0,B=U.length>>1)+k+y+$+U.slice(B);break;default:y=U+k+y+$;break}return i(y)}return E.toString=function(){return u+""},E}function p(u,d){var m=Math.max(-8,Math.min(8,Math.floor(he(d)/3)))*3,f=Math.pow(10,-m),b=l((u=Ce(u),u.type="f",u),{suffix:xi[8+m/3]});return function(h){return b(f*h)}}return{format:l,formatPrefix:p}}var Yt,Jt,Qt;Qn({thousands:",",grouping:[3],currency:["$",""]});function Qn(e){return Yt=ki(e),Jt=Yt.format,Qt=Yt.formatPrefix,Yt}function er(e){return Math.max(0,-he(Math.abs(e)))}function tr(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(he(t)/3)))*3-he(Math.abs(e)))}function nr(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,he(t)-he(e))+1}function rr(e,t,n,r){var o=En(e,t,n),i;switch(r=Ce(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(i=tr(o,a))&&(r.precision=i),Qt(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(i=nr(o,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=i-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(i=er(o))&&(r.precision=i-(r.type==="%")*2);break}}return Jt(r)}function Qa(e){var t=e.domain;return e.ticks=function(n){var r=t();return jt(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var o=t();return rr(o[0],o[o.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),o=0,i=r.length-1,a=r[o],s=r[i],c,l,p=10;for(s<a&&(l=a,a=s,s=l,l=o,o=i,i=l);p-- >0;){if(l=mt(a,s,n),l===c)return r[o]=a,r[i]=s,t(r);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function kt(){var e=Zn();return e.copy=function(){return di(e,kt())},Je.apply(e,arguments),Qa(e)}function L(e){return function(){return e}}var or=Math.abs,ee=Math.atan2,Ne=Math.cos,wi=Math.max,en=Math.min,de=Math.sin,Ve=Math.sqrt,re=1e-12,nt=Math.PI,wt=nt/2,rt=2*nt;function vi(e){return e>1?0:e<-1?nt:Math.acos(e)}function ir(e){return e>=1?wt:e<=-1?-wt:Math.asin(e)}var ar=Math.PI,sr=2*ar,Le=1e-6,es=sr-Le;function Si(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ts(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Si;let n=10**t;return function(r){this._+=r[0];for(let o=1,i=r.length;o<i;++o)this._+=Math.round(arguments[o]*n)/n+r[o]}}var je=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?Si:ts(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,o){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+o}`}bezierCurveTo(t,n,r,o,i,a){this._append`C${+t},${+n},${+r},${+o},${this._x1=+i},${this._y1=+a}`}arcTo(t,n,r,o,i){if(t=+t,n=+n,r=+r,o=+o,i=+i,i<0)throw new Error(`negative radius: ${i}`);let a=this._x1,s=this._y1,c=r-t,l=o-n,p=a-t,u=s-n,d=p*p+u*u;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(d>Le)if(!(Math.abs(u*c-l*p)>Le)||!i)this._append`L${this._x1=t},${this._y1=n}`;else{let m=r-a,f=o-s,b=c*c+l*l,h=m*m+f*f,x=Math.sqrt(b),R=Math.sqrt(d),w=i*Math.tan((ar-Math.acos((b+d-h)/(2*x*R)))/2),g=w/R,P=w/x;Math.abs(g-1)>Le&&this._append`L${t+g*p},${n+g*u}`,this._append`A${i},${i},0,0,${+(u*m>p*f)},${this._x1=t+P*c},${this._y1=n+P*l}`}}arc(t,n,r,o,i,a){if(t=+t,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(o),c=r*Math.sin(o),l=t+s,p=n+c,u=1^a,d=a?o-i:i-o;this._x1===null?this._append`M${l},${p}`:(Math.abs(this._x1-l)>Le||Math.abs(this._y1-p)>Le)&&this._append`L${l},${p}`,r&&(d<0&&(d=d%sr+sr),d>es?this._append`A${r},${r},0,1,${u},${t-s},${n-c}A${r},${r},0,1,${u},${this._x1=l},${this._y1=p}`:d>Le&&this._append`A${r},${r},0,${+(d>=ar)},${u},${this._x1=t+r*Math.cos(i)},${this._y1=n+r*Math.sin(i)}`)}rect(t,n,r,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}};function Ti(){return new je}Ti.prototype=je.prototype;function ot(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new je(t)}function ns(e){return e.innerRadius}function rs(e){return e.outerRadius}function os(e){return e.startAngle}function is(e){return e.endAngle}function as(e){return e&&e.padAngle}function ss(e,t,n,r,o,i,a,s){var c=n-e,l=r-t,p=a-o,u=s-i,d=u*c-p*l;if(!(d*d<re))return d=(p*(t-i)-u*(e-o))/d,[e+d*c,t+d*l]}function tn(e,t,n,r,o,i,a){var s=e-n,c=t-r,l=(a?i:-i)/Ve(s*s+c*c),p=l*c,u=-l*s,d=e+p,m=t+u,f=n+p,b=r+u,h=(d+f)/2,x=(m+b)/2,R=f-d,w=b-m,g=R*R+w*w,P=o-i,T=d*b-f*m,C=(w<0?-1:1)*Ve(wi(0,P*P*g-T*T)),I=(T*w-R*C)/g,W=(-T*R-w*C)/g,D=(T*w+R*C)/g,E=(-T*R+w*C)/g,y=I-h,k=W-x,$=D-h,_=E-x;return y*y+k*k>$*$+_*_&&(I=D,W=E),{cx:I,cy:W,x01:-p,y01:-u,x11:I*(o/P-1),y11:W*(o/P-1)}}function nn(){var e=ns,t=rs,n=L(0),r=null,o=os,i=is,a=as,s=null,c=ot(l);function l(){var p,u,d=+e.apply(this,arguments),m=+t.apply(this,arguments),f=o.apply(this,arguments)-wt,b=i.apply(this,arguments)-wt,h=or(b-f),x=b>f;if(s||(s=p=c()),m<d&&(u=m,m=d,d=u),!(m>re))s.moveTo(0,0);else if(h>rt-re)s.moveTo(m*Ne(f),m*de(f)),s.arc(0,0,m,f,b,!x),d>re&&(s.moveTo(d*Ne(b),d*de(b)),s.arc(0,0,d,b,f,x));else{var R=f,w=b,g=f,P=b,T=h,C=h,I=a.apply(this,arguments)/2,W=I>re&&(r?+r.apply(this,arguments):Ve(d*d+m*m)),D=en(or(m-d)/2,+n.apply(this,arguments)),E=D,y=D,k,$;if(W>re){var _=ir(W/d*de(I)),S=ir(W/m*de(I));(T-=_*2)>re?(_*=x?1:-1,g+=_,P-=_):(T=0,g=P=(f+b)/2),(C-=S*2)>re?(S*=x?1:-1,R+=S,w-=S):(C=0,R=w=(f+b)/2)}var M=m*Ne(R),N=m*de(R),B=d*Ne(P),U=d*de(P);if(D>re){var j=m*Ne(w),K=m*de(w),F=d*Ne(g),Z=d*de(g),J;if(h<nt)if(J=ss(M,N,F,Z,j,K,B,U)){var Y=M-J[0],ne=N-J[1],Q=j-J[0],le=K-J[1],pe=1/de(vi((Y*Q+ne*le)/(Ve(Y*Y+ne*ne)*Ve(Q*Q+le*le)))/2),at=Ve(J[0]*J[0]+J[1]*J[1]);E=en(D,(d-at)/(pe-1)),y=en(D,(m-at)/(pe+1))}else E=y=0}C>re?y>re?(k=tn(F,Z,M,N,m,y,x),$=tn(j,K,B,U,m,y,x),s.moveTo(k.cx+k.x01,k.cy+k.y01),y<D?s.arc(k.cx,k.cy,y,ee(k.y01,k.x01),ee($.y01,$.x01),!x):(s.arc(k.cx,k.cy,y,ee(k.y01,k.x01),ee(k.y11,k.x11),!x),s.arc(0,0,m,ee(k.cy+k.y11,k.cx+k.x11),ee($.cy+$.y11,$.cx+$.x11),!x),s.arc($.cx,$.cy,y,ee($.y11,$.x11),ee($.y01,$.x01),!x))):(s.moveTo(M,N),s.arc(0,0,m,R,w,!x)):s.moveTo(M,N),!(d>re)||!(T>re)?s.lineTo(B,U):E>re?(k=tn(B,U,j,K,d,-E,x),$=tn(M,N,F,Z,d,-E,x),s.lineTo(k.cx+k.x01,k.cy+k.y01),E<D?s.arc(k.cx,k.cy,E,ee(k.y01,k.x01),ee($.y01,$.x01),!x):(s.arc(k.cx,k.cy,E,ee(k.y01,k.x01),ee(k.y11,k.x11),!x),s.arc(0,0,d,ee(k.cy+k.y11,k.cx+k.x11),ee($.cy+$.y11,$.cx+$.x11),x),s.arc($.cx,$.cy,E,ee($.y11,$.x11),ee($.y01,$.x01),!x))):s.arc(0,0,d,P,g,x)}if(s.closePath(),p)return s=null,p+""||null}return l.centroid=function(){var p=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,u=(+o.apply(this,arguments)+ +i.apply(this,arguments))/2-nt/2;return[Ne(u)*p,de(u)*p]},l.innerRadius=function(p){return arguments.length?(e=typeof p=="function"?p:L(+p),l):e},l.outerRadius=function(p){return arguments.length?(t=typeof p=="function"?p:L(+p),l):t},l.cornerRadius=function(p){return arguments.length?(n=typeof p=="function"?p:L(+p),l):n},l.padRadius=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:L(+p),l):r},l.startAngle=function(p){return arguments.length?(o=typeof p=="function"?p:L(+p),l):o},l.endAngle=function(p){return arguments.length?(i=typeof p=="function"?p:L(+p),l):i},l.padAngle=function(p){return arguments.length?(a=typeof p=="function"?p:L(+p),l):a},l.context=function(p){return arguments.length?(s=p??null,l):s},l}var Yu=Array.prototype.slice;function it(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function $i(e){this._context=e}$i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ze(e){return new $i(e)}function rn(e){return e[0]}function on(e){return e[1]}function vt(e,t){var n=L(!0),r=null,o=ze,i=null,a=ot(s);e=typeof e=="function"?e:e===void 0?rn:L(e),t=typeof t=="function"?t:t===void 0?on:L(t);function s(c){var l,p=(c=it(c)).length,u,d=!1,m;for(r==null&&(i=o(m=a())),l=0;l<=p;++l)!(l<p&&n(u=c[l],l,c))===d&&((d=!d)?i.lineStart():i.lineEnd()),d&&i.point(+e(u,l,c),+t(u,l,c));if(m)return i=null,m+""||null}return s.x=function(c){return arguments.length?(e=typeof c=="function"?c:L(+c),s):e},s.y=function(c){return arguments.length?(t=typeof c=="function"?c:L(+c),s):t},s.defined=function(c){return arguments.length?(n=typeof c=="function"?c:L(!!c),s):n},s.curve=function(c){return arguments.length?(o=c,r!=null&&(i=o(r)),s):o},s.context=function(c){return arguments.length?(c==null?r=i=null:i=o(r=c),s):r},s}function lr(e,t,n){var r=null,o=L(!0),i=null,a=ze,s=null,c=ot(l);e=typeof e=="function"?e:e===void 0?rn:L(+e),t=typeof t=="function"?t:t===void 0?L(0):L(+t),n=typeof n=="function"?n:n===void 0?on:L(+n);function l(u){var d,m,f,b=(u=it(u)).length,h,x=!1,R,w=new Array(b),g=new Array(b);for(i==null&&(s=a(R=c())),d=0;d<=b;++d){if(!(d<b&&o(h=u[d],d,u))===x)if(x=!x)m=d,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=d-1;f>=m;--f)s.point(w[f],g[f]);s.lineEnd(),s.areaEnd()}x&&(w[d]=+e(h,d,u),g[d]=+t(h,d,u),s.point(r?+r(h,d,u):w[d],n?+n(h,d,u):g[d]))}if(R)return s=null,R+""||null}function p(){return vt().defined(o).curve(a).context(i)}return l.x=function(u){return arguments.length?(e=typeof u=="function"?u:L(+u),r=null,l):e},l.x0=function(u){return arguments.length?(e=typeof u=="function"?u:L(+u),l):e},l.x1=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:L(+u),l):r},l.y=function(u){return arguments.length?(t=typeof u=="function"?u:L(+u),n=null,l):t},l.y0=function(u){return arguments.length?(t=typeof u=="function"?u:L(+u),l):t},l.y1=function(u){return arguments.length?(n=u==null?null:typeof u=="function"?u:L(+u),l):n},l.lineX0=l.lineY0=function(){return p().x(e).y(t)},l.lineY1=function(){return p().x(e).y(n)},l.lineX1=function(){return p().x(r).y(t)},l.defined=function(u){return arguments.length?(o=typeof u=="function"?u:L(!!u),l):o},l.curve=function(u){return arguments.length?(a=u,i!=null&&(s=a(i)),l):a},l.context=function(u){return arguments.length?(u==null?i=s=null:s=a(i=u),l):i},l}function Ri(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function Pi(e){return e}function cr(){var e=Pi,t=Ri,n=null,r=L(0),o=L(rt),i=L(0);function a(s){var c,l=(s=it(s)).length,p,u,d=0,m=new Array(l),f=new Array(l),b=+r.apply(this,arguments),h=Math.min(rt,Math.max(-rt,o.apply(this,arguments)-b)),x,R=Math.min(Math.abs(h)/l,i.apply(this,arguments)),w=R*(h<0?-1:1),g;for(c=0;c<l;++c)(g=f[m[c]=c]=+e(s[c],c,s))>0&&(d+=g);for(t!=null?m.sort(function(P,T){return t(f[P],f[T])}):n!=null&&m.sort(function(P,T){return n(s[P],s[T])}),c=0,u=d?(h-l*w)/d:0;c<l;++c,b=x)p=m[c],g=f[p],x=b+(g>0?g*u:0)+w,f[p]={data:s[p],index:c,value:g,startAngle:b,endAngle:x,padAngle:R};return f}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:L(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:L(+s),a):r},a.endAngle=function(s){return arguments.length?(o=typeof s=="function"?s:L(+s),a):o},a.padAngle=function(s){return arguments.length?(i=typeof s=="function"?s:L(+s),a):i},a}function Mi(e){return e<0?-1:1}function Ci(e,t,n){var r=e._x1-e._x0,o=t-e._x1,i=(e._y1-e._y0)/(r||o<0&&-0),a=(n-e._y1)/(o||r<0&&-0),s=(i*o+a*r)/(r+o);return(Mi(i)+Mi(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(s))||0}function Ni(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function pr(e,t,n){var r=e._x0,o=e._y0,i=e._x1,a=e._y1,s=(i-r)/3;e._context.bezierCurveTo(r+s,o+s*t,i-s,a-s*n,i,a)}function an(e){this._context=e}an.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:pr(this,this._t0,Ni(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,pr(this,Ni(this,n=Ci(this,e,t)),n);break;default:pr(this,this._t0,n=Ci(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function ls(e){this._context=new Fi(e)}(ls.prototype=Object.create(an.prototype)).point=function(e,t){an.prototype.point.call(this,t,e)};function Fi(e){this._context=e}Fi.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,i){this._context.bezierCurveTo(t,e,r,n,i,o)}};function ur(e){return new an(e)}var oe=9,He="#9AA1AB";function sn(e,t){return e.hits?(e.hits.push(t),{"data-bp-hit":String(e.hits.length-1)}):{}}function V(e){return Math.round(e*100)/100+""}function cs(e,t,n,r){if(!t.showLegend||e.series.length===0)return{node:null,height:0};let o=t.type==="pie"||t.type==="donut"?e.categories.map((c,l)=>({label:c,color:ln(e,l)})):e.series.map(c=>({label:c.label,color:c.color})),i=Math.max(1,Math.floor(r/120)),a=Math.ceil(o.length/i);return{node:v("g",{class:"bp-chart__legend",transform:`translate(0, ${n})`},o.map((c,l)=>{let p=l%i,u=Math.floor(l/i),d=r/i*p;return v("g",{transform:`translate(${V(d)}, ${u*16})`},v("rect",{x:0,y:2,width:10,height:10,rx:2,fill:c.color}),v("text",{x:15,y:11,"font-size":oe+1,"font-family":t.fontFamily,fill:t.theme.colors.text},St(c.label,Math.floor(r/i/6))))})),height:a*16+4}}function St(e,t){return e.length>t?e.slice(0,Math.max(1,t-1))+"\u2026":e}function ln(e,t){let n=e.series[0],r=e.series.map(o=>o.color);return r[t%Math.max(1,r.length)]??n?.color??"#888"}function _i(e,t){let{width:n,height:r}=t;if(t.type==="pie"||t.type==="donut")return ps(e,t);let o=t.type==="horizontalBar",i=cs(e,t,0,n),a=i.height+6,s=8,c=24,l=e.series.flatMap(S=>S.values.map(M=>M??0)),p=e.categories.map((S,M)=>e.series.reduce((N,B)=>N+Math.max(0,B.values[M]??0),0)),u=e.categories.map((S,M)=>e.series.reduce((N,B)=>N+Math.min(0,B.values[M]??0),0)),d=Math.max(0,...t.stacked?p:l),m=Math.min(0,...t.stacked?u:l),f=kt().domain([m,d===m?d+1:d]).nice(5),b=f.ticks(5),h=b.map(t.formatValue),x=Math.max(...h.map(S=>S.length*oe*.6),18),R=o?Math.min(n*.35,Math.max(...e.categories.map(S=>S.length))*oe*.6+8):x+8,w=Math.max(10,n-R-s),g=Math.max(10,r-a-c),P=[];i.node&&P.push(i.node);let T=(S,M,...N)=>v("g",{transform:`translate(${V(S)}, ${V(M)})`},N);if(o){f.range([0,w]);let S=ve().domain(e.categories.map((K,F)=>String(F))).range([0,g]).paddingInner(.25).paddingOuter(.1),M=ve().domain(e.series.map((K,F)=>String(F))).range([0,S.bandwidth()]).padding(.1),N=t.showGrid?b.map(K=>v("line",{x1:f(K),x2:f(K),y1:0,y2:g,stroke:t.theme.colors.border,"stroke-width":1})):[],B=b.map(K=>v("text",{x:f(K),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},t.formatValue(K))),U=e.categories.map((K,F)=>v("text",{x:-6,y:(S(String(F))??0)+S.bandwidth()/2+3,"text-anchor":"end","font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},St(K,Math.floor(R/(oe*.6))))),j=[];return e.categories.forEach((K,F)=>{let Z=0,J=0;e.series.forEach((Y,ne)=>{let Q=Y.values[F]??0,le,pe;t.stacked?Q>=0?(le=f(Z),pe=f(Z+Q),Z+=Q):(le=f(J+Q),pe=f(J),J+=Q):(le=f(Math.min(0,Q)),pe=f(Math.max(0,Q)));let at=(S(String(F))??0)+(t.stacked?0:M(String(ne))??0),yr=t.stacked?S.bandwidth():M.bandwidth();j.push(v("rect",{x:V(le),y:V(at),width:V(Math.max(0,pe-le)),height:V(yr),fill:Y.color,rx:1.5,...sn(t,{categoryIndex:F,category:e.categories[F]??"",seriesIndex:ne,series:Y.label,value:Y.values[F]??null,formatted:t.formatValue(Q),color:Y.color})})),t.showValues&&!t.stacked&&j.push(v("text",{x:V(pe+4),y:V(at+yr/2+3),"font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(Q)))})}),P.push(T(R,a,...N,v("line",{x1:f(0),x2:f(0),y1:0,y2:g,stroke:He}),...j,...B,...U)),cn(n,r,P)}f.range([g,0]);let C=t.showGrid?b.map(S=>v("line",{x1:0,x2:w,y1:V(f(S)),y2:V(f(S)),stroke:t.theme.colors.border,"stroke-width":1})):[],I=b.map(S=>v("text",{x:-6,y:V(f(S)+3),"text-anchor":"end","font-size":oe,"font-family":t.fontFamily,fill:He},t.formatValue(S))),W=Math.max(1,Math.floor(w/48)),D=Math.ceil(e.categories.length/W);if(t.type==="bar"){let S=ve().domain(e.categories.map((U,j)=>String(j))).range([0,w]).paddingInner(.25).paddingOuter(.1),M=ve().domain(e.series.map((U,j)=>String(j))).range([0,S.bandwidth()]).padding(.1),N=[];e.categories.forEach((U,j)=>{let K=0,F=0;e.series.forEach((Z,J)=>{let Y=Z.values[j]??0,ne,Q;t.stacked?Y>=0?(Q=f(K),ne=f(K+Y),K+=Y):(Q=f(F+Y),ne=f(F),F+=Y):(ne=f(Math.max(0,Y)),Q=f(Math.min(0,Y)));let le=(S(String(j))??0)+(t.stacked?0:M(String(J))??0),pe=t.stacked?S.bandwidth():M.bandwidth();N.push(v("rect",{x:V(le),y:V(ne),width:V(pe),height:V(Math.max(0,Q-ne)),fill:Z.color,rx:1.5,...sn(t,{categoryIndex:j,category:e.categories[j]??"",seriesIndex:J,series:Z.label,value:Z.values[j]??null,formatted:t.formatValue(Y),color:Z.color})})),t.showValues&&!t.stacked&&N.push(v("text",{x:V(le+pe/2),y:V(ne-3),"text-anchor":"middle","font-size":oe-1,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(Y)))})});let B=e.categories.map((U,j)=>j%D===0?v("text",{x:V((S(String(j))??0)+S.bandwidth()/2),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},St(U,10)):null);return P.push(T(R,a,...C,...N,v("line",{x1:0,x2:w,y1:V(f(0)),y2:V(f(0)),stroke:He}),...I,...B)),cn(n,r,P)}let E=On().domain(e.categories.map((S,M)=>String(M))).range([0,w]).padding(.15),y=t.smooth?ur:ze,k=[],$=e.categories.map(()=>0);e.series.forEach((S,M)=>{let N=S.values.map((F,Z)=>({i:Z,v:F??0})),B=[...$];t.stacked&&N.forEach(F=>$[F.i]=($[F.i]??0)+F.v);let U=F=>f(t.stacked?(B[F.i]??0)+F.v:F.v),j=F=>f(t.stacked?B[F.i]??0:0),K=vt().x(F=>E(String(F.i))??0).y(U).curve(y);if(t.type==="area"){let F=lr().x(Z=>E(String(Z.i))??0).y0(j).y1(U).curve(y);k.push(v("path",{d:F(N)??"",fill:S.color,"fill-opacity":.18}))}k.push(v("path",{d:K(N)??"",fill:"none",stroke:S.color,"stroke-width":2,"stroke-linejoin":"round","stroke-linecap":"round"})),N.forEach(F=>{let Z=sn(t,{categoryIndex:F.i,category:e.categories[F.i]??"",seriesIndex:M,series:S.label,value:S.values[F.i]??null,formatted:t.formatValue(F.v),color:S.color});N.length<=40?k.push(v("circle",{cx:V(E(String(F.i))??0),cy:V(U(F)),r:2.5,fill:"#fff",stroke:S.color,"stroke-width":1.5,...Z})):t.hits&&(t.hits[t.hits.length-1].value=S.values[F.i]??null)}),t.showValues&&N.forEach(F=>k.push(v("text",{x:V(E(String(F.i))??0),y:V(U(F)-6),"text-anchor":"middle","font-size":oe-1,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(F.v))))});let _=e.categories.map((S,M)=>M%D===0?v("text",{x:V(E(String(M))??0),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},St(S,10)):null);return P.push(T(R,a,...C,v("line",{x1:0,x2:w,y1:V(f(0)),y2:V(f(0)),stroke:He}),...k,...I,..._)),cn(n,r,P)}function ps(e,t){let{width:n,height:r}=t,o=e.series[0],i=e.categories.map((w,g)=>Math.max(0,o?.values[g]??0)),a=i.reduce((w,g)=>w+g,0),s=t.showLegend?Math.min(160,n*.45):0,c=Math.min(r,n-s),l=Math.max(10,c/2-6),p=(n-s)/2,u=r/2,d=t.type==="donut"?l*.62:0,f=cr().sort(null).value(w=>w)(i),b=nn().innerRadius(d).outerRadius(l).padAngle(.01).cornerRadius(2),h=nn().innerRadius((d+l)/2).outerRadius((d+l)/2),x=f.map((w,g)=>{let P=a>0?i[g]/a:0,[T,C]=h.centroid(w),I=sn(t,{categoryIndex:g,category:e.categories[g]??"",seriesIndex:0,series:o?.label??"",value:o?.values[g]??null,formatted:t.formatValue(i[g]??0),color:ln(e,g),share:P});return v("g",null,v("path",{d:b(w)??"",fill:ln(e,g),...I}),t.showValues&&P>=.06?v("text",{x:V(T),y:V(C+3),"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:"#fff","font-weight":"600"},t.formatPercent(P)):null)}),R=[v("g",{transform:`translate(${V(p)}, ${V(u)})`},a===0?v("circle",{r:l,fill:t.theme.colors.border}):x,t.type==="donut"&&t.innerLabel?v("text",{"text-anchor":"middle",y:4,"font-size":oe+3,"font-weight":"700","font-family":t.fontFamily,fill:t.theme.colors.text},t.innerLabel):null)];if(t.showLegend){let w=e.categories.map((T,C)=>({label:T,color:ln(e,C),frac:a>0?i[C]/a:0})),g=15,P=Math.max(0,u-w.length*g/2);R.push(v("g",{transform:`translate(${V(n-s)}, ${V(P)})`},w.map((T,C)=>v("g",{transform:`translate(0, ${C*g})`},v("rect",{x:0,y:2,width:9,height:9,rx:2,fill:T.color}),v("text",{x:14,y:10,"font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},`${St(T.label,Math.floor(s/6)-6)} ${t.formatPercent(T.frac)}`)))))}return cn(n,r,R)}function cn(e,t,n){return v("svg",{xmlns:"http://www.w3.org/2000/svg",width:V(e),height:V(t),viewBox:`0 0 ${V(e)} ${V(t)}`,class:"bp-chart__svg",role:"img",style:{display:"block",overflow:"visible"}},n)}var Ai=z({type:"chart",name:"Chart",description:"Bar, line, area, pie or donut chart bound to a list",category:"visualisation",icon:"bar-chart-3",keywords:["graph","bar","line","pie","donut","area","visualisation"],defaultProps:()=>({chartType:"bar",source:"",alias:"item",label:"item.label",series:[{id:"s1",label:"Value",value:"item.value"}],height:220,title:"",showLegend:!0,showValues:!1,showGrid:!0,stacked:!1,smooth:!0,valueFormat:"",percentDecimals:0,innerLabel:"",limit:null}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["spacing","background","border","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"label",kind:"value",perItem:!0},{prop:"series",kind:"list",items:[{prop:"value",kind:"value",perItem:!0},{prop:"label",kind:"template"}]},{prop:"title",kind:"template"},{prop:"innerLabel",kind:"template"}],inspector:[{title:"Chart",fields:[{kind:"segmented",prop:"chartType",label:"Type",options:[{value:"bar",label:"Bar",icon:"bar-chart-3"},{value:"horizontalBar",label:"Horizontal",icon:"bar-chart-horizontal"},{value:"line",label:"Line",icon:"line-chart"},{value:"area",label:"Area",icon:"area-chart"},{value:"pie",label:"Pie",icon:"pie-chart"},{value:"donut",label:"Donut",icon:"circle-dot"}]},{kind:"text",prop:"title",label:"Title"},{kind:"number",prop:"height",label:"Height",min:80,max:800,unit:"px"}]},{title:"Data",fields:[{kind:"collection",prop:"source",label:"Data from",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Item name",description:e=>`The name each data point goes by, e.g. ${typeof e.alias=="string"&&e.alias.trim()?e.alias.trim():"item"}.value`,allowTokens:!1},{kind:"expression",prop:"label",label:"Category label",placeholder:"item.name"},{kind:"series",prop:"series",label:"Series",fullWidth:!0},{kind:"number",prop:"limit",label:"Maximum items",min:1,max:1e3},{kind:"text",prop:"valueFormat",label:"Value format",placeholder:'e.g. currency:"GBP":0 or percent',allowTokens:!1}]},{title:"Options",fields:[{kind:"toggle",prop:"showLegend",label:"Legend"},{kind:"toggle",prop:"showValues",label:"Value labels"},{kind:"toggle",prop:"showGrid",label:"Grid lines",when:e=>e.chartType!=="pie"&&e.chartType!=="donut"},{kind:"toggle",prop:"stacked",label:"Stacked",when:e=>["bar","horizontalBar","line","area"].includes(String(e.chartType))},{kind:"toggle",prop:"smooth",label:"Smooth lines",when:e=>e.chartType==="line"||e.chartType==="area"},{kind:"number",prop:"percentDecimals",label:"Percent decimals",min:0,max:3,when:e=>e.chartType==="pie"||e.chartType==="donut"},{kind:"text",prop:"innerLabel",label:"Centre label",when:e=>e.chartType==="donut"}]}],validate:({props:e})=>{let t=[];return(!Array.isArray(e.series)||e.series.length===0)&&t.push({severity:"warning",code:"empty-content",message:"Chart has no series",prop:"series"}),t},canvas:{label:e=>e.title?`Chart \xB7 ${e.title}`:"Chart"},resolve:({props:e,evaluateIn:t,theme:n,warn:r})=>{let o=e.alias||"item",i=Array.isArray(e.source)?e.source:[];e.limit&&(i=i.slice(0,e.limit));let a=n.colors.chart??[n.colors.primary,n.colors.secondary,n.colors.accent],s=i.map((l,p)=>{try{return A(t(e.label||`${o}.label`,{[o]:l,item:l,index:p+1}))}catch{return String(p+1)}}),c=(Array.isArray(e.series)?e.series:[]).map((l,p)=>({label:l.label||`Series ${p+1}`,color:l.color?q(l.color,n,a[p%a.length]):a[p%a.length],values:i.map((u,d)=>{try{return H(t(l.value,{[o]:u,item:u,index:d+1}))}catch(m){return r(`Series "${l.label}" failed: ${m.message}`),null}})}));if(e.chartType==="pie"||e.chartType==="donut"){let l=c[0];if(l){let p=i.map((u,d)=>({...l,color:a[d%a.length]}));return{__data:{categories:s,series:p.length?[{...l},...p.slice(1)]:[]},__palette:a}}}return{__data:{categories:s,series:c},__palette:a}},render:({h:e,css:t,props:n,theme:r,width:o,mode:i,node:a,format:s,text:c,style:l})=>{let p=n,u=p.__data??{categories:[],series:[]};if((p.chartType==="pie"||p.chartType==="donut")&&u.series.length){let g=p.__palette??r.colors.chart??[];u.series=u.categories.map((P,T)=>({...u.series[0],color:g[T%Math.max(1,g.length)]??u.series[0].color}))}let m=g=>{let P=(p.valueFormat||"").trim();if(!P)return new Intl.NumberFormat(s.locale,{notation:Math.abs(g)>=1e4?"compact":"standard",maximumFractionDigits:2}).format(g);try{return A(Te(`(${g}) | ${P}`,{scope:new ke({}),format:s}))}catch{return String(g)}},f=g=>new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:p.percentDecimals??0,minimumFractionDigits:p.percentDecimals??0}).format(g),b=l.padding,h=Math.max(40,o-b.left-b.right-(l.border?l.border.width*2:0)),x=a.bindings.source,R=[],w=u.categories.length?_i(u,{type:p.chartType,width:h,height:p.height,theme:r,fontFamily:l.fontFamily,showLegend:p.showLegend,showValues:p.showValues,showGrid:p.showGrid,stacked:p.stacked,smooth:p.smooth,formatValue:m,formatPercent:f,innerLabel:typeof p.innerLabel=="string"&&p.innerLabel?p.innerLabel:void 0,hits:R}):e("div",{class:"bp-chart__empty",style:{height:`${p.height}px`,display:"flex","align-items":"center","justify-content":"center",color:r.colors.mutedText,border:`1px dashed ${r.colors.border}`,"border-radius":`${r.radius??6}px`}},i==="design"?x?"No data in the list":"Choose a list to chart":"");return e("div",{class:["bp-chart",`bp-chart--${p.chartType}`],style:O(t),...R.length?{"data-bp-chart":JSON.stringify({type:p.chartType,title:typeof p.title=="string"?p.title:"",hits:R})}:{}},p.title?e("div",{class:"bp-chart__title",style:{"font-family":r.typography.headingFont,"font-weight":"600","margin-bottom":"6px",color:r.colors.text}},c("title")):null,i==="design"&&x?e("div",{class:"bp-chart__badge",contenteditable:"false"},x.label):null,w)}}),Bi=z({type:"progress",name:"Progress / gauge",description:"A value against a maximum, as a bar or gauge",category:"visualisation",icon:"gauge",keywords:["score","meter","gauge","progress","percentage"],defaultProps:()=>({value:"",max:100,label:"Score",caption:"",variant:"bar",color:"$colors.primary",trackColor:"$colors.border",showValue:!0,format:"percent",thresholds:[],height:10}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","background","border","flow"],inspector:[{title:"Value",fields:[{kind:"binding",prop:"value",label:"Value",valueType:["number","percent","currency"]},{kind:"number",prop:"max",label:"Maximum",min:1e-4,max:1e12},{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"caption",label:"Caption"}]},{title:"Appearance",fields:[{kind:"segmented",prop:"variant",label:"Style",options:[{value:"bar",label:"Bar"},{value:"gauge",label:"Gauge"}]},{kind:"segmented",prop:"format",label:"Show as",options:[{value:"percent",label:"%"},{value:"value",label:"Value"},{value:"fraction",label:"x / max"}]},{kind:"toggle",prop:"showValue",label:"Show value"},{kind:"color",prop:"color",label:"Colour"},{kind:"color",prop:"trackColor",label:"Track"},{kind:"number",prop:"height",label:"Bar height",min:2,max:40,unit:"px",when:e=>e.variant==="bar"},{kind:"list",prop:"thresholds",label:"Colour by range",itemLabel:"Range",fullWidth:!0,fields:[{kind:"number",prop:"upTo",label:"Up to"},{kind:"color",prop:"color",label:"Colour"}]}]}],render:({h:e,css:t,props:n,theme:r,text:o,mode:i,node:a,format:s})=>{let c=H(n.value),l=Number(n.max)||100,p=c??0,u=Math.max(0,Math.min(1,l>0?p/l:0)),d=q(n.color,r,r.colors.primary),m=[...n.thresholds??[]].sort((R,w)=>R.upTo-w.upTo);for(let R of m)if(p<=R.upTo){d=q(R.color,r,d);break}let f=q(n.trackColor,r,r.colors.border),b=a.bindings.value,h=n.format==="percent"?new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:0}).format(u):n.format==="fraction"?`${new Intl.NumberFormat(s.locale).format(p)} / ${new Intl.NumberFormat(s.locale).format(l)}`:new Intl.NumberFormat(s.locale,{maximumFractionDigits:2}).format(p),x=e("div",{style:{display:"flex","justify-content":"space-between","align-items":"baseline",gap:"8px","margin-bottom":"4px"}},e("span",{style:{"font-weight":"600"}},o("label")),n.showValue?e("span",{class:["bp-progress__value",i==="design"&&b?"bp-cell--bound":""],title:b?.expr,style:{color:r.colors.mutedText,"font-variant-numeric":"tabular-nums"}},h):null);if(n.variant==="gauge"){let T=C=>{let I=Math.PI,W=Math.PI*C,D=I+W,E=80+62*Math.cos(I),y=70+62*Math.sin(I),k=80+62*Math.cos(D),$=70+62*Math.sin(D),_=W>Math.PI?1:0;return`M ${E} ${y} A 62 62 0 ${_} 1 ${k} ${$}`};return e("div",{class:"bp-progress bp-progress--gauge",style:O({...t,display:"flex","flex-direction":"column","align-items":"center"})},e("svg",{width:160,height:80,viewBox:"0 0 160 80",style:{display:"block"}},e("path",{d:T(1),fill:"none",stroke:f,"stroke-width":12,"stroke-linecap":"round"}),u>0?e("path",{d:T(u),fill:"none",stroke:d,"stroke-width":12,"stroke-linecap":"round"}):null,e("text",{x:80,y:66,"text-anchor":"middle","font-size":20,"font-weight":"700","font-family":r.typography.headingFont,fill:r.colors.text},h)),e("div",{style:{"font-weight":"600","margin-top":"2px"}},o("label")),n.caption?e("div",{style:{color:r.colors.mutedText,"font-size":"0.9em"}},o("caption")):null)}return e("div",{class:"bp-progress bp-progress--bar",style:O(t)},x,e("div",{class:"bp-progress__track",style:{height:`${n.height}px`,background:f,"border-radius":`${n.height}px`,overflow:"hidden"}},e("div",{class:"bp-progress__fill",style:{width:`${u*100}%`,height:`${n.height}px`,background:d,"border-radius":`${n.height}px`}})),n.caption?e("div",{style:{color:r.colors.mutedText,"font-size":"0.9em","margin-top":"4px"}},o("caption")):null)}});var Ii=[lo,co,po,uo,ho,yo,bo,xo,ko,wo,vo,So,To,Po,Mo,Co,No,Fo,_o,Ao,Bo,$o,Ro,Vo,Io,Do,Oo,Ai,Bi];var us="http://www.w3.org/2000/svg";function Tt(e,t=document){if(typeof e=="string")return t.createTextNode(e);let n=e.ns==="svg"?t.createElementNS(us,e.tag):t.createElement(e.tag);ds(n,e.props);for(let r of e.children)n.appendChild(Tt(r,t));return n}function ds(e,t){for(let[n,r]of Object.entries(t))if(!(r==null||r===!1))if(n==="class"){let o=Sn(r);o&&e.setAttribute("class",o)}else if(n==="style"){let o=Tn(r);o&&e.setAttribute("style",o)}else r===!0?e.setAttribute(n,""):e.setAttribute(n,String(r))}function dr(e,t){let n=e.ownerDocument,r=n.createDocumentFragment();for(let o of t)r.appendChild(Tt(o,n));e.replaceChildren(r)}function $t(e,t,n){let r=e.getElementById(t);return r||(r=e.createElement("style"),r.id=t,e.head.appendChild(r)),r.textContent!==n&&(r.textContent=n),r}function Di(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)+e.length.toString(36)}function Ei(e,t,n){return Di(JSON.stringify(e))+":"+Math.round(t*100)+":"+n}var Rt=class{constructor(t,n){X(this,"doc",t);X(this,"host");X(this,"cache",new Map);X(this,"opts",null);this.host=t.createElement("div"),this.host.className="bp-doc bp-galley",this.host.setAttribute("aria-hidden","true"),(n??t.body).appendChild(this.host)}setOptions(t){this.opts=t,this.host.classList.toggle("bp-doc--design",t.mode==="design")}measure(t,n){if(!this.opts)throw new Error("DomMeasurer.setOptions() must be called before measure()");let r={},o=[];for(let i of t){let a=Ei(i,n,this.opts.mode),s=this.cache.get(a);if(s){r[i.key]=s;continue}let c=this.doc.createElement("div");c.className="bp-galley__section",c.style.width=`${n}px`,c.style.position="relative";let l=we(i,{...this.opts,width:n},n);l&&c.appendChild(Tt(l,this.doc)),o.push({section:i,key:a,el:c})}if(o.length===0)return r;for(let i of o)this.host.appendChild(i.el);for(let i of o){let a=fs(i.el,i.section,this.opts);this.cache.set(i.key,a),r[i.section.key]=a}for(let i of o)i.el.remove();if(this.cache.size>400){let i=[...this.cache.keys()].slice(0,200);for(let a of i)this.cache.delete(a)}return r}clearCache(){this.cache.clear()}destroy(){this.host.remove(),this.cache.clear()}};function fs(e,t,n){let r=e.getBoundingClientRect(),o={},i=new Map,a=p=>{i.set(p.key,p);for(let u of p.children)a(u)};a(t);let s=e.querySelectorAll("[data-key]");for(let p of s){let u=p.getAttribute("data-key");if(o[u])continue;let d=i.get(u),m=p.getBoundingClientRect(),f={top:m.top-r.top,height:m.height,left:m.left-r.left,width:m.width};if(d){let h=n.registry.get(d.type)?.measure??(d.flow.split==="lines"?"text":d.flow.split==="rows"?"table":"none");h==="text"?f.lines=Oi(p,r.top,f.top+f.height):h==="table"&&(f.rows=Vi(p,r.top))}o[u]=f}let c=e.firstElementChild?.getBoundingClientRect();return{height:c?c.height:r.height,width:r.width,nodes:o}}function Oi(e,t,n){let r=e.querySelector("[data-part='text']")??e,o=e.ownerDocument,i=[],a=o.createTreeWalker(r,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,{acceptNode:p=>{if(p.nodeType===Node.TEXT_NODE)return(p.textContent??"").trim().length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;let u=p.tagName;return u==="BR"||u==="IMG"||u==="SVG"||p.classList?.contains("bp-p--empty")?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),s=a.nextNode();for(;s;){if(s.nodeType===Node.TEXT_NODE){let p=o.createRange();p.selectNodeContents(s);for(let u of p.getClientRects())u.height>0&&u.width>0&&i.push({top:u.top-t,bottom:u.bottom-t})}else{let p=s.getBoundingClientRect();p.height>0&&i.push({top:p.top-t,bottom:p.bottom-t})}s=a.nextNode()}if(i.length===0)return[];i.sort((p,u)=>p.top-u.top||p.bottom-u.bottom);let c=[];for(let p of i){let u=c[c.length-1];u&&p.top<u.bottom-.5?(u.top=Math.min(u.top,p.top),u.bottom=Math.max(u.bottom,p.bottom)):c.push({...p})}let l=[];for(let p=0;p<c.length-1;p++)l.push(pn((c[p].bottom+c[p+1].top)/2));return l.push(pn(n)),l}function Vi(e,t){let n=e.querySelector("table.bp-table");if(!n)return[];let r=[],o=(i,a)=>{for(let s of n.querySelectorAll(`:scope > ${i} > tr`)){let c=s.getBoundingClientRect();r.push({top:pn(c.top-t),height:pn(c.height),kind:a})}};return o("thead","header"),o("tbody","body"),o("tfoot","footer"),r}function pn(e){return Math.round(e*100)/100}function ms(e){let t=new Map,n=r=>{t.set(r.key,r),r.children.forEach(n)};for(let r of e.body)n(r);for(let r of e.header.default)n(r);for(let r of e.header.firstPage??[])n(r);for(let r of e.footer.default)n(r);for(let r of e.footer.firstPage??[])n(r);return t}function gs(e){let t=e.mode??"preview",n=Ae(e.theme),r=e.template,o=Jr(r.page),i=e.now??new Date,a={locale:e.locale??r.settings?.locale??"en-GB",currency:e.currency??r.settings?.currency??"GBP",timeZone:e.timeZone??r.settings?.timeZone,now:i},s=Cn({template:r,registry:e.registry,theme:n,dataSources:e.dataSources,data:e.data,sampleData:e.sampleData,mode:t,now:i,locale:a.locale,currency:a.currency,timeZone:a.timeZone,designIterations:e.designIterations,allowStyleOverrides:e.allowStyleOverrides}),c={registry:e.registry,theme:n,styles:r.styles,mode:t,page:{number:1,total:1},format:a,width:o.contentWidth,decorate:e.decorate},l=[...s.header.default,...s.header.firstPage??[],...s.footer.default,...s.footer.firstPage??[]];return{input:e,mode:t,theme:n,template:r,page:o,format:a,resolved:s,baseOpts:c,regionSections:l}}function hs(e,t,n){let{input:r,mode:o,theme:i,template:a,page:s,format:c,resolved:l,baseOpts:p}=e,u=Fn({document:l,geometry:t,page:s,minPages:r.minPages??a.page.minPages??1,regionGeometry:n}),d=ms(l),m=[...l.warnings.map(b=>({source:"resolve",message:b.message,nodeId:b.nodeId})),...u.warnings.map(b=>({source:"layout",message:b.message,nodeId:b.nodeId,page:b.page,code:b.code}))],f=b=>{let h=u.pages[b];if(!h)throw new Error(`Page ${b} does not exist`);let x={...p,page:{number:h.number,total:u.totalPages}};return ji(h.index,h.number,u.totalPages,h.first,l,u,s,x,d,n,i,a.page.background,t)};return{resolved:l,paged:u,geometry:t,regionGeometry:n,page:s,theme:i,format:c,mode:o,warnings:m,nodesByKey:d,renderPage:f,renderPages:()=>u.pages.map((b,h)=>f(h))}}function fr(e,t){let n=gs(e);t.setOptions?.(n.baseOpts);let r=t.measure(n.resolved.body,n.page.contentWidth),o=n.regionSections.length?t.measure(n.regionSections,n.page.contentWidth):{};return hs(n,r,o)}function ys(e,t,n,r){if(!t)return e;let o=i=>{let a=i.props["data-key"];if(typeof a=="string"){let s=t.nodes[a];if(s){if(s.top+s.height<=n-.01||s.top>=r+.01){let l=i.props.style,p=typeof l=="string"?`${l};height:${s.height}px;overflow:hidden`:{...l??{},height:`${s.height}px`,overflow:"hidden"};return{...i,props:{...i.props,style:p,"data-culled":""},children:[]}}if(s.rows&&s.rows.length)return{...i,children:i.children.map(l=>typeof l=="string"?l:Li(l,s.rows,n,r))}}}return{...i,children:i.children.map(s=>typeof s=="string"?s:o(s))}};return o(e)}function Li(e,t,n,r){if(e.tag==="table"){let o=t.filter(i=>i.kind==="body");return{...e,children:e.children.map(i=>{if(typeof i=="string"||i.tag!=="tbody")return i;let a=i.children.filter(u=>typeof u!="string"&&u.tag==="tr");if(a.length!==o.length)return i;let s=0,c=0,l=[];for(let u=0;u<a.length;u++){let d=o[u];d.top+d.height<=n+.01?s+=d.height:d.top>=r-.01?c+=d.height:l.push(a[u])}let p=u=>v("tr",{class:"bp-table__spacer"},v("td",{colspan:"100",style:{padding:"0",border:"0",height:`${u}px`}}));return{...i,children:[...s>0?[p(s)]:[],...l,...c>0?[p(c)]:[]]}})}}return{...e,children:e.children.map(o=>typeof o=="string"?o:Li(o,t,n,r))}}function bs(e,t,n){let r=we(e,t,n);if(!r)return null;At(r,i=>i.tag==="table"?(i.children=i.children.filter(a=>typeof a=="string"||a.tag==="colgroup"||a.tag==="thead"),!1):!0);let o={...r.props};return delete o.style,r.props={...o,class:[String(o.class??""),"bp-repeat-header__node"]},r}function ji(e,t,n,r,o,i,a,s,c,l,p,u,d){let m=i.pages[e],f={width:`${a.width}px`,height:`${a.height}px`,background:q(u,p,"#ffffff")},b=(g,P,T,C,I)=>{if(!g||g.length===0||T<=0)return null;let W=g.reduce((E,y)=>E+(l[y.key]?.height??0),0),D=I==="bottom"?Math.max(0,T-W):0;return v("div",{class:["bp-page__region",`bp-page__${C}`],"data-region":C,style:{top:`${P}px`,left:`${a.margins.left}px`,width:`${a.contentWidth}px`,height:`${T}px`}},v("div",{class:"bp-page__region-inner",style:{position:"absolute",top:`${D}px`,left:"0",width:"100%"}},g.map(E=>we(E,s,a.contentWidth))))},h=r&&o.header.firstPage?o.header.firstPage:o.header.default,x=r&&o.footer.firstPage?o.footer.firstPage:o.footer.default,R=(g,P,T)=>{let C=we(g,s,a.contentWidth);return C?ys(C,d?.[g.key],P,T):null},w=m.fragments.map(g=>{let P=c.get(g.sectionKey);if(!P)return null;let T=g.repeatHeaders.reduce((I,W)=>I+W.height,0),C=g.repeatHeaders.map(I=>{let W=c.get(I.tableKey),D=W?bs(W,s,I.width):null;return v("div",{class:"bp-repeat-header","data-table":I.tableKey,style:{left:`${I.left}px`,width:`${I.width}px`,height:`${I.height}px`}},D)});return v("div",{class:["bp-fragment",g.continued&&"bp-fragment--continued",g.continues&&"bp-fragment--continues"],"data-section":g.sectionKey,"data-from":String(g.from),"data-to":String(g.to),style:{top:`${g.y}px`,height:`${g.height}px`}},C,v("div",{class:"bp-fragment__clip",style:{top:`${T}px`,height:`${g.to-g.from}px`}},v("div",{class:"bp-fragment__content",style:{"margin-top":`${-g.from}px`,width:`${a.contentWidth}px`}},R(P,g.from,g.to))))});return v("div",{class:["bp-page",r&&"bp-page--first"],"data-page":String(t),"data-page-index":String(e),style:f,"aria-label":`Page ${t} of ${n}`},b(h,a.headerTop,a.headerHeight,"header","top"),v("div",{class:"bp-page__body","data-region":"body",style:{top:`${a.contentTop}px`,left:`${a.margins.left}px`,width:`${a.contentWidth}px`,height:`${a.contentHeight}px`}},w),b(x,a.footerTop,a.footerHeight,"footer","bottom"))}var mr=`
1
+ "use strict";var BroadPaper=(()=>{var Pt=Object.defineProperty;var Ki=Object.getOwnPropertyDescriptor;var Xi=Object.getOwnPropertyNames;var Yi=Object.prototype.hasOwnProperty;var Ji=(e,t,n)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Qi=(e,t)=>{for(var n in t)Pt(e,n,{get:t[n],enumerable:!0})},ea=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Xi(t))!Yi.call(e,o)&&o!==n&&Pt(e,o,{get:()=>t[o],enumerable:!(r=Ki(t,o))||r.enumerable});return e};var ta=e=>ea(Pt({},"__esModule",{value:!0}),e);var K=(e,t,n)=>Ji(e,typeof t!="symbol"?t+"":t,n);var Cs={};Qi(Cs,{defineBlock:()=>z,h:()=>v,registerBlocks:()=>Ps,render:()=>Ms});function na(e="",t){return{type:"paragraph",content:e?[{type:"text",text:e,...t?{marks:t}:{}}]:[]}}function Mt(e=""){return{type:"doc",content:[na(e)]}}function wr(e){return!!e&&typeof e=="object"&&e.type==="doc"&&Array.isArray(e.content)}function vr(e){let t="";for(let n of e)n.kind==="prop"?t+=t?`.${n.name}`:n.name:t+=`[${n.index}]`;return t}function se(e,t=[]){switch(e.kind){case"path":t.push(e.segments);break;case"unary":se(e.arg,t);break;case"binary":se(e.left,t),se(e.right,t);break;case"conditional":se(e.test,t),se(e.then,t),se(e.else,t);break;case"call":case"array":for(let n of e.kind==="call"?e.args:e.items)se(n,t);break;case"pipe":se(e.input,t);for(let n of e.args)se(n,t);break}return t}var ye=class extends Error{constructor(n,r,o){super(n);K(this,"position",r);K(this,"source",o);this.name="ExpressionError"}},Sr=2e3,ra=32,oa=new Set(["and","or","not","in","true","false","null"]),ia=["==","!=","<=",">="],aa=new Set("+-*/%<>()[]|:?,.".split(""));function sa(e){if(e.length>Sr)throw new ye(`Expression is too long (max ${Sr} characters)`,0,e);let t=[],n=0;for(;n<e.length;){let r=e[n];if(/\s/.test(r)){n++;continue}let o=n;if(/[0-9]/.test(r)||r==="."&&/[0-9]/.test(e[n+1]??"")){let i=n;for(;i<e.length&&/[0-9_]/.test(e[i]);)i++;if(e[i]==="."&&/[0-9]/.test(e[i+1]??""))for(i++;i<e.length&&/[0-9]/.test(e[i]);)i++;if((e[i]==="e"||e[i]==="E")&&/[0-9+-]/.test(e[i+1]??""))for(i+=2;i<e.length&&/[0-9]/.test(e[i]);)i++;t.push({type:"num",value:Number(e.slice(n,i).replace(/_/g,"")),pos:o}),n=i;continue}if(r==='"'||r==="'"){let i=n+1,s="";for(;i<e.length&&e[i]!==r;)if(e[i]==="\\"&&i+1<e.length){let l=e[i+1];s+=l==="n"?`
2
+ `:l==="t"?" ":l,i+=2}else s+=e[i],i++;if(i>=e.length)throw new ye("Unterminated string",o,e);t.push({type:"str",value:s,pos:o}),n=i+1;continue}if(/[A-Za-z_$]/.test(r)){let i=n;for(;i<e.length&&/[A-Za-z0-9_$]/.test(e[i]);)i++;t.push({type:"ident",value:e.slice(n,i),pos:o}),n=i;continue}let a=e.slice(n,n+2);if(ia.includes(a)){t.push({type:"op",value:a,pos:o}),n+=2;continue}if(r==="="&&e[n+1]!=="="){t.push({type:"op",value:"==",pos:o}),n++;continue}if(r==="&"&&e[n+1]==="&"){t.push({type:"ident",value:"and",pos:o}),n+=2;continue}if(r==="|"&&e[n+1]==="|"){t.push({type:"ident",value:"or",pos:o}),n+=2;continue}if(r==="!"){t.push({type:"ident",value:"not",pos:o}),n++;continue}if(aa.has(r)){t.push({type:"op",value:r,pos:o}),n++;continue}throw new ye(`Unexpected character "${r}"`,o,e)}return t.push({type:"eof",pos:e.length}),t}var dn=class{constructor(t,n){K(this,"tokens",t);K(this,"src",n);K(this,"i",0);K(this,"depth",0)}parse(){let t=this.parsePipe();return this.peek().type!=="eof"&&this.fail(`Unexpected "${this.describe(this.peek())}"`),t}peek(){return this.tokens[this.i]}next(){return this.tokens[this.i++]}isOp(t){let n=this.peek();return n.type==="op"&&n.value===t}isKw(t){let n=this.peek();return n.type==="ident"&&n.value===t}expectOp(t){this.isOp(t)||this.fail(`Expected "${t}" but found "${this.describe(this.peek())}"`),this.next()}describe(t){return t.type==="eof"?"end of expression":t.type==="str"?`"${t.value}"`:String(t.value)}fail(t){throw new ye(t,this.peek().pos,this.src)}enter(){++this.depth>ra&&this.fail("Expression is nested too deeply")}leave(){this.depth--}parsePipe(){let t=this.parseConditional();for(;this.isOp("|");){this.next();let n=this.next();n.type!=="ident"&&this.fail("Expected a formatter name after |");let r=[];for(;this.isOp(":");)this.next(),r.push(this.parseConditional());t={kind:"pipe",input:t,name:n.value,args:r}}return t}parseConditional(){let t=this.parseOr();if(this.isOp("?")){this.enter(),this.next();let n=this.parseConditional();this.expectOp(":");let r=this.parseConditional();return this.leave(),{kind:"conditional",test:t,then:n,else:r}}return t}parseOr(){let t=this.parseAnd();for(;this.isKw("or");)this.next(),t={kind:"binary",op:"or",left:t,right:this.parseAnd()};return t}parseAnd(){let t=this.parseNot();for(;this.isKw("and");)this.next(),t={kind:"binary",op:"and",left:t,right:this.parseNot()};return t}parseNot(){if(this.isKw("not")){this.enter(),this.next();let t=this.parseNot();return this.leave(),{kind:"unary",op:"not",arg:t}}return this.parseEquality()}parseEquality(){let t=this.parseComparison();for(;;)if(this.isOp("==")||this.isOp("!="))t={kind:"binary",op:this.next().value,left:t,right:this.parseComparison()};else if(this.isKw("in"))this.next(),t={kind:"binary",op:"in",left:t,right:this.parseComparison()};else return t}parseComparison(){let t=this.parseAdditive();for(;this.isOp("<")||this.isOp("<=")||this.isOp(">")||this.isOp(">=");)t={kind:"binary",op:this.next().value,left:t,right:this.parseAdditive()};return t}parseAdditive(){let t=this.parseMultiplicative();for(;this.isOp("+")||this.isOp("-");)t={kind:"binary",op:this.next().value,left:t,right:this.parseMultiplicative()};return t}parseMultiplicative(){let t=this.parseUnary();for(;this.isOp("*")||this.isOp("/")||this.isOp("%");)t={kind:"binary",op:this.next().value,left:t,right:this.parseUnary()};return t}parseUnary(){if(this.isOp("-")){this.enter(),this.next();let t=this.parseUnary();return this.leave(),t.kind==="literal"&&typeof t.value=="number"?{kind:"literal",value:-t.value}:{kind:"unary",op:"-",arg:t}}return this.parsePostfix()}parsePostfix(){let t=this.parsePrimary();for(;;)if(this.isOp(".")){this.next();let n=this.next();n.type!=="ident"&&this.fail("Expected a property name after ."),t=Tr(t,{kind:"prop",name:n.value},()=>this.fail("Property access is only allowed on data paths"))}else if(this.isOp("[")){this.next();let n=this.next();(n.type!=="num"||!Number.isInteger(n.value)||n.value<0)&&this.fail("Index must be a non-negative integer"),this.expectOp("]"),t=Tr(t,{kind:"index",index:n.value},()=>this.fail("Indexing is only allowed on data paths"))}else return t}parsePrimary(){let t=this.next();switch(t.type){case"num":return{kind:"literal",value:t.value};case"str":return{kind:"literal",value:t.value};case"ident":{if(t.value==="true")return{kind:"literal",value:!0};if(t.value==="false")return{kind:"literal",value:!1};if(t.value==="null")return{kind:"literal",value:null};if(oa.has(t.value)&&this.fail(`Unexpected keyword "${t.value}"`),this.isOp("(")){this.enter(),this.next();let n=[];if(!this.isOp(")"))for(n.push(this.parsePipe());this.isOp(",");)this.next(),n.push(this.parsePipe());return this.expectOp(")"),this.leave(),{kind:"call",name:t.value,args:n}}return{kind:"path",segments:[{kind:"prop",name:t.value}]}}case"op":if(t.value==="("){this.enter();let n=this.parsePipe();return this.expectOp(")"),this.leave(),n}if(t.value==="["){this.enter();let n=[];if(!this.isOp("]"))for(n.push(this.parsePipe());this.isOp(",");)this.next(),n.push(this.parsePipe());return this.expectOp("]"),this.leave(),{kind:"array",items:n}}this.fail(`Unexpected "${t.value}"`);case"eof":this.fail("Unexpected end of expression")}}};function Tr(e,t,n){return e.kind!=="path"?n():{kind:"path",segments:[...e.segments,t]}}var Ct=new Map;function Se(e){let t=e.trim(),n=Ct.get(t);if(n)return n;if(t.length===0)throw new ye("Expression is empty",0,e);let r=new dn(sa(t),t).parse();return Ct.size>5e3&&Ct.clear(),Ct.set(t,r),r}function fn(e){try{return Se(e),null}catch(t){return t instanceof ye?t:new ye(String(t),0,e)}}var $r=new Map,Rr=new Map;function gn(e,t){let n=e+JSON.stringify(t),r=$r.get(n);if(!r){try{r=new Intl.NumberFormat(e,t)}catch{r=new Intl.NumberFormat("en-GB",{...t,currency:t.currency??"GBP"})}$r.set(n,r)}return r}function mn(e,t){let n=e+JSON.stringify(t),r=Rr.get(n);if(!r){try{r=new Intl.DateTimeFormat(e,t)}catch{r=new Intl.DateTimeFormat("en-GB",t)}Rr.set(n,r)}return r}function H(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e.replace(/[,\s]/g,""));return Number.isFinite(t)?t:null}return typeof e=="boolean"?e?1:0:null}function Nt(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number")return new Date(e);if(typeof e=="string"&&e.trim()){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function Fe(e){return e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0:typeof e=="object"?Object.keys(e).length===0:!1}function A(e){return e==null?"":typeof e=="string"?e:typeof e=="number"?Number.isFinite(e)?String(e):"":typeof e=="boolean"?e?"Yes":"No":e instanceof Date?e.toISOString():Array.isArray(e)?e.map(A).join(", "):""}function Mr(e,t,n){let r=p=>{let u={...p};return n.timeZone&&(u.timeZone=n.timeZone),mn(n.locale,u).formatToParts(e)},o=(p,u)=>r(p).find(d=>d.type===u)?.value??"",a=(p,u)=>p.padStart(u,"0"),i=r({year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!1}),s=p=>i.find(u=>u.type===p)?.value??"",l=Number(s("hour"))%24,c=l%12===0?12:l%12;return t.replace(/yyyy|yy|MMMM|MMM|MM|M|dd|d|EEEE|EEE|HH|H|hh|h|mm|ss|a|'[^']*'/g,p=>{switch(p){case"yyyy":return s("year");case"yy":return s("year").slice(-2);case"MMMM":return o({month:"long"},"month");case"MMM":return o({month:"short"},"month");case"MM":return a(s("month"),2);case"M":return s("month");case"dd":return a(s("day"),2);case"d":return s("day");case"EEEE":return o({weekday:"long"},"weekday");case"EEE":return o({weekday:"short"},"weekday");case"HH":return a(String(l),2);case"H":return String(l);case"hh":return a(String(c),2);case"h":return String(c);case"mm":return a(s("minute"),2);case"ss":return a(s("second"),2);case"a":return l<12?"AM":"PM";default:return p.startsWith("'")?p.slice(1,-1):p}})}var Pr={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}};function Ge(e,t,n,r=!1){let o=Nt(e);if(!o)return A(e);if(t&&Pr[t]){let i={...Pr[t]};return r&&(i.timeStyle="short"),n.timeZone&&(i.timeZone=n.timeZone),mn(n.locale,i).format(o)}if(t)return Mr(o,t,n);let a=r?{dateStyle:"medium",timeStyle:"short"}:{dateStyle:"medium"};return n.timeZone&&(a.timeZone=n.timeZone),mn(n.locale,a).format(o)}function Cr(e,t,n,r){let o=H(e);if(o===null)return A(e);let i={style:"currency",currency:t&&String(t).toUpperCase()||r.currency};return n!==void 0&&(i.minimumFractionDigits=n,i.maximumFractionDigits=n),gn(r.locale,i).format(o)}function Nr(e,t,n){let r=H(e);if(r===null)return A(e);let o={};return t!==void 0?(o.minimumFractionDigits=t,o.maximumFractionDigits=t):o.maximumFractionDigits=2,gn(n.locale,o).format(r)}function Fr(e,t,n,r=!1){let o=H(e);if(o===null)return A(e);let a={style:"percent"},i=t??1;return a.minimumFractionDigits=i,a.maximumFractionDigits=i,gn(n.locale,a).format(r?o/100:o)}function ie(e,t){return e[t]}var st={currency:{name:"currency",description:"Format as money",returns:"string",accepts:["number","currency"],args:[{name:"code",type:"string",optional:!0,description:"ISO currency code, e.g. GBP"},{name:"decimals",type:"number",optional:!0}],fn:(e,t,n)=>Cr(e,ie(t,0),H(t[1])??void 0,n)},number:{name:"number",description:"Format with thousands separators",returns:"string",accepts:["number"],args:[{name:"decimals",type:"number",optional:!0}],fn:(e,t,n)=>Nr(e,H(t[0])??void 0,n)},percent:{name:"percent",description:"Format a fraction (0.25) as a percentage (25%)",returns:"string",accepts:["number","percent"],args:[{name:"decimals",type:"number",optional:!0},{name:"scaled",type:"boolean",optional:!0,description:"Set true when the value is already 0\u2013100"}],fn:(e,t,n)=>Fr(e,H(t[0])??void 0,n,t[1]===!0)},date:{name:"date",description:"Format a date",returns:"string",accepts:["date","datetime"],args:[{name:"pattern",type:"string",optional:!0,description:"e.g. dd MMM yyyy, or short/medium/long/full"}],fn:(e,t,n)=>Ge(e,ie(t,0),n,!1)},datetime:{name:"datetime",description:"Format a date with time",returns:"string",accepts:["date","datetime"],args:[{name:"pattern",type:"string",optional:!0}],fn:(e,t,n)=>Ge(e,ie(t,0),n,!0)},boolean:{name:"boolean",description:"Show a boolean as text",returns:"string",accepts:["boolean"],args:[{name:"yes",type:"string",optional:!0},{name:"no",type:"string",optional:!0}],fn:(e,t)=>e===!0||e==="true"||e===1?ie(t,0)??"Yes":ie(t,1)??"No"},upper:{name:"upper",description:"UPPERCASE",returns:"string",fn:e=>A(e).toUpperCase()},lower:{name:"lower",description:"lowercase",returns:"string",fn:e=>A(e).toLowerCase()},title:{name:"title",description:"Title Case",returns:"string",fn:e=>A(e).replace(/\b\p{L}/gu,t=>t.toUpperCase())},default:{name:"default",description:"Fallback when the value is empty",returns:"same",args:[{name:"fallback",type:"any"}],fn:(e,t)=>Fe(e)?t[0]:e},join:{name:"join",description:"Join a list into text",returns:"string",accepts:["array"],args:[{name:"separator",type:"string",optional:!0}],fn:(e,t)=>Array.isArray(e)?e.map(A).join(ie(t,0)??", "):A(e)},truncate:{name:"truncate",description:"Limit length with an ellipsis",returns:"string",args:[{name:"length",type:"number"}],fn:(e,t)=>{let n=A(e),r=H(t[0])??50;return n.length>r?n.slice(0,Math.max(0,r-1)).trimEnd()+"\u2026":n}},round:{name:"round",description:"Round to N decimals",returns:"number",accepts:["number"],args:[{name:"decimals",type:"number",optional:!0}],fn:(e,t)=>{let n=H(e);if(n===null)return e;let o=10**(H(t[0])??0);return Math.round(n*o)/o}},abs:{name:"abs",description:"Absolute value",returns:"number",accepts:["number"],fn:e=>H(e)===null?e:Math.abs(H(e))},pluralize:{name:"pluralize",description:"Choose singular/plural word by count",returns:"string",args:[{name:"singular",type:"string"},{name:"plural",type:"string"}],fn:(e,t)=>H(e)===1?ie(t,0)??"":ie(t,1)??`${ie(t,0)??""}s`},length:{name:"length",description:"Number of items or characters",returns:"number",fn:e=>Array.isArray(e)?e.length:A(e).length},first:{name:"first",description:"First item",returns:"same",accepts:["array"],fn:e=>Array.isArray(e)?e[0]:e},last:{name:"last",description:"Last item",returns:"same",accepts:["array"],fn:e=>Array.isArray(e)?e[e.length-1]:e},sortBy:{name:"sortBy",description:"Sort a list by a field",returns:"array",accepts:["array"],args:[{name:"field",type:"string"},{name:"direction",type:"string",optional:!0,description:"asc or desc"}],fn:(e,t)=>{if(!Array.isArray(e))return e;let n=ie(t,0)??"",r=(ie(t,1)??"asc").toLowerCase()==="desc"?-1:1;return[...e].sort((o,a)=>We(be(o,n),be(a,n))*r)}},take:{name:"take",description:"First N items",returns:"array",accepts:["array"],args:[{name:"count",type:"number"}],fn:(e,t)=>Array.isArray(e)?e.slice(0,Math.max(0,H(t[0])??0)):e},filter:{name:"filter",description:"Keep items whose field equals a value",returns:"array",accepts:["array"],args:[{name:"field",type:"string"},{name:"value",type:"any"}],fn:(e,t)=>Array.isArray(e)?e.filter(n=>_e(be(n,ie(t,0)??""),t[1])):e},pluck:{name:"pluck",description:"Extract one field from each item",returns:"array",accepts:["array"],args:[{name:"field",type:"string"}],fn:(e,t)=>Array.isArray(e)?e.map(n=>be(n,ie(t,0)??"")):be(e,ie(t,0)??"")},initials:{name:"initials",description:"Initials of a name",returns:"string",fn:e=>A(e).split(/\s+/).filter(Boolean).map(t=>t[0].toUpperCase()).join("")}};function be(e,t){if(e==null)return;let n=e;for(let r of t.split("."))if(r){if(n==null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function We(e,t){let n=H(e),r=H(t);if(n!==null&&r!==null&&typeof e!="string"&&typeof t!="string")return n-r;let o=Nt(e),a=Nt(t);if(o&&a&&(e instanceof Date||typeof e=="string")&&(t instanceof Date||typeof t=="string")&&/\d{4}-\d{2}/.test(String(e)))return o.getTime()-a.getTime();let i=A(e),s=A(t);return i<s?-1:i>s?1:0}function _e(e,t){if(e===t)return!0;if(e==null||t===null||t===void 0)return(e??null)===(t??null);if(typeof e=="number"||typeof t=="number"){let n=H(e),r=H(t);if(n!==null&&r!==null)return n===r}return typeof e=="boolean"||typeof t=="boolean"?String(e)===String(t):A(e)===A(t)}var ke=class e{constructor(t,n){K(this,"vars",t);K(this,"parent",n)}lookup(t){return Object.prototype.hasOwnProperty.call(this.vars,t)?{found:!0,value:this.vars[t]}:this.parent?this.parent.lookup(t):{found:!1,value:void 0}}child(t){return new e(t,this)}names(){let t=[],n=this;for(;n;){for(let r of Object.keys(n.vars))t.includes(r)||t.push(r);n=n.parent}return t}},_r={sum:([e])=>qe(e).reduce((t,n)=>t+n,0),count:([e])=>Array.isArray(e)?e.length:Fe(e)?0:1,avg:([e])=>{let t=qe(e);return t.length?t.reduce((n,r)=>n+r,0)/t.length:null},min:([e,...t])=>{let n=t.length?qe([e,...t]):qe(e);return n.length?Math.min(...n):null},max:([e,...t])=>{let n=t.length?qe([e,...t]):qe(e);return n.length?Math.max(...n):null},first:([e])=>Array.isArray(e)?e[0]:e,last:([e])=>Array.isArray(e)?e[e.length-1]:e,length:([e])=>Array.isArray(e)?e.length:A(e).length,coalesce:e=>e.find(t=>!Fe(t))??null,isEmpty:([e])=>Fe(e),isNotEmpty:([e])=>!Fe(e),contains:([e,t])=>Array.isArray(e)?e.some(n=>_e(n,t)):A(e).toLowerCase().includes(A(t).toLowerCase()),startsWith:([e,t])=>A(e).toLowerCase().startsWith(A(t).toLowerCase()),endsWith:([e,t])=>A(e).toLowerCase().endsWith(A(t).toLowerCase()),concat:e=>e.map(A).join(""),round:([e,t])=>{let n=H(e);if(n===null)return null;let r=10**(H(t)??0);return Math.round(n*r)/r},abs:([e])=>{let t=H(e);return t===null?null:Math.abs(t)},number:([e])=>H(e),string:([e])=>A(e),if:([e,t,n])=>xe(e)?t:n,now:(e,t)=>t.format.now??new Date,year:([e])=>hn(e)?.getFullYear()??null,daysBetween:([e,t])=>{let n=hn(e),r=hn(t);return n&&r?Math.round((r.getTime()-n.getTime())/864e5):null}},yn=Object.keys(_r);function hn(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function qe(e){if(!Array.isArray(e)){let n=H(e);return n===null?[]:[n]}let t=[];for(let n of e){let r=H(n);r!==null&&t.push(r)}return t}function xe(e){return e==null||e===!1||e===0||e===""?!1:typeof e=="string"?!["false","no","0","off"].includes(e.trim().toLowerCase()):Array.isArray(e)?e.length>0:!0}function bn(e,t){if(e==null)return;if(typeof e=="string"&&t==="length")return e.length;if(typeof e!="object")return;if(Array.isArray(e)){if(t==="length")return e.length;let r=e.map(o=>bn(o,t));return r.every(o=>o===void 0)?void 0:r}if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t];return typeof n=="function"?void 0:n}function Ar(e,t){let n=e[0];if(!n||n.kind!=="prop")return{found:!1,value:void 0};let r=t.lookup(n.name);if(!r.found)return{found:!1,value:void 0};let o=r.value;for(let a=1;a<e.length;a++){let i=e[a];if(i.kind==="prop"?o=bn(o,i.name):o=Array.isArray(o)?o[i.index]:void 0,o===void 0)return{found:!0,value:void 0}}return{found:!0,value:o}}function te(e,t){switch(e.kind){case"literal":return e.value;case"path":return Ar(e.segments,t.scope).value;case"unary":{let n=te(e.arg,t);if(e.op==="not")return!xe(n);let r=H(n);return r===null?null:-r}case"binary":return la(e.op,e.left,e.right,t);case"conditional":return xe(te(e.test,t))?te(e.then,t):te(e.else,t);case"call":{let n=_r[e.name];return n?n(e.args.map(r=>te(r,t)),t):(t.onWarning?.(`Unknown function "${e.name}"`),null)}case"pipe":{let n=te(e.input,t),r=st[e.name];return r?r.fn(n,e.args.map(o=>te(o,t)),t.format):(t.onWarning?.(`Unknown formatter "${e.name}"`),n)}case"array":return e.items.map(n=>te(n,t))}}function la(e,t,n,r){if(e==="and")return xe(te(t,r))?xe(te(n,r)):!1;if(e==="or")return xe(te(t,r))?!0:xe(te(n,r));let o=te(t,r),a=te(n,r);switch(e){case"==":return _e(o,a);case"!=":return!_e(o,a);case"<":return Ft(o,a,i=>i<0);case"<=":return Ft(o,a,i=>i<=0);case">":return Ft(o,a,i=>i>0);case">=":return Ft(o,a,i=>i>=0);case"in":return Array.isArray(a)?a.some(i=>_e(i,o)):A(a).includes(A(o));case"+":{let i=H(o),s=H(a);return i!==null&&s!==null&&typeof o!="string"&&typeof a!="string"?i+s:typeof o=="string"||typeof a=="string"?A(o)+A(a):i!==null&&s!==null?i+s:null}case"-":case"*":case"/":case"%":{let i=H(o),s=H(a);return i===null||s===null?null:e==="-"?i-s:e==="*"?i*s:e==="/"?s===0?null:i/s:s===0?null:i%s}}return null}function Ft(e,t,n){return e==null||t===null||t===void 0?!1:n(We(e,t))}function Te(e,t){return te(Se(e),t)}function _t(e,t){return xe(Te(e,t))}function xn(e){let t=[],n=/\{\{\s*([^}]+?)\s*\}\}/g,r=0,o;for(;o=n.exec(e);)o.index>r&&t.push({kind:"text",text:e.slice(r,o.index)}),t.push({kind:"token",text:o[0],expr:o[1]}),r=o.index+o[0].length;return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t}var kn=class e{constructor(t,n){K(this,"vars",t);K(this,"parent",n)}lookup(t){return Object.prototype.hasOwnProperty.call(this.vars,t)?this.vars[t]:this.parent?.lookup(t)}child(t){return new e(t,this)}entries(){let t=[],n=this,r=0;for(;n;){for(let[o,a]of Object.entries(n.vars))t.some(i=>i.name===o)||t.push({name:o,schema:a,depth:r});n=n.parent,r++}return t}},ca={page:{type:"object",label:"Page",fields:{number:{type:"number",label:"Page number"},total:{type:"number",label:"Total pages"}}},now:{type:"datetime",label:"Generated at"},theme:{type:"object",label:"Theme",fields:{name:{type:"string",label:"Theme name"},logo:{type:"image",label:"Logo"},colors:{type:"object",label:"Colours",fields:{}},typography:{type:"object",label:"Typography",fields:{}},meta:{type:"object",label:"Brand details",fields:{}}}}};function pa(e){let t={};for(let n of e)t[n.id]={type:"object",label:n.label,description:n.description,fields:n.schema};return t}function Ir(e,t={}){return new kn({...ca,...t}).child(pa(e))}function lt(e,t){let n=e[0];if(!n||n.kind!=="prop")return{issue:{code:"unknown-root",message:"Expression must start with a name"}};let r=t.lookup(n.name);if(!r)return{issue:{code:"unknown-root",message:`Unknown data source or variable "${n.name}"`}};let o=r,a=!1;for(let i=1;i<e.length;i++){let s=e[i],l=vr(e.slice(0,i));if(s.kind==="index"){if(o.type!=="array")return{issue:{code:"not-a-list",message:`"${l}" is not a list and cannot be indexed`}};o=o.itemSchema??{type:"any"};continue}if(o.type==="array"){if(!o.itemSchema)return{schema:{type:"array"}};if(o.itemSchema.type!=="object"||!o.itemSchema.fields)return{issue:{code:"not-an-object",message:`Items of "${l}" have no field "${s.name}"`}};let p=o.itemSchema.fields[s.name];if(!p)return{issue:{code:"unknown-field",message:`Items of "${l}" have no field "${s.name}"`}};a=!0,o={type:"array",itemSchema:p,label:p.label};continue}if(o.type==="any")return{schema:{type:"any"}};if(o.type!=="object")return{issue:{code:"not-an-object",message:`"${l}" is a ${o.type} and has no field "${s.name}"`}};if(o.fields&&Object.keys(o.fields).length===0&&["colors","typography","meta"].includes(e[i-1].kind==="prop"?e[i-1].name:""))return{schema:{type:"string"}};let c=o.fields?.[s.name];if(!c)return{issue:{code:"unknown-field",message:`"${l}" has no field "${s.name}"`}};o=c}return{schema:o}}function Dr(e){return e?.type??"unknown"}function Br(e,t){let n=[],r=ce(e,t,n);return{type:r.type,schema:r.schema,issues:n}}function ce(e,t,n){switch(e.kind){case"literal":return{type:e.value===null?"null":typeof e.value};case"path":{let r=lt(e.segments,t);return r.issue?(n.push(r.issue),{type:"unknown"}):{type:Dr(r.schema),schema:r.schema}}case"unary":{let r=ce(e.arg,t,n);return{type:e.op==="not"?"boolean":r.type==="unknown"?"unknown":"number"}}case"binary":{let r=ce(e.left,t,n),o=ce(e.right,t,n);switch(e.op){case"and":case"or":case"==":case"!=":case"<":case"<=":case">":case">=":case"in":return{type:"boolean"};case"+":return{type:r.type==="string"||o.type==="string"?"string":"number"};default:return{type:"number"}}}case"conditional":{ce(e.test,t,n);let r=ce(e.then,t,n);return ce(e.else,t,n),r}case"call":{yn.includes(e.name)||n.push({code:"unknown-function",message:`Unknown function "${e.name}"`});for(let o of e.args)ce(o,t,n);if(["sum","count","avg","min","max","length","round","abs","number","year","daysBetween"].includes(e.name))return{type:"number"};if(["isEmpty","isNotEmpty","contains","startsWith","endsWith"].includes(e.name))return{type:"boolean"};if(["concat","string"].includes(e.name))return{type:"string"};if(e.name==="now")return{type:"datetime"};if(["first","last"].includes(e.name)&&e.args[0]){let o=ce(e.args[0],t,n);return o.schema?.type==="array"?{type:Dr(o.schema.itemSchema),schema:o.schema.itemSchema}:o}return{type:"any"}}case"pipe":{let r=ce(e.input,t,n);for(let a of e.args)ce(a,t,n);let o=st[e.name];return o?o.returns==="same"?r:o.returns==="array"?{type:"array",schema:r.schema?.type==="array"?r.schema:void 0}:(o.accepts&&r.type!=="unknown"&&r.type!=="any"&&r.type!=="null"&&!o.accepts.includes(r.type)&&(o.accepts.includes("number")&&(r.type==="currency"||r.type==="percent")||o.accepts.includes("array")&&r.type==="array"||n.push({code:"type-mismatch",message:`Formatter "${e.name}" expects ${o.accepts.join(" or ")} but received ${r.type}`})),{type:o.returns}):(n.push({code:"unknown-pipe",message:`Unknown formatter "${e.name}"`}),r)}case"array":for(let r of e.items)ce(r,t,n);return{type:"array"}}}function wn(e){return e==null?null:typeof e=="string"?e.trim()||null:Er(e)||null}function Er(e){let t=e.rules.map(n=>"op"in n?Er(n):ua(n)).filter(n=>!!n);return t.length===0?"":t.length===1?t[0]:t.map(n=>`(${n})`).join(e.op==="and"?" and ":" or ")}function fe(e){if(e==null)return"null";if(typeof e=="string"){let t=/^\{\{\s*(.+?)\s*\}\}$/.exec(e);return t?t[1]:JSON.stringify(e)}return String(e)}function ua(e){let t=e.left.trim();if(!t)return"";switch(e.operator){case"eq":return`${t} == ${fe(e.right)}`;case"neq":return`${t} != ${fe(e.right)}`;case"gt":return`${t} > ${fe(e.right)}`;case"gte":return`${t} >= ${fe(e.right)}`;case"lt":return`${t} < ${fe(e.right)}`;case"lte":return`${t} <= ${fe(e.right)}`;case"contains":return`contains(${t}, ${fe(e.right)})`;case"startsWith":return`startsWith(${t}, ${fe(e.right)})`;case"endsWith":return`endsWith(${t}, ${fe(e.right)})`;case"in":return`${t} in ${Array.isArray(e.right)?JSON.stringify(e.right):fe(e.right)}`;case"isEmpty":return`isEmpty(${t})`;case"isNotEmpty":return`isNotEmpty(${t})`;case"isTrue":return`${t} == true`;case"isFalse":return`not ${t}`}}var $e={id:"default",name:"Default",typography:{headingFont:"Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",bodyFont:"Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",monoFont:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",baseFontSize:11,headingScale:1.25,headingWeight:600,bodyWeight:400,lineHeight:1.5,headingLetterSpacing:-.01},colors:{primary:"#1F3A5F",secondary:"#4A6FA5",accent:"#E0B04B",text:"#1A1D21",mutedText:"#6B7280",surface:"#FFFFFF",background:"#F5F6F8",border:"#E2E5EA",success:"#1E8E5A",warning:"#C77D0A",danger:"#C0392B",chart:["#1F3A5F","#4A6FA5","#E0B04B","#7FB3D5","#A9CCE3","#F4D03F","#6C7A89","#B0BEC5"]},radius:6,table:{headerBackground:"#F3F4F6",headerColor:"#1A1D21",zebraBackground:"#FAFAFB",borderColor:"#E2E5EA"}};function Vr(e){return typeof e=="string"&&e.startsWith("$")&&e.length>1}function Lr(e,t){let n=e.slice(1).split("."),r=Or(t,n);if(typeof r=="string")return r;let o=Or($e,n);return typeof o=="string"?o:void 0}function Or(e,t){let n=e;for(let r of t){if(n==null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function q(e,t,n){return e==null||e===""?n:Vr(e)?Lr(e,t)??n:e}function Ae(e){return e?{...$e,...e,typography:{...$e.typography,...e.typography??{}},colors:{...$e.colors,...e.colors??{},chart:e.colors?.chart?.length?e.colors.chart:$e.colors.chart},table:{...$e.table,...e.table??{}},fonts:e.fonts??[],meta:e.meta??{}}:$e}function Ue(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return!1;let n=parseInt(t[1],16),r=n>>16&255,o=n>>8&255,a=n&255;return .2126*vn(r)+.7152*vn(o)+.0722*vn(a)<.4}function vn(e){let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function jr(e,...t){let n={...e};for(let r of t)r&&(r.top!==void 0&&(n.top=r.top),r.right!==void 0&&(n.right=r.right),r.bottom!==void 0&&(n.bottom=r.bottom),r.left!==void 0&&(n.left=r.left));return n}function ct(e){let{theme:t,styles:n}=e,r=n.text[e.textStyle??"body"]??n.text.body??{},o=e.defaults??{},a=e.allowOverrides===!1?{}:e.overrides??{},i=t.typography,s=q(a.fontFamily??o.fontFamily??r.fontFamily,t,i.bodyFont),l=a.fontSize??o.fontSize??r.fontSize??i.baseFontSize??11,c=a.fontWeight??o.fontWeight??r.fontWeight??i.bodyWeight??400,p=a.lineHeight??o.lineHeight??r.lineHeight??i.lineHeight??1.5,u=a.border||o.border?{width:a.border?.width??o.border?.width??1,style:a.border?.style??o.border?.style??"solid",color:q(a.border?.color??o.border?.color,t,t.colors.border),radius:a.border?.radius??o.border?.radius??0,sides:a.border?.sides??o.border?.sides??["top","right","bottom","left"]}:void 0,d=da(a.background??o.background,t);return{fontFamily:s,fontSize:l,fontWeight:c,fontStyle:a.fontStyle??o.fontStyle??r.fontStyle??"normal",lineHeight:p,letterSpacing:a.letterSpacing??o.letterSpacing??r.letterSpacing??0,textTransform:a.textTransform??o.textTransform??r.textTransform??"none",textAlign:a.textAlign??o.textAlign??"left",verticalAlign:a.verticalAlign??o.verticalAlign??"top",color:q(a.color??o.color??r.color,t,t.colors.text),background:d,padding:jr({top:0,right:0,bottom:0,left:0},o.padding,a.padding),margin:jr({top:r.marginTop??0,right:0,bottom:r.marginBottom??0,left:0},o.margin,a.margin),border:u,width:a.width??o.width,height:a.height??o.height,align:a.align??o.align,opacity:a.opacity??o.opacity}}function da(e,t){if(!(!e||e==="transparent"||e==="none"))return q(e,t,"")}function Sn(e,t={text:!0,box:!0}){let n={};if(t.text!==!1&&(n["font-family"]=e.fontFamily,n["font-size"]=`${e.fontSize}px`,n["font-weight"]=String(e.fontWeight),n["font-style"]=e.fontStyle,n["line-height"]=String(e.lineHeight),e.letterSpacing&&(n["letter-spacing"]=`${e.letterSpacing}em`),e.textTransform!=="none"&&(n["text-transform"]=e.textTransform),n["text-align"]=e.textAlign,n.color=e.color),t.box!==!1){e.background&&(n.background=e.background);let r=e.padding;(r.top||r.right||r.bottom||r.left)&&(n.padding=`${r.top}px ${r.right}px ${r.bottom}px ${r.left}px`);let o=e.margin;if((o.top||o.right||o.bottom||o.left)&&(n.margin=`${o.top}px ${o.right}px ${o.bottom}px ${o.left}px`),e.border&&e.border.width>0&&e.border.style!=="none"){let a=`${e.border.width}px ${e.border.style} ${e.border.color}`;if(e.border.sides.length===4)n.border=a;else for(let i of e.border.sides)n[`border-${i}`]=a}e.border?.radius&&(n["border-radius"]=`${e.border.radius}px`),e.width!==void 0&&(n.width=typeof e.width=="number"?`${e.width}px`:e.width),e.height!==void 0&&(n.height=`${e.height}px`),e.opacity!==void 0&&e.opacity<1&&(n.opacity=String(e.opacity))}return n}function O(e){return Object.entries(e).filter(([,t])=>t!==void 0&&t!=="").map(([t,n])=>`${t}:${n}`).join(";")}var fa=new Set(["svg","g","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","defs","clipPath","linearGradient","radialGradient","stop","use","symbol","mask","pattern","title","desc","foreignObject"]);function v(e,t,...n){let r={tag:e,props:t??{},children:[]};return fa.has(e)&&(r.ns="svg"),zr(r.children,n),r}function zr(e,t){for(let n of t)n==null||n===!1||n===""||(Array.isArray(n)?zr(e,n):typeof n=="number"?e.push(String(n)):e.push(n))}function Tn(e){return e?typeof e=="string"?e:e.filter(Boolean).join(" "):""}function $n(e){return e?typeof e=="string"?e:Object.entries(e).filter(([,t])=>t!==void 0&&t!==""&&t!==null).map(([t,n])=>`${t}:${n}`).join(";"):""}function At(e,t){if(t(e)!==!1)for(let n of e.children)typeof n!="string"&&At(n,t)}function z(e){if(!e.type||!/^[a-z0-9][a-z0-9._-]*$/i.test(e.type))throw new Error(`Invalid block type "${e.type}". Use letters, digits, dots, dashes and underscores.`);return e}function Hr(e){let t=e.defaultProps;return typeof t=="function"?structuredClone(t()):structuredClone(t)}var Gr={community:0,pro:1,enterprise:2},pt=class{constructor(t=[],n={}){K(this,"defs",new Map);K(this,"listeners",new Set);K(this,"enabledTiers");this.enabledTiers=new Set(n.enabledTiers??["community","pro","enterprise"]);for(let r of t)this.register(r)}register(t){if(this.defs.has(t.type))throw new Error(`Block type "${t.type}" is already registered`);return this.defs.set(t.type,t),this.emit(),this}replace(t){return this.defs.set(t.type,t),this.emit(),this}unregister(t){return this.defs.delete(t),this.emit(),this}get(t){return this.defs.get(t)}has(t){return this.defs.has(t)}require(t){let n=this.defs.get(t);if(!n)throw new Error(`Unknown block type "${t}"`);return n}list(){return[...this.defs.values()]}palette(){return this.list().filter(t=>!t.hidden&&t.category!=="structure")}isTierEnabled(t){return this.enabledTiers.has(t??"community")}requiredTier(t){let n="community";for(let r of t){let o=this.defs.get(r)?.license??"community";Gr[o]>Gr[n]&&(n=o)}return n}bindingsOf(t){let n=this.defs.get(t);return n?Dt(n):[]}accepts(t,n){let r=this.defs.get(t),o=this.defs.get(n);if(!r?.container)return!1;for(let a of r.container.accepts)if(a===n||a==="@blocks"&&o&&o.category!=="structure"||a==="@rows"&&n==="row"||a==="@columns"&&n==="column"||a==="@sections"&&n==="section")return!0;return!1}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}emit(){for(let t of this.listeners)t()}},Wr=new WeakMap;function Dt(e){let t=Wr.get(e);if(t)return t;let n;if(e.bindings)n=e.bindings;else{n=[];let r=o=>{for(let a of o)switch(a.kind){case"binding":n.push({prop:a.prop,kind:"value",valueType:a.valueType});break;case"collection":n.push({prop:a.prop,kind:"collection"});break;case"expression":n.push({prop:a.prop,kind:"value"});break;case"richtext":n.push({prop:a.prop,kind:"richtext"});break;case"condition":n.push({prop:a.prop,kind:"condition"});break;case"text":case"textarea":a.allowTokens!==!1&&n.push({prop:a.prop,kind:"template"});break;case"image":a.allowBinding!==!1&&n.push({prop:a.prop,kind:"template"});break;case"list":r(a.fields);break;default:break}};for(let o of e.inspector??[])r(o.fields)}return Wr.set(e,n),n}var Ur=[{from:0,to:1,description:"Pre-release drafts: normalise `content` \u2192 `body`, add page regions and styles",migrate(e){let t={...e,schemaVersion:1};return Array.isArray(e.content)&&!e.body&&(t.body=e.content,delete t.content),t.header??(t.header={default:[]}),t.footer??(t.footer={default:[]}),t}}],ut=class extends Error{constructor(t){super(t),this.name="MigrationError"}};function Rn(e){let t=typeof e.schemaVersion=="number"?e.schemaVersion:0;if(t>1)throw new ut(`Template schemaVersion ${t} is newer than this version of BroadPaper supports (${1}). Upgrade the SDK.`);let n=structuredClone(e),r=[],o=t;for(;o<1;){let a=Ur.find(i=>i.from===o);if(!a)throw new ut(`No migration from schemaVersion ${o} to ${o+1}`);n=a.migrate(n),n.schemaVersion=a.to,r.push(a),o=a.to}return{template:n,applied:r,fromVersion:t}}function Pn(e,t={}){let n={};for(let r of e)n[r.id]=Zr(r.schema,t,0);return n}function It(e,t={},n=0,r=0){if(e.example!==void 0)return e.example;if(e.enum?.length)return e.enum[r%e.enum.length];let o=t.now??new Date;switch(e.type){case"string":return e.label??"Sample text";case"number":return[1240,875,2310,1580,990,1870][r%6];case"currency":return[125e3,48200.5,231e3,15800,99e3,187500][r%6];case"percent":return[.125,.082,.31,.058,.196,.229][r%6];case"date":case"datetime":{let a=new Date(o);return a.setMonth(a.getMonth()-r),a.toISOString()}case"boolean":return r%2===0;case"image":return;case"url":return"https://example.com";case"richtext":return"Sample rich text";case"object":return n>6?{}:Zr(e.fields??{},t,n+1);case"array":{let a=t.arrayLength??4,i=e.itemSchema??{type:"string"};return n>6?[]:Array.from({length:a},(s,l)=>It(i,t,n+1,l))}default:return}}function Zr(e,t,n){let r={},o=0;for(let[a,i]of Object.entries(e))r[a]=It(i,t,n,o++);return r}function Bt(e,t){let n=[];for(let r=0;r<e.length;r++){let o=e[r];if(o.kind==="index"){n[n.length-1]=`${n[n.length-1]??""} #${o.index+1}`;continue}let a=lt(e.slice(0,r+1),t);n.push(a.schema?.label??ma(o.name))}return n.join(" \u203A ")}function ma(e){return e.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,t=>t.toUpperCase())}function Et(e){if(!e)return null;switch(e.type){case"currency":{let t=e.currency?.trim().toUpperCase();return t?`currency:'${t}'`:"currency"}case"percent":return"percent";case"number":return"number";case"date":return e.format?`date:'${Kr(e.format)}'`:"date";case"datetime":return e.format?`datetime:'${Kr(e.format)}'`:"datetime";default:return null}}function Mn(e,t){let n=e.trim();if(!n||Xr(n)||!Yr(n))return n;let r=Et(t);return r?`${n} | ${r}`:n}function Xr(e){for(let t=0;t<e.length;t++)if(e[t]==="|"){if(e[t+1]==="|"){t++;continue}if(e[t-1]!=="|")return!0}return!1}function Yr(e){return/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d+\])*$/.test(e.trim())}function Kr(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}function Jr(e,t){try{let n=Se(e),r=Br(n,t),o=r.issues.length?"unknown":r.type,a=se(n);if(n.kind==="path")return{label:Bt(n.segments,t),type:o};if(n.kind==="pipe"&&n.input.kind==="path")return{label:`${Bt(n.input.segments,t)} \xB7 ${n.name}`,type:o};let i=[...new Set(a.map(s=>Bt(s,t)))];return i.length===1?{label:`\u0192 ${i[0]}`,type:o}:i.length>1?{label:`\u0192 ${i.slice(0,2).join(", ")}${i.length>2?"\u2026":""}`,type:o}:{label:e,type:o}}catch{return{label:e,type:"unknown"}}}var to=A;function Fn(e){let t=e.mode??"preview",n=Ae(e.theme),r=e.template,o=e.dataSources??[],a=e.now??new Date,i={locale:e.locale??r.settings?.locale??"en-GB",currency:e.currency??r.settings?.currency??"GBP",timeZone:e.timeZone??r.settings?.timeZone,now:a},s=[],l;t==="preview"?l=e.data??e.sampleData??{}:l=e.data??e.sampleData??Pn(o,{now:a}),t==="design"&&(l={...Pn(o,{now:a}),...l});let c={page:{number:1,total:1},now:a,theme:{name:n.name,logo:n.logo,logoDark:n.logoDark,colors:n.colors,typography:n.typography,meta:n.meta??{}}},p=new ke(c).child(l),u=Ir(o),d={registry:e.registry,theme:n,template:r,mode:t,format:i,warnings:s,designIterations:Math.max(1,e.designIterations??1),maxIterations:e.maxIterations??5e3,allowStyleOverrides:e.allowStyleOverrides??!0,designShowHidden:e.designShowHidden??!0,dataSources:o},m=h=>(h??[]).flatMap(x=>Ot(d,x,p,u,"","section")),f={default:m(r.header?.default)};r.page.header.differentFirstPage&&(f.firstPage=m(r.header?.firstPage));let b={default:m(r.footer?.default)};return r.page.footer.differentFirstPage&&(b.firstPage=m(r.footer?.firstPage)),{body:m(r.body),header:f,footer:b,warnings:s,mode:t}}function _n(e){try{return se(Se(e)).some(t=>t[0]?.kind==="prop"&&t[0].name==="page")}catch{return!1}}function Nn(e,t,n){return{scope:t,format:e.format,onWarning:(r,o)=>e.warnings.push({message:r,nodeId:n,expr:o})}}function Ze(e,t,n,r){try{return Te(r,Nn(e,t,n))}catch(o){e.warnings.push({message:`Invalid expression: ${o.message}`,nodeId:n,expr:r});return}}var ft=Jr;function no(e,t,n,r,o){let a=[],i=!1;for(let l of xn(o)){if(l.kind==="text"){a.push(l);continue}let c=l.expr,{label:p}=ft(c,n);if(_n(c)){i=!0,a.push({...l,label:p,deferred:!0});continue}let u=Ze(e,t,r,c);a.push({...l,label:p,value:to(u)})}let s=a.map(l=>l.kind==="text"?l.text:l.value??"").join("");return{segments:a,text:s,pageDependent:i}}function ga(e,t,n,r,o){let a=!1,i=c=>c.map(p=>{if(p.type!=="token"){if(p.type==="text"&&p.marks?.link?.includes("{{")){let d=no(e,t,n,r,p.marks.link);return{...p,marks:{...p.marks,link:d.text}}}return p}let{label:u}=ft(p.expr,n);return _n(p.expr)?(a=!0,{...p,label:u,deferred:!0}):{...p,label:u,value:to(Ze(e,t,r,p.expr))}}),s=c=>({...c,content:i(c.content)});return{doc:{type:"doc",content:o.content.map(c=>c.type==="paragraph"?s(c):{...c,content:c.content.map(p=>({...p,content:p.content.map(s)}))})},pageDependent:a}}function Qr(e,t){let n=t.split("."),r=e;for(let o of n){if(r==null||typeof r!="object")return;r=r[o]}return r}function dt(e,t,n){let r=t.split("."),o=e;for(let a=0;a<r.length-1;a++){let i=r[a];(typeof o[i]!="object"||o[i]===null)&&(o[i]={}),o=o[i]}o[r[r.length-1]]=n}function eo(e,t,n){let r=e?.defaultFlow??{},o=t.flow??{},a=!!e?.container,i=e?.split??(a?"children":"none");return{breakBefore:o.breakBefore??r.breakBefore??"auto",breakAfter:o.breakAfter??r.breakAfter??"auto",keepTogether:o.keepTogether??r.keepTogether??!1,keepWithNext:o.keepWithNext??r.keepWithNext??n??!1,split:i,minOrphans:o.minOrphans??r.minOrphans??2,minWidows:o.minWidows??r.minWidows??2}}function Cn(e){return e==="section"||e==="row"||e==="column"?e:"block"}function Ot(e,t,n,r,o,a){let i=e.registry.get(t.type),s=o+t.id,l=t.id,c=!1,p=wn(t.visibleWhen);if(p){let y=fn(p);if(y)e.warnings.push({message:`Invalid condition: ${y.message}`,nodeId:l,expr:p});else{let k=!0;try{k=_t(p,Nn(e,n,l))}catch($){e.warnings.push({message:`Condition failed: ${$.message}`,nodeId:l,expr:p})}if(!k){if(e.mode==="preview"||!e.designShowHidden)return[];c=!0}}}if(!i)return e.warnings.push({message:`Unknown block type "${t.type}"`,nodeId:l}),[{key:s,nodeId:l,type:t.type,role:Cn(t.type),props:{...t.props,__unknown:!0},raw:t.props,style:ct({theme:e.theme,styles:e.template.styles}),flow:eo(void 0,t,void 0),children:[],bindings:{},textSegments:{},richText:{},label:t.name??t.type,locked:t.locked}];let d={...Hr(i),...t.props},m=structuredClone(d),f={},b={},h={},x=!1,R=(y,k,$)=>{let _=$+y.prop,S=Qr(k,y.prop);switch(y.kind){case"value":{if(typeof S!="string"||S.trim()==="")return;let{label:M,type:N}=ft(S,r);if(f[_]={prop:_,kind:"value",expr:S,label:M,type:N},_n(S)){x=!0,dt(k,y.prop,void 0);return}dt(k,y.prop,Ze(e,n,l,S));return}case"collection":{if(typeof S!="string"||S.trim()===""){dt(k,y.prop,[]);return}let{label:M,type:N}=ft(S,r);f[_]={prop:_,kind:"collection",expr:S,label:M,type:N};let D=Ze(e,n,l,S);dt(k,y.prop,Array.isArray(D)?D:D==null?[]:[D]);return}case"template":{if(typeof S!="string")return;if(!S.includes("{{")){b[_]=[{kind:"text",text:S}];return}let M=no(e,n,r,l,S);M.pageDependent&&(x=!0),b[_]=M.segments;let N=M.segments.filter(D=>D.kind==="token");if(N.length===1&&M.segments.length===1){let{label:D,type:U}=ft(N[0].expr,r);f[_]={prop:_,kind:"template",expr:N[0].expr,label:D,type:U}}dt(k,y.prop,M.text);return}case"richtext":{if(!wr(S))return;let M=ga(e,n,r,l,S);M.pageDependent&&(x=!0),h[_]=M.doc;return}case"condition":case"list":return}};for(let y of Dt(i))if(!y.perItem){if(y.items){let k=Qr(m,y.prop);Array.isArray(k)&&k.forEach(($,_)=>$&&typeof $=="object"&&y.items.forEach(S=>!S.perItem&&R(S,$,`${y.prop}.${_}.`)));continue}R(y,m,"")}if(i.resolve){let y={props:m,node:t,scope:n,mode:e.mode,theme:e.theme,format:e.format,evaluate:k=>Ze(e,n,l,k),evaluateIn:(k,$)=>Ze(e,n.child($),l,k),warn:k=>e.warnings.push({message:k,nodeId:l})};try{let k=i.resolve(y);k&&typeof k=="object"&&Object.assign(m,k)}catch(k){e.warnings.push({message:`Block "${i.name}" failed to resolve: ${k.message}`,nodeId:l})}}let w=t.style?.textStyle??i.defaultTextStyle,g=ct({theme:e.theme,styles:e.template.styles,textStyle:w,defaults:i.defaultStyle,overrides:t.style,allowOverrides:e.allowStyleOverrides}),P=w?e.template.styles.text[w]:void 0,T=eo(i,t,P?.keepWithNext),C=[],I,W=!1,B=i.container;if(B?.repeat){let y=m[B.repeat.collectionProp],k=m[B.repeat.aliasProp??"alias"]||"item",$=d[B.repeat.collectionProp],_=Array.isArray(y)?y:[],S=B.repeat.limitProp&&Number(m[B.repeat.limitProp])||void 0;S&&(_=_.slice(0,S)),_.length>e.maxIterations&&(e.warnings.push({message:`Repeater truncated to ${e.maxIterations} items`,nodeId:l}),_=_.slice(0,e.maxIterations));let M;if(typeof $=="string"&&$.trim())try{let j=Se($);for(;j.kind==="pipe";)j=j.input;let Z=j.kind==="path"?lt(j.segments,r):{};M=Z.schema?.type==="array"?Z.schema.itemSchema:void 0}catch{M=void 0}e.mode==="design"&&(_.length===0&&(_=M?[It(M,{now:e.format.now},0,0)]:[{}],W=!0),_=_.slice(0,e.designIterations));let N=B.repeat.keepItemTogetherProp?!!m[B.repeat.keepItemTogetherProp]:!1,D=_.length,U=r.child({[k]:M??{type:"object",label:k,fields:{}},index:{type:"number",label:"Index"},first:{type:"boolean",label:"Is first"},last:{type:"boolean",label:"Is last"},count:{type:"number",label:"Count"}});C=_.map((j,Z)=>{let F=n.child({[k]:j,item:j,index:Z+1,first:Z===0,last:Z===D-1,count:D}),X=`${s}@${Z}`,J=(t.children??[]).flatMap(ne=>Ot(e,ne,F,U,`${X}/`,"block"));return{key:X,nodeId:l,type:"repeater-item",role:"block",props:{index:Z,count:D},raw:{},style:ct({theme:e.theme,styles:e.template.styles}),flow:{breakBefore:"auto",breakAfter:"auto",keepTogether:N,keepWithNext:!1,split:"children",minOrphans:1,minWidows:1},children:J,bindings:{},textSegments:{},richText:{},iteration:{index:Z,count:D,alias:k},label:`${k} ${Z+1}`}}),I=void 0,m.__itemCount=Array.isArray(y)?y.length:0}else if(B?.conditional){let y=wn(d[B.conditional.conditionProp]),k=!0;if(y){let $=fn(y);if($)e.warnings.push({message:`Invalid condition: ${$.message}`,nodeId:l,expr:y});else try{k=_t(y,Nn(e,n,l))}catch(_){e.warnings.push({message:`Condition failed: ${_.message}`,nodeId:l,expr:y})}}m.__conditionResult=k,(k||e.mode==="design")&&(C=(t.children??[]).flatMap($=>Ot(e,$,n,r,o,"block")))}else B&&(C=(t.children??[]).flatMap(y=>Ot(e,y,n,r,o,Cn(t.type))));let E={key:s,nodeId:l,type:t.type,role:Cn(t.type),props:m,raw:d,style:g,flow:T,children:C,bindings:f,textSegments:b,richText:h,label:t.name??i.canvas?.label?.(m)??i.name,locked:t.locked,pageDependent:x||void 0,placeholder:W||void 0,iteration:I};if(c&&(E.props.__hiddenByCondition=!0),t.type==="row"){let y=Array.isArray(m.layout)?m.layout:C.map(()=>12/Math.max(1,C.length));E.layout={columns:y},C.forEach((k,$)=>{k.span=y[$]??12/Math.max(1,C.length)})}return[E]}var ha=3.7795275590551185,ro={A3:{width:297,height:420},A4:{width:210,height:297},A5:{width:148,height:210},Letter:{width:215.9,height:279.4},Legal:{width:215.9,height:355.6},Tabloid:{width:279.4,height:431.8}};function Re(e){return Math.round(e*ha*100)/100}function ya(e){return typeof e=="string"?ro[e]??ro.A4:e}function oo(e){let t=ya(e.size),n=e.orientation!=="landscape",r=Re(n?t.width:t.height),o=Re(n?t.height:t.width),a={top:Re(e.margins.top),right:Re(e.margins.right),bottom:Re(e.margins.bottom),left:Re(e.margins.left)},i=Re(Math.max(0,e.header.height)),s=Re(Math.max(0,e.footer.height)),l=a.top+i,c=o-a.bottom-s;return{width:r,height:o,margins:a,headerHeight:i,footerHeight:s,contentWidth:Math.max(0,r-a.left-a.right),contentHeight:Math.max(0,c-l),contentTop:l,headerTop:a.top,footerTop:c}}function Ke(e,t){return e.geom.nodes[t.key]??{top:0,height:0,left:0,width:0}}var G=.01;function Vt(e,t,n,r){let o=(a,i)=>{for(let s=a;s>=0&&s<t.length;s+=i){let l=t[s];if(Ke(e,l).height>G)return l}};for(let a=t.length-1;a>=0;a--){let i=t[a],s=Ke(e,i),l=s.top,c=s.top+s.height;if(l>n+G||s.height<=G)continue;let p=o(a+1,1);if(c>n+G){let m=ba(e,i,n,r);if(m!==null&&m>r+G&&m>l+G)return m}else{let m=Math.min(p?Ke(e,p).top:c,n),f=i.flow.keepWithNext&&!!p;if(!f&&m>r+G)return m;if(!f)return null}let u=o(a-1,-1),d=!!u&&u.flow.keepWithNext;if(!d&&l>r+G)return l;if(!d)return null}return null}function ba(e,t,n,r){let o=Ke(e,t),a=o.height<=e.pageHeight+G;if(t.flow.keepTogether&&a)return null;if(t.role==="row"&&t.children.length>1)return!(t.props.allowSplit===!0)&&a?null:xa(e,t.children,n,r);switch(t.flow.split){case"none":return null;case"lines":{let i=o.lines;if(!i||i.length<2)return null;let s=Math.max(1,t.flow.minOrphans),l=Math.max(1,t.flow.minWidows);for(let c=i.length-2;c>=0;c--){let p=i[c];if(p>n+G)continue;let u=c+1,d=i.length-u;if(u<s)return null;if(!(d<l))return p>r+G?p:null}return null}case"rows":{let i=o.rows;if(!i||i.length===0)return null;let s=i.filter(p=>p.kind==="body");if(s.length<2)return null;let l=Math.max(1,t.flow.minOrphans),c=Math.max(1,t.flow.minWidows);for(let p=s.length-2;p>=0;p--){let u=s[p],d=u.top+u.height;if(d>n+G)continue;let m=p+1,f=s.length-m;if(m<l)return null;if(!(f<c))return d>r+G?d:null}return null}case"children":return Vt(e,t.children,n,r)}}function xa(e,t,n,r){let o=n;for(let a=0;a<64;a++){let i=o;for(let s of t){let l=s.children;if(l.length===0)continue;let c=Ke(e,l[0]).top,p=Ke(e,l[l.length-1]),u=p.top+p.height;if(o<=c+G||o>=u-G)continue;let d=Vt(e,l,o,r);if(d===null)return null;d<i&&(i=d)}if(Math.abs(i-o)<G)return o>r+G?o:null;o=i}return null}function io(e,t=[]){e.flow.split==="rows"&&t.push(e);for(let n of e.children)io(n,t);return t}function ka(e,t,n){let r=[];for(let o of t){let a=e.nodes[o.key];if(!a?.rows)continue;let i=a.rows.filter(l=>l.kind==="header");if(i.length===0)continue;let s=a.top+a.height;if(a.top<n-G&&n<s-G){let l=i.reduce((c,p)=>c+p.height,0);r.push({tableKey:o.key,height:l,left:a.left,width:a.width})}}return r}function wa(e,t){let n=new Set,r=Number.POSITIVE_INFINITY,o=0,a=i=>{let s=t.nodes[i.key];s&&(i.flow.breakBefore==="page"&&n.add(s.top),i.flow.breakAfter==="page"&&n.add(s.top+s.height)),i.children.forEach(a)};for(let i of e.children){let s=t.nodes[i.key];s&&(r=Math.min(r,s.top),o=Math.max(o,s.top+s.height)),a(i)}return Number.isFinite(r)||(r=0),{inside:[...n].filter(i=>i>r+G&&i<o-G).sort((i,s)=>i-s),atStart:[...n].some(i=>i<=r+G),atEnd:[...n].some(i=>i>=o-G)}}function An(e){let{document:t,geometry:n,page:r}=e,o=r.contentHeight,a=[],i=[],s={index:0,number:1,fragments:[],first:!0},l=0,c=!1,p=()=>{i.push(s),s={index:i.length,number:i.length+1,fragments:[],first:!1},l=0,c=!1};for(let d of t.body){let m=n[d.key];if(!m){a.push({code:"forced-split",message:"Section was not measured",sectionKey:d.key,nodeId:d.nodeId});continue}let f=m.height,b={geom:m,pageHeight:o},h=io(d),x=wa(d,m),R=d.children.reduce((P,T)=>{let C=m.nodes[T.key];return C?Math.max(P,C.top+C.height):P},0);if((c||d.flow.breakBefore==="page"||x.atStart)&&l>0&&p(),d.flow.keepTogether&&f>o-l+G&&f<=o+G&&l>0&&p(),f<=G)continue;let w=0,g=0;for(;w<f-G;){if(++g>1e4){a.push({code:"forced-split",message:"Pagination aborted after too many fragments",sectionKey:d.key,nodeId:d.nodeId});break}let P=o-l,T=ka(m,h,w),C=T.reduce((k,$)=>k+$.height,0),I=x.inside.find(k=>k>w+G)??f,W=I>=f-G,B=I-w;if(B+C<=P+G){if(s.fragments.push({sectionKey:d.key,from:w,to:I,repeatHeaders:T,y:l,height:B+C,continued:w>0,continues:!W}),l+=B+C,w=I,W)break;p();continue}let E=Math.min(w+P-C,I),y=null;if(E>w+G&&(y=d.flow.split==="children"?Vt(b,d.children,E,w):null,y!==null&&y<=w+G&&(y=null),y!==null&&y>E+G&&(y=null),W&&y!==null&&y>=R-G)){s.fragments.push({sectionKey:d.key,from:w,to:f,repeatHeaders:T,y:l,height:Math.min(f-w+C,P),continued:w>0,continues:!1}),l+=Math.min(f-w+C,P),w=f;break}if(y===null){if(l>0||s.fragments.length>0){p();continue}E<=w+G?(a.push({code:"oversized-header",message:"A repeated table header is taller than the page",sectionKey:d.key,nodeId:d.nodeId,page:s.number}),y=Math.min(f,w+Math.max(1,o))):(y=Math.min(f,E),a.push({code:"forced-split",message:"Content taller than a page had to be cut at an arbitrary position",sectionKey:d.key,nodeId:d.nodeId,page:s.number}))}s.fragments.push({sectionKey:d.key,from:w,to:y,repeatHeaders:T,y:l,height:y-w+C,continued:w>0,continues:!0}),w=y,p()}(d.flow.breakAfter==="page"||x.atEnd)&&(c=!0)}for(i.push(s);i.length>1&&i[i.length-1].fragments.length===0;)i.pop();c&&a.push({code:"no-op-break",message:"A page break after the last content has nothing to move to a new page",page:i.length});let u=Math.max(1,e.minPages??1);for(;i.length<u;)i.push({index:i.length,number:i.length+1,fragments:[],first:i.length===0});if(t.body.length===0&&a.push({code:"empty-document",message:"The document has no content"}),e.regionGeometry){let d=(m,f,b)=>{if(!m)return;let h=m.reduce((x,R)=>x+(e.regionGeometry[R.key]?.height??0),0);h>f+.5&&a.push({code:"region-overflow",message:`${b} content (${Math.round(h)}px) is taller than the ${b.toLowerCase()} region (${Math.round(f)}px) and will be clipped`})};d(t.header.default,r.headerHeight,"Header"),d(t.header.firstPage,r.headerHeight,"First-page header"),d(t.footer.default,r.footerHeight,"Footer"),d(t.footer.firstPage,r.footerHeight,"First-page footer")}return{pages:i,totalPages:i.length,geometry:r,warnings:a}}function me(e,t={}){if(!e)return!1;let n=e.trim();if(/^https?:\/\//i.test(n)||/^mailto:/i.test(n)||n.startsWith("/")&&!n.startsWith("//")||n.startsWith("./")||n.startsWith("../"))return!0;if(t.allowData&&/^data:image\/(png|jpe?g|gif|webp|svg\+xml)[;,]/i.test(n)){if(!/^data:image\/svg\+xml/i.test(n))return!0;let r=n.indexOf(","),o=r===-1?"":n.slice(r+1),a;if(/;base64/i.test(n.slice(0,r===-1?n.length:r)))a=va(o);else try{a=decodeURIComponent(o)}catch{a=o}return!/<script|javascript:|on[a-z]+\s*=|<foreignObject/i.test(a)}return!1}function va(e){let t=e.trim();try{let n=globalThis;if(typeof n.atob=="function")return n.atob(t);if(n.Buffer)return n.Buffer.from(t,"base64").toString("utf8")}catch{}return"<script"}function Sa(e){return new ke({page:e.page,now:e.format.now??new Date,theme:{name:e.theme.name,logo:e.theme.logo,colors:e.theme.colors,typography:e.theme.typography,meta:e.theme.meta??{}}})}function lo(e,t){try{return A(Te(e,{scope:Sa(t),format:t.format}))}catch{return""}}function Dn(e,t,n){return v("span",{class:"bp-token","data-expr":e,title:e,contenteditable:"false"},t??e,n!==void 0&&n!==""?v("span",{class:"bp-token__value"},n):null)}function co(e,t,n){return e?e.map(r=>{if(r.kind==="text")return r.text;let o=r.deferred?lo(r.expr,n):r.value??"";return n.mode==="design"?Dn(r.expr,r.label,r.deferred?o:void 0):o}):t!==void 0?[t]:[]}function ao(e,t,n){if(!t)return e;let r=e;if(t.code&&(r=v("code",{class:"bp-code"},r)),t.bold&&(r=v("strong",null,r)),t.italic&&(r=v("em",null,r)),t.underline&&(r=v("u",null,r)),t.strike&&(r=v("s",null,r)),t.color&&(r=v("span",{style:{color:q(t.color,n.theme,"inherit")}},r)),t.link){let o=t.link,a=me(o),i=q(n.styles.link.color,n.theme,n.theme.colors.secondary);r=v("a",{class:"bp-link",href:a?o:void 0,rel:"noopener",style:{color:i,"text-decoration":n.styles.link.underline===!1?"none":"underline"}},r)}return r}function po(e,t){return e.map(n=>{if(n.type==="break")return v("br");if(n.type==="text")return ao([n.text],n.marks,t);let r=n.deferred?lo(n.expr,t):n.value??"",o=t.mode==="design"?Dn(n.expr,n.label,n.deferred?r:void 0):r;return ao([o],n.marks,t)})}function so(e,t){let n=e.content.length===0;return v("p",{class:["bp-p",n&&"bp-p--empty"],style:e.align?{"text-align":e.align}:void 0},n?v("br"):po(e.content,t))}function uo(e,t){return e?e.content.map(n=>n.type==="paragraph"?so(n,t):v(n.type==="bulletList"?"ul":"ol",{class:"bp-list"},n.content.map(r=>v("li",null,r.content.map(o=>so(o,t)))))):[]}function fo(e,t={}){return{"data-key":e.key,"data-node":e.nodeId,"data-type":e.type,...t}}function mo(e,t,n,r){let o=e-n*Math.max(0,r-1);return Math.max(0,o*t/12)}function we(e,t,n=t.width){let r=t.registry.get(e.type),o=t.styles.spacing.blockGap,a=t.styles.spacing.columnGap,i=n;if(r?.container){let h=e.style.padding,x=e.style.border?e.style.border.width:0;i=Math.max(0,n-h.left-h.right-2*x)}let s=[];if(e.role==="row"){let h=e.children.length;for(let x of e.children){let R=mo(i,x.span??12/Math.max(1,h),a,h),w=we(x,t,R);w&&s.push(w)}}else for(let h of e.children){let x=we(h,t,i);x&&s.push(x)}let l=e.style,c=Sn(l);delete c.margin,delete c.width,delete c.height;let p={},u=l.margin;(u.top||u.right||u.bottom||u.left)&&(p.margin=`${u.top}px ${u.right}px ${u.bottom}px ${u.left}px`),l.width!==void 0&&e.role==="block"&&(p.width=typeof l.width=="number"?`${l.width}px`:l.width,p["max-width"]="100%",l.align==="center"?p["margin-left"]=p["margin-right"]="auto":l.align==="right"&&(p["margin-left"]="auto")),l.height!==void 0&&e.role==="block"&&(p.height=`${l.height}px`),e.role==="column"&&(p["grid-column"]=`span ${e.span??12}`,p["min-width"]="0");let d=["bp-node",`bp-node--${e.type}`,`bp-${e.role}`];e.props.__hiddenByCondition&&d.push("bp-node--hidden"),e.placeholder&&d.push("bp-node--placeholder"),e.locked&&d.push("bp-node--locked"),e.iteration&&d.push("bp-repeater-item"),e.flow.keepTogether&&d.push("bp-node--keep");let m=fo(e,{class:d,style:p});if(t.decorate&&(m=t.decorate(e,m)),!r)return v("div",m,v("div",{class:"bp-unknown-block",style:O(c)},`Unavailable block: ${e.type}`));let f={node:e,props:e.props,style:l,css:c,theme:t.theme,styles:t.styles,mode:t.mode,h:v,children:s,page:t.page,width:n,format:t.format,registry:t.registry,text:(h,x)=>co(e.textSegments[h],x??(typeof e.props[h]=="string"?e.props[h]:void 0),t),richText:h=>uo(e.richText[h]??e.props[h],t),textValue:h=>h===void 0?[]:[h],binding:h=>e.bindings[h],partAttrs:(h,x={})=>({"data-part":h,"data-node":e.nodeId,...x}),placeholder:(h,x={})=>v("div",{class:"bp-placeholder",...x},h)},b;try{b=r.render(f)}catch(h){b=v("div",{class:"bp-block-error"},`${r.name} failed to render: ${h.message}`)}return b?(r.container&&e.role!=="row"&&e.role!=="column"&&r.container.direction,v("div",m,b)):null}var go=z({type:"section",name:"Section",category:"structure",icon:"rectangle-horizontal",hidden:!0,defaultProps:{padding:0},container:{accepts:["@rows","@blocks"]},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Section",fields:[{kind:"text",prop:"label",label:"Label",placeholder:"e.g. Executive summary",allowTokens:!1},{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"}]}],canvas:{label:e=>e.label??"Section"},render:({h:e,css:t,children:n,styles:r,props:o,mode:a,node:i})=>{let s=Number(o.padding)||0,l=n.length===0;return e("div",{class:["bp-section__inner",l&&"bp-section__inner--empty"],style:O({...t,padding:s?`${s}px`:t.padding})},e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":i.nodeId},l&&a==="design"?e("div",{class:"bp-empty-section"},e("span",{class:"bp-empty-section__title"},"Empty section"),e("span",{class:"bp-empty-section__hint"},"Drag blocks here, or pick one from the panel")):n))}}),ho=z({type:"row",name:"Columns",description:"A row of columns",category:"layout",icon:"columns-3",keywords:["row","columns","grid","layout"],defaultProps:{layout:[6,6],allowSplit:!1,verticalAlign:"top"},container:{accepts:["@columns"],direction:"row"},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Columns",fields:[{kind:"segmented",prop:"verticalAlign",label:"Vertical align",options:[{value:"top",label:"Top",icon:"align-start-vertical"},{value:"middle",label:"Middle",icon:"align-center-vertical"},{value:"bottom",label:"Bottom",icon:"align-end-vertical"},{value:"stretch",label:"Stretch",icon:"stretch-vertical"}]},{kind:"toggle",prop:"allowSplit",label:"Allow splitting across pages",description:"When off, a row that does not fit moves to the next page whole."}]}],canvas:{label:e=>`Columns ${e.layout.join(" / ")}`},render:({h:e,css:t,children:n,styles:r,props:o})=>{let a=o.verticalAlign==="middle"?"center":o.verticalAlign==="bottom"?"end":o.verticalAlign==="stretch"?"stretch":"start";return e("div",{class:"bp-row__grid",style:O({...t,display:"grid","grid-template-columns":"repeat(12, minmax(0, 1fr))","column-gap":`${r.spacing.columnGap}px`,"align-items":a})},n)}}),yo=z({type:"column",name:"Column",category:"structure",icon:"rectangle-vertical",hidden:!0,defaultProps:{span:6},container:{accepts:["@blocks","@rows"]},split:"children",styleGroups:["spacing","background","border"],render:({h:e,css:t,children:n,node:r,styles:o,mode:a})=>{let i=n.length===0;return e("div",{class:["bp-column__inner",i&&"bp-column__inner--empty"],style:O({...t,"min-width":"0",height:"100%"})},e("div",{class:"bp-stack",style:{gap:`${o.spacing.blockGap}px`},"data-dropzone":r.nodeId},i&&a==="design"?e("div",{class:"bp-empty-column"},"Drop here"):n))}}),bo=z({type:"repeater-item",name:"Repeater item",category:"structure",hidden:!0,defaultProps:{index:0,count:0},container:{accepts:["@blocks","@rows"]},split:"children",render:({h:e,children:t,styles:n})=>e("div",{class:"bp-stack bp-repeater-item__inner",style:{gap:`${n.spacing.blockGap}px`}},t)});function In(e,t){return v("svg",{width:e,height:e,viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",style:{display:"block","flex-shrink":"0"}},t)}function xo(e,t,n){return In(t,[v("path",{d:e==="up"?"M6 2 L11 9.5 L1 9.5 Z":"M6 10 L1 2.5 L11 2.5 Z",fill:n})])}function ko(e,t){return In(e,[v("path",{d:"M2 6.4 L4.8 9.2 L10 3.2",fill:"none",stroke:t,"stroke-width":1.8,"stroke-linecap":"round","stroke-linejoin":"round"})])}function wo(e,t){return In(e,[v("circle",{cx:6,cy:6,r:2.6,fill:t})])}var Xe={kind:"segmented",prop:"align",label:"Align",options:[{value:"left",label:"Left",icon:"align-left"},{value:"center",label:"Centre",icon:"align-center"},{value:"right",label:"Right",icon:"align-right"}]},vo=z({type:"heading",name:"Heading",description:"Section title using a document heading style",category:"content",icon:"heading",keywords:["title","h1","h2","h3"],defaultProps:{text:"Heading",level:"h2"},defaultTextStyle:"h2",defaultFlow:{keepWithNext:!0},split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Heading",fields:[{kind:"text",prop:"text",label:"Text",placeholder:"Heading text or {{ token }}"},{kind:"segmented",prop:"level",label:"Level",options:[{value:"h1",label:"H1"},{value:"h2",label:"H2"},{value:"h3",label:"H3"},{value:"h4",label:"H4"}]}]}],canvas:{inlineEdit:{prop:"text",kind:"text"},label:e=>e.text?.slice(0,40)||"Heading"},render:({h:e,css:t,text:n,props:r,partAttrs:o,mode:a})=>{let i=n("text"),s=i.length===0||i.length===1&&i[0]==="";return e(r.level||"h2",{class:["bp-heading",`bp-heading--${r.level}`],style:O(t),...o("text")},s&&a==="design"?e("span",{class:"bp-placeholder-text"},"Heading"):i)}}),So=z({type:"text",name:"Text",description:"Rich text with inline data tokens",category:"content",icon:"text",keywords:["paragraph","rich text","body","copy"],defaultProps:()=>({content:Mt("")}),defaultTextStyle:"body",split:"lines",measure:"text",styleGroups:["textStyle","typography","alignment","spacing","background","border","flow"],inspector:[{title:"Text",fields:[{kind:"richtext",prop:"content",label:"Content"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"},label:()=>"Text"},render:({h:e,css:t,richText:n,partAttrs:r,mode:o,node:a})=>{let i=a.richText.content??a.props.content,s=!i||i.content.every(l=>l.type==="paragraph"&&l.content.length===0);return e("div",{class:["bp-text",s&&"bp-text--empty"],style:O(t),...r("text")},s&&o==="design"?e("p",{class:"bp-p bp-placeholder-text"},"Type or drop a field here\u2026"):n("content"))}}),To=z({type:"image",name:"Image",description:"Static or data-bound image",category:"content",icon:"image",keywords:["picture","photo","graphic"],defaultProps:{src:"",alt:"",fit:"contain",width:null,height:null,align:"left",radius:0,link:""},split:"none",styleGroups:["spacing","border","flow"],inspector:[{title:"Image",fields:[{kind:"image",prop:"src",label:"Source",allowBinding:!0},{kind:"text",prop:"alt",label:"Alt text",allowTokens:!0},{kind:"text",prop:"link",label:"Link URL",allowTokens:!0}]},{title:"Size",fields:[{kind:"number",prop:"width",label:"Width",min:8,max:2e3,unit:"px"},{kind:"number",prop:"height",label:"Height",min:8,max:2e3,unit:"px"},{kind:"segmented",prop:"fit",label:"Fit",options:[{value:"contain",label:"Contain"},{value:"cover",label:"Cover"}]},Xe,{kind:"number",prop:"radius",label:"Corner radius",min:0,max:200,unit:"px"}]}],validate:({props:e})=>{let t=String(e.src??"");return t&&!t.includes("{{")&&!me(t,{allowData:!0})?[{severity:"warning",code:"invalid-url",message:`Image URL "${t.slice(0,60)}" is not an http(s) or data:image URL`,prop:"src"}]:[]},render:({h:e,css:t,props:n,mode:r,node:o,width:a})=>{let i=typeof n.src=="string"?n.src:"",s=i&&me(i,{allowData:!0}),l=n.width??void 0,c=n.height??void 0,p=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start",u={width:l?`${Math.min(l,a)}px`:c?"auto":"100%",height:c?`${c}px`:"auto","max-width":"100%","object-fit":n.fit,"border-radius":n.radius?`${n.radius}px`:void 0,display:"block"},d;if(s)d=e("img",{src:i,alt:n.alt||"",style:u,draggable:"false"});else if(r==="design"){let f=o.bindings.src;d=e("div",{class:"bp-image-placeholder",style:{width:l?`${Math.min(l,a)}px`:"100%",height:`${c??140}px`,"border-radius":n.radius?`${n.radius}px`:void 0}},e("span",{class:"bp-image-placeholder__label"},f?f.label:i?"Invalid image URL":"Choose an image"))}else d=e("div",{style:{width:l?`${l}px`:"100%",height:`${c??0}px`}});let m=n.link&&me(n.link)?e("a",{href:n.link,rel:"noopener",style:{display:"block",width:l?`${Math.min(l,a)}px`:"100%"}},d):d;return e("div",{class:"bp-image",style:O({...t,display:"flex","justify-content":p})},m)}}),$o=z({type:"logo",name:"Logo",description:"The active brand's logo",category:"content",icon:"badge-check",keywords:["brand","theme"],defaultProps:{variant:"auto",height:32,align:"left"},split:"none",styleGroups:["spacing","flow"],inspector:[{title:"Logo",fields:[{kind:"number",prop:"height",label:"Height",min:8,max:400,unit:"px"},Xe,{kind:"select",prop:"variant",label:"Variant",options:[{value:"auto",label:"Automatic"},{value:"light",label:"Standard"},{value:"dark",label:"For dark backgrounds"}]}]}],render:({h:e,css:t,props:n,theme:r,mode:o,style:a})=>{let s=(n.variant==="dark"||n.variant==="auto"&&!!a.background&&Ue(a.background))&&r.logoDark||r.logo,l=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start",c=s&&me(s,{allowData:!0})?e("img",{src:s,alt:r.logoAlt??`${r.name} logo`,style:{height:`${n.height}px`,width:"auto","max-width":"100%",display:"block"},draggable:"false"}):o==="design"?e("div",{class:"bp-logo-placeholder",style:{height:`${n.height}px`}},r.name||"Logo"):e("div",{style:{height:`${n.height}px`}});return e("div",{class:"bp-logo",style:O({...t,display:"flex","justify-content":l})},c)}}),Ro=z({type:"divider",name:"Divider",category:"content",icon:"minus",keywords:["rule","line","separator","hr"],defaultProps:{thickness:1,color:"$colors.border",lineStyle:"solid",width:100},split:"none",styleGroups:["spacing","flow"],inspector:[{title:"Divider",fields:[{kind:"number",prop:"thickness",label:"Thickness",min:1,max:20,unit:"px"},{kind:"color",prop:"color",label:"Colour"},{kind:"segmented",prop:"lineStyle",label:"Style",options:[{value:"solid",label:"Solid"},{value:"dashed",label:"Dashed"},{value:"dotted",label:"Dotted"}]},{kind:"number",prop:"width",label:"Width",min:5,max:100,unit:"%"}]}],render:({h:e,css:t,props:n,theme:r})=>e("div",{class:"bp-divider",style:O({...t,display:"flex","justify-content":"center"})},e("div",{style:{width:`${n.width}%`,"border-top":`${n.thickness}px ${n.lineStyle} ${q(n.color,r,r.colors.border)}`}}))}),Po=z({type:"spacer",name:"Spacer",category:"content",icon:"move-vertical",keywords:["gap","space","padding"],defaultProps:{height:24},split:"none",styleGroups:["flow"],inspector:[{title:"Spacer",fields:[{kind:"number",prop:"height",label:"Height",min:1,max:600,unit:"px"}]}],render:({h:e,props:t,mode:n})=>e("div",{class:["bp-spacer",n==="design"&&"bp-spacer--design"],style:{height:`${t.height}px`}})}),Mo=z({type:"button",name:"Button",description:"A hyperlink styled as a button",category:"content",icon:"mouse-pointer-click",keywords:["link","cta","url"],defaultProps:{label:"View online",url:"https://",variant:"filled",color:"$colors.primary",align:"left",size:"md"},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Button",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"url",label:"URL",placeholder:"https://\u2026 or {{ token }}"},{kind:"segmented",prop:"variant",label:"Style",options:[{value:"filled",label:"Filled"},{value:"outline",label:"Outline"},{value:"link",label:"Link"}]},{kind:"color",prop:"color",label:"Colour"},{kind:"segmented",prop:"size",label:"Size",options:[{value:"sm",label:"S"},{value:"md",label:"M"},{value:"lg",label:"L"}]},Xe]}],validate:({props:e})=>{let t=String(e.url??"");return t&&!t.includes("{{")&&!me(t)?[{severity:"warning",code:"invalid-url",message:`Button URL "${t}" is not a valid http(s) or mailto link`,prop:"url"}]:[]},render:({h:e,css:t,props:n,theme:r,text:o,style:a})=>{let i=q(n.color,r,r.colors.primary),s=n.size==="sm"?"5px 10px":n.size==="lg"?"11px 22px":"8px 16px",l=n.size==="sm"?a.fontSize-1:n.size==="lg"?a.fontSize+2:a.fontSize,c={display:"inline-block",padding:n.variant==="link"?"0":s,"border-radius":`${r.radius??6}px`,"font-weight":"600","font-size":`${l}px`,"text-decoration":n.variant==="link"?"underline":"none","font-family":a.fontFamily,"line-height":"1.2"};n.variant==="filled"?Object.assign(c,{background:i,color:Ue(i)?"#FFFFFF":r.colors.text}):n.variant==="outline"?Object.assign(c,{border:`1.5px solid ${i}`,color:i}):Object.assign(c,{color:i});let p=typeof n.url=="string"?n.url:"",u=n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start";return e("div",{class:"bp-button",style:O({...t,display:"flex","justify-content":u})},e("a",{class:"bp-button__link",href:me(p)?p:void 0,rel:"noopener",style:c},o("label","Button")))}}),Co=z({type:"callout",name:"Callout",description:"Highlighted note or warning",category:"content",icon:"message-square-warning",keywords:["note","warning","alert","notice","info"],defaultProps:()=>({title:"Important",content:Mt("Add the note here."),tone:"info",icon:!0}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Callout",fields:[{kind:"text",prop:"title",label:"Title"},{kind:"richtext",prop:"content",label:"Content"},{kind:"select",prop:"tone",label:"Tone",options:[{value:"info",label:"Information"},{value:"success",label:"Success"},{value:"warning",label:"Warning"},{value:"danger",label:"Danger"},{value:"neutral",label:"Neutral"}]},{kind:"toggle",prop:"icon",label:"Show icon"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"},label:e=>e.title||"Callout"},render:({h:e,css:t,props:n,theme:r,text:o,richText:a,partAttrs:i})=>{let l={info:r.colors.secondary,success:r.colors.success??"#1E8E5A",warning:r.colors.warning??"#C77D0A",danger:r.colors.danger??"#C0392B",neutral:r.colors.mutedText}[n.tone]??r.colors.secondary,p={info:"i",warning:"!",danger:"!"}[n.tone]??(n.tone==="success"?ko(11,"#fff"):n.tone==="neutral"?wo(11,"#fff"):"i");return e("div",{class:["bp-callout",`bp-callout--${n.tone}`],style:O({...t,display:"flex",gap:"12px",padding:t.padding??"12px 14px","border-left":`3px solid ${l}`,background:t.background??Ta(l),"border-radius":`${r.radius??6}px`})},n.icon?e("div",{class:"bp-callout__icon",style:{color:"#fff",background:l,"font-weight":"700","font-size":"11px",width:"18px",height:"18px","border-radius":"9px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0","margin-top":"1px"}},p):null,e("div",{class:"bp-callout__body",style:{flex:"1","min-width":"0"}},n.title?e("div",{class:"bp-callout__title",style:{"font-weight":"600","margin-bottom":"3px"}},o("title")):null,e("div",{class:"bp-callout__content",...i("text")},a("content"))))}});function Ta(e,t=.92){let n=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!n)return"transparent";let r=parseInt(n[1],16);return`#${[r>>16&255,r>>8&255,r&255].map(a=>Math.round(a+(255-a)*t)).map(a=>a.toString(16).padStart(2,"0")).join("")}`}var No=z({type:"quote",name:"Quote",category:"content",icon:"quote",keywords:["blockquote","testimonial","citation"],defaultProps:()=>({content:Mt("A memorable statement."),attribution:""}),defaultTextStyle:"lead",defaultStyle:{fontStyle:"italic"},defaultFlow:{keepTogether:!0},split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Quote",fields:[{kind:"richtext",prop:"content",label:"Quote"},{kind:"text",prop:"attribution",label:"Attribution",placeholder:"\u2014 Name, role"}]}],canvas:{inlineEdit:{prop:"content",kind:"richtext"}},render:({h:e,css:t,props:n,theme:r,richText:o,text:a,partAttrs:i})=>e("blockquote",{class:"bp-quote",style:O({...t,margin:"0","padding-left":"16px","border-left":`3px solid ${r.colors.accent}`})},e("div",{class:"bp-quote__content",...i("text")},o("content")),n.attribution?e("div",{class:"bp-quote__attribution",style:{"font-style":"normal","font-size":`${Math.max(8,Math.round(Number(t["font-size"]?.replace("px",""))*.8))}px`,color:r.colors.mutedText,"margin-top":"6px"}},a("attribution")):null)}),Fo=z({type:"field",name:"Field",description:"A labelled data value",category:"data",icon:"tag",keywords:["key value","label","dynamic text","binding","data"],defaultProps:{label:"Label",value:"",layout:"stacked",fallback:"\u2014",labelWidth:40},defaultTextStyle:"body",split:"none",styleGroups:["typography","alignment","spacing","flow"],inspector:[{title:"Field",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"binding",prop:"value",label:"Value",placeholder:"Pick a field"},{kind:"text",prop:"fallback",label:"Fallback when empty",allowTokens:!1},{kind:"segmented",prop:"layout",label:"Layout",options:[{value:"stacked",label:"Stacked"},{value:"inline",label:"Inline"}]},{kind:"number",prop:"labelWidth",label:"Label width",min:10,max:80,unit:"%",when:e=>e.layout==="inline"}]}],fromField:({formatted:e,label:t})=>({label:t.split(" \u203A ").pop()??t,value:e}),canvas:{label:e=>e.label||"Field"},render:({h:e,css:t,props:n,theme:r,text:o,mode:a,node:i})=>{let s=i.bindings.value,l=n.value,c=l==null||l===""?n.fallback:String(l),p=a==="design"&&s?e("span",{class:"bp-token","data-expr":s.expr,title:s.expr},s.label):c,u=e("div",{class:"bp-field__label",style:{color:r.colors.mutedText,"font-size":"0.85em","text-transform":"uppercase","letter-spacing":"0.04em","font-weight":"600"}},o("label")),d=e("div",{class:"bp-field__value",style:{"font-weight":"500"}},p);return n.layout==="inline"?e("div",{class:"bp-field bp-field--inline",style:O({...t,display:"flex",gap:"8px","align-items":"baseline"})},e("div",{style:{flex:`0 0 ${n.labelWidth}%`}},u),e("div",{style:{flex:"1","min-width":"0"}},d)):e("div",{class:"bp-field",style:O({...t,display:"flex","flex-direction":"column",gap:"2px"})},u,d)}}),_o=z({type:"kpi",name:"Statistic",description:"Big number with label and trend",category:"data",icon:"trending-up",keywords:["kpi","metric","number","stat","big number"],defaultProps:{label:"Portfolio value",value:"",caption:"",trend:"",trendFormat:"percent",accent:"$colors.primary",align:"left",size:"md"},defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","background","border","flow"],inspector:[{title:"Statistic",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"binding",prop:"value",label:"Value",valueType:["number","currency","percent","string"]},{kind:"binding",prop:"trend",label:"Trend",valueType:["number","percent","string"],placeholder:"e.g. portfolio.change"},{kind:"segmented",prop:"trendFormat",label:"Trend format",options:[{value:"percent",label:"%"},{value:"number",label:"#"},{value:"text",label:"Aa"}]},{kind:"text",prop:"caption",label:"Caption"},{kind:"color",prop:"accent",label:"Accent"},Xe,{kind:"segmented",prop:"size",label:"Size",options:[{value:"sm",label:"S"},{value:"md",label:"M"},{value:"lg",label:"L"}]}]}],canvas:{label:e=>e.label||"Statistic"},render:({h:e,css:t,props:n,theme:r,text:o,mode:a,node:i,format:s})=>{let l=q(n.accent,r,r.colors.primary),c=n.size==="sm"?20:n.size==="lg"?36:28,p=i.bindings.value,u=e("span",{class:a==="design"&&p?"bp-cell--bound":void 0,title:p?.expr},n.value===void 0||n.value===null||n.value===""?"\u2014":String(n.value)),d=null,m=n.trend;if(m!=null&&m!==""){let f=Number(m),b=Number.isFinite(f)?f>=0:!0,h=n.trendFormat==="percent"&&Number.isFinite(f)?`${f>0?"+":""}${new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:1}).format(f)}`:n.trendFormat==="number"&&Number.isFinite(f)?`${f>0?"+":""}${new Intl.NumberFormat(s.locale,{maximumFractionDigits:2}).format(f)}`:String(m),x=i.bindings.trend,R=b?r.colors.success??"#1E8E5A":r.colors.danger??"#C0392B";d=e("span",{class:["bp-kpi__trend",b?"bp-kpi__trend--up":"bp-kpi__trend--down",a==="design"&&x?"bp-cell--bound":""],title:x?.expr,style:{color:R,"font-weight":"600","font-size":`${Math.round(c*.9)}px`,display:"inline-flex","align-items":"center",gap:"4px",height:`${Math.round(c*1.05)}px`}},xo(b?"up":"down",Math.max(9,Math.round(c*.55)),R),e("span",null,h))}return e("div",{class:"bp-kpi",style:O({...t,"text-align":n.align,"border-top":t.border?void 0:`3px solid ${l}`,"padding-top":t.padding?void 0:"8px"})},e("div",{class:"bp-kpi__label",style:{color:r.colors.mutedText,"font-size":"0.9em","text-transform":"uppercase","letter-spacing":"0.05em","font-weight":"600",display:"flex",gap:"6px","align-items":"center","justify-content":n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start","flex-wrap":"wrap"}},o("label"),a==="design"&&p?e("span",{class:"bp-token","data-expr":p.expr,style:{"text-transform":"none","letter-spacing":"0","font-weight":"500"}},p.label):null),e("div",{class:"bp-kpi__value",style:{"font-size":`${c}px`,"font-weight":"700","line-height":"1.15",color:r.colors.text,"font-family":r.typography.headingFont,"letter-spacing":"-0.02em","margin-top":"4px",display:"flex","align-items":"baseline",gap:"8px","justify-content":n.align==="center"?"center":n.align==="right"?"flex-end":"flex-start","flex-wrap":"wrap"}},u,d),n.caption?e("div",{class:"bp-kpi__caption",style:{color:r.colors.mutedText,"font-size":"0.9em","margin-top":"3px"}},o("caption")):null)}}),Ao=z({type:"signature",name:"Signature",description:"Signature line with name and date",category:"content",icon:"pen-line",keywords:["sign","approval"],defaultProps:{label:"Signed",name:"",role:"",showDate:!0,lineWidth:240},defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","flow"],inspector:[{title:"Signature",fields:[{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"name",label:"Name",placeholder:"{{ adviser.name }}"},{kind:"text",prop:"role",label:"Role"},{kind:"toggle",prop:"showDate",label:"Date line"},{kind:"number",prop:"lineWidth",label:"Line width",min:80,max:600,unit:"px"}]}],render:({h:e,css:t,props:n,theme:r,text:o})=>{let a=(i,s)=>e("div",{style:{width:`${n.lineWidth}px`,"max-width":"100%"}},e("div",{style:{height:"36px","border-bottom":`1px solid ${r.colors.text}`}}),e("div",{style:{"font-size":"0.85em",color:r.colors.mutedText,"margin-top":"4px"}},i),s.length?e("div",{style:{"font-weight":"600","margin-top":"2px"}},s):null);return e("div",{class:"bp-signature",style:O({...t,display:"flex",gap:"32px","flex-wrap":"wrap"})},a(n.label||"Signed",[...o("name"),...n.role?[e("div",{style:{"font-weight":"400",color:r.colors.mutedText}},o("role"))]:[]]),n.showDate?a("Date",[]):null)}}),Do=z({type:"date",name:"Date",description:"Today's date or a bound date field",category:"content",icon:"calendar",keywords:["today","generated","date"],defaultProps:{source:"now",value:"",pattern:"d MMMM yyyy",prefix:""},defaultTextStyle:"body",split:"none",styleGroups:["textStyle","typography","alignment","spacing","flow"],inspector:[{title:"Date",fields:[{kind:"segmented",prop:"source",label:"Source",options:[{value:"now",label:"Today"},{value:"binding",label:"Field"}]},{kind:"binding",prop:"value",label:"Date field",valueType:["date","datetime"],when:e=>e.source==="binding"},{kind:"text",prop:"pattern",label:"Format",placeholder:"d MMMM yyyy",allowTokens:!1},{kind:"text",prop:"prefix",label:"Prefix",placeholder:"Prepared on "}]}],render:({h:e,css:t,props:n,format:r,text:o,mode:a,node:i})=>{let s=n.source==="now"?r.now??new Date:n.value,l=i.bindings.value,c=a==="design"&&n.source==="binding"&&l?e("span",{class:"bp-token","data-expr":l.expr},l.label):Ge(s,n.pattern||void 0,r);return e("div",{class:"bp-date",style:O(t)},o("prefix"),c)}}),Io=z({type:"pageNumber",name:"Page number",category:"content",icon:"hash",keywords:["page","of","footer","numbering"],defaultProps:{format:"Page {{page.number}} of {{page.total}}",align:"right"},defaultTextStyle:"caption",split:"none",styleGroups:["textStyle","typography","spacing"],inspector:[{title:"Page number",fields:[{kind:"text",prop:"format",label:"Format",placeholder:"Page {{page.number}} of {{page.total}}"},Xe]}],render:({h:e,css:t,props:n,text:r})=>e("div",{class:"bp-page-number",style:O({...t,"text-align":n.align})},r("format"))}),Bo=z({type:"timestamp",name:"Generated at",description:"Date and time the document was generated",category:"content",icon:"clock",keywords:["generated","printed","timestamp","time"],defaultProps:{prefix:"Generated ",pattern:"d MMM yyyy, HH:mm",align:"left"},defaultTextStyle:"caption",split:"none",styleGroups:["textStyle","typography","spacing"],inspector:[{title:"Generated at",fields:[{kind:"text",prop:"prefix",label:"Prefix"},{kind:"text",prop:"pattern",label:"Format",allowTokens:!1},Xe]}],render:({h:e,css:t,props:n,format:r,text:o})=>e("div",{class:"bp-timestamp",style:O({...t,"text-align":n.align})},o("prefix"),Ge(r.now??new Date,n.pattern||void 0,r,!0))});var Eo=z({type:"container",name:"Container",description:"Groups blocks with shared padding and background",category:"layout",icon:"square-dashed",keywords:["group","box","wrapper"],defaultProps:{padding:0,gap:null},container:{accepts:["@blocks","@rows"]},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Container",fields:[{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"},{kind:"number",prop:"gap",label:"Block gap",min:0,max:120,unit:"px",description:"Overrides the document block gap"}]}],render:({h:e,css:t,children:n,styles:r,props:o,node:a,mode:i})=>e("div",{class:"bp-container",style:O({...t,padding:o.padding?`${o.padding}px`:t.padding})},e("div",{class:"bp-stack",style:{gap:`${o.gap??r.spacing.blockGap}px`},"data-dropzone":a.nodeId},n.length===0&&i==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}),Oo=z({type:"card",name:"Card",description:"Panel with border, background and optional title",category:"layout",icon:"panel-top",keywords:["panel","box","surface"],defaultProps:{title:"",padding:null,accent:!1,accentColor:"$colors.primary"},container:{accepts:["@blocks","@rows"]},defaultFlow:{keepTogether:!0},split:"children",styleGroups:["spacing","background","border","flow"],inspector:[{title:"Card",fields:[{kind:"text",prop:"title",label:"Title"},{kind:"number",prop:"padding",label:"Padding",min:0,max:120,unit:"px"},{kind:"toggle",prop:"accent",label:"Accent bar"},{kind:"color",prop:"accentColor",label:"Accent colour",when:e=>!!e.accent}]}],canvas:{label:e=>e.title||"Card"},render:({h:e,css:t,children:n,styles:r,props:o,theme:a,text:i,node:s,mode:l})=>{let c=r.card,p=o.padding??c.padding??16,u={...t,background:t.background??q(c.background,a,a.colors.surface),border:t.border??`${c.borderWidth??1}px solid ${q(c.borderColor,a,a.colors.border)}`,"border-radius":t["border-radius"]??`${c.borderRadius??a.radius??6}px`,padding:`${p}px`,"box-shadow":c.shadow?"0 1px 2px rgba(16,24,40,0.06), 0 1px 3px rgba(16,24,40,0.1)":void 0,"border-top":o.accent?`3px solid ${q(o.accentColor,a,a.colors.primary)}`:void 0};return e("div",{class:"bp-card",style:O(u)},o.title?e("div",{class:"bp-card__title",style:{"font-family":a.typography.headingFont,"font-weight":"600","font-size":"1.1em","margin-bottom":"8px",color:a.colors.primary}},i("title")):null,e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":s.nodeId},n.length===0&&l==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}}),Vo=z({type:"pageBreak",name:"Page break",description:"Start the following content on a new page",category:"layout",icon:"scissors",keywords:["break","new page"],defaultProps:{},defaultFlow:{breakAfter:"page"},split:"none",styleGroups:[],render:({h:e,mode:t})=>t==="design"?e("div",{class:"bp-page-break"},e("span",{class:"bp-page-break__label"},"Page break")):e("div",{class:"bp-page-break bp-page-break--print",style:{height:"0"}})}),Lo=z({type:"keepTogether",name:"Keep together",description:"Blocks inside never split across pages",category:"layout",icon:"link",keywords:["group","no split","together"],defaultProps:{label:""},container:{accepts:["@blocks","@rows"]},defaultFlow:{keepTogether:!0},split:"children",styleGroups:["spacing","flow"],render:({h:e,css:t,children:n,styles:r,node:o,mode:a})=>e("div",{class:"bp-keep-together",style:O(t)},e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":o.nodeId},n.length===0&&a==="design"?e("div",{class:"bp-empty-column"},"Drop blocks here"):n))}),jo=z({type:"conditional",name:"Conditional",description:"Show the blocks inside only when a rule is true",category:"data",icon:"git-branch",keywords:["if","condition","rule","visibility","show when"],defaultProps:()=>({condition:{op:"and",rules:[]},label:""}),container:{accepts:["@blocks","@rows"],conditional:{conditionProp:"condition"}},split:"children",styleGroups:["spacing","flow"],bindings:[{prop:"condition",kind:"condition"}],inspector:[{title:"Show when",fields:[{kind:"condition",prop:"condition",label:"Rule",fullWidth:!0}]}],canvas:{label:e=>e.label||"Conditional"},render:({h:e,css:t,children:n,styles:r,props:o,node:a,mode:i})=>{let s=o.__conditionResult!==!1;return i==="preview"&&!s?null:e("div",{class:["bp-conditional",!s&&"bp-conditional--false"],style:O(t)},i==="design"?e("div",{class:"bp-conditional__badge",contenteditable:"false"},s?"Shown when rule is true":"Hidden with sample data"):null,e("div",{class:"bp-stack",style:{gap:`${r.spacing.blockGap}px`},"data-dropzone":a.nodeId},n.length===0&&i==="design"?e("div",{class:"bp-empty-column"},"Drop conditional blocks here"):n))}}),zo=z({type:"repeater",name:"Repeater",description:"Repeats the blocks inside for every item in a list",category:"data",icon:"repeat",keywords:["loop","for each","list","items"],defaultProps:{source:"",alias:"item",keepItemTogether:!0,gap:null,limit:null,emptyMessage:"",separator:!1},container:{accepts:["@blocks","@rows"],repeat:{collectionProp:"source",aliasProp:"alias",keepItemTogetherProp:"keepItemTogether",limitProp:"limit"}},split:"children",styleGroups:["spacing","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"emptyMessage",kind:"template"}],inspector:[{title:"Repeat",fields:[{kind:"collection",prop:"source",label:"For each item in",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Item name",description:e=>`The name each item goes by inside the repeater, e.g. {{ ${typeof e.alias=="string"&&e.alias.trim()?e.alias.trim():"item"}.name }}`,allowTokens:!1},{kind:"toggle",prop:"keepItemTogether",label:"Keep each item on one page"},{kind:"toggle",prop:"separator",label:"Divider between items"},{kind:"number",prop:"gap",label:"Gap between items",min:0,max:120,unit:"px"},{kind:"number",prop:"limit",label:"Maximum items",min:1,max:1e4},{kind:"text",prop:"emptyMessage",label:"Message when empty",description:"Printed instead of the items when the list is empty.",fullWidth:!0}]}],canvas:{label:e=>e.source?`Repeat ${e.source}`:"Repeater"},render:({h:e,css:t,children:n,styles:r,props:o,node:a,mode:i,theme:s,text:l})=>{let c=Number(o.__itemCount??0),p=a.bindings.source;if(n.length===0&&i==="preview")return o.emptyMessage?e("div",{class:"bp-repeater__empty",style:O({...t,color:s.colors.mutedText})},l("emptyMessage")):null;let u=o.gap??r.spacing.blockGap,d=o.separator?n.flatMap((m,f)=>f===0?[m]:[e("div",{class:"bp-repeater__separator",style:{"border-top":`1px solid ${s.colors.border}`}}),m]):n;return e("div",{class:"bp-repeater",style:O(t)},i==="design"?e("div",{class:"bp-repeater__badge",contenteditable:"false"},p?`${p.label} \xB7 ${n.length>=c?`repeats ${c} time${c===1?"":"s"}`:`showing ${n.length} of ${c} sample items`}`:"Choose a list to repeat over"):null,e("div",{class:"bp-stack bp-repeater__items",style:{gap:`${u}px`},"data-dropzone":a.nodeId},d.length===0&&i==="design"?e("div",{class:"bp-empty-column"},"Drop blocks to repeat here"):d))}});function Bn(){return[{id:"c1",header:"Name",value:"row.name",width:null},{id:"c2",header:"Value",value:"row.value | number",align:"right",width:30,total:"sum"}]}function $a(e,t){let n=Object.entries(e).filter(([,a])=>a.type!=="object"&&a.type!=="array"),r=[],o=0;for(let[a,i]of n){o++;let s=i.type==="number"||i.type==="currency"||i.type==="percent",l={id:`c${o}`,header:i.label??a,value:Mn(`${t}.${a}`,i),width:null};if(s&&(l.align="right"),i.type==="currency"||i.type==="number"){l.total="sum";let c=Et(i);c&&(l.totalFormat=c)}r.push(l)}return r.length?r.slice(0,12):Bn()}function Ra(e){let n=(e.split(" \u203A ").pop()??e).replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).filter(Boolean);if(!n.length)return"row";let r=i=>/ies$/i.test(i)?`${i.slice(0,-3)}y`:/(sses|xes|zes|ches|shes)$/i.test(i)?i.slice(0,-2):/[^s]s$/i.test(i)?i.slice(0,-1):i,a=[...n.slice(0,-1),r(n[n.length-1])].map((i,s)=>s===0?i.toLowerCase():i[0].toUpperCase()+i.slice(1).toLowerCase()).join("");return/^[A-Za-z_$][\w$]*$/.test(a)?a:"row"}function Ho(e){let t=e.alias;return typeof t=="string"&&t.trim()?t.trim():"row"}function Pa(e,t){if(!e||e==="*")return"Every column";let n=(t.columns??[]).find(r=>r.id===e);return n?.header||n?.value||e}var Go=z({type:"table",name:"Table",description:"Data table bound to a list, with totals, zebra rows and page-spanning headers",category:"data",icon:"table",keywords:["grid","rows","columns","data","list"],defaultProps:()=>({source:"",alias:"row",columns:Bn(),showHeader:!0,repeatHeader:!0,zebra:!0,borders:"inherit",compact:!1,fontSize:null,headerBackground:"",headerColor:"",sortBy:"",sortDir:"asc",emptyMessage:"No data",totalsLabel:"Total",conditionalFormats:[],designRows:3,rowLimit:null}),defaultTextStyle:"body",defaultFlow:{minOrphans:2,minWidows:2},split:"rows",measure:"table",styleGroups:["typography","spacing","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"columns",kind:"list",items:[{prop:"value",kind:"value",perItem:!0},{prop:"header",kind:"template"},{prop:"totalExpr",kind:"value"}]},{prop:"conditionalFormats",kind:"list",items:[{prop:"condition",kind:"value",perItem:!0}]},{prop:"emptyMessage",kind:"template"},{prop:"totalsLabel",kind:"template"}],inspector:[{title:"Data",fields:[{kind:"collection",prop:"source",label:"Rows from",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Row name",description:e=>`The name each row goes by in column values, e.g. ${Ho(e)}.name`,allowTokens:!1},{kind:"text",prop:"sortBy",label:"Sort by field",placeholder:"e.g. value",allowTokens:!1},{kind:"segmented",prop:"sortDir",label:"Direction",options:[{value:"asc",label:"Ascending"},{value:"desc",label:"Descending"}],when:e=>!!e.sortBy},{kind:"number",prop:"rowLimit",label:"Maximum rows",min:1,max:1e5},{kind:"text",prop:"emptyMessage",label:"Message when empty",description:"Printed instead of the table when the list has no rows.",fullWidth:!0}]},{title:"Columns",fields:[{kind:"columns",prop:"columns",label:"Columns",fullWidth:!0}]},{title:"Appearance",collapsed:!0,fields:[{kind:"toggle",prop:"showHeader",label:"Header row"},{kind:"toggle",prop:"repeatHeader",label:"Repeat header on each page",when:e=>e.showHeader!==!1},{kind:"toggle",prop:"zebra",label:"Zebra rows"},{kind:"toggle",prop:"compact",label:"Compact rows"},{kind:"select",prop:"borders",label:"Borders",options:[{value:"inherit",label:"Document default"},{value:"horizontal",label:"Horizontal lines"},{value:"all",label:"Full grid"},{value:"outer",label:"Outer only"},{value:"none",label:"None"}]},{kind:"color",prop:"headerBackground",label:"Header background",allowTransparent:!0},{kind:"color",prop:"headerColor",label:"Header text"},{kind:"number",prop:"fontSize",label:"Font size",min:6,max:24,unit:"px"},{kind:"text",prop:"totalsLabel",label:"Totals label"}]},{title:"Conditional formatting",collapsed:!0,fields:[{kind:"list",prop:"conditionalFormats",label:"Rules",itemLabel:"Rule",fullWidth:!0,itemSummary:(e,t,n)=>{let r=Pa(String(e.columnId??""),n),o=String(e.condition??"").trim();return o?`${r} \xB7 when ${o}`:`${r} \xB7 Rule ${t+1}`},fields:[{kind:"select",prop:"columnId",label:"Column",optionsFrom:e=>[{value:"*",label:"Every column"},...(e.columns??[]).map(t=>({value:t.id,label:t.header||t.id}))]},{kind:"expression",prop:"condition",label:"When",placeholder:"row.value < 0",description:e=>`Checked once per row, e.g. ${Ho(e)}.value < 0`},{kind:"color",prop:"color",label:"Text colour"},{kind:"color",prop:"background",label:"Background",allowTransparent:!0},{kind:"toggle",prop:"bold",label:"Bold"}]}]}],validate:({props:e,checkExpression:t})=>{let n=[];(!Array.isArray(e.columns)||e.columns.length===0)&&n.push({severity:"warning",code:"empty-content",message:"Table has no columns",prop:"columns"});for(let r of e.columns??[])r.value?.trim()||n.push({severity:"warning",code:"missing-required",message:`Column "${r.header||r.id}" has no value`,prop:`columns.${r.id}.value`});for(let r of e.columns??[])r.totalExpr?.trim()&&n.push(...t(r.totalExpr,`columns.${r.id}.totalExpr`));return n},fromField:({expr:e,schema:t,label:n})=>{if(t.type!=="array")return;let r=Ra(n),o=t.itemSchema?.type==="object"?t.itemSchema.fields:void 0;return{source:e,alias:r,columns:o?$a(o,r):Bn()}},canvas:{label:e=>e.source?`Table \xB7 ${e.source}`:"Table"},resolve:({props:e,mode:t,evaluateIn:n,evaluate:r,warn:o,theme:a})=>{let i=e.alias||"row",s=Array.isArray(e.source)?e.source:[];if(e.sortBy){let f=e.sortDir==="desc"?-1:1;s=[...s].sort((b,h)=>We(be(b,e.sortBy),be(h,e.sortBy))*f)}let l=s.length;e.rowLimit&&(s=s.slice(0,e.rowLimit));let c=s;t==="design"&&(s=s.slice(0,Math.max(1,e.designRows||3)));let p=Array.isArray(e.columns)?e.columns:[],u=Array.isArray(e.conditionalFormats)?e.conditionalFormats:[],d=s.map((f,b)=>{let h={[i]:f,item:f,row:f,index:b+1,first:b===0,last:b===s.length-1,count:s.length},x={},R={};for(let g of u){if(!g.condition?.trim())continue;let P=!1;try{P=!!n(g.condition,h)}catch{P=!1}if(!P)continue;let T={};g.color&&(T.color=q(g.color,a,a.colors.text)),g.background&&(T.background=q(g.background,a,"transparent")),g.bold&&(T["font-weight"]="700"),g.columnId==="*"||!g.columnId?Object.assign(x,T):R[g.columnId]={...R[g.columnId]??{},...T}}return{cells:p.map(g=>{let P="";if(g.value?.trim())try{P=A(n(g.value,h))}catch(T){o(`Column "${g.header}" failed: ${T.message}`)}return{text:P,style:R[g.id]}}),style:Object.keys(x).length?x:void 0}}),m=null;return p.some(f=>f.total&&f.total!=="none"||f.totalExpr?.trim())&&(m=p.map((f,b)=>{if(f.totalExpr?.trim())try{return{text:A(n(f.totalExpr,{rows:c,[i+"s"]:c}))}}catch{return{text:""}}if(!f.total||f.total==="none")return{text:b===0&&!p[0]?.total?String(e.totalsLabel??"Total"):""};let h=c.map(g=>H(n(Ca(f.value),{[i]:g,item:g,row:g}))).filter(g=>g!==null),x=null;f.total==="sum"?x=h.reduce((g,P)=>g+P,0):f.total==="avg"?x=h.length?h.reduce((g,P)=>g+P,0)/h.length:null:f.total==="count"?x=c.length:f.total==="min"?x=h.length?Math.min(...h):null:f.total==="max"&&(x=h.length?Math.max(...h):null);let R=f.totalFormat?.trim()||Na(f.value);return{text:x===null?"":R?A(r(`(${x}) | ${R}`)):A(x)}}),m[0]&&m[0].text===""&&!(p[0]?.total&&p[0].total!=="none")&&(m[0]={text:String(e.totalsLabel??"Total")})),{__rows:d,__totals:m,__rowCount:l,__rowsShown:d.length}},render:({h:e,css:t,props:n,theme:r,styles:o,mode:a,text:i,node:s,style:l})=>{let c=n,p=Array.isArray(c.columns)?c.columns:[],u=o.table,d=c.fontSize??u.fontSize??l.fontSize,m=c.borders==="inherit"?u.borders??"horizontal":c.borders,f=q(u.borderColor,r,r.colors.border),b=u.borderWidth??1,h=c.compact?Math.max(2,(u.cellPaddingY??6)-3):u.cellPaddingY??6,x=u.cellPaddingX??8,R=c.headerBackground?q(c.headerBackground,r,""):q(u.headerBackground,r,r.table?.headerBackground??"#F3F4F6"),w=c.headerColor?q(c.headerColor,r,""):q(u.headerColor,r,R&&Ue(R)?"#FFFFFF":r.colors.text),g=q(u.zebraBackground,r,r.table?.zebraBackground??"#FAFAFB"),P=(M,N)=>{let D=`${b}px solid ${f}`;switch(m){case"all":return{border:D};case"horizontal":return{"border-bottom":D,...M?{"border-bottom":`${b*2}px solid ${f}`}:{}};case"outer":return{};default:return{}}},T=c.__rows??[],C=T.map((M,N)=>e("tr",{class:["bp-table__row",c.zebra&&N%2===1&&"bp-table__row--alt"],style:{...c.zebra&&N%2===1?{background:g}:{},...M.style??{}}},M.cells.map((D,U)=>{let j=p[U];return e("td",{class:["bp-table__cell",a==="design"&&"bp-cell--bound"],style:{padding:`${h}px ${x}px`,"text-align":j?.align??"left","font-weight":j?.bold?"600":void 0,"vertical-align":"top","white-space":j?.wrap===!1?"nowrap":"normal",overflow:"hidden","text-overflow":"ellipsis",...P(!1,N===T.length-1),...D.style??{}}},D.text)}))),I=p.reduce((M,N)=>M+(N.width??0),0),W=p.filter(M=>!M.width).length,B=W?Math.max(5,(100-I)/W):0,E=e("colgroup",null,p.map(M=>e("col",{style:{width:`${M.width??B}%`}}))),y=c.showHeader!==!1?e("thead",{class:"bp-table__head"},e("tr",null,p.map(M=>e("th",{class:"bp-table__th",style:{padding:`${h}px ${x}px`,"text-align":M.align??"left",background:R||void 0,color:w,"font-weight":String(u.headerFontWeight??600),"vertical-align":"bottom",...P(!0,!1)}},...i(`columns.${p.indexOf(M)}.header`,M.header))))):null,k=c.__totals?e("tfoot",{class:"bp-table__foot"},e("tr",null,c.__totals.map((M,N)=>e("td",{class:"bp-table__total",style:{padding:`${h}px ${x}px`,"text-align":p[N]?.align??"left","font-weight":"700","border-top":`${b*2}px solid ${f}`,...m==="all"?{border:`${b}px solid ${f}`}:{}}},M.text)))):null,$=T.length===0,_={width:"100%","border-collapse":"collapse","table-layout":"fixed","font-size":`${d}px`,...m==="outer"?{border:`${b}px solid ${f}`}:{}},S=s.bindings.source;return e("div",{class:"bp-table-wrap",style:O(t)},a==="design"?e("div",{class:"bp-table__badge",contenteditable:"false"},S?`${S.label} \xB7 ${Ma(c.__rowsShown??0,c.__rowCount??0)}`:"Choose a list"):null,e("table",{class:"bp-table",style:_},E,y,e("tbody",null,$?e("tr",null,e("td",{colspan:String(Math.max(1,p.length)),style:{padding:`${h*2}px ${x}px`,color:r.colors.mutedText,"text-align":"center","font-style":"italic"}},...i("emptyMessage","No data"))):C),k))}});function Ma(e,t){return t===0?"no rows":e>=t?`${t} row${t===1?"":"s"}`:`showing ${e} of ${t} sample rows`}function Ca(e){let t=e.indexOf("|");return t<0||e[t+1]==="|"?e:e.slice(0,t).trim()}function Na(e){let t=e.indexOf("|");return t<0||e[t+1]==="|"?"":e.slice(t+1).trim()}var Wo=z({type:"keyValueList",name:"Key / value list",description:"A list of labelled values",category:"data",icon:"list",keywords:["details","properties","definition list","summary"],defaultProps:()=>({items:[{id:"k1",label:"Name",value:""},{id:"k2",label:"Reference",value:""}],layout:"inline",labelWidth:35,dividers:!0,columns:1}),defaultTextStyle:"body",split:"none",styleGroups:["typography","spacing","background","border","flow"],bindings:[{prop:"items",kind:"list",items:[{prop:"label",kind:"template"},{prop:"value",kind:"template"}]}],inspector:[{title:"Items",fields:[{kind:"keyValues",prop:"items",label:"Items",fullWidth:!0},{kind:"segmented",prop:"layout",label:"Layout",options:[{value:"inline",label:"Inline"},{value:"stacked",label:"Stacked"},{value:"grid",label:"Grid"}]},{kind:"number",prop:"columns",label:"Columns",min:1,max:4,when:e=>e.layout==="grid"},{kind:"number",prop:"labelWidth",label:"Label width",min:10,max:80,unit:"%",when:e=>e.layout==="inline"},{kind:"toggle",prop:"dividers",label:"Dividers"}]}],render:({h:e,css:t,props:n,theme:r,text:o})=>{let a=Array.isArray(n.items)?n.items:[],i=n.dividers?`1px solid ${r.colors.border}`:void 0;return n.layout==="grid"?e("div",{class:"bp-kv bp-kv--grid",style:O({...t,display:"grid","grid-template-columns":`repeat(${n.columns||2}, minmax(0, 1fr))`,gap:"10px 16px"})},a.map((s,l)=>e("div",{class:"bp-kv__item"},e("div",{class:"bp-kv__label",style:{color:r.colors.mutedText,"font-size":"0.85em","text-transform":"uppercase","letter-spacing":"0.04em","font-weight":"600"}},o(`items.${l}.label`,s.label)),e("div",{class:"bp-kv__value",style:{"font-weight":"500"}},o(`items.${l}.value`,s.value||"\u2014"))))):e("div",{class:["bp-kv",`bp-kv--${n.layout}`],style:O(t)},a.map((s,l)=>n.layout==="inline"?e("div",{class:"bp-kv__row",style:{display:"flex",gap:"8px",padding:"5px 0","border-bottom":l<a.length-1?i:void 0}},e("div",{class:"bp-kv__label",style:{flex:`0 0 ${n.labelWidth}%`,color:r.colors.mutedText}},o(`items.${l}.label`,s.label)),e("div",{class:"bp-kv__value",style:{flex:"1","min-width":"0","font-weight":"500"}},o(`items.${l}.value`,s.value||"\u2014"))):e("div",{class:"bp-kv__row",style:{padding:"5px 0","border-bottom":l<a.length-1?i:void 0}},e("div",{class:"bp-kv__label",style:{color:r.colors.mutedText,"font-size":"0.85em"}},o(`items.${l}.label`,s.label)),e("div",{class:"bp-kv__value",style:{"font-weight":"500"}},o(`items.${l}.value`,s.value||"\u2014")))))}});function De(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function En(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Lt(e){let t,n,r;e.length!==2?(t=De,n=(s,l)=>De(e(s),l),r=(s,l)=>e(s)-l):(t=e===De||e===En?e:Fa,n=e,r=e);function o(s,l,c=0,p=s.length){if(c<p){if(t(l,l)!==0)return p;do{let u=c+p>>>1;n(s[u],l)<0?c=u+1:p=u}while(c<p)}return c}function a(s,l,c=0,p=s.length){if(c<p){if(t(l,l)!==0)return p;do{let u=c+p>>>1;n(s[u],l)<=0?c=u+1:p=u}while(c<p)}return c}function i(s,l,c=0,p=s.length){let u=o(s,l,c,p-1);return u>c&&r(s[u-1],l)>-r(s[u],l)?u-1:u}return{left:o,center:i,right:a}}function Fa(){return 0}function On(e){return e===null?NaN:+e}var qo=Lt(De),Uo=qo.right,_a=qo.left,Aa=Lt(On).center,Vn=Uo;var Ye=class extends Map{constructor(t,n=Ba){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(let[r,o]of t)this.set(r,o)}get(t){return super.get(Zo(this,t))}has(t){return super.has(Zo(this,t))}set(t,n){return super.set(Da(this,t),n)}delete(t){return super.delete(Ia(this,t))}};function Zo({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function Da({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Ia({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Ba(e){return e!==null&&typeof e=="object"?e.valueOf():e}var Ea=Math.sqrt(50),Oa=Math.sqrt(10),Va=Math.sqrt(2);function jt(e,t,n){let r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),a=r/Math.pow(10,o),i=a>=Ea?10:a>=Oa?5:a>=Va?2:1,s,l,c;return o<0?(c=Math.pow(10,-o)/i,s=Math.round(e*c),l=Math.round(t*c),s/c<e&&++s,l/c>t&&--l,c=-c):(c=Math.pow(10,o)*i,s=Math.round(e/c),l=Math.round(t/c),s*c<e&&++s,l*c>t&&--l),l<s&&.5<=n&&n<2?jt(e,t,n*2):[s,l,c]}function zt(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[o,a,i]=r?jt(t,e,n):jt(e,t,n);if(!(a>=o))return[];let s=a-o+1,l=new Array(s);if(r)if(i<0)for(let c=0;c<s;++c)l[c]=(a-c)/-i;else for(let c=0;c<s;++c)l[c]=(a-c)*i;else if(i<0)for(let c=0;c<s;++c)l[c]=(o+c)/-i;else for(let c=0;c<s;++c)l[c]=(o+c)*i;return l}function mt(e,t,n){return t=+t,e=+e,n=+n,jt(e,t,n)[2]}function Ln(e,t,n){t=+t,e=+e,n=+n;let r=t<e,o=r?mt(t,e,n):mt(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}function Ht(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(o);++r<o;)a[r]=e+r*n;return a}function Je(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var Ko=Symbol("implicit");function Gt(){var e=new Ye,t=[],n=[],r=Ko;function o(a){let i=e.get(a);if(i===void 0){if(r!==Ko)return r;e.set(a,i=t.push(a)-1)}return n[i%n.length]}return o.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Ye;for(let i of a)e.has(i)||e.set(i,t.push(i)-1);return o},o.range=function(a){return arguments.length?(n=Array.from(a),o):n.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.copy=function(){return Gt(t,n).unknown(r)},Je.apply(o,arguments),o}function ve(){var e=Gt().unknown(void 0),t=e.domain,n=e.range,r=0,o=1,a,i,s=!1,l=0,c=0,p=.5;delete e.unknown;function u(){var d=t().length,m=o<r,f=m?o:r,b=m?r:o;a=(b-f)/Math.max(1,d-l+c*2),s&&(a=Math.floor(a)),f+=(b-f-a*(d-l))*p,i=a*(1-l),s&&(f=Math.round(f),i=Math.round(i));var h=Ht(d).map(function(x){return f+a*x});return n(m?h.reverse():h)}return e.domain=function(d){return arguments.length?(t(d),u()):t()},e.range=function(d){return arguments.length?([r,o]=d,r=+r,o=+o,u()):[r,o]},e.rangeRound=function(d){return[r,o]=d,r=+r,o=+o,s=!0,u()},e.bandwidth=function(){return i},e.step=function(){return a},e.round=function(d){return arguments.length?(s=!!d,u()):s},e.padding=function(d){return arguments.length?(l=Math.min(1,c=+d),u()):l},e.paddingInner=function(d){return arguments.length?(l=Math.min(1,d),u()):l},e.paddingOuter=function(d){return arguments.length?(c=+d,u()):c},e.align=function(d){return arguments.length?(p=Math.max(0,Math.min(1,d)),u()):p},e.copy=function(){return ve(t(),[r,o]).round(s).paddingInner(l).paddingOuter(c).align(p)},Je.apply(u(),arguments)}function Xo(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return Xo(t())},e}function jn(){return Xo(ve.apply(null,arguments).paddingInner(1))}function Wt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function zn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function yt(){}var gt=.7,Zt=1/gt,Qe="\\s*([+-]?\\d+)\\s*",ht="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",La=/^#([0-9a-f]{3,8})$/,ja=new RegExp(`^rgb\\(${Qe},${Qe},${Qe}\\)$`),za=new RegExp(`^rgb\\(${ge},${ge},${ge}\\)$`),Ha=new RegExp(`^rgba\\(${Qe},${Qe},${Qe},${ht}\\)$`),Ga=new RegExp(`^rgba\\(${ge},${ge},${ge},${ht}\\)$`),Wa=new RegExp(`^hsl\\(${ht},${ge},${ge}\\)$`),qa=new RegExp(`^hsla\\(${ht},${ge},${ge},${ht}\\)$`),Yo={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Wt(yt,Pe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Jo,formatHex:Jo,formatHex8:Ua,formatHsl:Za,formatRgb:Qo,toString:Qo});function Jo(){return this.rgb().formatHex()}function Ua(){return this.rgb().formatHex8()}function Za(){return ii(this).formatHsl()}function Qo(){return this.rgb().formatRgb()}function Pe(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=La.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?ei(t):n===3?new ae(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?qt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?qt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ja.exec(e))?new ae(t[1],t[2],t[3],1):(t=za.exec(e))?new ae(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Ha.exec(e))?qt(t[1],t[2],t[3],t[4]):(t=Ga.exec(e))?qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Wa.exec(e))?ri(t[1],t[2]/100,t[3]/100,1):(t=qa.exec(e))?ri(t[1],t[2]/100,t[3]/100,t[4]):Yo.hasOwnProperty(e)?ei(Yo[e]):e==="transparent"?new ae(NaN,NaN,NaN,0):null}function ei(e){return new ae(e>>16&255,e>>8&255,e&255,1)}function qt(e,t,n,r){return r<=0&&(e=t=n=NaN),new ae(e,t,n,r)}function Ka(e){return e instanceof yt||(e=Pe(e)),e?(e=e.rgb(),new ae(e.r,e.g,e.b,e.opacity)):new ae}function et(e,t,n,r){return arguments.length===1?Ka(e):new ae(e,t,n,r??1)}function ae(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Wt(ae,et,zn(yt,{brighter(e){return e=e==null?Zt:Math.pow(Zt,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?gt:Math.pow(gt,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ae(Be(this.r),Be(this.g),Be(this.b),Kt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ti,formatHex:ti,formatHex8:Xa,formatRgb:ni,toString:ni}));function ti(){return`#${Ie(this.r)}${Ie(this.g)}${Ie(this.b)}`}function Xa(){return`#${Ie(this.r)}${Ie(this.g)}${Ie(this.b)}${Ie((isNaN(this.opacity)?1:this.opacity)*255)}`}function ni(){let e=Kt(this.opacity);return`${e===1?"rgb(":"rgba("}${Be(this.r)}, ${Be(this.g)}, ${Be(this.b)}${e===1?")":`, ${e})`}`}function Kt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Be(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ie(e){return e=Be(e),(e<16?"0":"")+e.toString(16)}function ri(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ue(e,t,n,r)}function ii(e){if(e instanceof ue)return new ue(e.h,e.s,e.l,e.opacity);if(e instanceof yt||(e=Pe(e)),!e)return new ue;if(e instanceof ue)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(t===a?i=(n-r)/s+(n<r)*6:n===a?i=(r-t)/s+2:i=(t-n)/s+4,s/=l<.5?a+o:2-a-o,i*=60):s=l>0&&l<1?0:i,new ue(i,s,l,e.opacity)}function ai(e,t,n,r){return arguments.length===1?ii(e):new ue(e,t,n,r??1)}function ue(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Wt(ue,ai,zn(yt,{brighter(e){return e=e==null?Zt:Math.pow(Zt,e),new ue(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?gt:Math.pow(gt,e),new ue(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new ae(Hn(e>=240?e-240:e+120,o,r),Hn(e,o,r),Hn(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new ue(oi(this.h),Ut(this.s),Ut(this.l),Kt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Kt(this.opacity);return`${e===1?"hsl(":"hsla("}${oi(this.h)}, ${Ut(this.s)*100}%, ${Ut(this.l)*100}%${e===1?")":`, ${e})`}`}}));function oi(e){return e=(e||0)%360,e<0?e+360:e}function Ut(e){return Math.max(0,Math.min(1,e||0))}function Hn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function Gn(e,t,n,r,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*n+(1+3*e+3*a-3*i)*r+i*o)/6}function si(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],a=e[r+1],i=r>0?e[r-1]:2*o-a,s=r<t-1?e[r+2]:2*a-o;return Gn((n-r/t)*t,i,o,a,s)}}function li(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),o=e[(r+t-1)%t],a=e[r%t],i=e[(r+1)%t],s=e[(r+2)%t];return Gn((n-r/t)*t,o,a,i,s)}}var bt=e=>()=>e;function Ya(e,t){return function(n){return e+n*t}}function Ja(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function ci(e){return(e=+e)==1?Xt:function(t,n){return n-t?Ja(t,n,e):bt(isNaN(t)?n:t)}}function Xt(e,t){var n=t-e;return n?Ya(e,n):bt(isNaN(e)?t:e)}var Wn=(function e(t){var n=ci(t);function r(o,a){var i=n((o=et(o)).r,(a=et(a)).r),s=n(o.g,a.g),l=n(o.b,a.b),c=Xt(o.opacity,a.opacity);return function(p){return o.r=i(p),o.g=s(p),o.b=l(p),o.opacity=c(p),o+""}}return r.gamma=e,r})(1);function pi(e){return function(t){var n=t.length,r=new Array(n),o=new Array(n),a=new Array(n),i,s;for(i=0;i<n;++i)s=et(t[i]),r[i]=s.r||0,o[i]=s.g||0,a[i]=s.b||0;return r=e(r),o=e(o),a=e(a),s.opacity=1,function(l){return s.r=r(l),s.g=o(l),s.b=a(l),s+""}}}var xp=pi(si),kp=pi(li);function ui(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(a){for(o=0;o<n;++o)r[o]=e[o]*(1-a)+t[o]*a;return r}}function di(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function fi(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),a=new Array(n),i;for(i=0;i<r;++i)o[i]=Ee(e[i],t[i]);for(;i<n;++i)a[i]=t[i];return function(s){for(i=0;i<r;++i)a[i]=o[i](s);return a}}function mi(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Me(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function gi(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=Ee(e[o],t[o]):r[o]=t[o];return function(a){for(o in n)r[o]=n[o](a);return r}}var Un=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,qn=new RegExp(Un.source,"g");function Qa(e){return function(){return e}}function es(e){return function(t){return e(t)+""}}function hi(e,t){var n=Un.lastIndex=qn.lastIndex=0,r,o,a,i=-1,s=[],l=[];for(e=e+"",t=t+"";(r=Un.exec(e))&&(o=qn.exec(t));)(a=o.index)>n&&(a=t.slice(n,a),s[i]?s[i]+=a:s[++i]=a),(r=r[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i,x:Me(r,o)})),n=qn.lastIndex;return n<t.length&&(a=t.slice(n),s[i]?s[i]+=a:s[++i]=a),s.length<2?l[0]?es(l[0].x):Qa(t):(t=l.length,function(c){for(var p=0,u;p<t;++p)s[(u=l[p]).i]=u.x(c);return s.join("")})}function Ee(e,t){var n=typeof t,r;return t==null||n==="boolean"?bt(t):(n==="number"?Me:n==="string"?(r=Pe(t))?(t=r,Wn):hi:t instanceof Pe?Wn:t instanceof Date?mi:di(t)?ui:Array.isArray(t)?fi:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?gi:Me)(e,t)}function Zn(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Kn(e){return function(){return e}}function Xn(e){return+e}var yi=[0,1];function tt(e){return e}function Yn(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:Kn(isNaN(t)?NaN:.5)}function ts(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function ns(e,t,n){var r=e[0],o=e[1],a=t[0],i=t[1];return o<r?(r=Yn(o,r),a=n(i,a)):(r=Yn(r,o),a=n(a,i)),function(s){return a(r(s))}}function rs(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),a=new Array(r),i=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<r;)o[i]=Yn(e[i],e[i+1]),a[i]=n(t[i],t[i+1]);return function(s){var l=Vn(e,s,1,r)-1;return a[l](o[l](s))}}function bi(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function os(){var e=yi,t=yi,n=Ee,r,o,a,i=tt,s,l,c;function p(){var d=Math.min(e.length,t.length);return i!==tt&&(i=ts(e[0],e[d-1])),s=d>2?rs:ns,l=c=null,u}function u(d){return d==null||isNaN(d=+d)?a:(l||(l=s(e.map(r),t,n)))(r(i(d)))}return u.invert=function(d){return i(o((c||(c=s(t,e.map(r),Me)))(d)))},u.domain=function(d){return arguments.length?(e=Array.from(d,Xn),p()):e.slice()},u.range=function(d){return arguments.length?(t=Array.from(d),p()):t.slice()},u.rangeRound=function(d){return t=Array.from(d),n=Zn,p()},u.clamp=function(d){return arguments.length?(i=d?!0:tt,p()):i!==tt},u.interpolate=function(d){return arguments.length?(n=d,p()):n},u.unknown=function(d){return arguments.length?(a=d,u):a},function(d,m){return r=d,o=m,p()}}function Jn(){return os()(tt,tt)}function xi(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Oe(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function he(e){return e=Oe(Math.abs(e)),e?e[1]:NaN}function ki(e,t){return function(n,r){for(var o=n.length,a=[],i=0,s=e[0],l=0;o>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(n.substring(o-=s,o+s)),!((l+=s+1)>r));)s=e[i=(i+1)%e.length];return a.reverse().join(t)}}function wi(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var is=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ce(e){if(!(t=is.exec(e)))throw new Error("invalid format: "+e);var t;return new Yt({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ce.prototype=Yt.prototype;function Yt(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Yt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function vi(e){e:for(var t=e.length,n=1,r=-1,o;n<t;++n)switch(e[n]){case".":r=o=n;break;case"0":r===0&&(r=n),o=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(o+1):e}var xt;function Si(e,t){var n=Oe(e,t);if(!n)return xt=void 0,e.toPrecision(t);var r=n[0],o=n[1],a=o-(xt=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Oe(e,Math.max(0,t+a-1))[0]}function Qn(e,t){var n=Oe(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var er={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:xi,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Qn(e*100,t),r:Qn,s:Si,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function tr(e){return e}var Ti=Array.prototype.map,$i=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Ri(e){var t=e.grouping===void 0||e.thousands===void 0?tr:ki(Ti.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?tr:wi(Ti.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(u,d){u=Ce(u);var m=u.fill,f=u.align,b=u.sign,h=u.symbol,x=u.zero,R=u.width,w=u.comma,g=u.precision,P=u.trim,T=u.type;T==="n"?(w=!0,T="g"):er[T]||(g===void 0&&(g=12),P=!0,T="g"),(x||m==="0"&&f==="=")&&(x=!0,m="0",f="=");var C=(d&&d.prefix!==void 0?d.prefix:"")+(h==="$"?n:h==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():""),I=(h==="$"?r:/[%p]/.test(T)?i:"")+(d&&d.suffix!==void 0?d.suffix:""),W=er[T],B=/[defgprs%]/.test(T);g=g===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g));function E(y){var k=C,$=I,_,S,M;if(T==="c")$=W(y)+$,y="";else{y=+y;var N=y<0||1/y<0;if(y=isNaN(y)?l:W(Math.abs(y),g),P&&(y=vi(y)),N&&+y==0&&b!=="+"&&(N=!1),k=(N?b==="("?b:s:b==="-"||b==="("?"":b)+k,$=(T==="s"&&!isNaN(y)&&xt!==void 0?$i[8+xt/3]:"")+$+(N&&b==="("?")":""),B){for(_=-1,S=y.length;++_<S;)if(M=y.charCodeAt(_),48>M||M>57){$=(M===46?o+y.slice(_+1):y.slice(_))+$,y=y.slice(0,_);break}}}w&&!x&&(y=t(y,1/0));var D=k.length+y.length+$.length,U=D<R?new Array(R-D+1).join(m):"";switch(w&&x&&(y=t(U+y,U.length?R-$.length:1/0),U=""),f){case"<":y=k+y+$+U;break;case"=":y=k+U+y+$;break;case"^":y=U.slice(0,D=U.length>>1)+k+y+$+U.slice(D);break;default:y=U+k+y+$;break}return a(y)}return E.toString=function(){return u+""},E}function p(u,d){var m=Math.max(-8,Math.min(8,Math.floor(he(d)/3)))*3,f=Math.pow(10,-m),b=c((u=Ce(u),u.type="f",u),{suffix:$i[8+m/3]});return function(h){return b(f*h)}}return{format:c,formatPrefix:p}}var Jt,Qt,en;nr({thousands:",",grouping:[3],currency:["$",""]});function nr(e){return Jt=Ri(e),Qt=Jt.format,en=Jt.formatPrefix,Jt}function rr(e){return Math.max(0,-he(Math.abs(e)))}function or(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(he(t)/3)))*3-he(Math.abs(e)))}function ir(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,he(t)-he(e))+1}function ar(e,t,n,r){var o=Ln(e,t,n),a;switch(r=Ce(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=or(o,i))&&(r.precision=a),en(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=ir(o,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=rr(o))&&(r.precision=a-(r.type==="%")*2);break}}return Qt(r)}function as(e){var t=e.domain;return e.ticks=function(n){var r=t();return zt(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var o=t();return ar(o[0],o[o.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),o=0,a=r.length-1,i=r[o],s=r[a],l,c,p=10;for(s<i&&(c=i,i=s,s=c,c=o,o=a,a=c);p-- >0;){if(c=mt(i,s,n),c===l)return r[o]=i,r[a]=s,t(r);if(c>0)i=Math.floor(i/c)*c,s=Math.ceil(s/c)*c;else if(c<0)i=Math.ceil(i*c)/c,s=Math.floor(s*c)/c;else break;l=c}return e},e}function kt(){var e=Jn();return e.copy=function(){return bi(e,kt())},Je.apply(e,arguments),as(e)}function L(e){return function(){return e}}var sr=Math.abs,ee=Math.atan2,Ne=Math.cos,Pi=Math.max,tn=Math.min,de=Math.sin,Ve=Math.sqrt,re=1e-12,nt=Math.PI,wt=nt/2,rt=2*nt;function Mi(e){return e>1?0:e<-1?nt:Math.acos(e)}function lr(e){return e>=1?wt:e<=-1?-wt:Math.asin(e)}var cr=Math.PI,pr=2*cr,Le=1e-6,ss=pr-Le;function Ci(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ls(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Ci;let n=10**t;return function(r){this._+=r[0];for(let o=1,a=r.length;o<a;++o)this._+=Math.round(arguments[o]*n)/n+r[o]}}var je=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?Ci:ls(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,o){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+o}`}bezierCurveTo(t,n,r,o,a,i){this._append`C${+t},${+n},${+r},${+o},${this._x1=+a},${this._y1=+i}`}arcTo(t,n,r,o,a){if(t=+t,n=+n,r=+r,o=+o,a=+a,a<0)throw new Error(`negative radius: ${a}`);let i=this._x1,s=this._y1,l=r-t,c=o-n,p=i-t,u=s-n,d=p*p+u*u;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(d>Le)if(!(Math.abs(u*l-c*p)>Le)||!a)this._append`L${this._x1=t},${this._y1=n}`;else{let m=r-i,f=o-s,b=l*l+c*c,h=m*m+f*f,x=Math.sqrt(b),R=Math.sqrt(d),w=a*Math.tan((cr-Math.acos((b+d-h)/(2*x*R)))/2),g=w/R,P=w/x;Math.abs(g-1)>Le&&this._append`L${t+g*p},${n+g*u}`,this._append`A${a},${a},0,0,${+(u*m>p*f)},${this._x1=t+P*l},${this._y1=n+P*c}`}}arc(t,n,r,o,a,i){if(t=+t,n=+n,r=+r,i=!!i,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(o),l=r*Math.sin(o),c=t+s,p=n+l,u=1^i,d=i?o-a:a-o;this._x1===null?this._append`M${c},${p}`:(Math.abs(this._x1-c)>Le||Math.abs(this._y1-p)>Le)&&this._append`L${c},${p}`,r&&(d<0&&(d=d%pr+pr),d>ss?this._append`A${r},${r},0,1,${u},${t-s},${n-l}A${r},${r},0,1,${u},${this._x1=c},${this._y1=p}`:d>Le&&this._append`A${r},${r},0,${+(d>=cr)},${u},${this._x1=t+r*Math.cos(a)},${this._y1=n+r*Math.sin(a)}`)}rect(t,n,r,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}};function Ni(){return new je}Ni.prototype=je.prototype;function ot(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new je(t)}function cs(e){return e.innerRadius}function ps(e){return e.outerRadius}function us(e){return e.startAngle}function ds(e){return e.endAngle}function fs(e){return e&&e.padAngle}function ms(e,t,n,r,o,a,i,s){var l=n-e,c=r-t,p=i-o,u=s-a,d=u*l-p*c;if(!(d*d<re))return d=(p*(t-a)-u*(e-o))/d,[e+d*l,t+d*c]}function nn(e,t,n,r,o,a,i){var s=e-n,l=t-r,c=(i?a:-a)/Ve(s*s+l*l),p=c*l,u=-c*s,d=e+p,m=t+u,f=n+p,b=r+u,h=(d+f)/2,x=(m+b)/2,R=f-d,w=b-m,g=R*R+w*w,P=o-a,T=d*b-f*m,C=(w<0?-1:1)*Ve(Pi(0,P*P*g-T*T)),I=(T*w-R*C)/g,W=(-T*R-w*C)/g,B=(T*w+R*C)/g,E=(-T*R+w*C)/g,y=I-h,k=W-x,$=B-h,_=E-x;return y*y+k*k>$*$+_*_&&(I=B,W=E),{cx:I,cy:W,x01:-p,y01:-u,x11:I*(o/P-1),y11:W*(o/P-1)}}function rn(){var e=cs,t=ps,n=L(0),r=null,o=us,a=ds,i=fs,s=null,l=ot(c);function c(){var p,u,d=+e.apply(this,arguments),m=+t.apply(this,arguments),f=o.apply(this,arguments)-wt,b=a.apply(this,arguments)-wt,h=sr(b-f),x=b>f;if(s||(s=p=l()),m<d&&(u=m,m=d,d=u),!(m>re))s.moveTo(0,0);else if(h>rt-re)s.moveTo(m*Ne(f),m*de(f)),s.arc(0,0,m,f,b,!x),d>re&&(s.moveTo(d*Ne(b),d*de(b)),s.arc(0,0,d,b,f,x));else{var R=f,w=b,g=f,P=b,T=h,C=h,I=i.apply(this,arguments)/2,W=I>re&&(r?+r.apply(this,arguments):Ve(d*d+m*m)),B=tn(sr(m-d)/2,+n.apply(this,arguments)),E=B,y=B,k,$;if(W>re){var _=lr(W/d*de(I)),S=lr(W/m*de(I));(T-=_*2)>re?(_*=x?1:-1,g+=_,P-=_):(T=0,g=P=(f+b)/2),(C-=S*2)>re?(S*=x?1:-1,R+=S,w-=S):(C=0,R=w=(f+b)/2)}var M=m*Ne(R),N=m*de(R),D=d*Ne(P),U=d*de(P);if(B>re){var j=m*Ne(w),Z=m*de(w),F=d*Ne(g),X=d*de(g),J;if(h<nt)if(J=ms(M,N,F,X,j,Z,D,U)){var Y=M-J[0],ne=N-J[1],Q=j-J[0],le=Z-J[1],pe=1/de(Mi((Y*Q+ne*le)/(Ve(Y*Y+ne*ne)*Ve(Q*Q+le*le)))/2),at=Ve(J[0]*J[0]+J[1]*J[1]);E=tn(B,(d-at)/(pe-1)),y=tn(B,(m-at)/(pe+1))}else E=y=0}C>re?y>re?(k=nn(F,X,M,N,m,y,x),$=nn(j,Z,D,U,m,y,x),s.moveTo(k.cx+k.x01,k.cy+k.y01),y<B?s.arc(k.cx,k.cy,y,ee(k.y01,k.x01),ee($.y01,$.x01),!x):(s.arc(k.cx,k.cy,y,ee(k.y01,k.x01),ee(k.y11,k.x11),!x),s.arc(0,0,m,ee(k.cy+k.y11,k.cx+k.x11),ee($.cy+$.y11,$.cx+$.x11),!x),s.arc($.cx,$.cy,y,ee($.y11,$.x11),ee($.y01,$.x01),!x))):(s.moveTo(M,N),s.arc(0,0,m,R,w,!x)):s.moveTo(M,N),!(d>re)||!(T>re)?s.lineTo(D,U):E>re?(k=nn(D,U,j,Z,d,-E,x),$=nn(M,N,F,X,d,-E,x),s.lineTo(k.cx+k.x01,k.cy+k.y01),E<B?s.arc(k.cx,k.cy,E,ee(k.y01,k.x01),ee($.y01,$.x01),!x):(s.arc(k.cx,k.cy,E,ee(k.y01,k.x01),ee(k.y11,k.x11),!x),s.arc(0,0,d,ee(k.cy+k.y11,k.cx+k.x11),ee($.cy+$.y11,$.cx+$.x11),x),s.arc($.cx,$.cy,E,ee($.y11,$.x11),ee($.y01,$.x01),!x))):s.arc(0,0,d,P,g,x)}if(s.closePath(),p)return s=null,p+""||null}return c.centroid=function(){var p=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,u=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-nt/2;return[Ne(u)*p,de(u)*p]},c.innerRadius=function(p){return arguments.length?(e=typeof p=="function"?p:L(+p),c):e},c.outerRadius=function(p){return arguments.length?(t=typeof p=="function"?p:L(+p),c):t},c.cornerRadius=function(p){return arguments.length?(n=typeof p=="function"?p:L(+p),c):n},c.padRadius=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:L(+p),c):r},c.startAngle=function(p){return arguments.length?(o=typeof p=="function"?p:L(+p),c):o},c.endAngle=function(p){return arguments.length?(a=typeof p=="function"?p:L(+p),c):a},c.padAngle=function(p){return arguments.length?(i=typeof p=="function"?p:L(+p),c):i},c.context=function(p){return arguments.length?(s=p??null,c):s},c}var sd=Array.prototype.slice;function it(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Fi(e){this._context=e}Fi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ze(e){return new Fi(e)}function on(e){return e[0]}function an(e){return e[1]}function vt(e,t){var n=L(!0),r=null,o=ze,a=null,i=ot(s);e=typeof e=="function"?e:e===void 0?on:L(e),t=typeof t=="function"?t:t===void 0?an:L(t);function s(l){var c,p=(l=it(l)).length,u,d=!1,m;for(r==null&&(a=o(m=i())),c=0;c<=p;++c)!(c<p&&n(u=l[c],c,l))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,l),+t(u,c,l));if(m)return a=null,m+""||null}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:L(+l),s):e},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:L(+l),s):t},s.defined=function(l){return arguments.length?(n=typeof l=="function"?l:L(!!l),s):n},s.curve=function(l){return arguments.length?(o=l,r!=null&&(a=o(r)),s):o},s.context=function(l){return arguments.length?(l==null?r=a=null:a=o(r=l),s):r},s}function ur(e,t,n){var r=null,o=L(!0),a=null,i=ze,s=null,l=ot(c);e=typeof e=="function"?e:e===void 0?on:L(+e),t=typeof t=="function"?t:t===void 0?L(0):L(+t),n=typeof n=="function"?n:n===void 0?an:L(+n);function c(u){var d,m,f,b=(u=it(u)).length,h,x=!1,R,w=new Array(b),g=new Array(b);for(a==null&&(s=i(R=l())),d=0;d<=b;++d){if(!(d<b&&o(h=u[d],d,u))===x)if(x=!x)m=d,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=d-1;f>=m;--f)s.point(w[f],g[f]);s.lineEnd(),s.areaEnd()}x&&(w[d]=+e(h,d,u),g[d]=+t(h,d,u),s.point(r?+r(h,d,u):w[d],n?+n(h,d,u):g[d]))}if(R)return s=null,R+""||null}function p(){return vt().defined(o).curve(i).context(a)}return c.x=function(u){return arguments.length?(e=typeof u=="function"?u:L(+u),r=null,c):e},c.x0=function(u){return arguments.length?(e=typeof u=="function"?u:L(+u),c):e},c.x1=function(u){return arguments.length?(r=u==null?null:typeof u=="function"?u:L(+u),c):r},c.y=function(u){return arguments.length?(t=typeof u=="function"?u:L(+u),n=null,c):t},c.y0=function(u){return arguments.length?(t=typeof u=="function"?u:L(+u),c):t},c.y1=function(u){return arguments.length?(n=u==null?null:typeof u=="function"?u:L(+u),c):n},c.lineX0=c.lineY0=function(){return p().x(e).y(t)},c.lineY1=function(){return p().x(e).y(n)},c.lineX1=function(){return p().x(r).y(t)},c.defined=function(u){return arguments.length?(o=typeof u=="function"?u:L(!!u),c):o},c.curve=function(u){return arguments.length?(i=u,a!=null&&(s=i(a)),c):i},c.context=function(u){return arguments.length?(u==null?a=s=null:s=i(a=u),c):a},c}function _i(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function Ai(e){return e}function dr(){var e=Ai,t=_i,n=null,r=L(0),o=L(rt),a=L(0);function i(s){var l,c=(s=it(s)).length,p,u,d=0,m=new Array(c),f=new Array(c),b=+r.apply(this,arguments),h=Math.min(rt,Math.max(-rt,o.apply(this,arguments)-b)),x,R=Math.min(Math.abs(h)/c,a.apply(this,arguments)),w=R*(h<0?-1:1),g;for(l=0;l<c;++l)(g=f[m[l]=l]=+e(s[l],l,s))>0&&(d+=g);for(t!=null?m.sort(function(P,T){return t(f[P],f[T])}):n!=null&&m.sort(function(P,T){return n(s[P],s[T])}),l=0,u=d?(h-c*w)/d:0;l<c;++l,b=x)p=m[l],g=f[p],x=b+(g>0?g*u:0)+w,f[p]={data:s[p],index:l,value:g,startAngle:b,endAngle:x,padAngle:R};return f}return i.value=function(s){return arguments.length?(e=typeof s=="function"?s:L(+s),i):e},i.sortValues=function(s){return arguments.length?(t=s,n=null,i):t},i.sort=function(s){return arguments.length?(n=s,t=null,i):n},i.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:L(+s),i):r},i.endAngle=function(s){return arguments.length?(o=typeof s=="function"?s:L(+s),i):o},i.padAngle=function(s){return arguments.length?(a=typeof s=="function"?s:L(+s),i):a},i}function Di(e){return e<0?-1:1}function Ii(e,t,n){var r=e._x1-e._x0,o=t-e._x1,a=(e._y1-e._y0)/(r||o<0&&-0),i=(n-e._y1)/(o||r<0&&-0),s=(a*o+i*r)/(r+o);return(Di(a)+Di(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(s))||0}function Bi(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function fr(e,t,n){var r=e._x0,o=e._y0,a=e._x1,i=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,o+s*t,a-s,i-s*n,a,i)}function sn(e){this._context=e}sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:fr(this,this._t0,Bi(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,fr(this,Bi(this,n=Ii(this,e,t)),n);break;default:fr(this,this._t0,n=Ii(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function gs(e){this._context=new Ei(e)}(gs.prototype=Object.create(sn.prototype)).point=function(e,t){sn.prototype.point.call(this,t,e)};function Ei(e){this._context=e}Ei.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,a){this._context.bezierCurveTo(t,e,r,n,a,o)}};function mr(e){return new sn(e)}var oe=9,He="#9AA1AB";function ln(e,t){return e.hits?(e.hits.push(t),{"data-bp-hit":String(e.hits.length-1)}):{}}function V(e){return Math.round(e*100)/100+""}function hs(e,t,n,r){if(!t.showLegend||e.series.length===0)return{node:null,height:0};let o=t.type==="pie"||t.type==="donut"?e.categories.map((l,c)=>({label:l,color:cn(e,c)})):e.series.map(l=>({label:l.label,color:l.color})),a=Math.max(1,Math.floor(r/120)),i=Math.ceil(o.length/a);return{node:v("g",{class:"bp-chart__legend",transform:`translate(0, ${n})`},o.map((l,c)=>{let p=c%a,u=Math.floor(c/a),d=r/a*p;return v("g",{transform:`translate(${V(d)}, ${u*16})`},v("rect",{x:0,y:2,width:10,height:10,rx:2,fill:l.color}),v("text",{x:15,y:11,"font-size":oe+1,"font-family":t.fontFamily,fill:t.theme.colors.text},St(l.label,Math.floor(r/a/6))))})),height:i*16+4}}function St(e,t){return e.length>t?e.slice(0,Math.max(1,t-1))+"\u2026":e}function cn(e,t){let n=e.series[0],r=e.series.map(o=>o.color);return r[t%Math.max(1,r.length)]??n?.color??"#888"}function Oi(e,t){let{width:n,height:r}=t;if(t.type==="pie"||t.type==="donut")return ys(e,t);let o=t.type==="horizontalBar",a=hs(e,t,0,n),i=a.height+6,s=8,l=24,c=e.series.flatMap(S=>S.values.map(M=>M??0)),p=e.categories.map((S,M)=>e.series.reduce((N,D)=>N+Math.max(0,D.values[M]??0),0)),u=e.categories.map((S,M)=>e.series.reduce((N,D)=>N+Math.min(0,D.values[M]??0),0)),d=Math.max(0,...t.stacked?p:c),m=Math.min(0,...t.stacked?u:c),f=kt().domain([m,d===m?d+1:d]).nice(5),b=f.ticks(5),h=b.map(t.formatValue),x=Math.max(...h.map(S=>S.length*oe*.6),18),R=o?Math.min(n*.35,Math.max(...e.categories.map(S=>S.length))*oe*.6+8):x+8,w=Math.max(10,n-R-s),g=Math.max(10,r-i-l),P=[];a.node&&P.push(a.node);let T=(S,M,...N)=>v("g",{transform:`translate(${V(S)}, ${V(M)})`},N);if(o){f.range([0,w]);let S=ve().domain(e.categories.map((Z,F)=>String(F))).range([0,g]).paddingInner(.25).paddingOuter(.1),M=ve().domain(e.series.map((Z,F)=>String(F))).range([0,S.bandwidth()]).padding(.1),N=t.showGrid?b.map(Z=>v("line",{x1:f(Z),x2:f(Z),y1:0,y2:g,stroke:t.theme.colors.border,"stroke-width":1})):[],D=b.map(Z=>v("text",{x:f(Z),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},t.formatValue(Z))),U=e.categories.map((Z,F)=>v("text",{x:-6,y:(S(String(F))??0)+S.bandwidth()/2+3,"text-anchor":"end","font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},St(Z,Math.floor(R/(oe*.6))))),j=[];return e.categories.forEach((Z,F)=>{let X=0,J=0;e.series.forEach((Y,ne)=>{let Q=Y.values[F]??0,le,pe;t.stacked?Q>=0?(le=f(X),pe=f(X+Q),X+=Q):(le=f(J+Q),pe=f(J),J+=Q):(le=f(Math.min(0,Q)),pe=f(Math.max(0,Q)));let at=(S(String(F))??0)+(t.stacked?0:M(String(ne))??0),kr=t.stacked?S.bandwidth():M.bandwidth();j.push(v("rect",{x:V(le),y:V(at),width:V(Math.max(0,pe-le)),height:V(kr),fill:Y.color,rx:1.5,...ln(t,{categoryIndex:F,category:e.categories[F]??"",seriesIndex:ne,series:Y.label,value:Y.values[F]??null,formatted:t.formatValue(Q),color:Y.color})})),t.showValues&&!t.stacked&&j.push(v("text",{x:V(pe+4),y:V(at+kr/2+3),"font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(Q)))})}),P.push(T(R,i,...N,v("line",{x1:f(0),x2:f(0),y1:0,y2:g,stroke:He}),...j,...D,...U)),pn(n,r,P)}f.range([g,0]);let C=t.showGrid?b.map(S=>v("line",{x1:0,x2:w,y1:V(f(S)),y2:V(f(S)),stroke:t.theme.colors.border,"stroke-width":1})):[],I=b.map(S=>v("text",{x:-6,y:V(f(S)+3),"text-anchor":"end","font-size":oe,"font-family":t.fontFamily,fill:He},t.formatValue(S))),W=Math.max(1,Math.floor(w/48)),B=Math.ceil(e.categories.length/W);if(t.type==="bar"){let S=ve().domain(e.categories.map((U,j)=>String(j))).range([0,w]).paddingInner(.25).paddingOuter(.1),M=ve().domain(e.series.map((U,j)=>String(j))).range([0,S.bandwidth()]).padding(.1),N=[];e.categories.forEach((U,j)=>{let Z=0,F=0;e.series.forEach((X,J)=>{let Y=X.values[j]??0,ne,Q;t.stacked?Y>=0?(Q=f(Z),ne=f(Z+Y),Z+=Y):(Q=f(F+Y),ne=f(F),F+=Y):(ne=f(Math.max(0,Y)),Q=f(Math.min(0,Y)));let le=(S(String(j))??0)+(t.stacked?0:M(String(J))??0),pe=t.stacked?S.bandwidth():M.bandwidth();N.push(v("rect",{x:V(le),y:V(ne),width:V(pe),height:V(Math.max(0,Q-ne)),fill:X.color,rx:1.5,...ln(t,{categoryIndex:j,category:e.categories[j]??"",seriesIndex:J,series:X.label,value:X.values[j]??null,formatted:t.formatValue(Y),color:X.color})})),t.showValues&&!t.stacked&&N.push(v("text",{x:V(le+pe/2),y:V(ne-3),"text-anchor":"middle","font-size":oe-1,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(Y)))})});let D=e.categories.map((U,j)=>j%B===0?v("text",{x:V((S(String(j))??0)+S.bandwidth()/2),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},St(U,10)):null);return P.push(T(R,i,...C,...N,v("line",{x1:0,x2:w,y1:V(f(0)),y2:V(f(0)),stroke:He}),...I,...D)),pn(n,r,P)}let E=jn().domain(e.categories.map((S,M)=>String(M))).range([0,w]).padding(.15),y=t.smooth?mr:ze,k=[],$=e.categories.map(()=>0);e.series.forEach((S,M)=>{let N=S.values.map((F,X)=>({i:X,v:F??0})),D=[...$];t.stacked&&N.forEach(F=>$[F.i]=($[F.i]??0)+F.v);let U=F=>f(t.stacked?(D[F.i]??0)+F.v:F.v),j=F=>f(t.stacked?D[F.i]??0:0),Z=vt().x(F=>E(String(F.i))??0).y(U).curve(y);if(t.type==="area"){let F=ur().x(X=>E(String(X.i))??0).y0(j).y1(U).curve(y);k.push(v("path",{d:F(N)??"",fill:S.color,"fill-opacity":.18}))}k.push(v("path",{d:Z(N)??"",fill:"none",stroke:S.color,"stroke-width":2,"stroke-linejoin":"round","stroke-linecap":"round"})),N.forEach(F=>{let X=ln(t,{categoryIndex:F.i,category:e.categories[F.i]??"",seriesIndex:M,series:S.label,value:S.values[F.i]??null,formatted:t.formatValue(F.v),color:S.color});N.length<=40?k.push(v("circle",{cx:V(E(String(F.i))??0),cy:V(U(F)),r:2.5,fill:"#fff",stroke:S.color,"stroke-width":1.5,...X})):t.hits&&(t.hits[t.hits.length-1].value=S.values[F.i]??null)}),t.showValues&&N.forEach(F=>k.push(v("text",{x:V(E(String(F.i))??0),y:V(U(F)-6),"text-anchor":"middle","font-size":oe-1,"font-family":t.fontFamily,fill:t.theme.colors.text},t.formatValue(F.v))))});let _=e.categories.map((S,M)=>M%B===0?v("text",{x:V(E(String(M))??0),y:g+14,"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:He},St(S,10)):null);return P.push(T(R,i,...C,v("line",{x1:0,x2:w,y1:V(f(0)),y2:V(f(0)),stroke:He}),...k,...I,..._)),pn(n,r,P)}function ys(e,t){let{width:n,height:r}=t,o=e.series[0],a=e.categories.map((w,g)=>Math.max(0,o?.values[g]??0)),i=a.reduce((w,g)=>w+g,0),s=t.showLegend?Math.min(160,n*.45):0,l=Math.min(r,n-s),c=Math.max(10,l/2-6),p=(n-s)/2,u=r/2,d=t.type==="donut"?c*.62:0,f=dr().sort(null).value(w=>w)(a),b=rn().innerRadius(d).outerRadius(c).padAngle(.01).cornerRadius(2),h=rn().innerRadius((d+c)/2).outerRadius((d+c)/2),x=f.map((w,g)=>{let P=i>0?a[g]/i:0,[T,C]=h.centroid(w),I=ln(t,{categoryIndex:g,category:e.categories[g]??"",seriesIndex:0,series:o?.label??"",value:o?.values[g]??null,formatted:t.formatValue(a[g]??0),color:cn(e,g),share:P});return v("g",null,v("path",{d:b(w)??"",fill:cn(e,g),...I}),t.showValues&&P>=.06?v("text",{x:V(T),y:V(C+3),"text-anchor":"middle","font-size":oe,"font-family":t.fontFamily,fill:"#fff","font-weight":"600"},t.formatPercent(P)):null)}),R=[v("g",{transform:`translate(${V(p)}, ${V(u)})`},i===0?v("circle",{r:c,fill:t.theme.colors.border}):x,t.type==="donut"&&t.innerLabel?v("text",{"text-anchor":"middle",y:4,"font-size":oe+3,"font-weight":"700","font-family":t.fontFamily,fill:t.theme.colors.text},t.innerLabel):null)];if(t.showLegend){let w=e.categories.map((T,C)=>({label:T,color:cn(e,C),frac:i>0?a[C]/i:0})),g=15,P=Math.max(0,u-w.length*g/2);R.push(v("g",{transform:`translate(${V(n-s)}, ${V(P)})`},w.map((T,C)=>v("g",{transform:`translate(0, ${C*g})`},v("rect",{x:0,y:2,width:9,height:9,rx:2,fill:T.color}),v("text",{x:14,y:10,"font-size":oe,"font-family":t.fontFamily,fill:t.theme.colors.text},`${St(T.label,Math.floor(s/6)-6)} ${t.formatPercent(T.frac)}`)))))}return pn(n,r,R)}function pn(e,t,n){return v("svg",{xmlns:"http://www.w3.org/2000/svg",width:V(e),height:V(t),viewBox:`0 0 ${V(e)} ${V(t)}`,class:"bp-chart__svg",role:"img",style:{display:"block",overflow:"visible"}},n)}var Vi=z({type:"chart",name:"Chart",description:"Bar, line, area, pie or donut chart bound to a list",category:"visualisation",icon:"bar-chart-3",keywords:["graph","bar","line","pie","donut","area","visualisation"],defaultProps:()=>({chartType:"bar",source:"",alias:"item",label:"item.label",series:[{id:"s1",label:"Value",value:"item.value"}],height:220,title:"",showLegend:!0,showValues:!1,showGrid:!0,stacked:!1,smooth:!0,valueFormat:"",percentDecimals:0,innerLabel:"",limit:null}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["spacing","background","border","flow"],bindings:[{prop:"source",kind:"collection",alias:"alias"},{prop:"label",kind:"value",perItem:!0},{prop:"series",kind:"list",items:[{prop:"value",kind:"value",perItem:!0},{prop:"label",kind:"template"}]},{prop:"title",kind:"template"},{prop:"innerLabel",kind:"template"}],inspector:[{title:"Chart",fields:[{kind:"segmented",prop:"chartType",label:"Type",options:[{value:"bar",label:"Bar",icon:"bar-chart-3"},{value:"horizontalBar",label:"Horizontal",icon:"bar-chart-horizontal"},{value:"line",label:"Line",icon:"line-chart"},{value:"area",label:"Area",icon:"area-chart"},{value:"pie",label:"Pie",icon:"pie-chart"},{value:"donut",label:"Donut",icon:"circle-dot"}]},{kind:"text",prop:"title",label:"Title"},{kind:"number",prop:"height",label:"Height",min:80,max:800,unit:"px"}]},{title:"Data",fields:[{kind:"collection",prop:"source",label:"Data from",placeholder:"Pick a list"},{kind:"text",prop:"alias",label:"Item name",description:e=>`The name each data point goes by, e.g. ${typeof e.alias=="string"&&e.alias.trim()?e.alias.trim():"item"}.value`,allowTokens:!1},{kind:"expression",prop:"label",label:"Category label",placeholder:"item.name"},{kind:"series",prop:"series",label:"Series",fullWidth:!0},{kind:"number",prop:"limit",label:"Maximum items",min:1,max:1e3},{kind:"text",prop:"valueFormat",label:"Value format",placeholder:'e.g. currency:"GBP":0 or percent',allowTokens:!1}]},{title:"Options",fields:[{kind:"toggle",prop:"showLegend",label:"Legend"},{kind:"toggle",prop:"showValues",label:"Value labels"},{kind:"toggle",prop:"showGrid",label:"Grid lines",when:e=>e.chartType!=="pie"&&e.chartType!=="donut"},{kind:"toggle",prop:"stacked",label:"Stacked",when:e=>["bar","horizontalBar","line","area"].includes(String(e.chartType))},{kind:"toggle",prop:"smooth",label:"Smooth lines",when:e=>e.chartType==="line"||e.chartType==="area"},{kind:"number",prop:"percentDecimals",label:"Percent decimals",min:0,max:3,when:e=>e.chartType==="pie"||e.chartType==="donut"},{kind:"text",prop:"innerLabel",label:"Centre label",when:e=>e.chartType==="donut"}]}],validate:({props:e})=>{let t=[];return(!Array.isArray(e.series)||e.series.length===0)&&t.push({severity:"warning",code:"empty-content",message:"Chart has no series",prop:"series"}),t},canvas:{label:e=>e.title?`Chart \xB7 ${e.title}`:"Chart"},resolve:({props:e,evaluateIn:t,theme:n,warn:r})=>{let o=e.alias||"item",a=Array.isArray(e.source)?e.source:[];e.limit&&(a=a.slice(0,e.limit));let i=n.colors.chart??[n.colors.primary,n.colors.secondary,n.colors.accent],s=a.map((c,p)=>{try{return A(t(e.label||`${o}.label`,{[o]:c,item:c,index:p+1}))}catch{return String(p+1)}}),l=(Array.isArray(e.series)?e.series:[]).map((c,p)=>({label:c.label||`Series ${p+1}`,color:c.color?q(c.color,n,i[p%i.length]):i[p%i.length],values:a.map((u,d)=>{try{return H(t(c.value,{[o]:u,item:u,index:d+1}))}catch(m){return r(`Series "${c.label}" failed: ${m.message}`),null}})}));if(e.chartType==="pie"||e.chartType==="donut"){let c=l[0];if(c){let p=a.map((u,d)=>({...c,color:i[d%i.length]}));return{__data:{categories:s,series:p.length?[{...c},...p.slice(1)]:[]},__palette:i}}}return{__data:{categories:s,series:l},__palette:i}},render:({h:e,css:t,props:n,theme:r,width:o,mode:a,node:i,format:s,text:l,style:c})=>{let p=n,u=p.__data??{categories:[],series:[]};if((p.chartType==="pie"||p.chartType==="donut")&&u.series.length){let g=p.__palette??r.colors.chart??[];u.series=u.categories.map((P,T)=>({...u.series[0],color:g[T%Math.max(1,g.length)]??u.series[0].color}))}let m=g=>{let P=(p.valueFormat||"").trim();if(!P)return new Intl.NumberFormat(s.locale,{notation:Math.abs(g)>=1e4?"compact":"standard",maximumFractionDigits:2}).format(g);try{return A(Te(`(${g}) | ${P}`,{scope:new ke({}),format:s}))}catch{return String(g)}},f=g=>new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:p.percentDecimals??0,minimumFractionDigits:p.percentDecimals??0}).format(g),b=c.padding,h=Math.max(40,o-b.left-b.right-(c.border?c.border.width*2:0)),x=i.bindings.source,R=[],w=u.categories.length?Oi(u,{type:p.chartType,width:h,height:p.height,theme:r,fontFamily:c.fontFamily,showLegend:p.showLegend,showValues:p.showValues,showGrid:p.showGrid,stacked:p.stacked,smooth:p.smooth,formatValue:m,formatPercent:f,innerLabel:typeof p.innerLabel=="string"&&p.innerLabel?p.innerLabel:void 0,hits:R}):e("div",{class:"bp-chart__empty",style:{height:`${p.height}px`,display:"flex","align-items":"center","justify-content":"center",color:r.colors.mutedText,border:`1px dashed ${r.colors.border}`,"border-radius":`${r.radius??6}px`}},a==="design"?x?"No data in the list":"Choose a list to chart":"");return e("div",{class:["bp-chart",`bp-chart--${p.chartType}`],style:O(t),...R.length?{"data-bp-chart":JSON.stringify({type:p.chartType,title:typeof p.title=="string"?p.title:"",hits:R})}:{}},p.title?e("div",{class:"bp-chart__title",style:{"font-family":r.typography.headingFont,"font-weight":"600","margin-bottom":"6px",color:r.colors.text}},l("title")):null,a==="design"&&x?e("div",{class:"bp-chart__badge",contenteditable:"false"},x.label):null,w)}}),Li=z({type:"progress",name:"Progress / gauge",description:"A value against a maximum, as a bar or gauge",category:"visualisation",icon:"gauge",keywords:["score","meter","gauge","progress","percentage"],defaultProps:()=>({value:"",max:100,label:"Score",caption:"",variant:"bar",color:"$colors.primary",trackColor:"$colors.border",showValue:!0,format:"percent",thresholds:[],height:10}),defaultTextStyle:"body",defaultFlow:{keepTogether:!0},split:"none",styleGroups:["typography","spacing","background","border","flow"],inspector:[{title:"Value",fields:[{kind:"binding",prop:"value",label:"Value",valueType:["number","percent","currency"]},{kind:"number",prop:"max",label:"Maximum",min:1e-4,max:1e12},{kind:"text",prop:"label",label:"Label"},{kind:"text",prop:"caption",label:"Caption"}]},{title:"Appearance",fields:[{kind:"segmented",prop:"variant",label:"Style",options:[{value:"bar",label:"Bar"},{value:"gauge",label:"Gauge"}]},{kind:"segmented",prop:"format",label:"Show as",options:[{value:"percent",label:"%"},{value:"value",label:"Value"},{value:"fraction",label:"x / max"}]},{kind:"toggle",prop:"showValue",label:"Show value"},{kind:"color",prop:"color",label:"Colour"},{kind:"color",prop:"trackColor",label:"Track"},{kind:"number",prop:"height",label:"Bar height",min:2,max:40,unit:"px",when:e=>e.variant==="bar"},{kind:"list",prop:"thresholds",label:"Colour by range",itemLabel:"Range",fullWidth:!0,fields:[{kind:"number",prop:"upTo",label:"Up to"},{kind:"color",prop:"color",label:"Colour"}]}]}],render:({h:e,css:t,props:n,theme:r,text:o,mode:a,node:i,format:s})=>{let l=H(n.value),c=Number(n.max)||100,p=l??0,u=Math.max(0,Math.min(1,c>0?p/c:0)),d=q(n.color,r,r.colors.primary),m=[...n.thresholds??[]].sort((R,w)=>R.upTo-w.upTo);for(let R of m)if(p<=R.upTo){d=q(R.color,r,d);break}let f=q(n.trackColor,r,r.colors.border),b=i.bindings.value,h=n.format==="percent"?new Intl.NumberFormat(s.locale,{style:"percent",maximumFractionDigits:0}).format(u):n.format==="fraction"?`${new Intl.NumberFormat(s.locale).format(p)} / ${new Intl.NumberFormat(s.locale).format(c)}`:new Intl.NumberFormat(s.locale,{maximumFractionDigits:2}).format(p),x=e("div",{style:{display:"flex","justify-content":"space-between","align-items":"baseline",gap:"8px","margin-bottom":"4px"}},e("span",{style:{"font-weight":"600"}},o("label")),n.showValue?e("span",{class:["bp-progress__value",a==="design"&&b?"bp-cell--bound":""],title:b?.expr,style:{color:r.colors.mutedText,"font-variant-numeric":"tabular-nums"}},h):null);if(n.variant==="gauge"){let T=C=>{let I=Math.PI,W=Math.PI*C,B=I+W,E=80+62*Math.cos(I),y=70+62*Math.sin(I),k=80+62*Math.cos(B),$=70+62*Math.sin(B),_=W>Math.PI?1:0;return`M ${E} ${y} A 62 62 0 ${_} 1 ${k} ${$}`};return e("div",{class:"bp-progress bp-progress--gauge",style:O({...t,display:"flex","flex-direction":"column","align-items":"center"})},e("svg",{width:160,height:80,viewBox:"0 0 160 80",style:{display:"block"}},e("path",{d:T(1),fill:"none",stroke:f,"stroke-width":12,"stroke-linecap":"round"}),u>0?e("path",{d:T(u),fill:"none",stroke:d,"stroke-width":12,"stroke-linecap":"round"}):null,e("text",{x:80,y:66,"text-anchor":"middle","font-size":20,"font-weight":"700","font-family":r.typography.headingFont,fill:r.colors.text},h)),e("div",{style:{"font-weight":"600","margin-top":"2px"}},o("label")),n.caption?e("div",{style:{color:r.colors.mutedText,"font-size":"0.9em"}},o("caption")):null)}return e("div",{class:"bp-progress bp-progress--bar",style:O(t)},x,e("div",{class:"bp-progress__track",style:{height:`${n.height}px`,background:f,"border-radius":`${n.height}px`,overflow:"hidden"}},e("div",{class:"bp-progress__fill",style:{width:`${u*100}%`,height:`${n.height}px`,background:d,"border-radius":`${n.height}px`}})),n.caption?e("div",{style:{color:r.colors.mutedText,"font-size":"0.9em","margin-top":"4px"}},o("caption")):null)}});var ji=[go,ho,yo,bo,vo,So,To,$o,Ro,Po,Mo,Co,No,Ao,Do,Io,Bo,Eo,Oo,Vo,Lo,Fo,_o,Wo,jo,zo,Go,Vi,Li];var bs="http://www.w3.org/2000/svg";function Tt(e,t=document){if(typeof e=="string")return t.createTextNode(e);let n=e.ns==="svg"?t.createElementNS(bs,e.tag):t.createElement(e.tag);xs(n,e.props);for(let r of e.children)n.appendChild(Tt(r,t));return n}function xs(e,t){for(let[n,r]of Object.entries(t))if(!(r==null||r===!1))if(n==="class"){let o=Tn(r);o&&e.setAttribute("class",o)}else if(n==="style"){let o=$n(r);o&&e.setAttribute("style",o)}else r===!0?e.setAttribute(n,""):e.setAttribute(n,String(r))}function gr(e,t){let n=e.ownerDocument,r=n.createDocumentFragment();for(let o of t)r.appendChild(Tt(o,n));e.replaceChildren(r)}function $t(e,t,n){let r=e.getElementById(t);return r||(r=e.createElement("style"),r.id=t,e.head.appendChild(r)),r.textContent!==n&&(r.textContent=n),r}function zi(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)+e.length.toString(36)}function Hi(e,t,n){return zi(JSON.stringify(e))+":"+Math.round(t*100)+":"+n}var Rt=class{constructor(t,n){K(this,"doc",t);K(this,"host");K(this,"cache",new Map);K(this,"opts",null);K(this,"arriving",[]);this.host=t.createElement("div"),this.host.className="bp-doc bp-galley",this.host.setAttribute("aria-hidden","true"),(n??t.body).appendChild(this.host)}setOptions(t){this.opts=t,this.host.classList.toggle("bp-doc--design",t.mode==="design")}measure(t,n){if(!this.opts)throw new Error("DomMeasurer.setOptions() must be called before measure()");let r={},o=[];for(let l of t){let c=Hi(l,n,this.opts.mode),p=this.cache.get(c);if(p){r[l.key]=p;continue}let u=this.doc.createElement("div");u.className="bp-galley__section",u.style.width=`${n}px`,u.style.position="relative";let d=we(l,{...this.opts,width:n},n);d&&u.appendChild(Tt(d,this.doc)),o.push({section:l,key:c,el:u})}if(o.length===0)return r;for(let l of o)this.host.appendChild(l.el);let a=o.map(l=>({p:l,geom:ws(l.el,l.section,this.opts)})),i=this.doc.fonts,s=[];if(i&&typeof i[Symbol.iterator]=="function")for(let l of i)l.status==="loading"&&s.push(l.loaded);this.arriving.push(...s);for(let{p:l,geom:c}of a){let p=[...l.el.querySelectorAll("img")].filter(u=>!u.complete).map(ks);this.arriving.push(...p),!s.length&&!p.length&&this.cache.set(l.key,c),r[l.section.key]=c}for(let l of o)l.el.remove();if(this.cache.size>400){let l=[...this.cache.keys()].slice(0,200);for(let c of l)this.cache.delete(c)}return r}async settled(){let t=this.arriving;return this.arriving=[],t.length?(await Promise.all(t.map(n=>n.catch(()=>{}))),!0):!1}clearCache(){this.cache.clear()}destroy(){this.host.remove(),this.cache.clear(),this.arriving=[]}};function ks(e){return typeof e.decode=="function"?e.decode().catch(()=>{}):new Promise(t=>{e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})})}function ws(e,t,n){let r=e.getBoundingClientRect(),o={},a=new Map,i=p=>{a.set(p.key,p);for(let u of p.children)i(u)};i(t);let s=e.querySelectorAll("[data-key]");for(let p of s){let u=p.getAttribute("data-key");if(o[u])continue;let d=a.get(u),m=p.getBoundingClientRect(),f={top:m.top-r.top,height:m.height,left:m.left-r.left,width:m.width};if(d){let h=n.registry.get(d.type)?.measure??(d.flow.split==="lines"?"text":d.flow.split==="rows"?"table":"none");h==="text"?f.lines=Gi(p,r.top,f.top+f.height):h==="table"&&(f.rows=Wi(p,r.top))}o[u]=f}let l=e.firstElementChild?.getBoundingClientRect();return{height:l?l.height:r.height,width:r.width,nodes:o}}function Gi(e,t,n){let r=e.querySelector("[data-part='text']")??e,o=e.ownerDocument,a=[],i=o.createTreeWalker(r,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,{acceptNode:p=>{if(p.nodeType===Node.TEXT_NODE)return(p.textContent??"").trim().length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;let u=p.tagName;return u==="BR"||u==="IMG"||u==="SVG"||p.classList?.contains("bp-p--empty")?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}}),s=i.nextNode();for(;s;){if(s.nodeType===Node.TEXT_NODE){let p=o.createRange();p.selectNodeContents(s);for(let u of p.getClientRects())u.height>0&&u.width>0&&a.push({top:u.top-t,bottom:u.bottom-t})}else{let p=s.getBoundingClientRect();p.height>0&&a.push({top:p.top-t,bottom:p.bottom-t})}s=i.nextNode()}if(a.length===0)return[];a.sort((p,u)=>p.top-u.top||p.bottom-u.bottom);let l=[];for(let p of a){let u=l[l.length-1];u&&p.top<u.bottom-.5?(u.top=Math.min(u.top,p.top),u.bottom=Math.max(u.bottom,p.bottom)):l.push({...p})}let c=[];for(let p=0;p<l.length-1;p++)c.push(un((l[p].bottom+l[p+1].top)/2));return c.push(un(n)),c}function Wi(e,t){let n=e.querySelector("table.bp-table");if(!n)return[];let r=[],o=(a,i)=>{for(let s of n.querySelectorAll(`:scope > ${a} > tr`)){let l=s.getBoundingClientRect();r.push({top:un(l.top-t),height:un(l.height),kind:i})}};return o("thead","header"),o("tbody","body"),o("tfoot","footer"),r}function un(e){return Math.round(e*100)/100}function vs(e){let t=new Map,n=r=>{t.set(r.key,r),r.children.forEach(n)};for(let r of e.body)n(r);for(let r of e.header.default)n(r);for(let r of e.header.firstPage??[])n(r);for(let r of e.footer.default)n(r);for(let r of e.footer.firstPage??[])n(r);return t}function Ss(e){let t=e.mode??"preview",n=Ae(e.theme),r=e.template,o=oo(r.page),a=e.now??new Date,i={locale:e.locale??r.settings?.locale??"en-GB",currency:e.currency??r.settings?.currency??"GBP",timeZone:e.timeZone??r.settings?.timeZone,now:a},s=Fn({template:r,registry:e.registry,theme:n,dataSources:e.dataSources,data:e.data,sampleData:e.sampleData,mode:t,now:a,locale:i.locale,currency:i.currency,timeZone:i.timeZone,designIterations:e.designIterations,allowStyleOverrides:e.allowStyleOverrides}),l={registry:e.registry,theme:n,styles:r.styles,mode:t,page:{number:1,total:1},format:i,width:o.contentWidth,decorate:e.decorate},c=[...s.header.default,...s.header.firstPage??[],...s.footer.default,...s.footer.firstPage??[]];return{input:e,mode:t,theme:n,template:r,page:o,format:i,resolved:s,baseOpts:l,regionSections:c}}function Ts(e,t,n){let{input:r,mode:o,theme:a,template:i,page:s,format:l,resolved:c,baseOpts:p}=e,u=An({document:c,geometry:t,page:s,minPages:r.minPages??i.page.minPages??1,regionGeometry:n}),d=vs(c),m=[...c.warnings.map(b=>({source:"resolve",message:b.message,nodeId:b.nodeId})),...u.warnings.map(b=>({source:"layout",message:b.message,nodeId:b.nodeId,page:b.page,code:b.code}))],f=b=>{let h=u.pages[b];if(!h)throw new Error(`Page ${b} does not exist`);let x={...p,page:{number:h.number,total:u.totalPages}};return Ui(h.index,h.number,u.totalPages,h.first,c,u,s,x,d,n,a,i.page.background,t)};return{resolved:c,paged:u,geometry:t,regionGeometry:n,page:s,theme:a,format:l,mode:o,warnings:m,nodesByKey:d,renderPage:f,renderPages:()=>u.pages.map((b,h)=>f(h))}}function hr(e,t){let n=Ss(e);t.setOptions?.(n.baseOpts);let r=t.measure(n.resolved.body,n.page.contentWidth),o=n.regionSections.length?t.measure(n.regionSections,n.page.contentWidth):{};return Ts(n,r,o)}function $s(e,t,n,r){if(!t)return e;let o=a=>{let i=a.props["data-key"];if(typeof i=="string"){let s=t.nodes[i];if(s){if(s.top+s.height<=n-.01||s.top>=r+.01){let c=a.props.style,p=typeof c=="string"?`${c};height:${s.height}px;overflow:hidden`:{...c??{},height:`${s.height}px`,overflow:"hidden"};return{...a,props:{...a.props,style:p,"data-culled":""},children:[]}}if(s.rows&&s.rows.length)return{...a,children:a.children.map(c=>typeof c=="string"?c:qi(c,s.rows,n,r))}}}return{...a,children:a.children.map(s=>typeof s=="string"?s:o(s))}};return o(e)}function qi(e,t,n,r){if(e.tag==="table"){let o=t.filter(a=>a.kind==="body");return{...e,children:e.children.map(a=>{if(typeof a=="string"||a.tag!=="tbody")return a;let i=a.children.filter(u=>typeof u!="string"&&u.tag==="tr");if(i.length!==o.length)return a;let s=0,l=0,c=[];for(let u=0;u<i.length;u++){let d=o[u];d.top+d.height<=n+.01?s+=d.height:d.top>=r-.01?l+=d.height:c.push(i[u])}let p=u=>v("tr",{class:"bp-table__spacer"},v("td",{colspan:"100",style:{padding:"0",border:"0",height:`${u}px`}}));return{...a,children:[...s>0?[p(s)]:[],...c,...l>0?[p(l)]:[]]}})}}return{...e,children:e.children.map(o=>typeof o=="string"?o:qi(o,t,n,r))}}function Rs(e,t,n){let r=we(e,t,n);if(!r)return null;At(r,a=>a.tag==="table"?(a.children=a.children.filter(i=>typeof i=="string"||i.tag==="colgroup"||i.tag==="thead"),!1):!0);let o={...r.props};return delete o.style,r.props={...o,class:[String(o.class??""),"bp-repeat-header__node"]},r}function Ui(e,t,n,r,o,a,i,s,l,c,p,u,d){let m=a.pages[e],f={width:`${i.width}px`,height:`${i.height}px`,background:q(u,p,"#ffffff")},b=(g,P,T,C,I)=>{if(!g||g.length===0||T<=0)return null;let W=g.reduce((E,y)=>E+(c[y.key]?.height??0),0),B=I==="bottom"?Math.max(0,T-W):0;return v("div",{class:["bp-page__region",`bp-page__${C}`],"data-region":C,style:{top:`${P}px`,left:`${i.margins.left}px`,width:`${i.contentWidth}px`,height:`${T}px`}},v("div",{class:"bp-page__region-inner",style:{position:"absolute",top:`${B}px`,left:"0",width:"100%"}},g.map(E=>we(E,s,i.contentWidth))))},h=r&&o.header.firstPage?o.header.firstPage:o.header.default,x=r&&o.footer.firstPage?o.footer.firstPage:o.footer.default,R=(g,P,T)=>{let C=we(g,s,i.contentWidth);return C?$s(C,d?.[g.key],P,T):null},w=m.fragments.map(g=>{let P=l.get(g.sectionKey);if(!P)return null;let T=g.repeatHeaders.reduce((I,W)=>I+W.height,0),C=g.repeatHeaders.map(I=>{let W=l.get(I.tableKey),B=W?Rs(W,s,I.width):null;return v("div",{class:"bp-repeat-header","data-table":I.tableKey,style:{left:`${I.left}px`,width:`${I.width}px`,height:`${I.height}px`}},B)});return v("div",{class:["bp-fragment",g.continued&&"bp-fragment--continued",g.continues&&"bp-fragment--continues"],"data-section":g.sectionKey,"data-from":String(g.from),"data-to":String(g.to),style:{top:`${g.y}px`,height:`${g.height}px`}},C,v("div",{class:"bp-fragment__clip",style:{top:`${T}px`,height:`${g.to-g.from}px`}},v("div",{class:"bp-fragment__content",style:{"margin-top":`${-g.from}px`,width:`${i.contentWidth}px`}},R(P,g.from,g.to))))});return v("div",{class:["bp-page",r&&"bp-page--first"],"data-page":String(t),"data-page-index":String(e),style:f,"aria-label":`Page ${t} of ${n}`},b(h,i.headerTop,i.headerHeight,"header","top"),v("div",{class:"bp-page__body","data-region":"body",style:{top:`${i.contentTop}px`,left:`${i.margins.left}px`,width:`${i.contentWidth}px`,height:`${i.contentHeight}px`}},w),b(x,i.footerTop,i.footerHeight,"footer","bottom"))}var yr=`
3
3
  .bp-doc, .bp-doc * { box-sizing: border-box; }
4
4
  .bp-doc { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-variant-numeric: tabular-nums; }
5
5
  .bp-doc p { margin: 0; }
@@ -70,5 +70,5 @@
70
70
  .bp-page { break-after: page; page-break-after: always; box-shadow: none !important; margin: 0 !important; }
71
71
  .bp-page:last-child { break-after: auto; page-break-after: auto; }
72
72
  }
73
- `;function gr(e){return(e.fonts??[]).map(t=>{let n=(Array.isArray(t.src)?t.src:[t.src]).map(r=>`url("${r.replace(/"/g,"%22")}")`).join(", ");return`@font-face{font-family:"${t.family.replace(/"/g,"")}";src:${n};font-weight:${t.weight??400};font-style:${t.style??"normal"};font-display:${t.display??"block"};}`}).join(`
74
- `)}async function hr(e,t=[]){let n=e.fonts;if(n)try{await Promise.all(t.map(r=>n.load(`12px "${r}"`).catch(()=>{}))),await n.ready}catch{}}var zi=[];function xs(e){for(let t of e)zi.push(t)}async function ks(e){let t=new pt([...Ii,...zi]),{template:n}=$n(e.template),r=Ae(e.theme),o=document;$t(o,"bp-document-css",mr),$t(o,"bp-theme-fonts",gr(r)),await hr(o,(r.fonts??[]).map(l=>l.family));let i=new Rt(o),a=fr({template:n,registry:t,theme:r,dataSources:e.dataSources,data:e.data,mode:e.mode??"preview",now:e.now?new Date(e.now):new Date,locale:e.locale,currency:e.currency,timeZone:e.timeZone},i),{width:s,height:c}=a.page;return $t(o,"bp-print-css",`@page{size:${s}px ${c}px;margin:0;}html,body{margin:0;padding:0;background:#fff;}.bp-page{break-after:page;page-break-after:always;}.bp-page:last-child{break-after:auto;page-break-after:auto;}`),o.body.className="bp-doc",dr(o.body,a.renderPages()),i.destroy(),await Promise.all([...o.images].map(l=>l.complete?Promise.resolve():new Promise(p=>{l.addEventListener("load",()=>p(),{once:!0}),l.addEventListener("error",()=>p(),{once:!0})}))),{pages:a.paged.totalPages,width:s,height:c,warnings:a.warnings}}return Zi(ws);})();
73
+ `;function br(e){return(e.fonts??[]).map(t=>{let n=(Array.isArray(t.src)?t.src:[t.src]).map(r=>`url("${r.replace(/"/g,"%22")}")`).join(", ");return`@font-face{font-family:"${t.family.replace(/"/g,"")}";src:${n};font-weight:${t.weight??400};font-style:${t.style??"normal"};font-display:${t.display??"block"};}`}).join(`
74
+ `)}async function xr(e,t=[]){let n=e.fonts;if(n)try{await Promise.all(t.map(r=>n.load(`12px "${r}"`).catch(()=>{}))),await n.ready}catch{}}var Zi=[];function Ps(e){for(let t of e)Zi.push(t)}async function Ms(e){let t=new pt([...ji,...Zi]),{template:n}=Rn(e.template),r=Ae(e.theme),o=document;$t(o,"bp-document-css",yr),$t(o,"bp-theme-fonts",br(r)),await xr(o,(r.fonts??[]).map(c=>c.family));let a=new Rt(o),i=hr({template:n,registry:t,theme:r,dataSources:e.dataSources,data:e.data,mode:e.mode??"preview",now:e.now?new Date(e.now):new Date,locale:e.locale,currency:e.currency,timeZone:e.timeZone},a),{width:s,height:l}=i.page;return $t(o,"bp-print-css",`@page{size:${s}px ${l}px;margin:0;}html,body{margin:0;padding:0;background:#fff;}.bp-page{break-after:page;page-break-after:always;}.bp-page:last-child{break-after:auto;page-break-after:auto;}`),o.body.className="bp-doc",gr(o.body,i.renderPages()),a.destroy(),await Promise.all([...o.images].map(c=>c.complete?Promise.resolve():new Promise(p=>{c.addEventListener("load",()=>p(),{once:!0}),c.addEventListener("error",()=>p(),{once:!0})}))),{pages:i.paged.totalPages,width:s,height:l,warnings:i.warnings}}return ta(Cs);})();