pacem 0.53.0-stevin → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/css/pacem-dark-content.min.css +1 -1
  2. package/dist/css/pacem-dark-shell.min.css +1 -1
  3. package/dist/css/pacem-dark.min.css +1 -1
  4. package/dist/css/pacem-light-content.min.css +1 -1
  5. package/dist/css/pacem-light-shell.min.css +1 -1
  6. package/dist/css/pacem-light.min.css +1 -1
  7. package/dist/css/pacem-phousys-content.min.css +1 -1
  8. package/dist/css/pacem-phousys-shell.min.css +1 -1
  9. package/dist/css/pacem-phousys.min.css +1 -1
  10. package/dist/js/azure-maps.d.ts +1 -1
  11. package/dist/js/pacem-2d.d.ts +1 -1
  12. package/dist/js/pacem-2d.js +2 -1
  13. package/dist/js/pacem-2d.min.js +2 -2
  14. package/dist/js/pacem-3d.d.ts +29 -1
  15. package/dist/js/pacem-3d.js +58 -24
  16. package/dist/js/pacem-3d.min.js +2 -2
  17. package/dist/js/pacem-charts.d.ts +1 -1
  18. package/dist/js/pacem-charts.js +2 -1
  19. package/dist/js/pacem-charts.min.js +2 -2
  20. package/dist/js/pacem-cms.d.ts +1 -1
  21. package/dist/js/pacem-cms.js +2 -1
  22. package/dist/js/pacem-cms.min.js +2 -2
  23. package/dist/js/pacem-core.d.ts +1 -1
  24. package/dist/js/pacem-core.js +2 -1
  25. package/dist/js/pacem-core.min.js +2 -2
  26. package/dist/js/pacem-foundation.d.ts +1 -1
  27. package/dist/js/pacem-foundation.js +2 -1
  28. package/dist/js/pacem-foundation.min.js +2 -2
  29. package/dist/js/pacem-fx.d.ts +1 -1
  30. package/dist/js/pacem-fx.js +2 -1
  31. package/dist/js/pacem-fx.min.js +2 -2
  32. package/dist/js/pacem-logging.d.ts +1 -1
  33. package/dist/js/pacem-logging.js +2 -1
  34. package/dist/js/pacem-logging.min.js +2 -2
  35. package/dist/js/pacem-maps.d.ts +1 -1
  36. package/dist/js/pacem-maps.js +2 -1
  37. package/dist/js/pacem-maps.min.js +2 -2
  38. package/dist/js/pacem-media.d.ts +1 -1
  39. package/dist/js/pacem-media.js +2 -1
  40. package/dist/js/pacem-media.min.js +2 -2
  41. package/dist/js/pacem-networking.d.ts +1 -1
  42. package/dist/js/pacem-networking.js +2 -1
  43. package/dist/js/pacem-networking.min.js +2 -2
  44. package/dist/js/pacem-numerical.d.ts +1 -1
  45. package/dist/js/pacem-numerical.js +2 -1
  46. package/dist/js/pacem-numerical.min.js +2 -2
  47. package/dist/js/pacem-plus.d.ts +1 -1
  48. package/dist/js/pacem-plus.js +2 -1
  49. package/dist/js/pacem-plus.min.js +2 -2
  50. package/dist/js/pacem-scaffolding.d.ts +1 -1
  51. package/dist/js/pacem-scaffolding.js +11 -1
  52. package/dist/js/pacem-scaffolding.min.js +2 -2
  53. package/dist/js/pacem-ui.d.ts +1 -1
  54. package/dist/js/pacem-ui.js +2 -1
  55. package/dist/js/pacem-ui.min.js +2 -2
  56. package/dist/js/swagger-types.d.ts +1 -1
  57. package/package.json +8 -9
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,8 +1,9 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
+ "use strict";
6
7
  var Pacem;
7
8
  (function (Pacem) {
8
9
  class Arrays {
@@ -1,6 +1,6 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
- var Pacem;!function(e){e.Arrays=class Arrays{static range(t,r,n=2){let a=t;e.NullChecker.isNull(r)&&(r=n=t,t=1);const s=(r-t)/(n-1),i=[];if(s>0)for(;i.length<n;)i.push(a.roundoff()),a+=s;return i}static chunkify(t,r){if(e.NullChecker.isNullOrEmpty(t))return[];if(r<=0||r%1!=0)throw new Error("Provide a positive integer number.");const n=Math.ceil(t.length/r);return Array.from({length:n},(e,n)=>{const a=n*r,s=a+r;return t.slice(a,s)})}}}(Pacem||(Pacem={})),function(e){class Blobs{static blobToDataURL(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=e=>{t(e.target.result)},n.readAsDataURL(e)})}static _b64ToUint8Array(e){let t=e.length;const r=new Uint8Array(t);for(;t--;)r[t]=e.charCodeAt(t);return r}static base64ToBlob(e,t){const r=Blobs._b64ToUint8Array(atob(e));return new Blob([r],t)}static dataURLToBlob(e){const t=e.indexOf(",");if(-1===t)return Blobs.base64ToBlob(e);{const r=e.substring(t+1),n=e.substring(0,t).match(/:(.*?);/)[1];return Blobs.base64ToBlob(r,{type:n})}}static blobToText(e,t){return new Promise((r,n)=>{e.arrayBuffer().then(e=>{const n=new TextDecoder(t).decode(e);r(n)})})}static textToBlob(e,t="text/plain"){const r=(new TextEncoder).encode(e);return new Blob([r],{type:t})}}e.Blobs=Blobs}(Pacem||(Pacem={})),function(e){!function(e){const t=(e,t)=>{const r=e.match(t);return r?r[2]:null};e.detect=function(e=navigator.userAgent){let r="unknown",n=null;switch(/ucbrowser/i.test(e)?r="UCBrowser":/edg/i.test(e)?r="Edge":/googlebot/i.test(e)?r="GoogleBot":/chromium/i.test(e)?r="Chromium":/firefox|fxios/i.test(e)&&!/seamonkey/i.test(e)?r="Firefox":/; msie|trident/i.test(e)&&!/ucbrowser/i.test(e)?r="IE":/chrome|crios/i.test(e)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(e)?r="Chrome":/safari/i.test(e)&&!/chromium|edg|ucbrowser|chrome|crios|opr|opera|fxios|firefox/i.test(e)?r="Safari":/opr|opera/i.test(e)&&(r="Opera"),r){case"UCBrowser":n=t(e,/(ucbrowser)\/([\d\.]+)/i);break;case"Edge":n=t(e,/(edge|edga|edgios|edg)\/([\d\.]+)/i);break;case"GoogleBot":n=t(e,/(googlebot)\/([\d\.]+)/i);break;case"Chromium":n=t(e,/(chromium)\/([\d\.]+)/i);break;case"Firefox":n=t(e,/(firefox|fxios)\/([\d\.]+)/i);break;case"Chrome":n=t(e,/(chrome|crios)\/([\d\.]+)/i);break;case"Safari":n=t(e,/(safari)\/([\d\.]+)/i);break;case"Opera":n=t(e,/(opera|opr)\/([\d\.]+)/i);break;case"IE":{const r=t(e,/(trident)\/([\d\.]+)/i);n=r?`${parseFloat(r)+4}`:"7.0";break}default:n="0.0.0.0"}return{name:r,version:n}}}(e.Browsers||(e.Browsers={}))}(Pacem||(Pacem={})),function(e){const t=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,r=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,n=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,a=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,s=/^#[a-f0-9]{6}$/,i=/^#[a-f0-9]{3}$/;function o(t){return!e.NullChecker.isNullOrEmpty(t)&&"object"==typeof t&&"r"in t&&"g"in t&&"b"in t&&"number"==typeof t.r&&"number"==typeof t.b&&"number"==typeof t.g&&(t.a??=1,t.r>=0&&t.r<=1&&t.g>=0&&t.g<=1&&t.b>=0&&t.b<=1&&t.a>=0&&t.a<=1)}function c(t){return!e.NullChecker.isNullOrEmpty(t)&&"object"==typeof t&&"h"in t&&"s"in t&&"l"in t&&"number"==typeof t.h&&"number"==typeof t.s&&"number"==typeof t.l&&(t.a??=1,t.h>=0&&t.h<=360&&t.s>=0&&t.s<=1&&t.l>=0&&t.l<=1&&t.a>=0&&t.a<=1)}const l={adjustRgbChannel:e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4),adjustRgbChannelInv:e=>e<=.00304?12.92*e:1.055*(Math.pow(e,1/2.4)-.055),adjustRgb:e=>({r:l.adjustRgbChannel(e.r),g:l.adjustRgbChannel(e.g),b:l.adjustRgbChannel(e.b),a:e.a}),adjustRgbInv:e=>({r:l.adjustRgbChannelInv(e.r),g:l.adjustRgbChannelInv(e.g),b:l.adjustRgbChannelInv(e.b),a:e.a}),X:e=>.4125*e.r+.3576*e.g+.1804*e.b,Y:e=>.2126*e.r+.7152*e.g+.0722*e.b,Z:e=>.0193*e.r+.1191*e.g+.9503*e.b,relativeLuminance:e=>{const t=l.adjustRgb(e);return l.Y(t)},rgbToCieXYZ:e=>{const t=l.adjustRgb(e);return{x:l.X(t),y:l.Y(t),z:l.Z(t),a:e.a}},cieXYZToRgb:e=>{const t=3.241*e.x-1.5374*e.y-.4986*e.z,r=-.9692*e.x+1.876*e.y+.0416*e.z,n=.0556*e.x-.204*e.y+1.057*e.z;return l.adjustRgbInv({r:t,g:r,b:n,a:e.a})},contrastRatio:(e,t)=>{const r=l.relativeLuminance(e)+.05,n=l.relativeLuminance(t)+.05;return r>n?r/n:n/r}};function u(t){return e.Strings.leftPad(t.toString(16),2,"0")}class Colors{static WCAG_MINIMUM_CONTRAST=3;static WCAG_NORMAL_TEXT_CONTRAST=4.5;static WCAG_SAFE_CONTRAST=7;static _clampRGB(e){const t=e=>Math.min(1,Math.max(0,e));return null==e[3]&&(e[3]=1),{r:t(e[0]),g:t(e[1]),b:t(e[2]),a:Math.min(1,Math.max(0,e[3]))}}static _normalize(e){return[e[0]/255,e[1]/255,e[2]/255,e[3]]}static parse(e){if(e=(e||"").toLowerCase(),n.test(e)){let t=n.exec(e);return this._clampRGB(this._normalize([parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]))}if(a.test(e)){let t=a.exec(e);return this._clampRGB(this._normalize([parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]))}if(s.test(e)){let t=s.exec(e)[0];return this._clampRGB(this._normalize([parseInt("0x"+t.substr(1,2)),parseInt("0x"+t.substr(3,2)),parseInt("0x"+t.substr(5,2)),1]))}if(i.test(e)){let t=i.exec(e)[0],r=t.substr(1,1),n=t.substr(2,1),a=t.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+n+n),parseInt("0x"+a+a),1]))}if(t.test(e)){let r=t.exec(e);const n={h:parseFloat(r[1]),s:.01*parseFloat(r[2]),l:.01*parseFloat(r[3])};return this.rgb(n)}if(r.test(e)){let t=r.exec(e);const n={h:parseFloat(t[1]),s:.01*parseFloat(t[2]),l:.01*parseFloat(t[3]),a:parseFloat(t[4])};return this.rgb(n)}}static hsl(e){const t=function(e){const t=e.r,r=e.g,n=e.b;return(.5*(Math.max(t,r,n)+Math.min(t,r,n))).clamp(0,1)}(e),r=function(e,t){const r=e.r,n=e.g,a=e.b,s=Math.max(r,n,a),i=Math.min(r,n,a);return(0===t||1===t?0:(s-i)/(1-Math.abs(2*t-1))).clamp(0,1)}(e,t),n=function(e){const t=e.r,r=e.g,n=e.b,a=Math.max(t,r,n),s=Math.min(t,r,n);let i=0;return a!==s&&(i=a===t?((r-n)/(a-s)*60+360)%360:a===r?((n-t)/(a-s)*60+120)%360:((t-r)/(a-s)*60+240)%360),i.clamp(0,360)}(e);return{h:n,s:r,l:t,a:e.a}}static cieXYZ(e){return c(e)&&(e=this.rgb(e)),l.rgbToCieXYZ(e)}static rgb(e){if(!c(e)){const t=l.cieXYZToRgb(e);return this._clampRGB([t.r,t.g,t.b,t.a])}{const t=e.h,r=e.s,n=e.l,a=t/60,s=(1-Math.abs(2*n-1))*r,i=s*(1-Math.abs(a%2-1)),o=n-s/2,c=(t,r,n)=>this._clampRGB([t+o,r+o,n+o,e.a]);if(a<=1)return c(s,i,0);if(a<=2)return c(i,s,0);if(a<=3)return c(0,s,i);if(a<=4)return c(0,i,s);if(a<=5)return c(i,0,s);if(a<=6)return c(s,0,i)}}static stringify(e,t=1){if(c(e)){t??=1,e.a??=1;const r="number"==typeof t?t:1;return`hsla(${e.h.roundoff(r)},${(100*e.s).roundoff(r)}%,${(100*e.l).roundoff(r)}%,${e.a.roundoff()})`}if(o(e)){t??=!0,e.a??=1;const r="boolean"==typeof t?t:!!t,n=Math.round(255*e.r),a=Math.round(255*e.g),s=Math.round(255*e.b),i=e.a.roundoff();return 1===i?r?("#"+u(n)+u(a)+u(s)).toUpperCase():`rgb(${n},${a},${s})`:`rgba(${n},${a},${s},${i})`}}static contrastRatio(e,t){return c(e)&&(e=this.rgb(e)),c(t)&&(t=this.rgb(t)),l.contrastRatio(e,t)}static luminance(e){return c(e)&&(e=Colors.rgb(e)),l.relativeLuminance(e)}static lighten(e,t=.1){if(t||=0,c(e)){const r=Math.min(1,Math.max(0,e.l+t));return Object.assign({},e,{l:r})}if(o(e)){const r=this.lighten(this.hsl(e),t);return this.rgb(r)}return e}static darken(e,t=.1){return this.lighten(e,-t)}static saturate(e,t=.1){if(t||=0,c(e)){const r=Math.min(1,Math.max(0,e.s+t));return Object.assign({},e,{s:r})}if(o(e)){const r=this.saturate(this.hsl(e),t);return this.rgb(r)}return e}static desaturate(e,t=.1){return this.saturate(e,-t)}static interpolate(e,t,r,n){r??=.5,n??=r;const a=(r+n).roundoff(),s=(r/a).roundoff(),i=(n/a).roundoff(),l=o(e),u=c(e),h=e=>o(e)||c(e)?Colors.cieXYZ(e):e;e=h(e),t=h(t);const d={x:(e.x*s+t.x*i).roundoff(),y:(e.y*s+t.y*i).roundoff(),z:(e.z*s+t.z*i).roundoff(),a:(e.a*s+t.a*i).roundoff()};return l?Colors.rgb(d):u?Colors.hsl(Colors.rgb(d)):d}}e.Colors=Colors}(Pacem||(Pacem={})),function(e){const t=/^\/Date\([\d]+\)\/$/i;class Dates{static parse(e){let r;return"string"==typeof e?(r=t.test(e)?parseInt(e.substring(6)):Date.parse(e),new Date(r)):"number"==typeof e?new Date(e):e}static isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}static daysInMonth(e,t){return[31,Dates.isLeapYear(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]}static isDate(e){return e instanceof Date&&!isNaN(e.valueOf())}static dateOnly(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}static addMonths(e,t){let r=e.getDate(),n=new Date(e),a=n.getMonth()+t,s=0;for(;a<0;)a+=12,s--;return n.setDate(1),n.setMonth(a%12),n.setFullYear(n.getFullYear()+s+Math.floor(a/12)),n.setDate(Math.min(r,Dates.daysInMonth(n.getFullYear(),n.getMonth()))),n}static addDays(e,t){return new Date(e.valueOf()+864e5*t)}static daysBetween(e,t){return(t.valueOf()-e.valueOf())/864e5}}e.Dates=Dates}(Pacem||(Pacem={})),function(e){const t=/[-+]?([\d]+(\.[\d]+(e-[\d]+)?)?|[\d]*(\.[\d]+(e-[\d]+)?))/g;function r(e){const r=[];let n=e.match(t);return n&&n.length>0&&n.forEach(e=>r.push(parseFloat(e))),r}e.parseAsNumericalArray=r;class Angle{static isAngle(e){return"object"==typeof e&&"vertex"in e&&Point.isPoint(e.vertex)&&"start"in e&&Point.isPoint(e.start)&&"end"in e&&Point.isPoint(e.end)}static value(t){if(e.NullChecker.isNullOrEmpty(t)||!Angle.isAngle(t))return Number.NaN;const{vertex:r,start:n,end:a}=t;return Angle.angleBetween(r,n,a)}static angleBetween(e,t,r){const n=t.x-e.x,a=t.y-e.y,s=r.x-e.x,i=r.y-e.y,o=n*s+a*i,c=n*i-a*s;return-Math.atan2(c,o)}}e.Angle=Angle;class Size{static parse(e){let t=r(e);if(t&&2===t.length)return{width:t[0],height:t[1]};throw new Error(`Cannot parse "${e}" as a valid Size.`)}static isSize(e){return"object"==typeof e&&"width"in e&&"number"==typeof e.width&&"height"in e&&"number"==typeof e.height}}e.Size=Size;class Point{static parse(e){let t=r(e);if(t&&2===t.length)return{x:t[0],y:t[1]};throw new Error(`Cannot parse "${e}" as a valid Point.`)}static isPoint(e){return"object"==typeof e&&"x"in e&&"number"==typeof e.x&&"y"in e&&"number"==typeof e.y}static distance(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}static subtract(e,t){return{x:t.x-e.x,y:t.y-e.y}}static add(...e){var t={x:0,y:0};for(var r of e)t.x+=r.x,t.y+=r.y;return t}static multiply(e,t){return{x:e.x*t,y:e.y*t}}}e.Point=Point;class Rect{static parse(e){let t=r(e);if(t&&4===t.length)return{x:t[0],y:t[1],width:t[2],height:t[3]};throw new Error(`Cannot parse "${e}" as a valid Rect.`)}static isRect(e){return Point.isPoint(e)&&Size.isSize(e)}static _stretch(e,t){return{a:t.width/e.width,b:0,c:0,d:t.height/e.height,e:t.x-e.x,f:t.y-e.y}}static _contain(t,r,n,a){let s=1;s=t.width/t.height>=r.width/r.height?r.width/t.width:r.height/t.height;const i=t.width*s,o=t.height*s,c=this._align({x:t.x,y:t.y,width:i,height:o},r,n,a);return e.Matrix2D.translate({a:s,b:0,c:0,d:s,e:0,f:0},c)}static _cover(t,r,n,a){let s=1;s=t.width/t.height<r.width/r.height?r.width/t.width:r.height/t.height;const i=t.width*s,o=t.height*s,c=this._align({x:t.x,y:t.y,width:i,height:o},r,n,a);return e.Matrix2D.translate({a:s,b:0,c:0,d:s,e:0,f:0},c)}static _align(e,t,r,n){let a=0,s=0;switch(r){case"left":a=t.x-e.x;break;case"right":a=t.x+t.width-e.width-e.x;break;default:a=t.x+.5*t.width-.5*e.width-e.x}switch(n){case"top":s=t.y-e.y;break;case"bottom":s=t.y+t.height-e.height-e.y;break;default:s=t.y+.5*t.height-.5*e.height-e.y}return{x:a,y:s}}static findTransform(e,t,r="stretch",n="center",a="middle"){switch(r){case"contain":return this._contain(e,t,n,a);case"cover":return this._cover(e,t,n,a);default:return this._stretch(e,t)}}static intersect(...e){const t={x:0,y:0,height:0,width:0},r=Array.from(e||[]);if(r.length<=0)return t;for(var n=r[0],a=1;a<r.length;a++){const e=r[a],s=Math.max(e.x,n.x),i=Math.max(e.y,n.y),o=Math.min(e.x+e.width,n.x+n.width)-s,c=Math.min(e.y+e.height,n.y+n.height)-i;if(o<0||c<=0)return t;n={x:s,y:i,width:o,height:c}}return n}static expand(e,...t){const r=Array.from(t||[]);let n=e.x,a=e.y,s=n,i=a;Rect.isRect(e)&&(s+=e.width,i+=e.height);for(let e of r)n=Math.min(e.x,n),a=Math.min(e.y,a),s=Math.max(e.x,s),i=Math.max(e.y,i);return{x:n,y:a,width:s-n,height:i-a}}}e.Rect=Rect}(Pacem||(Pacem={})),function(e){e.HistoryService=class HistoryService{constructor(e,t){this.#e=e,this.#t=t}#r=[];#n=[];#t;#e;get current(){return this.#e}get canUndo(){return this.#r.length>0}get canRedo(){return this.#n.length>0}set maxlength(e){this.#t=e}undo(){if(this.canUndo){const e=this.#r,t=this.#n,r=this.#e;t.unshift(r),this.#e=e.pop()}}redo(){if(this.canRedo){const e=this.#r,t=this.#n,r=this.#e;e.push(r),this.#e=t.shift()}}push(e){this.#n.splice(0),this.#r.push(this.#e),this.#e=e;const t=this.#t,r=this.#r;t>0&&r.length>t&&r.splice(0,r.length-t)}reset(){this.#n.splice(0),this.#r.splice(0)}}}(Pacem||(Pacem={})),function(e){const t={mode:"stretch",align:"center",valign:"middle",quality:1,type:"image/jpeg"};class Imaging{static async loadImage(e){const t=await fetch(e);if(!t.ok)return null;return await t.blob()}static async resizeImage(r,n,a,s){if(n<=0||a<=0||isNaN(n)||isNaN(a))throw new Error("Invalid target size");"string"==typeof r&&(r=await Imaging.loadImage(r));const i=await self.createImageBitmap(r),o=i.width,c=i.height,l=new OffscreenCanvas(o,c),u=l.getContext("2d");u.imageSmoothingEnabled=u.mozImageSmoothingEnabled=u.oImageSmoothingEnabled=u.webkitImageSmoothingEnabled=!0;const{quality:h,type:d,mode:g,align:f,valign:p,background:m}=Object.assign({},t,s??{}),y={width:o,height:c,x:0,y:0},x={x:0,y:0,width:n,height:a},b=e.Rect.findTransform(y,x,g,f,p);l.width=n,l.height=a,m&&(u.fillStyle=m,u.fillRect(0,0,l.width,l.height)),u.setTransform(b),u.drawImage(i,0,0);return await l.convertToBlob({quality:h,type:d})}}e.Imaging=Imaging}(Pacem||(Pacem={})),function(e){class Keys{static#a;static uniqueId(){let e=Keys.#a||Date.now();return Keys.#a=++e}static uniqueCode(){return Keys.uniqueId().toBase62()}static randomString(e){let t="";do{t+=(62*Math.random()).toBase62()}while(t.length<e);return t}}e.Keys=Keys}(Pacem||(Pacem={})),function(e){class Matrix2D{static isIdentity(e){return 1===e.a&&1===e.d&&0===e.b&&0===e.f&&0===e.c&&0===e.e}static get identity(){return{a:1,b:0,c:0,d:1,e:0,f:0}}static copy(e){return{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}}static scale(e,t,r=t){return{a:e.a*t,b:e.b,c:e.c,d:e.d*r,e:e.e,f:e.f}}static translate(e,t){return{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e+t.x,f:e.f+t.y}}static rotate(e,t){const r=Math.cos(t),n=Math.sin(t);return Matrix2D.multiply(e,{a:r,b:n,c:-n,d:r,e:0,f:0})}static multiply(e,t){return"x"in e&&"y"in e?"number"==typeof t?{x:e.x*t,y:e.y*t}:{x:e.x*t.a+e.y*t.c+t.e,y:e.x*t.b+e.y*t.d+t.f}:"number"==typeof t?{a:e.a*t,b:e.b*t,c:e.c*t,d:e.d*t,e:e.e*t,f:e.f*t}:{a:e.a*t.a+e.b*t.c,b:e.a*t.b+e.b*t.d,c:e.c*t.a+e.d*t.c,d:e.c*t.b+e.d*t.d,e:e.e*t.a+e.f*t.c+t.e,f:e.e*t.b+e.f*t.d+t.f}}static det(e){return e.a*e.d-e.c*e.b}static invert(e){const t=this.det(e);if(0===t)return null;const r=1/t;return this.multiply({a:e.d,b:-e.b,c:-e.c,d:e.a,e:-e.e*e.d+e.c*e.f,f:e.e*e.b-e.a*e.f},r)}static toComponents(e,t={x:0,y:0}){const r=Math.sqrt(e.a*e.a+e.c*e.c),n=Math.sqrt(e.b*e.b+e.d*e.d),a=0!=r?e.a/r:0,s=0!=r?e.c/r:0,i=Math.atan2(s,a),{x:o,y:c}=t;return{scaleX:r,scaleY:n,rotation:i,translation:{x:e.e-o*(r*a-1)+c*r*s,y:e.f-c*(n*a-1)-o*n*s}}}}e.Matrix2D=Matrix2D}(Pacem||(Pacem={})),function(e){class NullChecker{static isNull(e){return null==e}static isEmpty(t){try{return Array.isArray(t)&&0===t.length||"string"==typeof t&&""===t||"object"==typeof t&&0===Object.keys(t).length&&!e.Dates.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch(e){return!1}}static isNullOrEmpty(e){return NullChecker.isNull(e)||NullChecker.isEmpty(e)}}e.NullChecker=NullChecker}(Pacem||(Pacem={})),Number.prototype.isCloseTo=function(e,t=14){return this.toFixed(t)===e.toFixed(t)},Number.prototype.roundoff=function(e=14){return parseFloat(this.toFixed(e))},Number.prototype.clamp=function(e,t){let r=this;return null==e||isNaN(e)||(r=Math.max(r,e)),null==t||isNaN(t)||(r=Math.min(r,t)),r},Number.prototype.toBase62=function(){for(var e=this,t="";0!=e;){t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(e%62)+t,e=Math.floor(e/62)}return t},Number.prototype.toBase36=function(){return this.toString(36)},function(e){e.Numbers=class Numbers{static round(e,t=1){return Math.round(e/t)*t}static log(e,t){return Math.log10(e)/Math.log10(t)}static rebase(e,t,r){const n=e.toString(),a=parseInt(n,t);return n.endsWith(a.toString(t))?parseInt(e.toString(),t).toString(r):Number.NaN.toString()}}}(Pacem||(Pacem={})),function(e){function t(e,t){const r=e.length,n=t.length,a=Array.from({length:r+1},()=>Array(n+1).fill(0));for(let s=1;s<=r;s++)for(let r=1;r<=n;r++)e[s-1]===t[r-1]?a[s][r]=a[s-1][r-1]+1:a[s][r]=Math.max(a[s-1][r],a[s][r-1]);return a}function r(e,t,r,n=""){const a=e.length,s=t.length,i=[];let o=a,c=s,l=null;const u=()=>{l&&(i.push(l),l=null)};for(;o>0||c>0;){var h=null;let a=null;o>0&&c>0&&e[o-1]===t[c-1]?(h="=",a=e[o-1],o--,c--):c>0&&(0===o||r[o][c-1]>=r[o-1][c])?(h="+",a=t[c-1],c--):o>0&&(0===c||r[o-1][c]>r[o][c-1])&&(h="-",a=e[o-1],o--),h&&null!==a?l&&l.type===h?l.value=a+(l.value?n:"")+l.value:(u(),l={type:h,value:a}):u()}return u(),i.reverse()}e.Strings=class Strings{static leftPad(e,t,r){let n=e.toString();for(;n.length<t;)n=r+n;return n}static format(t,...r){const n=Array.from(r);let a=t;for(let e=0;e<n.length;e++){const t=new RegExp("(^|[^\\{])\\{"+e+"\\}($|[^\\}])","g");a=a.replaceAll(t,(t,...r)=>t.replace("{"+e+"}",n[e]))}const s=/(^|[^\{}])\{(\d+)\}($|[^\}])/.exec(a);if(!e.NullChecker.isNullOrEmpty(s))throw new Error(`Missing argument at index ${s[2]}.`);return a}static diff(e,n,a="char"){switch(a){case"line":return function(e,n){const a=/\r?\n/,s=e.split(a),i=n.split(a);return r(s,i,t(s,i),"\n")}(e,n);case"word":return function(e,n){const a=/(\S+|\s+)/g,s=e.match(a)||[],i=n.match(a)||[];return r(s,i,t(s,i),"")}(e,n);default:return function(e,n){const a=e.split(""),s=n.split("");return r(a,s,t(a,s),"")}(e,n)}}static async hash(e,t="SHA-256"){const r=await crypto.subtle.digest(t,(new TextEncoder).encode(e));return Array.from(new Uint8Array(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}}}(Pacem||(Pacem={})),function(e){!function(e){class LexerClass{tokenize(e,t){const r=[];for(;e;){const n=e.length;for(let n of t){const t=n.exec(e,this),a=t?.length;if(a>0){Array.prototype.push.apply(r,t);const n=t[a-1];e=e.substr((n.index||0)+n.raw.length);break}}if(e.length>=n)throw new Error(`Cannot parse\n"${e}"\n using the provided grammar.`)}return r}}e.Parser=class Parser{_lexer;constructor(e=new LexerClass){this._lexer=e}parse(e,t,r){const n=this._lexer.tokenize(e,t);return r.render(n)}}}(e.Compile||(e.Compile={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){function r(e){return(e??"").replace(/</g,"&lt;")}function n(e){return e?.index||void 0}function a(e){return e?.replace(/[^\w]+/g," ").trim().replace(/ +/g,"-").toLowerCase()}function s(e,t,r){const n=t.exec(e);return n&&n.length?r(n):null}const i=/(<!--)([\s\S]*?)(-->|$)/,o=/^ {0,3}(={3,}|_{3,}|-{3,})(\r?\n|$)/,c=/^ {0,3}(#{1,6})\s+([^\n]+)(\r?\n|$)+/,l=/^ {0,3}([^\n]+)(\r?\n=+(\r?\n|$))+/,u=/^ {0,3}([^\n]+)(\r?\n-+(\r?\n|$))+/,h=/^ {4,}.+(\r?\n {4,}.+)*(\r?\n|$)+/,d=/^ {0,3}``` *([^\n]*)\r?\n(([\s\S](?!\r?\n {0,3}```))*.(\r?\n)+) {0,3}```(\r?\n|$)+/,g=/^ {0,3}> *([^\n]+)(\r?\n {0,3}> *([^\n]*))*(\r?\n|$)+/,f=/^( {0,3}([-+]).*\r?\n|$)((?!(?: {0,3}(?:\d+[.\)]|\r?\n\S))).*(\r?\n|$))*/,p=/^( {0,3}(\d+[.\)]).*\r?\n|$)((?!(?: {0,3}(?:[+-]|\r?\n\S))).*(\r?\n|$))*/,m=/^(?:[-+*]|\d+[.\)])/m,y=/^(?! {4,})(.+(\n(?! {0,3}```)(?! {0,3}([-+]|\d+[.\)]))(?! {4,})(?! {0,3}>).+)*)/,x=/^ {0,3}(!?)\[([^\]]+)\]: +(\S+)(?: +['"\(](.+)['"\)])?(\r?\n|$)+/,b=/!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?(\[[^\[\]]*\]|\([^\(\)]*\))?/,w=/(\*\*?|__?)(\[[^\]]*]\([^\)]+\))\1/,k=/(?:(?<!\\)`)(.+?)(?:(?<!\\)`)/,C=/(\*\*?|__?)((?!\1\s?)(?:(?!\1)[\S\s])*[^\s])\1/,$=/(~~?|__?)(?!\1\s?)([^\s][\s\S]*?(?!\1)[^\s])\1/,N=/(:")(?!":\s?)([^\s][\s\S]*?(?!":)[^\s])":/,M=/^\s+/,R=/ {2,}\r?\n/,I=/^[^\r\n]+/;let S,P;function L(t=[]){const L={[P.Comment]:{exec:(e,t)=>s(e,i,r=>{const a=n(r),s=[{type:S.Html,index:a,raw:r[0],text:r[2]}];if(a>0){const r=e.substr(0,a),n=t.tokenize(r,U);Array.prototype.unshift.apply(s,n)}return s})},[P.Reference]:{exec:e=>s(e,x,e=>{const t=n(e),r=e[0],a=r,s="!"===e[1],i=e[2],o=e[3],c=e[4];return[{type:S.Reference,index:t,raw:r,text:a,id:i,image:s,url:o,title:c}]})}},B=[],v=[],z={};for(let e of t){let t,r="inline";switch("type"in e?(r=e.type,t=e.rule):t=e,r){case"block":B.push(t);break;case"code":if("lang"in e){const r=e.lang.toLowerCase();(z[r]=z[r]||[]).push(t)}break;default:const r={exec:(e,r)=>{const n=t.exec(e,r);return O(e,n,r),n}};v.push(r)}}const _={[P.Text]:{exec:e=>s(e,I,e=>{const t=e[0],r=t;return[{index:n(e),raw:t,text:r,type:S.Text}]})},[P.Space]:{exec:e=>s(e,M,e=>{const t=e[0];return[{type:S.Space,raw:t,text:t}]})}},E={[P.ImageOrLink]:{exec:(t,r)=>T(t,b,r,t=>{const s=n(t),i=t[0],o="!"===i.charAt(0),c=t[1],l=function(t){if(!(e.NullChecker.isNullOrEmpty(t)||/^\[/.test(t)&&/\]$/.test(t)))return/^\(/.test(t)&&/\)$/.test(t)&&(t=t.substr(1,t.length-2)),t}(t[2]),u=a(function(t){if(!(e.NullChecker.isNullOrEmpty(t)||/^\(/.test(t)&&/\)$/.test(t)))return/^\[/.test(t)&&/\]$/.test(t)&&(t=t.substr(1,t.length-2)),t}(t[2])??c);return o?[{index:s,type:l?S.Image:S.ImageLike,raw:i,text:c,src:l,ref:u,tokens:r.tokenize(c,A)}]:[{index:s,type:l?S.Link:S.LinkLike,raw:i,text:c,href:l,ref:u,tokens:r.tokenize(c,A)}]})},[P.Code]:{exec:(e,t)=>T(e,k,t,e=>{const t=r(e[1]);return[{type:S.Code,raw:e[0],text:t,index:n(e)}]})},[P.EmphasizedLink]:{exec:(t,r)=>T(t,w,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=t[1].length>1?S.Bold:S.Italic,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.Emphasize]:{exec:(t,r)=>T(t,C,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=t[1].length>1?S.Bold:S.Italic,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.StrikeThrough]:{exec:(t,r)=>T(t,$,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=S.StrikeThrough,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.Quote]:{exec:(t,r)=>T(t,N,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=S.Quote,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.LineBreak]:{exec:(e,t)=>T(e,R,t,e=>{const t=e[0],r=t;return[{index:n(e),raw:t,text:r,type:S.LineBreak}]})}},O=(e,t,r)=>{const n=t?.length>0&&t[0].index;if(n>0){const a=e.substr(0,n),s=r.tokenize(a,A)||[];Array.prototype.unshift.apply(t,s)}},T=(e,t,r,n)=>{const a=s(e,t,r=>{if(t!=k){const t=k.exec(e);if(t&&t.length&&t.index<r.index)return null}return n(r)});return O(e,a,r),a},A=Object.values(E);Array.prototype.push.apply(A,v),A.push(_[P.Text],_[P.Space]);const D=e=>{const t=[_[P.Text],_[P.Space]],r=e?.toLowerCase()||"";return r&&r in z&&Array.prototype.unshift.apply(t,z[r]),t},H={[P.Paragraph]:{exec:(e,t)=>s(e,y,e=>{const r=e[0],n=r;return[{type:S.Paragraph,raw:r,text:n,tokens:t.tokenize(n,A)}]})},[P.Space]:_[P.Space]},j=(e,t)=>{const r=/^ {0,3}(`{3,}|$|>|[+-]\s|\d+[.\)])/m.test(e)?U:A;return t.tokenize(e,r)},F={[P.HorizontalRule]:{exec:(e,t)=>s(e,o,e=>{const t=e[0],r=t;return[{type:S.HorizontalRule,raw:t,text:r}]})},[P.Heading]:{exec:(e,t)=>s(e,c,e=>{const r=e[2];return[{type:S.Heading,raw:e[0],text:r,level:e[1].length,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.Heading1]:{exec:(e,t)=>s(e,l,e=>{const r=e[1];return[{type:S.Heading,raw:e[0],text:r,level:1,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.Heading2]:{exec:(e,t)=>s(e,u,e=>{const r=e[1];return[{type:S.Heading,raw:e[0],text:r,level:2,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.CodeBlock]:{exec:(e,t)=>s(e,h,e=>{const n=e[0],a=r(n);return[{type:S.CodeBlock,raw:n,text:a,tokens:t.tokenize(a,[])}]})},[P.Fences]:{exec:(e,t)=>s(e,d,e=>{const n=r(e[2]),a=e[1]?.toLowerCase();return[{type:S.CodeBlock,raw:e[0],text:n,lang:a,tokens:t.tokenize(n,D(a))}]})},[P.BlockQuote]:{exec:(e,t)=>s(e,g,e=>{const r=e[0],n=r.replace(/^ {0,3}> */gm,"");return[{type:S.BlockQuote,raw:r,text:n,tokens:t.tokenize(n,[H[P.Paragraph],H[P.Space]])}]})},[P.OrderedList]:{exec:(t,r)=>s(t,p,t=>{const n=t[0],a=n.replace(/^ {0,3}/gm,"").split(m).filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(e=>e.trim());return[{type:S.OrderedList,start:parseInt(/\d/.exec(t[0])[0]),raw:n,text:n,tokens:a.map(e=>({type:S.ListItem,raw:e,text:e,tokens:j(e,r)}))}]})},[P.UnorderedList]:{exec:(t,r)=>s(t,f,t=>{const n=t[0],a=n.replace(/^ {0,3}/gm,"").split(m).filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(e=>e.trim());return[{type:S.UnorderedList,raw:n,text:n,tokens:a.map(e=>({type:S.ListItem,raw:e,text:e,tokens:j(e,r)}))}]})}},U=Object.values(F);return Array.prototype.push.apply(U,B),U.push(H[P.Paragraph],H[P.Space]),[L[P.Comment],L[P.Reference]].concat(U)}!function(e){e.Html="html",e.Text="text",e.Paragraph="paragraph",e.BlockQuote="blockquote",e.Space="space",e.Heading="heading",e.Bold="bold",e.Italic="italic",e.CodeBlock="codeblock",e.Code="code",e.Image="img",e.ImageLike="imglike",e.Link="link",e.LinkLike="linklike",e.LineBreak="br",e.StrikeThrough="strike",e.Quote="quote",e.HorizontalRule="hr",e.OrderedList="ol",e.UnorderedList="ul",e.ListItem="listitem",e.Reference="ref"}(S||(S={})),function(e){e[e.Comment=0]="Comment",e[e.Reference=1]="Reference",e[e.HorizontalRule=2]="HorizontalRule",e[e.Heading=3]="Heading",e[e.Heading1=4]="Heading1",e[e.Heading2=5]="Heading2",e[e.CodeBlock=6]="CodeBlock",e[e.Fences=7]="Fences",e[e.BlockQuote=8]="BlockQuote",e[e.OrderedList=9]="OrderedList",e[e.UnorderedList=10]="UnorderedList",e[e.Paragraph=11]="Paragraph",e[e.EmphasizedLink=12]="EmphasizedLink",e[e.ImageOrLink=13]="ImageOrLink",e[e.Emphasize=14]="Emphasize",e[e.StrikeThrough=15]="StrikeThrough",e[e.Quote=16]="Quote",e[e.Code=17]="Code",e[e.LineBreak=18]="LineBreak",e[e.Text=254]="Text",e[e.Space=255]="Space"}(P||(P={}));const B=/[ \r\n]*\0+[ \r\n]*/g;class HtmlRenderer{_extraItemRender;constructor(e=(e,t)=>e?.text||""){this._extraItemRender=e}_renderContent=t=>{const r=t.tokens;return e.NullChecker.isNullOrEmpty(r)?t.text:this._render(r)};_rendeItem(e,t){const r=this._renderContent,n="\0";switch(e?.type){case S.Reference:return"";case S.Html:return e.raw;case S.BlockQuote:return`<blockquote>\n${r(e)}</blockquote>${n}`;case S.Bold:return`<b>${r(e)}</b>`;case S.CodeBlock:const a=e.lang;return`<pre>${n}<code${a?' class="'+a+'"':""}>${r(e)}</code>${n}</pre>${n}`;case S.Code:return`<code>${r(e)}</code>`;case S.HorizontalRule:return`<hr />${n}`;case S.Heading:const s=e.level;return`<h${s} id="${e.ref}">${r(e)}</h${s}>${n}`;case S.Image:case S.ImageLike:const i=e;let o=i.src,c="";const l=i.text,u=i.ref;if(!o&&u){const e=t.find(e=>e.type===S.Reference&&!0===e.image&&e.id?.toLowerCase()===u.toLowerCase());e&&(o=e.url,c=e.title??"")}return o?`<img src="${o}" alt="${l}"${c?' title="'+c+'"':""} />`:`![${r(e)}]`;case S.Italic:return`<i>${r(e)}</i>`;case S.StrikeThrough:return`<s>${r(e)}</s>`;case S.Quote:return`<q>${r(e)}</q>`;case S.LineBreak:return"<br />\0";case S.OrderedList:return`<ol start="${e.start}">\n${r(e)}</ol>${n}`;case S.UnorderedList:return`<ul>\n${r(e)}</ul>${n}`;case S.ListItem:return`\t<li>${r(e)}</li>${n}`;case S.Link:case S.LinkLike:const h=e;let d=h.href,g="";const f=h.ref;if(!d&&f){const e=t.find(e=>e.type===S.Reference&&!0!==e.image&&e.id?.toLowerCase()===f.toLowerCase());e&&(d=e.url,g=e.title??"")}return d?`<a href="${d}"${g?' title="'+g+'"':""}>${r(e)}</a>`:`[${r(e)}]`;case S.Paragraph:return`<p>${r(e)}</p>${n}`;case S.Text:case S.Space:return e.text}return this._extraItemRender(e,t)}_render(e){let t="";for(let r of e||[])t+=this._rendeItem(r,e);return t}render(e){return t=this._render(e),t?.replace(B,"\n").trim();var t}}class TokenRenderer{_render(t){return e.NullChecker.isNullOrEmpty(t)?"":JSON.stringify(t)}render(t){return"["+t.filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(this._render).join(",")+"]"}}class Parser extends e.Compile.Parser{toHtml(t,r,n){const a=new HtmlRenderer(n);return e.NullChecker.isNullOrEmpty(r)?this.parse(t,a):this.parse(t,L(r),a)}tokenize(e,t){const r=this.parse(e,L(t),new TokenRenderer);return JSON.parse(r)}parse(e,t=L(),r=new HtmlRenderer){return(n=t)&&"object"==typeof n&&"function"==typeof n.render?super.parse(e,L(),t):super.parse(e,t,r);var n}}t.Parser=Parser}(t.Markdown||(t.Markdown={}))}(e.Compile||(e.Compile={}))}(Pacem||(Pacem={}));
6
+ "use strict";var Pacem;!function(e){e.Arrays=class Arrays{static range(t,r,n=2){let a=t;e.NullChecker.isNull(r)&&(r=n=t,t=1);const s=(r-t)/(n-1),i=[];if(s>0)for(;i.length<n;)i.push(a.roundoff()),a+=s;return i}static chunkify(t,r){if(e.NullChecker.isNullOrEmpty(t))return[];if(r<=0||r%1!=0)throw new Error("Provide a positive integer number.");const n=Math.ceil(t.length/r);return Array.from({length:n},(e,n)=>{const a=n*r,s=a+r;return t.slice(a,s)})}}}(Pacem||(Pacem={})),function(e){class Blobs{static blobToDataURL(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=e=>{t(e.target.result)},n.readAsDataURL(e)})}static _b64ToUint8Array(e){let t=e.length;const r=new Uint8Array(t);for(;t--;)r[t]=e.charCodeAt(t);return r}static base64ToBlob(e,t){const r=Blobs._b64ToUint8Array(atob(e));return new Blob([r],t)}static dataURLToBlob(e){const t=e.indexOf(",");if(-1===t)return Blobs.base64ToBlob(e);{const r=e.substring(t+1),n=e.substring(0,t).match(/:(.*?);/)[1];return Blobs.base64ToBlob(r,{type:n})}}static blobToText(e,t){return new Promise((r,n)=>{e.arrayBuffer().then(e=>{const n=new TextDecoder(t).decode(e);r(n)})})}static textToBlob(e,t="text/plain"){const r=(new TextEncoder).encode(e);return new Blob([r],{type:t})}}e.Blobs=Blobs}(Pacem||(Pacem={})),function(e){!function(e){const t=(e,t)=>{const r=e.match(t);return r?r[2]:null};e.detect=function(e=navigator.userAgent){let r="unknown",n=null;switch(/ucbrowser/i.test(e)?r="UCBrowser":/edg/i.test(e)?r="Edge":/googlebot/i.test(e)?r="GoogleBot":/chromium/i.test(e)?r="Chromium":/firefox|fxios/i.test(e)&&!/seamonkey/i.test(e)?r="Firefox":/; msie|trident/i.test(e)&&!/ucbrowser/i.test(e)?r="IE":/chrome|crios/i.test(e)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(e)?r="Chrome":/safari/i.test(e)&&!/chromium|edg|ucbrowser|chrome|crios|opr|opera|fxios|firefox/i.test(e)?r="Safari":/opr|opera/i.test(e)&&(r="Opera"),r){case"UCBrowser":n=t(e,/(ucbrowser)\/([\d\.]+)/i);break;case"Edge":n=t(e,/(edge|edga|edgios|edg)\/([\d\.]+)/i);break;case"GoogleBot":n=t(e,/(googlebot)\/([\d\.]+)/i);break;case"Chromium":n=t(e,/(chromium)\/([\d\.]+)/i);break;case"Firefox":n=t(e,/(firefox|fxios)\/([\d\.]+)/i);break;case"Chrome":n=t(e,/(chrome|crios)\/([\d\.]+)/i);break;case"Safari":n=t(e,/(safari)\/([\d\.]+)/i);break;case"Opera":n=t(e,/(opera|opr)\/([\d\.]+)/i);break;case"IE":{const r=t(e,/(trident)\/([\d\.]+)/i);n=r?`${parseFloat(r)+4}`:"7.0";break}default:n="0.0.0.0"}return{name:r,version:n}}}(e.Browsers||(e.Browsers={}))}(Pacem||(Pacem={})),function(e){const t=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,r=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,n=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,a=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,s=/^#[a-f0-9]{6}$/,i=/^#[a-f0-9]{3}$/;function o(t){return!e.NullChecker.isNullOrEmpty(t)&&"object"==typeof t&&"r"in t&&"g"in t&&"b"in t&&"number"==typeof t.r&&"number"==typeof t.b&&"number"==typeof t.g&&(t.a??=1,t.r>=0&&t.r<=1&&t.g>=0&&t.g<=1&&t.b>=0&&t.b<=1&&t.a>=0&&t.a<=1)}function c(t){return!e.NullChecker.isNullOrEmpty(t)&&"object"==typeof t&&"h"in t&&"s"in t&&"l"in t&&"number"==typeof t.h&&"number"==typeof t.s&&"number"==typeof t.l&&(t.a??=1,t.h>=0&&t.h<=360&&t.s>=0&&t.s<=1&&t.l>=0&&t.l<=1&&t.a>=0&&t.a<=1)}const l={adjustRgbChannel:e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4),adjustRgbChannelInv:e=>e<=.00304?12.92*e:1.055*(Math.pow(e,1/2.4)-.055),adjustRgb:e=>({r:l.adjustRgbChannel(e.r),g:l.adjustRgbChannel(e.g),b:l.adjustRgbChannel(e.b),a:e.a}),adjustRgbInv:e=>({r:l.adjustRgbChannelInv(e.r),g:l.adjustRgbChannelInv(e.g),b:l.adjustRgbChannelInv(e.b),a:e.a}),X:e=>.4125*e.r+.3576*e.g+.1804*e.b,Y:e=>.2126*e.r+.7152*e.g+.0722*e.b,Z:e=>.0193*e.r+.1191*e.g+.9503*e.b,relativeLuminance:e=>{const t=l.adjustRgb(e);return l.Y(t)},rgbToCieXYZ:e=>{const t=l.adjustRgb(e);return{x:l.X(t),y:l.Y(t),z:l.Z(t),a:e.a}},cieXYZToRgb:e=>{const t=3.241*e.x-1.5374*e.y-.4986*e.z,r=-.9692*e.x+1.876*e.y+.0416*e.z,n=.0556*e.x-.204*e.y+1.057*e.z;return l.adjustRgbInv({r:t,g:r,b:n,a:e.a})},contrastRatio:(e,t)=>{const r=l.relativeLuminance(e)+.05,n=l.relativeLuminance(t)+.05;return r>n?r/n:n/r}};function u(t){return e.Strings.leftPad(t.toString(16),2,"0")}class Colors{static WCAG_MINIMUM_CONTRAST=3;static WCAG_NORMAL_TEXT_CONTRAST=4.5;static WCAG_SAFE_CONTRAST=7;static _clampRGB(e){const t=e=>Math.min(1,Math.max(0,e));return null==e[3]&&(e[3]=1),{r:t(e[0]),g:t(e[1]),b:t(e[2]),a:Math.min(1,Math.max(0,e[3]))}}static _normalize(e){return[e[0]/255,e[1]/255,e[2]/255,e[3]]}static parse(e){if(e=(e||"").toLowerCase(),n.test(e)){let t=n.exec(e);return this._clampRGB(this._normalize([parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1]))}if(a.test(e)){let t=a.exec(e);return this._clampRGB(this._normalize([parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]))}if(s.test(e)){let t=s.exec(e)[0];return this._clampRGB(this._normalize([parseInt("0x"+t.substr(1,2)),parseInt("0x"+t.substr(3,2)),parseInt("0x"+t.substr(5,2)),1]))}if(i.test(e)){let t=i.exec(e)[0],r=t.substr(1,1),n=t.substr(2,1),a=t.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+n+n),parseInt("0x"+a+a),1]))}if(t.test(e)){let r=t.exec(e);const n={h:parseFloat(r[1]),s:.01*parseFloat(r[2]),l:.01*parseFloat(r[3])};return this.rgb(n)}if(r.test(e)){let t=r.exec(e);const n={h:parseFloat(t[1]),s:.01*parseFloat(t[2]),l:.01*parseFloat(t[3]),a:parseFloat(t[4])};return this.rgb(n)}}static hsl(e){const t=function(e){const t=e.r,r=e.g,n=e.b;return(.5*(Math.max(t,r,n)+Math.min(t,r,n))).clamp(0,1)}(e),r=function(e,t){const r=e.r,n=e.g,a=e.b,s=Math.max(r,n,a),i=Math.min(r,n,a);return(0===t||1===t?0:(s-i)/(1-Math.abs(2*t-1))).clamp(0,1)}(e,t),n=function(e){const t=e.r,r=e.g,n=e.b,a=Math.max(t,r,n),s=Math.min(t,r,n);let i=0;return a!==s&&(i=a===t?((r-n)/(a-s)*60+360)%360:a===r?((n-t)/(a-s)*60+120)%360:((t-r)/(a-s)*60+240)%360),i.clamp(0,360)}(e);return{h:n,s:r,l:t,a:e.a}}static cieXYZ(e){return c(e)&&(e=this.rgb(e)),l.rgbToCieXYZ(e)}static rgb(e){if(!c(e)){const t=l.cieXYZToRgb(e);return this._clampRGB([t.r,t.g,t.b,t.a])}{const t=e.h,r=e.s,n=e.l,a=t/60,s=(1-Math.abs(2*n-1))*r,i=s*(1-Math.abs(a%2-1)),o=n-s/2,c=(t,r,n)=>this._clampRGB([t+o,r+o,n+o,e.a]);if(a<=1)return c(s,i,0);if(a<=2)return c(i,s,0);if(a<=3)return c(0,s,i);if(a<=4)return c(0,i,s);if(a<=5)return c(i,0,s);if(a<=6)return c(s,0,i)}}static stringify(e,t=1){if(c(e)){t??=1,e.a??=1;const r="number"==typeof t?t:1;return`hsla(${e.h.roundoff(r)},${(100*e.s).roundoff(r)}%,${(100*e.l).roundoff(r)}%,${e.a.roundoff()})`}if(o(e)){t??=!0,e.a??=1;const r="boolean"==typeof t?t:!!t,n=Math.round(255*e.r),a=Math.round(255*e.g),s=Math.round(255*e.b),i=e.a.roundoff();return 1===i?r?("#"+u(n)+u(a)+u(s)).toUpperCase():`rgb(${n},${a},${s})`:`rgba(${n},${a},${s},${i})`}}static contrastRatio(e,t){return c(e)&&(e=this.rgb(e)),c(t)&&(t=this.rgb(t)),l.contrastRatio(e,t)}static luminance(e){return c(e)&&(e=Colors.rgb(e)),l.relativeLuminance(e)}static lighten(e,t=.1){if(t||=0,c(e)){const r=Math.min(1,Math.max(0,e.l+t));return Object.assign({},e,{l:r})}if(o(e)){const r=this.lighten(this.hsl(e),t);return this.rgb(r)}return e}static darken(e,t=.1){return this.lighten(e,-t)}static saturate(e,t=.1){if(t||=0,c(e)){const r=Math.min(1,Math.max(0,e.s+t));return Object.assign({},e,{s:r})}if(o(e)){const r=this.saturate(this.hsl(e),t);return this.rgb(r)}return e}static desaturate(e,t=.1){return this.saturate(e,-t)}static interpolate(e,t,r,n){r??=.5,n??=r;const a=(r+n).roundoff(),s=(r/a).roundoff(),i=(n/a).roundoff(),l=o(e),u=c(e),h=e=>o(e)||c(e)?Colors.cieXYZ(e):e;e=h(e),t=h(t);const d={x:(e.x*s+t.x*i).roundoff(),y:(e.y*s+t.y*i).roundoff(),z:(e.z*s+t.z*i).roundoff(),a:(e.a*s+t.a*i).roundoff()};return l?Colors.rgb(d):u?Colors.hsl(Colors.rgb(d)):d}}e.Colors=Colors}(Pacem||(Pacem={})),function(e){const t=/^\/Date\([\d]+\)\/$/i;class Dates{static parse(e){let r;return"string"==typeof e?(r=t.test(e)?parseInt(e.substring(6)):Date.parse(e),new Date(r)):"number"==typeof e?new Date(e):e}static isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}static daysInMonth(e,t){return[31,Dates.isLeapYear(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]}static isDate(e){return e instanceof Date&&!isNaN(e.valueOf())}static dateOnly(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}static addMonths(e,t){let r=e.getDate(),n=new Date(e),a=n.getMonth()+t,s=0;for(;a<0;)a+=12,s--;return n.setDate(1),n.setMonth(a%12),n.setFullYear(n.getFullYear()+s+Math.floor(a/12)),n.setDate(Math.min(r,Dates.daysInMonth(n.getFullYear(),n.getMonth()))),n}static addDays(e,t){return new Date(e.valueOf()+864e5*t)}static daysBetween(e,t){return(t.valueOf()-e.valueOf())/864e5}}e.Dates=Dates}(Pacem||(Pacem={})),function(e){const t=/[-+]?([\d]+(\.[\d]+(e-[\d]+)?)?|[\d]*(\.[\d]+(e-[\d]+)?))/g;function r(e){const r=[];let n=e.match(t);return n&&n.length>0&&n.forEach(e=>r.push(parseFloat(e))),r}e.parseAsNumericalArray=r;class Angle{static isAngle(e){return"object"==typeof e&&"vertex"in e&&Point.isPoint(e.vertex)&&"start"in e&&Point.isPoint(e.start)&&"end"in e&&Point.isPoint(e.end)}static value(t){if(e.NullChecker.isNullOrEmpty(t)||!Angle.isAngle(t))return Number.NaN;const{vertex:r,start:n,end:a}=t;return Angle.angleBetween(r,n,a)}static angleBetween(e,t,r){const n=t.x-e.x,a=t.y-e.y,s=r.x-e.x,i=r.y-e.y,o=n*s+a*i,c=n*i-a*s;return-Math.atan2(c,o)}}e.Angle=Angle;class Size{static parse(e){let t=r(e);if(t&&2===t.length)return{width:t[0],height:t[1]};throw new Error(`Cannot parse "${e}" as a valid Size.`)}static isSize(e){return"object"==typeof e&&"width"in e&&"number"==typeof e.width&&"height"in e&&"number"==typeof e.height}}e.Size=Size;class Point{static parse(e){let t=r(e);if(t&&2===t.length)return{x:t[0],y:t[1]};throw new Error(`Cannot parse "${e}" as a valid Point.`)}static isPoint(e){return"object"==typeof e&&"x"in e&&"number"==typeof e.x&&"y"in e&&"number"==typeof e.y}static distance(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}static subtract(e,t){return{x:t.x-e.x,y:t.y-e.y}}static add(...e){var t={x:0,y:0};for(var r of e)t.x+=r.x,t.y+=r.y;return t}static multiply(e,t){return{x:e.x*t,y:e.y*t}}}e.Point=Point;class Rect{static parse(e){let t=r(e);if(t&&4===t.length)return{x:t[0],y:t[1],width:t[2],height:t[3]};throw new Error(`Cannot parse "${e}" as a valid Rect.`)}static isRect(e){return Point.isPoint(e)&&Size.isSize(e)}static _stretch(e,t){return{a:t.width/e.width,b:0,c:0,d:t.height/e.height,e:t.x-e.x,f:t.y-e.y}}static _contain(t,r,n,a){let s=1;s=t.width/t.height>=r.width/r.height?r.width/t.width:r.height/t.height;const i=t.width*s,o=t.height*s,c=this._align({x:t.x,y:t.y,width:i,height:o},r,n,a);return e.Matrix2D.translate({a:s,b:0,c:0,d:s,e:0,f:0},c)}static _cover(t,r,n,a){let s=1;s=t.width/t.height<r.width/r.height?r.width/t.width:r.height/t.height;const i=t.width*s,o=t.height*s,c=this._align({x:t.x,y:t.y,width:i,height:o},r,n,a);return e.Matrix2D.translate({a:s,b:0,c:0,d:s,e:0,f:0},c)}static _align(e,t,r,n){let a=0,s=0;switch(r){case"left":a=t.x-e.x;break;case"right":a=t.x+t.width-e.width-e.x;break;default:a=t.x+.5*t.width-.5*e.width-e.x}switch(n){case"top":s=t.y-e.y;break;case"bottom":s=t.y+t.height-e.height-e.y;break;default:s=t.y+.5*t.height-.5*e.height-e.y}return{x:a,y:s}}static findTransform(e,t,r="stretch",n="center",a="middle"){switch(r){case"contain":return this._contain(e,t,n,a);case"cover":return this._cover(e,t,n,a);default:return this._stretch(e,t)}}static intersect(...e){const t={x:0,y:0,height:0,width:0},r=Array.from(e||[]);if(r.length<=0)return t;for(var n=r[0],a=1;a<r.length;a++){const e=r[a],s=Math.max(e.x,n.x),i=Math.max(e.y,n.y),o=Math.min(e.x+e.width,n.x+n.width)-s,c=Math.min(e.y+e.height,n.y+n.height)-i;if(o<0||c<=0)return t;n={x:s,y:i,width:o,height:c}}return n}static expand(e,...t){const r=Array.from(t||[]);let n=e.x,a=e.y,s=n,i=a;Rect.isRect(e)&&(s+=e.width,i+=e.height);for(let e of r)n=Math.min(e.x,n),a=Math.min(e.y,a),s=Math.max(e.x,s),i=Math.max(e.y,i);return{x:n,y:a,width:s-n,height:i-a}}}e.Rect=Rect}(Pacem||(Pacem={})),function(e){e.HistoryService=class HistoryService{constructor(e,t){this.#e=e,this.#t=t}#r=[];#n=[];#t;#e;get current(){return this.#e}get canUndo(){return this.#r.length>0}get canRedo(){return this.#n.length>0}set maxlength(e){this.#t=e}undo(){if(this.canUndo){const e=this.#r,t=this.#n,r=this.#e;t.unshift(r),this.#e=e.pop()}}redo(){if(this.canRedo){const e=this.#r,t=this.#n,r=this.#e;e.push(r),this.#e=t.shift()}}push(e){this.#n.splice(0),this.#r.push(this.#e),this.#e=e;const t=this.#t,r=this.#r;t>0&&r.length>t&&r.splice(0,r.length-t)}reset(){this.#n.splice(0),this.#r.splice(0)}}}(Pacem||(Pacem={})),function(e){const t={mode:"stretch",align:"center",valign:"middle",quality:1,type:"image/jpeg"};class Imaging{static async loadImage(e){const t=await fetch(e);if(!t.ok)return null;return await t.blob()}static async resizeImage(r,n,a,s){if(n<=0||a<=0||isNaN(n)||isNaN(a))throw new Error("Invalid target size");"string"==typeof r&&(r=await Imaging.loadImage(r));const i=await self.createImageBitmap(r),o=i.width,c=i.height,l=new OffscreenCanvas(o,c),u=l.getContext("2d");u.imageSmoothingEnabled=u.mozImageSmoothingEnabled=u.oImageSmoothingEnabled=u.webkitImageSmoothingEnabled=!0;const{quality:h,type:d,mode:g,align:f,valign:p,background:m}=Object.assign({},t,s??{}),y={width:o,height:c,x:0,y:0},x={x:0,y:0,width:n,height:a},b=e.Rect.findTransform(y,x,g,f,p);l.width=n,l.height=a,m&&(u.fillStyle=m,u.fillRect(0,0,l.width,l.height)),u.setTransform(b),u.drawImage(i,0,0);return await l.convertToBlob({quality:h,type:d})}}e.Imaging=Imaging}(Pacem||(Pacem={})),function(e){class Keys{static#a;static uniqueId(){let e=Keys.#a||Date.now();return Keys.#a=++e}static uniqueCode(){return Keys.uniqueId().toBase62()}static randomString(e){let t="";do{t+=(62*Math.random()).toBase62()}while(t.length<e);return t}}e.Keys=Keys}(Pacem||(Pacem={})),function(e){class Matrix2D{static isIdentity(e){return 1===e.a&&1===e.d&&0===e.b&&0===e.f&&0===e.c&&0===e.e}static get identity(){return{a:1,b:0,c:0,d:1,e:0,f:0}}static copy(e){return{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}}static scale(e,t,r=t){return{a:e.a*t,b:e.b,c:e.c,d:e.d*r,e:e.e,f:e.f}}static translate(e,t){return{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e+t.x,f:e.f+t.y}}static rotate(e,t){const r=Math.cos(t),n=Math.sin(t);return Matrix2D.multiply(e,{a:r,b:n,c:-n,d:r,e:0,f:0})}static multiply(e,t){return"x"in e&&"y"in e?"number"==typeof t?{x:e.x*t,y:e.y*t}:{x:e.x*t.a+e.y*t.c+t.e,y:e.x*t.b+e.y*t.d+t.f}:"number"==typeof t?{a:e.a*t,b:e.b*t,c:e.c*t,d:e.d*t,e:e.e*t,f:e.f*t}:{a:e.a*t.a+e.b*t.c,b:e.a*t.b+e.b*t.d,c:e.c*t.a+e.d*t.c,d:e.c*t.b+e.d*t.d,e:e.e*t.a+e.f*t.c+t.e,f:e.e*t.b+e.f*t.d+t.f}}static det(e){return e.a*e.d-e.c*e.b}static invert(e){const t=this.det(e);if(0===t)return null;const r=1/t;return this.multiply({a:e.d,b:-e.b,c:-e.c,d:e.a,e:-e.e*e.d+e.c*e.f,f:e.e*e.b-e.a*e.f},r)}static toComponents(e,t={x:0,y:0}){const r=Math.sqrt(e.a*e.a+e.c*e.c),n=Math.sqrt(e.b*e.b+e.d*e.d),a=0!=r?e.a/r:0,s=0!=r?e.c/r:0,i=Math.atan2(s,a),{x:o,y:c}=t;return{scaleX:r,scaleY:n,rotation:i,translation:{x:e.e-o*(r*a-1)+c*r*s,y:e.f-c*(n*a-1)-o*n*s}}}}e.Matrix2D=Matrix2D}(Pacem||(Pacem={})),function(e){class NullChecker{static isNull(e){return null==e}static isEmpty(t){try{return Array.isArray(t)&&0===t.length||"string"==typeof t&&""===t||"object"==typeof t&&0===Object.keys(t).length&&!e.Dates.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch(e){return!1}}static isNullOrEmpty(e){return NullChecker.isNull(e)||NullChecker.isEmpty(e)}}e.NullChecker=NullChecker}(Pacem||(Pacem={})),Number.prototype.isCloseTo=function(e,t=14){return this.toFixed(t)===e.toFixed(t)},Number.prototype.roundoff=function(e=14){return parseFloat(this.toFixed(e))},Number.prototype.clamp=function(e,t){let r=this;return null==e||isNaN(e)||(r=Math.max(r,e)),null==t||isNaN(t)||(r=Math.min(r,t)),r},Number.prototype.toBase62=function(){for(var e=this,t="";0!=e;){t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(e%62)+t,e=Math.floor(e/62)}return t},Number.prototype.toBase36=function(){return this.toString(36)},function(e){e.Numbers=class Numbers{static round(e,t=1){return Math.round(e/t)*t}static log(e,t){return Math.log10(e)/Math.log10(t)}static rebase(e,t,r){const n=e.toString(),a=parseInt(n,t);return n.endsWith(a.toString(t))?parseInt(e.toString(),t).toString(r):Number.NaN.toString()}}}(Pacem||(Pacem={})),function(e){function t(e,t){const r=e.length,n=t.length,a=Array.from({length:r+1},()=>Array(n+1).fill(0));for(let s=1;s<=r;s++)for(let r=1;r<=n;r++)e[s-1]===t[r-1]?a[s][r]=a[s-1][r-1]+1:a[s][r]=Math.max(a[s-1][r],a[s][r-1]);return a}function r(e,t,r,n=""){const a=e.length,s=t.length,i=[];let o=a,c=s,l=null;const u=()=>{l&&(i.push(l),l=null)};for(;o>0||c>0;){var h=null;let a=null;o>0&&c>0&&e[o-1]===t[c-1]?(h="=",a=e[o-1],o--,c--):c>0&&(0===o||r[o][c-1]>=r[o-1][c])?(h="+",a=t[c-1],c--):o>0&&(0===c||r[o-1][c]>r[o][c-1])&&(h="-",a=e[o-1],o--),h&&null!==a?l&&l.type===h?l.value=a+(l.value?n:"")+l.value:(u(),l={type:h,value:a}):u()}return u(),i.reverse()}e.Strings=class Strings{static leftPad(e,t,r){let n=e.toString();for(;n.length<t;)n=r+n;return n}static format(t,...r){const n=Array.from(r);let a=t;for(let e=0;e<n.length;e++){const t=new RegExp("(^|[^\\{])\\{"+e+"\\}($|[^\\}])","g");a=a.replaceAll(t,(t,...r)=>t.replace("{"+e+"}",n[e]))}const s=/(^|[^\{}])\{(\d+)\}($|[^\}])/.exec(a);if(!e.NullChecker.isNullOrEmpty(s))throw new Error(`Missing argument at index ${s[2]}.`);return a}static diff(e,n,a="char"){switch(a){case"line":return function(e,n){const a=/\r?\n/,s=e.split(a),i=n.split(a);return r(s,i,t(s,i),"\n")}(e,n);case"word":return function(e,n){const a=/(\S+|\s+)/g,s=e.match(a)||[],i=n.match(a)||[];return r(s,i,t(s,i),"")}(e,n);default:return function(e,n){const a=e.split(""),s=n.split("");return r(a,s,t(a,s),"")}(e,n)}}static async hash(e,t="SHA-256"){const r=await crypto.subtle.digest(t,(new TextEncoder).encode(e));return Array.from(new Uint8Array(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}}}(Pacem||(Pacem={})),function(e){!function(e){class LexerClass{tokenize(e,t){const r=[];for(;e;){const n=e.length;for(let n of t){const t=n.exec(e,this),a=t?.length;if(a>0){Array.prototype.push.apply(r,t);const n=t[a-1];e=e.substr((n.index||0)+n.raw.length);break}}if(e.length>=n)throw new Error(`Cannot parse\n"${e}"\n using the provided grammar.`)}return r}}e.Parser=class Parser{_lexer;constructor(e=new LexerClass){this._lexer=e}parse(e,t,r){const n=this._lexer.tokenize(e,t);return r.render(n)}}}(e.Compile||(e.Compile={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){function r(e){return(e??"").replace(/</g,"&lt;")}function n(e){return e?.index||void 0}function a(e){return e?.replace(/[^\w]+/g," ").trim().replace(/ +/g,"-").toLowerCase()}function s(e,t,r){const n=t.exec(e);return n&&n.length?r(n):null}const i=/(<!--)([\s\S]*?)(-->|$)/,o=/^ {0,3}(={3,}|_{3,}|-{3,})(\r?\n|$)/,c=/^ {0,3}(#{1,6})\s+([^\n]+)(\r?\n|$)+/,l=/^ {0,3}([^\n]+)(\r?\n=+(\r?\n|$))+/,u=/^ {0,3}([^\n]+)(\r?\n-+(\r?\n|$))+/,h=/^ {4,}.+(\r?\n {4,}.+)*(\r?\n|$)+/,d=/^ {0,3}``` *([^\n]*)\r?\n(([\s\S](?!\r?\n {0,3}```))*.(\r?\n)+) {0,3}```(\r?\n|$)+/,g=/^ {0,3}> *([^\n]+)(\r?\n {0,3}> *([^\n]*))*(\r?\n|$)+/,f=/^( {0,3}([-+]).*\r?\n|$)((?!(?: {0,3}(?:\d+[.\)]|\r?\n\S))).*(\r?\n|$))*/,p=/^( {0,3}(\d+[.\)]).*\r?\n|$)((?!(?: {0,3}(?:[+-]|\r?\n\S))).*(\r?\n|$))*/,m=/^(?:[-+*]|\d+[.\)])/m,y=/^(?! {4,})(.+(\n(?! {0,3}```)(?! {0,3}([-+]|\d+[.\)]))(?! {4,})(?! {0,3}>).+)*)/,x=/^ {0,3}(!?)\[([^\]]+)\]: +(\S+)(?: +['"\(](.+)['"\)])?(\r?\n|$)+/,b=/!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?(\[[^\[\]]*\]|\([^\(\)]*\))?/,w=/(\*\*?|__?)(\[[^\]]*]\([^\)]+\))\1/,k=/(?:(?<!\\)`)(.+?)(?:(?<!\\)`)/,C=/(\*\*?|__?)((?!\1\s?)(?:(?!\1)[\S\s])*[^\s])\1/,$=/(~~?|__?)(?!\1\s?)([^\s][\s\S]*?(?!\1)[^\s])\1/,N=/(:")(?!":\s?)([^\s][\s\S]*?(?!":)[^\s])":/,M=/^\s+/,R=/ {2,}\r?\n/,I=/^[^\r\n]+/;let S,P;function L(t=[]){const L={[P.Comment]:{exec:(e,t)=>s(e,i,r=>{const a=n(r),s=[{type:S.Html,index:a,raw:r[0],text:r[2]}];if(a>0){const r=e.substr(0,a),n=t.tokenize(r,U);Array.prototype.unshift.apply(s,n)}return s})},[P.Reference]:{exec:e=>s(e,x,e=>{const t=n(e),r=e[0],a=r,s="!"===e[1],i=e[2],o=e[3],c=e[4];return[{type:S.Reference,index:t,raw:r,text:a,id:i,image:s,url:o,title:c}]})}},B=[],v=[],z={};for(let e of t){let t,r="inline";switch("type"in e?(r=e.type,t=e.rule):t=e,r){case"block":B.push(t);break;case"code":if("lang"in e){const r=e.lang.toLowerCase();(z[r]=z[r]||[]).push(t)}break;default:const r={exec:(e,r)=>{const n=t.exec(e,r);return O(e,n,r),n}};v.push(r)}}const _={[P.Text]:{exec:e=>s(e,I,e=>{const t=e[0],r=t;return[{index:n(e),raw:t,text:r,type:S.Text}]})},[P.Space]:{exec:e=>s(e,M,e=>{const t=e[0];return[{type:S.Space,raw:t,text:t}]})}},E={[P.ImageOrLink]:{exec:(t,r)=>T(t,b,r,t=>{const s=n(t),i=t[0],o="!"===i.charAt(0),c=t[1],l=function(t){if(!(e.NullChecker.isNullOrEmpty(t)||/^\[/.test(t)&&/\]$/.test(t)))return/^\(/.test(t)&&/\)$/.test(t)&&(t=t.substr(1,t.length-2)),t}(t[2]),u=a(function(t){if(!(e.NullChecker.isNullOrEmpty(t)||/^\(/.test(t)&&/\)$/.test(t)))return/^\[/.test(t)&&/\]$/.test(t)&&(t=t.substr(1,t.length-2)),t}(t[2])??c);return o?[{index:s,type:l?S.Image:S.ImageLike,raw:i,text:c,src:l,ref:u,tokens:r.tokenize(c,A)}]:[{index:s,type:l?S.Link:S.LinkLike,raw:i,text:c,href:l,ref:u,tokens:r.tokenize(c,A)}]})},[P.Code]:{exec:(e,t)=>T(e,k,t,e=>{const t=r(e[1]);return[{type:S.Code,raw:e[0],text:t,index:n(e)}]})},[P.EmphasizedLink]:{exec:(t,r)=>T(t,w,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=t[1].length>1?S.Bold:S.Italic,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.Emphasize]:{exec:(t,r)=>T(t,C,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=t[1].length>1?S.Bold:S.Italic,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.StrikeThrough]:{exec:(t,r)=>T(t,$,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=S.StrikeThrough,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.Quote]:{exec:(t,r)=>T(t,N,r,t=>{if(t.length<3||e.NullChecker.isNullOrEmpty(t[2]))return null;const a=S.Quote,s=t[2];return[{index:n(t),type:a,raw:t[0],text:s,tokens:r.tokenize(s,A)}]})},[P.LineBreak]:{exec:(e,t)=>T(e,R,t,e=>{const t=e[0],r=t;return[{index:n(e),raw:t,text:r,type:S.LineBreak}]})}},O=(e,t,r)=>{const n=t?.length>0&&t[0].index;if(n>0){const a=e.substr(0,n),s=r.tokenize(a,A)||[];Array.prototype.unshift.apply(t,s)}},T=(e,t,r,n)=>{const a=s(e,t,r=>{if(t!=k){const t=k.exec(e);if(t&&t.length&&t.index<r.index)return null}return n(r)});return O(e,a,r),a},A=Object.values(E);Array.prototype.push.apply(A,v),A.push(_[P.Text],_[P.Space]);const D=e=>{const t=[_[P.Text],_[P.Space]],r=e?.toLowerCase()||"";return r&&r in z&&Array.prototype.unshift.apply(t,z[r]),t},H={[P.Paragraph]:{exec:(e,t)=>s(e,y,e=>{const r=e[0],n=r;return[{type:S.Paragraph,raw:r,text:n,tokens:t.tokenize(n,A)}]})},[P.Space]:_[P.Space]},j=(e,t)=>{const r=/^ {0,3}(`{3,}|$|>|[+-]\s|\d+[.\)])/m.test(e)?U:A;return t.tokenize(e,r)},F={[P.HorizontalRule]:{exec:(e,t)=>s(e,o,e=>{const t=e[0],r=t;return[{type:S.HorizontalRule,raw:t,text:r}]})},[P.Heading]:{exec:(e,t)=>s(e,c,e=>{const r=e[2];return[{type:S.Heading,raw:e[0],text:r,level:e[1].length,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.Heading1]:{exec:(e,t)=>s(e,l,e=>{const r=e[1];return[{type:S.Heading,raw:e[0],text:r,level:1,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.Heading2]:{exec:(e,t)=>s(e,u,e=>{const r=e[1];return[{type:S.Heading,raw:e[0],text:r,level:2,ref:a(r),tokens:t.tokenize(r,A)}]})},[P.CodeBlock]:{exec:(e,t)=>s(e,h,e=>{const n=e[0],a=r(n);return[{type:S.CodeBlock,raw:n,text:a,tokens:t.tokenize(a,[])}]})},[P.Fences]:{exec:(e,t)=>s(e,d,e=>{const n=r(e[2]),a=e[1]?.toLowerCase();return[{type:S.CodeBlock,raw:e[0],text:n,lang:a,tokens:t.tokenize(n,D(a))}]})},[P.BlockQuote]:{exec:(e,t)=>s(e,g,e=>{const r=e[0],n=r.replace(/^ {0,3}> */gm,"");return[{type:S.BlockQuote,raw:r,text:n,tokens:t.tokenize(n,[H[P.Paragraph],H[P.Space]])}]})},[P.OrderedList]:{exec:(t,r)=>s(t,p,t=>{const n=t[0],a=n.replace(/^ {0,3}/gm,"").split(m).filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(e=>e.trim());return[{type:S.OrderedList,start:parseInt(/\d/.exec(t[0])[0]),raw:n,text:n,tokens:a.map(e=>({type:S.ListItem,raw:e,text:e,tokens:j(e,r)}))}]})},[P.UnorderedList]:{exec:(t,r)=>s(t,f,t=>{const n=t[0],a=n.replace(/^ {0,3}/gm,"").split(m).filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(e=>e.trim());return[{type:S.UnorderedList,raw:n,text:n,tokens:a.map(e=>({type:S.ListItem,raw:e,text:e,tokens:j(e,r)}))}]})}},U=Object.values(F);return Array.prototype.push.apply(U,B),U.push(H[P.Paragraph],H[P.Space]),[L[P.Comment],L[P.Reference]].concat(U)}!function(e){e.Html="html",e.Text="text",e.Paragraph="paragraph",e.BlockQuote="blockquote",e.Space="space",e.Heading="heading",e.Bold="bold",e.Italic="italic",e.CodeBlock="codeblock",e.Code="code",e.Image="img",e.ImageLike="imglike",e.Link="link",e.LinkLike="linklike",e.LineBreak="br",e.StrikeThrough="strike",e.Quote="quote",e.HorizontalRule="hr",e.OrderedList="ol",e.UnorderedList="ul",e.ListItem="listitem",e.Reference="ref"}(S||(S={})),function(e){e[e.Comment=0]="Comment",e[e.Reference=1]="Reference",e[e.HorizontalRule=2]="HorizontalRule",e[e.Heading=3]="Heading",e[e.Heading1=4]="Heading1",e[e.Heading2=5]="Heading2",e[e.CodeBlock=6]="CodeBlock",e[e.Fences=7]="Fences",e[e.BlockQuote=8]="BlockQuote",e[e.OrderedList=9]="OrderedList",e[e.UnorderedList=10]="UnorderedList",e[e.Paragraph=11]="Paragraph",e[e.EmphasizedLink=12]="EmphasizedLink",e[e.ImageOrLink=13]="ImageOrLink",e[e.Emphasize=14]="Emphasize",e[e.StrikeThrough=15]="StrikeThrough",e[e.Quote=16]="Quote",e[e.Code=17]="Code",e[e.LineBreak=18]="LineBreak",e[e.Text=254]="Text",e[e.Space=255]="Space"}(P||(P={}));const B=/[ \r\n]*\0+[ \r\n]*/g;class HtmlRenderer{_extraItemRender;constructor(e=(e,t)=>e?.text||""){this._extraItemRender=e}_renderContent=t=>{const r=t.tokens;return e.NullChecker.isNullOrEmpty(r)?t.text:this._render(r)};_rendeItem(e,t){const r=this._renderContent,n="\0";switch(e?.type){case S.Reference:return"";case S.Html:return e.raw;case S.BlockQuote:return`<blockquote>\n${r(e)}</blockquote>${n}`;case S.Bold:return`<b>${r(e)}</b>`;case S.CodeBlock:const a=e.lang;return`<pre>${n}<code${a?' class="'+a+'"':""}>${r(e)}</code>${n}</pre>${n}`;case S.Code:return`<code>${r(e)}</code>`;case S.HorizontalRule:return`<hr />${n}`;case S.Heading:const s=e.level;return`<h${s} id="${e.ref}">${r(e)}</h${s}>${n}`;case S.Image:case S.ImageLike:const i=e;let o=i.src,c="";const l=i.text,u=i.ref;if(!o&&u){const e=t.find(e=>e.type===S.Reference&&!0===e.image&&e.id?.toLowerCase()===u.toLowerCase());e&&(o=e.url,c=e.title??"")}return o?`<img src="${o}" alt="${l}"${c?' title="'+c+'"':""} />`:`![${r(e)}]`;case S.Italic:return`<i>${r(e)}</i>`;case S.StrikeThrough:return`<s>${r(e)}</s>`;case S.Quote:return`<q>${r(e)}</q>`;case S.LineBreak:return"<br />\0";case S.OrderedList:return`<ol start="${e.start}">\n${r(e)}</ol>${n}`;case S.UnorderedList:return`<ul>\n${r(e)}</ul>${n}`;case S.ListItem:return`\t<li>${r(e)}</li>${n}`;case S.Link:case S.LinkLike:const h=e;let d=h.href,g="";const f=h.ref;if(!d&&f){const e=t.find(e=>e.type===S.Reference&&!0!==e.image&&e.id?.toLowerCase()===f.toLowerCase());e&&(d=e.url,g=e.title??"")}return d?`<a href="${d}"${g?' title="'+g+'"':""}>${r(e)}</a>`:`[${r(e)}]`;case S.Paragraph:return`<p>${r(e)}</p>${n}`;case S.Text:case S.Space:return e.text}return this._extraItemRender(e,t)}_render(e){let t="";for(let r of e||[])t+=this._rendeItem(r,e);return t}render(e){return t=this._render(e),t?.replace(B,"\n").trim();var t}}class TokenRenderer{_render(t){return e.NullChecker.isNullOrEmpty(t)?"":JSON.stringify(t)}render(t){return"["+t.filter(t=>!e.NullChecker.isNullOrEmpty(t)).map(this._render).join(",")+"]"}}class Parser extends e.Compile.Parser{toHtml(t,r,n){const a=new HtmlRenderer(n);return e.NullChecker.isNullOrEmpty(r)?this.parse(t,a):this.parse(t,L(r),a)}tokenize(e,t){const r=this.parse(e,L(t),new TokenRenderer);return JSON.parse(r)}parse(e,t=L(),r=new HtmlRenderer){return(n=t)&&"object"==typeof n&&"function"==typeof n.render?super.parse(e,L(),t):super.parse(e,t,r);var n}}t.Parser=Parser}(t.Markdown||(t.Markdown={}))}(e.Compile||(e.Compile={}))}(Pacem||(Pacem={}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,8 +1,9 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
+ "use strict";
6
7
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
8
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
9
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1,6 +1,6 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
- var Pacem,__decorate=this&&this.__decorate||function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};!function(e){!function(t){!function(r){class PacemFxElement extends t.PacemEventTarget{}__decorate([e.Watch({converter:e.PropertyConverters.Element})],PacemFxElement.prototype,"target",void 0),r.PacemFxElement=PacemFxElement}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-fancy",i=e.PCSS+"-fancify";let s=class PacemFxFancyElement extends t.PacemFxElement{constructor(){super(...arguments),this._progress=0,this._started=!1}get progress(){return this._progress}get started(){return this._started}propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"fancify"!==t&&"target"!==t||e.Utils.isNull(this.target)||(this.fancify?this.start():this._reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.fancify&&!e.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){cancelAnimationFrame(this._handle),clearTimeout(this._handle1),e.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_reset(){e.Utils.removeClass(this.target,r),this._started&&this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!1})),this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"progress",oldValue:this._progress,currentValue:this._progress=0})),e.Utils.isNull(this._originalContent)?this._originalContent=this.target.innerHTML:this.target.innerHTML=this._originalContent}_parse(){let e,t=[],r=document.createTreeWalker(this.target,NodeFilter.SHOW_TEXT);for(;e=r.nextNode();)e.textContent&&t.push(e);this._textNodes=t}start(){this.disabled||(this._reset(),this._parse(),this._startShow(),this._handle1=setTimeout(()=>{this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!0}))},this.delay||0))}_startShow(t=0){e.Utils.addClass(this.target,r);const i=this._textNodes,s=i.length;this._fancify(i[t]);const n=this._progress;t++;const a=this._progress=t/s;this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"progress",oldValue:n,currentValue:a})),t<s&&(this._handle=requestAnimationFrame(()=>{this._startShow(t)}))}_fancify(t){const r=t.textContent;if(e.Utils.isNullOrEmpty(r)||!/[^\s]/.test(r))return;const s=/^\s/.test(r),n=/\s$/.test(r);t.textContent="";const a=r.trim().split(" "),o=this.gap||20,l=this.delay||0;let c=0;for(let e of a){var d=document.createElement("span");d.className=i,d.style.animationDelay=`${l+c*o}ms`,(s||c>0)&&t.parentElement.insertBefore(document.createTextNode(" "),t),d.textContent=e,t.parentElement.insertBefore(d,t),c++}n&&t.parentElement.insertBefore(document.createTextNode(" "),t)}};__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],s.prototype,"fancify",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],s.prototype,"delay",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],s.prototype,"gap",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-fancy"})],s),t.PacemFxFancyElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const i="gradientchange";class GradientChangeEvent extends Event{constructor(){super(i,{cancelable:!1,bubbles:!1})}}const s={convert:(t,r)=>{try{return e.Size.parse(t)}catch{return e.PropertyConverters.Number.convert(t,r)}}};function n(e){return Math.round(1e3*e)/10+"%"}let a=class PacemFxGradientStopElement extends t.PacemItemElement{findContainer(){return e.CustomElementUtils.findAncestor(this,e=>e instanceof PacemFxGradientItemElement)}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),i||"offset"!==e&&"color"!==e&&"opacity"!==e&&"disabled"!==e&&"hide"!==e||this.dispatchEvent(new GradientChangeEvent)}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],a.prototype,"offset",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],a.prototype,"color",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],a.prototype,"opacity",void 0),a=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-stop"})],a),r.PacemFxGradientStopElement=a;class PacemFxGradientItemElement extends t.PacemCrossItemsContainerElement{constructor(){super(...arguments),this._dispatchGradientChangeHandler=e=>{this._dispatchGradientChange()}}validate(e){return e instanceof a}register(e){const t=super.register(e);return t&&e.addEventListener(i,this._dispatchGradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(i,this._dispatchGradientChangeHandler,!1),t}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),!i&&this.doesPropertyTriggerGradientChange(e)&&this._dispatchGradientChange()}_dispatchGradientChange(){this.dispatchEvent(new GradientChangeEvent)}buildColor(t,r){if(r>=0&&r<=1){const i=e.Colors.parse(t);return e.Colors.stringify(e.Utils.extend(i,{a:r}))}return t}}r.PacemFxGradientItemElement=PacemFxGradientItemElement;let o=class PacemFxRadialGradientElement extends PacemFxGradientItemElement{doesPropertyTriggerGradientChange(e){return["shape","size","center","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const t=this.items;if(e.Utils.isNullOrEmpty(t))return"";const r="circle"===this.shape?"circle":"ellipse",i=this.center??{x:.5,y:.5},s=this.size;let a="";e.Utils.isNullOrEmpty(s)||(a="number"==typeof s?`${s}px`:`${n(s.width/2)} ${n(s.height/2)}`);let o=[];for(let{offset:e,color:r,hide:i,disabled:s,opacity:a}of t){if(i||s)continue;const t=this.buildColor(r,a);o.push(`${t} ${n(e)}`)}return`radial-gradient(${r} ${a} at ${n(i.x)} ${n(i.y)} in oklab, ${o.join(", ")})`}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"shape",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Point})],o.prototype,"center",void 0),__decorate([e.Watch({emit:!1,converter:s})],o.prototype,"size",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-radial"})],o),r.PacemFxRadialGradientElement=o;let l=class PacemFxLinearGradientElement extends PacemFxGradientItemElement{doesPropertyTriggerGradientChange(e){return["angle","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const t=this.items;if(e.Utils.isNullOrEmpty(t))return"";const r=this.angle??0;let i=[];for(let{offset:e,color:r,hide:s,disabled:a,opacity:o}of t){if(s||a)continue;const t=this.buildColor(r,o);i.push(`${t} ${n(e)}`)}return`linear-gradient(${r}deg in oklab, ${i.join(", ")})`}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"angle",void 0),l=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-linear"})],l),r.PacemFxLinearGradientElement=l;let c=class PacemFxGradientElement extends t.PacemItemsContainerElement{constructor(){super(...arguments),this._gradientChangeHandler=e=>{this._buildGradient()}}validate(e){return e instanceof PacemFxGradientItemElement}register(e){const t=super.register(e);return t&&e.addEventListener(i,this._gradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(i,this._gradientChangeHandler,!1),t}viewActivatedCallback(){super.viewActivatedCallback(),this._buildGradient()}propertyChangedCallback(e,t,r,i){if(super.propertyChangedCallback(e,t,r,i),!i)switch(e){case"target":t&&this._removeGradient(t);case"mode":case"disabled":this._buildGradient()}}_removeGradient(t){e.Utils.removeClass(t,e.PCSS+"-fx-gradient-text"),e.Utils.removeClass(t,e.PCSS+"-fx-gradient-fill"),t.style.backgroundImage=""}_buildGradient(){const t=this.target;if(e.Utils.isNull(t))return;let r="";const i=this.disabled?[]:this.items??[];for(let t of i){if(t.hide||t.disabled)continue;const i=t.buildGradient();e.Utils.isNullOrEmpty(i)||(r+=i,r.trim().endsWith(",")||(r+=","))}if(e.Utils.isNullOrEmpty(r))this._removeGradient(t);else{const i=e.PCSS+"-fx-gradient-text",s=e.PCSS+"-fx-gradient-fill",n="text"===this.mode;e.Utils.removeClass(t,n?s:i),e.Utils.addClass(t,n?i:s),t.style.backgroundImage=r.substring(0,r.length-1)}}};__decorate([e.Watch({converter:e.PropertyConverters.Element})],c.prototype,"target",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],c.prototype,"mode",void 0),__decorate([e.Debounce(!0)],c.prototype,"_buildGradient",null),c=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient"})],c),r.PacemFxGradientElement=c}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-hero",i={convert:t=>t.trim().startsWith("#")?e.PropertyConverters.Element.convert(t):e.PropertyConverters.Json.convert(t)};let s=class PacemFxHeroElement extends t.PacemFxElement{propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"target"!==t||e.Utils.isNull(r)||this._resetTarget(r),"from"===t&&this.hero&&!e.Utils.isNull(i)&&(this._originalState=this._computeFromState()),"hero"!==t&&"target"!==t&&"goal"!==t||e.Utils.isNull(this.target)||(this.hero?this.start():this.reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.hero&&!e.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){e.Utils.isNull(this.target)||this.reset(),super.disconnectedCallback()}_computeFromState(){const t=this.target,r=e.Utils.offset(t);if(this.from instanceof Element){let t=e.Utils.offset(this.from);return{x:t.left,y:t.top,width:t.width,height:t.height}}return{x:r.left,y:r.top,width:r.width,height:r.height}}_resetTarget(t=this.target){const i=t.style;i.top=i.left=i.height=i.width="";for(let e=0;e<i.length;e++){let t=i.item(e);i[t]=""}for(let e in this._originalStyle)i[e]=this._originalStyle[e];e.Utils.removeClass(t,r)}reset(){if(!e.Utils.isNull(this._originalState)&&!e.Utils.isNull(this._targetState))return this.dispatchEvent(new Event("exiting")),this._animate(this._targetState,this._originalState).then(()=>{this._resetTarget(),this.dispatchEvent(new Event("exited"))})}start(){if(!this.disabled&&!e.Utils.isNull(this.target)){let t;if(this.to instanceof Element){let r=e.Utils.offset(this.to);t={x:r.left,y:r.top,width:r.width,height:r.height}}else t=this.to;const i=this.target,s=e.Utils.windowSize,n=t||{x:0,y:0,width:s.width,height:s.height},a=i.style;this._targetState=n;let o=this._originalState=this._computeFromState();this._originalStyle={};for(let e=0;e<a.length;e++){let t=a.item(e);this._originalStyle[t]=a[t]}return e.Utils.addClass(i,r),this.dispatchEvent(new Event("entering")),this._animate(o,n).then(()=>{this.dispatchEvent(new Event("entered"))})}return Promise.resolve()}_animate(t,r){const i=this.target,s=i.style,n=t.width/r.width,a=t.height/r.height,o=t.x-r.x+"px",l=t.y-r.y+"px";return s.transformOrigin="0 0",s.transition="none",s.transform=`translate(${o}, ${l}) scale(${n}, ${a})`,s.width=r.width+"px",s.height=r.height+"px",s.top=r.y+"px",s.left=r.x+"px",requestAnimationFrame(()=>{let e=this.duration||200;s.transition=`transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${e}ms, opacity ${e}ms`,s.transform="translate(0, 0) scale(1)"}),e.Utils.waitForAnimationEnd(i,210)}};__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],s.prototype,"hero",void 0),__decorate([e.Watch({converter:i,emit:!1})],s.prototype,"to",void 0),__decorate([e.Watch({converter:i,emit:!1})],s.prototype,"from",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number,emit:!1})],s.prototype,"duration",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-hero"})],s),t.PacemFxHeroElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-fx-list";let i=class PacemFxListElement extends t.PacemFxElement{constructor(){super(...arguments),this._observed=e=>{const t=Array.from(this.target.children);for(let r of e)r.removedNodes.forEach(e=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemremoved",{detail:e}))}),r.addedNodes.forEach((e,r)=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemadded",{detail:{item:e,index:t.indexOf(e)}}))})}}viewActivatedCallback(){super.viewActivatedCallback(),e.Utils.isNull(this.target)||this._setup()}disconnectedCallback(){e.Utils.isNull(this._observer)||this._observer.disconnect(),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"target"===e&&(t?this._reset(t):this._setup())}_reset(t){e.Utils.removeClass(t,r),this._observer.disconnect()}_setup(){const t=this.target;e.Utils.addClass(t,r);(this._observer=new MutationObserver(this._observed)).observe(t,{childList:!0})}};i=__decorate([e.CustomElement({tagName:e.P+"-fx-list"})],i),t.PacemFxListElement=i}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){function i(t){return`${e.PCSS}-fx-pulse-${t}`}let s=class PacemFxPulseElement extends r.PacemFxElement{constructor(){super(),this._resizeHandler=e=>{this._pulse(e.detail)},this.#e=e.Utils.uniqueCode()}#e;viewActivatedCallback(){super.viewActivatedCallback(),this._pulse()}disconnectedCallback(){e.Utils.isNull(this._sheet)||(this._sheet.remove(),this._sheet=null),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"disabled"!==e||i||this._pulse()}_pulse(t=this._resize.currentSize){const r=e.Utils.isNull(this.target)||e.Utils.isNull(t)||!(t.height>0)||!(t.width>0);if(this._resize.disabled=this.disabled,this.disabled||r)return void e.Utils.addClass(this,"pulse-off");e.Utils.removeClass(this,"pulse-off");const s=t,n=getComputedStyle(this.target),a=this.style,o=Math.max(s.width,s.height);a.width=o+"px",a.height=o+"px",a.top=s.top+.5*(s.height-o)+"px",a.left=s.left+.5*(s.width-o)+"px";const l=this._rect1,c=this._rect2,d=l.style,h=c.style;this._sheet=function(t,r,s="0",n=s){const a="style#"+t,o=document.querySelector(a);if(e.Utils.isNull(o)){const e=document.createElement("style");e.id=t,document.head.appendChild(e)}const l=document.querySelector(a),c=r.width,d=r.height,h=Math.max(c,d),p=.5*(h-c),m=.5*(h-d);l.sheet.insertRule(`@keyframes ${i(t)} {\n 0%{\n opacity: .25; stroke-thickness: 0; rx: ${s}; ry: ${n}; x: ${p}px; y: ${m}px; width: ${r.width}px; height: ${r.height}px;\n }\n 50%{\n width: ${r.width}px; height: ${r.height}px; transform: scale(1); stroke-width: 10px; rx: ${s}; ry: ${n}; opacity: .333; x: ${p}px; y: ${m}px; width: ${c}px; height: ${d}px;\n }\n 80%{\n stroke-width: 10px;\n }\n 100%{\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${h}px; height: ${h}px; x: 0; y: 0\n }\n}`,0);for(let e=l.sheet.rules.length-1;e>0;e--)l.sheet.deleteRule(e);return l}(this.#e,t,n.borderTopLeftRadius);const p=i(this.#e);d.animation=h.animation=`${p} both cubic-bezier(0.37, 0, 0.63, 1) 1.25s infinite`,h.animationDelay=".175s"}};__decorate([e.ViewChild(e.P+"-resize")],s.prototype,"_resize",void 0),__decorate([e.ViewChild("svg")],s.prototype,"_svg",void 0),__decorate([e.ViewChild("svg > rect[rect1]")],s.prototype,"_rect1",void 0),__decorate([e.ViewChild("svg > rect[rect2]")],s.prototype,"_rect2",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-pulse",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-resize target="{{ :host.target }}" watch-position="true" on-${t.ResizeEventName}=":host._resizeHandler($event)"></${e.P}-resize>\n<svg class="pulse" xmlns="http://www.w3.org/2000/svg">\n <rect rect1 /><rect rect2 />\n</svg>`})],s),r.PacemFxPulseElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const i="ripple";let s=class PacemFxRippleElement extends r.PacemFxElement{constructor(){super(...arguments),this._lock=!1,this._remove=!1,this._rippleHandler=r=>{if(this.disabled||this.target instanceof t.PacemEventTarget&&this.target.disabled)return;if(r instanceof MouseEvent&&0!==r.button)return;const i=e.Utils.offset(this.target),s=getComputedStyle(this.target),n=this.style;n.top=i.top+"px",n.left=i.left+"px",n.width=i.width+"px",n.height=i.height+"px",n.borderRadius=s.borderRadius;const a="touchstart"===r.type?r.touches[0]:r,o={x:a.pageX,y:a.pageY},l={x:i.left,y:i.top},c={x:i.left+i.width,y:i.top},d={x:i.left,y:i.top+i.height},h={x:c.x,y:d.y},p=Math.max(e.Point.distance(o,l),e.Point.distance(o,c),e.Point.distance(o,h),e.Point.distance(o,d)),m=this._wave;m.style.left=o.x-i.left-p+"px",m.style.top=o.y-i.top-p+"px",m.style.width=m.style.height=2*p+"px",e.Utils.addAnimationEndCallback(m,()=>{this._lock=!1,this._tryRemove()}),this._lock=!0,e.Utils.addClass(m,"ripple-go")},this._unrippleHandler=e=>{this._remove=!0,this._tryRemove()}}propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"target"===t&&(e.Utils.isNull(r)||this._reset(r),e.Utils.isNull(i)||this._set(i))}viewActivatedCallback(){super.viewActivatedCallback(),e.Utils.isNull(this.target)||this._set()}disconnectedCallback(){e.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_tryRemove(){!this._lock&&this._remove&&(this._remove=!1,e.Utils.removeClass(this._wave,"ripple-go"))}_set(e=this.target){e.addEventListener("mousedown",this._rippleHandler,!1),e.addEventListener("touchstart",this._rippleHandler,!1),e.addEventListener("touchend",this._unrippleHandler,!1),e.addEventListener("mouseup",this._unrippleHandler,!1),e.addEventListener("mousemove",this._unrippleHandler,!1)}_reset(e=this.target){e.removeEventListener("mousedown",this._rippleHandler,!1),e.removeEventListener("touchstart",this._rippleHandler,!1),e.removeEventListener("touchend",this._unrippleHandler,!1),e.removeEventListener("mouseup",this._unrippleHandler,!1),e.removeEventListener("mousemove",this._unrippleHandler,!1)}};__decorate([e.ViewChild("."+i)],s.prototype,"_wave",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-ripple",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<div class="${i}"></div>`})],s),r.PacemFxRippleElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
6
+ "use strict";var Pacem,__decorate=this&&this.__decorate||function(e,t,r,i){var s,n=arguments.length,a=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(n<3?s(a):n>3?s(t,r,a):s(t,r))||a);return n>3&&a&&Object.defineProperty(t,r,a),a};!function(e){!function(t){!function(r){class PacemFxElement extends t.PacemEventTarget{}__decorate([e.Watch({converter:e.PropertyConverters.Element})],PacemFxElement.prototype,"target",void 0),r.PacemFxElement=PacemFxElement}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-fancy",i=e.PCSS+"-fancify";let s=class PacemFxFancyElement extends t.PacemFxElement{constructor(){super(...arguments),this._progress=0,this._started=!1}get progress(){return this._progress}get started(){return this._started}propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"fancify"!==t&&"target"!==t||e.Utils.isNull(this.target)||(this.fancify?this.start():this._reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.fancify&&!e.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){cancelAnimationFrame(this._handle),clearTimeout(this._handle1),e.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_reset(){e.Utils.removeClass(this.target,r),this._started&&this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!1})),this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"progress",oldValue:this._progress,currentValue:this._progress=0})),e.Utils.isNull(this._originalContent)?this._originalContent=this.target.innerHTML:this.target.innerHTML=this._originalContent}_parse(){let e,t=[],r=document.createTreeWalker(this.target,NodeFilter.SHOW_TEXT);for(;e=r.nextNode();)e.textContent&&t.push(e);this._textNodes=t}start(){this.disabled||(this._reset(),this._parse(),this._startShow(),this._handle1=setTimeout(()=>{this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"started",oldValue:this._started,currentValue:this._started=!0}))},this.delay||0))}_startShow(t=0){e.Utils.addClass(this.target,r);const i=this._textNodes,s=i.length;this._fancify(i[t]);const n=this._progress;t++;const a=this._progress=t/s;this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"progress",oldValue:n,currentValue:a})),t<s&&(this._handle=requestAnimationFrame(()=>{this._startShow(t)}))}_fancify(t){const r=t.textContent;if(e.Utils.isNullOrEmpty(r)||!/[^\s]/.test(r))return;const s=/^\s/.test(r),n=/\s$/.test(r);t.textContent="";const a=r.trim().split(" "),o=this.gap||20,l=this.delay||0;let c=0;for(let e of a){var d=document.createElement("span");d.className=i,d.style.animationDelay=`${l+c*o}ms`,(s||c>0)&&t.parentElement.insertBefore(document.createTextNode(" "),t),d.textContent=e,t.parentElement.insertBefore(d,t),c++}n&&t.parentElement.insertBefore(document.createTextNode(" "),t)}};__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],s.prototype,"fancify",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],s.prototype,"delay",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number})],s.prototype,"gap",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-fancy"})],s),t.PacemFxFancyElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const i="gradientchange";class GradientChangeEvent extends Event{constructor(){super(i,{cancelable:!1,bubbles:!1})}}const s={convert:(t,r)=>{try{return e.Size.parse(t)}catch{return e.PropertyConverters.Number.convert(t,r)}}};function n(e){return Math.round(1e3*e)/10+"%"}let a=class PacemFxGradientStopElement extends t.PacemItemElement{findContainer(){return e.CustomElementUtils.findAncestor(this,e=>e instanceof PacemFxGradientItemElement)}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),i||"offset"!==e&&"color"!==e&&"opacity"!==e&&"disabled"!==e&&"hide"!==e||this.dispatchEvent(new GradientChangeEvent)}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],a.prototype,"offset",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],a.prototype,"color",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],a.prototype,"opacity",void 0),a=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-stop"})],a),r.PacemFxGradientStopElement=a;class PacemFxGradientItemElement extends t.PacemCrossItemsContainerElement{constructor(){super(...arguments),this._dispatchGradientChangeHandler=e=>{this._dispatchGradientChange()}}validate(e){return e instanceof a}register(e){const t=super.register(e);return t&&e.addEventListener(i,this._dispatchGradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(i,this._dispatchGradientChangeHandler,!1),t}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),!i&&this.doesPropertyTriggerGradientChange(e)&&this._dispatchGradientChange()}_dispatchGradientChange(){this.dispatchEvent(new GradientChangeEvent)}buildColor(t,r){if(r>=0&&r<=1){const i=e.Colors.parse(t);return e.Colors.stringify(e.Utils.extend(i,{a:r}))}return t}}r.PacemFxGradientItemElement=PacemFxGradientItemElement;let o=class PacemFxRadialGradientElement extends PacemFxGradientItemElement{doesPropertyTriggerGradientChange(e){return["shape","size","center","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const t=this.items;if(e.Utils.isNullOrEmpty(t))return"";const r="circle"===this.shape?"circle":"ellipse",i=this.center??{x:.5,y:.5},s=this.size;let a="";e.Utils.isNullOrEmpty(s)||(a="number"==typeof s?`${s}px`:`${n(s.width/2)} ${n(s.height/2)}`);let o=[];for(let{offset:e,color:r,hide:i,disabled:s,opacity:a}of t){if(i||s)continue;const t=this.buildColor(r,a);o.push(`${t} ${n(e)}`)}return`radial-gradient(${r} ${a} at ${n(i.x)} ${n(i.y)} in oklab, ${o.join(", ")})`}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],o.prototype,"shape",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Point})],o.prototype,"center",void 0),__decorate([e.Watch({emit:!1,converter:s})],o.prototype,"size",void 0),o=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-radial"})],o),r.PacemFxRadialGradientElement=o;let l=class PacemFxLinearGradientElement extends PacemFxGradientItemElement{doesPropertyTriggerGradientChange(e){return["angle","items","hide","disabled"].indexOf(e)>=0}buildGradient(){const t=this.items;if(e.Utils.isNullOrEmpty(t))return"";const r=this.angle??0;let i=[];for(let{offset:e,color:r,hide:s,disabled:a,opacity:o}of t){if(s||a)continue;const t=this.buildColor(r,o);i.push(`${t} ${n(e)}`)}return`linear-gradient(${r}deg in oklab, ${i.join(", ")})`}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"angle",void 0),l=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient-linear"})],l),r.PacemFxLinearGradientElement=l;let c=class PacemFxGradientElement extends t.PacemItemsContainerElement{constructor(){super(...arguments),this._gradientChangeHandler=e=>{this._buildGradient()}}validate(e){return e instanceof PacemFxGradientItemElement}register(e){const t=super.register(e);return t&&e.addEventListener(i,this._gradientChangeHandler,!1),t}unregister(e){const t=super.unregister(e);return t&&e.removeEventListener(i,this._gradientChangeHandler,!1),t}viewActivatedCallback(){super.viewActivatedCallback(),this._buildGradient()}propertyChangedCallback(e,t,r,i){if(super.propertyChangedCallback(e,t,r,i),!i)switch(e){case"target":t&&this._removeGradient(t);case"mode":case"disabled":this._buildGradient()}}_removeGradient(t){e.Utils.removeClass(t,e.PCSS+"-fx-gradient-text"),e.Utils.removeClass(t,e.PCSS+"-fx-gradient-fill"),t.style.backgroundImage=""}_buildGradient(){const t=this.target;if(e.Utils.isNull(t))return;let r="";const i=this.disabled?[]:this.items??[];for(let t of i){if(t.hide||t.disabled)continue;const i=t.buildGradient();e.Utils.isNullOrEmpty(i)||(r+=i,r.trim().endsWith(",")||(r+=","))}if(e.Utils.isNullOrEmpty(r))this._removeGradient(t);else{const i=e.PCSS+"-fx-gradient-text",s=e.PCSS+"-fx-gradient-fill",n="text"===this.mode;e.Utils.removeClass(t,n?s:i),e.Utils.addClass(t,n?i:s),t.style.backgroundImage=r.substring(0,r.length-1)}}};__decorate([e.Watch({converter:e.PropertyConverters.Element})],c.prototype,"target",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],c.prototype,"mode",void 0),__decorate([e.Debounce(!0)],c.prototype,"_buildGradient",null),c=__decorate([e.CustomElement({tagName:e.P+"-fx-gradient"})],c),r.PacemFxGradientElement=c}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-hero",i={convert:t=>t.trim().startsWith("#")?e.PropertyConverters.Element.convert(t):e.PropertyConverters.Json.convert(t)};let s=class PacemFxHeroElement extends t.PacemFxElement{propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"target"!==t||e.Utils.isNull(r)||this._resetTarget(r),"from"===t&&this.hero&&!e.Utils.isNull(i)&&(this._originalState=this._computeFromState()),"hero"!==t&&"target"!==t&&"goal"!==t||e.Utils.isNull(this.target)||(this.hero?this.start():this.reset())}viewActivatedCallback(){super.viewActivatedCallback(),this.hero&&!e.Utils.isNull(this.target)&&this.start()}disconnectedCallback(){e.Utils.isNull(this.target)||this.reset(),super.disconnectedCallback()}_computeFromState(){const t=this.target,r=e.Utils.offset(t);if(this.from instanceof Element){let t=e.Utils.offset(this.from);return{x:t.left,y:t.top,width:t.width,height:t.height}}return{x:r.left,y:r.top,width:r.width,height:r.height}}_resetTarget(t=this.target){const i=t.style;i.top=i.left=i.height=i.width="";for(let e=0;e<i.length;e++){let t=i.item(e);i[t]=""}for(let e in this._originalStyle)i[e]=this._originalStyle[e];e.Utils.removeClass(t,r)}reset(){if(!e.Utils.isNull(this._originalState)&&!e.Utils.isNull(this._targetState))return this.dispatchEvent(new Event("exiting")),this._animate(this._targetState,this._originalState).then(()=>{this._resetTarget(),this.dispatchEvent(new Event("exited"))})}start(){if(!this.disabled&&!e.Utils.isNull(this.target)){let t;if(this.to instanceof Element){let r=e.Utils.offset(this.to);t={x:r.left,y:r.top,width:r.width,height:r.height}}else t=this.to;const i=this.target,s=e.Utils.windowSize,n=t||{x:0,y:0,width:s.width,height:s.height},a=i.style;this._targetState=n;let o=this._originalState=this._computeFromState();this._originalStyle={};for(let e=0;e<a.length;e++){let t=a.item(e);this._originalStyle[t]=a[t]}return e.Utils.addClass(i,r),this.dispatchEvent(new Event("entering")),this._animate(o,n).then(()=>{this.dispatchEvent(new Event("entered"))})}return Promise.resolve()}_animate(t,r){const i=this.target,s=i.style,n=t.width/r.width,a=t.height/r.height,o=t.x-r.x+"px",l=t.y-r.y+"px";return s.transformOrigin="0 0",s.transition="none",s.transform=`translate(${o}, ${l}) scale(${n}, ${a})`,s.width=r.width+"px",s.height=r.height+"px",s.top=r.y+"px",s.left=r.x+"px",requestAnimationFrame(()=>{let e=this.duration||200;s.transition=`transform cubic-bezier(0.445, 0.05, 0.55, 0.95) ${e}ms, opacity ${e}ms`,s.transform="translate(0, 0) scale(1)"}),e.Utils.waitForAnimationEnd(i,210)}};__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],s.prototype,"hero",void 0),__decorate([e.Watch({converter:i,emit:!1})],s.prototype,"to",void 0),__decorate([e.Watch({converter:i,emit:!1})],s.prototype,"from",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Number,emit:!1})],s.prototype,"duration",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-hero"})],s),t.PacemFxHeroElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const r=e.PCSS+"-fx-list";let i=class PacemFxListElement extends t.PacemFxElement{constructor(){super(...arguments),this._observed=e=>{const t=Array.from(this.target.children);for(let r of e)r.removedNodes.forEach(e=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemremoved",{detail:e}))}),r.addedNodes.forEach((e,r)=>{e instanceof Element&&this.dispatchEvent(new CustomEvent("itemadded",{detail:{item:e,index:t.indexOf(e)}}))})}}viewActivatedCallback(){super.viewActivatedCallback(),e.Utils.isNull(this.target)||this._setup()}disconnectedCallback(){e.Utils.isNull(this._observer)||this._observer.disconnect(),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"target"===e&&(t?this._reset(t):this._setup())}_reset(t){e.Utils.removeClass(t,r),this._observer.disconnect()}_setup(){const t=this.target;e.Utils.addClass(t,r);(this._observer=new MutationObserver(this._observed)).observe(t,{childList:!0})}};i=__decorate([e.CustomElement({tagName:e.P+"-fx-list"})],i),t.PacemFxListElement=i}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){function i(t){return`${e.PCSS}-fx-pulse-${t}`}let s=class PacemFxPulseElement extends r.PacemFxElement{constructor(){super(),this._resizeHandler=e=>{this._pulse(e.detail)},this.#e=e.Utils.uniqueCode()}#e;viewActivatedCallback(){super.viewActivatedCallback(),this._pulse()}disconnectedCallback(){e.Utils.isNull(this._sheet)||(this._sheet.remove(),this._sheet=null),super.disconnectedCallback()}propertyChangedCallback(e,t,r,i){super.propertyChangedCallback(e,t,r,i),"disabled"!==e||i||this._pulse()}_pulse(t=this._resize.currentSize){const r=e.Utils.isNull(this.target)||e.Utils.isNull(t)||!(t.height>0)||!(t.width>0);if(this._resize.disabled=this.disabled,this.disabled||r)return void e.Utils.addClass(this,"pulse-off");e.Utils.removeClass(this,"pulse-off");const s=t,n=getComputedStyle(this.target),a=this.style,o=Math.max(s.width,s.height);a.width=o+"px",a.height=o+"px",a.top=s.top+.5*(s.height-o)+"px",a.left=s.left+.5*(s.width-o)+"px";const l=this._rect1,c=this._rect2,d=l.style,h=c.style;this._sheet=function(t,r,s="0",n=s){const a="style#"+t,o=document.querySelector(a);if(e.Utils.isNull(o)){const e=document.createElement("style");e.id=t,document.head.appendChild(e)}const l=document.querySelector(a),c=r.width,d=r.height,h=Math.max(c,d),p=.5*(h-c),m=.5*(h-d);l.sheet.insertRule(`@keyframes ${i(t)} {\n 0%{\n opacity: .25; stroke-thickness: 0; rx: ${s}; ry: ${n}; x: ${p}px; y: ${m}px; width: ${r.width}px; height: ${r.height}px;\n }\n 50%{\n width: ${r.width}px; height: ${r.height}px; transform: scale(1); stroke-width: 10px; rx: ${s}; ry: ${n}; opacity: .333; x: ${p}px; y: ${m}px; width: ${c}px; height: ${d}px;\n }\n 80%{\n stroke-width: 10px;\n }\n 100%{\n opacity: 0; rx: 50%; ry: 50%; transform: scale(2); stroke-width: 0; width: ${h}px; height: ${h}px; x: 0; y: 0\n }\n}`,0);for(let e=l.sheet.rules.length-1;e>0;e--)l.sheet.deleteRule(e);return l}(this.#e,t,n.borderTopLeftRadius);const p=i(this.#e);d.animation=h.animation=`${p} both cubic-bezier(0.37, 0, 0.63, 1) 1.25s infinite`,h.animationDelay=".175s"}};__decorate([e.ViewChild(e.P+"-resize")],s.prototype,"_resize",void 0),__decorate([e.ViewChild("svg")],s.prototype,"_svg",void 0),__decorate([e.ViewChild("svg > rect[rect1]")],s.prototype,"_rect1",void 0),__decorate([e.ViewChild("svg > rect[rect2]")],s.prototype,"_rect2",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-pulse",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<${e.P}-resize target="{{ :host.target }}" watch-position="true" on-${t.ResizeEventName}=":host._resizeHandler($event)"></${e.P}-resize>\n<svg class="pulse" xmlns="http://www.w3.org/2000/svg">\n <rect rect1 /><rect rect2 />\n</svg>`})],s),r.PacemFxPulseElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const i="ripple";let s=class PacemFxRippleElement extends r.PacemFxElement{constructor(){super(...arguments),this._lock=!1,this._remove=!1,this._rippleHandler=r=>{if(this.disabled||this.target instanceof t.PacemEventTarget&&this.target.disabled)return;if(r instanceof MouseEvent&&0!==r.button)return;const i=e.Utils.offset(this.target),s=getComputedStyle(this.target),n=this.style;n.top=i.top+"px",n.left=i.left+"px",n.width=i.width+"px",n.height=i.height+"px",n.borderRadius=s.borderRadius;const a="touchstart"===r.type?r.touches[0]:r,o={x:a.pageX,y:a.pageY},l={x:i.left,y:i.top},c={x:i.left+i.width,y:i.top},d={x:i.left,y:i.top+i.height},h={x:c.x,y:d.y},p=Math.max(e.Point.distance(o,l),e.Point.distance(o,c),e.Point.distance(o,h),e.Point.distance(o,d)),m=this._wave;m.style.left=o.x-i.left-p+"px",m.style.top=o.y-i.top-p+"px",m.style.width=m.style.height=2*p+"px",e.Utils.addAnimationEndCallback(m,()=>{this._lock=!1,this._tryRemove()}),this._lock=!0,e.Utils.addClass(m,"ripple-go")},this._unrippleHandler=e=>{this._remove=!0,this._tryRemove()}}propertyChangedCallback(t,r,i,s){super.propertyChangedCallback(t,r,i,s),"target"===t&&(e.Utils.isNull(r)||this._reset(r),e.Utils.isNull(i)||this._set(i))}viewActivatedCallback(){super.viewActivatedCallback(),e.Utils.isNull(this.target)||this._set()}disconnectedCallback(){e.Utils.isNull(this.target)||this._reset(),super.disconnectedCallback()}_tryRemove(){!this._lock&&this._remove&&(this._remove=!1,e.Utils.removeClass(this._wave,"ripple-go"))}_set(e=this.target){e.addEventListener("mousedown",this._rippleHandler,!1),e.addEventListener("touchstart",this._rippleHandler,!1),e.addEventListener("touchend",this._unrippleHandler,!1),e.addEventListener("mouseup",this._unrippleHandler,!1),e.addEventListener("mousemove",this._unrippleHandler,!1)}_reset(e=this.target){e.removeEventListener("mousedown",this._rippleHandler,!1),e.removeEventListener("touchstart",this._rippleHandler,!1),e.removeEventListener("touchend",this._unrippleHandler,!1),e.removeEventListener("mouseup",this._unrippleHandler,!1),e.removeEventListener("mousemove",this._unrippleHandler,!1)}};__decorate([e.ViewChild("."+i)],s.prototype,"_wave",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-fx-ripple",shadow:e.Defaults.USE_SHADOW_ROOT,template:`<div class="${i}"></div>`})],s),r.PacemFxRippleElement=s}(t.Fx||(t.Fx={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,8 +1,9 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
+ "use strict";
6
7
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
8
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
9
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1,6 +1,6 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
- var Pacem,__decorate=this&&this.__decorate||function(e,t,o,n){var r,a=arguments.length,c=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(c=(a<3?r(c):a>3?r(t,o,c):r(t,o))||c);return a>3&&c&&Object.defineProperty(t,o,c),c};!function(e){!function(t){!function(o){const n={error:!0,info:!0,warn:!0};let r=class PacemConsoleElement extends t.PacemEventTarget{constructor(){super(...arguments),this._config=n}propertyChangedCallback(t,o,r,a){super.propertyChangedCallback(t,o,r,a),"configuration"===t&&(this._config=e.Utils.extend({},r||{},n))}log(e,t,o){try{this._log(e,t,o)}catch(e){}}_log(t,o,n){if(!this.disabled&&!0===this._config[t]){n!==this._category&&(e.Utils.isNullOrEmpty(this._category)||console.groupEnd(),e.Utils.isNullOrEmpty(n)||console.group(n),this._category=n);var r=e=>{};switch(t){case e.Logging.LogLevel.Debug:r=console.debug;break;case e.Logging.LogLevel.Error:r=console.error;break;case e.Logging.LogLevel.Info:r=console.info;break;case e.Logging.LogLevel.Trace:r=console.trace;break;case e.Logging.LogLevel.Warn:r=console.warn;break;case e.Logging.LogLevel.Log:r=console.log}r((new Date).toISOString()+": "+o)}}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],r.prototype,"configuration",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-console"})],r),o.PacemConsoleElement=r}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(o){const n={current:0,count:0,average:0,max:Number.MIN_VALUE,min:Number.MAX_VALUE};class PacemTrackerElement extends t.PacemEventTarget{constructor(){super(),this.data=n}propertyChangedCallback(e,t,o,n){super.propertyChangedCallback(e,t,o,n),"entry"===e&&this._update(o).then(e=>this.data=e)}_update(t){return e.Utils.fromResultAsync(()=>{const e=this.data,o=Math.min(t,e.min),n=Math.max(t,e.max),r=e.count+1;return{count:r,min:o,max:n,average:(e.count*e.average+t)/r,current:t}})}reset(){this.data=n}}__decorate([e.Watch({converter:e.PropertyConverters.Json})],PacemTrackerElement.prototype,"data",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],PacemTrackerElement.prototype,"entry",void 0),__decorate([e.Concurrent()],PacemTrackerElement.prototype,"_update",null),o.PacemTrackerElement=PacemTrackerElement}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){let o=class PacemFpsElement extends t.PacemTrackerElement{constructor(){super()}_start(e=Date.now()){this._handle=requestAnimationFrame(()=>{const t=Date.now(),o=t-e;this.entry=Math.min(60,1e3/o),this._start(t)})}viewActivatedCallback(){super.viewActivatedCallback(),this._start()}disconnectedCallback(){cancelAnimationFrame(this._handle),super.disconnectedCallback()}};o=__decorate([e.CustomElement({tagName:e.P+"-fps"})],o),t.PacemFpsElement=o}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
6
+ "use strict";var Pacem,__decorate=this&&this.__decorate||function(e,t,o,n){var r,a=arguments.length,c=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(c=(a<3?r(c):a>3?r(t,o,c):r(t,o))||c);return a>3&&c&&Object.defineProperty(t,o,c),c};!function(e){!function(t){!function(o){const n={error:!0,info:!0,warn:!0};let r=class PacemConsoleElement extends t.PacemEventTarget{constructor(){super(...arguments),this._config=n}propertyChangedCallback(t,o,r,a){super.propertyChangedCallback(t,o,r,a),"configuration"===t&&(this._config=e.Utils.extend({},r||{},n))}log(e,t,o){try{this._log(e,t,o)}catch(e){}}_log(t,o,n){if(!this.disabled&&!0===this._config[t]){n!==this._category&&(e.Utils.isNullOrEmpty(this._category)||console.groupEnd(),e.Utils.isNullOrEmpty(n)||console.group(n),this._category=n);var r=e=>{};switch(t){case e.Logging.LogLevel.Debug:r=console.debug;break;case e.Logging.LogLevel.Error:r=console.error;break;case e.Logging.LogLevel.Info:r=console.info;break;case e.Logging.LogLevel.Trace:r=console.trace;break;case e.Logging.LogLevel.Warn:r=console.warn;break;case e.Logging.LogLevel.Log:r=console.log}r((new Date).toISOString()+": "+o)}}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],r.prototype,"configuration",void 0),r=__decorate([e.CustomElement({tagName:e.P+"-console"})],r),o.PacemConsoleElement=r}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(o){const n={current:0,count:0,average:0,max:Number.MIN_VALUE,min:Number.MAX_VALUE};class PacemTrackerElement extends t.PacemEventTarget{constructor(){super(),this.data=n}propertyChangedCallback(e,t,o,n){super.propertyChangedCallback(e,t,o,n),"entry"===e&&this._update(o).then(e=>this.data=e)}_update(t){return e.Utils.fromResultAsync(()=>{const e=this.data,o=Math.min(t,e.min),n=Math.max(t,e.max),r=e.count+1;return{count:r,min:o,max:n,average:(e.count*e.average+t)/r,current:t}})}reset(){this.data=n}}__decorate([e.Watch({converter:e.PropertyConverters.Json})],PacemTrackerElement.prototype,"data",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],PacemTrackerElement.prototype,"entry",void 0),__decorate([e.Concurrent()],PacemTrackerElement.prototype,"_update",null),o.PacemTrackerElement=PacemTrackerElement}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){let o=class PacemFpsElement extends t.PacemTrackerElement{constructor(){super()}_start(e=Date.now()){this._handle=requestAnimationFrame(()=>{const t=Date.now(),o=t-e;this.entry=Math.min(60,1e3/o),this._start(t)})}viewActivatedCallback(){super.viewActivatedCallback(),this._start()}disconnectedCallback(){cancelAnimationFrame(this._handle),super.disconnectedCallback()}};o=__decorate([e.CustomElement({tagName:e.P+"-fps"})],o),t.PacemFpsElement=o}(t.Logging||(t.Logging={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,8 +1,9 @@
1
1
  /**
2
- * pacem v0.53.0-stevin (https://js.pacem.it)
2
+ * pacem v0.53.0 (https://js.pacem.it)
3
3
  * Copyright 2026 Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
+ "use strict";
6
7
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
8
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
9
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);