@pacem/pacem-theme-css 0.0.0-stage → 2.0.0-abel
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.
- package/LICENSE +191 -0
- package/NOTICE +4 -0
- package/README.md +142 -3
- package/cli.js +26 -0
- package/pacem-themes.json +10 -0
- package/package.json +45 -6
- package/src/2d/index.css +44 -0
- package/src/3d/index.css +49 -0
- package/src/base/animations.css +82 -0
- package/src/base/attributes.css +19 -0
- package/src/base/backgrounds.css +37 -0
- package/src/base/body.css +199 -0
- package/src/base/content.css +4 -0
- package/src/base/icons.css +74 -0
- package/src/base/logging.css +5 -0
- package/src/base/overrides.css +3 -0
- package/src/base/preloader.css +17 -0
- package/src/base/reset.css +50 -0
- package/src/base/shell.css +3 -0
- package/src/base/text.css +184 -0
- package/src/basic/index.css +285 -0
- package/src/charts/generated/colors.css +49 -0
- package/src/charts/index.css +573 -0
- package/src/fx/index.css +230 -0
- package/src/layout/address.css +46 -0
- package/src/layout/animations.css +33 -0
- package/src/layout/borders.css +63 -0
- package/src/layout/box.css +271 -0
- package/src/layout/breadcrumbs.css +114 -0
- package/src/layout/cards.css +246 -0
- package/src/layout/coloring.css +862 -0
- package/src/layout/container.css +40 -0
- package/src/layout/corners.css +52 -0
- package/src/layout/datatable.css +324 -0
- package/src/layout/elevation.css +73 -0
- package/src/layout/fetch-feedback.css +125 -0
- package/src/layout/generated/borders.css +403 -0
- package/src/layout/generated/card-ribbon.css +94 -0
- package/src/layout/generated/card-sides.css +888 -0
- package/src/layout/generated/grid-system.css +308 -0
- package/src/layout/generated/grids.css +952 -0
- package/src/layout/generated/layout-stretch.css +132 -0
- package/src/layout/generated/positioning.css +323 -0
- package/src/layout/generated/sizing.css +478 -0
- package/src/layout/generated/spacing.css +1988 -0
- package/src/layout/generated/visibility.css +384 -0
- package/src/layout/grid-system.css +49 -0
- package/src/layout/grids.css +92 -0
- package/src/layout/index.css +39 -0
- package/src/layout/interactive.css +11 -0
- package/src/layout/layout.css +479 -0
- package/src/layout/lists.css +104 -0
- package/src/layout/other.css +25 -0
- package/src/layout/panels.css +337 -0
- package/src/layout/positioning.css +108 -0
- package/src/layout/scroll.css +85 -0
- package/src/layout/shapes.css +20 -0
- package/src/layout/shell.css +3 -0
- package/src/layout/sizing.css +25 -0
- package/src/layout/spacing.css +17 -0
- package/src/layout/superposition-system.css +116 -0
- package/src/layout/tokens-chips.css +15 -0
- package/src/layout/toolbar.css +30 -0
- package/src/layout/typography.css +106 -0
- package/src/layout/visibility.css +231 -0
- package/src/maps/index.css +20 -0
- package/src/media/index.css +6 -0
- package/src/media.css +18 -0
- package/src/pacem-content.css +24 -0
- package/src/pacem-shell.css +14 -0
- package/src/pacem.css +35 -0
- package/src/plus/carousel.css +327 -0
- package/src/plus/datagrid.css +68 -0
- package/src/plus/gallery.css +186 -0
- package/src/plus/icons.css +25 -0
- package/src/plus/index.css +7 -0
- package/src/plus/misc.css +194 -0
- package/src/scaffolding/calendar-picker.css +291 -0
- package/src/scaffolding/checkbox-radio.css +118 -0
- package/src/scaffolding/checkbox.css +200 -0
- package/src/scaffolding/childform.css +156 -0
- package/src/scaffolding/color.css +129 -0
- package/src/scaffolding/contenteditable.css +403 -0
- package/src/scaffolding/datepicker.css +126 -0
- package/src/scaffolding/elements.css +30 -0
- package/src/scaffolding/fieldset.css +346 -0
- package/src/scaffolding/form.css +36 -0
- package/src/scaffolding/formfield.css +364 -0
- package/src/scaffolding/generated/calendar-picker.css +40 -0
- package/src/scaffolding/generated/colors.css +115 -0
- package/src/scaffolding/generated/formfield.css +500 -0
- package/src/scaffolding/hierarchy.css +76 -0
- package/src/scaffolding/icons.css +64 -0
- package/src/scaffolding/image.css +195 -0
- package/src/scaffolding/index.css +40 -0
- package/src/scaffolding/input.css +163 -0
- package/src/scaffolding/inputs.css +77 -0
- package/src/scaffolding/latlng.css +173 -0
- package/src/scaffolding/markdown.css +14 -0
- package/src/scaffolding/password.css +7 -0
- package/src/scaffolding/pickers.css +150 -0
- package/src/scaffolding/radio.css +68 -0
- package/src/scaffolding/select.css +59 -0
- package/src/scaffolding/slider.css +236 -0
- package/src/scaffolding/snapshot.css +167 -0
- package/src/scaffolding/suggest.css +92 -0
- package/src/scaffolding/tags.css +132 -0
- package/src/scaffolding/textarea.css +45 -0
- package/src/scaffolding/upload.css +283 -0
- package/src/scaffolding/validators.css +29 -0
- package/src/tokens/colors.css +403 -0
- package/src/tokens/components.css +16 -0
- package/src/tokens/system.css +92 -0
- package/src/tokens/theme.css +221 -0
- package/src/traits.css +18 -0
- package/src/transforms/index.css +5 -0
- package/src/ui/anchor.css +55 -0
- package/src/ui/balloon.css +573 -0
- package/src/ui/binder.css +28 -0
- package/src/ui/blade.css +83 -0
- package/src/ui/bottom-sheet.css +53 -0
- package/src/ui/button.css +626 -0
- package/src/ui/calendar.css +415 -0
- package/src/ui/collapse.css +25 -0
- package/src/ui/dialog.css +230 -0
- package/src/ui/divider.css +42 -0
- package/src/ui/generated/calendar.css +363 -0
- package/src/ui/hidden.css +40 -0
- package/src/ui/icon.css +90 -0
- package/src/ui/image.css +140 -0
- package/src/ui/index.css +30 -0
- package/src/ui/led.css +84 -0
- package/src/ui/loader.css +174 -0
- package/src/ui/markdown.css +352 -0
- package/src/ui/marquee.css +41 -0
- package/src/ui/menu.css +386 -0
- package/src/ui/pager.css +133 -0
- package/src/ui/progressbar.css +137 -0
- package/src/ui/shell.css +4 -0
- package/src/ui/sidebar.css +103 -0
- package/src/ui/sticky-header.css +22 -0
- package/src/ui/tabs.css +355 -0
- package/src/ui/ticker.css +105 -0
- package/src/ui/timeline.css +106 -0
- package/src/ui/toast.css +182 -0
- package/src/ui/toc.css +58 -0
- package/src/ui/tuner.css +196 -0
- package/src/ui/view.css +30 -0
- package/src/ui/window.css +287 -0
- package/templates/theme.css +28 -0
- package/themebuilder.js +19 -0
- package/themes/dark.css +6 -0
- package/themes/light.css +97 -0
package/cli.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import Bt from"node:fs";import Ot from"node:path";import To from"yargs";import{hideBin as _o}from"yargs/helpers";import ue from"node:fs";import xt from"node:path";var lt=(()=>{for(let n=import.meta.dirname;;n=xt.dirname(n)){let t=xt.join(n,"package.json");if(ue.existsSync(t)&&JSON.parse(ue.readFileSync(t,"utf-8")).name==="@pacem/pacem-theme-css")return n;if(xt.dirname(n)===n)throw new Error("@pacem/pacem-theme-css package root not found")}})(),_t={dark:{file:null,traits:{shadows:!0,gradients:!0,glows:!1,blur:!1,"dark-scheme":!0,"field-underline":!0,"field-outline":!1}},light:{file:"themes/light.css",traits:{shadows:!1,gradients:!1,glows:!1,blur:!1,"dark-scheme":!1,"field-underline":!1,"field-outline":!1}}},Ye={"light-scheme":"no-dark-scheme","field-box":"no-field-underline"},fe=xt.join(lt,"pacem-themes.json"),pr={modes:"themes",css:"embed"},De=["default","min","max"];function je(n,t){for(let e of Object.keys(n??{}))if(!De.includes(e))throw new Error(`${t}: unknown contrast "${e}" (${De.join(", ")})`)}function dr(n,t){for(let[a,c]of Object.entries(pr))if(a in n)throw new Error(`"${a}" is now "${c}"`);je(n.contrast,"contrast");let e=a=>xt.resolve(t,a),r=Object.entries(n.themes??{dark:{},light:{}}).map(([a,c])=>{let l=c.base??(a in _t?a:"dark");if(!(l in _t))throw new Error(`theme ${a}: unknown base "${l}" (${Object.keys(_t).join(", ")})`);if(!/^[a-z][\w-]*$/.test(a))throw new Error(`theme "${a}": use lowercase attribute-like names`);je(c.contrast,`theme ${a}`);let f=c.palette===!1?null:c.palette??n.palette,d={..._t[l].traits};for(let[y,x]of Object.entries(c.traits??{}))x!=null&&(d[y]=x);return{name:a,base:l,palette:f?e(f):null,contrast:{...n.contrast,...c.contrast},tokens:c.tokens?e(c.tokens):null,traits:d}});if(!r.length)throw new Error("at least one theme is needed");let s=new Set(r.flatMap(a=>Object.keys(a.traits)));for(let a of r)for(let c of s)a.traits[c]??=!1;let i=Array.isArray(n.embed)?{shell:[],content:n.embed}:{shell:n.embed?.shell??[],content:n.embed?.content??[]},o=n.default??r[0].name;if(!r.some(a=>a.name===o))throw new Error(`default theme "${o}" is not among the themes`);return{name:n.name??"pacem",out:xt.resolve(t,n.out??"dist/css"),modes:r,default:o,css:{shell:i.shell.map(e),content:i.content.map(e)},prefix:{tag:n.prefix?.tag??"pacem",class:n.prefix?.class??"pacem"},emit:{themes:n.emit?.themes??!1,compat:n.emit?.compat??!1}}}function he(n){let t=JSON.parse(ue.readFileSync(n,"utf-8").replace(/^/,""));return dr(t,xt.dirname(xt.resolve(n)))}var gr;function He(){return gr??=he(fe)}import Ut from"node:fs";import et from"node:path";import{bundleAsync as bo}from"lightningcss";var mr=Object.defineProperty,nn=(n,t)=>{for(var e in t)mr(n,e,{get:t[e],enumerable:!0})};Number.prototype.isCloseTo=function(n,t=14){let e=+`1e-${t}`;return this>n-e&&this<n+e};Number.prototype.roundoff=function(n=14){return parseFloat(this.toFixed(n))};Number.prototype.clamp=function(n,t){let e=this;return n!=null&&!isNaN(n)&&(e=Math.max(e,n)),t!=null&&!isNaN(t)&&(e=Math.min(e,t)),e};Number.prototype.toBase62=function(){for(var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",t=this,e="";t!=0;){var r=t%62;e=n.charAt(r)+e,t=Math.floor(t/62)}return e};Number.prototype.toBase36=function(){return this.toString(36)};var yr=/^\/Date\([\d]+\)\/$/i,xr=class be{static parse(t){let e;return typeof t=="string"?(yr.test(t)?e=parseInt(t.substring(6)):e=Date.parse(t),new Date(e)):typeof t=="number"?new Date(t):t}static isLeapYear(t){return t%4===0&&t%100!==0||t%400===0}static daysInMonth(t,e){return[31,be.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}static isDate(t){return t instanceof Date&&!isNaN(t.valueOf())}static dateOnly(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}static addMonths(t,e){let r=t.getDate(),s=new Date(t),i=s.getMonth()+e,o=0;for(;i<0;)i+=12,o--;return s.setDate(1),s.setMonth(i%12),s.setFullYear(s.getFullYear()+o+Math.floor(i/12)),s.setDate(Math.min(r,be.daysInMonth(s.getFullYear(),s.getMonth()))),s}static addDays(t,e){return new Date(t.valueOf()+e*864e5)}static daysBetween(t,e){return(e.valueOf()-t.valueOf())/864e5}},q=class we{static isNull(t){return t==null}static isEmpty(t){try{return Array.isArray(t)&&t.length===0||typeof t=="string"&&t===""||typeof t=="object"&&Object.keys(t).length===0&&!xr.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch{return!1}}static isNullOrEmpty(t){return we.isNull(t)||we.isEmpty(t)}};Array.prototype.distinct=function(){return Array.from(new Set(this))};Array.prototype.union=function(n){let t=q.isNullOrEmpty(this),e=q.isNullOrEmpty(n);return t&&e?[]:e?this.slice():t?n.slice():this.concat(n).distinct()};Array.prototype.moveWithin=function(n,t){let e="Index must be greater or equal than 0 and less or equal than the length of the array.";var r=this;if(n<0||n>r.length)throw new Error(e);if(t<0||t>r.length)throw new Error(e);r.splice(t,0,Array.prototype.splice.apply(r,[n,1])[0])};Array.prototype.equalsContent=function(n){if(n==null||this.length!==n.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==n[t])return!1;return!0};Array.prototype.cloneFrom=function(n){if(n==null)throw"Cannot clone array from null object.";let t=n.length;var e=this.length!==n.length;for(let r=0;r<t;r++){let s=n[r];this.length>r?this[r]!==s&&(this[r]=s,e=!0):(Array.prototype.push.apply(this,[s]),e=!0)}e&&this.splice(t)};var Xe=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,Ue=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,Ze=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,Ge=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,Ve=/^#[a-f0-9]{6}$/,Qe=/^#[a-f0-9]{3}$/;function Pt(n){return!q.isNullOrEmpty(n)&&typeof n=="object"&&"r"in n&&"g"in n&&"b"in n&&typeof n.r=="number"&&typeof n.b=="number"&&typeof n.g=="number"?(n.a??=1,n.r>=0&&n.r<=1&&n.g>=0&&n.g<=1&&n.b>=0&&n.b<=1&&n.a>=0&&n.a<=1):!1}function ut(n){return!q.isNullOrEmpty(n)&&typeof n=="object"&&"h"in n&&"s"in n&&"l"in n&&typeof n.h=="number"&&typeof n.s=="number"&&typeof n.l=="number"?(n.a??=1,n.h>=0&&n.h<=360&&n.s>=0&&n.s<=1&&n.l>=0&&n.l<=1&&n.a>=0&&n.a<=1):!1}function br(n){let t=n.r,e=n.g,r=n.b;return(.5*(Math.max(t,e,r)+Math.min(t,e,r))).clamp(0,1)}var V={adjustRgbChannel:n=>n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),adjustRgbChannelInv:n=>n<=.00304?n*12.92:1.055*(Math.pow(n,1/2.4)-.055),adjustRgb:n=>({r:V.adjustRgbChannel(n.r),g:V.adjustRgbChannel(n.g),b:V.adjustRgbChannel(n.b),a:n.a}),adjustRgbInv:n=>({r:V.adjustRgbChannelInv(n.r),g:V.adjustRgbChannelInv(n.g),b:V.adjustRgbChannelInv(n.b),a:n.a}),X:n=>.4125*n.r+.3576*n.g+.1804*n.b,Y:n=>.2126*n.r+.7152*n.g+.0722*n.b,Z:n=>.0193*n.r+.1191*n.g+.9503*n.b,relativeLuminance:n=>{let t=V.adjustRgb(n);return V.Y(t)},rgbToCieXYZ:n=>{let t=V.adjustRgb(n);return{x:V.X(t),y:V.Y(t),z:V.Z(t),a:n.a}},cieXYZToRgb:n=>{let t=3.241*n.x-1.5374*n.y-.4986*n.z,e=-.9692*n.x+1.876*n.y+.0416*n.z,r=.0556*n.x-.204*n.y+1.057*n.z;return V.adjustRgbInv({r:t,g:e,b:r,a:n.a})},contrastRatio:(n,t)=>{let e=V.relativeLuminance(n)+.05,r=V.relativeLuminance(t)+.05;return e>r?e/r:r/e}};function wr(n,t){let e=n.r,r=n.g,s=n.b,i=Math.max(e,r,s),o=Math.min(e,r,s);return(t===0||t===1?0:(i-o)/(1-Math.abs(2*t-1))).clamp(0,1)}function vr(n){let t=n.r,e=n.g,r=n.b,s=Math.max(t,e,r),i=Math.min(t,e,r),o=0;return s!==i&&(s===t?o=(60*((e-r)/(s-i))+360)%360:s===e?o=(60*((r-t)/(s-i))+120)%360:o=(60*((t-e)/(s-i))+240)%360),o.clamp(0,360)}function pe(n){return n.toString(16).padStart(2,"0")}var B=class $t{static{this.WCAG_MINIMUM_CONTRAST=3}static{this.WCAG_NORMAL_TEXT_CONTRAST=4.5}static{this.WCAG_SAFE_CONTRAST=7}static _clampRGB(t){let e=r=>Math.min(1,Math.max(0,r));return t[3]==null&&(t[3]=1),{r:e(t[0]),g:e(t[1]),b:e(t[2]),a:Math.min(1,Math.max(0,t[3]))}}static _normalize(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}static parse(t){if(t=(t||"").toLowerCase(),Ze.test(t)){let e=Ze.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),1]))}if(Ge.test(t)){let e=Ge.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]))}if(Ve.test(t)){let e=Ve.exec(t)[0];return this._clampRGB(this._normalize([parseInt("0x"+e.substr(1,2)),parseInt("0x"+e.substr(3,2)),parseInt("0x"+e.substr(5,2)),1]))}if(Qe.test(t)){let e=Qe.exec(t)[0],r=e.substr(1,1),s=e.substr(2,1),i=e.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+s+s),parseInt("0x"+i+i),1]))}if(Xe.test(t)){let e=Xe.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01};return this.rgb(r)}if(Ue.test(t)){let e=Ue.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01,a:parseFloat(e[4])};return this.rgb(r)}}static hsl(t){let e=br(t),r=wr(t,e);return{h:vr(t),s:r,l:e,a:t.a}}static cieXYZ(t){return ut(t)&&(t=this.rgb(t)),V.rgbToCieXYZ(t)}static rgb(t){if(ut(t)){let e=t.h,r=t.s,s=t.l,i=e/60,o=(1-Math.abs(2*s-1))*r,a=o*(1-Math.abs(i%2-1)),c=s-o/2,l=(f,d,y)=>this._clampRGB([f+c,d+c,y+c,t.a]);if(i<=1)return l(o,a,0);if(i<=2)return l(a,o,0);if(i<=3)return l(0,o,a);if(i<=4)return l(0,a,o);if(i<=5)return l(a,0,o);if(i<=6)return l(o,0,a)}else{let e=V.cieXYZToRgb(t);return this._clampRGB([e.r,e.g,e.b,e.a])}}static stringify(t,e=1){if(ut(t)){e??=1,t.a??=1;let r=typeof e=="number"?e:1;return`hsla(${t.h.roundoff(r)},${(t.s*100).roundoff(r)}%,${(t.l*100).roundoff(r)}%,${t.a.roundoff()})`}else if(Pt(t)){e??=!0,t.a??=1;let r=typeof e=="boolean"?e:!!e,s=Math.round(t.r*255),i=Math.round(t.g*255),o=Math.round(t.b*255),a=t.a.roundoff();return a===1?r?("#"+pe(s)+pe(i)+pe(o)).toUpperCase():`rgb(${s},${i},${o})`:`rgba(${s},${i},${o},${a})`}}static contrastRatio(t,e){return ut(t)&&(t=this.rgb(t)),ut(e)&&(e=this.rgb(e)),V.contrastRatio(t,e)}static luminance(t){return ut(t)&&(t=$t.rgb(t)),V.relativeLuminance(t)}static lighten(t,e=.1){if(e||=0,ut(t)){let r=Math.min(1,Math.max(0,t.l+e));return Object.assign({},t,{l:r})}if(Pt(t)){let r=this.lighten(this.hsl(t),e);return this.rgb(r)}return t}static darken(t,e=.1){return this.lighten(t,-e)}static saturate(t,e=.1){if(e||=0,ut(t)){let r=Math.min(1,Math.max(0,t.s+e));return Object.assign({},t,{s:r})}if(Pt(t)){let r=this.saturate(this.hsl(t),e);return this.rgb(r)}return t}static desaturate(t,e=.1){return this.saturate(t,-e)}static interpolate(t,e,r,s){r??=.5,s??=r;let i=(r+s).roundoff(),o=(r/i).roundoff(),a=(s/i).roundoff(),c=Pt(t),l=ut(t),f=y=>Pt(y)||ut(y)?$t.cieXYZ(y):y;t=f(t),e=f(e);let d={x:(t.x*o+e.x*a).roundoff(),y:(t.y*o+e.y*a).roundoff(),z:(t.z*o+e.z*a).roundoff(),a:(t.a*o+e.a*a).roundoff()};return c?$t.rgb(d):l?$t.hsl($t.rgb(d)):d}};var Sr={};nn(Sr,{CSharpSyntax:()=>yn,CSyntax:()=>xn,DefaultHighlightClasses:()=>un,HighlightRenderer:()=>fn,JavaScriptSyntax:()=>pn,JsonSyntax:()=>bn,Markdown:()=>rn,MarkupSyntax:()=>mn,PacemBindingSyntax:()=>dn,Parser:()=>sn,Scanner:()=>ln,SyntaxTokenType:()=>st,Syntaxes:()=>Mt});var rn={};nn(rn,{Parser:()=>Fs});var kr=class{tokenize(n,t){let e=[];for(;n;){let r=n.length;for(let s of t){let i=s.exec(n,this),o=i?.length;if(o>0){Array.prototype.push.apply(e,i);let a=i[o-1];n=n.substr((a.index||0)+a.raw.length);break}}if(n.length>=r)throw new Error(`Cannot parse
|
|
3
|
+
"${n}"
|
|
4
|
+
using the provided grammar.`)}return e}},sn=class{constructor(n=new kr){this._lexer=n}parse(n,t,e){let r=this._lexer.tokenize(n,t);return e.render(r)}},st;(function(n){n.Text="text",n.Space="space",n.Newline="newline",n.Comment="comment",n.DocComment="doc-comment",n.Keyword="keyword",n.Identifier="identifier",n.String="string",n.Regex="regex",n.Number="number",n.Bracket="bracket",n.Punctuation="punctuation",n.Operator="operator",n.Preprocessor="preprocessor",n.Tag="tag",n.TagName="tagname",n.Attribute="attribute",n.Entity="entity"})(st||(st={}));var de=new Map;function Je(n){return(n??"").trim().toLowerCase()}var Mt=class{static register(n){if(n==null)return;let t=[n.name].concat(n.aliases??[]);for(let e of t){let r=Je(e);de.set(r,n)}}static get(n){let t=Je(n);return de.get(t)??null}static names(){let n=de.keys();return Array.from(n)}},Cr="root",Rr=[st.Identifier],Tr=[st.Space,st.Newline,st.Comment,st.DocComment],_r=64,Er=16;function Ar(n){return n.combined!=null}var qe=new WeakMap;function $r(n){return"include"in n}function Qt(n){return n==null||n.length===0?null:new Set(n)}function Mr(n){let t=n.split(""),e=new Set(t);return Array.from(e).join("")}function Ir(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=n[r].concat(s)}return e}function Nr(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=s.concat(n[r])}return e}function on(n,t=0){let e=n.lexical??{states:{}},r={start:e.start,states:e.states??{},keywords:e.keywords??{},keywordSources:e.keywordSources,keywordExceptAfter:e.keywordExceptAfter,insignificant:e.insignificant},s=n.extends?Mt.get(n.extends):null;if(s==null||s===n||t>=Er)return r;let i=on(s,t+1);return{start:r.start??i.start,states:Ir(r.states,i.states),keywords:Nr(r.keywords,i.keywords),keywordSources:r.keywordSources??i.keywordSources,keywordExceptAfter:r.keywordExceptAfter??i.keywordExceptAfter,insignificant:r.insignificant??i.insignificant}}function an(n,t,e){let r=n[t]??[];if(e.has(t))return[];e.add(t);let s=[];for(let i of r){if(!$r(i)){s.push(i);continue}let o=an(n,i.include,e);Array.prototype.push.apply(s,o)}return e.delete(t),s}function Lr(n){return n==null?null:{previousTypes:Qt(n.previousTypes),previousNotTypes:Qt(n.previousNotTypes),previousTexts:Qt(n.previousTexts),previousNotTexts:Qt(n.previousNotTexts)}}function Br(n){let t=Array.isArray(n.type)?n.type:null,e=Array.isArray(n.type)?n.type[0]:n.type,r=(n.flags??"").replace(/[yd]/g,""),s=Mr(r),i=s+"y"+(t?"d":""),o=new RegExp(n.match,i),a=n.until?new RegExp(n.until,"y"):null,c=n.pop===!0?1:typeof n.pop=="number"?n.pop:0,l=Lr(n.when);return{regex:o,type:e,groupTypes:t,when:l,pop:c,until:a,source:n.match,flags:s,next:n.next??null,push:n.push??null,embed:n.embed??null,hasTransition:c>0||!!n.next||!!n.push||!!n.embed}}function Or(n){let t=new Map;for(let e in n)for(let r of n[e])t.set(r,e);return t}var zr=/\\[1-9]|\\k<|\(\?<(?![=!])/;function Pr(n,t){return new RegExp(n+"|",t).exec("").length-1}function Fr(n,t){return new RegExp("^(?:"+n+")$",t).test("")}function Dr(n){return n.when!=null||zr.test(n.source)?!1:!Fr(n.source,n.flags)}function jr(n){if(n.length===1)return{rule:n[0],combined:null};let t=[],e=1;for(let o of n){t.push(e);let a=Pr(o.source,o.flags);e+=1+a}let s=n.map(o=>"("+o.source+")").join("|");return{rule:null,combined:new RegExp(s,n[0].flags+"y"),rules:n,groupIndices:t}}function Yr(n){let t=[],e=[],r=()=>{if(e.length>0){let s=jr(e);t.push(s)}e=[]};for(let s of n){if(!Dr(s)){r(),t.push({rule:s,combined:null});continue}e.length>0&&e[0].flags!==s.flags&&r(),e.push(s)}return r(),t}function cn(n){let t=qe.get(n);if(t!=null)return t;let e=on(n),r=new Map;for(let i in e.states){let o=new Set,c=an(e.states,i,o).map(Br),l=Yr(c);r.set(i,l)}let s={name:n.name,start:e.start??Cr,states:r,keywords:Or(e.keywords),keywordSources:new Set(e.keywordSources??Rr),keywordExceptAfter:new Set(e.keywordExceptAfter??[]),insignificant:new Set(e.insignificant??Tr)};return qe.set(n,s),s}function Hr(n){let t=Mt.get(n);return t==null?null:cn(t)}function Xr(n,t){let e=t?.type??null,r=t?.raw??null;return n.previousTypes!=null&&!n.previousTypes.has(e)||n.previousNotTypes!=null&&n.previousNotTypes.has(e)||n.previousTexts!=null&&!n.previousTexts.has(r)?!1:n.previousNotTexts==null||!n.previousNotTexts.has(r)}var Ur=class{constructor(n,t){this._source=n,this._tokens=[],this._position=0,this._emitted=0,this._line=1,this._column=1,this._previous=null,this._emptyTransitions=0,this._stack=[{syntax:t,state:t.start,until:null}]}run(){let n=this._source.length;for(;this._position<n;)this._step();return this._flushText(),this._tokens}get _top(){let n=this._stack;return n[n.length-1]}_step(){let n=this._top;if(this._popOnUntil(n))return;let t=this._findRule(n);if(t==null){this._position++;return}this._flushText(),this._emitMatch(t,n.syntax),this._transition(t.rule,n.syntax);let e=t.match[0].length;this._position+=e,e>0&&(this._emptyTransitions=0)}_popOnUntil(n){let t=n.until;return t==null||this._stack.length<=1||(t.lastIndex=this._position,!t.test(this._source))?!1:(this._flushText(),this._stack.pop(),!0)}_findRule(n){let t=n.syntax.states.get(n.state)??[];for(let e of t){let r=Ar(e)?this._tryCombined(e):this._trySingle(e.rule);if(r!=null)return r}return null}_trySingle(n){let t=this._tryRule(n);return t==null?null:{rule:n,match:t}}_tryCombined(n){let t=n.combined;t.lastIndex=this._position;let e=t.exec(this._source);if(e==null)return null;let r=n.groupIndices;for(let s=0;s<r.length;s++){if(e[r[s]]===void 0)continue;let i=n.rules[s];return this._trySingle(i)}return null}_tryRule(n){if(n.when!=null&&!Xr(n.when,this._previous))return null;let t=n.regex;t.lastIndex=this._position;let e=t.exec(this._source);return e==null?null:e[0].length>0?e:!n.hasTransition||this._emptyTransitions>=_r?null:(this._emptyTransitions++,e)}_emitMatch({rule:n,match:t},e){let r=t[0];if(n.groupTypes==null){this._append(n.type,r,e);return}this._emitGroups(n,t,e)}_emitGroups(n,t,e){let r=t.indices,s=t.index,i=s+t[0].length,o=n.groupTypes,a=s;for(let c=1;c<t.length;c++){let l=r[c];if(l==null||l[0]<a||l[1]===l[0])continue;if(l[0]>a){let y=this._source.slice(a,l[0]);this._append(st.Text,y,e)}let f=this._source.slice(l[0],l[1]),d=o[c-1]??o[o.length-1];this._append(d,f,e),a=l[1]}if(a<i){let c=this._source.slice(a,i);this._append(st.Text,c,e)}}_transition(n,t){let e=this._stack;for(let s=0;s<n.pop&&e.length>1;s++)e.pop();if(n.next!=null&&(this._top.state=n.next),n.push!=null&&e.push({syntax:t,state:n.push,until:null}),n.embed==null)return;let r=Hr(n.embed);r!=null&&e.push({syntax:r,state:r.start,until:n.until})}_flushText(){if(this._emitted>=this._position)return;let n=this._source.slice(this._emitted,this._position),t=this._top.syntax;this._append(st.Text,n,t)}_resolveType(n,t,e){if(!e.keywordSources.has(n))return n;let r=this._previous?.raw;return e.keywordExceptAfter.has(r)?n:e.keywords.get(t)??n}_append(n,t,e){let r=this._resolveType(n,t,e),s={type:r,raw:t,text:t,index:this._emitted,line:this._line,column:this._column,depth:this._stack.length-1,syntax:e.name};this._tokens.push(s),this._advance(t),e.insignificant.has(r)||(this._previous=s)}_advance(n){this._emitted+=n.length;let t=n.lastIndexOf(`
|
|
5
|
+
`);if(t<0){this._column+=n.length;return}for(let e=0;e<=t;e++)n.charCodeAt(e)===10&&this._line++;this._column=n.length-t}},Zr={name:st.Text,lexical:{states:{}}},ln=class{tokenize(n,t){let e=n??"",r=typeof t=="string"?Mt.get(t):t,s=cn(r??Zr);return new Ur(e,s).run()}},un=Object.freeze({keyword:"code-keyword",preprocessor:"code-keyword",string:"code-string",regex:"code-string",number:"code-number",comment:"code-comment","doc-comment":"code-comment",tag:"code-tag",tagname:"code-tagname",attribute:"code-attribute"}),Gr={"&":"&","<":"<",">":">",'"':"""};function Vr(n){return n.replace(/[&<>"]/g,t=>Gr[t])}var fn=class{constructor(n=un){this._classes=n}render(n){let t="";for(let e of n??[])t+=this._renderToken(e);return t}_renderToken(n){let t=Vr(n.raw??""),e=this._classes[n.type];return e==null?t:`<span class="${e}">${t}</span>`}};function ge(n){return(n??"").replace(/</g,"<")}function Qr(n){if(!q.isNullOrEmpty(n)&&!(/^\(/.test(n)&&/\)$/.test(n)))return/^\[/.test(n)&&/\]$/.test(n)&&(n=n.substr(1,n.length-2)),n}function Jr(n){if(q.isNullOrEmpty(n))return{url:n};let t=n.trim(),e=/^(\S*)\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\))\s*$/.exec(t);if(e==null)return{url:t};let r=e[2]??e[3]??e[4];return{url:e[1],title:r}}function hn(n){return(n??"").replace(/&(?!(?:#\d+|#x[\da-fA-F]+|\w+);)/g,"&").replace(/"/g,""").replace(/</g,"<")}function me(n){let t=n.trim();return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&!t.endsWith("\\|")&&(t=t.slice(0,-1)),t.split(/(?<!\\)\|/).map(r=>r.trim().replace(/\\\|/g,"|"))}function qr(n){let t=n.startsWith(":"),e=n.endsWith(":");return t&&e?"center":e?"right":t?"left":null}function Wr(n){return/^ */.exec(n)[0].length}function Kr(n){let t=n.replace(/\t/g," ").split(/\r?\n/),e=[];for(let r of t){let s=e[e.length-1],i=ds.exec(r);if(i!=null&&(s==null||i[1].length<s.indent)){let c=i[0].length,l=r.slice(c);e.push({indent:c,lines:[l]});continue}if(s==null)continue;let o=Math.min(s.indent,Wr(r)),a=r.slice(o);s.lines.push(a)}return e.map(r=>r.lines.join(`
|
|
6
|
+
`).replace(/\s+$/,""))}function ts(n){return(n??"").replace(/</g,"<")}var es=new ln,ns="markup";function tt(n){return n?.index||void 0}function rs(n){if(!q.isNullOrEmpty(n)&&!(/^\[/.test(n)&&/\]$/.test(n)))return/^\(/.test(n)&&/\)$/.test(n)&&(n=n.substr(1,n.length-2)),n}function Et(n){return n?.replace(/[^\w]+/g," ").trim().replace(/ +/g,"-").toLowerCase()}function J(n,t,e){let r=t.exec(n);return r&&r.length?e(r):null}var ss=/(<!--)([\s\S]*?)(-->|$)/,is=/^ {0,3}(={3,}|(?:_[ \t]*){3,}|(?:-[ \t]*){3,}|(?:\*[ \t]*){3,})(\r?\n|$)/,os=/^ {0,3}(#{1,6})\s+([^\n]+)(\r?\n|$)+/,as=/^ {0,3}([^\n]+)(\r?\n=+(\r?\n|$))+/,cs=/^ {0,3}([^\n]+)(\r?\n-+(\r?\n|$))+/,ls=/^ {4,}.+(\r?\n {4,}.+)*(\r?\n|$)+/,us=/^ {0,3}``` *([^\n]*)\r?\n(([\s\S](?!\r?\n {0,3}```))*.(\r?\n)+) {0,3}```(\r?\n|$)+/,fs=/^ {0,3}> *([^\n]+)(\r?\n {0,3}> *([^\n]*))*(\r?\n|$)+/,hs=/^( {0,3}([-+]|\*(?=[ \t])).*(\r?\n|$))((?!(?: ?\d+[.\)]|\r?\n\S)).*(\r?\n|$))*/,ps=/^( {0,3}(\d+[.\)]).*(\r?\n|$))((?!(?: {0,2}(?:[-+]|\*[ \t])|\r?\n\S)).*(\r?\n|$))*/,ds=/^( *)([-+*]|\d+[.\)])([ \t]+|$)/,gs=/^\[([ xX])\][ \t]+/,ms=/^(?! {4,})(?=[ \t]*\S)(.+(\n(?![ \t]*(?:\n|$))(?! {0,3}```)(?! {0,3}([-+]|\*[ \t]|\d+[.\)]))(?! {0,3}#{1,6}[ \t])(?! {4,})(?! {0,3}>).+)*)/,ys=/^ {0,3}(!?)\[([^\]]+)\]: +(\S+)(?: +['"\(](.+)['"\)])?(\r?\n|$)+/,xs=/(?<!\\)!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?(\[[^\[\]]*\]|\([^\(\)]*\))?/,bs=/(\*\*?|__?)(\[[^\]]*]\([^\)]+\))\1/,ye=/(?:(?<!\\)`)(.+?)(?:(?<!\\)`)/,ws=/(\*\*?)((?!\1\s?)(?:(?!\1)[\S\s])*[^\s])\1|(?<![A-Za-z0-9])(__?)((?!\3\s?)(?:(?!\3)[\S\s])*[^\s])\3(?![A-Za-z0-9])/,vs=/(~~?)(?!\1\s?)([^\s][\s\S]*?(?!\1)[^\s])\1/,Ss=/(:")(?!":\s?)([^\s][\s\S]*?(?!":)[^\s])":/,ks=/^\s+/,Cs=/^(?:[ \t]*\r?\n)+|^\s+/,Rs=/(?: {2,}|\\)\r?\n/,Ts=/^[^\r\n]+/,_s=/\\(<|[!"#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~])/,Es={"<":"<","<":"<","&":"&"},As=/(?:<|<)((?:https?|ftp|mailto):[^\s<>]+|[\w.+-]+@[\w-]+(?:\.[\w-]+)+)>/,$s=/(?<![\w\/\\(\[<"'=;&@])(?:https?:\/\/|www\.)[^\s<>]*[^\s<>.,:;"'!?)\]*_~]/,Ms=/\[\^([^\]\s]+)\]/,Is=/^ {0,3}\[\^([^\]\s]+)\]: *([^\r\n]*(?:\r?\n {2,}[^\r\n]+)*)(\r?\n|$)+/,Ns=/^ {0,3}(\|?[^\r\n]*\|[^\r\n]*)\r?\n {0,3}(\|? *:?-+:? *(?:\| *:?-+:? *)*\|?) *(?:\r?\n|$)((?:(?! {0,3}(?:\r?\n|$))[^\r\n]*\|[^\r\n]*(?:\r?\n|$))*)/,T;(function(n){n.Html="html",n.Text="text",n.Paragraph="paragraph",n.BlockQuote="blockquote",n.Space="space",n.Heading="heading",n.Bold="bold",n.Italic="italic",n.CodeBlock="codeblock",n.Code="code",n.Image="img",n.ImageLike="imglike",n.Link="link",n.LinkLike="linklike",n.LineBreak="br",n.StrikeThrough="strike",n.Quote="quote",n.HorizontalRule="hr",n.OrderedList="ol",n.UnorderedList="ul",n.ListItem="listitem",n.Reference="ref",n.Table="table",n.TableRow="tr",n.TableCell="td",n.FootnoteReference="fnref",n.FootnoteDefinition="fndef"})(T||(T={}));var M;(function(n){n[n.Comment=0]="Comment",n[n.Reference=1]="Reference",n[n.HorizontalRule=2]="HorizontalRule",n[n.Heading=3]="Heading",n[n.Heading1=4]="Heading1",n[n.Heading2=5]="Heading2",n[n.CodeBlock=6]="CodeBlock",n[n.Fences=7]="Fences",n[n.BlockQuote=8]="BlockQuote",n[n.OrderedList=9]="OrderedList",n[n.UnorderedList=10]="UnorderedList",n[n.Paragraph=11]="Paragraph",n[n.EmphasizedLink=12]="EmphasizedLink",n[n.ImageOrLink=13]="ImageOrLink",n[n.Emphasize=14]="Emphasize",n[n.StrikeThrough=15]="StrikeThrough",n[n.Quote=16]="Quote",n[n.Code=17]="Code",n[n.LineBreak=18]="LineBreak",n[n.FootnoteDefinition=19]="FootnoteDefinition",n[n.Table=20]="Table",n[n.Escape=21]="Escape",n[n.AutoLink=22]="AutoLink",n[n.FootnoteReference=23]="FootnoteReference",n[n.BareUrl=24]="BareUrl",n[n.Text=254]="Text",n[n.Space=255]="Space"})(M||(M={}));function Jt(n=[]){let t={[M.Comment]:{exec:(g,p)=>J(g,ss,u=>{let h=tt(u),m=[{type:T.Html,index:h,raw:u[0],text:u[2]}];if(h>0){let b=g.substr(0,h),I=p.tokenize(b,A);Array.prototype.unshift.apply(m,I)}return m})},[M.Reference]:{exec:g=>J(g,ys,p=>{let u=tt(p),h=p[0],m=h,b=p[1]==="!",I=p[2],O=p[3],L=p[4];return[{type:T.Reference,index:u,raw:h,text:m,id:I,image:b,url:O,title:L}]})},[M.FootnoteDefinition]:{exec:(g,p)=>J(g,Is,u=>{let h=u[0],m=Et(u[1]),b=u[2].replace(/\r?\n {2,}/g," ");return[{type:T.FootnoteDefinition,index:tt(u),raw:h,text:b,id:m,tokens:p.tokenize(b,l)}]})}},e=[],r=[],s={};for(let g of n){let p,u="inline";switch("type"in g?(u=g.type,p=g.rule):p=g,u){case"block":e.push(p);break;case"code":if("lang"in g){let m=g.lang.toLowerCase();(s[m]=s[m]||[]).push(p)}break;default:let h={exec:(m,b)=>{let I=p.exec(m,b);return a(m,I,b),I}};r.push(h);break}}let i={[M.Text]:{exec:g=>J(g,Ts,p=>{let u=p[0],h=u;return[{index:tt(p),raw:u,text:h,type:T.Text}]})},[M.Space]:{exec:g=>J(g,ks,p=>{let u=p[0];return[{type:T.Space,raw:u,text:u}]})}},o={[M.ImageOrLink]:{exec:(g,p)=>c(g,xs,p,u=>{let h=tt(u),m=u[0],b=m.charAt(0)==="!",I=u[1],O=rs(u[2]),L=Qr(u[2])??I,z=Et(L),{url:G,title:nt}=Jr(O),at=p.tokenize(I,l);return b?[{index:h,type:G?T.Image:T.ImageLike,raw:m,text:I,src:G,title:nt,ref:z,tokens:at}]:[{index:h,type:G?T.Link:T.LinkLike,raw:m,text:I,href:G,title:nt,ref:z,tokens:at}]})},[M.Escape]:{exec:(g,p)=>c(g,_s,p,u=>{let h=Es[u[1]]??u[1];return[{index:tt(u),raw:u[0],text:h,type:T.Text}]})},[M.AutoLink]:{exec:(g,p)=>c(g,As,p,u=>{let h=u[1],b=!/^[a-z]+:/i.test(h)?"mailto:"+h:h;return[{index:tt(u),raw:u[0],text:h,href:b,type:T.Link,tokens:[{type:T.Text,raw:h,text:h}]}]})},[M.BareUrl]:{exec:(g,p)=>c(g,$s,p,u=>{let h=u[0],m=/^www\./i.test(h)?"http://"+h:h;return[{index:tt(u),raw:h,text:h,href:m,type:T.Link,tokens:[{type:T.Text,raw:h,text:h}]}]})},[M.FootnoteReference]:{exec:(g,p)=>c(g,Ms,p,u=>{let h=Et(u[1]);return[{index:tt(u),raw:u[0],text:u[1],id:h,type:T.FootnoteReference}]})},[M.Code]:{exec:(g,p)=>c(g,ye,p,u=>{let h=ge(u[1]);return[{type:T.Code,raw:u[0],text:h,index:tt(u)}]})},[M.EmphasizedLink]:{exec:(g,p)=>c(g,bs,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let h=u[1].length>1?T.Bold:T.Italic,m=u[2];return[{index:tt(u),type:h,raw:u[0],text:m,tokens:p.tokenize(m,l)}]})},[M.Emphasize]:{exec:(g,p)=>c(g,ws,p,u=>{let h=u[1]??u[3],m=u[2]??u[4];if(q.isNullOrEmpty(m))return null;let b=h.length>1?T.Bold:T.Italic;return[{index:tt(u),type:b,raw:u[0],text:m,tokens:p.tokenize(m,l)}]})},[M.StrikeThrough]:{exec:(g,p)=>c(g,vs,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let h=T.StrikeThrough,m=u[2];return[{index:tt(u),type:h,raw:u[0],text:m,tokens:p.tokenize(m,l)}]})},[M.Quote]:{exec:(g,p)=>c(g,Ss,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let h=T.Quote,m=u[2];return[{index:tt(u),type:h,raw:u[0],text:m,tokens:p.tokenize(m,l)}]})},[M.LineBreak]:{exec:(g,p)=>c(g,Rs,p,u=>{let h=u[0],m=h;return[{index:tt(u),raw:h,text:m,type:T.LineBreak}]})}},a=(g,p,u)=>{let h=p?.length>0&&p[0].index;if(h>0){let m=g.substr(0,h),b=u.tokenize(m,l)||[];Array.prototype.unshift.apply(p,b)}},c=(g,p,u,h)=>{let m=J(g,p,b=>{if(p!=ye){let I=ye.exec(g);if(I&&I.length&&I.index<b.index)return null}return h(b)});return a(g,m,u),m},l=[o[M.FootnoteReference],o[M.EmphasizedLink],o[M.ImageOrLink],o[M.Escape],o[M.AutoLink],o[M.Emphasize],o[M.StrikeThrough],o[M.Quote],o[M.Code],o[M.LineBreak],o[M.BareUrl]];Array.prototype.push.apply(l,r),l.push(i[M.Text],i[M.Space]);let f=g=>{let p=[i[M.Text],i[M.Space]],u=g?.toLowerCase()||"";return u&&u in s&&Array.prototype.unshift.apply(p,s[u]),p},d={[M.Paragraph]:{exec:(g,p)=>J(g,ms,u=>{let h=u[0],m=h.replace(/^[ \t]+/gm,"");return m.trim().length===0?null:[{type:T.Paragraph,raw:h,text:m,tokens:p.tokenize(m,l)}]})},[M.Space]:{exec:g=>J(g,Cs,p=>{let u=p[0];return[{type:T.Space,raw:u,text:u}]})}},y=(g,p)=>{if(!/^ {0,3}(`{3,}|$|>|[-+*]\s|\d+[.\)]|#{1,6}\s|\|)/m.test(g))return p.tokenize(g,l);let h=p.tokenize(g,C),m=h[0];if(!!/\n[ \t]*\n/.test(g)||m?.type!==T.Paragraph)return h;let I=m.tokens??[],O=h.slice(1);return I.concat(O)},x=(g,p)=>Kr(g).filter(m=>!q.isNullOrEmpty(m)).map(m=>{let b=gs.exec(m),I=b?m.slice(b[0].length):m,O=y(I,p);if(b==null)return{type:T.ListItem,raw:m,text:I,tokens:O};let L=b[1]!==" ";return{type:T.ListItem,raw:m,text:I,tokens:O,task:!0,checked:L}}),v=(g,p,u,h)=>{let m=p.map((O,L)=>{let z=g[L]??"",G=h.tokenize(z,l);return{type:T.TableCell,raw:z,text:z,header:u,align:O,tokens:G}}),b=g.join(" | ");return{type:T.TableRow,raw:b,text:b,header:u,tokens:m}},S={[M.HorizontalRule]:{exec:(g,p)=>J(g,is,u=>{let h=u[0],m=h;return[{type:T.HorizontalRule,raw:h,text:m}]})},[M.Heading]:{exec:(g,p)=>J(g,os,u=>{let h=u[2].replace(/[ \t]+#+[ \t]*$/,"");return[{type:T.Heading,raw:u[0],text:h,level:u[1].length,ref:Et(h),tokens:p.tokenize(h,l)}]})},[M.Heading1]:{exec:(g,p)=>J(g,as,u=>{let h=u[1];return[{type:T.Heading,raw:u[0],text:h,level:1,ref:Et(h),tokens:p.tokenize(h,l)}]})},[M.Heading2]:{exec:(g,p)=>J(g,cs,u=>{let h=u[1];return[{type:T.Heading,raw:u[0],text:h,level:2,ref:Et(h),tokens:p.tokenize(h,l)}]})},[M.CodeBlock]:{exec:(g,p)=>J(g,ls,u=>{let h=u[0],m=h.replace(/^ {4}/gm,"").replace(/\s+$/,""),b=ge(m);return m.length===0?null:[{type:T.CodeBlock,raw:h,text:b,tokens:p.tokenize(b,f(""))}]})},[M.Fences]:{exec:(g,p)=>J(g,us,u=>{let h=(u[1]??"").trim(),m=h.split(/\s+/),b=m[0].toLowerCase(),I=b in s?null:Mt.get(b);if(I==null){let z=ge(u[2]);return[{type:T.CodeBlock,raw:u[0],text:z,lang:b,tokens:p.tokenize(z,f(b))}]}let O=ts(u[2]),L=es.tokenize(O,I);return[{type:T.CodeBlock,raw:u[0],text:O,lang:b,syntax:I.name,highlighted:!0,tokens:L}]})},[M.BlockQuote]:{exec:(g,p)=>J(g,fs,u=>{let h=u[0],m=h.replace(/^ {0,3}> ?/gm,"");return[{type:T.BlockQuote,raw:h,text:m,tokens:p.tokenize(m,C)}]})},[M.OrderedList]:{exec:(g,p)=>J(g,ps,u=>{let h=u[0],m=/\d+/.exec(h),b=parseInt(m[0]),I=x(h,p);return[{type:T.OrderedList,start:b,raw:h,text:h,tokens:I}]})},[M.UnorderedList]:{exec:(g,p)=>J(g,hs,u=>{let h=u[0],m=x(h,p);return[{type:T.UnorderedList,raw:h,text:h,tokens:m}]})},[M.Table]:{exec:(g,p)=>J(g,Ns,u=>{let h=me(u[1]),m=me(u[2]);if(h.length!==m.length)return null;let b=m.map(qr),I=u[3].split(/\r?\n/).filter(G=>G.trim().length>0),O=v(h,b,!0,p),L=I.map(G=>{let nt=me(G);return v(nt,b,!1,p)}),z=[O].concat(L);return[{type:T.Table,raw:u[0],text:u[0],align:b,tokens:z}]})}},C=Object.values(S);Array.prototype.push.apply(C,e),C.push(d[M.Paragraph],d[M.Space]);let A=[t[M.Comment],t[M.FootnoteDefinition],t[M.Reference]].concat(C);return A}var At="\0",Ls=/[ \r\n]*\0+[ \r\n]*/g;function Bs(n){return n?.replace(Ls,`
|
|
7
|
+
`).trim()}function We(n){return q.isNullOrEmpty(n)?"":` title="${hn(n)}"`}function Os(n){return n==null?"":` style="text-align: ${n}"`}var Ke=class{constructor(n=(t,e)=>t?.text||""){this._extraItemRender=n,this.#e=[],this.#t=new Map,this.#n=[],this.#r=new fn,this._renderContent=t=>{let e=t.tokens;return q.isNullOrEmpty(e)?t.text:this._render(e)}}#e;#t;#n;#r;_collectDefinitions(n){for(let t of n??[])t?.type===T.Reference&&this.#e.push(t),t?.type===T.FootnoteDefinition&&!this.#t.has(t.id)&&this.#t.set(t.id,t),this._collectDefinitions(t?.tokens)}_findReference(n,t){if(q.isNullOrEmpty(n))return;let e=n.toLowerCase();return this.#e.find(r=>r.image===!0===t&&r.id?.toLowerCase()===e)}_renderCodeBlock(n){let t=At,e=n.lang;if(n.highlighted!==!0){let o=e?' class="'+e+'"':"",a=this._renderContent(n);return`<pre>${t}<code${o}>${a}</code>${t}</pre>${t}`}let r=[e,"code-highlighted"];n.syntax===ns&&r.push("code-markup");let s=hn(r.join(" ")),i=this.#r.render(n.tokens);return`<pre>${t}<code class="${s}">${i}</code>${t}</pre>${t}`}_renderImage(n){let t=n.src,e=n.title;if(!t){let s=this._findReference(n.ref,!0);t=s?.url,e=s?.title}if(!t)return`![${this._renderContent(n)}]`;let r=We(e);return`<img src="${t}" alt="${n.text}"${r} />`}_renderLink(n){let t=n.href,e=n.title;if(!t){let i=this._findReference(n.ref,!1);t=i?.url,e=i?.title}let r=this._renderContent(n);if(!t)return`[${r}]`;let s=We(e);return`<a href="${t}"${s}>${r}</a>`}_renderListItem(n){let t=At,e=this._renderContent(n);return n.task!==!0?` <li>${e}</li>${t}`:` <li class="task-list-item"><input type="checkbox" disabled${n.checked===!0?" checked":""} /> ${e}</li>${t}`}_renderTableRow(n){let t=At,e="";for(let r of n.tokens??[]){let s=r.header===!0?"th":"td",i=Os(r.align),o=this._renderContent(r);e+=`<${s}${i}>${o}</${s}>`}return`<tr>${e}</tr>${t}`}_renderTable(n){let t=At,e=n.tokens??[],r=e.filter(a=>a.header===!0),s=e.filter(a=>a.header!==!0),i=r.map(a=>this._renderTableRow(a)).join(""),o=`<table>${t}<thead>${t}${i}</thead>${t}`;if(s.length>0){let a=s.map(c=>this._renderTableRow(c)).join("");o+=`<tbody>${t}${a}</tbody>${t}`}return o+`</table>${t}`}_renderFootnoteReference(n){let t=n.id;if(!this.#t.has(t))return`[^${n.text}]`;let e=this.#n,r=!e.includes(t);r&&e.push(t);let s=e.indexOf(t)+1,i=r?` id="fnref-${t}"`:"";return`<sup class="footnote-ref"><a href="#fn-${t}"${i}>${s}</a></sup>`}_renderFootnotes(){let n=this.#n;if(n.length===0)return"";let t=At,e="";for(let r=0;r<n.length;r++){let s=n[r],i=this.#t.get(s),o=this._renderContent(i);e+=`<li id="fn-${s}">${o} <a href="#fnref-${s}" class="footnote-backref">↩</a></li>${t}`}return`<section class="footnotes">${t}<ol>${t}${e}</ol>${t}</section>${t}`}_rendeItem(n,t){let e=this._renderContent,r=At;switch(n?.type){case T.Reference:case T.FootnoteDefinition:return"";case T.Html:return n.raw;case T.BlockQuote:return`<blockquote>
|
|
8
|
+
${e(n)}</blockquote>${r}`;case T.Bold:return`<b>${e(n)}</b>`;case T.CodeBlock:return this._renderCodeBlock(n);case T.Code:return`<code>${e(n)}</code>`;case T.HorizontalRule:return`<hr />${r}`;case T.Heading:let s=n.level,i=n.ref;return`<h${s} id="${i}">${e(n)}</h${s}>${r}`;case T.Image:case T.ImageLike:return this._renderImage(n);case T.Italic:return`<i>${e(n)}</i>`;case T.StrikeThrough:return`<s>${e(n)}</s>`;case T.Quote:return`<q>${e(n)}</q>`;case T.LineBreak:return"<br />"+r;case T.OrderedList:return`<ol start="${n.start}">
|
|
9
|
+
${e(n)}</ol>${r}`;case T.UnorderedList:return`<ul>
|
|
10
|
+
${e(n)}</ul>${r}`;case T.ListItem:return this._renderListItem(n);case T.Link:case T.LinkLike:return this._renderLink(n);case T.Table:return this._renderTable(n);case T.FootnoteReference:return this._renderFootnoteReference(n);case T.Paragraph:return`<p>${e(n)}</p>${r}`;case T.Text:case T.Space:return n.text}return this._extraItemRender(n,t)}_render(n){let t="";for(let e of n||[])t+=this._rendeItem(e,n);return t}render(n){this.#e=[],this.#t.clear(),this.#n=[],this._collectDefinitions(n);let t=this._render(n),e=this._renderFootnotes();return Bs(t+e)}},zs=class{_render(n){return q.isNullOrEmpty(n)?"":JSON.stringify(n)}render(n){return"["+n.filter(t=>!q.isNullOrEmpty(t)).map(this._render).join(",")+"]"}};function Ps(n){return n&&typeof n=="object"&&typeof n.render=="function"}var Fs=class extends sn{toHtml(n,t,e){let r=new Ke(e);return q.isNullOrEmpty(t)?this.parse(n,r):this.parse(n,Jt(t),r)}tokenize(n,t){let e=this.parse(n,Jt(t),new zs);return JSON.parse(e)}parse(n,t=Jt(),e=new Ke){let r=(n??"").replace(/\r\n?/g,`
|
|
11
|
+
`);if(Ps(t)){let s=Jt();return super.parse(r,s,t)}return super.parse(r,t,e)}},Ds=["identifier","number","string","regex"],js=[")","]","}","this","super","null","undefined","true","false","++","--"],Ys=["async","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","of","return","set","static","super","switch","this","throw","true","try","typeof","undefined","var","void","while","with","yield","abstract","accessor","any","as","asserts","bigint","boolean","declare","implements","infer","interface","is","keyof","module","namespace","never","number","object","override","package","private","protected","public","readonly","satisfies","string","symbol","type","unique","unknown"],Hs=[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n
]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:"`",type:"string",push:"template"},{match:String.raw`"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\[\s\S]|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`/(?![*/])(?:\\.|\[(?:\\.|[^\]\\\r\n])*\]|[^/\\\[\r\n])+/[a-z]*`,type:"regex",when:{previousNotTypes:Ds,previousNotTexts:js}},{match:String.raw`0[xX][\da-fA-F_]+n?|0[bB][01_]+n?|0[oO][0-7_]+n?|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d[\d_]*)?n?`,type:"number"},{match:String.raw`#?[A-Za-z_$ -][\w$ -]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.(?!\d)|\.\.\.|[;,.]`,type:"punctuation"},{match:String.raw`>>>=|<<=|>>=|>>>|\*\*=|&&=|\|\|=|\?\?=|===|!==|=>|\*\*|\+\+|--|<<|>>|&&|\|\||\?\?|[-+*/%&|^<>!=]=?|[~?:@]`,type:"operator"}],pn={name:"javascript",aliases:["js","mjs","cjs","jsx","typescript","ts","tsx","script","ecmascript"],lexical:{start:"root",states:{root:Hs,template:[{match:"`",type:"string",pop:!0},{match:String.raw`\$\{`,type:"punctuation",push:"templateExpression"},{match:String.raw`(?:\\[\s\S]|\$(?!\{)|[^\\`+"`"+String.raw`$])+`,type:"string"}],templateExpression:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:Ys},keywordExceptAfter:[".","?."]}},xe={previousNotTexts:[".","?."]},dn={name:"pacem-binding",aliases:["pacem","binding"],extends:"javascript",lexical:{states:{root:[{match:String.raw`:host(?=\.)`,type:"binding-host",when:xe},{match:String.raw`::[A-Za-z_$][\w$]*`,type:"binding-host-property"},{match:String.raw`\^+item(?![\w$])`,type:"binding-item"},{match:String.raw`\^+index(?![\w$])`,type:"binding-index"},{match:String.raw`#[A-Za-z_][\w]*`,type:"binding-element",when:xe},{match:String.raw`\$?this(?![\w$])`,type:"binding-this",when:xe}]}}},gn={match:String.raw`\r\n|[\r\n]`,type:"newline"},Xs=[gn,{match:String.raw`[ \t\f]+`,type:"space"},{match:'"',type:"string",push:"doubleQuoted"},{match:"'",type:"string",push:"singleQuoted"},{match:String.raw`[^\s=/>"']+`,type:"attribute"},{match:"=",type:"operator"},{match:"/",type:"punctuation"}],tn=[{match:String.raw`\{\{`,type:"punctuation",embed:"pacem-binding",until:String.raw`\}\}`},{match:String.raw`\}\}`,type:"punctuation"}],mn={name:"markup",aliases:["html","htm","xml","xhtml","svg"],lexical:{start:"root",states:{root:[{match:String.raw`<!--[\s\S]*?(?:-->|$)`,type:"comment"},{match:String.raw`<![^>]*>?`,type:"tag"},{match:String.raw`(<\/)([\w:.-]+)(\s*>?)`,type:["tag","tagname","tag"]},{match:String.raw`(<)(script)(?![\w:.-])`,flags:"i",type:["tag","tagname"],push:"scriptTag"},{match:String.raw`(<)([\w:.-]+)`,type:["tag","tagname"],push:"tag"},{match:String.raw`&(?:#\d+|#[xX][\da-fA-F]+|\w+);`,type:"entity"},gn,{match:String.raw`[^<&\r\n]+`,type:"text"}],tag:[{match:String.raw`/?>`,type:"tag",pop:!0},{include:"attributes"}],scriptTag:[{match:"/>",type:"tag",pop:!0},{match:">",type:"tag",pop:!0,embed:"javascript",until:String.raw`<\/script`},{include:"attributes"}],attributes:Xs,doubleQuoted:[{match:'"',type:"string",pop:!0},...tn,{match:String.raw`(?:[^"{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}],singleQuoted:[{match:"'",type:"string",pop:!0},...tn,{match:String.raw`(?:[^'{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}]},insignificant:["space","newline","comment","text"]}},Us=["abstract","add","alias","and","args","as","ascending","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","descending","do","double","dynamic","else","enum","equals","event","explicit","extern","false","file","finally","fixed","float","for","foreach","from","get","global","goto","group","if","implicit","in","init","int","interface","internal","into","is","join","let","lock","long","managed","nameof","namespace","new","nint","not","notnull","nuint","null","object","on","operator","or","orderby","out","override","params","partial","private","protected","public","readonly","record","ref","remove","required","return","sbyte","scoped","sealed","select","set","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unmanaged","unsafe","ushort","using","value","var","virtual","void","volatile","when","where","while","with","yield"],Zs=[{match:String.raw`///[^\r\n]*`,type:"doc-comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*[a-z]+[^\r\n]*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v\u00A0\uFEFF]+`,type:"space"},{match:String.raw`\$*("{3,})[\s\S]*?\1`,type:"string"},{match:String.raw`\$@"|@\$"`,type:"string",push:"interpolatedVerbatim"},{match:String.raw`\$"`,type:"string",push:"interpolated"},{match:String.raw`@"(?:[^"]|"")*"?`,type:"string"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F_]+[uUlL]*|0[bB][01_]+[uUlL]*|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d+)?[fFdDmMuUlL]*`,type:"number"},{match:String.raw`@?[A-Za-z_\u00A0-\uFFFF][\w\u00A0-\uFFFF]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.|::|[;,.]`,type:"punctuation"},{match:String.raw`\?\?=|<<=|>>>=|>>=|>>>|=>|==|!=|<=|>=|&&|\|\||\?\?|\+\+|--|->|<<|[-+*/%&|^<>!=]=?|[~?:]`,type:"operator"}],yn={name:"csharp",aliases:["cs","c#","c-sharp","dotnet"],lexical:{start:"root",states:{root:Zs,interpolated:[{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`(?:\\.|[^"\\{}\r\n])+`,type:"string"}],interpolatedVerbatim:[{match:'""',type:"string"},{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`[^"{}]+`,type:"string"}],interpolation:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:Us},keywordExceptAfter:[".","?."]}},Gs=["auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","inline","int","long","register","restrict","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while","bool","true","false","NULL","_Bool","_Complex","_Imaginary","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","and","and_eq","asm","bitand","bitor","catch","char8_t","char16_t","char32_t","class","co_await","co_return","co_yield","compl","concept","consteval","constexpr","constinit","const_cast","decltype","delete","dynamic_cast","explicit","export","final","friend","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reinterpret_cast","requires","static_assert","static_cast","template","this","thread_local","throw","try","typeid","typename","using","virtual","wchar_t","xor","xor_eq"],xn={name:"c",aliases:["cpp","c++","cc","cxx","h","hpp","hxx","objc"],lexical:{start:"root",states:{root:[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)|///[^\r\n]*`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*\w+(?:\\\r?\n|[^\r\n])*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v]+`,type:"space"},{match:String.raw`(?:u8|u|U|L)?R"([^()\\\s]{0,16})\([\s\S]*?\)\1"`,type:"string"},{match:String.raw`(?:u8|u|U|L)?"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`(?:u8|u|U|L)?'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F']+[uUlL]*|0[bB][01']+[uUlL]*|(?:\d[\d']*\.?[\d']*|\.\d[\d']*)(?:[eEpP][+-]?\d+)?[fFlLuU]*`,type:"number"},{match:String.raw`[A-Za-z_][\w]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`::|\.\.\.|->\*?|\.\*?|[;,]`,type:"punctuation"},{match:String.raw`<=>|<<=|>>=|<<|>>|\+\+|--|&&|\|\||[-+*/%&|^<>!=]=?|[~?:#]`,type:"operator"}]},keywords:{keyword:Gs},keywordExceptAfter:[".","->","::"]}},bn={name:"json",aliases:["jsonc","json5","webmanifest"],lexical:{start:"root",states:{root:[{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:String.raw`(?:"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*')(?=\s*:)`,type:"attribute"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?|'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`-?(?:0[xX][\da-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)|-?Infinity|NaN`,type:"number"},{match:String.raw`[A-Za-z_$][\w$]*`,type:"identifier"},{match:String.raw`[\[\]{}]`,type:"bracket"},{match:String.raw`[:,]`,type:"punctuation"}]},keywords:{keyword:["true","false","null"]}}},en={javascript:pn,"pacem-binding":dn,markup:mn,csharp:yn,c:xn,json:bn};for(let n in en){let t=en[n];Mt.register(t)}Number.prototype.isCloseTo=function(n,t=14){let e=+`1e-${t}`;return this>n-e&&this<n+e};Number.prototype.roundoff=function(n=14){return parseFloat(this.toFixed(n))};Number.prototype.clamp=function(n,t){let e=this;return n!=null&&!isNaN(n)&&(e=Math.max(e,n)),t!=null&&!isNaN(t)&&(e=Math.min(e,t)),e};Number.prototype.toBase62=function(){for(var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",t=this,e="";t!=0;){var r=t%62;e=n.charAt(r)+e,t=Math.floor(t/62)}return e};Number.prototype.toBase36=function(){return this.toString(36)};var Vs=/^\/Date\([\d]+\)\/$/i,qt=class n{static parse(t){let e;return typeof t=="string"?(Vs.test(t)?e=parseInt(t.substring(6)):e=Date.parse(t),new Date(e)):typeof t=="number"?new Date(t):t}static isLeapYear(t){return t%4===0&&t%100!==0||t%400===0}static daysInMonth(t,e){return[31,n.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}static isDate(t){return t instanceof Date&&!isNaN(t.valueOf())}static dateOnly(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}static addMonths(t,e){let r=t.getDate(),s=new Date(t),i=s.getMonth()+e,o=0;for(;i<0;)i+=12,o--;return s.setDate(1),s.setMonth(i%12),s.setFullYear(s.getFullYear()+o+Math.floor(i/12)),s.setDate(Math.min(r,n.daysInMonth(s.getFullYear(),s.getMonth()))),s}static addDays(t,e){return new Date(t.valueOf()+e*864e5)}static daysBetween(t,e){return(e.valueOf()-t.valueOf())/864e5}};var H=class n{static isNull(t){return t==null}static isEmpty(t){try{return Array.isArray(t)&&t.length===0||typeof t=="string"&&t===""||typeof t=="object"&&Object.keys(t).length===0&&!qt.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch{return!1}}static isNullOrEmpty(t){return n.isNull(t)||n.isEmpty(t)}};Array.prototype.distinct=function(){return Array.from(new Set(this))};Array.prototype.union=function(n){let t=H.isNullOrEmpty(this),e=H.isNullOrEmpty(n);return t&&e?[]:e?this.slice():t?n.slice():this.concat(n).distinct()};Array.prototype.moveWithin=function(n,t){let e="Index must be greater or equal than 0 and less or equal than the length of the array.";var r=this;if(n<0||n>r.length)throw new Error(e);if(t<0||t>r.length)throw new Error(e);r.splice(t,0,Array.prototype.splice.apply(r,[n,1])[0])};Array.prototype.equalsContent=function(n){if(n==null||this.length!==n.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==n[t])return!1;return!0};Array.prototype.cloneFrom=function(n){if(n==null)throw"Cannot clone array from null object.";let t=n.length;var e=this.length!==n.length;for(let r=0;r<t;r++){let s=n[r];this.length>r?this[r]!==s&&(this[r]=s,e=!0):(Array.prototype.push.apply(this,[s]),e=!0)}e&&this.splice(t)};var wn=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,vn=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,Sn=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,kn=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,Cn=/^#[a-f0-9]{6}$/,Rn=/^#[a-f0-9]{3}$/;function Ft(n){return!H.isNullOrEmpty(n)&&typeof n=="object"&&"r"in n&&"g"in n&&"b"in n&&typeof n.r=="number"&&typeof n.b=="number"&&typeof n.g=="number"?(n.a??=1,n.r>=0&&n.r<=1&&n.g>=0&&n.g<=1&&n.b>=0&&n.b<=1&&n.a>=0&&n.a<=1):!1}function ft(n){return!H.isNullOrEmpty(n)&&typeof n=="object"&&"h"in n&&"s"in n&&"l"in n&&typeof n.h=="number"&&typeof n.s=="number"&&typeof n.l=="number"?(n.a??=1,n.h>=0&&n.h<=360&&n.s>=0&&n.s<=1&&n.l>=0&&n.l<=1&&n.a>=0&&n.a<=1):!1}function Qs(n){let t=n.r,e=n.g,r=n.b;return(.5*(Math.max(t,e,r)+Math.min(t,e,r))).clamp(0,1)}var Q={adjustRgbChannel:n=>n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),adjustRgbChannelInv:n=>n<=.00304?n*12.92:1.055*(Math.pow(n,1/2.4)-.055),adjustRgb:n=>({r:Q.adjustRgbChannel(n.r),g:Q.adjustRgbChannel(n.g),b:Q.adjustRgbChannel(n.b),a:n.a}),adjustRgbInv:n=>({r:Q.adjustRgbChannelInv(n.r),g:Q.adjustRgbChannelInv(n.g),b:Q.adjustRgbChannelInv(n.b),a:n.a}),X:n=>.4125*n.r+.3576*n.g+.1804*n.b,Y:n=>.2126*n.r+.7152*n.g+.0722*n.b,Z:n=>.0193*n.r+.1191*n.g+.9503*n.b,relativeLuminance:n=>{let t=Q.adjustRgb(n);return Q.Y(t)},rgbToCieXYZ:n=>{let t=Q.adjustRgb(n);return{x:Q.X(t),y:Q.Y(t),z:Q.Z(t),a:n.a}},cieXYZToRgb:n=>{let t=3.241*n.x-1.5374*n.y-.4986*n.z,e=-.9692*n.x+1.876*n.y+.0416*n.z,r=.0556*n.x-.204*n.y+1.057*n.z;return Q.adjustRgbInv({r:t,g:e,b:r,a:n.a})},contrastRatio:(n,t)=>{let e=Q.relativeLuminance(n)+.05,r=Q.relativeLuminance(t)+.05;return e>r?e/r:r/e}};function Js(n,t){let e=n.r,r=n.g,s=n.b,i=Math.max(e,r,s),o=Math.min(e,r,s);return(t===0||t===1?0:(i-o)/(1-Math.abs(2*t-1))).clamp(0,1)}function qs(n){let t=n.r,e=n.g,r=n.b,s=Math.max(t,e,r),i=Math.min(t,e,r),o=0;return s!==i&&(s===t?o=(60*((e-r)/(s-i))+360)%360:s===e?o=(60*((r-t)/(s-i))+120)%360:o=(60*((t-e)/(s-i))+240)%360),o.clamp(0,360)}function ve(n){return n.toString(16).padStart(2,"0")}var Tn=class n{static{this.WCAG_MINIMUM_CONTRAST=3}static{this.WCAG_NORMAL_TEXT_CONTRAST=4.5}static{this.WCAG_SAFE_CONTRAST=7}static _clampRGB(t){let e=r=>Math.min(1,Math.max(0,r));return t[3]==null&&(t[3]=1),{r:e(t[0]),g:e(t[1]),b:e(t[2]),a:Math.min(1,Math.max(0,t[3]))}}static _normalize(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}static parse(t){if(t=(t||"").toLowerCase(),Sn.test(t)){let e=Sn.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),1]))}if(kn.test(t)){let e=kn.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]))}if(Cn.test(t)){let e=Cn.exec(t)[0];return this._clampRGB(this._normalize([parseInt("0x"+e.substr(1,2)),parseInt("0x"+e.substr(3,2)),parseInt("0x"+e.substr(5,2)),1]))}if(Rn.test(t)){let e=Rn.exec(t)[0],r=e.substr(1,1),s=e.substr(2,1),i=e.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+s+s),parseInt("0x"+i+i),1]))}if(wn.test(t)){let e=wn.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01};return this.rgb(r)}if(vn.test(t)){let e=vn.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01,a:parseFloat(e[4])};return this.rgb(r)}}static hsl(t){let e=Qs(t),r=Js(t,e);return{h:qs(t),s:r,l:e,a:t.a}}static cieXYZ(t){return ft(t)&&(t=this.rgb(t)),Q.rgbToCieXYZ(t)}static rgb(t){if(ft(t)){let e=t.h,r=t.s,s=t.l,i=e/60,o=(1-Math.abs(2*s-1))*r,a=o*(1-Math.abs(i%2-1)),c=s-o/2,l=(f,d,y)=>this._clampRGB([f+c,d+c,y+c,t.a]);if(i<=1)return l(o,a,0);if(i<=2)return l(a,o,0);if(i<=3)return l(0,o,a);if(i<=4)return l(0,a,o);if(i<=5)return l(a,0,o);if(i<=6)return l(o,0,a)}else{let e=Q.cieXYZToRgb(t);return this._clampRGB([e.r,e.g,e.b,e.a])}}static stringify(t,e=1){if(ft(t)){e??=1,t.a??=1;let r=typeof e=="number"?e:1;return`hsla(${t.h.roundoff(r)},${(t.s*100).roundoff(r)}%,${(t.l*100).roundoff(r)}%,${t.a.roundoff()})`}else if(Ft(t)){e??=!0,t.a??=1;let r=typeof e=="boolean"?e:!!e,s=Math.round(t.r*255),i=Math.round(t.g*255),o=Math.round(t.b*255),a=t.a.roundoff();return a===1?r?("#"+ve(s)+ve(i)+ve(o)).toUpperCase():`rgb(${s},${i},${o})`:`rgba(${s},${i},${o},${a})`}}static contrastRatio(t,e){return ft(t)&&(t=this.rgb(t)),ft(e)&&(e=this.rgb(e)),Q.contrastRatio(t,e)}static luminance(t){return ft(t)&&(t=n.rgb(t)),Q.relativeLuminance(t)}static lighten(t,e=.1){if(e||=0,ft(t)){let r=Math.min(1,Math.max(0,t.l+e));return Object.assign({},t,{l:r})}if(Ft(t)){let r=this.lighten(this.hsl(t),e);return this.rgb(r)}return t}static darken(t,e=.1){return this.lighten(t,-e)}static saturate(t,e=.1){if(e||=0,ft(t)){let r=Math.min(1,Math.max(0,t.s+e));return Object.assign({},t,{s:r})}if(Ft(t)){let r=this.saturate(this.hsl(t),e);return this.rgb(r)}return t}static desaturate(t,e=.1){return this.saturate(t,-e)}static interpolate(t,e,r,s){r??=.5,s??=r;let i=(r+s).roundoff(),o=(r/i).roundoff(),a=(s/i).roundoff(),c=Ft(t),l=ft(t),f=y=>Ft(y)||ft(y)?n.cieXYZ(y):y;t=f(t),e=f(e);let d={x:(t.x*o+e.x*a).roundoff(),y:(t.y*o+e.y*a).roundoff(),z:(t.z*o+e.z*a).roundoff(),a:(t.a*o+e.a*a).roundoff()};return c?n.rgb(d):l?n.hsl(n.rgb(d)):d}};var Ws=/[-+]?([\d]+(\.[\d]+(e-[\d]+)?)?|[\d]*(\.[\d]+(e-[\d]+)?))/g;function bt(n){let t=[],e=n.match(Ws);return e&&e.length>0&&e.forEach(r=>t.push(parseFloat(r))),t}var It=class n{static isAngle(t){return typeof t=="object"&&"vertex"in t&&U.isPoint(t.vertex)&&"start"in t&&U.isPoint(t.start)&&"end"in t&&U.isPoint(t.end)}static value(t){if(H.isNullOrEmpty(t)||!n.isAngle(t))return Number.NaN;let{vertex:e,start:r,end:s}=t;return n.angleBetween(e,r,s)}static angleBetween(t,e,r){let s={x:e.x-t.x,y:e.y-t.y},i={x:r.x-t.x,y:r.y-t.y},o=s.x*i.x+s.y*i.y,a=s.x*i.y-s.y*i.x;return-Math.atan2(a,o)}},Wt=class{static parse(t){let e=bt(t);if(e&&e.length===2)return{width:e[0],height:e[1]};throw new Error(`Cannot parse "${t}" as a valid Size.`)}static isSize(t){return typeof t=="object"&&"width"in t&&typeof t.width=="number"&&"height"in t&&typeof t.height=="number"}},U=class{static parse(t){let e=bt(t);if(e&&e.length===2)return{x:e[0],y:e[1]};throw new Error(`Cannot parse "${t}" as a valid Point.`)}static isPoint(t){return typeof t=="object"&&"x"in t&&typeof t.x=="number"&&"y"in t&&typeof t.y=="number"}static distance(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}static subtract(t,e){return{x:e.x-t.x,y:e.y-t.y}}static add(...t){var e={x:0,y:0};for(var r of t)e.x+=r.x,e.y+=r.y;return e}static multiply(t,e){return{x:t.x*e,y:t.y*e}}};var dt=class n{static isIdentity(t){return t.a===1&&t.d===1&&t.b===0&&t.f===0&&t.c===0&&t.e===0}static get identity(){return{a:1,b:0,c:0,d:1,e:0,f:0}}static copy(t){return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e,f:t.f}}static scale(t,e,r=e){return{a:t.a*e,b:t.b,c:t.c,d:t.d*r,e:t.e,f:t.f}}static translate(t,e){return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e+e.x,f:t.f+e.y}}static rotate(t,e){let r=Math.cos(e),s=Math.sin(e);return n.multiply(t,{a:r,b:s,c:-s,d:r,e:0,f:0})}static multiply(t,e){return"x"in t&&"y"in t?typeof e=="number"?{x:t.x*e,y:t.y*e}:{x:t.x*e.a+t.y*e.c+e.e,y:t.x*e.b+t.y*e.d+e.f}:typeof e=="number"?{a:t.a*e,b:t.b*e,c:t.c*e,d:t.d*e,e:t.e*e,f:t.f*e}:{a:t.a*e.a+t.b*e.c,b:t.a*e.b+t.b*e.d,c:t.c*e.a+t.d*e.c,d:t.c*e.b+t.d*e.d,e:t.e*e.a+t.f*e.c+e.e,f:t.e*e.b+t.f*e.d+e.f}}static det(t){return t.a*t.d-t.c*t.b}static invert(t){let e=this.det(t);if(e===0)return null;let r=1/e;return this.multiply({a:t.d,b:-t.b,c:-t.c,d:t.a,e:-t.e*t.d+t.c*t.f,f:t.e*t.b-t.a*t.f},r)}static toComponents(t,e={x:0,y:0}){let r=Math.sqrt(t.a*t.a+t.c*t.c),s=Math.sqrt(t.b*t.b+t.d*t.d),i=r!=0?t.a/r:0,o=r!=0?t.c/r:0,a=Math.atan2(o,i),{x:c,y:l}=e,f={x:t.e-c*(r*i-1)+l*r*o,y:t.f-l*(s*i-1)-c*s*o};return{scaleX:r,scaleY:s,rotation:a,translation:f}}static fromTransform([t,e,r],[s,i,o]){let a=t.x*(e.y-r.y)-t.y*(e.x-r.x)+(e.x*r.y-r.x*e.y);if(Math.abs(a)<1e-10)throw new Error("Points are collinear; matrix is singular and cannot be solved.");let c=1/a;return{a:c*(s.x*(e.y-r.y)+i.x*(r.y-t.y)+o.x*(t.y-e.y)),b:c*(s.y*(e.y-r.y)+i.y*(r.y-t.y)+o.y*(t.y-e.y)),c:c*(s.x*(r.x-e.x)+i.x*(t.x-r.x)+o.x*(e.x-t.x)),d:c*(s.y*(r.x-e.x)+i.y*(t.x-r.x)+o.y*(e.x-t.x)),e:c*(s.x*(e.x*r.y-r.x*e.y)+i.x*(r.x*t.y-t.x*r.y)+o.x*(t.x*e.y-e.x*t.y)),f:c*(s.y*(e.x*r.y-r.x*e.y)+i.y*(r.x*t.y-t.x*r.y)+o.y*(t.x*e.y-e.x*t.y))}}static areClose(t,e,r=12){return t.a.isCloseTo(e.a,r)&&t.b.isCloseTo(e.b,r)&&t.c.isCloseTo(e.c,r)&&t.d.isCloseTo(e.d,r)&&t.e.isCloseTo(e.e,r)&&t.f.isCloseTo(e.f,r)}};var St=class n{static parse(t){let e=bt(t);if(e&&e.length===4)return{x:e[0],y:e[1],width:e[2],height:e[3]};throw new Error(`Cannot parse "${t}" as a valid Rect.`)}static isRect(t){return U.isPoint(t)&&Wt.isSize(t)}static _stretch(t,e){return{a:e.width/t.width,b:0,c:0,d:e.height/t.height,e:e.x-t.x,f:e.y-t.y}}static _contain(t,e,r,s){let i=1,o=t.width/t.height,a=e.width/e.height;o>=a?i=e.width/t.width:i=e.height/t.height;let c=t.width*i,l=t.height*i,f=this._align({x:t.x,y:t.y,width:c,height:l},e,r,s);return dt.translate({a:i,b:0,c:0,d:i,e:0,f:0},f)}static _cover(t,e,r,s){let i=1,o=t.width/t.height,a=e.width/e.height;o<a?i=e.width/t.width:i=e.height/t.height;let c=t.width*i,l=t.height*i,f=this._align({x:t.x,y:t.y,width:c,height:l},e,r,s);return dt.translate({a:i,b:0,c:0,d:i,e:0,f:0},f)}static _align(t,e,r,s){let i=0,o=0;switch(r){case"left":i=e.x-t.x;break;case"right":i=e.x+e.width-t.width-t.x;break;default:i=e.x+e.width*.5-t.width*.5-t.x;break}switch(s){case"top":o=e.y-t.y;break;case"bottom":o=e.y+e.height-t.height-t.y;break;default:o=e.y+e.height*.5-t.height*.5-t.y;break}return{x:i,y:o}}static findTransform(t,e,r="stretch",s="center",i="middle"){switch(r){case"contain":return this._contain(t,e,s,i);case"cover":return this._cover(t,e,s,i);default:return this._stretch(t,e)}}static intersect(...t){let e={x:0,y:0,height:0,width:0},r=Array.from(t||[]);if(r.length<=0)return e;for(var s=r[0],i=1;i<r.length;i++){let o=r[i],a=Math.max(o.x,s.x),c=Math.max(o.y,s.y),l=Math.min(o.x+o.width,s.x+s.width),f=Math.min(o.y+o.height,s.y+s.height),d=l-a,y=f-c;if(d<0||y<=0)return e;s={x:a,y:c,width:d,height:y}}return s}static expand(t,...e){let r=Array.from(e||[]),s=t.x,i=t.y,o=s,a=i;n.isRect(t)&&(o+=t.width,a+=t.height);for(let c of r)s=Math.min(c.x,s),i=Math.min(c.y,i),o=Math.max(c.x,o),a=Math.max(c.y,a);return{x:s,y:i,width:o-s,height:a-i}}};var _n=class n{static#e;static uniqueId(){let t=n.#e||Date.now();return n.#e=++t}static uniqueCode(){return n.uniqueId().toBase62()}static randomString(t){let e="";do e+=(Math.random()*62).toBase62();while(e.length<t);return e}};var Dt=class{static round(t,e=1){return Math.round(t/e)*e}static log(t,e){return Math.log10(t)/Math.log10(e)}static rebase(t,e,r){let s=t.toString(),i=parseInt(s,e);return s.endsWith(i.toString(e))?parseInt(t.toString(),e).toString(r):Number.NaN.toString()}};var Se=new Map;function En(n){return(n??"").trim().toLowerCase()}var gt=class{static register(t){if(t==null)return;let e=[t.name].concat(t.aliases??[]);for(let r of e){let s=En(r);Se.set(s,t)}}static get(t){let e=En(t);return Se.get(e)??null}static names(){let t=Se.keys();return Array.from(t)}};var ti="root",ei=["identifier"],ni=["space","newline","comment","doc-comment"],ri=64,si=16;function ii(n){return n.combined!=null}var An=new WeakMap;function oi(n){return"include"in n}function Kt(n){return n==null||n.length===0?null:new Set(n)}function ai(n){let t=n.split(""),e=new Set(t);return Array.from(e).join("")}function ci(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=n[r].concat(s)}return e}function li(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=s.concat(n[r])}return e}function $n(n,t=0){let e=n.lexical??{states:{}},r={start:e.start,states:e.states??{},keywords:e.keywords??{},keywordSources:e.keywordSources,keywordExceptAfter:e.keywordExceptAfter,insignificant:e.insignificant},s=n.extends?gt.get(n.extends):null;if(s==null||s===n||t>=si)return r;let i=$n(s,t+1);return{start:r.start??i.start,states:ci(r.states,i.states),keywords:li(r.keywords,i.keywords),keywordSources:r.keywordSources??i.keywordSources,keywordExceptAfter:r.keywordExceptAfter??i.keywordExceptAfter,insignificant:r.insignificant??i.insignificant}}function Mn(n,t,e){let r=n[t]??[];if(e.has(t))return[];e.add(t);let s=[];for(let i of r){if(!oi(i)){s.push(i);continue}let o=Mn(n,i.include,e);Array.prototype.push.apply(s,o)}return e.delete(t),s}function ui(n){return n==null?null:{previousTypes:Kt(n.previousTypes),previousNotTypes:Kt(n.previousNotTypes),previousTexts:Kt(n.previousTexts),previousNotTexts:Kt(n.previousNotTexts)}}function fi(n){let t=Array.isArray(n.type)?n.type:null,e=Array.isArray(n.type)?n.type[0]:n.type,r=(n.flags??"").replace(/[yd]/g,""),s=ai(r),i=s+"y"+(t?"d":""),o=new RegExp(n.match,i),a=n.until?new RegExp(n.until,"y"):null,c=n.pop===!0?1:typeof n.pop=="number"?n.pop:0,l=ui(n.when);return{regex:o,type:e,groupTypes:t,when:l,pop:c,until:a,source:n.match,flags:s,next:n.next??null,push:n.push??null,embed:n.embed??null,hasTransition:c>0||!!n.next||!!n.push||!!n.embed}}function hi(n){let t=new Map;for(let e in n)for(let r of n[e])t.set(r,e);return t}var pi=/\\[1-9]|\\k<|\(\?<(?![=!])/;function di(n,t){return new RegExp(n+"|",t).exec("").length-1}function gi(n,t){return new RegExp("^(?:"+n+")$",t).test("")}function mi(n){return n.when!=null||pi.test(n.source)?!1:!gi(n.source,n.flags)}function yi(n){if(n.length===1)return{rule:n[0],combined:null};let t=[],e=1;for(let o of n){t.push(e);let a=di(o.source,o.flags);e+=1+a}let s=n.map(o=>"("+o.source+")").join("|");return{rule:null,combined:new RegExp(s,n[0].flags+"y"),rules:n,groupIndices:t}}function xi(n){let t=[],e=[],r=()=>{if(e.length>0){let s=yi(e);t.push(s)}e=[]};for(let s of n){if(!mi(s)){r(),t.push({rule:s,combined:null});continue}e.length>0&&e[0].flags!==s.flags&&r(),e.push(s)}return r(),t}function In(n){let t=An.get(n);if(t!=null)return t;let e=$n(n),r=new Map;for(let i in e.states){let o=new Set,c=Mn(e.states,i,o).map(fi),l=xi(c);r.set(i,l)}let s={name:n.name,start:e.start??ti,states:r,keywords:hi(e.keywords),keywordSources:new Set(e.keywordSources??ei),keywordExceptAfter:new Set(e.keywordExceptAfter??[]),insignificant:new Set(e.insignificant??ni)};return An.set(n,s),s}function bi(n){let t=gt.get(n);return t==null?null:In(t)}function wi(n,t){let e=t?.type??null,r=t?.raw??null;return n.previousTypes!=null&&!n.previousTypes.has(e)||n.previousNotTypes!=null&&n.previousNotTypes.has(e)||n.previousTexts!=null&&!n.previousTexts.has(r)?!1:n.previousNotTexts==null||!n.previousNotTexts.has(r)}var ke=class{constructor(t,e){this._source=t;this._tokens=[];this._position=0;this._emitted=0;this._line=1;this._column=1;this._previous=null;this._emptyTransitions=0;this._stack=[{syntax:e,state:e.start,until:null}]}run(){let t=this._source.length;for(;this._position<t;)this._step();return this._flushText(),this._tokens}get _top(){let t=this._stack;return t[t.length-1]}_step(){let t=this._top;if(this._popOnUntil(t))return;let e=this._findRule(t);if(e==null){this._position++;return}this._flushText(),this._emitMatch(e,t.syntax),this._transition(e.rule,t.syntax);let r=e.match[0].length;this._position+=r,r>0&&(this._emptyTransitions=0)}_popOnUntil(t){let e=t.until;return e==null||this._stack.length<=1||(e.lastIndex=this._position,!e.test(this._source))?!1:(this._flushText(),this._stack.pop(),!0)}_findRule(t){let e=t.syntax.states.get(t.state)??[];for(let r of e){let s=ii(r)?this._tryCombined(r):this._trySingle(r.rule);if(s!=null)return s}return null}_trySingle(t){let e=this._tryRule(t);return e==null?null:{rule:t,match:e}}_tryCombined(t){let e=t.combined;e.lastIndex=this._position;let r=e.exec(this._source);if(r==null)return null;let s=t.groupIndices;for(let i=0;i<s.length;i++){if(r[s[i]]===void 0)continue;let o=t.rules[i];return this._trySingle(o)}return null}_tryRule(t){if(t.when!=null&&!wi(t.when,this._previous))return null;let e=t.regex;e.lastIndex=this._position;let r=e.exec(this._source);return r==null?null:r[0].length>0?r:!t.hasTransition||this._emptyTransitions>=ri?null:(this._emptyTransitions++,r)}_emitMatch({rule:t,match:e},r){let s=e[0];if(t.groupTypes==null){this._append(t.type,s,r);return}this._emitGroups(t,e,r)}_emitGroups(t,e,r){let s=e.indices,i=e.index,o=i+e[0].length,a=t.groupTypes,c=i;for(let l=1;l<e.length;l++){let f=s[l];if(f==null||f[0]<c||f[1]===f[0])continue;if(f[0]>c){let x=this._source.slice(c,f[0]);this._append("text",x,r)}let d=this._source.slice(f[0],f[1]),y=a[l-1]??a[a.length-1];this._append(y,d,r),c=f[1]}if(c<o){let l=this._source.slice(c,o);this._append("text",l,r)}}_transition(t,e){let r=this._stack;for(let i=0;i<t.pop&&r.length>1;i++)r.pop();if(t.next!=null&&(this._top.state=t.next),t.push!=null&&r.push({syntax:e,state:t.push,until:null}),t.embed==null)return;let s=bi(t.embed);s!=null&&r.push({syntax:s,state:s.start,until:t.until})}_flushText(){if(this._emitted>=this._position)return;let t=this._source.slice(this._emitted,this._position),e=this._top.syntax;this._append("text",t,e)}_resolveType(t,e,r){if(!r.keywordSources.has(t))return t;let s=this._previous?.raw;return r.keywordExceptAfter.has(s)?t:r.keywords.get(e)??t}_append(t,e,r){let s=this._resolveType(t,e,r),i={type:s,raw:e,text:e,index:this._emitted,line:this._line,column:this._column,depth:this._stack.length-1,syntax:r.name};this._tokens.push(i),this._advance(e),r.insignificant.has(s)||(this._previous=i)}_advance(t){this._emitted+=t.length;let e=t.lastIndexOf(`
|
|
12
|
+
`);if(e<0){this._column+=t.length;return}for(let r=0;r<=e;r++)t.charCodeAt(r)===10&&this._line++;this._column=t.length-e}},vi={name:"text",lexical:{states:{}}},te=class{tokenize(t,e){let r=t??"",s=typeof e=="string"?gt.get(e):e,i=In(s??vi);return new ke(r,i).run()}};var Ca=Object.freeze({keyword:"code-keyword",preprocessor:"code-keyword",string:"code-string",regex:"code-string",number:"code-number",comment:"code-comment","doc-comment":"code-comment",tag:"code-tag",tagname:"code-tagname",attribute:"code-attribute"});var Ia=new te;var ki=["identifier","number","string","regex"],Ci=[")","]","}","this","super","null","undefined","true","false","++","--"],Ri=["async","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","of","return","set","static","super","switch","this","throw","true","try","typeof","undefined","var","void","while","with","yield","abstract","accessor","any","as","asserts","bigint","boolean","declare","implements","infer","interface","is","keyof","module","namespace","never","number","object","override","package","private","protected","public","readonly","satisfies","string","symbol","type","unique","unknown"],Ti=[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n
]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:"`",type:"string",push:"template"},{match:String.raw`"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\[\s\S]|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`/(?![*/])(?:\\.|\[(?:\\.|[^\]\\\r\n])*\]|[^/\\\[\r\n])+/[a-z]*`,type:"regex",when:{previousNotTypes:ki,previousNotTexts:Ci}},{match:String.raw`0[xX][\da-fA-F_]+n?|0[bB][01_]+n?|0[oO][0-7_]+n?|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d[\d_]*)?n?`,type:"number"},{match:String.raw`#?[A-Za-z_$ -][\w$ -]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.(?!\d)|\.\.\.|[;,.]`,type:"punctuation"},{match:String.raw`>>>=|<<=|>>=|>>>|\*\*=|&&=|\|\|=|\?\?=|===|!==|=>|\*\*|\+\+|--|<<|>>|&&|\|\||\?\?|[-+*/%&|^<>!=]=?|[~?:@]`,type:"operator"}],Nn={name:"javascript",aliases:["js","mjs","cjs","jsx","typescript","ts","tsx","script","ecmascript"],lexical:{start:"root",states:{root:Ti,template:[{match:"`",type:"string",pop:!0},{match:String.raw`\$\{`,type:"punctuation",push:"templateExpression"},{match:String.raw`(?:\\[\s\S]|\$(?!\{)|[^\\`+"`"+String.raw`$])+`,type:"string"}],templateExpression:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:Ri},keywordExceptAfter:[".","?."]}};var Ce={previousNotTexts:[".","?."]},Ln={name:"pacem-binding",aliases:["pacem","binding"],extends:"javascript",lexical:{states:{root:[{match:String.raw`:host(?=\.)`,type:"binding-host",when:Ce},{match:String.raw`::[A-Za-z_$][\w$]*`,type:"binding-host-property"},{match:String.raw`\^+item(?![\w$])`,type:"binding-item"},{match:String.raw`\^+index(?![\w$])`,type:"binding-index"},{match:String.raw`#[A-Za-z_][\w]*`,type:"binding-element",when:Ce},{match:String.raw`\$?this(?![\w$])`,type:"binding-this",when:Ce}]}}};var On={match:String.raw`\r\n|[\r\n]`,type:"newline"},_i=[On,{match:String.raw`[ \t\f]+`,type:"space"},{match:'"',type:"string",push:"doubleQuoted"},{match:"'",type:"string",push:"singleQuoted"},{match:String.raw`[^\s=/>"']+`,type:"attribute"},{match:"=",type:"operator"},{match:"/",type:"punctuation"}],Bn=[{match:String.raw`\{\{`,type:"punctuation",embed:"pacem-binding",until:String.raw`\}\}`},{match:String.raw`\}\}`,type:"punctuation"}],zn={name:"markup",aliases:["html","htm","xml","xhtml","svg"],lexical:{start:"root",states:{root:[{match:String.raw`<!--[\s\S]*?(?:-->|$)`,type:"comment"},{match:String.raw`<![^>]*>?`,type:"tag"},{match:String.raw`(<\/)([\w:.-]+)(\s*>?)`,type:["tag","tagname","tag"]},{match:String.raw`(<)(script)(?![\w:.-])`,flags:"i",type:["tag","tagname"],push:"scriptTag"},{match:String.raw`(<)([\w:.-]+)`,type:["tag","tagname"],push:"tag"},{match:String.raw`&(?:#\d+|#[xX][\da-fA-F]+|\w+);`,type:"entity"},On,{match:String.raw`[^<&\r\n]+`,type:"text"}],tag:[{match:String.raw`/?>`,type:"tag",pop:!0},{include:"attributes"}],scriptTag:[{match:"/>",type:"tag",pop:!0},{match:">",type:"tag",pop:!0,embed:"javascript",until:String.raw`<\/script`},{include:"attributes"}],attributes:_i,doubleQuoted:[{match:'"',type:"string",pop:!0},...Bn,{match:String.raw`(?:[^"{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}],singleQuoted:[{match:"'",type:"string",pop:!0},...Bn,{match:String.raw`(?:[^'{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}]},insignificant:["space","newline","comment","text"]}};var Ei=["abstract","add","alias","and","args","as","ascending","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","descending","do","double","dynamic","else","enum","equals","event","explicit","extern","false","file","finally","fixed","float","for","foreach","from","get","global","goto","group","if","implicit","in","init","int","interface","internal","into","is","join","let","lock","long","managed","nameof","namespace","new","nint","not","notnull","nuint","null","object","on","operator","or","orderby","out","override","params","partial","private","protected","public","readonly","record","ref","remove","required","return","sbyte","scoped","sealed","select","set","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unmanaged","unsafe","ushort","using","value","var","virtual","void","volatile","when","where","while","with","yield"],Ai=[{match:String.raw`///[^\r\n]*`,type:"doc-comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*[a-z]+[^\r\n]*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v\u00A0\uFEFF]+`,type:"space"},{match:String.raw`\$*("{3,})[\s\S]*?\1`,type:"string"},{match:String.raw`\$@"|@\$"`,type:"string",push:"interpolatedVerbatim"},{match:String.raw`\$"`,type:"string",push:"interpolated"},{match:String.raw`@"(?:[^"]|"")*"?`,type:"string"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F_]+[uUlL]*|0[bB][01_]+[uUlL]*|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d+)?[fFdDmMuUlL]*`,type:"number"},{match:String.raw`@?[A-Za-z_\u00A0-\uFFFF][\w\u00A0-\uFFFF]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.|::|[;,.]`,type:"punctuation"},{match:String.raw`\?\?=|<<=|>>>=|>>=|>>>|=>|==|!=|<=|>=|&&|\|\||\?\?|\+\+|--|->|<<|[-+*/%&|^<>!=]=?|[~?:]`,type:"operator"}],Pn={name:"csharp",aliases:["cs","c#","c-sharp","dotnet"],lexical:{start:"root",states:{root:Ai,interpolated:[{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`(?:\\.|[^"\\{}\r\n])+`,type:"string"}],interpolatedVerbatim:[{match:'""',type:"string"},{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`[^"{}]+`,type:"string"}],interpolation:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:Ei},keywordExceptAfter:[".","?."]}};var $i=["auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","inline","int","long","register","restrict","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while","bool","true","false","NULL","_Bool","_Complex","_Imaginary","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","and","and_eq","asm","bitand","bitor","catch","char8_t","char16_t","char32_t","class","co_await","co_return","co_yield","compl","concept","consteval","constexpr","constinit","const_cast","decltype","delete","dynamic_cast","explicit","export","final","friend","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reinterpret_cast","requires","static_assert","static_cast","template","this","thread_local","throw","try","typeid","typename","using","virtual","wchar_t","xor","xor_eq"],Fn={name:"c",aliases:["cpp","c++","cc","cxx","h","hpp","hxx","objc"],lexical:{start:"root",states:{root:[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)|///[^\r\n]*`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*\w+(?:\\\r?\n|[^\r\n])*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v]+`,type:"space"},{match:String.raw`(?:u8|u|U|L)?R"([^()\\\s]{0,16})\([\s\S]*?\)\1"`,type:"string"},{match:String.raw`(?:u8|u|U|L)?"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`(?:u8|u|U|L)?'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F']+[uUlL]*|0[bB][01']+[uUlL]*|(?:\d[\d']*\.?[\d']*|\.\d[\d']*)(?:[eEpP][+-]?\d+)?[fFlLuU]*`,type:"number"},{match:String.raw`[A-Za-z_][\w]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`::|\.\.\.|->\*?|\.\*?|[;,]`,type:"punctuation"},{match:String.raw`<=>|<<=|>>=|<<|>>|\+\+|--|&&|\|\||[-+*/%&|^<>!=]=?|[~?:#]`,type:"operator"}]},keywords:{keyword:$i},keywordExceptAfter:[".","->","::"]}};var Dn={name:"json",aliases:["jsonc","json5","webmanifest"],lexical:{start:"root",states:{root:[{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:String.raw`(?:"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*')(?=\s*:)`,type:"attribute"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?|'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`-?(?:0[xX][\da-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)|-?Infinity|NaN`,type:"number"},{match:String.raw`[A-Za-z_$][\w$]*`,type:"identifier"},{match:String.raw`[\[\]{}]`,type:"bracket"},{match:String.raw`[:,]`,type:"punctuation"}]},keywords:{keyword:["true","false","null"]}}};var jn={javascript:Nn,"pacem-binding":Ln,markup:zn,csharp:Pn,c:Fn,json:Dn};for(let n in jn){let t=jn[n];gt.register(t)}var Ii=Object.defineProperty,Xt=(n,t)=>{for(var e in t)Ii(n,e,{get:t[e],enumerable:!0})},Ni={};Xt(Ni,{LinearAlgebra:()=>Vn,Polygon:()=>Xi,Utils:()=>Ct,Utils3D:()=>Gi});var wt=class _e{static unit(t){let e={x:t.x,y:t.y};return this.normalize(e),e}static magSqr(t){return t.x*t.x+t.y*t.y}static mag(t){return Math.sqrt(_e.magSqr(t))}static normalize(t){let e=_e.mag(t);if(e<=0)throw"Cannot normalize a vector of length 0.";let r=1/e;t.x*=r,t.y*=r}static from(t,e){return U.subtract(t,e)}static dot(t,e){return t.x*e.x+t.y*e.y}static cross(t,e){return t.x*e.y-t.y*e.x}static areClose(t,e){return(e.x-t.x).isCloseTo(0)&&(e.y-t.y).isCloseTo(0)}},ee=class{constructor(n,t,e=-1){this.x=n,this.y=t,this.index=e}equals(n){return this.x===n.x&&this.y===n.y}};function Li(n,t,e){let r=n.x,s=n.y,i=t.x,o=t.y,a=e.x,c=e.y,l=2*(r*(o-c)+i*(c-s)+a*(s-o));if(Math.abs(l)<1e-12)return{c:{x:0,y:0},r:1/0};let f=((r*r+s*s)*(o-c)+(i*i+o*o)*(c-s)+(a*a+c*c)*(s-o))/l,d=((r*r+s*s)*(a-i)+(i*i+o*o)*(r-a)+(a*a+c*c)*(i-r))/l,y=Math.hypot(f-r,d-s);return{c:{x:f,y:d},r:y}}var Zn=class{constructor(n,t,e){this.v0=n,this.v1=t,this.v2=e,this.circumCirc=Li(n,t,e)}inCircumcircle(n){let t=this.circumCirc.c.x-n.x,e=this.circumCirc.c.y-n.y;return Math.hypot(t,e)<=this.circumCirc.r+1e-9}};function Bi(n){let t=1/0,e=1/0,r=-1/0,s=-1/0;for(let f of n)t=Math.min(t,f.x),e=Math.min(e,f.y),r=Math.max(r,f.x),s=Math.max(s,f.y);let i=(r-t)*10,o=(s-e)*10,a=new ee(t-i,e-o*3),c=new ee(t-i,s+o),l=new ee(r+i*3,s+o);return new Zn(a,c,l)}function Oi(n){let t=[];for(let e=0;e<n.length;++e){let r=!0;for(let s=0;s<n.length;++s)if(e!==s){let i=n[e],o=n[s];if(i.v0.equals(o.v0)&&i.v1.equals(o.v1)||i.v0.equals(o.v1)&&i.v1.equals(o.v0)){r=!1;break}}r&&t.push(n[e])}return t}function zi(n,t){let e=[];t=t.filter(s=>s.inCircumcircle(n)?(e.push({v0:s.v0,v1:s.v1}),e.push({v0:s.v1,v1:s.v2}),e.push({v0:s.v2,v1:s.v0}),!1):!0);let r=Oi(e);for(let s of r)t.push(new Zn(s.v0,s.v1,n));return t}function Pi(n){if(n.length<3)return[];let t=Bi(n),e=[t];for(let r of n)e=zi(r,e);return e=e.filter(r=>!(r.v0===t.v0||r.v0===t.v1||r.v0===t.v2||r.v1===t.v0||r.v1===t.v1||r.v1===t.v2||r.v2===t.v0||r.v2===t.v1||r.v2===t.v2)),e}function Fi(n){if(n.length<3)return[];let t=n.map((s,i)=>new ee(s.x,s.y,i)),e=Pi(t),r=[];for(let s of e)r.push(s.v0.index,s.v1.index,s.v2.index);return r}var Di=class{static triangulate(n){return Fi(n)}},ji=180/Math.PI,Yn=2*Math.PI,kt=12;function re(n){return U.isPoint(n)}function Yi(n){return n!=null&&Array.isArray(n)&&n.length===2&&re(n[0])&&re(n[1])}var Ct=class E{static slopeRad(t,e){return Math.atan2(e.y-t.y,e.x-t.x)}static slopeRad2(t,e){return(Yn+E.slopeRad(t,e))%Yn}static slopeDeg(t,e){return E.slopeRad(t,e)*ji}static slopeDeg2(t,e){return(360+E.slopeDeg(t,e))%360}static intersect(t,e,...r){return Array.isArray(t)&&Array.isArray(e)?E._intersectSegments(t,e,!0):St.isRect(t)?E._intersectRects(...arguments):"vertices"in t?E._mergePolygons(t,e,"intersect")?.polygons??null:null}static boundingBox(t){let e=Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,i=-Number.MAX_VALUE,o=t.length;for(let a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),s=Math.max(s,a.x),i=Math.max(i,a.y);return{x:e,y:r,width:s-e,height:i-r}}static combinePolygons(t,e,r){return E._mergePolygons(t,e,r)}static _mergePolygons(t,e,r){if(H.isNullOrEmpty(t?.vertices)||H.isNullOrEmpty(e?.vertices))return null;let s=t.vertices.filter(w=>E.inPolygon(w,e.vertices));if(t.vertices.length==s.length)return{polygons:r==="intersect"?[t]:[e]};let i=e.vertices.filter(w=>E.inPolygon(w,t.vertices));if(e.vertices.length===i.length)return{polygons:r==="intersect"?[e]:[t]};let o=E.boundingBox(t.vertices),a=E.boundingBox(e.vertices),c=E.intersect(o,a);if(r!=="union"&&(!St.isRect(c)||!(c.width>0)||!(c.height>0)))return null;let{vertices:l}=t,{vertices:f}=e;if(l.length<3||f.length<3)return null;let d=(w,k,_)=>[w,_[(k+1)%_.length]],y=(w,k)=>w.x===k.x?w.y-k.y:w.x-k.x,x=l.map(d),v=f.map(d),S=l.concat(f),C=new Map,A=w=>{if(!C.has(w)){let k=[];C.set(w,k)}return C.get(w)},g=!1;for(let w of x){let k=A(w);for(let _ of v){let $=A(_),P=E.intersect(w,_);H.isNull(P)||(g=!0,S.push(P),k.push(P),$.push(P))}}if(s.length===0&&i.length===0&&!g)return r==="union"?{polygons:[t,e]}:null;let p=[];for(let w of x.concat(v)){let k=A(w);if(H.isNullOrEmpty(k))p.push(w);else{let _=w.concat(k).sort(y);for(let $=0;$<_.length-1;$++)p.push([_[$],_[$+1]])}}var u=!1,h;do{S.sort(y),S.filter((_,$,P)=>$===0||!E.areClose(_,P[$-1])),h=E.mesh(S);let{vertices:w,triangleIndices:k}=h;u=!1;for(let _=0;_<k.length;_+=3){let $=k[_],P=k[_+1],F=k[_+2],W=w[$],K=w[P],D=w[F],X=[[W,K],[K,D],[D,W]];for(let Y of p)for(let N of X){let rt=E.areClose(N[0],Y[0])||E.areClose(N[1],Y[1])||E.areClose(N[0],Y[1])||E.areClose(N[1],Y[0])?null:E.intersect(N,Y);!H.isNull(rt)&&S.findIndex(ct=>E.areClose(ct,rt,4))===-1&&(u=!0,S.push(rt))}}}while(u);let{vertices:m,triangleIndices:b}=h,I=[];for(let w=0;w<b.length;w+=3){let k=w,_=w+1,$=w+2,P=m[b[k]],F=m[b[_]],W=m[b[$]],K={x:(P.x+F.x+W.x)/3,y:(P.y+F.y+W.y)/3},D=E.inPolygon(K,l),X=E.inPolygon(K,f);(D&&X&&r==="intersect"||(D||X)&&r==="union"||(D&&!X||!D&&X)&&r==="difference")&&I.push([P,F,W])}let O=I.flatMap(([w,k,_])=>[[w,k],[k,_],[_,w]]),L=[];for(let w=0;w<O.length;w++){let k=O[w];if(w==0){L.push(k);continue}let _=L.findIndex($=>E.areClose($[0],k[0])&&E.areClose($[1],k[1])||E.areClose($[0],k[1])&&E.areClose($[1],k[0]));_===-1?L.push(k):L.splice(_,1)}if(L.length<3)return null;let z=[],G=w=>{let{length:k}=w,_=E.areClose(w[0],w[k-1]),$=w.slice(0,_?k-1:k);return $.length>3&&E.inSegment($[0],[$[1],$[$.length-1]])&&$.shift(),$},[nt,at]=L.shift(),R=[nt,at];for(;L.length>1;){let w=R[R.length-1],k=L.findIndex(_=>E.areClose(_[0],w)||E.areClose(_[1],w));if(k===-1){z.push({vertices:G(R.splice(0))});let[_,$]=L.shift();R.push(_,$)}else{let[_]=L.splice(k,1),$=E.areClose(_[0],w)?_[1]:E.areClose(_[1],w)?_[0]:null;R.length>1&&E.inSegment(R[R.length-1],[R[R.length-2],$])?R.splice(R.length-1,1,$):R.push($)}}return z.push({vertices:G(R)}),{polygons:z,mesh:h,triangles:I.map(w=>({vertices:w}))}}static mesh(t,...e){let r=[].concat(t).concat(e),s=Di.triangulate(r);return{vertices:r,triangleIndices:s}}static intersectLines(t,e,r,s){let i,o;if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&typeof t[0]=="number"&&typeof e[0]=="number"&&typeof t[1]=="number"&&typeof e[1]=="number"&&(r=e[0],s=e[1],e=t[1],t=t[0]),typeof t=="number"&&typeof e=="number"){let a=t,c=e;i=[{x:0,y:c},{x:1,y:a+c}],o=[{x:0,y:s},{x:1,y:r+s}]}else i=t,o=e;return E._intersectSegments(i,o,!1)}static cramer(t,e){Array.isArray(t)&&(t={a:t[0],b:t[1],c:t[2]}),Array.isArray(e)&&(e={a:e[0],b:e[1],c:e[2]});let r=(t.b*e.c-t.c*e.b)/(t.b*e.a-t.a*e.b),s=(t.c*e.a-t.a*e.c)/(t.b*e.a-t.a*e.b);return{x:-r.roundoff(),y:-s.roundoff()}}static mq(t,e){let r;if(re(t)?r=t:(r=t[0],e=t[1]),r.x===e.x)return[Number.NaN,Number.NaN];let s=(e.y-r.y)/(e.x-r.x),i=r.y-s*r.x;return[s,i]}static _intersectSegments(t,e,r){let s=t[0],i=t[1],o=e[0],a=e[1],c=Math.min(s.x,i.x),l=Math.min(s.y,i.y),f=Math.max(s.x,i.x),d=f-c,y=Math.max(s.y,i.y),x=y-l,v=Math.min(o.x,a.x),S=Math.min(o.y,a.y),C=Math.max(o.x,a.x),A=C-v,g=Math.max(o.y,a.y),p=g-S;if(d===0&&A===0||x===0&&p===0)return null;let u=b=>b.x<v||b.x>C||b.x<c||b.x>f,h=b=>b.y<S||b.y>g||b.y<l||b.y>y;var m=null;if(d===0){if(r&&(v>c||C<f))return null;let b=E.mq(o,a);m=E.cramer([1,0,-c],[b[0],-1,b[1]]),r&&h(m)&&(m=null)}else if(A===0){if(r&&(c>v||f<C))return null;let b=E.mq(s,i);m=E.cramer([b[0],-1,b[1]],[1,0,-v]),r&&h(m)&&(m=null)}else if(x===0){if(r&&(S>l||g<y))return null;let b=E.mq(o,a);m=E.cramer([0,1,-l],[b[0],-1,b[1]]),r&&u(m)&&(m=null)}else if(p===0){if(r&&(l>S||y<g))return null;let b=E.mq(s,i);m=E.cramer([b[0],-1,b[1]],[0,1,-S]),r&&u(m)&&(m=null)}else{let b;if(!r||(b=E._intersectRects({x:c,y:l,width:d,height:x},{x:v,y:S,width:A,height:p}))&&b.width>0&&b.height>0){let I=E.mq(s,i),O=E.mq(o,a),L=I[0],z=O[0],G=I[1],nt=O[1];if(L!==z){m=E.cramer([L,-1,G],[z,-1,nt]);let at=m.x,R=m.y;r&&(at<b.x||at>b.x+b.width||R<b.y||R>b.y+b.height)&&(m=null)}}}return m===null?null:{x:m.x,y:m.y}}static _intersectRects(...t){return St.intersect(...t)}static _areClose(t,e,r=kt){return Math.abs(t.x-e.x).isCloseTo(0,r)&&Math.abs(t.y-e.y).isCloseTo(0,r)}static areClose(t,e,r=kt){return E._areClose(t,e,r)}static dot(t,e){return wt.dot(t,e)}static cross(t,e){return wt.cross(t,e)}static distance(t,e){if(Yi(t))return U.distance(t[0],t[1]);if(re(e))return U.distance(t,e);{let r=e[0],s=e[1];return Math.abs(r*t.x-t.y+s)/Math.sqrt(Math.pow(r,2)+1)}}static _pointSegmentDistance(t,e){let r=wt.from(e[0],e[1]),s=wt.from(e[0],t);return E.cross(r,s)}static isWithin(t,e,r,s=kt){let i=E._pointSegmentDistance(t,e);return i.isCloseTo(0,s)?!1:r?i<0:i>0}static isBeyond(t,e,r,s=kt){return E.isWithin(t,e,!r,s)}static inLine(t,e,r=kt){return E._pointSegmentDistance(t,e).isCloseTo(0,r)}static inSegment(t,e,r=kt){let s=Math.min(e[0].x,e[1].x),i=Math.max(e[0].x,e[1].x),o=Math.min(e[0].y,e[1].y),a=Math.max(e[0].y,e[1].y);return t.x>=s&&t.x<=i&&t.y>=o&&t.y<=a&&E.inLine(t,e,r)}static inTriangle(t,e){let r;for(let s=0;s<3;s++){let i=e[s],o=e[(s+1)%3],a=U.subtract(o,t),c=U.subtract(i,t),l=E.cross(a,c);if(s>0&&l*r<=0)return!1;r=l}return!0}static inPolygon(t,e,r=kt){if(!(e?.length>=3))throw"Not enough vertices";let s=e.length;if(s===3)return E.inTriangle(t,[e[0],e[1],e[2]]);r>0&&(e=e.map(y=>({x:y.x.roundoff(r),y:y.y.roundoff(r)})),t={x:t.x.roundoff(r),y:t.y.roundoff(r)});let i=Number.MAX_VALUE,o=Number.MAX_VALUE,a=Number.MIN_VALUE,c=Number.MIN_VALUE;for(let y=0;y<s;y++){let x=e[y];i=Math.min(i,x.x),o=Math.min(o,x.y),a=Math.max(a,x.x),c=Math.max(c,x.y)}if(t.x<i||t.x>a||t.y<o||t.y>c)return!1;let l={x:i-1,y:t.y},f=[l,t],d=0;for(let y=0;y<s;y++){let x=e[y],v=e[(y+1)%s],S=[x,v];if(x.y===t.y){let C=e[(y-1+s)%s];t.x>x.x&&(C.y-t.y)*(v.y-t.y)<0&&d++}else{if(v.y===t.y)continue;E.intersect(S,f)!=null&&d++}}return d%2===1}static area(t,...e){let r=[].concat(t).concat(e),s=0,i=r.length;if(i>=3){for(let o=0;o<r.length;o++){let{x:a,y:c}=r[o],l=o===i-1?0:o+1,{x:f,y:d}=r[l];s+=a*d-c*f}s*=.5}return Math.abs(s.roundoff())}static convexHull(t,...e){let r=[].concat(t).concat(e);if(!(r?.length>1))return r?.slice()??[];let s=r.map(l=>({x:l.x,y:l.y})).sort((l,f)=>l.x===f.x?l.y-f.y:l.x-f.x),i=[];for(let l of s){let f=i[i.length-1];(!f||f.x!==l.x||f.y!==l.y)&&i.push(l)}if(i.length<=2)return i;let o=(l,f,d)=>(f.x-l.x)*(d.y-l.y)-(f.y-l.y)*(d.x-l.x),a=[];for(let l of i){for(;a.length>=2&&o(a[a.length-2],a[a.length-1],l)<=0;)a.pop();a.push(l)}let c=[];for(let l=i.length-1;l>=0;l--){let f=i[l];for(;c.length>=2&&o(c[c.length-2],c[c.length-1],f)<=0;)c.pop();c.push(f)}return a.pop(),c.pop(),a.concat(c)}};function Hi(n){let t;return"vertices"in n&&Array.isArray(n.vertices)&&(t=n.vertices).length>=3&&t.every(e=>U.isPoint(e))}var Xi=class Ee{static{this._eps=1e-12}static isPolygon(t){return Hi(t)}static from(...t){return{vertices:Array.from(t)}}static contains(t,e){return Ct.inPolygon(e,t.vertices,12)}static centroid(t){let e=Ee.boundingBox(t);return{x:e.x+e.width/2,y:e.y+e.height/2}}static boundingBox(t){return Ct.boundingBox(t.vertices)}static sides(t){let{vertices:e}=t,r=[];for(let s=1;s<=e.length;s++){let i=e[s%e.length],o=e[s-1];r.push([o,i])}return r}static isConvex(t){let{vertices:e}=t,r=e.length;if(r<=3)return!0;let s=0;for(let i=0;i<e.length;i++){let o=e[(i-1+r)%r],a=e[i],c=e[(i+1)%r],l=It.angleBetween(a,o,c);if(s===0){s=Math.sign(l);continue}if(s!=Math.sign(l))return!1}return!0}static isSelfIntersecting(t){let{vertices:e}=t;if(e.length<=3)return!1;let r=Ee.sides(t);for(let s of r)for(let i of r){if(i===s||i[0]===s[1]||s[0]===i[1])continue;let o=Ct.intersect(i,s);if(!H.isNull(o))return!0}return!1}static isCounterClockwise(t){let{vertices:[e,r,s]}=t;return It.angleBetween(r,e,s)>0}static expand(t,e){let{vertices:r}=t,s=r.length,i=[];for(let o=0;o<r.length;o++){let a=r[(o-1+s)%s],c=r[o],l=r[(o+1)%s],f=It.angleBetween(c,a,l),d=-e/Math.sin(Math.abs(f)/2),y=dt.scale(dt.identity,d),x=U.subtract(c,a);wt.normalize(x);let v=U.subtract(c,l);wt.normalize(v);let S=U.add(x,v);wt.normalize(S);let C=dt.multiply(S,y);i.push(U.add(c,{x:C.x.roundoff(),y:C.y.roundoff()}))}return{vertices:i}}static area(t){return Ct.area(t.vertices)}static intersect(t,e){return Ct.intersect(t,e)}static convexHull(t){return{vertices:Ct.convexHull(t.vertices)}}},se=180/Math.PI,Yt=1/se,j=class mt{static from(...t){if(t.length!==3)throw new RangeError("Must provide exactly 3 numbers");return{x:t[0],y:t[1],z:t[2]}}static parse(t){let e=bt(t);if(e&&e.length===3)return mt.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Vector3D.`)}static i(){return{x:1,y:0,z:0}}static j(){return{x:0,y:1,z:0}}static k(){return{x:0,y:0,z:1}}static zero(){return{x:0,y:0,z:0}}static subtract(t,e){return{x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}}static add(...t){var e={x:0,y:0,z:0};for(var r of t)e.x+=r.x,e.y+=r.y,e.z+=r.z;return e}static dot(t,e){return t.x*e.x+t.y*e.y+t.z*e.z}static cross(t,e){return{x:t.y*e.z-t.z*e.y,y:t.z*e.x-t.x*e.z,z:t.x*e.y-t.y*e.x}}static scale(t,e,r=e,s=e){return{x:t.x*e,y:t.y*r,z:t.z*s}}static magSqr(t){return t.x*t.x+t.y*t.y+t.z*t.z}static areClose(t,e){return(e.x-t.x).isCloseTo(0)&&(e.y-t.y).isCloseTo(0)&&(e.z-t.z).isCloseTo(0)}static mag(t){return Math.sqrt(mt.magSqr(t))}static negate(t){return{x:-t.x,y:-t.y,z:-t.z}}static unit(t){let e={x:t.x,y:t.y,z:t.z};return this.normalize(e),e}static normalize(t){let e=mt.mag(t);if(e<=0)throw"Cannot normalize a vector of length 0.";let r=1/e;t.x*=r,t.y*=r,t.z*=r}static angleBetween(t,e){let r,s=mt.unit(t),i=mt.unit(e);if(mt.dot(s,i)<0){let a={x:-s.x-i.x,y:-s.y-i.y,z:-s.z-i.z},c=mt.mag(a);r=Math.PI-2*Math.asin(c/2)}else{let a={x:s.x-i.x,y:s.y-i.y,z:s.z-i.z},c=mt.mag(a);r=2*Math.asin(c/2)}return se*r}},Ui=class Ae{static from(t,e,r){return{rho:t.clamp(0,1/0),theta:e.clamp(-180,180),phi:r.clamp(0,360)}}static fromVector(t,e,r){typeof t=="number"&&(t=j.from(t,e,r));let s=j.mag(t);if(s.isCloseTo(0))return Ae.from(0,0,0);let i=Math.atan2(t.x,t.z),o=Math.acos((t.y/s).clamp(-1,1));return Ae.from(s,i*se,o*se)}static toVector(t){let{rho:e,theta:r,phi:s}=t,i=s*Yt,o=r*Yt,a=Math.sin(i)*e;return{x:a*Math.sin(o),y:Math.cos(i)*e,z:a*Math.cos(o)}}static toRotationMatrix(t){let{theta:e,phi:r}=t,s=Yt*e,i=Math.sin(s),o=Math.cos(s),a=Yt*r,c=Math.sin(a),l=Math.cos(a);return Nt.from(i*l,i*c,o,0,o*l,o*c,-i,0,-c,l,0,0,0,0,0,1)}},jt=class Gn{static modify(t,e){let{m11:r,m12:s,m13:i,m14:o,m21:a,m22:c,m23:l,m24:f,m31:d,m32:y,m33:x,m34:v,offsetX:S,offsetY:C,offsetZ:A,m44:g}=t,p={m11:r,m12:s,m13:i,m14:o,m21:a,m22:c,m23:l,m24:f,m31:d,m32:y,m33:x,m34:v,offsetX:S,offsetY:C,offsetZ:A,m44:g};return e(p),p}static clone(t){return Gn.modify(t,e=>{})}static multiply(t,e){return Nt.isIdentity(t)?e:Nt.isIdentity(e)?t:Nt.from(t.m11*e.m11+t.m12*e.m21+t.m13*e.m31+t.m14*e.offsetX,t.m11*e.m12+t.m12*e.m22+t.m13*e.m32+t.m14*e.offsetY,t.m11*e.m13+t.m12*e.m23+t.m13*e.m33+t.m14*e.offsetZ,t.m11*e.m14+t.m12*e.m24+t.m13*e.m34+t.m14*e.m44,t.m21*e.m11+t.m22*e.m21+t.m23*e.m31+t.m24*e.offsetX,t.m21*e.m12+t.m22*e.m22+t.m23*e.m32+t.m24*e.offsetY,t.m21*e.m13+t.m22*e.m23+t.m23*e.m33+t.m24*e.offsetZ,t.m21*e.m14+t.m22*e.m24+t.m23*e.m34+t.m24*e.m44,t.m31*e.m11+t.m32*e.m21+t.m33*e.m31+t.m34*e.offsetX,t.m31*e.m12+t.m32*e.m22+t.m33*e.m32+t.m34*e.offsetY,t.m31*e.m13+t.m32*e.m23+t.m33*e.m33+t.m34*e.offsetZ,t.m31*e.m14+t.m32*e.m24+t.m33*e.m34+t.m34*e.m44,t.offsetX*e.m11+t.offsetY*e.m21+t.offsetZ*e.m31+t.m44*e.offsetX,t.offsetX*e.m12+t.offsetY*e.m22+t.offsetZ*e.m32+t.m44*e.offsetY,t.offsetX*e.m13+t.offsetY*e.m23+t.offsetZ*e.m33+t.m44*e.offsetZ,t.offsetX*e.m14+t.offsetY*e.m24+t.offsetZ*e.m34+t.m44*e.m44)}},Nt=class it{static identity(){return{m11:1,m12:0,m13:0,m14:0,m21:0,m22:1,m23:0,m24:0,m31:0,m32:0,m33:1,m34:0,offsetX:0,offsetY:0,offsetZ:0,m44:1}}static from(...t){if(t.length!==16)throw new RangeError("Must provide exactly 16 numbers");return{m11:t[0],m12:t[1],m13:t[2],m14:t[3],m21:t[4],m22:t[5],m23:t[6],m24:t[7],m31:t[8],m32:t[9],m33:t[10],m34:t[11],offsetX:t[12],offsetY:t[13],offsetZ:t[14],m44:t[15]}}static transpose(t){return it.from(t.m11,t.m21,t.m31,t.offsetX,t.m12,t.m22,t.m32,t.offsetY,t.m13,t.m23,t.m33,t.offsetZ,t.m14,t.m24,t.m34,t.m44)}static toArray(t){return[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.offsetX,t.offsetY,t.offsetZ,t.m44]}static clone(t,e){return typeof e=="function"?jt.modify(t,e):jt.clone(t)}static scale(t,e,r,s){return typeof e=="number"?(r??=e,s??=e):(s=e.z,r=e.y,e=e.x),jt.modify(t,i=>{i.m11*=e,i.m22*=r,i.m33*=s})}static translate(t,e){return jt.modify(t,r=>{r.offsetX+=e.x,r.offsetY+=e.y,r.offsetZ+=e.z})}static parse(t){let e=bt(t);if(e&&e.length===16)return it.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Matrix3D.`)}static isIdentity(t){return t.m11==1&&t.m12==0&&t.m13==0&&t.m14==0&&t.m21==0&&t.m22==1&&t.m23==0&&t.m24==0&&t.m31==0&&t.m32==0&&t.m33==1&&t.m34==0&&t.offsetX==0&&t.offsetY==0&&t.offsetZ==0&&t.m44==1}static isAffine(t){return t.m14==0&&t.m24==0&&t.m34==0&&t.m44==1}static determinant(t){if(it.isIdentity(t))return 1;if(it.isAffine(t))return t.m11*(t.m22*t.m33-t.m32*t.m23)-t.m12*(t.m21*t.m33-t.m31*t.m23)+t.m13*(t.m21*t.m32-t.m31*t.m22);{let e=t.m13*t.m24-t.m23*t.m14,r=t.m13*t.m34-t.m33*t.m14,s=t.m13*t.m44-t.offsetZ*t.m14,i=t.m23*t.m34-t.m33*t.m24,o=t.m23*t.m44-t.offsetZ*t.m24,a=t.m33*t.m44-t.offsetZ*t.m34,c=t.m22*r-t.m32*e-t.m12*i,l=t.m12*o-t.m22*s+t.offsetY*e,f=t.m32*s-t.offsetY*r-t.m12*a,d=t.m22*a-t.m32*o+t.offsetY*i;return t.offsetX*c+t.m31*l+t.m21*f+t.m11*d}}static multiply(...t){if(t.length===0)throw new ReferenceError("Matrix not provided.");let e=Array.from(t),r=e[0];for(let s=1;s<e.length;s++)r=jt.multiply(r,e[s]);return r}static invert(t){if(it.isAffine(t)){let e=it.determinant(t);if(e==0)return null;let r=t.m12*t.m23-t.m22*t.m13,s=t.m32*t.m13-t.m12*t.m33,i=t.m22*t.m33-t.m32*t.m23,o=t.m21*t.m13-t.m11*t.m23,a=t.m11*t.m33-t.m31*t.m13,c=t.m31*t.m23-t.m21*t.m33,l=t.m11*t.m22-t.m21*t.m12,f=t.m11*t.m32-t.m31*t.m12,d=t.m11*t.offsetY-t.offsetX*t.m12,y=t.m21*t.m32-t.m31*t.m22,x=t.m21*t.offsetY-t.offsetX*t.m22,v=t.m31*t.offsetY-t.offsetX*t.m32,S=t.m23*d-t.offsetZ*l-t.m13*x,C=t.m13*v-t.m33*d+t.offsetZ*f,A=t.m33*x-t.offsetZ*y-t.m23*v,g=l,p=-f,u=y,h=1/e;return it.from(i*h,s*h,r*h,0,c*h,a*h,o*h,0,u*h,p*h,g*h,0,A*h,C*h,S*h,1)}else{let e=it.determinant(t);if(e==0)return null;let r=t.m33*t.m44-t.m34*t.offsetZ,s=t.m32*t.m44-t.m34*t.offsetY,i=t.m31*t.m44-t.m34*t.offsetX,o=t.m32*t.offsetZ-t.m33*t.offsetY,a=t.m31*t.offsetZ-t.m33*t.offsetX,c=t.m31*t.offsetY-t.m32*t.offsetX,l=t.m33*t.m44-t.m34*t.offsetZ,f=t.m32*t.m44-t.m34*t.offsetY,d=t.m31*t.m44-t.m34*t.offsetX,y=t.m32*t.offsetZ-t.m33*t.offsetY,x=t.m31*t.offsetZ-t.m33*t.offsetX,v=t.m31*t.offsetY-t.m32*t.offsetX,S=t.m23*t.m44-t.m24*t.offsetZ,C=t.m22*t.m44-t.m24*t.offsetY,A=t.m21*t.m44-t.m24*t.offsetX,g=t.m22*t.offsetZ-t.m23*t.offsetY,p=t.m21*t.offsetZ-t.m23*t.offsetX,u=t.m21*t.offsetY-t.m22*t.offsetX,h=t.m23*t.m34-t.m24*t.m33,m=t.m22*t.m34-t.m24*t.m32,b=t.m21*t.m34-t.m24*t.m31,I=t.m22*t.m33-t.m23*t.m32,O=t.m21*t.m33-t.m23*t.m31,L=t.m21*t.m32-t.m22*t.m31,z=t.m22*r-t.m23*s+t.m24*o,G=-(t.m21*r-t.m23*i+t.m24*a),nt=t.m21*s-t.m22*i+t.m24*c,at=-(t.m21*o-t.m22*a+t.m23*c),R=-(t.m12*l-t.m13*f+t.m14*y),w=t.m11*l-t.m13*d+t.m14*x,k=-(t.m11*f-t.m12*d+t.m14*v),_=t.m11*y-t.m12*x+t.m13*v,$=t.m12*S-t.m13*C+t.m14*g,P=-(t.m11*S-t.m13*A+t.m14*p),F=t.m11*C-t.m12*A+t.m14*u,W=-(t.m11*g-t.m12*p+t.m13*u),K=-(t.m12*h-t.m13*m+t.m14*I),D=t.m11*h-t.m13*b+t.m14*O,X=-(t.m11*m-t.m12*b+t.m14*L),Y=t.m11*I-t.m12*O+t.m13*L,N=1/e;return it.from(z*N,R*N,$*N,K*N,G*N,w*N,P*N,D*N,nt*N,k*N,F*N,X*N,at*N,_*N,W*N,Y*N)}}static transform(t,e){var r={x:t.x,y:t.y,z:t.z};if(!it.isIdentity(e)){var s=r.x,i=r.y,o=r.z;if(r.x=s*e.m11+i*e.m21+o*e.m31+e.offsetX,r.y=s*e.m12+i*e.m22+o*e.m32+e.offsetY,r.z=s*e.m13+i*e.m23+o*e.m33+e.offsetZ,!it.isAffine(e)){var a=s*e.m14+i*e.m24+o*e.m34+e.m44;a!=0&&(r.x/=a,r.y/=a,r.z/=a)}}return r}},Zi=class Z{static identity(){return Z.from(0,0,0,1)}static from(...t){if(t.length!==4)throw new RangeError("Must provide exactly 4 numbers");return{x:t[0],y:t[1],z:t[2],w:t[3]}}static parse(t){let e=bt(t);if(e&&e.length===4)return Z.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Quaternion.`)}static fromVectors(t,e){j.normalize(t),j.normalize(e);let r=(i,o,a,c)=>{let l=Z.from(i,o,a,c);return Z.normalize(l),l},s=j.dot(t,e)+1;return s.isCloseTo(0)?Math.abs(t.x)>Math.abs(t.z)?r(-t.y,t.x,0,0):r(0,-t.z,t.y,0):r(t.y*e.z-t.z*e.y,t.z*e.x-t.x*e.z,t.x*e.y-t.y*e.x,s)}static normalize(t){let e=Z.mag(t);if(e.isCloseTo(0))t.x=t.y=t.z=0,t.w=1;else{let r=1/e;t.x*=r,t.y*=r,t.z*=r,t.w*=r}}static unit(t){let e=Z.from(t.x,t.y,t.z,t.w);return Z.normalize(e),e}static fromAxisAngle(t,e){e%=360;var r=Yt*e,s=j.mag(t);if(s==0)throw new RangeError("Invalid argument");var i=Math.sin(.5*r)/s,o=t.x*i,a=t.y*i,c=t.z*i;return Z.from(o,a,c,Math.cos(.5*r))}static fromRotationMatrix(t){let e=t.m11+t.m22+t.m33+t.m44;if(e>0){let r=.5/Math.sqrt(e),s=.25/r,i=(t.m23-t.m32)*r,o=(t.m31-t.m13)*r,a=(t.m12-t.m21)*r;return Z.from(i,o,a,s)}else if(t.m11>t.m22&&t.m11>t.m22){let r=.5/Math.sqrt(t.m44+t.m11-t.m22-t.m33),s=(t.m23-t.m32)*r,i=.25/r,o=(t.m12+t.m21)*r,a=(t.m31+t.m13)*r;return Z.from(i,o,a,s)}else if(t.m22>t.m33){let r=.5/Math.sqrt(t.m44+t.m22-t.m11-t.m33),s=(t.m23+t.m32)*r,i=.25/r,o=(t.m12+t.m21)*r,a=(t.m31-t.m13)*r;return Z.from(o,i,s,a)}else{let r=.5/Math.sqrt(t.m44+t.m33-t.m11-t.m22),s=(t.m23+t.m32)*r,i=.25/r,o=(t.m12-t.m21)*r,a=(t.m31-t.m13)*r;return Z.from(a,s,i,o)}}static conjugate(t){return Z.from(-t.x,-t.y,-t.z,t.w)}static mag(t){return Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w)}static norm(t){return t.x*t.x+t.y*t.y+t.z*t.z}static axis(t){return t.x==0&&t.y==0&&t.z==0?j.j():j.unit(t)}static transform(t,e){Z.normalize(e);let r=j.cross(e,t),s=j.scale(r,2),i=j.cross(e,s);return{x:t.x+e.w*s.x+i.x,y:t.y+e.w*s.y+i.y,z:t.z+e.w*s.z+i.z}}static angle(t){let e=Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z),r=t.w;if(e>Number.MAX_VALUE){let s=Math.max(Math.abs(t.x),Math.max(Math.abs(t.y),Math.abs(t.z))),i=t.x/s,o=t.y/s,a=t.z/s;e=Math.sqrt(i*i+o*o+a*a),r/=s}return Math.atan2(e,r)*114.59155902616465}static toRotationMatrix(t){var e=Nt.identity(),r=t.x,s=t.y,i=t.z,o=t.w;return e.m11=1-2*s*s-2*i*i,e.m12=2*r*s+2*o*i,e.m13=2*r*i-2*o*s,e.m21=2*r*s-2*o*i,e.m22=1-2*r*r-2*i*i,e.m23=2*s*i+2*o*r,e.m31=2*o*s+2*r*i,e.m32=2*s*i-2*o*r,e.m33=1-2*r*r-2*s*s,e}static invert(t){let e=Z.unit(t);return Z.conjugate(e)}static multiply(t,e){return Z.from(t.w*e.x+t.x+e.w+t.y*e.z-t.z*e.y,t.w*e.y-t.x*e.z+t.y*e.w+t.z*e.x,t.w*e.z+t.x*e.y-t.y*e.x+t.z*e.w,t.w*e.w-t.x*e.x-t.y*e.y-t.z*e.z)}static dot(t,e){var r=Z.multiply(t,Z.conjugate(e));return r.w}},Gi=class{static intersect(n,t){let[e,r]=n,s=j.subtract(e,r),[i,o,a]=t,c=j.subtract(i,o),l=j.subtract(i,a),f=j.cross(s,l),d=j.dot(c,f);if(d.isCloseTo(0))return null;let y=1/d,x=j.subtract(e,i),v=y*j.dot(x,f);if(v<0||v>1)return null;let S=j.cross(x,c),C=y*j.dot(s,S);if(C<0||v+C>1)return null;let A=y*j.dot(l,S);return A<0||A.isCloseTo(0)?null:j.add(e,j.scale(s,A))}},Vn={};Xt(Vn,{Matrix3D:()=>Nt,Quaternion:()=>Zi,Spherical:()=>Ui,Vector:()=>wt,Vector3D:()=>j});var Ie={};Xt(Ie,{Complex:()=>ot,DataAnalysis:()=>Qn,NumberTheory:()=>nr});function ht(n){return typeof n=="number"&&(n={real:n,img:0}),n}var Hn;function Rt(n,t){let e={};return Object.defineProperty(e,"real",{value:n,writable:!1}),Object.defineProperty(e,"img",{value:t,writable:!1}),e}function Re(){return Hn||(Hn=Rt(Number.NaN,Number.NaN))}var ot=class{static build(n,t){return this.isComplex(n)?n:(t??=0,typeof n!="number"||typeof t!="number"?Re():Rt(n,t||0))}static add(n,t){let e=ht(n),r=ht(t);return Rt(e.real+r.real,e.img+r.img)}static subtract(n,t){let e=ht(n),r=ht(t);return Rt(e.real-r.real,e.img-r.img)}static multiply(n,t){let e=ht(n),r=ht(t);return Rt(e.real*r.real-e.img*r.img,e.real*r.img+e.img*r.real)}static divide(n,t){let e=ht(n),r=ht(t),s=this.absSquare(r).roundoff();if(s===0)return Re();let i=1/s;return Rt(i*(e.real*r.real+e.img*r.img),i*(e.img*r.real-e.real*r.img))}static absSquare(n){let t=ht(n);return Math.pow(t.real,2)+Math.pow(t.img,2)}static modulus(n){return Math.sqrt(this.absSquare(n))}static isComplex(n){return n!=null&&typeof n=="object"&&"real"in n&&"img"in n&&typeof n.real=="number"&&typeof n.img=="number"}static conjugate(n){return n=ht(n),Rt(n.real,Math.abs(n.img)==0?0:-n.img)}static equals(n,t){let e=this.build(n),r=this.build(t);return!this.isComplex(n)||!this.isComplex(t)?!1:e.real===r.real&&e.img===r.img}static get NaC(){return Re()}},Qn={};Xt(Qn,{Fourier:()=>Ji,Gaussian:()=>Ne,Lagrange:()=>qn,Lagrangian:()=>to,Newton:()=>no,Pchip:()=>eo,SearchFunctions:()=>fo,Utils:()=>ao});function Vi(n,t){let e=2*Math.PI*n/t;return ot.build(Math.cos(e),Math.sin(e))}var Xn={};function Jn(n,t){let e=Xn[t]=Xn[t]||{};return e[n]=e[n]||Vi(n,t)}function Qi(n){return n>0&&(n&n-1)===0}function $e(n){let t=[],e=n.length;if(e===1)return[ot.build(n[0])];let r=$e(n.filter((o,a)=>a%2===0)),s=$e(n.filter((o,a)=>a%2===1));for(var i=0;i<e/2;i++){let o=r[i],a=ot.multiply(Jn(i,e),s[i]);t[i]=ot.add(o,a),t[i+e/2]=ot.subtract(o,a)}return t}var Ji=class{static transform(n,t=!0){return n=n||[],Qi(n.length)?this.fft(n,t):this.dft(n,t)}static invert(n,t=!0){return this.idft(n||[],t)}static dft(n,t=!0){let e=(n||[])?.length,r=t?1/Math.sqrt(e):1,s=[];for(let i=0;i<e;i++){s.push({real:0,img:0});for(let o=0;o<e;o++){let a=Jn(i*o,e),c=ot.multiply(n[o],a),l=ot.multiply(c,r);s[i]=ot.add(s[i],l)}}return s}static idft(n,t=!0){let e=n.map(s=>ot.build(s.img,s.real));return this.transform(e,t).map(s=>ot.build(s.img,s.real))}static fft(n,t=!0){let e=$e(n);if(!t)return e;let r=1/Math.sqrt(n.length);return e.map(s=>ot.multiply(s,r))}},qi=Math.sqrt(Math.PI);function Wi(n){let t=Math.abs(n),e=1/(1+.5*t),r=e*Math.exp(-t*t-1.26551223+e*(1.00002368+e*(.37409196+e*(.09678418+e*(-.18628806+e*(.27886807+e*(-1.13520398+e*(1.48851587+e*(-.82215223+e*.17087277)))))))));return n>=0?r:2-r}var Ne=class{constructor(n,t){this.mean=n,this.stdev=Math.abs(t),this.variance=Math.pow(t,2)}static get normal(){return Ki}weight(n){return Math.exp(-.5*Math.pow(this._z(n),2))}probabilityDensity(n){let t=this.stdev*Math.SQRT2*qi;return this.weight(n)/t}_z(n){return(n-this.mean)/this.stdev}probability(n){return .5*Wi(-this._z(n)/Math.SQRT2)}},Ki=new Ne(0,1),qn=class Wn{constructor(t){this.#e=t}#e;#t=null;_prepareBarycentric(){if(this.#t)return;let t=this.#e||[],e=t.length;if(e===0){this.#t=[];return}let r=new Array(e),s=new Array(e);for(let a=0;a<e;a++){let c=0,l=1,f=t[a].x;for(let d=0;d<e;d++){if(d===a)continue;let y=f-t[d].x;if(y===0)throw new Error("Invalid function provided.");y<0&&(l=-l),c+=Math.log(Math.abs(y))}r[a]=-c,s[a]=l}let i=r[0];for(let a=1;a<e;a++)r[a]>i&&(i=r[a]);let o=new Array(e);for(let a=0;a<e;a++){let c=Math.exp(r[a]-i);o[a]=s[a]*c}this.#t=o}_computeBarycentric(t){let e=this.#e||[];this.#t||this._prepareBarycentric();let r=this.#t||[],s=0,i=0;for(let o=0;o<e.length;o++){let a=e[o].x;if(t===a)return e[o].y;let c=r[o]/(t-a);s+=c*e[o].y,i+=c}return s/i}interpolate(t){return this._computeBarycentric(t)}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new Wn(r)}},to={create:qn.create},eo=class Kn{constructor(t){if(!t||t.length<2)throw new Error("Need at least 2 points");let e=t.slice().sort((r,s)=>r.x-s.x);this.xs=e.map(r=>r.x),this.ys=e.map(r=>r.y),this.ms=this.computeDerivatives()}computeDerivatives(){let t=this.xs.length,e=new Array(t-1),r=new Array(t-1);for(let i=0;i<t-1;i++)e[i]=this.xs[i+1]-this.xs[i],r[i]=(this.ys[i+1]-this.ys[i])/e[i];let s=new Array(t).fill(0);s[0]=r[0],s[t-1]=r[t-2];for(let i=1;i<t-1;i++){let o=r[i-1],a=r[i];if(o===0||a===0||o*a<=0)s[i]=0;else{let c=2*e[i]+e[i-1],l=e[i]+2*e[i-1];s[i]=(c+l)/(c/o+l/a)}}for(let i=0;i<t-1;i++)if(r[i]===0)s[i]=0,s[i+1]=0;else{let o=s[i]/r[i],a=s[i+1]/r[i],c=o*o+a*a;if(c>9){let l=3/Math.sqrt(c);s[i]=l*o*r[i],s[i+1]=l*a*r[i]}}return s}interpolate(t){let e=this.xs,r=this.ys,s=this.ms,i=e.length;if(t<=e[0]){let C=s[0];return r[0]+C*(t-e[0])}if(t>=e[i-1]){let C=s[i-1];return r[i-1]+C*(t-e[i-1])}let o=0,a=i-1;for(;a-o>1;){let C=o+a>>1;e[C]<=t?o=C:a=C}let c=e[o+1]-e[o],l=(t-e[o])/c,f=l*l,d=f*l,y=2*d-3*f+1,x=d-2*f+l,v=-2*d+3*f,S=d-f;return y*r[o]+x*(s[o]*c)+v*r[o+1]+S*(s[o+1]*c)}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new Kn(r)}},no=class tr{constructor(t){if(!t||t.length===0)throw new Error("Need at least 1 point");let e=t.slice().sort((i,o)=>i.x-o.x);this.xs=e.map(i=>i.x);let r=e.length,s=e.map(i=>i.y);for(let i=1;i<r;i++)for(let o=r-1;o>=i;o--){let a=this.xs[o]-this.xs[o-i];if(a===0)throw new Error("Invalid function provided.");s[o]=(s[o]-s[o-1])/a}this.coeffs=s}interpolate(t){let e=this.xs,r=this.coeffs,s=r.length;if(s===0)return NaN;let i=r[s-1];for(let o=s-2;o>=0;o--)i=i*(t-e[o])+r[o];return i}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new tr(r)}},pt=(n,t)=>n;function ro(n,t=pt){let e=Object.groupBy(n,t),r,s=0;for(let i in e){let o=e[i].length;o>s&&(r=parseInt(i),s=o)}return r}function so(n,t=pt){let e=n.slice(0),r=e.length;e.sort((i,o)=>{let a=t(i),c=t(o);return a-c});let s=Math.ceil(e.length/2)-1;return r%2==1?e[s]:.5*(e[s+1]+e[s])}function er(n,t=pt){return n.reduce((e,r,s)=>e+t(r,s),0)}function ie(n,t=pt){return er(n,t)/n.length}function Me(n,t=pt,e=!1){let r=ie(n,t);return n.reduce((s,i)=>Math.pow(i-r,2)+s,0)/(n.length-(e?1:0))}function Un(n,t=pt,e=!1){let r=Me(n,t,e);return Math.sqrt(r)}function io(n,t,e=pt,r=pt){let s=Array.isArray(t);if(s&&t.length!==n.length)throw new Error("Sets must be of the same length.");let i=n.length,o=n,a=s?t:n,c=s?e:t,l=s?r:e,f=ie(o,c),d=ie(a,l),y=0,x=0,v=0;for(let S=0;S<i;S++){let C=o[S],A=a[S],g=c(C,S)-f,p=l(A,S)-d;y+=g*p,x+=g*g,v+=p*p}return y/Math.sqrt(x*v)}function oo(n,t,e=pt,r=pt){let s=Array.isArray(t);if(s&&t.length!==n.length)throw new Error("Sets must be of the same length.");let i=n,o=s?t:n,a=s?e:t,c=s?r:a,l=a??(p=>p.x),f=c??(p=>p.y),d=n.length,y=0,x=0,v=0,S=0,C=0;for(let p=0;p<d;p++){let u=i[p],h=o[p],m=l(u,p),b=f(h,p);y+=m*b,x+=m,v+=b,S+=m*m,C+=b*b}let A=(d*y-x*v)/(d*S-Math.pow(x,2)),g=(v-A*x)/d;return[A,g]}var ao=class{static sum(n,t){return er(n,t)}static mean(n,t){return ie(n,t)}static median(n,t){return so(n,t)}static mode(n,t){return ro(n,t)}static var(n,t){return Me(n,t,!0)}static varp(n,t){return Me(n,t,!1)}static stdevp(n,t){return Un(n,t,!1)}static stdev(n,t){return Un(n,t,!0)}static correlation(n,t,e,r){return io(n,t,e,r)}static linearRegression(n,t,e,r){return oo(n,t,e,r)}static gaussian(n,t){return new Ne(n,t)}};function Le(n,t){return(r,s,i,o)=>{let a=r,c=s,l=n(a,c),f=t(a,c),d=i(l),y=i(f);for(;c-a>o;)d<y?(c=f,f=l,y=d,l=n(a,c),d=i(l)):(a=l,l=f,d=y,f=t(a,c),y=i(f));return .5*(l+f)}}var Be=.001,co=(n,t,e,r=Be)=>Le((c,l)=>l-(l-c)/1.618,(c,l)=>c+(l-c)/1.618)(n,t,e,r);function lo(n){if(n<=1)throw new RangeError("segments must be a number grater than 1.");return(t,e,r,s=Be)=>Le((c,l)=>c+(l-c)/n,(c,l)=>l-(l-c)/n)(t,e,r,s)}var uo=(n,t,e,r=Be)=>{var s=null,i=null;let o=(f,d)=>(i??=d-f,s??=i/Math.sqrt(12),s*(d-f)/i);return Le((f,d)=>Math.max(f,(d+f)/2-o(f,d)),(f,d)=>Math.min(d,(d+f)/2+o(f,d)))(n,t,e,r)},fo={linear:(n=2)=>lo(n),goldenRatio:co,gaussian:uo},nr={};Xt(nr,{Utils:()=>ho});var ne="0123456789abcdefghijklmnopqrstuvwxyz",Te=`Radix out of range: possible values go between positive 1 exclusive and ${ne.length} inclusive`,ho=class Ht{static lcd(...t){if(H.isNullOrEmpty(t)||t.length<=1)throw"Insufficient set of numbers.";function e(i,o){return o?e(o,i%o):o===0?i:NaN}function r(i,o){return i*o/e(i,o)}let s=Math.round(t[0]);for(let i=1;i<t.length;i++)s=r(s,Math.round(t[i]));return s}static gcd(t,e){return t=Math.round(t),e=Math.round(e),t===0?e:Ht.gcd(e%t,t)}static rebaseInt(t,e,r){return Dt.rebase(t,e,r)}static rebaseFloat(t,e,r,s=12){let i=Ht.rebaseFloat10ToN,o=Ht.rebaseFloatNTo10;if(e===10){let c=parseFloat(t.toString());return r%1===0?Ht.rebaseFloat10ToNIntBase(c,r,s):i(c,r,s)}if(r===10)return o(t.toString(),e,s);let a=o(t.toString(),e,s+1);return i(a,r,s)}static rebaseFloatNTo10(t,e,r=12){let s=ne;if(e<=1||e>s.length)throw new Error(Te);let i=(t??"0").toString().toLowerCase(),o=Number.NaN;if(i==="0")return 0;let a=/^([-+]?) *([\da-z]+)?(.[\da-z]+)?$/.exec(i);if(a.length<2)return o;let c=a[1]==="-"?-1:1,l=a[2]||"0",f=a[3]||".0",d=0,y=0;for(let x of l+f.substr(1)){let v=s.indexOf(x);if(v===-1||v>=e)return o;d+=v*Math.pow(e,l.length-y-1),y++}return c*d}static rebaseFloat10ToNIntBase(t,e,r=12){let s=ne;if(e<=1||e>s.length)throw new Error(Te);let i=e,o=Math.abs(t??0);if(o===0||Number.isNaN(o))return t.toString();let a=(o%1).roundoff(),c="";do{let f=o/i,d=Math.floor(f),y=(o-d*i).roundoff(),x=Math.floor(y);if(x>=s.length?c=`[${x}]`+c:c=s[x]+c,d<=0)break;o=d}while(!0);if(c=c.replace(/^0+/,""),c||="0",a===0)return c;let l="";do{o=(a*i).roundoff();let f=Math.floor(o),d=(o-f).roundoff();f>=s.length?l=`[${f}]`:l+=s[f],a=d}while(!a.isCloseTo(0)&&l.length<r);return/^0*$/.test(l)?c:(Math.sign(t)<0?"-":"")+c+"."+l.replace(/0+$/,"")}static rebaseFloat10ToN(t,e,r=12){let s=ne;if(e<=1||e>s.length)throw new Error(Te);let i=e,o=Math.abs(t??0);if(o===0||Number.isNaN(o))return t.toString();let a=Math.sign(t)<0?"-":"",c=[],l=[];for(let x=0;x<20;x++)c.push("0"),l.push("0");let f=i%1===0?i:Math.ceil(i);function d(x,v,S){let C=x?c:l,A=C[v]=C[v]||"0",g=s.indexOf(A)+S,p=g%f,u=Math.floor(g/f);return C[v]=s[p],u>0&&(x?d(x,v+1,u):v===0?d(!0,0,u):d(!1,v-1,u)),u}let y=0;do{let x=Math.floor(Dt.log(o,i)),v=x>=0,S=v?x:Math.abs(1+x);if(d(v,S,1),o=(o-Math.pow(i,x).roundoff()).roundoff(),v||y++,o===0||y>=100){let C=a+(c.reverse().map(g=>g||"0").join("").replace(/^0+/,"")||"0"),A=l.map(g=>g||"0").join("").substr(0,r).replace(/0+$/,"");return/^0*$/.test(A)?C:C+"."+A}}while(!0)}};var Oe={background:"#1e2336",primary:"#429bbb",secondary:"#5e7881",accent:"#ff0085",success:"#4dc2b4",warning:"#c5c023",error:"#BF215B",danger:"#fa1f1f",info:"#99d4ff",green:"#1ebb8f",yellow:"#c2b010",brown:"#a6715e",red:"#dd2020",pink:"#ff0085",blue:"#116e8b",orange:"#d46d00",purple:"#624472",teal:"#429bbb",gray:"#808080"};function rr(n,t){let e=Object.assign({},Oe,n),r=t.dark,s=t.mincontrast??1.5,i=4.5,o=t.contrast??i,a=7,c=t.maxcontrast??15,l=1.6,f=.95,d=.02,y=.175,x=Ie.DataAnalysis.SearchFunctions.goldenRatio,v,S;function C(R){return B.luminance(R)>=.2}function A(R,w=R,k=i,_=null){let $=typeof w=="object"?w:R,P=typeof w=="number"?w:typeof k=="number"?k:i,F=typeof k=="boolean"?k:_,{h:W,s:K,l:D,a:X}=B.hsl(R),Y=F??!C(R),rt=x(Y?D:0,Y?1:D,ct=>Math.abs(P-B.contrastRatio($,{h:W,s:K,l:ct,a:X})).roundoff());return B.rgb({h:W,s:K,l:rt,a:X})}function g(R,w){let{h:k,s:_,a:$}=B.hsl(R),P=x(0,1,F=>Math.abs(w-B.luminance({h:k,s:_,l:F,a:$})));return B.rgb({h:k,s:_,l:P,a:$})}function p(R){return{base:R.contrast,contrast:R.base,active:R.activeContrast,activeContrast:R.active,emphasis:R.base,container:R.containerContrast,containerContrast:R.container,containerActive:R.containerActiveContrast,containerActiveContrast:R.containerActive}}function u(R,w=y){let{h:k,s:_,l:$,a:P}=B.hsl(R);return _>w?B.rgb({h:k,s:w,l:$,a:P}):R}function h(R,w,k){let _=k&&typeof k=="number"?k:null,$=_??c,P=k&&typeof k=="object"?k:null,F=w==="background"?f+.015:f,X=(r?B.luminance(R)<=d:B.luminance(R)>=F)?R:r?g(R,d):g(R,F),Y=P?R:X,N=r?.035:-.08,yt=_??a,rt=P??A(Y,$),vt=A(Y,Y,s,r),ce=A(vt,i),zt=g(Y,B.luminance(Y)+N),le=A(zt,yt),Vt=g(vt,B.luminance(vt)+N),fr=A(Vt,yt),hr=B.saturate(Y,1.2);return{base:Y,contrast:rt,active:zt,activeContrast:le,containerActive:Vt,container:vt,emphasis:hr,containerActiveContrast:fr,containerContrast:ce}}function m(R){let w=Math.min(s,l),k=v.base,_=r,$=!_,P=A(R,k,1),F=A(u(P),k,w,_),W=r?.1:-.06,K=A(F,w,$),X=A(F,k,1.1,$),Y=A(X,w,_),N=g(F,B.luminance(F)+W),yt=A(N,w,$),rt=g(X,B.luminance(X)+W),ct=A(rt,w),Gt=B.lighten(F,.1);return{base:F,contrast:K,active:N,activeContrast:yt,containerActive:rt,container:X,emphasis:Gt,containerActiveContrast:ct,containerContrast:Y}}function b(R,w,k){let _=w==="gray",$=k&&typeof k=="number"?k:null,P=$??a,F=k&&typeof k=="object"?k:null,K=C(R)===r&&B.contrastRatio(R,v.base)>=o?R:A(R,v.base,o,r),D=F?R:K;_&&(D=u(D));let X=r?.1:-.06,Y=$??a,N=F??A(D,P,!r),yt=s,rt=v.base,ct=A(D,rt,yt,!r),Gt=A(ct,i,r),vt=g(D,B.luminance(D)+X),ce=A(vt,Y,!r),zt=g(ct,B.luminance(ct)+X),le=A(zt,Y,r),Vt=_?B.lighten(D,.1):B.saturate(D,1.2);return{base:D,contrast:N,active:vt,activeContrast:ce,containerActive:zt,container:ct,emphasis:Vt,containerActiveContrast:le,containerContrast:Gt}}let I={},O=R=>Math.round(R*255),L=R=>`${O(R.r)}, ${O(R.g)}, ${O(R.b)}`,z=(R,w)=>{let k=(_,$)=>{I[`--pacem-color-${R}${_}`]=B.stringify($),I[`--pacem-color-${R}${_}-rgb`]=L($)};k("",w.base),k("-inverse",w.contrast),k("-hover",w.active),k("-inverse-hover",w.activeContrast),k("-emphasis-hover",w.emphasis),k("-container",w.container),k("-container-inverse",w.containerContrast),k("-container-hover",w.containerActive),k("-container-inverse-hover",w.containerActiveContrast)},G=B.parse(e.background);v=h(G,"background"),z("background",v);let nt="root"in e?B.parse(e.root):B.darken(v.base,r?.02:.01);if(S=h(nt,"root"),z("root",S),"default"in e){let R=A(B.parse(e.default),S.base,c,r),w=b(R,"default");z("default",w)}else z("default",p(S));let at="disabled"in e?B.parse(e.disabled):v.base;z("disabled",m(at));for(let R in e){if(["default","background","root","disabled"].indexOf(R)>=0)continue;let w=B.parse(e[R]),k=b(w,R);z(R,k)}return"invert"in e||z("invert",p(v)),I}import po from"node:fs";import go from"node:path";import{transform as mo}from"lightningcss";var oe=["src/tokens/system.css","src/tokens/theme.css","src/tokens/colors.css","src/tokens/components.css"];function Lt(n,t){let e=po.readFileSync(go.resolve(lt,n),"utf-8").replace(/\/\*[\s\S]*?\*\//g,"");for(let r of e.matchAll(/(?:^|[{;])\s*(--[\w-]+)\s*:\s*((?:'[^']*'|"[^"]*"|[^;{}'"])*?)\s*;/gm))t.set(r[1],r[2])}function sr(n,t,e=[]){if(e.includes(n))throw new Error(`cyclic token: ${[...e,n].join(" -> ")}`);let r=t.get(n);if(r!=null)return ir(r,t,[...e,n])}function ir(n,t,e){let r="",s=0;for(;;){let i=n.indexOf("var(",s);if(i<0){r+=n.substring(s);break}r+=n.substring(s,i);let o=0,a=i+3;for(;a<n.length;a++)if(n[a]==="(")o++;else if(n[a]===")"&&--o===0)break;let c=n.substring(i+4,a),l=c.indexOf(","),f=(l<0?c:c.substring(0,l)).trim(),d=l<0?void 0:c.substring(l+1).trim(),y=sr(f,t,e)??(d!=null?ir(d,t,e):void 0);if(y==null)throw new Error(`undefined token ${f} (via ${e.join(" -> ")})`);r+=y,s=a+1}return r}function or(n,t){let e=new Map,r=[],s=[];for(let o of t){let a=sr(o,n);a!=null&&(r.push(o),s.push(`.t${r.length-1} { color: ${a}; }`))}let i=-1;return mo({filename:"colors.css",code:Buffer.from(s.join(`
|
|
13
|
+
`)),targets:{chrome:80<<16},visitor:{Selector(o){let a=o.find(c=>c.type==="class");a&&a.type==="class"&&(i=parseInt(a.name.substring(1)))},Declaration:{color(o){let a=o.value;a?.type==="rgb"&&e.set(r[i],{r:a.r,g:a.g,b:a.b,alpha:a.alpha})}}}}),e}var ar=new WeakMap;function ae(n=He()){let t=ar.get(n);if(t)return t;t=new Map;let e=o=>o.flatMap(a=>[`[${a}]`,`[data-theme="${a}"]`]).join(", "),r=n.modes.map(o=>o.name).filter(o=>o!==n.default),s=o=>{if(o.has(n.default)){let a=r.filter(c=>!o.has(c));return a.length?`:where(:root:not(${e(a)}))`:":where(:root)"}return o.size?`:where(:root:is(${e([...o])}))`:":where(:root:not(:root))"},i=new Set(n.modes.flatMap(o=>Object.keys(o.traits)));for(let o of i){let a=new Set(n.modes.filter(l=>l.traits[o]).map(l=>l.name)),c=new Set(n.modes.filter(l=>!l.traits[o]).map(l=>l.name));t.set(o,{selector:s(a),modes:a}),t.set(`no-${o}`,{selector:s(c),modes:c})}for(let[o,a]of Object.entries(Ye)){let c=t.get(a);c&&t.set(o,c)}return ar.set(n,t),t}function cr(n,t,e){return xo(yo(n,e),t,e)}function ze(n){let t=[],e=0,r=0;for(let s=0;s<n.length;s++){let i=n[s];i==="("||i==="["?e++:i===")"||i==="]"?e--:i===","&&e===0&&(t.push(n.substring(r,s).trim()),r=s+1)}return t.push(n.substring(r).trim()),t}function yo(n,t){let e=new Map;if(n=n.replace(/@custom-selector\s+:--([\w-]+)\s+([^;]+);/g,(i,o,a)=>{if(ae(t).has(o))throw new Error(`:--${o} is a theme trait: it cannot be redefined locally`);return e.set(o,a.trim().replace(/\s+/g," ")),""}),!e.size)return n;let r=new Map([...e].filter(([,i])=>ze(i).length>1).map(([i,o])=>[i,ze(o)]));if(r.size){let i=new RegExp(`:--(${[...r.keys()].join("|")})(?![\\w-])`);n=n.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(^|[{};])([^{};]*?)(?=\{)/g,(o,a,c)=>{if(!i.test(c)||/^\s*@/.test(c))return o;let l=/^\s*/.exec(c)[0],f=d=>{let y=i.exec(d);return y?r.get(y[1]).flatMap(x=>f(d.substring(0,y.index)+x+d.substring(y.index+y[0].length))):[d]};return a+l+ze(c).flatMap(f).join(`,
|
|
14
|
+
`)+" "})}let s=i=>i.replace(/:--([\w-]+)/g,(o,a)=>e.has(a)?s(e.get(a)):o);return s(n)}function xo(n,t,e){let r=ae(e);return n.replace(/:--([\w-]+)/g,(s,i)=>{let o=r.get(i);if(!o)throw new Error(`unknown theme trait :--${i} (${[...r.keys()].join(", ")})`);return t==null?o.selector:o.modes.has(t)?"":".__never__"})}var wo={chrome:8847360,edge:8847360,firefox:8388608,safari:18<<16,ios_saf:18<<16},Tt="pacem",lr=["","-shell","-content"],vo={"":"pacem.css","-shell":"pacem-shell.css","-content":"pacem-content.css"};function So(n,t){if(n===Tt&&t===Tt)return;let e=(s,i)=>s.startsWith(Tt+"-")?i+s.substring(Tt.length):s,r=s=>s.map(i=>{switch(i.type){case"type":return{...i,name:e(i.name,n)};case"class":return{...i,name:e(i.name,t)};case"pseudo-class":return"selectors"in i&&Array.isArray(i.selectors)?{...i,selectors:i.selectors.map(r)}:"selector"in i&&Array.isArray(i.selector)?{...i,selector:r(i.selector)}:i;default:return i}});return{Selector:r,DashedIdent:s=>s.startsWith(`--${Tt}-`)?`--${t}-${s.substring(Tt.length+3)}`:void 0,CustomIdent:s=>s===Tt?t:void 0}}function Pe(n){let t=new Map,e=ko[n.base];if(e&&Lt(et.join(lt,e),t),n.palette){let r=JSON.parse(Ut.readFileSync(n.palette,"utf-8").replace(/^/,""));t.set("--pacem-prebuilt","true");for(let[s,i]of Object.entries(rr(r,{dark:n.traits["dark-scheme"],contrast:n.contrast.default,mincontrast:n.contrast.min,maxcontrast:n.contrast.max})))s.endsWith("-rgb")||t.set(s,i)}return n.tokens&&Lt(n.tokens,t),t}var ko={dark:null,light:"themes/light.css"};function Co(n){let t=new Map;for(let i of oe)Lt(et.join(lt,i),t);for(let[i,o]of n)t.set(i,o);let r=[...Ut.readFileSync(et.join(lt,"src/tokens/colors.css"),"utf-8").matchAll(/^@property (--pacem-color-[\w-]+)/gm)].map(i=>i[1]).concat("--pacem-color-balloon","--pacem-color-disabled-button","--pacem-color-disabled-button-inverse").filter(i=>t.has(i)),s=or(t,r);return r.map(i=>{let o=s.get(i);if(o==null)throw new Error(`cannot compute ${i}-rgb`);return`${i}-rgb: ${o.r}, ${o.g}, ${o.b};`})}function Ro(n,t){let e=a=>`[${a}], [data-theme="${a}"]`,r=n.modes.map(a=>a.name).filter(a=>a!==n.default),s=t.name===n.default?r.length?`:root:not(${r.map(e).join(", ")}), [data-theme="${t.name}"]`:`:root, [data-theme="${t.name}"]`:`:root:is(${e(t.name)}), [data-theme="${t.name}"]`,i=Pe(t),o=[`color-scheme: ${t.traits["dark-scheme"]?"dark":"light"};`,...[...i].map(([a,c])=>`${a}: ${c};`),"/* legacy --pacem-*-rgb triplets (static: they do not follow runtime overrides of the base colors) */",...Co(i)];return`/* mode: ${t.name} (base: ${t.base}${t.palette?`, palette: ${et.basename(t.palette)}`:""}) */
|
|
15
|
+
@layer pacem.tokens {
|
|
16
|
+
${s} {
|
|
17
|
+
${o.map(a=>` ${a}`).join(`
|
|
18
|
+
`)}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`}async function ur(n,t=console.log){let e=So(n.prefix.tag,n.prefix.class),r={},s=(x,v)=>{let S=et.join(n.out,x);Ut.mkdirSync(et.dirname(S),{recursive:!0}),Ut.writeFileSync(S,v),r[x]=v.length,t(`${et.relative(process.cwd(),S)}: ${(v.length/1024).toFixed(1)} KB`)},i=new Map,o=async(x,v)=>{let S=await bo({filename:x,targets:wo,drafts:{customMedia:!0},visitor:e,minify:v,errorRecovery:!1,resolver:{read:C=>i.get(C)??cr(Ut.readFileSync(C,"utf-8").replace(/^/,""),void 0,n),resolve:(C,A)=>et.resolve(et.dirname(A),C)}});for(let C of S.warnings)t(` warning ${C.loc.filename}:${C.loc.line}: ${C.message}`);return S.code.toString()},a=x=>JSON.stringify(et.relative(n.out,x).split(et.sep).join("/")),c=n.emit.themes,l=n.modes.find(x=>x.name===n.default),f=c?[l]:[l,...n.modes.filter(x=>x!==l)],d=(x,v)=>{let S=et.join(n.out,`__${v}.tokens.css`);return i.set(S,x.map(C=>Ro(n,C)).join(`
|
|
22
|
+
`)),S},y={};for(let x of lr){let v=et.join(n.out,`__entry${x}.css`),S=x==="-shell"?n.css.shell:x==="-content"?n.css.content:[...n.css.shell,...n.css.content];i.set(v,["@layer pacem.tokens, pacem.styles, pacem.app;",`@import ${a(et.join(lt,"src",vo[x]))};`,`@import ${a(d(f,`modes${x}`))};`,...S.map(C=>`@import ${a(C)} layer(pacem.app);`)].join(`
|
|
23
|
+
`)),y[x]={css:await o(v,!1),min:await o(v,!0)},s(`${n.name}${x}.css`,y[x].css),s(`${n.name}${x}.min.css`,y[x].min)}if(c){let x={};for(let S of n.modes.filter(C=>C!==l)){let C=d([S],S.name);x[S.name]={css:await o(C,!1),min:await o(C,!0)},s(`themes/${S.name}.css`,x[S.name].css),s(`themes/${S.name}.min.css`,x[S.name].min)}let v=Object.keys(x);if(s("themes/all.css",v.map(S=>x[S].css).join(`
|
|
24
|
+
`)),s("themes/all.min.css",v.map(S=>x[S].min).join("")),n.emit.compat)for(let S of n.modes){let C=x[S.name]?.min??"";for(let A of lr)s(`${n.name}-${S.name}${A}.min.css`,y[A].min+C)}}return r}var Fe={alias:"c",type:"string",default:"pacem-themes.json",description:"Configuration file (see the package README)."},Zt=n=>he(Ot.resolve(n==="builtin"?fe:n));await To(_o(process.argv)).scriptName("pacem-theme-css").command("init","Scaffolds a theme configuration, a palette and an embedded stylesheet.",n=>n.option("dir",{type:"string",default:".",description:"Target folder."}).option("force",{type:"boolean",default:!1,description:"Overwrite existing files."}),n=>{let t=Ot.resolve(n.dir);Bt.mkdirSync(t,{recursive:!0});let r={"pacem-themes.json":JSON.stringify({name:"theme",out:"dist/css",palette:"palette.json",themes:{dark:{base:"dark",traits:{}},light:{base:"light",traits:{}}},embed:["theme.css"]},null,4)+`
|
|
25
|
+
`,"palette.json":JSON.stringify(Oe,null,4)+`
|
|
26
|
+
`,"theme.css":Bt.readFileSync(Ot.join(lt,"templates","theme.css"),"utf-8")};for(let[s,i]of Object.entries(r)){let o=Ot.join(t,s);if(Bt.existsSync(o)&&!n.force){console.log(`skipped ${s} (exists, use --force)`);continue}Bt.writeFileSync(o,i),console.log(`created ${Ot.relative(process.cwd(),o)||s}`)}console.log("next: edit palette.json (and theme.css), then run `pacem-theme-css build`")}).command("build","Builds the full, shell and content bundles.",n=>n.option("config",Fe).option("out",{alias:"o",type:"string",description:"Output folder (overrides the configuration)."}),async n=>{let t=Zt(n.config);n.out&&(t.out=Ot.resolve(n.out)),await ur(t)}).command("tokens","Lists the tokens of a theme (--pacem-*), with their (unresolved) values.",n=>n.option("config",Fe).option("theme",{alias:"t",type:"string",description:"Theme (defaults to the default one)."}).option("filter",{alias:"f",type:"string",description:"Only the tokens matching (regex)."}),n=>{let t=Bt.existsSync(n.config)?Zt(n.config):Zt("builtin"),e=t.modes.find(i=>i.name===(n.theme??t.default));if(!e)throw new Error(`unknown theme ${n.theme} (${t.modes.map(i=>i.name).join(", ")})`);let r=new Map;for(let i of oe)Lt(i,r);for(let[i,o]of Pe(e))r.set(i,o);let s=n.filter?new RegExp(n.filter):null;for(let[i,o]of r)(!s||s.test(i))&&console.log(`${i}: ${o};`)}).command("traits","Lists the traits (:--name, :--no-name) and the themes having them.",n=>n.option("config",Fe),n=>{let t=Bt.existsSync(n.config)?Zt(n.config):Zt("builtin");console.log(`themes: ${t.modes.map(e=>`${e.name} (base ${e.base})`).join(", ")}; default: ${t.default}`),console.log(`bases: ${Object.keys(_t).join(", ")}`);for(let[e,r]of ae(t))console.log(`:--${e}`.padEnd(24)+([...r.modes].join(", ")||"-"))}).demandCommand(1).strict().help().parseAsync();
|
package/package.json
CHANGED
|
@@ -1,6 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0.0-abel",
|
|
3
|
+
"name": "@pacem/pacem-theme-css",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"homepage": "https://js.pacem.it",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/pacem-it/pacem.git"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"pacem-theme-css": "cli.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"src/**/*.css",
|
|
15
|
+
"themes/*.css",
|
|
16
|
+
"templates/*",
|
|
17
|
+
"pacem-themes.json",
|
|
18
|
+
"cli.js",
|
|
19
|
+
"themebuilder.js",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE",
|
|
22
|
+
"NOTICE",
|
|
23
|
+
"package.json"
|
|
24
|
+
],
|
|
25
|
+
"author": {
|
|
26
|
+
"name": "Pacem",
|
|
27
|
+
"url": "https://pacem.it"
|
|
28
|
+
},
|
|
29
|
+
"maintainers": [
|
|
30
|
+
{
|
|
31
|
+
"name": "Cristian Merighi",
|
|
32
|
+
"url": "https://pacem.it"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"license": "Apache-2.0",
|
|
36
|
+
"description": "Pacem JS theme. Native CSS: cascade layers, custom properties, relative colors.",
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"lightningcss": "^1.33.0",
|
|
39
|
+
"yargs": "^18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@pacem/pacem-foundation": "*",
|
|
43
|
+
"@pacem/pacem-numerical": "*"
|
|
44
|
+
}
|
|
45
|
+
}
|
package/src/2d/index.css
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* 2d (theme/less/pacem/2d): stage.less, text.less, then the non-visual elements. */
|
|
2
|
+
pacem-2d {
|
|
3
|
+
/* .StretchChildren() */
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: stretch;
|
|
6
|
+
align-content: stretch;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
|
|
9
|
+
> *,
|
|
10
|
+
&::part(container) {
|
|
11
|
+
flex: 1 0 auto;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
> :not(.pacem-2d) {
|
|
15
|
+
display: none !important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.pacem-2d,
|
|
19
|
+
&::part(container) {
|
|
20
|
+
position: relative;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&::part(stage) {
|
|
24
|
+
display: block;
|
|
25
|
+
position: absolute;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.pacem-2d > svg text {
|
|
29
|
+
fill: var(--pacem-color-default);
|
|
30
|
+
font-family: var(--pacem-font-std);
|
|
31
|
+
font-size: var(--pacem-font-size);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
pacem-2d-circle,
|
|
36
|
+
pacem-2d-path,
|
|
37
|
+
pacem-2d-rect,
|
|
38
|
+
pacem-2d-text,
|
|
39
|
+
pacem-2d-group,
|
|
40
|
+
pacem-2d-canvas-adapter,
|
|
41
|
+
pacem-2d-svg-adapter {
|
|
42
|
+
pointer-events: none !important;
|
|
43
|
+
display: none !important;
|
|
44
|
+
}
|
package/src/3d/index.css
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* 3d (theme/less/pacem/3d): stage.less, then the non-visual elements. */
|
|
2
|
+
pacem-3d {
|
|
3
|
+
/* stretchy flexbox */
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: stretch;
|
|
6
|
+
align-content: stretch;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
|
|
9
|
+
> * {
|
|
10
|
+
flex: 1 0 auto;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
> :not(.pacem-3d) {
|
|
14
|
+
pointer-events: none !important;
|
|
15
|
+
display: none !important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.pacem-3d {
|
|
19
|
+
position: relative;
|
|
20
|
+
|
|
21
|
+
> canvas {
|
|
22
|
+
display: block;
|
|
23
|
+
position: absolute;
|
|
24
|
+
image-rendering: crisp-edges;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
pacem-3d-light,
|
|
30
|
+
pacem-3d-camera,
|
|
31
|
+
pacem-3d-object,
|
|
32
|
+
pacem-3d-mesh,
|
|
33
|
+
pacem-3d-group,
|
|
34
|
+
pacem-3d-primitive-sphere,
|
|
35
|
+
pacem-3d-primitive-cylinder,
|
|
36
|
+
pacem-3d-primitive-plane,
|
|
37
|
+
pacem-3d-primitive-torus,
|
|
38
|
+
pacem-3d-primitive-box,
|
|
39
|
+
pacem-3d-primitive-tetrahedron,
|
|
40
|
+
pacem-3d-primitive-hexahedron,
|
|
41
|
+
pacem-3d-primitive-octahedron,
|
|
42
|
+
pacem-3d-primitive-icosahedron,
|
|
43
|
+
pacem-3d-primitive-dodecahedron,
|
|
44
|
+
pacem-3d-three-adapter,
|
|
45
|
+
pacem-3d-wgsl-script,
|
|
46
|
+
pacem-3d-webgpu-adapter {
|
|
47
|
+
pointer-events: none !important;
|
|
48
|
+
display: none !important;
|
|
49
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@keyframes core-anim {
|
|
2
|
+
0% { transform: translateY(calc(var(--pacem-grid-spacing) * 2)); }
|
|
3
|
+
100% { transform: none; }
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
@keyframes default-anim {
|
|
7
|
+
0% { transform: translateY(calc(var(--pacem-grid-spacing) / 2)); opacity: 0; }
|
|
8
|
+
100% { opacity: 1; transform: none; }
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@keyframes full-offset-rtl-anim {
|
|
12
|
+
0% { transform: translateX(100%); }
|
|
13
|
+
100% { transform: translateX(-100%); }
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@keyframes full-offset-ltr-anim {
|
|
17
|
+
0% { transform: translateX(-100%); }
|
|
18
|
+
100% { transform: translateX(100%); }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@keyframes pop-anim {
|
|
22
|
+
0% { transform: scale(0, 0); }
|
|
23
|
+
100% { transform: none; }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* (rotate-anim: defined with the loader, in the shell css) */
|
|
27
|
+
|
|
28
|
+
@keyframes fade-in {
|
|
29
|
+
0% { opacity: 0; }
|
|
30
|
+
100% { opacity: 1; }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes list-item {
|
|
34
|
+
0% { transform: translateY(calc(-1 * var(--pacem-grid-spacing))); opacity: 0; }
|
|
35
|
+
100% { opacity: 1; transform: none; }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@keyframes list-item-left {
|
|
39
|
+
0% { transform: translateX(calc(-1 * var(--pacem-grid-spacing))); opacity: 0; }
|
|
40
|
+
100% { opacity: 1; transform: none; }
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@keyframes list-item-right {
|
|
44
|
+
0% { transform: translateX(var(--pacem-grid-spacing)); opacity: 0; }
|
|
45
|
+
100% { opacity: 1; transform: none; }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@keyframes list-item-bottom {
|
|
49
|
+
0% { transform: translateY(var(--pacem-grid-spacing)); opacity: 0; }
|
|
50
|
+
100% { opacity: 1; transform: none; }
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@keyframes shooting-star {
|
|
54
|
+
0% { transform: translateY(calc(-1 * var(--pacem-grid-spacing))); opacity: 0; }
|
|
55
|
+
50% { opacity: 1; transform: translateY(0); }
|
|
56
|
+
100% { opacity: 0; transform: translateY(var(--pacem-grid-spacing)); }
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@keyframes enhanced-anim {
|
|
60
|
+
0% { transform: translateY(var(--pacem-grid-spacing)) scaleY(1.5); opacity: 0; }
|
|
61
|
+
100% { opacity: 1; transform: none; }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@keyframes alt-anim {
|
|
65
|
+
0% { transform: translateY(var(--pacem-grid-spacing)) scaleY(0.75); opacity: 0; }
|
|
66
|
+
100% { opacity: 1; transform: none; }
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@keyframes appear-anim {
|
|
70
|
+
0% { transform: scale(0.925); opacity: 0; }
|
|
71
|
+
100% { opacity: 1; transform: none; }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@keyframes header-anim {
|
|
75
|
+
0% { transform: translateX(var(--pacem-grid-cell)); opacity: 0; }
|
|
76
|
+
100% { opacity: 1; transform: none; }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@keyframes bright-out {
|
|
80
|
+
0% { filter: brightness(5); }
|
|
81
|
+
100% { filter: brightness(1); }
|
|
82
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[pacem][cloak] {
|
|
2
|
+
visibility: hidden !important;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
[pacem][hidden] {
|
|
6
|
+
pointer-events: none !important;
|
|
7
|
+
display: none !important;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* lists */
|
|
11
|
+
ol, ul {
|
|
12
|
+
margin-top: 0;
|
|
13
|
+
margin-bottom: 1em;
|
|
14
|
+
padding: 0 0 0 calc(var(--pacem-grid-spacing) * 1.25);
|
|
15
|
+
|
|
16
|
+
ol, ul {
|
|
17
|
+
margin-bottom: 0;
|
|
18
|
+
}
|
|
19
|
+
}
|